@qt4798/pi-web 0.18.19 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +21 -21
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +6 -6
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +21 -15
- package/.next/server/app/_not-found.segments/_full.segment.rsc +21 -15
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +11 -8
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -3
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +21 -16
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +15 -10
- package/.next/server/app/index.segments/_full.segment.rsc +21 -16
- package/.next/server/app/index.segments/_tree.segment.rsc +5 -3
- package/.next/server/app/login/page.js +1 -1
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +26 -20
- package/.next/server/app/login.segments/_full.segment.rsc +26 -20
- package/.next/server/app/login.segments/_tree.segment.rsc +5 -3
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +12 -9
- package/.next/server/app/page.js +22 -16
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +21 -21
- package/.next/server/chunks/4318.js +1 -0
- package/.next/server/chunks/5437.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/2464-e5d5912cf57c3192.js +15 -0
- package/.next/static/chunks/5170-a5b6b94f2e720bd7.js +1 -0
- package/.next/static/chunks/app/layout-9defd9af3ecb1e85.js +1 -0
- package/.next/static/chunks/app/page-06f7a354223553e6.js +237 -0
- package/.next/static/chunks/{webpack-31cab65cc5a39c4d.js → webpack-00d2c00cb4b88b08.js} +1 -1
- package/.next/static/css/22f76b69e45f49e4.css +1 -0
- package/.next/static/css/26b54210008ec821.css +1 -0
- package/.next/static/css/35d4358355f4c1f8.css +1 -0
- package/.next/static/css/bb56ff1a05d525f4.css +1 -0
- package/.next/trace +12 -19
- package/.next/trace-build +1 -1
- package/package.json +1 -1
- package/.next/server/chunks/574.js +0 -1
- package/.next/static/chunks/5170-642bc0cfa4eeb3ab.js +0 -1
- package/.next/static/chunks/5713-2dbdd3004c5f9a77.js +0 -9
- package/.next/static/chunks/app/layout-afb53143cd8a858f.js +0 -1
- package/.next/static/chunks/app/page-4254ac67847d7776.js +0 -237
- package/.next/static/css/34f1ad830f772bb3.css +0 -1
- package/.next/static/css/5a620688241e1a56.css +0 -1
- /package/.next/static/{S_SVz1tcf2yF8HRu-MIyf → t-lhNoDM3qCUDCCm6M_Lf}/_buildManifest.js +0 -0
- /package/.next/static/{S_SVz1tcf2yF8HRu-MIyf → t-lhNoDM3qCUDCCm6M_Lf}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{14755:(e,t,r)=>{"use strict";r.d(t,{Q8:()=>n,SC:()=>l,YO:()=>u,getPresetFromTools:()=>c,xG:()=>p});let n="configured",s=[],i=["read","grep","find","ls"],o=["read","bash","edit","write"],a=["bash","read","edit","write","grep","find","ls"],l=["read","grep","find","ls"],d=new Set([...a,"powershell"]);function c(e){return u(e.filter(e=>e.active).map(e=>e.name))}function u(e){if(0===e.length)return"none";let t=e.map(e=>"powershell"===e?"bash":e).filter(e=>d.has(e)).sort().join(",");return t===[...i].sort().join(",")?"plan":t===[...o].sort().join(",")?"default":t===[...a].sort().join(",")?"full":"default"}function p(e){if(e!==n)return"none"===e?[...s]:"full"===e?[...a]:"plan"===e?[...l]:[...o]}},23084:(e,t,r)=>{"use strict";async function n(e,t){let r=await fetch(e,{...t,headers:t?.body?{"Content-Type":"application/json"}:void 0}),n=await r.json().catch(()=>({}));if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);return n}async function s(e){return(await n(`/api/tasks?projectRoot=${encodeURIComponent(e)}`)).tasks}async function i(){return(await n("/api/tasks/projects")).projects}async function o(e){return(await n("/api/tasks",{method:"POST",body:JSON.stringify(e)})).task}async function a(e,t,r){return(await n(`/api/tasks/${e}?projectRoot=${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify({projectRoot:t,...r})})).task}async function l(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];await n(`/api/tasks/${e}?projectRoot=${encodeURIComponent(t)}&deleteWorktree=${+!!r}`,{method:"DELETE"})}async function d(e,t,r,s){await n(`/api/tasks/${e}/${r}?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({...s})})}async function c(e,t,r){await n(`/api/tasks/${e}/return?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({feedback:r})})}async function u(e,t,r,s){await n(`/api/tasks/${e}/merge?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({message:r,deleteWorktree:s})})}async function p(e,t,r){await n(`/api/tasks/${e}/complete?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({deleteWorktree:r})})}async function h(e,t,r){await n(`/api/tasks/${e}/archive?projectRoot=${encodeURIComponent(t)}`,{method:"POST",body:JSON.stringify({archived:r})})}async function x(e,t){await n("/api/tasks/batch?mode=reorder",{method:"POST",body:JSON.stringify({projectRoot:e,orderedIds:t})})}async function g(e){return(await n("/api/tasks/batch?mode=start-all",{method:"POST",body:JSON.stringify({projectRoot:e})})).claimed}async function f(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;return(await n(`/api/tasks/${t}/events?projectRoot=${encodeURIComponent(e)}&limit=${r}`)).events}async function m(e,t){return n(`/api/tasks/${t}/changed-files?projectRoot=${encodeURIComponent(e)}`)}async function v(e,t,r){return n(`/api/tasks/${t}/diff?projectRoot=${encodeURIComponent(e)}&file=${encodeURIComponent(r)}`)}async function y(e){return(await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}`)).settings}async function b(e){return(await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}&own=1`)).settings}async function k(e,t){await n("/api/tasks/settings",{method:"PUT",body:JSON.stringify({projectRoot:e,settings:t})})}async function j(e){await n(`/api/tasks/settings?projectRoot=${encodeURIComponent(e)}`,{method:"DELETE"})}async function w(){return(await n("/api/tasks/templates")).templates}async function S(e){return(await n("/api/tasks/templates",{method:"POST",body:JSON.stringify(e)})).template}async function C(e){await n(`/api/tasks/templates?id=${e}`,{method:"DELETE"})}r.d(t,{B_:()=>C,CG:()=>y,E:()=>j,HB:()=>f,JH:()=>m,Lu:()=>x,Pf:()=>b,VB:()=>w,Vk:()=>s,Wt:()=>i,ZX:()=>p,a5:()=>g,bH:()=>l,createTaskApi:()=>o,eA:()=>k,et:()=>h,h:()=>v,in:()=>c,nY:()=>S,oB:()=>u,oQ:()=>d,updateTaskApi:()=>a})},45020:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>fe});var n=r(95155),s=r(12115),i=r(53516),o=r(73321);function a(e){let t=e.get("cwd")?.trim()||null;return{requestedCwd:t,sessionId:t?null:e.get("session")||null,sidebarCollapsed:"collapsed"===e.get("sidebar")}}let l=null,d=["primitives","overlay","shell","conversation"],c=["button","segmented","toggle","status","field","scrollFade","dialogShell","approvalCard","planReview","trustDialog","queueRecovery","palette","imageLightbox","titleBar","sidebar","sessionRow","tabBar","composer","modelSwitcher","fileViewer","messageList","messageShell","thinking","toolCard","subagentRow","subagentPanel","compaction"],u={button:"primitives",segmented:"primitives",toggle:"primitives",status:"primitives",field:"primitives",scrollFade:"primitives",dialogShell:"overlay",approvalCard:"overlay",planReview:"overlay",trustDialog:"overlay",queueRecovery:"overlay",palette:"overlay",imageLightbox:"overlay",titleBar:"shell",sidebar:"shell",sessionRow:"shell",tabBar:"shell",composer:"shell",modelSwitcher:"shell",fileViewer:"shell",messageList:"conversation",messageShell:"conversation",thinking:"conversation",toolCard:"conversation",subagentRow:"conversation",subagentPanel:"conversation",compaction:"conversation"},p=d.reduce((e,t)=>(e[t]=c.filter(e=>u[e]===t),e),{}),h="pi-ui-kit",x="pi-ui-kit-scopes",g="pi-ui-kit-slots",f="pi-ui-kit-layout",m="pi-ui-kit-sidebar-toggle",v="uiKit",y="uiKitScopes",b="uiKitSlots",k="uiKitLayout",j="uiKitSidebarToggle",w=["compact","standard","comfortable"],S=["sidebar","titlebar"],C=Object.freeze({kit:"pi",scopes:{},slots:{},layout:"standard",sidebarToggle:"sidebar"});function z(e){return"pi"===e||"claude"===e}function T(e){return"string"==typeof e&&d.includes(e)}function R(e){return"string"==typeof e&&c.includes(e)}function I(e){return"string"==typeof e&&w.includes(e)}function N(e){return"string"==typeof e&&S.includes(e)}function M(e,t){let r={};if("string"!=typeof e||0===e.length)return r;for(let n of e.split(",")){let e=n.trim();if(!e)continue;let s=e.indexOf("=");if(s<=0)continue;let i=e.slice(0,s).trim(),o=e.slice(s+1).trim();t(i)&&z(o)&&(r[i]=o)}return r}function E(e){if(!e)return"";let t=Object.keys(e).filter(t=>z(e[t]));return t.sort(),t.map(t=>`${t}=${e[t]}`).join(",")}function $(e){let t=e??{},r="string"==typeof t.scopes?M(t.scopes,T):P(t.scopes)?F(t.scopes,T):{},n="string"==typeof t.slots?M(t.slots,R):P(t.slots)?F(t.slots,R):{};return L({kit:z(t.kit)?t.kit:"pi",scopes:r,slots:n,layout:I(t.layout)?t.layout:C.layout,sidebarToggle:N(t.sidebarToggle)?t.sidebarToggle:C.sidebarToggle})}function L(e){let t=z(e.kit)?e.kit:"pi",r={};for(let n of d){let s=e.scopes?.[n];z(s)&&s!==t&&(r[n]=s)}let n={};for(let s of c){let i=e.slots?.[s];z(i)&&i!==(r[u[s]]??t)&&(n[s]=i)}return{kit:t,scopes:r,slots:n,layout:I(e.layout)?e.layout:C.layout,sidebarToggle:N(e.sidebarToggle)?e.sidebarToggle:C.sidebarToggle}}function W(e,t){return e.scopes?.[t]??e.kit??"pi"}function A(e,t){let r=e.slots?.[t];return z(r)?r:W(e,u[t])}function P(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function F(e,t){let r={};for(let[n,s]of Object.entries(e))t(n)&&z(s)&&(r[n]=s);return r}var D=r(12779),O=r(18613),H=r(62235),B=r(25388),U=r(94638),_=r(27289),K=r(41780),q=r(98664),V=r(19447),J=r(15170);function G(e,t){(0,s.useEffect)(()=>{if(!e)return;let r=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,t])}var Y=r(1022);function X(){return!!window.__TAURI_INTERNALS__}let Z=null;function Q(){return Z||(Z=r.e(8518).then(r.bind(r,38518)).then(e=>e.getCurrentWindow())),Z}async function ee(e){let t=await Q();await e(t)}async function et(){await ee(e=>e.minimize())}async function er(){await ee(e=>e.toggleMaximize())}async function en(){await ee(e=>e.startDragging())}async function es(){await ee(e=>e.close())}async function ei(){return(await Q()).isMaximized()}let eo=new Set;function ea(e){return eo.add(e),()=>{eo.delete(e)}}function el(){eo.forEach(e=>e())}let ed="pi-theme-mode",ec="pi-theme",eu="pi-theme-light",ep="pi-theme-dark",eh="pi-border-depth";function ex(){try{let e=localStorage.getItem(ec);if(e)return e;let t=function(){try{let e=localStorage.getItem(ec);if(e)return localStorage.removeItem(ep),localStorage.removeItem(eu),e;let t=localStorage.getItem(ep),r=localStorage.getItem(eu),n=t??r;if(n)return localStorage.setItem(ec,n),localStorage.removeItem(ep),localStorage.removeItem(eu),n}catch{}return null}();if(t)return t}catch{}return"claude"}function eg(e,t){try{t?localStorage.setItem(ec,t):localStorage.removeItem(ec),localStorage.removeItem(ep),localStorage.removeItem(eu)}catch{}}function ef(){try{let e=localStorage.getItem(eh);if(null!==e){let t=parseInt(e,10);if(!isNaN(t)&&t>=0&&t<=100)return t}}catch{}return 50}function em(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function ev(e){return"system"===e?em()?"dark":"light":e}function ey(){if("u"<typeof document)return"dark";let e=document.documentElement.dataset.themeMode;if("dark"===e||"light"===e||"system"===e)return e;try{let e=localStorage.getItem(ed);if("dark"===e||"light"===e||"system"===e)return e}catch{}return"dark"}function eb(){if("u"<typeof document)return"";let e=document.documentElement.dataset.theme;return e||ex()}function ek(){return"dark"}let ej=["--bg","--bg-panel","--bg-secondary","--bg-card","--bg-hover","--bg-selected","--bg-card-hover","--bg-subtle","--border","--border-hover","--text","--text-muted","--text-dim","--accent","--accent-hover","--accent-blue","--accent-red","--accent-green","--accent-orange","--git-status-added","--git-status-modified","--git-status-deleted","--git-status-added-bg","--git-status-modified-bg","--git-status-deleted-bg","--user-bg","--assistant-bg","--tool-bg","--hatch-color","--status-error","--status-warning","--status-success","--status-info","--status-error-bg","--status-warning-bg","--status-success-bg","--status-info-bg","--status-error-border","--status-warning-border","--status-success-border","--status-info-border","--syntax-keyword","--syntax-string","--syntax-number","--syntax-function","--syntax-comment"],ew=["--border-orig","--border-hover-orig"];function eS(){let e=document.documentElement;for(let t of ej)e.style.removeProperty(t);for(let t of ew)e.style.removeProperty(t)}function eC(e){let t=document.documentElement,r=document.documentElement,n=r.style.getPropertyValue("--border-orig").trim(),s=r.style.getPropertyValue("--border-hover-orig").trim();if(!n||!s){let e=getComputedStyle(r);!n&&(n=e.getPropertyValue("--border").trim())&&r.style.setProperty("--border-orig",n),!s&&(s=e.getPropertyValue("--border-hover").trim())&&r.style.setProperty("--border-hover-orig",s)}if(50===e){let e=t.style.getPropertyValue("--border-orig").trim(),r=t.style.getPropertyValue("--border-hover-orig").trim();e?t.style.setProperty("--border",e):t.style.removeProperty("--border"),r?t.style.setProperty("--border-hover",r):t.style.removeProperty("--border-hover");return}let i=e/100,o=e=>{if(i<=.5){let t=Math.round(2*i*100);return`color-mix(in srgb, var(${e}) ${t}%, var(--bg) ${100-t}%)`}{let t=Math.round((i-.5)*200);return`color-mix(in srgb, var(${e}) ${100-t}%, var(--text) ${t}%)`}};t.style.setProperty("--border",o("--border-orig")),t.style.setProperty("--border-hover",o("--border-hover-orig"))}let ez=new Map;async function eT(e,t){let r=`${e}::${t}`;if(ez.has(r))return ez.get(r);try{let n=await fetch(`/api/themes/${encodeURIComponent(e)}?mode=${t}`);if(!n.ok)return null;let s=await n.json();for(ez.set(r,s);ez.size>50;){let e=ez.keys().next().value;if(void 0===e)break;ez.delete(e)}return s}catch{return null}}async function eR(e,t){let r=document.documentElement;if("dark"===e?r.classList.add("dark"):r.classList.remove("dark"),!t){delete r.dataset.theme,eS();return}r.dataset.theme=t;let n=await eT(t,e);if(n){var s=n.cssVars;let e=document.documentElement;for(let t of ej)s[t]?e.style.setProperty(t,s[t]):e.style.removeProperty(t);s["--border"]?e.style.setProperty("--border-orig",s["--border"]):e.style.removeProperty("--border-orig"),s["--border-hover"]?e.style.setProperty("--border-hover-orig",s["--border-hover"]):e.style.removeProperty("--border-hover-orig")}else console.warn(`Theme "${t}" variant "${e}" not found, using defaults`),eS()}let eI=(()=>{if("u"<typeof navigator)return!1;let e=navigator.userAgent;return/AppleWebKit/.test(e)&&!/Chrome|Edg|OPR|Version\//.test(e)})();async function eN(e){if(function(){try{return!!window.__TAURI__}catch{return!1}}())try{let t=window.__TAURI__;await t?.core?.invoke?.("set_ui_theme",{theme:e})}catch{}}function eM(){let e=(0,s.useSyncExternalStore)(ea,ey,ek),t=(0,s.useSyncExternalStore)(ea,eb,()=>""),[r,n]=(0,s.useState)(()=>{if("u">typeof document){let e=document.documentElement.dataset.themeResolvedMode;if("dark"===e||"light"===e)return e}return ev(ey())}),[i,o]=(0,s.useState)(()=>ef()),a=(0,s.useCallback)(e=>{let t=Math.max(0,Math.min(100,Math.round(e)));o(t);try{localStorage.setItem(eh,String(t))}catch{}eC(t)},[]),l="dark"===r,d=(0,s.useRef)(null);(0,s.useEffect)(()=>{d.current!==r&&(d.current=r,eN(r))},[r]);let c=(0,s.useRef)(!1),u=(0,s.useCallback)((e,t,r)=>{let s=document.documentElement;s.dataset.themeMode=t,s.dataset.themeResolvedMode=e,"dark"===e?s.classList.add("dark"):s.classList.remove("dark"),r?s.dataset.theme=r:delete s.dataset.theme,n(e)},[]);(0,s.useEffect)(()=>{let r=document.documentElement,n=r.dataset.themeMode,s=r.dataset.theme,i="dark"===n||"light"===n||"system"===n?n:e,o=s||t;if(c.current)return;c.current=!0;let a=ev(i);u(a,i,o),eR(a,o).finally(()=>{c.current=!1;try{localStorage.setItem(ed,i)}catch{}eg(a,o),eC(ef()),el()})},[]),(0,s.useEffect)(()=>{var e;let t;return e=()=>{if("system"===ey()){let e=em()?"dark":"light",t=ex();u(e,"system",t),eR(e,t),eC(ef()),el()}},(t=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",e),()=>t.removeEventListener("change",e)},[u]);let p=(0,s.useCallback)(async e=>{if(!c.current){c.current=!0;try{await eR(r,e),eg(r,e);let t=ey();u(r,t,e),eC(ef()),el()}finally{c.current=!1}}},[r,u]),h=(0,s.useCallback)(async e=>{if(c.current)return;c.current=!0;let t=ev(e),r=ex();try{await eR(t,r);try{localStorage.setItem(ed,e)}catch{}u(t,e,r),eC(ef()),el()}finally{c.current=!1}},[u]),x=(0,s.useCallback)(e=>{let t=ey(),n="system"===t?"dark"===r?"light":"dark":"dark"===t?"light":"dark",s=()=>{h(n)},i=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||i||eI)return void s();let o=e?.x??window.innerWidth/2,a=e?.y??window.innerHeight/2,l=Math.hypot(Math.max(o,window.innerWidth-o),Math.max(a,window.innerHeight-a));document.startViewTransition(()=>{s()}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${o}px ${a}px)`,`circle(${l}px at ${o}px ${a}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[r,h]);return{mode:e,resolvedMode:r,themeName:t,setMode:h,setTheme:p,toggleTheme:x,isDark:l,borderDepth:i,setBorderDepth:a}}function eE(){let[e,t]=(0,s.useState)(null);return(0,s.useEffect)(()=>{X()&&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 e$="pi-web-island-pos";function eL(e,t,r,n,s,i){return{x:Math.min(Math.max(0,e),Math.max(0,r-s)),y:Math.min(Math.max(0,t),Math.max(0,n-i))}}let eW={display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",borderRadius:7,transition:"background 0.12s, color 0.12s"};function eA(){let{onRefreshSession:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{t:t}=(0,J.s)(),{isDark:r}=eM(),{isDesktop:i,isMacOS:o}=eE(),a=i&&!o,[l,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(null),x=(0,s.useRef)(null),g=(0,s.useRef)(null);(0,s.useEffect)(()=>{a&&Q().then(()=>void 0,e=>{throw Z=null,e}).catch(e=>{console.error("[DynamicIsland] window API preload failed:",e)})},[a]);let f=(0,s.useCallback)(e=>{e().catch(e=>{console.error("[DynamicIsland] window command failed:",e),u(String(e)),window.setTimeout(()=>u(null),4e3)})},[]),m=(0,s.useCallback)(()=>{window.location.reload()},[]);(0,s.useEffect)(()=>{if(!X()||!a)return;let e=()=>{ei().then(d)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[a]),(0,s.useEffect)(()=>{if(a)try{let e=localStorage.getItem(e$);if(e){let t=JSON.parse(e);"number"==typeof t.x&&"number"==typeof t.y&&h(eL(t.x,t.y,window.innerWidth,window.innerHeight,168,34))}}catch{}},[a]),(0,s.useEffect)(()=>{if(a&&p)try{localStorage.setItem(e$,JSON.stringify(p))}catch{}},[p,a]);let[v,y]=(0,s.useState)(0);(0,s.useEffect)(()=>{if(!a)return;let e=()=>{y(window.innerWidth),h(e=>e?eL(e.x,e.y,window.innerWidth,window.innerHeight,168,34):e)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[a]);let b=(0,s.useCallback)(e=>{if(0!==e.button||e.target.closest?.("[data-island-btn]"))return;let t=x.current;if(!t)return;let r=t.getBoundingClientRect();g.current={startX:e.clientX,startY:e.clientY,origX:r.left,origY:r.top},e.currentTarget.setPointerCapture(e.pointerId)},[]),k=(0,s.useCallback)(e=>{let t=g.current;if(!t)return;let r=e.clientX-t.startX,n=e.clientY-t.startY;h(eL(t.origX+r,t.origY+n,window.innerWidth,window.innerHeight,168,34))},[]),j=(0,s.useCallback)(e=>{g.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}},[]),w=(0,s.useCallback)(()=>er().then(()=>{d(e=>!e)}),[]),S=(0,s.useCallback)(e=>{if(!g.current&&!e.target.closest?.("[data-island-btn]")){h(null);try{localStorage.removeItem(e$)}catch{}}},[]);if(!a)return null;let C=v||window.innerWidth,z=null!==p?p.x:Math.max(0,C-168-14);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{ref:x,role:"toolbar","aria-label":t("desktop.islandLabel"),title:t("desktop.islandResetHint"),onPointerDown:b,onPointerMove:k,onPointerUp:j,onPointerCancel:j,onDoubleClick:S,onMouseDown:e=>e.stopPropagation(),onDoubleClickCapture:e=>e.stopPropagation(),style:{position:"fixed",top:null!==p?p.y:100,left:z,zIndex:700,display:"flex",alignItems:"center",gap:1,padding:"3px 5px",borderRadius:999,background:"color-mix(in srgb, var(--bg-panel) 88%, transparent)",border:"1px solid var(--border)",boxShadow:r?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",cursor:"grab",userSelect:"none",touchAction:"none"},children:[(0,n.jsx)("span",{"data-island-grip":!0,"aria-hidden":"true",title:t("desktop.islandDrag"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:12,height:26,flexShrink:0,marginRight:2,color:"var(--text-dim)",cursor:"grab"},children:(0,n.jsxs)("svg",{width:"6",height:"14",viewBox:"0 0 6 14",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"1.5",cy:"2",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"2",r:"1.2"}),(0,n.jsx)("circle",{cx:"1.5",cy:"7",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"7",r:"1.2"}),(0,n.jsx)("circle",{cx:"1.5",cy:"12",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"12",r:"1.2"})]})}),e&&(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.refreshSession"),title:t("desktop.refreshSession"),onClick:()=>{try{e()}catch(e){console.error("[DynamicIsland] refresh session failed:",e)}},style:eW,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)(Y.P,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.reloadPage"),title:t("desktop.reloadPage"),onClick:m,style:eW,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)(K.S,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("span",{"aria-hidden":"true",style:{width:1,height:18,flexShrink:0,background:"var(--border)",margin:"0 3px"}}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.minimize"),title:t("desktop.minimize"),onClick:()=>f(et),style:eW,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:(0,n.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t(l?"desktop.restore":"desktop.maximize"),title:t(l?"desktop.restore":"desktop.maximize"),onClick:()=>f(w),style:eW,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:l?(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:[(0,n.jsx)("rect",{x:"2",y:"0.5",width:"7.5",height:"7.5"}),(0,n.jsx)("path",{d:"M0.5 2.5 V9.5 H7.5"})]}):(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:(0,n.jsx)("rect",{x:"0.5",y:"0.5",width:"9",height:"9"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.close"),title:t("desktop.close"),onClick:()=>f(es),style:eW,onMouseEnter:e=>{e.currentTarget.style.background="#e81123",e.currentTarget.style.color="#fff"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:[(0,n.jsx)("line",{x1:"0",y1:"0",x2:"10",y2:"10"}),(0,n.jsx)("line",{x1:"10",y1:"0",x2:"0",y2:"10"})]})})]}),c&&(0,n.jsx)("div",{role:"alert",style:{position:"fixed",top:(null!==p?p.y:100)+34+6,left:z,zIndex:700,maxWidth:280,padding:"5px 10px",borderRadius:8,background:"var(--bg-panel)",border:"1px solid var(--status-error, #f85149)",color:"var(--status-error, #f85149)",fontSize:11,lineHeight:1.5,wordBreak:"break-all",boxShadow:r?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",pointerEvents:"none"},children:c})]})}var eP=r(64178);function eF(){try{return window.localStorage}catch{return null}}let eD="pi-web:desktop-server-hint-seen";function eO(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eF();if(e)try{e.setItem(eD,"1")}catch{}}function eH(){let{t:e}=(0,J.s)(),[t,r]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=!1;try{e=new URLSearchParams(window.location.search).has("piweb_connected")}catch{e=!1}e&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:eF();if(!e)return!1;try{return"1"!==e.getItem(eD)}catch{return!1}}()&&r(!0)},[]);let i=(0,s.useCallback)(()=>{eO(),r(!1)},[]),o=(0,s.useCallback)(()=>{eO(),r(!1),window.location.href="piweb-switch://manage"},[]);return t?(0,n.jsxs)("div",{role:"status",style:{position:"fixed",top:56,right:16,zIndex:700,width:288,padding:"14px 16px 14px",borderRadius:12,background:"var(--bg-panel)",border:"1px solid var(--border)",boxShadow:"0 12px 36px rgba(0,0,0,0.32)",color:"var(--text)"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:-6,right:28,width:10,height:10,background:"var(--bg-panel)",borderTop:"1px solid var(--border)",borderLeft:"1px solid var(--border)",transform:"rotate(45deg)"}}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[(0,n.jsx)(_.X,{size:18,color:"var(--accent)",style:{flexShrink:0,marginTop:1}}),(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:13.5,fontWeight:600,lineHeight:1.45},children:e("desktop.serverHintTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 0",fontSize:12.5,lineHeight:1.65,color:"var(--text-muted)"},children:e("desktop.serverHintBody")})]}),(0,n.jsx)("button",{type:"button",onClick:i,"aria-label":e("desktop.serverHintDismiss"),title:e("desktop.serverHintDismiss"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,flexShrink:0,background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)"},children:(0,n.jsx)(eP.X,{size:14,"aria-hidden":"true"})})]}),(0,n.jsx)("button",{type:"button",onClick:o,style:{marginTop:12,width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 12px",borderRadius:9,background:"var(--accent)",border:"none",color:"var(--accent-fg)",fontSize:13,fontWeight:600,cursor:"pointer"},children:e("desktop.serverHintAction")})]}):null}let eB=[{id:"pi",label:"Pi",titleKey:"uiKit.kitPiDescription"},{id:"claude",label:"Claude",titleKey:"uiKit.kitClaudeDescription"}];function eU(){let{compact:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{t}=(0,J.s)(),{settings:r,setKit:i}=cn(),[o,a]=(0,s.useState)(!1);(0,s.useEffect)(()=>a(!0),[]);let l=e?24:26,d=e?20:22,c=e?"0 6px":"0 9px",u=e?10:11;return o?(0,n.jsx)("div",{role:"group","aria-label":t("uiKit.title"),className:"app-no-drag",style:{display:"inline-flex",alignItems:"center",gap:1,padding:1,height:l,flexShrink:0,borderRadius:999,border:"0.5px solid var(--cds-hairline-1, var(--border))",background:"var(--cds-fill-secondary, var(--bg-hover))"},children:eB.map(e=>{let{id:s,label:o,titleKey:a}=e,l=r.kit===s;return(0,n.jsx)("button",{type:"button",onClick:()=>i(s),"aria-pressed":l,title:t(a),style:{height:d,padding:c,border:"none",borderRadius:999,cursor:"pointer",fontSize:u,fontWeight:l?600:400,lineHeight:1,whiteSpace:"nowrap",color:l?"var(--accent-fg, var(--bg))":"var(--text-muted)",background:l?"var(--accent)":"transparent",transition:"background 0.12s, color 0.12s"},children:o},s)})}):(0,n.jsx)("span",{"aria-hidden":"true",style:{width:e?84:116,height:l,flexShrink:0}})}function e_(e){let{isDark:t,toggleTheme:r,translate:i}=e,[o,a]=(0,s.useState)(!1);(0,s.useEffect)(()=>{a(!0)},[]);let l=i(o?t?"desktop.switchToLight":"desktop.switchToDark":"desktop.switchToLight");return(0,n.jsx)("button",{className:"app-no-drag",suppressHydrationWarning:!0,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();r({x:t.left+t.width/2,y:t.top+t.height/2})},title:l,"aria-label":l,"aria-pressed":!o||t,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:o?t?(0,n.jsx)(D.b,{size:16,"aria-hidden":"true"}):(0,n.jsx)(O.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(D.b,{size:16,"aria-hidden":"true"})})}function eK(e){let t,r,i,o,a,l,d,c,u,p,h,{topBarRef:x,sidebarOpen:g,onSidebarToggle:f,isDark:m,toggleTheme:v,isMobile:y,showTasks:b,tasksBoardEnabled:k,onToggleTasks:j,systemPrompt:w,activeTopPanel:S,topPanelPos:C,sessionStats:z,selectedSession:T,contextUsage:R,copiedSessionField:I,onCopySessionField:N,rightPanelOpen:M,onToggleFilePanel:E,onRefreshSession:$,sessionTitle:L,onWorkspaceControlsHostChange:W,onTitleRightHostChange:A,desktopChrome:P,windowDrag:F}=e,{t:D}=(0,J.s)(),[O,Y]=(0,s.useState)(!1);G(O,()=>Y(!1));let[X,Z]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{try{Z(new URLSearchParams(window.location.search).has("piweb_connected"))}catch{Z(!1)}},[]),(0,n.jsxs)(n.Fragment,{children:[X&&(0,n.jsx)(eH,{}),(0,n.jsxs)("div",{ref:x,className:"app-title-bar",...P?.dragRegionProps,...F,style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:48,background:"transparent",position:"relative",zIndex:600},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",minWidth:0,height:"100%",flex:"0 1 auto",position:"relative",zIndex:1},children:[(0,n.jsx)("button",{className:"app-no-drag",onClick:f,title:g?D("desktop.hideSidebar"):D("desktop.showSidebar"),"aria-label":g?D("desktop.hideSidebar"):D("desktop.showSidebar"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:g?(0,n.jsx)(H.V,{size:16,"aria-hidden":"true"}):(0,n.jsx)(B.B,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("div",{className:"app-no-drag",ref:W,style:{flex:"0 1 auto",minWidth:0,maxWidth:"min(60vw, 820px)",height:"100%",display:"flex",alignItems:"center",padding:"0 8px 0 0",overflow:"visible"}})]}),(0,n.jsxs)("div",{className:"app-title-drag",style:{position:"relative",flex:"1 1 auto",minWidth:0,height:"100%",display:"flex",alignItems:"center",justifyContent:"flex-start",padding:y?"0 8px 0 4px":"0 4px 0 12px",overflow:"visible",userSelect:"none"},children:[L&&(0,n.jsx)("button",{type:"button",className:"app-no-drag",onClick:()=>{y&&Y(!0)},style:{display:"block",flex:"0 1 auto",minWidth:0,maxWidth:y?"100%":"min(46vw, 560px)",fontSize:12,fontWeight:500,color:"var(--text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",background:"none",border:"none",cursor:"pointer",padding:"2px 6px",borderRadius:5},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:L}),(0,n.jsx)("div",{className:"app-no-drag",ref:A,style:{flexShrink:0,display:"flex",alignItems:"center",marginLeft:4,position:"relative",zIndex:2}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:3,minWidth:0,height:"100%",flexShrink:+!y,overflow:"hidden",marginLeft:"auto",position:"relative",zIndex:1},children:[!y&&k&&(0,n.jsx)("button",{className:"app-no-drag",onClick:j,title:b?D("desktop.hideTaskBoard"):D("desktop.showTaskBoard"),"aria-label":b?D("desktop.hideTaskBoard"):D("desktop.showTaskBoard"),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)(U.x,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",onClick:E,title:M?D("desktop.hideFilePanel"):D("desktop.showFilePanel"),"aria-label":M?D("desktop.hideFilePanel"):D("desktop.showFilePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:M?"var(--bg-selected)":"none",border:"none",color:M?"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=M?"var(--bg-selected)":"none",e.currentTarget.style.color=M?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(H.V,{size:16,"aria-hidden":"true",style:{transform:"scaleX(-1)"}})}),(0,n.jsx)(eU,{compact:y}),(0,n.jsx)(e_,{isDark:m,toggleTheme:v,translate:D}),X&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:()=>{window.location.href="piweb-switch://manage"},title:D("desktop.serverSwitch"),"aria-label":D("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)(_.X,{size:16,"aria-hidden":"true"})}),!X&&!y&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:$,title:D("desktop.refreshSession"),"aria-label":D("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)(K.S,{size:16,"aria-hidden":"true"})})]})]}),(0,n.jsx)(eA,{onRefreshSession:$}),S&&C&&(0,n.jsxs)("div",{style:{position:"fixed",top:C.top,left:C.left,width:C.width,maxHeight:`calc(100dvh - ${C.top}px)`,overflowY:"auto",zIndex:500},children:["system"===S&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:w?(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:w}):""===w?(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"===S&&(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:z?(t=[...z.sessionName?[{label:D("desktop.name"),value:z.sessionName,copyField:null}]:[],{label:D("desktop.sessionInfoFile"),value:z.sessionFile??D("desktop.sessionInfoInMemory"),copyField:"file"},{label:D("desktop.sessionInfoId"),value:z.sessionId,copyField:"id"}],r=[[D("desktop.sessionInfoUser"),z.userMessages.toLocaleString()],[D("desktop.sessionInfoAssistant"),z.assistantMessages.toLocaleString()],[D("desktop.sessionInfoToolCalls"),z.toolCalls.toLocaleString()],[D("desktop.sessionInfoToolResults"),z.toolResults.toLocaleString()],[D("desktop.sessionInfoTotal"),z.totalMessages.toLocaleString()]],i=[[D("desktop.sessionInfoInput"),z.tokens.input.toLocaleString()],[D("desktop.sessionInfoOutput"),z.tokens.output.toLocaleString()],...z.tokens.cacheRead>0?[[D("desktop.sessionInfoCacheRead"),z.tokens.cacheRead.toLocaleString()]]:[],...z.tokens.cacheWrite>0?[[D("desktop.sessionInfoCacheWrite"),z.tokens.cacheWrite.toLocaleString()]]:[],[D("desktop.sessionInfoTotal"),z.tokens.total.toLocaleString()]],o=R??z.contextUsage,l=[...z.cost>0?[[D("desktop.sessionInfoCost"),`$${z.cost.toFixed(4)}`]]:[],...o?.contextWindow?[[D("desktop.sessionInfoContext"),`${null!==o.percent?`${o.percent.toFixed(1)}%`:"?"} / ${(a=o.contextWindow)>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(0)}k`:String(a)}`]]:[]],d=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"left",s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return(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:s?"max-content max-content":"auto minmax(0, 1fr)",columnGap:s?14:12,rowGap:4,justifyContent:s?"start":void 0},children:t.map(t=>{let[i,o]=t;return(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:i}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:s?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:o})]},`${e}:${i}`)})})]})},c=(e,t)=>{let r=I===e;return(0,n.jsx)("button",{type:"button",title:r?D("desktop.copied"):D({file:"desktop.copyFilePath",id:"desktop.copySessionId",projectDir:"desktop.copyProjectDir",gitBranch:"desktop.copyGitBranch",gitWorktree:"desktop.copyGitWorktree"}[e]),onClick:()=>N(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)(q.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(V.Q,{size:12,"aria-hidden":"true"})})},u=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:D("desktop.sessionInfoTitle")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:t.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?c(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),h=(p=[...T?[{label:D("desktop.projectDir"),value:T.projectRoot??T.cwd,copyField:"projectDir"}]:[],...T?.branch?[{label:D("desktop.gitBranch"),value:T.branch,copyField:"gitBranch"}]:[],...T?.isWorktree?[{label:D("desktop.gitWorktree"),value:T.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:D("desktop.projectSection")}),(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?c(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:y?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:y?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:y?16:20,minWidth:0},children:[u,h]}),d(D("desktop.sessionInfoMessages"),r),d(D("desktop.sessionInfoTokens"),[...i,...l],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:D("desktop.sendMessageForSessionInfo")})})]}),O&&L&&(0,n.jsx)("div",{className:"app-no-drag",onClick:()=>Y(!1),style:{position:"fixed",inset:0,zIndex:3e3,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:48,background:"rgba(0,0,0,0.35)",cursor:"pointer"},children:(0,n.jsxs)("div",{role:"dialog","aria-label":L,style:{position:"relative",maxWidth:"min(560px, calc(100vw - 32px))",maxHeight:"min(60vh, 400px)",overflow:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 16px 40px rgba(0,0,0,0.3)",padding:"14px 40px 14px 18px",fontSize:13,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",whiteSpace:"pre-wrap",cursor:"default"},children:[L,(0,n.jsx)("button",{type:"button","aria-label":D("i18n.close"),title:D("i18n.close"),onClick:e=>{e.stopPropagation(),Y(!1)},style:{position:"sticky",top:0,float:"right",marginLeft:8,display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,border:"none",borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:14,lineHeight:1},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="none"},children:"✕"})]})})]})}class eq extends Error{constructor(e,t){super(e),this.code=t,this.name="SessionTitleClientError"}}async function eV(e,t){let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST",signal:t}),n=await r.json().catch(()=>({}));if(!r.ok||!n.title)throw new eq(n.error||`HTTP ${r.status}`,n.code);return{title:n.title,usage:n.usage}}async function eJ(e){try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"DELETE"}),r=await t.json().catch(()=>({}));return t.ok&&!0===r.cancelled}catch{return!1}}var eG=r(47650),eY=r(25349),eX=r(9720),eZ=r(20077),eQ=r(49467),e0=r(85265),e1=r(56123),e2=r(94125),e6=r(3083),e4=r(6033),e5=r(73988),e3=r(11693),e8=r(77862),e7=r(4539),e9=r(5085),te=r(80388),tt=r(36824),tr=r(19157),tn=r(42515),ts=r(44368);let ti="0.19.0";function to(e,t){if(e.size!==t.size)return!1;for(let r of e)if(!t.has(r))return!1;return!0}let ta="(max-width: 640px)",tl=e=>(function(e,t){if(!window.matchMedia)return()=>{};let r=window.matchMedia(e);return r.addEventListener("change",t),()=>r.removeEventListener("change",t)})(ta,e),td=()=>!!window.matchMedia&&window.matchMedia(ta).matches;function tc(){return!1}function tu(){return(0,s.useSyncExternalStore)(tl,td,tc)}async function tp(e){let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/cwd/browse${t}`),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);return n}function th(){return(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M1.5 3h4l1.5 2h7.5v7.5h-13z"})})}function tx(){return(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"2",y:"3",width:"12",height:"10",rx:"1.5"}),(0,n.jsx)("path",{d:"M2 9h12"}),(0,n.jsx)("circle",{cx:"11.5",cy:"11",r:"0.6",fill:"currentColor",stroke:"none"})]})}function tg(e){let t,{onCancel:r,onSelect:i,initialPath:o,busy:a=!1,error:l}=e,{t:d}=(0,J.s)(),[c,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(""),[x,g]=(0,s.useState)(null),[f,m]=(0,s.useState)([]),[v,y]=(0,s.useState)(null),[b,k]=(0,s.useState)(null),[j,w]=(0,s.useState)(!0),[S,C]=(0,s.useState)(""),z=(0,s.useCallback)(async e=>{w(!0),k(null),C("");try{let t=await tp(e),r=t.path??e??"/";h(r),g(t.parentPath??null),m(t.directories??[]),y(t.drives??null)}catch(e){k(e instanceof Error?e.message:String(e))}finally{w(!1)}},[]);(0,s.useEffect)(()=>{u(document.body),z(o||void 0)},[o,z]);let T=!!p&&!a,R=!!x||/^[a-zA-Z]:[\\/]?$/.test(p);return c?(0,eG.createPortal)((0,n.jsx)("div",{className:"directory-picker-backdrop",role:"dialog","aria-modal":"true","aria-label":d("directoryPicker.selectDirectory"),onKeyDown:e=>{"Escape"!==e.key||a||r()},style:{position:"fixed",inset:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.35)"},children:(0,n.jsxs)("div",{className:"directory-picker-panel",style:{width:520,maxWidth:"calc(100vw - 16px)",height:"min(620px, calc(100dvh - 16px))",maxHeight:"calc(100dvh - 16px)",display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",flexShrink:0,padding:"12px 18px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)("div",{style:{color:"var(--text)",fontWeight:700,fontSize:15},children:d("directoryPicker.selectDirectory")})}),(0,n.jsx)("button",{type:"button",onClick:r,disabled:a,title:d("i18n.close"),"aria-label":d("i18n.close"),style:{padding:"2px 6px",border:0,background:"none",color:"var(--text-muted)",fontSize:20,lineHeight:1,cursor:a?"default":"pointer",opacity:a?.5:1},children:"\xd7"})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"10px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-back",type:"button",onClick:()=>void z(x??void 0),disabled:j||!R,title:d("directoryPicker.goToParent"),"aria-label":d("directoryPicker.goToParent"),style:{width:36,height:36,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-hover)",color:"var(--text-muted)",cursor:R?"pointer":"default",opacity:R?1:.45},children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"m18 15-6-6-6 6"})})}),(0,n.jsx)("div",{title:p,style:{minWidth:0,flex:1,height:36,display:"flex",alignItems:"center",padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:12,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:p||d("directoryPicker.loadingDirectories")})]}),(0,n.jsxs)("div",{className:"directory-picker-list",style:{flex:1,minHeight:0,overflow:"auto",padding:"8px 10px"},children:[j?(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:d("directoryPicker.loadingDirectories")}):null!==v?(0,n.jsx)(n.Fragment,{children:v.length>0?v.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void z(e.path),title:e.path,style:{width:"100%",minHeight:34,display:"flex",alignItems:"center",gap:7,padding:"6px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,n.jsx)(tx,{}),(0,n.jsx)("span",{children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:d("directoryPicker.noDrives")})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("input",{type:"text",value:S,onChange:e=>C(e.target.value),placeholder:d("directoryPicker.filterPlaceholder"),"aria-label":d("directoryPicker.filterPlaceholder"),style:{width:"100%",boxSizing:"border-box",marginBottom:6,padding:"5px 9px",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11,outline:"none"}}),(t=function(e,t){if(null===t||""===t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(e=>e.name.toLowerCase().includes(r)):[...e]}(f,S)).length>0?t.map(e=>(0,n.jsxs)("button",{className:"directory-picker-entry",type:"button",onClick:()=>void z(e.path),title:e.path,style:{width:"100%",minHeight:30,display:"flex",alignItems:"center",gap:7,padding:"5px 8px",border:0,borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,n.jsx)(th,{}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path)):(0,n.jsx)("div",{style:{padding:8,color:"var(--text-dim)",fontSize:11},children:d(S.trim()?"directoryPicker.noMatchingDirectories":"directoryPicker.noSubdirectories")})]}),(b||l)&&(0,n.jsx)("div",{style:{padding:"8px",color:"var(--status-error)",fontSize:11},children:b??l})]}),(0,n.jsxs)("div",{className:"directory-picker-footer",style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:10,flexShrink:0,padding:"10px 18px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:r,disabled:a,style:{padding:"6px 14px",border:"1px solid var(--border)",borderRadius:6,background:"none",color:"var(--text-muted)",cursor:a?"default":"pointer",fontSize:13},children:d("i18n.cancel")}),(0,n.jsx)("button",{className:"directory-picker-action",type:"button",onClick:()=>i(p),disabled:!T,title:d("directoryPicker.selectCurrentDirectory"),style:{padding:"6px 16px",border:0,borderRadius:6,background:"var(--accent)",color:"var(--accent-fg)",fontSize:13,fontWeight:600,opacity:T?1:.6,cursor:T?"pointer":"default"},children:d(a?"i18n.checking":"directoryPicker.selectThisFolder")})]})]})}),c):null}var tf=r(63256),tm=r(19413),tv=r(30515),ty=r(32970),tb=r(69248),tk=r(95516),tj=r(6513);function tw(e,t){return`url(/catppuccin-icons/${e}/${t}.svg)`}function tS(e){let{icon:t,size:r=14}=e,s={"--catppuccin-icon-light":tw("latte",t),"--catppuccin-icon-dark":tw("mocha",t),width:r,height:r};return(0,n.jsx)("span",{className:"catppuccin-file-icon",style:s,"aria-hidden":"true"})}let tC={".github":"github",".git":"git",".vscode":"vscode",".next":"next",".nuxt":"nuxt",".storybook":"storybook",".turbo":"turbo",".yarn":"yarn",".husky":"husky",".cursor":"cursor",api:"api",app:"app",assets:"assets",components:"components",config:"config",docs:"docs",examples:"examples",hooks:"hooks",lib:"lib",node_modules:"node",pages:"routes",public:"public",scripts:"scripts",src:"src",styles:"styles",test:"tests",tests:"tests",__tests__:"tests",types:"types",utils:"utils"};function tz(e){let{size:t=14,open:r=!1,name:s}=e,i=s?tC[s.toLowerCase()]:void 0,o=i?`folder_${i}${r?"_open":""}`:`_${r?"folder_open":"folder"}`;return(0,n.jsx)(tS,{icon:o,size:t})}function tT(e){let{size:t=14}=e;return(0,n.jsx)(tS,{icon:"_file",size:t})}function tR(e){let{icon:t,size:r=14}=e;return(0,n.jsx)(tS,{icon:t,size:r})}let tI={".babelrc":"babel",".dockerignore":"docker-ignore",".env":"env",".eslintignore":"eslint-ignore",".eslintrc":"eslint",".gitattributes":"git",".gitignore":"git",".gitmodules":"git",".npmignore":"npm-ignore",".prettierignore":"prettier-ignore",".prettierrc":"prettier",".yarnrc":"yarn","bun.lock":"bun-lock","bun.lockb":"bun-lock","cargo.lock":"cargo-lock","cargo.toml":"cargo",codeowners:"codeowners","docker-compose.yaml":"docker-compose","docker-compose.yml":"docker-compose",dockerfile:"docker","eslint.config.js":"eslint","eslint.config.mjs":"eslint","eslint.config.ts":"eslint","next.config.js":"next","next.config.mjs":"next","next.config.ts":"next","package-lock.json":"npm-lock","package.json":"package-json","pnpm-lock.yaml":"pnpm-lock","pnpm-workspace.yaml":"pnpm","prettier.config.js":"prettier","prettier.config.mjs":"prettier","prettier.config.ts":"prettier","tailwind.config.js":"tailwind","tailwind.config.ts":"tailwind","tsconfig.json":"typescript-config","vite.config.js":"vite","vite.config.mjs":"vite","vite.config.ts":"vite","vitest.config.ts":"vitest","yarn.lock":"yarn-lock"},tN={astro:"astro",bash:"bash",c:"c",cpp:"cpp",css:"css",csv:"csv",cjs:"javascript",cts:"typescript",dockerfile:"docker",env:"env",go:"go",gql:"graphql",graphql:"graphql",hcl:"terraform",htm:"html",html:"html",ini:"config",java:"java",js:"javascript",json:"json",jsonc:"json",jsonl:"json",jsx:"javascript-react",less:"less",lua:"lua",md:"markdown",mdx:"markdown-mdx",mjs:"javascript",mts:"typescript",pdf:"pdf",php:"php",py:"python",rs:"rust",sass:"sass",scss:"sass",sh:"bash",sql:"database",svg:"svg",svelte:"svelte",tf:"terraform",toml:"toml",ts:"typescript",tsx:"typescript-react",txt:"text",vue:"vue",xml:"xml",yaml:"yaml",yml:"yaml",zsh:"bash"};function tM(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:14,r=e.toLowerCase(),s=tI[r];if(s)return(0,n.jsx)(tR,{icon:s,size:t});if(".env"===r||r.startsWith(".env."))return(0,n.jsx)(tR,{icon:"env",size:t});if("dockerfile"===r||r.startsWith("dockerfile."))return(0,n.jsx)(tR,{icon:"docker",size:t});if(r.endsWith(".config.ts")||r.endsWith(".config.js")||r.endsWith(".config.mjs")||r.endsWith(".config.cjs"))return(0,n.jsx)(tR,{icon:r.startsWith("vite.")?"vite":"config",size:t});let i=tN[r.split(".").pop()??""];return i?(0,n.jsx)(tR,{icon:i,size:t}):(0,n.jsx)(tT,{size:t})}function tE(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function t$(e){let t=tE(e),r=t.split("/").filter(Boolean);return t.startsWith("//")&&r.length>0&&(r[0]=`//${r[0]}`),r.map(encodeURIComponent).join("/")}function tL(e){let t=tE(e).replace(/\/+$/,"");return t.split("/").pop()??t}function tW(e,t){if(!t)return e;let r=tE(e),n=tE(t).replace(/\/$/,"");return r.startsWith(n+"/")?r.slice(n.length+1):e}function tA(e,t){return`${tE(e).replace(/\/$/,"")}/${t}`}var tP=r(79617),tF=r(87358);function tD(e){return e&&"win32"===tF.platform?(0,tP.normalize)(e):e}function tO(e,t){return e===t||!!e&&!!t&&"win32"===tF.platform&&tD(e).toLowerCase()===tD(t).toLowerCase()}var tH=r(87358);function tB(){let e=tH.env.NEXT_PUBLIC_PI_WEB_FILE_EDITING;return!!e&&["1","true","yes","on"].includes(e.trim().toLowerCase())}function tU(e){let t=e.replace(/\\/g,"/").replace(/\/+$/,"");return/^[a-zA-Z]:\//.test(t)?t.toLowerCase():t}function t_(e){return"added"===e?"var(--git-status-added)":"deleted"===e?"var(--git-status-deleted)":"modified"===e?"var(--git-status-modified)":"var(--text)"}function tK(e){return"deleted"===e?3:"added"===e?2:1}async function tq(e){let t=await fetch(`/api/git/status?${new URLSearchParams({cwd:e}).toString()}`,{cache:"no-store"});if(!t.ok)throw Error(`Failed to load Git status (HTTP ${t.status})`);return t.json()}async function tV(e){let t=t$(e),r=await fetch(`/api/files/${t}?type=list`);if(!r.ok){let e=`Failed to load files (HTTP ${r.status})`;try{let t=await r.json();t.error&&(e=t.error)}catch{}throw Error(e)}return((await r.json()).entries??[]).map(t=>({name:t.name,fullPath:tA(e,t.name),isDir:t.isDir,size:t.size,children:t.isDir?[]:void 0,loaded:!t.isDir}))}function tJ(e){let{size:t=11}=e;return(0,n.jsx)(tf.At,{size:t,weight:"regular","aria-hidden":"true"})}function tG(e){let{onClick:t,title:r}=e;return(0,n.jsx)("button",{type:"button",onClick:t,title:r,"aria-label":r,style:{width:24,height:24,padding:0,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(eP.X,{size:13,weight:"regular","aria-hidden":"true"})})}async function tY(e,t,r,n){let s=await fetch(`/api/files/${t$(e)}?type=create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,kind:r,content:n??""})}),i=await s.json().catch(()=>({}));if(!s.ok||!i.path)throw Error(i.error??`Create failed (HTTP ${s.status})`);return{path:i.path}}async function tX(e){let t=await fetch(`/api/files/${t$(e)}`,{method:"DELETE"});if(!t.ok){let e=`Delete failed (HTTP ${t.status})`;try{let r=await t.json();r.error&&(e=r.error)}catch{}throw Error(e)}}let tZ={display:"flex",alignItems:"center",justifyContent:"center",gap:4,padding:"0 5px",height:20,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"};function tQ(e){let t,{node:r,depth:i,cwd:o,onOpenFile:a,onAtMention:l,expandedPaths:d,onToggleExpanded:c,refreshToken:u,highlightedPaths:p,ignoredPaths:h,changedFiles:x,editingEnabled:g,onCreateFile:f,onCreateFolder:m,onDelete:v,selectedPath:y}=e,{t:b}=(0,J.s)(),k=d.has(r.fullPath),j=p.has(r.fullPath),w=!!y&&tO(y,r.fullPath),S=tU(r.fullPath),C=function(e,t){if(t.has(e))return!0;for(let r of t)if(e.startsWith(`${r}/`))return!0;return!1}(S,h),z=function(e,t,r){let n,s=r.get(e);if(s||!t)return s;for(let[t,s]of r)t.startsWith(`${e}/`)&&(!n||tK(s)>tK(n))&&(n=s);return n}(S,r.isDir,x),[T,R]=(0,s.useState)(r.children??[]),[I,N]=(0,s.useState)(r.loaded??!1),[M,E]=(0,s.useState)(!1),[$,L]=(0,s.useState)(!1),W=(0,s.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!I||e){E(!0);try{let e=await tV(r.fullPath);R(e),N(!0)}catch{}finally{E(!1)}}},[I,r.fullPath]);(0,s.useEffect)(()=>{void 0!==u&&k&&I&&W(!0)},[u]);let A=(0,s.useCallback)(()=>{if(r.isDir){let e=!k;c(r.fullPath,e),e&&!I&&W()}else a(r.fullPath,r.name)},[r.isDir,r.fullPath,r.name,I,k,W,a,c]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{onClick:A,onKeyDown:e=>{e.target!==e.currentTarget||("Enter"===e.key||" "===e.key)&&(e.preventDefault(),A())},onMouseEnter:()=>L(!0),onMouseLeave:()=>L(!1),role:"treeitem",tabIndex:-1,"data-tree-row":"","aria-selected":w||void 0,"aria-expanded":r.isDir?k:void 0,"aria-current":w?"true":void 0,style:{position:"relative",display:"flex",alignItems:"center",gap:4,paddingLeft:8+14*i,paddingRight:8,height:24,cursor:"pointer",background:w?"var(--bg-selected)":$?"var(--bg-hover)":"transparent",borderRadius:4,userSelect:"none",opacity:C?$?.72:.5:1},children:[r.isDir&&(0,n.jsx)(e2.K,{size:10,color:"var(--text-dim)",weight:"regular",style:{flexShrink:0,transform:k?"rotate(90deg)":"none",transition:"transform 0.1s"},"aria-hidden":"true"}),!r.isDir&&(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsxs)("span",{style:{position:"relative",width:14,height:14,flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center"},children:[r.isDir?(0,n.jsx)(tz,{size:14,open:k,name:r.name}):tM(r.name,14),z&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:-1,top:"50%",transform:"translateY(-50%)",zIndex:1,width:7,height:7,border:"1px solid var(--bg-panel)",borderRadius:"50%",background:t_(z)}})]}),(0,n.jsx)("span",{style:{fontSize:12,color:t_(z),overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},title:r.fullPath,children:r.name}),j&&(0,n.jsx)("span",{title:"Newly uploaded","aria-label":"Newly uploaded",style:{width:6,height:6,flexShrink:0,borderRadius:"50%",background:"var(--status-info)"}}),M&&(0,n.jsx)(tm.y,{size:10,color:"var(--text-dim)",weight:"regular","aria-hidden":"true"}),$&&(t=[],(l&&t.push((0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),l(tW(r.fullPath,o),r.isDir)},title:b("files.insertPath"),style:{...tZ,color:"var(--accent)"},children:[(0,n.jsx)(tJ,{}),b("files.mention")]},"mention")),g&&r.isDir&&t.push((0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),f(r.fullPath)},title:b("files.newFile"),"aria-label":b("files.newFile"),style:tZ,children:(0,n.jsx)(tv.p,{size:11,weight:"regular","aria-hidden":"true"})},"new-file"),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),m(r.fullPath)},title:b("files.newFolder"),"aria-label":b("files.newFolder"),style:tZ,children:(0,n.jsx)(ty.JU,{size:11,weight:"regular","aria-hidden":"true"})},"new-folder")),r.isDir||t.push((0,n.jsx)("a",{href:`/api/files/${t$(r.fullPath)}?type=download`,download:!0,onClick:e=>e.stopPropagation(),title:b("files.download"),style:{...tZ,color:"var(--text-muted)",textDecoration:"none"},children:(0,n.jsx)(tt.z,{size:11,weight:"regular","aria-hidden":"true"})},"download")),g&&t.push((0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),v(r.fullPath,r.name,r.isDir)},title:b("files.delete"),"aria-label":b("files.delete"),style:{...tZ,color:"var(--status-error)"},children:(0,n.jsx)(e3.l,{size:11,weight:"regular","aria-hidden":"true"})},"delete")),0===t.length)?null:(0,n.jsx)("div",{style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",gap:3},children:t}))]}),r.isDir&&k&&(0,n.jsxs)("div",{children:[T.map(e=>(0,n.jsx)(tQ,{node:e,depth:i+1,cwd:o,onOpenFile:a,onAtMention:l,expandedPaths:d,onToggleExpanded:c,refreshToken:u,highlightedPaths:p,ignoredPaths:h,changedFiles:x,editingEnabled:g,onCreateFile:f,onCreateFolder:m,onDelete:v,selectedPath:y},e.fullPath)),0===T.length&&I&&(0,n.jsx)("div",{style:{paddingLeft:8+(i+1)*14,fontSize:11,color:"var(--text-dim)",height:22,display:"flex",alignItems:"center"},children:"empty"})]})]})}let t0=(0,s.forwardRef)(function(e,t){let{cwd:r,onOpenFile:i,refreshKey:o,onAtMention:a,onAtMentions:l,onUploadBusyChange:d,fileSearchOpen:c=!1,onFileSearchOpenChange:u,onFileCreated:p,onFileDeleted:h,selectedFilePath:x}=e,{t:g}=(0,J.s)(),[f,m]=(0,s.useState)([]),[v,y]=(0,s.useState)(null),[b,k]=(0,s.useState)(!0),[j,w]=(0,s.useState)(null),[S,C]=(0,s.useState)(new Set),[z,T]=(0,s.useState)(0),[R,I]=(0,s.useState)(new Set);(0,s.useEffect)(()=>{if(0===R.size)return;let e=setTimeout(()=>I(new Set),15e3);return()=>clearTimeout(e)},[R]);let[N,M]=(0,s.useState)(""),[E,$]=(0,s.useState)([]),[L,W]=(0,s.useState)(!1),[A,P]=(0,s.useState)(!1),[F,D]=(0,s.useState)(new Set),O=(0,s.useRef)(null),H=N.trim().length>0,[B,U]=(0,s.useState)("idle"),[_,K]=(0,s.useState)(0),[V,G]=(0,s.useState)(null),[Y,X]=(0,s.useState)(null),[Z,Q]=(0,s.useState)(null),[ee,et]=(0,s.useState)(null),er=(0,s.useRef)(null),en=(0,s.useRef)(null),es=`${o??0}:${z}`,ei="idle"!==B,eo=tB(),ea=(0,s.useMemo)(()=>new Set((v?.ignoredPaths??[]).map(tU)),[v]),el=(0,s.useMemo)(()=>new Map((v?.files??[]).map(e=>{var t;return[tU(e.filePath),"added"===(t=e.status)||"untracked"===t?"added":"deleted"===t||"conflict"===t?"deleted":"modified"]})),[v]);(0,s.useEffect)(()=>{if(!c)return;let e=N.trim();if(!e){$([]),W(!1),P(!1);return}let t=new AbortController;W(!0),P(!1);let n=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(r)}&q=${encodeURIComponent(e)}`,{signal:t.signal}).then(e=>e.ok?e.json():Promise.reject(Error("Search failed"))).then(e=>$((e.matches??[]).filter(e=>!e.isDir).map(e=>e.path))).catch(()=>{t.signal.aborted||($([]),P(!0))}).finally(()=>{t.signal.aborted||W(!1)})},150);return()=>{clearTimeout(n),t.abort()}},[r,c,N]),(0,s.useEffect)(()=>{c&&O.current?.focus()},[c]),(0,s.useEffect)(()=>{if(0===E.length)return;let e=new Set;for(let t of E){let n=t.split("/"),s="";for(let t=0;t<n.length-1;t++)s=s?`${s}/${n[t]}`:n[t],e.add(tA(r,s))}D(t=>{let r=!1,n=new Set(t);for(let t of e)n.has(t)||(n.add(t),r=!0);return r?n:t})},[r,E]);let ed=(0,s.useMemo)(()=>{let e=t=>({name:t.name,fullPath:tA(r,t.path),isDir:t.isDir,size:0,children:t.children.map(e),loaded:!0});return(function(e){let t=[],r=new Map;for(let n of e){let e=n.split("/"),s=t,i="";for(let t=0;t<e.length;t++){i=i?`${i}/${e[t]}`:e[t];let n=r.get(i);n||(n={name:e[t],path:i,isDir:t<e.length-1,children:[]},r.set(i,n),s.push(n)),s=n.children}}let n=e=>{e.sort((e,t)=>e.isDir!==t.isDir?e.isDir?-1:1:e.name.localeCompare(t.name)),e.forEach(e=>n(e.children))};return n(t),t})(E).map(e)},[r,E]),ec=(0,s.useCallback)((e,t)=>{C(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},[]),eu=(0,s.useCallback)(e=>{if("ArrowDown"!==e.key&&"ArrowUp"!==e.key)return;let t=Array.from(e.currentTarget.querySelectorAll("[data-tree-row]"));if(0===t.length)return;let r=t.indexOf(document.activeElement);e.preventDefault();let n=-1===r?"ArrowDown"===e.key?0:t.length-1:Math.max(0,Math.min(t.length-1,r+("ArrowDown"===e.key?1:-1)));t[n]?.focus()},[]),ep=(0,s.useCallback)(e=>{let t=e.uploaded??[];X({uploaded:t,skipped:e.skipped??[],errors:e.errors??[]}),t.length>0&&(I(new Set(t.map(e=>tA(r,e)))),T(e=>e+1))},[r]),eh=(0,s.useCallback)(async(e,t)=>{Q(null),G(null),K(0),U("uploading");try{let{status:n,data:s}=await new Promise((n,s)=>{let i=new FormData;e.forEach(e=>i.append("files",e,e.name));let o=new XMLHttpRequest;o.open("POST",`/api/files/${t$(r)}?type=upload&conflict=${t}`),o.upload.onprogress=e=>{e.lengthComputable&&e.total>0&&K(Math.round(e.loaded/e.total*100))},o.onerror=()=>s(Error("Network error while uploading files")),o.onabort=()=>s(Error("Upload cancelled")),o.onload=()=>{let e={};try{e=JSON.parse(o.responseText)}catch{o.responseText&&(e.error=o.responseText)}n({status:o.status,data:e})},o.send(i)});if(409===n&&s.conflicts?.length)return void Q({files:e,conflicts:s.conflicts,nonReplaceable:s.nonReplaceable??[]});if(n<200||n>=300)throw Error(s.error??`Upload failed (HTTP ${n})`);K(100),ep(s)}catch(e){G(e instanceof Error?e.message:String(e))}finally{U("idle")}},[ep,r]),ex=(0,s.useCallback)(async e=>{if(0!==e.length&&!ei){X(null),I(new Set),Q(null),G(null),K(0),U("checking");try{let t=await fetch(`/api/files/${t$(r)}?type=upload-check`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileNames:e.map(e=>e.name)})}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n.error??`Upload check failed (HTTP ${t.status})`);if(n.conflicts?.length)return void Q({files:e,conflicts:n.conflicts,nonReplaceable:n.nonReplaceable??[]});await eh(e,"error")}catch(e){G(e instanceof Error?e.message:String(e))}finally{U("idle")}}},[r,eh,ei]),eg=(0,s.useCallback)(e=>{let t=Array.from(e.target.files??[]);e.target.value="",ex(t)},[ex]),ef=(0,s.useCallback)(async e=>{et(null);let t=window.prompt(g("files.promptFileName"));if(t)try{await tY(e,t,"file");let r=tA(e,t);I(new Set([r])),T(e=>e+1),p?.(r)}catch(e){et(e instanceof Error?e.message:String(e))}},[p,g]),em=(0,s.useCallback)(async e=>{et(null);let t=window.prompt(g("files.promptFolderName"));if(t)try{await tY(e,t,"directory");let r=tA(e,t);I(new Set([r])),T(e=>e+1)}catch(e){et(e instanceof Error?e.message:String(e))}},[g]),ev=(0,s.useCallback)(async(e,t,r)=>{et(null);let n=r?g("files.confirmDeleteDirectory",{name:t}):g("files.confirmDeleteFile",{name:t});if(window.confirm(n))try{await tX(e),T(e=>e+1),h?.(e,r)}catch(e){et(e instanceof Error?e.message:String(e))}},[h,g]);(0,s.useImperativeHandle)(t,()=>({openUploadPicker(){ei||en.current?.click()},openCreateFilePicker(e){ef(e??r)},openCreateFolderPicker(e){em(e??r)}}),[ei,r,ef,em]),(0,s.useEffect)(()=>{d?.(ei)},[d,ei]),(0,s.useEffect)(()=>()=>d?.(!1),[d]),(0,s.useEffect)(()=>{let e=er.current!==r;er.current=r,e&&(C(new Set),I(new Set),X(null),Q(null),G(null)),k(e),w(null);let t=!1;return Promise.all([tV(r),tq(r).catch(()=>null)]).then(e=>{let[r,n]=e;t||(m(r),y(n))}).catch(e=>{t||w(e instanceof Error?e.message:String(e))}).finally(()=>{t||k(!1)}),()=>{t=!0}},[r,o,z]);let ey=ei||null!==Z||null!==V||null!==Y,eb=(0,s.useCallback)(()=>{Y&&0!==Y.uploaded.length&&l?.(Y.uploaded.map(e=>tW(tA(r,e),r)))},[r,l,Y]);return(0,n.jsxs)("div",{style:{minHeight:"100%"},children:[(0,n.jsx)("input",{ref:en,type:"file",multiple:!0,hidden:!0,onChange:eg}),ey&&(0,n.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[ei&&(0,n.jsxs)("div",{role:"status","aria-live":"polite","aria-label":"checking"===B?"Checking files":`Uploading, ${_}%`,children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,minHeight:14,color:"var(--text-muted)"},children:["checking"===B?(0,n.jsx)(tm.y,{size:13,weight:"regular",style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(e8.C,{size:13,weight:"regular","aria-hidden":"true"}),"uploading"===B&&(0,n.jsxs)("span",{style:{fontSize:10},children:[_,"%"]})]}),"uploading"===B&&(0,n.jsx)("div",{style:{height:3,marginTop:4,overflow:"hidden",borderRadius:2,background:"var(--border)"},children:(0,n.jsx)("div",{style:{width:`${_}%`,height:"100%",background:"var(--text-muted)",transition:"width 120ms ease"}})})]}),Z&&(0,n.jsxs)("div",{role:"alert",style:{padding:7,border:"1px solid color-mix(in srgb, #f59e0b 55%, var(--border))",borderRadius:4,background:"color-mix(in srgb, #f59e0b 9%, var(--bg-panel))"},children:[(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:1.35,overflowWrap:"anywhere"},children:[Z.conflicts.length," file",1===Z.conflicts.length?"":"s"," already exist: ",Z.conflicts.join(", ")]}),Z.nonReplaceable.length>0&&(0,n.jsxs)("div",{style:{marginTop:3,fontSize:10,color:"var(--status-warning)",lineHeight:1.35,overflowWrap:"anywhere"},children:["Cannot replace: ",Z.nonReplaceable.join(", ")]}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:7},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void eh(Z.files,"overwrite"),style:{height:22,padding:"0 7px",border:"1px solid var(--status-error)",borderRadius:4,background:"transparent",color:"var(--status-error)",cursor:"pointer",fontSize:10},children:"Replace"}),(0,n.jsx)("button",{type:"button",onClick:()=>void eh(Z.files,"skip"),style:{height:22,padding:"0 7px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",fontSize:10},children:"Skip existing"}),(0,n.jsx)("button",{type:"button",onClick:()=>Q(null),style:{height:22,padding:"0 7px",border:"none",borderRadius:4,background:"transparent",color:"var(--text-muted)",cursor:"pointer",fontSize:10},children:"Cancel"})]})]}),V&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,fontSize:11,lineHeight:1.35,color:"var(--status-error)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:V}),(0,n.jsx)(tG,{onClick:()=>G(null),title:"Dismiss error"})]}),Y&&(0,n.jsxs)("div",{"aria-live":"polite",children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minHeight:22,fontSize:11},children:[(0,n.jsxs)("div",{style:{minWidth:0,flex:1,display:"flex",alignItems:"center",gap:8},children:[Y.uploaded.length>0&&(0,n.jsxs)("span",{title:`${Y.uploaded.length} uploaded`,"aria-label":`${Y.uploaded.length} uploaded`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-success)"},children:[(0,n.jsx)(q.J,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:Y.uploaded.length})]}),Y.skipped.length>0&&(0,n.jsxs)("span",{title:`${Y.skipped.length} skipped`,"aria-label":`${Y.skipped.length} skipped`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)"},children:[(0,n.jsx)(tb.F,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:Y.skipped.length})]}),Y.errors.length>0&&(0,n.jsxs)("span",{title:`${Y.errors.length} failed`,"aria-label":`${Y.errors.length} failed`,style:{display:"flex",alignItems:"center",gap:3,color:"var(--status-error)"},children:[(0,n.jsx)(tk.N,{size:13,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{children:Y.errors.length})]})]}),Y.uploaded.length>0&&l&&(0,n.jsxs)("button",{type:"button",onClick:eb,title:1===Y.uploaded.length?"Add uploaded file to chat":"Add all uploaded files to chat","aria-label":1===Y.uploaded.length?"Add uploaded file to chat":"Add all uploaded files to chat",style:{height:22,padding:"0 7px",display:"flex",alignItems:"center",justifyContent:"center",gap:4,flexShrink:0,border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--accent)",cursor:"pointer",fontSize:11,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(tJ,{}),"mention"]}),(0,n.jsx)(tG,{onClick:()=>X(null),title:"Dismiss upload results"})]}),Y.errors.map(e=>(0,n.jsxs)("div",{title:e.error,style:{display:"flex",alignItems:"center",gap:4,marginTop:3,minWidth:0,fontSize:10,color:"var(--status-error)"},children:[(0,n.jsx)(tj.R,{size:11,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.name))]})]}),ee&&(0,n.jsxs)("div",{role:"alert",style:{display:"flex",alignItems:"flex-start",gap:6,padding:"6px 8px",borderBottom:"1px solid var(--border)",fontSize:11,lineHeight:1.35,color:"var(--status-error)"},children:[(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere"},children:ee}),(0,n.jsx)(tG,{onClick:()=>et(null),title:g("files.dismissError")})]}),c&&(0,n.jsxs)("div",{style:{padding:"6px 8px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{position:"relative"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{position:"absolute",left:8,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none"},children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,n.jsx)("path",{d:"m20 20-4-4"})]}),(0,n.jsx)("input",{ref:O,value:N,onChange:e=>M(e.target.value),onKeyDown:e=>{"Escape"===e.key&&u?.(!1)},placeholder:g("sidebar.searchFilesPlaceholder"),"aria-label":g("sidebar.searchFiles"),style:{width:"100%",boxSizing:"border-box",padding:"6px 24px",border:"1px solid var(--border)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11}}),N&&(0,n.jsx)("button",{type:"button",onClick:()=>M(""),title:g("sidebar.clearSearch"),"aria-label":g("sidebar.clearSearch"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,border:"none",borderRadius:4,background:"none",color:"var(--text-dim)",cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M18 6 6 18"}),(0,n.jsx)("path",{d:"m6 6 12 12"})]})})]}),H&&(0,n.jsxs)("div",{style:{paddingTop:3},children:[L&&(0,n.jsx)("div",{role:"status",style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:g("sidebar.searchingFiles")}),!L&&A&&(0,n.jsx)("div",{role:"alert",style:{padding:"6px 2px",fontSize:10,color:"var(--status-error)"},children:g("i18n.networkError")}),!L&&!A&&0===E.length&&(0,n.jsx)("div",{style:{padding:"6px 2px",fontSize:10,color:"var(--text-dim)"},children:g("sidebar.noMatchingFiles")}),!L&&!A&&E.length>0&&(0,n.jsx)("div",{role:"tree",tabIndex:0,onKeyDown:eu,"aria-label":g("sidebar.searchFiles"),children:ed.map(e=>(0,n.jsx)(tQ,{node:e,depth:0,cwd:r,onOpenFile:i,onAtMention:a,expandedPaths:F,onToggleExpanded:(e,t)=>{D(r=>{let n=new Set(r);return t?n.add(e):n.delete(e),n})},refreshToken:"",highlightedPaths:R,ignoredPaths:ea,changedFiles:el,editingEnabled:eo,onCreateFile:ef,onCreateFolder:em,onDelete:ev,selectedPath:x},`${N}:${e.fullPath}`))})]})]}),(0,n.jsxs)("div",{style:{padding:"2px 4px"},children:[b?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"Loading files..."}):j?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--status-error)"},children:j}):H?(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"}}):(0,n.jsx)("div",{role:"tree",tabIndex:0,onKeyDown:eu,"aria-label":g("desktop.files"),children:f.map(e=>(0,n.jsx)(tQ,{node:e,depth:0,cwd:r,onOpenFile:i,onAtMention:a,expandedPaths:S,onToggleExpanded:ec,refreshToken:es,highlightedPaths:R,ignoredPaths:ea,changedFiles:el,editingEnabled:eo,onCreateFile:ef,onCreateFolder:em,onDelete:ev,selectedPath:x},e.fullPath))}),!b&&!j&&0===f.length&&(0,n.jsx)("div",{style:{padding:"8px 12px",fontSize:11,color:"var(--text-dim)"},children:"No files found"})]})]})});var t1=r(2730);let t2="normal",t6="full",t4="auto";function t5(e){return"normal"===e||"plan"===e||"goal"===e?e:t2}function t3(e){return"economy"===e||"delivery"===e||"full"===e?e:t6}function t8(e){return"ask"===e||"auto"===e||"yolo"===e?e:t4}let t7=["bash","edit","edit_file","grep","find","kill_shell","ls","read","update_goal","wait","write","write_file"],t9=`You are in PLAN MODE. Work as a read-only planning assistant.
|
|
2
|
+
- Analyze, read, search and reason about the codebase; do NOT modify any files.
|
|
3
|
+
- Do NOT run shell commands that mutate state, install packages, or start servers.
|
|
4
|
+
- When you have enough understanding, produce a concrete, step-by-step implementation plan.
|
|
5
|
+
- Structure the plan with clear phases, the files involved, and any risks or open questions.
|
|
6
|
+
- Do not write code yet — the plan itself is the deliverable.`,re=`<economy-profile>
|
|
7
|
+
Economy mode is on. Keep work direct and use the core file and shell tools only.
|
|
8
|
+
Minimize context: skip exploratory reads you do not need, avoid re-reading files you already have,
|
|
9
|
+
and do not pad responses with extra explanation or tool round-trips.
|
|
10
|
+
</economy-profile>`,rt=`<delivery-profile>
|
|
11
|
+
Prioritize a verified, complete result over minimizing model calls or tokens.
|
|
12
|
+
For action requests: establish acceptance criteria; reproduce bugs when practical;
|
|
13
|
+
inspect the relevant code and project rules; fix the root cause; run focused
|
|
14
|
+
verification; review the resulting diff and adjacent behavior; and continue until
|
|
15
|
+
the request is complete or a genuine blocker remains. Do not claim success without
|
|
16
|
+
evidence. State any unverified result or assumption explicitly.
|
|
17
|
+
</delivery-profile>`,rr=`<goal-profile>
|
|
18
|
+
You are working toward a stated goal. Do the next useful work each turn.
|
|
19
|
+
At the end of each turn report your disposition explicitly:
|
|
20
|
+
- "continue" with the next concrete step, when more work remains;
|
|
21
|
+
- "complete" only when the goal is fully done and verified;
|
|
22
|
+
- "blocked" when only the user can unblock you.
|
|
23
|
+
</goal-profile>`;function rn(e){if(!e)return"";let t=e.replace(/^\uFEFF/,""),r=t;if((t=t.replace(/<(?:economy|delivery|goal)-profile>\n?[\s\S]*?<\/(?:economy|delivery|goal)-profile>\n*(?:Goal:\s*[^\n]*\n?)?/g,""))===r){let e=/^\s*<(?:economy|delivery|goal)-profile>\s*/.exec(t);if(e){let r=t.slice(e[0].length).match(/^[^.]*?\.\s+([\s\S]*)$/);t=r?r[1]:""}}return(t=t.replace(/^You are in PLAN MODE\.[\s\S]*?\n(?=\n|$)/,"")).replace(/^\s*\n/,"").trimStart()}function rs(e){if(!e)return!0;let t=e.replace(/[\u200B-\u200D\uFEFF]/g,"").trim();return/^[((]?\s*no\s+messages\s*[)).\u2026]*$/i.test(t)}function ri(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=rn(e.name??"").trim();if(r&&!rs(r))return r;let n=rn(e.firstMessage??"").trim();if(n&&!rs(n))return n.slice(0,50);let s=(e.id??"").trim();return s?s.slice(0,12):t}function ro(e){let{open:t,query:r,children:i,selectedSessionId:o,onSelectSession:a,mode:l="replace",className:d,headerLabel:c}=e,{t:u,locale:p}=(0,J.s)(),[h,x]=(0,s.useState)({query:""}),g=r.trim(),f=h.query===g?h.response:void 0,m=h.query===g&&h.failed;if((0,s.useEffect)(()=>{if(!t||!g)return;let e=new AbortController;x({query:g});let r=setTimeout(async()=>{try{let t=await fetch(`/api/sessions/search?${new URLSearchParams({q:g})}`,{signal:e.signal});if(!t.ok)throw Error(`HTTP ${t.status}`);let r=await t.json();e.signal.aborted||x({query:g,response:r})}catch{e.signal.aborted||x({query:g,failed:!0})}},300);return()=>{clearTimeout(r),e.abort()}},[t,g]),!t||!g)return i;let v=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{role:"status",className:"px-3 py-2 text-xs text-text-muted",children:m?u("sidebar.sessionSearchFailed"):f?0===f.results.length?u("sidebar.sessionSearchEmpty"):u("sidebar.sessionSearchCount",{count:f.results.length}):u("sidebar.sessionSearching")}),f?.truncated&&(0,n.jsx)("div",{role:"status",className:"px-3 pb-2 text-xs text-text-muted",children:u("sidebar.sessionSearchPartial")}),f?.results.map(e=>{let{session:t,entryId:r,blockIndex:s,before:i,match:l,after:d}=e;return(0,n.jsxs)("button",{type:"button",onClick:()=>a(t,r,s),"aria-current":t.id===o?"true":void 0,className:`block w-full cursor-pointer border-b border-border px-3 py-2 text-left hover:bg-bg-hover focus-visible:outline-2 focus-visible:outline-accent ${t.id===o?"bg-bg-selected":""}`,children:[(0,n.jsx)("span",{className:"block truncate text-xs font-medium text-text",children:ri(t)}),(0,n.jsxs)("span",{className:"mt-1 flex min-w-0 gap-2 text-[10px] text-text-dim",children:[(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate",title:t.cwd,children:t.cwd}),(0,n.jsx)("span",{className:"shrink-0",children:(0,t1.fw)(t.modified,p)})]}),(0,n.jsxs)("span",{className:"mt-1 block text-xs leading-relaxed wrap-anywhere text-text-muted",children:[i,(0,n.jsx)("mark",{className:"rounded-sm bg-accent/20 text-text",children:l}),d]})]},t.id)})]});return"append"===l?(0,n.jsxs)(n.Fragment,{children:[i,(0,n.jsxs)("div",{className:d??"border-t border-border","aria-busy":!f&&!m,children:[c&&(0,n.jsx)("div",{className:"px-3 pt-3 pb-0.5 text-[10px] font-semibold tracking-[0.05em] text-text-dim uppercase",children:c}),v]})]}):(0,n.jsx)("div",{className:"min-h-20 flex-1 overflow-y-auto","aria-busy":!f&&!m,children:v})}let ra={modified:"var(--git-status-modified)",added:"var(--git-status-added)",deleted:"var(--git-status-deleted)",renamed:"var(--git-status-modified)",untracked:"var(--git-status-added)",conflict:"var(--git-status-deleted)"};async function rl(e){let t=await fetch(`/api/git/status?${new URLSearchParams({cwd:e}).toString()}`);if(!t.ok)throw Error(`Failed to load Git status (HTTP ${t.status})`);return t.json()}function rd(e){let{status:t,cwd:r,onOpenFile:i}=e,[o,a]=(0,s.useState)(!1),l=tW(t.filePath,r);return(0,n.jsxs)("button",{type:"button",onClick:()=>i(t.filePath,tL(t.filePath),{initialDisplayMode:"diff"}),onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),title:t.filePath,style:{width:"100%",display:"flex",alignItems:"center",gap:4,padding:"0 5px",height:24,border:"none",borderRadius:4,background:o?"var(--bg-hover)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)("span",{style:{width:14,flexShrink:0,color:ra[t.status],fontFamily:"var(--font-mono)",fontSize:11,fontWeight:600,textAlign:"center"},children:t.code}),(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center",opacity:.85},children:tM(tL(t.filePath),13)}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,fontSize:12},children:l})]})}function rc(e){let{cwd:t,refreshKey:r,onOpenFile:i}=e,{t:o}=(0,J.s)(),[a,l]=(0,s.useState)(!1),[d,c]=(0,s.useState)(null),[u,p]=(0,s.useState)(!1),h=(0,s.useCallback)(async()=>{p(!0);try{c(await rl(t))}catch{c(null)}finally{p(!1)}},[t]);if((0,s.useEffect)(()=>{h()},[h,r]),!d?.isGitRepository||0===d.files.length)return null;let x=d.files.reduce((e,t)=>("added"===t.status||"untracked"===t.status?e.added+=1:"deleted"===t.status||"conflict"===t.status?e.deleted+=1:e.modified+=1,e),{modified:0,added:0,deleted:0});return(0,n.jsxs)("section",{style:{flex:"0 0 auto",minHeight:0,borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),"aria-expanded":a,style:{display:"flex",alignItems:"center",gap:6,flex:1,minWidth:0,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(e2.K,{size:9,weight:"regular",style:{transform:a?"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:o("desktop.quickChanges")})]}),(0,n.jsxs)("div",{className:"git-changes-indicator","aria-label":`Changed files: ${x.modified} modified, ${x.added} added, ${x.deleted} deleted`,children:[x.modified>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-modified",children:x.modified}),x.added>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-added",children:x.added}),x.deleted>0&&(0,n.jsx)("span",{className:"git-changes-indicator-part git-changes-indicator-deleted",children:x.deleted})]}),(0,n.jsxs)("span",{style:{marginLeft:6,color:"var(--git-status-added)",fontFamily:"var(--font-mono)",fontSize:11},children:["+",d.additions]}),(0,n.jsxs)("span",{style:{marginLeft:5,color:"var(--git-status-deleted)",fontFamily:"var(--font-mono)",fontSize:11},children:["-",d.deletions]}),(0,n.jsx)("button",{type:"button",onClick:()=>void h(),disabled:u,title:o("desktop.refresh"),"aria-label":o("desktop.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginLeft:4,marginRight:6,border:"none",borderRadius:5,background:"none",color:"var(--text-dim)",cursor:u?"wait":"pointer",opacity:u?.55:1},children:u?(0,n.jsx)(tm.y,{size:12,style:{animation:"spin 0.8s linear infinite"},"aria-hidden":"true"}):(0,n.jsx)(K.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),a&&(0,n.jsx)("div",{style:{minHeight:0,maxHeight:"min(35vh, 280px)",overflowY:"auto",overflowX:"hidden",padding:"2px 4px 4px"},children:d.files.map(e=>(0,n.jsx)(rd,{status:e,cwd:t,onOpenFile:i},e.filePath))})]})}var ru=r(76721),rp=r(61448),rh=r(95660),rx=r(59680),rg=r(20412),rf=r(12272),rm=r(9005),rv=r(31966),ry=r(73974),rb=r(65377),rk=r(47421),rj=r(14225),rw=r(8962),rS=r(65408),rC=r(75742),rz=r(73534),rT=r(6923),rR=r(64577),rI=r(32159),rN=r(30600),rM=r(86272),rE=r(37218),r$=r(65738);let rL=["all","commands","sessions","files"],rW={">":"commands","#":"sessions","@":"files"};function rA(e){return`pi-command-center-search-history:${e||"default"}`}function rP(e){let t=e.trim();return!(!t||Object.prototype.hasOwnProperty.call(rW,t))}function rF(e,t,r,n){if(!rP(t))return[...e];let s=t.trim().toLowerCase(),i=e.filter(e=>e.query.trim().toLowerCase()!==s);return[{query:t.trim(),scope:r,updatedAt:n},...i].slice(0,20)}function rD(){try{return window.localStorage}catch{return null}}function rO(e){let t=rD();if(!t)return[];try{return function(e){if(!e)return[];try{let r=JSON.parse(e);if(!Array.isArray(r))return[];let n=[];for(let e of r)if(e&&"object"==typeof e&&"string"==typeof e.query&&rP(e.query)){var t;n.push({query:e.query,scope:(t=e.scope,"string"==typeof t&&rL.includes(t))?e.scope:"all",updatedAt:"number"==typeof e.updatedAt?e.updatedAt:0})}return n.slice(0,20)}catch{return[]}}(t.getItem(rA(e)))}catch{return[]}}function rH(e,t){let r=rD();if(r)try{r.setItem(rA(e),JSON.stringify(t.slice(0,20)))}catch{}}function rB(e,t){let r=e.trimStart(),n=r.slice(0,1),s=Object.prototype.hasOwnProperty.call(rW,n)?rW[n]:null;return s?{scope:s,query:r.slice(1).trim()}:{scope:t,query:e.trim()}}function rU(e){for(let[t,r]of Object.entries(rW))if(r===e)return t;return""}function r_(e){let t=e.trimStart(),r=t.slice(0,1);return Object.prototype.hasOwnProperty.call(rW,r)?t.slice(1).trimStart():e}function rK(e,t){let r=t.trim().toLowerCase().split(/\s+/).filter(Boolean);if(!e||0===r.length)return[{text:e,hit:!1}];let n=e.toLowerCase(),s=[];for(let e of r){let t=0;for(;;){let r=n.indexOf(e,t);if(-1===r)break;s.push([r,r+e.length]),t=r+e.length}}if(0===s.length)return[{text:e,hit:!1}];s.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let i=[];for(let e of s){let t=i[i.length-1];t&&e[0]<=t[1]?t[1]=Math.max(t[1],e[1]):i.push([e[0],e[1]])}let o=[],a=0;for(let[t,r]of i)t>a&&o.push({text:e.slice(a,t),hit:!1}),o.push({text:e.slice(t,r),hit:!0}),a=r;return a<e.length&&o.push({text:e.slice(a),hit:!1}),o}function rq(e){return e?"⌘K":"Ctrl+K"}function rV(){try{return window.localStorage}catch{return null}}let rJ="pi-web:sidebar-mode",rG="pi-web:sidebar-task-preferences",rY="pi-web:sidebar-collapsed-projects",rX="projects",rZ={organizeBy:"project",sortBy:"updated"};function rQ(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:rV();if(t)try{0===e.size?t.removeItem(rY):t.setItem(rY,JSON.stringify(Object.fromEntries([...e].map(e=>[e,!0]))))}catch{}}function r0(e,t){let r=t.trim().toLowerCase();return!r||!!ri(e).toLowerCase().includes(r)||!!e.branch?.toLowerCase().includes(r)}function r1(e){return e.projectKey??e.projectRoot??e.cwd??""}function r2(e,t,r){return"created"===r?t.created.localeCompare(e.created):t.modified.localeCompare(e.modified)}function r6(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{hiddenKeys:r,search:n}=t;return e.filter(e=>!(e.archived||e.relation?.kind==="subagent"||r?.size&&r.has(r1(e)))&&r0(e,n??""))}function r4(e,t){return t.get(e.projectKey)?.latest??""}let r5={pinned:"desktop.pinned",today:"desktop.today",yesterday:"desktop.yesterday",older:"desktop.older"};function r3(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${n}`}function r8(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"updated",n=new Date,s=r3(n),i=r3(new Date(n.getTime()-864e5)),o={pinned:[],today:[],yesterday:[],older:[]};for(let t of e){let e=r3(new Date(t.modified));t.pinned&&o.pinned.push(t),e===s?o.today.push(t):e===i?o.yesterday.push(t):o.older.push(t)}return["pinned","today","yesterday","older"].map(e=>({key:e,rows:function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"updated";if(0===e.length)return[];let s=new Map(t.map(e=>[e.id,e])),i=new Set(e.map(e=>e.id)),o=new Map;for(let t of e)if(t.parentSessionId&&i.has(t.parentSessionId)){let e=o.get(t.parentSessionId)??[];e.push(t),o.set(t.parentSessionId,e)}let a=(e,t)=>r2(e,t,n),l=e.filter(e=>!(e.parentSessionId&&i.has(e.parentSessionId))).sort(a);for(let e of o.values())e.sort(a);let d=[],c=new Set,u=e=>{if(!c.has(e.id))for(let t of(c.add(e.id),d.push({session:e,forkDepth:r?0:(e=>{let t=0,r=e,n=new Set;for(;r?.parentSessionId&&!n.has(r.id);){n.add(r.id);let e=s.get(r.parentSessionId);if(!e)break;r=e,t++}return t})(e)}),o.get(e.id)??[]))u(t)};for(let e of l)u(e);for(let t of e)u(t);return d}(o[e],t,"pinned"===e,r)})).filter(e=>e.rows.length>0)}var r7=r(97320);function r9(e,t){let r=new Date(e),n=new Date().getTime()-r.getTime(),s=Math.floor(n/6e4),i=Math.floor(n/36e5),o=Math.floor(n/864e5);return s<1?t("desktop.justNow"):s<60?t("desktop.minutesAgo",{count:s}):i<24?t("desktop.hoursAgo",{count:i}):o<7?t("desktop.daysAgo",{count:o}):r.toLocaleDateString()}function ne(){let{t:e}=(0,J.s)();return(0,n.jsx)("span",{title:e("desktop.agentRunning"),"aria-label":e("desktop.agentRunningLabel"),style:{width:14,height:14,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)(r7.A,{size:13,style:{display:"block",animation:"spin 0.9s linear infinite"},"aria-hidden":"true"})})}function nt(){let{t:e}=(0,J.s)();return(0,n.jsx)("span",{title:e("desktop.newActivity"),"aria-label":e("desktop.newSessionActivity"),style:{width:14,height:14,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--accent)"},children:(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",style:{display:"block"},children:(0,n.jsx)("circle",{cx:"7",cy:"7",r:"3",fill:"currentColor",children:(0,n.jsx)("animate",{attributeName:"opacity",values:"1;0.25;1",dur:"1.6s",repeatCount:"indefinite"})})})})}let nr=e=>({display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:e?"var(--bg-selected)":"transparent",border:"none",borderRadius:5,flexShrink:0,color:e?"var(--accent)":"var(--text-muted)",cursor:"pointer",transition:"color 0.12s, background 0.12s"});function nn(e){let{sessions:t,loading:r,runningIds:i,unreadIds:o,aliases:a,selectedSessionId:l,selectedProjectRoot:d,searchQuery:c,onSearchQueryChange:u,onSelectSession:p,onNewSessionInProject:h,onArchive:x,onDeleteForever:g,onRemoveProject:f,hiddenProjects:m,onUnhideProject:v,onPickFolder:y,onCycleToList:b,onRenamed:k,onNewTask:j,onOpenCommandPalette:w,renderFileTree:S,isMobile:C}=e,{t:z}=(0,J.s)(),[T,R]=(0,s.useState)(()=>(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:rV();if(!e)return rZ;try{let t=e.getItem(rG);if(!t)return rZ;let r=JSON.parse(t);if(!r||"object"!=typeof r||Array.isArray(r))return rZ;let{organizeBy:n,sortBy:s}=r;return{organizeBy:"grouped"===n||"project"===n||"timeline"===n?n:rZ.organizeBy,sortBy:"updated"===s||"created"===s?s:rZ.sortBy}}catch{return rZ}})()),[I,N]=(0,s.useState)(()=>(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:rV();if(!e)return new Set;try{let t=e.getItem(rY);if(!t)return new Set;let r=JSON.parse(t);if(!r||"object"!=typeof r||Array.isArray(r))return new Set;return new Set(Object.entries(r).filter(e=>{let[,t]=e;return!0===t}).map(e=>{let[t]=e;return t}))}catch{return new Set}})()),[M,E]=(0,s.useState)(!1),[$,L]=(0,s.useState)(null),[W,A]=(0,s.useState)(!1),[P,F]=(0,s.useState)(null),[D,O]=(0,s.useState)(null),[H,B]=(0,s.useState)({}),U=(0,s.useRef)(null),_=(0,s.useRef)(null),[K,q]=(0,s.useState)(0);(0,s.useEffect)(()=>{let e=setInterval(()=>q(e=>e+1),6e4);return()=>clearInterval(e)},[]);let V=(0,s.useCallback)(e=>{R(t=>{let r={...t,...e};return!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:rV();if(t)try{t.setItem(rG,JSON.stringify(e))}catch{}}(r),r})},[]),G=(0,s.useCallback)(e=>{N(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),rQ(r),r})},[]),Y=(0,s.useMemo)(()=>new Set(m.map(e=>e.key)),[m]),X=(0,s.useMemo)(()=>(function(e){let{sessions:t,hiddenKeys:r,aliases:n={},sortBy:s,collapsedKeys:i,runningIds:o,unreadIds:a,search:l,extraRoots:d}=e,c=r6(t,{hiddenKeys:r,search:l}),u=new Map;for(let e of c){let t=r1(e);if(!t)continue;let r=e.projectRoot??e.cwd??"",n=u.get(t);n||(n={projectRoot:r,sessions:[],latest:""},u.set(t,n)),n.sessions.push(e),e.modified>n.latest&&(n.latest=e.modified)}for(let e of d??[])!r?.has(e)&&(u.has(e)||u.set(e,{projectRoot:e,sessions:[],latest:""}));let p=[];for(let[e,t]of u){var h;t.sessions.sort((e,t)=>r2(e,t,s));let r=i?.has(e)??!1;p.push({projectKey:e,projectRoot:t.projectRoot,name:n[t.projectRoot]?.trim()||((h=t.projectRoot).replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??h),sessions:r?[]:t.sessions,totalCount:t.sessions.length,collapsed:r,hasRunning:t.sessions.some(e=>o?.has(e.id)??!1),hasUnread:t.sessions.some(e=>a?.has(e.id)??!1)})}return p.sort((e,t)=>{let r=r4(e,u);return r4(t,u).localeCompare(r)}),p})({sessions:t,hiddenKeys:Y,aliases:a,sortBy:T.sortBy,collapsedKeys:I,runningIds:i,unreadIds:o,search:c,extraRoots:d?[d]:[]}),[t,Y,a,T.sortBy,I,i,o,c,d]),Z=(0,s.useMemo)(()=>{var e;return r6((e={sessions:t,hiddenKeys:Y,sortBy:T.sortBy,search:c}).sessions,{hiddenKeys:e.hiddenKeys,search:e.search}).sort((t,r)=>r2(t,r,e.sortBy))},[t,Y,T.sortBy,c]),Q=(0,s.useMemo)(()=>r8(r6(t,{hiddenKeys:Y,search:c}),t,T.sortBy),[t,Y,c,T.sortBy,K]),ee=(0,s.useMemo)(()=>(function(e){let{sessions:t,hiddenKeys:r,search:n}=e;return t.filter(e=>!(!e.archived||r?.size&&r.has(r1(e)))&&r0(e,n??"")).sort((e,t)=>(t.archivedAt??t.modified).localeCompare(e.archivedAt??e.modified))})({sessions:t,hiddenKeys:Y,search:c}),[t,Y,c]);(0,s.useEffect)(()=>{if(!W&&!P)return;let e=e=>{let t=e.target;W&&!U.current?.contains(t)&&A(!1),!P||_.current?.contains(t)||t instanceof Element&&t.closest("[data-menu-trigger]")||F(null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[W,P]);let et=(0,s.useCallback)(()=>{if(I.size>0){let e=new Set;N(e),rQ(e)}else{let e=new Set(X.map(e=>e.projectKey));N(e),rQ(e)}},[I,X]),er=e=>({display:"flex",alignItems:"center",gap:3,height:22,padding:"0 7px",background:e?"var(--bg-selected)":"none",border:"none",borderRadius:11,color:e?"var(--text)":"var(--text-dim)",fontSize:11.5,fontWeight:e?600:400,cursor:"pointer",whiteSpace:"nowrap",transition:"color 0.12s, background 0.12s"}),en=e=>{E(!1),L(null),V({organizeBy:"grouped"===e?"grouped":"timeline"===T.organizeBy?"timeline":"project"})},es=e=>H[e]??5,ei=function(e){let t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"detailed";return(0,n.jsx)(ns,{session:e,isSelected:e.id===l,isRunning:i.has(e.id),isUnread:o.has(e.id),indent:r,forceActionsVisible:C,rowStyle:s,folderName:(t=e.projectRoot??e.cwd??"",a[t]?.trim()||t.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||t||"?"),onSelect:()=>p(e),onArchive:()=>x(e,!0),onRenamed:k},e.id)},eo=$?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",minHeight:0,flex:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:()=>L(null),style:{display:"flex",alignItems:"center",gap:4,padding:"4px 8px",background:"none",border:"none",borderRadius:6,color:"var(--text-muted)",fontSize:12,cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(rv.A,{size:11,"aria-hidden":"true"}),z("desktop.backToSessions")]}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,color:"var(--text-dim)"},title:$.root,children:$.name})]}),(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:1,minHeight:0,overflowX:"hidden"},children:S($.root)})]}):M?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===ee.length&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:z(c.trim()?"desktop.noSearchResults":"desktop.noArchivedSessions")}),ee.map(e=>(0,n.jsx)(ni,{session:e,folderName:a[e.projectRoot??e.cwd]?.trim()||(e.projectRoot??e.cwd??"").replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||e.projectRoot||e.cwd||"?",onUnarchive:()=>x(e,!1),onDeleteForever:()=>{window.confirm(z("desktop.deleteArchivedConfirm"))&&g(e)}},e.id))]}):"project"===T.organizeBy?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===X.length&&!r&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:z(c.trim()?"desktop.noSearchResults":"desktop.noProjects")}),X.map(e=>{let r=es(e.projectKey),s=e.sessions.slice(0,r),o=e.sessions.length-s.length;return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{position:"relative"},onMouseEnter:()=>O(e.projectKey),onMouseLeave:()=>O(t=>t===e.projectKey?null:t),children:(0,n.jsxs)("div",{onClick:()=>G(e.projectKey),style:{display:"flex",alignItems:"center",gap:6,height:32,paddingLeft:8,paddingRight:66,cursor:"pointer",color:"var(--text)",borderRadius:8},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(ru.A,{size:10,style:{transform:e.collapsed?"none":"rotate(90deg)",transition:"transform 0.15s",flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}),e.collapsed&&e.hasRunning?(0,n.jsx)(ne,{}):e.collapsed?(0,n.jsx)(rp.A,{size:14,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}):(0,n.jsx)(rh.A,{size:14,style:{flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:13,fontWeight:500},title:e.projectRoot,children:e.name}),e.collapsed&&e.hasUnread&&!e.hasRunning&&(0,n.jsx)(nt,{}),(0,n.jsxs)("div",{"data-folder-actions":!0,style:{position:"absolute",right:6,top:4,display:"flex",gap:2,opacity:C||P===e.projectKey||D===e.projectKey?1:0,transition:"opacity 0.12s"},children:[(0,n.jsx)("button",{"data-menu-trigger":!0,onClick:t=>{t.stopPropagation(),F(P===e.projectKey?null:e.projectKey)},title:z("desktop.moreActions"),"aria-label":z("desktop.moreActions"),style:{...nr(P===e.projectKey),width:24,height:24},children:(0,n.jsx)(rx.A,{size:14,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),L({root:e.projectRoot,name:e.name})},title:z("desktop.viewFiles"),"aria-label":z("desktop.viewFiles"),style:{...nr(!1),width:24,height:24},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(rg.A,{size:14,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),h(e.projectRoot)},title:z("desktop.newSessionHere"),"aria-label":z("desktop.newSessionHere"),style:{...nr(!1),width:24,height:24},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(rf.A,{size:14,"aria-hidden":"true"})})]}),P===e.projectKey&&(0,n.jsx)("div",{ref:_,style:{position:"absolute",right:6,top:30,zIndex:30,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.35)",padding:4,minWidth:120},children:(0,n.jsxs)("button",{onClick:()=>{F(null),(!(e.hasRunning||t.some(t=>(t.projectRoot??t.cwd)===e.projectRoot&&i.has(t.id)&&!t.archived))||window.confirm(z("desktop.removeProjectRunningConfirm")))&&f(e.projectRoot,e.name)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"6px 10px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:12,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(rm.A,{size:12,style:{color:"var(--text-dim)"},"aria-hidden":"true"}),z("desktop.removeProject")]})})]})}),!e.collapsed&&(0,n.jsxs)("div",{children:[s.map(e=>ei(e,!0,"compact")),o>0&&(0,n.jsx)("button",{onClick:()=>B(t=>({...t,[e.projectKey]:es(e.projectKey)+5})),style:{display:"block",width:"100%",padding:"5px 8px 5px 42px",background:"none",border:"none",borderRadius:6,color:"var(--text-dim)",fontSize:11,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:z("desktop.showMore")})]})]},e.projectKey)})]}):"timeline"===T.organizeBy?(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===Z.length&&!r&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:z(c.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),Z.map(e=>ei(e))]}):(0,n.jsxs)("div",{style:{padding:"0 4px"},children:[0===Q.length&&!r&&(0,n.jsx)("div",{style:{padding:"16px 10px",color:"var(--text-muted)",fontSize:12},children:z(c.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),Q.map(e=>(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{padding:"8px 8px 2px",fontSize:11,fontWeight:600,color:"var(--text-dim)",letterSpacing:"0.04em"},children:z("pinned"===e.key?"desktop.pinned":"today"===e.key?"desktop.today":"yesterday"===e.key?"desktop.yesterday":"desktop.older")}),e.rows.map(e=>ei(e.session,e.forkDepth>0))]},e.key))]});return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",flex:"1 1 0",minHeight:0,overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2,padding:"6px 6px 4px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:j,title:z("desktop.newTask"),"aria-label":z("desktop.newTask"),style:{display:"flex",alignItems:"center",gap:8,width:"100%",height:32,padding:"0 10px",background:"transparent",border:"none",borderRadius:8,color:"var(--text)",fontSize:13,fontWeight:500,textAlign:"left",cursor:"pointer",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,n.jsx)(ry.A,{size:16,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),z("desktop.newTask")]}),(0,n.jsxs)("button",{onClick:()=>w?.(),title:z("palette.placeholder"),"aria-label":z("palette.open"),className:"palette-open-button",children:[(0,n.jsx)(rb.A,{size:16,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),z("palette.open"),(0,n.jsx)("span",{className:"palette-kbd",children:rq("u">typeof navigator&&/mac/i.test(navigator.platform))})]}),c.trim()&&(0,n.jsxs)("div",{className:"panel-filter-notice",children:[(0,n.jsxs)("span",{className:"panel-filter-notice-text",children:[z("desktop.filteringBy")," ",(0,n.jsx)("strong",{children:c})]}),(0,n.jsx)("button",{type:"button",onClick:()=>u(""),"aria-label":z("desktop.clearFilter"),title:z("desktop.clearFilter"),className:"panel-filter-notice-clear",children:(0,n.jsx)(rm.A,{size:11,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:2,paddingTop:2},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:1,background:"var(--bg-hover)",borderRadius:12,padding:2},children:[(0,n.jsxs)("button",{style:er("grouped"===T.organizeBy),onClick:()=>en("grouped"),"aria-pressed":"grouped"===T.organizeBy,children:[(0,n.jsx)(rk.A,{size:11,style:{opacity:.7},"aria-hidden":"true"}),z("desktop.panelGroupBubble")]}),(0,n.jsxs)("button",{style:er("grouped"!==T.organizeBy),onClick:()=>en("project"),"aria-pressed":"grouped"!==T.organizeBy,children:[(0,n.jsx)(rj.A,{size:11,"aria-hidden":"true"}),z("desktop.panelProjectBubble")]})]}),(0,n.jsx)("button",{onClick:et,title:I.size>0?z("desktop.expandAllFolders"):z("desktop.collapseAllFolders"),"aria-label":I.size>0?z("desktop.expandAllFolders"):z("desktop.collapseAllFolders"),style:{...nr(!1),marginLeft:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:I.size>0?(0,n.jsx)(rw.A,{size:13,"aria-hidden":"true"}):(0,n.jsx)(rS.A,{size:13,"aria-hidden":"true"})}),!C&&(0,n.jsx)("button",{onClick:b,title:`${z("desktop.sidebarModeCycle")}:${z("desktop.sessionViewList")}`,"aria-label":z("desktop.sidebarModeCycle"),style:{...nr(!1),marginLeft:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(rC.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("div",{ref:U,style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:()=>A(e=>!e),title:z("desktop.filterMenu"),"aria-label":z("desktop.filterMenu"),"aria-expanded":W,style:nr(W),onMouseEnter:e=>{W||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{W||(e.currentTarget.style.color="var(--text-muted)")},children:(0,n.jsx)(rz.A,{size:13,"aria-hidden":"true"})}),W&&(0,n.jsxs)("div",{style:{position:"absolute",right:0,top:28,zIndex:40,width:168,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 24px rgba(0,0,0,0.4)",padding:5},children:[(0,n.jsx)("div",{style:{padding:"6px 8px 2px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:z("desktop.viewSection")}),[["project","desktop.viewByProject",rj.A],["timeline","desktop.viewTimeline",rT.A]].map(e=>{let[t,r,s]=e;return(0,n.jsxs)("button",{onClick:()=>{V({organizeBy:t})},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 7px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:11.5,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(s,{size:13,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1},children:z(r)}),T.organizeBy===t&&(0,n.jsx)(rR.A,{size:13,strokeWidth:2.5,style:{color:"var(--accent)"},"aria-hidden":"true"})]},t)}),(0,n.jsx)("div",{style:{height:1,background:"var(--border)",margin:"6px 4px"}}),(0,n.jsx)("div",{style:{padding:"2px 8px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:z("desktop.sortSection")}),[["updated","desktop.sortUpdated"],["created","desktop.sortCreated"]].map(e=>{let[t,r]=e;return(0,n.jsxs)("button",{onClick:()=>{V({sortBy:t})},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 7px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:11.5,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)("span",{style:{flex:1},children:z(r)}),T.sortBy===t&&(0,n.jsx)(rR.A,{size:13,strokeWidth:2.5,style:{color:"var(--accent)"},"aria-hidden":"true"})]},t)}),(0,n.jsx)("div",{style:{height:1,background:"var(--border)",margin:"6px 4px"}}),(0,n.jsx)("div",{style:{padding:"2px 8px",fontSize:11,fontWeight:600,color:"var(--text-dim)"},children:z("desktop.hiddenProjectsSection")}),0===m.length?(0,n.jsx)("div",{style:{padding:"4px 8px 8px",fontSize:11,color:"var(--text-dim)"},children:z("desktop.noHiddenProjects")}):m.map(e=>(0,n.jsxs)("button",{onClick:()=>{A(!1),v(e)},title:e.path,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 8px",background:"none",border:"none",borderRadius:6,color:"var(--text)",fontSize:12,cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(rj.A,{size:13,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name||e.path}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--accent)",flexShrink:0},children:z("desktop.restoreProject")})]},e.key))]})]}),(0,n.jsx)("button",{onClick:()=>{E(e=>!e),L(null)},title:z("desktop.archivedView"),"aria-label":z("desktop.archivedView"),"aria-pressed":M,style:nr(M),onMouseEnter:e=>{M||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{M||(e.currentTarget.style.color="var(--text-muted)")},children:M?(0,n.jsx)(rm.A,{size:13,"aria-hidden":"true"}):(0,n.jsx)(rI.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:y,title:z("desktop.selectFolder"),"aria-label":z("desktop.selectFolder"),style:{...nr(!1),marginRight:2},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(rN.A,{size:13,"aria-hidden":"true"})})]})]}),r&&0===t.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:z("desktop.loading")}),(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:"1 1 0",minHeight:0},children:eo})]})}function ns(e){let{session:t,isSelected:r,isRunning:i,isUnread:o,indent:a,forceActionsVisible:l,rowStyle:d,folderName:c,onSelect:u,onArchive:p,onRenamed:h}=e,{t:x}=(0,J.s)(),[g,f]=(0,s.useState)(!1),[m,v]=(0,s.useState)(!1),[y,b]=(0,s.useState)(!1),[k,j]=(0,s.useState)(null),w=(0,s.useRef)(null),S=ri(t),C=t.messageCount>0,z=(0,s.useCallback)(async e=>{if(e.stopPropagation(),y){w.current?.abort(),eJ(t.id);return}if(!C)return;let r=new AbortController;w.current=r,b(!0),j(null);try{await eV(t.id,r.signal),h()}catch(e){r.signal.aborted||j(e instanceof Error?e.message:String(e))}finally{w.current===r&&(w.current=null),b(!1)}},[y,C,t.id,h]);if(m)return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,height:30,paddingLeft:a?42:10,paddingRight:6,background:"rgba(239,68,68,0.06)",borderRadius:6},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:x("desktop.archiveSessionConfirm",{title:`“${S.slice(0,18)}${S.length>18?"…":""}”`})}),(0,n.jsxs)("button",{onClick:()=>{v(!1),p()},style:{display:"flex",alignItems:"center",gap:4,height:24,padding:"0 9px",background:"var(--status-error)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",whiteSpace:"nowrap"},children:[(0,n.jsx)(rI.A,{size:11,"aria-hidden":"true"}),x("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),v(!1)},style:{height:24,padding:"0 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer",whiteSpace:"nowrap"},children:x("desktop.cancel")})]});let T=(0,n.jsxs)("div",{style:{display:"flex",gap:2,flexShrink:0},children:[(0,n.jsx)("button",{onClick:z,disabled:!C,title:k??x(C?y?"desktop.generatingTitle":"desktop.generateTitle":"desktop.titleNeedsMessages"),"aria-label":x("desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:k?"var(--status-error)":"var(--text-dim)",cursor:C?"pointer":"default",flexShrink:0,opacity:y?.7:C?1:.35,transition:"color 0.12s"},onMouseEnter:e=>{!y&&C&&(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{e.currentTarget.style.color=k?"var(--status-error)":"var(--text-dim)"},children:y?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(rM.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),v(!0)},title:x("desktop.archiveSession"),"aria-label":x("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(rI.A,{size:13,"aria-hidden":"true"})})]}),R=g||l,I=i?(0,n.jsx)(ne,{}):o?(0,n.jsx)(nt,{}):null;return(0,n.jsxs)("div",{onClick:u,onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),style:{position:"relative",padding:`${5*("detailed"===d)}px 6px ${5*("detailed"===d)}px ${a?42:18}px`,height:"detailed"===d?46:30,display:"flex",flexDirection:"column",justifyContent:"center",cursor:"pointer",borderRadius:8,background:r?"var(--bg-selected)":g?"var(--bg-hover)":"transparent",borderLeft:r?"2px solid var(--accent)":"2px solid transparent"},title:S,children:[I&&a&&(0,n.jsx)("span",{style:{position:"absolute",left:22,top:0,bottom:0,display:"flex",alignItems:"center"},children:I}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[I&&!a&&I,(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,color:"var(--text)",fontWeight:r?500:400},children:S}),R?T:(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:r9(t.modified,x)})]}),"detailed"===d&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2,minWidth:0},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)"},title:t.projectRoot??t.cwd,children:c}),R&&(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:r9(t.modified,x)})]})]})}function ni(e){let{session:t,folderName:r,onUnarchive:i,onDeleteForever:o}=e,{t:a}=(0,J.s)(),[l,d]=(0,s.useState)(!1),c=ri(t);return(0,n.jsxs)("div",{onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),style:{padding:"6px 10px",borderRadius:6,background:l?"var(--bg-hover)":"transparent"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12.5,color:"var(--text)"},title:c,children:c}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:"var(--text-dim)"},children:r9(t.archivedAt??t.modified,a)})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2},children:[(0,n.jsx)(rj.A,{size:12,style:{color:"var(--text-dim)",flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:11,color:"var(--text-dim)"},title:t.projectRoot??t.cwd,children:r}),(0,n.jsx)("button",{onClick:i,title:a("desktop.unarchiveSession"),"aria-label":a("desktop.unarchiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(rE.A,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:o,title:a("desktop.deleteForever"),"aria-label":a("desktop.deleteForever"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--status-error)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--status-error)"},children:(0,n.jsx)(r$.A,{size:13,"aria-hidden":"true"})})]})]})}let no="pi-web:file-explorer:open";function na(){try{return window.localStorage}catch{return null}}function nl(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return"visible"!==e.visibilityState||!e.hasFocus()}async function nd(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{createWindowNotification:(e,t)=>new Notification(e,t),getServiceWorkerRegistration:"serviceWorker"in navigator?()=>navigator.serviceWorker.getRegistration():null},r={body:e.body,...e.tag?{tag:e.tag,renotify:!0}:{}};if(t.getServiceWorkerRegistration)try{let n=await t.getServiceWorkerRegistration();if(n)return await n.showNotification(e.title,{...r,data:{url:e.sessionUrl}}),"service-worker"}catch{}try{let n=t.createWindowNotification(e.title,r);return n.onclick=()=>{n.close(),e.onClick()},"window"}catch{return null}}let nc="pi-web:unread-session-ids";function nu(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=new Map;for(let t of e){let e=t.projectRoot??t.cwd;if(!e)continue;let r=n.get(e);(!r||t.modified>r)&&n.set(e,t.modified)}let s=new Set;for(let e of(t&&s.add(t),r))s.add(e);for(let e of s)n.has(e)||n.set(e,"");return[...n.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(e=>{let[t]=e;return t})}function np(e,t){if(!t)return e;let r=e.replace(/\\/g,"/").toLowerCase(),n=t.replace(/\\/g,"/").toLowerCase();if(!r.startsWith(n))return e;let s=e.slice(t.length);return"~"+(s.startsWith("/")||s.startsWith("\\"),s)}function nh(e){return e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()??e}function nx(e){let{text:t,style:r}=e;return(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...r},children:(0,n.jsx)("span",{style:{unicodeBidi:"plaintext"},children:t})})}function ng(e){let{open:t,children:r,style:i}=e,[o,a]=(0,s.useState)(t),[l,d]=(0,s.useState)(t);return((0,s.useEffect)(()=>{let e,r;return t?(a(!0),d(!1),e=window.requestAnimationFrame(()=>{e=window.requestAnimationFrame(()=>d(!0))})):(d(!1),r=setTimeout(()=>a(!1),140)),()=>{void 0!==e&&window.cancelAnimationFrame(e),r&&clearTimeout(r)}},[t]),o)?(0,n.jsx)("div",{style:{...i,opacity:+!!l,transform:l?"translateY(0) scale(1)":"translateY(-8px) scale(0.96)",transformOrigin:"top center",transition:"opacity 140ms ease, transform 140ms ease",pointerEvents:t?"auto":"none"},children:r}):null}let nf="pi-web:session-view-style";function nm(e){var t;let r,i,o,a,{selectedSessionId:l,onSelectSession:d,onNewSession:c,initialSessionId:u,onInitialRestoreDone:p,refreshKey:h,onSessionDeleted:x,selectedCwd:g,onCwdChange:f,onOpenFile:m,explorerRefreshKey:v,onAtMention:y,onAtMentions:b,onFileCreated:k,onFileDeleted:j,selectedFilePath:w,onOpenSettings:S,onToggleTasks:C,showTasks:z=!1,tasksBoardEnabled:T=!0,selectedSessionStats:R,workspaceControlsHosts:I,showWorkspaceControls:N=!0,onOpenCommandPalette:M,cycleSidebarFormRef:E,onSessionsLoaded:$}=e,{t:L}=(0,J.s)(),[W,A]=(0,s.useState)([]);(0,s.useRef)(null);let P=(0,s.useRef)(0),[F,D]=(0,s.useState)(!0),[O,H]=(0,s.useState)(null),[_,V]=(0,s.useState)(null),[G,Y]=(0,s.useState)([]),X=(0,s.useCallback)(e=>{e&&Y(t=>t.includes(e)?t:[...t,e])},[]),Z=tu(),[Q,ee]=(0,s.useState)(""),[et,er]=(0,s.useState)(!1),[en,es]=(0,s.useState)(null),[ei,eo]=(0,s.useState)(null),[ea,el]=(0,s.useState)(""),[ed,ec]=(0,s.useState)(!1),[eu,ep]=(0,s.useState)(null),[eh,ex]=(0,s.useState)(!1),eg=(0,s.useRef)(null),ef=(0,s.useRef)({title:null,welcome:null,titleRight:null}),[em,ev]=(0,s.useState)(null),[ey,eb]=(0,s.useState)(!1),[ek,ej]=(0,s.useState)(!1),[ew,eS]=(0,s.useState)(""),[eC,ez]=(0,s.useState)(null),[eT,eR]=(0,s.useState)(!1),[eI,eN]=(0,s.useState)(null),[eM,eE]=(0,s.useState)(null),e$=(0,s.useRef)(null),eL=(0,s.useRef)(null),[eW,eA]=(0,s.useState)(!0),[eF,eD]=(0,s.useState)(()=>{try{return"groups"===window.localStorage.getItem(nf)?"groups":"list"}catch{return"list"}}),[eO,eH]=(0,s.useState)(""),[eB,eU]=(0,s.useState)({pinned:!0,today:!0,yesterday:!0,older:!1}),e_=(0,s.useCallback)(e=>{eD(e);try{window.localStorage.setItem(nf,e)}catch{}},[]),[eK,eq]=(0,s.useState)(()=>(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:rV();if(!e)return rX;try{let t=e.getItem(rJ);return"dropdown"===t||"projects"===t?t:rX}catch{return rX}})()),te=(0,s.useCallback)(e=>{eq(e),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:rV();if(t)try{t.setItem(rJ,e)}catch{}}(e),"projects"===e&&tl.current?.()},[]);(0,s.useEffect)(()=>{if(E)return E.current=()=>{"list"===eF?e_("groups"):te("projects")},()=>{E&&(E.current=null)}},[E,eF,e_,te]);let tt=Z?"projects":eK,tr="pi-web:sidebar-mode-hint-seen",[tn,ts]=(0,s.useState)(()=>{try{return!window.localStorage.getItem(tr)}catch{return!1}}),ta=(0,s.useCallback)(()=>{ts(!1);try{window.localStorage.setItem(tr,"1")}catch{}},[]),tl=(0,s.useRef)(null);(0,s.useEffect)(()=>{tl.current=ta},[ta]);let[td,tc]=(0,s.useState)([]),tp=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/projects/visibility");if(!e.ok)return;let t=await e.json();tc(Array.isArray(t.hidden)?t.hidden:[])}catch{}},[]);(0,s.useEffect)(()=>{tp()},[tp]);let th=(0,s.useCallback)(async(e,t)=>{try{let r=await fetch("/api/projects/visibility",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"hide",projectRoot:e,name:t})});if(r.ok){let e=await r.json();tc(Array.isArray(e.hidden)?e.hidden:[])}}catch{}},[]),tx=(0,s.useCallback)(async e=>{try{let t=await fetch("/api/projects/visibility",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"unhide",projectRoot:e.path})});if(t.ok){let e=await t.json();tc(Array.isArray(e.hidden)?e.hidden:[])}}catch{}},[]),[tf,tm]=(0,s.useState)(!0),[tv,ty]=(0,s.useState)(0),[tb,tk]=(0,s.useState)(!1),[tj,tw]=(0,s.useState)(!1),[tS,tC]=(0,s.useState)(!1),[tz,tT]=(0,s.useState)(!1),[tR,tI]=(0,s.useState)(()=>new Set),[tN,tM]=(0,s.useState)(()=>(function(){try{let e=window.localStorage.getItem(nc);if(!e)return new Set;let t=JSON.parse(e);if(Array.isArray(t))return new Set(t.filter(e=>"string"==typeof e));return new Set}catch{return new Set}})()),tE=(0,s.useRef)(new Set),t$=(0,s.useRef)(!1),tL=(0,s.useRef)(null),tW=(0,s.useRef)(null),tA=(0,s.useRef)(null),tP=(0,s.useRef)(void 0);(0,s.useEffect)(()=>{tP.current=$},[$]);let tF=(0,s.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=++P.current;try{e&&D(!0);let s=await fetch(r?"/api/sessions?summary=1":t?"/api/sessions?force=1":"/api/sessions",{cache:"no-store"});if(!s.ok)throw Error(`HTTP ${s.status}`);let i=await s.json();if(n!==P.current)return;A(i.sessions),tP.current?.(i.sessions),t$.current||tI(e=>{let t=new Set(i.runningSessionIds??[]);return to(e,t)?e:t});let o=new Set(i.sessions.map(e=>e.id));tM(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>o.has(e)));return t.size===e.size?e:t}),H(null),e||(tC(!0),tL.current&&clearTimeout(tL.current),tL.current=setTimeout(()=>tC(!1),2e3))}catch(e){H(String(e))}finally{e&&D(!1)}},[]),[tD,tH]=(0,s.useState)({}),tB=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/project-aliases");if(!e.ok)return;let t=await e.json();tH(t.aliases??{})}catch{}},[]);(0,s.useEffect)(()=>{tB()},[tB,h]);let tU=(0,s.useRef)(!1);(0,s.useEffect)(()=>{let e=!tU.current;tU.current=!0;let t=!0;return e?tF(!0,!1,!0).then(()=>{if(!t)return;let e=setTimeout(()=>{t&&tF(!1,!0)},750);return()=>clearTimeout(e)}):tF(!1,!0),()=>{t=!1}},[tF,h]),(0,s.useEffect)(()=>{tm(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:na();if(!e)return!0;try{return"false"!==e.getItem(no)}catch{return!0}}())},[]),(0,s.useEffect)(()=>{try{0===tN.size?window.localStorage.removeItem(nc):window.localStorage.setItem(nc,JSON.stringify([...tN]))}catch{}},[tN]),(0,s.useEffect)(()=>{let e=!0,t=null,r=null,n=async()=>{if(!e||"visible"!==document.visibilityState)return;t?.abort();let s=new AbortController;t=s;try{let r=await fetch("/api/agent/running",{cache:"no-store",signal:s.signal});if(!r.ok||!e||t!==s)return;let n=await r.json();if(!e||t!==s)return;t$.current=!0,tI(e=>{let t=new Set((n.sessions??[]).filter(e=>e.running).map(e=>e.id));return to(e,t)?e:t})}catch(e){"AbortError"!==e.name&&console.warn("Failed to poll running sessions",e)}finally{e&&t===s&&"visible"===document.visibilityState&&(r=setTimeout(n,2500))}},s=()=>{"visible"===document.visibilityState?n():(t?.abort(),r&&clearTimeout(r),r=null)};return n(),document.addEventListener("visibilitychange",s),()=>{e=!1,t?.abort(),r&&clearTimeout(r),document.removeEventListener("visibilitychange",s)}},[]),(0,s.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data),r=t.sessions?t.sessions.filter(e=>e.running).map(e=>e.id):t.runningSessionIds??[];t$.current=!0,tI(e=>{let t=new Set(r);return to(e,t)?e:t})}catch{}},()=>e.close()},[]),(0,s.useEffect)(()=>{let e=new EventSource("/api/events"),t=new Set(["message_end","agent_end","entry_appended","session_info_changed","agent_settled","auto_compaction_end","session_pin_changed","session_archive_changed"]),r=null,n=!1;return e.onmessage=e=>{try{let s=JSON.parse(e.data);s&&s.type&&t.has(s.type)?n||(n=!0,r=setTimeout(()=>{n=!1,tF(!1)},2e3)):s&&"project_alias_changed"===s.type?tB():s&&"project_visibility_changed"===s.type&&tp()}catch{}},()=>{e.close(),r&&clearTimeout(r)}},[tF,tB,tp]),(0,s.useEffect)(()=>{let e=[...tE.current].filter(e=>!tR.has(e)&&e!==l),t=[...tR];if((e.length>0||t.length>0)&&tM(r=>{let n=new Set(r);return t.forEach(e=>n.delete(e)),e.forEach(e=>n.add(e)),n}),e.length>0&&("visible"!==document.visibilityState||!document.hasFocus())){let t=W.filter(t=>e.includes(t.id)),r=1===t.length?t[0]?.name||"Pi Web":`${t.length} conversations`;nd({title:"Pi Web",body:1===t.length?"Agent finished":`${r} finished`,sessionUrl:`/?session=${e[0]}`,onClick:()=>window.focus()})}tE.current=tR},[tR,l,W]),(0,s.useEffect)(()=>{l&&tM(e=>{if(!e.has(l))return e;let t=new Set(e);return t.delete(l),t})},[l]),(0,s.useEffect)(()=>{void 0!==v&&ty(e=>e+1)},[v]),(0,s.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&ee(e.home)}).catch(()=>{})},[]);let t_=(0,s.useRef)(!1),tK=(0,s.useCallback)(e=>{if(!e)return null;if(em&&em.forCwd===e||em?.worktrees.some(t=>tO(t.path,e)))return em.projectRoot;let t=W.find(t=>tO(t.cwd,e));return t?.projectRoot??e},[em,W]);(0,s.useEffect)(()=>{_&&X(_)},[_,X]);let tq=(0,s.useRef)(null);(0,s.useEffect)(()=>{tq.current!==_&&(tq.current=_,f?.(_,tK(_)))},[_,f,tK]);let tV=(0,s.useRef)(null);(0,s.useEffect)(()=>{g&&g!==tV.current&&(tV.current=g,V(g))},[g]);let[tJ,tG]=(0,s.useState)(0);(0,s.useLayoutEffect)(()=>{if(!_){ev(null),eE(null);return}let e=!1;return eE(_),fetch(`/api/worktrees?cwd=${encodeURIComponent(_)}`).then(e=>e.json()).then(t=>{if(!e){if(eE(null),t.error||!t.projectRoot)return void ev(null);ev({forCwd:_,projectRoot:t.projectRoot,isGit:t.isGit??!1,isTopLevel:t.isTopLevel??!1,worktrees:t.worktrees??[]})}}).catch(()=>{e||(eE(null),ev(null))}),()=>{e=!0}},[_,tJ,h]),(0,s.useEffect)(()=>{if(0!==W.length&&null===_){if(u&&!t_.current){t_.current=!0;let e=W.find(e=>e.id===u);if(e){V(e.cwd),d(e,!0);return}p?.()}if(g)return void V(g);let e=nu(W,null);e.length>0&&V(e[0])}},[W,_,u,g,d,p]),(0,s.useEffect)(()=>{u&&(t_.current=!1)},[u]);let tY=(0,s.useCallback)(async e=>{let t=e.trim();if(t&&!eh){ex(!0),ep(null);try{let e=await fetch("/api/cwd/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t})}),r=await e.json().catch(()=>({}));if(!e.ok||r.error)return void ep(r.error??`HTTP ${e.status}`);V(r.cwd??t),ec(!1),er(!1),es(null);let n=r.cwd??t,s=td.find(e=>tO(e.path,n));s&&tx(s)}catch(e){ep(e instanceof Error?e.message:String(e))}finally{ex(!1)}}},[eh,td,tx]),tX=(0,s.useCallback)(()=>{ep(null),ec(!0)},[]),tZ=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json();t.cwd&&(V(t.cwd),ec(!1),ep(null),er(!1),es(null))}catch{}},[]),tQ=(0,s.useCallback)(async()=>{let e=ew.trim();if(e&&!eT&&em){eR(!0),ez(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:em.projectRoot,branch:e})}),r=await t.json().catch(()=>({}));if(!t.ok||r.error||!r.path)return void ez(r.error??`HTTP ${t.status}`);ej(!1),eS(""),eb(!1),eo(null),ev(t=>t?{...t,forCwd:r.path,worktrees:[...t.worktrees,{path:r.path,branch:e,isMain:!1}]}:t),V(r.path),tG(e=>e+1)}catch(e){ez(e instanceof Error?e.message:String(e))}finally{eR(!1)}}},[ew,eT,em]),t1=(0,s.useCallback)(async(e,t)=>{if(em&&!eT){eR(!0),ez(null);try{let r=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:em.projectRoot,path:e,force:t})}),n=await r.json().catch(()=>({}));if(!r.ok){if(n.dirty&&!t)return void eN(e);ez(n.error??`HTTP ${r.status}`);return}eN(null),_===e&&V(em.projectRoot),tG(e=>e+1)}catch(e){ez(e instanceof Error?e.message:String(e))}finally{eR(!1)}}},[em,eT,_]);(0,s.useEffect)(()=>{let e=e=>{let t=e.target;eg.current?.contains(t)||e$.current?.contains(t)||Object.values(ef.current).some(e=>e?.contains(t))||(er(!1),es(null),eb(!1),eo(null),el(""),ep(null),ej(!1),eS(""),ez(null),eN(null))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let t2=(0,s.useCallback)(e=>{e.cwd&&V(e.cwd),d(e)},[d]),t6=(0,s.useCallback)(e=>{x?.(e),tF()},[x,tF]),t4=(0,s.useCallback)((e,t)=>{A(r=>r.map(r=>r.id===e.id?{...r,pinned:t}:r)),fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:t})}).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`)}).catch(()=>{A(r=>r.map(r=>r.id===e.id?{...r,pinned:!t}:r)),tF(!1)})},[tF]),t5=(0,s.useCallback)((e,t)=>{A(r=>r.map(r=>r.id===e.id?{...r,archived:t}:r)),fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:t})}).then(r=>{if(!r.ok)throw Error(`HTTP ${r.status}`);t&&t6(e.id)}).catch(()=>{A(r=>r.map(r=>r.id===e.id?{...r,archived:!t}:r)),tF(!1)})},[t6,tF]),t3=(0,s.useCallback)(async e=>{try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)return;t6(e.id),tF(!1)}catch{}},[t6,tF]),t8=(0,s.useCallback)(e=>{let t="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;V(e),X(e),c?.(t,e)},[c,X]),t7=(0,s.useCallback)(()=>{let e="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;V(""),c?.(e,"")},[c]),t9=(0,s.useCallback)(()=>{if(!_)return;let e="function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${Math.random().toString(36).slice(2)}`;c?.(e,_)},[_,c]),re=tK(_),rt=nu(W,_?tK(_)??_:null,G),rr=ea.trim()?rt.filter(e=>e.toLowerCase().includes(ea.trim().toLowerCase())):rt,rn=(0,s.useMemo)(()=>(re?W.filter(e=>!e.archived&&(e.projectRoot??e.cwd)===re):W.filter(e=>!e.archived)).filter(e=>e.relation?.kind!=="subagent"),[W,re]),[rs,ri]=(0,s.useState)(!1),[ra,rl]=(0,s.useState)({done:0,total:0}),rd=(0,s.useRef)(new Map),ru=(0,s.useRef)(!1),rp=(0,s.useCallback)(async()=>{if(rs){for(let[e,t]of(ru.current=!0,rd.current))t.abort(),eJ(e);return}let e=rn.filter(e=>e.messageCount>0).map(e=>e.id);if(0===e.length)return;ru.current=!1,ri(!0),rl({done:0,total:e.length});let t=0,r=0,n=async()=>{for(;!ru.current;){let n=e[t++];if(!n)return;let s=new AbortController;rd.current.set(n,s);try{await eV(n,s.signal)}catch{}finally{rd.current.delete(n),rl({done:r+=1,total:e.length})}}};await Promise.all(Array.from({length:Math.min(2,e.length)},n)),rd.current.clear(),ri(!1),tF(!1)},[rs,rn,tF]),rh=!!(em?.isGit&&em.isTopLevel&&_&&re===em.projectRoot),rx=_&&em&&re===em.projectRoot&&!rh?em.isGit?{label:L("desktop.openRepoRoot"),title:L("desktop.openRepoRootDescription")}:{label:L("desktop.gitRepoRootOnly"),title:L("desktop.gitRepoRootOnlyDescription")}:null,rg=!!(_&&eM===_),rf=rx??(rg&&!rh?{label:L("desktop.worktreesLoading"),title:L("desktop.checkingWorktrees")}:null),rm=(0,s.useMemo)(()=>{let e=eO.trim().toLowerCase();return e?rn.filter(t=>{let r=(t.name||t.firstMessage||"").toLowerCase(),n=(t.branch||"").toLowerCase();return r.includes(e)||n.includes(e)}):rn},[eO,rn]),rv=(0,s.useMemo)(()=>(function(e){let t=new Map;for(let r of e)t.set(r.id,{session:r,children:[]});let r=new Map;for(let t of e)t.parentSessionId&&r.set(t.id,t.parentSessionId);let n=[];for(let e of t.values()){let s=function(e){let n=r.get(e),s=new Set;for(;n&&!s.has(n);){if(s.add(n),t.has(n))return n;n=r.get(n)}return null}(e.session.id);s?t.get(s).children.push(e):n.push(e)}let s=e=>{e.sort((e,t)=>t.session.modified.localeCompare(e.session.modified)),e.forEach(e=>s(e.children))};return s(n),n})(rm),[rm]),[ry,rb]=(0,s.useState)(0);(0,s.useEffect)(()=>{let e=setInterval(()=>rb(e=>e+1),6e4);return()=>clearInterval(e)},[]);let rk=(0,s.useMemo)(()=>r8(rm,W),[rm,W,ry]),rj=em?.worktrees.find(e=>tO(e.path,_??""))??em?.worktrees.find(e=>e.isMain)??null,rw=(0,s.useCallback)(e=>{for(let t of Object.keys(tD))if(tO(t,e))return tD[t]},[tD]),[rS,rC]=(0,s.useState)(null),[rz,rT]=(0,s.useState)(""),rR=(0,s.useRef)(null),rI=(0,s.useCallback)(e=>{rC(e),rT(rw(e)??""),setTimeout(()=>rR.current?.focus(),0)},[rw]),rN=(0,s.useCallback)(async e=>{rC(null);let t=rz.trim();tH(r=>{let n=Object.keys(r).find(t=>tO(t,e))??e,s={...r};return t?s[n]=t:delete s[n],s});try{let r=await fetch("/api/project-aliases",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,alias:t})}),n=await r.json().catch(()=>null);if(!r.ok||!n?.aliases)throw Error(`HTTP ${r.status}`);tH(n.aliases)}catch{tB()}},[rz,tB]),rM=re?rw(re)??nh(re):u&&!t_.current?"":`${L("desktop.selectProject")}…`,rE=(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)(eY.e,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"},"aria-hidden":"true"}),(0,n.jsx)("input",{value:ea,onChange:e=>el(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(ea?el(""):(er(!1),es(null)))},placeholder:L("desktop.searchProjects"),"aria-label":L("desktop.searchProjects"),autoFocus:!0,style:{width:"100%",padding:"8px 12px 8px 34px",background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)",boxSizing:"border-box"}})]})}),r$=(0,n.jsxs)("div",{className:"scroll-overlay",style:{maxHeight:"min(32vh, 240px)",flex:1,minHeight:0,padding:"4px"},children:[rr.length>0&&(0,n.jsx)("div",{style:{padding:"5px 8px 3px",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em"},children:L("desktop.recentProjects")}),rr.map(e=>{let t=e===re,r=function(e,t){if(!t)return!1;let r=e.replace(/\\/g,"/").toLowerCase(),n=t.replace(/\\/g,"/").toLowerCase();if(!r.startsWith(n))return!1;let s=r.slice(n.length).replace(/^\/+/,"").split("/")[0]??"";return/^pi-cwd-\d{8}$/.test(s)}(e,Q),s=rw(e);return rS===e?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"2px 8px"},children:[(0,n.jsx)("input",{ref:rR,value:rz,onChange:e=>rT(e.target.value),onKeyDown:t=>{"Enter"===t.key&&(t.preventDefault(),rN(e)),"Escape"===t.key&&(rC(null),rT(s??""))},onBlur:()=>void rN(e),placeholder:L("desktop.projectAliasPlaceholder"),"aria-label":L("desktop.projectAliasPlaceholder"),maxLength:80,style:{flex:1,minWidth:0,fontSize:12,fontFamily:"var(--font-mono)",padding:"4px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsx)("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>{rC(null),rT(s??"")},title:L("i18n.close"),"aria-label":L("i18n.close"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(eP.X,{size:11,"aria-hidden":"true"})})]},e):(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",width:"100%",background:t?"var(--bg-selected)":"transparent",borderRadius:5,minWidth:0},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="transparent")},children:[(0,n.jsxs)("button",{onClick:()=>{V(e),el(""),ec(!1),ep(null),er(!1),es(null)},title:e,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"3px 8px",background:"transparent",border:"none",color:t?"var(--accent)":"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12,fontFamily:"var(--font-mono)",transition:"background 0.1s"},onMouseDown:e=>{e.currentTarget.style.background="var(--bg-selected)"},children:[r?(0,n.jsx)(eX.l,{size:12,color:t?"var(--accent)":"var(--text-dim)",weight:t?"fill":"regular",style:{flexShrink:0},"aria-hidden":"true"}):t?(0,n.jsx)(q.J,{size:12,color:"var(--accent)",weight:"bold",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:12,flexShrink:0}}),(0,n.jsxs)("span",{style:{display:"flex",alignItems:"baseline",gap:6,flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:s?"0 1 auto":"1 1 0"},children:s??nh(e)}),s&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:nh(e)})]})]}),(0,n.jsx)("button",{onClick:t=>{t.stopPropagation(),rI(e)},title:L("desktop.editProjectAlias"),"aria-label":L("desktop.editProjectAlias"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,marginRight:4,background:"none",border:"none",color:t?"var(--accent)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,opacity:.7},onMouseEnter:e=>{e.currentTarget.style.opacity="1",e.currentTarget.style.color=t?"var(--accent)":"var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.opacity="0.7",e.currentTarget.style.color=t?"var(--accent)":"var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(eZ.I,{size:12,weight:"regular","aria-hidden":"true"})})]},e)}),0===rr.length&&(0,n.jsx)("div",{style:{padding:"8px",fontSize:12,color:"var(--text-dim)"},children:ea.trim()?L("desktop.noMatchingProjects"):L("desktop.noProjectsYet")})]}),rL=(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",padding:"4px",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),tZ()},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 8px",background:"transparent",border:"none",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(eX.l,{size:14,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:L("desktop.quickWorkspace")})]}),(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),tX()},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 8px",background:"transparent",border:"none",borderRadius:5,color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)(eQ.Bm,{size:14,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:L("desktop.selectFolder")})]})]}),rW=rj?rj.branch??nh(rj.path):rf?.label,rA="dropdown"===tt,rP=rj?.branch?(0,n.jsxs)("span",{title:`${L("desktop.branch")}: ${rj.branch}`,style:{display:"inline-flex",alignItems:"center",gap:5,maxWidth:160,padding:"2px 8px",border:"1px solid var(--border)",borderRadius:999,background:"color-mix(in srgb, var(--accent) 10%, var(--bg))",color:"var(--text-muted)",fontSize:11,fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",flexShrink:0},children:[(0,n.jsx)(e0.Z,{size:11,weight:"regular","aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:rj.branch})]}):null,rF=rh?(0,n.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsx)("button",{type:"button",className:"app-no-drag",onClick:()=>eo(e=>"title"===e?null:"title"),"aria-label":L("desktop.switchWorktree"),"aria-expanded":"title"===ei,title:rj?L("desktop.switchWorktreeWithPath",{path:rj.path}):L("desktop.switchWorktree"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:30,height:30,padding:0,background:"title"===ei?"var(--bg-selected)":"none",border:"1px solid var(--border)",borderRadius:999,color:"title"===ei?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="title"===ei?"var(--bg-selected)":"none",e.currentTarget.style.color="title"===ei?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(e0.Z,{size:14,weight:"regular","aria-hidden":"true"})}),(0,n.jsxs)(ng,{open:"title"===ei,style:{position:"absolute",top:"calc(100% + 4px)",right:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:em?.worktrees.map(e=>{let t=tO(e.path,_??"")||e.isMain&&!em.worktrees.some(e=>tO(e.path,_??""));return(0,n.jsxs)("button",{onClick:()=>{V(e.path),eb(!1),eo(null),ez(null)},title:e.path,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"var(--bg)",border:"none",borderBottom:"1px solid var(--border)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(q.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(nx,{text:e.branch??np(e.path,Q),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:L("desktop.main")})]},e.path)})}),ek?(0,n.jsxs)("div",{style:{padding:"6px 8px",borderTop:"1px solid var(--border)"},children:[(0,n.jsx)("input",{ref:eL,value:ew,onChange:e=>{eS(e.target.value),ez(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tQ()),"Escape"===e.key&&(ej(!1),eS(""),ez(null))},placeholder:L("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tQ(),disabled:eT||!ew.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eT||!ew.trim()?"not-allowed":"pointer",opacity:eT||!ew.trim()?.65:1},children:eT?L("desktop.creating"):L("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{ej(!1),eS(""),ez(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:L("desktop.cancel")})]}),eC&&(0,n.jsx)("div",{style:{marginTop:5,color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eC})]}):(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),ej(!0),ez(null),setTimeout(()=>eL.current?.focus(),0)},title:L("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",borderTop:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:(0,n.jsx)("span",{children:L("desktop.newWorktree")})})]})]}):null;return(0,n.jsxs)(n.Fragment,{children:[ed&&(0,n.jsx)(tg,{busy:eh,error:eu,onCancel:()=>{eh||(ec(!1),ep(null))},onSelect:e=>void tY(e)}),I?.welcome&&(0,eG.createPortal)((0,n.jsx)("div",{ref:e=>{ef.current.welcome=e},style:{height:"100%",display:"flex"},children:(r="welcome"==(t="welcome"),i=en===t,o=ei===t,a=re?rw(re)??nh(re):rM,N?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",gap:r?6:2,height:r?"auto":"100%",minWidth:0,width:r?"100%":void 0},children:[(0,n.jsxs)("div",{style:{position:"relative",minWidth:0,width:r?"fit-content":void 0,maxWidth:r?"min(100%, 560px)":void 0},children:[(0,n.jsxs)("button",{className:`app-no-drag app-titlebar-context-control workspace-project-control${r?" workspace-project-control-large":""}`,onClick:()=>es(e=>e===t?null:t),title:re??_??L("desktop.selectProject"),"aria-label":L("desktop.selectProject"),"aria-expanded":i,style:{height:r?48:36,width:r?"100%":void 0,maxWidth:r?"100%":260,minWidth:0,display:"flex",alignItems:"center",gap:r?10:6,padding:r?"0 12px":"0 8px",background:i?"var(--bg-selected)":"none",border:"none",borderRadius:8*!!r,color:i?"var(--text)":_?r?"var(--text)":"var(--text-muted)":"var(--text-dim)",cursor:"pointer",fontSize:r?24:12,fontWeight:500,fontFamily:"var(--font-mono)",lineHeight:1,letterSpacing:0,textAlign:"left",transition:"background 0.12s, color 0.12s, border-color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=_?"var(--text)":"var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.background=i?"var(--bg-selected)":"none",e.currentTarget.style.color=i?"var(--text)":_?"var(--text-muted)":"var(--text-dim)"},children:[(0,n.jsx)(nx,{text:r?a:rM,style:{flex:1,minWidth:0,color:"inherit",direction:"ltr",fontFamily:"inherit"}}),(0,n.jsx)(e1.a,{size:12,weight:"regular",style:{flexShrink:0,transition:"transform 0.12s",transform:i?"rotate(180deg)":"none"},"aria-hidden":"true"})]}),(0,n.jsxs)(ng,{open:i,style:{position:"absolute",top:"calc(100% + 4px)",left:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"min(38vh, 300px)"},children:[rE,r$,rL]})]}),r&&(rh||rf)&&(0,n.jsxs)("div",{style:{position:"relative",minWidth:0},children:[(0,n.jsxs)("button",{className:"app-no-drag app-titlebar-context-control workspace-worktree-control",onClick:()=>{rh&&eo(e=>e===t?null:t)},"aria-label":L("desktop.switchWorktree"),"aria-expanded":rh?o:void 0,"aria-disabled":!rh,tabIndex:rh?0:-1,title:rh&&rj?L("desktop.switchWorktreeWithPath",{path:rj.path}):rf?.title,style:{height:36,maxWidth:220,minWidth:0,display:"flex",alignItems:"center",gap:6,padding:"0 8px",background:o?"var(--bg-selected)":"none",border:"none",color:o?"var(--text)":rh?"var(--text-muted)":"var(--text-dim)",cursor:rh?"pointer":"default",fontSize:12,fontWeight:500,fontFamily:"var(--font-mono)",lineHeight:1,letterSpacing:0,opacity:rh?1:.82,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{rh&&(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.background=o?"var(--bg-selected)":"none",e.currentTarget.style.color=o?"var(--text)":rh?"var(--text-muted)":"var(--text-dim)"},children:[(0,n.jsx)(e0.Z,{size:16,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),r&&(0,n.jsx)("span",{className:"worktree-title-label",children:(0,n.jsx)(nx,{text:rW??"",style:{flex:1,minWidth:0,color:"inherit",direction:"ltr",fontFamily:"inherit"}})}),rh&&(0,n.jsx)(e1.a,{size:12,weight:"regular",style:{flexShrink:0,transition:"transform 0.12s",transform:o?"rotate(180deg)":"none"},"aria-hidden":"true"})]}),(0,n.jsxs)(ng,{open:rh&&o,style:{position:"absolute",top:"calc(100% + 4px)",left:0,width:"min(320px, calc(88vw - 16px))",zIndex:1e3,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.16)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:em?.worktrees.map(e=>{let t=tO(e.path,_??"")||e.isMain&&!em.worktrees.some(e=>tO(e.path,_??""));return(0,n.jsxs)("button",{onClick:()=>{V(e.path),eb(!1),eo(null),ez(null)},title:e.path,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"var(--bg)",border:"none",borderBottom:"1px solid var(--border)",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(q.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(nx,{text:e.branch??np(e.path,Q),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:L("desktop.main")})]},e.path)})}),ek?(0,n.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,n.jsx)("input",{ref:eL,value:ew,onChange:e=>{eS(e.target.value),ez(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tQ()),"Escape"===e.key&&(ej(!1),eS(""),ez(null))},placeholder:L("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tQ(),disabled:eT||!ew.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eT||!ew.trim()?"not-allowed":"pointer",opacity:eT||!ew.trim()?.65:1},children:eT?L("desktop.creating"):L("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{ej(!1),eS(""),ez(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:L("desktop.cancel")})]}),eC&&(0,n.jsx)("div",{style:{marginTop:5,color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eC})]}):(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),ej(!0),ez(null),setTimeout(()=>eL.current?.focus(),0)},title:L("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:(0,n.jsx)("span",{children:L("desktop.newWorktree")})})]})]})]}):null)}),I.welcome,"welcome"),I?.titleRight&&!Z&&(0,eG.createPortal)((0,n.jsxs)("div",{ref:e=>{ef.current.titleRight=e},style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[rP,rF]}),I.titleRight,"titleRight"),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden",position:"relative"},children:[tn&&"dropdown"===tt&&(0,n.jsxs)("div",{role:"dialog","aria-label":L("desktop.sidebarModeHintTitle"),style:{position:"absolute",top:40,left:8,right:8,zIndex:60,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 10px 28px rgba(0,0,0,0.4)",padding:10},children:[(0,n.jsx)("div",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:L("desktop.sidebarModeHintTitle")}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",marginTop:4,lineHeight:1.55},children:L("desktop.sidebarModeHintDesc")}),(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:8},children:(0,n.jsx)("button",{onClick:ta,style:{height:24,padding:"0 10px",background:"var(--bg-selected)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:11.5,fontWeight:500,cursor:"pointer"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text)"},children:L("desktop.sidebarModeHintOk")})})]}),"projects"===tt?(0,n.jsx)(nn,{sessions:W,loading:F,runningIds:tR,unreadIds:tN,aliases:tD,selectedSessionId:l,selectedProjectRoot:re,searchQuery:eO,onSearchQueryChange:eH,onSelectSession:t2,onNewSessionInProject:t8,onArchive:t5,onDeleteForever:t3,onRemoveProject:th,hiddenProjects:td,onUnhideProject:tx,onPickFolder:()=>ec(!0),onCycleToList:()=>{e_("list"),te("dropdown")},onRenamed:()=>void tF(!1),onNewTask:t7,onOpenCommandPalette:M,renderFileTree:e=>(0,n.jsx)(t0,{ref:tA,cwd:e,onOpenFile:m??(()=>{}),refreshKey:tv,onAtMention:y,onAtMentions:b,onUploadBusyChange:tk,fileSearchOpen:tj,onFileSearchOpenChange:tw,onFileCreated:k,onFileDeleted:j,selectedFilePath:w}),isMobile:Z}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,n.jsxs)("button",{onClick:()=>eA(e=>!e),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(e2.K,{size:9,weight:"regular",style:{transform:eW?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),L("desktop.sessions")]}),(0,n.jsx)("button",{onClick:()=>{"list"===eF?e_("groups"):te("projects")},title:`${L("desktop.sidebarModeCycle")}:${"list"===eF?L("desktop.sessionViewGroups"):L("desktop.showAllProjects")}`,"aria-label":L("desktop.sidebarModeCycle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,marginRight:2,flexShrink:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:"list"===eF?(0,n.jsx)(B.B,{size:12,weight:"regular","aria-hidden":"true"}):(0,n.jsx)(e6.d,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:t9,disabled:!_,title:_?L("desktop.newSessionIn",{cwd:_}):L("desktop.selectProjectFirst"),"aria-label":L("desktop.newSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:_?"pointer":"default",borderRadius:5,flexShrink:0,opacity:_?1:.6,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{_&&(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(e4.F,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>void rp(),disabled:!_||0===rn.filter(e=>e.messageCount>0).length,title:rs?`${L("desktop.generatingTitlesProgress",{done:ra.done,total:ra.total})}`:L("desktop.generateAllTitles"),"aria-label":L("desktop.generateAllTitles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,opacity:_&&0!==rn.filter(e=>e.messageCount>0).length?1:.5,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{rs||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:rs?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(e5.R,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>tF(!1),title:L("desktop.refresh"),"aria-label":L("desktop.refresh"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:tS?"rgba(74,222,128,0.18)":"none",border:"none",color:tS?"var(--status-success)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{tS||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{tS||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:tS?(0,n.jsx)(q.J,{size:13,color:"var(--status-success)",weight:"regular","aria-hidden":"true"}):(0,n.jsx)(K.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),rA&&(0,n.jsxs)("div",{ref:eg,style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:()=>er(e=>!e),title:re??_??"",style:{width:"100%",display:"flex",alignItems:"center",padding:"6px 10px",background:_?"var(--bg-hover)":"rgba(37,99,235,0.06)",border:_?"1px solid var(--border)":"1px solid rgba(37,99,235,0.4)",borderRadius:7,cursor:"pointer",fontSize:12,color:"var(--text)",textAlign:"left",transition:"border-color 0.15s, background 0.15s"},children:_?(0,n.jsx)(nx,{text:rw(re??_??"")??nh(re??_??""),style:{flex:1,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text)"}}):(0,n.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)"},children:u&&!t_.current?"":`${L("desktop.selectProject")}…`})}),(0,n.jsxs)(ng,{open:et,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",display:"flex",flexDirection:"column",maxHeight:"min(38vh, 300px)"},children:[rE,r$,rL]})]}),rA&&rh&&(()=>{if(!em)return null;let e=em.worktrees.find(e=>tO(e.path,_??""))??em.worktrees.find(e=>e.isMain);return(0,n.jsxs)("div",{ref:e$,style:{position:"relative",marginTop:6},children:[(0,n.jsxs)("button",{onClick:()=>eb(e=>!e),title:e?L("desktop.switchWorktreeWithPath",{path:e.path}):L("desktop.switchWorktree"),style:{width:"100%",height:29,boxSizing:"border-box",display:"flex",alignItems:"center",gap:6,padding:"0 10px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:7,cursor:"pointer",fontSize:11,lineHeight:1.35,color:"var(--text-muted)",textAlign:"left"},children:[(0,n.jsx)(e0.Z,{size:11,weight:"regular",style:{flexShrink:0,color:e&&!e.isMain?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true"}),(0,n.jsx)(nx,{text:e?e.branch??np(e.path,Q):"…",style:{flex:1,fontFamily:"var(--font-mono)",color:"var(--text)"}}),e?.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:L("desktop.main")}),em.worktrees.length>1&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:em.worktrees.length}),(0,n.jsx)(e1.a,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"})]}),(0,n.jsxs)(ng,{open:ey,style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"scroll-overlay",style:{maxHeight:"min(40vh, 300px)"},children:em.worktrees.map(e=>{let t=tO(e.path,_??"")||e.isMain&&!em.worktrees.some(e=>tO(e.path,_??""));return eI===e.path?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"rgba(239,68,68,0.06)"},children:[(0,n.jsx)("span",{style:{flex:1,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:L("desktop.uncommittedChanges")}),(0,n.jsx)("button",{onClick:()=>void t1(e.path,!0),disabled:eT,style:{padding:"3px 9px",background:"var(--status-error)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:L("desktop.force")}),(0,n.jsx)("button",{onClick:()=>eN(null),style:{padding:"3px 9px",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer",flexShrink:0},children:L("desktop.cancel")})]},e.path):(0,n.jsxs)("div",{className:"wt-row",style:{display:"flex",alignItems:"center",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("button",{onClick:()=>{V(e.path),eb(!1),ez(null)},title:e.path,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:7,padding:"8px 10px",background:"var(--bg)",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11,fontFamily:"var(--font-mono)"},children:[t?(0,n.jsx)(q.J,{size:10,color:"var(--accent)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)(nx,{text:e.branch??np(e.path,Q),style:{flex:1}}),e.isMain&&(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontSize:10},children:L("desktop.main")})]}),!e.isMain&&(0,n.jsx)("button",{onClick:()=>void t1(e.path,!1),disabled:eT,title:L("desktop.removeWorktree",{path:e.path}),style:{display:"flex",alignItems:"center",justifyContent:"center",width:34,height:28,padding:0,marginRight:4,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--status-error)",e.currentTarget.style.background="rgba(239,68,68,0.08)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(e3.l,{size:12,weight:"regular","aria-hidden":"true"})})]},e.path)})}),ek?(0,n.jsxs)("div",{style:{padding:"6px 8px"},children:[(0,n.jsx)("input",{ref:eL,value:ew,onChange:e=>{eS(e.target.value),ez(null)},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),tQ()),"Escape"===e.key&&(ej(!1),eS(""),ez(null))},placeholder:L("desktop.branchName"),style:{width:"100%",fontSize:11,fontFamily:"var(--font-mono)",padding:"5px 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,marginTop:5},children:[(0,n.jsx)("button",{onClick:()=>void tQ(),disabled:eT||!ew.trim(),style:{flex:1,padding:"4px 0",background:"var(--accent)",border:"none",borderRadius:5,color:"var(--accent-fg)",fontSize:11,fontWeight:600,cursor:eT||!ew.trim()?"not-allowed":"pointer",opacity:eT||!ew.trim()?.65:1},children:eT?L("desktop.creating"):L("desktop.create")}),(0,n.jsx)("button",{onClick:()=>{ej(!1),eS(""),ez(null)},style:{flex:1,padding:"4px 0",background:"var(--bg-hover)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text-muted)",fontSize:11,cursor:"pointer"},children:L("desktop.cancel")})]})]}):(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),ej(!0),ez(null),setTimeout(()=>eL.current?.focus(),0)},title:L("desktop.createWorktree"),style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"8px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11},children:[(0,n.jsx)(e4.F,{size:10,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{children:L("desktop.newWorktree")})]}),eC&&(0,n.jsx)("div",{style:{padding:"5px 10px 8px",color:"var(--status-error)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:eC})]})]})})(),rA&&rf&&(0,n.jsxs)("button",{type:"button","aria-disabled":"true",tabIndex:-1,title:rf.title,style:{width:"100%",height:29,boxSizing:"border-box",marginTop:6,display:"flex",alignItems:"center",gap:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-hover)",color:"var(--text-dim)",fontSize:11,lineHeight:1.35,whiteSpace:"nowrap",textAlign:"left",cursor:"default",opacity:.82},children:[(0,n.jsx)(e0.Z,{size:11,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:rf.label})]})]}),eW&&(0,n.jsxs)("div",{className:"scroll-overlay",style:{flex:tf?"0 1 auto":"1 1 0",padding:"0",minHeight:0,maxHeight:tf?"min(40%, 360px)":"none"},children:[(0,n.jsx)("div",{className:"sidebar-search-band",style:{position:"sticky",top:0,zIndex:1,padding:"4px 10px 6px",background:"var(--bg)"},children:(0,n.jsxs)("div",{className:"sidebar-search-field",style:{display:"flex",alignItems:"center",gap:6,background:"var(--bg-hover)",borderRadius:8,padding:"0 9px",height:30},children:[(0,n.jsx)(eY.e,{size:13,color:"var(--text-dim)",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("input",{value:eO,onChange:e=>eH(e.target.value),placeholder:L("desktop.searchSessions"),"aria-label":L("desktop.searchSessions"),style:{flex:1,minWidth:0,background:"none",border:"none",outline:"none",color:"var(--text)",fontSize:12,fontFamily:"var(--font-mono)"}}),eO&&(0,n.jsx)("button",{onClick:()=>eH(""),"aria-label":L("i18n.close"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:18,height:18,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",borderRadius:4,flexShrink:0},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-selected)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none"},children:(0,n.jsx)(eP.X,{size:11,"aria-hidden":"true"})})]})}),F&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:L("desktop.loading")}),O&&(0,n.jsx)("div",{style:{padding:"12px 14px",color:"var(--status-error)",fontSize:12},children:O}),(0,n.jsxs)(ro,{open:eO.trim().length>0,query:eO,mode:"append",headerLabel:L("sidebar.toggleSessionSearch"),selectedSessionId:l,onSelectSession:t2,children:[!F&&!O&&"list"===eF&&(0,n.jsxs)(n.Fragment,{children:[0===rm.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:L(eO.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),rv.map(e=>(0,n.jsx)(nv,{node:e,selectedSessionId:l,runningSessionIds:tR,unreadSessionIds:tN,onSelectSession:t2,onRenamed:tF,selectedSessionStats:R,onSessionDeleted:t6,depth:0},e.session.id))]}),!F&&!O&&"groups"===eF&&(0,n.jsxs)(n.Fragment,{children:[0===rm.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:L(eO.trim()?"desktop.noSearchResults":"desktop.noSessionsFound")}),rk.map(e=>{let t=eO.trim().length>0||eB[e.key];return(0,n.jsx)(nb,{groupKey:e.key,label:L(r5[e.key]),rows:e.rows,isOpen:t,onToggle:()=>eU(t=>({...t,[e.key]:!t[e.key]})),onSelectSession:t2,selectedSessionId:l,runningSessionIds:tR,unreadSessionIds:tN,allSessions:W,onPinChange:t4,onRenamed:tF,onSessionDeleted:t6},e.key)})]})]})]}),(g||_)&&(0,n.jsxs)("div",{style:{borderTop:"1px solid var(--border)",display:"flex",flexDirection:"column",flex:tf?"1 1 0":"0 0 auto",minHeight:0,overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0},children:[(0,n.jsxs)("button",{onClick:()=>tm(e=>{let t=!e;return!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:na();if(t)try{t.setItem(no,String(e))}catch{}}(t),t}),style:{display:"flex",alignItems:"center",gap:6,flex:1,padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:11,fontWeight:600,letterSpacing:"0.05em",textTransform:"uppercase",textAlign:"left"},children:[(0,n.jsx)(e2.K,{size:9,weight:"regular",style:{transform:tf?"rotate(90deg)":"none",transition:"transform 0.15s",flexShrink:0},"aria-hidden":"true"}),L("desktop.explorer")]}),tf&&(0,n.jsx)("button",{onClick:()=>tw(e=>!e),title:L("sidebar.searchFiles"),"aria-label":L("sidebar.searchFiles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:tj?"var(--bg-selected)":"none",border:"none",color:tj?"var(--accent)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{tj||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:(0,n.jsx)(eY.e,{size:13,weight:"regular","aria-hidden":"true"})}),tf&&(0,n.jsx)("button",{onClick:()=>tA.current?.openUploadPicker(),disabled:tb,title:L("desktop.uploadFilesToProjectRoot"),"aria-label":L("desktop.uploadFiles"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",color:"var(--text-dim)",cursor:tb?"default":"pointer",borderRadius:5,flexShrink:0,opacity:tb?.6:1,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{tb||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{tb||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:(0,n.jsx)(e8.C,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:()=>{ty(e=>e+1),tT(!0),tW.current&&clearTimeout(tW.current),tW.current=setTimeout(()=>tT(!1),2e3)},title:L("desktop.refreshExplorer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,marginRight:6,background:tz?"rgba(74,222,128,0.18)":"none",border:"none",color:tz?"var(--status-success)":"var(--text-dim)",cursor:"pointer",borderRadius:5,flexShrink:0,transition:"color 0.3s, background 0.3s"},onMouseEnter:e=>{tz||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{tz||(e.currentTarget.style.color="var(--text-dim)",e.currentTarget.style.background="none")},children:tz?(0,n.jsx)(q.J,{size:13,color:"var(--status-success)",weight:"regular","aria-hidden":"true"}):(0,n.jsx)(K.S,{size:13,weight:"regular","aria-hidden":"true"})})]}),tf&&(0,n.jsx)("div",{className:"scroll-overlay",style:{flex:1,overflowX:"hidden"},children:(0,n.jsx)(t0,{ref:tA,cwd:_??g,onOpenFile:m??(()=>{}),refreshKey:tv,onAtMention:y,onAtMentions:b,onUploadBusyChange:tk,fileSearchOpen:tj,onFileSearchOpenChange:tw,onFileCreated:k,onFileDeleted:j,selectedFilePath:w})})]})]}),(g||_)&&(0,n.jsx)(rc,{cwd:_??g,refreshKey:tv,onOpenFile:m??(()=>{})}),S&&(0,n.jsxs)("footer",{className:"sidebar-utility-bar","aria-label":L("desktop.settings"),children:[(0,n.jsxs)("div",{className:"sidebar-utility-actions",children:[(0,n.jsx)("button",{type:"button",className:"sidebar-utility-button",onClick:()=>S(),title:L("desktop.settings"),"aria-label":L("desktop.settings"),children:(0,n.jsx)(e7.O,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",className:"sidebar-utility-button",onClick:()=>S("plugins"),disabled:!_&&!g,title:L("desktop.plugins"),"aria-label":L("desktop.plugins"),children:(0,n.jsx)(e9.F,{size:16,"aria-hidden":"true"})}),!Z&&T&&C&&(0,n.jsx)("button",{type:"button",className:"sidebar-utility-button",onClick:C,title:z?L("desktop.hideTaskBoard"):L("desktop.showTaskBoard"),"aria-label":z?L("desktop.hideTaskBoard"):L("desktop.showTaskBoard"),"aria-pressed":z,children:(0,n.jsx)(U.x,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("span",{className:"sidebar-utility-version",children:["v",ti]})]})]})]})}let nv=(0,s.memo)(function e(t){let{node:r,selectedSessionId:i,runningSessionIds:o,unreadSessionIds:a,onSelectSession:l,onRenamed:d,onSessionDeleted:c,selectedSessionStats:u,depth:p}=t,[h,x]=(0,s.useState)(!1),g=r.children.length>0,f=r.session.id===i,m=(0,s.useCallback)(()=>l(r.session),[l,r.session]),v=(0,s.useCallback)(e=>c?.(e),[c]),y=(0,s.useCallback)(()=>x(e=>!e),[]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{position:"relative"},children:[p>0&&(0,n.jsx)("div",{style:{position:"absolute",left:12*p+6,top:0,bottom:0,width:1,background:"var(--border)",pointerEvents:"none"}}),(0,n.jsx)(ny,{session:r.session,isSelected:f,isRunning:o.has(r.session.id),isUnread:a.has(r.session.id),onClick:m,onRenamed:d,onDeleted:v,selectedSessionId:i,selectedSessionStats:f?u:null,depth:p,hasChildren:g,collapsed:h,onToggleCollapse:y})]}),g&&!h&&(0,n.jsx)("div",{children:r.children.map(t=>(0,n.jsx)(e,{node:t,selectedSessionId:i,runningSessionIds:o,unreadSessionIds:a,onSelectSession:l,onRenamed:d,onSessionDeleted:c,selectedSessionStats:u,depth:p+1},t.session.id))})]})}),ny=(0,s.memo)(function(e){let t,{session:r,isSelected:i,isRunning:o,isUnread:a,onClick:l,onRenamed:d,onDeleted:c,selectedSessionId:u,selectedSessionStats:p,depth:h=0,hasChildren:x=!1,collapsed:g=!1,onToggleCollapse:f}=e,{t:m}=(0,J.s)(),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(!1),[j,w]=(0,s.useState)(""),[S,C]=(0,s.useState)(0),[z,T]=(0,s.useState)(0),[R,I]=(0,s.useState)(!1),[N,M]=(0,s.useState)(!1),[E,$]=(0,s.useState)(!1),[L,W]=(0,s.useState)(null),A=(0,s.useRef)(null),P=(0,s.useRef)(null),F=(0,s.useRef)(null),D=(0,s.useRef)(null),[O,H]=(0,s.useState)(!1);G(O,()=>H(!1));let[B,U]=(0,s.useState)([]),[_,q]=(0,s.useState)(null),[V,Y]=(0,s.useState)(!1),[X,Z]=(0,s.useState)(!1),Q=(0,s.useMemo)(()=>{let e=new Map;for(let t of B){let r=t.provider||"other",n=e.get(r);n?n.push(t):e.set(r,[t])}return Array.from(e.entries()).sort((e,t)=>e[0].localeCompare(t[0]))},[B]),ee=ri(r),et=r.messageCount>0||r.id===u&&(p?.userMessages??0)>0;(0,s.useLayoutEffect)(()=>{b&&T(F.current?.getBoundingClientRect().width??0)},[b,j,S]);let er=(0,s.useCallback)(e=>{e.stopPropagation(),w(ee),C(ee.length),k(!0),setTimeout(()=>P.current?.select(),0)},[ee]),en=(0,s.useCallback)(async()=>{let e=j.trim();if(k(!1),e!==(r.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(r.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})}),d?.()}catch{}},[j,r.id,r.name,d]),es=(0,s.useCallback)(async e=>{if(e.stopPropagation(),E){A.current?.abort(),eJ(r.id);return}if(!et)return;let t=new AbortController;A.current=t,$(!0),W(null);try{await eV(r.id,t.signal),d?.()}catch(e){t.signal.aborted||W(e instanceof Error?e.message:String(e))}finally{A.current===t&&(A.current=null),$(!1)}},[E,et,r.id,d]),ei=(0,s.useCallback)(async()=>{H(!0),Y(!0),q(null);try{let e=await fetch(`/api/models?cwd=${encodeURIComponent(r.cwd||"")}`),t=await e.json().catch(()=>({}));if(!e.ok){U([]),q(t.error??`HTTP ${e.status}`);return}U(t.modelList??[])}catch{U([]),q("HTTP request failed")}finally{Y(!1)}},[r.cwd]),eo=(0,s.useCallback)(async e=>{Z(!0);try{await fetch("/api/settings/title-model",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({modelId:e})}),H(!1),W(null),$(!0);try{await eV(r.id),d?.()}catch(e){W(e instanceof Error?e.message:String(e))}finally{$(!1)}}catch{}finally{Z(!1)}},[r.id,d]),ea=(0,s.useCallback)(async()=>{M(!0);try{let e=await fetch(`/api/sessions/${encodeURIComponent(r.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:!0})});if(!e.ok)throw Error(`HTTP ${e.status}`);c?.(r.id)}catch{M(!1)}},[r.id,c]),el=(0,s.useCallback)(e=>{e.stopPropagation(),e.shiftKey?ea():I(!0)},[ea]),ed=(0,s.useCallback)(e=>{e.stopPropagation(),I(!1),ea()},[ea]),ec=(0,s.useCallback)(e=>{e.stopPropagation(),I(!1)},[]);return(0,n.jsx)("div",{ref:D,className:["session-row",i?"is-selected":"",o?"is-running":"",a?"is-unread":"",h>0?"is-fork":""].filter(Boolean).join(" "),"data-fork-depth":h,onClick:R||b?void 0:l,onMouseEnter:()=>y(!0),onMouseLeave:()=>{y(!1)},style:{height:"var(--session-row-height, 50px)",minHeight:"var(--session-row-height, 50px)",display:"flex",alignItems:"center",paddingLeft:h>0?12*h+14:14,paddingRight:8,cursor:R||b?"default":"pointer",background:R||i?"var(--session-row-bg-selected, var(--bg-selected))":v?"var(--session-row-bg-hover, var(--bg-hover))":"transparent",borderLeft:R||i?"2px solid var(--session-row-accent, var(--accent))":"2px solid transparent",borderRadius:"var(--session-row-radius, 0)",transition:"background 0.1s",opacity:N?.5:1,gap:6,overflow:"hidden"},children:R?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:m("desktop.archiveSessionConfirm",{title:`“${ee.slice(0,22)}${ee.length>22?"…":""}”`})}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,n.jsxs)("button",{onClick:ed,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:4,height:30,padding:"0 11px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(te.T,{size:12,weight:"regular","aria-hidden":"true"}),m("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:ec,style:{display:"flex",alignItems:"center",justifyContent:"center",height:30,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:500,whiteSpace:"nowrap"},children:m("desktop.cancel")})]})]}):(0,n.jsxs)(n.Fragment,{children:[h>0&&(0,n.jsx)(e0.Z,{size:10,color:"var(--text-dim)",weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,height:20,fontSize:12,fontWeight:i?500:400,lineHeight:"20px",color:"var(--text)"},title:o?`${ee} \xb7 ${m("desktop.agentRunning")}`:a?`${ee} \xb7 ${m("desktop.newActivity")}`:ee,children:[o?(0,n.jsx)(ne,{}):a?(0,n.jsx)(nt,{}):null,b?(0,n.jsxs)("div",{style:{position:"relative",flex:"1 1 0",alignSelf:"stretch",width:"100%",minWidth:0,height:20,background:"color-mix(in srgb, var(--accent) 18%, var(--bg))",borderRadius:3},children:[(0,n.jsx)("span",{ref:F,"aria-hidden":"true",style:{position:"absolute",visibility:"hidden",whiteSpace:"pre",font:"inherit",lineHeight:"inherit"},children:j.slice(0,S)}),(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:2,bottom:2,left:z,width:2,background:"var(--accent)",borderRadius:1,animation:"blink 1s step-end infinite",pointerEvents:"none"}}),(0,n.jsx)("input",{ref:P,value:j,onChange:e=>{w(e.target.value),C(e.target.selectionStart??e.target.value.length)},onSelect:e=>C(e.currentTarget.selectionEnd??0),onBlur:en,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),en()),"Escape"===e.key&&(e.preventDefault(),k(!1))},"aria-label":m("desktop.rename"),autoFocus:!0,style:{width:"100%",minWidth:0,height:20,margin:0,padding:0,border:"none",outline:"none",background:"transparent",borderRadius:"inherit",color:"inherit",font:"inherit",lineHeight:"inherit",caretColor:"transparent"}})]}):(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1},children:ee}),x&&(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),f?.()},title:m(g?"desktop.expandForks":"desktop.collapseForks"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",transform:g?"rotate(-90deg)":"none",transition:"transform 0.15s"},children:(0,n.jsx)(e1.a,{size:10,weight:"regular","aria-hidden":"true"})}),v&&!b&&(0,n.jsxs)("div",{style:{display:"flex",gap:2,flexShrink:0},children:[(0,n.jsx)("button",{onClick:es,disabled:!et,title:L??m(et?E?"desktop.generatingTitle":"desktop.generateTitle":"desktop.titleNeedsMessages"),"aria-label":m("desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:L?"var(--status-error)":"var(--text-dim)",cursor:et?"pointer":"default",flexShrink:0,opacity:E?.7:et?1:.35,transition:"color 0.12s"},onMouseEnter:e=>{!E&&et&&(e.currentTarget.style.color=L?"var(--status-error)":"var(--accent)")},onMouseLeave:e=>{e.currentTarget.style.color=L?"var(--status-error)":"var(--text-dim)"},children:E?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(e5.R,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:er,title:m("desktop.rename"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(eZ.I,{size:13,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:el,title:m("desktop.archiveSession"),"aria-label":m("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(te.T,{size:13,weight:"regular","aria-hidden":"true"})})]})]}),(0,n.jsxs)("div",{style:{marginTop:2,display:"flex",gap:8,color:"var(--text-dim)",fontSize:11,minWidth:0,flexWrap:"nowrap",whiteSpace:"nowrap"},children:[(0,n.jsx)("span",{title:r.modified,style:{flexShrink:0},children:r9(r.modified,m)}),(0,n.jsx)("span",{style:{flexShrink:0},children:m("desktop.messagesCount",{count:r.messageCount})}),r.isWorktree&&r.branch&&(0,n.jsxs)("span",{title:m("desktop.worktree",{cwd:r.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden",flex:"1 1 auto"},children:[(0,n.jsx)(e0.Z,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.branch})]}),r.importedFrom&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:3,color:"var(--text-dim)",minWidth:0,overflow:"hidden",flexShrink:1},children:[(0,n.jsx)(tt.z,{size:9,weight:"regular",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"reasonix"===r.importedFrom?m("desktop.importFromReasonix")??"来自 Reasonix":r.importedFrom})]})]}),L&&D.current&&(t=D.current.getBoundingClientRect(),(0,n.jsxs)("div",{style:{position:"fixed",top:Math.max(8,t.top+t.height/2-34),left:t.right+10,zIndex:3e3,width:300,padding:"10px 12px",borderRadius:10,background:"var(--bg-panel)",border:"1px solid color-mix(in srgb, #ef4444 40%, var(--border))",boxShadow:"0 10px 30px rgba(0,0,0,0.25)",animation:"plan-card-in 0.15s ease-out"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:6},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:650,color:"var(--status-error)",flex:1,minWidth:0},children:m("desktop.titleGenerationFailed")}),(0,n.jsx)("button",{type:"button",onClick:()=>W(null),"aria-label":m("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(eP.X,{size:12,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{fontSize:11,lineHeight:1.45,color:"var(--text-muted)",wordBreak:"break-word",marginBottom:8},children:L}),(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsxs)("button",{type:"button",onClick:es,disabled:E,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"5px 10px",borderRadius:6,background:"var(--status-error)",border:"none",color:"var(--accent-fg)",fontSize:11.5,fontWeight:600,cursor:E?"default":"pointer"},children:[(0,n.jsx)(K.S,{size:11,"aria-hidden":"true"}),m("desktop.retry")]}),(0,n.jsxs)("button",{type:"button",onClick:ei,disabled:X,style:{display:"inline-flex",alignItems:"center",gap:4,padding:"5px 10px",borderRadius:6,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:11.5,cursor:X?"default":"pointer"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:[(0,n.jsx)(tr.f,{size:11,"aria-hidden":"true"}),m("desktop.changeTitleModel")]})]})]})),O&&(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:3100,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.4)",padding:16},children:(0,n.jsxs)("div",{role:"dialog","aria-label":m("desktop.changeTitleModel"),style:{width:"min(420px, calc(100vw - 32px))",maxHeight:"min(70vh, 480px)",display:"flex",flexDirection:"column",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 16px 40px rgba(0,0,0,0.3)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)(tr.f,{size:15,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{fontSize:13,fontWeight:650,color:"var(--text)",flex:1},children:m("desktop.changeTitleModel")}),(0,n.jsx)("button",{type:"button",onClick:()=>H(!1),"aria-label":m("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:3,display:"flex"},children:(0,n.jsx)(eP.X,{size:14,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{className:"scroll-overlay",style:{padding:"8px 6px",flex:1},children:V?(0,n.jsx)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--text-muted)"},children:m("desktop.loading")}):_?(0,n.jsxs)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--status-error)"},children:[m("desktop.modelsLoadFailed"),": ",_]}):0===B.length?(0,n.jsx)("div",{style:{padding:"12px 8px",fontSize:12,color:"var(--text-muted)"},children:m("desktop.noModels")}):Q.map(e=>{let[t,r]=e;return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"capitalize"},children:t}),r.map(e=>{let t=`${e.provider||"other"}\u0000${e.id}`;return(0,n.jsx)("button",{type:"button",onClick:()=>{eo(e.id)},disabled:X,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 10px",background:"none",border:"none",borderRadius:7,color:"var(--text)",fontSize:12.5,cursor:X?"default":"pointer",textAlign:"left"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name||e.id})},t)})]},t)})})]})})]})]})})});function nb(e){let{groupKey:t,label:r,rows:s,isOpen:i,onToggle:o,onSelectSession:a,selectedSessionId:l,runningSessionIds:d,unreadSessionIds:c,allSessions:u,onPinChange:p,onRenamed:h,onSessionDeleted:x}=e,{t:g}=(0,J.s)();return(0,n.jsxs)("div",{className:`session-group${i?" is-open":""}`,"data-group":t,style:{margin:"0 8px 6px",borderRadius:10,background:"var(--bg-panel)",border:"1px solid var(--border)",overflow:"hidden"},children:[(0,n.jsxs)("button",{type:"button",className:"session-group-header",onClick:o,"aria-expanded":i,style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"7px 10px",background:"none",border:"none",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)(e1.a,{size:11,weight:"regular","aria-hidden":"true",style:{flexShrink:0,transform:i?"rotate(0deg)":"rotate(-90deg)",transition:"transform 0.15s"}}),(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase",color:"var(--text-muted)"},children:r}),(0,n.jsx)("span",{style:{background:"var(--bg-hover)",borderRadius:999,padding:"0 6px",fontSize:10,fontWeight:600,color:"var(--text-muted)",lineHeight:"16px",flexShrink:0},children:s.length}),(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:10,color:"var(--text-dim)",flexShrink:0},children:g(i?"desktop.collapseGroup":"desktop.expandGroup")})]}),i&&(0,n.jsx)("div",{style:{padding:"2px 4px 6px"},children:s.map((e,r)=>(0,n.jsx)("div",{style:{animation:"accordion-row-in 0.14s ease-out both",animationDelay:`${20*Math.min(r,10)}ms`},children:(0,n.jsx)(nk,{session:e.session,forkDepth:e.forkDepth,isSelected:e.session.id===l,isRunning:d.has(e.session.id),isUnread:c.has(e.session.id),onClick:()=>a(e.session),allSessions:u,onPinChange:p,onRenamed:h,onDeleted:x,inPinnedGroup:"pinned"===t})},e.session.id))})]})}function nk(e){let t,{session:r,forkDepth:i=0,isSelected:o,isRunning:a,isUnread:l,onClick:d,allSessions:c,onPinChange:u,onRenamed:p,onDeleted:h,inPinnedGroup:x=!1}=e,{t:g}=(0,J.s)(),[f,m]=(0,s.useState)(!1),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(""),[j,w]=(0,s.useState)(!1),[S,C]=(0,s.useState)(!1),[z,T]=(0,s.useState)(!1),R=(0,s.useRef)(null),[I,N]=(0,s.useState)(!1),[M,E]=(0,s.useState)(null),$=(0,s.useRef)(null),L=ri(r),W=r.parentSessionId?c.find(e=>e.id===r.parentSessionId):void 0,A=async()=>{let e=b.trim();if(y(!1),e&&e!==(r.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(r.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})}),p?.()}catch{}},P=async e=>{if(e.stopPropagation(),z){R.current?.abort(),eJ(r.id);return}if(0===r.messageCount)return;let t=new AbortController;R.current=t,T(!0);try{await eV(r.id,t.signal),p?.()}catch{}finally{R.current===t&&(R.current=null),T(!1)}},F=async()=>{C(!0);try{let e=await fetch(`/api/sessions/${encodeURIComponent(r.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({archived:!0})});if(!e.ok)throw Error(`HTTP ${e.status}`);h?.(r.id)}catch{C(!1)}};return(0,n.jsxs)("div",{ref:$,className:["session-row",o?"is-selected":"",a?"is-running":"",l?"is-unread":"",i>0?"is-fork":""].filter(Boolean).join(" "),"data-fork-depth":i,onClick:j||v?void 0:d,onMouseEnter:()=>m(!0),onMouseLeave:()=>{m(!1),N(!1)},style:{display:"flex",flexDirection:"column",justifyContent:"center",padding:"5px 8px 5px 10px",paddingLeft:10+14*i,position:"relative",cursor:j||v?"default":"pointer",background:j||o?"var(--session-row-bg-selected, var(--bg-selected))":f?"var(--session-row-bg-hover, var(--bg-hover))":"transparent",borderLeft:j||o?"2px solid var(--session-row-accent, var(--accent))":"2px solid transparent",borderRadius:"var(--session-row-radius, 6px)",transition:"background 0.1s",opacity:S?.5:1},children:[i>0&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:12+(i-1)*14,top:2,bottom:2,width:2,borderRadius:1,background:"var(--border)",pointerEvents:"none"}}),j?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:g("desktop.archiveSessionConfirm",{title:`“${L.slice(0,22)}${L.length>22?"…":""}”`})}),(0,n.jsxs)("div",{style:{display:"flex",gap:5,flexShrink:0},children:[(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),w(!1),F()},style:{display:"flex",alignItems:"center",gap:4,height:28,padding:"0 11px",background:"var(--accent)",border:"none",borderRadius:6,color:"var(--accent-fg)",cursor:"pointer",fontSize:12,fontWeight:600,whiteSpace:"nowrap"},children:[(0,n.jsx)(te.T,{size:12,weight:"regular","aria-hidden":"true"}),g("desktop.archiveSession")]}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),w(!1)},style:{height:28,padding:"0 11px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:6,color:"var(--text-muted)",cursor:"pointer",fontSize:12,whiteSpace:"nowrap"},children:g("desktop.cancel")})]})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,height:20},children:[a?(0,n.jsx)(ne,{}):l?(0,n.jsx)(nt,{}):null,v?(0,n.jsx)("input",{autoFocus:!0,value:b,onChange:e=>k(e.target.value),onBlur:A,onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),A()),"Escape"===e.key&&(e.preventDefault(),y(!1))},"aria-label":g("desktop.rename"),style:{flex:1,minWidth:0,height:18,margin:0,padding:"0 4px",border:"1px solid var(--accent)",borderRadius:3,outline:"none",background:"color-mix(in srgb, var(--accent) 18%, var(--bg))",color:"var(--text)",fontSize:12}}):(0,n.jsx)("span",{title:r.modified,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:1,fontSize:12,fontWeight:o?500:400,color:"var(--text)"},children:L}),f&&!v&&(0,n.jsxs)("div",{style:{display:"flex",gap:1,flexShrink:0},children:[(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),u?.(r,!r.pinned)},title:g(r.pinned?"desktop.unpin":"desktop.pin"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:r.pinned?"var(--accent)":"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color=r.pinned?"var(--accent)":"var(--text-muted)"},onMouseLeave:e=>{e.currentTarget.style.color=r.pinned?"var(--accent)":"var(--text-dim)"},children:(0,n.jsx)(tn.U,{size:12,weight:r.pinned?"fill":"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:P,disabled:0===r.messageCount,title:g(0===r.messageCount?"desktop.titleNeedsMessages":z?"desktop.generatingTitle":"desktop.generateTitle"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:0===r.messageCount?"default":"pointer",flexShrink:0,opacity:z?.7:0===r.messageCount?.35:1,transition:"color 0.12s"},onMouseEnter:e=>{z||0===r.messageCount||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{z||0===r.messageCount||(e.currentTarget.style.color="var(--text-dim)")},children:z?(0,n.jsxs)("svg",{style:{animation:"spin 1s linear infinite"},width:"12",height:"12",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(e5.R,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),k(L),y(!0)},title:g("desktop.rename"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(eZ.I,{size:12,weight:"regular","aria-hidden":"true"})}),(0,n.jsx)("button",{onClick:e=>{e.stopPropagation(),e.shiftKey?F():w(!0)},title:g("desktop.archiveSession"),"aria-label":g("desktop.archiveSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:4,color:"var(--text-dim)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,n.jsx)(te.T,{size:12,weight:"regular","aria-hidden":"true"})})]}),r.pinned&&!x&&!f&&(0,n.jsx)("span",{title:g("desktop.pinned"),style:{flexShrink:0,display:"inline-flex",alignItems:"center",opacity:.85},children:(0,n.jsx)(tn.U,{size:11,weight:"fill",color:"var(--accent)","aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:1,minWidth:0,height:16,flexWrap:"nowrap",whiteSpace:"nowrap"},children:[(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",flexShrink:0},children:r9(r.modified,g)}),(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",flexShrink:0},children:g("desktop.messagesCount",{count:r.messageCount})}),r.isWorktree&&r.branch&&(0,n.jsxs)("span",{title:r.branch,style:{display:"inline-flex",alignItems:"center",gap:3,maxWidth:"60%",background:"var(--bg-hover)",borderRadius:4,padding:"0 5px",height:15,minWidth:0,overflow:"hidden"},children:[(0,n.jsx)(e0.Z,{size:8,weight:"regular",color:"var(--text-dim)",style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-muted)",lineHeight:"15px"},children:r.branch})]}),r.parentSessionId&&(0,n.jsx)("span",{style:{marginLeft:"auto",flexShrink:0,display:"inline-flex",alignItems:"center"},onMouseEnter:e=>{let t=$.current?.getBoundingClientRect();t&&(E({top:t.top+t.height/2-15,left:t.right+8}),N(!0))},onMouseLeave:()=>N(!1),children:(0,n.jsx)(ts.d,{size:10,weight:"regular",color:"var(--text-dim)",style:{cursor:"help"},"aria-hidden":"true"})})]}),I&&M&&(t=W?ri(W).slice(0,30):"",(0,n.jsx)("div",{style:{position:"fixed",top:M.top,left:M.left,zIndex:3e3,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,padding:"4px 8px",boxShadow:"0 6px 20px rgba(0,0,0,0.2)",fontSize:10.5,color:"var(--text-muted)",whiteSpace:"nowrap",pointerEvents:"none",animation:"plan-card-in 0.12s ease-out"},children:g("desktop.forkedFrom",{title:t||"—"})}))]})]})}var nj=r(48716);function nw(e){let{tabs:t,activeTabId:r,onSelectTab:i,onCloseTab:o}=e,{t:a}=(0,J.s)(),l=(0,s.useRef)(null),[d,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>{if(!r)return;let e=l.current;if(!e)return;let t=e.querySelector(`[data-tab-id="${CSS.escape(r)}"]`);t?.scrollIntoView({block:"nearest",inline:"nearest"})},[r,t.length]),(0,s.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>c(e.scrollWidth>e.clientWidth+1);t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[t.length]);let u=(0,s.useCallback)((e,r)=>{if(e.target!==e.currentTarget)return;if("Enter"===e.key||" "===e.key){e.preventDefault(),i(r.id);return}if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;e.preventDefault();let n=t.findIndex(e=>e.id===r.id),s="Home"===e.key?0:"End"===e.key?t.length-1:(n+("ArrowRight"===e.key?1:-1)+t.length)%t.length;i(t[s].id);let o=l.current;o?.querySelector(`[data-tab-id="${CSS.escape(t[s].id)}"]`)?.focus()},[i,t]);return(0,n.jsx)("div",{ref:l,role:"tablist",className:`file-tab-bar${d?"":" no-overflow"}`,children:t.map(e=>{let s=e.id===r;return(0,n.jsxs)("div",{role:"tab","data-tab-id":e.id,"aria-label":"terminal"===e.kind?a("terminal.tabLabel",{name:e.label}):"subagent"===e.kind?a("subagent.transcriptTitle")+": "+e.label:e.label,"aria-selected":s,tabIndex:s||!r&&t[0].id===e.id?0:-1,className:"file-tab",onKeyDown:t=>u(t,e),onClick:()=>i(e.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:t=>{1===t.button&&(t.preventDefault(),t.stopPropagation(),e.closing||o(e.id))},children:[(0,n.jsx)("span",{className:"file-tab-icon",children:"subagent"===e.kind?(0,n.jsx)(nj.d,{size:13,"aria-hidden":"true"}):"terminal"===e.kind?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,n.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]}):tM(e.label,13)}),(0,n.jsx)("span",{className:"file-tab-label",title:e.filePath,children:e.label}),(0,n.jsx)("button",{type:"button",className:"file-tab-close",disabled:e.closing,onClick:t=>{t.stopPropagation(),o(e.id)},title:a("desktop.closeTab"),"aria-label":a("desktop.closeTabWithLabel",{label:e.label}),children:(0,n.jsx)(eP.X,{size:11,"aria-hidden":"true"})})]},e.id)})})}function nS(e){var t;if(!e||"object"!=typeof e||"image"!==e.type||"string"!=typeof e.data||"string"!=typeof e.mimeType||(t=e.mimeType,!/^image\/[A-Za-z0-9][A-Za-z0-9!#$&^_.+-]*$/.test(t)))return!1;let r=function(e){if(!e||e.length%4!=0)return null;let t=e.endsWith("==")?2:+!!e.endsWith("="),r=e.length-t,n=null;for(let t=0;t<r;t+=1){var s;let r=(s=e.charCodeAt(t))>=65&&s<=90?s-65:s>=97&&s<=122?s-97+26:s>=48&&s<=57?s-48+52:43===s?62:47===s?63:null;if(null===r)return null;n=r}for(let t=r;t<e.length;t+=1)if("="!==e[t])return null;return 2===t&&n%16!=0||1===t&&n%4!=0?null:e.length/4*3-t}(e.data);return null!==r&&r<=0xa00000}function nC(e){return!!e&&"object"==typeof e&&nS({type:"image",data:e.data,mimeType:e.mimeType})}let nz=new Map;function nT(e){var t;return{value:e.value,images:e.images.map(e=>({...e})),pastedBlocks:(t=e.pastedBlocks)?t.map(e=>({...e})):void 0}}function nR(e){let t=nz.get(e);return t?nT(t):null}function nI(e,t){var r;if(!(r=t).value&&0===r.images.length)return void nz.delete(e);for(nz.delete(e),nz.set(e,nT(t));nz.size>100;){let e=nz.keys().next().value;if(void 0===e)break;nz.delete(e)}}function nN(e){nz.delete(e)}function nM(e,t,r,n,s,i){let o=[...t??[],...n].filter(nC).slice(0,10).map(e=>{let{data:t,mimeType:r}=e;return{data:t,mimeType:r}});return{value:e.trim()?r.trim()?`${e}
|
|
24
|
+
|
|
25
|
+
${r}`:e:r,images:o,pastedBlocks:function(e,t){if(!e?.length&&!t?.length)return;let r=[],n=new Set;for(let s of[...e??[],...t??[]]){let e=`${s.label}\u0000${s.text}`;n.has(e)||(n.add(e),r.push({...s}))}return r}(i,s)}}function nE(e){let t=e.trim();if(!t.startsWith("file://"))return t;try{let e=new URL(t),r=decodeURIComponent(e.pathname);return/^\/[a-zA-Z]:[\\/]/.test(r)?r=r.slice(1):e.host&&"localhost"!==e.host&&(r=`//${e.host}${r}`),r}catch{let e=t.replace(/^file:\/\/(localhost)?/,"");try{e=decodeURIComponent(e)}catch{}return/^\/[a-zA-Z]:[\\/]/.test(e)&&(e=e.slice(1)),e}}let n$=["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 nL(){let e=document.activeElement;return e instanceof HTMLElement&&(e.isContentEditable||"INPUT"===e.tagName||"SELECT"===e.tagName||"TEXTAREA"===e.tagName)}let nW=[48,120,240,420,720];function nA(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let r=/(?:^|\s)@([^\s"]*)$/.exec(e);return r?{start:e.length-(r[1].length+1),query:r[1],quoted:!1}:null}function nP(e){let t=0;for(let r=0;r<e.length;r++)"/"===e[r]&&t++;return t}function nF(e,t){if(!e)return!0;let r=0;for(let n=0;n<t.length&&r<e.length;n++)t[n]===e[r]&&r++;return r===e.length}function nD(e,t){let r=t?`${e}/`:e;return r.includes(" ")?`@"${r}" `:`@${r} `}var nO=r(59304);function nH(e){let{src:t,alt:r="",children:i,className:o,style:a}=e,{t:l}=(0,J.s)(),d=l("chat.previewImage"),c=r.trim()?`${d}: ${r}`:d,[u,p]=(0,s.useState)(!1),h=(0,s.useRef)(null),x=(0,s.useRef)(null),g=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!u)return;let e=x.current;if(!e)return;let t=h.current,r=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),g.current?.focus({preventScroll:!0}),()=>{document.body.style.overflow=r,e.open&&e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[u]);let f=()=>{x.current?.open&&x.current.close(),p(!1)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{ref:h,type:"button",className:o,style:{display:"block",padding:0,border:"none",background:"none",color:"inherit",cursor:"zoom-in",...a},onClick:()=>p(!0),"aria-label":c,"aria-haspopup":"dialog","aria-expanded":u,title:d,children:i}),u&&(0,n.jsxs)("dialog",{ref:x,className:"image-preview-dialog","aria-label":l("chat.previewImage"),onCancel:e=>{e.preventDefault(),e.stopPropagation(),f()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),f())},children:[(0,n.jsx)("img",{className:"image-preview-image",src:t,alt:r}),(0,n.jsx)("button",{ref:g,type:"button",className:"image-preview-close",onClick:f,"aria-label":l("chat.close"),title:l("chat.close"),children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M6 6l12 12M18 6 6 18"})})})]})]})}var nB=r(23084),nU=r(72422),n_=r(70312),nK=r(37597),nq=r(49560),nV=r(21163),nJ=r(4615),nG=r(47142),nY=r(25248),nX=r(58506),nZ=r(41789),nQ=r(87124),n0=r(65098),n1=r(93587),n2=r(19336);function n6(e,t,r){let i=s=>{let{size:i=16,style:o}=s;return(0,n.jsxs)("svg",{fill:t.fill,fillRule:t.fillRule,height:i,style:{flex:"none",lineHeight:1,...o},viewBox:"0 0 24 24",width:i,xmlns:"http://www.w3.org/2000/svg",children:[(0,n.jsx)("title",{children:e}),r]})};return i.displayName=`${e}Icon`,(0,s.memo)(i)}let n4=n6("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"})})),n5=n6("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"})})),n3=n6("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"})]})),n8=n6("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"})})),n7=n6("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"})})),n9=n6("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=n6("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=n6("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"})]})),sr=n6("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=n6("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"})]})),ss=n6("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"})]})),si=n6("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"})})),so=n6("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=n6("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=n6("Vercel",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M12 0l12 20.785H0L12 0z"})})),sd=n6("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=n6("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"})]})),su=n6("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"})]})]})]})),sp=n6("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=n6("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"})]})})]})),sx=n6("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"})})),sg=n6("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=n6("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"})})),sm=n6("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"})]})),sv=n6("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"})})),sy=n6("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"})]})]})]})),sb=n6("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"})})),sk=n6("OpenCode",{fill:"currentColor",fillRule:"evenodd"},(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("path",{d:"M16 6H8v12h8V6zm4 16H4V2h16v20z"})})),sj=n6("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"})})),sw=n6("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:n4,hasColor:!1},openai:{Icon:n5,hasColor:!1},"openai-codex":{Icon:n5,hasColor:!1},reqtoken:{Icon:n5,hasColor:!1},google:{Icon:n3,hasColor:!0},"google-vertex":{Icon:n3,hasColor:!0},"ant-ling":{Icon:sy,hasColor:!0},deepseek:{Icon:n8,hasColor:!0},groq:{Icon:n7,hasColor:!1},mistral:{Icon:n9,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:sr,hasColor:!0},huggingface:{Icon:sn,hasColor:!0},cerebras:{Icon:ss,hasColor:!0},openrouter:{Icon:si,hasColor:!1},xai:{Icon:so,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:su,hasColor:!0},"kimi-coding":{Icon:sp,hasColor:!0},nvidia:{Icon:sb,hasColor:!0},opencode:{Icon:sk,hasColor:!1},"opencode-go":{Icon:sk,hasColor:!1},qwen:{Icon:sh,hasColor:!0},xiaomi:{Icon:sj,hasColor:!1},"xiaomi-token-plan-ams":{Icon:sj,hasColor:!1},"xiaomi-token-plan-cn":{Icon:sj,hasColor:!1},"xiaomi-token-plan-sgp":{Icon:sj,hasColor:!1},zai:{Icon:sw,hasColor:!1},"zai-coding-cn":{Icon:sw,hasColor:!1},zhipu:{Icon:sx,hasColor:!0},cohere:{Icon:sg,hasColor:!0},perplexity:{Icon:sf,hasColor:!0},together:{Icon:sm,hasColor:!0},grok:{Icon:sv,hasColor:!1}};function sC(e){let{id:t,size:r=14}=e,s=sS[t];return s?s.hasColor?(0,n.jsx)(s.Icon,{size:r}):(0,n.jsx)(s.Icon,{size:r,style:{color:"currentColor"}}):(0,n.jsx)(tr.G,{size:r,weight:"regular","aria-hidden":"true"})}var sz=r(3736),sT=r(91906),sR=r(50981),sI=r(69203);let sN=[{value:"plan",Icon:sz.A,titleKey:"modes.collabPlanTitle",descKey:"modes.collabPlanDesc"},{value:"build",Icon:sT.A,titleKey:"modes.chatBuildTitle",descKey:"modes.chatBuildDesc"},{value:"edit",Icon:sR.A,titleKey:"modes.chatEditTitle",descKey:"modes.chatEditDesc"},{value:"yolo",Icon:sI.A,titleKey:"modes.chatYoloTitle",descKey:"modes.chatYoloDesc",warning:!0},{value:"goal",Icon:n2.d,titleKey:"modes.collabGoalTitle",descKey:"modes.collabGoalDesc"}];function sM(e){let t,{collaborationMode:r,onCollaborationModeChange:i,toolApprovalMode:o,onToolApprovalModeChange:a,disabled:l=!1}=e,{t:d}=(0,J.s)(),c=tu(),[u,p]=(0,s.useState)(null),[h,x]=(0,s.useState)(null),[g,f]=(0,s.useState)({}),m=(0,s.useRef)(null),v=(0,s.useRef)(null);(0,s.useEffect)(()=>()=>{null!==v.current&&window.clearTimeout(v.current)},[]);let y=(0,s.useCallback)(e=>{x(e),window.requestAnimationFrame(()=>p(t=>t===e?null:t)),null!==v.current&&window.clearTimeout(v.current),v.current=window.setTimeout(()=>x(null),150)},[]),b="goal"===r?"goal":"plan"===r?"plan":"yolo"===o?"yolo":"auto"===o?"edit":"build",k=()=>window.visualViewport?.height??window.innerHeight,j=sN.find(e=>e.value===b)??sN[1],w="build"===b?"var(--text-muted)":j.warning?"var(--accent-orange, #f59e0b)":"var(--accent)",S=j.Icon,C=j.titleKey;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:2},children:(0,n.jsxs)("button",{ref:m,type:"button","aria-label":d(C),title:d(C),"aria-expanded":"collab"===u,onClick:(t="collab",()=>{if(l)return;let e=m.current;if(!e)return;let r=e.getBoundingClientRect();f(e=>({...e,[t]:{top:r.top,left:r.left,width:r.width}})),p(e=>e===t?null:t)}),disabled:l,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5*!c,padding:c?0:"0 6px",width:c?24:void 0,height:24,background:"collab"===u?"var(--bg-hover)":"none",border:"none",borderRadius:4,color:w,cursor:l?"not-allowed":"pointer",fontSize:12,whiteSpace:"nowrap",opacity:l?.5:1,transition:"background 0.12s, color 0.12s"},children:[(0,n.jsx)(S,{size:14,color:w,"aria-hidden":"true"}),!c&&(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:d(C)})]})}),(()=>{if("collab"!==u)return null;let e=g.collab;if(!e)return null;let t=Math.min(248,window.innerWidth-16),s=Math.min(e.left,window.innerWidth-t-8),c=k()-e.top+6,p=Math.min(300,Math.max(120,.55*k()));return(0,n.jsx)("div",{role:"menu",style:{position:"fixed",bottom:c,left:s,zIndex:2100,width:t,maxHeight:p,overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 12px 32px rgba(0,0,0,0.22)",padding:4,opacity:+("collab"!==h),transition:"opacity 0.12s"},children:sN.map(e=>{let t=e.value===b,s=e.Icon;return(0,n.jsxs)("button",{type:"button",role:"menuitemradio","aria-checked":t,onClick:()=>(e=>{if(y("collab"),e===b)return;if("goal"===e)return void i("goal");let t=function(e){switch(e){case"plan":return{collaborationMode:"plan",toolApprovalMode:"ask"};case"edit":return{collaborationMode:"normal",toolApprovalMode:"auto"};case"yolo":return{collaborationMode:"normal",toolApprovalMode:"yolo"};default:return{collaborationMode:"normal",toolApprovalMode:"ask"}}}(e);t.collaborationMode!==r&&i(t.collaborationMode),t.toolApprovalMode!==o&&a?.(t.toolApprovalMode)})(e.value),disabled:l,style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:t?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:l?"not-allowed":"pointer",textAlign:"left",transition:"background 0.12s"},onMouseEnter:e=>{t||l||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=t?"var(--bg-selected)":"none"},children:[(0,n.jsx)(s,{size:16,color:t?e.warning?"var(--accent-orange, #f59e0b)":"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),(0,n.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:550,color:"var(--text)"},children:d(e.titleKey)}),(0,n.jsx)("span",{style:{display:"block",fontSize:10.5,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:d(e.descKey)})]}),t&&(0,n.jsx)(q.S,{size:12,weight:"bold",color:"var(--accent)","aria-hidden":"true"})]},e.value)})})})()]})}let sE=["off","default","full"],s$={off:"none",default:"default",full:"full"},sL=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function sW(e,t){return sL.compare(e.name||e.modelId,t.name||t.modelId)||sL.compare(e.provider,t.provider)||sL.compare(e.modelId,t.modelId)}let sA=["max","xhigh","high","medium","low","minimal","auto","off"];function sP(e){let{level:t,size:r=14}=e;if("off"===t)return(0,n.jsx)(nX.x,{size:r,weight:"regular",color:"var(--text-dim)"});if("auto"===t)return(0,n.jsx)(n1.I,{size:r,weight:"regular",color:"var(--accent)"});let s=["medium","high","xhigh","max"].includes(t),i="var(--accent)";return(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex"},children:[(0,n.jsx)(nX.x,{size:r,weight:s?"fill":"regular",color:i}),"high"===t&&(0,n.jsx)(e4.c,{size:Math.round(.57*r),weight:"bold",color:i,style:{position:"absolute",right:-4,top:-1}}),"xhigh"===t&&(0,n.jsx)(eX.C,{size:Math.round(.57*r),weight:"fill",color:i,style:{position:"absolute",right:-4,top:-1}}),"max"===t&&(0,n.jsxs)("span",{style:{position:"absolute",right:-6,top:-1,display:"inline-flex"},children:[(0,n.jsx)(eX.C,{size:Math.round(.5*r),weight:"fill",color:i,style:{marginRight:-3}}),(0,n.jsx)(eX.C,{size:Math.round(.5*r),weight:"fill",color:i})]})]})}function sF(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let sD=["builtin","extension","prompt","skill"],sO={builtin:0,extension:1,prompt:2,skill:3};function sH(e,t){let r=e.name.toLowerCase(),n=e.description?.toLowerCase()??"";return r===t?0:r.startsWith(t)?1:r.includes(t)?2:n.includes(t)?3:4}function sB(e,t){return"skill"===e.source&&e.name.startsWith("skill:")&&!0===t[e.name.slice(6)]}function sU(e,t,r){return t<=0?0:((e+r)%t+t)%t}async function s_(e){let t=()=>{var t;return t=e.type,new Promise((r,n)=>{let s=new FileReader;s.onload=()=>{let e="string"==typeof s.result?s.result.split(",")[1]:void 0;e?r({data:e,mimeType:t}):n(Error("Failed to read image"))},s.onerror=n,s.readAsDataURL(e)})};if(!(e.size>1048576&&"image/gif"!==e.type)||"function"!=typeof createImageBitmap)return t();let r=await createImageBitmap(e).catch(()=>null);if(!r)return t();try{let n=Math.min(1,1024/Math.max(r.width,r.height)),s=document.createElement("canvas");s.width=Math.max(1,Math.round(r.width*n)),s.height=Math.max(1,Math.round(r.height*n));let i=s.getContext("2d");if(!i)return t();i.fillStyle="#fff",i.fillRect(0,0,s.width,s.height),i.drawImage(r,0,0,s.width,s.height);let o=s.toDataURL("image/jpeg",.85).split(",")[1];return o&&o.length<4*Math.ceil(e.size/3)?{data:o,mimeType:"image/jpeg"}:t()}catch{return t()}finally{r.close()}}function sK(e){return{data:e.data,mimeType:e.mimeType}}function sq(e,t){let r=e;for(let e of t)r=r.split(e.label).join(e.text);return r}function sV(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function sJ(e){return"string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function sG(e){return"string"==typeof e.content?[]:e.content.flatMap(e=>{if("image"!==e.type)return[];let t=e.source?.type==="base64"?e.source.data:e.data,r=e.source?.type==="base64"?e.source.media_type:e.mimeType;return"string"!=typeof t||"string"!=typeof r?[]:nS({type:"image",data:t,mimeType:r})?[{data:t,mimeType:r}]:[]})}function sY(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function sX(e){return(e??[]).filter(nC).slice(0,10).map(sY)}function sZ(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function sQ(e){let{kind:t,text:r,label:s,index:i,total:o,onMove:a,onRecall:l,onRemove:d}=e,{t:c}=(0,J.s)(),u={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:r,className:"chat-input-queue-row",style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===t?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===t?"var(--accent)":"var(--text-dim)"},children:s}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:r}),a&&o>1&&(0,n.jsxs)("span",{style:{display:"inline-flex",gap:1,flexShrink:0},children:[(0,n.jsx)("button",{type:"button","aria-label":c("desktop.queueMoveUp"),title:c("desktop.queueMoveUp"),disabled:0===i,onClick:()=>a(-1),style:{...u,opacity:0===i?.3:1},children:"↑"}),(0,n.jsx)("button",{type:"button","aria-label":c("desktop.queueMoveDown"),title:c("desktop.queueMoveDown"),disabled:i===o-1,onClick:()=>a(1),style:{...u,opacity:i===o-1?.3:1},children:"↓"})]}),l&&(0,n.jsx)("button",{type:"button","aria-label":c("desktop.queueRecallOne"),title:c("desktop.queueRecallOne"),onClick:l,style:u,children:(0,n.jsx)(n_.Y,{size:13})}),d&&(0,n.jsx)("button",{type:"button","aria-label":c("desktop.queueRemove"),title:c("desktop.queueRemove"),onClick:d,style:u,children:(0,n.jsx)(eP.u,{size:13})})]})}let s0=(0,s.memo)((0,s.forwardRef)(function(e,t){var r;let i,o,a,l,d,c,u,p,h,x,g,f,m,v,y,b,k,j,w,S,C,z,T,{onSend:R,onBash:I,onAbort:N,onSteer:M,onFollowUp:E,isStreaming:$,model:L,modelNames:W,modelList:A,modelScopeWarnings:P,modelsError:F,onRetryModels:D,onModelChange:O,compactResult:H,toolPreset:B,onToolPresetChange:U,collaborationMode:_="normal",toolApprovalMode:V="auto",onCollaborationModeChange:G,onToolApprovalModeChange:Y,goalState:X,onGoalStart:Z,onGoalPause:Q,onGoalResume:ee,onGoalStop:et,thinkingLevel:er,isAutoThinkingSelection:en=!1,onThinkingLevelChange:es,availableThinkingLevels:ei,thinkingLevelMap:eo,retryInfo:ea,queuedMessages:el,inputHistory:ed=[],onRecallQueue:ec,onMoveQueue:eu,onRecallOne:ep,onRequeueAt:eh,onRemoveQueueItem:ex,slashCommands:eg,slashCommandsLoading:ef,onLoadSlashCommands:em,onBuiltinCommand:ev,onAudioUnlock:ey,onPromptWithStreamingBehavior:eb,draftKey:ek,cwd:ej,tasksBoardEnabled:ew=!0,topCenterControl:eS}=e,eC=tu();(0,s.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=document.documentElement,r=null,n=new Set,s=!1,i=()=>{r=null,function(e){let{hasFocusedEditable:t,innerHeight:r,viewportHeight:n,viewportScale:s}=e;return!!t&&r/(s>0?s:1)-n>60}({hasFocusedEditable:nL(),innerHeight:window.innerHeight,viewportHeight:e.height,viewportScale:e.scale})?(t.style.setProperty("--app-viewport-height",`${e.height}px`),t.dataset.keyboardOpen="true"):(t.style.removeProperty("--app-viewport-height"),delete t.dataset.keyboardOpen);let n=0!==window.scrollX||0!==window.scrollY,s=.01>Math.abs(e.scale-1);n&&s&&window.scrollTo(0,0)},o=()=>{null!==r&&window.cancelAnimationFrame(r),r=window.requestAnimationFrame(i),(()=>{if(s)return;s=!0;let e=0,t=()=>{if(e>=nW.length){s=!1;return}let r=nW[e++],o=window.setTimeout(()=>{n.delete(o),i(),t()},r);n.add(o)};t()})()},a=()=>{nL()&&o()};return o(),e.addEventListener("resize",o),e.addEventListener("scroll",o),window.addEventListener("resize",o),window.addEventListener("focusin",o),window.addEventListener("focusout",o),window.addEventListener("pageshow",o),document.addEventListener("compositionstart",a),document.addEventListener("compositionupdate",a),document.addEventListener("compositionend",a),document.addEventListener("input",a),document.addEventListener("keyup",a),()=>{for(let t of(e.removeEventListener("resize",o),e.removeEventListener("scroll",o),window.removeEventListener("resize",o),window.removeEventListener("focusin",o),window.removeEventListener("focusout",o),window.removeEventListener("pageshow",o),document.removeEventListener("compositionstart",a),document.removeEventListener("compositionupdate",a),document.removeEventListener("compositionend",a),document.removeEventListener("input",a),document.removeEventListener("keyup",a),null!==r&&window.cancelAnimationFrame(r),n))window.clearTimeout(t);n.clear(),t.style.removeProperty("--app-viewport-height"),delete t.dataset.keyboardOpen}},[]);let{t:ez}=(0,J.s)(),eT=!!L&&(A?.find(e=>e.id===L.modelId&&e.provider===L.provider)?.input?.includes("image")??!1),eR={auto:"auto",off:"off",minimal:"minimal",low:"low",medium:"medium",high:"high",xhigh:"xhigh",max:"max"},eI={off:ez("desktop.toolOff"),default:ez("desktop.toolDefault"),full:ez("desktop.toolFull")},eN=[{name:"compact",description:ez("desktop.compactCommandDescription"),source:"builtin"},{name:"reload",description:ez("desktop.reloadCommandDescription"),source:"builtin"},{name:"name",description:ez("desktop.nameCommandDescription"),source:"builtin"},{name:"session",description:ez("desktop.sessionCommandDescription"),source:"builtin"},{name:"copy",description:ez("desktop.copyCommandDescription"),source:"builtin"}],eM={builtin:ez("desktop.builtIn"),extension:ez("desktop.extensions"),prompt:ez("desktop.prompts"),skill:ez("desktop.commandSkills")},[eE,e$]=(0,s.useState)(()=>ek?nR(ek)?.value??"":""),[eL,eW]=(0,s.useState)(()=>ek?nR(ek)?.pastedBlocks??[]:[]),[eA,eF]=(0,s.useState)([]),eD=s.useMemo(()=>{try{var e;return e=ez("desktop.pastedLabel",{id:"\0A\0",lines:"\0B\0"}),RegExp(e.split("\0A\0").join("(\\d+)").split("\0B\0").join("(\\d+)").split("(\\d+)").map(sV).join("(\\d+)"),"g")}catch{return null}},[ez]),[eO,eH]=(0,s.useState)(null),eB=(0,s.useRef)(null),eU=(0,s.useCallback)(e=>{eH(e),eB.current&&clearTimeout(eB.current),eB.current=setTimeout(()=>eH(null),5e3)},[]),e_=(0,s.useRef)(0),[eK,eq]=(0,s.useState)(!1),[eV,eJ]=(0,s.useState)(null),[eG,eZ]=(0,s.useState)({height:0,width:0,offsetTop:0}),[eQ,e0]=(0,s.useState)(""),[e6,e5]=(0,s.useState)(()=>{try{let e=localStorage.getItem("pi-favorite-models");return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),[e7,e9]=(0,s.useState)(new Set),[te,tt]=(0,s.useState)(!1),[tr,tn]=(0,s.useState)(null),[ts,ti]=(0,s.useState)(!1),[to,ta]=(0,s.useState)(null),[tl,td]=(0,s.useState)(!1),[tc,tp]=(0,s.useState)(null),[th,tx]=(0,s.useState)(()=>ek?nR(ek)?.images.map(sY)??[]:[]),tg=eE.trimStart(),tf=0===th.length&&tg.startsWith("!"),tm=tf&&tg.startsWith("!!"),[tv,ty]=(0,s.useState)(!1),[tb,tk]=(0,s.useState)(0),[tj,tw]=(0,s.useState)({}),[tS,tC]=(0,s.useState)(()=>{try{return"ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter"}catch{return"enter"}}),[tT,tR]=(0,s.useState)(null),[tI,tN]=(0,s.useState)(!1),[tE,t$]=(0,s.useState)(null),[tL,tW]=(0,s.useState)(0),[tA,tP]=(0,s.useState)(!1),[tF,tD]=(0,s.useState)(0),[tO,tH]=(0,s.useState)(!1),tB=(0,s.useRef)(!1),[tU,t_]=(0,s.useState)(null),[tK,tq]=(0,s.useState)(!1),[tV,tJ]=(0,s.useState)(null),tG=(0,s.useRef)(null),tY=(0,s.useRef)(null),tX=(0,s.useRef)(null),tZ=(0,s.useRef)(null),tQ=(0,s.useRef)(null),t0=(0,s.useRef)(null),t1=(0,s.useRef)(null),t2=(0,s.useRef)(null),t6=(0,s.useRef)(null),t4=(0,s.useRef)(null),t5=(0,s.useRef)(!1),t3=(0,s.useRef)(0),t8=(0,s.useRef)(!1),t7=(0,s.useRef)([]),t9=(0,s.useRef)(null),re=(0,s.useRef)([]),rt=(0,s.useRef)([]),rr=(0,s.useRef)(null),rn=(0,s.useRef)(null),rs=(0,s.useRef)(ek),ri=(0,s.useRef)(eE),ro=(0,s.useRef)(th),ra=(0,s.useRef)(eL),rl=(0,s.useRef)(null),[rd,rc]=(0,s.useState)(!1);ri.current=eE,ro.current=th,ra.current=eL;let ru=(0,s.useCallback)(async e=>{let t=e.filter(e=>e.type.startsWith("image/"));if(!t.length)return;if(!eT)return void eU(ez("desktop.imageInputUnsupported"));let r=await Promise.all(t.map(async e=>({...await s_(e),previewUrl:URL.createObjectURL(e)})));tx(e=>[...e,...r])},[eU,eT,ez]);(0,s.useImperativeHandle)(t,()=>({insertIfEmpty(e){let t=tG.current;(t?t.value:eE).trim()||(e$(e),tR(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},replaceMessage(e){var t,r;let n=tG.current;t=n?n.value:eE,r=ro.current.length,t.trim()||0!==r||(e$(sJ(e)),tR(null),tP(!1),tx(t=>(t.forEach(sZ),sX(sG(e)))),requestAnimationFrame(()=>{n&&(n.focus(),n.style.height="auto",n.style.height=`${Math.min(n.scrollHeight,200)}px`)}))},restoreSubmission(e){let t=nM(sJ(e),sG(e),tG.current?.value??ri.current,ro.current.map(sK),void 0,ra.current);ri.current=t.value,ra.current=t.pastedBlocks??[];let r=sX(t.images);ro.current.forEach(sZ),ro.current=r,e$(t.value),eW(t.pastedBlocks??[]),tx(r),tR(null),rs.current&&nI(rs.current,t)},prependText(e){if(!e.trim())return;let t=tG.current,r=[e,t?t.value:eE].filter(e=>e.trim()).join("\n\n");e$(r),tR(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(r.length,r.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},insertText(e){let t=tG.current;if(!t)return void e$(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,s=t.value.slice(0,r),i=t.value.slice(n),o=s.length>0&&!s.endsWith(" ")?" ":"";e$(s+o+e+i),tR(null),requestAnimationFrame(()=>{if(!t)return;let n=r+o.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){ru(e)},addFiles(e,t){let r=function(e,t,r){let n=e.map(()=>null),s=t.split(/\r?\n/).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")).filter(e=>e.startsWith("file://"));if(s.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}(s[t]);return n}if(1===e.length&&r.trim()){let e=r.trim();(e.startsWith("/")||e.startsWith("~")||/^[A-Za-z]:[\\/]/.test(e))&&(n[0]=e)}return n}(e,t?.getData("text/uri-list")??"",t?.getData("text/plain")??""),n=e.filter(e=>e.type.startsWith("image/")),s=e.map((e,t)=>e.type.startsWith("image/")?null:r[t]??e.name).filter(e=>!!e);if(n.length&&ru(n),s.length&&!$){let e=s.join(" ");e$(t=>t+(t&&!t.endsWith(" ")?" ":"")+e)}},measureHeight:()=>t0.current?.getBoundingClientRect().height??0}));let rp=(0,s.useCallback)((e,t)=>{e5(r=>{let n=`${e}:${t}`,s=new Set(r);return s.has(n)?s.delete(n):s.add(n),localStorage.setItem("pi-favorite-models",JSON.stringify([...s])),s})},[]),rh=(0,s.useCallback)(e=>{e9(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),rx=(0,s.useCallback)(e=>{tx(t=>{let r=[...t],[n]=r.splice(e,1);return n&&sZ(n),r})},[]),rg=(0,s.useCallback)(()=>{tx(e=>(e.forEach(sZ),[]))},[]),rf=(0,s.useCallback)(()=>{e$(""),tR(null),eW([]),eF([]),ek&&nN(ek),rs.current&&rs.current!==ek&&nN(rs.current),rg(),tG.current&&(tG.current.style.height="auto")},[rg,ek]),rm=(0,s.useCallback)(async(e,t,r)=>{await eu?.(e,t,t+r)},[eu]),rv=(0,s.useCallback)(async(e,t)=>{await ex?.(e,t)},[ex]),ry=(0,s.useCallback)(async(e,t)=>{let r=await ep?.(e,t);if(!r)return;rl.current={kind:e,index:t,text:r.text,images:r.images},rc(!0);let n=tG.current?.value??eE,s=[r.text,n].filter(e=>e.trim()).join("\n\n");e$(s),tR(null),requestAnimationFrame(()=>{let e=tG.current;e&&(e.focus(),e.setSelectionRange(s.length,s.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[ep,eE]);(0,s.useEffect)(()=>{ek&&rs.current===ek&&nI(ek,{value:eE,images:th.map(sK),pastedBlocks:eL.length?eL:void 0})},[th,ek,eE,eL]),(0,s.useEffect)(()=>{let e=rs.current;if(e===ek)return;e&&nI(e,{value:ri.current,images:ro.current.map(sK),pastedBlocks:ra.current.length?ra.current:void 0});let t=ek?nR(ek):null;rs.current=ek,e$(t?.value??""),tR(null),eW(t?.pastedBlocks??[]),eF([]),tx(e=>(e.forEach(sZ),t?.images.map(sY)??[]))},[ek]),(0,s.useEffect)(()=>{let e=tG.current;e&&(e.style.height="auto",eE&&(e.style.height=`${Math.min(e.scrollHeight,200)}px`))},[eE]),(0,s.useEffect)(()=>{let e=()=>{try{tC("ctrl-enter"===localStorage.getItem("pi-input-shortcut")?"ctrl-enter":"enter")}catch{tC("enter")}};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]),(0,s.useEffect)(()=>()=>{ro.current.forEach(sZ)},[]);let rb=(0,s.useCallback)(e=>{let t;if(!eD)return null;for(eD.lastIndex=0;null!==(t=eD.exec(e));){let e=t[0];if(!(ra.current.some(t=>t.label===e)||ra.current.some(t=>t.text.includes(e))))return e}return null},[eD]),rk=(0,s.useCallback)(()=>{eU(ez("desktop.pastedMissingContent"))},[eU,ez]),rj=(0,s.useCallback)(async()=>{let e=sq(eE,eL),t=e.trim();if(!t&&!th.length)return;if(rb(e))return void rk();if($)return;ey?.();let r=rl.current;if(r&&eh){if(rl.current=null,rc(!1),!await eh(r.kind,r.index,t,th.length?th.map(sK):r.images)){rl.current={...r,text:t},rc(!0);return}rf();return}if(!th.length&&t.startsWith("!")&&I){let e=t.startsWith("!!"),r=t.slice(e?2:1).trim();if(!r)return;I(r,e),rf();return}if(!th.length&&t.startsWith("/")&&ev){if(tB.current)return;tB.current=!0,tH(!0);try{let e=await ev(t);if(e.handled){e.error||rf();return}}finally{tB.current=!1,tH(!1)}}R(t,th.length?th:void 0),rf()},[eE,eL,th,$,I,ev,R,rf,ey,eh,rb,rk]),rw=eE.startsWith("/")&&!/\s/.test(eE.slice(1))?eE.slice(1).toLowerCase():null,{commands:rS,groups:rC}=(r=null===rw?[]:[...$?[]:eN,...eg??[]].filter(e=>{let t=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return t.includes(rw)||r.includes(rw)}).sort((e,t)=>{let r=sH(e,rw)-sH(t,rw);return 0!==r?r:sO[e.source]-sO[t.source]||sL.compare(e.name,t.name)}),i=0,{commands:(o=sD.map(e=>{let t=r.filter(t=>t.source===e),n="skill"===e?[...t.filter(e=>!sB(e,tj)),...t.filter(e=>sB(e,tj))]:t;return{source:e,items:n.map(e=>({command:e,index:i++}))}}).filter(e=>e.items.length>0)).flatMap(e=>e.items.map(e=>{let{command:t}=e;return t})),groups:o});(0,s.useEffect)(()=>{if(!tv||!ej)return;let e=!1;return fetch(`/api/skills?cwd=${encodeURIComponent(ej)}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&tw(Object.fromEntries(t.skills.map(e=>[e.name,e.disableModelInvocation])))}).catch(()=>{}),()=>{e=!0}},[ej,tv]);let rz=`${rS.length} ${ez(rw?1===rS.length?"desktop.match":"desktop.matches":1===rS.length?"desktop.command":"desktop.commands")}`,rT=!!eE.trim()||th.length>0,rR=(0,s.useCallback)((e,t)=>{if(!ej)return void tR(null);let r=t??e.length;tR(nA(e.slice(0,r)))},[ej]),[rI,rN]=(0,s.useState)(null),rM=(0,s.useRef)(rI);rM.current=rI;let[rE,r$]=(0,s.useState)([]),rL=(0,s.useRef)(!1),rW=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/snippets");if(!e.ok)return;let t=await e.json();r$(t.snippets??[]),rL.current=!0}catch{}},[]);(0,s.useEffect)(()=>{rW();let e=()=>void rW();return window.addEventListener("pi:snippets-changed",e),()=>window.removeEventListener("pi:snippets-changed",e)},[rW]);let rA=rI?.query??null,rP=s.useMemo(()=>{if(null===rA||!1===rL.current)return[];let e=rA.toLowerCase();return rE.filter(t=>t.name.toLowerCase().includes(e))},[rA,rE]),[rF,rD]=(0,s.useState)(0);(0,s.useEffect)(()=>{rD(0)},[rA]);let rO=(0,s.useCallback)((e,t)=>{var r;let n,s=t??e.length,i=(r=e.slice(0,s),(n=/(?:^|[\s(])(#[\w-]+)$/.exec(r))?{start:r.length-n[1].length,end:r.length,query:n[1].slice(1)}:null);rN(i),i&&rD(0)},[]),rH=(0,s.useCallback)(e=>{let t=rM.current;if(!t)return;let r=eE.slice(0,t.start),n=eE.slice(t.end);e$(r+e.content+n),rN(null);let s=r.length+e.content.length;requestAnimationFrame(()=>{let e=tG.current;e&&(e.focus(),e.setSelectionRange(s,s))})},[eE]),rB=(0,s.useCallback)(e=>{let t=rP[e];t&&rH(t)},[rP,rH]),rU=tT?.query??null,r_=s.useMemo(()=>null!==rU&&tU&&tU.cwd===ej?function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:20,n=t.toLowerCase();if(!n)return e.slice(0,r);let s=[];for(let t of e){let e=function(e,t){let r=e.path.toLowerCase(),n=0;if(t.includes("/"))r===t?n=100:r.startsWith(t)?n=80:r.includes(t)?n=50:nF(t,r)&&(n=10);else{let e=r.lastIndexOf("/"),s=-1===e?r:r.slice(e+1);s===t?n=100:s.startsWith(t)?n=80:s.includes(t)?n=50:r.includes(t)?n=30:nF(t,r)&&(n=10)}return e.isDir&&n>0&&(n+=10),n}(t,n);e>0&&s.push({entry:t,score:e})}return s.sort((e,t)=>t.score-e.score||nP(e.entry.path)-nP(t.entry.path)||e.entry.path.localeCompare(t.entry.path)),s.slice(0,r).map(e=>e.entry)}(tU.entries,rU):[],[rU,tU,ej]),rK=!!(rU&&tU?.truncated&&tU.cwd===ej);(0,s.useEffect)(()=>{if(!rK||!ej||!rU)return;let e=setTimeout(()=>{fetch(`/api/file-index?cwd=${encodeURIComponent(ej)}&q=${encodeURIComponent(rU)}`).then(e=>{if(!e.ok)throw Error(`file search failed: ${e.status}`);return e.json()}).then(e=>tJ({cwd:ej,query:rU,matches:e.matches??[]})).catch(()=>{})},150);return()=>clearTimeout(e)},[rK,rU,ej]);let rq=rK&&null!==tV&&tV.cwd===ej&&tV.query===rU,rV=rq?tV.matches:r_,rJ=null===tT?null:`${tT.start}:${+!!tT.quoted}:${tT.query}`;(0,s.useEffect)(()=>{if(null===rJ){tN(!1),tW(0);return}tN(!0),tW(0)},[rJ]);let rG=null!==tT;(0,s.useEffect)(()=>{if(!rG||!ej)return;let e=rr.current;e&&e.cwd===ej&&Date.now()-e.fetchedAt<1e4||rn.current===ej||(rn.current=ej,tq(!0),fetch(`/api/file-index?cwd=${encodeURIComponent(ej)}`).then(e=>{if(!e.ok)throw Error(`file index failed: ${e.status}`);return e.json()}).then(e=>{t_({cwd:ej,entries:function(e){let t=new Set;for(let r of e){let e=r.indexOf("/");for(;-1!==e;)t.add(r.slice(0,e)),e=r.indexOf("/",e+1)}let r=[];for(let e of t)r.push({path:e,isDir:!0});for(let t of e)t&&r.push({path:t,isDir:!1});return r.sort((e,t)=>nP(e.path)-nP(t.path)||e.path.localeCompare(t.path)),r}(e.files??[]),truncated:!!e.truncated}),rr.current={cwd:ej,fetchedAt:Date.now()}}).catch(()=>{rr.current=null}).finally(()=>{rn.current=null,tq(!1)}))},[rG,ej]);let rY=(0,s.useCallback)(e=>{if(!tT)return;let t=tG.current,r=t?.selectionStart??eE.length,n=eE.slice(0,tT.start),s=eE.slice(r);tT.quoted&&s.startsWith('"')&&(s=s.slice(1));let i=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=t?`${e}/`:e,s=r||n.includes(" ");if(t){let e=s?`@"${n}"`:`@${n}`;return{text:e,cursorOffset:s?e.length-1:e.length}}let i=s?`@"${n}" `:`@${n} `;return{text:i,cursorOffset:i.length}}(e.path,e.isDir,tT.quoted),o=n+i.text+s,a=n.length+i.cursorOffset;e$(o),tR(nA(o.slice(0,a))),requestAnimationFrame(()=>{let e=tG.current;e&&(e.focus(),e.setSelectionRange(a,a),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[tT,eE]);(0,s.useEffect)(()=>{tL>=rV.length&&tW(Math.max(0,rV.length-1))},[rV.length,tL]),(0,s.useEffect)(()=>{re.current.length=rV.length},[rV.length]),(0,s.useEffect)(()=>{tI&&re.current[tL]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tL,tI]),(0,s.useLayoutEffect)(()=>{if(!tI||null===tT)return void t$(null);let e=t9.current;if(e){var t;let r,n,s,i,o,a,l;return t=e=>{t$(t=>t===e?t:e)},r=null,n=()=>{r=null,t(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8;return Math.max(0,Math.floor(e-t-r))}(e.getBoundingClientRect().bottom,function(e){let t=window.visualViewport?.offsetTop??0;for(let r=e.parentElement;r;r=r.parentElement){let e=window.getComputedStyle(r).overflowY;("auto"===e||"scroll"===e||"hidden"===e||"clip"===e)&&(t=Math.max(t,r.getBoundingClientRect().top+r.clientTop))}return t}(e)))},s=()=>{null!==r&&cancelAnimationFrame(r),r=requestAnimationFrame(n)},n(),i=e.parentElement,o=i?.parentElement,a="u">typeof ResizeObserver&&i?new ResizeObserver(s):null,i&&a?.observe(i),o&&a?.observe(o),l=window.visualViewport,l?.addEventListener("resize",s),l?.addEventListener("scroll",s),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0),()=>{a?.disconnect(),l?.removeEventListener("resize",s),l?.removeEventListener("scroll",s),window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0),null!==r&&cancelAnimationFrame(r)}}},[tI,tT]);let rX=(0,s.useCallback)(e=>{e$(e),tR(null),tP(!1),tD(0),requestAnimationFrame(()=>{let t=tG.current;t&&(t.focus(),t.setSelectionRange(e.length,e.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},[]),rZ=(0,s.useCallback)(e=>{let t=`/${e.name} `;e$(t),ty(!1),tk(0),requestAnimationFrame(()=>{let e=tG.current;e&&(e.focus(),e.setSelectionRange(t.length,t.length),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),rQ=(0,s.useCallback)(()=>{let e=tG.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),s=r.length>0&&!r.endsWith(" ")?" ":"",i=r+s+"@"+n;e$(i);let o=t+s.length+1;rR(i,o),requestAnimationFrame(()=>{e&&(e.setSelectionRange(o,o),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r0=(0,s.useCallback)(()=>{let e=tG.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),s=r.length>0&&!r.endsWith(" ")?" ":"",i=r+s+"#"+n;e$(i),rR(i,t+s.length+1),requestAnimationFrame(()=>{e&&(e.setSelectionRange(t+s.length+1,t+s.length+1),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r1=(0,s.useCallback)(()=>{let e=tG.current;if(!e)return;let t=e.selectionStart??e.value.length,r=e.value.slice(0,t),n=e.value.slice(e.selectionEnd??t),s=r.length>0&&!r.endsWith(" ")?" ":"";e$(r+s+"/"+n);let i=t+s.length+1;requestAnimationFrame(()=>{e&&(e.setSelectionRange(i,i),e.focus(),e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)})},[]),r2=(0,s.useCallback)(e=>{let t=sq(eE,eL);if(rb(t))return void rk();let r=t.trim();if(r||th.length){if(ey?.(),r.startsWith("/")&&eb){eb(r,"steer"===e?"steer":"followUp",th.length?th:void 0),rf();return}"steer"===e&&M?M(r,th.length?th:void 0):"followup"===e&&E&&E(r,th.length?th:void 0),rf()}},[eE,eL,th,eb,M,E,rf,ey,rb,rk]),r6=(0,s.useCallback)(e=>{let t=rS.length-1;if(t<0)return 0;if("left"===e)return Math.max(0,tb-1);if("right"===e)return Math.min(t,tb+1);let r=t7.current[tb];if(!r)return"down"===e?Math.min(t,tb+1):Math.max(0,tb-1);let n=r.getBoundingClientRect(),s=n.left+n.width/2,i=n.top+n.height/2,o=-1,a=1/0;for(let r=0;r<=t;r+=1){if(r===tb)continue;let t=t7.current[r];if(!t)continue;let n=t.getBoundingClientRect(),l=n.top+n.height/2-i;if("down"===e?l<=4:l>=-4)continue;let d=1e3*Math.abs(l)+Math.abs(n.left+n.width/2-s);d<a&&(o=r,a=d)}return o>=0?o:"down"===e?Math.min(t,tb+1):Math.max(0,tb-1)},[rS.length,tb]),r4=(0,s.useCallback)(e=>{let t=e.nativeEvent,r=Date.now()-t3.current<100,n=t5.current||t.isComposing||229===t.keyCode;if("Enter"===e.key&&!e.shiftKey&&(n||r)){r&&e.preventDefault();return}if((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"i"===e.key.toLowerCase()&&!n&&ej){e.preventDefault();let t=e.currentTarget,r=t.selectionStart??t.value.length,n=t.selectionEnd??r,s=t.value.slice(0,r),i=t.value.slice(n),o=s&&!/[\s@]$/.test(s)?" ":"",a=`${s}${o}@${i}`,l=s.length+o.length+1;e$(a),tR(nA(a.slice(0,l))),tN(!0),requestAnimationFrame(()=>{t.focus(),t.setSelectionRange(l,l)});return}if(tA&&!n){if("ArrowDown"===e.key){e.preventDefault(),tD(e=>Math.min(Math.max(0,(ed?.length??0)-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),tD(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)&&ed?.[tF]){e.preventDefault(),rX(ed[tF]);return}}if(tv&&null!==rw){if("ArrowDown"===e.key){e.preventDefault(),tk(r6("down"));return}if("ArrowUp"===e.key){e.preventDefault(),tk(r6("up"));return}if("ArrowRight"===e.key){e.preventDefault(),tk(r6("right"));return}if("ArrowLeft"===e.key){e.preventDefault(),tk(r6("left"));return}if("Escape"===e.key){e.preventDefault(),ty(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rS[tb]){e.preventDefault(),rZ(rS[tb]);return}}if(tI&&null!==tT&&!n){if("ArrowDown"===e.key){e.preventDefault(),tW(e=>sU(e,rV.length,1));return}if("ArrowUp"===e.key){e.preventDefault(),tW(e=>sU(e,rV.length,-1));return}if("Escape"===e.key){e.preventDefault(),tN(!1);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rV[tL]){e.preventDefault(),rY(rV[tL]);return}}if(null!==rI&&rP.length>0&&!n){if("ArrowDown"===e.key){e.preventDefault(),rD(e=>Math.min(Math.max(0,rP.length-1),e+1));return}if("ArrowUp"===e.key){e.preventDefault(),rD(e=>Math.max(0,e-1));return}if("Escape"===e.key){e.preventDefault(),rN(null);return}if(("Tab"===e.key||"Enter"===e.key&&!e.shiftKey)&&rP[rF]){e.preventDefault(),rB(rF);return}}if("ArrowUp"===e.key&&!n&&!$&&(ed?.length??0)>0&&0===eE.trim().length){e.preventDefault(),ty(!1),tN(!1),tD(0),tP(!0);return}if("Escape"===e.key&&!n&&$&&N){e.preventDefault(),N();return}if("Enter"===e.key&&!e.shiftKey){if("ctrl-enter"===tS&&!(e.ctrlKey||e.metaKey))return;e.preventDefault(),$&&(M||E)?r2(M?"steer":"followup"):rj()}},[$,M,E,N,tv,rw,rS,tb,rZ,r2,rj,r6,tI,tT,rV,tL,rY,rI,rP,rF,rB,tS,ej,tA,ed,tF,rX,eE]),r5=(0,s.useCallback)(()=>{let e=tG.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[]),r3=(0,s.useCallback)(e=>{let t=Array.from(e.clipboardData?.items??[]),r=t.filter(e=>e.type.startsWith("image/"));if(r.length){e.preventDefault(),ru(r.map(e=>e.getAsFile()).filter(e=>null!==e));return}let n=function(e,t){if(!e)return[];let r=[],n=Array.from(e.files??[]);for(let e of n){let t=e.path;"string"==typeof t&&t.trim()&&r.push(t.trim())}if(r.length>0)return Array.from(new Set(r));for(let t of Array.from(e.items??[]))if("file"===t.kind){let e=t.getAsFile(),n=e?.path;"string"==typeof n&&n.trim()&&r.push(n.trim())}if(r.length>0)return Array.from(new Set(r));for(let t of n$)try{let n=e.getData(t);if(n){let e=function(e){if(!e)return[];let t=e.split(/\r?\n/),r=[];for(let e of t){let t=e.trim();!(!t||t.startsWith("#"))&&"copy"!==t&&"cut"!==t&&(t.startsWith("file://")?r.push(nE(t)):(t.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(t))&&r.push(t))}return r}(n);e.length>0&&r.push(...e)}}catch{}if(r.length>0)return Array.from(new Set(r));try{let t=e.getData("text/plain")||e.getData("text");if(t){let e=t.split(/\r?\n/).map(e=>e.trim()).filter(Boolean),n=e.filter(e=>e.startsWith("file://"));if(n.length>0&&n.length===e.length)for(let e of n)r.push(nE(e))}}catch{}if(r.length>0)return Array.from(new Set(r));if(t?.fallbackToFileName&&n.length>0)for(let e of n)e.name&&r.push(e.name);return Array.from(new Set(r))}(e.clipboardData,{fallbackToFileName:!0});if(n.length>0){e.preventDefault();let t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return e&&0!==e.length?1===e.length?e[0]:e.map(e=>{let t=e.trim();return!/\s/.test(t)||t.startsWith('"')||t.startsWith("'")?t:`"${t}"`}).join(t):""}(n),r=tG.current,s=r?.selectionStart??eE.length,i=r?.selectionEnd??eE.length;e$(eE.slice(0,s)+t+eE.slice(i)),requestAnimationFrame(()=>{if(r){let e=s+t.length;r.selectionStart=e,r.selectionEnd=e,r5()}});return}if(!t.find(e=>e.type.startsWith("text/plain")))return;let s=e.clipboardData.getData("text/plain");if(!s)return;let i=e.clipboardData.getData("text/html");if(i){let t=new DOMParser().parseFromString(i,"text/html"),r=function(e,t){let r="",n=0,s=!1;for(let{label:i,href:o,occurrence:a}of t){if(!i||!o)continue;let t=0;for(let r=0;r<=a&&!((t=e.indexOf(i,r?t+i.length:0))<0);r++);if(t<n)continue;let l=i.replace(/([\\[\]])/g,"\\$1"),d=o.replace(/([\\()])/g,"\\$1");r+=`${e.slice(n,t)}[${l}](${d})`,n=t+i.length,s=!0}return s?r+e.slice(n):null}(s,Array.from(t.querySelectorAll("a[href]"),e=>{let r=e.textContent??"",n=t.createRange();return n.setStart(t.body,0),n.setEndBefore(e),{label:r,href:e.getAttribute("href")?.trim()??"",occurrence:r?n.toString().split(r).length-1:0}}));if(null!==r){let t=tG.current,n=t?.selectionStart??eE.length,s=t?.selectionEnd??eE.length,i=eE.slice(0,n)+r+eE.slice(s);e.preventDefault(),e$(i),tP(!1),rR(i,n+r.length),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(n+r.length,n+r.length),r5())});return}}let o=s.split(/\r?\n/).length;if(s.length<2e3&&o<20)return;e.preventDefault();let a=`paste-${++e_.current}`,l=ez("desktop.pastedLabel",{id:e_.current,lines:o}),d=tG.current,c=d?.selectionStart??eE.length,u=d?.selectionEnd??eE.length,p=eE.slice(0,c),h=eE.slice(u),x=!(p.length>0)||p.endsWith("\n")||p.endsWith(" ")?"":"\n\n";e$(p+x+l+h),eW(e=>[...e,{id:a,label:l,text:s}]),requestAnimationFrame(()=>{if(!d)return;let e=c+x.length+l.length;d.setSelectionRange(e,e),d.focus()})},[ru,ez,eE,r5]);(0,s.useEffect)(()=>{tF>=(ed?.length??0)&&tD(Math.max(0,(ed?.length??0)-1))},[tF,ed]),(0,s.useEffect)(()=>{rt.current.length=ed?.length??0},[ed]),(0,s.useEffect)(()=>{tA&&rt.current[tF]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tF,tA]),(0,s.useEffect)(()=>{if(null===rw){ty(!1),tk(0),t8.current=!1;return}ty(!0),tk(0),!t8.current&&em&&(t8.current=!0,Promise.resolve(em()).catch(()=>{t8.current=!1}))},[rw,em]),(0,s.useEffect)(()=>{tb>=rS.length&&tk(Math.max(0,rS.length-1))},[rS.length,tb]),(0,s.useEffect)(()=>{t7.current.length=rS.length},[rS.length]),(0,s.useEffect)(()=>{tv&&t7.current[tb]?.scrollIntoView({block:"nearest",inline:"nearest"})},[tb,tv]);let r8=A&&A.length>0?A.map(e=>({provider:e.provider,modelId:e.id,name:e.name,input:e.input})).sort(sW):Object.entries(W??{}).map(e=>{let[t,r]=e;return{provider:L?.provider??"unknown",modelId:t,name:r}}).sort(sW),r7=[];for(let e of r8){let t=r7.find(t=>t.provider===e.provider);t?t.options.push(e):r7.push({provider:e.provider,options:[e]})}let r9=L?r8.find(e=>e.modelId===L.modelId&&e.provider===L.provider)?.name??L.modelId:null,ne=H?Math.max(0,H.tokensBefore-H.estimatedTokensAfter):0,nt=H?`${ez("desktop.compacted")} ${sF(H.tokensBefore)} -> ${sF(H.estimatedTokensAfter)} ${ez("desktop.tokens")} (${sF(ne)} ${ez("desktop.saved")})`:null,nr=er&&"auto"!==er?er:null,nn="auto"!==(a=er??"auto")&&eo?eo[a]??eR[a]:eR[a],ns=Object.entries(s$).find(e=>{let[,t]=e;return t===(B??"default")})?.[0],ni="plan"===B?ez("desktop.planModeLabel"):eI[ns??"default"];(0,s.useEffect)(()=>{let e=e=>{tY.current&&!tY.current.contains(e.target)&&tX.current&&!tX.current.contains(e.target)&&eq(!1),tQ.current&&!tQ.current.contains(e.target)&&tt(!1),t1.current&&!t1.current.contains(e.target)&&td(!1),t2.current&&!t2.current.contains(e.target)&&ti(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,s.useEffect)(()=>{let e=null,t=()=>{e=null;let t=window.visualViewport;eZ({height:t?.height??window.innerHeight,width:t?.width??window.innerWidth,offsetTop:t?.offsetTop??0})},r=()=>{null!==e&&window.cancelAnimationFrame(e),e=window.requestAnimationFrame(t)};return r(),window.addEventListener("resize",r),window.visualViewport?.addEventListener("resize",r),window.visualViewport?.addEventListener("scroll",r),window.addEventListener("focusin",r),window.addEventListener("focusout",r),window.addEventListener("pageshow",r),()=>{window.removeEventListener("resize",r),window.visualViewport?.removeEventListener("resize",r),window.visualViewport?.removeEventListener("scroll",r),window.removeEventListener("focusin",r),window.removeEventListener("focusout",r),window.removeEventListener("pageshow",r),null!==e&&window.cancelAnimationFrame(e)}},[]),(0,s.useEffect)(()=>{eK&&tZ.current?.focus()},[eK]);let[no,na]=(0,s.useState)(null);return(0,s.useEffect)(()=>{if(!ej||!ew)return void na(null);let e=!1,t=async()=>{try{let t=await fetch("/api/tasks/projects"),{projects:r}=await t.json(),n=r.find(e=>ej===e||ej.startsWith(e+"/")||e.startsWith(ej+"/"));if(!n){e||na(null);return}let s=await (0,nB.Vk)(n);if(e)return;na({running:s.filter(e=>["running","awaiting_input","preparing","merging"].includes(e.status)).length,todo:s.filter(e=>["todo","queued"].includes(e.status)).length})}catch{e||na(null)}};t();let r=new EventSource("/api/tasks/events");return r.onmessage=()=>void t(),()=>{e=!0,r.close()}},[ej,ew]),(0,n.jsxs)("fieldset",{disabled:tO,"aria-busy":tO,style:{flexShrink:0,minWidth:0,margin:0,border:0,background:"transparent",padding:eC?"0 16px max(15px, env(safe-area-inset-bottom))":"0 16px 15px",paddingRight:eC?16:34,opacity:tO?.5:1,transition:"opacity 0.15s"},children:[(0,n.jsx)("input",{ref:t4,type:"file",accept:"image/*",multiple:!0,style:{display:"none"},onChange:e=>{ru(Array.from(e.target.files??[])),e.target.value=""}}),(0,n.jsxs)("div",{style:{maxWidth:820,margin:"0 auto"},children:[no&&(no.running>0||no.todo>0)&&(0,n.jsxs)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("pi:open-tasks-view")),title:ez("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)(nU.m,{size:12,"aria-hidden":"true"}),no.running>0&&(0,n.jsxs)("span",{style:{color:"var(--accent)"},children:[no.running," ",ez("desktop.taskRunning")]}),no.running>0&&no.todo>0&&(0,n.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),no.todo>0&&(0,n.jsxs)("span",{children:[no.todo," ",ez("desktop.taskTodo")]})]}),P&&P.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:P.join(" ")}),(el?.steering.length??0)+(el?.followUp.length??0)>0&&(0,n.jsxs)("div",{style:{marginBottom:8,border:"1px solid var(--border)",borderRadius:6,background:"var(--bg-panel)",padding:"5px 0",maxHeight:"30dvh",overflowY:"auto"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 8px 4px 10px"},children:[(0,n.jsxs)("span",{style:{fontSize:10,fontFamily:"var(--font-mono)",color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:.4},children:[ez("desktop.queued")," \xb7 ",(el?.steering.length??0)+(el?.followUp.length??0)]}),ec&&(0,n.jsxs)("button",{onClick:ec,title:ez("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)(n_.Y,{size:13}),ez("desktop.recallToInput")]})]}),el?.steering.map((e,t)=>(0,n.jsx)(sQ,{kind:"steer",label:ez("desktop.steer"),text:e,index:t,total:el.steering.length,onMove:eu?e=>void rm("steer",t,e):void 0,onRecall:ep?()=>void ry("steer",t):void 0,onRemove:ex?()=>void rv("steer",t):void 0},`steer-${t}`)),el?.followUp.map((e,t)=>(0,n.jsx)(sQ,{kind:"follow-up",label:ez("desktop.followUp"),text:e,index:t,total:el.followUp.length,onMove:eu?e=>void rm("followUp",t,e):void 0,onRecall:ep?()=>void ry("followUp",t):void 0,onRemove:ex?()=>void rv("followUp",t):void 0},`followup-${t}`))]}),rd&&(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:ez("desktop.recalledEditing")}),ea&&(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)(K.B,{size:11,style:{flexShrink:0}}),ez("desktop.retrying")," (",ea.attempt,"/",ea.maxAttempts,")…",ea.errorMessage&&(0,n.jsxs)("span",{style:{opacity:.7,marginLeft:4},children:["— ",ea.errorMessage]})]}),nt&&(0,n.jsxs)("div",{style:{marginBottom:8,padding:"5px 10px",background:"rgba(16,185,129,0.08)",border:"1px solid rgba(16,185,129,0.24)",borderRadius:6,fontSize:12,color:"rgba(5,150,105,0.95)",display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)(q.S,{size:11,style:{flexShrink:0}}),nt]}),th.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,marginBottom:6,flexWrap:"wrap"},children:th.map((e,t)=>(0,n.jsxs)("div",{style:{position:"relative",flexShrink:0},children:[(0,n.jsx)(nH,{src:e.previewUrl,children:(0,n.jsx)("img",{src:e.previewUrl,alt:"",style:{width:56,height:56,objectFit:"cover",borderRadius:6,border:"1px solid var(--border)",display:"block"}})},e.previewUrl),(0,n.jsx)("button",{type:"button",onClick:()=>rx(t),title:ez("desktop.removeImage"),"aria-label":ez("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)(eP.u,{size:8})})]},t))}),(0,n.jsxs)("div",{style:{position:"relative"},children:[tA&&ed.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:ez("desktop.inputHistory")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:ez("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(38vh, 300px) - 24px)",overflowY:"auto",padding:4},children:ed.map((e,t)=>(0,n.jsxs)("button",{ref:e=>{rt.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rX(e)},onMouseEnter:()=>tD(t),style:{width:"100%",display:"flex",alignItems:"flex-start",gap:8,padding:"5px 6px",border:"none",borderRadius:5,background:t===tF?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},children:t+1}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12},children:e})]},`${t}:${e}`))})]}),tv&&null!==rw&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(38vh, 300px)"},children:[(0,n.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)"},children:[(0,n.jsx)("span",{children:ef?ez("desktop.loadingCommands"):`${ez("desktop.slashCommands")} \xb7 ${rz}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:ez("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{maxHeight:"calc(min(38vh, 300px) - 24px)",overflowY:"auto",padding:4},children:ef||0!==rS.length?rC.map(e=>(0,n.jsxs)("section",{style:{marginBottom:6},children:[(0,n.jsxs)("div",{style:{position:"sticky",top:-4,zIndex:1,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"2px 0 4px",background:"var(--bg)",color:"var(--text-dim)",fontSize:10,fontWeight:600,textTransform:"uppercase"},children:[(0,n.jsx)("span",{children:eM[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(e=>{let{command:t,index:r}=e,s=r===tb;return(0,n.jsxs)("button",{ref:e=>{t7.current[r]=e},type:"button",onMouseDown:e=>{e.preventDefault(),rZ(t)},onMouseEnter:()=>tk(r),style:{width:"100%",display:"flex",alignItems:"center",gap:8,padding:"3px 6px",border:"none",borderRadius:5,background:s?"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:["/",t.name]}),t.description&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:t.description}),sB(t,tj)&&(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:ez("desktop.dormant")})]},`${t.source}:${t.name}`)})})]},e.source)):(0,n.jsx)("div",{style:{padding:"2px 2px 2px",fontSize:12,color:"var(--text-dim)"},children:ez("desktop.noSlashCommands")})})]}),tI&&null!==tT&&(l=tK&&(!tU||tU.cwd!==ej),d=`${rV.length} ${ez(1===rV.length?"desktop.match":"desktop.matches")}`,c=tU?.truncated&&!rq?tT.query?` \xb7 ${ez("desktop.searchingAllFiles")}`:` \xb7 ${ez("desktop.indexTruncated")}`:"",(0,n.jsxs)("div",{ref:t9,style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",maxHeight:null===tE?"min(30vh, 240px)":`min(30vh, 240px, ${tE}px)`},children:[(0,n.jsxs)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,fontSize:11,color:"var(--text-dim)",flexShrink:0},children:[(0,n.jsx)("span",{children:l?ez("desktop.loadingFiles"):`${ez("desktop.files")} \xb7 ${d}${c}`}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)"},children:ez("desktop.tabOrEnter")})]}),(0,n.jsx)("div",{style:{flex:"1 1 auto",minHeight:0,overflowY:"auto",padding:2},children:l||0!==rV.length?rV.map((e,t)=>{let r=t===tL,s=e.path.split("/").pop()??e.path,i=e.path.slice(0,e.path.length-s.length);return(0,n.jsxs)("button",{ref:e=>{re.current[t]=e},type:"button",onMouseDown:t=>{t.preventDefault(),rY(e)},onMouseEnter:()=>tW(t),style:{width:"100%",display:"flex",alignItems:"center",gap:5,padding:"3px 6px",border:"none",borderRadius:5,background:r?"var(--bg-selected)":"none",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:12.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{style:{flexShrink:0,display:"flex",alignItems:"center"},children:e.isDir?(0,n.jsx)(tz,{size:14,name:s}):tM(s,14)}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[i&&(0,n.jsx)("span",{style:{color:"var(--text-dim)"},children:i}),s,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:rK&&!rq?ez("desktop.searching"):ez("desktop.noMatchingFiles")})})]})),null!==rI&&rP.length>0&&(0,n.jsxs)("div",{style:{position:"absolute",left:0,right:0,bottom:"calc(100% + 8px)",zIndex:120,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 -6px 20px rgba(0,0,0,0.12)",overflow:"hidden",maxHeight:"min(30vh, 240px)"},children:[(0,n.jsx)("div",{style:{padding:"4px 8px",borderBottom:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between"},children:(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",fontWeight:600},children:[rP.length," ",ez("desktop.snippetMatches")]})}),(0,n.jsx)("div",{style:{maxHeight:"min(26vh, 210px)",overflowY:"auto"},children:rP.map((e,t)=>(0,n.jsxs)("button",{type:"button",onMouseEnter:()=>rD(t),onClick:()=>rB(t),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 10px",background:t===rF?"var(--bg-selected)":"none",border:"none",color:t===rF?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:"#"}),(0,n.jsx)("span",{style:{fontWeight:600,flexShrink:0},children:e.name}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-muted)",fontSize:11},children:e.content.split("\n")[0]})]},e.id))})]}),(0,n.jsxs)("div",{className:`chat-input-shell ${$&&(M||E)?"is-streaming":""} ${"yolo"===V?"is-yolo":""}`,ref:t0,onClick:e=>{e.target.closest("button, input, select, [role=button]")||tG.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:[$&&(0,n.jsx)("div",{className:"chat-input-streaming-overlay hatch-45","aria-hidden":"true"}),eS,$&&(M||E)&&(0,n.jsxs)("div",{className:"chat-input-streaming-actions",children:[M&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action chat-input-streaming-action-steer",onClick:()=>r2("steer"),disabled:!rT,title:ez("desktop.injectMessageNow"),"aria-label":ez("desktop.steer"),children:(0,n.jsx)(nK.A,{size:15})}),E&&(0,n.jsx)("button",{type:"button",className:"chat-input-streaming-action",onClick:()=>r2("followup"),disabled:!rT,title:ez("desktop.queueMessageAfterFinish"),"aria-label":ez("desktop.followUp"),children:(0,n.jsx)(nJ.M,{size:15})})]}),eO&&(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:eO}),eL.length>0&&(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,marginBottom:6},children:eL.map(e=>{let t=eA.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)(nV.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:()=>eF(r=>t?r.filter(t=>t!==e.id):[...r,e.id]),title:ez(t?"desktop.pastedHidePreview":"desktop.pastedShowPreview"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(nq.b,{size:12,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:()=>{eW(t=>t.filter(t=>t.id!==e.id)),e$(t=>t.split(e.label).join(""))},title:ez("desktop.pastedRemove"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(e3.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","data-zone":"composer-editor",style:{borderColor:tf?"var(--tool-bg)":void 0},children:["goal"===_&&X&&"idle"!==X.status&&(0,n.jsxs)("span",{style:{flexShrink:0,display:"inline-flex",alignItems:"center",gap:6,marginRight:8,padding:"2px 8px",borderRadius:6,background:"complete"===X.status?"color-mix(in srgb, var(--accent-green, #22c55e) 14%, transparent)":"blocked"===X.status||"paused"===X.status?"color-mix(in srgb, #f59e0b 14%, transparent)":"color-mix(in srgb, var(--accent) 12%, transparent)",color:"complete"===X.status?"var(--accent-green, #22c55e)":"blocked"===X.status||"paused"===X.status?"var(--status-warning)":"var(--accent)",fontSize:11,fontWeight:600,whiteSpace:"nowrap",userSelect:"none"},title:X.goalText??"",children:[(0,n.jsx)(n2.d,{size:12,weight:"fill","aria-hidden":"true"}),"running"===X.status&&(0,n.jsxs)("span",{children:[ez("desktop.goalRunning")," \xb7 ",X.turnsUsed,"/",X.turnsLimit]}),"complete"===X.status&&(0,n.jsx)("span",{children:ez("desktop.goalComplete")}),"blocked"===X.status&&(0,n.jsx)("span",{children:ez("desktop.goalBlocked")}),"paused"===X.status&&(0,n.jsx)("span",{children:ez("desktop.goalPaused")}),X.noProgressTurns>0&&"running"===X.status&&(0,n.jsxs)("span",{style:{opacity:.8},children:["\xb7 ",ez("desktop.goalNoProgress",{n:X.noProgressTurns})]}),"running"===X.status&&(0,n.jsx)("button",{type:"button",onClick:Q,title:ez("desktop.goalPause"),"aria-label":ez("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:ez("desktop.goalPauseShort")}),("paused"===X.status||"blocked"===X.status)&&(0,n.jsx)("button",{type:"button",onClick:ee,title:ez("desktop.goalResume"),"aria-label":ez("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:ez("desktop.goalResumeShort")}),(0,n.jsx)("button",{type:"button",onClick:et,title:ez("desktop.goalStop"),"aria-label":ez("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:tG,value:eE,spellCheck:!1,onChange:e=>{e$(e.target.value),rR(e.target.value,e.target.selectionStart),rO(e.target.value,e.target.selectionStart)},onSelect:e=>{let t=e.currentTarget;rR(t.value,t.selectionStart)},onKeyDown:r4,onCompositionStart:()=>{t5.current=!0},onCompositionEnd:e=>{t5.current=!1,t3.current=Date.now();let t=e.currentTarget;rR(t.value,t.selectionStart)},onInput:r5,onPaste:r3,placeholder:$&&(M||E)?ez("desktop.steerOrQueueFollowUp"):$?ez("desktop.agentRunning"):ez("desktop.messageWithCommands"),rows:1,className:"chat-input-textarea",style:{flex:1,background:"none",border:"none",outline:"none",resize:"none",color:"var(--text)",minHeight:24,maxHeight:200,padding:0,overflow:"auto"}})]}),tf&&(0,n.jsxs)("div",{style:{marginTop:4,padding:"2px 8px",fontSize:11,color:tm?"var(--text-muted)":"var(--accent)"},children:[ez("desktop.shellCommand")," \xb7 ",tm?ez("desktop.shellOutputLocal"):ez("desktop.shellOutputModel")]}),(0,n.jsxs)("div",{className:"chat-input-toolbar","data-zone":"composer-chin",style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("div",{ref:t2,className:"chat-input-toolbar-attach","data-slot":"attach",style:{position:"relative"},children:[(0,n.jsx)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();ta({top:t.top,left:t.left,width:t.width}),ti(e=>!e)},title:ez("desktop.attachMenu"),"aria-label":ez("desktop.attachMenu"),"aria-expanded":ts,style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,background:ts?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:th.length?"var(--accent)":"var(--text-muted)",cursor:"pointer",transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color=th.length?"var(--accent)":"var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=ts?"var(--bg-hover)":"none",e.currentTarget.style.color=th.length?"var(--accent)":"var(--text-muted)"},children:(0,n.jsx)(e4.c,{size:14})}),ts&&to&&(u=[{id:"upload",label:ez("desktop.attachUpload"),desc:ez("desktop.attachUploadDesc"),icon:e8.J},{id:"reference",label:ez("desktop.attachReference"),desc:ez("desktop.attachReferenceDesc"),icon:nO.sj},{id:"sessions",label:ez("desktop.attachSessions"),desc:ez("desktop.attachSessionsDesc"),icon:nY.v},{id:"slash",label:ez("desktop.attachCommands"),desc:ez("desktop.attachCommandsDesc"),icon:eX.C}],p=window.visualViewport?.height??window.innerHeight,h=window.innerWidth,x=Math.min(to.left,h-220-8),g=p-to.top+6,(0,n.jsx)("div",{role:"menu",style:{position:"fixed",left:x,bottom:g,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:u.map(e=>{let t="upload"===e.id&&!eT;return(0,n.jsxs)("button",{type:"button",role:"menuitem",disabled:t,title:t?ez("desktop.imageInputUnsupported"):void 0,onClick:()=>{ti(!1),"upload"===e.id?t4.current?.click():"reference"===e.id?rQ():"sessions"===e.id?r0():"slash"===e.id&&r1()},style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:e.active?"var(--bg-selected)":"none",border:"none",borderRadius:8,cursor:t?"not-allowed":"pointer",textAlign:"left",opacity:t?.45:1,transition:"background 0.12s"},onMouseEnter:r=>{e.active||t||(r.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:t=>{t.currentTarget.style.background=e.active?"var(--bg-selected)":"none"},children:[(0,n.jsx)(e.icon,{size:16,weight:e.active?"fill":"regular",color:e.active?"var(--accent)":"var(--text-muted)","aria-hidden":"true"}),(0,n.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:550,color:"var(--text)"},children:e.label}),(0,n.jsx)("span",{style:{display:"block",fontSize:10.5,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:t?ez("desktop.imageInputUnsupported"):e.desc})]}),e.active?(0,n.jsx)(q.S,{size:12,weight:"bold",color:"var(--accent)","aria-hidden":"true"}):null]},e.id)})}))]}),(0,n.jsx)("div",{className:"chat-input-toolbar-left","data-slot":"mode",style:{flex:"0 0 auto",minWidth:0,display:"flex",alignItems:"center",gap:2},children:G&&(0,n.jsx)(sM,{collaborationMode:_,onCollaborationModeChange:G,toolApprovalMode:V,onToolApprovalModeChange:Y,disabled:$})}),!eC&&(0,n.jsx)("div",{className:"chat-input-toolbar-spacer",style:{flex:1}}),(0,n.jsx)("div",{ref:t6,className:"chat-input-toolbar-controls",style:{flex:eC?"1 1 auto":"0 1 auto",minWidth:0,display:"flex",alignItems:"center",justifyContent:"flex-end",position:"relative",marginLeft:eC?0:"auto"},children:(0,n.jsxs)("div",{className:"chat-input-toolbar-actions",style:{display:"flex",alignItems:"center",gap:eC?1:2,justifyContent:"flex-end",...eC?{flex:"1 1 auto",minWidth:0}:null},children:[es&&(0,n.jsxs)("div",{ref:t1,className:"chat-input-toolbar-thinking","data-slot":"thinking",style:{position:"relative"},children:[(0,n.jsxs)("button",{onClick:e=>{if($)return;let t=e.currentTarget.getBoundingClientRect();tp({top:t.top,left:t.left,width:t.width}),td(e=>!e)},disabled:$,title:$?ez("chat.currentReasoning",{level:nn}):ez("chat.changeReasoning",{level:nn}),"aria-label":ez("chat.changeReasoningLabel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:eC?3:5,padding:eC?"0 4px":"0 6px",maxWidth:eC?"min(104px, 32vw)":void 0,height:24,background:tl?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:(er??"auto")==="off"?"var(--text-dim)":"var(--accent)",cursor:$?"not-allowed":"pointer",fontSize:12,opacity:$?.5:1,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{$||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background=tl?"var(--bg-hover)":"none"},children:[(0,n.jsx)(sP,{level:er??"auto"}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:nn})]}),tl&&tc&&(f=window.visualViewport?.height??window.innerHeight,v=Math.min(240,(m=window.innerWidth)-16),y=Math.min(tc.left,m-v-8),b=f-tc.top+4,k=Math.min(360,Math.max(120,Math.min(tc.top-8,.6*f))),(0,n.jsx)("div",{style:{position:"fixed",bottom:b,left:y,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:v,maxHeight:k,overflowY:"auto"},children:sA.filter(e=>!ei||"auto"===e||ei.includes(e)).map(e=>{let t="auto"===e?en:!en&&nr===e,r="auto"!==e&&eo?eo[e]:void 0,s=null!=r&&r!==e?r:eR[e],i=null!=r&&r!==e;return(0,n.jsxs)("button",{onClick:()=>{if(td(!1),"auto"===e){en||es("auto");return}(!t||en)&&es(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)(sP,{level:e,size:14}),(0,n.jsxs)("span",{style:{flex:1},children:[s,i&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:5},children:["(",e,")"]})]}),t&&(0,n.jsx)(q.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),U&&"plan"===B&&(0,n.jsxs)("div",{ref:tQ,className:"chat-input-toolbar-tools","data-slot":"tools",style:{position:"relative"},children:[" ",(0,n.jsxs)("button",{onClick:e=>{if($)return;let t=e.currentTarget.getBoundingClientRect();tn({top:t.top,left:t.left,width:t.width}),tt(e=>!e)},disabled:$,title:ez("desktop.changeToolPreset",{preset:ni}),"aria-label":ez("desktop.toolPreset"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:eC?"0 5px":"3px 7px",width:eC?"auto":void 0,height:24,background:te?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:$?"not-allowed":"pointer",fontSize:12,opacity:$?.5:1,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=te?"var(--bg-hover)":"none",e.currentTarget.style.color="var(--text-muted)"},children:[(0,n.jsx)("span",{style:{whiteSpace:"nowrap"},children:ni}),(0,n.jsx)(e1.b,{size:11,weight:"bold","aria-hidden":"true",style:{transform:te?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),te&&tr&&(j=window.visualViewport?.height??window.innerHeight,S=Math.min(200,(w=window.innerWidth)-16),C=Math.max(8,w-(tr.left+tr.width)),z=j-tr.top+6,T=Math.min(320,Math.max(100,Math.min(tr.top-8,.5*j))),(0,n.jsx)("div",{style:{position:"fixed",bottom:z,right:C,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:S,maxHeight:T,overflowY:"auto"},children:sE.map(e=>{let t=s$[e],r="plan"!==B&&(B??"default")===t,s="off"===e?ez("desktop.noToolsReadOnly"):"default"===e?ez("desktop.fourBuiltInTools"):ez("desktop.allBuiltInTools");return(0,n.jsxs)("button",{onClick:()=>{tt(!1),r||U(t)},style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 12px",background:r?"var(--bg-selected)":"none",border:"none",color:r?"var(--accent)":"var(--text)",cursor:"pointer",fontSize:12,textAlign:"left",fontFamily:"var(--font-mono)",whiteSpace:"nowrap"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flex:1},children:eI[e]}),(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",marginLeft:8},children:s}),r&&(0,n.jsx)(q.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}})]},e)})}))]}),r8.length>0&&O&&(0,n.jsxs)("div",{ref:tY,className:"chat-input-toolbar-model","data-slot":"model",style:{position:"relative",flex:eC?"0 1 auto":void 0,minWidth:0},children:[(0,n.jsxs)("button",{onClick:e=>{let t=e.currentTarget.getBoundingClientRect();eJ({top:t.top,left:t.left,width:t.width}),eK||e0(""),eq(e=>!e)},disabled:$,title:r9??ez("desktop.selectModel"),"aria-label":r9??ez("desktop.selectModel"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:eC?3:5,padding:eC?"0 4px":"0 6px",maxWidth:eC?"min(132px, 40vw)":"min(220px, 34vw)",height:24,overflow:"hidden",background:eK?"var(--bg-hover)":"none",border:"none",borderRadius:6,color:"var(--text-muted)",cursor:$?"not-allowed":"pointer",fontSize:12,opacity:$?.5:1,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=eK?"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:eC?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=e.trim();return r.length>t?`${r.slice(0,t)}…`:r}(r9??ez("desktop.selectModel")):r9??ez("desktop.selectModel")}),(0,n.jsx)(e1.b,{size:11,weight:"bold","aria-hidden":"true",style:{flexShrink:0,transform:eK?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.12s"}})]}),eK&&eV&&(()=>{let e=eG.height||window.innerHeight,t=eG.width||window.innerWidth,r=eV.top-eG.offsetTop,s=Math.max(6,e-r+6),i=Math.min(400,Math.max(120,Math.min(r-8,.6*e))),o=Math.min(320,i),a=eV.width,l=Math.min(360,t-16),d=eC?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{right:Math.max(8,t-(eV.left+eV.width)),width:"max-content",minWidth:Math.min(a,l),maxWidth:l},c=[];for(let e of[...e6]){let[t,r]=e.split(":",2),n=r8.find(e=>e.provider===t&&e.modelId===r);n&&c.push(n)}let u=eQ.trim().toLowerCase(),p=u.length>0,h=e=>e.name.toLowerCase().includes(u)||e.modelId.toLowerCase().includes(u)||e.provider.toLowerCase().includes(u),x=p?c.filter(h):c,g=x.length>0,f=p?r7.map(e=>({...e,options:e.options.filter(h)})).filter(e=>e.options.length>0):r7,m=g||f.length>0;return(0,n.jsxs)("div",{ref:tX,className:"chat-input-model-dropdown",style:{position:"fixed",bottom:s,...d,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:o,maxHeight:i,display:"flex",flexDirection:"column"},children:[(0,n.jsx)("div",{style:{borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[(0,n.jsx)(eY.$,{size:13,color:"var(--text-dim)",style:{position:"absolute",left:12,pointerEvents:"none"}}),(0,n.jsx)("input",{ref:tZ,value:eQ,onChange:e=>e0(e.target.value),onKeyDown:e=>{if("Escape"===e.key)eQ?e0(""):eq(!1);else if("ArrowDown"===e.key){let t=tX.current?.querySelector(".model-row button");t&&(e.preventDefault(),t.focus())}},placeholder:ez("desktop.searchModels"),"aria-label":ez("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:[g&&(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:ez("desktop.favorites")}),x.map(e=>{let t=e.modelId===L?.modelId&&e.provider===L?.provider,r=e6.has(`${e.provider}:${e.modelId}`);return(0,n.jsx)("div",{className:"model-row",style:{display:"flex",alignItems:"center",width:"100%"},children:(0,n.jsxs)("button",{onClick:()=>{eq(!1),O(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)(q.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),rp(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:r?"var(--accent)":"var(--text-dim)",opacity:+!!r,transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)"},title:r?ez("desktop.unfavorite"):ez("desktop.favorite"),"aria-label":r?ez("desktop.unfavorite"):ez("desktop.favorite"),children:(0,n.jsx)(n0.G,{size:12,weight:r?"fill":"regular"})})]})},`fav-${e.provider}:${e.modelId}`)}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)"}})]}),f.map((e,t)=>{let r=p||e7.has(e.provider),s=r?(0,n.jsx)(e1.b,{size:10,color:"var(--text-dim)"}):(0,n.jsx)(e2.J,{size:10,color:"var(--text-dim)"});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("button",{onClick:()=>rh(e.provider),title:e.provider,style:{display:"flex",alignItems:"center",gap:4,width:"100%",maxWidth:"100%",padding:"6px 12px 4px",background:"none",border:"none",cursor:"pointer",fontSize:10,fontWeight:600,color:"var(--text-dim)",textTransform:"uppercase",letterSpacing:"0.07em",overflow:"hidden",whiteSpace:"nowrap",borderTop:t>0?"1px solid var(--border)":"none"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:[s,(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",minWidth:0},children:e.provider})]}),r&&e.options.map(e=>{let t=e.modelId===L?.modelId&&e.provider===L?.provider,r=e6.has(`${e.provider}:${e.modelId}`);return(0,n.jsx)("div",{className:"model-row",style:{display:"flex",alignItems:"center",width:"100%"},children:(0,n.jsxs)("button",{onClick:()=>{eq(!1),O(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)(q.S,{size:12,weight:"bold",color:"var(--accent)",style:{flexShrink:0}}),(0,n.jsx)("span",{onClick:t=>{t.stopPropagation(),rp(e.provider,e.modelId)},className:"model-star",style:{display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,cursor:"pointer",color:r?"var(--accent)":"var(--text-dim)",opacity:+!!r,transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.stopPropagation(),e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.stopPropagation(),e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)"},title:r?ez("desktop.unfavorite"):ez("desktop.favorite"),"aria-label":r?ez("desktop.unfavorite"):ez("desktop.favorite"),children:(0,n.jsx)(n0.G,{size:12,weight:r?"fill":"regular"})})]})},`${e.provider}:${e.modelId}`)})]},e.provider)}),p&&!m&&(0,n.jsx)("div",{style:{padding:"14px 12px",textAlign:"center",fontSize:12,color:"var(--text-dim)"},children:ez("desktop.noModelsMatch")})]})]})})()]}),0===r8.length&&F&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:`${ez("desktop.modelsLoadFailed")}: ${F}`,style:{display:"flex",alignItems:"center",gap:6,flex:eC?"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)(nG.M,{size:14,color:"var(--status-error)",weight:"fill",style:{flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,color:"var(--status-error)"},children:ez("desktop.modelsLoadFailed")}),D&&(0,n.jsx)("button",{type:"button",onClick:D,style:{display:"inline-flex",alignItems:"center",gap:4,flexShrink:0,padding:"1px 6px",background:"rgba(239,68,68,0.14)",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",fontSize:11,fontWeight:600,transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239,68,68,0.24)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.14)"},children:ez("desktop.retry")})]}),0===r8.length&&!F&&(0,n.jsxs)("div",{className:"chat-input-toolbar-model",title:ez("desktop.noModelsConfigured"),style:{display:"flex",alignItems:"center",gap:6,flex:eC?"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)(nG.M,{size:14,color:"var(--text-dim)",style:{flexShrink:0}}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:ez("desktop.noModelsConfigured")})]}),!$&&(0,n.jsx)("button",{type:"button",onClick:rj,disabled:!eE.trim()&&!th.length,className:"chat-input-send",title:ez("desktop.sendMessage"),"aria-label":ez("desktop.sendMessage"),children:(0,n.jsx)(nZ.l,{size:14})}),$&&(0,n.jsx)("button",{onClick:N,title:ez("desktop.stopAgent"),"aria-label":ez("desktop.stopAgent"),className:"chat-input-stop",style:{display:"flex",alignItems:"center",justifyContent:"center",padding:0,width:24,height:24,background:"rgba(239,68,68,0.12)",border:"none",borderRadius:4,color:"var(--status-error)",cursor:"pointer",transition:"background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(239,68,68,0.20)"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(239,68,68,0.12)"},children:(0,n.jsx)(nQ.d,{size:14})})]})})]})]})]})]})]})})),s1=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function s2(e,t){return s1.compare(e.name||e.modelId,t.name||t.modelId)||s1.compare(e.provider,t.provider)||s1.compare(e.modelId,t.modelId)}function s6(e,t){let r=t.trim().toLocaleLowerCase();return r?e.filter(e=>`${e.name} ${e.modelId}`.toLocaleLowerCase().includes(r)):e}function s4(e){let t,r,i,o,a,l,d,c,{options:u,value:p,onChange:h,onClear:x,emptyLabel:g,selectedLabel:f,disabled:m=!1,busy:v=!1,isAutoSelection:y=!1,ariaLabel:b,variant:k="toolbar",placement:j="up"}=e,{t:w}=(0,J.s)(),S=tu(),C=(0,s.useRef)(null),z=(0,s.useRef)(null),[T,R]=(0,s.useState)(!1),[I,N]=(0,s.useState)(null),[M,E]=(0,s.useState)(""),$=m||v,L=(0,s.useMemo)(()=>[...u].sort(s2),[u]),W=s6(L,M),A=L.length>8,P=[];for(let e of W){let t=P.find(t=>t.provider===e.provider);t?t.options.push(e):P.push({provider:e.provider,options:[e]})}let F=f??(p?L.find(e=>e.modelId===p.modelId&&e.provider===p.provider)?.name??p.modelId:g??(L.length>0?"Select model":"No models"));(0,s.useEffect)(()=>{let e=e=>{C.current&&!C.current.contains(e.target)&&z.current&&!z.current.contains(e.target)&&(R(!1),E(""))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,s.useEffect)(()=>{$&&(R(!1),E(""))},[$]);let D="field"===k?{display:"flex",alignItems:"center",gap:7,width:"100%",minWidth:0,height:34,padding:"0 9px",overflow:"hidden",border:"1px solid var(--ds-border-default)",borderRadius:"var(--radius-sm)",background:$?"var(--ds-bg-secondary)":"var(--ds-bg-primary)",color:$?"var(--ds-text-muted)":"var(--ds-text-primary)",cursor:$?"default":"pointer",fontSize:"var(--text-ui-sm)",textAlign:"left"}:{display:"flex",alignItems:"center",justifyContent:S?"flex-start":void 0,gap:6,width:S?"100%":void 0,maxWidth:S?"100%":220,height:32,padding:S?"8px 10px":"8px 12px",overflow:"hidden",border:"none",borderRadius:"var(--radius-md)",background:T?"var(--ds-bg-hover)":"none",color:"var(--ds-text-secondary)",cursor:$?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)",opacity:$?.5:1,transition:"background 0.12s, color 0.12s"};return(0,n.jsxs)("div",{ref:C,className:`model-selector is-${k}${$?" is-disabled":""}`,style:{position:"relative",width:"field"===k||S?"100%":void 0,minWidth:0,flex:"toolbar"===k&&S?"1 1 auto":void 0},onKeyDown:e=>{"Escape"===e.key&&T&&(e.preventDefault(),e.stopPropagation(),E(""),R(!1))},children:[(0,n.jsxs)("button",{type:"button","aria-label":b,"aria-haspopup":"listbox","aria-expanded":T,"aria-busy":v||void 0,disabled:$,title:v?"Switching model":$?F:L.length>0||x?"Change model":"No available models",style:D,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();N({top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.width}),R(e=>(e&&E(""),!e))},onMouseEnter:e=>{$||(e.currentTarget.style.background="var(--ds-bg-hover)",e.currentTarget.style.color="var(--ds-text-primary)")},onMouseLeave:e=>{if($){e.currentTarget.style.background="field"===k?"var(--ds-bg-secondary)":"none",e.currentTarget.style.color="field"===k?"var(--ds-text-muted)":"var(--ds-text-secondary)";return}e.currentTarget.style.background=T?"var(--ds-bg-hover)":"field"===k?"var(--ds-bg-primary)":"none",e.currentTarget.style.color="field"===k?"var(--ds-text-primary)":"var(--ds-text-secondary)"},children:[v?(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",style:{animation:"spin 0.8s linear infinite",flexShrink:0},"aria-hidden":"true",children:(0,n.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36"})}):(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,n.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,n.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,n.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,n.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,n.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,n.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,n.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,n.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,n.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:F}),"field"===k&&(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0,color:"var(--ds-text-muted)"},children:(0,n.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),T&&I&&(t=window.visualViewport?.height??window.innerHeight,r=window.visualViewport?.width??window.innerWidth,i=I.top-8,o=t-I.bottom-8,l=Math.max(120,Math.min((a="up"===j||i>o)?i:o,.6*t)),d=a?{bottom:t-I.top+6}:{top:I.bottom+6},c=S?{left:8,right:8,maxWidth:"calc(100vw - 16px)"}:{left:I.left,width:"max-content",minWidth:I.width,maxWidth:Math.max(I.width,r-I.left-8)},(0,n.jsxs)("div",{ref:z,role:"listbox","aria-label":b,style:{position:"fixed",...d,...c,zIndex:500,display:"flex",flexDirection:"column",maxHeight:l,overflow:"hidden",border:"1px solid var(--ds-border-default)",borderRadius:"var(--radius-md)",background:"var(--ds-bg-primary)",boxShadow:a?"0 -4px 16px rgba(0,0,0,0.10)":"0 4px 16px rgba(0,0,0,0.10)"},children:[A&&(0,n.jsx)("div",{style:{flexShrink:0,padding:"6px 8px",borderBottom:"1px solid var(--ds-border-default)"},children:(0,n.jsx)("input",{value:M,onChange:e=>E(e.target.value),placeholder:w("chat.filterModels"),"aria-label":w("chat.filterModels"),autoFocus:!0,autoComplete:"off",spellCheck:!1,style:{boxSizing:"border-box",width:"100%",minWidth:220*!S,padding:"5px 8px",border:"1px solid var(--ds-border-default)",borderRadius:"var(--radius-sm)",outline:"none",background:"var(--ds-bg-primary)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)"}})}),(0,n.jsxs)("div",{style:{minHeight:0,overflowY:"auto"},children:[x&&!M.trim()&&(0,n.jsx)(s5,{active:!p,label:g??"Default",onClick:()=>{R(!1),E(""),x()}}),0===P.length?(0,n.jsx)("div",{style:{padding:"8px 12px",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-sm)",whiteSpace:"nowrap"},children:M.trim()?w("chat.noMatchingModels"):"No available models"}):P.map((e,t)=>(0,n.jsxs)("div",{children:[P.length>1&&(0,n.jsx)("div",{style:{padding:"6px 12px 4px",borderTop:t>0||x?"1px solid var(--ds-border-default)":"none",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)",fontWeight:600,letterSpacing:0,textTransform:"uppercase"},children:e.provider}),e.options.map(e=>(0,n.jsx)(s5,{active:e.modelId===p?.modelId&&e.provider===p?.provider,label:e.name,onClick:()=>{let t;return t=e.modelId===p?.modelId&&e.provider===p?.provider,void(R(!1),E(""),(!t||y)&&h(e.provider,e.modelId))}},`${e.provider}:${e.modelId}`))]},e.provider))]})]}))]})}function s5(e){let{active:t,label:r,onClick:s}=e;return(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":t,onClick:s,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",border:"none",background:t?"var(--ds-bg-active)":"none",color:t?"var(--ds-text-primary)":"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-sm)",fontWeight:t?600:400,textAlign:"left",whiteSpace:"nowrap"},onMouseEnter:e=>{t||(e.currentTarget.style.background="var(--ds-bg-hover)")},onMouseLeave:e=>{t||(e.currentTarget.style.background="none")},children:[t?(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--ds-accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0},"aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})}):(0,n.jsx)("span",{style:{width:10,flexShrink:0}}),(0,n.jsx)("span",{title:r,style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:r})]})}var s3=r(93549),s8=r(5259),s7=r(37330),s9=r(47075),ie=r(73168),it=r(74303),ir=r(80735),is=r(98573),ii=r(73871),io=r(61749),ia=r(90599),il=r(30956),id=r(89120),ic=r(75646),iu=r(19241),ip=r(91044),ih=r(25730),ix=r(80655),ig=r(47543),im=r(18743),iv=r(40426),iy=r(32062),ib=r(78667),ik=r(37006),ij=r(83372),iw=r(67761),iS=r(30387),iC=r(44614),iz=r(10204),iT=r(1120),iR=r(93769),iI=r(580),iN=r(929),iM=r(70318);s8.A.registerLanguage("bash",s7.A),s8.A.alias("bash",["shell","sh","zsh"]),s8.A.registerLanguage("c",s9.A),s8.A.alias("c",["h"]),s8.A.registerLanguage("cpp",ie.A),s8.A.alias("cpp",["cc","cxx","c++"]),s8.A.registerLanguage("csharp",it.A),s8.A.alias("csharp",["cs","c#"]),s8.A.registerLanguage("css",ir.A),s8.A.registerLanguage("dart",is.A),s8.A.registerLanguage("diff",ii.A),s8.A.registerLanguage("docker",io.A),s8.A.alias("docker",["dockerfile"]),s8.A.registerLanguage("go",ia.A),s8.A.alias("go",["golang"]),s8.A.registerLanguage("graphql",il.A),s8.A.alias("graphql",["gql"]),s8.A.registerLanguage("ini",id.A),s8.A.alias("ini",["cfg","properties"]),s8.A.registerLanguage("java",ic.A),s8.A.registerLanguage("javascript",iu.A),s8.A.alias("javascript",["js","mjs","cjs"]),s8.A.registerLanguage("json",ip.A),s8.A.registerLanguage("json5",ih.A),s8.A.registerLanguage("jsx",ix.A),s8.A.registerLanguage("kotlin",ig.A),s8.A.alias("kotlin",["kt","kts"]),s8.A.registerLanguage("lua",im.A),s8.A.registerLanguage("markup",iv.A),s8.A.alias("markup",["html","xml","svg","mathml","xhtml"]),s8.A.registerLanguage("markdown",iy.A),s8.A.alias("markdown",["md","mdx"]),s8.A.registerLanguage("php",ib.A),s8.A.registerLanguage("powershell",ik.A),s8.A.alias("powershell",["ps1","pwsh"]),s8.A.registerLanguage("python",ij.A),s8.A.alias("python",["py","python3"]),s8.A.registerLanguage("ruby",iw.A),s8.A.alias("ruby",["rb"]),s8.A.registerLanguage("rust",iS.A),s8.A.alias("rust",["rs"]),s8.A.registerLanguage("scala",iC.A),s8.A.registerLanguage("sql",iz.A),s8.A.registerLanguage("swift",iT.A),s8.A.registerLanguage("toml",iR.A),s8.A.registerLanguage("tsx",iI.A),s8.A.registerLanguage("typescript",iN.A),s8.A.alias("typescript",["ts"]),s8.A.registerLanguage("yaml",iM.A),s8.A.alias("yaml",["yml"]);var iE=r(32316);let i$={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"},iL={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"};function iW(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function iA(e){try{return decodeURIComponent(e)}catch{return e}}function iP(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function iF(e){let t=iP(e),r=/^[a-zA-Z]:\//.test(t),n=t.startsWith("//"),s=t.startsWith("/")&&!r&&!n,i=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){i.length>0&&".."!==i[i.length-1]?i.pop():s||r||n||i.push(e);continue}i.push(e)}let o=i.join("/");return r?o:n?`//${o}`:s?`/${o}`:o}function iD(e,t){let r,n,s,i,o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)return null;let l=e.split("#",1)[0].split("?",1)[0].trim();if(!l)return null;let d=null,c=null,u=iA(l),p=u.startsWith("\\\\"),h=iP(u),x=h.toLowerCase();if(x.startsWith("/api/")||x.startsWith("/_next/")||!p&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!x.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(x.startsWith("file:")?c=(d=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let r=iA(t.pathname);if(t.hostname)return`//${t.hostname}${r.startsWith("/")?r:`/${r}`}`;if(/^\/[a-zA-Z]:\//.test(r))return r.slice(1);return r}catch{return null}}(l))?"absolute":null:/^[a-zA-Z]:\//.test(h)||h.startsWith("/")?(d=h,c="absolute"):t&&!(h.startsWith("#")||h.startsWith("?"))&&(h.startsWith("./")||h.startsWith("../")||h.includes("/")||/(^|\/)\.?[^/]+\.[^/.]+$/.test(h))&&(d=`${iP(t).replace(/\/+$/,"")}/${h}`,c="relative"),!d)return null;let g=iF(d).replace(/:\d+(?::\d+)?$/,"");return"relative"===c&&a&&(r=iF(g).replace(/\/+$/,""),n=iF(a).replace(/\/+$/,""),i=(s=/^[a-zA-Z]:\//.test(r)||/^[a-zA-Z]:\//.test(n))?r.toLowerCase():r,!(i===(o=s?n.toLowerCase():n)||i.startsWith(`${o}/`)))?null:g}let iO=/^page=(\d+)$/i;function iH(e){if(!e)return null;let t=e.indexOf("#");if(-1===t)return null;let r=e.slice(t+1).trim().match(iO);if(!r)return null;let n=Number.parseInt(r[1],10);return Number.isInteger(n)&&n>0?n:null}var iB=r(73342),iU=r(94764),i_=r(63835),iK=r(6796),iq=r(54152),iV=r(31678),iJ=r(98164);let iG=["obsidian","logseq","notion","vscode","vscode-insiders","cursor","zed","jetbrains","zoommtg","zoomus","msteams","slack"],iY=RegExp(`^(?:${iG.join("|")}):`,"i"),iX={...iU.j,attributes:{...iU.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},protocols:{...iU.j.protocols,href:[...iU.j.protocols?.href??[],"file",...iG]},strip:[...iU.j.strip||[],"iframe","object","style","form"]};function iZ(e){return iY.test(e)?e:(0,iE.Lv)(e)}function iQ(e){return/^file:/i.test(e)?e:iZ(e)}function i0(e){return String(e).toLowerCase().replace(/[^a-z0-9\u4e00-\u9fff]+/g,"-").replace(/^-+|-+$/g,"")}let i1=/(?<![\\`])`((?:[^`\n]|\\`)+?)(?<![\\`])`(?!`)/g;function i2(e){let t=e.includes("\r\n")?"\r\n":"\n",r=e.split(/\r?\n/),n=[],s=null,i=0,o=null,a=new Map;for(let e=0;e<r.length;e++){var l,d;let t=r[e];if(o){n.push(t),RegExp(`</${o}\\s*>`,"i").test(t)&&(o=null);continue}let c=t.match(/^ {0,3}(`{3,}|~{3,})/);if(c){let e=c[1][0],r=c[1].length;s?e===s.marker&&r>=s.size&&(s=null):s={marker:e,size:r},i=0,n.push(t);continue}if(s){n.push(t);continue}let u=t.match(/<(code|pre|script|style)\b/i);if(u){let e=u[1].toLowerCase(),r=t.slice((u.index??0)+u[0].length);RegExp(`</${e}\\s*>`,"i").test(r)||(o=e),i=0,n.push(t);continue}if(/^(?: {4}|\t)/.test(t)||""===t.trim()){i=0,n.push(t);continue}if(i||(t=t.replace(i1,(e,t)=>{let r=t.replace(/\\`/g,"`");if(r===t)return e;let n="`".repeat(Math.max(...r.match(/`+/g)?.map(e=>e.length)??[0])+1);return`${n}${r}${n}`})),i||t.includes("`")){i=function(e,t){let r=t;for(let t=0;t<e.length;){if("`"!==e[t]){t++;continue}let n=t+1;for(;"`"===e[n];)n++;let s=n-t;0===r?r=s:s===r&&(r=0),t=n}return r}(t,i),n.push(t);continue}let p=t.match(/^([ ]{0,3})\\\[[ \t]*(.+?)[ \t]*\\\][ \t]*$/);if(p){let e=p[2].trim();if(e){n.push(`${p[1]}$$`,`${p[1]}${e}`,`${p[1]}$$`);continue}}let h=t.match(/^([ ]{0,3})\[[ \t]*(.+?)[ \t]*\][ \t]*$/);if(h){let e=h[2].trim();if(l=e,/\\[A-Za-z]+/.test(l)&&!/\b(?:https?|file|mailto):|\b[A-Za-z]:\\|^\\\\/i.test(l)){n.push(`${h[1]}$$`,`${h[1]}${e}`,`${h[1]}$$`);continue}}let x=t.match(/^([ ]{0,3})\\\[[ \t]*$/);if(x){let t=function(e,t){for(let r=t;r<e.length;r++){let t=e[r];if(/^ {0,3}\\\][ \t]*$/.test(t))return r;if(/^ {0,3}(`{3,}|~{3,})/.test(t)||/^ {0,3}\\\[[ \t]*$/.test(t)||/<(code|pre|script|style)\b/i.test(t))break}return -1}(r,e+1);if(-1!==t){n.push(`${x[1]}$$`,...r.slice(e+1,t).map(e=>i4(e,x[1])),`${x[1]}$$`),e=t;continue}}let g=t.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(g){let e=g[2].trim();if(e){n.push(`${g[1]}$$`,`${g[1]}${e}`,`${g[1]}$$`);continue}}let f=t.match(/^([ \t]{0,3})\$\$(.+)$/);if(f){let t=f[1],s=f[2].trimEnd();if(s&&!s.includes("$$")){let i=i6(r,e+1,t,a);if(i){n.push(`${t}$$`,`${t}${s}`);for(let s=e+1;s<i.index;s++)n.push(i4(r[s],t));i.content&&n.push(`${t}${i.content}`),n.push(`${t}$$`),e=i.index;continue}}}let m=t.match(/^([ \t]{0,3})\$\$\s*$/);if(m){let t=m[1],s=i6(r,e+1,t,a);if(s&&(s.glued||""!==t)){n.push(`${t}$$`);for(let i=e+1;i<s.index;i++)n.push(i4(r[i],t));s.content&&n.push(`${t}${s.content}`),n.push(`${t}$$`),e=s.index;continue}}n.push((d=t,/^\s{0,3}\[[^\]]+\]:/.test(d)||/]\s*\(/.test(d)||/<(?:!--|\/?[A-Za-z][^>]*>)/.test(d)||/\b(?:https?|file|mailto):/i.test(d)||/\b[A-Za-z]:\\/.test(d)?d:d.replace(/(?<!\\)\\\(([^`\r\n$]+?)(?<!\\)\\\)/g,(e,t)=>t.trim()?`$${t}$`:e)))}return n.join(t)}function i6(e,t,r,n){let s=n.get(r);if(void 0!==s&&t<s)return null;for(let s=t;s<e.length;s++){var i,o,a,l;let t=e[s];if(i=t,""===(o=r)?/^ {0,3}\$\$\s*$/.test(i):i.startsWith(o)&&/^\$\$\s*$/.test(i.slice(o.length)))return{index:s,content:"",glued:!1};if(a=t,/^ {0,3}(`{3,}|~{3,})/.test(a)||/^[ \t]*(?:[-+*]|\d{1,9}[.)])(?:[ \t]+|$)/.test(a)||/^ {0,3}#{1,6}(?:[ \t]+|$)/.test(a)||/^ {0,3}>/.test(a)||/<(code|pre|script|style)\b/i.test(a)||(l=t,/^ {0,3}\$\$(?:\S|[ \t]+\S)/.test(l)))return n.set(r,s),null;let d=function(e,t){if(!e.startsWith(t))return null;let r=e.slice(t.length).match(/^(.+?)\$\$\s*$/);if(!r)return null;let n=r[1].trimEnd();return n&&!n.includes("$$")?n:null}(t,r);if(null!==d)return{index:s,content:d,glued:!0}}return n.set(r,e.length),null}function i4(e,t){if(!t||!e||e.startsWith(" "))return e;let r=e.match(/^ */)?.[0].length??0;return r>=t.length?e:`${t.slice(r)}${e}`}let i5=/[\u3001\u3002\u3008-\u3011\u3014-\u301B\uFF01\uFF08\uFF09\uFF0C\uFF1A\uFF1B\uFF1F\u2018\u2019\u201C\u201D\u2013\u2014\u2026\u00B7\uFF5E\u301C]/,i3=[[iq.A,["yaml"]],[iV.A,{singleTilde:!1}],iK.A,function(){return(e,t)=>{var r;let n;r="string"==typeof t.value?t.value:"",(n=e=>{let t=e.children;for(let e=0;e<t.length;e++){let s=t[e];"link"===s.type&&function(e,t,r,n){if(null!=r.title||1!==r.children.length)return;let s=r.children[0];if("text"!==s.type)return;let i=r.position?.start,o=r.position?.end;if(i?.offset==null||o?.offset==null||n.slice(i.offset,o.offset)!==s.value)return;let a=s.value,l=a.search(i5);if(l<=0||!r.url.endsWith(a))return;let d=a.slice(0,l),c={line:i.line,column:i.column+l,offset:i.offset+l};r.url=r.url.slice(0,r.url.length-a.length)+d,s.value=d,r.position={start:i,end:c},e.splice(t+1,0,{type:"text",value:a.slice(l),position:{start:c,end:o}})}(t,e,s,r);let i=t[e];"children"in i&&Array.isArray(i.children)&&n(i)}})(e)}},iJ.A];iq.A,iV.A,iK.A,iJ.A;let i8=[[i_.A,iX],[iB.A,{throwOnError:!1,strict:!1}]];i_.A,iB.A;let i7={'pre[class*="language-"]':{color:"var(--text)",background:"transparent"},'code[class*="language-"]':{color:"var(--text)",background:"transparent"},comment:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},prolog:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},doctype:{color:"var(--syntax-comment, var(--text-dim))",fontStyle:"italic"},cdata:{color:"var(--syntax-comment, var(--text-dim))"},punctuation:{color:"var(--text-muted)"},operator:{color:"var(--text-muted)"},string:{color:"var(--syntax-string, var(--accent-orange))"},char:{color:"var(--syntax-string, var(--accent-orange))"},builtin:{color:"var(--syntax-string, var(--accent-orange))"},"attr-value":{color:"var(--syntax-string, var(--accent-orange))"},keyword:{color:"var(--syntax-keyword, var(--accent))"},atrule:{color:"var(--syntax-keyword, var(--accent))"},property:{color:"var(--accent-blue)"},"attr-name":{color:"var(--accent-blue)"},variable:{color:"var(--accent-blue)"},parameter:{color:"var(--accent-blue)"},constant:{color:"var(--accent-blue)"},number:{color:"var(--syntax-number, var(--accent-blue))"},boolean:{color:"var(--syntax-number, var(--accent-blue))"},symbol:{color:"var(--syntax-number, var(--accent-blue))"},function:{color:"var(--syntax-function, var(--accent-green))"},"class-name":{color:"var(--syntax-function, var(--accent-green))"},"maybe-class-name":{color:"var(--syntax-function, var(--accent-green))"},tag:{color:"var(--accent-red)"},selector:{color:"var(--accent-red)"},regex:{color:"var(--accent-red)"},entity:{color:"var(--accent-red)"},deleted:{color:"var(--accent-red)"},inserted:{color:"var(--accent-green)"},important:{color:"var(--accent-orange)",fontWeight:"bold"},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"}};function i9(e){if(navigator.clipboard?.writeText)return navigator.clipboard.writeText(e);try{let t=document.createElement("textarea");return t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Promise.resolve()}catch{return Promise.reject()}}function oe(e,t,r){let n=function(e){let t=0xdeadbeef,r=0x41c6ce57;for(let n=0;n<e.length;n++){let s=e.charCodeAt(n);t=Math.imul(t^s,0x9e3779b1),r=Math.imul(r^s,0x5f356495)}return t=Math.imul(t^t>>>16,0x85ebca6b)^Math.imul(r^r>>>13,0xc2b2ae35),(0x100000000*(2097151&(r=Math.imul(r^r>>>16,0x85ebca6b)^Math.imul(t^t>>>13,0xc2b2ae35)))+(t>>>0)).toString(36)}(e);if(r&&!t){let s=r.get(n);if(void 0!==s)return{id:n,text:s,tail:t};if(r.set(n,e),r.size>2e3){let e=r.keys().next().value;void 0!==e&&r.delete(e)}}return{id:n,text:e,tail:t}}let ot=/^ {0,3}(`{3,}|~{3,})/;function or(e){return e.replace(/[*_`~]/g,"").trim()}function on(e,t){return e.length>t?e.slice(0,t).trimEnd()+"…":e}function os(e){return e.replace(/^(我要|我想我?|你想要?|你想我?|你想要?|想要?|需要|你来|你来?|用|使用|选|选择|我|你)\s*/u,"").replace(/[吗吧呢]?$/u,"").replace(/[??,,。.!!、]$/gu,"").trim()}function oi(e){let{segments:t,onPick:r,onOpenFile:i,cwd:o,innerRef:a}=e,{t:l}=(0,J.s)(),[d,c]=(0,s.useState)([]);return((0,s.useEffect)(()=>{let e=!1;return Promise.all(Array.from(new Set(t.flatMap(e=>(function(e){let t=new Set,r=[];for(let n of e.matchAll(/(?:\.[\w-]+\/|[\w-]+\/)+[\w.@-]+\.\w+|\b[A-Za-z0-9_.-]+\.(?:ts|tsx|js|jsx|mjs|cjs|md|mdx|json|py|go|rs|css|scss|html|sh|yml|yaml|toml|lock|txt|sql|env)\b/gu)){let e=n[0];(e=e.replace(/[),。、;:!!??)>"'`]$/u,"")).length>=3&&!t.has(e)&&(t.add(e),r.push(e))}return r})(e.text)))).map(e=>e.startsWith("/")?e:o?tA(o,e):e).map(async e=>{try{return(await fetch(`/api/files/${t$(e)}?type=meta`)).ok?e:null}catch{return null}})).then(t=>{e||c(t.filter(e=>!!e))}),()=>{e=!0}},[t,o]),0===t.length)?null:(0,n.jsxs)("span",{ref:a,style:{display:"flex",flexDirection:"column",gap:3,marginTop:4,width:"fit-content",maxWidth:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:4,boxShadow:"0 4px 14px rgba(0,0,0,0.14)"},onMouseDown:e=>e.preventDefault(),onClick:e=>e.stopPropagation(),children:[i&&d.length>0&&(0,n.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:4},children:d.map(e=>(0,n.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),i(e)},title:l("desktop.openFile"),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 9px",fontSize:12,color:"var(--accent)",background:"color-mix(in srgb, var(--accent) 10%, transparent)",border:"1px solid var(--border)",borderRadius:6,cursor:"pointer",whiteSpace:"nowrap",maxWidth:220,overflow:"hidden",textOverflow:"ellipsis"},children:[(0,n.jsx)(oa,{}),l("desktop.openFile"),": ",e.split("/").pop()]},e))}),t.map((e,t)=>(0,n.jsx)(oo,{segment:e,onPick:r,t:l},t))]})}function oo(e){let{segment:t,onPick:r,t:s}=e,i=t.options??[{label:s("desktop.quoteReply"),value:""}];return(0,n.jsx)("span",{style:{display:"flex",flexWrap:"wrap",gap:4},children:i.map((e,s)=>(0,n.jsx)("button",{onClick:n=>{var s,i;let o;n.stopPropagation(),r((s=t.text,i=e.value||void 0,o=or(s).split("\n").map(e=>`> ${e}`).join("\n"),i?`${o}
|
|
26
|
+
${i}`:`${o}
|
|
27
|
+
`))},title:t.text.slice(0,60),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"3px 9px",fontSize:12,color:e.value?"var(--accent)":"var(--text-muted)",background:e.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:e.label},s))})}function oa(){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 ol(e,t,r){return Math.min(r,Math.max(t,e))}function od(e,t,r,n){return r<=0||n<=0||e<=0||t<=0?1:Math.min(.9*e/r,.9*t/n)}function oc(e){let{children:t,contentWidth:r,contentHeight:i,title:o,ariaLabel:a,onClose:l}=e,{t:d}=(0,J.s)(),c=(0,s.useRef)(null),u=(0,s.useRef)(null),p=r+26,h=i+26,[x,g]=(0,s.useState)(1),[f,m]=(0,s.useState)({scale:1,tx:0,ty:0}),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(!1),j=(0,s.useRef)(x),w=(0,s.useRef)(f);j.current=x,w.current=f;let S=(0,s.useRef)(null),C=(0,s.useCallback)((e,t,r)=>{let{scale:n,tx:s,ty:i}=w.current,o=j.current,a=ol(e,.25*o,3*o);a!==n&&m({scale:a,tx:t-(t-s)*a/n,ty:r-(r-i)*a/n})},[]),z=(0,s.useCallback)(e=>{let t=u.current;if(!t)return;let r=t.getBoundingClientRect(),n=r.width/2,s=r.height/2,i=j.current;C((w.current.scale/i+.25*e)*i,n,s)},[C]),T=(0,s.useCallback)(()=>{let e=u.current;if(!e)return;let{clientWidth:t,clientHeight:r}=e,n=od(t,r,p,h);g(n),m({scale:n,tx:(t-p*n)/2,ty:(r-h*n)/2})},[p,h]);(0,s.useEffect)(()=>{let e=c.current;if(!e)return;let t=document.body.style.overflow;document.body.style.overflow="hidden",e.showModal();let r=requestAnimationFrame(()=>{T()});return()=>{cancelAnimationFrame(r),document.body.style.overflow=t,e.open&&e.close()}},[T]),(0,s.useEffect)(()=>{let e=u.current;if(!e||"u"<typeof ResizeObserver)return;let t=!1,r=new ResizeObserver(()=>{if(!t){t=!0;return}let{clientWidth:r,clientHeight:n}=e;if(r<=0||n<=0)return;let s=j.current,i=w.current,o=i.scale/s,a=od(r,n,p,h),l=ol(o*a,.25*a,3*a),d=r/2,c=n/2,u=(d-i.tx)/i.scale,x=(c-i.ty)/i.scale;g(a),m({scale:l,tx:d-u*l,ty:c-x*l})});return r.observe(e),()=>r.disconnect()},[p,h]);let R=e=>{let t=S.current;t&&t.pointerId===e.pointerId&&(t.capturing&&e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),S.current=null,y(!1))},I=Math.round(f.scale/x*100),N=.25*x,M=3*x;return(0,n.jsx)("dialog",{ref:c,className:"mermaid-zoom-dialog","aria-label":a,onCancel:e=>{e.preventDefault(),l()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),l())},children:(0,n.jsxs)("div",{className:"mermaid-zoom-layout",children:[(0,n.jsxs)("div",{className:"mermaid-zoom-toolbar",children:[o?(0,n.jsx)("span",{className:"mermaid-zoom-title",children:o}):null,!b&&(0,n.jsx)("span",{className:"mermaid-zoom-hint",children:d("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",b?"is-active":""].filter(Boolean).join(" "),onClick:()=>k(e=>!e),title:d("desktop.selectText"),"aria-label":d("desktop.selectText"),"aria-pressed":b,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:()=>z(-1),disabled:f.scale<=N+1e-9,title:d("desktop.zoomOut"),"aria-label":d("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:()=>{T()},title:d("desktop.resetZoom"),"aria-label":`${I}%`,children:[I,"%"]}),(0,n.jsx)("button",{type:"button",onClick:()=>z(1),disabled:f.scale>=M-1e-9,title:d("desktop.zoomIn"),"aria-label":d("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:T,title:d("desktop.fitToViewport"),"aria-label":d("desktop.fitToViewport"),children:(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M8 3H3v5M16 3h5v5M8 21H3v-5M16 21h5v-5"})})}),(0,n.jsx)("button",{type:"button",className:"mermaid-zoom-icon-button",onClick:l,title:d("desktop.close"),"aria-label":d("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:u,className:["mermaid-zoom-viewport",b?"is-selecting":"",v?"is-dragging":""].filter(Boolean).join(" "),onWheel:e=>{e.preventDefault();let t=u.current;if(!t)return;let r=t.getBoundingClientRect(),n=e.clientX-r.left,s=e.clientY-r.top,i=Math.exp(-(.0015*e.deltaY));C(w.current.scale*i,n,s)},onPointerDown:e=>{0!==e.button||b||(S.current={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,originTx:w.current.tx,originTy:w.current.ty,moved:!1,capturing:!1})},onPointerMove:e=>{let t=S.current;if(!t||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX,n=e.clientY-t.startY;if(!t.moved){if(4>Math.hypot(r,n))return;t.moved=!0,t.capturing=!0,y(!0),e.currentTarget.setPointerCapture(e.pointerId)}m(e=>({...e,tx:t.originTx+r,ty:t.originTy+n}))},onPointerUp:R,onPointerCancel:R,onDoubleClick:e=>{if(b)return;e.preventDefault();let t=u.current;if(!t)return;let r=t.getBoundingClientRect(),n=e.clientX-r.left,s=e.clientY-r.top,i=j.current,o=.05>Math.abs(w.current.scale/i-1)?2:1;1===o?T():C(o*i,n,s)},children:(0,n.jsx)("div",{className:"mermaid-zoom-world",style:{width:r*f.scale+26,height:i*f.scale+26,left:f.tx,top:f.ty},children:(0,n.jsx)("div",{className:"mermaid-zoom-canvas",children:t})})})]})})}let ou=(0,s.createContext)(!1);function op(e){let{src:t,alt:r,cwd:i,...o}=e,a=(0,s.useContext)(ou);delete o.node;let l="string"==typeof t?t:void 0,d=l?iD(l,i):null,c=d?`/api/files/${t$(d)}?type=read`:l,u=(0,n.jsx)("img",{src:c,alt:r??"",loading:"lazy",...o});return!c||a?u:(0,n.jsx)(nH,{src:c,alt:r??"",className:"markdown-image",children:u})}let oh=(0,s.createContext)({openId:null,setOpenId:()=>{}});function ox(e){let{isStreaming:t,cwd:r,onOpenFile:i,onQuoteReply:o,quoteScope:a="markdown"}=e;return{h1(e){let{children:t}=e;return(0,n.jsx)("h1",{id:i0(t),className:"scroll-mt-24 text-xl font-semibold mt-4 mb-2 text-(--text)",children:t})},h2(e){let{children:t}=e;return(0,n.jsx)("h2",{id:i0(t),className:"scroll-mt-24 text-lg font-semibold mt-3 mb-2 text-(--text)",children:t})},h3(e){let{children:t}=e;return(0,n.jsx)("h3",{id:i0(t),className:"scroll-mt-24 text-base font-semibold mt-3 mb-1 text-(--text)",children:t})},code(e){let{className:r,children:s,...i}=e,o=r?.replace("language-","").toLowerCase()??"",a=String(s);return r?.includes("language-")?"mermaid"===o?(0,n.jsx)(ov,{code:a.replace(/\n$/,""),isStreaming:t}):(0,n.jsx)(ok,{code:a.replace(/\n$/,""),lang:o,isStreaming:t}):(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)",...i,children:s})},pre(e){let{children:t}=e;return(0,n.jsx)("div",{className:"markdown-block-code",children:t})},p(e){let{children:t,node:l,...d}=e,c=`${a}-p-${l?.position?.start?.offset??0}`;return s.Children.toArray(t).some(e=>(0,s.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",...d,children:t}):o?(0,n.jsx)(ob,{pid:c,onQuoteReply:o,onOpenFile:i,cwd:r,children:t}):(0,n.jsx)("p",{...d,children:t})},li(e){let{children:t,node:s,...l}=e,d=`${a}-li-${s?.position?.start?.offset??0}`;return o?(0,n.jsx)(ob,{as:"li",pid:d,onQuoteReply:o,onOpenFile:i,cwd:r,children:t}):(0,n.jsx)("li",{...l,children:t})},a(e){let{href:t,children:s,...o}=e;delete o.node;let a="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",l=i?iD(t,r):null;if(!l||!i){let e="string"==typeof t&&(t.startsWith("file:")||!/^https?:/i.test(t)&&!t.startsWith("#"));return(0,n.jsx)(ou.Provider,{value:!0,children:(0,n.jsx)("a",{href:t,...o,className:a,...e?{}:{target:"_blank",rel:"noopener noreferrer"},children:s})})}return(0,n.jsx)("a",{href:t,...o,className:a,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let r=e.currentTarget.getAttribute("target");r&&"_self"!==r||(e.preventDefault(),i(l,iH(t)??void 0))},children:s})},img:e=>(0,n.jsx)(op,{cwd:r,...e}),ol(e){let{node:t,start:r,style:s,...i}=e,o=String(Math.abs((r??1)+Math.max(t?.children.filter(e=>"element"===e.type&&"li"===e.tagName).length??0,1)-1)).length;return(0,n.jsx)("ol",{start:r,style:{...s,"--ol-marker-digits":Math.max(o,2)},...i})},table(e){let{children:t}=e;return(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:"min-w-full w-max text-sm border-collapse [&_tr:last-child>td]:border-b-0",children:t})})})},tr(e){let{children:t,node:s,...l}=e,d=`${a}-tr-${s?.position?.start?.offset??0}`;return o?(0,n.jsx)(ob,{as:"tr",pid:d,onQuoteReply:o,onOpenFile:i,cwd:r,children:t}):(0,n.jsx)("tr",{...l,children:t})}}}let og=(0,s.memo)(function(e){let{text:t,isStreaming:r,cwd:i,onOpenFile:o,onQuoteReply:a,quoteScope:l}=e,d=(0,s.useMemo)(()=>i2(t),[t]),c=(0,s.useMemo)(()=>ox({isStreaming:r,cwd:i,onOpenFile:o,onQuoteReply:a,quoteScope:l}),[r,i,o,a,l]);return(0,n.jsx)(iE.oz,{remarkPlugins:i3,rehypePlugins:i8,components:c,children:d})});function of(e){let{children:t,className:r,isStreaming:i,cwd:o,onOpenFile:a,onQuoteReply:l}=e,d=(0,s.useMemo)(()=>i2(t),[t]),c=(0,s.useRef)(new Map),u=(0,s.useMemo)(()=>(function(e,t){let r;if(0===e.length)return[];let n=e.split(/\r?\n/),s="",i=0,o=!1,a=-1;for(let e=0;e<n.length;e++){let t=ot.exec(n[e]);o?t&&t[1][0]===s&&t[1].length>=i&&(o=!1,s="",i=0,a=-1):t&&(s=t[1][0],i=t[1].length,o=!0,a=e)}if(a>=0)r=a;else{let e=-1;for(let t=0;t<n.length;t++)""===n[t]&&(e=t);r=e+1}let l=n.slice(0,r),d=n.slice(r),c=[],u=[],p=()=>{for(;u.length>0&&""===u[u.length-1];)u.pop();for(;u.length>0&&""===u[0];)u.shift();u.length>0&&(c.push(oe(u.join("\n"),!1,t)),u=[])};for(let e of l)""===e&&u.length>0?p():u.push(e);for(u.length>0&&p();d.length>0&&""===d[0];)d.shift();return d.length>0&&c.push(oe(d.join("\n"),!0,t)),c})(d,c.current),[d]),p=i&&u.length>1,h=(0,s.useMemo)(()=>ox({isStreaming:i,cwd:o,onOpenFile:a,onQuoteReply:l,quoteScope:"full"}),[i,o,a,l]);return(0,n.jsx)(om,{children:(0,n.jsx)("div",{className:["markdown-body",r].filter(Boolean).join(" "),children:p?u.map((e,t)=>(0,n.jsx)(og,{text:e.text,isStreaming:!!e.tail&&i,cwd:o,onOpenFile:a,onQuoteReply:l,quoteScope:e.id},`${t}-${e.id}`)):(0,n.jsx)(iE.oz,{remarkPlugins:i3,rehypePlugins:i8,urlTransform:a?iQ:iZ,components:h,children:d})})})}function om(e){let{children:t}=e,[r,i]=(0,s.useState)(null),o=(0,s.useMemo)(()=>({openId:r,setOpenId:i}),[r]);return(0,n.jsx)(oh.Provider,{value:o,children:t})}function ov(e){let{code:t,isStreaming:i}=e,{t:o}=(0,J.s)(),{isDark:a}=eM(),[l,d]=(0,s.useState)(!i),[c,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(""),[x,g]=(0,s.useState)(null),[f,m]=(0,s.useState)(!1),v=`${a?"dark":"light"}
|
|
28
|
+
${t}`;(0,s.useEffect)(()=>{i||d(!0)},[i]),(0,s.useEffect)(()=>{if(!l||i)return;let e=!1;return g(null),(async()=>{let{default:n}=await Promise.all([r.e(988),r.e(9425),r.e(3308)]).then(r.bind(r,43328));if(n.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:a?"dark":"default"}),!await n.parse(t,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let s="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,i=await n.render(s,t);e||(u(i.svg),h(v))})().catch(()=>{e||g(v)}),()=>{e=!0}},[t,v,a,i,l]);let y=(0,n.jsx)("button",{onClick:()=>d(e=>!e),disabled:i,title:o(i?"desktop.markdownPreviewAvailableAfterStreaming":l?"desktop.source":"desktop.markdownPreviewMermaidDiagram"),className:["markdown-code-action",l?"is-active":""].filter(Boolean).join(" "),children:o(l?"desktop.source":"desktop.preview")});if(!l||i)return(0,n.jsx)(ok,{code:t,lang:"mermaid",headerAction:y,isStreaming:i});let b=x===v?(0,n.jsx)("div",{className:"mermaid-block mermaid-block-error",children:o("desktop.markdownInvalidMermaidDiagram")}):c&&p===v?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"mermaid-block mermaid-preview-button",title:o("desktop.openMermaidViewer"),"aria-label":o("desktop.openMermaidViewer"),onClick:()=>m(!0),dangerouslySetInnerHTML:{__html:c}}),f&&(0,n.jsx)(oy,{svg:c,onClose:()=>m(!1)})]}):(0,n.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":o("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:y})]}),b]})}function oy(e){let{svg:t,onClose:r}=e,{t:i}=(0,J.s)(),o=(0,s.useMemo)(()=>(function(e){if("u"<typeof DOMParser)return{html:e,width:800,height:600};let t=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(!t||"svg"!==t.tagName.toLowerCase())return{html:e,width:800,height:600};let r=0,n=0,s=t.getAttribute("viewBox");if(s){let e=s.trim().split(/[\s,]+/).map(Number);4===e.length&&e.every(e=>Number.isFinite(e))&&(r=e[2],n=e[3])}return r>0&&n>0||(r=parseFloat(t.getAttribute("width")||""),n=parseFloat(t.getAttribute("height")||"")),r>0&&n>0||(r=800,n=600),t.removeAttribute("width"),t.removeAttribute("height"),t.style.maxWidth="none",t.getAttribute("viewBox")||t.setAttribute("viewBox",`0 0 ${r} ${n}`),{html:t.outerHTML,width:r,height:n}})(t),[t]);return(0,n.jsx)(oc,{contentWidth:o.width,contentHeight:o.height,title:i("desktop.mermaidDiagram"),ariaLabel:i("desktop.mermaidViewer"),onClose:r,children:(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:o.html}})})}function ob(e){let{children:t,onQuoteReply:r,onOpenFile:i,cwd:o,as:a="p",pid:l}=e,{openId:d,setOpenId:c}=(0,s.useContext)(oh),{t:u}=(0,J.s)(),p=d===l,h=(0,s.useRef)(null),[x,g]=(0,s.useState)(null),[f,m]=(0,s.useState)(!1),[v,y]=(0,s.useState)(1),b=(0,s.useRef)(null),[k]=(0,s.useState)(()=>window.matchMedia?.("(pointer: coarse)").matches);(0,s.useEffect)(()=>{!p&&x&&g(null)},[p,x]);let j=(0,s.useRef)(null);(0,s.useEffect)(()=>{x&&j.current&&j.current.scrollIntoView({block:"nearest"})},[x]);let w=()=>{g(null),c(null)},S=()=>{x?w():(()=>{let e;if(x||p)return;let t=h.current,r=(!(e=or("tr"===a&&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=or(e);if(!t)return null;let r=t.match(/^(.+?)\s*(?:还是|或者|或者还是|\bor\b)\s*(.+?)[??]?\s*$/iu);if(r){let e=os(r[1]),t=os(r[2]);if(e&&t&&e!==t)return[{label:on(e,12),value:e},{label:on(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:`好,${on(e,10)}`,value:"是的"},{label:"不用",value:"不用了"}]:[{label:"是",value:"是的"},{label:"否",value:"不用了"}]}return null}(e)}));r.length>0&&("tr"===a&&t&&y(Math.max(1,t.querySelectorAll("td, th").length)),g(r),c(l))})()},C=(e,t)=>{b.current&&(b.current.style.left=`${e+12}px`,b.current.style.top=`${t+14}px`)},z=x&&(0,n.jsx)(oi,{innerRef:j,segments:x,onPick:e=>{r(e),w()},onOpenFile:i,cwd:o});return"tr"===a?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("tr",{ref:e=>{h.current=e},onClick:S,title:k||x?void 0:u("desktop.quoteReplyHint"),style:{cursor:"pointer"},children:t}),z&&(0,n.jsx)("tr",{children:(0,n.jsx)("td",{colSpan:v,children:z})})]}):(0,n.jsxs)(a,{ref:h,onMouseEnter:e=>{if(k)return;m(!0);let{clientX:t,clientY:r}=e;requestAnimationFrame(()=>C(t,r))},onMouseMove:k?void 0:e=>C(e.clientX,e.clientY),onMouseLeave:()=>m(!1),onClick:S,style:{position:"relative",cursor:"pointer"},children:[t,f&&!x&&(0,n.jsx)("span",{ref:b,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:u("desktop.quoteReplyHint")}),z]})}function ok(e){let{code:t,lang:r,headerAction:i,isStreaming:o}=e,{t:a}=(0,J.s)(),[l,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1);return(0,n.jsxs)("div",{className:"markdown-code-block",onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,n.jsxs)("div",{className:"markdown-code-actions",style:{position:"absolute",top:6,right:8,zIndex:1,display:"flex",alignItems:"center",gap:6,opacity:+!!c,pointerEvents:c?"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:r||a("desktop.markdownPlainText")}),i,(0,n.jsx)("button",{onClick:()=>{i9(t).then(()=>{d(!0),setTimeout(()=>d(!1),1500)})},title:a(l?"desktop.copied":"desktop.copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,border:"none",borderRadius:5,background:"transparent",color:l?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:10,transition:"color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:l?(0,n.jsx)(q.J,{size:11,"aria-hidden":"true"}):(0,n.jsx)(V.Q,{size:11,"aria-hidden":"true"})})]}),o?(0,n.jsx)("pre",{className:"markdown-code-streaming",children:(0,n.jsx)("code",{children:t})}):(0,n.jsx)(s8.A,{language:r||"text",style:i7,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:t})]})}var oj=r(73620);let ow=/^(?:\uFEFF)?---[ \t]*(?:\r\n|\n|\r)/;function oS(e){return function e(t,r){if(null==t)return"";if("string"==typeof t)return t;if("number"==typeof t||"boolean"==typeof t)return String(t);if(Array.isArray(t)){if(r.has(t))return"[Circular]";r.add(t);try{return t.map(t=>e(t,r)).filter(Boolean).join(", ")}finally{r.delete(t)}}if("object"==typeof t)try{return JSON.stringify(t)??Object.prototype.toString.call(t)}catch{return Object.prototype.toString.call(t)}return String(t)}(e,new WeakSet)}let oC=["tags","categories","keywords","tag","category"];function oz(e){var t;let{data:r}=e;if(!r)return null;let s=Object.entries(r);if(0===s.length)return null;let i="string"==typeof(t=r.title)?t.trim()||null:"number"==typeof t||"boolean"==typeof t?String(t):null,o=oC.find(e=>Array.isArray(r[e])),a=o?r[o].map(oS).filter(Boolean):[],l=s.filter(e=>{let[t]=e;return t!==o&&("title"!==t||!i)});return(0,n.jsxs)("div",{className:"markdown-frontmatter",children:[i&&(0,n.jsx)("div",{className:"markdown-frontmatter-title",children:i}),a.length>0&&(0,n.jsx)("div",{className:"markdown-frontmatter-tags",children:a.map((e,t)=>(0,n.jsx)("span",{className:"markdown-frontmatter-tag",children:e},`${e}-${t}`))}),l.length>0&&(0,n.jsx)("dl",{className:"markdown-frontmatter-rows",children:l.map(e=>{let[t,r]=e;return(0,n.jsxs)("div",{className:"markdown-frontmatter-row",children:[(0,n.jsx)("dt",{children:t}),(0,n.jsx)("dd",{children:function(e){let t=oS(e);return t?"string"==typeof e&&/^(https?:\/\/|mailto:)/i.test(e)?(0,n.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:t}):t:null}(r)})]},t)})})]})}function oT(e){let t,r=[],n=null,s=0,i=0,o=0,a=0,l=[],d=[],c=()=>({lineNo:null,text:"",type:"empty"}),u=()=>{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(),r=d[t]?{lineNo:d[t].lineNo,text:d[t].text,type:"added"}:c();n.rows.push({type:"line",left:e,right:r})}l=[],d=[]};for(let c of e.split(/\r?\n/)){if(!(o>0||a>0)){if(c.startsWith("--- ")){u(),t=oR(c.slice(4));continue}if(c.startsWith("+++ ")){u(),n={oldPath:t,newPath:oR(c.slice(4)),rows:[]},r.push(n);continue}}let e=c.match(/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);if(e){n||(n={rows:[]},r.push(n)),u(),s=Number(e[1]),i=Number(e[3]),o=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("\\ ")){u(),n.rows.push({type:"hunk",text:c});continue}if(0===o&&0===a){""!==c&&n.rows.push({type:"hunk",text:c});continue}let p=c[0],h=c.slice(1);" "===p?(u(),n.rows.push({type:"line",left:{lineNo:s++,text:h,type:"context"},right:{lineNo:i++,text:h,type:"context"}}),o>0&&o--,a>0&&a--):"-"===p?(l.push({lineNo:s++,text:h}),o>0&&o--):"+"===p?(d.push({lineNo:i++,text:h}),a>0&&a--):""!==c&&(u(),n.rows.push({type:"hunk",text:c}))}u();let p=r.filter(e=>e.rows.some(e=>"line"===e.type));return p.length>0?p:null}function oR(e){return e.split(" ")[0].trim()}function oI(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function oN(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let r=t.getRangeAt(0);if(!e.contains(r.startContainer)||!e.contains(r.endContainer))return null;let n=Number(oI(r.startContainer)?.dataset.lineNumber),s=Number(oI(r.endContainer)?.dataset.lineNumber);return Number.isInteger(n)&&Number.isInteger(s)?n<=s?{startLine:n,endLine:s}:{startLine:s,endLine:n}:null}function oM(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=t$(e),i=new URLSearchParams({type:t});for(let[e,t]of(r&&i.set("sessionId",r),Object.entries(n)))void 0!==t&&i.set(e,String(t));return`/api/files/${s}?${i.toString()}`}function oE(e){let{filePath:t,sourceSessionId:r}=e,{t:s}=(0,J.s)();return(0,n.jsx)("a",{href:oM(t,"download",r),download:tL(t),title:s("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)(tt.z,{size:11,"aria-hidden":"true"})})}let o$={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,tabSize:2},oL={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,padding:"12px 0 12px 16px",color:"var(--text-dim)",textAlign:"right",userSelect:"none"};async function oW(e,t){let r=await fetch(`/api/files/${t$(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error??`HTTP ${r.status}`);let n=await r.json();return"number"==typeof n.size?n.size:0}let oA={delete:"3px solid var(--git-status-deleted)",add:"3px solid var(--git-status-added)",edit:"3px solid var(--git-status-modified)"},oP="var(--git-status-deleted-bg)",oF="var(--git-status-added-bg)",oD="var(--git-status-added)";function oO(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function oH(e){let{oldContent:t,newContent:r}=e,{t:s}=(0,J.s)(),i=function(e,t){let r=e.length,n=t.length,s=r+n,i=Array(2*s+1).fill(0),o=[];for(let a=0;a<=s;a++){o.push([...i]);for(let l=-a;l<=a;l+=2){let d,c=(d=l===-a||l!==a&&i[l-1+s]<i[l+1+s]?i[l+1+s]:i[l-1+s]+1)-l;for(;d<r&&c<n&&e[d]===t[c];)d++,c++;if(i[l+s]=d,d>=r&&c>=n){let i=[],l=r,d=n;for(let r=a;r>0;r--){let n,a=o[r-1],c=l-d;n=c===-r||c!==r&&a[c-1+s]<a[c+1+s]?c+1:c-1;let u=a[n+s],p=u-n;for(;l>u&&d>p;)l--,d--,i.unshift({type:"unchanged",text:e[l]});r>0&&(l>u?(l--,i.unshift({type:"removed",text:e[l]})):(d--,i.unshift({type:"added",text:t[d]})))}for(;l>0&&d>0;)l--,d--,i.unshift({type:"unchanged",text:e[l]});return i}}}return[...e.map(e=>({type:"removed",text:e})),...t.map(e=>({type:"added",text:e}))]}(t.split("\n"),r.split("\n"));if(!i.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:s("desktop.noChanges")});let o=new Set(i.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),a=new Set;for(let e of o)for(let t=Math.max(0,e-3);t<=Math.min(i.length-1,e+3);t++)a.add(t);let l=[],d=0;for(;d<i.length;)if(a.has(d)){let e=[];for(;d<i.length&&a.has(d);)e.push(i[d]),d++;l.push({hidden:!1,lines:e})}else{let e=0;for(;d<i.length&&!a.has(d);)e++,d++;l.push({hidden:!0,count:e})}let c=[],u=1;for(let e of i)"removed"===e.type?c.push(0):c.push(u++);let p=0;return(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,minWidth:"max-content"},children:l.map((e,t)=>{if(e.hidden){let 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:s("desktop.unchangedLines",{count:e.count})},t);return p+=e.count,r}let r=[],i=[],o=[],a=()=>{if(i.length||o.length){let e=i.length&&o.length?"edit":i.length?"delete":"add";for(let t of i)r.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of o)r.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});i=[],o=[]}};e.lines.forEach((e,n)=>{"unchanged"===e.type?(a(),r.push({key:`${t}:${n}`,kind:"context",text:e.text,lineNo:c[p+n],block:null})):"removed"===e.type?i.push({key:`${t}:${n}`,text:e.text}):o.push({key:`${t}:${n}`,text:e.text,lineNo:c[p+n]})}),a();let l=r.map(e=>{let t="removed"===e.kind?oP:"added"===e.kind?oF:"transparent",r=e.block?oA[e.block]:"3px solid transparent",s="added"===e.kind?oD:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:s,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 oB(e){let{patch:t}=e,r=oT(t);if(!r)return null;let s=[],i=[],o=[],a=()=>{if(i.length||o.length){let e=i.length&&o.length?"edit":i.length?"delete":"add";for(let t of i)s.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of o)s.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});i=[],o=[]}};return r.forEach((e,t)=>{e.rows.forEach((e,r)=>{if("hunk"===e.type){a(),s.push({key:`${t}:${r}:h`,kind:"hunk",text:e.text,lineNo:null,block:null});return}let{left:n,right:l}=e;if("context"===n.type&&"context"===l.type){a(),s.push({key:`${t}:${r}:c`,kind:"context",text:n.text,lineNo:l.lineNo,block:null});return}"removed"===n.type&&i.push({key:`${t}:${r}:l`,text:n.text}),"added"===l.type&&o.push({key:`${t}:${r}:r`,text:l.text,lineNo:l.lineNo})})}),a(),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:"max-content"},children:s.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?oP:"added"===e.kind?oF:"transparent",r=e.block?oA[e.block]:"3px solid transparent",s="added"===e.kind?oD:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{width:44,flexShrink:0,padding:"0 8px 0 16px",textAlign:"right",color:s,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 oU(e){let{filePath:t,cwd:r,sourceSessionId:i}=e,{t:o}=(0,J.s)(),[a,l]=(0,s.useState)(0),[d,c]=(0,s.useState)(null),[u,p]=(0,s.useState)(null),[h,x]=(0,s.useState)(null),g=(0,s.useRef)(null),f=tL(t).toLowerCase().split(".").pop()??"";(0,s.useEffect)(()=>{l(0),c(null),p(null),x(null),g.current&&(g.current.close(),g.current=null);let e=new EventSource(oM(t,"watch",i));return g.current=e,e.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&c(t.size)}catch{}l(e=>e+1)}),()=>{e.close(),g.current=null}},[t,i]);let m=oM(t,"read",i,a?{v:a}:void 0),v=null!=d?oO(d):null;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:t,children:tW(t,r)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:f||o("desktop.image")}),u&&(0,n.jsxs)("span",{children:[u.w," \xd7 ",u.h]}),v&&(0,n.jsx)("span",{children:v}),(0,n.jsx)(oE,{filePath:t,sourceSessionId:i})]}),(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:h?(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13},children:h}):(0,n.jsx)("img",{src:m,alt:t,onLoad:e=>{let t=e.currentTarget;p({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>x(o("desktop.failedToLoadImage")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function o_(e){let{filePath:t,cwd:r,sourceSessionId:i}=e,{t:o}=(0,J.s)(),[a,l]=(0,s.useState)(0),[d,c]=(0,s.useState)(null),[u,p]=(0,s.useState)(null),[h,x]=(0,s.useState)(null),g=(0,s.useRef)(null),f=tL(t).toLowerCase().split(".").pop()??"";(0,s.useEffect)(()=>{l(0),c(null),p(null),x(null),g.current&&(g.current.close(),g.current=null);let e=new EventSource(oM(t,"watch",i));return g.current=e,e.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&c(t.size)}catch{}p(null),x(null),l(e=>e+1)}),()=>{e.close(),g.current=null}},[t,i]);let m=oM(t,"read",i,a?{v:a}:void 0);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:t,children:tW(t,r)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:f||o("desktop.audio")}),null!=u&&(0,n.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),r=Math.floor(t/60);return`${r}:${String(t%60).padStart(2,"0")}`}(u)}),null!=d&&(0,n.jsx)("span",{children:oO(d)}),(0,n.jsx)(oE,{filePath:t,sourceSessionId:i})]}),(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:[h&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13,marginBottom:12,textAlign:"center"},children:h}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:m,onLoadedMetadata:e=>p(e.currentTarget.duration),onError:()=>x(o("desktop.failedToLoadAudio")),style:{width:"100%"}},m)]})})]})}function oK(e){let{filePath:t,cwd:r,sourceSessionId:i,initialPage:o}=e,{t:a}=(0,J.s)(),[l,d]=(0,s.useState)(0),[c,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(null),x=(0,s.useRef)(null),g=iW(t),f="pdf"===g,m=f&&o&&o>0?`#page=${o}`:"",v=f?`${oM(t,"read",i,l?{v:l}:void 0)}${m}`:oM(t,"preview",i,l?{v:l}:void 0);return(0,s.useEffect)(()=>{d(0),u(null),h(null),x.current&&(x.current.close(),x.current=null),fetch(oM(t,"meta",i)).then(e=>e.json()).then(e=>{e.error&&h(e.error),"number"==typeof e.size&&(u(e.size),!f&&e.size>0xa00000&&h(a("desktop.docxTooLargeForPreview")))}).catch(e=>h(String(e)));let e=new EventSource(oM(t,"watch",i));return x.current=e,e.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(u(t.size),!f&&t.size>0xa00000))return void h(a("desktop.docxTooLargeForPreview"))}catch{}h(null),d(e=>e+1)}),()=>{e.close(),x.current=null}},[t,f,i,a]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:t,children:tW(t,r)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===g?a("desktop.docxPreview"):"pdf"}),null!=c&&(0,n.jsx)("span",{children:oO(c)}),(0,n.jsx)(oE,{filePath:t,sourceSessionId:i})]}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:p?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"var(--status-error)",fontSize:13,textAlign:"center"},children:p}):(0,n.jsx)("iframe",{src:v,sandbox:f?void 0:"allow-same-origin",title:a("desktop.previewFile",{file:tL(t)}),style:{width:"100%",height:"100%",border:"none",background:f?"var(--bg)":"#eef1f5"}},v)})]})}function oq(e){let t,{filePath:r,cwd:s,sourceSessionId:i,onOpenFile:o,onAtMention:a,onMentionLines:l,initialDisplayMode:d,initialPage:c,onFileSaved:u}=e;return null!==(i$[iW(r)]??null)?(0,n.jsx)(oU,{filePath:r,cwd:s,sourceSessionId:i}):null!==(iL[iW(r)]??null)?(0,n.jsx)(o_,{filePath:r,cwd:s,sourceSessionId:i}):null!==("pdf"===(t=iW(r))||"docx"===t?t:null)?(0,n.jsx)(oK,{filePath:r,cwd:s,sourceSessionId:i,initialPage:c}):(0,n.jsx)(oV,{filePath:r,cwd:s,sourceSessionId:i,onOpenFile:o,onAtMention:a,onMentionLines:l,initialDisplayMode:d,onFileSaved:u})}function oV(e){let t,r,{filePath:i,cwd:o,sourceSessionId:a,onOpenFile:l,onAtMention:d,onMentionLines:c,initialDisplayMode:u,onFileSaved:p}=e,{t:h}=(0,J.s)(),[x,g]=(0,s.useState)(null),[f,m]=(0,s.useState)(null),[v,y]=(0,s.useState)(null),[b,k]=(0,s.useState)(!0),[j,w]=(0,s.useState)(!1),[S,C]=(0,s.useState)(null),[z,T]=(0,s.useState)(!1),[R,I]=(0,s.useState)("source"),[N,M]=(0,s.useState)(!1),[E,$]=(0,s.useState)(0),[L,W]=(0,s.useState)(null),A=(0,s.useRef)(null),P=(0,s.useRef)(null),[F,D]=(0,s.useState)(!1),[O,H]=(0,s.useState)(""),[B,U]=(0,s.useState)(""),[_,K]=(0,s.useState)(!1),[q,V]=(0,s.useState)(null),[G,Y]=(0,s.useState)(!1),X=(0,s.useRef)(null),Z=(0,s.useRef)(null),Q=(0,s.useRef)(0),ee=(0,s.useRef)(!1);(0,s.useEffect)(()=>{ee.current=F},[F]);let et=F&&O!==B,er=!!(x?.content&&x.content.includes("\0")),en=(0,s.useCallback)(async e=>{if(!o)return void y(null);try{let t=new URLSearchParams({cwd:o,path:e}),r=await fetch(`/api/git/diff?${t.toString()}`),n=await r.json();y(r.ok&&n.supported&&"string"==typeof n.patch?n:null)}catch{y(null)}},[o]),es=(0,s.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return fetch(oM(e,"read",a,r?{offset:r}:void 0)).then(e=>e.json()).then(e=>e.error?(C(e.error),null):(t?(g(t=>(t&&m(t.content),e)),$(e=>e+1)):r?g(t=>t?{...e,content:t.content+e.content}:e):g(e),e)).catch(e=>(C(String(e)),null))},[a]);(0,s.useEffect)(()=>{k(!0),C(null),g(null),m(null),y(null),T(!1),I("source"),M(!1),$(0),D(!1),H(""),U(""),V(null),Y(!1),K(!1),A.current&&(A.current.close(),A.current=null),es(i).then(e=>{e?.truncated||e?.language!=="markdown"&&e?.language!=="html"||"diff"===u||T(!0)}).finally(()=>k(!1)),en(i);let e=new EventSource(oM(i,"watch",a));return A.current=e,e.addEventListener("change",()=>{ee.current?Y(!0):(es(i,!0),en(i))}),()=>{e.close(),A.current=null}},[i,es,en,u,a]);let ei=(0,s.useCallback)(()=>{x&&!er&&(H(x.content),U(x.content),V(null),Y(!1),D(!0))},[x,er]),eo=(0,s.useCallback)(()=>{D(!1),H(""),U(""),V(null),Y(!1)},[]),ea=(0,s.useCallback)(()=>{(!et||window.confirm(h("files.unsavedChanges")))&&eo()},[et,eo,h]),el=(0,s.useCallback)(async()=>{if(!x||_)return;let e=++Q.current;K(!0),V(null);try{let t=await oW(i,O);if(e!==Q.current)return;g(e=>e?{...e,content:O,size:t}:e),U(O),K(!1),eo(),en(i),p?.()}catch(t){if(e!==Q.current)return;V(t instanceof Error?t.message:String(t)),K(!1)}},[x,_,O,i,eo,en,p]);(0,s.useEffect)(()=>{if(!F)return;let e=e=>{if((e.metaKey||e.ctrlKey)&&"s"===e.key.toLowerCase()){e.preventDefault(),el();return}"Escape"===e.key&&(e.preventDefault(),ea())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[F,el,ea]),(0,s.useEffect)(()=>{if(!et)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[et]);let ed=(0,s.useCallback)(()=>{let e=X.current,t=Z.current;e&&t&&(t.scrollTop=e.scrollTop)},[]),ec=(0,s.useCallback)(e=>{if("Tab"!==e.key||e.metaKey||e.ctrlKey||e.altKey)return;e.preventDefault();let t=e.currentTarget,{selectionStart:r,selectionEnd:n}=t;H(t.value.slice(0,r)+" "+t.value.slice(n)),requestAnimationFrame(()=>{let e=X.current;if(!e)return;let t=r+2;e.selectionStart=t,e.selectionEnd=t})},[]),eu=(0,s.useMemo)(()=>x?.language==="markdown"?function(e){let t=function(e){let t=ow.exec(e);if(!t)return null;let r=/^---[ \t]*(?:(?:\r\n|\n|\r)|$)/gm;r.lastIndex=t[0].length;let n=r.exec(e);return n?{yaml:e.slice(t[0].length,n.index).replace(/(?:\r\n|\n|\r)$/,""),rest:e.slice(n.index+n[0].length)}:null}(e);if(!t)return{data:null,rest:e};try{let e=(0,oj.Hh)(t.yaml);if(e&&"object"==typeof e&&!Array.isArray(e))return{data:e,rest:t.rest}}catch{}return{data:null,rest:t.rest}}(x.content):null,[x?.content,x?.language]),ep=(0,s.useMemo)(()=>i2(eu?.rest??x?.content??""),[x?.content,eu]),eh=v?.supported===!0&&"string"==typeof v.patch;(0,s.useEffect)(()=>{"diff"===u&&eh&&I("diff")},[eh,u]);let ex=eh&&v?.status==="deleted",eg=(0,s.useCallback)(e=>{c&&e&&c(tW(i,o),e.startLine,e.endLine)},[o,i,c]);if((0,s.useEffect)(()=>{let e=()=>{let e=P.current,t="source"===R&&!z;W(c&&t&&e?oN(e,window.getSelection()):null)};if(e(),c&&"source"===R&&!z)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[x?.content,c,z,R]),(0,s.useEffect)(()=>{if(!c||"source"!==R||z)return;let e=e=>{if(e.repeat||"i"!==e.key.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.target;if(t instanceof Element&&t.closest("input, textarea, [contenteditable='true']"))return;let r=P.current,n=r?oN(r,window.getSelection()):null;n&&(e.preventDefault(),eg(n))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[eg,c,z,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(ex&&!x)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:i,children:tW(i,o)}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)"},children:(0,n.jsx)(oB,{patch:v.patch})})]});if(S)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--status-error)",fontSize:13},children:S});if(!x)return null;let ef="html"===x.language,em="markdown"===x.language,ev=(r=(t=tE(i).replace(/\/+$/,"")).lastIndexOf("/"))<0?"":0===r?"/":2===r&&/^[a-zA-Z]:\//.test(t)?t.slice(0,3):t.slice(0,r),ey=x.content.split("\n"),eb=null!==f&&f!==x.content||eh,ek=!ex&&!er&&tB();return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:i,children:tW(i,o)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x.language}),"source"===R&&!F&&(0,n.jsx)("span",{children:h("desktop.lines",{count:ey.length})}),(0,n.jsx)("span",{children:oO(x.size)}),eb&&!F&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>I("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:()=>I("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")," ",E>0&&(0,n.jsxs)("span",{style:{color:"var(--git-status-added)",marginLeft:2},children:["+",E]})]})]}),"source"===R&&!z&&!F&&(0,n.jsx)("button",{onClick:()=>M(e=>!e),title:N?h("desktop.disableWordWrap"):h("desktop.enableWordWrap"),style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:N?"var(--bg-selected)":"var(--bg-hover)",color:N?"var(--text)":"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:N?600:400},children:h("desktop.wrap")}),ef&&"source"===R&&!F&&(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:z?"var(--bg-hover)":"var(--bg-selected)",color:z?"var(--text-muted)":"var(--text)",fontWeight:z?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:z?"var(--bg-selected)":"var(--bg-hover)",color:z?"var(--text)":"var(--text-muted)",fontWeight:z?600:400},children:h("desktop.preview")})]}),em&&"source"===R&&!F&&(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:z?"var(--bg-selected)":"var(--bg-hover)",color:z?"var(--text)":"var(--text-muted)",fontWeight:z?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:z?"var(--bg-hover)":"var(--bg-selected)",color:z?"var(--text-muted)":"var(--text)",fontWeight:z?400:600},children:h("desktop.raw")})]}),F?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>void el(),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)(s3.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)(eP.X,{size:13,"aria-hidden":"true"})})]}):"source"===R&&ek?(0,n.jsx)("button",{type:"button",onClick:ei,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)(eZ.I,{size:13,"aria-hidden":"true"})}):null,(d||c)&&!F&&(0,n.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{L&&c?eg(L):d?.(tW(i,o),!1)},title:L?h("desktop.mentionSelectedLines",{start:L.startLine,end:L.endLine}):h("desktop.mentionFile"),"aria-label":L?h("desktop.mentionSelectedLines",{start:L.startLine,end:L.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:"@"}),!F&&(0,n.jsx)(oE,{filePath:i,sourceSessionId:a})]}),x?.truncated&&"source"===R&&!F&&(0,n.jsxs)("div",{className:"file-viewer-load-more",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:10,padding:"5px 8px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:[(0,n.jsxs)("span",{children:[oO(x.nextOffset)," / ",oO(x.size)]}),(0,n.jsx)("button",{type:"button",disabled:j,onClick:()=>{w(!0),es(i,!1,x.nextOffset).finally(()=>w(!1))},style:{padding:"2px 10px",fontSize:11,cursor:"pointer",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-hover)",color:"var(--text)",opacity:j?.6:1},children:j?h("i18n.loading"):h("i18n.loadMore")})]}),(0,n.jsx)("div",{ref:P,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:F?(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:()=>{(!et||window.confirm(h("files.reloadOverwriteConfirm")))&&es(i).then(e=>{e&&(H(e.content),U(e.content),Y(!1))})},disabled:_,style:{padding:"2px 8px",fontSize:11,border:"1px solid #d6a84b",borderRadius:4,background:"transparent",color:"#d6a84b",cursor:"pointer"},children:h("files.reload")})]}),q&&(0,n.jsx)("div",{style:{padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(248,113,113,0.14)",color:"var(--status-error)",fontSize:11,flexShrink:0},children:h("files.saveFailed",{error:q})}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,n.jsx)("div",{ref:Z,"aria-hidden":"true",style:{...oL,height:"100%",overflow:"hidden",whiteSpace:"pre",pointerEvents:"none"},children:O.split("\n").map((e,t)=>`${t+1}
|
|
29
|
+
`).join("")}),(0,n.jsx)("textarea",{ref:X,className:"file-editor-textarea",value:O,onChange:e=>H(e.target.value),onScroll:ed,onKeyDown:ec,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)",...o$,whiteSpace:"pre",overflow:"auto",padding:0,tabSize:2}})]})]}):"diff"===R&&eb?eh?(0,n.jsx)(oB,{patch:v.patch}):(0,n.jsx)(oH,{oldContent:f,newContent:x.content}):ef&&z?(0,n.jsx)("iframe",{srcDoc:x.content,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:h("desktop.htmlPreview")}):em&&z?(0,n.jsxs)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:[eu?.data&&(0,n.jsx)(oz,{data:eu.data}),(0,n.jsx)(iE.oz,{remarkPlugins:i3,rehypePlugins:i8,urlTransform:iZ,components:{h1(e){let{children:t}=e;return(0,n.jsx)("h1",{id:i0(t),children:t})},h2(e){let{children:t}=e;return(0,n.jsx)("h2",{id:i0(t),children:t})},h3(e){let{children:t}=e;return(0,n.jsx)("h3",{id:i0(t),children:t})},code(e){let{className:t,children:r,...s}=e,i=t?.replace("language-","").toLowerCase()??"",o=String(r);return t?.includes("language-")||o.includes("\n")?"mermaid"===i?(0,n.jsx)(ov,{code:o.replace(/\n$/,"")}):(0,n.jsx)(ok,{code:o.replace(/\n$/,""),lang:i}):(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)",...s,children:r})},pre(e){let{children:t}=e;return(0,n.jsx)(n.Fragment,{children:t})},a(e){let{href:t,children:r,...s}=e;delete s.node;let i="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",a=l?iD(t,ev,o??ev):null;return a&&l?(0,n.jsx)("a",{href:t,...s,className:i,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let r=e.currentTarget.getAttribute("target");r&&"_self"!==r||(e.preventDefault(),l(a,iH(t)??void 0))},children:r}):(0,n.jsx)("a",{href:t,...s,className:i,target:"_blank",rel:"noopener noreferrer",children:r})},table(e){let{children:t}=e;return(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:t})})})}},children:ep})]}):(0,n.jsx)(s8.A,{language:"text"===x.language?"plaintext":x.language,style:i7,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:N,children:x.content})})]})}var oJ=r(68635);function oG(e){return Math.ceil(e.getBoundingClientRect().height)}function oY(e){let{scrollElementRef:t,items:r,itemKeys:i,estimateSize:o=120,overscan:a=8,virtualizerRef:l,headerHeight:d=0}=e,c=(0,s.useRef)(null),u=(0,s.useRef)(i),[p,h]=(0,s.useState)(null);(0,s.useEffect)(()=>{h(t.current)},[t]);let x=(0,oJ.Te)({count:r.length,getScrollElement:()=>p??t.current,estimateSize:(0,s.useCallback)(()=>o,[o]),overscan:a,getItemKey:(0,s.useCallback)(e=>i[e]??`idx-${e}`,[i]),scrollMargin:d,measureElement:(e,t,r)=>{let n=r.indexFromElement(e),s=e.getAttribute("data-item-key"),i=r.options.getItemKey(n),a=c.current;return a&&e.isConnected&&e.parentElement===a&&s===i&&s===u.current[n]&&a.getClientRects().length?oG(e):r.itemSizeCache.get(i)??o}});x.shouldAdjustScrollPositionOnItemSizeChange=()=>!1,l&&(l.current=x);let g=(0,s.useCallback)(()=>{let e=c.current;if(e)for(let{index:t,size:r}of function(e,t){if(!e.isConnected||0===e.getClientRects().length)return[];let r=[];for(let n of Array.from(e.children)){let e=Number(n.getAttribute("data-index"));n.isConnected&&Number.isInteger(e)&&!(e<0)&&!(e>=t.length)&&n.getAttribute("data-item-key")===t[e]&&r.push({index:e,size:oG(n)})}return r}(e,u.current))x.options.getItemKey(t)===u.current[t]&&x.resizeItem(t,r)},[x]);(0,s.useLayoutEffect)(()=>{u.current=i,g()},[i,r,g]),(0,s.useEffect)(()=>{let e=c.current;if(!e)return;let t=new MutationObserver(t=>{t.some(t=>"attributes"!==t.type||t.target!==e&&t.target.parentNode!==e)&&g()});t.observe(e,{childList:!0,characterData:!0,subtree:!0,attributes:!0,attributeFilter:["class","style","hidden","open","src","width","height"]});let r=()=>{"visible"===document.visibilityState&&g()};return document.addEventListener("visibilitychange",r),e.addEventListener("load",g,!0),()=>{t.disconnect(),document.removeEventListener("visibilitychange",r),e.removeEventListener("load",g,!0)}},[g]);let f=(0,s.useRef)(!1),m=(0,s.useRef)(x);m.current=x,(0,s.useEffect)(()=>{f.current||0===r.length||p&&(f.current=!0,m.current.scrollToIndex(r.length-1,{align:"end"}))},[r.length,p]);let v=x.getVirtualItems();return(0,n.jsx)("div",{ref:c,className:"virtualized-message-list",style:{position:"relative",width:"100%",minWidth:0,height:x.getTotalSize()},children:v.map(e=>(0,n.jsx)("div",{"data-index":e.index,"data-item-key":e.key,ref:x.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",minWidth:0,overflow:"clip",transform:`translateY(${e.start-d}px)`},children:r[e.index]},e.key))})}let oX=/^<skill name="([^"]+)" location="([^"]+)">/,oZ="\n</skill>";function oQ(e){return"user"===e.role||"custom"===e.role&&("compaction"===e.customType||"pi-web:subagent-notification"===e.customType)}function o0(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.isStreaming||"error"!==e.stopReason?null:e.errorMessage?.trim()||"Unknown provider error"}function o1(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function o2(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(e.content??[]).filter(e=>!o1(e,t))}function o6(e){return"text"===e.type||"image"===e.type}function o4(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=o2(e,t),n=r.findLastIndex(e=>"toolCall"===e.type);return{answerBlocks:r.filter((e,t)=>o6(e)&&t>n),processBlocks:r.filter((e,t)=>!o6(e)||t<=n)}}let o5="pi-process-display-mode-v2",o3="tabs",o8="pi-process-display-mode-change";function o7(){try{let e=window.sessionStorage.getItem(o5);return"timeline"===e||"tabs"===e?e:o3}catch{return o3}}function o9(e){return window.addEventListener(o8,e),()=>window.removeEventListener(o8,e)}function ae(){return o3}function at(e,t){if(!e)return!1;let r=new Set(t.map(e=>e.toLowerCase()));return Object.keys(e).some(e=>r.has(e.toLowerCase()))}function ar(e,t){if(!e)return;let r=new Set(t.map(e=>e.toLowerCase()));for(let[t,n]of Object.entries(e)){if(!r.has(t.toLowerCase())||"string"!=typeof n)continue;let e=n.trim();if(e)return e}}function an(e){return"object"==typeof e&&null!==e?e:{}}function as(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 ai(e){if(0!==e.length)return 1===new Set(e).size?e[0]:"edit"}function ao(e){if(Array.isArray(e))return ai(e.map(e=>as(an(e).type||an(e).status||an(e).changeType)).filter(e=>!!e))}function aa(e){if(!e)return;let t=(e.match(/^\*\*\* Add File:/gm)||[]).length,r=(e.match(/^\*\*\* Delete File:/gm)||[]).length,n=(e.match(/^\*\*\* (Update File|Move to):/gm)||[]).length;if(t||r||n){let e=[];if(t)for(let r=0;r<t;r++)e.push("create");if(r)for(let t=0;t<r;t++)e.push("delete");if(n)for(let t=0;t<n;t++)e.push("edit");return ai(e)}return/^@@ -0,0 \+\d+/m.test(e)?"create":/^@@ -\d+(?:,\d+)? \+0,0/m.test(e)?"delete":void 0}function al(e){let t=ar(e.args,["path","file","filePath","filepath"]);if(t)return t;let r=ar(e.metadata,["relativePath","filePath","filepath","path","file"]);if(r)return r;let n=ar(Array.isArray(e.metadata?.files)?an(e.metadata.files[0]):{},["relativePath","filePath","filepath","path","file"]);if(n)return n}function ad(e){return e.split(/[\\/]/).filter(Boolean).pop()||e}let ac=new Set(["cd","chdir","pwd","echo","set","export","source",".","pushd","popd","dirs"]),au=new Set(["timeout"]),ap=new Set(["ls","dir","ll","la","l","tree","eza","exa"]),ah=new Set(["rg","grep","egrep","fgrep","ack","ag","ripgrep"]),ax=new Set(["find","fd","fdfind","locate","mlocate","glob"]),ag=new Set(["cat","head","tail","less","more","bat","nl","wc"]),af=new Set(["curl","wget","fetch","http","xh","httpx"]),am=new Set(["rm","del","rmdir","unlink","erase"]),av=new Set(["cp","mv","copy","move","rename","ren"]);var ay=r(36705),ab=r(94366),ak=r(66129),aj=r(2152),aw=r(8727),aS=r(60721),aC=r(47208),az=r(95951),aT=r(29886),aR=r(86756);function aI(e,t){var r,n,s;let i,o,a,l,d,c,u,p,h,x="string"==typeof(l=e.input.label)&&l.trim()?l:e.toolName;if("error"===e.status)return{displayLabel:x,iconName:"warning",tone:void 0};let g=(d=[(n=r={toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0}).toolName,n.title,n.label].filter(Boolean).join("\n").toLowerCase(),c=at(r.args,["path","file","filePath","filepath"]),u=at(r.args,["content","oldString","old_string","newString","new_string","patch","diff","edits","text"]),p=at(r.args,["command","cmd","script"]),h=at(r.args,["pattern","query"]),p||/\b(bash|shell|terminal|command|run|exec|execute|python|node|npm|pnpm|yarn|cargo|go|pytest|test|build|make|git|docker|kubectl|curl|wget)\b/i.test(d)?"command_execution":/\b(todo|todowrite|todo_write|write_todo|task_list|task\s*list)\b/i.test(d)?"todo_update":/\b(edit|write|patch|apply|modify|replace|update|create|delete|remove|insert|rename|move)\b/i.test(d)||c&&u?"document_change":"ls"===(i=r.toolName.toLowerCase())||"list"===i||"dir"===i||i.startsWith("list_")||i.endsWith("_list")||i.includes("list_directory")||i.includes("list_dir")||/\b(ls|list\s*directory|list\s*dir|dir\s*list|listdir)\b/i.test(d)?"directory_list":"find"===(o=r.toolName.toLowerCase())||"glob"===o||"scan"===o||o.includes("file_search")||o.includes("file_find")||o.startsWith("find_")||o.startsWith("glob_")||o.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=r.toolName.toLowerCase()).includes("grep")||a.includes("search")||a.includes("fuzzy")||a.includes("ripgrep")||h&&!u&&!p?"document_search":/\b(read|view|open|cat|show|display)\b/i.test(d)||c&&!u&&!p?"document_read":void 0),f="toolbox";if("document_change"===g){let r,n,i,o=(n=an((r=(s={toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0}).metadata||{}).filediff),i=function(e){if(!e)return{};try{return an(JSON.parse(e))}catch{return{}}}(s.result),ao(r.files)??ao(i.files)??as(r.type||r.status||r.changeType)??(!1===r.exists?"create":void 0)??(!0===r.exists?"edit":void 0)??aa("string"==typeof r.diff?r.diff:"")??aa("string"==typeof r.patch?r.patch:"")??aa("string"==typeof n.patch?n.patch:"")??aa("string"==typeof s.args?.patchText?s.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 ai(t.map(e=>e.startsWith("A ")?"create":e.startsWith("D ")?"delete":"edit"))}(s.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 s.args?.command?s.args.command:void 0)??"edit");f="create"===o?"filePlus":"delete"===o?"trash":"pencilSimpleLine";let a=t("create"===o?"desktop.processStepFileCreate":"delete"===o?"desktop.processStepFileDelete":"desktop.processStepFileEdit"),l=al({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} ${ad(l)}`,iconName:f,target:l,tone:g,typeLabel:a}:{displayLabel:`${a}: ${x}`.slice(0,100),iconName:f,tone:g,typeLabel:a}}if("document_read"===g){f="bookOpen";let r=t("desktop.processStepFileRead"),n=al({toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0});return n?{displayLabel:`${r} ${ad(n)}`,iconName:f,target:n,tone:g,typeLabel:r}:{displayLabel:x,iconName:f,tone:g,typeLabel:r}}if("document_search"===g){f="magnifyingGlass";let r=t("desktop.processStepSearch"),n="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.query?e.input.query:"";return n?{displayLabel:`${r} "${n.slice(0,60)}"`,iconName:f,tone:g,typeLabel:r}:{displayLabel:x,iconName:f,tone:g,typeLabel:r}}if("directory_list"===g){f="folder";let r=t("desktop.processStepList"),n=al({toolName:e.toolName,label:"string"==typeof e.input.label?e.input.label:void 0,args:e.input,result:"string"==typeof e.result?e.result:void 0});return n?{displayLabel:`${r} ${ad(n)}`,iconName:f,target:n,tone:g,typeLabel:r}:{displayLabel:x,iconName:f,tone:g,typeLabel:r}}if("file_find"===g){f="magnifyingGlass";let r=t("desktop.processStepFind"),n="string"==typeof e.input.pattern?e.input.pattern:"string"==typeof e.input.glob?e.input.glob:"";return n?{displayLabel:`${r} "${n.slice(0,60)}"`,iconName:f,tone:g,typeLabel:r}:{displayLabel:x,iconName:f,tone:g,typeLabel:r}}if("command_execution"===g){let r="string"==typeof e.input.command?e.input.command:"string"==typeof e.input.cmd?e.input.cmd:"";if(r){let e=function(e){let t=e.split(/&&|\n|;(?!;)|(?<!\|)\|(?!\|)/),r=e.split(/\s+/)[0]?.replace(/^[.\\/]+/,"")||"sh";for(let e of t){var n;let t=(n=e.trim(),n.match(/"[^"]+"|'[^']+'|\S+/g)?.map(e=>e.replace(/^(["'])(.*)\1$/,"$2"))??[]);if(0===t.length)continue;let r=0;for(;r<t.length&&(ac.has(t[r].toLowerCase())||au.has(t[r].toLowerCase()));){let e=t[r].toLowerCase();if((r+=1)<t.length&&["cd","chdir","pushd"].includes(e)&&(r+=1),"timeout"===e)for(;r<t.length&&(t[r].startsWith("-")||/^\d/.test(t[r]));)r++}if(r>=t.length)continue;let s=t[r].replace(/^[.\\/]+/,"").toLowerCase(),i=s.split(/[/\\]/).pop()||s,o=r+1;for(;o<t.length&&t[o].startsWith("-");)o+=1;let a=o<t.length?t[o]:void 0;if(ap.has(i))return{kind:"list",binary:i,argument:a};if(ah.has(i))return{kind:"search",binary:i,argument:a};if(ax.has(i))return{kind:"find",binary:i,argument:a};if(ag.has(i))return{kind:"read",binary:i,argument:a};if(af.has(i))return{kind:"fetch",binary:i,argument:a};if(am.has(i))return{kind:"delete",binary:i,argument:a};if(av.has(i))return{kind:"copy",binary:i,argument:a};return{kind:"run",binary:i,argument:a}}return{kind:"run",binary:r}}(r);if("list"===e.kind){f="folder";let r=t("desktop.processStepList"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:g,typeLabel:r}}if("search"===e.kind){f="magnifyingGlass";let r=t("desktop.processStepSearch"),n=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:g,typeLabel:r}}if("find"===e.kind){f="magnifyingGlass";let r=t("desktop.processStepFind"),n=e.argument?` "${e.argument.slice(0,60)}"`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:g,typeLabel:r}}if("read"===e.kind){f="bookOpen";let r=t("desktop.processStepRead"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:g,typeLabel:r,target:e.argument||void 0}}if("fetch"===e.kind){f="download";let r=t("desktop.processStepFetch"),n=e.argument?` ${e.argument.slice(0,80)}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:g,typeLabel:r}}if("delete"===e.kind){f="trash";let r=t("desktop.processStepDelete"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:g,typeLabel:r}}if("copy"===e.kind){f="copy";let r=t("desktop.processStepCopy"),n=e.argument?` ${e.argument}`:"";return{displayLabel:`${r}${n}`,iconName:f,tone:g,typeLabel:r}}f="terminal";let n=t("desktop.processStepCommand"),s=e.argument?`${e.binary} ${e.argument.length>60?e.argument.slice(0,57)+"...":e.argument}`:e.binary;return{displayLabel:`${n} ${s}`,iconName:f,tone:g,typeLabel:n}}return{displayLabel:x,iconName:f="terminal",tone:g}}return"todo_update"===g?{displayLabel:x,iconName:f="checklist",tone:g,typeLabel:t("desktop.processStepTodo")}:{displayLabel:x,iconName:f,tone:g}}function aN(e){let{expanded:t}=e;return(0,n.jsx)(e2.J,{size:12,className:`shrink-0 transition-all duration-150 ${t?"rotate-90":""}`})}function aM(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:14;switch(e){case"brain":return(0,n.jsx)(ay.$,{size:t});case"bookOpen":return(0,n.jsx)(ab.R,{size:t});case"magnifyingGlass":return(0,n.jsx)(eY.$,{size:t});case"pencilSimpleLine":return(0,n.jsx)(aC.B,{size:t});case"filePlus":return(0,n.jsx)(tv.u,{size:t});case"trash":return(0,n.jsx)(e3.u,{size:t});case"folder":return(0,n.jsx)(nO.sj,{size:t});case"download":return(0,n.jsx)(tt.e,{size:t});case"copy":return(0,n.jsx)(aj.t,{size:t});case"terminal":return(0,n.jsx)(aT.k,{size:t});case"toolbox":default:return(0,n.jsx)(aR.D,{size:t});case"image":return(0,n.jsx)(aw.x,{size:t});case"listBullets":case"checklist":return(0,n.jsx)(aS.j,{size:t});case"warning":case"circleX":return(0,n.jsx)(nG.M,{size:t})}}function aE(e){let{step:t,ts:r}=e;if("thinking"===t.kind)return aM("brain");if("image"===t.kind)return aM("image");if("custom"===t.kind)return aM("listBullets");if("toolGroup"===t.kind)return aM(t.iconName);let{iconName:n}=aI(t.block,r);return aM(n)}function a$(e){let{targets:t,typeLabel:r,count:s,label:i}=e;if(0===t.length)return(0,n.jsx)("span",{className:"max-w-52 truncate",title:i,children:i});if(2===t.length)return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:r}),(0,n.jsx)(aL,{filePath:t[0]}),(0,n.jsx)(aL,{filePath:t[1]})]});let o=t[0].split(".").pop()?.toLowerCase()||"",a=[],l=new Set([o]);for(let e=1;e<t.length&&a.length<2;e++){let r=t[e].split(".").pop()?.toLowerCase()||"";l.has(r)||(l.add(r),a.push({key:t[e],node:tM(t[e],12)}))}return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:r}),a.length>0&&(0,n.jsx)("span",{className:"shrink-0 inline-flex gap-px",children:a.map(e=>(0,n.jsx)("span",{className:"inline-flex",children:e.node},e.key))}),(0,n.jsx)(aL,{filePath:t[0]}),(0,n.jsxs)("span",{className:"shrink-0 text-[10px] tabular-nums text-text-dim",children:["+",s-1]})]})}function aL(e){let{filePath:t}=e,r=t.split(/[\\/]/).filter(Boolean).pop()||t;return(0,n.jsxs)("span",{className:"process-file-tag",title:t,children:[tM(t,12),(0,n.jsx)("span",{children:r})]})}function aW(e){let{mode:t}=e;return"timeline"===t?(0,n.jsx)(az.D,{size:14}):(0,n.jsx)(ak.j,{size:14})}let aA=(0,s.memo)(function(e){let{block:t,processStyle:r=!0}=e,i=(0,s.useMemo)(()=>({type:"toolCall",toolCallId:t.toolCallId,toolName:t.toolName,input:t.input}),[t.toolCallId,t.toolName,t.input]);return(0,n.jsx)(lw,{block:i,result:t.result,duration:t.duration,processStyle:r})});function aP(e){let t,{step:r,cwd:s,onOpenFile:i,sessionId:o,ts:a,isStreaming:l}=e;if("thinking"===r.kind)return(0,n.jsx)(aF,{blocks:r.blocks,cwd:s,onOpenFile:i,sessionId:o,isStreaming:l});if("tool"===r.kind)return(0,n.jsxs)("div",{className:"space-y-2",children:[r.leadBlocks.length>0&&(0,n.jsx)(aF,{blocks:r.leadBlocks,cwd:s,onOpenFile:i,sessionId:o,isStreaming:l}),(0,n.jsx)(aA,{block:r.block})]});if("toolGroup"===r.kind)return(0,n.jsx)("div",{className:"space-y-2",children:r.blocks.map((e,t)=>(0,n.jsxs)("div",{children:[r.leadBlocks[t]&&r.leadBlocks[t].length>0&&(0,n.jsx)("div",{className:"mb-2",children:(0,n.jsx)(aF,{blocks:r.leadBlocks[t],cwd:s,onOpenFile:i,sessionId:o,isStreaming:l})}),(0,n.jsx)(aA,{block:e})]},e.id))});if("custom"===r.kind)return(0,n.jsx)(lf,{message:r.block.message,cwd:s,onOpenFile:i,isStreaming:l});let d="url"===(t=r.block.source).type?t.url:t.data?`data:${t.media_type??"image/png"};base64,${t.data}`:void 0;return d?(0,n.jsx)("img",{src:d,alt:a("desktop.processOutput"),className:"max-h-72 max-w-full rounded border border-border object-contain"}):null}function aF(e){let{blocks:t,cwd:r,onOpenFile:s,sessionId:i,isStreaming:o}=e;return(0,n.jsx)("div",{className:"space-y-2 pr-2",children:t.map(e=>"text"===e.type?(0,n.jsx)(of,{cwd:r,onOpenFile:s,className:"!text-text-dim",isStreaming:o,children:e.text},e.id):(0,n.jsx)(lk,{block:{type:"thinking",thinking:e.thinking,deferred:e.deferred},sessionId:i,entryId:e.origin.sourceEntryId,blockIndex:e.origin.sourceBlockIndex??0,contentOnly:!0,cwd:r,onOpenFile:s,className:"!text-text-dim",isStreaming:o},e.id))})}function aD(e){let t,{blocks:r,isStreaming:i,defaultExpanded:o=!1,onAutoExpanded:a,cwd:l,onOpenFile:d,sessionId:c,tokenRate:u=null}=e,{t:p}=(0,J.s)(),h=(0,s.useCallback)(e=>p(e),[p]),x=(0,s.useMemo)(()=>(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=[],s=[],i=()=>{0!==s.length&&(n.push({kind:"thinking",id:s.map(e=>e.id).join("+"),label:t("desktop.processStepThinking"),blocks:s}),s=[])};for(let r of e){if("thinking"===r.type||"text"===r.type){s.push(r);continue}if("toolCall"===r.type){let{displayLabel:e}=aI(r,t);n.push({kind:"tool",id:r.id,label:e,block:r,leadBlocks:s}),s=[];continue}i(),"custom"===r.type?n.push({kind:"custom",id:r.id,label:r.customType.replace(/[_-]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()),block:r}):"image"===r.type&&n.push({kind:"image",id:r.id,label:t("desktop.processOutput"),block:r})}i();try{return function(e,t,r){if(e.length<2)return e;let n=[],s=0;for(;s<e.length;){let i,o=e[s];if("tool"!==o.kind||"error"===o.block.status){n.push(o),s++;continue}let a=aI(o.block,t).tone;if(!a){n.push(o),s++;continue}let l=s+1;for(;l<e.length&&"tool"===e[l].kind;){let r=e[l];if("error"===r.block.status||aI(r.block,t).tone!==a)break;l++}if(r&&l===e.length&&l>s+1&&l--,l-s<2){n.push(o),s++;continue}let d=e.slice(s,l),c=d.map(e=>aI(e.block,t)),u=c[0].iconName,p=c[0].typeLabel||"",h=d.map(e=>e.block),x=c.map(e=>e.displayLabel),g=c.map(e=>e.target||""),f=c.map(e=>{if(e.target)return ad(e.target);let t=e.displayLabel;return e.typeLabel&&t.startsWith(e.typeLabel+" ")?t.slice(e.typeLabel.length+1):t}),m=new Set,v=new Set,y=[],b=[];for(let e=0;e<f.length;e++){let t=f[e];m.has(t)||(m.add(t),y.push(t));let r=g[e];r&&!v.has(r)&&(v.add(r),b.push(r))}let k=d.length;i=2===k&&2===y.length?`${p} ${y[0]}, ${y[1]}`:1===y.length?1===k?`${p} ${y[0]}`:`${p} ${y[0]} \xd7${k}`:2===y.length?`${p} ${y[0]}, ${y[1]}`:`${p} ${y[0]} +${y.length-1}`,n.push({kind:"toolGroup",id:h.map(e=>e.id).join("+"),label:i,blocks:h,leadBlocks:d.map(e=>e.leadBlocks),iconName:u,tone:a,typeLabel:p,targetLabels:x,targets:b}),s=l}return n}(n,t,r)}catch(e){return console.error("[ProcessGroup] mergeConsecutiveToolSteps crashed:",e),n}})(r,h,i),[r,h,i]),[g,f]=(0,s.useState)(i||o),[m,v]=(0,s.useState)({}),{displayMode:y,setDisplayMode:b}={displayMode:(0,s.useSyncExternalStore)(o9,o7,ae),setDisplayMode:(0,s.useCallback)(e=>{try{window.sessionStorage.setItem(o5,e)}catch{}window.dispatchEvent(new Event(o8))},[])},[k,j]=(0,s.useState)(0),[w,S]=(0,s.useState)(!1),[C,z]=(0,s.useState)(!1),T=(0,s.useRef)(null),R=(0,s.useRef)(!1),I=(0,s.useRef)(!1),N=(0,s.useRef)(!1),M=(0,s.useRef)(!1),E=(0,s.useRef)(!1),$=(0,s.useRef)(0);(0,s.useEffect)(()=>{if(i){R.current=!0,I.current||f(!0);return}if(!R.current)return;E.current=!1,I.current=!1,v({}),f(!1);let e=window.setTimeout(()=>f(!1),300);return R.current=!1,()=>window.clearTimeout(e)},[i]),(0,s.useEffect)(()=>{if(o&&!i&&!M.current&&x.length>0){let e=x[x.length-1];M.current=!0,v({[e.id]:!0}),window.requestAnimationFrame(()=>a?.())}},[o,i,a,x]),(0,s.useEffect)(()=>{if(0===x.length)return;let e=x[x.length-1];j(e=>N.current&&e<x.length?e:x.length-1),i&&v(t=>!0===t[e.id]&&1===Object.keys(t).length?t:{[e.id]:!0})},[i,x]);let L=(0,s.useCallback)(()=>{let e=T.current;e&&(S(t=>{let r=e.scrollTop>0;return t===r?t:r}),z(t=>{let r=e.scrollHeight-e.scrollTop-e.clientHeight>1;return t===r?t:r}))},[]),W=(0,s.useCallback)(()=>{if(Date.now()<$.current)return;let e=T.current;e&&(E.current=e.scrollHeight-e.scrollTop-e.clientHeight>4)},[]);if((0,s.useEffect)(()=>{let e=T.current;if(!e||!g)return;let t=new ResizeObserver(L);return e.addEventListener("scroll",L,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),L(),()=>{e.removeEventListener("scroll",L),t.disconnect()}},[k,g,y,i,m,x.length,L]),(0,s.useEffect)(()=>{let e=T.current;if(e&&g)return e.addEventListener("scroll",W,{passive:!0}),()=>e.removeEventListener("scroll",W)},[g,y,W]),(0,s.useEffect)(()=>{i&&T.current&&(E.current||($.current=Date.now()+100,T.current.scrollTop=T.current.scrollHeight,L()))},[r,i,L]),0===x.length)return null;let A=x.reduce((e,t)=>"tool"===t.kind?e+1:"toolGroup"===t.kind?e+t.blocks.length:e,0),P=x.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),F=r.filter(e=>"thinking"===e.type||"text"===e.type).length,D=x.filter(e=>"custom"===e.kind).length,O=1===x.length&&"thinking"===x[0].kind&&!i,H=1===x.length&&("tool"===x[0].kind||"toolGroup"===x[0].kind)&&!i;if(i)t=p("desktop.processWorking");else if(O){let e=function(e){let t;if("thinking"===e.kind){for(let r of e.blocks)"thinking"===r.type&&"number"==typeof r.duration&&(t=(t??0)+r.duration);return t}}(x[0]);t=void 0!==e?p("desktop.processThoughtDone",{duration:e}):p("desktop.processThoughtDoneNoDuration")}else if(H){let e=x[0];if("toolGroup"===e.kind){let r=e.blocks.reduce((e,t)=>e+(t.duration??0),0);t=r>0?`${e.label} ${r}s`:e.label}else{let r=e.block,n=aI(r,h),s=r.duration;t=void 0!==s?`${n.displayLabel} ${s}s`:n.displayLabel}}else{let e=[];if(A){let t=1===A?p("desktop.processToolCount",{count:A}):p("desktop.processToolsCount",{count:A});e.push(P>0?t+p("desktop.processFailedCount",{failed:P}):t)}F&&e.push(1===F?p("desktop.processThoughtCount",{count:F}):p("desktop.processThoughtsCount",{count:F})),D&&e.push(1===D?p("desktop.processCustomCount",{count:D}):p("desktop.processCustomsCount",{count:D})),t=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:()=>f(e=>{let t=!e;return I.current=i&&!t,t}),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,"aria-label":p("chat.processDetails"),children:[(0,n.jsx)("span",{className:"truncate",children:t}),i&&null!=u&&u>0&&(0,n.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-text-dim",children:p("desktop.tokensPerSecond",{count:u>=10?String(Math.round(u)):u.toFixed(1)})}),(0,n.jsx)("span",{className:`opacity-0 transition-opacity group-hover/summary:opacity-60 ${g?"rotate-90":""}`,children:(0,n.jsx)(aN,{expanded:!1})})]}),!O&&(0,n.jsx)("button",{type:"button",onClick:()=>{b("timeline"===y?"tabs":"timeline"),f(!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"===y?"opacity-60":"opacity-0"}`,title:"timeline"===y?p("desktop.processTabMode"):p("desktop.processTimelineMode"),children:(0,n.jsx)(aW,{mode:y})})]}),g&&(0,n.jsx)("div",{className:"overflow-hidden",children:O?(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)(aP,{step:x[0],cwd:l,onOpenFile:d,sessionId:c,ts:h,isStreaming:i})}),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"}),C&&(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"===y?(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"}),C&&(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:i?"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"}),x.map((e,t)=>{let r=m[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,o="tool"===e.kind&&"error"===e.block.status||"toolGroup"===e.kind&&e.blocks.some(e=>"error"===e.status),a="tool"===e.kind?aI(e.block,h):null,u="toolGroup"!==e.kind&&a?.target!==void 0&&a?.typeLabel!==void 0;return(0,n.jsxs)("div",{className:"group/step relative min-w-0",children:[t<x.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&&v(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"} ${o?"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)(aE,{step:e,ts:h})}),"toolGroup"===e.kind&&e.targets.length>0?(0,n.jsx)(a$,{targets:e.targets,typeLabel:e.typeLabel,count:e.blocks.length,label:e.label}):u?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:a.typeLabel}),(0,n.jsx)(aL,{filePath:a.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"]}),o&&(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)(aN,{expanded:!1})})]}),r&&s&&(0,n.jsx)("div",{className:"ml-5 mt-1.5 overflow-hidden",children:(0,n.jsx)(aP,{step:e,cwd:l,onOpenFile:d,sessionId:c,ts:h,isStreaming:i})})]},e.id)})]})})]}):(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:x.map((e,t)=>{let r="tool"===e.kind&&"error"===e.block.status||"toolGroup"===e.kind&&e.blocks.some(e=>"error"===e.status),s="tool"===e.kind?aI(e.block,h):null,o="toolGroup"!==e.kind&&s?.target!==void 0&&s?.typeLabel!==void 0,a=i&&t===x.length-1,l=k===t;return(0,n.jsxs)("button",{type:"button",onClick:()=>{t===x.length-1&&i?(N.current=!1,E.current=!1):N.current=!0,j(t)},"data-has-file-target":o?"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)(aE,{step:e,ts:h}),"toolGroup"===e.kind&&e.targets.length>0?(0,n.jsx)(a$,{targets:e.targets,typeLabel:e.typeLabel,count:e.blocks.length,label:e.label}):o?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"shrink-0",children:s.typeLabel}),(0,n.jsx)(aL,{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:x[k]&&(0,n.jsx)(aP,{step:x[k],cwd:l,onOpenFile:d,sessionId:c,ts:h,isStreaming:i})}),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"}),C&&(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 aO=["starting","queued","running","completed","failed","aborted","interrupted"];function aH(e){var t;return!!e&&"object"==typeof e&&"pi-web-subagent"===e.kind&&"string"==typeof e.sessionId&&"string"==typeof(t=e.status)&&aO.includes(t)}function aB(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function aU(e){return"running"===e||"starting"===e?"var(--accent)":"queued"===e?"var(--text-dim)":"completed"===e?"var(--status-success)":"failed"===e?"var(--status-error)":"aborted"===e?"var(--status-warning)":"var(--text-dim)"}function a_(e){let{run:t,onOpenSubagent:r,sessionRun:i}=e,{t:o}=(0,J.s)(),a=aH(t.result?.details)?t.result.details:null,l=a?.profile??("string"==typeof t.input.subagent_type?t.input.subagent_type:"Agent"),d=(a?.description??("string"==typeof t.input.description?t.input.description:""))||l,c=a?.sessionId??null,u=!!(c&&r),[p,h]=(0,s.useState)(null),x=a?.status??("running"===t.status?"running":"error"===t.status?"failed":"completed"),g=i?.status??p?.status??x,f="running"===g||"starting"===g;(0,s.useEffect)(()=>{if(i||!c||!f)return;let e=new AbortController;return fetch(`/api/sessions/${encodeURIComponent(c)}`,{cache:"no-store",signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>{let t=e?.info?.relation;t&&h({...t.status?{status:t.status}:{},...t.createdAt?{createdAt:t.createdAt}:{},...t.completedAt?{completedAt:t.completedAt}:{}})}).catch(()=>{}),()=>e.abort()},[c,i,f]);let[m,v]=(0,s.useState)(null);(0,s.useEffect)(()=>{if(!f)return void v(null);v(Date.now());let e=window.setInterval(()=>v(Date.now()),1e3);return()=>window.clearInterval(e)},[f]);let y=function(e){let t=aB(e.startedAt),r=aB(e.completedAt);if(e.running)return null!==t&&e.nowMs>=t?Math.max(0,Math.round((e.nowMs-t)/1e3)):e.toolDuration??null;if(null!==t&&null!==r){let e=r<t?null:Math.round((r-t)/1e3);if(null!==e)return e}return e.toolDuration??null}({startedAt:a?.createdAt??i?.createdAt??p?.createdAt??null,completedAt:a?.completedAt??i?.completedAt??p?.completedAt??null,toolDuration:t.duration??null,running:f,nowMs:m??0}),b=[l,null!==y?`${y}s`:null].filter(Boolean).join(" \xb7 "),k=o(function(e){switch(e){case"starting":return"agentSwitcher.status.starting";case"queued":return"agentSwitcher.status.queued";case"running":return"agentSwitcher.status.running";case"failed":return"agentSwitcher.status.failed";case"aborted":return"agentSwitcher.status.aborted";case"interrupted":return"agentSwitcher.status.interrupted";default:return"agentSwitcher.status.completed"}}(g));return(0,n.jsxs)("button",{type:"button",className:"subagent-run-row",onClick:()=>{c&&r?.(c,d)},disabled:!u,title:u?o("subagent.openTranscript"):d,"aria-label":`${o("agentSwitcher.subagent")}: ${d} — ${b} — ${k}`,style:{display:"flex",alignItems:"center",gap:9,width:"100%",padding:"7px 10px",margin:"4px 0",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:8,color:"var(--text)",textAlign:"left",cursor:u?"pointer":"default",opacity:u?1:.75},onMouseEnter:e=>{u&&(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-panel)"},children:[(0,n.jsx)("span",{style:{display:"grid",placeItems:"center",width:20,height:20,flexShrink:0,color:aU(g)},children:f?(0,n.jsxs)("svg",{className:"animate-spin",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):(0,n.jsx)(nj.d,{size:15,weight:"regular",color:aU(g),"aria-hidden":"true"})}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:550,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d}),(0,n.jsx)("span",{style:{display:"block",marginTop:1,fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b})]}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,color:aU(g),whiteSpace:"nowrap"},children:k})]})}function aK(e){let{status:t}=e;return"running"===t||"starting"===t?(0,n.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):"queued"===t?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}):"failed"===t?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m9 9 6 6M15 9l-6 6"})]}):"aborted"===t||"interrupted"===t?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M9 9h6v6H9z"})]}):(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m8 12 3 3 5-6"})]})}function aq(e){let{session:t,main:r,selected:s,running:i,onSelect:o}=e,{locale:a,t:l}=(0,J.s)(),d=t.relation?.kind==="subagent"?t.relation:null,c=i?"running":d?.status??"completed",u=r?l("agentSwitcher.main"):d?.description||ri(t),p=r?ri(t):`${d?.profile??l("agentSwitcher.subagent")} \xb7 ${function(e,t){let r=new Date(e).getTime();if(!Number.isFinite(r))return"";let n=Math.round((r-Date.now())/1e3),s=new Intl.RelativeTimeFormat(t,{numeric:"auto"});if(60>Math.abs(n))return s.format(n,"second");let i=Math.round(n/60);if(60>Math.abs(i))return s.format(i,"minute");let o=Math.round(i/60);return 24>Math.abs(o)?s.format(o,"hour"):s.format(Math.round(o/24),"day")}(t.modified,a)}`;return(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":s,onClick:o,style:{width:"100%",minHeight:56,display:"grid",gridTemplateColumns:"28px minmax(0, 1fr) auto",alignItems:"center",gap:9,padding:"7px 12px",border:"none",borderBottom:"1px solid var(--border)",borderLeft:s?"2px solid var(--accent)":"2px solid transparent",background:s?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{s||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{s||(e.currentTarget.style.background="transparent")},children:[(0,n.jsx)("span",{style:{width:28,height:28,display:"grid",placeItems:"center",color:r?"var(--text-muted)":"var(--accent)"},children:r?(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,n.jsx)("path",{d:"M4 21a8 8 0 0 1 16 0"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,n.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,n.jsxs)("span",{style:{minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:s?600:500},title:u,children:u}),(0,n.jsx)("span",{style:{display:"block",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:11},title:p,children:p})]}),(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",gap:6,color:r&&!i?"var(--text-dim)":"running"===c||"starting"===c?"var(--accent)":"queued"===c?"var(--text-dim)":"completed"===c?"var(--status-success)":"failed"===c?"var(--status-error)":"aborted"===c?"var(--status-warning)":"var(--text-dim)",fontSize:11,whiteSpace:"nowrap"},children:r&&!i?s?l("agentSwitcher.current"):null:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(aK,{status:c}),(0,n.jsx)("span",{children:l(`agentSwitcher.status.${c}`)})]})})]})}function aV(e){let{rootSession:t,subagents:r,selectedSessionId:i,runningSessionIds:o,onSelectSession:a}=e,{t:l}=(0,J.s)(),[d,c]=(0,s.useState)(""),u=(0,s.useMemo)(()=>[...r].sort((e,t)=>{let r=o.has(e.id);return r!==o.has(t.id)?r?-1:1:t.modified.localeCompare(e.modified)}),[o,r]),p=d.trim().toLowerCase(),h=p?u.filter(e=>{let t=e.relation?.kind==="subagent"?e.relation:null;return[t?.description,t?.profile,e.name,e.firstMessage].some(e=>e?.toLowerCase().includes(p))}):u,x=r.filter(e=>o.has(e.id)).length;return(0,n.jsx)("div",{role:"listbox","aria-label":l("agentSwitcher.title"),style:{background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",borderRight:"1px solid var(--border)",borderBottom:"1px solid var(--border)",borderRadius:"0 0 6px 6px",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",overflow:"hidden"},children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{minHeight:44,display:"flex",alignItems:"center",gap:8,padding:"7px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("strong",{style:{fontSize:12,fontWeight:600},children:l("agentSwitcher.title")}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:l("agentSwitcher.count",{count:r.length})}),x>0&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--accent)",fontSize:11},children:l("agentSwitcher.runningCount",{count:x})})]}),r.length>8&&(0,n.jsx)("div",{style:{padding:8,borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("input",{type:"search",value:d,onChange:e=>c(e.target.value),placeholder:l("agentSwitcher.search"),"aria-label":l("agentSwitcher.search"),style:{width:"100%",height:32,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}})}),(0,n.jsxs)("div",{style:{maxHeight:"min(58dvh, 480px)",overflowY:"auto"},children:[(0,n.jsx)(aq,{session:t,main:!0,selected:t.id===i,running:o.has(t.id),onSelect:()=>a(t)}),h.map(e=>(0,n.jsx)(aq,{session:e,selected:e.id===i,running:o.has(e.id),onSelect:()=>a(e)},e.id)),0===h.length&&(0,n.jsx)("div",{style:{padding:"22px 12px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:l("agentSwitcher.noMatches")})]})]})})}function aJ(e){let t=cs("messageShell");return(0,n.jsx)(t??lf,{...e})}function aG(e){let t=cs("toolCard");return(0,n.jsx)(t??aD,{...e})}function aY(e){let t=cs("messageList");return(0,n.jsx)(t??oY,{...e})}function aX(e){let t=cs("subagentRow");return(0,n.jsx)(t??a_,{...e})}function aZ(e){let t=cs("subagentPanel");return(0,n.jsx)(t??aV,{...e})}function aQ(e){let t=cs("thinking");return(0,n.jsx)(t??lk,{...e})}function a0(e,t){if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.input;if("string"==typeof t&&t.length>0)return t}return"string"==typeof t?t:""}function a1(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function a2(e){if(!a1(e)||!a1(e.result))return!1;let t=e.result.failures;return Array.isArray(t)&&t.length>0}function a6(){let e=[],t=[],r=[],n=()=>({lineNo:null,text:"",type:"empty"}),s=()=>{let s=Math.max(t.length,r.length);for(let i=0;i<s;i++)e.push({type:"line",left:t[i]??n(),right:r[i]??n()});t=[],r=[]};return{rows:e,context(t,r){s(),e.push({type:"line",left:{lineNo:r,text:t,type:"context"},right:{lineNo:r,text:t,type:"context"}})},removed(e,r){t.push({lineNo:r,text:e,type:"removed"})},added(e,t){r.push({lineNo:t,text:e,type:"added"})},finish(){s();for(let t=e.length-1;t>=0;t--)"line"!==e[t].type&&e.splice(t,1)}}}function a4(e){if(!e.includes("*** Begin Patch")&&!/\*\*\* (?:Add|Delete|Update) File: /.test(e))return null;let t=[],r=null,n=null,s=null;for(let i of e.split(/\r?\n/)){let e=i.match(/^\*\*\* (Add|Delete|Update) File: (.+)$/);if(e){let i=e[1]?.toLowerCase()??"update",o=(e[2]??"").trim();r?.finish(),s=i,n={oldPath:"add"===i?void 0:o,newPath:"delete"===i?void 0:o,rows:(r=a6()).rows},t.push(n);continue}if(/^\*\*\* Move to: /.test(i)){let e=i.replace(/^\*\*\* Move to: /,"").trim();n&&"update"===s&&(n.newPath=e);continue}if(!r||!n)continue;let o=r;if(!i.startsWith("*** ")&&!("update"===s&&i.startsWith("@@"))){if("update"===s){let e=i[0],t=i.slice(1);"+"===e?o.added(t,null):"-"===e?o.removed(t,null):" "===e?o.context(t,null):""!==i&&o.context(i,null)}else if("add"===s){if(""===i)continue;r.added(i.startsWith("+")?i.slice(1):i,null)}else if("delete"===s){if(""===i)continue;r.removed(i.startsWith("-")?i.slice(1):i,null)}}}r?.finish();let i=t.filter(e=>e.rows.length>0);return i.length>0?i:null}function a5(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=e.files;if(!Array.isArray(t))return null;let r=[];for(let e of t){if(!e||"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.filePath||"string"!=typeof e.diff)continue;let t=a6();for(let r of e.diff.split(/\r?\n/)){let e=r.match(/^([+\- ])\s*(\d+) (.*)$/);if(!e)continue;let[,n,s,i]=e,o=Number(s);"+"===n?t.added(i,o):"-"===n?t.removed(i,o):t.context(i,o)}t.finish();let n="add"===e.operation,s="delete"===e.operation;r.push({oldPath:n?void 0:e.filePath,newPath:s?void 0:e.movePath??e.filePath,rows:t.rows})}let n=r.filter(e=>e.rows.length>0);return n.length>0?n:null}function a3(e){let t=e.toLowerCase();return"apply_patch"===t||t.startsWith("apply_patch_")||t.endsWith(".apply_patch")||t.endsWith("_apply_patch")}let a8=new Set,a7="pi-thinking-expanded-changed";function a9(){return"true"===window.localStorage.getItem("pi-thinking-expanded")}function le(e){let{files:t,onOpenFile:r}=e,{t:s}=(0,J.s)();return 0===t.length?null:(0,n.jsx)("div",{"aria-label":s("desktop.filesWritten"),style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,marginTop:6},children:t.map(e=>{let{filePath:t}=e,i=tL(t);return(0,n.jsxs)("button",{type:"button",title:t,"aria-label":s("desktop.openWrittenFile",{name:i}),onClick:()=>r?.(t),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:i})]},t)})})}var lt=r(35831),lr=r(63522),ln=r(22540),ls=r(36462),li=r(42405),lo=r(26131);let la={flash:{cacheRead:.02,input:1,output:2,cacheWrite:0},pro:{cacheRead:.025,input:3,output:6,cacheWrite:0}};function ll(e){let t=(e??"").toLowerCase();return t.includes("deepseek-v4-flash")?"flash":t.includes("deepseek-v4-pro")?"pro":null}function ld(e){return null!==ll(e)}function lc(e,t){let r=ll(e);if(!r||!t)return 0;let n=la[r],s=lp(t.input),i=lp(t.output),o=lp(t.cacheRead),a=lp(t.cacheWrite);return(o*n.cacheRead+s*n.input+i*n.output+a*n.cacheWrite)/1e6}function lu(e){var t;let r="number"==typeof(t=e)&&Number.isFinite(t)?t:0;return!Number.isFinite(r)||r<=0?"\xa50.00":r<.01?"<\xa50.01":r<1?`\xa5${r.toFixed(4)}`:`\xa5${r.toFixed(2)}`}function lp(e){return"number"==typeof e&&Number.isFinite(e)&&e>0?e:0}let lh=new Map;function lx(e,t,r){let n=`${e}:${t}:${r}`,s=lh.get(n);if(s)return lh.delete(n),lh.set(n,s),s;let i=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${r}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if("string"!=typeof t.thinking)throw Error("Invalid thinking response");return t.thinking}).catch(e=>{throw lh.delete(n),e});if(lh.set(n,i),lh.size>100){let e=lh.keys().next().value;e&&lh.delete(e)}return i}function lg(e){if(!e)return null;let t=new Date(e),r=new Date,n=t.getFullYear()===r.getFullYear()&&t.getMonth()===r.getMonth()&&t.getDate()===r.getDate(),s=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(n)return s;let i=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==r.getFullYear()?"numeric":void 0});return`${i} ${s}`}let lf=(0,s.memo)(function(e){let{message:t,isStreaming:r,toolResults:s,modelNames:i,cwd:o,onOpenFile:a,onQuoteReply:l,onOpenSession:d,entryId:c,searchBlock:u,onFork:p,forking:h,onNavigate:x,onEditContent:g,showTimestamp:f,prevTimestamp:m,sessionId:v,onCreateTask:y,writtenFiles:b}=e;return"user"===t.role?(0,n.jsx)(lm,{message:t,cwd:o,onOpenFile:a,entryId:c,onFork:p,forking:h,onNavigate:x,onEditContent:g,onCreateTask:y}):"assistant"===t.role?(0,n.jsx)(lv,{message:t,isStreaming:r,toolResults:s,modelNames:i,cwd:o,onOpenFile:a,onQuoteReply:l,onOpenSession:d,showTimestamp:f,prevTimestamp:m,sessionId:v,entryId:c,onFork:p,forking:h,searchBlock:u,writtenFiles:b}):"toolResult"===t.role?null:"custom"===t.role?"compaction"===t.customType?(0,n.jsx)(cm,{content:t.content}):(0,n.jsx)(lL,{message:t,isStreaming:r,cwd:o,onOpenFile:a}):"bashExecution"===t.role?(0,n.jsx)(lW,{message:t,sessionId:v}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,r){if(t===r||"assistant"!==e.role)return!0;for(let n of e.content??[])if("toolCall"===n.type&&t?.get(n.toolCallId)!==r?.get(n.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&e.onQuoteReply===t.onQuoteReply&&e.onOpenSession===t.onOpenSession&&e.entryId===t.entryId&&e.searchBlock===t.searchBlock&&e.onFork===t.onFork&&e.forking===t.forking&&e.onNavigate===t.onNavigate&&e.onEditContent===t.onEditContent&&e.onCreateTask===t.onCreateTask&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.sessionId===t.sessionId&&e.writtenFiles===t.writtenFiles);function lm(e){let{message:t,cwd:r,onOpenFile:i,entryId:o,onFork:a,forking:l,onNavigate:d,onEditContent:c,onCreateTask:u}=e,{t:p}=(0,J.s)(),[h,x]=(0,s.useState)(!1),[g,f]=(0,s.useState)(!1),m="string"==typeof t.content?t.content:t.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),v="string"==typeof t.content?[]:t.content.filter(e=>"image"===e.type),y=v.length>0?m.replace(/(?<!\\)!\[[^\]]*\]\([^)]*\)/g,"").replace(/[ \t]*\n{3,}/g,"\n\n"):m,b=(y&&y.trim()?y.trim().startsWith("/")?y:function(e){let t=e.match(oX);if(!t)return null;let r=t[1],n=e.indexOf(oZ),s="";if(-1!==n){let t=e.slice(n+oZ.length);t.startsWith("\n\n")&&(s=t.slice(2).trim())}return s?`/skill:${r} ${s}`:`/skill:${r}`}(y):null)??y,k=lg(t.timestamp),j=!!o&&!!a,w=!!o&&!!d;return(0,n.jsxs)("div",{"data-message-role":"user","data-entry-id":o,className:"chat-user-message chat-msg-in",onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),children:[(0,n.jsx)("div",{className:"chat-user-bubble-wrap",children:(0,n.jsxs)("div",{className:"chat-user-bubble",children:[v.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!y},children:v.map((e,t)=>{let r=e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:"";return(0,n.jsx)(cS,{src:r,children:(0,n.jsx)("img",{src:r,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid rgba(59,130,246,0.15)"}})},t)})}),b&&(0,n.jsx)(of,{className:"markdown-user-message",cwd:r,onOpenFile:i,children:b})]})}),(0,n.jsxs)("div",{className:"msg-actions",style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,n.jsxs)("div",{className:"msg-actions",style:{display:"flex",gap:3,opacity:+!!h,pointerEvents:h?"auto":"none",transition:"opacity 0.12s"},children:[(0,n.jsx)("button",{onClick:()=>{i9(y).then(()=>{f(!0),setTimeout(()=>f(!1),1500)})},title:p("desktop.copyMessage"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:g?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{g||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{g||(e.currentTarget.style.color="var(--text-dim)")},children:g?(0,n.jsx)(q.S,{size:11}):(0,n.jsx)(V.T,{size:11})}),u&&y.trim()&&(0,n.jsx)("button",{onClick:()=>u(y,r),title:p("desktop.createTaskFromMessage"),"aria-label":p("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)(li.X,{size:11})})]}),(j||w)&&(0,n.jsxs)("div",{className:"msg-actions",style:{display:"flex",gap:3,opacity:h||l?1:0,pointerEvents:h||l?"auto":"none",transition:"opacity 0.12s"},children:[w&&(0,n.jsx)("button",{onClick:()=>void d(o).then(e=>{e&&c?.(t)}),title:p("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)(lt.S,{size:11})}),j&&(0,n.jsx)("button",{onClick:()=>{a(o)},disabled:l,title:p(l?"desktop.creatingNewSession":"desktop.newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:l?"var(--accent)":"var(--text-dim)",cursor:l?"not-allowed":"pointer",transition:"color 0.12s"},onMouseEnter:e=>{l||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{l||(e.currentTarget.style.color="var(--text-dim)")},children:(0,n.jsx)(ts.C,{size:11})})]}),k&&(0,n.jsx)("span",{style:{fontSize:11,color:h?"var(--text-muted)":"var(--text-dim)",opacity:h?1:.5,transition:"color 0.15s, opacity 0.15s"},children:k})]})]})}function lv(e){var t,r;let i,o,a,{message:l,isStreaming:d,toolResults:c,modelNames:u,cwd:p,onOpenFile:h,onQuoteReply:x,onOpenSession:g,showTimestamp:f,prevTimestamp:m,sessionId:v,entryId:y,onFork:b,forking:k,searchBlock:j,writtenFiles:w}=e,{t:S}=(0,J.s)(),C=f?lg(l.timestamp):null,z=(l.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(e=>{let{block:t}=e;return!o1(t,{isStreaming:d})}),T=z.map(e=>{let{block:t}=e;return t}),[R,I]=(0,s.useState)(!1),[N,M]=(0,s.useState)(!1),[E,$]=(0,s.useState)(!1),L=(0,s.useRef)(null),[W,A]=(0,s.useState)(null),P=(0,s.useRef)(z);P.current=z;let F=(0,s.useRef)(new Map),[D,O]=(0,s.useState)(new Map),H=(0,s.useMemo)(()=>{if(!l.timestamp||!m)return;let e=Math.round((l.timestamp-m)/1e3);return e>0?e:void 0},[l.timestamp,m]),B=(0,s.useMemo)(()=>{let e=new Map;if(!c||!l.timestamp)return e;for(let[t,r]of c)if(r.timestamp&&l.timestamp){let n=Math.round((r.timestamp-l.timestamp)/1e3);n>0&&e.set(t,n)}return e},[c,l.timestamp]),U=T.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),_=function(e){let t=new Set;for(let r of e){if("toolCall"!==r.type)continue;let e=(r.toolName??"").toLowerCase();if("apply_patch"===e||e.includes("patch")||!(lN(r.toolName??"")||"write"===e||"create"===e||e.includes("file_write")||e.includes("create_file")||e.includes("multiedit")))continue;let n=r.input??{},s=n.filePath??n.file_path??n.path??n.file??n.destination??n.newFilePath??n.oldPath;"string"==typeof s&&s.trim()&&t.add(s)}return[...t]}(T),[K,G]=(0,s.useState)(!1);(0,s.useEffect)(()=>{if(!d){let e=new Date().getTime();O(t=>{let r=new Map(t);for(let[t,n]of F.current)r.has(t)||r.set(t,Math.round((e-n)/1e3));return r}),L.current=null,A(null);return}let e=setInterval(()=>{let e=P.current,t=e.map(e=>{let{block:t}=e;return t}),r=Date.now();e.forEach(e=>{let{originalIndex:t}=e;F.current.has(t)||F.current.set(t,r)}),O(t=>{let n=!1,s=new Map(t);for(let t=0;t<e.length-1;t++){let i=e[t].originalIndex,o=e[t+1].originalIndex;if(!s.has(i)&&F.current.has(i)){let e=F.current.get(i),t=F.current.get(o)??r;s.set(i,Math.round((t-e)/1e3)),n=!0}}return n?s: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===L.current&&(L.current=r);let s=(r-L.current)/1e3;s>.5&&A(n/4/s)},300);return()=>clearInterval(e)},[d]);let Y=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString(),X="error"===l.stopReason&&l.errorMessage?l.errorMessage:null;return 0!==T.length||d||X?(0,n.jsxs)("div",{"data-message-role":"assistant","data-entry-id":y,className:["chat-assistant-message chat-msg-in",d?"is-streaming":""].filter(Boolean).join(" "),onMouseEnter:()=>I(!0),onMouseLeave:()=>I(!1),children:[d&&(0,n.jsx)("div",{className:"chat-assistant-meta",children:(()=>{let e,t=0;for(let e of T)"text"===e.type?t+=e.text?.length??0:"thinking"===e.type?t+=e.thinking?.length??0:"toolCall"===e.type&&(t+=JSON.stringify(e.input??{}).length);let r=Math.round(t/4);return(0,n.jsx)(n.Fragment,{children:r>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:S("desktop.estimatedStreamingTokenCount"),children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,n.jsx)(ls.g,{size:13}),r]}),null!==W&&(e=W>=50?"--accent-green":W>=30?"--accent-blue":W>=15?"--accent-orange":"--accent-red",(0,n.jsx)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:`var(${e})`,color:"var(--bg)",fontSize:11,fontWeight:400},children:S("desktop.tokensPerSecond",{count:W.toFixed(1)})}))]})})})()}),(0,n.jsxs)("div",{className:"chat-assistant-content",style:{position:"relative"},children:[X&&(0,n.jsxs)("div",{className:"chat-assistant-error",role:"alert",children:[(0,n.jsx)(nG.M,{size:13,weight:"bold"}),(0,n.jsx)("span",{children:X})]}),U&&!d&&(0,n.jsxs)("div",{className:"chat-copy-float",style:{opacity:+!!R,pointerEvents:R?"auto":"none"},children:[(0,n.jsx)("button",{className:"msg-actions",onClick:()=>{i9(U).then(()=>{M(!0),setTimeout(()=>M(!1),1500)})},title:S("desktop.copyMessage"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:N?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s, border-color 0.12s"},onMouseEnter:e=>{N||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{N||(e.currentTarget.style.color="var(--text-dim)")},children:N?(0,n.jsx)(q.S,{size:12}):(0,n.jsx)(V.T,{size:12})}),(0,n.jsx)("button",{className:"msg-actions",onClick:()=>{i9(U.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(()=>{$(!0),setTimeout(()=>$(!1),1500)})},title:S("desktop.copyPlainText"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:24,height:24,background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:6,color:E?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s, border-color 0.12s"},onMouseEnter:e=>{E||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{E||(e.currentTarget.style.color="var(--text-dim)")},children:E?(0,n.jsx)(q.S,{size:12}):(0,n.jsx)(li.X,{size:12})})]}),z.map(e=>{let{block:t,originalIndex:r}=e;return(0,n.jsx)(ly,{block:t,searchTarget:t===j,toolResults:c,isStreaming:d,streamingDuration:D.get(r)??("thinking"===t.type?H:void 0),toolCallDurations:B,cwd:p,onOpenFile:h,onQuoteReply:x,onOpenSession:g,sessionId:v,entryId:y,blockIndex:r},`${y??"stream"}-${r}`)})]}),w&&w.length>0&&(0,n.jsx)(le,{files:w,onOpenFile:h}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[!d&&(l.provider||l.usage)&&(0,n.jsxs)("div",{style:{fontSize:11,color:R?"var(--text-muted)":"var(--text-dim)",opacity:R?1:.5,display:"flex",alignItems:"center",gap:5,flexWrap:"wrap",transition:"color 0.15s, opacity 0.15s"},children:[l.provider&&(0,n.jsx)("span",{children:(t=l.provider,r=l.model,i=t.toLowerCase(),o=r.toLowerCase(),a=Object.entries(u??{}).flatMap(e=>{let[t,r]=e,n=t.indexOf(":");return n>0&&t.slice(0,n).toLowerCase()===i?[{id:t.slice(n+1).toLowerCase(),name:r}]:[]}),a.find(e=>e.id===o)?.name??a.find(e=>o.endsWith(`/${e.id}`))?.name??Object.entries(u??{}).find(e=>{let[t]=e;return t.toLowerCase()===o})?.[1]??`${t}/${r}`)}),l.usage&&l.usage.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(ln.K,{size:10}),Y(l.usage.input)]}),l.usage&&l.usage.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(lr.Z,{size:10}),Y(l.usage.output)]}),l.usage&&l.usage.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2},children:[(0,n.jsx)(lo.b,{size:10}),Y(l.usage.cacheRead)]}),l.usage&&l.usage.cost?.total>0&&(()=>{if(ld(l.model)){let e=lc(l.model,l.usage);return e<=0?null:(0,n.jsx)("span",{title:S("desktop.turnUsageByOfficialPrice"),children:lu(e)})}return(0,n.jsxs)("span",{children:["$",l.usage.cost.total.toFixed(4)]})})()]}),y&&b&&!d&&(0,n.jsx)("button",{className:"msg-actions",onClick:()=>b(y),disabled:k,title:k?S("desktop.creatingNewSession"):S("desktop.newSessionFromHere"),"aria-label":S("desktop.newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,background:"none",border:"none",borderRadius:5,color:k?"var(--accent)":"var(--text-dim)",cursor:k?"not-allowed":"pointer",opacity:+!!R,pointerEvents:R?"auto":"none",transition:"opacity 0.12s, color 0.12s"},children:(0,n.jsx)(ts.C,{size:11})}),C&&!d&&(0,n.jsx)("span",{style:{fontSize:11,color:R?"var(--text-muted)":"var(--text-dim)",opacity:R?1:.5,marginLeft:"auto",transition:"color 0.15s, opacity 0.15s"},children:C}),_.length>0&&!d&&(0,n.jsxs)("span",{style:{position:"relative",display:"inline-flex",alignItems:"center"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>G(e=>!e),title:S("desktop.changedFiles",{count:_.length}),style:{display:"inline-flex",alignItems:"center",gap:4,padding:"1px 7px",border:"1px solid var(--border)",borderRadius:999,background:K?"var(--bg-hover)":"none",color:"var(--text-muted)",fontSize:10,cursor:"pointer",opacity:R||K?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=>{K||(e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.borderColor="var(--border)")},children:[(0,n.jsx)(ts.C,{size:10,"aria-hidden":"true"}),_.length]}),K&&(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:_.map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>{G(!1),h?.(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 ly(e){let{block:t,searchTarget:r,toolResults:s,isStreaming:i,streamingDuration:o,toolCallDurations:a,cwd:l,onOpenFile:d,onQuoteReply:c,onOpenSession:u,sessionId:p,entryId:h,blockIndex:x}=e;if("text"===t.type)return(0,n.jsx)("div",{"data-message-text":!0,"data-search-target":r||void 0,children:(0,n.jsx)(lb,{block:t,isStreaming:i,cwd:l,onOpenFile:d,onQuoteReply:c})});if("thinking"===t.type)return(0,n.jsx)(aQ,{block:t,duration:o,sessionId:p,entryId:h,blockIndex:x,isStreaming:i});if("image"===t.type){let e=t.source?.type==="base64"?`data:${t.source.media_type};base64,${t.source.data}`:t.source?.url??(t.data?`data:${t.mimeType};base64,${t.data}`:"");return e?(0,n.jsx)(cS,{src:e,children:(0,n.jsx)("img",{src:e,alt:"",className:"max-h-96 max-w-full rounded object-contain"})}):null}if("toolCall"===t.type){let e=s?.get(t.toolCallId),r=a?.get(t.toolCallId);return(0,n.jsx)(lw,{block:t,result:e,duration:r,onOpenSession:u})}return null}function lb(e){let{block:t,isStreaming:r,cwd:s,onOpenFile:i,onQuoteReply:o}=e;return(0,n.jsx)(of,{isStreaming:r,cwd:s,onOpenFile:i,onQuoteReply:o,children:t.text})}function lk(e){var t;let{block:r,duration:i,sessionId:o,entryId:a,blockIndex:l,contentOnly:d=!1,isStreaming:c,cwd:u,onOpenFile:p,className:h}=e,{t:x}=(0,J.s)(),[g,f]=(0,s.useState)(a9),[m,v]=(0,s.useState)(null),[y,b]=(0,s.useState)(!1),[k,j]=(0,s.useState)(null);return((0,s.useRef)(x).current=x,t=r.thinking,t.trimStart().match(/^[^\r\n]{0,240}/u)?.[0].trimEnd(),(0,s.useEffect)(()=>{let e=()=>f(a9());return window.addEventListener(a7,e),()=>window.removeEventListener(a7,e)},[]),(0,s.useEffect)(()=>{if(!g||!r.deferred||null!==m)return;if(!o||!a)return void j(x("desktop.thinkingContentUnavailable"));let e=5,t=()=>{b(!0),j(null),lx(o,a,l).then(e=>{v(e),b(!1)}).catch(r=>{e>1?(e--,setTimeout(t,2e3)):(b(!1),j(r instanceof Error?r.message:String(r)))})};t()},[g,r.deferred,m,o,a,l,x]),d)?(0,n.jsx)(lj,{block:r,sessionId:o,entryId:a,blockIndex:l,isStreaming:c,cwd:u,onOpenFile:p,className:h}):(0,n.jsxs)("div",{className:`thinking-block ${c?"is-live":""}`,children:[(0,n.jsxs)("button",{onClick:()=>f(e=>!e),className:"thinking-block-trigger","aria-expanded":g,children:[(0,n.jsx)("span",{className:`thinking-block-caret ${g?"is-expanded":""}`,"aria-hidden":"true",children:"›"}),(0,n.jsx)("span",{className:"thinking-block-icon","aria-hidden":"true",children:"✦"}),(0,n.jsx)("span",{children:x("desktop.thinking")}),void 0!==i&&(0,n.jsxs)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[i,"s"]})]}),(0,n.jsx)("div",{className:`thinking-block-content ${k?"is-error":""} ${g?"is-expanded":""}`,"aria-hidden":!g,inert:!g,children:(0,n.jsx)("div",{className:"thinking-block-content-inner",children:y?x("desktop.loadingThinking"):k??(r.deferred?m:r.thinking)})}),void 0!==i&&(0,n.jsxs)("span",{style:{flexShrink:0,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:[i,"s"]})]})}function lj(e){let{block:t,sessionId:r,entryId:i,blockIndex:o,isStreaming:a,cwd:l,onOpenFile:d,className:c}=e,{t:u}=(0,J.s)(),[p,h]=(0,s.useState)(null),[x,g]=(0,s.useState)(!0===t.deferred),[f,m]=(0,s.useState)(null);return((0,s.useEffect)(()=>{let e=!1,n=5;if(!t.deferred)return void g(!1);if(!r||!i){g(!1),m(u("desktop.thinkingContentUnavailable"));return}let s=()=>{e||(g(!0),m(null),lx(r,i,o).then(t=>{e||(h(t),g(!1))}).catch(t=>{e||(n>1?(n--,setTimeout(s,2e3)):(g(!1),m(t instanceof Error?t.message:String(t))))}))};return s(),()=>{e=!0}},[t.deferred,o,i,r,u]),x)?(0,n.jsx)("div",{className:"text-xs text-text-dim",children:u("desktop.loadingThinking")}):f?(0,n.jsx)("div",{className:"text-xs text-red-400",children:f}):(0,n.jsx)(of,{isStreaming:a,cwd:l,onOpenFile:d,className:c,children:t.deferred?p??"":t.thinking})}let lw=(0,s.memo)(function(e){var t;let r,{block:i,result:o,duration:a,processStyle:l=!1,onOpenSession:d}=e,{t:c}=(0,J.s)(),[u,p]=(0,s.useState)(()=>{var e;return void 0!==(e=i.toolCallId)&&a8.has(e)}),h=(0,s.useMemo)(()=>JSON.stringify(i.input,null,2),[i.input]),x=void 0!==i.rawInput,g=lN(i.toolName),f=o&&!o.isError?function(e){let t=e.details;if(!lM(t))return null;let r="string"==typeof t.patch?t.patch:null;if(r)return{text:r};let n="string"==typeof t.diff?t.diff:null;return n?{text:n}:null}(o):null,m=function(e,t){if(!a3(e.toolName))return null;let r=a4(a0(e.input,e.rawInput));if(r)return r;let n=t&&!t.isError?t.details:void 0;if(lM(n)){let e=a5(n.preview);if(e)return e}return null}(i,o),v=a3(i.toolName)?0===(r=function(e){let t=[];for(let r of e.matchAll(/^\*\*\* (?:Add|Delete|Update) File: (.+)$/gm)){let e=(r[1]??"").trim();e&&!t.includes(e)&&t.push(e)}return t}(a0((t=i).input,t.rawInput))).length?null:r.join(", ").slice(0,120):null,y=(0,s.useMemo)(()=>o?o.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,[o]),b=o?.content.filter(e=>"image"===e.type)??[],k=null!==y&&("(no output)"===y.trim()||""===y.trim()),j=(o?.isError??!1)||a3(i.toolName)&&a2(o?.details),w=aH(o?.details)?o.details:null;return(0,n.jsxs)("div",{className:`tool-call-block ${l?"is-process":""} ${j?"is-error":""}`,children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"stretch",minWidth:0},children:[(0,n.jsxs)("button",{onClick:()=>{var e;let t=!u;e=i.toolCallId,e&&(t?a8.add(e):a8.delete(e)),p(t)},className:"tool-call-trigger","aria-expanded":u,style:{flex:1,minWidth:0},children:[(0,n.jsx)("span",{className:"tool-call-name",children:i.toolName}),(0,n.jsx)("span",{className:"tool-call-preview",children:x?c("chat.generatingToolInput"):v??function(e){let t=e.input;if(!t||"object"!=typeof t)return"";let r=Object.keys(t);return 0===r.length?"":"command"in t?String(t.command).slice(0,120):"path"in t?String(t.path).slice(0,120):"file_path"in t?String(t.file_path).slice(0,120):"pattern"in t?String(t.pattern).slice(0,120):"query"in t?String(t.query).slice(0,120):String(t[r[0]]).slice(0,120)}(i)}),void 0!==a&&(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:[a,"s"]}),(0,n.jsx)("span",{className:`tool-call-caret ${u?"is-expanded":""}`,"aria-hidden":"true",children:(0,n.jsx)(e2.J,{size:12})})]}),w&&d&&(0,n.jsx)("button",{type:"button",className:"tool-call-open-session",onClick:()=>d(w.sessionId),title:c("subagent.open"),"aria-label":c("subagent.open"),children:(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M15 3h6v6"}),(0,n.jsx)("path",{d:"M10 14 21 3"}),(0,n.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})})]}),u&&!g&&(0,n.jsx)("pre",{className:"tool-call-input",children:h}),b.length>0&&(0,n.jsx)(lE,{images:b,isError:j}),u&&m&&(0,n.jsx)("div",{style:{borderTop:"1px solid rgba(34,197,94,0.15)",background:"var(--bg)"},children:(0,n.jsx)(lz,{files:m})}),u&&o&&m&&j&&(0,n.jsx)(l$,{text:y??"",isEmpty:k,isError:j}),u&&o&&!m&&(f?(0,n.jsx)(lS,{diff:f,processStyle:l}):(!k||0===b.length)&&(0,n.jsx)(l$,{text:y??"",isEmpty:k,isError:j,processStyle:l}))]})});function lS(e){let{diff:t,processStyle:r=!1}=e;return(0,n.jsx)("div",{style:{borderTop:r?"1px solid var(--border)":"1px solid rgba(34,197,94,0.15)",background:"var(--bg)"},children:(0,n.jsx)(lC,{text:t.text})})}function lC(e){let{text:t}=e,r=(0,s.useMemo)(()=>oT(t),[t]);return r?(0,n.jsx)(lz,{files:r}):(0,n.jsx)(lI,{text:t})}function lz(e){let{files:t}=e,{t:r}=(0,J.s)(),s=t.length>1;return(0,n.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:t.map((e,t)=>(0,n.jsxs)("div",{style:{minWidth:0,borderTop:0===t?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",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)(lT,{title:e.oldPath||r("desktop.before"),side:"left"}),(0,n.jsx)(lT,{title:e.newPath||r("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)(lR,{cell:e.left,side:"left"}),(0,n.jsx)(lR,{cell:e.right,side:"right"})]},t))})]},t))})}function lT(e){let{title:t,side:r}=e;return(0,n.jsx)("div",{title:t,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===r?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})}function lR(e){let{cell:t,side:r}=e,s="added"===t.type?"rgba(34,197,94,0.12)":"removed"===t.type?"rgba(248,113,113,0.13)":"empty"===t.type?"var(--bg-subtle)":"transparent",i="added"===t.type?"+":"removed"===t.type?"-":" ",o="added"===t.type?"var(--status-success)":"removed"===t.type?"var(--status-error)":"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",minWidth:0,background:s,borderRight:"left"===r?"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:t.lineNo??""}),(0,n.jsx)("span",{style:{width:18,padding:"0 5px",color:o,userSelect:"none",fontWeight:"context"===t.type||"empty"===t.type?400:700,flexShrink:0},children:i}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===t.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:t.text||"\xa0"})]})}function lI(e){let{text:t}=e,r=t.split(/\r?\n/);return(0,n.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.55,minWidth:0},children:r.map((e,t)=>{let r=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,n.jsxs)("div",{style:{display:"flex",background:"added"===r?"rgba(34,197,94,0.12)":"removed"===r?"rgba(248,113,113,0.13)":"hunk"===r?"rgba(96,165,250,0.12)":"transparent",borderLeft:"added"===r?"3px solid var(--status-success)":"removed"===r?"3px solid var(--status-error)":"hunk"===r?"3px solid var(--accent)":"3px solid transparent"},children:[(0,n.jsx)("span",{style:{width:48,padding:"0 8px",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",textAlign:"right",userSelect:"none",flexShrink:0},children:t+1}),(0,n.jsx)("span",{style:{padding:"0 10px",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===r?"var(--status-success)":"removed"===r?"var(--status-error)":"hunk"===r?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function lN(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 lM(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function lE(e){let{images:t,isError:r}=e;return(0,n.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",padding:"10px",background:"var(--bg)",borderTop:`1px solid ${r?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`},children:t.map((e,t)=>{let r=lA(e);return r?(0,n.jsx)(cS,{src:r,style:{maxWidth:"100%"},children:(0,n.jsx)("img",{src:r,alt:"",loading:"lazy",style:{display:"block",maxWidth:"min(100%, 720px)",maxHeight:520,borderRadius:6,objectFit:"contain",border:"1px solid var(--border)"}})},`${r}-${t}`):null})})}function l$(e){let{text:t,images:r=[],isEmpty:i,isError:o,processStyle:a=!1}=e,{t:l}=(0,J.s)(),[d,c]=(0,s.useState)(!1),u=!i&&t.length>8e3&&!d,p=u?t.slice(0,8e3):t,h=!i||0===r.length;return(0,n.jsxs)("div",{style:{borderTop:`1px solid ${a?"var(--border)":o?"rgba(248,113,113,0.3)":"rgba(34,197,94,0.15)"}`,background:a?"var(--bg-subtle)":o?"rgba(248,113,113,0.04)":"var(--bg-subtle)"},children:[r.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap",padding:"10px",background:"var(--bg)"},children:r.map((e,t)=>{let r=lA(e);return r?(0,n.jsx)(cS,{src:r,children:(0,n.jsx)("img",{src:r,alt:`Tool result image ${t+1}`,loading:"lazy",style:{display:"block",maxWidth:"min(100%, 720px)",maxHeight:520,borderRadius:6,objectFit:"contain",border:"1px solid var(--border)"}})},`${r}-${t}`):null})}),h&&(0,n.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:o?"var(--status-error)":i?"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:i?"italic":"normal",opacity:i?.6:1},children:i?l("desktop.noOutput"):p}),u&&(0,n.jsx)("button",{onClick:()=>c(!0),style:{display:"block",margin:"6px 8px 8px",padding:"4px 10px",border:"1px solid var(--border)",borderRadius:5,background:"transparent",color:"var(--text-dim)",fontSize:11,cursor:"pointer"},children:l("desktop.loadFullOutput")})]})}function lL(e){var t,r,i,o,a,l;let d,{message:c,isStreaming:u,cwd:p,onOpenFile:h}=e,{t:x}=(0,J.s)(),g=!1===c.display,[f,m]=(0,s.useState)(!g),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(!1),j="string"==typeof(t=c.content)?t:t.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),w="string"==typeof(r=c.content)?[]:r.filter(e=>"image"===e.type),S=void 0!==c.details,C=S?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(c.details):"",z=(i=c.customType,o=x("desktop.extension"),i||o),T=lg(c.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&&!f?.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:z}),g&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:x("desktop.hiddenExtensionMessage")}),T&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:T})]}),f?(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*!!j},children:w.map((e,t)=>{let r=lA(e);return r?(0,n.jsx)(cS,{src:r,children:(0,n.jsx)("img",{src:r,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}})},t):null})}),j?(0,n.jsx)(of,{className:"markdown-custom-message",isStreaming:u,cwd:p,onOpenFile:h,children:j}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:x("desktop.noMessage")})]}):(0,n.jsx)("button",{onClick:()=>m(!0),style:{display:"block",width:"100%",padding:"8px 10px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:12,textAlign:"left"},children:j?(a=j,l=x("desktop.showExtensionMessage"),(d=a.replace(/\s+/g," ").trim())?d.length>140?`${d.slice(0,140)}...`:d:l):x("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:[j||C?(0,n.jsx)("button",{onClick:()=>{i9(j||C).then(()=>{k(!0),setTimeout(()=>k(!1),1500)})},style:{padding:"3px 7px",border:"none",background:"none",color:b?"var(--accent)":"var(--text-dim)",cursor:"pointer",fontSize:11},children:x(b?"desktop.copied":"desktop.copy")}):null,(S||g)&&(0,n.jsx)("button",{onClick:()=>{g?m(e=>!e):y(e=>!e)},style:{marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer",fontSize:11},children:x(g?f?"desktop.collapse":"desktop.expand":v?"desktop.hideDetails":"desktop.showDetails")})]}),S&&(g&&f||!g&&v)&&(0,n.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:"calc(12px + var(--chat-font-size-offset, 0px))",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:C})]})})}function lW(e){let{message:t,sessionId:r}=e,{t:i}=(0,J.s)(),[o,a]=(0,s.useState)(null),[l,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(null),p=!t.output&&void 0===t.exitCode&&!t.cancelled,h=t.cancelled||void 0!==t.exitCode&&0!==t.exitCode,x=r&&t.fullOutputPath?`/api/agent/${encodeURIComponent(r)}/bash-output?path=${encodeURIComponent(t.fullOutputPath)}`:null,g=o??t.output,f=async()=>{if(x){d(!0),u(null);try{let e=await fetch(x),t=await e.json();if(!e.ok||!t.success)throw Error(t.error??`HTTP ${e.status}`);a(t.data?.output??"")}catch(e){u(e instanceof Error?e.message:String(e))}finally{d(!1)}}},m=t.excludeFromContext?"bash (local)":"bash",v={type:"toolCall",toolCallId:`bash-${t.timestamp??t.command}`,toolName:m,input:{command:t.command}},y=p?void 0:{role:"toolResult",toolCallId:v.toolCallId,toolName:m,content:g?[{type:"text",text:g}]:[],isError:h,timestamp:t.timestamp};return(0,n.jsxs)("div",{style:{margin:"6px 0"},children:[(0,n.jsx)(lw,{block:v,result:y}),t.truncated&&x&&null===o&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void f(),disabled:l,style:{padding:"3px 8px",border:"1px solid var(--border)",borderRadius:4,background:"none",color:"var(--text-muted)",cursor:l?"wait":"pointer",fontSize:11},children:i(l?"desktop.loading":"desktop.loadFullOutput")}),(0,n.jsx)("a",{href:`${x}&download=1`,style:{fontSize:11,color:"var(--accent)"},children:i("desktop.download")})]}),c&&(0,n.jsx)("div",{style:{marginTop:4,color:"var(--accent-red)",fontSize:11},children:c})]})}function lA(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}`:""}let lP=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,lF=/(?:\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 lD(e){var t,r,i;let o,{content:a}=e,{t:l}=(0,J.s)(),[d,c]=(0,s.useState)(!1),u="string"==typeof a?a:a.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),p=(0,s.useMemo)(()=>{let e,t,r,n,s;return e=[],t=[],r=u.match(lF),n=r?.[1]??"",s=r?.index===void 0?u:u.slice(0,r.index),n.replace(lP,(r,n,s)=>{let i=s.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===n?e.push(...i):t.push(...i),""}),{body:s.trim(),readFiles:e,modifiedFiles:t}},[u]),h=(t=p.readFiles.length,r=p.modifiedFiles.length,i=l,o=[],t>0&&o.push(i("desktop.readFilesCount",{count:t})),r>0&&o.push(i("desktop.modifiedFilesCount",{count:r})),o.length>0?o.join(", "):null),[x,g]=(0,s.useState)(!1),[f,m]=(0,s.useState)(!1),v=(0,s.useRef)(null),y=(0,s.useCallback)(()=>{let e=v.current;e&&(g(e.scrollTop>0),m(e.scrollHeight-e.scrollTop-e.clientHeight>1))},[]);return(0,s.useEffect)(()=>{let e=v.current;if(!e||!d)return;let t=new ResizeObserver(y);return e.addEventListener("scroll",y,{passive:!0}),t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),y(),()=>{e.removeEventListener("scroll",y),t.disconnect()}},[d,y]),(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:()=>c(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":d,children:[(0,n.jsx)("span",{className:"truncate",children:l("desktop.conversationCompacted")}),(0,n.jsx)("span",{className:`opacity-0 transition-opacity group-hover/summary:opacity-60 ${d?"rotate-90":""}`,children:(0,n.jsx)(e2.J,{size:12,className:"shrink-0 transition-all duration-150"})})]})}),d&&(0,n.jsxs)("div",{className:"relative mt-2",children:[(0,n.jsxs)("div",{ref:v,className:"max-h-[280px] overflow-y-auto pr-2 text-text-dim",children:[(0,n.jsx)("p",{className:"mb-2 text-xs leading-relaxed",children:l("desktop.compactionSummaryDescription")}),p.body?(0,n.jsx)(of,{className:"!text-text-dim",children:p.body}):(0,n.jsx)("span",{className:"text-xs",children:l("desktop.noSummary")}),h&&(0,n.jsxs)("div",{className:"mt-3 border-t border-border pt-2 text-xs",children:[(0,n.jsx)("div",{className:"font-medium",children:l("desktop.fileContext",{context:h})}),p.modifiedFiles.length>0&&(0,n.jsx)(lO,{title:l("desktop.modifiedFiles"),files:p.modifiedFiles}),p.readFiles.length>0&&(0,n.jsx)(lO,{title:l("desktop.readFiles"),files:p.readFiles})]})]}),x&&(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"}),f&&(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 lO(e){let{title:t,files:r}=e;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:t}),(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:r.map(e=>(0,n.jsx)("li",{className:"break-all",children:e},e))})]})}function lH(e){let{embedded:t,title:r,subtitle:s,closeLabel:i="Close",onClose:o,children:a,width:l=900,height:d="78vh"}=e;G(!t,o);let c=t?void 0:{"--config-panel-width":`${l}px`,"--config-panel-height":d};return(0,n.jsx)("div",{role:t?void 0:"dialog","aria-modal":t?void 0:"true","aria-label":r,className:`config-panel-root settings-content-panel ${t?"is-embedded":"is-modal"}`,children:(0,n.jsxs)("div",{className:"config-panel-surface settings-content-surface",style:c,children:[!t&&(0,n.jsxs)("div",{className:"config-panel-header settings-content-header",children:[(0,n.jsx)("strong",{className:"config-panel-title",children:r}),s&&(0,n.jsx)("code",{className:"config-panel-subtitle",title:s,children:s}),(0,n.jsx)("button",{type:"button",className:"config-close-button",onClick:o,title:i,"aria-label":i,children:"\xd7"})]}),a]})})}function lB(e){let{children:t}=e;return(0,n.jsx)("div",{className:"settings-content-card",style:{borderRadius:"var(--settings-content-card-radius, 12px)",border:"var(--settings-content-card-border, 1px solid var(--border))",background:"var(--settings-content-card-bg, color-mix(in srgb, var(--bg-panel) 55%, transparent))",overflow:"hidden"},children:t})}function lU(e){let{children:t}=e;return(0,n.jsx)("div",{className:"config-sidebar-group-label",children:t})}function l_(e){let{label:t,children:r,style:s}=e;return(0,n.jsxs)("div",{className:"config-field settings-content-field",style:s,children:[(0,n.jsx)("span",{className:"config-field-label",children:t}),r]})}function lK(e){let{children:t}=e;return(0,n.jsx)("div",{className:"config-empty-state",children:t})}function lq(e){let{variant:t="secondary",size:r="default",className:s,children:i,...o}=e;return(0,n.jsx)("button",{type:"button",...o,className:["config-button",`config-button-${t}`,`config-button-${r}`,s].filter(Boolean).join(" "),children:i})}function lV(e){let{checked:t,disabled:r=!1,loading:s=!1,label:i,onChange:o}=e,a=r||s;return(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":t,"aria-busy":s||void 0,"aria-label":i,title:i,disabled:a,className:`config-switch${s?" is-loading":""}`,onClick:()=>o(!t),children:(0,n.jsx)("span",{className:"config-switch-knob","aria-hidden":"true"})})}function lJ(e){let{active:t,color:r}=e;return(0,n.jsx)("span",{"aria-hidden":"true",className:`config-status-dot${t?" is-active":!1===t?" is-inactive":""}`,style:r?{backgroundColor:r}:void 0})}function lG(e,t){if("bash"===e.toLowerCase()||"powershell"===e.toLowerCase()){let e=t?.command;return"string"==typeof e&&e.trim()?`command:${e.trim()}`:""}let r=t??{},n="string"==typeof r.source_path?r.source_path:"",s="string"==typeof r.destination_path?r.destination_path:"";if(n&&s)return s!==n?`${n}\u0000${s}`:n;for(let e of["path","file_path","file","glob","pattern","directory"]){let t=r[e];if("string"==typeof t&&t)return t}return""}var lY=r(77229);function lX(e){let t,{request:r,queuedCount:i=0,busy:o=!1,onResolve:a,onDismiss:l}=e,{t:d}=(0,J.s)(),[c,u]=(0,s.useState)(""),[p,h]=(0,s.useState)(!1),[x,g]=(0,s.useState)(0),f=(0,s.useRef)(null),m=(0,s.useRef)([]);(0,s.useEffect)(()=>{r&&(u(""),h(!1),g(0))},[r?.id]);let v=(0,s.useCallback)((e,t,r)=>{a(e,r,t)},[a]),y=r?[{key:"allowOnce",labelKey:"approval.allow",descKey:"approval.allowOnceDescription",run:()=>v(!0,"once")},{key:"allowAlways",labelKey:"approval.allowAlways",descKey:"approval.allowAlwaysDescription",scopeKey:"approval.scopeAlways",run:()=>v(!0,"always")},{key:"denyOnce",labelKey:"approval.deny",descKey:"approval.denyOnceDescription",run:e=>v(!1,"once",e?.trim()||void 0)},{key:"denyAlways",labelKey:"approval.denyAlways",descKey:"approval.denyAlwaysDescription",scopeKey:"approval.scopeAlways",run:e=>v(!1,"always",e?.trim()||void 0)}]:[],b=(0,s.useCallback)(e=>{let t=y[e];t&&t.run(c)},[y,c]),k=(0,s.useCallback)(e=>{if(o)return;let t=Number(e.key);if(Number.isInteger(t)&&t>=1&&t<=y.length){e.preventDefault(),b(t-1);return}if("ArrowDown"===e.key||"ArrowRight"===e.key||"Tab"===e.key&&!e.shiftKey){e.preventDefault(),g(e=>(e+1)%y.length);return}if("ArrowUp"===e.key||"ArrowLeft"===e.key||"Tab"===e.key&&e.shiftKey){e.preventDefault(),g(e=>(e-1+y.length)%y.length);return}if("Enter"===e.key){e.preventDefault(),b(x);return}"Escape"===e.key&&(e.preventDefault(),(l??(()=>v(!1,"once","Dismissed")))())},[x,b,o,l,y.length,v]);if((0,s.useEffect)(()=>{m.current[x]?.focus()},[x]),!r)return null;let j=function(e){if(null==e)return"{}";if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}(r.args),w=j.length>4e3,S=r.args&&"object"==typeof r.args&&"command"in r.args?String(r.args.command??""):"",C=(t=lG(r.toolName,r.args))?`${r.toolName}(${t})`:r.toolName;return(0,n.jsx)("div",{style:{position:"fixed",left:0,right:0,bottom:130,zIndex:1300,display:"flex",justifyContent:"center",pointerEvents:"none",padding:"0 14px"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":d("approval.title"),onKeyDown:k,style:{pointerEvents:"auto",width:"min(420px, 100%)",maxHeight:"min(70vh, 520px)",display:"flex",flexDirection:"column",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:16,boxShadow:"0 12px 36px rgba(0,0,0,0.28)",animation:"plan-card-in 0.18s ease-out",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 16px 12px"},children:[(0,n.jsx)(lY.Z,{size:18,weight:"fill",color:"var(--accent-orange, #f59e0b)","aria-hidden":"true"}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsxs)("div",{style:{fontSize:14,fontWeight:650,color:"var(--text)"},children:[d("approval.title"),i>0&&(0,n.jsxs)("span",{style:{marginLeft:8,fontSize:11,fontWeight:500,color:"var(--text-muted)"},children:["+",i," ",d("approval.queued")]})]}),(0,n.jsx)("div",{style:{fontSize:11.5,color:"var(--text-muted)",marginTop:1},children:d("approval.subtitle")})]}),(0,n.jsx)("button",{type:"button","aria-label":d("i18n.close"),onClick:()=>(l??(()=>v(!1,"once","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)(eP.u,{size:14,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{padding:"0 16px",overflowY:"auto",flex:1},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:10},children:[(0,n.jsx)("span",{style:{display:"inline-flex",alignItems:"center",padding:"3px 10px",borderRadius:6,background:"var(--bg-selected)",color:"var(--text)",fontSize:12.5,fontWeight:600,fontFamily:"var(--font-mono)"},children:r.toolName}),S?(0,n.jsx)("span",{style:{fontSize:11.5,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:S}):null]}),(0,n.jsx)("div",{style:{background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"10px 12px",maxHeight:180,overflow:"auto"},children:(0,n.jsx)("pre",{style:{margin:0,fontSize:11.5,lineHeight:1.55,color:"var(--text-muted)",fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:w?`${j.slice(0,4e3)}
|
|
30
|
+
…`:j})}),p&&(0,n.jsx)("textarea",{ref:f,value:c,onChange:e=>u(e.target.value),placeholder:d("approval.reasonPlaceholder"),rows:2,style:{width:"100%",marginTop:10,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:12.5,outline:"none",fontFamily:"inherit",resize:"vertical"}})]}),(0,n.jsx)("div",{role:"listbox","aria-label":d("approval.title"),style:{display:"flex",flexDirection:"column",gap:4,padding:"12px 12px 4px"},children:y.map((e,t)=>{let r=t===x;return(0,n.jsxs)("button",{ref:e=>{m.current[t]=e},type:"button",role:"option","aria-selected":r,tabIndex:r?0:-1,disabled:o,onClick:()=>b(t),onMouseEnter:()=>g(t),style:{display:"flex",alignItems:"center",gap:10,width:"100%",padding:"8px 10px",background:r?"var(--bg-selected)":"none",border:"none",borderRadius:10,cursor:o?"not-allowed":"pointer",textAlign:"left",transition:"background 0.12s"},children:[(0,n.jsxs)("span",{style:{width:18,flexShrink:0,color:r?"var(--text)":"var(--text-dim)",fontSize:12.5,fontWeight:600},children:[t+1,"."]}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("span",{style:{display:"block",fontSize:12.5,fontWeight:600,color:"denyAlways"===e.key?"var(--status-error)":"var(--text)"},children:d(e.labelKey)}),(0,n.jsx)("span",{style:{display:"block",fontSize:11,color:"var(--text-muted)",marginTop:1,lineHeight:1.4},children:"approval.allowAlwaysDescription"===e.descKey||"approval.denyAlwaysDescription"===e.descKey?d(e.descKey,{rule:C}):d(e.descKey)})]}),e.scopeKey&&(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10.5,color:"var(--text-dim)",fontFamily:"var(--font-mono)",maxWidth:130,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d(e.scopeKey)})]},e.key)})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"8px 16px 12px"},children:[(0,n.jsx)("span",{style:{fontSize:10.5,color:"var(--text-dim)"},children:d("approval.keyboardHint")}),(0,n.jsx)("button",{type:"button",onClick:()=>{h(e=>!e),p||requestAnimationFrame(()=>f.current?.focus())},disabled:o,style:{background:"none",border:"none",padding:"4px 6px",color:"var(--text-muted)",fontSize:11,cursor:o?"not-allowed":"pointer",textDecoration:"underline"},children:p?d("approval.hideReason"):d("approval.denyWithReason")})]})]})})}var lZ=r(35828),lQ=r(61719),l0=r(259);function l1(e){let{open:t,planText:r,onExecute:i,onFeedback:o,onExit:a,onClose:l,busy:d=!1}=e,{t:c}=(0,J.s)(),[u,p]=(0,s.useState)(!1),[h,x]=(0,s.useState)(""),[g,f]=(0,s.useState)(!0),m=(0,s.useRef)(null);return((0,s.useEffect)(()=>{t&&(p(!1),x(""),f(!0))},[t]),(0,s.useEffect)(()=>{u&&m.current?.focus()},[u]),t)?(0,n.jsxs)("div",{role:"region","aria-label":c("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:[u&&(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:c("tasks.planReviewFeedbackLabel")}),(0,n.jsx)("textarea",{ref:m,value:h,onChange:e=>x(e.target.value),placeholder:c("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:d,style:{padding:"5px 10px",borderRadius:6,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",fontSize:11.5,cursor:d?"not-allowed":"pointer"},children:c("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>{h.trim()&&o(h.trim())},disabled:d||!h.trim(),style:{padding:"5px 12px",borderRadius:6,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:11.5,fontWeight:600,cursor:d||!h.trim()?"not-allowed":"pointer"},children:c("tasks.planReviewSendFeedback")})]})]}),r&&r.trim()?(0,n.jsxs)("div",{style:{padding:"0 14px 10px"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>f(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:"›"}),c(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:r.trim()})]}):null,(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 10px"},children:[(0,n.jsx)(lZ.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:c("tasks.planReviewTitle")}),(0,n.jsxs)("button",{type:"button",onClick:i,disabled:d,title:c("tasks.planReviewExecute"),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:7,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:650,cursor:d?"not-allowed":"pointer",transition:"opacity 0.12s"},onMouseEnter:e=>{d||(e.currentTarget.style.opacity="0.88")},onMouseLeave:e=>{e.currentTarget.style.opacity="1"},children:[(0,n.jsx)(lQ.r,{size:13,weight:"fill","aria-hidden":"true"}),c("tasks.planReviewExecute")]}),(0,n.jsxs)("button",{type:"button",onClick:()=>{u?p(!1):(p(!0),requestAnimationFrame(()=>m.current?.focus()))},disabled:d,title:c("tasks.planReviewSuggest"),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 10px",borderRadius:7,background:u?"var(--bg-selected)":"none",border:u?"1px solid var(--accent)":"1px solid var(--border)",color:u?"var(--accent)":"var(--text)",fontSize:12,fontWeight:550,cursor:d?"not-allowed":"pointer",transition:"background 0.12s"},onMouseEnter:e=>{d||u||(e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{u||(e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text)")},children:[(0,n.jsx)(K.S,{size:12,"aria-hidden":"true"}),c("tasks.planReviewSuggest")]}),(0,n.jsxs)("button",{type:"button",onClick:()=>{p(!1),a()},disabled:d,title:c("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:d?"not-allowed":"pointer"},onMouseEnter:e=>{d||(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)(l0.f,{size:12,"aria-hidden":"true"}),c("tasks.planReviewExit")]}),(0,n.jsx)("button",{type:"button",onClick:l,disabled:d,title:c("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:d?"not-allowed":"pointer",borderRadius:5},onMouseEnter:e=>{d||(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}function l2(e){let{cwd:t,busy:r,error:s,onCancelAction:i,onConfirmAction:o}=e,{t:a}=(0,J.s)();return G(!r,i),(0,n.jsx)("div",{role:"presentation",style:{position:"fixed",inset:0,zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center",padding:16,background:"rgba(0, 0, 0, 0.4)"},children:(0,n.jsxs)("section",{role:"dialog","aria-modal":"true","aria-labelledby":"project-trust-title",style:{width:440,maxWidth:"100%",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg-panel)",boxShadow:"0 12px 36px rgba(0, 0, 0, 0.24)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:12,padding:"18px 18px 14px"},children:[(0,n.jsx)(lY.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:a("desktop.trustProjectTitle")}),(0,n.jsx)("p",{style:{margin:"7px 0 0",fontSize:12,lineHeight:1.6,color:"var(--text-muted)"},children:a("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:t}),s&&(0,n.jsx)("div",{role:"alert",style:{marginTop:10,color:"var(--accent-red)",fontSize:12,lineHeight:1.5},children:s})]})]}),(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:i,disabled:r,style:{height:32,padding:"0 12px",border:"1px solid var(--border)",borderRadius:5,background:"transparent",color:"var(--text-muted)",cursor:r?"not-allowed":"pointer",fontSize:12},children:a("desktop.cancel")}),(0,n.jsx)("button",{type:"button",onClick:o,disabled:r,style:{height:32,padding:"0 12px",border:"1px solid var(--accent)",borderRadius:5,background:"var(--accent)",color:"var(--accent-contrast)",cursor:r?"wait":"pointer",opacity:r?.7:1,fontSize:12,fontWeight:600},children:a(r?"desktop.trustingProject":"desktop.trustProject")})]})]})})}function l6(e,t,r){let n,s="md"===r?(((n=[]).push("# Queued messages export"),t.sessionId&&n.push(`- Session: ${t.sessionId}`),n.push(`- Source: ${"live"===t.source?"live queue":"pending recovery"}`),n.push(`- Exported: ${t.exportedAt??new Date().toISOString()}`),n.push(""),0===e.length)?n.push("_No entries._"):e.forEach((e,t)=>{var r;n.push(`## ${t+1}. ${"steer"===e.kind?"steer":"follow-up"} \xb7 ${new Date(e.queuedAt).toISOString()}`),e.text&&n.push(e.text),e.images?.length&&n.push(`> _${0===(r=e.images.length)?"":1===r?"(1 image)":`(${r} images)`}_`),n.push("")}),n.join("\n")):JSON.stringify({format:"pi-web-queue",version:1,exportedAt:t.exportedAt??new Date().toISOString(),source:t.source,sessionId:t.sessionId,entries:e.map(e=>{let{kind:t,text:r,images:n}=e;return{kind:t,text:r,...n?.length?{images:n}:{}}})},null,2),i=new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),o=`${t.sessionId??"session"}-queue-${t.source}-${i}.${r}`,a=new Blob([s],{type:"md"===r?"text/markdown;charset=utf-8":"application/json;charset=utf-8"}),l=URL.createObjectURL(a),d=document.createElement("a");d.href=l,d.download=o,d.click(),setTimeout(()=>URL.revokeObjectURL(l),1e3)}function l4(e){return!!e&&"string"==typeof e.type&&"string"==typeof e.data&&"string"==typeof e.mimeType}function l5(e){let t;if(!e||"object"!=typeof e)return null;let r=e.kind;return"steer"!==r&&"followUp"!==r||"string"!=typeof e.text?null:(Array.isArray(e.images)&&0===(t=e.images.filter(l4)).length&&(t=void 0),{kind:r,text:e.text,...t?{images:t}:{}})}function l3(e){let t;try{t=JSON.parse(e)}catch{return[]}let r=Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.entries)?t.entries:null;return r?r.map(l5).filter(e=>null!==e):[]}function l8(e){let{items:t,sessionId:r,onResolve:i,onExport:o,onStageImport:a,onDismiss:l,mode:d="recovery"}=e,{t:c}=(0,J.s)(),u=tu(),[p,h]=(0,s.useState)(()=>new Set(t.map(e=>e.id))),[x,g]=(0,s.useState)(!1),[f,m]=(0,s.useState)(null),v=(0,s.useRef)(null);(0,s.useEffect)(()=>{h(new Set(t.map(e=>e.id)))},[t]),G(!x,l);let y=t.filter(e=>p.has(e.id)),b=y.length===t.length&&t.length>0,k=e=>h(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r}),j=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(0!==y.length){g(!0),m(null);try{await i("keep"===e?y.map(e=>e.id):[],"discard"===e?y.map(e=>e.id):[],t)}catch(e){m(e instanceof Error?e.message:String(e))}finally{g(!1)}}},w=async e=>{let t=await o();if(!t)return;let n=t.recovery.filter(e=>p.has(e.id));n.length&&(l6(n,{sessionId:r,source:"recovery"},e),m(c("desktop.queueExported",{count:n.length})))},S=async e=>{let t=l3(await e.text());if(!t.length)return void m(c("desktop.queueImportEmpty"));let r=await a(t);m(null===r?c("desktop.queueImportEmpty"):c("desktop.queueImported",{count:r}))};return(0,n.jsxs)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/40 p-3",role:"presentation",children:[(0,n.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"import"===d?c("desktop.queueImportTitle"):c("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"===d?c("desktop.queueImportTitle"):c("desktop.queueRecoveryTitle")}),(0,n.jsx)("p",{className:"mt-1 text-xs leading-5 text-(--text-muted)",children:"import"===d?c("desktop.queueImportDescription"):c("desktop.queueRecoveryDescription")})]}),(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:()=>h(new Set(b?[]:t.map(e=>e.id))),children:b?c("desktop.selectNone"):c("desktop.selectAll")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:x||0===y.length,onClick:()=>void w("json"),children:"JSON"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:x||0===y.length,onClick:()=>void w("md"),children:"MD"}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",disabled:x,onClick:()=>v.current?.click(),children:c("desktop.import")}),(0,n.jsx)("button",{type:"button",className:"markdown-code-action",onClick:l,"aria-label":c("desktop.close"),children:"\xd7"})]})]}),(0,n.jsx)("div",{className:"grid flex-1 content-start gap-2 overflow-y-auto p-3",children:t.map(e=>{let t=p.has(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>k(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:()=>k(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?c("desktop.steer"):c("desktop.followUp")}),(0,n.jsx)("span",{children:new Date(e.queuedAt).toLocaleString()}),e.hasImages?(0,n.jsx)("span",{children:c("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||c("desktop.queueNoText")})]})]},e.id)})}),(0,n.jsxs)("footer",{className:["flex flex-wrap items-center gap-2 border-t border-(--border) px-4 py-3",u?"justify-stretch":"justify-end"].join(" "),children:[f?(0,n.jsx)("span",{className:"mr-auto text-xs text-(--text-muted)",children:f}):null,(0,n.jsx)("button",{type:"button",className:"rounded-md px-3 py-2 text-xs text-(--text-muted) hover:bg-(--bg-hover)",onClick:l,disabled:x,children:c("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 j("discard"),disabled:x||0===y.length,children:c("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 j("keep"),disabled:x||0===y.length,children:c("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 j("keep",!0),disabled:x||0===y.length,children:c("desktop.requeueAndContinue")})]})]}),(0,n.jsx)("input",{ref:v,type:"file",accept:".json,application/json",className:"hidden",onChange:e=>{let t=e.target.files?.[0];t&&S(t),e.currentTarget.value=""}})]})}var l7=r(14801),l9=r(8550),de=r(58309),dt=r(44825),dr=r(25494),dn=r(9107),ds=r(25182),di=r(69618),da=r(91669),dl=r(16449),dd=r(47603),dc=r(78890),du=r(88074);let dp=[{id:"all",icon:de.A,labelKey:"palette.scope.all"},{id:"commands",icon:dt.A,labelKey:"palette.scope.commands"},{id:"sessions",icon:dr.A,labelKey:"palette.scope.sessions"},{id:"files",icon:dn.A,labelKey:"palette.scope.files"}],dh=["suggested","navigation","panels","configure"];function dx(e){let{text:t,query:r}=e,s=rK(t,r);return(0,n.jsx)(n.Fragment,{children:s.map((e,t)=>e.hit?(0,n.jsx)("mark",{className:"palette-mark",children:e.text},t):(0,n.jsx)("span",{children:e.text},t))})}function dg(e){let{open:t,onOpenChange:r,sessions:i,projectKey:o,cwd:a,commands:l,onOpenSession:d,onOpenFile:c,onOpenMessage:u}=e,{t:p}=(0,J.s)(),[h,x]=(0,s.useState)(""),[g,f]=(0,s.useState)("all"),[m,v]=(0,s.useState)([]),[y,b]=(0,s.useState)(!1),[k,j]=(0,s.useState)([]),[w,S]=(0,s.useState)(!1),[C,z]=(0,s.useState)([]),T=(0,s.useRef)(null),R=(0,s.useRef)(!1),{scope:I,query:N}=rB(h,g);(0,s.useEffect)(()=>{t&&(R.current=!1,v(rO(o)),x(""),b(!1))},[t,o]),(0,s.useEffect)(()=>{b(!1)},[N]),(0,s.useEffect)(()=>{if(!t||!a)return void z([]);let e=!1;return(async()=>{try{let t=await fetch(`/api/file-index?cwd=${encodeURIComponent(a)}`);if(!t.ok)return;let r=await t.json().catch(()=>null);!e&&Array.isArray(r?.files)&&z(r.files)}catch{}})(),()=>{e=!0}},[t,a]),(0,s.useEffect)(()=>{if(!t)return;if("sessions"!==I&&"all"!==I){j([]),S(!1);return}let e=N.trim(),r=e?i.filter(e=>!e.transient).filter(t=>{let r=`${t.name??""} ${t.firstMessage??""}`.toLowerCase();return e.toLowerCase().split(/\s+/).every(e=>r.includes(e))}).slice(0,80).map(e=>({session:e})):i.filter(e=>!e.transient).slice(0,3).map(e=>({session:e}));if(!e){j(r),S(!1);return}T.current?.abort();let n=new AbortController;return T.current=n,S(!0),(async()=>{let t=[];try{let r=await fetch(`/api/sessions/search?q=${encodeURIComponent(e)}`,{signal:n.signal});if(r.ok){let e=await r.json().catch(()=>null);t=(e?.results??[]).slice(0,80).map(e=>({session:e.session,entryId:e.entryId,snippet:`${e.before??""}${e.match??""}${e.after??""}`.trim()}))}}catch{}if(n.signal.aborted)return;let s=new Set(r.map(e=>e.session.id));j([...r,...t.filter(e=>!s.has(e.session.id))]),S(!1)})(),()=>{n.abort()}},[t,I,N,i]);let M=(0,s.useMemo)(()=>{if("files"!==I&&"all"!==I)return[];let e=N.trim().toLowerCase();return(e?C.filter(t=>e.split(/\s+/).every(e=>t.toLowerCase().includes(e))):C.slice(0,3)).slice(0,80)},[C,N,I]),E=(0,s.useMemo)(()=>{let e=N.trim().toLowerCase(),t=e?l.filter(t=>{let r=`${t.title} ${(t.keywords??[]).join(" ")}`.toLowerCase();return e.split(/\s+/).every(e=>r.includes(e))}):l,r=new Map;for(let e of dh)r.set(e,[]);for(let e of t)r.get(e.section)?.push(e);return r},[l,N]),$=(0,s.useCallback)((e,t)=>{let n=rF(m,r_(e),t,Date.now());v(n),rH(o,n),setTimeout(()=>r(!1),0)},[m,o,r]),L=(0,s.useCallback)(e=>{R.current||(R.current=!0,$(h,I),setTimeout(()=>e.run(),0))},[h,I,$]),W=(0,s.useCallback)(e=>{$(h,I),setTimeout(()=>{e.entryId?u(e.session,e.entryId):d(e.session)},0)},[h,I,$,u,d]),A=(0,s.useCallback)(e=>{$(h,I),setTimeout(()=>c(e),0)},[h,I,$,c]),P="all"===I||"commands"===I,F="all"===I||"sessions"===I,D="all"===I||"files"===I,O="u">typeof navigator&&/mac/i.test(navigator.platform),H=e=>y?e:e.slice(0,3),B=!y&&(F&&k.length>3||D&&M.length>3||P&&dh.some(e=>(E.get(e)?.length??0)>3));return(0,n.jsx)(l9.bL,{open:t,onOpenChange:r,children:(0,n.jsxs)(l9.ZL,{children:[(0,n.jsx)(l9.hJ,{className:"palette-overlay"}),(0,n.jsxs)(l9.UC,{className:"palette-content","aria-describedby":void 0,children:[(0,n.jsx)(l9.hE,{className:"palette-sr-title",children:p("palette.placeholder")}),(0,n.jsxs)(l7.uB,{shouldFilter:!1,loop:!0,label:p("palette.placeholder"),children:[(0,n.jsxs)("div",{className:"palette-search",children:[(0,n.jsx)(rb.A,{size:15,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)(l7.uB.Input,{autoFocus:!0,value:h,onValueChange:x,placeholder:p("palette.placeholder"),className:"palette-input","aria-label":p("palette.placeholder")}),(0,n.jsx)("span",{className:"palette-kbd",children:rq(O)})]}),(0,n.jsx)("div",{className:"palette-scopes",role:"tablist","aria-label":p("palette.placeholder"),children:dp.map(e=>{let{id:t,icon:r,labelKey:s}=e,i=I===t;return(0,n.jsxs)("button",{type:"button",role:"tab","aria-selected":i,className:`palette-scope${i?" is-active":""}`,onClick:()=>{f(t),x(r_(h)),b(!1)},children:[(0,n.jsx)(r,{size:12,"aria-hidden":"true"}),p(s)]},t)})}),(0,n.jsxs)(l7.uB.List,{className:"palette-list",children:[(0,n.jsxs)(l7.uB.Empty,{className:"palette-empty",children:[(0,n.jsx)("div",{children:p("palette.empty")}),(0,n.jsx)("div",{className:"palette-empty-hint",children:p("palette.emptyHint")})]}),!N&&m.length>0&&(0,n.jsx)(l7.uB.Group,{heading:p("palette.section.history"),className:"palette-group",children:m.slice(0,y?20:3).map(e=>(0,n.jsxs)(l7.uB.Item,{value:`history ${e.query}`,onSelect:()=>{x(`${rU(e.scope)}${e.query}`),f(e.scope),b(!1)},className:"palette-item",children:[(0,n.jsx)(rI.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:e.query})})]},`${e.scope}:${e.query}`))}),F&&k.length>0&&(0,n.jsx)(l7.uB.Group,{heading:p("palette.section.sessions"),className:"palette-group",children:H(k).map(e=>(0,n.jsxs)(l7.uB.Item,{value:`${e.session.name??e.session.firstMessage??e.session.id} ${e.snippet??""}`,onSelect:()=>W(e),className:"palette-item",children:[(0,n.jsx)(dr.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsxs)("span",{className:"palette-item-body",children:[(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(dx,{text:e.session.name||e.session.firstMessage||e.session.id,query:N})}),e.snippet&&(0,n.jsx)("span",{className:"palette-item-sub",children:(0,n.jsx)(dx,{text:e.snippet,query:N})})]}),(0,n.jsx)("span",{className:"palette-item-meta",children:e.session.cwd?e.session.cwd.split(/[\\/]/).filter(Boolean).pop():""})]},`s-${e.session.id}-${e.entryId??"session"}`))}),D&&M.length>0&&(0,n.jsx)(l7.uB.Group,{heading:p("palette.section.files"),className:"palette-group",children:H(M).map(e=>(0,n.jsxs)(l7.uB.Item,{value:`file ${e}`,onSelect:()=>A(e),className:"palette-item",children:[e.endsWith("/")?(0,n.jsx)(rj.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}):(0,n.jsx)(dn.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(dx,{text:e,query:N})})})]},`f-${e}`))}),P&&dh.map(e=>{let t=E.get(e)??[];return 0===t.length?null:(0,n.jsx)(l7.uB.Group,{heading:p(`palette.section.${e}`),className:"palette-group",children:H(t).map(e=>{let t=e.icon;return(0,n.jsxs)(l7.uB.Item,{value:`${e.title} ${(e.keywords??[]).join(" ")}`,onSelect:()=>L(e),className:"palette-item",children:[(0,n.jsx)(t,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:(0,n.jsx)(dx,{text:e.title,query:N})})}),e.shortcut&&(0,n.jsx)("span",{className:"palette-kbd",children:e.shortcut})]},e.id)})},e)}),w&&(0,n.jsx)("div",{className:"palette-status",children:p("palette.searching")}),B&&(0,n.jsxs)(l7.uB.Item,{value:"__show_more__",onSelect:()=>b(!0),className:"palette-item palette-item-more",children:[(0,n.jsx)(ds.A,{size:14,"aria-hidden":"true",style:{flexShrink:0,color:"var(--text-dim)"}}),(0,n.jsx)("span",{className:"palette-item-body",children:(0,n.jsx)("span",{className:"palette-item-title",children:p("palette.showMore")})})]})]})]})]})]})})}function df(e){let{message:t}=e,r=(()=>{if(!("content"in t))return"";let e=t.content;return"string"==typeof e?e:Array.isArray(e)?e.map(e=>"string"==typeof e?e:e&&"object"==typeof e&&"text"in e&&"string"==typeof e.text?e.text:"").join("\n").trim():""})();return r?(0,n.jsx)("span",{style:{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:r}):null}let dm=(0,s.memo)(function(e){let{message:t,isStreaming:r,showTimestamp:i,prevTimestamp:o,contentRenderer:a,actions:l,entryId:d}=e,c=t.role,u="user"===c,p=a?a(t):(0,n.jsx)(df,{message:t}),h=(0,s.useMemo)(()=>{if(!i)return null;let e=t.timestamp;if("number"==typeof e&&"number"==typeof o&&e-o<6e4)return null;if(!e)return null;let r=Math.max(0,Date.now()-e);return r<6e4?"just now":r<36e5?`${Math.round(r/6e4)}m ago`:r<864e5?`${Math.round(r/36e5)}h ago`:`${Math.round(r/864e5)}d ago`},[t,o,i]);return"toolResult"===c?null:(0,n.jsxs)("article",{"data-entry-id":d,"data-role":c,style:{display:"flex",flexDirection:"column",gap:6,marginInline:"0",paddingBlock:6},children:[h&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--cds-text-faint, var(--text-dim))",textAlign:"center",letterSpacing:"0.02em"},children:h}),u?(0,n.jsx)("div",{style:{alignSelf:"flex-end",maxWidth:"min(78%, 720px)",padding:"10px 14px",borderRadius:"var(--cds-radius-bubble, 18px)",background:"var(--user-bg, var(--bg-selected))",color:"var(--cds-text-primary, var(--text))",fontSize:"var(--chat-content-font-size, 14px)",lineHeight:1.6,overflowWrap:"anywhere"},children:p}):(0,n.jsx)("div",{style:{alignSelf:"stretch",paddingInline:2,fontSize:"var(--chat-content-font-size, 14px)",lineHeight:1.65,color:"var(--cds-text-primary, var(--text))",opacity:r?1:void 0},children:p}),l&&(0,n.jsx)("div",{style:{display:"flex",gap:4,justifyContent:u?"flex-end":"flex-start",opacity:.75},children:l})]})});function dv(e){let t="toolCall"===e.type?e.status:"success";return"error"===t?{color:"var(--status-error)",label:"failed"}:"running"===t?{color:"var(--accent)",label:"running"}:{color:"var(--status-success)",label:"done"}}function dy(e){let{block:t}=e,r=(()=>{switch(t.type){case"text":return t.text;case"thinking":return t.thinking??"";case"toolCall":{let e=t.input;if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch{return""}}case"custom":return"string"==typeof t.message.content?t.message.content:"";default:return""}})();return r.trim()?(0,n.jsx)("pre",{style:{margin:0,fontSize:"var(--text-ui-xs)",lineHeight:1.55,color:"var(--cds-text-secondary, var(--text-muted))",fontFamily:"var(--font-mono)",whiteSpace:"pre-wrap",overflowWrap:"anywhere",maxHeight:"16rem",overflowY:"auto"},children:r.length>4e3?r.slice(0,4e3)+"…":r}):null}function db(e,t){switch(e.type){case"toolCall":return e.toolName;case"text":return e.text.slice(0,60)||`Step ${t+1}`;case"thinking":return"thinking";case"image":return"image";case"custom":return e.customType;default:return`Step ${t+1}`}}function dk(e){return[...e.querySelectorAll("a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex='-1'])")].filter(e=>!(e.hasAttribute("disabled")||"true"===e.getAttribute("aria-hidden")||e.closest("[inert]"))&&e.getClientRects().length>0)}function dj(e,t){(0,s.useEffect)(()=>{if(!t)return;let r=e.current;if(!r)return;let n=document.activeElement instanceof HTMLElement?document.activeElement:null;if(!r.contains(document.activeElement)){let e=r.matches("[data-claude-focus-anchor]")?r:r.querySelector("[data-claude-focus-anchor]");(e??dk(r)[0])?.focus({preventScroll:!0})}let s=e=>{if("Tab"!==e.key||!("u"<typeof document)&&null!==document.querySelector("[data-settings-child-dialog]"))return;let t=dk(r);if(0===t.length)return;let n=t[0],s=t[t.length-1],i=document.activeElement;if(!(i instanceof Node)||!r.contains(i)){e.preventDefault(),(e.shiftKey?s:n).focus({preventScroll:!0});return}e.shiftKey&&i===n?(e.preventDefault(),s.focus({preventScroll:!0})):e.shiftKey||i!==s||(e.preventDefault(),n.focus({preventScroll:!0}))};return document.addEventListener("keydown",s,!0),()=>{document.removeEventListener("keydown",s,!0),n?.isConnected&&n.focus({preventScroll:!0})}},[t,e])}var dw=r(8143),dS=r(64962),dC=r(41189);let dz={xxs:"h-5 gap-1 rounded-[6px] px-1.5 text-[11px]",xs:"h-6 gap-1 rounded-[6px] px-2 text-[11.5px]",sm:"h-7 gap-1.5 rounded-[8px] px-2.5 text-xs",md:"h-8 gap-1.5 rounded-[8px] px-3.5 text-sm",lg:"h-10 gap-2 rounded-[12px] px-5 text-[15px] font-medium",icon:"size-8 rounded-[8px] p-0"},dT={primary:{root:"border-transparent text-[var(--accent-fg)] font-medium",paint:"bg-clay group-hover/btn:bg-clay-hover"},secondary:{root:"border-transparent text-[var(--text)] font-normal",paint:"bg-[var(--cds-fill-secondary)] shadow-field group-hover/btn:bg-[var(--cds-fill-secondary-hover)]"},ghost:{root:"border-transparent text-[var(--text-muted)] font-normal group-hover/btn:text-[var(--text)]",paint:"bg-transparent group-hover/btn:bg-[var(--cds-fill-ghost-hover)]"},danger:{root:"border-transparent text-[var(--accent-fg)] font-medium",paint:"bg-[var(--status-error)] group-hover/btn:opacity-90"},outline:{root:"border-[var(--cds-hairline-2)] text-[var(--text)] font-normal",paint:"bg-transparent group-hover/btn:bg-[var(--cds-fill-ghost-hover)]"}},dR="duration-[var(--cds-dur-fast)] ease-[var(--cds-ease-swift)]";function dI(e){let{variant:t="secondary",size:r="md",icon:s,iconPosition:i="left",loading:o=!1,disabled:a,className:l,children:d,...c}=e,u=dT[t],p="icon"===r||void 0===d&&!!s;return(0,n.jsxs)("button",{...c,type:c.type??"button","data-cds":"Button","data-variant":t,"data-size":r,disabled:a||o,className:["group/btn relative isolate inline-flex shrink-0 select-none items-center justify-center border font-sans outline-none","transition-[transform,box-shadow,color,background-color] active:scale-[0.98]","disabled:pointer-events-none disabled:opacity-35",dR,dz[r],u.root,l].filter(Boolean).join(" "),children:[(0,n.jsx)("span",{"aria-hidden":"true","data-cds-part":"paint",className:["absolute inset-0 -z-10 rounded-[inherit] transition-[background-color,box-shadow,color]",dR,u.paint].join(" ")}),o?(0,n.jsx)("span",{"aria-hidden":"true",className:"size-3.5 shrink-0 animate-spin rounded-full border-2 border-current border-t-transparent"}):s&&"left"===i?(0,n.jsx)("span",{className:"flex shrink-0 items-center justify-center leading-none",children:s}):null,null!=d?(0,n.jsx)("span",{className:"truncate",children:d}):null,o||!s||"right"!==i||p?null:(0,n.jsx)("span",{className:"flex shrink-0 items-center justify-center leading-none",children:s})]})}var dN=r(68562);function dM(){return(0,n.jsx)("svg",{viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M2.5 6.5 4.8 8.8 9.5 3.6"})})}let dE=[{id:"all",icon:rb.A,labelKey:"palette.scope.all"},{id:"commands",icon:rM.A,labelKey:"palette.scope.commands"},{id:"sessions",icon:dr.A,labelKey:"palette.scope.sessions"},{id:"files",icon:dn.A,labelKey:"palette.scope.files"}],d$=["suggested","navigation","panels","configure"];function dL(e){let{text:t,query:r}=e,s=rK(t,r);return(0,n.jsx)(n.Fragment,{children:s.map((e,t)=>e.hit?(0,n.jsx)("mark",{className:"cds-mark",children:e.text},t):(0,n.jsx)("span",{children:e.text},t))})}let dW="sidebar";function dA(e){return"string"==typeof e&&S.includes(e)}function dP(){if("u"<typeof document)return dW;let e=document.documentElement.dataset.uiKitSidebarToggle;if(dA(e))return e;try{let e=window.localStorage.getItem("pi-ui-kit-sidebar-toggle");if(dA(e))return e}catch{}return dW}function dF(e){let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:["data-ui-kit-sidebar-toggle"]}),window.addEventListener("storage",e),()=>{t.disconnect(),window.removeEventListener("storage",e)}}function dD(){return(0,s.useSyncExternalStore)(dF,dP,()=>dW)}function dO(e){let{label:t,onClick:r,active:s=!1,children:i}=e;return(0,n.jsx)("button",{type:"button",className:"app-no-drag claude-icon-button"+(s?" is-active":""),onClick:r,title:t,"aria-label":t,"aria-pressed":s||void 0,children:i})}function dH(e){let{isDark:t,toggleTheme:r,translate:i}=e,[o,a]=(0,s.useState)(!1);(0,s.useEffect)(()=>{a(!0)},[]);let l=i(o?t?"desktop.switchToLight":"desktop.switchToDark":"desktop.switchToLight");return(0,n.jsx)("button",{type:"button",className:"app-no-drag claude-icon-button",suppressHydrationWarning:!0,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();r({x:t.left+t.width/2,y:t.top+t.height/2})},title:l,"aria-label":l,"aria-pressed":!o||t,children:o&&!t?(0,n.jsx)(O.A,{size:15,"aria-hidden":"true"}):(0,n.jsx)(D.b,{size:15,"aria-hidden":"true"})})}function dB(e){let{label:t,value:r,copy:s}=e;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"claude-info-label",children:t}),(0,n.jsx)("span",{className:"claude-info-value",children:r}),(0,n.jsx)("span",{className:"claude-info-action",children:s})]})}function dU(e){let{label:t,copied:r,onClick:s}=e;return(0,n.jsx)("button",{type:"button",className:"claude-copy-button",title:t,"aria-label":t,onClick:s,children:r?(0,n.jsx)(q.J,{size:11,"aria-hidden":"true"}):(0,n.jsx)(V.Q,{size:11,"aria-hidden":"true"})})}function d_(e){let{label:t,onClick:r,disabled:s=!1,children:i}=e;return(0,n.jsx)("button",{type:"button",className:"claude-sidebar-rail-button",onClick:r,disabled:s,title:t,"aria-label":t,children:i})}let dK=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function dq(e,t){return dK.compare(e.name||e.modelId,t.name||t.modelId)||dK.compare(e.provider,t.provider)||dK.compare(e.modelId,t.modelId)}function dV(e){let{active:t}=e;return t?(0,n.jsx)("span",{className:"claude-model-mark is-active","aria-hidden":"true",children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"1.5 5 4 7.5 8.5 2.5"})})}):(0,n.jsx)("span",{className:"claude-model-mark","aria-hidden":"true"})}let dJ={primary:"primary",secondary:"secondary",ghost:"ghost",danger:"danger",outline:"secondary"},dG={xxs:"small",xs:"small",sm:"small",md:"default",lg:"default",icon:"small"},dY=new Set(["idle","running"]),dX={idle:"var(--ds-text-muted)",queued:"var(--status-info)",running:"var(--accent)",success:"var(--status-success)",warning:"var(--status-warning)",error:"var(--status-error)"},dZ={xs:5,sm:7,md:9},dQ="duration-[var(--cds-dur-fast)] ease-[var(--cds-ease-swift)]",d0={idle:"var(--text-dim)",queued:"var(--status-info)",running:"var(--cds-clay)",success:"var(--status-success)",warning:"var(--status-warning)",error:"var(--status-error)"},d1={xs:5,sm:6,md:8},d2={button:{pi:function(e){let{variant:t="secondary",size:r="md",icon:s,iconPosition:i="left",loading:o,className:a,children:l,...d}=e;return(0,n.jsxs)(lq,{...d,variant:dJ[t],size:dG[r],className:a,"aria-busy":o||void 0,children:[s&&"left"===i?s:null,l,s&&"right"===i?s:null]})},claude:dI},segmented:{pi:function(e){let{items:t,value:r,onChange:s,ariaLabel:i,className:o}=e;return(0,n.jsx)("div",{className:["settings-segmented",o].filter(Boolean).join(" "),role:"group","aria-label":i,children:t.map(e=>(0,n.jsxs)("button",{type:"button","aria-pressed":e.id===r,onClick:()=>s(e.id),children:[e.icon,e.label,void 0!==e.badge?(0,n.jsx)("span",{children:e.badge}):null]},e.id))})},claude:function(e){let{items:t,value:r,onChange:i,size:o="md",ariaLabel:a,className:l}=e,d=t.findIndex(e=>e.id===r),c=d>=0?d:0,u=(0,s.useRef)(null),p=(0,s.useRef)([]),[h,x]=(0,s.useState)({left:1,width:0,opacity:0});return(0,s.useLayoutEffect)(()=>{let e=u.current;if(!e)return;let t=()=>{let e=p.current[c];e&&x({left:e.offsetLeft,width:e.offsetWidth,opacity:1,transition:"left var(--cds-dur-snap) var(--cds-ease-snap), width var(--cds-dur-snap) var(--cds-ease-snap)"})};t();let r=new ResizeObserver(t);for(let t of(r.observe(e),p.current))t&&r.observe(t);return()=>r.disconnect()},[c,t.length]),(0,n.jsxs)("div",{"data-cds":"SegmentedControl","data-segmented":"",role:"group","aria-label":a,ref:u,className:["relative inline-flex max-w-full select-none items-stretch overflow-x-auto rounded-full p-px transition-colors [scrollbar-width:none]","[&::-webkit-scrollbar]:hidden","sm"===o?"h-7 text-[11.5px]":"h-8 text-xs",l].filter(Boolean).join(" "),style:{background:"var(--cds-segmented-track, var(--cds-fill-secondary))"},children:[(0,n.jsx)("div",{"aria-hidden":"true","data-cds-part":"indicator",className:"pointer-events-none absolute top-px bottom-px rounded-full bg-[var(--cds-surface-3)] shadow-[0_0_0_0.5px_var(--cds-hairline-2)]",style:h}),t.map((e,t)=>{let r=t===c;return(0,n.jsxs)("button",{type:"button",ref:e=>{p.current[t]=e},"aria-pressed":r,"data-active":r?"":void 0,onClick:()=>i(e.id),className:["relative z-10 flex h-full flex-none items-center justify-center gap-1.5 whitespace-nowrap rounded-full px-3 transition-colors duration-[var(--cds-dur-snap)] ease-[var(--cds-ease-snap)]",r?"font-medium text-[var(--text)]":"font-normal text-[var(--text-muted)] hover:text-[var(--text)]"].join(" "),children:[e.icon?(0,n.jsx)("span",{className:"flex shrink-0 items-center justify-center",children:e.icon}):null,(0,n.jsx)("span",{children:e.label}),void 0!==e.badge?(0,n.jsx)("span",{className:"rounded-full bg-[var(--cds-fill-secondary)] px-1.5 text-[10px] leading-tight tabular-nums",children:e.badge}):null]},e.id)})]})}},toggle:{pi:function(e){let{checked:t,onChange:r,disabled:s,ariaLabel:i,id:o,className:a}=e;return(0,n.jsx)("button",{type:"button",role:"switch",id:o,"aria-checked":t,"aria-label":i,disabled:s,onClick:()=>r(!t),className:["settings-toggle",a].filter(Boolean).join(" "),children:(0,n.jsx)("span",{className:"settings-toggle-knob"})})},claude:function(e){let{checked:t,onChange:r,disabled:s,ariaLabel:i,id:o,className:a}=e;return(0,n.jsx)("button",{type:"button",role:"switch",id:o,"aria-checked":t,"aria-label":i,disabled:s,onClick:()=>r(!t),"data-cds":"Switch",className:["relative inline-flex h-5 w-[34px] shrink-0 cursor-pointer items-center rounded-full border-0 p-0","shadow-[inset_0_0_0_1px_var(--cds-hairline-1)] transition-colors",dQ,"disabled:cursor-not-allowed disabled:opacity-50",t?"bg-clay":"bg-[var(--cds-fill-secondary)]",a].filter(Boolean).join(" "),children:(0,n.jsx)("span",{"aria-hidden":"true",className:["pointer-events-none block size-4 rounded-full bg-[var(--bg-panel)] shadow-[0_1px_2px_var(--cds-shadow-tint)] transition-transform",dQ,t?"translate-x-[15px]":"translate-x-[1px]"].join(" ")})})}},status:{pi:function(e){let{tone:t,size:r="sm",pulse:s=!1,title:i,label:o,className:a}=e,l="running"===t,d={};dY.has(t)||(d.background=dX[t]);let c=dZ[r];7!==c&&(d.width=c,d.height=c),s&&(d.animation="tab-breathe 1.8s ease-in-out infinite");let u=o??i;return(0,n.jsx)("span",{"aria-hidden":!u||void 0,role:u?"img":void 0,"aria-label":u,title:i,className:["config-status-dot",l?"is-active":null,a].filter(Boolean).join(" "),style:d})},claude:function(e){let{tone:t,size:r="sm",pulse:s,title:i,label:o,className:a}=e,l=d1[r],d=s??"running"===t,c=o??i,u={width:l,height:l,background:d0[t]};"running"===t&&(u.boxShadow="0 0 0 3px color-mix(in srgb, var(--cds-clay) 18%, transparent)");let p="running"===t&&d?"drop-ring-pulse 2.4s var(--cds-ease-pulse) infinite":"queued"===t&&d?"pulse 1.2s var(--cds-ease-pulse) infinite":void 0;return p&&(u.animation=p),(0,n.jsx)("span",{"data-cds":"StatusDot","data-kind":t,"aria-hidden":!c||void 0,role:c?"img":void 0,"aria-label":c,title:i,className:["inline-block shrink-0 rounded-full",a].filter(Boolean).join(" "),style:u})}},field:{pi:function(e){let{size:t="md",invalid:r,className:s,style:i,...o}=e,a={...i};return"sm"===t&&(a.height="var(--cds-control-height, var(--ds-field-height))"),r&&(a.boxShadow="inset 0 0 0 1px var(--status-error)"),(0,n.jsx)("input",{...o,"aria-invalid":r||void 0,className:["field-input",s].filter(Boolean).join(" "),style:a})},claude:function(e){let{size:t="md",invalid:r,className:s,style:i,...o}=e;return(0,n.jsx)("input",{...o,"aria-invalid":r||void 0,"data-cds":"Field",className:["w-full rounded-[var(--cds-radius)] border-0 bg-[var(--cds-fill-secondary)] px-2.5","text-[13px] text-[var(--text)] outline-none","shadow-[inset_0_0_0_1px_var(--cds-hairline-1)]","transition-[box-shadow,background-color]","duration-[var(--cds-dur-fast)] ease-[var(--cds-ease-swift)]","placeholder:text-[var(--text-dim)]","sm"===t?"h-7":"h-8",s].filter(Boolean).join(" "),style:{...i,...r?{boxShadow:"inset 0 0 0 1px var(--status-error)"}:{}}})}},scrollFade:{pi:function(e){let{children:t,className:r,edges:s="both",size:i=28}=e,o={"--chat-fade-top":`${"top"===s||"both"===s?i:0}px`,"--chat-fade-bottom":`${"bottom"===s||"both"===s?i:0}px`};return(0,n.jsx)("div",{className:["chat-scroll-fade",r].filter(Boolean).join(" "),style:o,children:t})},claude:function(e){let{children:t,className:r,edges:s="both",size:i=28}=e,o="top"===s||"both"===s?i:0,a="bottom"===s||"both"===s?i:0;return(0,n.jsx)("div",{"data-cds":"ScrollFade",className:["relative","transition-[mask-image] duration-[var(--cds-dur-snap)] ease-[var(--cds-ease-swift)]",r].filter(Boolean).join(" "),style:{"--cds-scroll-fade-top":`${o}px`,"--cds-scroll-fade-bottom":`${a}px`,...function(e,t){if(0===e&&0===t)return{};let r="color-mix(in srgb, black 42%, transparent)",n=`linear-gradient(to bottom, transparent 0, ${r} calc(var(--cds-scroll-fade-top) * 0.45), black var(--cds-scroll-fade-top), black calc(100% - var(--cds-scroll-fade-bottom)), ${r} calc(100% - var(--cds-scroll-fade-bottom) * 0.45), transparent 100%)`;return{maskImage:n,WebkitMaskImage:n}}(o,a)},children:t})}},dialogShell:{pi:lH,claude:function(e){let{embedded:t,title:r,subtitle:i,closeLabel:o="Close",onClose:a,children:l,width:d=900,height:c="78vh"}=e,u=(0,s.useRef)(null);G(!t,a),dj(u,!t);let p=t?void 0:{"--cds-dialog-width":`${d}px`,"--cds-dialog-height":c,"--config-panel-width":`${d}px`,"--config-panel-height":c};return(0,n.jsx)("div",{role:t?void 0:"dialog","aria-modal":t?void 0:"true","aria-label":r,"data-cds":"DialogShell","data-embedded":t?"true":void 0,className:`cds-overlay config-panel-root settings-content-panel${t?" is-embedded cds-overlay-embedded":" is-modal"}`,children:(0,n.jsxs)("div",{ref:u,tabIndex:-1,"data-claude-focus-anchor":"true",className:"cds-card cds-dialog config-panel-surface settings-content-surface",style:p,children:[!t&&(0,n.jsxs)("header",{className:"cds-dialog-header",children:[(0,n.jsxs)("div",{className:"cds-dialog-heading",children:[(0,n.jsx)("strong",{className:"cds-dialog-title",children:r}),i&&(0,n.jsx)("code",{className:"cds-dialog-subtitle",title:i,children:i})]}),(0,n.jsx)("button",{type:"button",className:"cds-icon-button",onClick:a,title:o,"aria-label":o,children:(0,n.jsx)(rm.A,{size:16,"aria-hidden":"true"})})]}),l]})})}},approvalCard:{pi:lX,claude:function(e){let t,{request:r,queuedCount:i=0,busy:o=!1,onResolve:a,onDismiss:l}=e,{t:d}=(0,J.s)(),[c,u]=(0,s.useState)(""),[p,h]=(0,s.useState)(!1),[x,g]=(0,s.useState)(0),f=(0,s.useRef)(null),m=(0,s.useRef)([]),v=(0,s.useRef)(null);(0,s.useEffect)(()=>{r&&(u(""),h(!1),g(0))},[r?.id]);let y=(0,s.useCallback)((e,t,r)=>{a(e,r,t)},[a]),b=r?[{key:"allowOnce",labelKey:"approval.allow",descKey:"approval.allowOnceDescription",run:()=>y(!0,"once")},{key:"allowAlways",labelKey:"approval.allowAlways",descKey:"approval.allowAlwaysDescription",scopeKey:"approval.scopeAlways",run:()=>y(!0,"always")},{key:"denyOnce",labelKey:"approval.deny",descKey:"approval.denyOnceDescription",run:e=>y(!1,"once",e?.trim()||void 0)},{key:"denyAlways",labelKey:"approval.denyAlways",descKey:"approval.denyAlwaysDescription",scopeKey:"approval.scopeAlways",run:e=>y(!1,"always",e?.trim()||void 0)}]:[],k=(0,s.useCallback)(e=>{let t=b[e];t&&t.run(c)},[b,c]),j=(0,s.useCallback)(()=>{(l??(()=>y(!1,"once","Dismissed")))()},[l,y]),w=(0,s.useCallback)(e=>{if(o)return;let t=Number(e.key);if(Number.isInteger(t)&&t>=1&&t<=b.length){e.preventDefault(),k(t-1);return}if("ArrowDown"===e.key||"ArrowRight"===e.key||"Tab"===e.key&&!e.shiftKey){e.preventDefault(),g(e=>(e+1)%b.length);return}if("ArrowUp"===e.key||"ArrowLeft"===e.key||"Tab"===e.key&&e.shiftKey){e.preventDefault(),g(e=>(e-1+b.length)%b.length);return}if("Enter"===e.key){e.preventDefault(),k(x);return}"Escape"===e.key&&(e.preventDefault(),j())},[x,k,o,j,b.length]);if((0,s.useEffect)(()=>{m.current[x]?.focus({preventScroll:!0})},[x]),dj(v,!!r&&!o),!r)return null;let S=function(e){if(null==e)return"{}";if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}(r.args),C=S.length>4e3,z=r.args&&"object"==typeof r.args&&"command"in r.args?String(r.args.command??""):"",T=(t=lG(r.toolName,r.args))?`${r.toolName}(${t})`:r.toolName;return(0,n.jsx)("div",{className:"cds-approval-layer",children:(0,n.jsxs)("div",{ref:v,role:"dialog","aria-modal":"true","aria-label":d("approval.title"),onKeyDown:w,className:"cds-card cds-approval",children:[(0,n.jsxs)("header",{className:"cds-approval-header",children:[(0,n.jsx)("span",{className:"cds-approval-glyph","aria-hidden":"true",children:(0,n.jsx)(sR.A,{size:17,strokeWidth:2})}),(0,n.jsxs)("div",{className:"cds-approval-heading",children:[(0,n.jsxs)("div",{className:"cds-approval-title",children:[d("approval.title"),i>0&&(0,n.jsxs)("span",{className:"cds-approval-queued",children:["+",i," ",d("approval.queued")]})]}),(0,n.jsx)("div",{className:"cds-approval-subtitle",children:d("approval.subtitle")})]}),(0,n.jsx)("button",{type:"button","aria-label":d("i18n.close"),onClick:j,disabled:o,className:"cds-icon-button",children:(0,n.jsx)(rm.A,{size:14,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{className:"cds-approval-body",children:[(0,n.jsxs)("div",{className:"cds-approval-toolrow",children:[(0,n.jsx)("span",{className:"cds-approval-tool",children:r.toolName}),z?(0,n.jsx)("span",{className:"cds-approval-command",children:z}):null]}),(0,n.jsx)("div",{className:"cds-approval-args",children:(0,n.jsx)("pre",{className:"cds-approval-pre",children:C?`${S.slice(0,4e3)}…`:S})}),p&&(0,n.jsx)("textarea",{ref:f,value:c,onChange:e=>u(e.target.value),placeholder:d("approval.reasonPlaceholder"),rows:2,className:"cds-textarea cds-approval-reason"})]}),(0,n.jsx)("div",{role:"listbox","aria-label":d("approval.title"),className:"cds-approval-options",children:b.map((e,t)=>{let r=t===x,s="denyAlways"===e.key;return(0,n.jsxs)("button",{ref:e=>{m.current[t]=e},type:"button",role:"option","aria-selected":r,tabIndex:r?0:-1,disabled:o,onClick:()=>k(t),onMouseEnter:()=>g(t),"data-active":r?"true":void 0,className:"cds-approval-option",children:[(0,n.jsxs)("span",{className:"cds-approval-index","aria-hidden":"true",children:[t+1,"."]}),(0,n.jsxs)("span",{className:"cds-approval-option-copy",children:[(0,n.jsx)("span",{className:"cds-approval-option-label","data-destructive":s?"true":void 0,children:d(e.labelKey)}),(0,n.jsx)("span",{className:"cds-approval-option-desc",children:"approval.allowAlwaysDescription"===e.descKey||"approval.denyAlwaysDescription"===e.descKey?d(e.descKey,{rule:T}):d(e.descKey)})]}),e.scopeKey&&(0,n.jsx)("span",{className:"cds-approval-scope",children:d(e.scopeKey)})]},e.key)})}),(0,n.jsxs)("footer",{className:"cds-approval-footer",children:[(0,n.jsx)("span",{className:"cds-approval-hint",children:d("approval.keyboardHint")}),(0,n.jsx)("button",{type:"button",onClick:()=>{h(e=>!e),p||requestAnimationFrame(()=>f.current?.focus())},disabled:o,className:"cds-link-button",children:p?d("approval.hideReason"):d("approval.denyWithReason")})]})]})})}},planReview:{pi:l1,claude:function(e){let{open:t,planText:r,onExecute:i,onFeedback:o,onExit:a,onClose:l,busy:d=!1}=e,{t:c}=(0,J.s)(),[u,p]=(0,s.useState)(!1),[h,x]=(0,s.useState)(""),[g,f]=(0,s.useState)(!0),m=(0,s.useRef)(null);if((0,s.useEffect)(()=>{t&&(p(!1),x(""),f(!0))},[t]),(0,s.useEffect)(()=>{u&&m.current?.focus()},[u]),!t)return null;let v=r&&r.trim()?r.trim():null,y=h.trim().length>0&&!d;return(0,n.jsxs)("section",{role:"dialog","aria-modal":!1,"aria-label":c("tasks.planReviewTitle"),"data-cds":"PlanReview",className:"cds-card cds-plan",children:[u&&(0,n.jsxs)("div",{className:"cds-plan-feedback",children:[(0,n.jsx)("label",{className:"cds-plan-feedback-label",htmlFor:"cds-plan-feedback",children:c("tasks.planReviewFeedbackLabel")}),(0,n.jsx)("textarea",{id:"cds-plan-feedback",ref:m,value:h,onChange:e=>x(e.target.value),placeholder:c("tasks.planReviewFeedbackPlaceholder"),rows:2,className:"cds-textarea"}),(0,n.jsxs)("div",{className:"cds-plan-feedback-actions",children:[(0,n.jsx)(dI,{size:"sm",variant:"ghost",disabled:d,onClick:()=>p(!1),children:c("i18n.cancel")}),(0,n.jsx)(dI,{size:"sm",variant:"primary",disabled:!y,onClick:()=>{h.trim()&&o(h.trim())},children:c("tasks.planReviewSendFeedback")})]})]}),v?(0,n.jsxs)("div",{className:"cds-plan-preview",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>f(e=>!e),"aria-expanded":g,className:"cds-plan-toggle",children:[(0,n.jsx)(ru.A,{size:12,"aria-hidden":"true",className:"cds-plan-chevron","data-open":g?"true":void 0}),c(g?"tasks.planReviewHidePlan":"tasks.planReviewShowPlan")]}),g&&(0,n.jsx)("div",{className:"cds-well cds-plan-body",children:v})]}):null,(0,n.jsxs)("div",{className:"cds-plan-actions",children:[(0,n.jsxs)("span",{className:"cds-plan-title",children:[(0,n.jsx)(dw.A,{size:14,"aria-hidden":"true",className:"cds-plan-icon"}),(0,n.jsx)("span",{className:"cds-plan-title-text",children:c("tasks.planReviewTitle")})]}),(0,n.jsx)(dI,{size:"sm",variant:"primary",disabled:d,title:c("tasks.planReviewExecute"),icon:(0,n.jsx)(dS.A,{size:13,"aria-hidden":"true"}),onClick:i,children:c("tasks.planReviewExecute")}),(0,n.jsx)(dI,{size:"sm",variant:u?"outline":"ghost",disabled:d,title:c("tasks.planReviewSuggest"),"aria-pressed":u,icon:(0,n.jsx)(dC.A,{size:12,"aria-hidden":"true"}),onClick:()=>{u?p(!1):(p(!0),requestAnimationFrame(()=>m.current?.focus()))},children:c("tasks.planReviewSuggest")}),(0,n.jsx)(dI,{size:"sm",variant:"ghost",disabled:d,title:c("tasks.planReviewExit"),icon:(0,n.jsx)(rv.A,{size:12,"aria-hidden":"true"}),onClick:()=>{p(!1),a()},children:c("tasks.planReviewExit")}),(0,n.jsx)("button",{type:"button",onClick:l,disabled:d,title:c("i18n.close"),"aria-label":c("i18n.close"),className:"cds-icon-button cds-icon-button-xs",children:(0,n.jsx)(rm.A,{size:13,"aria-hidden":"true"})})]})]})}},trustDialog:{pi:l2,claude:function(e){let{cwd:t,busy:r,error:i,onCancelAction:o,onConfirmAction:a}=e,{t:l}=(0,J.s)(),d=(0,s.useRef)(null);return G(!r,o),dj(d,!0),(0,n.jsx)("div",{className:"cds-overlay",role:"presentation",children:(0,n.jsxs)("div",{ref:d,role:"dialog","aria-modal":"true","aria-labelledby":"claude-project-trust-title","data-cds":"TrustDialog",tabIndex:-1,"data-claude-focus-anchor":"true",className:"cds-card cds-trust",children:[(0,n.jsxs)("div",{className:"cds-trust-body",children:[(0,n.jsx)("span",{className:"cds-trust-glyph","aria-hidden":"true",children:(0,n.jsx)(sR.A,{size:20,strokeWidth:2})}),(0,n.jsxs)("div",{className:"cds-trust-copy",children:[(0,n.jsx)("h2",{id:"claude-project-trust-title",className:"cds-trust-title",children:l("desktop.trustProjectTitle")}),(0,n.jsx)("p",{className:"cds-trust-text",children:l("desktop.trustProjectBody")}),(0,n.jsx)("code",{className:"cds-well cds-trust-cwd",children:t}),i&&(0,n.jsx)("div",{role:"alert",className:"cds-trust-error",children:i})]})]}),(0,n.jsxs)("footer",{className:"cds-trust-footer",children:[(0,n.jsx)(dI,{size:"md",variant:"ghost",disabled:r,onClick:o,children:l("desktop.cancel")}),(0,n.jsx)(dI,{size:"md",variant:"primary",loading:r,onClick:a,children:l(r?"desktop.trustingProject":"desktop.trustProject")})]})]})})}},queueRecovery:{pi:l8,claude:function(e){let{items:t,sessionId:r,onResolve:i,onExport:o,onStageImport:a,onDismiss:l,mode:d="recovery"}=e,{t:c}=(0,J.s)(),[u,p]=(0,s.useState)(()=>new Set(t.map(e=>e.id))),[h,x]=(0,s.useState)(!1),[g,f]=(0,s.useState)(null),m=(0,s.useRef)(null),v=(0,s.useRef)(null);(0,s.useEffect)(()=>{p(new Set(t.map(e=>e.id)))},[t]),G(!h,l),dj(v,!h);let y=t.filter(e=>u.has(e.id)),b=y.length===t.length&&t.length>0,k=async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(0!==y.length){x(!0),f(null);try{await i("keep"===e?y.map(e=>e.id):[],"discard"===e?y.map(e=>e.id):[],t)}catch(e){f(e instanceof Error?e.message:String(e))}finally{x(!1)}}},j=async e=>{let t=await o();if(!t)return;let n=t.recovery.filter(e=>u.has(e.id));n.length&&(l6(n,{sessionId:r,source:"recovery"},e),f(c("desktop.queueExported",{count:n.length})))},w=async e=>{let t=l3(await e.text());if(!t.length)return void f(c("desktop.queueImportEmpty"));let r=await a(t);f(null===r?c("desktop.queueImportEmpty"):c("desktop.queueImported",{count:r}))},S="import"===d?c("desktop.queueImportTitle"):c("desktop.queueRecoveryTitle"),C="import"===d?c("desktop.queueImportDescription"):c("desktop.queueRecoveryDescription"),z=0===y.length;return(0,n.jsxs)("div",{className:"cds-overlay",role:"presentation",children:[(0,n.jsxs)("div",{ref:v,role:"dialog","aria-modal":"true","aria-label":S,"data-cds":"QueueRecovery",tabIndex:-1,"data-claude-focus-anchor":"true",className:"cds-card cds-queue",children:[(0,n.jsxs)("header",{className:"cds-queue-header",children:[(0,n.jsxs)("div",{className:"cds-queue-heading",children:[(0,n.jsx)("h2",{className:"cds-queue-title",children:S}),(0,n.jsx)("p",{className:"cds-queue-text",children:C})]}),(0,n.jsxs)("div",{className:"cds-queue-tools",children:[(0,n.jsx)(dI,{size:"xs",variant:"ghost",onClick:()=>p(new Set(b?[]:t.map(e=>e.id))),children:b?c("desktop.selectNone"):c("desktop.selectAll")}),(0,n.jsx)(dI,{size:"xs",variant:"ghost",disabled:h||z,onClick:()=>void j("json"),children:"JSON"}),(0,n.jsx)(dI,{size:"xs",variant:"ghost",disabled:h||z,onClick:()=>void j("md"),children:"MD"}),(0,n.jsx)(dI,{size:"xs",variant:"ghost",disabled:h,icon:(0,n.jsx)(dN.A,{size:12,"aria-hidden":"true"}),onClick:()=>m.current?.click(),children:c("desktop.import")}),(0,n.jsx)("button",{type:"button",className:"cds-icon-button",onClick:l,"aria-label":c("desktop.close"),children:(0,n.jsx)(rm.A,{size:15,"aria-hidden":"true"})})]})]}),(0,n.jsx)("div",{className:"cds-queue-list",children:t.map(e=>{let t=u.has(e.id);return(0,n.jsxs)("button",{type:"button",onClick:()=>{let t;return t=e.id,p(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},"aria-pressed":t,"data-selected":t?"true":void 0,className:"cds-queue-item",children:[(0,n.jsx)("span",{className:"cds-check","data-checked":t?"true":void 0,"aria-hidden":"true",children:t?(0,n.jsx)(dM,{}):null}),(0,n.jsxs)("span",{className:"cds-queue-item-body",children:[(0,n.jsxs)("span",{className:"cds-queue-meta",children:[(0,n.jsx)("span",{className:"cds-chip",children:"steer"===e.kind?c("desktop.steer"):c("desktop.followUp")}),(0,n.jsx)("span",{children:new Date(e.queuedAt).toLocaleString()}),e.hasImages?(0,n.jsx)("span",{children:c("desktop.queueImages")}):null]}),(0,n.jsx)("span",{className:"cds-queue-item-text",children:e.text||c("desktop.queueNoText")})]})]},e.id)})}),(0,n.jsxs)("footer",{className:"cds-queue-footer",children:[g?(0,n.jsx)("span",{className:"cds-queue-status",role:"status",children:g}):null,(0,n.jsx)(dI,{size:"md",variant:"ghost",disabled:h,onClick:l,children:c("desktop.dismiss")}),(0,n.jsx)(dI,{size:"md",variant:"danger",disabled:h||z,onClick:()=>void k("discard"),children:c("desktop.discard")}),(0,n.jsx)(dI,{size:"md",variant:"outline",disabled:h||z,onClick:()=>void k("keep"),children:c("desktop.requeue")}),(0,n.jsx)(dI,{size:"md",variant:"primary",disabled:h||z,onClick:()=>void k("keep",!0),children:c("desktop.requeueAndContinue")})]})]}),(0,n.jsx)("input",{ref:m,type:"file",accept:".json,application/json",className:"cds-visually-hidden",onChange:e=>{let t=e.target.files?.[0];t&&w(t),e.currentTarget.value=""}})]})}},palette:{pi:dg,claude:function(e){let{open:t,onOpenChange:r,sessions:i,projectKey:o,cwd:a,commands:l,onOpenSession:d,onOpenFile:c,onOpenMessage:u}=e,{t:p}=(0,J.s)(),[h,x]=(0,s.useState)(""),[g,f]=(0,s.useState)("all"),[m,v]=(0,s.useState)([]),[y,b]=(0,s.useState)(!1),[k,j]=(0,s.useState)([]),[w,S]=(0,s.useState)(!1),[C,z]=(0,s.useState)([]),T=(0,s.useRef)(null),R=(0,s.useRef)(!1),{scope:I,query:N}=rB(h,g);(0,s.useEffect)(()=>{t&&(R.current=!1,v(rO(o)),x(""),b(!1))},[t,o]),(0,s.useEffect)(()=>{b(!1)},[N]),(0,s.useEffect)(()=>{if(!t||!a)return void z([]);let e=!1;return(async()=>{try{let t=await fetch(`/api/file-index?cwd=${encodeURIComponent(a)}`);if(!t.ok)return;let r=await t.json().catch(()=>null);!e&&Array.isArray(r?.files)&&z(r.files)}catch{}})(),()=>{e=!0}},[t,a]),(0,s.useEffect)(()=>{if(!t)return;if("sessions"!==I&&"all"!==I){j([]),S(!1);return}let e=N.trim(),r=e?i.filter(e=>!e.transient).filter(t=>{let r=`${t.name??""} ${t.firstMessage??""}`.toLowerCase();return e.toLowerCase().split(/\s+/).every(e=>r.includes(e))}).slice(0,80).map(e=>({session:e})):i.filter(e=>!e.transient).slice(0,3).map(e=>({session:e}));if(!e){j(r),S(!1);return}T.current?.abort();let n=new AbortController;return T.current=n,S(!0),(async()=>{let t=[];try{let r=await fetch(`/api/sessions/search?q=${encodeURIComponent(e)}`,{signal:n.signal});if(r.ok){let e=await r.json().catch(()=>null);t=(e?.results??[]).slice(0,80).map(e=>({session:e.session,entryId:e.entryId,snippet:`${e.before??""}${e.match??""}${e.after??""}`.trim()}))}}catch{}if(n.signal.aborted)return;let s=new Set(r.map(e=>e.session.id));j([...r,...t.filter(e=>!s.has(e.session.id))]),S(!1)})(),()=>{n.abort()}},[t,I,N,i]);let M=(0,s.useMemo)(()=>{if("files"!==I&&"all"!==I)return[];let e=N.trim().toLowerCase();return(e?C.filter(t=>e.split(/\s+/).every(e=>t.toLowerCase().includes(e))):C.slice(0,3)).slice(0,80)},[C,N,I]),E=(0,s.useMemo)(()=>{let e=N.trim().toLowerCase(),t=e?l.filter(t=>{let r=`${t.title} ${(t.keywords??[]).join(" ")}`.toLowerCase();return e.split(/\s+/).every(e=>r.includes(e))}):l,r=new Map;for(let e of d$)r.set(e,[]);for(let e of t)r.get(e.section)?.push(e);return r},[l,N]),$=(0,s.useCallback)((e,t)=>{let n=rF(m,r_(e),t,Date.now());v(n),rH(o,n),setTimeout(()=>r(!1),0)},[m,o,r]),L=(0,s.useCallback)(e=>{R.current||(R.current=!0,$(h,I),setTimeout(()=>e.run(),0))},[h,I,$]),W=(0,s.useCallback)(e=>{$(h,I),setTimeout(()=>{e.entryId?u(e.session,e.entryId):d(e.session)},0)},[h,I,$,u,d]),A=(0,s.useCallback)(e=>{$(h,I),setTimeout(()=>c(e),0)},[h,I,$,c]),P="all"===I||"commands"===I,F="all"===I||"sessions"===I,D="all"===I||"files"===I,O="u">typeof navigator&&/mac/i.test(navigator.platform),H=e=>y?e:e.slice(0,3),B=!y&&(F&&k.length>3||D&&M.length>3||P&&d$.some(e=>(E.get(e)?.length??0)>3));return(0,n.jsx)(l9.bL,{open:t,onOpenChange:r,children:(0,n.jsxs)(l9.ZL,{children:[(0,n.jsx)(l9.hJ,{className:"cds-palette-overlay"}),(0,n.jsxs)(l9.UC,{className:"cds-card cds-palette","aria-describedby":void 0,children:[(0,n.jsx)(l9.hE,{className:"cds-visually-hidden",children:p("palette.placeholder")}),(0,n.jsxs)(l7.uB,{shouldFilter:!1,loop:!0,label:p("palette.placeholder"),children:[(0,n.jsxs)("div",{className:"cds-palette-search",children:[(0,n.jsx)(rb.A,{size:15,"aria-hidden":"true",className:"cds-palette-search-icon"}),(0,n.jsx)(l7.uB.Input,{autoFocus:!0,value:h,onValueChange:x,placeholder:p("palette.placeholder"),className:"cds-palette-input","aria-label":p("palette.placeholder")}),(0,n.jsx)("span",{className:"cds-palette-kbd",children:rq(O)})]}),(0,n.jsx)("div",{className:"cds-palette-scopes",role:"tablist","aria-label":p("palette.placeholder"),children:dE.map(e=>{let{id:t,icon:r,labelKey:s}=e,i=I===t;return(0,n.jsxs)("button",{type:"button",role:"tab","aria-selected":i,className:"cds-palette-scope","data-active":i?"true":void 0,onClick:()=>{f(t),x(r_(h)),b(!1)},children:[(0,n.jsx)(r,{size:12,"aria-hidden":"true"}),p(s)]},t)})}),(0,n.jsxs)(l7.uB.List,{className:"cds-palette-list",children:[(0,n.jsxs)(l7.uB.Empty,{className:"cds-palette-empty",children:[(0,n.jsx)("div",{children:p("palette.empty")}),(0,n.jsx)("div",{className:"cds-palette-empty-hint",children:p("palette.emptyHint")})]}),!N&&m.length>0&&(0,n.jsx)(l7.uB.Group,{heading:p("palette.section.history"),className:"cds-palette-group",children:m.slice(0,y?20:3).map(e=>(0,n.jsxs)(l7.uB.Item,{value:`history ${e.query}`,onSelect:()=>{x(`${rU(e.scope)}${e.query}`),f(e.scope),b(!1)},className:"cds-palette-item",children:[(0,n.jsx)(rI.A,{size:14,"aria-hidden":"true",className:"cds-palette-item-icon"}),(0,n.jsx)("span",{className:"cds-palette-item-body",children:(0,n.jsx)("span",{className:"cds-palette-item-title",children:e.query})})]},`${e.scope}:${e.query}`))}),F&&k.length>0&&(0,n.jsx)(l7.uB.Group,{heading:p("palette.section.sessions"),className:"cds-palette-group",children:H(k).map(e=>(0,n.jsxs)(l7.uB.Item,{value:`${e.session.name??e.session.firstMessage??e.session.id} ${e.snippet??""}`,onSelect:()=>W(e),className:"cds-palette-item",children:[(0,n.jsx)(dr.A,{size:14,"aria-hidden":"true",className:"cds-palette-item-icon"}),(0,n.jsxs)("span",{className:"cds-palette-item-body",children:[(0,n.jsx)("span",{className:"cds-palette-item-title",children:(0,n.jsx)(dL,{text:e.session.name||e.session.firstMessage||e.session.id,query:N})}),e.snippet&&(0,n.jsx)("span",{className:"cds-palette-item-sub",children:(0,n.jsx)(dL,{text:e.snippet,query:N})})]}),(0,n.jsx)("span",{className:"cds-palette-item-meta",children:e.session.cwd?e.session.cwd.split(/[\\/]/).filter(Boolean).pop():""})]},`s-${e.session.id}-${e.entryId??"session"}`))}),D&&M.length>0&&(0,n.jsx)(l7.uB.Group,{heading:p("palette.section.files"),className:"cds-palette-group",children:H(M).map(e=>(0,n.jsxs)(l7.uB.Item,{value:`file ${e}`,onSelect:()=>A(e),className:"cds-palette-item",children:[e.endsWith("/")?(0,n.jsx)(rj.A,{size:14,"aria-hidden":"true",className:"cds-palette-item-icon"}):(0,n.jsx)(dn.A,{size:14,"aria-hidden":"true",className:"cds-palette-item-icon"}),(0,n.jsx)("span",{className:"cds-palette-item-body",children:(0,n.jsx)("span",{className:"cds-palette-item-title",children:(0,n.jsx)(dL,{text:e,query:N})})})]},`f-${e}`))}),P&&d$.map(e=>{let t=E.get(e)??[];return 0===t.length?null:(0,n.jsx)(l7.uB.Group,{heading:p(`palette.section.${e}`),className:"cds-palette-group",children:H(t).map(e=>{let t=e.icon;return(0,n.jsxs)(l7.uB.Item,{value:`${e.title} ${(e.keywords??[]).join(" ")}`,onSelect:()=>L(e),className:"cds-palette-item",children:[(0,n.jsx)(t,{size:14,"aria-hidden":"true",className:"cds-palette-item-icon"}),(0,n.jsx)("span",{className:"cds-palette-item-body",children:(0,n.jsx)("span",{className:"cds-palette-item-title",children:(0,n.jsx)(dL,{text:e.title,query:N})})}),e.shortcut&&(0,n.jsx)("span",{className:"cds-palette-kbd",children:e.shortcut})]},e.id)})},e)}),w&&(0,n.jsx)("div",{className:"cds-palette-status",children:p("palette.searching")}),B&&(0,n.jsxs)(l7.uB.Item,{value:"__show_more__",onSelect:()=>b(!0),className:"cds-palette-item cds-palette-item-more",children:[(0,n.jsx)(ds.A,{size:14,"aria-hidden":"true",className:"cds-palette-item-icon"}),(0,n.jsx)("span",{className:"cds-palette-item-body",children:(0,n.jsx)("span",{className:"cds-palette-item-title",children:p("palette.showMore")})})]})]})]})]})]})})}},imageLightbox:{pi:nH,claude:function(e){let{src:t,alt:r="",children:i,className:o,style:a}=e,{t:l}=(0,J.s)(),d=l("chat.previewImage"),c=r.trim()?`${d}: ${r}`:d,[u,p]=(0,s.useState)(!1),h=(0,s.useRef)(null),x=(0,s.useRef)(null),g=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!u)return;let e=x.current;if(!e)return;let t=h.current,r=document.body.style.overflow;return document.body.style.overflow="hidden",e.showModal(),g.current?.focus({preventScroll:!0}),()=>{document.body.style.overflow=r,e.open&&e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[u]);let f=()=>{x.current?.open&&x.current.close(),p(!1)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{ref:h,type:"button",className:o,style:{display:"block",padding:0,border:"none",background:"none",color:"inherit",cursor:"zoom-in",...a},onClick:()=>p(!0),"aria-label":c,"aria-haspopup":"dialog","aria-expanded":u,title:d,children:i}),u&&(0,n.jsxs)("dialog",{ref:x,"data-cds":"ImageLightbox",className:"cds-lightbox","aria-label":d,onCancel:e=>{e.preventDefault(),e.stopPropagation(),f()},onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),f())},children:[(0,n.jsx)("img",{className:"cds-lightbox-image",src:t,alt:r}),(0,n.jsx)("button",{ref:g,type:"button",className:"cds-lightbox-close",onClick:f,"aria-label":l("chat.close"),title:l("chat.close"),children:(0,n.jsx)(rm.A,{size:16,strokeWidth:2,"aria-hidden":"true"})})]})]})}},titleBar:{pi:eK,claude:function(e){var t;let{topBarRef:r,sidebarOpen:i,onSidebarToggle:o,isDark:a,toggleTheme:l,isMobile:d,showTasks:c,tasksBoardEnabled:u,onToggleTasks:p,systemPrompt:h,activeTopPanel:x,topPanelPos:g,sessionStats:f,selectedSession:m,contextUsage:v,copiedSessionField:y,onCopySessionField:b,rightPanelOpen:k,onToggleFilePanel:j,onRefreshSession:w,sessionTitle:S,onWorkspaceControlsHostChange:C,onTitleRightHostChange:z,desktopChrome:T,windowDrag:R}=e,{t:I}=(0,J.s)(),[N,M]=(0,s.useState)(!1),[E,$]=(0,s.useState)(!1),L=dD();G(N,()=>M(!1)),(0,s.useEffect)(()=>{try{$(new URLSearchParams(window.location.search).has("piweb_connected"))}catch{$(!1)}},[]);let W=i?I("desktop.hideSidebar"):I("desktop.showSidebar"),A=(0,n.jsx)(dO,{label:W,onClick:o,children:i?(0,n.jsx)(H.V,{size:15,"aria-hidden":"true"}):(0,n.jsx)(B.B,{size:15,"aria-hidden":"true"})}),P=v??f?.contextUsage??null,F={file:"desktop.copyFilePath",id:"desktop.copySessionId",projectDir:"desktop.copyProjectDir",gitBranch:"desktop.copyGitBranch",gitWorktree:"desktop.copyGitWorktree"},D=(e,t)=>(0,n.jsx)(dU,{label:y===e?I("desktop.copied"):I(F[e]),copied:y===e,onClick:()=>b(e,t)});return(0,n.jsxs)(n.Fragment,{children:[E&&(0,n.jsx)(eH,{}),(0,n.jsxs)("div",{ref:r,className:"app-title-bar claude-title-bar",...T?.dragRegionProps,...R,children:[(0,n.jsxs)("div",{className:"claude-title-bar-zone claude-title-bar-left",children:["sidebar"===L&&!i&&A,(0,n.jsx)("div",{className:"app-no-drag claude-workspace-host",ref:C})]}),(0,n.jsxs)("div",{className:"app-title-drag claude-title-bar-zone claude-title-bar-center",children:[S&&(0,n.jsx)("button",{type:"button",className:"app-no-drag claude-session-title",onClick:()=>{d&&M(!0)},title:S,children:S}),(0,n.jsx)("div",{className:"app-no-drag claude-title-right-host",ref:z})]}),(0,n.jsxs)("div",{className:"claude-title-bar-zone claude-title-bar-right",children:[u&&!d&&(0,n.jsx)(dO,{label:c?I("desktop.hideTaskBoard"):I("desktop.showTaskBoard"),onClick:p,active:c,children:(0,n.jsx)(U.x,{size:15,"aria-hidden":"true"})}),(0,n.jsx)(dO,{label:k?I("desktop.hideFilePanel"):I("desktop.showFilePanel"),onClick:j,active:k,children:(0,n.jsx)(H.V,{size:15,"aria-hidden":"true",style:{transform:"scaleX(-1)"}})}),(0,n.jsx)("span",{className:"claude-title-bar-seam","aria-hidden":"true"}),!d&&(0,n.jsx)(eU,{}),(0,n.jsx)(dH,{isDark:a,toggleTheme:l,translate:I}),(0,n.jsx)("span",{className:"claude-title-bar-seam","aria-hidden":"true"}),E&&(0,n.jsx)(dO,{label:I("desktop.serverSwitch"),onClick:()=>{window.location.href="piweb-switch://manage"},children:(0,n.jsx)(_.X,{size:15,"aria-hidden":"true"})}),!E&&!d&&(0,n.jsx)(dO,{label:I("desktop.refreshSession"),onClick:w,children:(0,n.jsx)(K.S,{size:15,"aria-hidden":"true"})}),"titlebar"===L&&A]})]}),(0,n.jsx)(eA,{onRefreshSession:w}),x&&g&&(0,n.jsxs)("div",{className:"claude-top-panel",style:{top:g.top,left:g.left,width:g.width},children:["system"===x&&(0,n.jsx)("div",{className:"claude-top-panel-surface",children:null==h?(0,n.jsx)("div",{className:"claude-top-panel-empty",children:I("desktop.sendMessageForSessionInfo")}):""===h?(0,n.jsx)("div",{className:"claude-top-panel-empty",children:"System prompt is empty (tools are disabled)"}):(0,n.jsx)("div",{className:"claude-top-panel-system",children:h})}),"session"===x&&(0,n.jsx)("div",{className:"claude-top-panel-surface",children:f?(0,n.jsxs)("div",{className:"claude-info-grid",children:[(0,n.jsxs)("section",{className:"claude-info-section",children:[(0,n.jsx)("h3",{className:"claude-info-heading",children:I("desktop.sessionInfoTitle")}),(0,n.jsxs)("div",{className:"claude-info-rows",children:[f.sessionName&&(0,n.jsx)(dB,{label:I("desktop.name"),value:f.sessionName}),(0,n.jsx)(dB,{label:I("desktop.sessionInfoFile"),value:f.sessionFile??I("desktop.sessionInfoInMemory"),copy:f.sessionFile?D("file",f.sessionFile):null}),(0,n.jsx)(dB,{label:I("desktop.sessionInfoId"),value:f.sessionId,copy:D("id",f.sessionId)})]}),m&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("h3",{className:"claude-info-heading",children:I("desktop.projectSection")}),(0,n.jsxs)("div",{className:"claude-info-rows",children:[(0,n.jsx)(dB,{label:I("desktop.projectDir"),value:m.projectRoot??m.cwd,copy:D("projectDir",m.projectRoot??m.cwd)}),m.branch&&(0,n.jsx)(dB,{label:I("desktop.gitBranch"),value:m.branch,copy:D("gitBranch",m.branch)}),m.isWorktree&&(0,n.jsx)(dB,{label:I("desktop.gitWorktree"),value:m.cwd,copy:D("gitWorktree",m.cwd)})]})]})]}),(0,n.jsxs)("section",{className:"claude-info-section",children:[(0,n.jsx)("h3",{className:"claude-info-heading",children:I("desktop.sessionInfoMessages")}),(0,n.jsxs)("div",{className:"claude-info-rows is-compact",children:[(0,n.jsx)(dB,{label:I("desktop.sessionInfoUser"),value:f.userMessages.toLocaleString()}),(0,n.jsx)(dB,{label:I("desktop.sessionInfoAssistant"),value:f.assistantMessages.toLocaleString()}),(0,n.jsx)(dB,{label:I("desktop.sessionInfoToolCalls"),value:f.toolCalls.toLocaleString()}),(0,n.jsx)(dB,{label:I("desktop.sessionInfoToolResults"),value:f.toolResults.toLocaleString()}),(0,n.jsx)(dB,{label:I("desktop.sessionInfoTotal"),value:f.totalMessages.toLocaleString()})]})]}),(0,n.jsxs)("section",{className:"claude-info-section",children:[(0,n.jsx)("h3",{className:"claude-info-heading",children:I("desktop.sessionInfoTokens")}),(0,n.jsxs)("div",{className:"claude-info-rows is-compact is-right",children:[(0,n.jsx)(dB,{label:I("desktop.sessionInfoInput"),value:f.tokens.input.toLocaleString()}),(0,n.jsx)(dB,{label:I("desktop.sessionInfoOutput"),value:f.tokens.output.toLocaleString()}),f.tokens.cacheRead>0&&(0,n.jsx)(dB,{label:I("desktop.sessionInfoCacheRead"),value:f.tokens.cacheRead.toLocaleString()}),f.tokens.cacheWrite>0&&(0,n.jsx)(dB,{label:I("desktop.sessionInfoCacheWrite"),value:f.tokens.cacheWrite.toLocaleString()}),(0,n.jsx)(dB,{label:I("desktop.sessionInfoTotal"),value:f.tokens.total.toLocaleString()}),f.cost>0&&(0,n.jsx)(dB,{label:I("desktop.sessionInfoCost"),value:"$"+f.cost.toFixed(4)}),P&&P.contextWindow?(0,n.jsx)(dB,{label:I("desktop.sessionInfoContext"),value:(null!==P.percent?P.percent.toFixed(1)+"%":"?")+" / "+((t=P.contextWindow)>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(0)+"k":String(t))}):null]})]})]}):(0,n.jsx)("div",{className:"claude-top-panel-empty",children:I("desktop.sendMessageForSessionInfo")})})]}),N&&S&&(0,n.jsx)("div",{className:"app-no-drag claude-title-modal-veil",onClick:()=>M(!1),children:(0,n.jsxs)("div",{role:"dialog","aria-label":S,className:"claude-title-modal",onClick:e=>e.stopPropagation(),children:[S,(0,n.jsx)("button",{type:"button","aria-label":I("i18n.close"),title:I("i18n.close"),className:"claude-title-modal-close",onClick:e=>{e.stopPropagation(),M(!1)},children:(0,n.jsx)("span",{"aria-hidden":"true",children:"✕"})})]})})]})}},sidebar:{pi:nm,claude:function(e){let{sidebarOpen:t=!0,onSidebarToggle:r,selectedCwd:s,onOpenSettings:i,onToggleTasks:o,showTasks:a=!1,tasksBoardEnabled:l=!1,...d}=e,{t:c}=(0,J.s)(),u=tu(),p=dD(),h=c(t?"desktop.hideSidebar":"desktop.showSidebar");return(0,n.jsxs)("div",{className:"claude-sidebar","data-claude-shell":"sidebar",children:["sidebar"===p&&r&&(0,n.jsx)("div",{className:"claude-sidebar-rail",children:(0,n.jsx)("button",{type:"button",className:"claude-sidebar-rail-button is-collapse",onClick:r,title:h,"aria-label":h,children:(0,n.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"4",width:"18",height:"16",rx:"3"}),(0,n.jsx)("line",{x1:"9",y1:"4",x2:"9",y2:"20"})]})})}),(0,n.jsx)("div",{className:"claude-sidebar-body",children:(0,n.jsx)(nm,{...d,selectedCwd:s})}),i&&(0,n.jsxs)("footer",{className:"claude-sidebar-footer","aria-label":c("desktop.settings"),children:[(0,n.jsxs)("div",{className:"claude-sidebar-footer-actions",children:[(0,n.jsx)(d_,{label:c("desktop.settings"),onClick:()=>i(),children:(0,n.jsx)(e7.O,{size:15,"aria-hidden":"true"})}),(0,n.jsx)(d_,{label:c("desktop.plugins"),onClick:()=>i("plugins"),disabled:!s,children:(0,n.jsx)(e9.F,{size:15,"aria-hidden":"true"})}),l&&!u&&o&&(0,n.jsx)(d_,{label:c(a?"desktop.hideTaskBoard":"desktop.showTaskBoard"),onClick:o,children:(0,n.jsx)(U.x,{size:15,"aria-hidden":"true"})})]}),(0,n.jsx)("span",{className:"claude-sidebar-version",children:"v"+ti})]})]})}},sessionRow:{pi:function(e){let{title:t,subtitle:r,active:s,running:i,unread:o,depth:a=0,onClick:l,onContextMenu:d,actions:c,meta:u,className:p}=e;return(0,n.jsxs)("div",{role:"option","aria-selected":s,tabIndex:0,onClick:l,onContextMenu:e=>{d?.(e)},onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),l())},className:p,"data-session-row":!0,"data-depth":a,style:{display:"flex",alignItems:"center",gap:6,minWidth:0,padding:`6px 8px 6px ${8+12*a}px`,borderRadius:"var(--cds-radius, 8px)",background:s?"var(--cds-fill-secondary, var(--bg-selected))":"transparent",color:s?"var(--cds-text-primary, var(--text))":"var(--cds-text-secondary, var(--text-muted))",cursor:"pointer",fontSize:"var(--text-ui-caption)"},children:[(i||o)&&(0,n.jsx)("span",{style:{display:"inline-flex",flexShrink:0},children:i?(0,n.jsx)(ne,{}):(0,n.jsx)(nt,{})}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1,display:"flex",flexDirection:"column",gap:1},children:[(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontWeight:s?500:400},children:t}),r&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"var(--text-ui-xs)",color:"var(--cds-text-faint, var(--text-dim))"},children:r})]}),u&&(0,n.jsx)("span",{style:{flexShrink:0},children:u}),c&&(0,n.jsx)("span",{style:{display:"inline-flex",gap:2,flexShrink:0},children:c})]})},claude:function(e){let{title:t,subtitle:r,active:s,running:i=!1,unread:o=!1,depth:a=0,onClick:l,onContextMenu:d,actions:c,meta:u,className:p}=e;return(0,n.jsxs)("div",{role:"button",tabIndex:0,"data-claude-row":"session","data-active":s||void 0,"aria-current":s?"true":void 0,className:["claude-session-row",p].filter(Boolean).join(" "),style:{paddingLeft:8+12*a},onClick:l,onContextMenu:d,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),l())},children:[(0,n.jsx)("span",{className:"claude-session-dot"+(i?" is-running":o?" is-unread":""),"aria-hidden":"true"}),(0,n.jsxs)("span",{className:"claude-session-body",children:[(0,n.jsx)("span",{className:"claude-row-title",title:t,children:t}),r&&(0,n.jsx)("span",{className:"claude-session-subtitle",children:r})]}),u&&(0,n.jsx)("span",{className:"claude-session-meta",children:u}),c&&(0,n.jsx)("span",{className:"claude-session-actions",children:c})]})}},tabBar:{pi:nw,claude:function(e){let{tabs:t,activeTabId:r,onSelectTab:i,onCloseTab:o}=e,{t:a}=(0,J.s)(),l=(0,s.useRef)(null),[d,c]=(0,s.useState)(!1);(0,s.useEffect)(()=>{if(!r)return;let e=l.current;if(!e)return;let t=e.querySelector('[data-tab-id="'+CSS.escape(r)+'"]');t?.scrollIntoView({block:"nearest",inline:"nearest"})},[r,t.length]),(0,s.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>c(e.scrollWidth>e.clientWidth+1);t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[t.length]);let u=(0,s.useCallback)((e,r)=>{if(e.target!==e.currentTarget)return;if("Enter"===e.key||" "===e.key){e.preventDefault(),i(r);return}if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;e.preventDefault();let n=t.findIndex(e=>e.id===r),s="Home"===e.key?0:"End"===e.key?t.length-1:(n+("ArrowRight"===e.key?1:-1)+t.length)%t.length;i(t[s].id),l.current?.querySelector('[data-tab-id="'+CSS.escape(t[s].id)+'"]')?.focus()},[i,t]);return(0,n.jsx)("div",{ref:l,role:"tablist",className:"claude-tab-bar"+(d?"":" is-flush"),children:t.map(e=>{let s=e.id===r;return(0,n.jsxs)("div",{role:"tab","data-tab-id":e.id,"aria-label":"terminal"===e.kind?a("terminal.tabLabel",{name:e.label}):"subagent"===e.kind?a("subagent.transcriptTitle")+": "+e.label:e.label,"aria-selected":s,tabIndex:s||!r&&t[0].id===e.id?0:-1,className:"claude-tab",onKeyDown:t=>u(t,e.id),onClick:()=>i(e.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:t=>{1===t.button&&(t.preventDefault(),t.stopPropagation(),e.closing||o(e.id))},children:[(0,n.jsx)("span",{className:"claude-tab-icon",children:"subagent"===e.kind?(0,n.jsx)(nj.d,{size:12,"aria-hidden":"true"}):"terminal"===e.kind?(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,n.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]}):tM(e.label,12)}),(0,n.jsx)("span",{className:"claude-tab-label",title:e.filePath,children:e.label}),(0,n.jsx)("button",{type:"button",className:"claude-tab-close",disabled:e.closing,onClick:t=>{t.stopPropagation(),o(e.id)},title:a("desktop.closeTab"),"aria-label":a("desktop.closeTabWithLabel",{label:e.label}),children:(0,n.jsx)(eP.X,{size:10,"aria-hidden":"true"})})]},e.id)})})}},composer:{pi:s0,claude:s0},modelSwitcher:{pi:s4,claude:function(e){let t,r,i,o,a,l,d,c,{options:u,value:p,onChange:h,onClear:x,emptyLabel:g,selectedLabel:f,disabled:m=!1,busy:v=!1,isAutoSelection:y=!1,ariaLabel:b,variant:k="toolbar",placement:j="up"}=e,{t:w}=(0,J.s)(),S=tu(),C=(0,s.useRef)(null),z=(0,s.useRef)(null),[T,R]=(0,s.useState)(!1),[I,N]=(0,s.useState)(null),[M,E]=(0,s.useState)(""),$=m||v,L=(0,s.useMemo)(()=>[...u].sort(dq),[u]),W=s6(L,M),A=L.length>8,P=[];for(let e of W){let t=P.find(t=>t.provider===e.provider);t?t.options.push(e):P.push({provider:e.provider,options:[e]})}let F=f??(p?L.find(e=>e.modelId===p.modelId&&e.provider===p.provider)?.name??p.modelId:g??(L.length>0?"Select model":"No models"));(0,s.useEffect)(()=>{let e=e=>{C.current&&!C.current.contains(e.target)&&z.current&&!z.current.contains(e.target)&&(R(!1),E(""))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,s.useEffect)(()=>{$&&(R(!1),E(""))},[$]);let D=v?"Switching model":$?F:L.length>0||x?"Change model":"No available models";return(0,n.jsxs)("div",{ref:C,className:["claude-model-switcher","is-"+k,$?"is-disabled":""].filter(Boolean).join(" "),onKeyDown:e=>{"Escape"===e.key&&T&&(e.preventDefault(),e.stopPropagation(),E(""),R(!1))},children:[(0,n.jsxs)("button",{type:"button",className:"claude-model-trigger","aria-label":b,"aria-haspopup":"listbox","aria-expanded":T,"aria-busy":v||void 0,disabled:$,title:D,onClick:e=>{let t=e.currentTarget.getBoundingClientRect();N({top:t.top,bottom:t.bottom,left:t.left,width:t.width}),R(e=>(e&&E(""),!e))},children:[(0,n.jsx)("span",{className:"claude-model-glyph","aria-hidden":"true",children:(0,n.jsxs)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),(0,n.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,n.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,n.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,n.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,n.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,n.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,n.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,n.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]})}),(0,n.jsx)("span",{className:"claude-model-name",children:F}),"field"===k&&(0,n.jsx)("span",{className:"claude-model-caret","aria-hidden":"true",children:(0,n.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polyline",{points:"6 9 12 15 18 9"})})})]}),T&&I&&(t=window.visualViewport?.height??window.innerHeight,r=window.visualViewport?.width??window.innerWidth,i=I.top-8,o=t-I.bottom-8,l=Math.max(120,Math.min((a="up"===j||i>o)?i:o,.6*t)),d=a?{bottom:t-I.top+6}:{top:I.bottom+6},c=S?{left:8,right:8}:{left:I.left,minWidth:I.width,width:"max-content",maxWidth:Math.max(I.width,r-I.left-8)},(0,n.jsxs)("div",{ref:z,role:"listbox","aria-label":b,className:"claude-model-panel",style:{...d,...c,maxHeight:l},children:[A&&(0,n.jsx)("div",{className:"claude-model-filter",children:(0,n.jsx)("input",{value:M,onChange:e=>E(e.target.value),placeholder:w("chat.filterModels"),"aria-label":w("chat.filterModels"),autoFocus:!0,autoComplete:"off",spellCheck:!1})}),(0,n.jsxs)("div",{className:"claude-model-list",children:[x&&!M.trim()&&(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":!p,className:"claude-model-option",onClick:()=>{R(!1),E(""),x()},children:[(0,n.jsx)(dV,{active:!p}),(0,n.jsx)("span",{children:g??"Default"})]}),0===P.length?(0,n.jsx)("div",{className:"claude-model-empty",children:M.trim()?w("chat.noMatchingModels"):"No available models"}):P.map(e=>(0,n.jsxs)("div",{className:"claude-model-group",children:[P.length>1&&(0,n.jsx)("div",{className:"claude-model-provider",children:e.provider}),e.options.map(e=>{let t=e.modelId===p?.modelId&&e.provider===p?.provider;return(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":t,className:"claude-model-option",onClick:()=>{var t,r;let n;return t=e.provider,n=(r=e.modelId)===p?.modelId&&t===p?.provider,void(R(!1),E(""),(!n||y)&&h(t,r))},children:[(0,n.jsx)(dV,{active:t}),(0,n.jsx)("span",{title:e.name,children:e.name})]},e.provider+":"+e.modelId)})]},e.provider))]})]}))]})}},fileViewer:{pi:oq,claude:function(e){return(0,n.jsx)("div",{className:"claude-file-viewer","data-claude-shell":"fileViewer",children:(0,n.jsx)("div",{className:"claude-file-viewer-card",children:(0,n.jsx)(oq,{...e})})})}},messageList:{pi:oY,claude:function(e){let{scrollElementRef:t,items:r,itemKeys:i,estimateSize:o=120,overscan:a=8,headerHeight:l=0}=e,[d,c]=(0,s.useState)(!1),[u,p]=(0,s.useState)(!0),[h,x]=(0,s.useState)(!0),g=(0,s.useRef)(!0),f=(0,oJ.Te)({count:r.length,getScrollElement:()=>t.current,estimateSize:()=>o,overscan:a,getItemKey:e=>i[e]??e});(0,s.useEffect)(()=>{let e=requestAnimationFrame(()=>c(!0));return()=>cancelAnimationFrame(e)},[]);let m=(0,s.useCallback)(()=>{let e=t.current;if(!e)return;let{scrollTop:r,scrollHeight:n,clientHeight:s}=e;p(r<=28),x(n-(r+s)<=28),g.current=n-(r+s)<=40},[t]);(0,s.useEffect)(()=>{let e=t.current;if(e)return m(),e.addEventListener("scroll",m,{passive:!0}),()=>e.removeEventListener("scroll",m)},[m,t]),(0,s.useEffect)(()=>{g.current&&f.scrollToIndex(r.length-1,{align:"end"})},[r.length,f]);let v=f.getVirtualItems(),y=28*!u,b=28*!h;return(0,n.jsxs)("div",{className:"relative h-full min-h-0",children:[!d&&(0,n.jsx)("div",{className:"absolute inset-x-0 top-0 z-10 px-4 pt-4","aria-hidden":"true",children:(0,n.jsx)("div",{style:{height:54,borderRadius:"var(--cds-radius-bubble, 18px)",background:"var(--cds-fill-secondary, var(--bg-hover))",opacity:.5}})}),(0,n.jsx)("div",{style:{height:f.getTotalSize()+l,position:"relative",width:"100%",paddingTop:l,maskImage:y||b?`linear-gradient(to bottom, transparent 0, black ${y}px, black calc(100% - ${b}px), transparent 100%)`:void 0,transition:"mask-image 160ms var(--cds-ease-swift, ease)"},children:v.map(e=>(0,n.jsx)("div",{"data-index":e.index,ref:f.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${e.start+l}px)`},children:r[e.index]},e.key))})]})}},messageShell:{pi:lf,claude:dm},thinking:{pi:lk,claude:function(e){let{block:t,duration:r,isStreaming:i=!1,contentOnly:o=!1,className:a,children:l}=e,d="string"==typeof t?t:t?.thinking??"",[c,u]=(0,s.useState)(!0),p=(0,s.useRef)(i);(0,s.useEffect)(()=>{p.current=i,i&&u(!0)},[i]);let h=i?"Thinking":"Thought",x=function(e){if(!e||e<0)return null;if(e<1e3)return`${Math.round(e)}ms`;let t=e/1e3;return t<60?`${t.toFixed(1)}s`:`${Math.floor(t/60)}m ${Math.round(t%60)}s`}(r);return o?(0,n.jsx)("div",{className:a,style:{fontSize:"var(--text-ui-base)",lineHeight:1.7,color:"var(--cds-text-secondary, var(--text-muted))"},children:l??d}):(0,n.jsxs)("div",{className:a,"data-thinking":!0,style:{position:"relative",marginBlock:6,borderRadius:"var(--cds-radius-card, 12px)",background:i?"var(--cds-clay-soft, transparent)":"transparent",transition:"background 240ms var(--cds-ease-swift, ease)"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{p.current||u(e=>!e)},"aria-expanded":c,"aria-label":h,disabled:i,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"4px 2px",border:"none",background:"none",color:"var(--cds-text-muted, var(--text-muted))",fontSize:"var(--text-ui-sm)",cursor:i?"default":"pointer",textAlign:"left"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{display:"inline-flex",width:6,height:6,borderRadius:"50%",background:i?"var(--cds-clay, var(--accent))":"var(--cds-hairline-3, var(--border))",animation:i?"tab-breathe 1.8s ease-in-out infinite":void 0,flexShrink:0}}),(0,n.jsx)("span",{style:{fontWeight:500},children:h}),x&&(0,n.jsx)("span",{style:{color:"var(--cds-text-faint, var(--text-dim))"},children:x}),!i&&(0,n.jsx)("span",{"aria-hidden":"true",style:{marginLeft:"auto",transform:c?"rotate(90deg)":"none",transition:"transform 160ms var(--cds-ease-swift, ease)",fontSize:"var(--text-ui-xs)"},children:"›"})]}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateRows:c?"1fr":"0fr",transition:"grid-template-rows 240ms var(--cds-ease-expand, ease), opacity 160ms ease",opacity:+!!c},children:(0,n.jsx)("div",{style:{overflow:"hidden",minHeight:0},children:(0,n.jsx)("div",{style:{paddingInline:14,paddingBlock:8*!!c,borderLeft:"2px solid var(--cds-hairline-1, var(--border))",marginLeft:2,fontSize:"var(--text-ui-base)",lineHeight:1.7,color:"var(--cds-text-secondary, var(--text-muted))",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:l??d})})})]})}},toolCard:{pi:aD,claude:function(e){let{blocks:t,isStreaming:r=!1,defaultExpanded:i=!1,renderStep:o}=e,[a,l]=(0,s.useState)(i),d=t?.length??0;if(0===d)return null;let c=t.filter(e=>"failed"===dv(e).label).length;return(0,n.jsxs)("div",{style:{marginBlock:8,borderRadius:"var(--cds-radius-card, 12px)",border:"0.5px solid var(--cds-hairline-1, var(--border))",background:"var(--cds-surface-1, var(--bg-panel))",overflow:"hidden"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>l(e=>!e),"aria-expanded":a,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"8px 12px",border:"none",background:"none",color:"var(--cds-text-secondary, var(--text-muted))",fontSize:"var(--text-ui-sm)",cursor:"pointer",textAlign:"left"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",flexShrink:0,background:r?"var(--cds-clay, var(--accent))":c>0?"var(--status-error)":"var(--status-success)",animation:r?"tab-breathe 1.8s ease-in-out infinite":void 0}}),(0,n.jsxs)("span",{style:{fontWeight:500},children:[d," step",1===d?"":"s",c>0?` \xb7 ${c} failed`:""]}),(0,n.jsxs)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--cds-text-faint, var(--text-dim))",fontSize:"var(--text-ui-xs)",fontFamily:"var(--font-mono)"},children:[t.slice(0,4).map(e=>db(e,0)).filter(Boolean).join(" \xb7 "),t.length>4?` \xb7 +${t.length-4}`:""]}),(0,n.jsx)("span",{"aria-hidden":"true",style:{marginLeft:"auto",transform:a?"rotate(90deg)":"none",transition:"transform 160ms var(--cds-ease-swift, ease)",fontSize:"var(--text-ui-xs)"},children:"›"})]}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateRows:a?"1fr":"0fr",transition:"grid-template-rows 200ms var(--cds-ease-expand, ease)"},children:(0,n.jsx)("div",{style:{overflow:"hidden",minHeight:0},children:t.map((e,t)=>{let r=dv(e);return(0,n.jsxs)("div",{style:{display:"flex",gap:8,padding:"7px 12px",borderTop:0===t?"none":"0.5px solid var(--cds-hairline-1, var(--border))",alignItems:"flex-start"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{width:5,height:5,borderRadius:"50%",marginTop:6,flexShrink:0,background:r.color}}),(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--cds-text-primary, var(--text))",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:db(e,t)}),(0,n.jsx)("div",{style:{marginTop:4},children:o?o(e,t):(0,n.jsx)(dy,{block:e})})]})]},t)})})})]})}},subagentRow:{pi:a_,claude:function(e){let{run:t,onOpenSubagent:r,sessionRun:s}=e,i=s?.status??t.status,o=function(e){switch(e){case"running":case"starting":return{color:"var(--accent)",text:"running"};case"queued":return{color:"var(--text-dim)",text:"queued"};case"completed":return{color:"var(--status-success)",text:"completed"};case"failed":return{color:"var(--status-error)",text:"failed"};case"aborted":return{color:"var(--status-warning)",text:"aborted"};default:return{color:"var(--text-dim)",text:e??"unknown"}}}(i),a=function(e){if(!e.startedAt)return null;let t=new Date(e.startedAt).getTime(),r=e.completedAt?new Date(e.completedAt).getTime():Date.now();if(!Number.isFinite(t)||!Number.isFinite(r)||r<t)return null;let n=Math.round((r-t)/1e3);return n<60?`${n}s`:`${Math.floor(n/60)}m ${n%60}s`}({startedAt:t.startedAt??s?.createdAt,completedAt:t.completedAt??s?.completedAt}),l=t.label??t.description??"Subagent",d="running"===i||"starting"===i;return(0,n.jsxs)("button",{type:"button",onClick:()=>r?.(t.toolCallId,l),style:{display:"block",width:"100%",textAlign:"left",marginBlock:6,padding:"10px 12px",borderRadius:"var(--cds-radius-card, 12px)",border:"0.5px solid var(--cds-hairline-1, var(--border))",background:"var(--cds-surface-1, var(--bg-panel))",cursor:r?"pointer":"default"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",flexShrink:0,background:o.color,animation:d?"tab-breathe 1.8s ease-in-out infinite":void 0}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-caption)",fontWeight:600,color:"var(--cds-text-primary, var(--text))",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:l}),(0,n.jsxs)("span",{style:{marginLeft:"auto",fontSize:"var(--text-ui-xs)",color:"var(--cds-text-muted, var(--text-muted))",flexShrink:0},children:[o.text,a?` \xb7 ${a}`:""]})]}),t.prompt&&(0,n.jsx)("div",{style:{marginTop:5,fontSize:"var(--text-ui-sm)",lineHeight:1.55,color:"var(--cds-text-muted, var(--text-muted))",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:t.prompt})]})}},subagentPanel:{pi:aV,claude:function(e){let{subagents:t,selectedSessionId:r,runningSessionIds:s,onSelectSession:i}=e;return 0===t.length?(0,n.jsx)("div",{role:"listbox","aria-label":"Subagents",style:{padding:"18px 14px",fontSize:"var(--text-ui-sm)",color:"var(--cds-text-muted, var(--text-muted))",textAlign:"center"},children:"No subagents for this session yet."}):(0,n.jsx)("div",{role:"listbox","aria-label":"Subagents",style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(min(220px, 100%), 1fr))",gap:8,padding:10,alignContent:"start",overflowY:"auto",minHeight:0},children:t.map(e=>{let t=e.id===r,o=s.has(e.id),a=e.subagentStatus,l=o?"var(--accent)":function(e){switch(e){case"running":case"starting":return"var(--accent)";case"queued":default:return"var(--text-dim)";case"completed":return"var(--status-success)";case"failed":return"var(--status-error)";case"aborted":return"var(--status-warning)"}}(a);return(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":t,onClick:()=>i(e),style:{display:"flex",flexDirection:"column",gap:6,minWidth:0,padding:"9px 11px",textAlign:"left",borderRadius:"var(--cds-radius-card, 12px)",border:t?"1px solid var(--cds-clay, var(--accent))":"0.5px solid var(--cds-hairline-1, var(--border))",background:t?"var(--cds-fill-secondary, var(--bg-selected))":"var(--cds-surface-1, var(--bg-panel))",cursor:"pointer",transition:"border-color 120ms var(--cds-ease-swift, ease), background 120ms ease"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{width:6,height:6,borderRadius:"50%",background:l,flexShrink:0,animation:o?"tab-breathe 1.8s ease-in-out infinite":void 0}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-caption)",fontWeight:600,color:"var(--cds-text-primary, var(--text))",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:ri(e)})]}),(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--cds-text-muted, var(--text-muted))",display:"flex",gap:6,flexWrap:"wrap"},children:[(0,n.jsx)("span",{children:a??(o?"running":"completed")}),e.modified?(0,n.jsxs)("span",{style:{color:"var(--cds-text-faint, var(--text-dim))"},children:["\xb7 ",new Date(e.modified).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]}):null]})]},e.id)})})}},compaction:{pi:lD,claude:function(e){let{summary:t,tokensBefore:r,onOpenFull:s}=e,i=r&&Number.isFinite(r)?r<1e3?`${r} tokens`:`${(r/1e3).toFixed(1)}k tokens`:null;return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBlock:14},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{flex:1,height:.5,background:"var(--cds-hairline-1, var(--border))"}}),(0,n.jsxs)("button",{type:"button",onClick:s,title:t,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 10px",borderRadius:999,border:"0.5px solid var(--cds-hairline-1, var(--border))",background:"var(--cds-fill-secondary, var(--bg-hover))",color:"var(--cds-text-muted, var(--text-muted))",fontSize:"var(--text-ui-xs)",cursor:s?"pointer":"default",whiteSpace:"nowrap"},children:["Conversation compacted",i&&(0,n.jsxs)("span",{style:{color:"var(--cds-text-faint, var(--text-dim))"},children:["\xb7 ",i]})]}),(0,n.jsx)("span",{"aria-hidden":"true",style:{flex:1,height:.5,background:"var(--cds-hairline-1, var(--border))"}})]})}}},d6={},d4=null,d5=new Set;function d3(){for(let e of d5)e()}function d8(){if(d4)return d4;if("u"<typeof document)return C;let e=function(){if("u"<typeof document)return{};let e=document.documentElement.dataset;return{[v]:e[v],[y]:e[y],[b]:e[b],[k]:e[k],[j]:e[j]}}();if(Object.values(e).some(e=>"string"==typeof e&&e.length>0)){let t;return d4=$({kit:(t=e??{})[v],scopes:t[y],slots:t[b],layout:t[k],sidebarToggle:t[j]})}try{d4=$({kit:localStorage.getItem(h),scopes:localStorage.getItem(x),slots:localStorage.getItem(g),layout:localStorage.getItem(f),sidebarToggle:localStorage.getItem(m)})}catch{d4=C}return d4}function d7(e){let t,r,n=L(e);d4=n;let s={[v]:(t=L(n)).kit,[y]:E(t.scopes),[b]:E(t.slots),[k]:t.layout,[j]:t.sidebarToggle};if("u">typeof document){let e=document.documentElement;for(let[t,r]of Object.entries(s))e.dataset[t]=r}let i={[h]:(r=L(n)).kit,[x]:E(r.scopes),[g]:E(r.slots),[f]:r.layout,[m]:r.sidebarToggle};try{for(let[e,t]of Object.entries(i))t?localStorage.setItem(e,t):localStorage.removeItem(e)}catch{}d3()}function d9(e){return d5.add(e),()=>{d5.delete(e)}}function ce(){return d8()}function ct(){return C}window.addEventListener("storage",e=>{e.key&&e.key.startsWith("pi-ui-kit")&&(d4=null,d8(),d3())});let cr=(0,s.createContext)({scope:null,pinned:null});function cn(){let e=(0,s.useSyncExternalStore)(d9,ce,ct),{pinned:t}=(0,s.useContext)(cr),r=(0,s.useCallback)(e=>{var t;return d7((t=d8(),L({...t,kit:e})))},[]),n=(0,s.useCallback)((e,t)=>{var r;let n;return d7((r=d8(),n={...r.scopes},t?n[e]=t:delete n[e],L({...r,scopes:n})))},[]),i=(0,s.useCallback)((e,t)=>{var r;let n;return d7((r=d8(),n={...r.slots},t?n[e]=t:delete n[e],L({...r,slots:n})))},[]),o=(0,s.useCallback)(e=>{var t;return d7((t=d8(),L({...t,layout:e})))},[]),a=(0,s.useCallback)(e=>{var t;return d7((t=d8(),L({...t,sidebarToggle:e})))},[]),l=(0,s.useCallback)(()=>d7(C),[]),d=(0,s.useCallback)(r=>t??W(e,r),[t,e]),c=(0,s.useCallback)(r=>t??A(e,r),[t,e]);return{settings:e,kit:t??e.kit,layout:e.layout,sidebarToggle:e.sidebarToggle,setKit:r,setScope:n,setSlot:i,setLayout:o,setSidebarToggle:a,reset:l,resolveScope:d,resolveSlot:c}}function cs(e){let t=function(e){let t=(0,s.useSyncExternalStore)(d9,ce,ct),{pinned:r}=(0,s.useContext)(cr);return r??A(t,e)}(e);return(0,s.useMemo)(()=>{let r;return r=d2[e],("claude"===t?r.claude??r.pi:r.pi)??null},[e,t])}function ci(e,t){return e?(0,s.createElement)(e,t):null}let co=e=>ci(cs("button"),e),ca=e=>ci(cs("segmented"),e),cl=e=>ci(cs("toggle"),e),cd=e=>ci(cs("status"),e);function cc(e){let{children:t}=e;return(0,n.jsx)("div",{className:"claude-surface-root",style:{display:"contents"},children:t})}function cu(e,t){function r(r){let s=cs(e),i=s??t;return s&&s!==t?(0,n.jsx)(cc,{children:(0,n.jsx)(i,{...r})}):(0,n.jsx)(i,{...r})}return r.displayName=`SlotProxy(${e})`,r}let cp=cu("titleBar",eK),ch=cu("sidebar",nm),cx=cu("tabBar",nw),cg=cu("modelSwitcher",s4),cf=cu("fileViewer",oq),cm=cu("compaction",lD),cv=cu("dialogShell",lH),cy=cu("palette",dg),cb=cu("approvalCard",lX),ck=cu("planReview",l1),cj=cu("trustDialog",l2),cw=cu("queueRecovery",l8),cS=cu("imageLightbox",nH),cC=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,cz=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,cT=/\x1B\[([0-9;]*)m/g,cR=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],cI=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function cN(e){return e.replace(cC,"")}function cM(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(cz);if(t){r+=t[0].length;continue}}let n=e.codePointAt(r);if(void 0===n)break;let s=String.fromCodePoint(n);t.push({start:r,end:r+s.length,char:s}),r+=s.length}return t}function cE(e,t){let r=cM(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function c$(e){return cM(e)[0]?.char}function cL(e){let t=[],r=[],n="group",s=()=>{0!==r.length&&(t.push({kind:n,blocks:r}),r=[])};for(let i of e){if("toolCall"===i.type&&"Agent"===i.toolName&&("running"===i.status||!i.result||aH(i.result.details))&&"toolCall"===i.type){s(),t.push({kind:"subagent",blocks:[i],subagent:{toolCallId:i.toolCallId,toolName:i.toolName,input:i.input,result:i.result,duration:i.duration,status:i.status,sourceMessageIndex:i.origin.sourceMessageIndex}});continue}let e="text"===i.type||"image"===i.type?"output":"group";e!==n&&s(),n=e,r.push(i)}return s(),t}function cW(e,t,r){return`${e??`message-${t}`}:${r}`}function cA(e,t){let{messageIndex:r,entryId:n,phase:s,toolResults:i,isStreaming:o=!1}=t;return"custom"===e.role?e.display?[{id:cW(n,r,0),type:"custom",customType:e.customType,message:e,origin:{phase:s,placement:"standalone",sourceMessageIndex:r,sourceEntryId:n}}]:[]:"assistant"!==e.role?[]:(t.blocks??o2(e,{isStreaming:o})).map((t,o)=>{let a=e.content.indexOf(t),l=a>=0?a:o,d={phase:s,placement:"standalone",sourceMessageIndex:r,sourceEntryId:n,sourceBlockIndex:l},c=cW(n,r,l);if("text"===t.type)return{id:c,type:"text",text:t.text,origin:d};if("image"===t.type)return{id:c,type:"image",source:t.source??{type:"base64",data:t.data,media_type:t.mimeType},origin:d};if("thinking"===t.type)return{id:c,type:"thinking",thinking:t.thinking,deferred:t.deferred,origin:d};let u=i?.get(t.toolCallId);return{id:c,type:"toolCall",toolCallId:t.toolCallId,toolName:t.toolName,input:t.input,result:u,duration:function(e,t){if(!e.timestamp||!t?.timestamp)return;let r=Math.round((t.timestamp-e.timestamp)/1e3);return r>0?r:void 0}(e,u),status:u?.isError?"error":u?"success":"running",origin:{...d,groupId:t.toolCallId}}})}function cP(e,t){let{processBlocks:r,answerBlocks:n}=o4(e,t);return{processBlocks:cA(e,{...t,phase:"process",blocks:r}),resultBlocks:cA(e,{...t,phase:"result",blocks:n})}}function cF(e,t,r,n){return r.flatMap(r=>cA(e[r],{messageIndex:r,entryId:t[r],phase:"process",toolResults:n}))}function cD(e){return e?e.map(e=>e.newPath).filter(e=>"string"==typeof e&&e.length>0):[]}function cO(e){return"assistant"===e.role&&o4(e).answerBlocks.some(e=>"image"===e.type||"text"===e.type&&e.text.trim().length>0)}function cH(e){return"assistant"===e.role?o2(e).length>0:"custom"===e.role}function cB(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={...e,content:t};return r.omitUsage&&(n.usage=void 0),n}function cU(e,t,r,n){let s=new Map(n);for(let t of e)"toolResult"===t.role&&s.set(t.toolCallId,t);let i=-1;for(let t=e.length-1;t>=0;t--)if("user"===e[t].role){i=t;break}let o=new Map,a=0;e.forEach((e,t)=>{("user"===e.role||"assistant"===e.role)&&o.set(t,a++)});let l=[];for(let n=0;n<e.length;){let i,o=e[n],a="custom"===o.role&&"compaction"===o.customType,d=0===n&&"user"!==o.role&&!a;if("user"!==o.role&&!a&&!d){l.push({kind:"single",idx:n}),n+=1;continue}let c=d?-1:n,u=n+1;for(;u<e.length&&"user"!==e[u].role;)u+=1;let p=function(e,t,r){for(let n=r-1;n>t;n--)if(cO(e[n]))return n;for(let n=r-1;n>t;n--)if(e[n]?.role==="assistant")return n;return -1}(e,c,u),h=d&&p>=0&&!cO(e[p])&&!o0(e[p])?-1:p;if(-1===h){let r=Array.from({length:u-c-1},(e,t)=>c+1+t).filter(t=>cH(e[t])),i=cF(e,t,r,s);if(d&&0===i.length){for(let t=0;t<u;t+=1)"toolResult"!==e[t].role&&l.push({kind:"single",idx:t});n=u;continue}l.push({kind:"turn",userIdx:c,endIdx:u,startsCompactionTurn:a,finalAssistantIdx:h,visibleProcessIndices:r,processBlocks:i,processSegments:cL(i),finalAnswerMessage:null,writtenFiles:void 0}),n=u;continue}let x=[];for(let e=c+1;e<h;e++)x.push(e);let g=x.filter(t=>cH(e[t])),f=e[h],m=o4(f),v=m.processBlocks.length>0?cB(f,m.processBlocks,{omitUsage:!0}):null,y=m.answerBlocks.length>0||o0(f)?cB(f,m.answerBlocks):null,b=cF(e,t,g,s);if(v&&(b=b.concat(cP(f,{messageIndex:h,entryId:t[h],toolResults:s}).processBlocks)),y){let t=[];for(let r=c+1;r<=h;r++){let n=e[r];if(n?.role==="assistant")for(let e of n.content??[])t.push(e)}i=function(e,t,r){let n=new Set,s=[];for(let i of e){if("toolCall"!==i.type||!function(e){let t,r;return"write"===(t=e.toLowerCase())||t.startsWith("write_")||t.endsWith(".write")||t.endsWith("_write")||"edit"===(r=e.toLowerCase())||r.startsWith("edit_")||r.endsWith(".edit")||r.endsWith("_edit")||r.includes("str_replace")||r.includes("replace_editor")}(i.toolName)&&!a3(i.toolName))continue;let e=t?.get(i.toolCallId);if(e&&!e.isError)for(let t of a3(i.toolName)?function(e,t){let r=t?.details,n=function(e,t){let r=new Set;if(t&&"object"==typeof t&&!Array.isArray(t)){let e=t.preview;if(e&&"object"==typeof e&&!Array.isArray(e)){let t=e.files;if(Array.isArray(t))for(let e of t)!(!e||"object"!=typeof e||Array.isArray(e))&&"delete"===e.operation&&"string"==typeof e.filePath&&e.filePath.length>0&&r.add(e.filePath)}}for(let t of a0(e).matchAll(/^\*\*\* Delete File: (.+)$/gm)){let e=(t[1]??"").trim();e&&r.add(e)}return r}(e,r),s=function(e){if(!a1(e)||!a1(e.result))return null;let t=e.result.appliedFiles;return Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.length>0):null}(r);if(s)return s.filter(e=>!n.has(e));if(a2(r))return[];if(r&&"object"==typeof r&&!Array.isArray(r)){let e=cD(a5(r.preview));if(e.length>0)return e}return cD(a4(a0(e)))}(i.input,e):[function(e){if(!e)return null;let t=e.file_path??e.path;return"string"==typeof t&&t.length>0?t:null}(i.input)]){if(!t)continue;let e=function(e,t){let r;if(!e)return null;let n=/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")||void 0!==t&&(/^[a-zA-Z]:[\\/]/.test(t)||t.startsWith("\\\\")),s=e=>n?e.replace(/\\/g,"/"):e,i=s(e),o=t?s(t).replace(/\/+$/,""):void 0,a=/^[a-zA-Z]:\//.test(i),l=i.startsWith("//");if(a||l)r=i;else if(i.startsWith("/")){let e=o?.match(/^([a-zA-Z]:)(?:\/|$)/)?.[1]??o?.match(/^(\/\/[^/]+\/[^/]+)(?:\/|$)/)?.[1];r=e?`${e}${i}`:i}else{if(!o)return null;r=`${o}/${i}`}return iF(r)}(t,r);e&&(n.has(e)||(n.add(e),s.push({filePath:e})))}}return s}(t,s,r)}l.push({kind:"turn",userIdx:c,endIdx:u,startsCompactionTurn:a,finalAssistantIdx:h,visibleProcessIndices:g,processBlocks:b,processSegments:cL(b),finalAnswerMessage:y,writtenFiles:i}),n=u}return{toolResultsMap:s,lastUserIdx:i,visibleRefIndexByMessage:o,items:l}}let c_={idle:"var(--text-muted)",running:"var(--status-success)",paused:"var(--status-warning)",blocked:"#ea580c",budget_limited:"var(--status-error)",complete:"var(--text-muted)"},cK=new Set(["paused","blocked"]);function cq(e){let t=Math.abs(e);return t>=1e6?`${(e/1e6).toFixed(2)}M`:t>=1e3?`${(e/1e3).toFixed(1)}K`:`${e}`}function cV(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 cJ(e){let{goalState:t,onPause:r,onResume:i,onStop:o,onEdit:a}=e,{t:l}=(0,J.s)(),[d,c]=(0,s.useState)(!1),[u,p]=(0,s.useState)(""),h=(0,s.useRef)(null),[x,g]=(0,s.useState)(()=>Date.now());if((0,s.useEffect)(()=>{if("running"!==t.status)return;let e=setInterval(()=>g(Date.now()),1e3);return()=>clearInterval(e)},[t.status]),(0,s.useEffect)(()=>{d&&h.current&&(h.current.focus(),h.current.select())},[d]),"idle"===t.status||"complete"===t.status)return null;let f=c_[t.status]??"var(--text-muted)",m="running"===t.status,v=cK.has(t.status),y="running"===t.status,b=t.timeUsedSeconds??0;y&&t.startedAt&&(b=Math.floor((x-t.startedAt)/1e3));let k=null!=t.tokenBudget?`${cq(t.tokensUsed)}/${cq(t.tokenBudget)}`:cq(t.tokensUsed),j=()=>{c(!1),p("")},w=()=>{let e=u.trim();e&&e!==t.goalText?(a(e),c(!1),p("")):j()},S=(e,t,r)=>(0,n.jsx)("button",{type:"button",onClick:t,style:{padding:"3px 9px",borderRadius:5,border:`1px solid ${r?"var(--accent)":"var(--border)"}`,background:r?"var(--accent)":"var(--bg)",color:r?"#fff":"var(--text-muted)",cursor:"pointer",fontSize:12,lineHeight:1.4,fontFamily:"var(--font-mono)",whiteSpace:"nowrap",flexShrink:0},children:e});return(0,n.jsxs)("div",{style:{flexShrink:0,display:"flex",flexDirection:"column",gap:6,padding:"8px 10px",borderTop:`1px solid ${f}55`,borderBottom:`1px solid ${f}55`,background:`color-mix(in srgb, ${f} 5%, transparent)`,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,n.jsx)(n2.d,{size:13,weight:"fill",color:f,"aria-hidden":"true"}),(0,n.jsx)("span",{title:cV(t.status),style:{flexShrink:0,width:8,height:8,borderRadius:"50%",background:f}}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:11,fontFamily:"var(--font-mono)",color:f,textTransform:"uppercase",letterSpacing:.4},children:cV(t.status)}),(0,n.jsxs)("span",{style:{flex:1,fontSize:11,fontFamily:"var(--font-mono)",color:"var(--text-dim)",whiteSpace:"nowrap",textAlign:"right",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:[function(e){let t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m`;let n=Math.floor(r/60),s=r%60;if(n>=24){let e=Math.floor(n/24);return`${e}d ${n%24}h`}return 0===s?`${n}h`:`${n}h ${s}m`}(b)," \xb7 ",k,"t",null!=t.tokenBudget?" \xb7 "+l("desktop.goalBudget"):""]}),(0,n.jsxs)("div",{style:{display:"flex",gap:4,flexShrink:0},children:[m&&S(l("desktop.goalPauseShort"),r,!1),v&&S(l("desktop.goalResumeShort"),i,!0),!d&&S(l("desktop.goalEdit"),()=>{p(t.goalText??""),c(!0)},!1),S("✕",o,!1)]})]}),d?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,n.jsx)("textarea",{ref:h,value:u,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)?(e.preventDefault(),w()):"Escape"===e.key&&(e.preventDefault(),j())},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:[S(l("desktop.goalCancel"),j,!1),S(l("desktop.goalSave"),w,!0)]}),(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:l("desktop.goalEditHint")})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{fontSize:13,color:"var(--text)",lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:t.goalText??l("desktop.goalRunning")}),y&&(0,n.jsxs)("div",{style:{display:"flex",gap:10,fontSize:10,color:"var(--text-muted)",fontFamily:"var(--font-mono)",flexWrap:"wrap"},children:[(0,n.jsxs)("span",{children:[l("desktop.goalTurns"),": ",t.turnsUsed,"/",t.turnsLimit]}),t.noProgressTurns>0&&(0,n.jsx)("span",{children:l("desktop.goalNoProgress",{n:t.noProgressTurns})})]})]})]})}let cG="pi:create-task-from-text",cY=null;var cX=r(36405),cZ=r(92185),cQ=r(75877),c0=r(30830);function c1(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function c2(e){let t=e,r=t.compressedEntryIds?.length??0;for(;1===t.children.length;)t=t.children[0],r+=1+(t.compressedEntryIds?.length??0);return{node:t,skipped:r}}function c6(e){if(e.length>1)return!0;let t=[...e];for(;t.length>0;){let e=t.pop();if(e.children.length>1)return!0;for(let r of e.children)t.push(r)}return!1}function c4(e){let{node:t,assistantLabel:r,activePathIds:s,depth:i,isLast:o,parentLines:a,onSelect:l}=e,{node:d,skipped:c}=c2(t),u=s.has(d.entry.id),p=s.has(t.entry.id)||s.has(d.entry.id),h=function(e,t){if("message"===e.type&&"message"in e){let r=e.message,n=r.content,s="";if("string"==typeof n?s=n:Array.isArray(n)&&(s=n.filter(e=>"text"===e.type).map(e=>e.text).join(" ")),s.length>40&&(s=s.slice(0,40)+"…"),s)return s;if("assistant"===r.role)return`[${t}]`}return e.type}(d.entry,r),x="message"===d.entry.type&&"message"in d.entry?d.entry.message.role:null;return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",height:24,cursor:"pointer"},onClick:()=>l(d.entry.id),children:[a.map((e,t)=>(0,n.jsx)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:e&&(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:0,width:1,background:"var(--border)"}})},t)),(0,n.jsxs)("div",{style:{width:16,flexShrink:0,position:"relative",height:"100%",alignSelf:"stretch"},children:[(0,n.jsx)("div",{style:{position:"absolute",left:7,top:0,bottom:o?"50%":0,width:1,background:"var(--border)"}}),(0,n.jsx)("div",{style:{position:"absolute",left:7,top:"50%",width:9,height:1,background:"var(--border)"}})]}),(0,n.jsx)("div",{style:{width:7,height:7,borderRadius:"50%",flexShrink:0,background:u?"var(--accent)":p?"var(--text-muted)":"var(--border)",border:u?"none":"1px solid var(--text-dim)",marginRight:6,transition:"background 0.12s"}}),x&&(0,n.jsx)("span",{style:{fontSize:9,fontFamily:"var(--font-mono)",color:"user"===x?"var(--accent)":"var(--text-dim)",background:"user"===x?"rgba(37,99,235,0.08)":"var(--bg-hover)",border:`1px solid ${"user"===x?"rgba(37,99,235,0.2)":"var(--border)"}`,borderRadius:3,padding:"0 4px",marginRight:5,flexShrink:0,lineHeight:"16px"},children:"user"===x?"U":"A"}),c>0&&(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginRight:5,flexShrink:0},children:["+",c]}),(0,n.jsx)("span",{style:{fontSize:11,color:u?"var(--text)":p?"var(--text-muted)":"var(--text-dim)",fontWeight:u?500:400,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:h})]}),d.children.map((e,t)=>(0,n.jsx)(c4,{node:e,assistantLabel:r,activePathIds:s,depth:i+1,isLast:t===d.children.length-1,parentLines:[...a,!o],onSelect:l},e.entry.id))]})}function c5(e){let{tree:t,activeLeafId:r,onLeafChange:i,inline:o,containerRef:a,open:l,onToggle:d,hasSession:c,embedded:u}=e,{t:p}=(0,J.s)(),[h,x]=(0,s.useState)(!1),g=void 0!==l?l:h,f=(0,s.useRef)(null),[m,v]=(0,s.useState)(null);(0,s.useEffect)(()=>{if(!g||!o)return;let e=a?.current??f.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.max(8,Math.min(t.left,window.innerWidth-8-180)),n=window.innerWidth-8-r,s=Math.min(Math.max(t.width,Math.min(180,n)),n);v({top:t.bottom,left:r,width:s})};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[g,o,a]);let y=(0,s.useMemo)(()=>(function(e,t){if(!t)return new Set;let r=e.map(e=>({node:e,path:[e.entry.id]}));for(;r.length>0;){let{node:e,path:n}=r.pop();if(e.entry.id===t||e.compressedEntryIds?.includes(t))return new Set(n);for(let t of e.children)r.push({node:t,path:[...n,t.entry.id]})}return new Set})(t,r),[t,r]),b=(0,s.useCallback)(e=>{i(e)},[i]),k=c?c6(t)?null:p("desktop.sessionHasNoBranches"):p("desktop.noActiveSession"),j=t.length>0?c2(t[0]):null,w=j?.node??null,S=!k&&w&&w.children.length>1,C=(0,n.jsx)(e0.Z,{size:16,"aria-hidden":"true",style:{flexShrink:0}}),z=(0,n.jsx)(e1.a,{size:8,color:"var(--text-dim)","aria-hidden":"true",style:{marginLeft:1,transition:"transform 0.15s",transform:g?"rotate(180deg)":"none"}});return o?(0,n.jsxs)("div",{style:{height:"100%",display:"flex",alignItems:"stretch"},children:[(0,n.jsx)("button",{ref:f,className:"app-no-drag",onClick:()=>d?d():x(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:C}),g&&m&&(0,n.jsx)("div",{className:"app-no-drag",style:{position:"fixed",top:m.top,left:m.left,width:m.width,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",zIndex:500},children:S&&w?(0,n.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:w.children.map((e,t)=>(0,n.jsx)(c4,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===w.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:k})})]}):u?S&&w?(0,n.jsx)("div",{style:{padding:"4px 8px 8px 8px"},children:w.children.map((e,t)=>(0,n.jsx)(c4,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===w.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:k??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:()=>x(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:[C,(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:p("desktop.branches")}),z]}),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:S&&w?(0,n.jsx)("div",{style:{padding:"4px 12px 8px 12px",maxHeight:260,overflowY:"auto"},children:w.children.map((e,t)=>(0,n.jsx)(c4,{node:e,assistantLabel:p("desktop.assistant"),activePathIds:y,depth:0,isLast:t===w.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:k??p("desktop.sessionHasNoBranches")})})]})}var c3=r(45390),c8=r(33846);function c7(e){let{open:t,onOpenChange:r,cwd:i}=e,{t:o}=(0,J.s)(),[a,l]=(0,s.useState)([]),[d,c]=(0,s.useState)(""),[u,p]=(0,s.useState)(!1),[h,x]=(0,s.useState)(null),[g,f]=(0,s.useState)(null);G(t&&!u,()=>r(!1));let m=(0,s.useCallback)(async()=>{if(i)try{let e=await fetch(`/api/git/stash?${new URLSearchParams({cwd:i}).toString()}`,{cache:"no-store"});if(e.ok){let t=await e.json();l(t.entries)}}catch{}},[i]);if((0,s.useEffect)(()=>{t&&m()},[t,m]),!t)return null;let v=async(e,t)=>{p(!0),x(null),f(null);try{let r=await fetch(`/api/git/stash?${new URLSearchParams({cwd:i??""}).toString()}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,message:d||void 0,ref:t})}),n=await r.json();r.ok&&n.ok?(f(n.output??o("tasks.stashDone")),c(""),m()):x(n.error??`HTTP ${r.status}`)}catch(e){x(e instanceof Error?e.message:String(e))}finally{p(!1)}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",maxHeight:"min(75vh, 560px)",overflow:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:o("desktop.stashTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":o("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(eP.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:d,onChange:e=>c(e.target.value),placeholder:o("desktop.stashMessagePlaceholder"),style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void v("push"),disabled:u,style:{alignSelf:"flex-start",display:"inline-flex",alignItems:"center",gap:5,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:u?"not-allowed":"pointer"},children:[(0,n.jsx)(c8.c,{size:13,"aria-hidden":"true"}),o("desktop.stashPush")]})]}),h&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(239,68,68,0.10)",color:"var(--status-error)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:h}),g&&(0,n.jsx)("div",{style:{padding:"8px 10px",borderRadius:8,background:"rgba(34,197,94,0.10)",color:"var(--status-success)",fontSize:12,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:g}),(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:[o("desktop.stashList")," (",a.length,")"]}),0===a.length?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:o("desktop.stashEmpty")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:a.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderRadius:8,border:"1px solid var(--border)",background:"var(--bg)"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-muted)",flexShrink:0},children:e.index}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.message||e.ref}),(0,n.jsxs)("button",{type:"button",onClick:()=>void v("pop",e.ref),disabled:u,title:o("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:u?"not-allowed":"pointer"},children:[(0,n.jsx)(K.S,{size:11,"aria-hidden":"true"}),o("desktop.stashPop")]}),(0,n.jsx)("button",{type:"button",onClick:()=>void v("drop",e.ref),disabled:u,title:o("desktop.stashDrop"),style:{display:"inline-flex",alignItems:"center",padding:"4px 8px",borderRadius:6,border:"1px solid var(--border)",background:"none",color:"var(--status-error)",fontSize:11,cursor:u?"not-allowed":"pointer"},children:o("desktop.stashDrop")})]},e.ref))})]})]})]})})}function c9(e){let{cwd:t}=e,{t:r}=(0,J.s)(),[i,o]=(0,s.useState)(!1),[a,l]=(0,s.useState)("idle"),[d,c]=(0,s.useState)(null),[u,p]=(0,s.useState)(!1),h=(0,s.useCallback)(async()=>{if(t&&!i){o(!0),l("idle");try{let e=await fetch(`/api/git/push?${new URLSearchParams({cwd:t}).toString()}`,{method:"POST",cache:"no-store"}),n=await e.json();e.ok&&n.ok?(l("ok"),c(n.output||r("desktop.pushOk"))):(l("error"),c(n.error??r("desktop.pushFailed")))}catch(e){l("error"),c(e instanceof Error?e.message:r("desktop.pushFailed"))}finally{o(!1),setTimeout(()=>{l("idle"),c(null)},4e3)}}},[t,i,r]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>void h(),disabled:!t||i,title:r("desktop.push"),"aria-label":r("desktop.push"),style:{position:"relative"},children:"ok"===a?(0,n.jsx)(lQ.r,{size:13,color:"var(--status-success)",weight:"fill","aria-hidden":"true"}):"error"===a?(0,n.jsx)(c3.J,{size:13,color:"var(--status-error)",weight:"fill","aria-hidden":"true"}):(0,n.jsx)(c8.c,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:()=>p(!0),disabled:!t,title:r("desktop.stash"),"aria-label":r("desktop.stash"),children:(0,n.jsx)(te.T,{size:13,"aria-hidden":"true"})}),d&&(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"===a?"var(--status-success)":"var(--status-error)"}`,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",fontSize:12,color:"ok"===a?"var(--status-success)":"var(--status-error)",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:d}),(0,n.jsx)(c7,{open:u,onOpenChange:p,cwd:t})]})}function ue(e){let{onViewFullHistory:t,cwd:r,systemPrompt:i,sessionStats:o,contextUsage:a,hasSession:l,showChat:d,soundEnabled:c,onSoundToggle:u,onCompact:p,onAbortCompaction:h,isCompacting:x,compactError:g,branchTree:f,branchActiveLeafId:m,onBranchLeafChange:v,showSoundLabel:y,lastTurnUsage:b}=e,{t:k}=(0,J.s)(),j=tu(),[w,S]=(0,s.useState)(null),C=(0,s.useCallback)(()=>S(null),[]),z=(0,s.useRef)(null),[T,R]=(0,s.useState)(null),I=(0,s.useCallback)(()=>{let e=z.current;if(!e)return;let t=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:4,s=Math.max(0,t.width-2*r),i=Math.max(r,Math.min(Math.round(t.height-e+n),t.height-r-120)),o=Math.max(0,Math.round(t.height-i-r));return{left:r,right:r,width:s,bottom:i,maxHeight:o}}(e.getBoundingClientRect().top,{width:window.innerWidth,height:window.innerHeight});R({position:"fixed",left:t.left,right:t.right,width:t.width,bottom:t.bottom,minWidth:0,maxWidth:t.width,maxHeight:t.maxHeight,overflowY:"auto"})},[]),N=(0,s.useRef)(null),M=(0,s.useCallback)((e,t)=>{if(N.current===e){N.current=null,S(null),R(null),z.current=null;return}N.current=e,z.current=t.closest(".session-info-bar-popover-host"),S(e),j?I():R(null)},[j,I]);(0,s.useEffect)(()=>{if(w&&T)return window.addEventListener("resize",I),()=>window.removeEventListener("resize",I)},[w,T,I]);let[E,$]=(0,s.useState)(null),L=(0,s.useRef)(null),W=(0,s.useCallback)((e,t)=>{i9(t).then(()=>{L.current&&clearTimeout(L.current),$(e),L.current=setTimeout(()=>$(null),1400)})},[]),A=(0,s.useMemo)(()=>{if(!i)return 0;let e=0;for(let t of i){let r=t.codePointAt(0)??0;r>=19968&&r<=40959||r>=13312&&r<=19903||r>=131072&&r<=173791||r>=12352&&r<=12447||r>=12448&&r<=12543||r>=44032&&r<=55215?e+=1:e+=.25}return Math.max(1,Math.round(e))},[i]);if(!d)return null;let P=o?.tokens,F=o?.cost??0,D=o?.costCNY??0,O=o?.costUSD??0,H=[];D>0&&H.push(lu(D)),O>0&&H.push(O>=.01?`$${O.toFixed(2)}`:"<$0.01"),0===H.length&&F>0&&H.push(F>=.01?`$${F.toFixed(2)}`:"<$0.01");let B=H.length>0?H.join(" + "):null,U="var(--text-muted)";if(a?.contextWindow){let e=a.percent;null!==e&&e>90?U="var(--status-error)":null!==e&&e>70&&(U="rgba(234,179,8,0.95)")}let _=null!==i&&""!==i,K=o&&P&&(P.input>0||P.output>0),G=l&&v,Y=[];if(P&&(Y.push(`${k("desktop.sessionInfoInput")}: ${P.input.toLocaleString()}`),Y.push(`${k("desktop.sessionInfoOutput")}: ${P.output.toLocaleString()}`),P.cacheRead>0&&Y.push(`${k("desktop.sessionInfoCacheRead")}: ${P.cacheRead.toLocaleString()}`),P.cacheWrite>0&&Y.push(`${k("desktop.sessionInfoCacheWrite")}: ${P.cacheWrite.toLocaleString()}`),D>0&&Y.push(`${k("desktop.sessionInfoCostOfficial")}: ${lu(D)}`),O>0&&Y.push(`${k("desktop.sessionInfoCost")}: $${O.toFixed(4)}`),D<=0&&O<=0&&F>0&&Y.push(`${k("desktop.sessionInfoCost")}: $${F.toFixed(4)}`)),a?.contextWindow&&null!==a.percent){let e=a.percent,t=a.tokens;Y.push(`${k("desktop.sessionInfoContext")}: ${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==t?c1(t):"?"}/${c1(a.contextWindow)}`)}let X=Y.join(" | ");return(0,n.jsxs)("div",{className:"session-info-bar",children:[r&&(0,n.jsx)(c9,{cwd:r}),u&&(0,n.jsxs)("button",{type:"button",className:"session-info-bar-button",onClick:u,title:c?k("desktop.disableCompletionSound"):k("desktop.enableCompletionSound"),"aria-label":c?k("desktop.disableCompletionSound"):k("desktop.enableCompletionSound"),children:[c?(0,n.jsx)(cX.Q,{size:13}):(0,n.jsx)(cZ.l,{size:13}),y&&(0,n.jsx)("span",{style:{marginLeft:4},children:c?k("desktop.soundLabelOn"):k("desktop.soundLabelOff")})]}),l&&(0,n.jsx)("button",{type:"button",className:"session-info-bar-button",onClick:t,title:k("desktop.viewFullHistory"),"aria-label":k("desktop.viewFullHistory"),children:(0,n.jsx)(cQ.n,{size:13,"aria-hidden":"true"})}),G&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"branches"===w?" is-active":""}`,onClick:e=>M("branches",e.currentTarget),title:k("desktop.branches"),"aria-label":k("desktop.branches"),"aria-pressed":"branches"===w,children:(0,n.jsx)(e0.Z,{size:13,"aria-hidden":"true"})}),"branches"===w&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:C}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-branches",style:T??void 0,children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:k("desktop.branches")}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:C,title:k("i18n.close"),"aria-label":k("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-popover-body",children:(0,n.jsx)(c5,{tree:f??[],activeLeafId:m??null,onLeafChange:e=>{v(e),C()},hasSession:!0,embedded:!0})})]})]})]}),_&&(0,n.jsxs)("div",{className:"session-info-bar-popover-host",children:[(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${"system"===w?" is-active":""}`,onClick:e=>M("system",e.currentTarget),title:k("desktop.systemPrompt"),"aria-label":k("desktop.systemPrompt"),"aria-pressed":"system"===w,children:(0,n.jsx)(nV.i,{size:13,"aria-hidden":"true"})}),"system"===w&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:C}),(0,n.jsxs)("div",{className:"session-info-bar-popover is-system",style:T??void 0,children:[(0,n.jsxs)("div",{className:"session-info-bar-popover-header",children:[(0,n.jsx)("span",{className:"session-info-bar-popover-title",children:k("desktop.systemPrompt")}),(0,n.jsxs)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:8},children:["~",c1(A)," tokens"]}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsx)("button",{type:"button",className:"session-info-bar-popover-close",onClick:C,title:k("i18n.close"),"aria-label":k("i18n.close"),children:"✕"})]}),(0,n.jsx)("div",{className:"session-info-bar-system-body",children:i?(0,n.jsx)(iE.oz,{remarkPlugins:[iV.A],children:i}):(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:[g&&(0,n.jsx)("div",{className:"session-info-bar-compact-error",children:g}),(0,n.jsx)("button",{type:"button",className:`session-info-bar-button${x?" is-compacting":""}`,onClick:x?h:p,title:x?k("desktop.stopCompaction"):k("desktop.compactContext"),"aria-label":x?k("desktop.stopCompaction"):k("desktop.compactContext"),children:x?(0,n.jsx)(nQ.M,{size:13}):(0,n.jsx)(c0.C,{size:13})})]}),K&&(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"===w?" is-active":""}`,onClick:e=>M("session",e.currentTarget),title:X||k("desktop.sessionInfo"),"aria-label":k("desktop.sessionInfo"),"aria-pressed":"session"===w,children:[P&&P.input>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(ln.D,{size:10,"aria-hidden":"true"}),c1(P.input)]}),P&&P.output>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(lr.y,{size:10,"aria-hidden":"true"}),c1(P.output)]}),P&&P.cacheRead>0&&(0,n.jsxs)("span",{className:"session-info-bar-token-chip",children:[(0,n.jsx)(lo.W,{size:10,"aria-hidden":"true"}),c1(P.cacheRead)]}),B&&(0,n.jsx)("span",{children:B}),a?.contextWindow&&null!==a.percent&&(0,n.jsx)("span",{className:"session-info-bar-token-chip",style:{color:U},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===a.percent?0:100-Math.min(100,Math.max(0,a.percent)),transform:"rotate(-90 8 8)"})]})})]}),"session"===w&&o&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-info-bar-popover-cover",onClick:C}),(0,n.jsx)("div",{className:"session-info-bar-popover is-session",style:T??void 0,children:(0,n.jsx)("div",{className:"session-stats-body",children:(()=>{let e=o.tokens,t=a??o.contextUsage,r=(e,t)=>{let r=E===e;return(0,n.jsx)("button",{type:"button",className:`session-stats-copy${r?" is-copied":""}`,title:r?k("desktop.copied"):"file"===e?k("desktop.copyFilePath"):k("desktop.copySessionId"),onClick:()=>W(e,t),children:r?(0,n.jsx)(q.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(V.Q,{size:12,"aria-hidden":"true"})})},s=[];o.sessionName&&s.push((0,n.jsx)("div",{className:"session-stats-info-name",children:o.sessionName},"name")),s.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:o.sessionFile?o.sessionFile.split(/[/\\]/).pop()??o.sessionFile:k("desktop.sessionInfoInMemory")}),o.sessionFile?r("file",o.sessionFile):null]},"file")),s.push((0,n.jsxs)("div",{className:"session-stats-info-line",children:[(0,n.jsx)("span",{className:"session-stats-info-text",children:o.sessionId}),r("id",o.sessionId)]},"id"));let i=[[k("desktop.sessionInfoUser"),o.userMessages.toLocaleString()],[k("desktop.sessionInfoAssistant"),o.assistantMessages.toLocaleString()],[k("desktop.sessionInfoToolCalls"),o.toolCalls.toLocaleString()],[k("desktop.sessionInfoToolResults"),o.toolResults.toLocaleString()],[k("desktop.sessionInfoTotal"),o.totalMessages.toLocaleString()]],l=[[k("desktop.sessionInfoInput"),e.input.toLocaleString()],[k("desktop.sessionInfoOutput"),e.output.toLocaleString()]];e.cacheRead>0&&l.push([k("desktop.sessionInfoCacheRead"),e.cacheRead.toLocaleString()]),e.cacheWrite>0&&l.push([k("desktop.sessionInfoCacheWrite"),e.cacheWrite.toLocaleString()]),l.push([k("desktop.sessionInfoTotal"),e.total.toLocaleString()]);let d=o.costCNY??0,c=o.costUSD??0;if(d>0&&l.push([k("desktop.sessionInfoCostOfficial"),lu(d)]),c>0&&l.push([k("desktop.sessionInfoCost"),`$${c.toFixed(4)}`]),d<=0&&c<=0&&o.cost>0&&l.push([k("desktop.sessionInfoCost"),`$${o.cost.toFixed(4)}`]),t?.contextWindow&&null!==t.percent){let e=t.percent,r=t.tokens;l.push([k("desktop.sessionInfoContext"),`${null!==e?`${e.toFixed(1)}%`:"?"} ${null!==r?c1(r):"?"}/${c1(t.contextWindow)}`])}(o.totalActiveMs??0)>0&&l.push([k("desktop.sessionInfoActiveTime"),function(e){if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),s=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${s}s`:`${s}s`}(o.totalActiveMs)]);let u=b?b.costCNY>0?lu(b.costCNY):b.costUSD>0?`$${b.costUSD.toFixed(4)}`:null:null,p=(e,t)=>(0,n.jsxs)("div",{className:"session-stats-row",children:[(0,n.jsx)("div",{className:"session-stats-label",children:e}),(0,n.jsx)("div",{className:"session-stats-value",children:t})]},e);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"session-stats-info-block",children:s}),(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:k("desktop.sessionInfoMessages")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:i.map(e=>{let[t,r]=e;return p(t,r)})})]}),(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:k("desktop.sessionInfoTokens")}),(0,n.jsx)("div",{className:"session-stats-compact-grid",children:l.map(e=>{let[t,r]=e;return p(t,r)})})]}),b&&(0,n.jsxs)("div",{className:"session-stats-column",children:[(0,n.jsx)("div",{className:"session-stats-section-title",children:k("desktop.turnUsageTitle")}),(0,n.jsxs)("div",{className:"session-stats-compact-grid",children:[p(k("desktop.sessionInfoInput"),b.input.toLocaleString()),p(k("desktop.sessionInfoOutput"),b.output.toLocaleString()),b.cacheRead>0&&p(k("desktop.sessionInfoCacheRead"),b.cacheRead.toLocaleString()),u&&p(k("desktop.sessionInfoCost"),u)]})]})]})]})})()})})]})]})]})}function ut(e){return e.replace(/<\/?[\w:-]+\b[^>]*>/g," ").replace(/<\/?[\w:-]+\b[^&]*?>/gi," ").replace(/\s+/g," ").trim()}function ur(e){return"user"===e.role||"assistant"===e.role&&(e.content??[]).some(e=>"text"===e.type||"thinking"===e.type||"toolCall"===e.type)}function un(e){var t;let{messages:r,streamingMessage:i,scrollContainer:o,messageRefs:a,onWidthChange:l,virtualizer:d}=e,[c,u]=(0,s.useState)(0),[p,h]=(0,s.useState)(1),[x,g]=(0,s.useState)(!1),[f,m]=(0,s.useState)([]),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(null),[j,w]=(0,s.useState)(0),S=(0,s.useRef)(!1),C=(0,s.useRef)(null),z=(0,s.useMemo)(()=>i?[...r,i]:r,[r,i]),T=(0,s.useRef)(z);T.current=z;let R=(0,s.useCallback)(()=>{let e=o.current;if(!e)return;let t=e.scrollHeight,r=e.clientHeight,n=t-r;g(n>20),n<=0?(u(0),h(1)):(u(e.scrollTop/n),h(r/t))},[o]),I=(0,s.useRef)(null),N=(0,s.useRef)([]),M=(0,s.useRef)(d);M.current=d;let E=(0,s.useCallback)(()=>{I.current||(I.current=setTimeout(()=>{I.current=null;let e=o.current;if(!e)return;let t=e.scrollHeight;if(t<=0)return;let r=[],n=T.current,s=M.current;if(s){if(0>=s.totalHeight())return;let e=0,i=new Set;for(let o=0;o<n.length;o++){let a=n[o];if("user"!==a.role&&"assistant"!==a.role)continue;let l=s.refToItemIndex(e);if(e+=1,void 0===l||i.has(l)||!ur(a))continue;i.add(l);let d=s.getOffsetForIndex(l),c=s.sizeFor(l);r.push({topRatio:d/t,heightRatio:Math.max(c/t,1/t),msg:a,index:r.length})}}else{let s=a.current,i=0;for(let o=0;o<n.length;o++){let a=n[o];if("user"!==a.role&&"assistant"!==a.role)continue;let l=s?.[i];if(i++,ur(a)&&l){let n=l.getBoundingClientRect(),s=e.getBoundingClientRect(),i=n.top-s.top+e.scrollTop,o=n.height;r.push({topRatio:i/t,heightRatio:o/t,msg:a,index:r.length})}}}let i=N.current;i.length===r.length&&r.every((e,t)=>1e-6>Math.abs(e.topRatio-i[t].topRatio)&&1e-6>Math.abs(e.heightRatio-i[t].heightRatio))||(N.current=r,m(r))},150))},[o,a]);(0,s.useEffect)(()=>{let e=o.current;if(e)return e.addEventListener("scroll",R,{passive:!0}),()=>e.removeEventListener("scroll",R)},[o,R]),(0,s.useEffect)(()=>{let e=o.current;if(!e)return;let t=()=>{R(),E()},r=new ResizeObserver(t);return r.observe(e),e.firstElementChild&&r.observe(e.firstElementChild),t(),()=>{r.disconnect(),I.current&&(clearTimeout(I.current),I.current=null)}},[o,E,R]),(0,s.useEffect)(()=>{let e=setTimeout(()=>{R(),E()},50);return()=>clearTimeout(e)},[r.length,E,R]);let $=(0,s.useCallback)(e=>{let t=o.current;if(!t)return;let r=t.scrollHeight-t.clientHeight;r<=0||(t.scrollTop=Math.max(0,Math.min(1-p,e))/(1-p)*r)},[o,p]),L=(0,s.useCallback)(e=>{if(!x)return;S.current=!0;let t=e.currentTarget.getBoundingClientRect(),r=(e.clientY-t.top)/t.height,n=r-c*(1-p),s=n>=0&&n<=p?n:p/2;$(r-s);let i=e=>{S.current&&$((e.clientY-t.top)/t.height-s)},o=()=>{S.current=!1,window.removeEventListener("mousemove",i),window.removeEventListener("mouseup",o)};window.addEventListener("mousemove",i),window.addEventListener("mouseup",o)},[x,p,c,$]);(0,s.useEffect)(()=>{if(!x)return void w(0);let e=C.current;if(!e)return;let t=()=>w(e.clientHeight),r=new ResizeObserver(t);return r.observe(e),t(),()=>r.disconnect()},[x]);let W=(0,s.useMemo)(()=>{if(j<=0)return[];let e=[];return f.map(t=>{let r=t.topRatio*j,n=Math.max(3,Math.min(46,t.heightRatio*j)),s=Math.max(0,r-n/2),i=Math.min(j,r+n/2),o=e.findIndex(e=>s>=e+1);return -1===o?(o=e.length,e.push(i)):e[o]=i,{...t,displayTopPx:r,lane:o}})},[f,j]),A=Math.max(18,4+5*(t=(0,s.useMemo)(()=>W.reduce((e,t)=>Math.max(e,t.lane+1),1),[W]))+(t-1)*1);if((0,s.useEffect)(()=>{l?.(x?A:18)},[A,l,x]),(0,s.useEffect)(()=>()=>l?.(18),[l]),!x)return null;let P=c*(1-p)*100,F=100*p,D=null!==b&&W.length>0?W.reduce((e,t)=>Math.abs(t.displayTopPx/j-b)<Math.abs(W[e].displayTopPx/j-b)?t.index:e,0):null,O=null===D?null:W.find(e=>e.index===D)??null;return(0,n.jsxs)("div",{ref:C,onMouseDown:L,onMouseEnter:()=>y(!0),onMouseLeave:()=>{y(!1),k(null)},onMouseMove:e=>{let t=e.currentTarget.getBoundingClientRect();k((e.clientY-t.top)/t.height)},style:{width:A,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:`${P}%`,height:`${F}%`,background:"color-mix(in srgb, var(--text-muted) 14%, transparent)",pointerEvents:"none",zIndex:1}}),W.map(e=>{let t=function(e){if("user"===e.role)return"var(--accent)";let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?"var(--accent-red)":t.some(e=>"toolCall"===e.type)?"var(--accent-green)":"var(--text-dim)"}(e.msg),r=v&&O?.index===e.index,s="user"===e.msg.role,i=Math.max(3,Math.min(46,e.heightRatio*j)),o=2+6*e.lane;return(0,n.jsx)("div",{"data-minimap-node-index":e.index,style:{position:"absolute",top:e.displayTopPx,transform:"translateY(-50%)",left:o,width:5,height:i,display:"flex",alignItems:"stretch",cursor:"pointer",zIndex:function(e){if("user"===e.role)return 6;let t=e.content??[];return t.some(e=>"toolCall"===e.type&&e.error)?5:t.some(e=>"text"===e.type&&!!e.text?.trim())?4:t.some(e=>"toolCall"===e.type)?3:2}(e.msg)},children:(0,n.jsx)("div",{style:{width:"100%",height:"100%",borderRadius:1,background:t,opacity:r?1:s?.92:.72,transition:"opacity 0.1s, filter 0.1s",filter:r?"brightness(1.2)":"none"}})},e.index)}),v&&O&&(()=>{let e=function(e){if("user"===e.role){let t=e.content;return"string"==typeof t?t.slice(0,200):Array.isArray(t)?t.filter(e=>"text"===e.type&&e.text).map(e=>e.text).join("\n").slice(0,200):""}if("assistant"===e.role){let t=e.content??[],r=t.filter(e=>"text"===e.type).map(e=>e.text).join(" ");if(r)return ut(r).slice(0,200);let n=t.filter(e=>"thinking"===e.type).map(e=>ut(e.thinking??"")).filter(Boolean).join(" ");if(n)return n.slice(0,200);let s=t.filter(e=>"toolCall"===e.type).map(e=>e.toolName);if(s.length)return s.join(", ")}return""}(O.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)"}(O.msg),r=Math.max(1,Math.min(5,Math.floor(j/120))),s=15*r+4,i=Math.max(s/2,Math.min(j-s/2,O.displayTopPx));return(0,n.jsx)("div",{"data-minimap-preview-box":"",style:{position:"absolute",top:i,transform:"translateY(-50%)",right:"100%",marginRight:6,background:t,border:"none",borderRadius:4,padding:"2px 7px",width:220,zIndex:100,pointerEvents:"none"},children:(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text)",lineHeight:"15px",display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:r,overflow:"hidden",overflowWrap:"anywhere"},children:e})})})()]})}function us(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ui(e){return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("assistant"!==e.role)return e;let r=e.content;if(!Array.isArray(r))return e;let n=r.map(e=>(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!us(e)||"toolCall"!==e.type)return null;let r={type:"toolCall",toolCallId:"string"==typeof e.toolCallId?e.toolCallId:"string"==typeof e.id?e.id:"",toolName:"string"==typeof e.toolName?e.toolName:"string"==typeof e.name?e.name:"",input:"object"!=typeof e.input||null===e.input||Array.isArray(e.input)?"object"!=typeof e.arguments||null===e.arguments||Array.isArray(e.arguments)?{}:e.arguments:e.input},n=t.includeStreamingRawInput?function(e){if("string"==typeof e.rawInput)return e.rawInput;if("string"==typeof e.partialJson)return e.partialJson;if("string"==typeof e.partialArgs)return e.partialArgs;let t=us(e.customInput)?e.customInput:null,r=t&&"string"==typeof t.property?t.property:null,n=us(e.arguments)?e.arguments:null;return r&&n&&"string"==typeof n[r]?n[r]:void 0}(e):void 0;return void 0===n?r:{...r,rawInput:n}})(e,t)??e);return{...e,content:n}}(e)}class uo extends Error{constructor(e,t,r,n){super(e),this.status=t,this.code=r,this.accepted=n,this.name="AgentCommandError"}}class ua extends Error{constructor(e,t,r){super(e),this.commandType=t,this.timeoutMs=r,this.name="AgentCommandTimeoutError"}}let ul=new Set(["compact","bash"]);async function ud(e,t){let r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=function(e,t){if(void 0!==t.timeoutMs)return t.timeoutMs;let r="string"==typeof e.type?e.type:"";return 3e4*!ul.has(r)}(t,n),i=s>0?new AbortController:void 0,o=i?setTimeout(()=>i.abort(),s):void 0;try{r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),...i?{signal:i.signal}:{}})}catch(e){if(i?.signal.aborted)throw new ua(`Agent command "${String(t.type??"unknown")}" timed out after ${s}ms`,String(t.type??"unknown"),s);throw e}finally{o&&clearTimeout(o)}let a=await r.json().catch(()=>({}));if(!r.ok||a.error)throw new uo(a.error??`HTTP ${r.status}`,r.status,a.code,a.accepted);return a.data}var uc=r(24188),uu=r(14755);function up(e){if(!e)return 0;let t=0;for(let r of e){let e=r.codePointAt(0)??0;e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=44032&&e<=55215?t+=1:t+=.25}return Math.max(0,Math.round(t))}function uh(){return"u">typeof performance?performance.now():Date.now()}function ux(){return globalThis.__piSessionViewCache||(globalThis.__piSessionViewCache=new Map),globalThis.__piSessionViewCache}function ug(e){var t;return("message_start"===e.type||"message_end"===e.type)&&"object"==typeof(t=e.message)&&null!==t&&!Array.isArray(t)&&"system"===e.message.role}function uf(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function um(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8;return e+t>=r-n}function uv(e,t){let r="u">typeof document?document.documentElement.lang:null,n=(0,uc.d9)(r)?r:"en",s=(0,uc.gw)("en"),i=(0,uc.gw)(n);return s||i?(0,t1.u0)(n,e,{en:s?.messages,...i?{[n]:i.messages}:{}},t):e}function uy(e,t){switch(t.type){case"start":return{isStreaming:!0,streamingMessage:null};case"resume":return{...e,isStreaming:!0};case"update":return{isStreaming:!0,streamingMessage:t.message};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return e}}function ub(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 uk(e,t){return e.length===t.length&&e.every((e,r)=>e===t[r])}function uj(e){return{steering:e?.steering??[],followUp:e?.followUp??[]}}function uw(e){return e&&"auto"!==e?e:null}let uS=["You are in PLAN MODE.","<economy-profile>","<delivery-profile>","<goal-profile>"],uC=new Set(["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," ","Space","Spacebar"]);class uz extends Error{constructor(e){super("timeout"===e?"Timed out connecting to the agent event stream. Please try again.":"Failed to connect to the agent event stream. Please try again."),this.status=e,this.name="EventStreamConnectionError"}}function uT(e){return new Promise(t=>setTimeout(t,e))}function uR(e){let t=e.findIndex(e=>!e.exiting);return -1===t?e:e.map((e,r)=>r===t?{...e,exiting:!0}:e)}function uI(e,t){switch(t.type){case"add":if(e.visible.some(e=>e.exiting)||e.visible.length>=5)return{visible:e.visible.some(e=>e.exiting)?e.visible:uR(e.visible),pending:[...e.pending,t.notice]};return{...e,visible:[...e.visible,t.notice]};case"mark_oldest_exiting":return{...e,visible:uR(e.visible)};case"remove":return function(e,t){let r=e,n=t;for(;n.length>0&&r.length<5;){let[e,...t]=n;r=[...r,e],n=t}return n.length>0&&!r.some(e=>e.exiting)&&(r=uR(r)),{visible:r,pending:n}}(e.visible.filter(e=>e.id!==t.id),e.pending);default:return e}}function uN(e){if(!e||"object"!=typeof e||"image"!==e.type)return"";let t=e.source;return t&&"object"==typeof t?["url"===t.type?"url":"base64","string"==typeof t.media_type?t.media_type:"","string"==typeof t.data?t.data:"","string"==typeof t.url?t.url:""].join(":"):["base64","string"==typeof e.mimeType?e.mimeType:"","string"==typeof e.data?e.data:"",""].join(":")}function uM(e){let t,r=e.content;return"string"==typeof r?JSON.stringify({text:r,images:[]}):Array.isArray(r)?JSON.stringify({text:"string"==typeof(t=e.content)?t:Array.isArray(t)?t.map(e=>e&&"object"==typeof e&&"text"===e.type&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):"",images:r.map(uN).filter(Boolean)}):JSON.stringify({text:"",images:[]})}function uE(e,t){return e&&"object"==typeof e?"number"!=typeof e.tokensBefore||"number"!=typeof e.estimatedTokensAfter?null:{reason:t,tokensBefore:e.tokensBefore,estimatedTokensAfter:e.estimatedTokensAfter}:null}let u$="pi-web:modes-global-default",uL="pi:open-tasks-view";function uW(e){var t;let i,{session:o,newSessionCwd:a,onAgentEnd:d,onSessionCreated:c,onSessionForked:u,modelsRefreshKey:p,chatInputRef:h,onBranchDataChange:x,onSystemPromptChange:g,onSessionStatsChange:f,onSessionStatsPanelOpen:m,onContextUsageChange:v,onOpenFile:y,onWorkspaceControlsHostChange:b,onViewFullHistory:k,systemPrompt:j,tasksBoardEnabled:w,onOpenSession:S,onOpenSubagent:C,subagentRuns:z}=e,{soundEnabled:T,onSoundToggle:R,playDoneSound:I,unlockAudio:N}=function(){let[e,t]=(0,s.useState)(()=>{let e=localStorage.getItem("pi-sound-enabled");return null===e||"true"===e}),r=(0,s.useRef)(e);(0,s.useEffect)(()=>{r.current=e},[e]);let n=(0,s.useRef)(null),i=(0,s.useCallback)(()=>{if(n.current&&"closed"!==n.current.state)return n.current;try{n.current=new AudioContext}catch{return null}return n.current},[]),o=(0,s.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!e&&!r.current)return;let t=i();t&&"suspended"===t.state&&t.resume().catch(()=>{})},[i]);return{soundEnabled:e,onSoundToggle:(0,s.useCallback)(()=>{let e=!r.current;e&&o(!0),r.current=e,localStorage.setItem("pi-sound-enabled",String(e)),t(e)},[o]),playDoneSound:(0,s.useCallback)(()=>{if(!r.current)return;let e=i();if(!e)return;let t=()=>{try{let t;t=e.currentTime,[523.25,659.25].forEach((r,n)=>{let s=e.createOscillator(),i=e.createGain();s.connect(i),i.connect(e.destination),s.type="sine",s.frequency.value=r;let o=t+.18*n;i.gain.setValueAtTime(0,o),i.gain.linearRampToValueAtTime(.18,o+.02),i.gain.exponentialRampToValueAtTime(.001,o+.45),s.start(o),s.stop(o+.45)})}catch{}};"suspended"===e.state?e.resume().then(t).catch(()=>{}):t()},[i]),unlockAudio:o,soundEnabledRef:r}}(),M=tu(),{t:E}=(0,J.s)(),$=(0,s.useRef)(I);$.current=I;let L=(0,s.useRef)(T);L.current=T;let W=(0,s.useRef)(null),A=(0,s.useCallback)(()=>{L.current&&$.current(),d?.()},[d]),P=(0,s.useCallback)(e=>{let t=e;if("string"==typeof e.content){let r=rn(e.content);r&&(t={...e,content:r})}h?.current?.replaceMessage(t)},[h]),F=(0,s.useCallback)(e=>{h?.current?.prependText(e)},[h]),D=(0,s.useCallback)((e,t)=>{cY={text:e,projectRoot:t??null},window.dispatchEvent(new CustomEvent(cG)),window.dispatchEvent(new Event(uL))},[]),{loading:O,error:H,messages:B,activeToolResults:U,entryIds:_,streamState:K,agentRunning:q,bashRunning:V,pendingBash:G,modelNames:Y,modelList:X,modelThinkingLevels:Z,modelThinkingLevelMaps:Q,modelScopeWarnings:ee,modelsError:et,reloadModels:er,toolPreset:en,thinkingLevel:es,isAutoThinkingSelection:ei,retryInfo:eo,contextUsage:ea,forkingEntryId:el,isCompacting:ed,compactError:ec,compactResult:eu,displayModel:ep,sessionStats:eh,tokenRate:ex,slashCommands:eg,slashCommandsLoading:ef,queuedMessages:em,pendingRecovery:ev,recoveryIsImport:ey,notices:eb,extensionDialog:ek,extensionCustomUi:ej,extensionStatuses:ew,extensionWidgets:eS,respondToExtensionUi:eC,sendExtensionCustomInput:ez,agentPhase:eT,isNew:eR,branchTree:eI,activeLeafId:eN,handleLeafChange:eM,sessionIdRef:eE,messagesEndRef:e$,scrollContainerRef:eL,lastUserMsgRef:eW,pendingScrollToUserRef:eA,initialScrollDoneRef:eP,scrollUserMsgToTop:eF,handleSend:eD,executeBash:eO,handleAbort:eH,handleFork:eB,handleNavigate:eU,handleModelChange:e_,handleCompact:eK,handleSteer:eq,handleFollowUp:eV,handlePromptWithStreamingBehavior:eJ,handleAbortCompaction:eG,handleRecallQueue:eY,resolveRecovery:eX,exportQueueData:eZ,stageQueueImport:eQ,moveQueuedMessage:e0,recallQueuedMessage:e1,requeueAt:e2,removeQueuedMessage:e6,handleBuiltinSlashCommand:e4,handleToolPresetChange:e5,handleThinkingLevelChange:e3,loadSlashCommands:e8,planMode:e7,collaborationMode:e9,toolApprovalMode:te,handleCollaborationModeChange:tt,handleToolApprovalModeChange:tr,approvalRequests:tn,resolveApproval:ts,goalState:ti,handleGoalStart:to,handleGoalPause:ta,handleGoalResume:tl,handleGoalStop:td,handleGoalEdit:tc,historyCursor:tp,hasEarlierMessages:th,loadContext:tx}=function(e){let{session:t,newSessionCwd:n,onAgentEnd:i,onSessionCreated:o,onSessionForked:a,modelsRefreshKey:l,onBranchDataChange:d,onSystemPromptChange:c,onSessionStatsPanelOpen:u}=e,p=null===t&&null!==n,h=`${t?.id??"new"}\0${n??t?.cwd??""}`,[x,g]=(0,s.useState)(null),f=(0,s.useRef)(null),m=(0,s.useRef)(0),v=(0,s.useRef)(null),[y,b]=(0,s.useState)(!p),[k,j]=(0,s.useState)(null),[w,S]=(0,s.useState)(null),[C,z]=(0,s.useState)([]),[T,R]=(0,s.useState)(new Map),[I,N]=(0,s.useState)([]),[M,E]=(0,s.useState)(null),[$,L]=(0,s.useState)(!1),[W,A]=(0,s.useReducer)(uy,{isStreaming:!1,streamingMessage:null}),P=(0,s.useRef)(!1);P.current=W.isStreaming;let[F,D]=(0,s.useState)(null),O=(0,s.useRef)({lastChars:0,window:[]}),H=(0,s.useCallback)(()=>{O.current={lastChars:0,window:[]},D(null)},[]),B=(0,s.useCallback)(e=>{if(!e||"assistant"!==e.role)return 0;let t=e.content;if(!Array.isArray(t))return 0;let r=0;for(let e of t)"string"==typeof e?r+=up(e):e&&"object"==typeof e&&("string"==typeof e.text?r+=up(e.text):"string"==typeof e.thinking&&(r+=up(e.thinking)));return r},[]),U=(0,s.useCallback)(e=>{let t=B(e),r=O.current;if(t===r.lastChars)return;let n=Date.now(),s=Math.max(0,t-r.lastChars);r.lastChars=t,r.window.push({at:n,chars:s});let i=n-1e3;for(;r.window.length>0&&r.window[0].at<i;)r.window.shift();let o=r.window.reduce((e,t)=>e+t.chars,0),a=r.window.length>0?n-r.window[0].at:0;a<200||D(Math.max(0,Math.round(o/Math.max(1,a)*1e4)/10))},[B]),[_,K]=(0,s.useState)(!1),[q,V]=(0,s.useState)(!1),[J,G]=(0,s.useState)(null),[Y,X]=(0,s.useState)({}),[Z,Q]=(0,s.useState)([]),[ee,et]=(0,s.useState)({}),[er,en]=(0,s.useState)({}),[es,ei]=(0,s.useState)([]),[eo,ea]=(0,s.useState)(null),[el,ed]=(0,s.useState)(null),[ec,eu]=(0,s.useState)(null),[ep,eh]=(0,s.useState)(uu.Q8),ex=(0,s.useRef)("default"),eg=(0,s.useRef)(!1),[ef,em]=(0,s.useState)(()=>(function(){try{let e=window.localStorage.getItem(u$);if(!e)return null;let t=JSON.parse(e),r=t.permissionRules;return{collaborationMode:t5(t.collaborationMode),tokenMode:t3(t.tokenMode),toolApprovalMode:t8(t.toolApprovalMode),permissionRules:{allow:Array.isArray(r?.allow)?r.allow:[],ask:Array.isArray(r?.ask)?r.ask:[],deny:Array.isArray(r?.deny)?r.deny:[]}}}catch{return null}})()??{collaborationMode:t2,tokenMode:t6,toolApprovalMode:t4,permissionRules:{allow:[],ask:[],deny:[]}}),ev=(0,s.useRef)(null),ey=(0,s.useRef)(!1),eb=(0,s.useRef)(t?.id??null);eb.current=t?.id??null,(0,s.useEffect)(()=>{let e=!1,t=async()=>{let t=eb.current,r=t?`?session=${encodeURIComponent(t)}`:"";try{let n=await fetch(`/api/modes${r}`);if(!n.ok||e)return;let s=await n.json();if(e)return;let i={collaborationMode:t5(s.collaborationMode),tokenMode:t3(s.tokenMode),toolApprovalMode:t8(s.toolApprovalMode),permissionRules:{allow:Array.isArray(s.permissionRules?.allow)?s.permissionRules.allow:[],ask:Array.isArray(s.permissionRules?.ask)?s.permissionRules.ask:[],deny:Array.isArray(s.permissionRules?.deny)?s.permissionRules.deny:[]}};if(!ey.current&&t&&"plan"===i.collaborationMode){let r=await fetch("/api/modes").catch(()=>null);if(!e&&r?.ok){let n=await r.json().catch(()=>null);if(!e&&n){let e=i.collaborationMode;(i={...i,collaborationMode:t5(n.collaborationMode)}).collaborationMode!==e&&fetch(`/api/modes?session=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)}).catch(()=>{})}}}ey.current=!0,em(i),t||function(e){try{window.localStorage.setItem(u$,JSON.stringify(e))}catch{}}(i)}catch{}};t();let r=()=>void t();return window.addEventListener("pi:modes-changed",r),()=>{e=!0,ey.current=!1,window.removeEventListener("pi:modes-changed",r)}},[t?.id]);let ek=ef.collaborationMode,ej=ef.tokenMode,ew=ef.toolApprovalMode,eS=ef.permissionRules,eC="plan"===ek;(0,s.useEffect)(()=>{eg.current=eC},[eC]);let ez=(0,s.useRef)(ek),eT=(0,s.useRef)(ej),eR=(0,s.useRef)(ew),eI=(0,s.useRef)(ef.permissionRules),eN=(0,s.useRef)(null),eM=(0,s.useRef)({sessionKey:"",signature:""}),eE=(0,s.useRef)(ef);(0,s.useEffect)(()=>{eE.current=ef},[ef]),(0,s.useEffect)(()=>{eR.current=ew},[ew]),(0,s.useEffect)(()=>{eI.current=ef.permissionRules},[ef.permissionRules]),(0,s.useEffect)(()=>{ez.current=ek,eM.current={sessionKey:"",signature:""}},[ek]),(0,s.useEffect)(()=>{eT.current=ej,eM.current={sessionKey:"",signature:""}},[ej]);let[e$,eL]=(0,s.useState)([]),eW=(0,s.useRef)([]);(0,s.useEffect)(()=>{eW.current=e$},[e$]);let[eA,eP]=(0,s.useState)({status:"idle",goalText:null,turnsUsed:0,turnsLimit:10,noProgressTurns:0,noProgressLimit:4,tokensUsed:0,tokenBudget:null,timeUsedSeconds:0}),eF=(0,s.useRef)(eA);(0,s.useEffect)(()=>{eF.current=eA},[eA]);let[eD,eO]=(0,s.useState)(!0),eH=(0,s.useRef)(!1),[eB,eU]=(0,s.useState)("auto"),[e_,eK]=(0,s.useState)(null),[eq,eV]=(0,s.useState)(null),[eJ,eG]=(0,s.useState)(null),[eY,eX]=(0,s.useState)(null),[eZ,eQ]=(0,s.useState)(null),[e0,e1]=(0,s.useState)(null),[e2,e6]=(0,s.useState)(null),e4=(0,s.useRef)(null),e5=(0,s.useCallback)(e=>{let t=e?.model;t&&"string"==typeof t.provider&&"string"==typeof t.modelId&&e6({provider:t.provider,modelId:t.modelId}),e?.thinkingLevel!==void 0&&eK(uw(e.thinkingLevel))},[]);(0,s.useEffect)(()=>{e1(null),e6(null),e4.current=null,rS.current+=1},[t?.id]);let[e3,e8]=(0,s.useState)(null),[e7,e9]=(0,s.useState)(!1),[te,tt]=(0,s.useState)(null),[tr,tn]=(0,s.useState)(null),[ts,ti]=(0,s.useState)(null),[to,ta]=(0,s.useState)(!1),[tl,td]=(0,s.useState)(!1),[tc,tu]=(0,s.useState)([]),[tp,th]=(0,s.useState)(!1),[tx,tg]=(0,s.useReducer)(uI,{visible:[],pending:[]}),[tf,tm]=(0,s.useState)(null),[tv,ty]=(0,s.useState)(null),[tb,tk]=(0,s.useState)(null),[tj,tw]=(0,s.useState)([]),[tS,tC]=(0,s.useState)([]),[tz,tT]=(0,s.useState)({steering:[],followUp:[]}),tR=(0,s.useCallback)(e=>{tT(t=>{let r="function"==typeof e?e(t):e;return uk(t.steering,r.steering)&&uk(t.followUp,r.followUp)?t:r})},[]),[tI,tN]=(0,s.useState)([]),tM=(0,s.useCallback)(e=>{tN(t=>{let r="function"==typeof e?e(t):e;return t.length===r.length&&t.every((e,t)=>{let n=r[t];return e.id===n.id&&e.kind===n.kind&&e.text===n.text&&e.hasImages===n.hasImages})?t:r})},[]),[tE,t$]=(0,s.useState)(!1),tL=(0,s.useRef)(null),tW=(0,s.useCallback)(()=>{tL.current&&clearTimeout(tL.current),tL.current=setTimeout(async()=>{tL.current=null;let e=t_.current;if(e)try{let t=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!t.ok)return;let r=await t.json();r.state?.queuedMessages!==void 0&&tR(uj(r.state.queuedMessages))}catch{}},8e3)},[tR]),tA=(0,s.useCallback)(()=>{tL.current&&(clearTimeout(tL.current),tL.current=null)},[]),tP=(0,s.useRef)(null),tF=(0,s.useRef)(null),tD=(0,s.useRef)(null),tO=(0,s.useRef)(null),tH=(0,s.useRef)(0),tB=(0,s.useRef)(!1),tU=(0,s.useRef)(0),t_=(0,s.useRef)(t?.id??null),tK=(0,s.useRef)(!0),tq=(0,s.useRef)({}),tV=(0,s.useRef)("off"),[tJ,tG]=(0,s.useState)(null),tY=(0,s.useRef)(0),tX=(0,s.useRef)(t?.id??null);tX.current=t?.id??null;let tZ=(0,s.useRef)(!1),tQ=(0,s.useRef)(!1),t0=(0,s.useRef)(!1),t1=(0,s.useRef)(!1),rs=(0,s.useRef)(-1),ri=(0,s.useRef)(!0),ro=(0,s.useRef)(!1),ra=(0,s.useRef)(!1),rl=(0,s.useRef)(0),rd=(0,s.useRef)(!1),rc=(0,s.useRef)(null),ru=(0,s.useRef)(!1),rp=(0,s.useRef)(null),rh=(0,s.useRef)(!1),rx=(0,s.useRef)(!0),rg=(0,s.useRef)(!0),rf=(0,s.useRef)(0),rm=(0,s.useRef)(0),rv=(0,s.useRef)(null),ry=(0,s.useRef)(null),rb=(0,s.useRef)(null),rk=(0,s.useRef)(!1),rj=(0,s.useRef)(0),rw=(0,s.useRef)(null),rS=(0,s.useRef)(0),rC=(0,s.useRef)(0),rz=(0,s.useRef)(null),rT=(0,s.useRef)(h);rT.current=h;let rR=(0,s.useRef)(null),rI=(0,s.useRef)(null),rN=(0,s.useRef)(null);rN.current||(rN.current=function(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=1e3/Math.max(1,r.maxUpdatesPerSecond??30),s=r.now??uh,i=r.requestFrame??("function"==typeof requestAnimationFrame?requestAnimationFrame:void 0),o=r.cancelFrame??("function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0),a=r.setTimer??setTimeout,l=r.clearTimer??clearTimeout,d=!1,c=!1,u=null,p=null,h=null,x=()=>{null!==u&&(o?.(u),u=null),null!==p&&(l(p),p=null)},g=(r,n)=>{if(!c||d)return;let s=t;c=!1,t=void 0,h=r;let i=()=>{d||e(s)};n&&"function"==typeof queueMicrotask?queueMicrotask(i):i()},f=()=>{if(!d&&c&&null===u&&null===p){if(!i){let e=null===h?n:s()-h;p=a(()=>{p=null,g(s(),!0),f()},Math.max(0,n-e));return}u=i(e=>{if(u=null,d||!c)return;let t=null===h?n:e-h;if(t<n){p=a(()=>{p=null,f()},n-t);return}g(e,!0),f()})}};return{enqueue(e){d||(t=e,c=!0,f())},flush(){!d&&c&&(x(),g(s(),!1),f())},reset(){x(),c=!1,t=void 0,h=null},destroy(){d||(d=!0,x(),c=!1,t=void 0)}}}(e=>{A({type:"update",message:e})}));let rM=(0,s.useCallback)(()=>{rN.current?.reset()},[]),rE=(0,s.useCallback)(e=>{rN.current?.enqueue(e)},[]),r$=e.setToolPreset??eh,rL=x?.context.model,rW=rL&&rL.provider&&rL.modelId?rL:null,rA=e0??e2??rW??e3??null,rP=p?el??ec:rA??(x?.context.messages.length===0?ec:null),rF=uw(x?.context.thinkingLevel&&"off"!==x.context.thinkingLevel?x.context.thinkingLevel:null),rD=rI.current,rO=p?rD??tJ:e_??rF??(x?.context.messages.length===0?tJ:null),rH=(0,s.useMemo)(()=>{if(tf)return{...tf,totalActiveMs:x?.totalActiveMs};if(t&&x&&void 0===x.stats)return null;let e={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},r=0,n=0,s=0,i=0,o=0,a=0,l=0;for(let t of C){if("user"===t.role&&(i+=1),"toolResult"===t.role&&(a+=1),"assistant"!==t.role)continue;o+=1;let d=t.usage;if(l+=t.content.filter(e=>"toolCall"===e.type).length,!d)continue;e.input+=d.input??0,e.output+=d.output??0,e.cacheRead+=d.cacheRead??0,e.cacheWrite+=d.cacheWrite??0;let c=d.cost?.total??0;r+=c,ld(t.model)?n+=lc(t.model,d):s+=c}let d=x?.stats;return(d&&(e.input=Math.max(e.input,d.tokens.input),e.output=Math.max(e.output,d.tokens.output),e.cacheRead=Math.max(e.cacheRead,d.tokens.cacheRead),e.cacheWrite=Math.max(e.cacheWrite,d.tokens.cacheWrite),s=Math.max(s,d.cost),i=Math.max(i,d.userMessages),o=Math.max(o,d.assistantMessages),a=Math.max(a,d.toolResults),l=Math.max(l,d.toolCalls)),e.total=e.input+e.output+e.cacheRead+e.cacheWrite,0!==e.total||0!==C.length||d)?{sessionFile:x?.filePath||void 0,sessionId:t_.current??t?.id??"",sessionName:t?.name,userMessages:i,assistantMessages:o,toolCalls:l,toolResults:a,totalMessages:d?Math.max(C.length,d.totalMessages):C.length,tokens:e,cost:r,costCNY:n,costUSD:s,totalActiveMs:x?.totalActiveMs,...eJ?{contextUsage:eJ}:{}}:null},[C,tf,eJ,x?.filePath,x?.totalActiveMs,x?.stats,t?.id,t?.name]),rB=(0,s.useCallback)(async function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0,s=m.current,i=!1;try{let o;t&&b(!0),f.current?.abort(),s=m.current+1,m.current=s;let a=new AbortController;f.current=a;let l=new URLSearchParams({deferThinking:"1",deferMedia:"1",view:"initial"});n?.force&&l.set("force","1");let d=async()=>{let t=new AbortController,r=setTimeout(()=>t.abort(),3e4),n=()=>t.abort();a.signal.addEventListener("abort",n,{once:!0});try{return await fetch(`/api/sessions/${encodeURIComponent(e)}?${l}`,{signal:t.signal})}finally{clearTimeout(r),a.signal.removeEventListener("abort",n)}};try{o=await d()}catch(e){if(!(e instanceof DOMException&&"AbortError"===e.name))throw e;if(a.signal.aborted)return null;o=await d()}if(404===o.status)return t&&(r0.current+=1,g(null),S(null),z([]),N([]),E(null),L(!1),j(null)),ux().delete(e),null;if(!o.ok)throw Error(`HTTP ${o.status}`);let c=await o.json();if(t_.current!==e||m.current!==s)return null;g(c),v.current?.abort();let u=new AbortController;v.current=u,fetch(`/api/sessions/${encodeURIComponent(e)}/details`,{signal:u.signal}).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return await e.json()}).then(t=>{t_.current!==e||m.current!==s||u.signal.aborted||g(r=>r?.sessionId===e?{...r,...t}:r)}).catch(e=>{"AbortError"!==e.name&&console.warn("Failed to load session details",e)}),S(c.leafId),z(c.context.messages),N(c.context.entryIds??[]),tQ.current||(rm.current=Date.now()+700),r0.current+=1,E(c.context.oldestEntryId),L(c.context.hasMore),e1(e=>e?c.context.model&&e.provider===c.context.model.provider&&e.modelId===c.context.model.modelId?null:e:null);let p=c.context.model&&c.context.model.provider&&c.context.model.modelId?{provider:c.context.model.provider,modelId:c.context.model.modelId}:null;if(e4.current=p,e6(e=>p?e&&e.provider===p.provider&&e.modelId===p.modelId?e:p:e),tZ.current=void 0!==c.toolNames,r$(void 0!==c.toolNames?(0,uu.YO)(c.toolNames):uu.Q8),j(null),c.wrapperRebuilt&&(rJ(),rG(e)),!r&&c.context.thinkingLevel&&"off"!==c.context.thinkingLevel&&eK(uw(c.context.thinkingLevel)),i=!0,t&&b(!1),!r)return null;try{let t,r=new AbortController,n=setTimeout(()=>r.abort(),2e4);try{t=await fetch(`/api/sessions/${encodeURIComponent(e)}/state`,{signal:r.signal})}finally{clearTimeout(n)}if(!t.ok)throw Error(`HTTP ${t.status}`);let i=await t.json();if(t_.current!==e||m.current!==s)return null;let o=i.state;if(e5(o),o){if(void 0!==o.contextUsage&&eG(o.contextUsage??null),void 0!==o.systemPrompt&&eX(o.systemPrompt??null),void 0!==o.extensionStatuses&&tw(o.extensionStatuses??[]),void 0!==o.extensionWidgets&&tC(o.extensionWidgets??[]),void 0!==o.queuedMessages&&tR(uj(o.queuedMessages)),void 0!==o.pendingRecovery&&tM(o.pendingRecovery??[]),void 0!==o.autoCompactionEnabled&&eO(o.autoCompactionEnabled??!0),void 0!==o.goalState){let e=o.goalState;e&&(eF.current=e,eP(e))}}else i.running||tR({steering:[],followUp:[]});return i}catch(e){return console.error("Failed to load agent state:",e),null}}catch(t){let e=t instanceof DOMException&&"AbortError"===t.name;if(i)return console.warn("Failed to load auxiliary session state",t),null;return j(e?"Timed out loading this conversation. Please try again.":String(t)),null}finally{t&&!i&&m.current===s&&b(!1)}},[tM,tR,r$]);(0,s.useEffect)(()=>{if(!t||!y)return;let e=window.setTimeout(()=>{ri.current&&t_.current&&y&&(f.current?.abort(),v.current?.abort(),b(!1),j("Timed out loading this conversation. Please try again."))},35e3);return()=>window.clearTimeout(e)},[y,t]);let rU=(0,s.useCallback)(async e=>{try{let t=await ud(e,{type:"get_tools"});if(!t||!tK.current||t_.current!==e)return null;let{getPresetFromTools:n}=await Promise.resolve().then(r.bind(r,14755)),s=n(t);return tZ.current&&"plan"===s&&!eg.current?(await ud(e,{type:"set_tools",toolNames:(0,uu.xG)("default")}).catch(()=>{}),r$("default")):r$(tZ.current?s:uu.Q8),t}catch(e){console.error("Failed to load tools:",e)}},[r$]),r_=(0,s.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"(no messages)",r=t_.current;p&&n&&r&&!rk.current&&(rk.current=!0,o?.({id:r,path:"",cwd:n,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:e,firstMessage:t}))},[p,n,o]),rK=(0,s.useCallback)(async()=>{if(t_.current||!p||!n)return t_.current;if(rb.current)return rb.current;let e=(async()=>{let e,t=rR.current,r=rI.current;t&&e8(t);let s=(0,uu.xG)(ep);tZ.current=void 0!==s;let i=new AbortController,o=setTimeout(()=>i.abort(),3e4);try{e=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,type:"ensure_session",...void 0!==s?{toolNames:s}:{},...t?{provider:t.provider,modelId:t.modelId}:{},...r?{thinkingLevel:r}:{}}),signal:i.signal})}catch(e){if(i.signal.aborted)throw Error("Timed out creating a new session after 30s. The agent service may still be starting up — please try again.");throw e}finally{clearTimeout(o)}if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.error??`HTTP ${e.status}`)}let a=await e.json();t_.current=a.sessionId;let l=ev.current;return l&&(ev.current=null,fetch(`/api/modes?session=${encodeURIComponent(a.sessionId)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)}).catch(e=>{console.error("Failed to persist pending mode settings:",e)})),a.model&&rR.current===t&&(e8(a.model),t||eu(a.model)),a.thinkingLevel&&rI.current===r&&(eU(a.thinkingLevel),eK(uw(a.thinkingLevel))),a.sessionId})();rb.current=e;try{return await e}finally{rb.current=null}},[p,n,ep]);(0,s.useCallback)(async()=>{let e=t_.current??await rK();if(!e)return;let[t]=await Promise.all([ud(e,{type:"get_state"}),rU(e)]);tK.current&&t_.current===e&&(e5(t),eX(t.systemPrompt??""))},[rK,rU,e5]);let rq=(0,s.useCallback)(async()=>{let e=t_.current??await rK();if(!e)return tu([]),[];th(!0);try{let t=await ud(e,{type:"get_commands"}),r=t?.commands??[];return tu(r),r}catch(e){return console.error("Failed to load slash commands:",e),tu([]),[]}finally{th(!1)}},[rK]),rV=(0,s.useCallback)(()=>{tH.current+=1,tB.current=!1,tO.current&&(clearTimeout(tO.current),tO.current=null)},[]),rJ=(0,s.useCallback)(()=>{tP.current?.close(),tP.current=null,tF.current=null,tD.current=null},[]),rG=(0,s.useCallback)(e=>{rJ(),tU.current=Date.now();let t=new EventSource(`/api/agent/${encodeURIComponent(e)}/events`);tP.current=t,tF.current=e;let r=new Promise(r=>{let n=!1,s=e=>{n||(n=!0,clearTimeout(i),tD.current?.source===t&&(tD.current.pending=!1),r({status:e,source:t}))},i=setTimeout(()=>s("timeout"),3e4);t.onmessage=e=>{tU.current=Date.now();try{let t=JSON.parse(e.data);"connected"===t.type&&s("connected"),rc.current?.(t)}catch{}},t.onerror=()=>{if(t.readyState!==EventSource.CLOSED||(s("closed"),tP.current!==t||!tQ.current&&!tB.current))return;tP.current=null,tF.current=null,tD.current=null;let r=tH.current;setTimeout(()=>{r===tH.current&&!tP.current&&(tQ.current||tB.current)&&rG(e)},1e3)}});return tD.current={source:t,promise:r,pending:!0},r},[rJ]),rY=(0,s.useCallback)(async e=>{let t=tP.current;if(t&&tF.current===e)if(t.readyState===EventSource.OPEN)if(!(Date.now()-tU.current>95e3))return;else rJ();else{let e=tD.current;if(e?.source===t&&e.pending&&(await e.promise,tP.current===t&&t.readyState===EventSource.OPEN))return}let r=await rG(e);if("connected"!==r.status&&r.source.readyState!==EventSource.OPEN)throw tP.current===r.source&&(tP.current=null),tF.current===e&&(tF.current=null),tD.current?.source===r.source&&(tD.current=null),r.source.close(),new uz(r.status)},[rG]),rX=(0,s.useCallback)(async(e,t)=>{let r=t_.current;if(ty(t=>t?.id===e.id?null:t),r)try{await ud(r,{type:"extension_ui_response",id:e.id,...t})}catch(e){console.error("Failed to send extension UI response:",e)}},[]),rZ=(0,s.useCallback)(async(e,t)=>{let r=t_.current;if(r)try{await ud(r,{type:"extension_ui_input",id:e.id,data:t})}catch(e){console.error("Failed to send extension custom UI input:",e)}},[]),rQ=(0,s.useCallback)(e=>{let t=e.message.trim();if(!t)return;let r=e.type??"info";("error"===r||"warning"===r)&&fetch("/api/logs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:r,source:"agent-notice",sessionId:t_.current??void 0,message:t})}).catch(()=>{}),tg({type:"add",notice:{id:e.id??("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`),message:t,type:r}})},[]),r0=(0,s.useRef)(0),r1=(0,s.useCallback)(async(e,t,r)=>{let n=r0.current,s=async n=>{let s=new URLSearchParams({deferThinking:"1",deferMedia:"1"});return t&&s.set("leafId",t),r&&s.set("before",r),fetch(`/api/sessions/${encodeURIComponent(e)}/context?${s}`,{signal:n})};try{let t,i=new AbortController,o=setTimeout(()=>i.abort(),3e4);try{t=await s(i.signal)}catch(e){if(!(e instanceof DOMException&&"AbortError"===e.name))throw e;t=await s(i.signal)}finally{clearTimeout(o)}if(!t.ok)throw Error(`HTTP ${t.status}`);let a=await t.json();if(t_.current!==e||r0.current!==n)return;if(E(a.context.oldestEntryId),L(a.context.hasMore),g(t=>{if(!t||t.sessionId!==e)return t;let n=r?{...t.context,messages:[...a.context.messages,...t.context.messages],entryIds:[...a.context.entryIds,...t.context.entryIds],oldestEntryId:a.context.oldestEntryId,hasMore:a.context.hasMore}:a.context;return{...t,context:n}}),!r&&a.context.model&&a.context.model.provider&&a.context.model.modelId){let e={provider:a.context.model.provider,modelId:a.context.model.modelId};e4.current=e,e6(t=>t&&t.provider===e.provider&&t.modelId===e.modelId?t:e)}r?(z(e=>[...a.context.messages,...e]),N(e=>[...a.context.entryIds,...e])):(z(a.context.messages),N(a.context.entryIds??[]))}catch(t){console.error("Failed to load context:",t),ri.current&&t_.current===e&&r0.current===n&&rQ({type:"error",message:"Failed to load earlier messages. Scroll up to retry."})}},[rQ]),r2=(0,s.useCallback)(t=>{switch(t.method){case"select":case"confirm":case"input":case"editor":ty(t);break;case"notify":rQ({id:t.id,message:function(e){if(!("u">typeof document&&("zh-CN"===document.documentElement.lang||"zh"===document.documentElement.lang)))return e;let t=e.trim();return t.startsWith("Plan mode enabled")?"已启用计划模式:只读分析与产出计划,不修改文件。":t.startsWith("Plan mode disabled")?"已退出计划模式。":t.startsWith("No completed plan is available")?"当前没有可用的已完成计划。":t.startsWith("Unable to send Plan-mode message")?`无法发送计划模式消息:${t.replace(/^Unable to send Plan-mode message:\s*/,"")}`:e}(t.message),type:t.notifyType??"info"});break;case"setStatus":tw(e=>{let r=e.filter(e=>e.key!==t.statusKey);return t.statusText?[...r,{key:t.statusKey,text:t.statusText}]:r});break;case"setWidget":tC(e=>(function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"aboveEditor";if(void 0===r)return e.filter(e=>e.key!==t);let s={key:t,lines:r,placement:n},i=e.findIndex(e=>e.key===t);return -1===i?[...e,s]:e.map((e,t)=>t===i?s:e)})(e,t.widgetKey,t.widgetLines,t.widgetPlacement));break;case"setTitle":t.title&&(document.title=t.title);break;case"set_editor_text":e.chatInputRef?.current?.insertText(t.text);break;case"custom":tk(e=>t.closed?e?.id===t.id?null:e:t)}},[rQ,e.chatInputRef]),r6=(0,s.useRef)(null),r4=(0,s.useCallback)(()=>{null!==r6.current&&(cancelAnimationFrame(r6.current),r6.current=null)},[]),r5=(0,s.useCallback)(()=>{rM(),r4();let e=tQ.current;return tQ.current=!1,K(!1),ti(null),eV(null),R(new Map),A({type:"end"}),e},[r4,rM]),r3=(0,s.useCallback)(e=>rs.current!==e&&(rs.current=e,i?.(),!0),[i]),r8=(0,s.useCallback)(e=>{if(tX.current===e)return void rV();rV(),tB.current=!0;let t=tH.current,r=async()=>{if(t===tH.current&&t_.current===e&&tB.current)try{let n=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!n.ok)throw Error(`HTTP ${n.status}`);let s=await n.json();if(t!==tH.current||t_.current!==e||!tB.current)return;let i=s.state;if(e5(i),s.running&&i&&(i.isStreaming||i.isPromptRunning)){tB.current=!1,tO.current=null,t0.current=!!i?.isStreaming,t1.current=!!i?.isPromptRunning,tQ.current=!0,K(!0),ti(ub(i));return}if(s.running&&i?.isCompacting){e9(!0),tO.current=setTimeout(()=>void r(),600);return}tB.current=!1,tO.current=null,rJ()}catch{if(t!==tH.current||t_.current!==e||!tB.current)return;tO.current=setTimeout(()=>void r(),600)}};tO.current=setTimeout(()=>void r(),12e4)},[rV,rJ,e5]);(0,s.useEffect)(()=>{let e=t?.id;if(!e)return;let r=!1,n=!1,s=0,i=async()=>{if(!r&&!n){n=!0;try{let t=await fetch(`/api/agent/${encodeURIComponent(e)}/lease`,{method:"POST",cache:"no-store"});if(!t.ok||r)return;let n=await t.json();!r&&0===n.renewed&&t_.current===e&&tX.current===e&&Date.now()-s>=3e4&&(s=Date.now(),rJ(),rY(e).catch(()=>!1))}catch{}finally{n=!1}}},o=setInterval(()=>void i(),3e4),a=()=>{"visible"===document.visibilityState&&i()};return document.addEventListener("visibilitychange",a),()=>{r=!0,clearInterval(o),document.removeEventListener("visibilitychange",a)}},[rJ,rY,t?.id]);let r7=(0,s.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t_.current,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:rj.current;if(rj.current===t)try{e&&await rB(e)}finally{if(rj.current!==t)return;let r=t1.current,n=t0.current;t1.current=!1,t0.current=!1,rw.current=null;let s=r5();r?r3(t):n&&s&&i?.(),e&&r8(e)}},[rB,r3,i,r8,r5]),r9=(0,s.useCallback)(async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:rj.current;await uT(800);let r=Date.now(),n=0;for(;Date.now()-r<2e4;){if(!ri.current||rj.current!==t)return;try{let s=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(s.ok){n=0;let i=await s.json(),o=i.state;if(e5(o),!(i.running&&o&&(o.isStreaming||o.isPromptRunning)))return void await r7(e,t);r=Date.now()}else n+=1}catch{n+=1}if(n>=3){if(rj.current!==t)return;rQ({type:"error",message:"Cannot reach the pi-web service. Make sure it is running, then refresh the page."}),t1.current=!1,rw.current=null,r5();return}await uT(3e3)}rj.current===t&&(rQ({type:"error",message:"Message delivery could not be confirmed. Refresh the page to see the latest state."}),t1.current=!1,rw.current=null,r5())},[rQ,r7,r5]),ne=(0,s.useCallback)(async e=>{let t=rl.current+1;for(rl.current=t;ra.current&&rl.current===t&&t_.current===e;){await uT(1e3);try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(!r.ok)continue;let n=await r.json();if(e5(n.state),n.state?.isBashRunning)continue;if(await rB(e),rl.current!==t||t_.current!==e)return;ra.current=!1,V(!1),G(null);return}catch{}}},[rB,e5]),nt=(0,s.useRef)(0),nr=(0,s.useCallback)(async e=>{if(!tQ.current&&!P.current)return;let t=rj.current;try{let r,n=new AbortController,s=setTimeout(()=>n.abort(),1e4);try{r=await fetch(`/api/agent/${encodeURIComponent(e)}`,{signal:n.signal})}finally{clearTimeout(s)}if(!r.ok)throw Error(`HTTP ${r.status}`);nt.current=0;let i=await r.json();if(rj.current!==t)return;let o=i.state;if(e5(o),e9(o?.isCompacting??!1),t1.current||ti(ub(o)),tR(uj(o?.queuedMessages)),tM(o?.pendingRecovery??[]),i.running&&o&&(o.isStreaming||o.isPromptRunning||o.isBashRunning||o.isCompacting)){t0.current=t0.current||!!o.isStreaming,t1.current=t1.current||!!o.isPromptRunning;return}if(!tQ.current&&!P.current)return;if(o&&(void 0!==o.contextUsage&&eG(o.contextUsage??null),void 0!==o.systemPrompt&&eX(o.systemPrompt??null),void 0!==o.extensionStatuses&&tw(o.extensionStatuses??[]),void 0!==o.extensionWidgets&&tC(o.extensionWidgets??[]),void 0!==o.goalState)){let e=o.goalState;e&&(eF.current=e,eP(e))}await r7(e,t)}catch{if(nt.current+=1,nt.current<3||!ri.current||rj.current!==t)return;nt.current=0,rQ({type:"error",message:"Cannot reach the pi-web service. Make sure it is running, then refresh the page."}),t1.current=!1,rw.current=null,r5()}},[rQ,r7,tM,tR,r5,e5]);(0,s.useEffect)(()=>{if(!_&&!W.isStreaming)return;let e=()=>{let e=t_.current;e&&nr(e)},t=()=>{"visible"===document.visibilityState&&e()},r=()=>e(),n=()=>e(),s=setInterval(e,15e3);return document.addEventListener("visibilitychange",t),window.addEventListener("pageshow",r),window.addEventListener("focus",n),window.addEventListener("online",e),()=>{clearInterval(s),document.removeEventListener("visibilitychange",t),window.removeEventListener("pageshow",r),window.removeEventListener("focus",n),window.removeEventListener("online",e)}},[_,W.isStreaming,nr]),(0,s.useEffect)(()=>{if(!_&&!W.isStreaming)return;let e=()=>{let e=t_.current,t=tP.current;e&&t&&t.readyState===EventSource.OPEN&&(Date.now()-tU.current<=95e3||rG(e))};e();let t=setInterval(e,15e3);return()=>clearInterval(t)},[_,W.isStreaming,rG]),(0,s.useEffect)(()=>{tQ.current=_,_||ta(!1)},[_]);let nn=(0,s.useCallback)(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"smooth";rm.current=Date.now()+700;let r=ry.current,n=rv.current;if(!r||!n)return;let s=Math.max(88,e.chatInputRef?.current?.measureHeight?.()??0),i=()=>{if(!r||!n)return;let e=Math.max(0,n.getBoundingClientRect().top-r.getBoundingClientRect().top+r.scrollTop-96-r.clientHeight+s);r.scrollTo({top:e,behavior:t})};i(),("instant"===t||"auto"===t)&&window.setTimeout(()=>{r&&n&&rg.current&&i()},200)},[]),ns=(0,s.useCallback)(()=>{null===r6.current&&(r6.current=requestAnimationFrame(()=>{r6.current=null,requestAnimationFrame(()=>{if(!tQ.current||Date.now()<rf.current)return;let e=ry.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:n}=e;rg.current=t+r>=n-150}rg.current&&nn("auto")})}))},[nn]);rc.current=(0,s.useCallback)(e=>{switch(e.type){case"agent_start":rM(),H(),rV(),tQ.current||(ro.current=!1),t0.current=!0,tQ.current=!0,K(!0),ti({kind:"waiting_model"}),A({type:"start"}),ns();break;case"agent_end":{if(rM(),H(),!tQ.current)break;let t=tz.steering.length>0||tz.followUp.length>0;if(ti(t?{kind:"waiting_model"}:null),eV(null),A({type:"end"}),!0!==e.willRetry){let t=e.messages??[];for(let e=t.length-1;e>=0;e--){let r=t[e];if(r?.role==="assistant"){"error"===r.stopReason&&r.errorMessage&&rQ({type:"error",message:r.errorMessage});break}}}let r=t_.current;if(r){let n=rj.current;t||!0===e.willRetry||rB(r),fetch(`/api/agent/${encodeURIComponent(r)}`).then(e=>e.ok?e.json():void 0).then(e=>{if(rj.current!==n)return;let t=e?.state;if(e5(t),t?.contextUsage!==void 0&&eG(t.contextUsage??null),t?.systemPrompt!==void 0&&eX(t.systemPrompt??null),t?.extensionStatuses!==void 0&&tw(t.extensionStatuses??[]),t?.extensionWidgets!==void 0&&tC(t.extensionWidgets??[]),tR(uj(t?.queuedMessages)),tM(t?.pendingRecovery??[]),t?.goalState!==void 0){let e=t.goalState;e&&(eF.current=e,eP(e))}}).catch(()=>{})}break}case"agent_settled":{let e=t0.current;if(t0.current=!1,!e||t1.current)break;let t=t_.current,r=r5();e9(!1),t&&(rB(t),r8(t)),r&&!ro.current&&i?.(),ro.current=!1;break}case"goal_state_changed":{let t=e.goalState;t&&(eF.current=t,eP(t));break}case"prompt_done":{let e=rj.current,t=t1.current;t1.current=!1,rw.current=null;let r=r3(e);if(r&&(ro.current=!0),!t&&!r)break;let n=t_.current;n&&!t0.current&&rB(n),!t0.current&&(r5(),n&&r8(n));break}case"tool_approval_request":{let t={id:String(e.id??""),toolName:String(e.toolName??""),args:e.args};if(!t.id)break;eL(e=>e.some(e=>e.id===t.id)?e:[...e,t]);break}case"tool_approval_resolved":{let t=String(e.id??"");if(!t)break;eL(e=>e.filter(e=>e.id!==t));break}case"prompt_error":rQ({type:"error",message:e.errorMessage??"Command failed"});break;case"extension_error":rQ({type:"error",message:e.error??"Extension command failed"});break;case"message_start":case"message_update":{if(!tQ.current||ug(e))break;let t=e.message;if(t?.role==="user")break;t&&(U(t),rE(ui(t))),ti(e=>null===e?e:null),ns();break}case"message_end":{if(!tQ.current||ug(e))break;let t=e.message;if(t&&"user"===t.role){let e=ui(t);if("user"===e.role&&"content"in e){let t=e.content;if("string"==typeof t)uS.some(e=>t.startsWith(e))&&(e={...e,content:rn(t)});else if(Array.isArray(t)){let r=t.filter(e=>"text"===e.type)[0];r&&"string"==typeof r.text&&uS.some(e=>r.text?.startsWith(e))&&(e={...e,content:t.map((e,t)=>{if("text"!==e.type||0!==t)return e;let r=rn(e.text??"");return{...e,text:r}})})}}let r=uM(e),n=rw.current;z(t=>{let s=t[t.length-1];return n&&s?.role==="user"&&uM(s)===n?(rw.current=null,n===r?t:[...t.slice(0,-1),e]):[...t,e]})}else t&&z(e=>[...e,ui(t)]);rM(),A({type:"reset"}),ti({kind:"waiting_model"});break}case"tool_execution_start":{let t=e.toolCallId,r=e.toolName;ti(e=>{let n=e?.kind==="running_tools"?[...e.tools]:[];return n.some(e=>e.id===t)||n.push({id:t,name:r}),{kind:"running_tools",tools:n}});break}case"tool_execution_update":{let t=e.partialResult,r=t?.content,n="string"==typeof e.toolName?e.toolName:"",s="string"==typeof e.toolCallId?e.toolCallId:null;s&&("bash"===n||"powershell"===n)&&Array.isArray(r)&&R(e=>{let i=new Map(e);return i.set(s,{role:"toolResult",toolCallId:s,toolName:n,content:r,isError:t?.isError,details:t?.details}),i});let i=function(e){if(!uf(e))return null;let t=e.content;if(!Array.isArray(t))return null;let r=t.filter(e=>uf(e)&&"text"===e.type&&"string"==typeof e.text).map(e=>e.text).join("\n").split(/\r?\n/),n="";for(let e=r.length-1;e>=0&&!(n=r[e].trim());e-=1);if(!n)return null;let s=n.replace(/\s+/g," ");return s.length<=500?s:`...${s.slice(-497)}`}(e.partialResult);s&&ti(e=>{let t=e?.kind==="running_tools"?[...e.tools]:[],r=t.find(e=>e.id===s);if(!r&&!i)return e;let o={id:s,name:n||r?.name||"tool",progress:i??r?.progress};return{kind:"running_tools",tools:[...t.filter(e=>e.id!==s),o]}});let o="string"==typeof e.toolCallId?e.toolCallId:null,a=e.partialResult,l=a?.details;if(!o||!l)break;z(t=>{let r=t.findIndex(e=>"toolResult"===e.role&&e.toolCallId===o);if(-1===r)return[...t,{role:"toolResult",toolCallId:o,toolName:"string"==typeof e.toolName?e.toolName:"Agent",content:[],details:l}];let n=t[r];if("toolResult"!==n.role||n.content.length>0)return t;let s=[...t];return s[r]={...n,details:l},s});break}case"tool_execution_end":{let t=e.toolCallId;R(e=>{if(!e.has(t))return e;let r=new Map(e);return r.delete(t),r}),ti(e=>{if(e?.kind!=="running_tools")return e;let r=e.tools.filter(e=>e.id!==t);return 0===r.length?{kind:"waiting_model"}:{kind:"running_tools",tools:r}});break}case"entry_appended":break;case"queue_update":tR({steering:[...e.steering??[]],followUp:[...e.followUp??[]]}),(e.steering??[]).length>0||(e.followUp??[]).length>0?tW():tA();break;case"state_sync":{let t=e.state;if(!t)break;if(e9(t.isCompacting??!1),t1.current||ti(ub(t)),tR(uj(t.queuedMessages)),tM(t.pendingRecovery??[]),void 0!==t.contextUsage&&eG(t.contextUsage??null),void 0!==t.systemPrompt&&eX(t.systemPrompt??null),void 0!==t.extensionStatuses&&tw(t.extensionStatuses??[]),void 0!==t.extensionWidgets&&tC(t.extensionWidgets??[]),void 0!==t.goalState){let e=t.goalState;e&&(eF.current=e,eP(e))}if(t.isStreaming||t.isPromptRunning||t.isBashRunning||t.isCompacting){let e=tQ.current;tQ.current=!0,K(!0),e||A({type:"start"})}else if(tQ.current&&!t1.current){let e=t_.current;e&&r7(e,rj.current)}break}case"auto_retry_start":eV({attempt:e.attempt,maxAttempts:e.maxAttempts,errorMessage:e.errorMessage});break;case"auto_retry_end":eV(null);break;case"auto_compaction_start":case"compaction_start":e9(!0),tt(null),tn(null);break;case"auto_compaction_end":case"compaction_end":e9(!1),e.errorMessage?(tt(e.errorMessage),tn(null)):e.aborted||(tn(uE(e.result,e.reason??"auto")),t_.current&&!tQ.current&&rB(t_.current));break;case"extension_ui_request":r2(e)}},[rQ,rV,r4,r7,r2,rB,r3,i,tz,r8,ns,r5,rE,rM,tW,tA,U,H,tM,tR,e5]),(0,s.useEffect)(()=>{let e=new EventSource("/api/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);if(!t||!t.type||!t.payload||t.sessionId!==t_.current||tP.current?.readyState===EventSource.OPEN)return;rc.current?.(t.payload)}catch{}},()=>e.close()},[]);let ni=(0,s.useCallback)(async(r,s)=>{let i,o=r.trim();if(!o&&!s?.length)return;if(tQ.current||ra.current)return void console.warn("[pi-web] Send dropped: a previous run is still marked active",{agentRunning:tQ.current,bashRunning:ra.current,sessionId:t_.current});let a=!s?.length&&o.startsWith("/"),l=rj.current+1;rV(),rM(),t1.current=!0;let d=function(e){let t=[];if("plan"===e.collaborationMode&&t.push(t9),"economy"===e.tokenMode&&t.push(re),"delivery"===e.tokenMode&&t.push(rt),"goal"===e.collaborationMode){let r=e.goalText?.trim();t.push(r?`${rr}
|
|
31
|
+
|
|
32
|
+
Goal: ${r}`:rr)}return t.join("\n\n")}({collaborationMode:ez.current,tokenMode:eT.current,goalText:"goal"===ez.current?eN.current??void 0:void 0}),c=[ez.current,eT.current,d?String(d.length):""].join("|"),u=t?.id??"new";d&&(eM.current.sessionKey!==u||eM.current.signature!==c)?(eM.current={sessionKey:u,signature:c},i=`${d}
|
|
33
|
+
|
|
34
|
+
${r}`):i=r;let h=i,x=s?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),g={role:"user",content:x?.length?[...r.trim()?[{type:"text",text:r}]:[],...x]:r,timestamp:Date.now()};z(e=>[...e,g]),rw.current=uM(g),rj.current=l;let f="goal"===ez.current&&!a&&o.length>0&&"idle"===eF.current.status;f&&(eN.current=o,eP(e=>({...e,status:"running",goalText:o,turnsUsed:0,noProgressTurns:0,tokensUsed:0})),eH.current=!0),tQ.current=!0,K(!0),ti(a?{kind:"running_command"}:{kind:"waiting_model"}),A({type:"start"}),rh.current=!0,ta(!0),rx.current=!0;let m=s?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),v=null,y=!1;try{if(p&&n){let e=t_.current??await rb.current,t=e??await rK();if(t){v=t,r_(1,r),el&&(e8(el),e&&await ud(t,{type:"set_model",provider:el.provider,modelId:el.modelId}));let n=await Promise.race([rY(t).then(()=>!0).catch(()=>!1),uT(4e3).then(()=>!1)]);y=!0,await ud(t,{type:"prompt",message:h,...m?.length?{images:m}:{}}),n||r9(t,l),f&&ud(t,{type:"goal_start",goalText:o}).catch(()=>{})}else throw Error("Unable to create a session for this message")}else if(t){v=t.id;let e=await Promise.race([rY(t.id).then(()=>!0).catch(()=>!1),uT(4e3).then(()=>!1)]);y=!0,await ud(t.id,{type:"prompt",message:h,...m?.length?{images:m}:{}}),e||r9(t.id,l),f&&ud(t.id,{type:"goal_start",goalText:o}).catch(()=>{})}a&&v&&r9(v,l)}catch(t){if(console.error("Failed to send message:",t),y&&v&&!(t instanceof uo&&"prompt_rejected"===t.code&&!1===t.accepted))return void r9(v,l);if(eM.current={sessionKey:"",signature:""},f&&(eN.current=null,eH.current=!1,eP(e=>({...e,status:"idle",goalText:null}))),t1.current=!1,rJ(),t instanceof uz){let e=rw.current;e&&z(t=>{let r=t[t.length-1];return r?.role==="user"&&uM(r)===e?t.slice(0,-1):t}),rQ({type:"error",message:t.message})}else{let r=rw.current;r&&z(e=>{let t=e[e.length-1];return t?.role==="user"&&uM(t)===r?e.slice(0,-1):e});let n=e.chatInputRef?.current;n?.restoreSubmission?n.restoreSubmission(g):n?.replaceMessage?.(g),rQ({type:"error",message:`Failed to send message: ${t instanceof Error?t.message:String(t)}`})}rw.current=null,tQ.current=!1,K(!1),ti(null),A({type:"end"})}},[p,n,el,t,rK,rY,r_,r9,rQ,rV,rJ,rM,e.chatInputRef]),no=(0,s.useCallback)(async(r,n)=>{if(tQ.current||ra.current)return;let s=`${n?"!!":"!"}${r}`;ra.current=!0,G({command:r,excludeFromContext:n}),V(!0);try{let e=t_.current??t?.id??await rK();if(!e)throw Error("Unable to create a session for the shell command");r_(1,s),await ud(e,{type:"bash",command:r,excludeFromContext:n}),await rB(e)}catch(t){console.error("Failed to execute shell command:",t),rQ({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(s)}finally{ra.current=!1,G(null),V(!1)}},[rQ,rK,rB,e.chatInputRef,r_,t]),na=(0,s.useCallback)(async()=>{let e=t_.current;if(e)try{await ud(e,{type:ra.current?"abort_bash":"abort"})}catch(e){console.error("Failed to abort:",e)}},[]),nl=(0,s.useCallback)(async e=>{let t=t_.current;if(t){eQ(e);try{let{cancelled:r,newSessionId:n}=await ud(t,{type:"fork",entryId:e})??{};!r&&n&&a?.(n)}catch(e){console.error("Fork failed:",e)}finally{eQ(null)}}},[a]),nd=(0,s.useCallback)(async e=>{if(ra.current)return!1;let t=t_.current;if(!t)return!1;try{let r=await ud(t,{type:"navigate_tree",targetId:e});if(r?.cancelled||t_.current!==t)return!1;return S(e),await rB(t),t_.current===t}catch(e){return console.error("Failed to navigate:",e),!1}},[rB]),nc=(0,s.useCallback)(async e=>{S(e);let t=t_.current;t&&(await r1(t,e),e&&ud(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[r1]),nu=(0,s.useCallback)(e=>{e instanceof ua?rQ({type:"error",message:uv("desktop.modelSwitchTimeout")}):rQ({type:"error",message:uv("desktop.modelSwitchFailed",{reason:e instanceof Error?e.message:String(e)})})},[rQ]),np=(0,s.useCallback)(async(e,t)=>{if(p){let r={provider:e,modelId:t};rR.current=r,ed(r),e8(r),null===rI.current&&tG(uw(tq.current[`${e}/${t}`])??tV.current);let n=t_.current??await rb.current;if(!n)return;try{await ud(n,{type:"set_model",provider:e,modelId:t},{timeoutMs:12e4})}catch(e){console.error("Failed to set model:",e),nu(e)}return}let r=t_.current;if(!r)return;let n=++rS.current;e1({provider:e,modelId:t});try{let s=await ud(r,{type:"set_model",provider:e,modelId:t},{timeoutMs:12e4});if(e6({provider:s.provider,modelId:s.id}),await rB(r),rS.current===n){let e=Z.find(e=>e.provider===s.provider&&e.id===s.id)?.name??s.id;rQ({type:"success",message:uv("desktop.modelSwitched",{model:e})})}}catch(s){if(console.error("Failed to set model:",s),rS.current===n&&(e1(null),e6(null)),await rB(r,!1,!0),rS.current===n){let r=e4.current;r&&r.provider===e&&r.modelId===t?rQ({type:"success",message:uv("desktop.modelSwitched",{model:Z.find(r=>r.provider===e&&r.id===t)?.name??t})}):nu(s)}}},[rQ,p,Z,nu,ed]),nh=(0,s.useCallback)(async()=>{let e=t_.current;if(e&&!e7){e9(!0),tt(null),tn(null);try{let t=await ud(e,{type:"compact"});tn(uE(t,"manual")),await rB(e,!0)}catch(e){tt(e instanceof Error?e.message:String(e)),tn(null)}finally{e9(!1)}}},[e7,rB]),nx=(0,s.useCallback)(async e=>{let r=++rC.current,s=n??t?.cwd??"",i=s?`/api/models?cwd=${encodeURIComponent(s)}`:"/api/models",o=rz.current;o?.abort();let a=new AbortController;rz.current=a;let l=()=>a.abort();e?.aborted?a.abort():e?.addEventListener("abort",l,{once:!0});try{let e=await fetch(i,{signal:a.signal});if(!e.ok){let t=`HTTP ${e.status}`;try{let r=await e.json();r?.error&&(t=r.error)}catch{}throw Error(t)}let t=await e.json();if(r!==rC.current||h!==rT.current)return;ea(null),X(t.models),et(t.thinkingLevels??{}),en(t.thinkingLevelMaps??{}),ei(t.modelScopeWarnings??[]);let n=t.modelList??[];if(Q(n),p&&!t_.current){let e=(t.defaultModel?n.find(e=>e.id===t.defaultModel?.modelId&&e.provider===t.defaultModel?.provider):void 0)??n[0];eu(e?{provider:e.provider,modelId:e.id}:null);let r=e?t.thinkingLevelPins?.[`${e.provider}/${e.id}`]:void 0;null===rI.current&&eU(r??"auto")}}catch(e){if(a.signal.aborted||r!==rC.current||h!==rT.current)return;ea(e instanceof Error?e.message:String(e))}finally{e?.removeEventListener("abort",l),rz.current===a&&(rz.current=null)}},[p,h,n,t?.cwd]),ng=(0,s.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,r,n=""]=t,s=n.trim(),i=t_.current??await rK(),o=e=>(e.handled&&(e.error?rQ({type:"error",message:e.error}):"openSessionStats"!==e.action&&rQ({type:"success",message:e.message??"Command completed"})),e);try{switch(r){case"compact":{if(!i||e7)return o({handled:!0,error:"No active session to compact"});e9(!0),tt(null),tn(null);let e=await ud(i,{type:"compact",...s?{customInstructions:s}:{}});return tn(uE(e,"manual")),await rB(i,!0)&&r_(),o({handled:!0,message:"Compacted context"})}case"auto-compact":{if(!i)return o({handled:!0,error:"No active session"});let e=await ud(i,{type:"get_state"}),t=!(e?.autoCompactionEnabled??!0);return await ud(i,{type:"set_auto_compaction",enabled:t}),eO(t),o({handled:!0,message:t?"Auto-compaction enabled":"Auto-compaction disabled"})}case"reload":if(!i)return o({handled:!0,error:"No active session to reload"});return await ud(i,{type:"reload"}),await Promise.all([rB(i,!1,!0),rU(i),rq(),nx()]),o({handled:!0,message:"Reloaded session resources"});case"name":if(!i)return o({handled:!0,error:"No active session to name"});if(!s)return o({handled:!0,error:"Usage: /name <name>"});return await ud(i,{type:"set_session_name",name:rn(s)}),await rB(i)&&r_(),o({handled:!0,message:`Session renamed to ${s}`});case"session":{if(!i)return o({handled:!0,error:"No active session"});let e=await ud(i,{type:"get_session_stats"});return e&&tm(e),u?.(),o({handled:!0,action:"openSessionStats"})}case"copy":{if(!i)return o({handled:!0,error:"No active session"});let e=await ud(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return o({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),o({handled:!0,message:"Copied last assistant message"})}case"clone":{if(!i)return o({handled:!0,error:"No active session to clone"});if(tQ.current||ra.current)return o({handled:!0,error:"Cannot clone while the session is running"});let e=await ud(i,{type:"clone",leafId:w});if(e?.cancelled||!e?.newSessionId)return o({handled:!0,error:"Cannot clone an empty or unsaved session"});let t=o({handled:!0,message:"Cloned current session branch"});return a?.(e.newSessionId),t}default:return{handled:!1}}}catch(e){return o({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&e9(!1)}},[w,rQ,rK,e7,nx,rB,rq,rU,r_,a,u]),nf=(0,s.useCallback)(async e=>{let t=!1;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let e=await r.json(),n=e.state;if(e.running&&n&&(n.isStreaming||n.isPromptRunning||n.isBashRunning||n.isCompacting))return;t=!0}}catch{}t?r5():r9(e)},[r9,r5]),nm=(0,s.useCallback)(async(e,t)=>{let r=t_.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tQ.current=!0,K(!0),ti(e=>e??{kind:"waiting_model"});try{await ud(r,{type:"steer",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to steer:",e),nf(r)}},[nf]),nv=(0,s.useCallback)(async(e,t,r)=>{let n=t_.current;if(!n)return;let s=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tQ.current=!0,K(!0),ti(e=>e??{kind:"waiting_model"});try{await ud(n,{type:"prompt",message:e,streamingBehavior:t,...s?.length?{images:s}:{}})}catch(e){console.error("Failed to queue prompt:",e),nf(n)}},[nf]),ny=(0,s.useCallback)(async(e,t)=>{let r=t_.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));tQ.current=!0,K(!0),ti(e=>e??{kind:"waiting_model"});try{await ud(r,{type:"follow_up",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to follow up:",e),nf(r)}},[nf]),nb=(0,s.useCallback)(async()=>{let e=t_.current;if(e)try{await ud(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),nk=(0,s.useCallback)(async()=>{let t=t_.current;if(t)try{let r=await ud(t,{type:"clear_queue"});tR({steering:[],followUp:[]});let n=[...r?.steering??[],...r?.followUp??[]];n.length>0&&e.chatInputRef?.current?.prependText(n.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),rQ({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,rQ,tR]);(0,s.useEffect)(()=>{0===tI.length&&t$(!1)},[tI.length]);let nj=(0,s.useCallback)(async function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=t_.current;if(!n)return tI;try{let s=await ud(n,{type:"resolve_recovery",keep:e,discard:t,continueRun:r}),i=s?.remaining??[];return tM(i),r&&e.length>0&&(async()=>{try{let e=await fetch(`/api/agent/${encodeURIComponent(n)}`);if(!e.ok)return;let t=await e.json(),r=t.state;if(!t.running||!r||!r.isStreaming&&!r.isPromptRunning)return;t0.current=!!r.isStreaming,t1.current=!!r.isPromptRunning,tQ.current=!0,K(!0),ti(ub(r)),A({type:"start"}),rG(n),!r.isStreaming&&r.isPromptRunning&&r9(n)}catch{}})(),i}catch(e){return console.error("Failed to resolve queued message recovery:",e),rQ({type:"error",message:"Failed to resolve queued message recovery"}),tI}},[tI,rQ,rG,r9,tM]),nw=(0,s.useCallback)(async()=>{let e=t_.current;if(!e)return null;try{return await ud(e,{type:"export_queue"})}catch(e){return console.error("Failed to export queue:",e),rQ({type:"error",message:"Failed to export queue"}),null}},[rQ]),nS=(0,s.useCallback)(async e=>{let t=t_.current;if(!t)return null;try{let r=await ud(t,{type:"import_queue",entries:e});return r&&tR(uj(r)),r?.imported??0}catch(e){return console.error("Failed to import queue:",e),rQ({type:"error",message:"Failed to import queue"}),null}},[rQ,tR]),nC=(0,s.useCallback)(async e=>{let t=t_.current;if(!t)return null;try{let r=await ud(t,{type:"stage_recovery",entries:e});return r?.pendingRecovery&&tM(r.pendingRecovery),(r?.staged??0)>0&&t$(!0),r?.staged??0}catch(e){return console.error("Failed to stage imported queue:",e),rQ({type:"error",message:"Failed to stage imported queue"}),null}},[rQ,tM]),nz=(0,s.useCallback)(async(e,t,r)=>{let n=t_.current;if(!n)return!1;try{let s=await ud(n,{type:"move_queue",kind:e,fromIndex:t,toIndex:r});return s&&tR(uj(s)),!0}catch(e){return console.error("Failed to move queued message:",e),rQ({type:"error",message:e instanceof Error?e.message:"Failed to move queued message"}),!1}},[rQ,tR]),nT=(0,s.useCallback)(async(e,t)=>{let r=t_.current;if(!r)return null;try{let n=await ud(r,{type:"recall_queue_item",kind:e,index:t});return n&&(void 0!==n.steering||void 0!==n.followUp)&&tR(uj(n)),n?.entry?{text:n.entry.text,images:n.entry.images?.map(e=>{let{data:t,mimeType:r}=e;return{data:t,mimeType:r}})}:null}catch(e){return console.error("Failed to recall queued message:",e),rQ({type:"error",message:e instanceof Error?e.message:"Failed to recall queued message"}),null}},[rQ,tR]),nR=(0,s.useCallback)(async(e,t,r,n)=>{let s=t_.current;if(!s)return!1;try{let i=await ud(s,{type:"requeue_at",kind:e,index:t,text:r,images:n?.map(e=>{let{data:t,mimeType:r}=e;return{type:"image",data:t,mimeType:r}})});return i&&tR(uj(i)),!0}catch(e){return console.error("Failed to requeue message:",e),rQ({type:"error",message:e instanceof Error?e.message:"Failed to requeue message"}),!1}},[rQ,tR]),nI=(0,s.useCallback)(async(e,t)=>{let r=t_.current;if(!r)return!1;try{let n=await ud(r,{type:"remove_queue_item",kind:e,index:t});return n&&tR(uj(n)),!0}catch(e){return console.error("Failed to remove queued message:",e),rQ({type:"error",message:e instanceof Error?e.message:"Failed to remove queued message"}),!1}},[rQ,tR]),nN=(0,s.useCallback)(async e=>{if("auto"===e){rI.current=null,eU(e);return}rI.current=e,eU(e);let t=t_.current??await rb.current;if(t)try{await ud(t,{type:"set_thinking_level",level:e}),tK.current&&t_.current===t&&eK(e)}catch(e){console.error("Failed to set thinking level:",e)}},[]),nM=(0,s.useCallback)(async e=>{let t=(0,uu.xG)(e);!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){try{return window.localStorage}catch{return null}}();if(t)try{t.setItem("pi-tool-preset",e)}catch{}}(e),r$(e);let r=t_.current??await rb.current;if(!r){tZ.current=void 0!==t;return}try{let e=await ud(r,{type:"set_tools",...void 0!==t?{toolNames:t}:{}});tZ.current=void 0!==t;let n=e?.sessionId??r;(n!==r||e?.recreated)&&(rV(),rJ(),t_.current=n),tu([]),tw([]),tC([]);let[s]=await Promise.all([ud(n,{type:"get_state"}),rU(n)]);tK.current&&t_.current===n&&(eX(s.systemPrompt??""),e5(s))}catch(e){console.error("Failed to set tools:",e)}},[rV,rJ,rU,r$,e5]),nE=(0,s.useRef)(0),n$=(0,s.useCallback)(async e=>{let t=t_.current??await rb.current,r=++nE.current;if("plan"===e){if(ex.current="plan"===ep||"configured"===ep?"default":ep,t)try{await ud(t,{type:"prompt",message:"/plan"})}catch(e){if(nE.current!==r)return;console.error("Failed to enter plan mode:",e)}return}if(t){try{if(await ud(t,{type:"prompt",message:"/plan exit"}),nE.current!==r)return}catch(e){if(nE.current!==r)return;console.error("Failed to exit plan mode:",e)}if(nE.current!==r)return;try{await ud(t,{type:"set_tools",toolNames:(0,uu.xG)(ex.current)})}catch(e){console.error("Failed to restore tools after plan exit:",e)}}},[ep]),nL=(0,s.useCallback)(e=>{eE.current=e,em(e);let t=t_.current;if(!t){ev.current=e;return}ev.current=null,fetch(`/api/modes?session=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(e=>{console.error("Failed to persist mode settings:",e)})},[]),nW=(0,s.useCallback)(e=>{let t=t5(e),r="plan"===ez.current;if(nL({...eE.current,collaborationMode:t}),ez.current=t,eM.current={sessionKey:"",signature:""},"goal"!==t){eN.current=null,eH.current=!1,eP(e=>"idle"===e.status?e:{...e,status:"idle",goalText:null});let e=t_.current;e&&ud(e,{type:"goal_stop"}).catch(()=>{})}return"plan"!==t||r?"plan"!==t&&r?n$("normal"):Promise.resolve():n$("plan")},[nL,n$]),nA=(0,s.useCallback)(async e=>{nL({...eE.current,tokenMode:t3(e)});let t=t_.current??await rb.current;if(t)try{if("economy"!==e||eg.current){if("economy"!==e){let e=eg.current?uu.SC:(0,uu.xG)("plan"===ep?"default":ep);await ud(t,{type:"set_tools",toolNames:e})}}else await ud(t,{type:"set_tools",toolNames:[...t7]})}catch(e){console.error("Failed to apply token mode tools:",e)}},[nL,ep]),nP=(0,s.useCallback)(async e=>{nL({...eE.current,toolApprovalMode:t8(e)});let t=t_.current??await rb.current;if(t)try{await ud(t,{type:"set_approval_mode",mode:t8(e)})}catch(e){console.error("Failed to apply approval mode:",e)}},[nL]),nF=(0,s.useCallback)(async e=>{nL({...eE.current,permissionRules:e});let t=t_.current??await rb.current;if(t)try{await ud(t,{type:"set_approval_policy",policy:e})}catch(e){console.error("Failed to apply permission rules:",e)}},[nL]),nD=(0,s.useCallback)(async(e,t,r,n)=>{let s=t_.current;if(s){if("always"===n){let r=eW.current.find(t=>t.id===e);if(r){let e=lG(r.toolName,r.args),n=e?`${r.toolName}(${e})`:r.toolName,s=eE.current.permissionRules;(t?s.allow:s.deny).includes(n)||nF(t?{...s,allow:[...s.allow,n]}:{...s,deny:[...s.deny,n]})}}try{await ud(s,{type:"resolve_approval",id:e,approve:t,reason:r})}catch(e){console.error("Failed to resolve approval:",e)}finally{eL(t=>t.filter(t=>t.id!==e))}}},[nF]),nO=(0,s.useCallback)(e=>{eN.current=e},[]),nH=(0,s.useCallback)(e=>{let t=e.trim();if(!t)return;eN.current=t,eP(e=>({...e,status:"running",goalText:t,turnsUsed:0,noProgressTurns:0,tokensUsed:0,startedAt:Date.now()}));let r=t_.current;r&&ud(r,{type:"goal_start",goalText:t}).catch(()=>{})},[]),nB=(0,s.useCallback)(()=>{if("running"!==eF.current.status)return;eP(e=>({...e,status:"paused"}));let e=t_.current;e&&ud(e,{type:"goal_pause"}).catch(()=>{})},[]),nU=(0,s.useCallback)(()=>{let e=eF.current;if("paused"!==e.status&&"blocked"!==e.status)return;eP(e=>({...e,status:"running"}));let t=t_.current;t&&ud(t,{type:"goal_resume"}).catch(()=>{})},[]),n_=(0,s.useCallback)(()=>{eH.current=!1,eN.current=null,eP(e=>({...e,status:"idle",goalText:null,turnsUsed:0,noProgressTurns:0}));let e=t_.current;e&&ud(e,{type:"goal_stop"}).catch(()=>{})},[]),nK=(0,s.useCallback)(e=>{let t=e.trim();if(!t)return;eP(e=>({...e,goalText:t}));let r=t_.current;r&&ud(r,{type:"goal_edit",goalText:t}).catch(()=>{})},[]),nq=(0,s.useCallback)(()=>{let e=ry.current,t=rp.current;if(!e||!t)return;let r=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop,n=Math.max(0,e.scrollHeight-e.clientHeight),s=Math.min(Math.max(0,r-16),n);rg.current=s>=n-150,rm.current=Date.now()+700,e.scrollTo({top:s,behavior:"smooth"})},[]),nV=(0,s.useCallback)(e=>{if(e instanceof KeyboardEvent){if(!uC.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))return}else if(e instanceof PointerEvent){let t=ry.current;if(t&&e.target instanceof Element&&!t.contains(e.target))return}rf.current=Date.now()+1200},[]),nJ=(0,s.useCallback)(()=>{let e=ry.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:n}=e,s=tQ.current,i=rg.current,o=function(e,t,r,n,s){let i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:96;return!!um(r,n,s)||!(r<t)&&(!!(!e&&r>t&&um(r,n,s,i))||e)}(i,tY.current,t,r,n,s?96:8);rg.current=o,tY.current=t;let a=function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:8;return!(r<=t)&&!um(e,t,r,n)}(t,r,n);td(e=>e===a?e:a),!i&&o&&s&&nn("auto")}if(Date.now()<rf.current){rx.current=!1;return}Date.now()<rm.current||(rx.current=!1)},[]);(0,s.useEffect)(()=>{if(ri.current=!0,t){var e;let r;t_.current=t.id;let n=(e=t.id,(r=ux().get(e))?Date.now()-r.savedAt>6e5?(ux().delete(e),null):(ux().delete(e),ux().set(e,r),r):null);n&&(g({sessionId:t.id,filePath:"",leafId:n.leafId,context:{messages:n.messages,entryIds:n.entryIds,oldestEntryId:n.oldestEntryId,hasMore:n.hasMore,thinkingLevel:n.thinkingLevel,model:n.model},stats:n.stats,...void 0!==n.totalActiveMs?{totalActiveMs:n.totalActiveMs}:{}}),S(n.leafId),z(n.messages),N(n.entryIds),E(n.oldestEntryId),L(n.hasMore),j(null),b(!1));let s=eR.current,i=eI.current;("auto"!==s||i.allow.length||i.ask.length||i.deny.length)&&(ud(t.id,{type:"set_approval_mode",mode:s}).catch(()=>{}),ud(t.id,{type:"set_approval_policy",policy:i}).catch(()=>{}));let o=e=>{!rd.current&&(rd.current=!0,e.isBashRunning&&(ra.current=!0,V(!0),ne(t.id)),rU(t.id),(e.isStreaming||e.isPromptRunning)&&(t0.current=!!e.isStreaming,t1.current=!!e.isPromptRunning,tQ.current=!0,K(!0),ti(ub(e)),A({type:"resume"}),rG(t.id),!e.isStreaming&&e.isPromptRunning&&r9(t.id)))};(async()=>{try{let e,r=new AbortController,n=setTimeout(()=>r.abort(),2e4);try{e=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/state`,{signal:r.signal})}finally{clearTimeout(n)}if(!e.ok)throw Error(`HTTP ${e.status}`);let s=await e.json();if(!ri.current||t_.current!==t.id)return;s.running&&s.state&&o(s.state)}catch{}})(),rB(t.id,!n,!0,{force:!0}).then(e=>{e?.running&&e.state&&o(e.state),e?.state&&(void 0!==e.state.isCompacting&&e9(e.state.isCompacting),void 0!==e.state.contextUsage&&eG(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eX(e.state.systemPrompt??null),void 0!==e.state.extensionStatuses&&tw(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&tC(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&tR(uj(e.state.queuedMessages)),void 0!==e.state.pendingRecovery&&tM(e.state.pendingRecovery??[])),e?.running||(async()=>{for(let e=0;e<5;e++){if(e>0&&await new Promise(e=>setTimeout(e,2e3)),!ri.current||t_.current!==t.id||tQ.current)return;try{let e=await fetch(`/api/agent/${encodeURIComponent(t.id)}`);if(!e.ok)continue;let r=await e.json();if(!ri.current||t_.current!==t.id)return;if(r?.running&&r.state)return void o(r.state)}catch{}}})()})}return()=>{ri.current=!1,f.current?.abort(),v.current?.abort(),rM(),tA(),rl.current+=1,rV(),rJ()}},[rM]),(0,s.useEffect)(()=>{c?.(eY)},[eY,c]),(0,s.useEffect)(()=>{d&&d(x?.tree??[],w,nc)},[x?.tree,w,nc,d]),(0,s.useEffect)(()=>(window.addEventListener("keydown",nV),window.addEventListener("pointerdown",nV,{passive:!0}),()=>{window.removeEventListener("keydown",nV),window.removeEventListener("pointerdown",nV)}),[nV]),(0,s.useEffect)(()=>{let e=ry.current;if(e)return e.addEventListener("wheel",nV,{passive:!0}),e.addEventListener("touchstart",nV,{passive:!0}),e.addEventListener("scroll",nJ,{passive:!0}),()=>{e.removeEventListener("wheel",nV),e.removeEventListener("touchstart",nV),e.removeEventListener("scroll",nJ)}},[C.length,y,nJ,nV]),(0,s.useEffect)(()=>{C.length>0&&(rh.current?(ru.current=!0,rp.current&&(rh.current=!1,nq())):y||!ru.current?(y||(ru.current=!0),nn("instant")):!tQ.current&&(rx.current||rg.current)&&(nn("smooth"),nX(e=>e+1)))},[C.length,y,_,nn,nq]);let nG=(0,s.useRef)(null),[nY,nX]=(0,s.useState)(0),nZ=`${t?.id??null}#${nY}`;(0,s.useEffect)(()=>{let e;if(y){nG.current=null;return}if(0===C.length||nG.current===nZ)return;nG.current=nZ;let t=!1,r=!1,n=-1,s=0,i=Date.now(),o=()=>{if(t||r)return;let a=ry.current;if(a){if(Date.now()<rf.current){let{scrollTop:e,clientHeight:t,scrollHeight:n}=a;if(e+t<n-150){r=!0;return}}if(nn("instant"),a.scrollHeight===n){if((s+=1)>=4||Date.now()-i>=3e4)return}else if(n=a.scrollHeight,s=0,Date.now()-i>=3e4)return;e=window.setTimeout(o,s>0?500:250)}};return e=window.setTimeout(o,250),()=>{t=!0,void 0!==e&&window.clearTimeout(e)}},[y,nn,nZ]),(0,s.useEffect)(()=>{let e=new AbortController;return nx(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[nx,l]),(0,s.useEffect)(()=>{if(!eo)return;let e=()=>{"visible"===document.visibilityState&&nx()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}},[eo,nx]),(0,s.useEffect)(()=>{if(!te)return;let e=setTimeout(()=>tt(null),3e3);return()=>clearTimeout(e)},[te]),(0,s.useEffect)(()=>{if(!tr)return;let e=setTimeout(()=>tn(null),6e3);return()=>clearTimeout(e)},[tr]),(0,s.useEffect)(()=>{if(0===tx.visible.length)return;let e=tx.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{tg({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!tx.visible[0])return;let t=setTimeout(()=>{tg({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[tx.visible]),(0,s.useEffect)(()=>{tm(null)},[C.length,eJ?.tokens,eJ?.percent,eJ?.contextWindow]);let nQ=x?.tree??[];return{isAutoThinkingSelection:p&&null===rD,data:x,loading:y,error:k,activeLeafId:w,messages:C,activeToolResults:T,entryIds:I,historyCursor:M,hasEarlierMessages:$,streamState:W,agentRunning:_,bashRunning:q,pendingBash:J,modelNames:Y,modelList:Z,modelThinkingLevels:ee,modelThinkingLevelMaps:er,modelScopeWarnings:es,modelsError:eo,newSessionModel:el,toolPreset:ep,thinkingLevel:rO??eB,retryInfo:eq,contextUsage:eJ,systemPrompt:eY,forkingEntryId:eZ,isCompacting:e7,compactError:te,compactResult:tr,currentModel:rA,displayModel:rP,sessionStats:rH,tokenRate:F,planMode:eC,collaborationMode:ek,tokenMode:ej,toolApprovalMode:ew,permissionRules:eS,modeSettings:ef,approvalRequests:e$,handleCollaborationModeChange:nW,handleTokenModeChange:nA,handleToolApprovalModeChange:nP,handlePermissionRulesChange:nF,resolveApproval:nD,setActiveGoalText:nO,goalState:eA,handleGoalStart:nH,handleGoalPause:nB,handleGoalResume:nU,handleGoalStop:n_,handleGoalEdit:nK,slashCommands:tc,slashCommandsLoading:tp,queuedMessages:tz,pendingRecovery:tI,recoveryIsImport:tE,notices:tx.visible,extensionDialog:tv,extensionCustomUi:tb,extensionStatuses:tj,extensionWidgets:tS,respondToExtensionUi:rX,sendExtensionCustomInput:rZ,agentPhase:ts,isNew:p,promptAnchorActive:to,branchTree:nQ,autoCompactionEnabled:eD,sessionIdRef:t_,eventSourceRef:tP,messagesEndRef:rv,scrollContainerRef:ry,lastUserMsgRef:rp,pendingScrollToUserRef:rh,initialScrollDoneRef:ru,scrollUserMsgToTop:nq,handleSend:ni,executeBash:no,handleAbort:na,handleFork:nl,handleNavigate:nd,handleModelChange:np,handleCompact:nh,handleSteer:nm,handleFollowUp:ny,handlePromptWithStreamingBehavior:nv,handleAbortCompaction:nb,handleRecallQueue:nk,resolveRecovery:nj,exportQueueData:nw,importQueueData:nS,stageQueueImport:nC,moveQueuedMessage:nz,recallQueuedMessage:nT,requeueAt:nR,removeQueuedMessage:nI,handleBuiltinSlashCommand:ng,handleToolPresetChange:nM,handleThinkingLevelChange:nN,loadTools:rU,loadSlashCommands:rq,reloadModels:nx,setActiveLeafId:S,setData:g,setMessages:z,loadContext:r1,dispatch:A,setAgentRunning:K,setForkingEntryId:eQ,handleLeafChange:nc,handleAgentEventRef:rc}}({session:o,newSessionCwd:a,onAgentEnd:A,onSessionCreated:c,onSessionForked:u,modelsRefreshKey:p,chatInputRef:h,onBranchDataChange:x,onSystemPromptChange:g,onSessionStatsPanelOpen:m}),[tg,tf]=(0,s.useState)(!1);(0,s.useEffect)(()=>{0===ev.length&&tf(!1)},[ev.length]);let tm=(0,s.useMemo)(()=>{let e=B.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:ld(e.model)?lc(e.model,t):0,costUSD:ld(e.model)?0:t.cost?.total??0}},[B]),[tv,ty]=(0,s.useState)(!1),[tb,tk]=(0,s.useState)(null),tj=(0,s.useRef)(!1);(0,s.useEffect)(()=>{if(!e7){tj.current=!1;return}if(q){tj.current=!0;return}tj.current&&(tj.current=!1,tk(function(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if("assistant"!==r.role)continue;let n=r.content;if("string"==typeof n&&n.trim())return n;if(Array.isArray(n)){let e=n.filter(e=>"text"===e.type).map(e=>e.text??"").join("\n").trim();if(e)return e}}for(let t=e.length-1;t>=0;t--){let r=e[t];if("toolResult"!==r.role)continue;let n=r.content,s="string"==typeof n?n:Array.isArray(n)?n.map(e=>e.text??"").join("\n"):"";if(!s)continue;let i=s.match(/\*\*Proposed Plan\*\*\s*\n+([\s\S]+)/i);if(i?.[1]?.trim())return i[1].trim()}return null}(B)??null),ty(!0))},[q,e7,B]);let tw=(0,s.useCallback)(()=>{ty(!1);let e=tS.current;e&&tt("plan"===e9?"normal":e9).catch(e=>{console.error("Failed to leave plan mode before executing:",e)}).then(()=>{eD(E("tasks.planReviewExecutePrompt",{plan:e}))})},[tt,eD,E,e9]),tS=(0,s.useRef)(null);(0,s.useEffect)(()=>{tS.current=tb},[tb]);let tC=(0,s.useCallback)(e=>{ty(!1),eD(e)},[eD]),tz=(0,s.useCallback)(()=>{ty(!1),tt("plan"===e9?"normal":e9)},[tt,e9]);(0,s.useEffect)(()=>{ek&&W.current!==ek.id&&(W.current=ek.id,L.current&&$.current())},[ek]),(0,s.useEffect)(()=>(l=q||V?eH:null,()=>void(l=null)),[q,V,eH]);let[tT,tR]=(0,s.useState)(!1),[tI,tN]=(0,s.useState)(!1),[tM,tE]=(0,s.useState)(!1),t$=(0,s.useCallback)(()=>{let e=eL.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;tR(e.scrollTop>1),tN(t>1),tE(t>240)},[eL]),tL=(0,s.useCallback)(()=>{window.requestAnimationFrame(()=>{let e=eL.current,t=e$.current;if(!e||!t)return;let r=Math.max(88,h?.current?.measureHeight?.()??0),n=()=>{if(!e||!t)return;let n=Math.max(0,t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop-96-e.clientHeight+r);e.scrollTo({top:n,behavior:"auto"})};n(),t$(),window.setTimeout(n,200)})},[e$,eL,t$,h]);(0,s.useEffect)(()=>{let e=eL.current;if(!e)return;let t=new ResizeObserver(t$);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),e.addEventListener("scroll",t$,{passive:!0}),t$(),()=>{e.removeEventListener("scroll",t$),t.disconnect()}},[B.length,eL,t$]);let tW=(0,s.useRef)(!1);(0,s.useEffect)(()=>{let e=eL.current;if(!e)return;let t=()=>{if(tW.current||!th||!tp||e.scrollTop>8)return;let t=o?.id;if(!t)return;tW.current=!0;let r=e.scrollHeight-e.scrollTop;tx(t,eN,tp).finally(()=>{tW.current=!1,requestAnimationFrame(()=>{let t=e.scrollHeight-r;Math.abs(e.scrollTop-t)>1&&e.scrollTo({top:t,behavior:"auto"})})})};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[eL,tp,th,tx,o?.id,eN]);let tA=(0,s.useRef)(!1);(0,s.useEffect)(()=>{if(!th||!tp)return;let e=eL.current,t=o?.id;if(!e||!t||tW.current||tA.current||O||e.scrollTop>8||e.scrollHeight>e.clientHeight+50)return;tA.current=!0;let r=e.scrollHeight-e.scrollTop;tx(t,eN,tp).finally(()=>{tA.current=!1,requestAnimationFrame(()=>{let t=e.scrollHeight-r;Math.abs(e.scrollTop-t)>1&&e.scrollTo({top:t,behavior:"auto"})})})},[eL,tp,th,tx,o?.id,eN,O,B.length]);let tP=(0,s.useRef)(null),tF=(0,s.useRef)([]),tD=(0,s.useRef)(new Map),tO=(0,s.useRef)(null),[tH,tB]=(0,s.useState)(0);(0,s.useEffect)(()=>{let e=tO.current;if(!e)return void tB(e=>0===e?e:0);let t=()=>{let t=Math.round(e.getBoundingClientRect().height);tB(e=>e===t?e:t)};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[O,H]);let tU=(0,s.useMemo)(()=>({getOffsetForIndex:e=>tP.current?.getOffsetForIndex(e)?.[0]??0,sizeFor:e=>{let t=tP.current;if(!t)return 0;let r=t.measurementsCache[e];return r?.size??t.options.estimateSize?.(e)??0},totalHeight:()=>tP.current?.getTotalSize()??0,refToItemIndex:e=>tF.current[e],itemCount:tF.current.length}),[]),t_=eh?[eh.sessionId,eh.sessionFile??"",eh.sessionName??"",eh.userMessages,eh.assistantMessages,eh.toolCalls,eh.toolResults,eh.totalMessages,eh.tokens.input,eh.tokens.output,eh.tokens.cacheRead,eh.tokens.cacheWrite,eh.tokens.total,eh.cost??0,eh.totalActiveMs??0].join("|"):null,tK=(0,s.useRef)(eh);tK.current=eh,(0,s.useEffect)(()=>{f?.(tK.current)},[t_,f]),(0,s.useEffect)(()=>()=>{f?.(null)},[f]);let tq=ea?`${ea.percent??"null"}|${ea.contextWindow}|${ea.tokens??"null"}`:null,tV=(0,s.useRef)(ea);tV.current=ea,(0,s.useEffect)(()=>{v?.(tV.current)},[tq,v]),(0,s.useEffect)(()=>()=>{v?.(null)},[v]);let{isDragOver:tJ,handleDragEnter:tG,handleDragOver:tY,handleDragLeave:tX,handleDrop:tZ}=function(e){let[t,r]=(0,s.useState)(!1),n=(0,s.useRef)(0),i=(0,s.useCallback)(e=>{e.dataTransfer.files.length&&(e.preventDefault(),n.current+=1,r(!0))},[]),o=(0,s.useCallback)(e=>{e.dataTransfer.files.length&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:i,handleDragOver:o,handleDragLeave:(0,s.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,s.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files),t.dataTransfer)},[e])}}((0,s.useCallback)((e,t)=>{if(q){let t=e.filter(e=>e.type.startsWith("image/"));t.length&&h?.current?.addImages(t);return}h?.current?.addFiles(e,t)},[q,h])),tQ=B.filter(e=>"user"===e.role||"assistant"===e.role||oQ(e));(0,s.useMemo)(()=>{let e=new Map(U);for(let t of B)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[U,B]);let t0=(0,s.useMemo)(()=>{let e=new Set,t=[];for(let n=B.length-1;n>=0&&t.length<50;n-=1){var r;let s="user"!==(r=B[n]).role?null:("string"==typeof r.content?r.content:r.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).trim()||null;!s||e.has(s)||(e.add(s),t.push(s))}return t},[B]),t1=(t=tQ.length,(i=(0,s.useRef)([])).current.length!==t&&(i.current=Array.from({length:t},(e,t)=>i.current[t]??null)),i),rs=eR&&0===B.length&&!K.isStreaming&&!q,ri=o?.cwd??a??void 0;!function(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];(0,s.useEffect)(()=>{if(!t)return;let r=null,n=null,s=!1,i=null,o=()=>{null!==i&&(clearTimeout(i),i=null)},a=()=>{r&&(o(),r.classList.add("scrollbar-visible"))},l=()=>{r&&(o(),i=setTimeout(()=>{i=null,r?.classList.remove("scrollbar-visible")},500))},d=()=>{a(),l()},c=()=>{if(!s){if(!(r=e.current)){n=requestAnimationFrame(c);return}r.addEventListener("pointerenter",a),r.addEventListener("pointerleave",l),r.addEventListener("scroll",d)}};return c(),()=>{s=!0,null!==n&&cancelAnimationFrame(n),r?.removeEventListener("pointerenter",a),r?.removeEventListener("pointerleave",l),r?.removeEventListener("scroll",d),o(),r?.classList.remove("scrollbar-visible")}},[t,e])}(eL,!!o?.id||!rs);let ro=(0,s.useMemo)(()=>cU(B,_,ri,U),[B,_,ri,U]),ra=ep?Z[`${ep.provider}:${ep.modelId}`]??null:null,rl=ep?Q[`${ep.provider}:${ep.modelId}`]??null:null,rd=(0,s.useCallback)(()=>{er()},[er]),rc=(0,s.useCallback)(e=>{tt(e)},[tt]),ru=o?.relation?.kind==="subagent"?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"14px 16px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:12},children:[(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),E("subagent.readOnlyNotice")]}):(0,n.jsx)(s0,{ref:h,onSend:eD,onBash:eO,tasksBoardEnabled:w,onAbort:eH,onSteer:q?eq:void 0,onFollowUp:q?eV:void 0,onPromptWithStreamingBehavior:q?eJ:void 0,isStreaming:q,model:ep,modelNames:Y,modelList:X,modelScopeWarnings:ee,modelsError:et,onRetryModels:rd,onModelChange:e_,compactResult:eu,toolPreset:en,onToolPresetChange:o||eR?e5:void 0,collaborationMode:e9,toolApprovalMode:te,onCollaborationModeChange:rc,onToolApprovalModeChange:tr,goalState:ti,onGoalStart:to,onGoalPause:ta,onGoalResume:tl,onGoalStop:td,thinkingLevel:es,isAutoThinkingSelection:ei,onThinkingLevelChange:o||eR?e3:void 0,availableThinkingLevels:ra,thinkingLevelMap:rl,retryInfo:eo,queuedMessages:em,inputHistory:t0,onRecallQueue:eY,onMoveQueue:e0,onRecallOne:e1,onRequeueAt:e2,onRemoveQueueItem:e6,slashCommands:eg,slashCommandsLoading:ef,onLoadSlashCommands:e8,onBuiltinCommand:e4,onAudioUnlock:N,draftKey:o?.id??(a?`new:${a}`:void 0),cwd:o?.cwd??a,topCenterControl:tM?(0,n.jsx)("button",{type:"button",className:"chat-input-top-center",onClick:tL,title:E("desktop.scrollToBottom"),"aria-label":E("desktop.scrollToBottom"),children:(0,n.jsx)(lr.Z,{size:16,weight:"bold","aria-hidden":"true"})}):void 0}),rp=eS.filter(e=>"belowEditor"!==e.placement),rh=eS.filter(e=>"belowEditor"===e.placement),rx=ed?E("desktop.compacting"):function(e,t){if(e?.kind==="running_tools"){let r=e.tools.map(e=>e.name);return 0===r.length?t("desktop.runningTool"):t("desktop.runningTools",{tools:r.length<=3?r.join(", "):`${r.slice(0,2).join(", ")} (+${r.length-2})`})}return e?.kind==="waiting_model"?t("desktop.waitingForModel"):e?.kind==="running_command"?t("desktop.runningCommand"):null}(eT,E);return O?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:E("desktop.loadingSession")}):H?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:H}):(0,n.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",onDragEnter:tG,onDragOver:tY,onDragLeave:tX,onDrop:tZ,children:[tJ&&(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"})]})]})]}),ek&&(0,n.jsx)(uD,{request:ek,onRespond:eC}),ej&&(0,n.jsx)(uO,{request:ej,onInput:ez}),!eR&&ev.length>0&&!tg&&(0,n.jsx)(cw,{items:ev,sessionId:o?.id,onResolve:eX,onExport:eZ,onStageImport:eQ,onDismiss:()=>tf(!0),mode:ey?"import":"recovery"}),tn.length>0&&(0,n.jsx)(cb,{request:tn[0]??null,queuedCount:Math.max(0,tn.length-1),busy:!1,onResolve:(e,t,r)=>{let n=tn[0];n&&ts(n.id,e,t,r)}}),rs?(0,n.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto",children:(0,n.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,n.jsx)("div",{style:{display:"flex",justifyContent:"center",marginBottom:28},children:(0,n.jsxs)("svg",{fill:"currentColor",fillRule:"evenodd",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{width:64,height:64,color:"var(--accent)",opacity:.85},"aria-label":"Pi",children:[(0,n.jsx)("title",{children:"Pi"}),(0,n.jsx)("path",{clipRule:"evenodd",d:"M1 1h16.5v11H12v5.5H6.5V23H1V1zm5.5 5.5V12H12V6.5H6.5z"}),(0,n.jsx)("path",{d:"M17.5 12H23v11h-5.5V12z"})]})}),M&&(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:10,marginBottom:18,marginTop:-14},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.19.0"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]}),(0,n.jsx)("div",{style:{padding:"0 34px 6px 7px",paddingRight:M?16:34},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsx)("div",{ref:b,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.19.0"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]})]})}),(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)(uF,{notices:eb,align:"right"})}),"goal"===e9&&(0,n.jsx)(cJ,{goalState:ti,onPause:ta,onResume:tl,onStop:td,onEdit:tc}),ru,(0,n.jsx)("div",{style:{padding:"0 16px 6px",paddingRight:M?16:34,marginTop:-15},children:(0,n.jsx)(ue,{onViewFullHistory:k,cwd:ri,systemPrompt:j,sessionStats:eh,contextUsage:ea,hasSession:!!o,showChat:!0,showSoundLabel:!0,soundEnabled:T,onSoundToggle:R,onCompact:o?eK:void 0,onAbortCompaction:eG,isCompacting:ed,compactError:ec,lastTurnUsage:tm})})]})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden z-0",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:18*!M,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(uF,{notices:eb,floating:!0,align:"right"})})}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 min-w-0",children:[(0,n.jsx)("div",{ref:eL,className:"scrollbar-subtle chat-scroll-fade h-full min-w-0 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-gutter:stable]",style:{"--chat-fade-top":tT?"var(--cds-scroll-fade-size)":"0px","--chat-fade-bottom":tI?"var(--cds-scroll-fade-size)":"0px"},children:(0,n.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,n.jsxs)("div",{style:{width:"100%",minWidth:0,maxWidth:820,margin:"0 auto"},children:[(0,n.jsxs)("div",{ref:tO,children:[(0,n.jsx)(uA,{statuses:ew}),(0,n.jsx)(uP,{widgets:rp})]}),(()=>{let{toolResultsMap:e,lastUserIdx:t,visibleRefIndexByMessage:r,items:s}=ro;for(let e=B.length-1;e>=0&&!oQ(B[e]);e--);let i=tD.current,a=function(s){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=a.messageOverride??B[s];if(!l||"toolResult"===l.role)return null;let d="user"===l.role||"assistant"===l.role||oQ(l),c=r.get(s),u=a.keyPrefix??"message",p=!1;if("assistant"===l.role){p=!0;for(let e=s+1;e<B.length;e++){let t=B[e].role;if("user"===t)break;if("assistant"===t){p=!1;break}}p&&K.isStreaming&&s===B.length-1&&(p=!1)}void 0!==a.showTimestamp&&(p=a.showTimestamp);let h=(0,n.jsx)(aJ,{message:l,toolResults:e,modelNames:Y,cwd:ri,onOpenFile:y,entryId:_[s],onFork:q||eR?void 0:eB,forking:el===_[s],onNavigate:q?void 0:eU,onEditContent:P,onQuoteReply:F,onOpenSession:S,onCreateTask:D,showTimestamp:p,prevTimestamp:s>0?B[s-1].timestamp:void 0,sessionId:o?.id??eE.current??void 0,writtenFiles:a.writtenFiles},`${u}-view-${s}`);return d&&!1!==a.attachRef&&void 0!==c?(0,n.jsx)("div",{ref:((e,r)=>{let n=i.get(r);if(!n){let e={isLastUser:!1};n={state:e,callback:t=>{t1.current[r]=t,e.isLastUser&&(eW.current=t,t&&eA.current&&(eA.current=!1,eP.current=!0,eF()))}},i.set(r,n)}return n.state.isLastUser=e===t,n.callback})(s,c),children:h},`${u}-${s}`):h},l=[],d=[],c=[],u=(e,t,r)=>{null!==e&&(l.push(e),d.push(t),c.push(r))},p=(e,t)=>_[e]||`${t}-${e}`,h=e=>`live-answer-u${e}`,x=e=>`answer-${p(e,"user")}`,g=e=>`subagent-${e}`,f=e=>aH(e.result?.details)?e.result.details.sessionId:"",m=e=>{let t=f(e);if(t&&z){let e=z.get(t);if(e)return"running"===e.status}let r=aH(e.result?.details)?e.result.details:null;return r?"running"===r.status||"starting"===r.status:!e.result},v=(e,t)=>`live-process-u${e}-seg${t}`,b=(e,t,r)=>`process-${p(e,"user")}-${r||`seg${t}`}`;for(let i of s){if("single"===i.kind){if(B[i.idx]?.role==="toolResult")continue;u(a(i.idx),r.get(i.idx),p(i.idx,"single"));continue}let{userIdx:s,endIdx:l,startsCompactionTurn:d,finalAssistantIdx:c}=i;if((q||K.isStreaming)&&l===B.length&&(s===t||d)){s>=0&&u(a(s),r.get(s),p(s,"user"));let t=K.streamingMessage?.role==="assistant",i=[],d=!t&&c>=0?c:l;for(let e=s+1;e<d;e++)cH(B[e])&&i.push(e);let x=cF(B,_,i,e),m=null;if(!t&&c>=0){let t=B[c],r=o4(t,{isStreaming:!0}),n=cP(t,{messageIndex:c,entryId:_[c],toolResults:e,isStreaming:!0});x=x.concat(n.processBlocks),r.answerBlocks.length>0&&(m=cB(t,r.answerBlocks,{omitUsage:!0}))}if(t){let t=K.streamingMessage,r=o4(t,{isStreaming:!0}),n=cP(t,{messageIndex:B.length,toolResults:e,isStreaming:!0});x=x.concat(n.processBlocks),r.answerBlocks.length>0&&(m=cB(t,r.answerBlocks,{omitUsage:!0}))}if(x.length>0){let e=i.map(e=>r.get(e)).find(e=>"number"==typeof e);cL(x).forEach((t,i)=>{let a=r.get(t.blocks[0].origin.sourceMessageIndex)??e;if("subagent"===t.kind&&t.subagent)return void u((0,n.jsx)(aX,{run:t.subagent,onOpenSubagent:C,sessionRun:z?.get(f(t.subagent))},g(t.subagent.toolCallId)),a,g(t.subagent.toolCallId));if("output"===t.kind){let e=t.blocks[0],s=r.get(e.origin.sourceMessageIndex);u((0,n.jsx)(aJ,{message:{role:"assistant",provider:"",model:"",content:t.blocks},isStreaming:e.origin.sourceMessageIndex===B.length,cwd:ri,onOpenFile:y,onQuoteReply:F,onOpenSession:S}),s,`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===a?void 0:e=>{t1.current[a]=e},children:(0,n.jsx)(aG,{blocks:t.blocks,isStreaming:q||K.isStreaming,cwd:ri,onOpenFile:y,sessionId:o?.id??eE.current??void 0,tokenRate:ex})},v(s,i)),a,v(s,i))})}m&&u((0,n.jsx)(aJ,{message:m,isStreaming:!0,modelNames:Y,cwd:ri,onOpenFile:y,onQuoteReply:F,onOpenSession:S},`live-answer-${s}`),c>=0?r.get(c):void 0,h(s));continue}if(-1===c&&0===i.processBlocks.length){if(s>=0)for(let e=s;e<l;e++)u(a(e),r.get(e),p(e,"raw"));continue}s>=0&&u(a(s),r.get(s),p(s,"user"));let{finalAnswerMessage:k,writtenFiles:j,visibleProcessIndices:w}=i;if(i.processBlocks.length>0){let e=w.map(e=>r.get(e)).find(e=>"number"==typeof e)??(k?void 0:r.get(c));i.processSegments.forEach((t,i)=>{let a=r.get(t.blocks[0].origin.sourceMessageIndex)??e;if("subagent"===t.kind&&t.subagent)return void u((0,n.jsx)(aX,{run:t.subagent,onOpenSubagent:C,sessionRun:z?.get(f(t.subagent))},g(t.subagent.toolCallId)),a,g(t.subagent.toolCallId));if("output"===t.kind){let e=t.blocks[0];u((0,n.jsx)(aJ,{message:{role:"assistant",provider:"",model:"",content:t.blocks},cwd:ri,onOpenFile:y,onQuoteReply:F,onOpenSession:S}),r.get(e.origin.sourceMessageIndex),`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===a?void 0:e=>{t1.current[a]=e},children:(0,n.jsx)(aG,{blocks:t.blocks,isStreaming:"subagent"===t.kind&&void 0!==t.subagent&&m(t.subagent),defaultExpanded:!1,onAutoExpanded:void 0,cwd:ri,onOpenFile:y,sessionId:o?.id??eE.current??void 0})},`process-group-${s}-${i}`),a,b(s,i,t.blocks[0]?.id??""))})}if(k&&u(a(c,{messageOverride:k,writtenFiles:j}),r.get(c),x(s)),c>=0)for(let e=c+1;e<l;e++)u(a(e),r.get(e),p(e,"tail"))}let k=[],j=d.map((e,t)=>({startRef:e,itemIdx:t})).filter(e=>void 0!==e.startRef);return j.forEach((e,t)=>{let r=j[t+1]?.startRef??tQ.length;for(let t=e.startRef;t<r;t++)k[t]=e.itemIdx}),tF.current=k,(0,n.jsx)(aY,{scrollElementRef:eL,items:l,itemKeys:c,virtualizerRef:tP,headerHeight:tH})})(),rx&&(ed||q&&!K.streamingMessage)&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsxs)("span",{className:"animate-[pulse_1.5s_infinite]",children:[rx,eT?.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)(aJ,{message:{role:"bashExecution",command:G.command,output:"",excludeFromContext:G.excludeFromContext},sessionId:o?.id??eE.current??void 0}),V&&!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:E("desktop.runningShellCommand")})}),(0,n.jsx)("div",{style:{height:96}}),(0,n.jsx)("div",{ref:e$}),(0,n.jsx)(ck,{open:tv,planText:tb,busy:q,onExecute:tw,onFeedback:tC,onExit:tz,onClose:()=>ty(!1)})]})})}),tT&&(0,n.jsx)("div",{"aria-hidden":"true",className:"chat-fade-fallback pointer-events-none absolute inset-x-0 top-0 z-10 h-8 bg-gradient-to-b from-[var(--bg)] to-transparent"}),tI&&(0,n.jsx)("div",{"aria-hidden":"true",className:"chat-fade-fallback pointer-events-none absolute inset-x-0 bottom-0 z-10 h-8 bg-gradient-to-t from-[var(--bg)] to-transparent"})]}),M?null:(0,n.jsx)(un,{messages:B,streamingMessage:K.streamingMessage,scrollContainer:eL,messageRefs:t1,virtualizer:tU})]}),(0,n.jsxs)("div",{className:"relative z-10",children:[(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(uP,{widgets:rh})})}),ru,(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)(ue,{onViewFullHistory:k,cwd:ri,systemPrompt:j,sessionStats:eh,contextUsage:ea,hasSession:!!o,showChat:!0,soundEnabled:T,onSoundToggle:R,onCompact:o?eK:void 0,onAbortCompaction:eG,isCompacting:ed,compactError:ec,branchTree:eI,branchActiveLeafId:eN,onBranchLeafChange:eM,lastTurnUsage:tm})})})]})]})]})}function uA(e){let{statuses:t}=e;return 0===t.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:t.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"4px 8px",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:6,background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function uP(e){let{widgets:t}=e;return 0===t.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:10},children:t.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 uF(e){let{notices:t,floating:r=!1,align:s="left"}=e;return 0===t.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===s?"flex-end":"stretch",marginBottom:10*!r},children:t.map((e,s)=>{let i="error"===e.type?"var(--status-error)":"warning"===e.type?"var(--status-warning)":"success"===e.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*(s!==t.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:r?"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:e.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out both",padding:"0 12px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:i,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"10px 0",minWidth:0,maxWidth:"100%",overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:e.message})]},e.id)})})}function uD(e){let{request:t,onRespond:r}=e,{t:i}=(0,J.s)(),[o,a]=(0,s.useState)("editor"===t.method?t.prefill??"":""),[l,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(()=>Date.now()),p=(0,s.useCallback)(e=>e?.focus(),[]);!function(e){if("select"===e.method&&e.options.length>0)return e.options[0];if("confirm"===e.method){let t=e.message.split("\n").find(e=>e.trim());t?.trim()}}(t);let h=void 0===t.expiresAt?null:Math.max(0,Math.ceil((t.expiresAt-c)/1e3));(0,s.useEffect)(()=>{if(void 0===t.expiresAt)return;let e=setInterval(()=>u(Date.now()),1e3);return()=>clearInterval(e)},[t.expiresAt]);let x=null!==h&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap",flexShrink:0},children:i("chat.extensionExpiresIn",{seconds:h})});(0,s.useEffect)(()=>{a("editor"===t.method?t.prefill??"":"")},[t]);let g=()=>{"confirm"===t.method?r(t,{confirmed:!0}):r(t,{value:o})};return(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"flex-start",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)",maxHeight:"50%",overflowY:"auto"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650,lineHeight:1.45,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:t.title}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{children:i("desktop.extensionRequest")}),x]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>d(!0),"aria-expanded":!0,title:i("chat.extensionCollapse"),"aria-label":i("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===t.method&&(0,n.jsx)(of,{children:t.message}),"select"===t.method&&(0,n.jsx)("div",{onKeyDown:e=>{if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e.key))return;let t=Array.from(e.currentTarget.querySelectorAll("[data-extension-option]")),r=t.indexOf(e.target);if(r<0)return;e.preventDefault();let n="Home"===e.key?0:"End"===e.key?t.length-1:(r+("ArrowDown"===e.key||"ArrowRight"===e.key?1:-1)+t.length)%t.length;t[n]?.focus()},style:{display:"grid",gap:8},children:t.options.map((e,s)=>(0,n.jsx)("div",{role:"button",tabIndex:0,"data-extension-option":!0,"aria-label":e,ref:0===s?p:void 0,onClick:()=>r(t,{value:e}),onKeyDown:n=>{("Enter"===n.key||" "===n.key)&&(n.preventDefault(),r(t,{value:e}))},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:13,overflowWrap:"anywhere",scrollMargin:14},children:(0,n.jsx)("div",{inert:!0,children:(0,n.jsx)(of,{children:e})})},e))}),"input"===t.method&&(0,n.jsx)("input",{autoFocus:!0,className:"extension-input",value:o,placeholder:t.placeholder,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"===e.key&&g(),"Escape"===e.key&&r(t,{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"===t.method&&(0,n.jsx)("textarea",{autoFocus:!0,value:o,onChange:e=>a(e.target.value),onKeyDown:e=>{"Escape"===e.key&&r(t,{cancelled:!0}),(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&g()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:()=>r(t,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:i("desktop.cancel")}),"confirm"===t.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:i("desktop.confirm")}):"select"!==t.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:i("desktop.submit")}):null]})]})})}function uO(e){let{request:t,onInput:r}=e,{t:i}=(0,J.s)(),o=(0,s.useRef)(null),a=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=cN(n).trimEnd();if(t.test(e))continue;let s=n,i=c$(s);("│"===i||"┃"===i)&&" "===c$(s=cE(s,0))&&(s=cE(s,0));let o=function(e){let t=cM(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(s),a=o>=0?cM(s)[o]?.char:void 0;("│"===a||"┃"===a)&&(s=cE(s,o)),r.push(function(e){let t=e;for(;;){let e=cM(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(s))}for(;r.length>0&&""===cN(r[0]).trim();)r.shift();for(;r.length>0&&""===cN(r[r.length-1]).trim();)r.pop();return r.length?r:e}(t.lines);return(0,s.useEffect)(()=>{o.current?.focus()},[t.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:o,tabIndex:0,role:"dialog","aria-modal":"true",onKeyDown:e=>{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}}(e);n&&(e.preventDefault(),e.stopPropagation(),r(t,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:i("desktop.extensionPanel")}),(0,n.jsx)("button",{onClick:()=>r(t,"\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:i("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:(a.length?a:[""]).map((e,t,r)=>{var i;return(0,n.jsxs)(s.Fragment,{children:[(i=`line-${t}`,(function(e){let t,r=[],n={},s=0;for(cT.lastIndex=0;null!==(t=cT.exec(e));)t.index>s&&r.push({text:e.slice(s,t.index),style:n}),n=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(r))delete r[e];else if(1===n)r.fontWeight=700;else if(2===n)r.opacity=.65;else if(3===n)r.fontStyle="italic";else if(4===n)r.textDecoration="underline";else if(22===n)delete r.fontWeight,delete r.opacity;else if(23===n)delete r.fontStyle;else if(24===n)delete r.textDecoration;else if(39===n)delete r.color;else if(49===n)delete r.backgroundColor;else if(n>=30&&n<=37)r.color=cR[n-30];else if(n>=90&&n<=97)r.color=cI[n-90];else if(n>=40&&n<=47)r.backgroundColor=cR[n-40];else if(n>=100&&n<=107)r.backgroundColor=cI[n-100];else if((38===n||48===n)&&2===t[e+1]){let[s,i,o]=[t[e+2],t[e+3],t[e+4]];[s,i,o].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${s}, ${i}, ${o})`:r.backgroundColor=`rgb(${s}, ${i}, ${o})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let s=function(e){if(e>=0&&e<8)return cR[e];if(e>=8&&e<16)return cI[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),s=e=>0===e?0:55+40*e;return`rgb(${s(r)}, ${s(n)}, ${s(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);s&&(38===n?r.color=s:r.backgroundColor=s),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),s=t.index+t[0].length;return s<e.length&&r.push({text:e.slice(s),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${i}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}function uH(e){let{sessionId:t,label:r,running:i=!1,onOpenFile:o}=e,{t:a}=(0,J.s)(),[l,d]=(0,s.useState)([]),[c,u]=(0,s.useState)([]),[p,h]=(0,s.useState)(!0),[x,g]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=!1;return(async r=>{r&&h(!0);try{let r=await fetch(`/api/sessions/${encodeURIComponent(t)}?tail=500`,{cache:"no-store"}),n=await r.json();if(e)return;if(!r.ok)throw Error(n.error??`HTTP ${r.status}`);d(n.context?.messages??[]),u(n.context?.entryIds??[]),g(null)}catch(t){if(e)return;g(t instanceof Error?t.message:String(t))}finally{e||h(!1)}})(!0),()=>{e=!0}},[t]),(0,s.useEffect)(()=>{if(!i)return;let e=!1,r=window.setInterval(async()=>{if("visible"===document.visibilityState)try{let r=await fetch(`/api/sessions/${encodeURIComponent(t)}?tail=500`,{cache:"no-store"});if(!r.ok)return;let n=await r.json();if(e)return;d(n.context?.messages??[]),u(n.context?.entryIds??[])}catch{}},2500);return()=>{e=!0,window.clearInterval(r)}},[i,t]);let f=(0,s.useMemo)(()=>{let e=new Map;for(let t of l)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[l]),m=(0,s.useMemo)(()=>cU(l,c,void 0,f),[l,c,f]),v=(0,s.useMemo)(()=>l.filter(e=>"user"===e.role||"assistant"===e.role).length,[l]),y=(e,r)=>(0,n.jsx)(lf,{message:r?.messageOverride??l[e],toolResults:m.toolResultsMap,entryId:c[e],sessionId:t,onOpenFile:o},`subagent-msg-${e}`);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"8px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r||a("subagent.transcriptTitle")}),i&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--accent)",whiteSpace:"nowrap"},children:a("agentSwitcher.status.running")})]}),(0,n.jsxs)("div",{className:"scrollbar-subtle scroll-overlay",style:{flex:1,minHeight:0,overflowY:"auto",padding:"10px 12px"},children:[p&&0===l.length&&(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:12},children:a("subagent.transcriptLoading")}),x&&0===l.length&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:12},children:a("subagent.transcriptFailed",{error:x})}),!p&&!x&&0===v&&(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:12},children:a(i?"subagent.transcriptWaiting":"subagent.transcriptEmpty")}),m.items.map((e,t)=>{if("single"===e.kind)return(0,n.jsx)("div",{children:y(e.idx)},`single-${e.idx}`);let{userIdx:r,endIdx:s,finalAssistantIdx:a,finalAnswerMessage:l}=e,d=t===m.items.length-1,c=i&&d;return(0,n.jsxs)("div",{children:[r>=0&&y(r),e.processSegments.map((t,s)=>(0,n.jsx)(aD,{blocks:t.blocks,isStreaming:c&&s===e.processSegments.length-1&&-1===a,defaultExpanded:c&&s===e.processSegments.length-1&&-1===a,onOpenFile:o},`seg-${r}-${s}`)),l&&y(a,{messageOverride:l}),a>=0&&(()=>{let e=[];for(let t=a+1;t<s;t++)e.push((0,n.jsx)("div",{children:y(t)},`tail-${t}`));return e})()]},`turn-${r}-${t}`)})]})]})}let uB="pi-web:file-tabs";function uU(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var u_=r(93534),uK=r(59261),uq=r(45781),uV=r(68731),uJ=r(93912),uG=r(23675);let uY=[{id:"basics",labelKey:"desktop.settingsGroupBasics",ids:["server","display","ui-kit","chat"]},{id:"agent",labelKey:"desktop.settingsGroupAgent",ids:["models","skills","plugins"]},{id:"application",labelKey:"desktop.settingsGroupApplication",ids:["proxy","features","logs","snippets","usage"]},{id:"tools",labelKey:"desktop.settingsGroupTools",ids:["mcp","subagents","tools"]},{id:"data",labelKey:"desktop.settingsGroupData",ids:["backup","import"]}];var uX=r(47013),uZ=r(51265);let uQ={"restore-script":"restore","generate-cmd":"cmd",keep:"keep","keep-with-warning":"warning",manual:"manual"};function u0(e){let{cwd:t}=e,{t:r}=(0,J.s)(),i=(0,s.useRef)(null),[o,a]=(0,s.useState)(!0),[l,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1),[p,h]=(0,s.useState)(null),[x,g]=(0,s.useState)(null),[f,m]=(0,s.useState)(new Set),[v,y]=(0,s.useState)(new Set),[b,k]=(0,s.useState)(!1),[j,w]=(0,s.useState)(null),[S,C]=(0,s.useState)(!1),[z,T]=(0,s.useState)(null),[R,I]=(0,s.useState)([]),[N,M]=(0,s.useState)(""),[E,$]=(0,s.useState)(null),[L,W]=(0,s.useState)(null);(0,s.useEffect)(()=>{fetch("/api/models").then(e=>e.json()).then(e=>{let t=Array.isArray(e.modelList)?e.modelList:[];I(t),t.length>0&&M(`${t[0].provider}/${t[0].id}`)}).catch(()=>{})},[]);let A=(0,s.useCallback)(async()=>{u(!0),h(null);try{let e=await fetch("/api/backup/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({includeSecrets:o,includeSessions:l})});if(!e.ok){let t=await e.json();h(t.error??`HTTP ${e.status}`);return}let t=await e.blob(),r=(e.headers.get("Content-Disposition")??"").match(/filename="?([^";]+)"?/),n=URL.createObjectURL(t),s=document.createElement("a");s.href=n,s.download=r?.[1]??"pi-backup.zip",document.body.appendChild(s),s.click(),s.remove(),URL.revokeObjectURL(n)}catch{h(String(r("desktop.backupExportFailed")))}finally{u(!1)}},[o,l,r]),P=(0,s.useCallback)(async e=>{if(e){w(null),T(null),g(null);try{let t=new FormData;t.append("phase","parse"),t.append("file",e);let n=await fetch("/api/backup/import",{method:"POST",body:t}),s=await n.json();if(!n.ok||s.error)return void w(s.error??`HTTP ${n.status}`);if("preview"!==s.phase||!s.preview)return void w(String(r("desktop.backupImportFailed")));g(s),m(new Set(s.preview.categories)),y(new Set),k(!1)}catch{w(String(r("desktop.backupImportFailed")))}}},[r]),F=(0,s.useCallback)(async()=>{if(x){C(!0),w(null);try{let e=new FormData;e.append("phase","restore"),e.append("token",x.token),e.append("selections",JSON.stringify({categories:[...f],skippedMcpServers:[...v],reinstallNpm:b}));let t=await fetch("/api/backup/import",{method:"POST",body:e}),n=await t.json();if(!t.ok||n.error)return void w(n.error??`HTTP ${t.status}`);if("report"!==n.phase||!n.report)return void w(String(r("desktop.backupRestoreFailed")));T(n.report),g(null),i.current&&(i.current.value="")}catch{w(String(r("desktop.backupRestoreFailed")))}finally{C(!1)}}},[x,f,v,b,r]),D=(0,s.useCallback)(async e=>{if(e.installPrompt&&t){$(e.name),W(null);try{let r=N.indexOf("/"),n=r>0?N.slice(0,r):void 0,s=r>0?N.slice(r+1):void 0,i=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,message:e.installPrompt,provider:n,modelId:s})}),o=await i.json();if(!i.ok||o.error)return void w(o.error??`HTTP ${i.status}`);W({server:e.name,sessionId:o.sessionId})}catch{w(String(r("desktop.backupInstallSessionFailed")))}finally{$(null)}}},[t,N,r]),O=e=>"win32"===e?"Windows":"darwin"===e?"macOS":"Linux";return(0,n.jsxs)("div",{className:"settings-content-panel",style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{className:"settings-content-header",style:{padding:"var(--settings-content-header-padding, 18px 22px 14px)",borderBottom:"var(--settings-content-header-border, 1px solid var(--border))"},children:(0,n.jsx)("h1",{className:"settings-content-title",style:{margin:0,fontSize:16,fontWeight:700,color:"var(--ds-text-primary)"},children:r("desktop.backup")})}),(0,n.jsxs)("section",{className:"settings-content-card settings-content-section",style:{padding:"var(--settings-content-section-padding, 18px 22px)",borderBottom:"var(--settings-content-section-divider, 1px solid var(--border))"},children:[(0,n.jsx)("h2",{className:"settings-content-section-title",style:{margin:0,fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:r("desktop.backupExportTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 12px",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.5},children:r("desktop.backupExportDescription")}),(0,n.jsxs)("label",{className:"settings-content-row",style:{display:"flex",gap:8,alignItems:"flex-start",cursor:"pointer",marginBottom:8},children:[(0,n.jsx)("input",{type:"checkbox",checked:o,onChange:e=>a(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)"},children:[r("desktop.backupIncludeSecrets"),(0,n.jsx)("span",{style:{display:"block",fontSize:"var(--text-ui-xs)",color:"var(--status-error)"},children:r("desktop.backupSecretsWarning")})]})]}),(0,n.jsxs)("label",{className:"settings-content-row",style:{display:"flex",gap:8,alignItems:"flex-start",cursor:"pointer",marginBottom:14},children:[(0,n.jsx)("input",{type:"checkbox",checked:l,onChange:e=>d(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)"},children:[r("desktop.backupIncludeSessions"),(0,n.jsx)("span",{style:{display:"block",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:r("desktop.backupSessionsHint")})]})]}),(0,n.jsxs)("button",{type:"button",onClick:A,disabled:c,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--ds-accent)",border:"none",borderRadius:"var(--radius-sm)",color:"var(--accent-fg)",fontSize:"var(--text-ui-sm)",fontWeight:600,cursor:c?"wait":"pointer"},children:[(0,n.jsx)(uX.f,{size:15,"aria-hidden":"true"}),c?r("desktop.backupExporting"):r("desktop.backupExportButton")]}),p&&(0,n.jsx)("p",{style:{margin:"8px 0 0",fontSize:"var(--text-ui-xs)",color:"var(--status-error)"},children:p})]}),(0,n.jsxs)("section",{className:"settings-content-card settings-content-section",style:{padding:"var(--settings-content-section-padding, 18px 22px)"},children:[(0,n.jsx)("h2",{className:"settings-content-section-title",style:{margin:0,fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:r("desktop.backupImportTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 12px",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.5},children:r("desktop.backupImportDescription")}),(0,n.jsx)("input",{ref:i,type:"file",accept:".zip,application/zip",onChange:e=>P(e.target.files?.[0]),style:{display:"none"}}),(0,n.jsxs)("button",{type:"button",onClick:()=>i.current?.click(),style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--ds-bg-secondary)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(uZ._,{size:15,"aria-hidden":"true"}),r("desktop.backupImportButton")]}),j&&(0,n.jsx)("p",{style:{margin:"0 0 10px",fontSize:"var(--text-ui-xs)",color:"var(--status-error)",lineHeight:1.5},children:j}),x&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-md)",padding:14,background:"var(--ds-bg-secondary)",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.6},children:[(0,n.jsxs)("span",{style:{color:"var(--ds-text-primary)",fontWeight:600},children:[r("desktop.backupManifest"),":"]})," ",new Date(x.preview.manifest.createdAt).toLocaleString()," \xb7 ",O(x.preview.manifest.sourcePlatform)," →",O(navigator.platform.includes("Win")?"win32":navigator.platform.includes("Linux")?"linux":"darwin")," \xb7 pi-web ",x.preview.manifest.piWebVersion,x.preview.manifest.includeSecrets?"":` \xb7 ${r("desktop.backupNoSecrets")}`]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:r("desktop.backupCategories")}),(0,n.jsx)("div",{style:{display:"flex",gap:14,flexWrap:"wrap"},children:x.preview.categories.map(e=>(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",cursor:"pointer",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)"},children:[(0,n.jsx)("input",{type:"checkbox",checked:f.has(e),onChange:t=>{let r=new Set(f);t.target.checked?r.add(e):r.delete(e),m(r)}}),r(`desktop.backupCategory${e}`)]},e))})]}),x.preview.servers.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:r("desktop.backupMcpServers")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:x.preview.servers.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:"var(--text-ui-sm)"},children:[(0,n.jsx)("input",{type:"checkbox",checked:!v.has(e.name),onChange:t=>{let r=new Set(v);t.target.checked?r.delete(e.name):r.add(e.name),y(r)},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:"var(--text-ui-xs)",fontFamily:"var(--font-mono)",color:"var(--ds-text-primary)"},children:e.name}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 6px",borderRadius:"var(--radius-md)",background:"manual"===e.action||"keep-with-warning"===e.action?"rgba(239,68,68,0.15)":"var(--ds-bg-active)",color:"manual"===e.action||"keep-with-warning"===e.action?"var(--status-error)":"var(--ds-text-secondary)"},children:uQ[e.action]})]}),(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)"},children:e.original.command}),e.adapted&&e.adapted.command!==e.original.command&&(0,n.jsxs)(n.Fragment,{children:[" → ",(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)",color:"var(--ds-text-primary)"},children:e.adapted.command})]})]}),e.reason&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--status-error)"},children:e.reason}),"manual"===e.action&&e.installPrompt&&t&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:2,flexWrap:"wrap"},children:[(0,n.jsx)("select",{value:N,onChange:e=>M(e.target.value),style:{fontSize:"var(--text-ui-xs)",padding:"4px 6px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)",maxWidth:220},title:r("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:E===e.name,onClick:()=>D(e),style:{padding:"4px 10px",fontSize:"var(--text-ui-xs)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)",cursor:E===e.name?"wait":"pointer"},children:E===e.name?"…":r("desktop.backupInstallSession")}),L?.server===e.name&&(0,n.jsx)("a",{href:`?session=${encodeURIComponent(L.sessionId)}`,style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-accent)"},children:r("desktop.backupOpenSession")})]})]})]},e.name))})]}),x.preview.npmPackages.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:6},children:r("desktop.backupNpmPackages")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4,marginBottom:6},children:x.preview.npmPackages.map(e=>(0,n.jsx)("code",{style:{fontSize:"var(--text-ui-xs)",fontFamily:"var(--font-mono)",color:"var(--ds-text-primary)"},children:e},e))}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"flex-start",cursor:"pointer",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",lineHeight:1.4},children:[(0,n.jsx)("input",{type:"checkbox",checked:b,onChange:e=>k(e.target.checked),style:{marginTop:2}}),(0,n.jsxs)("span",{children:[r("desktop.backupReinstallNpm"),(0,n.jsx)("span",{style:{display:"block",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:r("desktop.backupReinstallNpmHint")})]})]})]}),x.preview.warnings.length>0&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--status-error)",lineHeight:1.5},children:x.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:F,disabled:S||0===f.size,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--ds-accent)",border:"none",borderRadius:"var(--radius-sm)",color:"var(--accent-fg)",fontSize:"var(--text-ui-sm)",fontWeight:600,cursor:S?"wait":"pointer",opacity:0===f.size?.5:1},children:[(0,n.jsx)(uZ._,{size:15,"aria-hidden":"true"}),S?r("desktop.backupRestoring"):r("desktop.backupRestoreButton")]}),(0,n.jsx)("button",{type:"button",onClick:()=>{g(null),i.current&&(i.current.value="")},disabled:S,style:{padding:"8px 14px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)",cursor:"pointer"},children:r("desktop.cancel")})]})]}),z&&(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-md)",padding:14,background:"var(--ds-bg-secondary)",display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:[(0,n.jsx)(lo.W,{size:16,"aria-hidden":"true"}),r("desktop.backupRestoreReport")]}),z.restored.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--status-success)",marginBottom:4},children:["✓ ",r("desktop.backupReportRestored")]}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",lineHeight:1.6,fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:z.restored.join("\n")})]}),z.needsRestart.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--status-warning)",marginBottom:4},children:["\uD83D\uDD04 ",r("desktop.backupReportRestart")]}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",lineHeight:1.6,fontFamily:"var(--font-mono)"},children:z.needsRestart.join("\n")})]}),z.manual.length>0&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--status-error)",marginBottom:4},children:[(0,n.jsx)(tk.N,{size:12,style:{verticalAlign:-2},"aria-hidden":"true"})," ",r("desktop.backupReportManual")]}),z.manual.map((e,t)=>(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",lineHeight:1.6},children:[(0,n.jsx)("strong",{style:{color:"var(--ds-text-primary)"},children:e.server}),": ",e.message]},t))]}),z.warnings.length>0&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--status-error)",lineHeight:1.6},children:z.warnings.map((e,t)=>(0,n.jsxs)("div",{children:["⚠ ",e]},t))}),z.needsRestart.length>0&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-xs)",color:"var(--status-warning)",lineHeight:1.5},children:r("desktop.backupRestartHint")})]})]})]})}function u1(e){let{checked:t,onChange:r,label:s,description:i}=e;return(0,n.jsxs)("div",{className:"settings-row is-hoverable",onClick:()=>r(!t),style:{alignItems:i?"flex-start":"center",cursor:"pointer",userSelect:"none"},children:[(0,n.jsxs)("span",{className:"settings-row-copy",children:[(0,n.jsx)("span",{className:"settings-row-title",children:s}),i&&(0,n.jsx)("span",{className:"settings-row-description",children:i})]}),(0,n.jsx)("button",{type:"button",role:"switch","aria-checked":t,"aria-label":"string"==typeof s?s:void 0,onClick:e=>{e.stopPropagation(),r(!t)},className:"settings-toggle",children:(0,n.jsx)("span",{className:"settings-toggle-knob"})})]})}function u2(e){let{title:t,description:r,children:s}=e;return(0,n.jsxs)("section",{className:"settings-content-card settings-content-section",style:{padding:"var(--settings-content-section-padding, 20px 22px)"},children:[(0,n.jsx)("h2",{className:"settings-content-section-title settings-section-title",children:t}),(0,n.jsx)("p",{className:"settings-content-section-description settings-section-description",children:r}),(0,n.jsx)("div",{className:"settings-content-section-body",children:s})]})}let u6="pi-input-shortcut";function u4(){try{let e=localStorage.getItem(u6);return"ctrl-enter"===e?"ctrl-enter":"enter"}catch{return"enter"}}function u5(){let{t:e}=(0,J.s)(),[t,r]=(0,s.useState)(u4);(0,s.useEffect)(()=>{let e=()=>r(u4());return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[]);let i=(0,s.useCallback)(e=>{r(e);try{localStorage.setItem(u6,e),window.dispatchEvent(new StorageEvent("storage",{key:u6,newValue:e}))}catch{}},[]);return(0,n.jsxs)("div",{className:"settings-content-panel",style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{className:"settings-content-header",style:{padding:"var(--settings-content-header-padding, 18px 22px 14px)",borderBottom:"var(--settings-content-header-border, 1px solid var(--border))"},children:(0,n.jsx)("h1",{className:"settings-content-title",style:{margin:0,fontSize:16,fontWeight:700,color:"var(--text)"},children:e("desktop.chat")})}),(0,n.jsx)(u2,{title:e("desktop.inputShortcut"),description:e("desktop.inputShortcutDescription"),children:(0,n.jsx)(u1,{checked:"ctrl-enter"===t,onChange:e=>i(e?"ctrl-enter":"enter"),label:e("desktop.useCtrlEnter"),description:e("desktop.useCtrlEnterDescription")})})]})}var u3=r(95650),u8=r(55803),u7=r(23602);let u9={small:.85,default:1,large:1.15,xl:1.25};function pe(e){return"number"==typeof e&&Number.isFinite(e)?Number((.025*Math.round(Math.min(1.5,Math.max(.8,e))/.025)).toFixed(3)):1}function pt(e){if("u"<typeof document)return;let t=pe(e),r=document.documentElement;r.style.setProperty("--font-scale",String(t)),r.style.setProperty("zoom",1===t?"":String(t))}let pr=["small","default","large","xl"],pn={small:"desktop.fontScaleSmall",default:"desktop.fontScaleDefault",large:"desktop.fontScaleLarge",xl:"desktop.fontScaleXl"};function ps(){let{t:e}=(0,J.s)(),{scale:t,setScale:r,saving:i,error:o}=function(){let[e,t]=(0,s.useState)(1),[r,n]=(0,s.useState)(!0),[i,o]=(0,s.useState)(!1),[a,l]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=!1;return fetch("/api/settings/appearance",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(r=>{if(e)return;let n=pe(r?.fontScale??1);t(n),pt(n)}).catch(()=>{}).finally(()=>{e||n(!1)}),()=>{e=!0}},[]);let d=(0,s.useCallback)(e=>{let r=pe(e);t(r),pt(r),o(!0),l(null),fetch("/api/settings/appearance",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({fontScale:r})}).then(async e=>{if(!e.ok)throw Error((await e.json().catch(()=>({}))).error??`HTTP ${e.status}`)}).catch(e=>{l(e instanceof Error?e.message:String(e))}).finally(()=>o(!1))},[]),c=Object.keys(u9).find(t=>u9[t]===e)??null;return{scale:e,loading:r,saving:i,error:a,setScale:d,preset:c}}();return(0,n.jsxs)("div",{className:"settings-row is-stacked settings-font-scale-row",children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsxs)("div",{className:"settings-row-copy",children:[(0,n.jsx)("span",{className:"settings-row-title",children:e("desktop.fontSize")}),(0,n.jsx)("span",{className:"settings-row-description",children:e("desktop.fontSizeDescription")})]}),(0,n.jsx)("span",{"aria-live":"polite",className:"settings-font-scale-value",children:i?"…":`${Math.round(100*pe(t))}%`})]}),(0,n.jsx)("div",{className:"settings-segmented",role:"group","aria-label":e("desktop.fontSize"),children:pr.map(s=>(0,n.jsx)("button",{type:"button","aria-pressed":1e-6>Math.abs(t-u9[s]),onClick:()=>r(u9[s]),children:e(pn[s])},s))}),(0,n.jsx)("input",{type:"range",min:.8,max:1.5,step:.025,value:t,"aria-label":e("desktop.fontSize"),onChange:e=>r(Number(e.target.value)),style:{width:"100%",accentColor:"var(--accent)",cursor:"pointer"}}),o&&(0,n.jsx)("span",{className:"settings-font-scale-error",children:o})]})}let pi={display:"flex",gap:6,flexWrap:"wrap"};function po(e,t,r){return{display:"inline-flex",alignItems:"center",gap:7,padding:"7px 14px",border:`1px solid ${e?"var(--ds-accent)":t?"var(--border-hover)":"var(--ds-border-default)"}`,borderRadius:"var(--radius-md)",background:e?"color-mix(in srgb, var(--accent) 12%, var(--bg))":t?"var(--ds-bg-hover)":"var(--bg-card)",color:e?"var(--ds-accent)":t?"var(--ds-text-primary)":"var(--ds-text-secondary)",fontSize:"var(--text-ui-base)",fontWeight:e?600:400,cursor:r?"not-allowed":"pointer",opacity:r?.5:1,transition:"border-color 0.15s, background 0.15s, color 0.15s",outline:"none",whiteSpace:"nowrap"}}function pa(e){let{icon:t,label:r,actions:s}=e;return(0,n.jsxs)("div",{className:"settings-content-section-label settings-section-label",children:[(0,n.jsx)("span",{className:"settings-section-label-icon",children:t}),(0,n.jsx)("span",{className:"settings-section-label-text",children:r}),s&&(0,n.jsx)("span",{className:"settings-section-label-actions",children:s})]})}let pl={display:"inline-flex",alignItems:"center",gap:6,padding:0,border:0,background:"transparent",color:"var(--ds-accent)",fontSize:"var(--text-ui-xs)",cursor:"pointer",whiteSpace:"nowrap"},pd={onMouseEnter:e=>{e.currentTarget.style.textDecoration="underline"},onMouseLeave:e=>{e.currentTarget.style.textDecoration="none"}};function pc(e){let{title:t,description:r,children:s}=e;return(0,n.jsxs)("section",{className:"settings-content-card settings-content-section",style:{padding:"var(--settings-content-section-padding, 20px 22px)",borderBottom:"var(--settings-content-section-divider, 1px solid var(--border))"},children:[(0,n.jsx)("h2",{className:"settings-content-section-title",style:{margin:0,fontSize:"var(--text-ui-base)",fontWeight:650,color:"var(--ds-text-primary)"},children:t}),(0,n.jsx)("p",{className:"settings-content-section-description",style:{margin:"5px 0 16px",fontSize:"var(--text-ui-sm)",lineHeight:1.5,color:"var(--ds-text-secondary)"},children:r}),s]})}function pu(e){let{depth:t}=e,r=t/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(--ds-text-muted)",strokeWidth:1+2*r,opacity:.2+.8*r}}),(0,n.jsx)("rect",{x:4,y:4,width:6,height:6,rx:1,style:{fill:"var(--ds-text-muted)",opacity:.05+.35*r}})]})}function pp(e){let{hasDark:t,hasLight:r,darkColor:s,lightColor:i,t:o}=e;return(0,n.jsxs)("span",{style:{display:"inline-flex",gap:3,alignItems:"center",flexShrink:0},children:[t&&(0,n.jsx)("span",{title:o("desktop.darkVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:s??"#7c6f64"}}),r&&(0,n.jsx)("span",{title:o("desktop.lightVariant"),style:{display:"inline-block",width:7,height:7,borderRadius:"50%",background:i??"#d5c4a1",border:"1px solid rgba(0,0,0,0.1)"}})]})}function ph(e){let{colors:t}=e;return(0,n.jsxs)("div",{"aria-hidden":"true",className:"theme-card-preview",style:{display:"flex",height:62,borderRadius:"var(--radius-sm)",overflow:"hidden",background:t.bg,border:`1px solid ${t.border}`},children:[(0,n.jsxs)("div",{style:{width:26,flexShrink:0,background:t.panel,borderRight:`1px solid ${t.border}`,padding:"5px 4px",display:"flex",flexDirection:"column",gap:3},children:[(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:t.accent,width:"70%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:t.muted,opacity:.5,width:"100%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:t.muted,opacity:.5,width:"82%"}}),(0,n.jsx)("span",{style:{height:3,borderRadius:2,background:t.muted,opacity:.5,width:"60%"}})]}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0,padding:"5px 6px",display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsxs)("div",{style:{alignSelf:"flex-end",maxWidth:"78%",borderRadius:"var(--radius-sm)",background:t.userBg,padding:"3px 5px",display:"flex",flexDirection:"column",gap:2},children:[(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:t.text,opacity:.75,width:34}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:t.text,opacity:.5,width:22}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:t.text,opacity:.7,width:"86%"}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:t.muted,opacity:.65,width:"64%"}})]}),(0,n.jsxs)("div",{style:{borderRadius:"var(--radius-xs)",background:t.toolBg,borderLeft:`2px solid ${t.accent}`,padding:"3px 5px",display:"flex",alignItems:"center",gap:4},children:[(0,n.jsx)("span",{style:{width:5,height:5,borderRadius:"50%",background:t.accent,flexShrink:0}}),(0,n.jsx)("span",{style:{height:2.5,borderRadius:2,background:t.muted,opacity:.7,width:"52%"}})]})]})]})}function px(e){let{active:t,hovered:r,disabled:s,displayName:i,colors:o,hasDark:a,hasLight:l,onClick:d,onHoverStart:c,onHoverEnd:u}=e,p=t?"var(--ds-accent)":r?"var(--border-hover)":"var(--ds-border-default)";return(0,n.jsxs)("button",{type:"button",onClick:d,disabled:s,onMouseEnter:c,onMouseLeave:u,onFocus:c,onBlur:u,"aria-pressed":t,className:`theme-card${t?" is-active":""}${r?" is-hovered":""}`,style:{display:"flex",flexDirection:"column",gap:7,padding:8,border:`1px solid ${p}`,borderRadius:"var(--radius-md)",background:r&&!t?"var(--ds-bg-hover)":"var(--bg-card)",cursor:s?"not-allowed":"pointer",opacity:s?.5:1,textAlign:"left",minWidth:0,transition:"border-color 0.15s, background 0.15s"},children:[o?(0,n.jsx)(ph,{colors:o}):(0,n.jsx)("div",{"aria-hidden":"true",className:"theme-card-preview theme-card-preview-empty",style:{height:62,borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",border:"1px solid var(--border)"}}),(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"var(--text-ui-sm)",fontWeight:t?600:400,color:t?"var(--ds-accent)":"var(--ds-text-primary)"},children:i}),(0,n.jsx)(pp,{hasDark:a,hasLight:l,darkColor:o?.accent,lightColor:o?.accent,t:()=>""}),t&&(0,n.jsx)(lQ.r,{size:13,weight:"fill",color:"var(--ds-accent)","aria-hidden":"true",style:{flexShrink:0}})]})]})}function pg(){let{mode:e,resolvedMode:t,themeName:r,setMode:i,setTheme:o,borderDepth:a,setBorderDepth:l}=eM(),{locale:d,setLocale:c,t:u}=(0,J.s)(),[p,h]=(0,s.useState)([]),[x,g]=(0,s.useState)(void 0),[f,m]=(0,s.useState)(!0),[v,y]=(0,s.useState)(null),[b,k]=(0,s.useState)(null),[j,w]=(0,s.useState)(!1),[S,C]=(0,s.useState)(!1),[z,T]=(0,s.useState)("");(0,s.useEffect)(()=>{fetch("/api/web-auth").then(e=>e.ok?e.json():null).then(e=>w(e?.enabled===!0)).catch(()=>{})},[]);let R=(0,s.useCallback)(async()=>{C(!0),T("");try{let e=await fetch("/api/web-auth",{method:"DELETE"});if(!e.ok)throw Error(`HTTP ${e.status}`);window.location.replace("/login")}catch{T(u("auth.logoutFailed"))}finally{C(!1)}},[u]);(0,s.useEffect)(()=>{let e=!1;return fetch(`/api/themes?mode=${t}`).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&(h(t.themeSets),g(t.defaultPreview))}).catch(()=>{}).finally(()=>{e||m(!1)}),()=>{e=!0}},[t]);let I=(0,s.useCallback)(e=>{y(e),o(e).finally(()=>y(null))},[o]),N=(0,s.useCallback)(e=>{k(e)},[]),M=(0,s.useCallback)(e=>{i(e)},[i]),E=(0,s.useCallback)(()=>{window.piDesktop?.openThemeFolder()},[]),$=(0,s.useCallback)(()=>{window.piDesktop?window.piDesktop.openThemeDocs():window.open("https://pi.dev/docs/latest/themes","_blank","noopener,noreferrer")},[]);return(0,n.jsxs)("div",{className:"settings-content-panel",style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{className:"settings-content-header",style:{padding:"var(--settings-content-header-padding, 18px 22px 14px)",borderBottom:"var(--settings-content-header-border, 1px solid var(--border))"},children:(0,n.jsx)("h1",{className:"settings-content-title",style:{margin:0,fontSize:16,fontWeight:700,color:"var(--ds-text-primary)"},children:u("desktop.display")})}),(0,n.jsxs)(pc,{title:u("desktop.theme"),description:u("desktop.themeDescription"),children:[(0,n.jsx)(pa,{icon:(0,n.jsx)(u3.p,{size:14,weight:"fill"}),label:u("desktop.colorScheme"),actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{type:"button",onClick:E,style:pl,...pd,children:[(0,n.jsx)(u8.N,{size:12,weight:"regular","aria-hidden":"true"}),u("desktop.openThemeFolder")]}),(0,n.jsxs)("button",{type:"button",onClick:$,style:pl,...pd,children:[(0,n.jsx)(u7.B,{size:12,weight:"regular","aria-hidden":"true"}),u("desktop.learnPiThemes")]})]})}),f?(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)"},children:u("desktop.loadingThemes")}):(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(150px, 1fr))",gap:10},children:[(0,n.jsx)(px,{active:""===r,hovered:"__default__"===b,disabled:null!==v,displayName:u("desktop.defaultTheme"),colors:x,hasDark:!0,hasLight:!0,onClick:()=>I(""),onHoverStart:()=>N(""),onHoverEnd:()=>N(null)}),p.map(e=>(0,n.jsx)(px,{active:r===e.name,hovered:b===e.name,disabled:null!==v,displayName:e.displayName,colors:e.preview,hasDark:e.hasDark,hasLight:e.hasLight,onClick:()=>I(e.name),onHoverStart:()=>N(e.name),onHoverEnd:()=>N(null)},e.name))]}),(0,n.jsxs)("div",{style:{marginTop:20},children:[(0,n.jsx)(pa,{icon:(0,n.jsx)(pu,{depth:a}),label:`${u("desktop.borderVisibility")} (${a})`}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",flexShrink:0},children:u("desktop.borderSubtle")}),(0,n.jsx)("input",{type:"range",min:0,max:100,step:1,value:a,onChange:e=>l(Number(e.target.value)),style:{flex:1,accentColor:"var(--ds-accent)",height:6,cursor:"pointer"}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",flexShrink:0},children:u("desktop.borderBold")})]}),(0,n.jsx)("div",{style:{marginTop:10,display:"flex",gap:10},children:[0,25,50,75,100].map(e=>{let t=a===e,r=e<=50?`color-mix(in srgb, var(--border-orig) ${2*e}%, var(--bg) ${100-2*e}%)`:`color-mix(in srgb, var(--border-orig) ${100-(e-50)*2}%, var(--text) ${(e-50)*2}%)`;return(0,n.jsx)("div",{onClick:()=>l(e),style:{width:28,height:20,border:`2px solid ${t?"var(--ds-accent)":r}`,borderRadius:"var(--radius-sm)",background:"var(--bg-card)",cursor:"pointer",transition:"border-color 0.1s"}},e)})})]}),(0,n.jsxs)("div",{style:{marginTop:20},children:[(0,n.jsx)(pa,{icon:"dark"===t?(0,n.jsx)(O.A,{size:14,weight:"fill"}):(0,n.jsx)(D.b,{size:14,weight:"fill"}),label:u("desktop.appearanceMode")}),(0,n.jsx)("div",{style:pi,children:[{value:"light",icon:(0,n.jsx)(D.b,{size:15,weight:"light"===e?"fill":"regular"})},{value:"dark",icon:(0,n.jsx)(O.A,{size:15,weight:"dark"===e?"fill":"regular"})},{value:"system",icon:(0,n.jsx)(u_.V,{size:15,weight:"system"===e?"fill":"regular"})}].map(t=>{let r=e===t.value;return(0,n.jsxs)("button",{type:"button",onClick:()=>M(t.value),style:po(r,b===`mode:${t.value}`),onMouseEnter:()=>k(`mode:${t.value}`),onMouseLeave:()=>k(null),children:[t.icon,u(`desktop.${t.value}`)]},t.value)})})]}),!f&&0===p.length&&(0,n.jsxs)("p",{style:{margin:"14px 0 0",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",lineHeight:1.5},children:[u("desktop.noCustomThemes")," ",u("desktop.noCustomThemesHint")," ",(0,n.jsx)("code",{style:{fontSize:"var(--text-ui-xs)",background:"var(--bg-secondary)",padding:"1px 5px",borderRadius:"var(--radius-xs)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/themes/*.json"})," ",u("desktop.noCustomThemesHint2")]})]}),(0,n.jsx)(pc,{title:u("desktop.appearance"),description:u("desktop.appearanceDescription"),children:(0,n.jsx)(ps,{})}),(0,n.jsx)(pc,{title:u("desktop.language"),description:u("desktop.languageDescription"),children:(0,n.jsx)("div",{style:pi,children:["en","zh-CN"].map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>c("zh-CN"===e?"zh-CN":"en"),style:po("zh-CN"===e?"zh-CN"===d:"zh-CN"!==d,b===`lang:${e}`),onMouseEnter:()=>k(`lang:${e}`),onMouseLeave:()=>k(null),children:"en"===e?u("desktop.english"):u("desktop.chinese")},e))})}),j&&(0,n.jsxs)(pc,{title:u("auth.prompt"),description:u("desktop.accessDescription"),children:[(0,n.jsx)("div",{style:pi,children:(0,n.jsx)("button",{type:"button",disabled:S,onClick:()=>void R(),style:po(!1,"logout"===b),onMouseEnter:()=>k("logout"),onMouseLeave:()=>k(null),children:S?u("auth.loggingOut"):u("auth.logOut")})}),z&&(0,n.jsx)("p",{role:"alert",style:{margin:"8px 0 0",color:"var(--status-error)",fontSize:"var(--text-ui-sm)"},children:z})]})]})}function pf(e){let{children:t}=e;return(0,n.jsx)("div",{className:"settings-panel is-bare settings-card",children:t})}function pm(e){let{children:t}=e;return(0,n.jsx)("div",{className:"settings-row",children:t})}function pv(e){let{children:t}=e;return(0,n.jsx)("div",{className:"settings-row is-last",children:t})}function py(e){let{children:t}=e;return(0,n.jsx)("div",{className:"settings-row is-stacked settings-note",style:{gap:8,minWidth:0,overflowWrap:"anywhere"},children:t})}let pb="__inherit__";function pk(){let{t:e}=(0,J.s)(),{settings:t,setKit:r,setScope:i,setSlot:o,setLayout:a,setSidebarToggle:l,reset:c,resolveSlot:u}=cn(),[h,x]=(0,s.useState)(!1),[g,f]=(0,s.useState)(!1),m=(0,s.useMemo)(()=>[{id:pb,label:e("uiKit.followGlobal")},{id:"pi",label:e("uiKit.kitPi")},{id:"claude",label:e("uiKit.kitClaude")}],[e]),v=(0,s.useMemo)(()=>[{id:"compact",label:e("uiKit.layoutCompact")},{id:"standard",label:e("uiKit.layoutStandard")},{id:"comfortable",label:e("uiKit.layoutComfortable")}],[e]),y=(0,s.useMemo)(()=>[{id:"sidebar",label:e("uiKit.sidebarToggleSidebar")},{id:"titlebar",label:e("uiKit.sidebarToggleTitlebar")}],[e]),b={primitives:m,overlay:m,shell:m,conversation:m};return(0,n.jsxs)("div",{className:"flex flex-col",style:{gap:"var(--cds-gap-3, 10px)"},children:[(0,n.jsx)(py,{children:e("uiKit.description")}),(0,n.jsx)(pf,{children:(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"flex w-full flex-col",style:{gap:6,minWidth:0},children:[(0,n.jsxs)("div",{className:"flex items-baseline justify-between",style:{gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{className:"text-sm text-text",children:e("uiKit.title")}),(0,n.jsx)("span",{className:"text-xs text-text-muted",children:e("uiKit.switchInTitleBar")})]}),(0,n.jsxs)("div",{className:"flex items-center",style:{gap:8,flexWrap:"wrap",minWidth:0},children:[(0,n.jsx)("span",{className:"text-xs",style:{flexShrink:0,whiteSpace:"nowrap",padding:"2px 8px",borderRadius:999,background:"var(--cds-fill-secondary, var(--bg-hover))",color:"var(--cds-text-primary, var(--text))",fontWeight:600},children:"claude"===t.kit?e("uiKit.kitClaude"):e("uiKit.kitPi")}),(0,n.jsx)("span",{className:"text-xs text-text-dim",children:"claude"===t.kit?e("uiKit.kitClaudeDescription"):e("uiKit.kitPiDescription")})]})]})})}),(0,n.jsx)("div",{className:"flex flex-col",style:{gap:6},children:d.map(r=>(0,n.jsx)(pf,{children:(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"flex w-full flex-col",style:{gap:8,minWidth:0},children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-baseline",style:{gap:6},children:[(0,n.jsx)("span",{className:"text-sm text-text",children:e(`uiKit.scope${pj(r)}`)}),(0,n.jsx)("span",{className:"text-xs text-text-dim",children:e(`uiKit.scope${pj(r)}Description`)})]}),(0,n.jsx)(ca,{ariaLabel:e(`uiKit.scope${pj(r)}`),items:b[r],value:t.scopes[r]??pb,onChange:e=>i(r,e===pb?null:e)})]})})},r))}),(0,n.jsxs)(pf,{children:[(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"flex w-full items-center justify-between",style:{gap:12,flexWrap:"wrap"},children:[(0,n.jsx)("span",{className:"text-sm text-text",children:e("uiKit.layout")}),(0,n.jsx)(ca,{ariaLabel:e("uiKit.layout"),items:v,value:t.layout,onChange:e=>a(e)})]})}),(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"flex w-full items-center justify-between",style:{gap:12,flexWrap:"wrap"},children:[(0,n.jsx)("span",{className:"text-sm text-text",children:e("uiKit.sidebarToggle")}),(0,n.jsx)(ca,{ariaLabel:e("uiKit.sidebarToggle"),items:y,value:t.sidebarToggle,onChange:e=>l(e)})]})})]}),(0,n.jsx)(pf,{children:(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"flex w-full flex-col",style:{gap:10,minWidth:0},children:[(0,n.jsx)("span",{className:"text-xs uppercase tracking-wider text-text-muted",children:e("uiKit.preview")}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center",style:{gap:8},children:[(0,n.jsx)(co,{variant:"primary",size:"sm",children:e("uiKit.kitClaude")}),(0,n.jsx)(co,{variant:"secondary",size:"sm",children:e("uiKit.kitPi")}),(0,n.jsx)(co,{variant:"ghost",size:"sm",children:e("uiKit.reset")}),(0,n.jsx)(cd,{tone:"running",pulse:!0,label:e("uiKit.kitClaude")}),(0,n.jsx)(cd,{tone:"success",label:e("uiKit.kitPi")}),(0,n.jsx)(cl,{checked:"claude"===t.kit,onChange:e=>r(e?"claude":"pi"),ariaLabel:e("uiKit.kitClaude")})]})]})})}),(0,n.jsx)(pf,{children:(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"flex w-full flex-col",style:{gap:8,minWidth:0},children:[(0,n.jsxs)("button",{type:"button",className:"flex items-center justify-between text-left text-sm text-text","aria-expanded":h,onClick:()=>x(e=>!e),children:[(0,n.jsx)("span",{children:e("uiKit.advanced")}),(0,n.jsx)("span",{className:"text-xs text-text-dim",children:h?"▾":"▸"})]}),h&&(0,n.jsx)("div",{className:"flex flex-col",style:{gap:6},children:d.map(r=>(0,n.jsxs)("div",{className:"flex flex-col",style:{gap:4},children:[(0,n.jsx)("span",{className:"text-xs uppercase tracking-wider text-text-dim",children:e(`uiKit.scope${pj(r)}`)}),p[r].map(r=>{let s=d6[r],i=u(r);return(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{gap:8,flexWrap:"wrap"},children:[(0,n.jsxs)("code",{className:"text-xs text-text-muted",title:s?e("uiKit.slotPending"):void 0,style:{fontFamily:"var(--font-mono)",minWidth:0},children:[r,s?" *":""]}),(0,n.jsx)(ca,{ariaLabel:r,size:"sm",items:m,value:t.slots[r]??pb,onChange:e=>o(r,e===pb?null:e)}),(0,n.jsx)("span",{className:"text-[10px] text-text-dim",children:i})]},r)})]},r))})]})})}),(0,n.jsxs)("div",{className:"flex items-center justify-between",style:{gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{className:"text-xs text-text-dim",children:e("uiKit.settingsPinned")}),(0,n.jsx)(co,{variant:"secondary",size:"sm",onClick:()=>{c(),f(!0),window.setTimeout(()=>f(!1),1600)},children:g?e("uiKit.resetDone"):e("uiKit.reset")})]})]})}function pj(e){return e.charAt(0).toUpperCase()+e.slice(1)}let pw=[{value:"normal",labelKey:"modes.collabNormal"},{value:"plan",labelKey:"modes.collabPlan"},{value:"goal",labelKey:"modes.collabGoal"}],pS=[{value:"economy",labelKey:"modes.tokenEconomy"},{value:"full",labelKey:"modes.tokenFull"},{value:"delivery",labelKey:"modes.tokenDelivery"}],pC=[{value:"ask",labelKey:"modes.approvalAsk"},{value:"auto",labelKey:"modes.approvalAuto"},{value:"yolo",labelKey:"modes.approvalYolo"}];function pz(e){let{options:t,value:r,onChange:s,disabled:i,accentFor:o}=e,{t:a}=(0,J.s)();return(0,n.jsx)("div",{role:"radiogroup",className:"settings-segmented settings-segmented-radio",children:t.map(e=>{let t=e.value===r,l=!!o?.(e.value);return(0,n.jsx)("button",{type:"button",role:"radio","aria-checked":t,disabled:i,onClick:()=>{e.value!==r&&s(e.value)},"data-tone":l?"danger":void 0,children:a(e.labelKey)},e.value)})})}function pT(){let{t:e}=(0,J.s)(),[t,r]=(0,s.useState)({tasksBoard:!0}),[i,o]=(0,s.useState)(null),[a,l]=(0,s.useState)(!1),[d,c]=(0,s.useState)(!1);(0,s.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();r(t=>({...t,...e}))}if(!e&&n.ok){let e=await n.json();o({collaborationMode:t5(e.collaborationMode),tokenMode:t3(e.tokenMode),toolApprovalMode:t8(e.toolApprovalMode),permissionRules:e.permissionRules??{allow:[],ask:[],deny:[]}})}e||l(!0)}catch{}})(),()=>{e=!0}},[]);let u=(0,s.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();r(t=>({...t,...e.features})),window.dispatchEvent(new CustomEvent("pi:features-changed"))}}catch{}finally{c(!1)}},[]),p=(0,s.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();o(t=>t?{...t,collaborationMode:t5(e.modes?.collaborationMode??t.collaborationMode),tokenMode:t3(e.modes?.tokenMode??t.tokenMode),toolApprovalMode:t8(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",{className:"settings-content-panel settings-content-stack",style:{flex:1,overflow:"auto",minWidth:0,padding:"20px 22px",display:"flex",flexDirection:"column",gap:16},children:(0,n.jsxs)("div",{className:"settings-content-card-host",style:{display:"flex",flexDirection:"column",gap:16},children:[a?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(lB,{children:(0,n.jsx)(pv,{children:(0,n.jsx)(u1,{checked:t.tasksBoard,onChange:e=>void u(e),label:(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,n.jsx)(U.x,{size:14,"aria-hidden":"true"}),e("desktop.featuresTasksBoard"),(0,n.jsx)("span",{style:{borderRadius:"var(--radius-full)",background:"rgba(37,99,235,0.12)",color:"var(--ds-accent)",padding:"1px 7px",fontSize:"var(--text-ui-xs)",fontWeight:700,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Beta"})]}),description:e("desktop.featuresTasksBoardDesc")})})}),i&&(0,n.jsxs)(lB,{children:[(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"settings-content-row",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:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:e("desktop.featuresCollabDefault")}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",marginTop:2},children:e("desktop.featuresCollabDefaultDesc")})]}),(0,n.jsx)(pz,{options:pw,value:i.collaborationMode,onChange:e=>void p({collaborationMode:e}),disabled:d})]})}),(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"settings-content-row",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:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:e("desktop.featuresTokenDefault")}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",marginTop:2},children:e("desktop.featuresTokenDefaultDesc")})]}),(0,n.jsx)(pz,{options:pS,value:i.tokenMode,onChange:e=>void p({tokenMode:e}),disabled:d})]})}),(0,n.jsx)(pv,{children:(0,n.jsxs)("div",{className:"settings-content-row",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:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:e("desktop.featuresApprovalDefault")}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",marginTop:2},children:e("desktop.featuresApprovalDefaultDesc")})]}),(0,n.jsx)(pz,{options:pC,value:i.toolApprovalMode,onChange:e=>void p({toolApprovalMode:e}),disabled:d,accentFor:e=>"yolo"===e?"var(--accent-red, #ef4444)":void 0})]})})]})]}):(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:e("desktop.featuresLoading")}),(0,n.jsx)(py,{children:e("desktop.featuresDesc")}),d&&(0,n.jsx)("div",{style:{padding:"0 2px",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)"},children:e("desktop.featuresSaving")})]})})}var pR=r(76553);function pI(e){let{open:t,onClose:r,children:i}=e,[o,a]=(0,s.useState)(!1),[l,d]=(0,s.useState)(!1);return(G(t,r),(0,s.useEffect)(()=>{if(t)d(!0),requestAnimationFrame(()=>requestAnimationFrame(()=>a(!0)));else{a(!1);let e=setTimeout(()=>d(!1),250);return()=>clearTimeout(e)}},[t]),l)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{"aria-hidden":"true",style:{position:"fixed",inset:0,zIndex:1001,background:o?"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:o?"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(--ds-border-default)"}})}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",minHeight:0},children:i})]})]}):null}function pN(e){let{onSessionsChanged:t}=e,{t:r}=(0,J.s)(),i=tu(),[o,a]=(0,s.useState)(null),[l,d]=(0,s.useState)([]),[c,u]=(0,s.useState)([]),[p,h]=(0,s.useState)(new Set),[x,g]=(0,s.useState)(null),[f,m]=(0,s.useState)({imported:0,skipped:0,errors:0,total:0,done:!1}),[v,y]=(0,s.useState)([]),[b,k]=(0,s.useState)(!1),[j,w]=(0,s.useState)({done:0,total:0}),S=(0,s.useRef)(new Map),C=(0,s.useRef)(!1),[z,T]=(0,s.useState)(!1),[R,I]=(0,s.useState)(null),[N,M]=(0,s.useState)(!1),E=(0,s.useCallback)(async()=>{T(!0),I(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}`);d(t.sources),t.reasonix?.available&&(u(t.reasonix.projects),a("reasonix"))}catch(e){I(e instanceof Error?e.message:String(e))}finally{T(!1)}},[]),[$,L]=(0,s.useState)(!1);(0,s.useEffect)(()=>{$||(L(!0),E())},[$,E]);let W=(0,s.useCallback)(async()=>{if(0!==p.size&&o){T(!0),I(null);try{let e=await fetch("/api/import/execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:o,projects:[...p]})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);g(t.jobId)}catch(e){I(e instanceof Error?e.message:String(e))}finally{T(!1)}}},[o,p]);(0,s.useEffect)(()=>{let e;if(!x)return;let r=!0,n=async()=>{if(r)try{let s=await fetch(`/api/import/status?jobId=${encodeURIComponent(x)}`),i=await s.json();if(!r)return;m({imported:i.imported??0,skipped:i.skipped??0,errors:i.errors??0,total:i.total??0,done:i.done??!1}),i.done&&i.sessionIds&&(y(i.sessionIds),t?.()),i.done||(e=setTimeout(n,800))}catch{r&&(e=setTimeout(n,2e3))}};return n(),()=>{r=!1,clearTimeout(e)}},[x,t]);let A=(0,s.useCallback)(async()=>{if(b){for(let[e,t]of(C.current=!0,S.current))t.abort(),eJ(e);return}if(0===v.length)return;C.current=!1,k(!0),w({done:0,total:v.length});let e=0,r=0,n=async()=>{for(;!C.current;){let t=v[e++];if(!t)return;let n=new AbortController;S.current.set(t,n);try{await eV(t,n.signal)}catch{}finally{S.current.delete(t),w({done:r+=1,total:v.length})}}};await Promise.all(Array.from({length:Math.min(2,v.length)},n)),S.current.clear(),k(!1),t?.()},[b,v,t]);if(f.done&&v.length>0)return(0,n.jsxs)("div",{className:"settings-content-panel settings-content-card settings-content-stack",style:{padding:"18px 22px",display:"flex",flexDirection:"column",gap:14,background:"var(--settings-content-card-bg, transparent)",border:"var(--settings-content-card-border, none)"},children:[(0,n.jsxs)("div",{className:"settings-content-section-header",style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)(lQ.r,{size:20,weight:"fill",style:{color:"var(--status-success)"}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:r("desktop.importDone")??"导入完成"})]}),(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.6},children:[r("desktop.importedSummary",{imported:f.imported})??`成功导入 ${f.imported} 个会话`,f.skipped>0&&(0,n.jsx)("span",{style:{marginLeft:8},children:r("desktop.importSkippedCount",{skipped:f.skipped})??`,${f.skipped} 个跳过`}),f.errors>0&&(0,n.jsx)("span",{style:{marginLeft:8,color:"var(--status-error)"},children:r("desktop.importErrorsCount",{errors:f.errors})??`,${f.errors} 个失败`})]}),(0,n.jsxs)("button",{type:"button",onClick:A,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--ds-accent)",border:"none",borderRadius:"var(--radius-sm)",color:"var(--accent-fg)",fontSize:"var(--text-ui-sm)",fontWeight:600,cursor:"pointer",alignSelf:"flex-start"},children:[b?(0,n.jsx)(tm.y,{size:14,style:{animation:"spin 1s linear infinite"}}):(0,n.jsx)(pR.o,{size:15}),b?`${r("desktop.importGeneratingTitles")??"正在生成标题…"} (${j.done}/${j.total}) — ${r("desktop.stop")??"停止"}`:r("desktop.importGenerateTitles")??"为导入的会话生成标题"]}),(0,n.jsx)("button",{type:"button",onClick:()=>{g(null),m({imported:0,skipped:0,errors:0,total:0,done:!1}),y([]),k(!1),w({done:0,total:0})},style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)",cursor:"pointer",alignSelf:"flex-start"},children:r("desktop.importAgain")??"再次导入"})]});let P=(0,n.jsxs)("div",{className:"settings-content-panel settings-content-stack",style:{padding:i?"12px 18px":"18px 22px",display:"flex",flexDirection:"column",gap:14},children:[R&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:"var(--text-ui-sm)",color:"var(--status-error)",lineHeight:1.5},children:[(0,n.jsx)(tk.N,{size:14,style:{flexShrink:0,marginTop:1}}),(0,n.jsx)("span",{children:R})]}),!x&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.6},children:r("desktop.importSessionsDesc")??"从其他 AI 编码工具导入历史对话记录到 pi-web。目前支持 Reasonix,更多工具陆续支持中。"}),(0,n.jsx)("div",{className:"settings-content-stack",style:{display:"flex",flexDirection:"column",gap:6},children:l.map(e=>(0,n.jsxs)("label",{className:"settings-content-card settings-content-row",style:{display:"flex",alignItems:"center",gap:10,padding:"10px 14px",border:"var(--settings-content-card-border, 1px solid var(--border))",borderRadius:"var(--radius-md)",cursor:"available"===e.status?"pointer":"default",background:o===e.key?"var(--settings-content-card-selected-bg, var(--bg-selected))":"var(--settings-content-card-bg, 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:o===e.key,disabled:"available"!==e.status,onChange:()=>a(e.key)}),(0,n.jsxs)("div",{style:{flex:1},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:e.label}),"coming-soon"===e.status&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",marginTop:1},children:r("desktop.comingSoon")??"即将支持"})]}),"reasonix"===e.key&&c.length>0&&(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)"},children:[c.length," ",r("desktop.projects")??"个项目"," \xb7 ",c.reduce((e,t)=>e+t.sessions,0)," ",r("desktop.sessions")??"会话"]})]},e.key))}),"reasonix"===o&&c.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:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-primary)"},children:r("desktop.importSelectProjects")??"选择要导入的项目"}),(0,n.jsx)("button",{type:"button",onClick:()=>h(new Set(c.map(e=>e.name))),style:pM,children:r("desktop.importSelectAll")??"全选"}),(0,n.jsx)("button",{type:"button",onClick:()=>h(new Set),style:pM,children:r("desktop.importDeselectAll")??"取消全选"})]}),(0,n.jsx)("div",{className:"settings-content-stack",style:{display:"flex",flexDirection:"column",gap:4},children:c.map(e=>(0,n.jsxs)("label",{className:"settings-content-card settings-content-row",style:{display:"flex",alignItems:"center",gap:10,padding:"8px 12px",border:"var(--settings-content-card-border, 1px solid var(--border))",borderRadius:"var(--radius-sm)",cursor:"pointer",background:p.has(e.name)?"var(--settings-content-card-selected-bg, var(--bg-selected))":"var(--settings-content-card-bg, transparent)",transition:"background 0.12s"},children:[(0,n.jsx)("input",{type:"checkbox",checked:p.has(e.name),onChange:()=>{var t;return t=e.name,void h(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})}}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:500,color:"var(--ds-text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",marginTop:2},children:[e.sessions," ",r("desktop.sessions")??"会话",e.matched&&(0,n.jsxs)("span",{style:{marginLeft:8,color:"var(--ds-accent)"},children:["→ ",r("desktop.importMerged")??"合并到现有项目",e.existingCount>0&&` (${r("desktop.importExistingCount",{count:e.existingCount})??`${e.existingCount} 个已有`})`]}),!e.matched&&(0,n.jsxs)("span",{style:{marginLeft:8,color:"var(--ds-text-secondary)"},children:["→ ",r("desktop.importNewProject")??"新建项目"]})]})]})]},e.name))}),(0,n.jsx)("button",{type:"button",onClick:W,disabled:z||0===p.size,style:{display:"inline-flex",alignItems:"center",gap:7,padding:"8px 14px",background:"var(--ds-accent)",border:"none",borderRadius:"var(--radius-sm)",color:"var(--accent-fg)",fontSize:"var(--text-ui-sm)",fontWeight:600,cursor:0===p.size?"not-allowed":"pointer",alignSelf:"flex-start",opacity:0===p.size?.5:1},children:z?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tm.y,{size:14,style:{animation:"spin 1s linear infinite"}})," ",r("desktop.importing")??"导入中…"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(tt.z,{size:15})," ",r("desktop.importStart")??"开始导入"]})})]}),"reasonix"===o&&0===c.length&&!z&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",padding:"12px 0"},children:r("desktop.importNoData")??"未找到 Reasonix 数据。请确认 ~/.reasonix/projects/ 目录存在且包含会话文件。"})]}),x&&!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:"var(--text-ui-sm)",color:"var(--ds-text-primary)"},children:[(0,n.jsx)(tm.y,{size:14,style:{animation:"spin 1s linear infinite"}}),r("desktop.importing")??"导入中…"]}),(0,n.jsx)("div",{style:{height:6,borderRadius:"var(--radius-xs)",background:"var(--ds-bg-secondary)",overflow:"hidden"},children:(0,n.jsx)("div",{style:{height:"100%",borderRadius:"var(--radius-xs)",background:"var(--ds-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:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:[f.imported+f.skipped+f.errors," / ",f.total,f.skipped>0&&` \xb7 ${r("desktop.importSkippedCount",{skipped:f.skipped})??`${f.skipped} 跳过`}`]})]})]});return i?(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(--ds-bg-secondary)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",cursor:"pointer"},children:[(0,n.jsx)(tt.z,{size:16}),(0,n.jsx)("span",{style:{fontWeight:500},children:r("desktop.importSessions")??"导入会话"})]}),(0,n.jsxs)(pI,{open:N,onClose:()=>M(!1),children:[(0,n.jsxs)("div",{className:"settings-content-header",style:{padding:"4px 18px 14px",borderBottom:"var(--settings-content-header-border, 1px solid var(--border))",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--ds-text-primary)"},children:r("desktop.importSessions")??"导入会话"}),(0,n.jsx)("button",{onClick:()=>M(!1),style:pE,children:(0,n.jsx)(eP.X,{size:18})})]}),P]})]}):P}let pM={background:"none",border:"none",color:"var(--ds-accent)",fontSize:"var(--text-ui-xs)",cursor:"pointer",padding:"2px 4px"},pE={background:"none",border:"none",color:"var(--ds-text-secondary)",cursor:"pointer",padding:4,display:"flex"};function p$(e){return"stdio"===e||"sse"===e||"streamable-http"===e?e:"http"===e?"streamable-http":"stdio"}let pL=/^[a-zA-Z0-9_-]+$/,pW=new Set(["eager","lazy"]);function pA(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function pP(e){return pA(e)&&Object.values(e).every(e=>"string"==typeof e)}let pF="deepseek-vision",pD={padding:"7px 9px",background:"var(--ds-bg-secondary)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",fontFamily:"var(--font-mono)",width:"100%",boxSizing:"border-box"};function pO(){return{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"}}let pH={padding:"7px 12px",border:"none",borderRadius:"var(--radius-sm)",background:"var(--ds-accent)",color:"var(--accent-fg)",cursor:"pointer",fontSize:"var(--text-ui-sm)"};function pB(e){let{sessionId:t}=e,{t:r}=(0,J.s)(),[i,o]=(0,s.useState)(!1),[a,l]=(0,s.useState)(null),[d,c]=(0,s.useState)(!1),[u,p]=(0,s.useState)(null),[h,x]=(0,s.useState)(!1),[g,f]=(0,s.useState)({}),[m,v]=(0,s.useState)(""),[y,b]=(0,s.useState)(""),[k,j]=(0,s.useState)("eager"),[w,S]=(0,s.useState)(!1),[C,z]=(0,s.useState)(null),[T,R]=(0,s.useState)(!1),[I,N]=(0,s.useState)(!1),[M,E]=(0,s.useState)({provider:"custom",baseUrl:"",apiKey:"",model:"",maxTokens:4096,hasApiKey:!1}),[$,L]=(0,s.useState)(""),[W,A]=(0,s.useState)(""),[P,F]=(0,s.useState)(!1),[D,O]=(0,s.useState)(null),[H,B]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=!1;return(async()=>{l(null);try{let[t,r]=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 s=await r.json();if(!r.ok||s.error)throw Error(s.error??`HTTP ${r.status}`);if(e)return;f(n.mcpServers??{}),v(n.filePath);let i=(n.mcpServers??{})[pF];b(i?.command??""),j(i?.lifecycle==="lazy"?"lazy":"eager"),E({provider:s.provider,baseUrl:s.baseUrl,apiKey:"",model:s.model,maxTokens:s.maxTokens,hasApiKey:s.hasApiKey}),s.path&&A(s.path),o(!0)}catch(t){e||l(t instanceof Error?t.message:String(t))}})(),()=>{e=!0}},[]);let U=(0,s.useCallback)(async()=>{if(!y.trim())return void z(r("desktop.mcpVisionCommandRequired"));S(!0),z(null),R(!1),N(!1);try{let e=g[pF],t={...g,[pF]:{...e??{},command:y.trim(),args:Array.isArray(e?.args)?e.args:[],transport:"stdio",lifecycle:k}},r=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:t})}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);f(t),R(!0)}catch(e){z(e instanceof Error?e.message:String(e))}finally{S(!1)}},[g,y,k,r]),_=(0,s.useCallback)(async()=>{S(!0),z(null),R(!1),N(!1);try{let e={...g};delete e[pF];let t=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:e})}),r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);f(e),b(""),j("eager"),N(!0)}catch(e){z(e instanceof Error?e.message:String(e))}finally{S(!1)}},[g]),K=(0,s.useCallback)(async()=>{F(!0),O(null),B(!1);try{let e=await fetch("/api/vision-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...M,...$?{apiKey:$}:{}})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);E({...t,apiKey:"",hasApiKey:t.hasApiKey}),L(""),B(!0)}catch(e){O(e instanceof Error?e.message:String(e))}finally{F(!1)}},[M,$]),q=(0,s.useCallback)(async()=>{if(t){c(!0),p(null),x(!1);try{let e=await fetch("/api/mcp/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:t,name:pF})}),r=await e.json();if(!e.ok||r.error)throw Error(r.error??`HTTP ${e.status}`);x(!0)}catch(e){p(e instanceof Error?e.message:String(e))}finally{c(!1)}}},[t]),V=!!g[pF];return(0,n.jsxs)(pf,{children:[(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:7,padding:"12px 0"},children:[(0,n.jsx)(nq.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:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:r("desktop.mcpVisionTitle")}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 6px",borderRadius:"var(--radius-xs)",background:V?"rgba(37,99,235,0.12)":"rgba(245,158,11,0.12)",color:V?"var(--ds-accent)":"var(--status-warning)",textTransform:"capitalize"},children:V?r("desktop.mcpVisionRegistered"):r("desktop.mcpVisionNotRegistered")})]}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",marginTop:2},children:r("desktop.mcpVisionDesc")})]})]})}),i?a?(0,n.jsx)(pv,{children:(0,n.jsx)("div",{style:{padding:"8px 0",fontSize:"var(--text-ui-sm)",color:"var(--status-error)"},children:a})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(pm,{children:(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-primary)",padding:"10px 0 2px"},children:r("desktop.mcpVisionRegistration")})}),(0,n.jsx)(pm,{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:pO(),children:[r("desktop.mcpVisionCommand")," *"]}),(0,n.jsx)("input",{value:y,onChange:e=>b(e.target.value),placeholder:"/path/to/deepseek-vision-mcp",style:pD}),(0,n.jsx)("span",{style:pO(),children:r("desktop.mcpVisionLifecycle")}),(0,n.jsxs)("select",{value:k,onChange:e=>j(e.target.value),style:{...pD,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:pO(),children:r("desktop.mcpVisionTransport")}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)",padding:"7px 0"},children:r("desktop.mcpVisionTransportFixed")})]})}),(0,n.jsx)(pm,{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:{...pH,cursor:w?"wait":"pointer"},children:w?r("desktop.saving"):r("desktop.mcpVisionSaveReg")}),V&&(0,n.jsx)("button",{type:"button",onClick:()=>void _(),disabled:w,title:r("desktop.mcpVisionRemove"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--status-error)",cursor:w?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)"},children:r("desktop.mcpVisionRemove")}),T&&(0,n.jsx)("span",{style:{color:"var(--status-success)",fontSize:"var(--text-ui-sm)"},children:r("desktop.mcpVisionSavedReg")}),I&&(0,n.jsx)("span",{style:{color:"var(--status-success)",fontSize:"var(--text-ui-sm)"},children:r("desktop.mcpVisionRemoved")}),C&&(0,n.jsx)("span",{style:{color:"var(--status-error)",fontSize:"var(--text-ui-sm)"},children:C})]})}),(0,n.jsx)(pm,{children:(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-primary)",padding:"10px 0 2px"},children:r("desktop.mcpVisionModelConfig")})}),(0,n.jsx)(pm,{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:pO(),children:r("desktop.mcpVisionProvider")}),(0,n.jsx)("input",{value:M.provider,onChange:e=>E(t=>({...t,provider:e.target.value})),style:pD}),(0,n.jsx)("span",{style:pO(),children:r("desktop.mcpVisionBaseUrl")}),(0,n.jsx)("input",{value:M.baseUrl,onChange:e=>E(t=>({...t,baseUrl:e.target.value})),style:pD}),(0,n.jsx)("span",{style:pO(),children:r("desktop.mcpVisionApiKey")}),(0,n.jsx)("input",{type:"password",value:$,onChange:e=>L(e.target.value),placeholder:M.hasApiKey?"••••••••":"API key",style:pD}),(0,n.jsx)("span",{style:pO(),children:r("desktop.mcpVisionModel")}),(0,n.jsx)("input",{value:M.model,onChange:e=>E(t=>({...t,model:e.target.value})),style:pD}),(0,n.jsx)("span",{style:pO(),children:r("desktop.mcpVisionMaxTokens")}),(0,n.jsx)("input",{type:"number",min:1,value:M.maxTokens,onChange:e=>E(t=>({...t,maxTokens:Number(e.target.value)||1})),style:pD})]})}),(0,n.jsx)(pv,{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 K(),disabled:P,style:{...pH,cursor:P?"wait":"pointer"},children:P?r("desktop.saving"):r("desktop.mcpVisionSaveModel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void q(),disabled:d||!t||!V,title:t?r("desktop.mcpVisionRestartTitle"):r("desktop.mcpVisionRestartNoSession"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:!d&&t&&V?"pointer":"not-allowed",fontSize:"var(--text-ui-sm)",opacity:!d&&t&&V?1:.5},children:d?r("desktop.mcpVisionRestarting"):r("desktop.mcpVisionRestart")}),H&&(0,n.jsx)("span",{style:{color:"var(--status-success)",fontSize:"var(--text-ui-sm)"},children:r("desktop.mcpVisionSavedModel")}),h&&(0,n.jsx)("span",{style:{color:"var(--status-success)",fontSize:"var(--text-ui-sm)"},children:r("desktop.mcpVisionRestarted")}),D&&(0,n.jsx)("span",{style:{color:"var(--status-error)",fontSize:"var(--text-ui-sm)"},children:D}),u&&(0,n.jsx)("span",{style:{color:"var(--status-error)",fontSize:"var(--text-ui-sm)"},children:u})]}),(0,n.jsxs)(py,{children:[r("desktop.mcpVisionModelNote"),W&&(0,n.jsx)("div",{style:{marginTop:4,fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)"},children:W}),m&&(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)"},children:m})]})]})})]}):(0,n.jsx)(pv,{children:(0,n.jsx)("div",{style:{padding:"8px 0",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:r("desktop.loading")})})]})}function pU(e){let{sessionId:t,onApplied:r,onBeforeApply:i}=e,{t:o}=(0,J.s)(),[a,l]=(0,s.useState)(!1),[d,c]=(0,s.useState)(!1),[u,p]=(0,s.useState)(null),h=(0,s.useCallback)(async()=>{if(t){l(!0),p(null),c(!1);try{await i?.(),await ud(t,{type:"reload"}),c(!0),await r?.()}catch(e){p(e instanceof Error?e.message:String(e))}finally{l(!1)}}},[t,r,i]),x=a||!t;return(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void h(),disabled:x,title:o(t?"desktop.applyNowTitle":"desktop.applyNowNoSession"),style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:x?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)",opacity:x?.5:1,whiteSpace:"nowrap"},children:o(a?"desktop.applyNowApplying":"desktop.applyNow")}),d&&(0,n.jsx)("span",{style:{color:"var(--status-success)",fontSize:"var(--text-ui-sm)"},children:o("desktop.applyNowDone")}),u&&(0,n.jsx)("span",{style:{color:"var(--status-error)",fontSize:"var(--text-ui-sm)"},children:u})]})}let p_=["stdio","streamable-http","sse"],pK=["eager","lazy"];function pq(e){return"streamable-http"===e||"sse"===e}let pV={name:"",command:"",args:"",url:"",headers:"",transport:"stdio",lifecycle:"eager",requestTimeoutMs:"",env:""},pJ={padding:"7px 9px",background:"var(--ds-tile-hover)",border:"none",borderRadius:"var(--radius-2xs)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",fontFamily:"var(--font-mono)",width:"100%",boxSizing:"border-box",outline:"none"};function pG(){return{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"}}function pY(e,t){return{fontSize:"var(--text-ui-xs)",padding:"1px 6px",borderRadius:"var(--radius-xs)",background:t,color:e,flexShrink:0,textTransform:"capitalize"}}function pX(e,t){let r;try{r=JSON.parse(e)}catch{throw Error(`${t} must be valid JSON`)}if("object"!=typeof r||null===r||Array.isArray(r)||!Object.values(r).every(e=>"string"==typeof e))throw Error(`${t} must be a JSON object of string values`);return r}function pZ(e){let{sessionId:t}=e,{t:r}=(0,J.s)(),[i,o]=(0,s.useState)({}),[a,l]=(0,s.useState)(""),[d,c]=(0,s.useState)(!1),[u,p]=(0,s.useState)(null),[h,x]=(0,s.useState)(null),[g,f]=(0,s.useState)(pV),[m,v]=(0,s.useState)(!1),[y,b]=(0,s.useState)(null),[k,j]=(0,s.useState)(!1),[w,S]=(0,s.useState)(""),C=(0,s.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}`);o(t.mcpServers??{}),l(t.filePath)}catch(e){p(e instanceof Error?e.message:String(e))}finally{c(!0)}},[]);(0,s.useEffect)(()=>{C()},[C]);let z=(0,s.useCallback)(()=>{f(pV),x({name:"",isNew:!0}),b(null),j(!1)},[]),T=(0,s.useCallback)((e,t)=>{f({name:e,command:t.command??"",args:Array.isArray(t.args)?t.args.join("\n"):"",url:"string"==typeof t.url?t.url:"",headers:void 0!==t.headers?JSON.stringify(t.headers,null,2):"",transport:p$(t.transport),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):""}),x({name:e,isNew:!1}),b(null),j(!1)},[]),R=(0,s.useCallback)(async()=>{if(h){v(!0),b(null),j(!1);try{let e=g.name.trim();if(h.isNew&&!e)return void b("Server name is required");if(h.isNew&&!/^[a-zA-Z0-9_-]+$/.test(e))return void b("Allowed characters: a-z, A-Z, 0-9, _ and -");if(h.isNew&&e===pF)return void b(r("desktop.mcpVisionNameReserved"));let t=function(e){let t=p_.includes(e.transport)?e.transport:"stdio",r={transport:t,lifecycle:pK.includes(e.lifecycle)?e.lifecycle:"eager"};if(pq(t)){if(r.url=e.url.trim(),""!==e.headers.trim())try{r.headers=pX(e.headers,"Headers")}catch(e){return{error:e instanceof Error?e.message:String(e)}}}else r.command=e.command.trim(),r.args=e.args.split("\n").map(e=>e.trim()).filter(Boolean);if(""!==e.requestTimeoutMs.trim()&&(r.requestTimeoutMs=Number(e.requestTimeoutMs)),""!==e.env.trim())try{r.env=pX(e.env,"Environment")}catch(e){return{error:e instanceof Error?e.message:String(e)}}let n=function(e,t){if(!pL.test(e))return`Invalid server name "${e}" (allowed: letters, digits, _ and -)`;if(!pA(t))return`Server "${e}" must be an object`;let r=t.transport;if(void 0!==r&&"http"!==r&&"stdio"!==r&&"sse"!==r&&"streamable-http"!==r)return`Server "${e}" transport must be one of stdio, streamable-http, sse`;let n=p$(r);if("stdio"===n){if("string"!=typeof t.command||!t.command.trim())return`Server "${e}" requires a non-empty string command for the stdio transport`}else if("string"!=typeof t.url||!t.url.trim())return`Server "${e}" requires a url for the ${n} transport`;else if(!function(e){try{let t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}}(t.url))return`Server "${e}" url must be a valid http or https URL`;if(void 0!==t.args&&(!Array.isArray(t.args)||!t.args.every(e=>"string"==typeof e)))return`Server "${e}" args must be an array of strings`;if(void 0!==t.headers&&!pP(t.headers))return`Server "${e}" headers must be an object of string values`;if(void 0!==t.env&&!pP(t.env))return`Server "${e}" env must be an object of string values`;if(void 0!==t.lifecycle&&!pW.has(t.lifecycle))return`Server "${e}" lifecycle must be one of eager, lazy`;if(void 0!==t.requestTimeoutMs){let r=t.requestTimeoutMs;if("number"!=typeof r||!Number.isFinite(r)||r<=0)return`Server "${e}" requestTimeoutMs must be a positive number`}return null}(e.name.trim()||"server",r);return n?{error:n}:{server:r}}(g);if(t.error||!t.server)return void b(t.error??"Invalid server");let n={...i};h.isNew?n[e]=t.server:(delete n[h.name],n[g.name.trim()||h.name]=t.server);let s=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:n})}),a=await s.json();if(!s.ok||a.error)throw Error(a.error??`HTTP ${s.status}`);o(n),x(null),j(!0)}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}}},[h,g,i,r]),I=(0,s.useCallback)(async e=>{v(!0),b(null);try{let t={...i};delete t[e];let r=await fetch("/api/mcp",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mcpServers:t})}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);o(t),j(!0)}catch(e){b(e instanceof Error?e.message:String(e))}finally{v(!1)}},[i]),N=(0,s.useCallback)((e,t)=>{f(r=>({...r,[e]:t}))},[]),M=Object.entries(i).filter(e=>{let[t]=e;return t!==pF}),E=w.trim().toLowerCase(),$=E?M.filter(e=>{let[t,r]=e;return t.toLowerCase().includes(E)||(r.command??"").toLowerCase().includes(E)||("string"==typeof r.url?r.url.toLowerCase():"").includes(E)}):M;return(0,n.jsx)("div",{className:"settings-content-panel settings-content-stack",style:{flex:1,overflow:"auto",minWidth:0,padding:"20px 22px",display:"flex",flexDirection:"column",gap:16},children:(0,n.jsx)("div",{className:"settings-content-card-host",style:{display:"flex",flexDirection:"column",gap:16},children:d?u?(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)"},children:u}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"settings-content-section-header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{className:"settings-content-section-title",style:{fontSize:"var(--text-ui-base)",fontWeight:700,color:"var(--ds-text-primary)"},children:r("desktop.mcpServers")}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexShrink:0},children:[(0,n.jsx)(pU,{sessionId:t,onApplied:C}),(0,n.jsxs)("button",{type:"button",onClick:z,style:{display:"flex",alignItems:"center",gap:6,padding:"7px 12px",border:"none",borderRadius:"var(--radius-sm)",background:"var(--ds-accent)",color:"var(--accent-fg)",cursor:"pointer",fontSize:"var(--text-ui-sm)",flexShrink:0},children:[(0,n.jsx)(e4.c,{size:13,"aria-hidden":"true"}),r("desktop.mcpAddServer")]})]})]}),M.length>0&&(0,n.jsxs)("label",{className:"settings-search-pill",style:{display:"flex"},children:[(0,n.jsx)(eY.$,{size:14,style:{color:"var(--ds-text-muted)",flexShrink:0}}),(0,n.jsx)("input",{value:w,onChange:e=>S(e.target.value),placeholder:r("desktop.mcpSearchPlaceholder"),"aria-label":r("desktop.mcpSearchPlaceholder")})]}),(0,n.jsx)(py,{children:r("desktop.mcpRestartNote")}),(0,n.jsx)(pB,{sessionId:t}),0!==$.length||h?$.map(e=>{let[t,s]=e;return(0,n.jsx)(lB,{children:(0,n.jsx)(pv,{children:(0,n.jsxs)("div",{className:"settings-content-row",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:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)"},children:t}),(0,n.jsx)("span",{style:pY("var(--ds-accent)","rgba(37,99,235,0.12)"),children:s.transport??"stdio"}),(0,n.jsx)("span",{style:pY("var(--status-warning)","rgba(245,158,11,0.12)"),children:s.lifecycle??"lazy"})]}),(0,n.jsx)("div",{style:{display:"block",minWidth:0,maxWidth:"100%",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)",marginTop:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:pq(p$(s.transport))?s.url:`${s.command??""}${Array.isArray(s.args)&&s.args.length>0?` ${s.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:()=>T(t,s),disabled:m,style:{display:"flex",alignItems:"center",gap:5,padding:"6px 10px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:m?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)",opacity:m?.5:1},children:[(0,n.jsx)(eZ.I,{size:12,"aria-hidden":"true"}),r("desktop.mcpEdit")]}),(0,n.jsx)("button",{type:"button",onClick:()=>void I(t),disabled:m,title:r("desktop.mcpDelete"),"aria-label":r("desktop.mcpDelete"),style:{display:"flex",alignItems:"center",padding:"6px 9px",background:"rgba(239,68,68,0.08)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--status-error)",cursor:m?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)",opacity:m?.5:1},children:(0,n.jsx)(e3.l,{size:12,"aria-hidden":"true"})})]})]})})},t)}):(0,n.jsx)(lB,{children:(0,n.jsx)(pv,{children:(0,n.jsx)("div",{style:{padding:"14px 0",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)"},children:i[pF]?r("desktop.mcpEmptyOther"):r("desktop.mcpEmpty")})})}),h&&(0,n.jsxs)(lB,{children:[(0,n.jsx)(pm,{children:(0,n.jsx)("div",{className:"settings-content-section-title",style:{fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)",padding:"12px 0 4px"},children:h.isNew?r("desktop.mcpNewServer"):r("desktop.mcpEditServer",{name:h.name})})}),(0,n.jsx)(pm,{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:pG(),children:r("desktop.mcpServerName")}),(0,n.jsx)("input",{value:g.name,onChange:e=>N("name",e.target.value),disabled:!h.isNew,placeholder:"my-server",style:{...pJ,opacity:h.isNew?1:.5}}),(0,n.jsx)("span",{style:pG(),children:r("desktop.mcpTransport")}),(0,n.jsx)("select",{value:g.transport,onChange:e=>N("transport",e.target.value),style:{...pJ,fontFamily:"var(--font-mono)"},children:p_.map(e=>(0,n.jsx)("option",{value:e,children:e},e))}),pq(g.transport)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("span",{style:pG(),children:[r("desktop.mcpUrl")," *"]}),(0,n.jsx)("input",{value:g.url,onChange:e=>N("url",e.target.value),placeholder:"https://example.com/mcp",style:pJ}),(0,n.jsx)("span",{style:pG(),children:r("desktop.mcpHeaders")}),(0,n.jsx)("textarea",{value:g.headers,onChange:e=>N("headers",e.target.value),placeholder:'{\n "Authorization": "Bearer ..."\n}',rows:3,style:{...pJ,resize:"vertical",lineHeight:1.5}})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("span",{style:pG(),children:[r("desktop.mcpCommand")," *"]}),(0,n.jsx)("input",{value:g.command,onChange:e=>N("command",e.target.value),placeholder:"npx @modelcontextprotocol/server-foo",style:pJ}),(0,n.jsx)("span",{style:pG(),children:r("desktop.mcpArgs")}),(0,n.jsx)("textarea",{value:g.args,onChange:e=>N("args",e.target.value),placeholder:"--port 3000\n--verbose",rows:3,style:{...pJ,resize:"vertical",lineHeight:1.5}})]}),(0,n.jsx)("span",{style:pG(),children:r("desktop.mcpLifecycle")}),(0,n.jsx)("select",{value:g.lifecycle,onChange:e=>N("lifecycle",e.target.value),style:{...pJ,fontFamily:"var(--font-mono)"},children:pK.map(e=>(0,n.jsx)("option",{value:e,children:e},e))}),(0,n.jsx)("span",{style:pG(),children:r("desktop.mcpRequestTimeoutMs")}),(0,n.jsx)("input",{type:"number",min:1,value:g.requestTimeoutMs,onChange:e=>N("requestTimeoutMs",e.target.value),placeholder:"300000",style:pJ}),(0,n.jsx)("span",{style:pG(),children:r("desktop.mcpEnv")}),(0,n.jsx)("textarea",{value:g.env,onChange:e=>N("env",e.target.value),placeholder:'{\n "API_KEY": "..."\n}',rows:3,style:{...pJ,resize:"vertical",lineHeight:1.5}})]})}),(0,n.jsx)(pv,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 0"},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void R(),disabled:m,style:{padding:"7px 12px",border:"none",borderRadius:"var(--radius-sm)",background:"var(--ds-accent)",color:"var(--accent-fg)",cursor:m?"wait":"pointer",fontSize:"var(--text-ui-sm)"},children:m?r("desktop.saving"):r("desktop.mcpSave")}),(0,n.jsx)("button",{type:"button",onClick:()=>x(null),disabled:m,style:{padding:"7px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:m?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)"},children:r("desktop.mcpCancel")}),y&&(0,n.jsx)("span",{style:{color:"var(--status-error)",fontSize:"var(--text-ui-sm)"},children:y})]})})]}),k&&!h&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-success)"},children:r("desktop.mcpSavedRestart")})]}):(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:r("desktop.loading")})})})}var pQ=r(9210);function p0(){let{t:e}=(0,J.s)(),[t,r]=(0,s.useState)(null),[i,o]=(0,s.useState)([]),[a,l]=(0,s.useState)(!0),[d,c]=(0,s.useState)(!1),[u,p]=(0,s.useState)(!1),[h,x]=(0,s.useState)(null);(0,s.useEffect)(()=>{fetch("/api/settings/title-model").then(e=>e.json()).then(e=>{r(e.value),o(e.models??[])}).catch(()=>{}).finally(()=>l(!1))},[]);let g=null!==t&&!i.some(e=>e.label===t),f=(0,s.useCallback)(async t=>{c(!0),x(null),p(!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 x(n.error??`HTTP ${e.status}`);r(n.value??null),p(!0),setTimeout(()=>p(!1),2e3)}catch{x(String(e("desktop.titleModelSaveError")))}finally{c(!1)}},[e]),m=[...new Set(i.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")}),g&&null!==t&&(0,n.jsxs)("option",{value:t,style:{color:"var(--status-error)"},children:[t,"(",e("desktop.titleModelInvalid"),")"]}),m.map(e=>(0,n.jsx)("optgroup",{label:e,children:i.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&&u&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--status-success)"},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:"var(--status-error)",lineHeight:1.5},children:h}),g&&null!==t&&(0,n.jsxs)("p",{style:{margin:0,fontSize:11,color:"var(--status-error)",lineHeight:1.5},children:[t,"(",e("desktop.titleModelInvalid"),")"]})]})}function p1(e){let{cwd:t,onChangedAction:r}=e,{t:i}=(0,J.s)(),[o,a]=(0,s.useState)(null),[l,d]=(0,s.useState)(null),[c,u]=(0,s.useState)([]),[p,h]=(0,s.useState)(""),[x,g]=(0,s.useState)(!0),[f,m]=(0,s.useState)(!0),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(!1),[j,w]=(0,s.useState)(null),S=(0,s.useRef)(!0),C=(0,s.useRef)(null);(0,s.useEffect)(()=>(S.current=!0,()=>{S.current=!1,C.current&&clearTimeout(C.current)}),[]);let z=(0,s.useRef)(i);z.current=i;let T=(0,s.useRef)(0);(0,s.useEffect)(()=>{let e=!1,r=T.current+=1;return m(!0),fetch(t?`/api/settings/default-model?cwd=${encodeURIComponent(t)}`:"/api/settings/default-model").then(async t=>{let r=await t.json();if(!e&&S.current){if(!t.ok)return void w(r.error??`HTTP ${t.status}`);a(r.stored??null),d(r.resolved??null),u(r.availableModels??[]),h(r.path??""),g(!1!==r.editable)}}).catch(()=>{!e&&S.current&&w(z.current("desktop.defaultModelSaveFailed"))}).finally(()=>{S.current&&T.current===r&&m(!1)}),()=>{e=!0}},[t]);let R=null!==o&&null===l,I=i("desktop.defaultModelProjectScope",{path:p}),N=(0,s.useCallback)((e,t)=>"unknown-model"===e?i("desktop.defaultModelUnknownModel"):"project-scope"===e?i("desktop.defaultModelProjectScope",{path:p}):t??i("desktop.defaultModelSaveFailed"),[p,i]),M=(0,s.useCallback)(async(e,n)=>{y(!0),w(null),k(!1);try{let s=await fetch("/api/settings/default-model",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...t?{cwd:t}:{},provider:e,modelId:n})}),i=await s.json();if(!s.ok||i.error)return void w(N(i.reason,i.error));let o=i.resolved??null;a(o),d(o),k(!0),r?.(),C.current&&clearTimeout(C.current),C.current=setTimeout(()=>{S.current&&k(!1)},2e3)}catch{w(i("desktop.defaultModelSaveFailed"))}finally{S.current&&y(!1)}},[t,r,N,i]),E=(0,s.useMemo)(()=>c.map(e=>({provider:e.provider,modelId:e.modelId,name:e.name||e.modelId})),[c]),$=j??(R?i("desktop.defaultModelStale"):null);return(0,n.jsxs)("div",{className:"settings-row is-stacked","aria-busy":f||v,children:[(0,n.jsxs)("div",{className:"settings-row-copy",style:{minWidth:0,overflowWrap:"anywhere"},children:[(0,n.jsx)("span",{className:"settings-row-title",children:i("desktop.defaultModelTitle")}),(0,n.jsx)("span",{className:"settings-row-description",children:i("desktop.defaultModelHelp")}),!f&&!x&&(0,n.jsx)("span",{className:"settings-row-description",title:p,style:{color:"var(--ds-text-muted)"},children:I}),!f&&$&&(0,n.jsx)("span",{role:"status",style:{display:"block",minWidth:0,overflowWrap:"anywhere",marginTop:3,fontSize:"var(--text-ui-sm)",lineHeight:1.5,color:"var(--status-error)"},children:$}),!f&&!$&&b&&(0,n.jsx)("span",{role:"status",style:{display:"block",marginTop:3,fontSize:"var(--text-ui-sm)",lineHeight:1.5,color:"var(--ds-accent)"},children:i("i18n.saved")})]}),(0,n.jsx)("div",{className:"settings-row-control",style:{flex:"0 0 auto",width:"min(100%, 260px)",maxWidth:"100%"},children:f?(0,n.jsx)("div",{"aria-hidden":"true",style:{width:"100%",height:34,borderRadius:"var(--radius-sm)",border:"1px solid var(--ds-border-default)",background:"var(--ds-bg-secondary)"}}):(0,n.jsx)(cg,{options:E,value:l,onChange:M,emptyLabel:i("desktop.defaultModelNone"),disabled:!x||v,busy:v,ariaLabel:i("desktop.defaultModelTitle"),variant:"field"})})]})}let p2=[{id:"openai",vendorKey:"openai",name:"OpenAI",baseUrl:"https://api.openai.com/v1",api:"openai-responses",aliases:["gpt","chatgpt"]},{id:"anthropic",vendorKey:"anthropic",name:"Anthropic",baseUrl:"https://api.anthropic.com",api:"anthropic-messages",aliases:["claude"]},{id:"google",vendorKey:"google",name:"Google Gemini",baseUrl:"https://generativelanguage.googleapis.com/v1beta",api:"google-generative-ai",aliases:["gemini","google-ai"],discoveryStyle:"google-models"},{id:"openrouter",vendorKey:"openrouter",name:"OpenRouter",baseUrl:"https://openrouter.ai/api/v1",api:"openai-completions"},{id:"groq",vendorKey:"groq",name:"Groq",baseUrl:"https://api.groq.com/openai/v1",api:"openai-completions"},{id:"xai",vendorKey:"xai",name:"xAI",baseUrl:"https://api.x.ai/v1",api:"openai-responses",aliases:["grok"]},{id:"mistral",vendorKey:"mistral",name:"Mistral",baseUrl:"https://api.mistral.ai",api:"mistral-conversations",aliases:["codestral"]},{id:"together",vendorKey:"together",name:"Together AI",baseUrl:"https://api.together.ai/v1",api:"openai-completions"},{id:"fireworks",vendorKey:"fireworks",name:"Fireworks AI",baseUrl:"https://api.fireworks.ai/inference",api:"openai-completions"},{id:"deepseek",vendorKey:"deepseek",name:"DeepSeek",baseUrl:"https://api.deepseek.com",api:"openai-completions",aliases:["深度求索"]},{id:"alibaba-cn",vendorKey:"dashscope",name:"Alibaba Cloud Qwen",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",api:"openai-completions",aliases:["dashscope","qwen","通义千问","阿里云"]},{id:"moonshotai-cn",vendorKey:"moonshotai",name:"Moonshot Kimi (China)",baseUrl:"https://api.moonshot.cn/v1",api:"openai-completions",aliases:["kimi","月之暗面"]},{id:"moonshotai",vendorKey:"moonshotai",name:"Moonshot Kimi (Global)",baseUrl:"https://api.moonshot.ai/v1",api:"openai-completions",aliases:["kimi-global"]},{id:"zai",vendorKey:"zai",name:"Z.AI",baseUrl:"https://api.z.ai/api/paas/v4",api:"openai-completions",aliases:["z.ai","zhipu-global","智谱国际"]},{id:"zhipuai",vendorKey:"zhipuai",name:"Zhipu GLM",baseUrl:"https://open.bigmodel.cn/api/paas/v4",api:"openai-completions",aliases:["bigmodel","glm","智谱"]},{id:"siliconflow-cn",vendorKey:"siliconflow",name:"SiliconFlow",baseUrl:"https://api.siliconflow.cn/v1",api:"openai-completions",aliases:["siliconflow","硅基流动"]},{id:"volcengine",vendorKey:"volcengine",name:"Volcengine Ark",baseUrl:"https://ark.cn-beijing.volces.com/api/v3",api:"openai-completions",aliases:["ark","doubao","火山引擎","豆包"]},{id:"minimax",vendorKey:"minimax",name:"MiniMax",baseUrl:"https://api.minimax.io/anthropic",api:"anthropic-messages"},{id:"minimax-cn",vendorKey:"minimax",name:"MiniMax (China)",baseUrl:"https://api.minimaxi.com/anthropic",api:"anthropic-messages",aliases:["minimaxi"]},{id:"kimi-coding",vendorKey:"kimi-coding",name:"Kimi For Coding",baseUrl:"https://api.kimi.com/coding/v1",api:"anthropic-messages",aliases:["kimi-code"]},{id:"xiaomi",vendorKey:"xiaomi",name:"Xiaomi MiMo",baseUrl:"https://api.xiaomimimo.com/v1",api:"openai-completions",aliases:["mimo","小米"]},{id:"nvidia",vendorKey:"nvidia",name:"NVIDIA NIM",baseUrl:"https://integrate.api.nvidia.com/v1",api:"openai-completions",aliases:["nim"]},{id:"cerebras",vendorKey:"cerebras",name:"Cerebras",baseUrl:"https://api.cerebras.ai/v1",api:"openai-completions"},{id:"baseten",vendorKey:"baseten",name:"Baseten",baseUrl:"https://inference.baseten.co/v1",api:"openai-completions"},{id:"huggingface",vendorKey:"huggingface",name:"Hugging Face",baseUrl:"https://router.huggingface.co/v1",api:"openai-completions",aliases:["hf"]},{id:"vercel-ai-gateway",vendorKey:"vercel",name:"Vercel AI Gateway",baseUrl:"https://ai-gateway.vercel.sh",api:"openai-completions",aliases:["vercel"]},{id:"opencode",vendorKey:"opencode",name:"OpenCode Zen",baseUrl:"https://opencode.ai/zen/v1",api:"openai-completions",aliases:["zen"]},{id:"meta",vendorKey:"meta",name:"Meta AI",baseUrl:"https://api.meta.ai/v1",api:"openai-responses",aliases:["llama"]}];function p6(e){if("string"!=typeof e)return;let t=e.trim();if(t)try{let e=new URL(t),r=e.pathname.replace(/\/+$/,"");return`${e.protocol.toLowerCase()}//${e.host.toLowerCase()}${r}`}catch{return t.replace(/\/+$/,"").trim().toLowerCase()}}function p4(e,t){let r=(t??"").trim().toLocaleLowerCase();return r?e.filter(e=>e.haystack.toLocaleLowerCase().includes(r)):[...e]}let p5={fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.07em",padding:"4px 2px 2px"},p3={display:"flex",alignItems:"center",gap:8,minWidth:0,padding:"9px 11px",border:"1px solid var(--ds-border-default)",borderRadius:"var(--radius-md)",background:"var(--ds-bg-secondary)",color:"var(--ds-text-primary)",cursor:"pointer",textAlign:"left",font:"inherit"};function p8(e){let{open:t,onClose:r,oauthProviders:i,apiKeyProviders:o,onPickOAuth:a,onPickApiKey:l,onPickPreset:d,onPickCustom:c}=e,{t:u}=(0,J.s)(),[p,h]=(0,s.useState)(""),x=(0,s.useRef)(null);G(t,r),(0,s.useEffect)(()=>{if(!t)return;h("");let e=setTimeout(()=>x.current?.focus(),30);return()=>clearTimeout(e)},[t]);let g=i.filter(e=>!e.loggedIn),f=o.filter(e=>!e.configured),m=(0,s.useMemo)(()=>p2.map(e=>({preset:e,haystack:function(e){let t=function(e){if("string"!=typeof e)return;let t=e.trim();if(t)for(let e of/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?[t]:[`https://${t}`])try{let t=new URL(e).hostname.toLocaleLowerCase().replace(/\.$/,"");if(t)return t}catch{continue}}(e.baseUrl)??"",r=`${t} ${e.baseUrl}`;try{let n=new URL(e.baseUrl);r=`${t} ${n.pathname.replace(/\/+$/,"")} ${e.baseUrl}`}catch{}return[e.name,e.id,e.vendorKey,...e.aliases??[],r].join(" ").toLocaleLowerCase()}(e)})),[]),v=(0,s.useMemo)(()=>g.map(e=>({provider:e,haystack:`${e.name} ${e.id}`.toLocaleLowerCase()})),[i]),y=(0,s.useMemo)(()=>f.map(e=>({provider:e,haystack:`${e.displayName} ${e.id}`.toLocaleLowerCase()})),[o]),b=p4(v,p),k=p4(y,p),j=p4(m,p),w=`${u("desktop.modelsServiceGroupCustom")} ${u("desktop.modelsServiceCustomEndpoint")} custom openai-compatible anthropic-compatible`.toLocaleLowerCase(),S=p.trim().toLocaleLowerCase(),C=!S||w.includes(S),z=(e,t,r,s,i)=>(0,n.jsxs)("button",{type:"button",style:p3,onClick:s,className:"settings-row is-hoverable",children:[(0,n.jsxs)("span",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0,flex:1},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r})]}),i]},e);if(!t)return null;let T=b.length+k.length+j.length+ +!!C>0;return(0,n.jsx)("div",{"data-settings-child-dialog":"true",style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0, 0, 0, 0.4)",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,n.jsxs)("div",{style:{width:760,maxWidth:"calc(100vw - 32px)",maxHeight:"min(78vh, calc(100vh - 32px))",display:"flex",flexDirection:"column",background:"var(--ds-bg-primary)",border:"1px solid var(--ds-border-default)",borderRadius:"var(--radius-md-plus)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"11px 14px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)(eY.$,{size:13,style:{color:"var(--ds-text-muted)",flexShrink:0}}),(0,n.jsx)("input",{ref:x,value:p,onChange:e=>h(e.target.value),placeholder:u("desktop.modelsServiceChooserSearch"),"aria-label":u("desktop.modelsServiceChooserTitle"),style:{flex:1,minWidth:0,background:"none",border:"none",outline:"none",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-base)",boxSizing:"border-box"}})]}),(0,n.jsxs)("div",{style:{flex:1,overflowY:"auto",padding:14,display:"flex",flexDirection:"column",gap:6},children:[!T&&(0,n.jsx)("div",{style:{padding:"20px 0",textAlign:"center",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-sm)"},children:u("desktop.modelsServiceNoMatch")}),b.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:p5,children:u("desktop.modelsServiceGroupSubscriptions")}),b.map(e=>{let{provider:t}=e;return z(`oauth:${t.id}`,t.name,"OAuth",()=>a(t.id))})]}),k.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:p5,children:u("desktop.modelsServiceGroupApiKey")}),k.map(e=>{let{provider:t}=e;return z(`apikey:${t.id}`,t.displayName,u("desktop.modelsCount",{count:t.modelCount}),()=>l(t.id))})]}),j.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:p5,children:u("desktop.modelsServiceGroupPresets")}),j.map(e=>{let{preset:t}=e;return z(`preset:${t.id}`,t.name,function(e){try{let t=new URL(e);return`${t.host}${t.pathname.replace(/\/+$/,"")}`}catch{return e}}(t.baseUrl),()=>d(t))})]}),C&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:p5,children:u("desktop.modelsServiceGroupCustom")}),z("custom",u("desktop.modelsServiceCustomEndpoint"),u("desktop.modelsCustomEndpointFormat"),c,(0,n.jsx)(e4.c,{size:13,style:{color:"var(--ds-text-muted)",flexShrink:0}}))]})]})]})})}let p7={unauthorized:"The provider rejected the API key. Check the key and try again.",forbidden:"The provider refused access to the model list for this key.",notFound:"The endpoint has no model list at this address. Enter models manually.",rateLimited:"The provider is rate limiting requests. Wait a moment and retry.",upstream:"The provider failed while listing models. Retry, or enter models manually.",timeout:"The model list request timed out.",network:"Could not reach the endpoint. Check the base URL and the network.",invalidResponse:"The endpoint answered with something that is not a model list.",unknown:"Listing models failed."};function p9(e,t){let r={kind:e,message:p7[e]};return"number"==typeof t&&Number.isFinite(t)&&(r.httpStatus=t),r}function he(e){if("object"!=typeof e||null===e)return;let t=e.name;return"string"==typeof t?t:void 0}function ht(e,t){if("number"==typeof t&&Number.isFinite(t)){if(401===t)return p9("unauthorized",t);if(403===t)return p9("forbidden",t);if(404===t)return p9("notFound",t);if(429===t)return p9("rateLimited",t);if(t>=500)return p9("upstream",t)}let r=he(e);return"TimeoutError"===r||"AbortError"===r?p9("timeout",t):e instanceof SyntaxError||"object"==typeof e&&null!==e&&"SyntaxError"===he(e)?p9("invalidResponse",t):e instanceof TypeError||"TypeError"===r?p9("network",t):p9("unknown",t)}let hr={status:"idle",models:[]};function hn(e){return(e??[]).filter(e=>"string"==typeof e.id&&e.id.trim()).map(e=>({id:e.id,...e.name?{name:e.name}:{}}))}function hs(e,t,r){let[n,i]=(0,s.useState)(hr),o=(0,s.useRef)(0),a=(0,s.useRef)(null),l=(0,s.useRef)(null),d=(0,s.useRef)(!0),{providerName:c,baseUrl:u,apiKey:p,api:h}=t,x=t.headers,g=x?JSON.stringify(x):"",f=(r??[]).map(e=>e.id).join("\0"),m=e&&!!p6(u),v=(0,s.useCallback)(()=>{o.current+=1,a.current?.abort(),a.current=null,l.current&&(clearTimeout(l.current),l.current=null)},[]),y=(0,s.useCallback)(async()=>{let e=++o.current;a.current?.abort();let t=new AbortController;a.current=t;let n=u.trim(),s=p.trim(),l={api:h};n&&(l.baseUrl=n),s&&(l.apiKey=s),x&&Object.keys(x).length>0&&(l.headers=x);let g=hn(r),f=g.length>0,m=f&&!s;i(e=>m?{status:"ready",models:g,source:"saved"}:{...e,status:"loading",error:void 0,errorKind:void 0});try{let r=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:c,provider:l}),signal:t.signal}),n=await r.json();if(!d.current||o.current!==e)return;if(!r.ok||n.error||!n.models){let e=ht(Error(n.error??`HTTP ${r.status}`),"number"==typeof n.status?n.status:r.status);i({status:"error",models:g,error:e.message,errorKind:e.kind,...f?{source:"saved"}:{}});return}i({status:"ready",models:hn(n.models),source:"remote",...n.endpoint?{endpoint:n.endpoint}:{}})}catch(n){if(!d.current||o.current!==e||t.signal.aborted)return;let r=ht(n,void 0);i({status:"error",models:g,error:r.message,errorKind:r.kind,...f?{source:"saved"}:{}})}},[h,p,u,g,c,f]);(0,s.useEffect)(()=>(d.current=!0,()=>{d.current=!1}),[]),(0,s.useEffect)(()=>{if(v(),!e||!p6(u))return void i(hr);let t=hn(r);return i(t.length>0&&!p.trim()?{status:"ready",models:t,source:"saved"}:e=>({...e,status:"loading",error:void 0,errorKind:void 0})),l.current=setTimeout(()=>{y()},600),v},[e,h,p,u,g,c,f,v,y]);let b=(0,s.useCallback)(()=>{e&&(v(),y())},[e,v,y]);return(0,s.useEffect)(()=>()=>{a.current?.abort(),l.current&&clearTimeout(l.current)},[]),{...n,reload:b,canReload:m}}let hi=[{pattern:/(^|\.)anthropic\.com$/i,api:"anthropic-messages"},{pattern:/(^|\.)generativelanguage\.googleapis\.com$/i,api:"google-generative-ai"},{pattern:/(^|\.)mistral\.ai$/i,api:"mistral-conversations"}];function ho(e){switch(e){case"openai-completions":return"OpenAI Chat Completions";case"openai-responses":return"OpenAI Responses";case"anthropic-messages":return"Anthropic Messages";case"google-generative-ai":return"Google Generative AI";case"mistral-conversations":return"Mistral Conversations";default:return e}}function ha(e,t){let r=new Set(e.map(e=>e.id.toLocaleLowerCase())),n=[...e],s=0;for(let e of t){let t=e.id.trim().toLocaleLowerCase();!t||r.has(t)||(r.add(t),n.push({id:e.id,...e.name?{name:e.name}:{}}),s+=1)}return{models:n,added:s}}function hl(e){for(let t of e){let e="string"==typeof t.id?t.id.trim():"";if(e)return e}}function hd(e,t){let r=t.trim().toLocaleLowerCase();return!!r&&e.some(e=>e.id.trim().toLocaleLowerCase()===r)}function hc(e,t){return Number.isInteger(e)&&e>=0&&e<t}let hu={display:"flex",flexDirection:"column",gap:8,minWidth:0,minHeight:0,padding:10,border:"1px solid var(--ds-border-default)",borderRadius:"var(--radius-md)",background:"var(--ds-bg-secondary)"},hp={display:"flex",flexDirection:"column",minHeight:120,maxHeight:260,overflowY:"auto",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-primary)"},hh={padding:"5px 8px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-primary)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-xs)",outline:"none",width:"100%",boxSizing:"border-box"},hx={display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",background:"var(--ds-bg-secondary)",color:"var(--ds-text-secondary)",cursor:"pointer",flexShrink:0},hg={fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-secondary)"};function hf(e){let{discovered:t,models:r,onModelsChange:i,defaultModelId:o,busy:a=!1,onRevealAdvanced:l,discoveryStatus:d="idle"}=e,{t:c}=(0,J.s)(),[u,p]=(0,s.useState)(""),[h,x]=(0,s.useState)(""),[g,f]=(0,s.useState)(""),[m,v]=(0,s.useState)(null),y=(0,s.useRef)(null),b=function(e){let{length:t,busy:r=!1,onMove:n}=e,[i,o]=(0,s.useState)(null),[a,l]=(0,s.useState)(null),d=(0,s.useRef)("below"),c=(0,s.useCallback)((e,r)=>{if(!hc(e,t))return;let s=e+r;s<0||s>=t||n(e,s)},[t,n]),u=(0,s.useCallback)(e=>({draggable:!r&&hc(e,t),onDragStart:t=>{r?t.preventDefault():(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",String(e)),o(e))},onDragOver:t=>{if(!r&&null!==i){var n,s;let r;t.preventDefault(),t.dataTransfer.dropEffect="move",n=t.currentTarget,s=t.clientY,d.current=(r=n.getBoundingClientRect()).height<=0?"below":s<r.top+r.height/2?"above":"below",a!==e&&l(e)}},onDrop:s=>{if(s.preventDefault(),o(null),l(null),r||null===i||i===e)return;let a=(function(e,t,r,n){let s=[...e];if(!hc(t,s.length)||!hc(r,s.length)||t===r)return s;let[i]=s.splice(t,1);return s.splice(t<r?"above"===n?r-1:r:"above"===n?r:r+1,0,i),s})(Array.from({length:t},(e,t)=>t),i,e,d.current).indexOf(i);-1!==a&&a!==i&&n(i,a)},onDragEnd:()=>{o(null),l(null)},onDragLeave:()=>{a===e&&l(null)}}),[r,i,t,n,a]),p=(0,s.useCallback)(e=>({tabIndex:r?-1:0,onKeyDown:t=>{r||("ArrowUp"===t.key?(t.preventDefault(),c(e,-1)):"ArrowDown"===t.key&&(t.preventDefault(),c(e,1)))}}),[r,c]);return{draggingIndex:i,overIndex:a,itemProps:u,moveBy:c,keyboardProps:p}}({length:r.length,busy:a,onMove:(e,t)=>{i(function(e,t,r){let n=[...e];if(t===r||t<0||r<0||t>=n.length||r>=n.length)return n;let[s]=n.splice(t,1);return n.splice(r,0,s),n}(r,e,t))}}),k=u.trim().toLocaleLowerCase(),j=(0,s.useMemo)(()=>t.filter(e=>!k||e.id.toLocaleLowerCase().includes(k)||e.name?.toLocaleLowerCase().includes(k)).slice(0,300),[t,k]),w=j.length>0&&j.every(e=>hd(r,e.id)),S=!w&&j.some(e=>hd(r,e.id));(0,s.useEffect)(()=>{y.current&&(y.current.indeterminate=S)},[S]);let C=h.trim().toLocaleLowerCase(),z=r.map((e,t)=>({model:e,index:t})).filter(e=>{let{model:t}=e;return!C||t.id.toLocaleLowerCase().includes(C)||t.name?.toLocaleLowerCase().includes(C)}),T=e=>{i(r.filter((t,r)=>r!==e)),v(t=>null===t?null:t>e?t-1:t===e?null:t)},R=()=>{let e=g.trim();if(!e)return;let t=ha(r,[{id:e}]);0!==t.added&&(i(t.models),f(""))},I="loading"===d?c("desktop.modelsProbeLoading"):c("desktop.modelsProbeIdle");return(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(300px, 100%), 1fr))",gap:10,minWidth:0},children:[(0,n.jsxs)("section",{style:hu,"aria-label":c("desktop.modelsDiscoverTitle"),children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:hg,children:c("desktop.modelsDiscoverTitle")}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:t.length})]}),(0,n.jsx)("input",{value:u,onChange:e=>p(e.target.value),placeholder:c("desktop.modelsDiscoveryFilter"),"aria-label":c("desktop.modelsDiscoveryFilter"),style:hh}),(0,n.jsx)("div",{style:hp,children:0===j.length?(0,n.jsx)("div",{style:{padding:10,color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)",lineHeight:1.5},children:I}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{style:{position:"sticky",top:0,zIndex:1,display:"flex",alignItems:"center",gap:7,padding:"6px 8px",background:"var(--ds-tile-hover)",borderBottom:"1px solid var(--border)",color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-xs)",fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)("input",{ref:y,type:"checkbox",checked:w,disabled:0===j.length,onChange:()=>{if(w){let e=new Set(j.map(e=>e.id.trim().toLocaleLowerCase()));i(r.filter(t=>!e.has(t.id.trim().toLocaleLowerCase())));return}let e=ha(r,j);0!==e.added&&i(e.models)},style:{width:13,height:13,accentColor:"var(--ds-accent)",flexShrink:0}}),c("desktop.modelsDiscoverySelectShown")]}),j.map(e=>{let t=hd(r,e.id);return(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:7,padding:"6px 8px",borderBottom:"1px solid var(--border)",cursor:"pointer",minWidth:0},children:[(0,n.jsx)("input",{type:"checkbox",checked:t,onChange:()=>(e=>{let t=r.findIndex(t=>t.id.trim().toLocaleLowerCase()===e.id.trim().toLocaleLowerCase());if(-1===t){let t;0!==(t=ha(r,[e])).added&&i(t.models)}else T(t)})(e),style:{width:13,height:13,accentColor:"var(--ds-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(--ds-text-primary)",fontSize:"var(--text-ui-xs)"},children:e.name??e.id}),e.name&&(0,n.jsx)("code",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)",fontFamily:"var(--font-mono)"},children:e.id})]})]},e.id)})]})})]}),(0,n.jsxs)("section",{style:hu,"aria-label":c("desktop.modelsChosenTitle"),children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:hg,children:c("desktop.modelsChosenTitle")}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:r.length})]}),(0,n.jsx)("input",{value:h,onChange:e=>x(e.target.value),placeholder:c("desktop.modelsChosenFilter"),"aria-label":c("desktop.modelsChosenFilter"),style:hh}),(0,n.jsx)("div",{style:hp,children:0===r.length?(0,n.jsx)("div",{style:{padding:10,color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)",lineHeight:1.5},children:c("desktop.modelsChosenEmpty")}):0===z.length?(0,n.jsx)("div",{style:{padding:10,color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)"},children:c("desktop.modelsDiscoveryNoMatches")}):z.map(e=>{let{model:t,index:s}=e,i=!!o&&t.id===o,d=b.itemProps(s),u=b.keyboardProps(s);return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 7px",borderBottom:"1px solid var(--border)",minWidth:0,background:b.overIndex===s?"var(--ds-tile-hover)":"transparent",opacity:b.draggingIndex===s?.6:1},children:[(0,n.jsx)("span",{title:c("desktop.modelsMoveUp"),"aria-hidden":"true",draggable:d.draggable,onDragStart:d.onDragStart,onDragOver:d.onDragOver,onDrop:d.onDrop,onDragEnd:d.onDragEnd,onDragLeave:d.onDragLeave,style:{cursor:a?"default":"grab",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)",flexShrink:0,padding:"0 2px",userSelect:"none"},children:"⋮⋮"}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("code",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-xs)",fontFamily:"var(--font-mono)"},children:t.id}),t.name&&(0,n.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)"},children:t.name})]}),i&&(0,n.jsx)("span",{style:{flexShrink:0,padding:"1px 5px",borderRadius:"var(--radius-xs)",background:"var(--ds-bg-hover)",color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-xs)"},children:c("desktop.modelsDefaultBadge")}),(0,n.jsx)("button",{type:"button",...u,"aria-label":`${c("desktop.modelsMoveUp")}: ${t.id}`,title:c("desktop.modelsMoveUp"),disabled:a||0===s,onClick:()=>b.moveBy(s,-1),style:{...hx,cursor:a||0===s?"not-allowed":"pointer",opacity:0===s?.5:1},children:(0,n.jsx)(ln.K,{size:11})}),(0,n.jsx)("button",{type:"button","aria-label":`${c("desktop.modelsMoveDown")}: ${t.id}`,title:c("desktop.modelsMoveDown"),disabled:a||s===r.length-1,onClick:()=>b.moveBy(s,1),style:{...hx,cursor:a||s===r.length-1?"not-allowed":"pointer",opacity:s===r.length-1?.5:1},children:(0,n.jsx)(lr.Z,{size:11})}),l&&(0,n.jsx)("button",{type:"button",onClick:()=>{let e=m===s?null:s;v(e),null!==e&&l(s)},style:{...hx,width:"auto",padding:"0 6px",fontSize:"var(--text-ui-xs)"},children:m===s?c("desktop.modelsHideAdvanced"):c("desktop.modelsRevealAdvanced")}),(0,n.jsx)("button",{type:"button","aria-label":`${c("desktop.modelsRemove")}: ${t.id}`,title:c("desktop.modelsRemove"),disabled:a,onClick:()=>T(s),style:{...hx,cursor:a?"not-allowed":"pointer"},children:"\xd7"})]},`${t.id}-${s}`)})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("input",{value:g,onChange:e=>f(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),R())},placeholder:c("desktop.modelsNewModel"),"aria-label":c("desktop.modelsAddModelManual"),style:{...hh,flex:1,width:"auto"}}),(0,n.jsx)("button",{type:"button",onClick:R,disabled:!g.trim()||a,style:{...hx,cursor:!g.trim()||a?"not-allowed":"pointer"},"aria-label":c("desktop.modelsAddModelManual"),children:(0,n.jsx)(e4.c,{size:11})})]})]})]})}let hm=/embed|rerank|moderation|whisper|tts|transcri|audio|realtime|\blive\b|speech|image|dall-e|imagen|ocr|guard|deep-research|computer-use/i,hv=["openai-completions","openai-responses","anthropic-messages","google-generative-ai","mistral-conversations"],hy={unauthorized:"desktop.modelsProbeErrorUnauthorized",forbidden:"desktop.modelsProbeErrorForbidden",notFound:"desktop.modelsProbeErrorNotFound",rateLimited:"desktop.modelsProbeErrorRateLimited",upstream:"desktop.modelsProbeErrorUpstream",timeout:"desktop.modelsProbeErrorTimeout",network:"desktop.modelsProbeErrorNetwork",invalidResponse:"desktop.modelsProbeErrorInvalidResponse",unknown:"desktop.modelsProbeErrorUpstream"},hb={display:"flex",flexDirection:"column",gap:4,minWidth:0},hk={fontSize:"var(--text-ui-xs)",fontWeight:500,color:"var(--ds-text-secondary)"},hj={padding:"6px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",outline:"none",width:"100%",boxSizing:"border-box"},hw={fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",lineHeight:1.4};function hS(e){let{value:t,onChange:r,placeholder:i,autoComplete:o="off"}=e,{t:a}=(0,J.s)(),[l,d]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{t||d(!1)},[t]),(0,n.jsxs)("div",{style:{position:"relative",width:"100%"},children:[(0,n.jsx)("input",{type:l?"text":"password",value:t,onChange:e=>r(e.target.value),placeholder:i,autoComplete:o,spellCheck:!1,style:{...hj,paddingRight:32,fontFamily:"var(--font-mono)"}}),(0,n.jsx)("button",{type:"button",onClick:()=>d(e=>!e),"aria-label":a(l?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),title:a(l?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,border:"none",background:"transparent",color:"var(--ds-text-muted)",cursor:"pointer"},children:l?(0,n.jsx)(pQ.G,{size:15}):(0,n.jsx)(nq.b,{size:15})})]})}function hC(e){let{open:t,onClose:r,editing:i,preset:o,existingProviderNames:a,onSave:l,onRequestCustom:d}=e,{t:c}=(0,J.s)(),[u,p]=(0,s.useState)(""),[h,x]=(0,s.useState)(""),[g,f]=(0,s.useState)(""),[m,v]=(0,s.useState)(hv[0]),[y,b]=(0,s.useState)(!1),[k,j]=(0,s.useState)([]),[w,S]=(0,s.useState)({phase:"idle"}),C=(0,s.useRef)(null),[z,T]=(0,s.useState)(!1);G(t,r);let R=i?.provider??null,I=!!o,N=(0,s.useMemo)(()=>a.join("\0"),[a]);(0,s.useEffect)(()=>{if(!t)return;let e=R?.api??"",r=R?.baseUrl??o?.baseUrl??"",n=e||o?.api||hv[0],s=i?.name??function(e,t){let r=e.trim()||"provider";if(!t.includes(r))return r;for(let e=2;e<1e3;e+=1){let n=`${r}-${e}`;if(!t.includes(n))return n}return`${r}-${Date.now()}`}(o?(o.id||o.name).trim().toLocaleLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,""):"",a);M.current=s,p(s),x(r),f(""),v(n),b(!!e||!!o),j((R?.models??[]).map(e=>e.name?{id:e.id,name:e.name}:{id:e.id})),S({phase:"idle"}),C.current=null,T(!1)},[t,i?.name,R?.api,R?.baseUrl,o,N]);let M=(0,s.useRef)(""),E=(0,s.useMemo)(()=>R?.models??[],[R]),$=hs(t,{providerName:u,baseUrl:h,apiKey:g,api:m,headers:R?.headers},E);(0,s.useEffect)(()=>{if(!t||!(!(!$||"ready"!==$.status||"error"===$.source||"string"==typeof $.error&&$.error.trim())&&1)||k.length>0)return;let e=`${u}|${h}`;if(C.current===e)return;C.current=e;let r=function(e){let t=(e.models??[]).filter(e=>(function(e){if("string"!=typeof e)return!1;let t=e.trim();return!!t&&!hm.test(t)})(e.id));if(0===t.length)return{ids:[],reason:"empty"};let r=function(e){if(e.catalogPrice?.status!=="reliable")return;let t=e.catalogPrice.cost?.output;return"number"==typeof t&&Number.isFinite(t)?t:void 0}(e);if(!(e.catalogPreset&&void 0!==r))return{ids:[t[0].id],reason:"first-only"};let n=[],s=[];for(let e of t){let t=function(e,t){let r=e.cost?.output;return"number"==typeof r&&Number.isFinite(r)?r:t}(e,r);(void 0!==t&&t>100?s:n).push(e)}return{ids:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,r=Math.max(0,Math.floor(t)),n=[];if(0===r)return n;let s=new Set;for(let t of e){let e=function(e){let t=e.trim().split("/").pop()??e.trim(),r=t.indexOf("-");return(r>0?t.slice(0,r):t).toLocaleLowerCase()}(t);if(!s.has(e)&&(s.add(e),n.push(t),n.length>=r))break}return n}([...n,...s].map(e=>e.id)),reason:"catalog-ranked"}}({models:$.models});if("empty"===r.reason||0===r.ids.length)return;let n=new Map($.models.map(e=>[e.id,e]));j(r.ids.map(e=>{let t=n.get(e);return t?.name?{id:e,name:t.name}:{id:e}})),T(!0)},[t,$.status,$.source,$.models.length,u,h]);let L=function(e){if(e.locked)return{api:e.current,autoDetected:!1};let t=function(e){if("string"!=typeof e)return;let t=e.trim();if(!t)return;let r="",n="";try{let e=new URL(t);r=e.hostname.toLocaleLowerCase().replace(/\.$/,""),n=e.pathname.toLocaleLowerCase().replace(/\/+$/,"")}catch{n=t.toLocaleLowerCase()}if(r){for(let e of hi)if(e.pattern.test(r))return e.api}return n.includes("/v1/messages")?"anthropic-messages":n.includes("/v1beta")?"google-generative-ai":"api.openai.com"===r&&n.includes("/v1/responses")||/\/responses$/.test(n)?"openai-responses":void 0}(e.baseUrl);return t&&t!==e.current?{api:t,autoDetected:!0,note:`检测到端点格式:${ho(t)}`}:{api:e.current,autoDetected:!1}}({baseUrl:h,current:m,locked:!!o||!!R?.api||y}),W=L.api,A=L.autoDetected,P=u.trim(),F=u!==M.current,D=!i&&F&&""!==P&&a.includes(P),O=!h.trim()&&!o,H=""!==P&&!D&&!O,B=(0,s.useCallback)(async()=>{let e=hl(k);if(e){S({phase:"testing"});try{let t={api:W};h.trim()&&(t.baseUrl=h.trim()),g.trim()&&(t.apiKey=g.trim()),R?.headers&&(t.headers=R.headers);let r=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:P,provider:t,model:{id:e}})}),n=await r.json();if(!r.ok||!n.ok)return void S({phase:"error",message:n.error??`HTTP ${r.status}`});let s=[c("desktop.modelsOk")];"number"==typeof n.status&&s.push(`HTTP ${n.status}`),"number"==typeof n.latencyMs&&s.push(`${n.latencyMs} ms`),S({phase:"ok",message:s.join(" \xb7 ")})}catch(e){S({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[g,h,R,W,k,c,P]),U="loading"===$.status?{text:c("desktop.modelsProbeLoading"),tone:"muted"}:"error"===$.status?{text:c($.errorKind?hy[$.errorKind]:"desktop.modelsProbeErrorUpstream"),tone:"error"}:"ready"===$.status&&"saved"===$.source?{text:c("desktop.modelsProbeFromSaved"),tone:"muted"}:"ready"===$.status?{text:c("desktop.modelsProbeReady",{count:$.models.length}),tone:"muted"}:{text:c("desktop.modelsProbeIdle"),tone:"muted"};if(!t)return null;let _=i?c("desktop.modelsSetupSaveProvider"):o?.name??c("desktop.modelsAddProvider"),K=o?function(e){try{let t=new URL(e);return`${t.host}${t.pathname.replace(/\/+$/,"")}`}catch{return e}}(o.baseUrl):h.trim()||c("desktop.modelsServiceCustomEndpoint");return(0,n.jsx)("div",{className:"settings-sheet-overlay","data-settings-child-dialog":"true",children:(0,n.jsxs)("div",{className:"settings-sheet",role:"dialog","aria-label":_,children:[(0,n.jsxs)("div",{className:"settings-sheet-head",children:[(0,n.jsxs)("div",{className:"settings-sheet-head-copy",children:[(0,n.jsx)("span",{className:"settings-sheet-title",children:_}),(0,n.jsx)("span",{className:"settings-sheet-sub",children:K})]}),(0,n.jsx)("button",{type:"button",className:"settings-sheet-close",onClick:r,"aria-label":c("desktop.modelsClose"),title:c("desktop.modelsClose"),children:"\xd7"})]}),(0,n.jsxs)("div",{className:"settings-sheet-body",children:[(0,n.jsxs)("label",{style:hb,children:[(0,n.jsx)("span",{style:hk,children:c("desktop.modelsProviderName")}),(0,n.jsx)("input",{value:u,onChange:e=>p(e.target.value),readOnly:!!i,placeholder:"provider-name",style:{...hj,fontFamily:"var(--font-mono)",opacity:i?.7:1}}),D&&(0,n.jsxs)("span",{style:{...hw,color:"var(--status-error)"},children:[c("desktop.modelsProviderName")," \xb7 ",P]})]}),(0,n.jsxs)("label",{style:hb,children:[(0,n.jsx)("span",{style:hk,children:c("desktop.modelsBaseUrl")}),(0,n.jsx)("input",{value:h,onChange:e=>{x(e.target.value),b(!1)},readOnly:I,placeholder:"https://api.example.com/v1",style:{...hj,fontFamily:"var(--font-mono)",opacity:I?.7:1}}),O&&(0,n.jsx)("span",{style:{...hw,color:"var(--status-error)"},children:c("desktop.modelsSetupBaseUrlRequired")})]}),!o&&(0,n.jsx)("button",{type:"button",onClick:d,style:{alignSelf:"flex-start",padding:0,border:"none",background:"none",color:"var(--ds-accent)",cursor:"pointer",fontSize:"var(--text-ui-xs)"},children:c("desktop.modelsServiceCustomEndpoint")}),(0,n.jsxs)("label",{style:hb,children:[(0,n.jsx)("span",{style:hk,children:c("desktop.modelsApiKey")}),(0,n.jsx)(hS,{value:g,onChange:f,placeholder:c("desktop.modelsApiKeyPlaceholder")}),(0,n.jsx)("span",{style:hw,children:c("desktop.modelsApiKeyHelp")})]}),(0,n.jsxs)("label",{style:hb,children:[(0,n.jsx)("span",{style:hk,children:c("desktop.modelsApi")}),(0,n.jsx)("select",{value:W,onChange:e=>{v(e.target.value),b(!0)},style:hj,children:hv.map(e=>(0,n.jsx)("option",{value:e,children:ho(e)},e))}),A&&(0,n.jsx)("span",{style:hw,children:c("desktop.modelsApiStyleAutoDetected",{format:ho(W)})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",minWidth:0},children:[(0,n.jsx)("span",{style:{...hw,color:"error"===U.tone?"var(--status-error)":"var(--ds-text-muted)",flex:1,minWidth:0},children:U.text}),(0,n.jsx)("button",{type:"button",onClick:$.reload,disabled:!$.canReload||"loading"===$.status,style:{height:26,padding:"0 10px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:$.canReload?"var(--ds-text-secondary)":"var(--ds-text-muted)",cursor:$.canReload?"pointer":"not-allowed",fontSize:"var(--text-ui-xs)",flexShrink:0},children:c("desktop.modelsDiscoverReload")})]}),$.error&&"error"===$.status&&(0,n.jsx)("div",{style:{padding:"6px 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)",lineHeight:1.4,overflowWrap:"anywhere"},children:$.error}),(0,n.jsx)(hf,{discovered:$.models,models:k,onModelsChange:j,defaultModelId:hl(k),discoveryStatus:$.status}),z&&(0,n.jsx)("span",{style:hw,children:c("desktop.modelsRecommendedHint")})]}),(0,n.jsxs)("div",{className:"settings-sheet-foot",children:[(0,n.jsx)("span",{className:"settings-sheet-foot-status",style:{color:"error"===w.phase?"var(--status-error)":"var(--ds-text-muted)"},children:"testing"===w.phase?c("desktop.modelsTesting"):w.message??""}),(0,n.jsxs)("div",{className:"settings-sheet-foot-actions",children:[(0,n.jsx)("button",{type:"button",onClick:()=>{B()},disabled:"testing"===w.phase||!hl(k),style:{height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:hl(k)?"var(--ds-text-secondary)":"var(--ds-text-muted)",cursor:hl(k)?"pointer":"not-allowed",fontSize:"var(--text-ui-xs)"},children:c("desktop.modelsSetupTest")}),(0,n.jsx)("button",{type:"button",onClick:r,style:{height:30,padding:"0 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"none",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-xs)"},children:c("desktop.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>{H&&l({name:P,api:W,...h.trim()?{baseUrl:h.trim()}:{},...g.trim()?{apiKey:g.trim()}:{},...R?.headers?{headers:R.headers}:{},models:k})},disabled:!H,style:{height:30,padding:"0 14px",border:"none",borderRadius:"var(--radius-sm)",background:H?"var(--ds-accent)":"var(--ds-bg-secondary)",color:H?"var(--accent-fg)":"var(--ds-text-muted)",cursor:H?"pointer":"not-allowed",fontSize:"var(--text-ui-xs)",fontWeight:600},children:c("desktop.modelsSetupSaveProvider")})]})]})]})})}let hz=["name","reasoning","contextWindow","maxTokens","thinkingLevelMap","hidden","input"];function hT(e){if(""===e.trim())return;let t=Number(e);return Number.isFinite(t)&&t>0?t:void 0}function hR(e){let t=hT(e.contextWindow??""),r=hT(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!==r?{maxTokens:r}:{},...n?{thinkingLevelMap:n}:{},..."boolean"==typeof e.hidden?{hidden:e.hidden}:{},...e.input&&e.input.length>0?{input:[...e.input]}:{}}}function hI(e,t){return{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,input:Array.isArray(t.input)?t.input:e.input}}function hN(e){let{providerId:t,onRegisterFlush:r,onConfigChange:i}=e,{t:o}=(0,J.s)(),a=tu(),[l,d]=(0,s.useState)([]),[c,u]=(0,s.useState)({}),[p,h]=(0,s.useState)({}),[x,g]=(0,s.useState)(new Set),[f,m]=(0,s.useState)(!0),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(null),[j,w]=(0,s.useState)(!1),[S,C]=(0,s.useState)(null),z=(0,s.useRef)(c),T=(0,s.useRef)(p),R=(0,s.useRef)(l),I=(0,s.useRef)(x),N=(0,s.useRef)(0),M=(0,s.useRef)(null);z.current=c,T.current=p,R.current=l,I.current=x;let E=(0,s.useCallback)(async()=>{let e=await fetch(`/api/models-config/builtin?provider=${encodeURIComponent(t)}`);if(!e.ok)return;let r=await e.json();if(!r.models)return;d(r.models),R.current=r.models;let n={};for(let e of r.models)n[e.id]=hI(e,r.overrides?.[e.id]??{});u(n),h(n),g(new Set)},[t]);(0,s.useEffect)(()=>{let e=!1;return m(!0),k(null),(async()=>{try{let r=await fetch(`/api/models-config/builtin?provider=${encodeURIComponent(t)}`),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);if(e)return;let s={};for(let e of n.models)s[e.id]=hI(e,n.overrides[e.id]??{});d(n.models),u(s),h(s),g(new Set)}catch(t){e||k(t instanceof Error?t.message:String(t))}finally{e||m(!1)}})(),()=>{e=!0}},[t]);let $=(0,s.useCallback)((e,t)=>{N.current+=1,u(r=>({...r,[e]:{...r[e]??{},...t}})),g(t=>new Set(t).add(e))},[]),L=(0,s.useCallback)(async()=>{let e=M.current;if(e)return e;let r=(async()=>{let e=new Set(I.current);if(0===e.size)return;let r=N.current,n={...z.current},s={},o={};for(let e of R.current){let t=n[e.id],r=T.current[e.id];t&&(s[e.id]=hR(t)),r&&(o[e.id]=hR(r))}let a=function(e,t,r){let n={};for(let s of e){let e=t[s];if(!e)continue;let i=r[s]??{},o={};for(let t of hz){let r=e[t],n=i[t];JSON.stringify(r)!==JSON.stringify(n)&&(o[t]=void 0===r?null:r)}Object.keys(o).length>0&&(n[s]=o)}return n}(e,s,o);if(0===Object.keys(a).length)return void g(new Set);y(!0),k(null),w(!1);try{let s=await fetch("/api/models-config/builtin",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,patches:a})}),o=await s.json();if(!s.ok||o.error)throw Error(o.error??`HTTP ${s.status}`);i?.(o.provider??null);let l={...T.current};for(let t of e){let e=n[t];e&&(l[t]={...e})}T.current=l,h(l),N.current===r&&g(t=>new Set([...t].filter(t=>!e.has(t)))),w(!0),setTimeout(()=>w(!1),2e3)}catch(e){throw k(e instanceof Error?e.message:String(e)),e}finally{y(!1)}})();M.current=r;try{await r}finally{M.current===r&&(M.current=null)}},[i,t]);(0,s.useEffect)(()=>{if(r)return r(t,L)??void 0},[r,t,L]);let[W,A]=(0,s.useState)({phase:"idle"}),[P,F]=(0,s.useState)([]),D=(0,s.useCallback)(async()=>{A({phase:"loading"});try{let e=await fetch("/api/models-config/discover",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:t,provider:{}})}),r=await e.json();if(!e.ok||r.error||!r.models)return void A({phase:"error",message:r.error??`HTTP ${e.status}`});let n=new Set(R.current.map(e=>e.id)),s=new Set(r.models.filter(e=>!n.has(e.id)).map(e=>e.id));A({phase:"success",models:r.models,newIds:s}),F(r.models.filter(e=>s.has(e.id)).map(e=>e.id))}catch(e){A({phase:"error",message:e instanceof Error?e.message:String(e)})}},[t]),O=(0,s.useCallback)(async()=>{if(W.models?.length){y(!0),k(null);try{let e=W.models.map(e=>({id:e.id,...e.name?{name:e.name}:{}})),r=await fetch("/api/models-config/builtin",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,models:e})}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);i?.(n.provider??null),A({phase:"idle"}),F([]),await E()}catch(e){k(e instanceof Error?e.message:String(e))}finally{y(!1)}}},[W.models,i,t,E]),[H,B]=(0,s.useState)(!1),[U,_]=(0,s.useState)({id:"",name:"",contextWindow:"",maxTokens:"",reasoning:!1,vision:!1}),K=(0,s.useCallback)(()=>{_({id:"",name:"",contextWindow:"",maxTokens:"",reasoning:!1,vision:!1})},[]),q=(0,s.useCallback)(async()=>{let e=U.id.trim();if(!e)return void k(o("desktop.builtinModelsManualIdRequired"));if(R.current.some(t=>t.id===e))return void k(o("desktop.builtinModelsManualDuplicate"));y(!0),k(null);try{let r=hT(U.contextWindow),n=hT(U.maxTokens),s=await fetch("/api/models-config/builtin",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,models:[{id:e,...U.name.trim()?{name:U.name.trim()}:{},...U.reasoning?{reasoning:!0}:{},input:U.vision?["text","image"]:["text"],...void 0!==r?{contextWindow:r}:{},...void 0!==n?{maxTokens:n}:{}}]})}),o=await s.json();if(!s.ok||o.error)throw Error(o.error??`HTTP ${s.status}`);i?.(o.provider??null),K(),B(!1),await E(),w(!0),setTimeout(()=>w(!1),2e3)}catch(e){k(e instanceof Error?e.message:String(e))}finally{y(!1)}},[U,i,t,E,K,o]);return f?(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)",marginTop:14,paddingTop:12},children:(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)"},children:o("desktop.modelsLoading")})}):(0,n.jsxs)("div",{style:{marginTop:14,paddingTop:12,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-primary)"},children:o("desktop.builtinModelsTitle")}),(0,n.jsxs)("div",{style:{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:()=>{D()},disabled:"loading"===W.phase,style:{padding:"5px 12px",background:(W.phase,"var(--ds-bg-secondary)"),border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"loading"===W.phase?"var(--ds-text-muted)":"var(--ds-text-secondary)",cursor:"loading"===W.phase?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)"},children:"loading"===W.phase?o("desktop.modelsDiscoveryFetching"):o("desktop.builtinModelsFetchNew")}),"success"===W.phase&&W.models&&(0,n.jsx)("button",{type:"button",onClick:()=>{O()},disabled:v||0===P.length,style:{padding:"5px 12px",background:P.length>0&&!v?"var(--ds-accent)":"var(--ds-bg-secondary)",border:"none",borderRadius:"var(--radius-sm)",color:P.length>0&&!v?"#fff":"var(--ds-text-muted)",cursor:P.length>0&&!v?"pointer":"not-allowed",fontSize:"var(--text-ui-sm)",fontWeight:600},children:v?o("desktop.modelsSaving"):`${o("desktop.modelsAddModelManual")} (${P.length})`}),(0,n.jsx)("button",{type:"button",onClick:()=>{H&&K(),B(e=>!e)},style:{padding:"5px 12px",background:"var(--ds-bg-secondary)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-sm)"},children:H?o("desktop.cancel"):o("desktop.builtinModelsManualAdd")})]}),H&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"10px 10px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",lineHeight:1.5},children:o("desktop.builtinModelsManualHint")}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:a?"1fr":"1fr 1fr",gap:8},children:[(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:3,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)"},children:[o("desktop.modelsIdRequired"),(0,n.jsx)("input",{type:"text",value:U.id,placeholder:"model-id",onChange:e=>_(t=>({...t,id:e.target.value})),style:{padding:"4px 7px",fontSize:"var(--text-ui-xs)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:3,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)"},children:[o("desktop.modelsName"),(0,n.jsx)("input",{type:"text",value:U.name,placeholder:o("desktop.modelsDisplayName"),onChange:e=>_(t=>({...t,name:e.target.value})),style:{padding:"4px 7px",fontSize:"var(--text-ui-xs)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:3,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)"},children:[o("desktop.modelsContextWindow"),(0,n.jsx)("input",{type:"number",min:1,value:U.contextWindow,placeholder:"128000",onChange:e=>_(t=>({...t,contextWindow:e.target.value})),style:{padding:"4px 7px",fontSize:"var(--text-ui-xs)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:3,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)"},children:[o("desktop.modelsMaxOutputTokens"),(0,n.jsx)("input",{type:"number",min:1,value:U.maxTokens,placeholder:"16384",onChange:e=>_(t=>({...t,maxTokens:e.target.value})),style:{padding:"4px 7px",fontSize:"var(--text-ui-xs)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)"}})]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:16,flexWrap:"wrap"},children:[(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:U.reasoning,onChange:e=>_(t=>({...t,reasoning:e.target.checked}))}),o("desktop.builtinModelsReasoning")]}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:U.vision,onChange:e=>_(t=>({...t,vision:e.target.checked}))}),o("desktop.modelsImageInput")]})]}),(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:8},children:(0,n.jsx)("button",{type:"button",onClick:()=>{q()},disabled:v||!U.id.trim(),style:{padding:"5px 14px",background:v||!U.id.trim()?"var(--ds-bg-secondary)":"var(--ds-accent)",border:"none",borderRadius:"var(--radius-sm)",color:v||!U.id.trim()?"var(--ds-text-muted)":"#fff",cursor:v||!U.id.trim()?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)",fontWeight:600},children:v?o("desktop.modelsSaving"):o("desktop.modelsAdd")})})]}),"error"===W.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-xs)",color:"var(--status-error)"},children:W.message}),"success"===W.phase&&W.models&&(0,n.jsx)("div",{style:{maxHeight:200,overflowY:"auto",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)"},children:W.models.map(e=>{let t=W.newIds?.has(e.id)??!1,r=P.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:r,disabled:!t,onChange:t=>{F(r=>t.target.checked?[...r,e.id]:r.filter(t=>t!==e.id))},style:{width:13,height:13,accentColor:"var(--ds-accent)",flexShrink:0}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",fontWeight:t?600:400},children:e.name||e.id}),(0,n.jsx)("code",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)"},children:e.id}),t&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 6px",borderRadius:"var(--radius-md)",background:"var(--ds-accent)",color:"var(--accent-fg)",marginLeft:"auto"},children:"新"})]},e.id)})})]}),b&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-xs)",color:"var(--status-error)"},children:b}),0===l.length&&!b&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:o("desktop.builtinModelsEmpty")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:l.map(e=>{let t=c[e.id]??{},r=S===e.id,s=x.has(e.id),i=!0===e.custom;return(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",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:()=>C(r?null:e.id),style:{background:"none",border:"none",cursor:"pointer",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",fontWeight:600,padding:0,textAlign:"left"},children:[t.name||e.name||e.id,s&&(0,n.jsx)("span",{style:{color:"var(--ds-accent)",marginLeft:6},children:"•"})]}),(0,n.jsx)("code",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)"},children:e.id}),i&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 6px",borderRadius:"var(--radius-md)",background:"var(--ds-bg-active)",color:"var(--ds-accent)"},children:o("desktop.builtinModelsManualBadge")}),(t.reasoning??e.reasoning)&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 6px",borderRadius:"var(--radius-md)",background:"var(--ds-bg-active)",color:"var(--ds-text-secondary)"},children:"reasoning"}),(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)"},children:[o("desktop.builtinModelsContext"),": ",(0,n.jsx)("b",{children:t.contextWindow?Number(t.contextWindow).toLocaleString():"—"})," \xb7 ",o("desktop.builtinModelsMaxTokens"),": ",(0,n.jsx)("b",{children:t.maxTokens?Number(t.maxTokens).toLocaleString():"—"})]})]}),r&&(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:"var(--text-ui-sm)",color:"var(--ds-text-primary)",width:"100%"},children:[o("desktop.modelsName"),(0,n.jsx)("input",{type:"text",value:t.name??"",placeholder:e.name||e.id,onChange:t=>$(e.id,{name:t.target.value.trim()||void 0}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:"var(--text-ui-xs)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)"}}),(0,n.jsxs)("label",{style:{display:"flex",gap:4,alignItems:"center",fontSize:"var(--text-ui-xs)",color:t.hidden?"var(--status-error)":"var(--ds-text-secondary)",cursor:"pointer",whiteSpace:"nowrap",marginLeft:8},children:[(0,n.jsx)("input",{type:"checkbox",checked:!0===t.hidden,onChange:t=>$(e.id,{hidden:t.target.checked})}),o("desktop.builtinModelsHide")]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:16,flexWrap:"wrap",flexDirection:a?"column":"row",alignItems:a?"flex-start":"center"},children:[(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:!0===t.reasoning,onChange:t=>$(e.id,{reasoning:t.target.checked})}),o("desktop.builtinModelsReasoning")]}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:t.input?.includes("image")??!1,onChange:t=>$(e.id,{input:t.target.checked?["text","image"]:["text"]})}),o("desktop.modelsImageInput")]}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",flex:a?1:void 0,width:a?"100%":void 0},children:[o("desktop.modelsContextWindow"),(0,n.jsx)("input",{type:"number",min:1,value:t.contextWindow??"",placeholder:null!=e.contextWindow?String(e.contextWindow):"",onChange:t=>$(e.id,{contextWindow:t.target.value}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:"var(--text-ui-xs)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:6,alignItems:"center",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",flex:a?1:void 0,width:a?"100%":void 0},children:[o("desktop.modelsMaxOutputTokens"),(0,n.jsx)("input",{type:"number",min:1,value:t.maxTokens??"",placeholder:null!=e.maxTokens?String(e.maxTokens):"",onChange:t=>$(e.id,{maxTokens:t.target.value}),style:{flex:1,minWidth:0,padding:"4px 7px",fontSize:"var(--text-ui-xs)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)"}})]})]}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)"},children:o("desktop.builtinModelsThinking")}),(0,n.jsx)(xe,{value:t.thinkingLevelMap,onChange:t=>$(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:()=>{L().catch(()=>{})},disabled:v||0===x.size,style:{alignSelf:"flex-start",padding:"5px 14px",background:x.size>0&&!v?"var(--ds-accent)":"var(--ds-bg-secondary)",border:"none",borderRadius:"var(--radius-sm)",color:x.size>0&&!v?"#fff":"var(--ds-text-muted)",cursor:x.size>0&&!v?"pointer":"not-allowed",fontSize:"var(--text-ui-sm)",fontWeight:600},children:v?o("desktop.modelsSaving"):j?o("desktop.modelsSaved"):o("desktop.modelsSave")}),x.size>0&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:o("desktop.builtinModelsDirty",{count:x.size})})]})]})}let hM=["openai-codex","deepseek","openrouter","moonshotai","moonshotai-cn","minimax","minimax-cn","vercel-ai-gateway","opencode-go"];function hE(e){try{return"session"===e?window.sessionStorage:window.localStorage}catch{return null}}function h$(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"local";try{let n=hE(r);if(!n)return!1;return""===t?n.removeItem(e):n.setItem(e,t),!0}catch{return!1}}let hL="pi-web:provider-usage:";function hW(e){let{providerId:t,enabled:r}=e;return hM.includes(t)?(0,n.jsx)(hA,{providerId:t,enabled:r}):null}function hA(e){let{providerId:t,enabled:r}=e,[i,o]=(0,s.useState)(null),[a,l]=(0,s.useState)(!1),[d,c]=(0,s.useState)(null),[u,p]=(0,s.useState)(!1),h=(0,s.useRef)(null),{locale:x,t:g}=(0,J.s)();(0,s.useEffect)(()=>{h.current&&clearTimeout(h.current),p(!1),o(null);try{let e=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";try{return hE(t)?.getItem(e)??null}catch{return null}}(`${hL}${t}`);if(e){let t=JSON.parse(e);t?.status==="ready"&&t.report&&Array.isArray(t.report.buckets)&&Array.isArray(t.report.metrics)&&o(t)}}catch{!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"local";h$(e,"",t)}(`${hL}${t}`)}return c(null),()=>{h.current&&clearTimeout(h.current)}},[t]);let f=(0,s.useCallback)(async()=>{l(!0),c(null);try{let e=await fetch("/api/provider-usage/query",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerId:t})}),r=await e.json();if(!e.ok)throw Error(r.error??`HTTP ${e.status}`);"ready"===r.status?(o(r),h$(`${hL}${t}`,JSON.stringify(r)),p(!0),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>p(!1),2e3)):c(r.message??g("providerUsage.queryFailed"))}catch(e){c(e instanceof Error?e.message:g("providerUsage.queryFailed"))}finally{l(!1)}},[t,g]),m=i?.status==="ready"?i.report:void 0;return(0,n.jsxs)("section",{style:{paddingTop:10,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:8},children:[(0,n.jsx)("span",{style:{fontSize:13,color:"var(--text)",fontWeight:600,lineHeight:1.35},children:g("providerUsage.usage")}),(0,n.jsx)("button",{type:"button",onClick:f,disabled:!r||a,title:g(a?"providerUsage.refreshing":"providerUsage.refresh"),"aria-label":g(a?"providerUsage.refreshing":"providerUsage.refresh"),style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",width:32,height:30,padding:0,background:"none",border:"none",color:u?"#4ade80":"var(--text-dim)",cursor:r&&!a?"pointer":"default",borderRadius:5,flexShrink:0,opacity:r?1:.6,transition:"color 0.3s"},children:u?(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#4ade80",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:a?{animation:"spin 0.8s linear infinite"}:void 0,"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,n.jsx)("path",{d:"M3 3v5h5"})]})}),m&&(0,n.jsx)("span",{title:new Date(m.capturedAt).toLocaleString(x),style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap"},children:g("providerUsage.updated",{time:(0,t1.ob)(m.capturedAt,x)})})]}),!m&&!d&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:g("providerUsage.notQueried")}),d&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--status-error)"},children:d}),m&&(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"180px minmax(0, 1fr)",columnGap:14,rowGap:8,alignItems:"baseline",minWidth:0,width:"min(100%, 420px)",maxWidth:"100%",fontSize:12},children:[m.buckets.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.groupLabel?`${e.groupLabel} / ${e.label}`:e.label}),(0,n.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:function(e,t){if("percent"===e.unit&&void 0!==e.remaining){let t=e.resetsAt?` / ${new Date(1e3*e.resetsAt).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}`:"";return`${Math.round(e.remaining)}%${t}`}return"currency"===e.unit?`${"CNY"===e.currency?"CNY ":"$"}${hP(e.remaining??e.limit)}`:void 0!==e.remaining&&void 0!==e.limit?`${hP(e.remaining)} / ${hP(e.limit)}`:e.period??t}(e,g("providerUsage.available"))})]},e.id)),m.metrics.map(e=>{var t;return(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("span",{style:{color:"var(--text)",fontFamily:"var(--font-mono)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"currency"===(t=e).unit?`${"CNY"===t.currency?"CNY ":"$"}${t.value}`:String(t.value)})]},e.id)})]})]})}function hP(e){return void 0===e?"-":Number.isInteger(e)?String(e):e.toFixed(2)}let hF={"claude-code":"desktop.importSourceClaudeCode",codex:"desktop.importSourceCodex",opencode:"desktop.importSourceOpenCode","cc-switch":"desktop.importSourceCcSwitch",pi:"desktop.importSourcePi"};function hD(e){if(!e)return"";try{return new URL(e).host||e}catch{return e.replace(/^https?:\/\//,"").split("/")[0]||e}}function hO(e){let{onImported:t,onClose:r}=e,{t:i}=(0,J.s)(),[o,a]=(0,s.useState)({phase:"idle"}),[l,d]=(0,s.useState)(new Set),[c,u]=(0,s.useState)(!1),[p,h]=(0,s.useState)(null),x=e=>`${e.source}:${e.externalId}`,g=(0,s.useCallback)(async()=>{a({phase:"scanning"}),h(null);try{let e=await fetch("/api/models-config/import",{cache:"no-store"}),t=await e.json();if(!e.ok||t.error)return void a({phase:"error",message:t.error??`HTTP ${e.status}`});a({phase:"ready",candidates:t.candidates??[]}),d(new Set)}catch(e){a({phase:"error",message:e instanceof Error?e.message:String(e)})}},[]);(0,s.useEffect)(()=>{g()},[g]);let f="ready"===o.phase?o.candidates:[],m=(0,s.useMemo)(()=>{let e=new Map;for(let t of f){let r=e.get(t.source)??[];r.push(t),e.set(t.source,r)}return[...e.entries()]},["ready"===o.phase?o.candidates:null]),v=f.map(x),y=v.length>0&&v.every(e=>l.has(e)),b=async()=>{let e=[...l];if(0!==e.length){u(!0),h(null);try{let r=await fetch("/api/models-config/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keys:e})}),n=await r.json();if(!r.ok||n.error)return void a({phase:"error",message:n.error??`HTTP ${r.status}`});h(i("desktop.modelImportResult",{imported:n.imported??0,skipped:n.skipped??0})),t(),d(new Set)}catch(e){a({phase:"error",message:e instanceof Error?e.message:String(e)})}finally{u(!1)}}};return(0,n.jsxs)("div",{className:"settings-panel is-padded",style:{gap:10,padding:14,background:"var(--ds-tile-deep)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{className:"settings-row-title",children:i("desktop.modelImportTitle")}),(0,n.jsx)("div",{className:"settings-row-description",children:i("desktop.modelImportDescription")})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:6,flexShrink:0},children:[(0,n.jsx)("button",{type:"button",className:"config-button config-button-secondary config-button-small",onClick:()=>void g(),disabled:"scanning"===o.phase,children:"scanning"===o.phase?i("desktop.modelImportScanning"):i("desktop.modelImportRescan")}),(0,n.jsx)("button",{type:"button",className:"config-button config-button-ghost config-button-small",onClick:r,children:i("desktop.close")})]})]}),"error"===o.phase&&(0,n.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",color:"var(--status-error)",fontSize:"var(--text-ui-sm)"},children:[(0,n.jsx)(nG.M,{size:15}),(0,n.jsx)("span",{children:o.message})]}),"ready"===o.phase&&0===f.length&&(0,n.jsx)("div",{className:"settings-row",style:{color:"var(--ds-text-muted)",fontSize:"var(--text-ui-sm)"},children:i("desktop.modelImportNone")}),"ready"===o.phase&&f.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"settings-row is-hoverable",style:{padding:"8px 12px",background:"var(--ds-tile)"},children:[(0,n.jsxs)("span",{className:"settings-row-copy",style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("input",{type:"checkbox",checked:y,onChange:()=>{d(y?new Set:new Set(v))},style:{accentColor:"var(--ds-accent)"}}),(0,n.jsx)("span",{className:"settings-row-title",children:i("desktop.modelImportSelectAll",{count:f.length})})]}),(0,n.jsx)("button",{type:"button",className:"config-button config-button-primary config-button-small",onClick:()=>void b(),disabled:0===l.size||c,children:c?i("desktop.modelImportImporting"):i("desktop.modelImportImport",{count:l.size})})]}),(0,n.jsx)("div",{style:{maxHeight:320,overflowY:"auto",display:"flex",flexDirection:"column",gap:10},children:m.map(e=>{let[t,r]=e;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-xs)",fontWeight:700,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.07em",padding:"2px 4px"},children:[i(hF[t]??t)," \xb7 ",r.length]}),r.map(e=>{let t=x(e),r=l.has(t);return(0,n.jsxs)("label",{className:"settings-row is-hoverable",style:{padding:"8px 12px",gap:10,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:r,onChange:()=>{d(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},style:{accentColor:"var(--ds-accent)",flexShrink:0}}),(0,n.jsxs)("span",{style:{minWidth:0,flex:1,display:"flex",flexDirection:"column"},children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0},children:[(0,n.jsx)("span",{className:"settings-row-title",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),e.hasKey&&(0,n.jsx)("span",{title:i("desktop.modelImportHasKey"),style:{fontSize:"var(--text-ui-xs)",padding:"1px 5px",borderRadius:"var(--radius-xs)",background:"var(--status-success-bg)",color:"var(--status-success)",border:"1px solid var(--status-success-border)",flexShrink:0},children:"key"})]}),(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.api," \xb7 ",e.models.length," ",i("desktop.modelsPlural"),hD(e.baseUrl)?` \xb7 ${hD(e.baseUrl)}`:""]})]})]},t)})]},t)})})]}),p&&(0,n.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center",color:"var(--status-success)",fontSize:"var(--text-ui-sm)"},children:[(0,n.jsx)(q.S,{size:14}),(0,n.jsx)("span",{children:p})]})]})}function hH(e){return new Map(Object.entries(e.providers??{}).map(e=>{let[t,r]=e;return[t,(r.models??[]).map(e=>e.id)]}))}function hB(e,t,r){if(r<=0)return;let n=e.get(t)??[];e.set(t,[...n,...Array.from({length:r},()=>null)])}function hU(e,t){let r=t.filter(e=>!e.enabled).map(e=>e.ref),n=t.filter(e=>e.enabled).map(e=>e.ref),s=e?.editable===!0;return{enableRefs:r,disableRefs:n,canEnable:s&&r.length>0,canDisable:s&&n.length>0&&(e?.enabledTotal??0)-n.length>=1}}function h_(e,t){return e?.providers.find(e=>e.id===t)}let hK={"last-model":"models.enabledLastModel","project-scope":"models.enabledProjectScope"};function hq(e){let{controller:t}=e,{t:r}=(0,J.s)(),{view:s,pending:i}=t;if(!s)return null;let o=!s.allEnabled,a=s.stalePatterns.length;return o||0!==a?(0,n.jsxs)("div",{className:"enabled-models-banner",children:[(0,n.jsxs)("span",{className:"enabled-models-banner-text",...a>0?{title:r("models.enabledStaleHint")}:{},children:[(0,n.jsx)("code",{className:"enabled-models-banner-key",title:s.settingsPath,children:s.settingsPath}),(0,n.jsxs)("code",{className:"enabled-models-banner-facts",children:[`\xb7 enabledModels ${s.enabledTotal}/${s.availableTotal}`,a>0&&` \xb7 ${r("models.enabledStale",{count:a})}`]})]}),s.editable&&a>0&&(0,n.jsx)(lq,{size:"small",onClick:t.pruneStale,disabled:null!==i,title:r("models.enabledPruneHint"),children:r("models.enabledPrune")}),s.editable&&o&&(0,n.jsx)(lq,{size:"small",onClick:t.clearScope,disabled:null!==i,title:r("models.enabledClearHint"),children:r("models.enabledClear")})]}):null}function hV(e){let t,r,s,{providerId:i,controller:o}=e,{t:a}=(0,J.s)(),{view:l,loading:d,pending:c,failure:u}=o,p=h_(l,i),h=u?u.messageKey?a(u.messageKey):u.message:null;if(d&&!l)return null;if(!p)return(0,n.jsx)(lV,{checked:!1,disabled:!0,label:a("models.enabledCustomEmpty"),onChange:()=>{}});let x=(t=hU(l,p.models),s=(r=p.models.length>0&&p.enabledCount===p.models.length)?!t.canDisable:!t.canEnable,{checked:r,blocked:s,reason:s?l?.editable?"last-model":"project-scope":null});return(0,n.jsxs)(n.Fragment,{children:[h&&(0,n.jsx)("span",{className:"enabled-models-switch-error",children:h}),(0,n.jsx)(lV,{checked:x.checked,loading:c===`provider:${p.id}`,disabled:null!==c||x.blocked,label:x.reason?a(hK[x.reason]):a("models.enabledProviderToggle",{provider:p.name}),onChange:e=>o.setProvider(p.id,e)})]})}function hJ(e){var t;let r,{providerId:i,controller:o}=e,{t:a}=(0,J.s)(),[l,d]=(0,s.useState)(""),{view:c,loading:u,pending:p,failure:h}=o,x=h_(c,i),g=function(e,t){let[r,n]=(0,s.useState)(!1),[i,o]=(0,s.useState)(null);return(0,s.useEffect)(()=>o(null),[e]),{refreshing:r,note:i,refresh:(0,s.useCallback)(()=>{n(!0),o(null),(async()=>{try{let r=await fetch("/api/models/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);"offline"===n.reason?o("models.catalogOffline"):n.completed?o(n.changed?"models.catalogUpdated":"models.catalogUnchanged"):o("models.catalogUnreachable"),n.changed&&t()}catch{o("models.catalogUnreachable")}finally{n(!1)}})()},[e,t])}}(i,o.refresh);if((0,s.useEffect)(()=>d(""),[i]),u&&!c)return(0,n.jsx)("div",{className:"enabled-models-empty",children:a("agents.modelsLoading")});if(!x)return h?.message?(0,n.jsx)("div",{className:"enabled-models-error",children:h.message}):(0,n.jsx)("div",{className:"enabled-models-empty",children:a("models.enabledUnavailable")});let f=(t=x.models,(r=l.trim().toLowerCase())?t.filter(e=>e.id.toLowerCase().includes(r)||e.name.toLowerCase().includes(r)):[...t]),m=hU(c,f),v=f.length!==x.models.length,y=null!==p,b=`provider:${x.id}`,k=(e,t)=>{v?o.setModels(b,t,e):o.setProvider(x.id,e)};return(0,n.jsxs)("div",{className:"enabled-models-section",children:[(0,n.jsxs)("div",{className:"enabled-models-header",children:[(0,n.jsx)("span",{className:"enabled-models-title",children:a("models.enabledSection")}),(0,n.jsx)("span",{className:"enabled-models-count",children:a("models.enabledCount",{enabled:x.enabledCount,total:x.models.length})}),(0,n.jsx)(lq,{size:"small",disabled:y||!m.canEnable,onClick:()=>k(!0,m.enableRefs),children:v?a("models.enableShown"):a("models.enableAll")}),(0,n.jsx)(lq,{size:"small",disabled:y||!m.canDisable,title:!m.canDisable&&m.disableRefs.length>0?a("models.enabledLastModel"):void 0,onClick:()=>k(!1,m.disableRefs),children:v?a("models.disableShown"):a("models.disableAll")}),(0,n.jsx)(lq,{size:"small",disabled:y||g.refreshing,title:a("models.refreshCatalogHint"),onClick:g.refresh,children:g.refreshing?a("models.refreshingCatalog"):a("models.refreshCatalog")})]}),g.note&&(0,n.jsx)("div",{className:"enabled-models-note",children:a(g.note)}),!c?.editable&&(0,n.jsx)("div",{className:"enabled-models-note",children:a("models.enabledProjectScope")}),h&&(0,n.jsx)("div",{className:"enabled-models-error",children:h.messageKey?a(h.messageKey):h.message}),x.models.length>8&&(0,n.jsx)("input",{value:l,onChange:e=>d(e.target.value),placeholder:a("models.enabledFilterPlaceholder",{count:x.models.length}),"aria-label":a("models.enabledFilter"),className:"enabled-models-filter"}),(0,n.jsx)("div",{className:"enabled-models-list",children:0===f.length?(0,n.jsx)("div",{className:"enabled-models-empty",children:a("models.enabledNoMatches")}):f.map(e=>{let t=e.enabled&&(c?.enabledTotal??0)<=1;return(0,n.jsxs)("div",{className:"enabled-models-row",children:[(0,n.jsxs)("span",{className:"enabled-models-row-text",children:[(0,n.jsx)("span",{className:"enabled-models-row-name",children:e.name}),(0,n.jsx)("code",{className:"enabled-models-row-id",children:e.id})]}),e.thinkingPin&&(0,n.jsx)("span",{className:"enabled-models-pin",title:a("models.enabledPinHint"),children:e.thinkingPin}),(0,n.jsx)(lV,{checked:e.enabled,loading:p===e.ref,disabled:y||!c?.editable||t,label:t?a("models.enabledLastModel"):a("models.enabledToggle",{model:e.name}),onChange:t=>o.setModels(e.ref,[e.ref],t)})]},e.ref)})})]})}let hG=["openai-completions","openai-responses","anthropic-messages","google-generative-ai","mistral-conversations"],hY={unauthorized:"desktop.modelsProbeErrorUnauthorized",forbidden:"desktop.modelsProbeErrorForbidden",notFound:"desktop.modelsProbeErrorNotFound",rateLimited:"desktop.modelsProbeErrorRateLimited",upstream:"desktop.modelsProbeErrorUpstream",timeout:"desktop.modelsProbeErrorTimeout",network:"desktop.modelsProbeErrorNetwork",invalidResponse:"desktop.modelsProbeErrorInvalidResponse",unknown:"desktop.modelsProbeErrorUpstream"},hX="__custom__";function hZ(){let{t:e}=(0,J.s)();return(0,s.useCallback)((t,r)=>e(t,r),[e])}function hQ(e){let{label:t,children:r}=e;return(0,n.jsxs)("div",{className:"settings-content-field",style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",fontWeight:500},children:t}),r]})}let h0={padding:"6px 9px",background:"var(--ds-bg-secondary)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",outline:"none",width:"100%",boxSizing:"border-box"};function h1(e){let{value:t,onChange:r,placeholder:s,mono:i,inputRef:o}=e;return(0,n.jsx)("input",{ref:o,value:t,onChange:e=>r(e.target.value),placeholder:s,style:{...h0,fontFamily:i?"var(--font-mono)":"inherit"}})}function h2(e){let{value:t,onChange:r,placeholder:i,mono:o,onKeyDown:a,autoComplete:l="off",spellCheck:d=!1,style:c}=e,u=hZ(),[p,h]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{t||h(!1)},[t]),(0,n.jsxs)("div",{style:{position:"relative",width:"100%",...c},children:[(0,n.jsx)("input",{type:p?"text":"password",value:t,onChange:e=>r(e.target.value),onKeyDown:a,placeholder:i,style:{...h0,paddingRight:34,fontFamily:o?"var(--font-mono)":"inherit"},autoComplete:l,spellCheck:d}),(0,n.jsx)("button",{type:"button",onClick:()=>h(e=>!e),"aria-label":u(p?"desktop.modelsHideApiKey":"desktop.modelsShowApiKey"),title:u(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(--ds-text-muted)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:p?(0,n.jsx)(pQ.G,{size:15}):(0,n.jsx)(nq.b,{size:15})})]})}function h6(e){let{value:t,onChange:r,placeholder:s}=e;return(0,n.jsx)("input",{type:"number",value:t,onChange:e=>r(e.target.value),placeholder:s,style:h0})}function h4(e){let{value:t,onChange:r,options:s,required:i}=e,o=hZ();return(0,n.jsxs)("select",{value:t,onChange:e=>r(e.target.value),style:{...h0,color:t?"var(--ds-text-primary)":"var(--ds-text-muted)"},children:[!i&&(0,n.jsx)("option",{value:"",children:o("desktop.modelsInheritNone")}),s.map(e=>(0,n.jsx)("option",{value:e,children:e},e))]})}function h5(e){let{label:t,checked:r,onChange:s}=e;return(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,cursor:"pointer",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:[(0,n.jsx)("input",{type:"checkbox",checked:r,onChange:e=>s(e.target.checked),style:{width:13,height:13,accentColor:"var(--ds-accent)",cursor:"pointer"}}),t]})}function h3(e){let{children:t}=e;return(0,n.jsx)("div",{className:"settings-content-section-title",style:{fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.06em",marginBottom:2},children:t})}function h8(e){let{name:t,provider:r,onChange:i,onRename:o,onDelete:a,onAddModel:l,onModelsChange:d,onOpenSetup:c,enabledModels:u}=e,p=hZ(),[h,x]=(0,s.useState)(t);(0,s.useEffect)(()=>x(t),[t]);let g=(e,t)=>i({...r,[e]:t});(0,s.useEffect)(()=>{r.api||i({...r,api:"openai-completions"})},[r.api]);let f=r.models??[],m=(0,s.useMemo)(()=>(r.models??[]).map(e=>({id:e.id})),[t]),v=hs(!0,{providerName:t,baseUrl:r.baseUrl??"",apiKey:r.apiKey??"",api:r.api??"openai-completions",headers:r.headers},m),y="loading"===v.status?{text:p("desktop.modelsProbeLoading"),isError:!1}:"error"===v.status?{text:p(v.errorKind?hY[v.errorKind]:"desktop.modelsProbeErrorUpstream"),isError:!0}:"ready"===v.status&&"saved"===v.source?{text:p("desktop.modelsProbeFromSaved"),isError:!1}:"ready"===v.status?{text:p("desktop.modelsProbeReady",{count:v.models.length}),isError:!1}:{text:p("desktop.modelsProbeIdle"),isError:!1};return(0,n.jsxs)("div",{className:"settings-content-detail-stack",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(h3,{children:p("desktop.modelsProvider")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)(hV,{providerId:t,controller:u}),(0,n.jsx)("button",{onClick:a,style:{padding:"3px 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:"var(--radius-xs)",color:"var(--status-error)",cursor:"pointer",fontSize:"var(--text-ui-xs)"},children:p("desktop.delete")})]})]}),(0,n.jsxs)(hQ,{label:p("desktop.modelsProviderName"),children:[(0,n.jsx)(h1,{value:h,onChange:x,placeholder:"provider-name",mono:!0}),h!==t&&h.trim()&&(0,n.jsx)("button",{onClick:()=>o(h.trim()),style:{marginTop:4,padding:"3px 10px",background:"var(--ds-accent)",border:"none",borderRadius:"var(--radius-xs)",color:"var(--accent-fg)",cursor:"pointer",fontSize:"var(--text-ui-xs)",alignSelf:"flex-start"},children:p("desktop.rename")})]}),(0,n.jsx)(hQ,{label:p("desktop.modelsBaseUrl"),children:(0,n.jsx)(h1,{value:r.baseUrl??"",onChange:e=>g("baseUrl",e||void 0),placeholder:"http(s)://host:port/v1",mono:!0})}),(0,n.jsxs)(hQ,{label:p("desktop.modelsApiKey"),children:[(0,n.jsx)(h2,{value:r.apiKey??"",onChange:e=>g("apiKey",e||void 0),placeholder:p("desktop.modelsApiKeyPlaceholder"),mono:!0}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",marginTop:2},children:p("desktop.modelsApiKeyHelp")})]}),(0,n.jsx)(hQ,{label:p("desktop.modelsApi"),children:(0,n.jsx)(h4,{value:r.api??"openai-completions",onChange:e=>g("api",e),options:hG,required:!0})}),(0,n.jsxs)("div",{style:{paddingTop:6,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,color:y.isError?"var(--status-error)":"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)"},children:y.text}),(0,n.jsx)("button",{onClick:c,title:p("desktop.modelsDiscoveryFetch"),style:{height:28,padding:"0 11px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-xs)"},children:p("desktop.modelsDiscoveryFetch")}),(0,n.jsx)("button",{onClick:l,title:p("desktop.modelsAddModelManual"),style:{height:28,padding:"0 11px",border:"none",borderRadius:"var(--radius-sm)",background:"var(--ds-accent)",color:"var(--accent-fg)",cursor:"pointer",fontSize:"var(--text-ui-xs)",fontWeight:600},children:p("desktop.modelsAddModelManual")})]}),v.error&&"error"===v.status&&(0,n.jsx)("div",{style:{padding:"7px 9px",border:"1px solid rgba(239,68,68,0.3)",borderRadius:"var(--radius-sm)",color:"var(--status-error)",fontSize:"var(--text-ui-xs)",lineHeight:1.4,overflowWrap:"anywhere"},children:v.error}),(0,n.jsx)(hf,{discovered:v.models,models:f,onModelsChange:d,defaultModelId:f[0]?.id,discoveryStatus:v.status})]})]})}let h7=["off","minimal","low","medium","high","xhigh","max"],h9={off:"var(--ds-text-muted)",minimal:"var(--ds-text-secondary)",low:"#60a5fa",medium:"#a78bfa",high:"#f472b6",xhigh:"#fb923c",max:"var(--status-error)"};function xe(e){let{value:t,onChange:r}=e,s=hZ(),i=t??{},o=(e,t)=>{let n={...i};"omit"===t?delete n[e]:n[e]=t,r(Object.keys(n).length?n:void 0)};return(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:h7.map(e=>{let t=i[e],r=e in i?null===t?"null":"string":"omit",a="string"==typeof t?t:"",l=h9[e],d={padding:"4px 10px",fontSize:"var(--text-ui-xs)",border:"none",cursor:"pointer",fontWeight:400,transition:"background 0.1s, color 0.1s",whiteSpace:"nowrap",background:"var(--ds-bg-secondary)",color:"var(--ds-text-muted)"},c={background:"var(--ds-accent)",color:"var(--accent-fg)",fontWeight:600};return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 4px",borderRadius:"var(--radius-sm)",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"===r?.3:1}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",fontFamily:"var(--font-mono)",color:"null"===r?"var(--ds-text-muted)":"var(--ds-text-secondary)",textDecoration:"null"===r?"line-through":"none"},children:e})]}),(0,n.jsxs)("div",{style:{display:"flex",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",overflow:"hidden",flexShrink:0},children:[(0,n.jsx)("button",{onClick:()=>o(e,"omit"),style:{...d,..."omit"===r?c:{}},children:s("desktop.modelsDefault")}),(0,n.jsx)("button",{onClick:()=>o(e,null),style:{...d,borderLeft:"1px solid var(--border)",..."null"===r?{background:"var(--status-error)",color:"var(--accent-fg)",fontWeight:600}:{}},children:s("desktop.modelsDisabled")})]}),(0,n.jsxs)("div",{style:{display:"flex",borderRadius:"var(--radius-sm)",border:`1px solid ${"string"===r?"var(--ds-accent)":"var(--ds-border-default)"}`,overflow:"hidden",transition:"border-color 0.1s"},children:[(0,n.jsx)("button",{onClick:()=>o(e,a||e),style:{...d,..."string"===r?c:{},borderRight:"1px solid var(--border)",flexShrink:0},children:s("desktop.modelsCustom")}),(0,n.jsx)("input",{value:a,onChange:t=>o(e,t.target.value),onFocus:()=>{"string"!==r&&o(e,a||e)},placeholder:e,maxLength:10,style:{width:"12ch",background:"string"===r?"var(--bg)":"var(--ds-bg-secondary)",border:"none",outline:"none",color:"string"===r?"var(--ds-text-primary)":"var(--ds-text-muted)",fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)",padding:"4px 7px",transition:"background 0.1s, color 0.1s"}})]})]},e)})})}let xt={thinkingFormat:"deepseek",requiresReasoningContentOnAssistantMessages:!0};function xr(e){let{providerName:t,provider:r,model:i,onChange:o,onDelete:a}=e,l=hZ(),[d,c]=(0,s.useState)({phase:"idle"}),[u,p]=(0,s.useState)({phase:"idle"}),h=(0,s.useRef)(0),x=(0,s.useRef)(null),g=(e,t)=>o({...i,[e]:t}),f=(()=>{if("idle"===d.phase)return null;if("testing"===d.phase)return l("desktop.modelsTestingConnection");let e=[void 0!==d.latencyMs?`${d.latencyMs}ms`:null,void 0!==d.status?`HTTP ${d.status}`:null].filter(Boolean);return"success"===d.phase?[l("desktop.modelsConnected"),...e,d.responseText||null].filter(Boolean).join(" \xb7 "):[l("desktop.modelsFailed"),...e,d.message].filter(Boolean).join(" \xb7 ")})();(0,s.useEffect)(()=>{c({phase:"idle"})},[t,r.baseUrl,r.api,r.apiKey,i.id,i.api]);let m=(0,s.useCallback)(async()=>{if(i.id.trim()&&"testing"!==d.phase){c({phase:"testing"});try{let e=await fetch("/api/models-config/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerName:t,provider:r,model:i})}),n=await e.json();if(!e.ok||!n.ok)return void c({phase:"error",message:n.error??`HTTP ${e.status}`,latencyMs:n.latencyMs,status:n.status});c({phase:"success",latencyMs:n.latencyMs,status:n.status,responseText:n.responseText})}catch(e){c({phase:"error",message:e instanceof Error?e.message:String(e)})}}},[i,r,t,d.phase]);(0,s.useEffect)(()=>{h.current+=1,p({phase:"idle"}),x.current=null},[t,r.baseUrl,i.id]);let v=(0,s.useCallback)(async()=>{let e=i.id.trim();if(!e||"loading"===u.phase)return;let n=++h.current;p({phase:"loading"});try{let s=new URLSearchParams({q:e,provider:t,limit:"50"});r.baseUrl?.trim()&&s.set("baseUrl",r.baseUrl.trim());let a=await fetch(`/api/models-config/catalog?${s}`),l=await a.json();if(n!==h.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 r={...e},n=0;if(!e.name?.trim()&&t.name&&(r.name=t.name,n+=1),void 0===e.reasoning&&!0===t.reasoning&&(r.reasoning=!0,n+=1),!e.input?.length&&t.input?.length&&(r.input=[...t.input],n+=1),void 0===e.contextWindow&&void 0!==t.contextWindow&&(r.contextWindow=t.contextWindow,n+=1),void 0===e.maxTokens&&void 0!==t.maxTokens&&(r.maxTokens=t.maxTokens,n+=1),t.cost){let s={...e.cost??{}},i=!1;for(let e of["input","output","cacheRead","cacheWrite"])void 0===s[e]&&void 0!==t.cost[e]&&(s[e]=t.cost[e],i=!0,n+=1);i&&(r.cost=s)}return{model:r,appliedCount:n}}(i,l.recommendation.preset);d.appliedCount>0&&(x.current=i,o(d.model)),p({phase:"success",recommendation:l.recommendation,appliedCount:d.appliedCount})}catch(e){if(n!==h.current)return;p({phase:"error",message:e instanceof Error?e.message:String(e)})}},[u.phase,i,o,r.baseUrl,t]),y=(()=>{if("success"!==u.phase)return null;let{recommendation:e,appliedCount:r}=u,n=r>0?l("desktop.modelsCatalogFilled",{count:r}):l("desktop.modelsCatalogNoEmptyFields");if("unreliable"===e.price.status){let t="no-exact-match"===e.price.reason?l("desktop.modelsCatalogNoExactMatch"):l("desktop.modelsCatalogPriceUnreliable");return`${n} \xb7 ${t}`}let s="provider"===e.price.method?l("desktop.modelsCatalogPriceProvider",{provider:e.price.providerName??e.price.providerId??t}):"base-url"===e.price.method?l("desktop.modelsCatalogPriceBaseUrl",{provider:e.price.providerName??e.price.providerId??t}):l("desktop.modelsCatalogPriceConsensus",{support:e.price.support,total:e.price.total});return`${n} \xb7 ${s}`})(),b="error"===u.phase?u.message:y,k="error"===u.phase?"var(--status-error)":"success"===u.phase&&"unreliable"===u.recommendation.price.status?"var(--status-warning)":"var(--ds-text-muted)";return(0,n.jsxs)("div",{className:"settings-content-detail-stack",style:{display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(h3,{children:l("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:28,padding:"0 8px",border:`1px solid ${"error"===d.phase?"var(--status-error-border)":"success"===d.phase?"var(--status-success-border)":"var(--ds-border-default)"}`,borderRadius:"var(--radius-xs)",background:"error"===d.phase?"var(--status-error-bg)":"success"===d.phase?"var(--status-success-bg)":"var(--ds-bg-hover)",color:"error"===d.phase?"var(--status-error)":"success"===d.phase?"var(--status-success)":"var(--ds-text-primary)",fontSize:"var(--text-ui-xs)",display:"inline-flex",alignItems:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",boxSizing:"border-box"},children:f}),(0,n.jsxs)("button",{onClick:"success"===d.phase?()=>c({phase:"idle"}):m,disabled:!i.id.trim()||"testing"===d.phase,title:l("desktop.modelsTestConnection"),style:{height:24,padding:"0 8px",background:"success"===d.phase?"var(--status-success)":"none",border:`1px solid ${"success"===d.phase?"var(--status-success)":"var(--ds-border-default)"}`,borderRadius:"var(--radius-xs)",color:"success"===d.phase?"#fff":i.id.trim()&&"testing"!==d.phase?"var(--ds-text-secondary)":"var(--ds-text-muted)",cursor:i.id.trim()&&"testing"!==d.phase?"pointer":"not-allowed",fontSize:"var(--text-ui-xs)",display:"inline-flex",alignItems:"center",justifyContent:"center",boxSizing:"border-box",gap:5},children:["success"===d.phase&&(0,n.jsx)(q.S,{size:11}),"testing"===d.phase?l("desktop.modelsTesting"):"success"===d.phase?l("desktop.modelsOk"):l("desktop.modelsTest")]}),(0,n.jsx)("button",{onClick:a,style:{height:24,padding:"0 8px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:"var(--radius-xs)",color:"var(--status-error)",cursor:"pointer",fontSize:"var(--text-ui-xs)",boxSizing:"border-box"},children:l("desktop.modelsRemove")})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(hQ,{label:l("desktop.modelsIdRequired"),children:(0,n.jsx)(h1,{value:i.id,onChange:e=>g("id",e),placeholder:"model-id",mono:!0})}),(0,n.jsx)(hQ,{label:l("desktop.modelsName"),children:(0,n.jsx)(h1,{value:i.name??"",onChange:e=>g("name",e||void 0),placeholder:l("desktop.modelsDisplayName")})})]}),(0,n.jsxs)("div",{style:{padding:"10px 0"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{onClick:()=>void v(),disabled:!i.id.trim()||"loading"===u.phase,style:{height:28,padding:"0 10px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:i.id.trim()&&"loading"!==u.phase?"var(--ds-text-secondary)":"var(--ds-text-muted)",cursor:i.id.trim()&&"loading"!==u.phase?"pointer":"not-allowed",fontSize:"var(--text-ui-xs)"},children:"loading"===u.phase?l("desktop.modelsCatalogFilling"):l("desktop.modelsCatalogFill")}),(0,n.jsx)("a",{href:"https://github.com/anomalyco/models.dev",target:"_blank",rel:"noreferrer",style:{marginLeft:"auto",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)",textDecoration:"none"},children:l("desktop.modelsCatalogSource")})]}),(0,n.jsxs)("div",{"aria-live":"polite",style:{marginTop:6,height:20,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,color:k,fontSize:"var(--text-ui-xs)"},children:[(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:b}),"success"===u.phase&&x.current&&(0,n.jsx)("button",{onClick:()=>{let e=x.current;e&&(x.current=null,o(e),p({phase:"idle"}))},style:{background:"none",border:"none",color:"var(--ds-accent)",cursor:"pointer",fontSize:"var(--text-ui-xs)",flexShrink:0},children:l("desktop.modelsCatalogUndo")})]})]}),(0,n.jsx)(hQ,{label:l("desktop.modelsApiOverride"),children:(0,n.jsx)(h4,{value:i.api??"",onChange:e=>g("api",e||void 0),options:hG})}),(0,n.jsxs)("div",{style:{display:"flex",gap:20,flexWrap:"wrap"},children:[(0,n.jsx)(h5,{label:l("desktop.modelsReasoningThinking"),checked:i.reasoning??!1,onChange:e=>g("reasoning",e||void 0)}),(0,n.jsx)(h5,{label:l("desktop.modelsImageInput"),checked:i.input?.includes("image")??!1,onChange:e=>g("input",e?["text","image"]:void 0)})]}),i.reasoning&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(h5,{label:l("desktop.modelsDeepSeekCompat"),checked:i.compat?.thinkingFormat==="deepseek",onChange:e=>o(function(e,t){if(t)return{...e,compat:{...e.compat??{},...xt}};if(!e.compat)return e;let r={...e.compat};return delete r.thinkingFormat,delete r.requiresReasoningContentOnAssistantMessages,{...e,compat:Object.keys(r).length?r:void 0}}(i,e))}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[(0,n.jsx)(h3,{children:l("desktop.modelsThinkingLevelMap")}),i.thinkingLevelMap&&(0,n.jsx)("button",{onClick:()=>g("thinkingLevelMap",void 0),style:{fontSize:"var(--text-ui-xs)",padding:"2px 7px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-xs)",color:"var(--ds-text-muted)",cursor:"pointer"},children:l("desktop.modelsClearAll")})]}),(0,n.jsx)(xe,{value:i.thinkingLevelMap,onChange:e=>g("thinkingLevelMap",e)})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(hQ,{label:l("desktop.modelsContextWindow"),children:(0,n.jsx)(h6,{value:void 0!==i.contextWindow?String(i.contextWindow):"",onChange:e=>g("contextWindow",e?parseInt(e):void 0),placeholder:"128000"})}),(0,n.jsx)(hQ,{label:l("desktop.modelsMaxOutputTokens"),children:(0,n.jsx)(h6,{value:void 0!==i.maxTokens?String(i.maxTokens):"",onChange:e=>g("maxTokens",e?parseInt(e):void 0),placeholder:"16384"})})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(h3,{children:l("desktop.modelsCostPerMillionTokens")}),(0,n.jsx)("div",{className:"models-cost-grid",style:{marginTop:8,display:"grid",gridTemplateColumns:"1fr 1fr 1fr 1fr",gap:8},children:["input","output","cacheRead","cacheWrite"].map(e=>(0,n.jsx)(hQ,{label:e,children:(0,n.jsx)(h6,{value:i.cost?.[e]!==void 0?String(i.cost[e]):"",onChange:t=>{let r;return r=parseFloat(t),void o({...i,cost:{...i.cost??{},[e]:isNaN(r)?void 0:r}})},placeholder:"0"})},e))})]})]})}function xn(e){let{provider:t,onRefresh:r,onRegisterBuiltinFlush:i,onBuiltinProviderChange:o,enabledModels:a}=e,l=hZ(),[d,c]=(0,s.useState)({phase:"idle"}),[u,p]=(0,s.useState)(""),h=(0,s.useRef)(null),x=(0,s.useRef)(null);(0,s.useEffect)(()=>{("auth"===d.phase||"prompt"===d.phase)&&setTimeout(()=>x.current?.focus(),50)},[d.phase]),(0,s.useEffect)(()=>{c({phase:"idle"}),p(""),h.current?.close(),h.current=null},[t.id]),(0,s.useEffect)(()=>()=>{h.current?.close()},[]);let g=(0,s.useCallback)(()=>{h.current?.close(),c({phase:"connecting"}),p("");let e=new EventSource(`/api/auth/login/${encodeURIComponent(t.id)}`);h.current=e,e.onmessage=t=>{let n=JSON.parse(t.data);"auth"===n.type?(c({phase:"auth",url:n.url,instructions:n.instructions??null,token:n.token}),window.open(n.url,"_blank","noopener,noreferrer")):"device_code"===n.type?(c({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?c({phase:"prompt",message:n.message,placeholder:n.placeholder??null,token:n.token}):"select_request"===n.type?c({phase:"select",message:n.message,options:n.options??[],token:n.token}):"progress"===n.type?c({phase:"progress",message:n.message}):"success"===n.type?(e.close(),c({phase:"success"}),r()):"error"===n.type?(e.close(),c({phase:"error",message:n.message})):"cancelled"===n.type&&(e.close(),c({phase:"idle"}))},e.onerror=()=>{e.close(),c(e=>"success"===e.phase?e:{phase:"error",message:l("desktop.modelsConnectionLost")})}},[t.id,r,l]),f=(0,s.useCallback)(async()=>{try{let e=await fetch(`/api/auth/logout/${encodeURIComponent(t.id)}`,{method:"POST"});if(e.ok)c({phase:"idle"});else{let t=await e.json().catch(()=>null);c({phase:"error",message:409===e.status?l("desktop.modelsAuthenticationStateChanged"):t?.error??`HTTP ${e.status}`})}}catch(e){c({phase:"error",message:e instanceof Error?e.message:String(e)})}finally{r()}},[t.id,r,l]),m=(0,s.useCallback)(async(e,r)=>{if(r.trim()){c({phase:"progress",message:l("desktop.modelsVerifying")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,code:r.trim()})});if(!n.ok){let e=await n.json().catch(()=>({}));c({phase:"error",message:e.error??l("desktop.modelsServerError",{status:n.status})});return}p("")}catch(e){c({phase:"error",message:e instanceof Error?e.message:l("desktop.modelsNetworkError")})}}},[t.id,l]),v=(0,s.useCallback)(async(e,r)=>{c({phase:"progress",message:l("desktop.modelsContinuing")});try{let n=await fetch(`/api/auth/login/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e,code:r})});if(!n.ok){let e=await n.json().catch(()=>({}));c({phase:"error",message:e.error??l("desktop.modelsServerError",{status:n.status})})}}catch(e){c({phase:"error",message:e instanceof Error?e.message:l("desktop.modelsNetworkError")})}},[t.id,l]),y="connecting"===d.phase||"progress"===d.phase||"auth"===d.phase||"device_code"===d.phase||"prompt"===d.phase||"select"===d.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)(h3,{children:l("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:t.loggedIn?"var(--status-success)":"var(--ds-border-default)",display:"inline-block"}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:t.loggedIn?"var(--status-success)":"var(--ds-text-muted)"},children:t.loggedIn?l("desktop.modelsConnected"):l("desktop.modelsNotConnected")})]})]}),(0,n.jsxs)("div",{style:{minHeight:t.loggedIn&&"idle"===d.phase?0:48},children:["idle"===d.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.5},children:t.loggedIn?l("desktop.modelsAlreadyConnected"):l("desktop.modelsConnectAccount",{provider:t.name})}),"connecting"===d.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:l("desktop.modelsOpeningBrowser")}),"select"===d.phase&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.5},children:d.message}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:d.options.map(e=>(0,n.jsx)("button",{onClick:()=>v(d.token,e.id),style:{padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",cursor:"pointer",fontSize:"var(--text-ui-sm)",textAlign:"left"},children:e.label},e.id))})]}),("auth"===d.phase||"prompt"===d.phase)&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.5},children:"auth"===d.phase?l("desktop.modelsCompleteSignIn"):d.message}),"auth"===d.phase&&(0,n.jsxs)("p",{style:{margin:0,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",lineHeight:1.5},children:[l("desktop.modelsBrowserDidNotOpen")," ",(0,n.jsx)("a",{href:d.url,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--ds-accent)",wordBreak:"break-all"},children:l("desktop.modelsOpenLoginPage")}),"."]}),(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("input",{ref:x,value:u,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"===e.key&&m(d.token,u)},placeholder:"auth"===d.phase?"http://localhost:1455/auth/callback?code=…":d.placeholder??l("desktop.modelsEnterValue"),style:{flex:1,padding:"6px 9px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",outline:"none",fontFamily:"var(--font-mono)",boxSizing:"border-box"}}),(0,n.jsx)("button",{onClick:()=>m(d.token,u),disabled:!u.trim(),style:{padding:"6px 12px",background:u.trim()?"var(--ds-accent)":"var(--ds-bg-secondary)",border:"none",borderRadius:"var(--radius-sm)",color:u.trim()?"var(--accent-contrast)":"var(--ds-text-muted)",cursor:u.trim()?"pointer":"not-allowed",fontSize:"var(--text-ui-sm)",fontWeight:600,flexShrink:0},children:l("desktop.submit")})]})]}),"device_code"===d.phase&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.5},children:l("desktop.modelsOpenVerificationPage")}),(0,n.jsx)("div",{style:{padding:"8px 10px",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:16,fontWeight:700,fontFamily:"var(--font-mono)",letterSpacing:0},children:d.userCode}),(0,n.jsxs)("p",{style:{margin:0,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",lineHeight:1.5},children:[(0,n.jsx)("a",{href:d.verificationUri,target:"_blank",rel:"noopener noreferrer",style:{color:"var(--ds-accent)",wordBreak:"break-all"},children:d.verificationUri}),d.expiresInSeconds?` ${l("desktop.modelsExpiresInMinutes",{count:Math.ceil(d.expiresInSeconds/60)})}`:""]})]}),"progress"===d.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:d.message}),"success"===d.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--status-success)"},children:l("desktop.modelsConnectedSuccessfully")}),"error"===d.phase&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--status-error)"},children:d.message})]}),(0,n.jsx)("div",{style:{display:"flex",gap:8},children:y?(0,n.jsx)("button",{onClick:()=>{h.current?.close(),c({phase:"idle"})},style:{padding:"5px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-sm)"},children:l("desktop.cancel")}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{onClick:g,style:{padding:"5px 14px",background:"var(--ds-accent)",border:"none",borderRadius:"var(--radius-sm)",color:"var(--accent-fg)",cursor:"pointer",fontSize:"var(--text-ui-sm)",fontWeight:600},children:t.loggedIn?l("desktop.modelsReLogin"):l("desktop.modelsLogin")}),t.loggedIn&&(0,n.jsx)("button",{onClick:f,style:{padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:"var(--radius-sm)",color:"var(--status-error)",cursor:"pointer",fontSize:"var(--text-ui-sm)"},children:l("desktop.modelsDisconnect")})]})}),(0,n.jsx)(hW,{providerId:t.id,enabled:t.loggedIn}),(0,n.jsx)(hN,{providerId:t.id,onRegisterFlush:i,onConfigChange:o}),t.loggedIn&&(0,n.jsx)(hJ,{providerId:t.id,controller:a})]})}function xs(e){let{provider:t,onRefresh:r,onRegisterBuiltinFlush:i,onBuiltinProviderChange:o,enabledModels:a}=e,l=hZ(),[d,c]=(0,s.useState)(""),[u,p]=(0,s.useState)(!1),[h,x]=(0,s.useState)(!1),[g,f]=(0,s.useState)(null),[m,v]=(0,s.useState)(!1);(0,s.useEffect)(()=>{c(""),f(null),v(!1)},[t.id]);let y=(0,s.useCallback)(async()=>{if(d.trim()){p(!0),f(null),v(!1);try{let e=await fetch(`/api/auth/api-key/${encodeURIComponent(t.id)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:d.trim()})}),n=await e.json();!e.ok||n.error?f(n.error??`HTTP ${e.status}`):(c(""),v(!0),setTimeout(()=>v(!1),2e3),r())}catch(e){f(String(e))}finally{p(!1)}}},[d,t.id,r]),b=(0,s.useCallback)(async()=>{x(!0),f(null);try{let e=await fetch(`/api/auth/api-key/${encodeURIComponent(t.id)}`,{method:"DELETE"}),r=await e.json();(!e.ok||r.error)&&f(409===e.status?l("desktop.modelsAuthenticationStateChanged"):r.error??`HTTP ${e.status}`)}catch(e){f(String(e))}finally{r(),x(!1)}},[t.id,r,l]);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)(h3,{children:l("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:t.configured?"var(--status-success)":"var(--ds-border-default)",display:"inline-block"}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:t.configured?"var(--status-success)":"var(--ds-text-muted)"},children:t.configured?l("desktop.modelsConfigured"):l("desktop.modelsNotConfigured")})]})]}),(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",lineHeight:1.5},children:t.configured?l("desktop.modelsApiKeyStored"):l("desktop.modelsEnableModels",{provider:t.displayName,count:t.modelCount,models:1===t.modelCount?l("desktop.modelsSingular"):l("desktop.modelsPlural")})}),(0,n.jsx)(hQ,{label:l("desktop.modelsApiKey"),children:(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)(h2,{value:d,onChange:c,onKeyDown:e=>{"Enter"===e.key&&d.trim()&&y()},placeholder:t.configured?l("desktop.modelsEnterNewKey"):"sk-…",style:{flex:1},autoComplete:"off",spellCheck:!1,mono:!0}),(0,n.jsxs)("button",{onClick:y,disabled:u||!d.trim()||m,style:{padding:"6px 12px",background:m?"var(--status-success)":d.trim()?"var(--ds-accent)":"var(--ds-bg-secondary)",border:"none",borderRadius:"var(--radius-sm)",color:d.trim()||m?"#fff":"var(--ds-text-muted)",cursor:u||!d.trim()||m?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)",fontWeight:600,flexShrink:0,display:"flex",alignItems:"center",gap:5},children:[m&&(0,n.jsx)(q.S,{size:12}),m?l("desktop.modelsSaved"):u?l("desktop.modelsSaving"):l("desktop.modelsSave")]})]})}),g&&(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-sm)",color:"var(--status-error)"},children:g}),t.configured&&(0,n.jsx)("button",{onClick:b,disabled:h,style:{alignSelf:"flex-start",padding:"5px 12px",background:"none",border:"1px solid rgba(239,68,68,0.3)",borderRadius:"var(--radius-sm)",color:"var(--status-error)",cursor:h?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)"},children:h?l("desktop.modelsRemoving"):l("desktop.modelsDisconnect")}),(0,n.jsx)(hW,{providerId:t.id,enabled:t.configured}),(0,n.jsx)(hN,{providerId:t.id,onRegisterFlush:i,onConfigChange:o}),t.configured&&(0,n.jsx)(hJ,{providerId:t.id,controller:a})]})}function xi(e){let{oauthProviders:t,apiKeyProviders:r,onSelectOAuth:i,onSelectApiKey:o,onAddCustom:a,onClose:l}=e,d=hZ(),[c,u]=(0,s.useState)(""),p=(0,s.useRef)(null);G(!0,l),(0,s.useEffect)(()=>{setTimeout(()=>p.current?.focus(),30)},[]);let h=c.trim().toLowerCase(),x=t.filter(e=>!e.loggedIn&&(!h||e.name.toLowerCase().includes(h))),g=r.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),m=x.length+g.length+ +!!f,v={display:"flex",flexDirection:"row",alignItems:"center",gap:8,padding:"10px 12px",background:"var(--ds-bg-secondary)",borderRadius:"var(--radius-md)",boxSizing:"border-box",cursor:"pointer",minWidth:0,textAlign:"left",transition:"border-color 0.12s, background 0.12s",width:"100%"};return(0,n.jsx)("div",{"data-settings-child-dialog":"true",style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},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:"var(--radius-md-plus)",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)(eY.$,{size:13,style:{color:"var(--ds-text-muted)",flexShrink:0}}),(0,n.jsx)("input",{ref:p,value:c,onChange:e=>u(e.target.value),onKeyDown:e=>{"Escape"===e.key&&l()},placeholder:d("desktop.modelsSearchProviders"),style:{flex:1,background:"none",border:"none",outline:"none",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-base)",boxSizing:"border-box"}})]}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:14},children:0===m?(0,n.jsx)("div",{style:{padding:"20px 0",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)",textAlign:"center"},children:d("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:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("desktop.modelsCustom")}),f&&(0,n.jsxs)("button",{onClick:()=>{a(),l()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--ds-accent)",e.currentTarget.style.background="var(--ds-bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--ds-border-default)",e.currentTarget.style.background="var(--ds-bg-secondary)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-primary)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d("desktop.modelsCompatibleProvider")}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",marginTop:2},children:d("desktop.modelsCustomEndpointFormat")})]}),(0,n.jsx)("span",{style:{width:26,height:26,borderRadius:"var(--radius-sm)",background:"var(--ds-bg-hover)",border:"1px dashed var(--border)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,n.jsx)(e4.c,{size:13,style:{color:"var(--ds-text-muted)"}})})]}),x.length>0&&(0,n.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*!!f,fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("desktop.modelsSubscriptions")}),x.map(e=>(0,n.jsxs)("button",{onClick:()=>{i(e.id),l()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--ds-accent)",e.currentTarget.style.background="var(--ds-bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--ds-border-default)",e.currentTarget.style.background="var(--ds-bg-secondary)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-primary)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",marginTop:2},children:"OAuth"})]}),(0,n.jsx)(sC,{id:e.id,size:28})]},e.id)),g.length>0&&(0,n.jsx)("div",{style:{gridColumn:"1 / -1",paddingTop:6*(x.length>0),fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.07em"},children:d("desktop.modelsApiKey")}),g.map(e=>(0,n.jsxs)("button",{onClick:()=>{o(e.id),l()},style:v,onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--ds-accent)",e.currentTarget.style.background="var(--ds-bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--ds-border-default)",e.currentTarget.style.background="var(--ds-bg-secondary)"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-primary)",lineHeight:1.3,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.displayName}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",marginTop:2},children:d("desktop.modelsCount",{count:e.modelCount})})]}),(0,n.jsx)(sC,{id:e.id,size:28})]},e.id))]})})]})})}function xo(e){let{existingProviders:t,onCancel:r,onSubmit:i}=e,o=hZ(),[a,l]=(0,s.useState)(""),[d,c]=(0,s.useState)(hG[0]),[u,p]=(0,s.useState)(hG[0]),[h,x]=(0,s.useState)(""),[g,f]=(0,s.useState)(""),[m,v]=(0,s.useState)(void 0);G(!0,r);let[y,b]=(0,s.useState)(!1),[k,j]=(0,s.useState)(""),[w,S]=(0,s.useState)(""),[C,z]=(0,s.useState)(""),[T,R]=(0,s.useState)(""),I=(0,s.useRef)(null);(0,s.useEffect)(()=>{setTimeout(()=>I.current?.focus(),30)},[]);let N=!h.trim()||/^https?:\/\//i.test(h.trim());return(0,n.jsx)("div",{"data-settings-child-dialog":"true",style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},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:"var(--radius-md-plus)",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:"var(--text-ui-base)",fontWeight:700,color:"var(--ds-text-primary)"},children:o("desktop.modelsAddCustomTitle")}),(0,n.jsx)("button",{onClick:r,"aria-label":o("desktop.modelsClose"),title:o("desktop.modelsClose"),style:{background:"none",border:"none",color:"var(--ds-text-secondary)",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)(hQ,{label:o("desktop.modelsProviderNameOptional"),children:(0,n.jsx)(h1,{value:a,onChange:l,placeholder:"new-provider",mono:!0,inputRef:I})}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(h3,{children:o("desktop.modelsCallFormat")}),(0,n.jsxs)("select",{value:u,onChange:e=>{let t=e.target.value;(p(t),t===hX)?b(!0):c(t)},style:h0,children:[hG.map(e=>(0,n.jsx)("option",{value:e,children:e},e)),(0,n.jsx)("option",{value:hX,children:o("desktop.modelsCustomCallFormat")})]}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:o("desktop.modelsCallFormatHelp")}),u===hX&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--status-warning)",lineHeight:1.4},children:o("desktop.modelsCustomCallFormatHelp")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(h3,{children:o("desktop.modelsImportProvider")}),(0,n.jsxs)("select",{value:T,onChange:e=>{var r;let n;return R(r=e.target.value),void((n=t.find(e=>e.name===r))&&(n.provider.api&&(c(n.provider.api),p(n.provider.api)),x(n.provider.baseUrl??""),f(n.provider.apiKey??""),v(n.provider.headers?{...n.provider.headers}:void 0)))},style:{...h0,color:T?"var(--ds-text-primary)":"var(--ds-text-muted)"},children:[(0,n.jsx)("option",{value:"",children:o("desktop.modelsImportProviderPlaceholder")}),t.map(e=>(0,n.jsxs)("option",{value:e.name,children:[e.name,e.provider.api?` \xb7 ${e.provider.api}`:""]},e.name))]}),T&&(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--status-success)"},children:[o("desktop.modelsImported"),": ",T]})]}),(0,n.jsxs)("div",{style:{paddingTop:12,display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(h3,{children:o("desktop.modelsFullUrl")}),y?(0,n.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[(0,n.jsx)(h1,{value:h,onChange:x,placeholder:o("desktop.modelsUrlPlaceholder"),mono:!0}),(0,n.jsx)("button",{onClick:()=>{b(!1),x("")},title:o("desktop.modelsRemove"),style:{flexShrink:0,width:28,height:28,background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-muted)",cursor:"pointer",fontSize:"var(--text-ui-base)",lineHeight:1,display:"flex",alignItems:"center",justifyContent:"center"},children:"\xd7"})]}):(0,n.jsxs)("button",{onClick:()=>b(!0),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:5,padding:"7px 0",background:"none",border:"1px dashed var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-sm)"},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--ds-accent)",e.currentTarget.style.color="var(--ds-accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="var(--ds-border-default)",e.currentTarget.style.color="var(--ds-text-secondary)"},children:[(0,n.jsx)(e4.c,{size:12}),o("desktop.modelsAddUrl")]}),h.trim()&&!N&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--status-error)"},children:o("desktop.modelsUrlInvalid")}),(0,n.jsxs)(hQ,{label:o("desktop.modelsApiKey"),children:[(0,n.jsx)(h2,{value:g,onChange:f,placeholder:o("desktop.modelsApiKeyPlaceholder"),mono:!0}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",marginTop:2},children:o("desktop.modelsApiKeyHelp")})]})]}),(0,n.jsxs)("div",{style:{paddingTop:12,display:"flex",flexDirection:"column",gap:10},children:[(0,n.jsx)(h3,{children:o("desktop.modelsCustomRequest")}),(0,n.jsxs)(hQ,{label:o("desktop.modelsRequestModelId"),children:[(0,n.jsx)(h1,{value:k,onChange:j,placeholder:"model-id",mono:!0}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",marginTop:2},children:o("desktop.modelsRequestModelIdHelp")})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[(0,n.jsx)(hQ,{label:o("desktop.modelsRequestContextLength"),children:(0,n.jsx)(h6,{value:w,onChange:S,placeholder:"128000"})}),(0,n.jsx)(hQ,{label:o("desktop.modelsRequestOutputLength"),children:(0,n.jsx)(h6,{value:C,onChange:z,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:r,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-base)"},children:o("desktop.cancel")}),(0,n.jsx)("button",{onClick:()=>{let e=k.trim()?{id:k.trim(),...parseInt(w,10)>0?{contextWindow:parseInt(w,10)}:{},...parseInt(C,10)>0?{maxTokens:parseInt(C,10)}:{}}:void 0;i({name:a.trim(),api:d,...h.trim()?{baseUrl:h.trim()}:{},...g.trim()?{apiKey:g.trim()}:{},...m?{headers:m}:{},model:e})},disabled:!N,style:{padding:"6px 16px",background:N?"var(--ds-accent)":"var(--ds-bg-secondary)",border:"none",borderRadius:"var(--radius-sm)",color:N?"#fff":"var(--ds-text-muted)",cursor:N?"pointer":"not-allowed",fontSize:"var(--text-ui-base)",fontWeight:600},children:o("desktop.modelsAdd")})]})]})})}function xa(e){let{embedded:t=!1,sessionId:r,cwd:i=null,onCloseAction:o,onSavedAction:a,onRegisterFlush:l}=e,d=hZ(),c=tu(),u=function(e){let[t,r]=(0,s.useState)(null),[n,i]=(0,s.useState)(!0),[o,a]=(0,s.useState)(null),[l,d]=(0,s.useState)(null),c=(0,s.useRef)(null),u=(0,s.useRef)(null),p=(0,s.useRef)(null),[h,x]=(0,s.useState)(0);(0,s.useEffect)(()=>{let t=new AbortController;i(!0);let n=e?`?cwd=${encodeURIComponent(e)}`:"";return fetch(`/api/models/enabled${n}`,{signal:t.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);r(t),d(null)}).catch(e=>{t.signal.aborted||d({message:e instanceof Error?e.message:String(e)})}).finally(()=>{t.signal.aborted||i(!1)}),()=>t.abort()},[e,h]);let g=(0,s.useCallback)((t,n)=>{if(c.current){u.current={key:t,body:n};return}c.current=t,a(t),d(null),(async()=>{try{let t=await fetch("/api/models/enabled",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...e?{cwd:e}:{}})}),s=await t.json();if(!t.ok||s.error){let e=s.reason?hK[s.reason]:void 0;d(e?{messageKey:e}:{message:s.error??`HTTP ${t.status}`});return}r(s)}catch(e){d({message:e instanceof Error?e.message:String(e)})}finally{c.current=null,a(null);let e=u.current;u.current=null,e&&p.current?.(e.key,e.body)}})()},[e]);p.current=g;let f=(0,s.useCallback)((e,t,r)=>{g(e,{op:"models",refs:t,enabled:r})},[g]),m=(0,s.useCallback)((e,t)=>{g(`provider:${e}`,{op:"provider",provider:e,enabled:t})},[g]),v=(0,s.useCallback)(()=>g("clear",{op:"clear"}),[g]),y=(0,s.useCallback)(()=>g("prune",{op:"prune"}),[g]),b=(0,s.useCallback)(()=>x(e=>e+1),[]),k=(0,s.useCallback)((e,r)=>{g("resync",{op:"resync",renames:e,modelRenames:r,fullyEnabled:(t?.providers??[]).filter(e=>e.models.length>0&&e.enabledCount===e.models.length).map(e=>e.id)})},[g,t]);return{view:t,loading:n,pending:o,failure:l,setModels:f,setProvider:m,clearScope:v,pruneStale:y,refresh:b,resync:k}}(i),[p,h]=(0,s.useState)({providers:{}}),[x,g]=(0,s.useState)(!0),[f,m]=(0,s.useState)(!1),[v,y]=(0,s.useState)(null),[b,k]=(0,s.useState)(!1),[j,w]=(0,s.useState)(null),[S,C]=(0,s.useState)([]),[z,T]=(0,s.useState)([]),[R,I]=(0,s.useState)(!1),[N,M]=(0,s.useState)(!1),[E,$]=(0,s.useState)(!1),[L,W]=(0,s.useState)(!1),[A,P]=(0,s.useState)(null),F=(0,s.useRef)({providers:{}}),D=(0,s.useRef)(new Map),O=(0,s.useRef)(0),H=(0,s.useRef)(!1);F.current=p;let B=(0,s.useRef)(new Set),U=(0,s.useRef)(new Map),_=(0,s.useRef)(new Map),K=(0,s.useCallback)(e=>{let t=e(F.current);return F.current=t,O.current+=1,h(t),t},[]),V=(0,s.useCallback)(()=>{fetch("/api/auth/combined").then(e=>e.json()).then(e=>{C(e.oauth??[]),T(e.apiKey??[])}).catch(()=>{})},[]),J=(0,s.useCallback)((e,t)=>(D.current.set(e,t),()=>{D.current.get(e)===t&&D.current.delete(e)}),[]),Y=(0,s.useCallback)(async()=>{for(let e of[...D.current.values()])await e()},[]);(0,s.useEffect)(()=>{if(l)return l(Y)??void 0},[Y,l]);let X=(0,s.useCallback)((e,t)=>{K(r=>{let n={...r.providers??{}};return t?n[e]=t:delete n[e],{...r,providers:n}}),a?.()},[a,K]),Z=(0,s.useCallback)(async e=>{if(!H.current){H.current=!0,y(null);try{await Y(),w(e)}catch(e){y(e instanceof Error?e.message:String(e))}finally{H.current=!1}}},[Y]),Q=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/models-config",{cache:"no-store"}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);let r=t.providers?t:{...t,providers:{}};F.current=r,O.current+=1,h(r),B.current=new Set(Object.keys(r.providers??{})),_.current=hH(r),w(e=>e&&("provider"===e.type?r.providers?.[e.name]:"model"!==e.type||r.providers?.[e.providerName]?.models?.[e.index])?e:null),y(null)}catch(t){let e={providers:{}};F.current=e,O.current+=1,h(e),y(t instanceof Error?t.message:String(t))}finally{g(!1)}},[]);(0,s.useEffect)(()=>{Q(),V()},[V,Q]);let ee=(0,s.useCallback)((e,t)=>{let r=e,n=1;for(;F.current.providers?.[r];)r=`${e}-${n++}`;return K(e=>({...e,providers:{...e.providers??{},[r]:t}})),r},[K]),et=(0,s.useCallback)(async e=>{if(!H.current){H.current=!0,y(null);try{await Y();let t={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]}:{}},r=ee(e.name.trim()||"new-provider",t);w({type:"provider",name:r}),M(!1)}catch(e){y(e instanceof Error?e.message:String(e))}finally{H.current=!1}}},[Y,ee]),er=(0,s.useCallback)((e,t)=>{K(r=>({...r,providers:{...r.providers??{},[e]:t}}))},[K]),en=(0,s.useCallback)(e=>{let t=e.models.map(e=>e.name?{id:e.id,name:e.name}:{id:e.id}),r={api:e.api,...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.apiKey?{apiKey:e.apiKey}:{},...e.headers?{headers:e.headers}:{},...t.length>0?{models:t}:{}},n=A?.editingName??null;if(n){let e=F.current.providers?.[n]??{};er(n,{...e,...r}),P(null),w({type:"provider",name:n});return}let s=ee(e.name.trim()||"new-provider",r);hB(_.current,s,t.length),P(null),w({type:"provider",name:s})},[ee,A,er]),es=(0,s.useCallback)((e,t)=>{let r=U.current,n=e;for(let[t,s]of r)if(s===e){n=t;break}n===t?r.delete(n):B.current.has(n)&&r.set(n,t);let s=_.current.get(e);s&&(_.current.delete(e),_.current.set(t,s)),K(r=>{let n=Object.entries(r.providers??{}),s=n.findIndex(t=>{let[r]=t;return r===e});return -1===s?r:(n[s]=[t,n[s][1]],{...r,providers:Object.fromEntries(n)})}),w(r=>r?"provider"===r.type&&r.name===e?{type:"provider",name:t}:"model"===r.type&&r.providerName===e?{...r,providerName:t}:r:r)},[K]),ei=(0,s.useCallback)(e=>{_.current.delete(e);let t=Object.keys(K(t=>{let r={...t.providers??{}};return delete r[e],{...t,providers:r}}).providers??{});w(t.length>0?{type:"provider",name:t[0]}:null)},[K]),eo=(0,s.useCallback)(async e=>{if(!H.current){H.current=!0,y(null);try{await Y(),hB(_.current,e,1);let t=K(t=>{let r=t.providers?.[e]??{},n=[...r.models??[],{id:""}];return{...t,providers:{...t.providers??{},[e]:{...r,models:n}}}}),r=(t.providers?.[e]?.models?.length??1)-1;w({type:"model",providerName:e,index:r})}catch(e){y(e instanceof Error?e.message:String(e))}finally{H.current=!1}}},[Y,K]),ea=(0,s.useCallback)((e,t)=>{let r=t.map(e=>e.id).filter(e=>""!==e.trim()),n=_.current.get(e),s=(F.current.providers?.[e]?.models??[]).map(e=>e.id);n?_.current.set(e,function(e,t,r){if(!e)return;let n=new Map,s=0;e.forEach((e,t)=>{if(null===e||""===e){s+=1;return}let i=r?.[t]??e;"string"!=typeof i||""===i||n.has(i)||n.set(i,e)});let i=[];for(let e of t){if(null==e||""===e){i.push(null),s>0&&(s-=1);continue}let t=n.get(e);if(void 0!==t){i.push(t);continue}s>0&&(s-=1),i.push(null)}return i}(n,r,s)??[]):r.length>0&&hB(_.current,e,r.length),K(r=>{let n=r.providers?.[e]??{};return{...r,providers:{...r.providers??{},[e]:{...n,models:t.length>0?t.map(e=>e.name?{id:e.id,name:e.name}:{id:e.id}):void 0}}}})},[K]),el=(0,s.useCallback)((e,t,r)=>{K(n=>{let s=n.providers?.[e]??{},i=[...s.models??[]];return i[t]=r,{...n,providers:{...n.providers??{},[e]:{...s,models:i}}}})},[K]),ed=(0,s.useCallback)(async(e,t)=>{if(!H.current){H.current=!0,y(null);try{await Y(),_.current.get(e)?.splice(t,1),K(r=>{let n=r.providers?.[e]??{},s=[...n.models??[]];return s.splice(t,1),{...r,providers:{...r.providers??{},[e]:{...n,models:s.length?s:void 0}}}}),w({type:"provider",name:e})}catch(e){y(e instanceof Error?e.message:String(e))}finally{H.current=!1}}},[Y,K]),ec=(0,s.useCallback)(async()=>{if(!f){m(!0),y(null),k(!1);try{await Y();let e=F.current,t=await fetch("/api/models-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);r.config&&(F.current=r.config,O.current+=1,h(r.config)),k(!0),a?.(),setTimeout(()=>k(!1),2e3);let n=[...U.current].map(e=>{let[t,r]=e;return{from:t,to:r}}),s=function(e,t,r){let n=e=>{for(let[t,n]of r)if(n===e)return t;return e},s=[];for(let[r,i]of Object.entries(e.providers??{})){let e=t.get(r);e&&(i.models??[]).forEach((t,i)=>{let o=e[i];o&&t.id&&o!==t.id&&s.push({from:`${n(r)}/${o}`,to:`${r}/${t.id}`})})}return s}(F.current,_.current,U.current);B.current=new Set(Object.keys(F.current.providers??{})),_.current=hH(F.current),U.current.clear(),u.resync(n,s)}catch(e){y(e instanceof Error?e.message:String(e))}finally{m(!1)}}},[Y,a,f,u]),eu=(0,s.useCallback)(async()=>{try{await Y(),o?.()}catch(e){y(e instanceof Error?e.message:String(e))}},[Y,o]);G(!t&&!!o,()=>{eu()});let ep=Object.entries(p.providers??{}),eh=new Set([...S.map(e=>e.id),...z.map(e=>e.id)]),ex=ep.filter(e=>{let[t]=e;return!eh.has(t)}),eg=e=>{let t=function(e,t){if(!e||e.allEnabled)return null;let r=h_(e,t);return r?`${r.enabledCount}/${r.models.length}`:null}(u.view,e);return t?(0,n.jsx)("span",{className:"models-sidebar-badge",children:t}):null},ef=S.filter(e=>e.loggedIn),em=z.filter(e=>e.configured),ev=ef.length+em.length+ex.length,[ey,eb]=(0,s.useState)(!1),ek=(0,s.useCallback)(async()=>{if(!ey){eb(!0);try{await fetch("/api/models/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),await Q(),V()}catch{}finally{eb(!1)}}},[ey,Q,V]),ej=(()=>{if(!j)return null;if("oauth"===j.type){let e=S.find(e=>e.id===j.providerId);return e?(0,n.jsx)(xn,{provider:e,onRefresh:V,onRegisterBuiltinFlush:J,onBuiltinProviderChange:t=>X(e.id,t),enabledModels:u},e.id):null}if("apikey"===j.type){let e=z.find(e=>e.id===j.providerId);return e?(0,n.jsx)(xs,{provider:e,onRefresh:V,onRegisterBuiltinFlush:J,onBuiltinProviderChange:t=>X(e.id,t),enabledModels:u},e.id):null}if("provider"===j.type){let e=p.providers?.[j.name];return e?(0,n.jsx)(h8,{name:j.name,provider:e,onChange:e=>er(j.name,e),onRename:e=>es(j.name,e),onDelete:()=>ei(j.name),onModelsChange:e=>ea(j.name,e),onAddModel:()=>{eo(j.name)},onOpenSetup:()=>P({preset:null,editingName:j.name}),enabledModels:u},j.name):null}let e=p.providers?.[j.providerName],t=e?.models?.[j.index];return t?(0,n.jsx)(xr,{providerName:j.providerName,provider:e,model:t,onChange:e=>el(j.providerName,j.index,e),onDelete:()=>{ed(j.providerName,j.index)}},`${j.providerName}-${j.index}`):null})();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"settings-content-panel",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"},children:(0,n.jsxs)("div",{className:t?"settings-content-surface":"models-config-panel settings-content-surface",style:t?{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"}:{width:c?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:c?"calc(100dvh - 16px)":"78vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-md-plus)",display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!t&&(0,n.jsxs)("div",{className:"settings-content-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},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--ds-text-primary)"},children:d("desktop.models")}),(0,n.jsx)("code",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)"},children:"~/.pi/agent/models.json"})]}),(0,n.jsx)("button",{onClick:()=>{eu()},"aria-label":d("desktop.modelsClose"),title:d("desktop.modelsClose"),style:{background:"none",border:"none",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,n.jsx)(p0,{}),(0,n.jsx)(p1,{cwd:i,onChangedAction:a}),(0,n.jsx)(hq,{controller:u}),(0,n.jsxs)("div",{className:"settings-content-detail model-config-page",style:{flex:1,overflowY:"auto",padding:"var(--settings-content-detail-padding, 20px)",display:"flex",flexDirection:"column",gap:18},children:[(0,n.jsxs)("section",{className:"settings-section",children:[(0,n.jsxs)("div",{className:"settings-section-header",children:[(0,n.jsxs)("div",{className:"settings-section-heading",children:[(0,n.jsx)("span",{className:"settings-section-text",children:d("desktop.modelsProvidersSection")}),ev>0&&(0,n.jsx)("span",{className:"models-sidebar-badge",children:ev})]}),(0,n.jsxs)("div",{className:"settings-section-actions",children:[(0,n.jsx)("button",{type:"button",className:`config-button config-button-small ${E?"config-button-primary":"config-button-secondary"}`,onClick:()=>$(e=>!e),children:d("desktop.modelImportEntry")}),(0,n.jsx)("button",{type:"button",className:"config-button config-button-ghost config-button-small",onClick:()=>I(!0),title:d("desktop.modelsSearchProviders"),children:d("desktop.modelsSearchProviders")}),(0,n.jsx)("button",{type:"button",className:"config-button config-button-primary config-button-small",onClick:()=>W(!0),children:d("desktop.modelsAddProvider")})]})]}),E&&(0,n.jsx)(hO,{onImported:()=>{Q()},onClose:()=>$(!1)}),(0,n.jsx)("div",{className:"settings-panel",children:x?(0,n.jsx)("div",{className:"settings-row",style:{color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)"},children:d("desktop.modelsLoading")}):0===ev?(0,n.jsxs)("div",{className:"settings-row is-stacked",style:{flexDirection:"column",alignItems:"center",textAlign:"center",gap:10,padding:"32px 20px"},children:[(0,n.jsx)(tr.G,{size:22,style:{color:"var(--ds-text-muted)"}}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"settings-row-title",children:d("desktop.modelsNoProviders")}),(0,n.jsx)("div",{className:"settings-row-description",children:d("desktop.modelsNoProvidersDesc")})]}),(0,n.jsx)("button",{type:"button",className:"config-button config-button-primary config-button-small",onClick:()=>W(!0),children:d("desktop.modelsAddProvider")})]}):(0,n.jsxs)(n.Fragment,{children:[ef.map(e=>(0,n.jsxs)("button",{type:"button",className:"settings-row is-hoverable",style:{textAlign:"left",cursor:"pointer",font:"inherit"},onClick:()=>{Z({type:"oauth",providerId:e.id})},children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:10,minWidth:0,flex:1},children:[(0,n.jsx)(sC,{id:e.id,size:20}),(0,n.jsxs)("span",{className:"settings-row-copy",children:[(0,n.jsx)("span",{className:"settings-row-title",children:e.name}),(0,n.jsxs)("span",{className:"settings-row-description",children:["OAuth \xb7 ",e.loggedIn?d("desktop.modelsConnected"):d("desktop.modelsNotConnected")]})]})]}),eg(e.id),(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",flexShrink:0},children:[d("desktop.modelsManage")," ›"]})]},`oauth-${e.id}`)),em.map(e=>(0,n.jsxs)("button",{type:"button",className:"settings-row is-hoverable",style:{textAlign:"left",cursor:"pointer",font:"inherit"},onClick:()=>{Z({type:"apikey",providerId:e.id})},children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:10,minWidth:0,flex:1},children:[(0,n.jsx)(sC,{id:e.id,size:20}),(0,n.jsxs)("span",{className:"settings-row-copy",children:[(0,n.jsx)("span",{className:"settings-row-title",children:e.displayName}),(0,n.jsxs)("span",{className:"settings-row-description",children:[d("desktop.modelsCount",{count:e.modelCount})," \xb7 ",e.configured?d("desktop.modelsConfigured"):d("desktop.modelsNotConfigured")]})]})]}),eg(e.id),(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",flexShrink:0},children:[d("desktop.modelsManage")," ›"]})]},`apikey-${e.id}`)),ex.map(e=>{let[t,r]=e,s=r.models??[];return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsxs)("button",{type:"button",className:"settings-row is-hoverable",style:{textAlign:"left",cursor:"pointer",font:"inherit"},onClick:()=>{Z({type:"provider",name:t})},children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:10,minWidth:0,flex:1},children:[(0,n.jsx)(tr.G,{size:18,style:{color:"var(--ds-text-muted)",flexShrink:0}}),(0,n.jsxs)("span",{className:"settings-row-copy",children:[(0,n.jsx)("span",{className:"settings-row-title",style:{fontFamily:"var(--font-mono)"},children:t}),(0,n.jsxs)("span",{className:"settings-row-description",children:[r.api??"openai-completions"," \xb7 ",s.length," ",d("desktop.modelsPlural")]})]})]}),eg(t),(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",flexShrink:0},children:[d("desktop.modelsManage")," ›"]})]}),s.map((e,r)=>(0,n.jsxs)("button",{type:"button",className:"settings-row is-hoverable",style:{textAlign:"left",cursor:"pointer",font:"inherit",marginLeft:18,padding:"7px 14px",background:"var(--ds-tile-deep)"},onClick:()=>{Z({type:"model",providerName:t,index:r})},children:[(0,n.jsx)("span",{className:"settings-row-copy",children:(0,n.jsx)("span",{style:{display:"block",maxWidth:"100%",fontSize:"var(--text-ui-sm)",fontFamily:"var(--font-mono)",color:e.id?"var(--ds-text-secondary)":"var(--ds-text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.id||d("desktop.modelsNewModel")})}),e.reasoning&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 4px",background:"rgba(99,102,241,0.12)",color:"rgba(99,102,241,0.8)",borderRadius:"var(--radius-xs)",flexShrink:0},children:"T"})]},`${t}-${r}`)),(0,n.jsx)("button",{type:"button",className:"settings-row is-hoverable",style:{textAlign:"left",cursor:"pointer",font:"inherit",marginLeft:18,padding:"6px 14px",background:"transparent",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-xs)"},onClick:()=>{eo(t)},children:d("desktop.modelsAddModel")})]},t)})]})})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,n.jsx)("code",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:"~/.pi/agent/models.json"}),(0,n.jsx)("button",{type:"button",className:"config-button config-button-ghost config-button-small",onClick:()=>{ek()},disabled:ey,style:{flexShrink:0},children:ey?d("desktop.modelsCatalogRefreshing"):d("desktop.modelsCatalogRefresh")})]})]}),(0,n.jsxs)("div",{className:"settings-content-footer",style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:10,padding:"10px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:[v&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)",flex:1},children:v}),!t&&(0,n.jsx)("button",{onClick:()=>{eu()},style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-base)"},children:d("desktop.cancel")}),(0,n.jsx)(pU,{sessionId:r,onBeforeApply:ec}),(0,n.jsxs)("button",{onClick:ec,disabled:f||b,style:{position:"relative",padding:"6px 16px",minWidth:92,background:b?"var(--status-success)":f?"var(--ds-bg-secondary)":"var(--ds-accent)",border:"none",borderRadius:"var(--radius-sm)",color:b?"#fff":f?"var(--ds-text-secondary)":"#fff",cursor:f||b?"default":"pointer",fontSize:"var(--text-ui-base)",fontWeight:600,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,transition:"background-color 0.2s ease, color 0.2s ease",animation:b?"saved-pop 0.45s ease":void 0},children:[b&&(0,n.jsx)(q.S,{size:14,style:{strokeDasharray:18,animation:"saved-check-draw 0.35s ease forwards",flexShrink:0}}),(0,n.jsx)("span",{children:b?d("desktop.modelsSaved"):f?d("desktop.modelsSaving"):d("desktop.modelsSave")})]})]})]})}),j&&ej&&(0,n.jsx)("div",{"data-settings-child-dialog":"true",style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>w(null),children:(0,n.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{width:620,maxWidth:"calc(100vw - 32px)",maxHeight:"min(84vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-lg-plus)",display:"flex",flexDirection:"column",boxShadow:"0 12px 40px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"8px 12px",borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,n.jsx)("button",{type:"button",onClick:()=>w(null),"aria-label":d("desktop.modelsClose"),style:{background:"none",border:"none",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 8px"},children:"\xd7"})}),(0,n.jsx)("div",{style:{overflowY:"auto",padding:"18px 20px"},children:ej})]})}),(0,n.jsx)(p8,{open:L,onClose:()=>W(!1),oauthProviders:S,apiKeyProviders:z,onPickOAuth:e=>{W(!1),Z({type:"oauth",providerId:e})},onPickApiKey:e=>{W(!1),Z({type:"apikey",providerId:e})},onPickPreset:e=>{W(!1),P({preset:e,editingName:null})},onPickCustom:()=>{W(!1),M(!0)}}),(0,n.jsx)(hC,{open:null!==A,onClose:()=>P(null),editing:A?.editingName?{name:A.editingName,provider:p.providers?.[A.editingName]??{}}:null,preset:A?.preset??null,existingProviderNames:Object.keys(p.providers??{}),onSave:en,onRequestCustom:()=>{P(null),M(!0)}}),R&&(0,n.jsx)(xi,{oauthProviders:S,apiKeyProviders:z,onSelectOAuth:e=>{Z({type:"oauth",providerId:e})},onSelectApiKey:e=>{Z({type:"apikey",providerId:e})},onAddCustom:()=>{I(!1),M(!0)},onClose:()=>I(!1)}),N&&(0,n.jsx)(xo,{existingProviders:ex.map(e=>{let[t,r]=e;return{name:t,provider:r}}),onCancel:()=>M(!1),onSubmit:e=>{et(e)}})]})}function xl(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function xd(e){let t=e.trim().match(/^\$?\s*pi\s+install\s+(\S+)\s*$/);return t?.[1]??e}function xc(e){return`${e.scope}\0${e.source}`}function xu(e){return`extension\0${e.path}`}function xp(e,t){if(e.disabled)return t("desktop.disabled");let r=[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 r.length?r.join(" \xb7 "):t("desktop.noResources")}function xh(e,t){let r=[];return e.version&&r.push(t("desktop.installedVersion",{version:e.version})),e.configuredVersion&&r.push(t("desktop.configuredVersion",{version:e.configuredVersion})),r.length?r.join(" \xb7 "):t("desktop.unknown")}function xx(e){return"loaded"===e?"var(--ds-accent)":"installed"===e?"var(--status-warning)":"disabled"===e?"var(--ds-text-muted)":"var(--status-error)"}function xg(e){let{pkg:t}=e,{t:r}=(0,J.s)(),s=[["extension",r("desktop.extensions")],["skill",r("desktop.skills")],["prompt",r("desktop.prompts")],["theme",r("desktop.themes")]].map(e=>{let[r,n]=e;return{kind:r,label:n,resources:t.resources.filter(e=>e.kind===r)}}).filter(e=>e.resources.length>0);return 0===s.length?(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)"},children:r(t.disabled?"desktop.packageDisabled":"desktop.noResolvedResources")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:s.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:"var(--text-ui-xs)",fontWeight:700,color:"var(--ds-text-muted)",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:"var(--text-ui-sm)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.path,children:e.name}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",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 xf(e){let{scope:t}=e,{t:r}=(0,J.s)();return(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 5px",borderRadius:"var(--radius-xs)",flexShrink:0,background:"project"===t?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===t?"rgba(99,102,241,0.85)":"var(--ds-text-muted)"},children:r(`desktop.${t}`)})}function xm(e,t){return{padding:"6px 12px",background:t?"rgba(239,68,68,0.08)":"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:t?"var(--status-error)":"var(--ds-text-secondary)",cursor:e?"not-allowed":"pointer",fontSize:"var(--text-ui-sm)",opacity:e?.5:1}}function xv(e){let{enabled:t,loading:r,onToggle:s,label:i}=e;return(0,n.jsx)("button",{type:"button",onClick:s,disabled:r,title:i,"aria-label":i,"aria-pressed":t,style:{flexShrink:0,width:40,height:22,borderRadius:"var(--radius-md-plus)",border:"none",padding:0,cursor:r?"wait":"pointer",background:t?"var(--ds-accent)":"var(--ds-border-default)",position:"relative",transition:"background 0.18s",outline:"none",opacity:r?.65:1},children:(0,n.jsx)("span",{style:{position:"absolute",top:3,left:t?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 xy(e){let{value:t,onChange:r}=e,{t:s}=(0,J.s)();return(0,n.jsx)("div",{style:{display:"inline-flex",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",overflow:"hidden",height:30},children:["global","project"].map(e=>{let i=t===e;return(0,n.jsx)("button",{onClick:()=>r(e),style:{width:76,border:"none",borderRight:"global"===e?"1px solid var(--border)":"none",background:i?"var(--ds-bg-active)":"none",color:i?"var(--ds-text-primary)":"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-sm)"},children:s(`desktop.${e}`)},e)})})}function xb(e){let{cwd:t,source:r,scope:i,busy:o,actionError:a,onSourceChange:l,onScopeChange:d,onInstall:c}=e,{t:u}=(0,J.s)(),p=(0,s.useRef)(null);return(0,s.useEffect)(()=>{p.current?.focus()},[]),(0,n.jsxs)("div",{className:"settings-content-detail-stack",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:"var(--text-ui-base)",fontWeight:700,color:"var(--ds-text-primary)"},children:u("desktop.addPluginTitle")}),(0,n.jsx)("a",{href:"https://pi.dev/packages",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--ds-accent)",fontSize:"var(--text-ui-sm)",textDecoration:"none",whiteSpace:"nowrap"},children:"pi.dev/packages ↗"})]}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)"},children:"project"===i?`${xl(t)}/.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:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-secondary)"},children:u("desktop.pluginSource")}),(0,n.jsx)("input",{id:"plugin-source",ref:p,value:r,onChange:e=>l(e.target.value),onPaste:e=>{let t=e.clipboardData.getData("text"),r=xd(t);r!==t&&(e.preventDefault(),l(r))},onBlur:e=>l(xd(e.currentTarget.value)),placeholder:"npm:@scope/package",style:{width:"100%",height:36,padding:"0 11px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-base)",outline:"none"},onKeyDown:e=>{"Enter"===e.key&&r.trim()&&!o&&c()}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)(xy,{value:i,onChange:d}),(0,n.jsx)("button",{type:"button",onClick:c,disabled:o||!r.trim(),style:{...xm(o||!r.trim()),background:"var(--ds-accent)",color:"white",borderColor:"var(--ds-accent)"},children:u(o?"desktop.installing":"desktop.install")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-secondary)"},children:u("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:()=>l(e),style:{width:"100%",minHeight:30,textAlign:"left",padding:"6px 9px",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:"var(--ds-text-muted)",cursor:"pointer",fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)"},onMouseEnter:e=>{e.currentTarget.style.background="var(--ds-bg-hover)",e.currentTarget.style.color="var(--ds-text-secondary)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--ds-bg-secondary)",e.currentTarget.style.color="var(--ds-text-muted)"},children:e},e))})]}),a&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)",whiteSpace:"pre-wrap"},children:a})]})}function xk(e){let{pkg:t,cwd:r,busyKey:s,actionError:i,actionMessage:o,sessionId:a,updateStatus:l,checkingUpdate:d,updateError:c,onAction:u,onCheckUpdate:p,onReloadSession:h}=e,{t:x}=(0,J.s)(),g=xc(t),f=s?.endsWith(g)??!1,m="reload"===s,v=!t.disabled,y=t.canCheckForUpdates,b=l?.state==="update-available",k=t.description?.trim();return(0,n.jsxs)("div",{className:"settings-content-detail-stack",style:{display:"flex",flexDirection:"column",gap:20,maxWidth:680},children:[(0,n.jsxs)("div",{className:"settings-content-detail-header",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)(xv,{enabled:v,loading:f||m,onToggle:()=>u(t.disabled?"enable":"disable",t),label:x(t.disabled?"desktop.enablePackage":"desktop.disablePackage")}),(0,n.jsx)(xf,{scope:t.scope}),t.disabled?(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 5px",borderRadius:"var(--radius-xs)",background:"rgba(120,120,120,0.12)",color:"var(--ds-text-muted)"},children:x("desktop.disabled")}):t.filtered&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 5px",borderRadius:"var(--radius-xs)",background:"rgba(245,158,11,0.12)",color:"var(--status-warning)"},children:x("desktop.filtered")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.source})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("button",{onClick:b||!y?()=>u("update",t):p,disabled:f||m||d,title:b?x("desktop.updateAvailable"):void 0,style:xm(f||m||d),children:x(s===`update:${g}`?"desktop.updating":d?"desktop.checking":b||!y?"desktop.update":"desktop.checkUpdates")}),(0,n.jsx)("button",{onClick:h,disabled:!a||m||f,style:xm(!a||m||f),title:x(a?"desktop.reloadCurrentSession":"desktop.openSessionToReload"),children:x(m?"desktop.reloading":"desktop.reloadSession")}),(0,n.jsx)("button",{onClick:()=>u("remove",t),disabled:f||m,style:xm(f||m,!0),children:x(s===`remove:${g}`?"desktop.removing":"desktop.remove")})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 130px) minmax(0, 1fr)",gap:"9px 14px",fontSize:"var(--text-ui-sm)",lineHeight:1.45},children:[k&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:x("desktop.description")}),(0,n.jsx)("div",{style:{color:"var(--ds-text-secondary)",overflowWrap:"anywhere"},children:k})]}),(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:x("desktop.status")}),(0,n.jsx)("div",{style:{color:xx(t.status),textTransform:"capitalize"},children:t.status}),(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:x("desktop.version")}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)"},children:xh(t,x)}),b&&(0,n.jsx)("span",{title:l?.displayName,style:{fontSize:"var(--text-ui-xs)",color:"var(--status-warning)",fontWeight:600},children:x("desktop.updateAvailable")}),y&&(d||l&&!b)&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:d?"var(--ds-text-muted)":l?.state==="up-to-date"?"var(--status-success)":l?.state==="error"?"var(--status-error)":"var(--ds-text-muted)"},children:d?x("desktop.checking"):l?.state==="up-to-date"?x("desktop.upToDate"):l?.state==="unsupported"?x("desktop.automaticChecksUnavailable"):l?.message||x("desktop.checkFailed")})]}),c&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)"},children:c})]}),(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:x("desktop.package")}),(0,n.jsx)("div",{style:{color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:t.packageName??x("desktop.unknown")}),(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:x("desktop.resources")}),(0,n.jsx)("div",{style:{color:"var(--ds-text-secondary)"},children:xp(t,x)}),(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:x("desktop.installedPath")}),(0,n.jsx)("div",{style:{color:t.installedPath?"var(--ds-text-secondary)":"var(--status-error)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:t.installedPath?xl(t.installedPath):x("desktop.notFound")}),(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:x("desktop.cwd")}),(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:xl(r)})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:700,color:"var(--ds-text-primary)"},children:x("desktop.resolvedResources")}),(0,n.jsx)(xg,{pkg:t})]}),o&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-success)"},children:o}),i&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)",whiteSpace:"pre-wrap"},children:i})]})}function xj(e){let{extension:t}=e,{t:r}=(0,J.s)(),s=t.enabled?"loaded":"disabled";return(0,n.jsxs)("div",{className:"settings-content-detail-stack",style:{display:"flex",flexDirection:"column",gap:20,maxWidth:680},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[(0,n.jsx)(xf,{scope:t.scope}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-base)",fontWeight:700,color:"var(--ds-text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.name})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(96px, 130px) minmax(0, 1fr)",gap:"9px 14px",fontSize:"var(--text-ui-sm)",lineHeight:1.45},children:[(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:r("desktop.status")}),(0,n.jsx)("div",{style:{color:t.enabled?"var(--ds-accent)":"var(--ds-text-muted)"},children:s}),(0,n.jsx)("div",{style:{color:"var(--ds-text-muted)"},children:r("desktop.installedPath")}),(0,n.jsx)("div",{style:{color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)",overflowWrap:"anywhere"},children:xl(t.path)})]})]})}function xw(e){let{cwd:t,sessionId:r,embedded:i=!1,onCloseAction:o,onReloadedAction:a}=e,l=tu(),{t:d}=(0,J.s)(),[c,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(!0),[x,g]=(0,s.useState)(null);G(!i&&!!o,()=>o?.());let[f,m]=(0,s.useState)(null),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(""),[j,w]=(0,s.useState)("global"),[S,C]=(0,s.useState)(null),[z,T]=(0,s.useState)(null),[R,I]=(0,s.useState)(null),[N,M]=(0,s.useState)({}),[E,$]=(0,s.useState)(new Set),[L,W]=(0,s.useState)(!1),[A,P]=(0,s.useState)(null),F=(0,s.useMemo)(()=>c?.packages??[],[c?.packages]),D=(0,s.useMemo)(()=>c?.standaloneExtensions??[],[c?.standaloneExtensions]),O=F.find(e=>xc(e)===f)??null,H=D.find(e=>xu(e)===f)??null,B=(0,s.useMemo)(()=>["project","global"].map(e=>({scope:e,packages:F.filter(t=>t.scope===e)})).filter(e=>e.packages.length>0),[F]),U=(0,s.useCallback)(async()=>{h(!0),g(null);try{let e=await fetch(`/api/plugins?cwd=${encodeURIComponent(t)}`),r=await e.json();if(!e.ok||r.error)throw Error(r.error??`HTTP ${e.status}`);u(r),m(e=>e&&(r.packages.some(t=>xc(t)===e)||r.standaloneExtensions.some(t=>xu(t)===e))?e:null)}catch(e){g(e instanceof Error?e.message:String(e))}finally{h(!1)}},[t]);(0,s.useEffect)(()=>{U()},[U]);let _=(0,s.useCallback)(async e=>{let r=(e?[e]:F.filter(e=>e.canCheckForUpdates)).map(xc);if(0!==r.length){P(null),$(e=>new Set([...e,...r])),e||W(!0);try{let r=await fetch("/api/plugins/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,source:e?.source,scope:e?.scope})}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);M(e=>{let t={...e};for(let e of n.updates??[])t[xc(e)]=e;return t})}catch(e){P(e instanceof Error?e.message:String(e))}finally{$(e=>{let t=new Set(e);for(let e of r)t.delete(e);return t}),e||W(!1)}}},[t,F]),K=(0,s.useCallback)(async(e,r)=>{let n=xc(r);C(`${e}:${n}`),T(null),I(null);try{let s=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,source:r.source,scope:r.scope,cwd:t})}),i=await s.json();if(!s.ok||i.error)throw Error(i.error??`HTTP ${s.status}`);if(u(i),"remove"===e)m(i.packages[0]?xc(i.packages[0]):i.standaloneExtensions[0]?xu(i.standaloneExtensions[0]):null),0===i.packages.length&&0===i.standaloneExtensions.length&&y(!0),I(d("desktop.packageRemoved")),M(e=>{let t={...e};return delete t[n],t});else{let t={install:d("desktop.packageInstalled"),update:d("desktop.packageUpdated"),disable:d("desktop.packageDisabledMessage"),enable:d("desktop.packageEnabled")};I(t[e]),"update"===e&&M(e=>{let t={...e};return delete t[n],t})}}catch(e){T(e instanceof Error?e.message:String(e))}finally{C(null)}},[t,d]),q=(0,s.useCallback)(async()=>{let e=xd(b).trim();if(!e)return;let r=`${j}\0${e}`;C(`install:${r}`),T(null),I(null);try{var n;let s,i,o=await fetch("/api/plugins",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"install",source:e,scope:j,cwd:t})}),a=await o.json();if(!o.ok||a.error)throw Error(a.error??`HTTP ${o.status}`);u(a);let l=(n=a.packages,i=(s=e.trim()).startsWith("npm:")?s.slice(4):s,n.find(e=>e.scope===j&&e.source===s)??n.find(e=>e.scope===j&&e.source===`npm:${i}`)??n.find(e=>e.scope===j&&e.source.endsWith(s)));m(l?xc(l):r),y(!1),k(""),I(d("desktop.packageInstalled"))}catch(e){T(e instanceof Error?e.message:String(e))}finally{C(null)}},[t,j,b,d]),V=(0,s.useCallback)(async()=>{if(r){C("reload"),T(null),I(null);try{await ud(r,{type:"reload"}),a?.(),await U(),I(d("desktop.sessionReloaded"))}catch(e){T(e instanceof Error?e.message:String(e))}finally{C(null)}}},[U,a,r,d]),Y=S?.startsWith("install:")??!1;return(0,n.jsx)("div",{className:"settings-content-panel",style:i?{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"},children:(0,n.jsxs)("div",{className:"settings-content-surface",style:i?{display:"flex",flex:1,minWidth:0,minHeight:0,flexDirection:"column",overflow:"hidden"}:{width:l?"calc(100vw - 16px)":860,maxWidth:"calc(100vw - 16px)",height:l?"calc(100dvh - 16px)":"76vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!i&&(0,n.jsxs)("div",{className:"settings-content-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(--ds-text-primary)"},children:d("desktop.plugins")}),(0,n.jsx)("code",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:xl(t)})]}),(0,n.jsx)("button",{onClick:o,title:d("desktop.close"),"aria-label":d("desktop.close"),style:{background:"none",border:"none",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),(0,n.jsxs)("div",{className:"settings-content-detail",style:{flex:1,overflowY:"auto",padding:"var(--settings-content-detail-padding, 20px)",display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"baseline",gap:8,minWidth:0},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-base)",fontWeight:650,color:"var(--ds-text-primary)"},children:d("desktop.plugins")}),F.length+D.length>0&&(0,n.jsx)("span",{className:"models-sidebar-badge",children:F.length+D.length})]}),(0,n.jsx)("button",{type:"button",className:"config-button config-button-primary config-button-small",onClick:()=>{y(!0),T(null),I(null)},children:d("desktop.addPlugin")})]}),(0,n.jsxs)("div",{className:"settings-panel",children:[(0,n.jsx)("div",{style:{padding:"8px 6px"},children:p?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:d("desktop.loading")}):x?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-ui-xs)",color:"var(--status-error)"},children:x}):0===F.length&&0===D.length?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:d("desktop.noPluginsConfigured")}):(0,n.jsxs)(n.Fragment,{children:[D.length>0&&(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase"},children:d("i18n.extensions")}),D.map(e=>{let t=xu(e),r=!v&&f===t;return(0,n.jsxs)("div",{onClick:()=>{m(t),y(!1),T(null),I(null)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:"var(--radius-sm)",cursor:"pointer",background:r?"var(--ds-bg-active)":"none"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--ds-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:e.enabled?"var(--ds-accent)":"var(--ds-text-muted)"}}),(0,n.jsx)("div",{style:{minWidth:0,flex:1},children:(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:r?600:400,color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})})]},t)})]},"extensions"),B.map(e=>(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase"},children:d(`desktop.${e.scope}`)}),e.packages.map(e=>{let t=xc(e),r=!v&&f===t;return(0,n.jsxs)("div",{onClick:()=>{m(t),y(!1),T(null),I(null)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:"var(--radius-sm)",cursor:"pointer",background:r?"var(--ds-bg-active)":"none"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--ds-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:xx(e.status)}}),(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:r?600:400,color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.source}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:xp(e,d)}),(e.version||e.configuredVersion)&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",marginTop:2},children:xh(e,d)})]}),N[xc(e)]?.state==="update-available"&&(0,n.jsx)("span",{title:d("desktop.updateAvailable"),style:{flexShrink:0,fontSize:"var(--text-ui-sm)",color:"var(--status-warning)"},children:"↑"})]},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:()=>{y(!0),T(null),I(null)},style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:"var(--radius-sm)",border:"none",width:"100%",cursor:"pointer",background:v?"var(--ds-bg-active)":"none",color:v?"var(--ds-accent)":"var(--ds-text-muted)",fontSize:"var(--text-ui-sm)"},onMouseEnter:e=>{v||(e.currentTarget.style.background="var(--ds-bg-hover)")},onMouseLeave:e=>{v||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(e4.c,{size:13}),d("desktop.addPlugin")]})})]})]}),(v||H||O)&&!p&&(0,n.jsx)("div",{"data-settings-child-dialog":"true",style:{position:"fixed",inset:0,zIndex:1100,background:"rgba(0,0,0,0.4)",display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>{y(!1),m(null)},children:(0,n.jsxs)("div",{onClick:e=>e.stopPropagation(),style:{width:680,maxWidth:"calc(100vw - 32px)",maxHeight:"min(84vh, calc(100vh - 32px))",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-lg-plus)",display:"flex",flexDirection:"column",boxShadow:"0 12px 40px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",padding:"8px 12px",borderBottom:"1px solid var(--border)",flexShrink:0},children:(0,n.jsx)("button",{type:"button",onClick:()=>{y(!1),m(null)},"aria-label":d("desktop.close"),style:{background:"none",border:"none",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 8px"},children:"\xd7"})}),(0,n.jsx)("div",{style:{overflowY:"auto",padding:"18px 20px"},children:v?(0,n.jsx)(xb,{cwd:t,source:b,scope:j,busy:Y,actionError:z,onSourceChange:k,onScopeChange:w,onInstall:q}):H?(0,n.jsx)(xj,{extension:H}):O?(0,n.jsx)(xk,{pkg:O,cwd:t,busyKey:S,actionError:z,actionMessage:R,sessionId:r,updateStatus:N[xc(O)],checkingUpdate:E.has(xc(O)),updateError:A,onAction:K,onCheckUpdate:()=>void _(O),onReloadSession:V},xc(O)):null})]})}),(0,n.jsxs)("div",{className:"settings-content-footer",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:"var(--text-ui-xs)",color:"var(--ds-text-muted)",overflow:"hidden"},children:c?.diagnostics.length?(0,n.jsx)("span",{title:c.diagnostics.map(e=>`${e.type}: ${e.source?`${e.source}: `:""}${e.message}`).join("\n"),style:{color:c.diagnostics.some(e=>"error"===e.type)?"var(--status-error)":"var(--status-warning)"},children:d("desktop.diagnosticsCount",{count:c.diagnostics.length,suffix:1===c.diagnostics.length?"":"s"})}):(0,n.jsx)("span",{children:c?d("desktop.pluginResourceTotals",{extensions:c.totals.extensions,skills:c.totals.skills,prompts:c.totals.prompts,themes:c.totals.themes}):""})}),F.some(e=>e.canCheckForUpdates)&&(0,n.jsx)("button",{onClick:()=>void _(),disabled:L||p||null!==S,style:xm(L||p||null!==S),children:L?d("desktop.checking"):d("desktop.checkUpdates")}),(0,n.jsx)("button",{onClick:()=>void U(),disabled:p||null!==S,style:xm(p||null!==S),children:d("desktop.refresh")}),!i&&(0,n.jsx)("button",{onClick:o,style:xm(!1),children:d("desktop.close")})]})]})})}var xS=r(36282);function xC(){let{t:e}=(0,J.s)(),[t,r]=(0,s.useState)({enabled:!1,protocol:"http",host:"127.0.0.1",port:7890,username:"",password:"",noProxy:"localhost,127.0.0.1,.local",hasPassword:!1}),[i,o]=(0,s.useState)(!1),[a,l]=(0,s.useState)(!1),[d,c]=(0,s.useState)(null),[u,p]=(0,s.useState)(null),[h,x]=(0,s.useState)(null),[g,f]=(0,s.useState)(!1),[m,v]=(0,s.useState)(!1);(0,s.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/proxy");if(e.ok){let t=await e.json();r(e=>({...e,...t,password:""}))}}catch{}})()},[]);let y=(0,s.useCallback)((e,t)=>{r(r=>({...r,[e]:t})),"password"===e&&v(!0),f(!0),p(null),x(null)},[]),b=(0,s.useCallback)(async()=>{o(!0),p(null),x(null);try{let n={...t};delete n.hasPassword,m||delete n.password;let s=await fetch("/api/proxy",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),i=await s.json();if(s.ok){p(!0),f(!1),v(!1);let e=await fetch("/api/proxy");if(e.ok){let t=await e.json();r(e=>({...e,...t,password:""}))}}else p(!1),x(i.error||e("desktop.proxySaveFailed"))}catch(t){p(!1),x(t instanceof Error?t.message:e("desktop.proxySaveFailed"))}finally{o(!1)}},[t,m,e]),k=(0,s.useCallback)(async()=>{l(!0),c(null),g&&await b();try{let t=await fetch("/api/proxy/test",{method:"POST"}),r=await t.json();r.success?c({ok:!0,message:`${e("desktop.proxyTestSuccess")} \xb7 ${r.latencyMs}ms`,latencyMs:r.latencyMs}):c({ok:!1,message:r.error||e("desktop.proxyTestFailed")})}catch(t){c({ok:!1,message:t instanceof Error?t.message:e("desktop.proxyTestFailed")})}finally{l(!1)}},[g,b,e]),j=(0,s.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",{className:"settings-content-panel settings-content-stack",style:{flex:1,display:"flex",flexDirection:"column",padding:"16px 20px",overflow:"auto",gap:16},children:[(0,n.jsxs)("div",{className:"settings-content-card settings-content-row",style:{display:"flex",alignItems:"center",gap:12,marginBottom:4,border:"var(--settings-content-card-border, none)",background:"var(--settings-content-card-bg, transparent)"},children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:"var(--text-ui-base)",fontWeight:500,color:"var(--ds-text-primary)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:t.enabled,onChange:e=>y("enabled",e.target.checked),style:{width:16,height:16,accentColor:"var(--ds-accent)"}}),e("desktop.proxyEnable")]}),t.enabled&&j&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)",backgroundColor:"var(--ds-bg-hover)",padding:"2px 10px",borderRadius:"var(--radius-xs)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"60%"},title:j,children:j})]}),(0,n.jsxs)("div",{className:"settings-content-card settings-content-fields",style:{border:"var(--settings-content-card-border, none)",background:"var(--settings-content-card-bg, transparent)",display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(min(220px, 100%), 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:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:e("desktop.proxyProtocol")}),(0,n.jsxs)("select",{value:t.protocol,onChange:e=>y("protocol",e.target.value),style:{padding:"6px 10px",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",background:"var(--bg)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-base)",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:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:e("desktop.proxyHost")}),(0,n.jsx)("input",{type:"text",value:t.host,onChange:e=>y("host",e.target.value),placeholder:"127.0.0.1",style:{padding:"6px 10px",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",background:"var(--bg)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-base)",fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:e("desktop.proxyPort")}),(0,n.jsx)("input",{type:"number",value:t.port,onChange:e=>y("port",parseInt(e.target.value,10)||0),placeholder:"7890",min:1,max:65535,style:{padding:"6px 10px",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",background:"var(--bg)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-base)",fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:e("desktop.proxyUsername")}),(0,n.jsx)("input",{type:"text",value:t.username,onChange:e=>y("username",e.target.value),placeholder:t.username?"":e("desktop.proxyUsername"),style:{padding:"6px 10px",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",background:"var(--bg)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-base)",fontFamily:"var(--font-mono)",outline:"none"}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("label",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:e("desktop.proxyPassword")}),(0,n.jsx)("input",{type:"password",value:t.password,onChange:e=>y("password",e.target.value),placeholder:t.hasPassword?"••••••••":e("desktop.proxyPassword"),style:{padding:"6px 10px",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",background:"var(--bg)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-base)",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:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:e("desktop.proxyNoProxy")}),(0,n.jsx)("input",{type:"text",value:t.noProxy,onChange:e=>y("noProxy",e.target.value),placeholder:"localhost,127.0.0.1,.local",style:{padding:"6px 10px",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",background:"var(--bg)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-base)",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:b,disabled:i,style:{padding:"6px 18px",borderRadius:"var(--radius-sm)",border:"none",background:"var(--ds-accent)",color:"var(--accent-fg)",fontSize:"var(--text-ui-base)",fontWeight:500,cursor:i?"not-allowed":"pointer",opacity:i?.5:1,transition:"background 0.15s"},onMouseEnter:e=>{i||(e.currentTarget.style.background="var(--accent-hover)")},onMouseLeave:e=>{i||(e.currentTarget.style.background="var(--ds-accent)")},children:i?e("desktop.proxySaving"):e("desktop.proxySave")}),(0,n.jsx)("button",{type:"button",onClick:k,disabled:a||!t.enabled,style:{padding:"6px 18px",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",background:"var(--bg)",color:t.enabled?"var(--ds-text-primary)":"var(--ds-text-secondary)",fontSize:"var(--text-ui-base)",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(--ds-bg-hover)")},onMouseLeave:e=>{t.enabled&&(e.currentTarget.style.background="var(--bg)")},children:a?e("desktop.proxyTesting"):e("desktop.proxyTest")})]}),!0===u&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:"var(--radius-sm)",backgroundColor:"rgba(34, 197, 94, 0.12)",color:"var(--status-success)",fontSize:"var(--text-ui-base)"},children:[(0,n.jsx)(lQ.r,{size:16,weight:"fill"}),e("desktop.proxySaved")]}),!1===u&&h&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:"var(--radius-sm)",backgroundColor:"rgba(239, 68, 68, 0.10)",color:"var(--status-error)",fontSize:"var(--text-ui-base)"},children:[(0,n.jsx)(c3.J,{size:16,weight:"fill"}),h]}),d&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 12px",borderRadius:"var(--radius-sm)",backgroundColor:d.ok?"rgba(34, 197, 94, 0.10)":"rgba(239, 68, 68, 0.10)",color:d.ok?"var(--status-success)":"var(--status-error)",fontSize:"var(--text-ui-base)"},children:[d.ok?(0,n.jsx)(lQ.r,{size:16,weight:"fill"}):(0,n.jsx)(c3.J,{size:16,weight:"fill"}),d.message,void 0!==d.latencyMs&&(0,n.jsxs)("span",{style:{color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)",marginLeft:4},children:["(",d.latencyMs,"ms)"]})]}),g&&!u&&!h&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 12px",borderRadius:"var(--radius-sm)",backgroundColor:"var(--ds-bg-hover)",color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)"},children:[(0,n.jsx)(xS.j,{size:12,weight:"fill"}),e("desktop.proxyUnsaved")]})]})}function xz(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function xT(e){let t=e.sourceInfo?.source,r=e.sourceInfo?.scope;return"user"===r||"user"===t?"global":"project"===r||"project"===t?"project":"path"}function xR(e){return e.install?`${e.install.scope}\0${e.install.package}`:null}function xI(e,t){return e?e.slice(0,8):t}function xN(e){let{enabled:t,loading:r,onToggle:s}=e,{t:i}=(0,J.s)();return(0,n.jsx)("button",{onClick:s,disabled:r,title:i(t?"desktop.visibleInModelPrompt":"desktop.hiddenFromModelPrompt"),style:{flexShrink:0,width:40,height:22,borderRadius:"var(--radius-md-plus)",border:"none",padding:0,cursor:r?"wait":"pointer",background:t?"var(--ds-accent)":"var(--ds-border-default)",position:"relative",transition:"background 0.18s",outline:"none"},children:(0,n.jsx)("span",{style:{position:"absolute",top:3,left:t?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 xM(e){let{skill:t,cwd:r,onToggle:s,toggling:i,saveError:o,updateStatus:a,checkingUpdate:l,updating:d,updateError:c,onCheckUpdate:u,onUpdate:p}=e,{t:h}=(0,J.s)(),x=xT(t),g=!t.disableModelInvocation;return(0,n.jsxs)("div",{className:"settings-content-detail-stack",style:{display:"flex",flexDirection:"column",gap:20},children:[(0,n.jsxs)("div",{className:"settings-content-detail-header",style:{display:"flex",alignItems:"center",gap:7},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",padding:"1px 5px",borderRadius:"var(--radius-xs)",flexShrink:0,background:"project"===x?"rgba(99,102,241,0.12)":"rgba(120,120,120,0.12)",color:"project"===x?"rgba(99,102,241,0.8)":"var(--ds-text-muted)"},children:h(`desktop.${x}`)}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:function(e){if("project"===x&&e.startsWith(r)){let t=e.slice(r.length).replace(/^[/\\]/,"");return`./${t}`}return xz(e)}(t.filePath)}),(0,n.jsx)(xN,{enabled:g,loading:i,onToggle:()=>s(t)}),o&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)",flexShrink:0},children:o})]}),!g&&(0,n.jsx)("div",{style:{marginTop:-12,color:"var(--ds-text-muted)",fontSize:"var(--text-ui-sm)"},children:h("desktop.hiddenButInvocable")}),t.install?.skillsShUrl&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",fontWeight:500},children:h("desktop.pluginSource")}),(0,n.jsx)("a",{href:t.install.skillsShUrl,target:"_blank",rel:"noreferrer",title:t.install.skillsShUrl,style:{display:"flex",alignItems:"center",gap:8,width:"fit-content",maxWidth:"100%",color:"var(--ds-accent)",textDecoration:"none"},children:(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-sm)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[t.install.skillsShUrl.replace(/^https?:\/\//,"")," ↗"]})})]}),t.install&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:7},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",fontWeight:500},children:h("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:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:xI(a?.currentVersion??t.install.versionHash,h("desktop.unknown"))}),t.install.canCheckForUpdates&&(0,n.jsx)("button",{onClick:u,disabled:l||d,style:{padding:"4px 9px",borderRadius:"var(--radius-sm)",background:"none",color:"var(--ds-text-secondary)",cursor:l||d?"not-allowed":"pointer",opacity:l||d?.5:1,fontSize:"var(--text-ui-xs)"},children:h("desktop.check")}),a?.state==="update-available"&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-sm)",color:"var(--status-warning)"},children:xI(a.latestVersion,h("desktop.unknown"))}),(l||a&&"update-available"!==a.state)&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:l?"var(--ds-accent)":a?.state==="up-to-date"?"var(--status-success)":a?.state==="error"?"var(--status-error)":"var(--ds-text-muted)"},children:l?h("desktop.checking"):a?.state==="up-to-date"?h("desktop.upToDate"):a?.state==="unsupported"?h("desktop.automaticChecksUnavailable"):a?.message||h("desktop.checkFailed")}),a?.state==="update-available"&&(0,n.jsx)("button",{onClick:p,disabled:d||l,style:{padding:"4px 10px",border:"none",borderRadius:"var(--radius-sm)",background:"var(--ds-accent)",color:"var(--accent-fg)",cursor:d||l?"not-allowed":"pointer",opacity:d||l?.5:1,fontSize:"var(--text-ui-xs)",fontWeight:600},children:h(d?"desktop.updating":"desktop.update")})]}),c&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)"},children:c})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",fontWeight:500},children:h("desktop.name")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-base)",color:"var(--ds-text-primary)"},children:t.name})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",fontWeight:500},children:h("desktop.description")}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-base)",color:"var(--ds-text-secondary)",lineHeight:1.6},children:t.description})]})]})}function xE(e){let{cwd:t,installedPackages:r,projectResourcesLoaded:i,onInstalled:o}=e,{t:a}=(0,J.s)(),[l,d]=(0,s.useState)(""),[c,u]=(0,s.useState)([]),[p,h]=(0,s.useState)(!1),[x,g]=(0,s.useState)(null),[f,m]=(0,s.useState)(null),[v,y]=(0,s.useState)(null),[b,k]=(0,s.useState)(new Set),[j,w]=(0,s.useState)("global"),S=(0,s.useRef)(null);(0,s.useEffect)(()=>{S.current?.focus()},[]),(0,s.useEffect)(()=>{i||w("global")},[i]);let C=(0,s.useCallback)(async e=>{if(e.trim()){h(!0),g(null),u([]);try{let t=await fetch("/api/skills/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e.trim()})}),r=await t.json();if(r.error)return void g(r.error);u(r.results??[]),0===(r.results??[]).length&&g(a("desktop.noSkillsFound"))}catch(e){g(String(e))}finally{h(!1)}}},[a]),z=(0,s.useCallback)(async e=>{m(e),y(null);try{let r=await fetch("/api/skills/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({package:e,scope:j,cwd:t})}),n=await r.json();if(!r.ok||n.error)return void y(n.error??`HTTP ${r.status}`);k(t=>new Set(t).add(`${j}:${e}`)),o()}catch(e){y(String(e))}finally{m(null)}},[o,j,t]),T="global"===j?"~/.pi/agent/skills/":`${xz(t)}/.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:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:a("desktop.addSkillTitle")}),(0,n.jsxs)("div",{style:{display:"flex",gap:8},children:[(0,n.jsx)("input",{ref:S,value:l,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"===e.key&&C(l)},placeholder:a("desktop.skillSearchPlaceholder"),style:{flex:1,padding:"7px 10px",fontSize:"var(--text-ui-base)",background:"var(--ds-bg-secondary)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",outline:"none"}}),(0,n.jsx)("button",{onClick:()=>C(l),disabled:p||!l.trim(),style:{padding:"7px 16px",fontSize:"var(--text-ui-base)",borderRadius:"var(--radius-sm)",border:"none",background:"var(--ds-accent)",color:"var(--accent-fg)",cursor:p||!l.trim()?"not-allowed":"pointer",opacity:p||!l.trim()?.5:1,flexShrink:0},children:p?a("desktop.searching"):a("desktop.search")})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[(0,n.jsx)("div",{style:{display:"flex",borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",overflow:"hidden",fontSize:"var(--text-ui-sm)",flexShrink:0},children:["global","project"].map(e=>(0,n.jsx)("button",{onClick:()=>w(e),disabled:"project"===e&&!i,title:"project"!==e||i?void 0:a("desktop.projectSkillInstallUnavailable"),style:{padding:"3px 10px",border:"none",cursor:"project"!==e||i?"pointer":"not-allowed",opacity:"project"!==e||i?1:.5,background:j===e?"var(--ds-bg-active)":"none",color:j===e?"var(--ds-text-primary)":"var(--ds-text-muted)",fontWeight:j===e?600:400,borderRight:"global"===e?"1px solid var(--border)":"none"},children:a(`desktop.${e}`)},e))}),(0,n.jsxs)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["→ ",T]})]}),x&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)"},children:x}),v&&(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-error)",wordBreak:"break-word"},children:v})]}),c.length>0?(0,n.jsx)("div",{style:{flex:1,overflowY:"auto"},children:c.map(e=>{let t=r[j].has(e.package)||b.has(`${j}:${e.package}`),s=f===e.package,i=e.package.indexOf("@"),o=i>-1?e.package.slice(0,i):e.package,l=i>-1?e.package.slice(i+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:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)",marginBottom:3},children:l??o}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:o}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",fontWeight:500},children:e.installs}),e.url&&(0,n.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-accent)",textDecoration:"none"},children:"skills.sh ↗"})]})]}),(0,n.jsx)("button",{onClick:()=>!t&&!s&&z(e.package),disabled:t||s||null!==f,style:{flexShrink:0,padding:"5px 14px",fontSize:"var(--text-ui-sm)",fontWeight:500,borderRadius:"var(--radius-sm)",border:"1px solid var(--border)",cursor:t||s||null!==f?"not-allowed":"pointer",background:t?"rgba(34,197,94,0.1)":"none",color:t?"var(--status-success)":s?"var(--ds-accent)":"var(--ds-text-secondary)",transition:"color 0.12s"},children:t?`✓ ${a("desktop.installed")}`:s?a("desktop.installing"):a("desktop.install")})]},e.package)})}):!x&&!p&&(0,n.jsxs)("div",{style:{fontSize:"var(--text-ui-base)",color:"var(--ds-text-muted)",lineHeight:1.8},children:[a("desktop.skillSearchHint").split("skills.sh")[0],(0,n.jsx)("a",{href:"https://skills.sh",target:"_blank",rel:"noreferrer",style:{color:"var(--ds-accent)",textDecoration:"none"},children:"skills.sh"}),a("desktop.skillSearchHint").split("skills.sh")[1]]})]})}function x$(e){let{cwd:t,embedded:r=!1,sessionId:i,onCloseAction:o}=e,a=tu(),{t:l}=(0,J.s)(),[d,c]=(0,s.useState)([]),[u,p]=(0,s.useState)(!0),[h,x]=(0,s.useState)(null),[g,f]=(0,s.useState)(null),[m,v]=(0,s.useState)(new Set);G(!r&&!!o,()=>o?.());let[y,b]=(0,s.useState)(null),[k,j]=(0,s.useState)(!1),[w,S]=(0,s.useState)({}),[C,z]=(0,s.useState)(new Set),[T,R]=(0,s.useState)(!1),[I,N]=(0,s.useState)(null),[M,E]=(0,s.useState)(null),[$,L]=(0,s.useState)(!0),W=(0,s.useCallback)(async()=>{p(!0),x(null);try{let e=await fetch(`/api/skills?cwd=${encodeURIComponent(t)}`),r=await e.json();if(!e.ok||r.error)throw Error(r.error??`HTTP ${e.status}`);let n=r.skills??[];if(c(n),L(r.projectResourcesLoaded??!0),n.length>0&&!g){let e=n.find(e=>!e.disableModelInvocation)??n[0];f(e.filePath)}return n}catch(e){return x(String(e)),[]}finally{p(!1)}},[t,g]);(0,s.useEffect)(()=>{S({}),E(null),W()},[t]);let A=(0,s.useCallback)(async e=>{let r=(e?[e]:d.filter(e=>!!e.install)).map(xR).filter(e=>!!e);if(0!==r.length){E(null),z(e=>new Set([...e,...r])),e||R(!0);try{let r=await fetch("/api/skills/check",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,package:e?.install?.package,scope:e?.install?.scope})}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.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{z(e=>{let t=new Set(e);for(let e of r)t.delete(e);return t}),e||R(!1)}}},[t,d]),P=(0,s.useCallback)(async e=>{if(!e.install)return;let r=xR(e);N(r),E(null);try{let n=await fetch("/api/skills/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,package:e.install.package,scope:e.install.scope})}),s=await n.json();if(!n.ok||s.error||!s.success)throw Error(s.error??`HTTP ${n.status}`);await W();let i=s.skill?.install?.versionHash;S(t=>({...t,[r]:{package:e.install.package,scope:e.install.scope,state:"up-to-date",currentVersion:i,latestVersion:i}}))}catch(e){E(e instanceof Error?e.message:String(e))}finally{N(null)}},[t,W]),F=(0,s.useCallback)(async e=>{let r=!e.disableModelInvocation;v(t=>new Set(t).add(e.filePath)),b(null);try{let n=await fetch("/api/skills",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,filePath:e.filePath,disableModelInvocation:r})}),s=await n.json();if(!n.ok||s.error)return void b(s.error??`HTTP ${n.status}`);c(t=>t.map(t=>t.filePath===e.filePath?{...t,disableModelInvocation:r}:t))}catch(e){b(String(e))}finally{v(t=>{let r=new Set(t);return r.delete(e.filePath),r})}},[t]),D=d.find(e=>e.filePath===g)??null;return(0,n.jsx)("div",{className:"settings-content-panel",style:r?{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"},children:(0,n.jsxs)("div",{className:"settings-content-surface",style:r?{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)":"78vh",maxHeight:"calc(100dvh - 16px)",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-md-plus)",display:"flex",flexDirection:"column",boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden"},children:[!r&&(0,n.jsxs)("div",{className:"settings-content-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},children:[(0,n.jsx)("span",{style:{fontSize:15,fontWeight:700,color:"var(--ds-text-primary)"},children:l("desktop.skills")}),(0,n.jsx)("code",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:xz(t)})]}),(0,n.jsx)("button",{onClick:o,title:l("desktop.close"),"aria-label":l("desktop.close"),style:{background:"none",border:"none",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:20,lineHeight:1,padding:"2px 6px"},children:"\xd7"})]}),!$&&(0,n.jsx)("div",{role:"status",style:{padding:"8px 18px",borderBottom:"1px solid var(--border)",background:"var(--bg-subtle)",color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)"},children:l("desktop.projectSkillsRestricted")}),(0,n.jsxs)("div",{className:"settings-content-split",style:{flex:1,display:"flex",flexDirection:a?"column":"row",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"settings-content-sidebar",style:{width:a?"100%":210,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(--settings-content-sidebar-bg, var(--bg-panel))"},children:[(0,n.jsx)("div",{style:{padding:"8px 8px 0",display:"flex",justifyContent:"flex-end"},children:(0,n.jsx)(pU,{sessionId:i,onApplied:W})}),(0,n.jsx)("div",{style:{flex:1,overflowY:"auto",padding:"8px 6px"},children:u?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:l("desktop.loading")}):h?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-ui-xs)",color:"var(--status-error)"},children:h}):0===d.length?(0,n.jsx)("div",{style:{padding:"10px 8px",fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:l("desktop.noSkillsFound")}):(()=>{let e=[];for(let{key:t,label:r,matches:n}of[{key:"project / skills.sh",label:`${l("desktop.project")} / skills.sh`,matches:e=>"project"===xT(e)&&!!e.install?.skillsShUrl},{key:"project",label:l("desktop.project"),matches:e=>"project"===xT(e)&&!e.install?.skillsShUrl},{key:"global / skills.sh",label:`${l("desktop.global")} / skills.sh`,matches:e=>"global"===xT(e)&&!!e.install?.skillsShUrl},{key:"global",label:l("desktop.global"),matches:e=>"global"===xT(e)&&!e.install?.skillsShUrl},{key:"path",label:l("desktop.path"),matches:e=>"path"===xT(e)}]){let s=d.filter(n);s.length>0&&e.push({key:t,label:r,skills:s})}return e.map(e=>{let{key:t,label:r,skills:s}=e;return s.filter(e=>e.disableModelInvocation),(0,n.jsxs)("div",{style:{marginBottom:6},children:[(0,n.jsx)("div",{style:{padding:"4px 8px 3px",fontSize:"var(--text-ui-xs)",fontWeight:600,color:"var(--ds-text-muted)",textTransform:"uppercase",letterSpacing:"0.06em"},children:r}),[...s.filter(e=>!e.disableModelInvocation),...s.filter(e=>e.disableModelInvocation)].map(e=>{let t,r,s=!k&&g===e.filePath,i=e.disableModelInvocation;return(0,n.jsxs)("div",{onClick:()=>{f(e.filePath),j(!1)},style:{display:"flex",alignItems:"center",gap:7,padding:"8px 8px",borderRadius:"var(--radius-sm)",cursor:"pointer",background:s?"var(--ds-bg-active)":"none"},onMouseEnter:e=>{s||(e.currentTarget.style.background="var(--ds-bg-hover)")},onMouseLeave:e=>{s||(e.currentTarget.style.background="none")},children:[(0,n.jsx)("span",{style:{flexShrink:0,width:7,height:7,borderRadius:"50%",background:i?"var(--ds-border-default)":"var(--ds-accent)",boxShadow:i?"none":"0 0 4px var(--accent)",transition:"background 0.15s, box-shadow 0.15s"}}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",fontWeight:s?600:400,color:i?"var(--ds-text-muted)":"var(--ds-text-primary)",fontFamily:"var(--font-mono)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(r=(t=xR(e))?w[t]:void 0,r?.state!=="update-available"?null:(0,n.jsx)("span",{title:l("desktop.updateAvailable"),style:{color:"var(--status-warning)",fontSize:"var(--text-ui-base)",lineHeight:1,flexShrink:0},children:"↑"}))]},e.filePath)})]},t)})})()}),(0,n.jsx)("div",{style:{padding:"8px 6px",borderTop:"1px solid var(--border)",flexShrink:0},children:(0,n.jsxs)("div",{onClick:()=>j(!0),style:{display:"flex",alignItems:"center",gap:6,padding:"7px 8px",borderRadius:"var(--radius-sm)",cursor:"pointer",background:k?"var(--ds-bg-active)":"none",color:k?"var(--ds-accent)":"var(--ds-text-muted)",fontSize:"var(--text-ui-sm)"},onMouseEnter:e=>{k||(e.currentTarget.style.background="var(--ds-bg-hover)")},onMouseLeave:e=>{k||(e.currentTarget.style.background="none")},children:[(0,n.jsx)(e4.c,{size:13}),l("desktop.addSkill")]})})]}),(0,n.jsx)("div",{className:"settings-content-detail",style:{flex:1,overflowY:"auto",padding:"var(--settings-content-detail-padding, 20px)"},children:k?(0,n.jsx)(xE,{cwd:t,installedPackages:{global:new Set(d.filter(e=>e.install?.scope==="global").map(e=>e.install.package)),project:new Set(d.filter(e=>e.install?.scope==="project").map(e=>e.install.package))},projectResourcesLoaded:$,onInstalled:()=>{W()}}):u?null:D?(0,n.jsx)(xM,{skill:D,cwd:t,onToggle:F,toggling:m.has(D.filePath),saveError:y,updateStatus:xR(D)?w[xR(D)]:void 0,checkingUpdate:!!xR(D)&&C.has(xR(D)),updating:I===xR(D),updateError:M,onCheckUpdate:()=>void A(D),onUpdate:()=>void P(D)},D.filePath):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ds-text-muted)",fontSize:"var(--text-ui-base)"},children:l("desktop.selectSkill")})})]}),(0,n.jsxs)("div",{className:"settings-content-footer",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:[d.some(e=>!!e.install)&&(0,n.jsx)("button",{onClick:()=>void A(),disabled:T||null!==I,style:{padding:"6px 12px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:T||null!==I?"not-allowed":"pointer",opacity:T||null!==I?.5:1,fontSize:"var(--text-ui-sm)"},children:T?l("desktop.checking"):l("desktop.checkUpdates")}),Object.values(w).filter(e=>"update-available"===e.state).length>0&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--status-warning)"},children:l("desktop.updatesCount").replace("{count}",String(Object.values(w).filter(e=>"update-available"===e.state).length)).replace("{suffix}",1===Object.values(w).filter(e=>"update-available"===e.state).length?"":"s")})]}),!r&&(0,n.jsx)("button",{onClick:o,style:{padding:"6px 14px",background:"none",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-base)"},children:l("desktop.close")})]})]})})}function xL(){let{t:e}=(0,J.s)(),[t,r]=(0,s.useState)([]),[i,o]=(0,s.useState)(""),[a,l]=(0,s.useState)(""),[d,c]=(0,s.useState)(""),[u,p]=(0,s.useState)(""),[h,x]=(0,s.useState)(!0),[g,f]=(0,s.useState)(null),m=(0,s.useCallback)(async()=>{x(!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}`);r(t.entries??[])}catch(e){f(e instanceof Error?e.message:String(e))}finally{x(!1)}},[]);(0,s.useEffect)(()=>{m()},[m]);let v=(0,s.useMemo)(()=>[...new Set(t.map(e=>e.source).filter(Boolean))].sort(),[t]),y=(0,s.useMemo)(()=>[...new Set(t.map(e=>e.statusCode).filter(e=>void 0!==e))].sort((e,t)=>e-t),[t]),b=(0,s.useMemo)(()=>{let e=u.trim().toLocaleLowerCase();return t.filter(e=>!i||e.level===i).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,i,a,d,u]),k=async()=>{try{let e=await fetch("/api/logs",{method:"DELETE"});if(!e.ok)throw Error(`HTTP ${e.status}`);r([])}catch(e){f(e instanceof Error?e.message:String(e))}},j=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 i9(t),f(null)}catch(e){f(e instanceof Error?e.message:String(e))}};return(0,n.jsxs)("div",{className:"settings-content-panel settings-content-stack",style:{flex:1,minWidth:0,minHeight:0,overflow:"auto",padding:"18px 20px",display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsxs)("div",{className:"settings-content-card settings-content-toolbar",style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",background:"var(--settings-content-card-bg, transparent)",border:"var(--settings-content-card-border, none)"},children:[(0,n.jsxs)("select",{value:i,onChange:e=>o(e.target.value),style:{padding:"7px 9px",background:"var(--ds-bg-secondary)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)"},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(--ds-bg-secondary)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)"},children:[(0,n.jsx)("option",{value:"",children:e("desktop.logsAllCodes")}),y.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(--ds-bg-secondary)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)"},children:[(0,n.jsx)("option",{value:"",children:e("desktop.logsAllSources")}),v.map(e=>(0,n.jsx)("option",{value:e,children:e},e))]}),(0,n.jsx)("input",{value:u,onChange:e=>p(e.target.value),placeholder:e("desktop.logsSearch"),style:{flex:1,minWidth:180,padding:"7px 9px",background:"var(--ds-bg-secondary)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)"}}),(0,n.jsx)("button",{type:"button",onClick:()=>void m(),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:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:"var(--ds-text-secondary)",cursor:"pointer"},children:(0,n.jsx)(K.S,{size:14})}),(0,n.jsx)("button",{type:"button",onClick:()=>void k(),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:"var(--radius-sm)",background:"var(--ds-bg-secondary)",color:"var(--status-error)",cursor:"pointer"},children:(0,n.jsx)(e3.l,{size:14})})]}),h&&(0,n.jsx)("div",{style:{color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)"},children:e("desktop.loading")}),g&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:"var(--text-ui-sm)"},children:g}),!h&&!g&&0===b.length&&(0,n.jsx)("div",{style:{color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)"},children:e("desktop.logsEmpty")}),(0,n.jsx)("div",{className:"settings-content-stack",style:{display:"flex",flexDirection:"column",gap:8},children:b.map(t=>(0,n.jsxs)("details",{className:"settings-content-card settings-content-log-entry",style:{border:"var(--settings-content-card-border, 1px solid var(--border))",borderRadius:"var(--radius-md)",background:"var(--settings-content-card-bg, var(--bg-panel))",padding:"8px 10px"},children:[(0,n.jsxs)("summary",{style:{cursor:"pointer",color:"error"===t.level?"var(--status-error)":"warning"===t.level?"var(--status-warning)":"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)"},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(--ds-text-secondary)",fontSize:"var(--text-ui-xs)",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 j(t),style:{marginTop:8,padding:"4px 7px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--bg)",color:"var(--ds-text-secondary)",cursor:"pointer",fontSize:"var(--text-ui-xs)"},children:e("desktop.logsCopy")})]})]},t.id))})]})}let xW={padding:"7px 9px",background:"var(--ds-bg-secondary)",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",width:"100%"},xA={padding:"6px 12px",border:"none",borderRadius:"var(--radius-sm)",background:"var(--ds-accent)",color:"var(--accent-fg)",cursor:"pointer",fontSize:"var(--text-ui-sm)"};function xP(){let{t:e}=(0,J.s)(),[t,r]=(0,s.useState)([]),[i,o]=(0,s.useState)(!0),[a,l]=(0,s.useState)(null),[d,c]=(0,s.useState)(""),[u,p]=(0,s.useState)(""),[h,x]=(0,s.useState)(!1),[g,f]=(0,s.useState)(null),m=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/snippets");if(!e.ok)return;let t=await e.json();r(t.snippets??[]),o(!1)}catch{o(!1)}},[]);(0,s.useEffect)(()=>{m()},[m]);let v=(0,s.useCallback)(()=>{window.dispatchEvent(new Event("pi:snippets-changed"))},[]),y=()=>{l(null),c(""),p(""),f(null)},b=(0,s.useCallback)(async()=>{let t=d.trim();if(!t)return void f(e("desktop.snippetNameRequired"));x(!0),f(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 m(),v(),y()}catch(e){f(e instanceof Error?e.message:String(e))}finally{x(!1)}},[a,d,u,m,v,e]),k=(0,s.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&&y(),await m(),v()}catch(e){f(e instanceof Error?e.message:String(e))}},[a,m,v]);return(0,n.jsx)("div",{className:"settings-content-panel settings-content-card-host settings-content-stack",style:{flex:1,minWidth:0,minHeight:0,overflowY:"auto",padding:"var(--settings-content-panel-padding, 20px 22px)"},children:(0,n.jsxs)(lB,{children:[(0,n.jsx)(pm,{children:(0,n.jsxs)("div",{className:"settings-content-section-header",style:{display:"flex",alignItems:"center",gap:7,padding:"12px 0"},children:[(0,n.jsx)(aS.c,{size:15,"aria-hidden":"true"}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"settings-content-section-title",style:{fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:e("desktop.snippets")}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",marginTop:2},children:e("desktop.snippetsDesc")})]})]})}),(0,n.jsx)(pm,{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:y,style:xA,children:(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,n.jsx)(e4.F,{size:13})," ",e("desktop.snippetNew")]})}),a&&(0,n.jsx)("button",{type:"button",onClick:y,style:{...xA,background:"var(--ds-bg-hover)",color:"var(--ds-text-secondary)"},children:(0,n.jsx)(eP.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:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",display:"block",marginBottom:4},children:e("desktop.snippetName")}),(0,n.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:"#name",style:xW})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)",display:"block",marginBottom:4},children:e("desktop.snippetContent")}),(0,n.jsx)("textarea",{value:u,onChange:e=>p(e.target.value),rows:3,style:{...xW,resize:"vertical",fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)"}})]})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void b(),disabled:h,style:{...xA,cursor:h?"wait":"pointer"},children:e("desktop.snippetSave")}),g&&(0,n.jsx)("span",{style:{color:"var(--status-error, #ef4444)",fontSize:"var(--text-ui-sm)"},children:g})]}),i?(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)"},children:e("desktop.loadingThemes")}):0===t.length?(0,n.jsx)(py,{children:e("desktop.snippetEmpty")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:t.map(t=>(0,n.jsxs)("div",{className:"settings-content-card settings-content-row",style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--settings-content-card-bg, var(--bg-panel))",border:"var(--settings-content-card-border, 1px solid var(--border))",borderRadius:"var(--radius-sm)"},children:[(0,n.jsx)("span",{style:{color:"var(--ds-accent)",fontFamily:"var(--font-mono)",fontSize:"var(--text-ui-xs)"},children:"#"}),(0,n.jsx)("span",{style:{fontWeight:600,fontSize:"var(--text-ui-sm)",flexShrink:0},children:t.name}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--ds-text-secondary)",fontSize:"var(--text-ui-xs)",fontFamily:"var(--font-mono)"},children:t.content.split("\n")[0]}),(0,n.jsx)("button",{type:"button",onClick:()=>{l(t),c(t.name),p(t.content),f(null)},title:e("desktop.snippetEdit"),style:{background:"none",border:"none",color:"var(--ds-text-muted)",cursor:"pointer",padding:2},children:(0,n.jsx)(eZ.I,{size:13})}),(0,n.jsx)("button",{type:"button",onClick:()=>void k(t.id),title:e("desktop.snippetDelete"),style:{background:"none",border:"none",color:"var(--ds-text-muted)",cursor:"pointer",padding:2},children:(0,n.jsx)(e3.l,{size:13})})]},t.id))})]})}),(0,n.jsx)(pv,{children:(0,n.jsx)(py,{children:e("desktop.snippetHint")})})]})})}var xF=r(77836),xD=r(26668);let xO=Object.fromEntries([{key:"control",stiffness:420,damping:32,mass:1},{key:"sheet",stiffness:300,damping:34,mass:1},{key:"overlay",stiffness:220,damping:30,mass:1},{key:"pop",stiffness:380,damping:26,mass:.9}].map(e=>{let t,{key:r,stiffness:n,damping:s,mass:i}=e,o={stiffness:n,damping:s,mass:i};return[r,{kind:"spring",...o,zeta:(t=2*Math.sqrt(o.stiffness*o.mass))>0?o.damping/t:0}]}));function xH(e){return{type:"spring",stiffness:e.stiffness,damping:e.damping,mass:e.mass}}let xB={builtin:0,global:1,workspace:2,project:3},xU="pi-web:settings-navigation";function x_(){try{return window.localStorage}catch{return null}}function xK(e){let t=e.getItem(xU);if(!t)return{};try{let e=JSON.parse(t);if(null===e||"object"!=typeof e||Array.isArray(e))return{};return{section:"string"==typeof e.section?e.section:void 0,selections:null===e.selections||"object"!=typeof e.selections||Array.isArray(e.selections)?void 0:e.selections}}catch{return{}}}function xq(e,t){return"models"===e?e:t?JSON.stringify([e,t]):null}function xV(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:x_();if(!r)return null;let n=xq(e,t);if(!n)return null;try{let e=xK(r).selections?.[n];return"string"==typeof e&&e.length>0?e:null}catch{return null}}let xJ=["read","bash","edit","write","grep","find","ls"],xG=xH(xO.sheet),xY=xH(xO.overlay),xX=["","off","minimal","low","medium","high","xhigh","max"],xZ={name:"custom-agent",displayName:"Custom agent",description:"",systemPrompt:"",tools:["read","bash","edit","write","grep","find","ls"],loadSkills:!1,loadExtensions:!1,promptMode:"append",inheritContext:!1,runInBackground:!1,enabled:!0},xQ={width:"100%",minWidth:0,height:34,padding:"0 9px",border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--bg)",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)",outline:"none"},x0={background:"var(--ds-bg-secondary)",color:"var(--ds-text-muted)",cursor:"default"};function x1(e){return{name:e.name,displayName:e.displayName,description:e.description,systemPrompt:e.systemPrompt,tools:[...e.tools],loadSkills:e.loadSkills,loadExtensions:e.loadExtensions,promptMode:e.promptMode,...e.model?{model:e.model}:{},...e.thinking?{thinking:e.thinking}:{},...e.maxTurns?{maxTurns:e.maxTurns}:{},inheritContext:e.inheritContext,runInBackground:e.runInBackground,enabled:e.enabled}}function x2(e){return`${e.scope}:${e.name}`}function x6(e){return"global"===e||"project"===e}function x4(e){return x6(e)||"builtin"===e}function x5(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function x3(e){let{label:t,children:r}=e;return(0,n.jsx)(l_,{label:t,children:r})}function x8(e){let{checked:t,disabled:r,label:s,onChange:i}=e;return(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:7,color:r?"var(--ds-text-muted)":"var(--ds-text-secondary)",fontSize:"var(--text-ui-sm)",cursor:r?"default":"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:t,disabled:r,onChange:e=>i(e.target.checked)}),s]})}function x7(e){let{cwd:t,sessionId:r=null,onClose:i,onReloaded:o,embedded:a=!1}=e,l=tu(),{t:d}=(0,J.s)(),[c,u]=(0,s.useState)([]),[p,h]=(0,s.useState)([]),[x,g]=(0,s.useState)(!0),[f,m]=(0,s.useState)(null),[v,y]=(0,s.useState)(()=>xV("agents",t)),[b,k]=(0,s.useState)(xZ),[j,w]=(0,s.useState)("view"),[S,C]=(0,s.useState)(!1),[z,T]=(0,s.useState)("global"),[R,I]=(0,s.useState)(!0),[N,M]=(0,s.useState)(!1),[E,$]=(0,s.useState)(!1),[L,W]=(0,s.useState)(!1),[A,P]=(0,s.useState)(null),[F,D]=(0,s.useState)(!1),[O,H]=(0,s.useState)(10),[B,U]=(0,s.useState)(!0),[_,K]=(0,s.useState)(!1),[q,V]=(0,s.useState)(null),[Y,X]=(0,s.useState)(!1),[Z,Q]=(0,s.useState)(!1),ee=(0,s.useMemo)(()=>c.find(e=>x2(e)===v)??null,[c,v]),et=(0,s.useMemo)(()=>p.map(e=>({provider:e.provider,modelId:e.id,name:e.name})),[p]),er=(0,s.useCallback)(async e=>{I(!0),P(null);try{let r=await fetch(`/api/subagents/profiles?cwd=${encodeURIComponent(t)}`,{cache:"no-store"}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);let s=n.profiles??[];u(s);let i=e??xV("agents",t),o=s.find(e=>x2(e)===i)??s.find(e=>"project"===e.scope)??s.find(e=>"global"===e.scope)??s[0]??null;y(o?x2(o):null),o&&(k(x1(o)),w(x6(o.scope)?"edit":"view"),x6(o.scope)&&T(o.scope))}catch(e){P(e instanceof Error?e.message:String(e))}finally{I(!1)}},[t]);(0,s.useEffect)(()=>{er()},[er]),(0,s.useEffect)(()=>{let e=new AbortController;return U(!0),V(null),(async()=>{try{let t=await fetch("/api/subagents/settings",{cache:"no-store",signal:e.signal}),r=await t.json();if(!t.ok||r.error||"boolean"!=typeof r.enabled)throw Error(r.error??`HTTP ${t.status}`);D(r.enabled),"number"==typeof r.maxConcurrent&&H(r.maxConcurrent)}catch(t){if(e.signal.aborted)return;V(t instanceof Error?t.message:String(t))}finally{e.signal.aborted||U(!1)}})(),()=>e.abort()},[]),(0,s.useEffect)(()=>{v&&function(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:x_();if(!n||!t)return;let s=xq(e,r);if(s)try{let e=xK(n);e.selections={...e.selections,[s]:t},n.setItem(xU,JSON.stringify(e))}catch{}}("agents",v,t)},[t,v]),(0,s.useEffect)(()=>{let e=new AbortController;return g(!0),m(null),(async()=>{try{let r=await fetch(`/api/models?cwd=${encodeURIComponent(t)}`,{signal:e.signal}),n=await r.json();if(!r.ok||n.error)throw Error(n.error??`HTTP ${r.status}`);h(n.modelList??[]),m(n.modelError??null)}catch(t){if(e.signal.aborted)return;m(t instanceof Error?t.message:String(t))}finally{e.signal.aborted||g(!1)}})(),()=>e.abort()},[t]);let en=()=>{C(!1)};G(S&&!N,en);let es=async(e,r)=>{if(x4(e.scope)){W(!0),P(null);try{let n=await fetch("/api/subagents/profiles",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:e.scope,name:e.name,enabled:r})}),s=await n.json();if(!n.ok||s.error||!s.profile)throw Error(s.error??`HTTP ${n.status}`);let i=s.profile;u(e=>e.map(e=>x2(e)===x2(i)?i:e)),k(e=>v===x2(i)?{...e,enabled:i.enabled}:e)}catch(e){P(e instanceof Error?e.message:String(e))}finally{W(!1)}}},ei=async()=>{M(!0),P(null),$(!1);try{let e=await fetch("/api/subagents/profiles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:z,profile:b})}),r=await e.json();if(!e.ok||r.error||!r.profile)throw Error(r.error??`HTTP ${e.status}`);await er(x2(r.profile)),$(!0),setTimeout(()=>$(!1),2e3)}catch(e){P(e instanceof Error?e.message:String(e))}finally{M(!1)}},eo=async()=>{if(ee&&x6(ee.scope)&&window.confirm(d("agents.deleteConfirm",{name:ee.displayName}))){M(!0),P(null);try{let e=await fetch("/api/subagents/profiles",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:ee.scope,name:ee.name})}),r=await e.json();if(!e.ok||r.error)throw Error(r.error??`HTTP ${e.status}`);await er()}catch(e){P(e instanceof Error?e.message:String(e))}finally{M(!1)}}},ea="create"===j,el="view"===j||N||L,ed=ea?"global"===z?`~/.pi/agent/agents/${b.name||"..."}.md`:`./.pi/agents/${b.name||"..."}.md`:ee?function(e,t){if(!e.filePath)return null;if(("project"===e.scope||"workspace"===e.scope)&&e.filePath.startsWith(t)){let r=e.filePath.slice(t.length).replace(/^[/\\]/,"");return`./${r}`}return x5(e.filePath)}(ee,t)??d("agents.builtinPath"):"",ec=ea?ed:ee?.filePath??ed,eu=!b.model||p.some(e=>`${e.provider}/${e.id}`===b.model),ep=(()=>{if(!b.model)return null;let e=b.model.indexOf("/");return e<0?{provider:"",modelId:b.model}:{provider:b.model.slice(0,e),modelId:b.model.slice(e+1)}})(),eh=el?{...xQ,...x0}:xQ,ex=ea?el:!ee||!x4(ee.scope)||N||L,eg=(e,t)=>{k(r=>({...r,[e]:t}))},ef=async e=>{if(ea)return void eg("enabled",e);if(ee&&x4(ee.scope)){W(!0),P(null);try{let r=await fetch("/api/subagents/profiles",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:t,scope:ee.scope,name:ee.name,enabled:e})}),n=await r.json();if(!r.ok||n.error||!n.profile)throw Error(n.error??`HTTP ${r.status}`);let s=n.profile;u(e=>e.map(e=>x2(e)===x2(s)?s:e)),k(e=>({...e,enabled:s.enabled}))}catch(e){P(e instanceof Error?e.message:String(e))}finally{W(!1)}}},em=async e=>{K(!0),V(null);try{let t=await fetch("/api/subagents/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})}),n=await t.json();if(!t.ok||n.error||"boolean"!=typeof n.enabled)throw Error(n.error??`HTTP ${t.status}`);D(n.enabled),X(!!r)}catch(e){V(e instanceof Error?e.message:String(e))}finally{K(!1)}},ev=async e=>{H(e),V(null);try{let t=await fetch("/api/subagents/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({maxConcurrent:e})}),r=await t.json();if(!t.ok||r.error||"number"!=typeof r.maxConcurrent)throw Error(r.error??`HTTP ${t.status}`);H(r.maxConcurrent)}catch(e){V(e instanceof Error?e.message:String(e))}},ey=async()=>{if(r){Q(!0),V(null);try{await ud(r,{type:"reload"}),X(!1),o?.()}catch(e){V(e instanceof Error?e.message:String(e))}finally{Q(!1)}}};return(0,n.jsxs)(cv,{embedded:a,title:d("common.agents"),subtitle:x5(t),closeLabel:d("agents.close"),onClose:i,children:[(0,n.jsxs)("div",{className:"agents-feature-setting",children:[(0,n.jsxs)("div",{className:"agents-feature-copy",children:[(0,n.jsx)("strong",{className:"settings-content-section-title",children:d("agents.builtInTitle")}),(0,n.jsx)("span",{children:d("agents.builtInDescription")}),Y&&(0,n.jsx)("span",{role:"status",className:"agents-feature-reload-notice",children:d("agents.reloadRequired")})]}),(0,n.jsxs)("div",{className:"agents-feature-actions",children:[Y&&r&&(0,n.jsx)(lq,{size:"small",onClick:()=>void ey(),disabled:Z||_,children:Z?d("agents.reloading"):d("agents.reloadSession")}),(0,n.jsxs)("label",{className:"agents-concurrency-control",title:d("agents.maxConcurrentDescription"),children:[(0,n.jsx)("span",{children:d("agents.maxConcurrent")}),(0,n.jsx)("input",{"aria-label":d("agents.maxConcurrent"),type:"number",min:1,max:32,value:O,disabled:B||_,onChange:e=>H(Number(e.target.value)),onBlur:()=>void ev(O)})]}),(0,n.jsx)(lV,{checked:F,disabled:B||Z,loading:_,label:d("agents.builtInTitle"),onChange:e=>void em(e)})]})]}),(0,n.jsx)("div",{className:"agents-list-toolbar",children:(0,n.jsx)(lq,{size:"small",onClick:()=>{let e="custom-agent",t=2;for(;c.some(t=>t.name===e);)e=`custom-agent-${t++}`;y(null),k({...xZ,name:e,displayName:e}),w("create"),T("global"),P(null),C(!0)},disabled:N||L,children:d("agents.new")})}),(0,n.jsx)("div",{className:"agents-capability-list",role:"list",children:R?(0,n.jsx)("div",{style:{padding:10,color:"var(--ds-text-muted)",fontSize:"var(--text-ui-sm)"},children:d("agents.loading")}):0===c.length?(0,n.jsx)(lK,{children:d("agents.empty")}):["project","global","workspace","builtin"].map(e=>{let t=c.filter(t=>t.scope===e);return 0===t.length?null:(0,n.jsxs)("div",{className:"agents-capability-group",children:[(0,n.jsx)(lU,{children:d(`agents.scope.${e}`)}),t.map(e=>{let t,r,s=(t=e.name.toLowerCase(),r=xB[e.scope],c.some(e=>e.name.toLowerCase()===t&&xB[e.scope]>r)),i=v===x2(e)&&!ea;return(0,n.jsxs)("div",{role:"listitem",className:`agents-capability-row${i?" is-selected":""}`,children:[(0,n.jsxs)("button",{type:"button",className:"agents-capability-row-main",onClick:()=>{y(x2(e)),k(x1(e)),w(x6(e.scope)?"edit":"view"),x6(e.scope)&&T(e.scope),P(null),C(!0)},children:[(0,n.jsx)(lJ,{active:e.enabled}),(0,n.jsxs)("span",{className:"agents-capability-row-copy",children:[(0,n.jsx)("span",{className:`agents-capability-row-name${e.enabled?"":" is-muted"}`,children:e.displayName}),(0,n.jsx)("span",{className:"agents-capability-row-id",children:e.name})]}),s&&(0,n.jsx)("span",{className:"agents-overridden-label",children:d("agents.overridden")})]}),(0,n.jsx)(lV,{checked:e.enabled,disabled:!x4(e.scope)||N||L,label:e.enabled?d("agents.disable"):d("agents.enable"),onChange:t=>void es(e,t)})]},x2(e))})]},e)})}),(0,n.jsx)(xF.N,{children:S&&(0,n.jsx)(xD.m.div,{className:"agents-sheet-overlay",role:"presentation",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:xY,onMouseDown:e=>{e.target!==e.currentTarget||N||en()},children:(0,n.jsxs)(xD.m.div,{className:"agents-sheet",role:"dialog","aria-modal":!0,"aria-label":ea?d("agents.new"):b.displayName||b.name,initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:xG,children:[(0,n.jsxs)("div",{className:"agents-sheet-head",children:[(0,n.jsxs)("div",{className:"agents-sheet-head-copy",children:[(0,n.jsx)("span",{className:"agents-sheet-title",children:ea?d("agents.new"):b.displayName||b.name}),(0,n.jsx)("span",{className:"agents-sheet-sub",title:ec,children:ed})]}),!ea&&ee&&x6(ee.scope)&&(0,n.jsx)(lq,{variant:"danger",size:"small",onClick:()=>void eo(),disabled:N||L,children:d("agents.delete")}),!ea&&ee&&(0,n.jsx)(lq,{size:"small",onClick:()=>{if(!ee)return;let e=function(e,t){let r=new Set(t.map(e=>e.name.toLowerCase())),n=`${e}-copy`,s=n,i=2;for(;r.has(s.toLowerCase());)s=`${n}-${i++}`;return s}(ee.name,c);y(null),k({...x1(ee),name:e,displayName:d("agents.copyName",{name:ee.displayName})}),w("create"),T(x6(ee.scope)?ee.scope:"global"),P(null)},disabled:N||L,children:d("agents.duplicate")}),(0,n.jsx)("button",{type:"button",className:"agents-sheet-close","aria-label":d("i18n.close"),title:d("i18n.close"),onClick:en,children:"\xd7"})]}),(0,n.jsxs)("div",{className:"agents-sheet-body",children:[ea&&(0,n.jsx)(x3,{label:d("agents.saveScope"),children:(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:3,padding:3,border:"1px solid var(--border)",borderRadius:"var(--radius-sm)",background:"var(--ds-bg-secondary)"},children:["global","project"].map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>T(e),disabled:N,style:{height:28,border:"none",borderRadius:"var(--radius-xs)",background:z===e?"var(--ds-bg-active)":"transparent",color:z===e?"var(--ds-text-primary)":"var(--ds-text-secondary)",cursor:N?"default":"pointer",fontSize:"var(--text-ui-xs)",fontWeight:z===e?600:400},children:d(`agents.scope.${e}`)},e))})}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(0, 1fr) minmax(0, 1fr)",gap:12},children:[(0,n.jsx)(x3,{label:d("agents.name"),children:ea?(0,n.jsx)("input",{"aria-label":d("agents.name"),value:b.name,disabled:el,onChange:e=>eg("name",e.target.value),style:xQ}):(0,n.jsx)("code",{style:{minHeight:34,display:"flex",alignItems:"center",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--ds-text-primary)",fontSize:"var(--text-ui-sm)"},children:b.name})}),(0,n.jsx)(x3,{label:d("agents.displayName"),children:(0,n.jsx)("input",{"aria-label":d("agents.displayName"),value:b.displayName,disabled:el,onChange:e=>eg("displayName",e.target.value),style:eh})})]}),(0,n.jsx)(x3,{label:d("agents.description"),children:(0,n.jsx)("input",{"aria-label":d("agents.description"),value:b.description,disabled:el,onChange:e=>eg("description",e.target.value),style:eh})}),(0,n.jsx)(x3,{label:d("agents.prompt"),children:(0,n.jsx)("textarea",{className:"agents-system-prompt","aria-label":d("agents.prompt"),value:b.systemPrompt,disabled:el,onChange:e=>eg("systemPrompt",e.target.value),style:{...eh,height:195,minHeight:195,maxHeight:"60vh",padding:9,overflow:"auto",resize:el?"none":"vertical",lineHeight:1.5}})}),(0,n.jsx)(x3,{label:d("agents.tools"),children:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 16px"},children:xJ.map(e=>(0,n.jsx)(x8,{label:e,disabled:el,checked:b.tools.includes(e),onChange:t=>eg("tools",t?[...b.tools,e]:b.tools.filter(t=>t!==e))},e))})}),(0,n.jsx)(x3,{label:d("agents.resources"),children:(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px 20px"},children:[(0,n.jsx)(x8,{label:d("agents.loadSkills"),disabled:el,checked:b.loadSkills,onChange:e=>eg("loadSkills",e)}),(0,n.jsx)(x8,{label:d("agents.loadExtensions"),disabled:el,checked:b.loadExtensions,onChange:e=>eg("loadExtensions",e)})]})}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(0, 1.5fr) minmax(120px, 0.75fr) minmax(100px, 0.5fr)",gap:12},children:[(0,n.jsx)(x3,{label:d("agents.model"),children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)(s4,{options:et,value:ep,onChange:(e,t)=>eg("model",`${e}/${t}`),onClear:()=>eg("model",void 0),emptyLabel:x?d("agents.modelsLoading"):d("agents.inherit"),selectedLabel:b.model&&!eu?d("agents.modelUnavailable",{model:b.model}):void 0,disabled:el||x||0===p.length&&!b.model,ariaLabel:d("agents.model"),variant:"field",placement:"auto"}),f&&(0,n.jsx)("span",{style:{color:"var(--status-error)",fontSize:"var(--text-ui-xs)"},children:f})]})}),(0,n.jsx)(x3,{label:d("agents.thinking"),children:(0,n.jsx)("select",{"aria-label":d("agents.thinking"),value:b.thinking??"",disabled:el,onChange:e=>eg("thinking",e.target.value||void 0),style:eh,children:xX.map(e=>(0,n.jsx)("option",{value:e,children:e||d("agents.inherit")},e||"default"))})}),(0,n.jsx)(x3,{label:d("agents.maxTurns"),children:(0,n.jsx)("input",{"aria-label":d("agents.maxTurns"),type:"number",min:1,value:b.maxTurns??"",disabled:el,onChange:e=>eg("maxTurns",e.target.value?Number(e.target.value):void 0),style:eh})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:"10px 20px"},children:[(0,n.jsx)(x8,{label:d("agents.inheritContext"),disabled:el,checked:b.inheritContext,onChange:e=>eg("inheritContext",e)}),(0,n.jsx)(x8,{label:d("agents.background"),disabled:el,checked:b.runInBackground,onChange:e=>eg("runInBackground",e)})]})]}),(0,n.jsxs)("div",{className:"agents-sheet-foot",children:[(0,n.jsx)("div",{className:"agents-sheet-foot-status",children:(q||A)&&(0,n.jsx)("span",{role:"alert",style:{color:"var(--status-error)"},children:q||A})}),(0,n.jsxs)("div",{className:"agents-sheet-foot-actions",children:[!ea&&ee&&(0,n.jsx)(lV,{checked:b.enabled,disabled:ex,label:b.enabled?d("agents.disable"):d("agents.enable"),onChange:e=>void ef(e)}),(0,n.jsxs)(lq,{variant:"primary",onClick:()=>void ei(),disabled:N||E||L||!b.name.trim(),className:E?"is-success":void 0,children:[E&&(0,n.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:"config-button-success-icon",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}),(0,n.jsx)("span",{children:E?d("i18n.saved"):N?d("agents.saving"):d("agents.save")})]})]})]})]})})})]})}function x9(e){if("string"==typeof e)return e;if(void 0===e)return"";try{return JSON.stringify(e)}catch{return String(e)}}function ge(e){let{children:t}=e;return(0,n.jsx)("div",{className:"tool-definitions-empty",children:t})}function gt(e){let{loading:t,tools:r,translate:i}=e,o=(0,s.useMemo)(()=>r?.filter(e=>e.active)??null,[r]),[a,l]=(0,s.useState)(null);(0,s.useEffect)(()=>{l(e=>o?.some(t=>t.name===e)?e:o?.[0]?.name??null)},[o]);let d=o?.find(e=>e.name===a)??o?.[0]??null,c=d?function(e){if(!e||!e.properties||"object"!=typeof e.properties)return[];let t=e.properties,r=new Set(Array.isArray(e.required)?e.required.filter(e=>"string"==typeof e):[]);return Object.entries(t).map(e=>{let[t,n]=e,s=n&&"object"==typeof n?n:{};return{name:t,type:function e(t){let r=Array.isArray(t.anyOf)?t.anyOf:Array.isArray(t.oneOf)?t.oneOf:null;if(r)return r.map(t=>t&&"object"==typeof t?e(t):"unknown").filter((e,t,r)=>r.indexOf(e)===t).join(" | ");if(void 0!==t.const)return x9(t.const);if(Array.isArray(t.enum)&&t.enum.length>0&&void 0===t.type)return[...new Set(t.enum.map(e=>null===e?"null":typeof e))].join(" | ");let n=t.type,s=Array.isArray(n)?n.filter(e=>"string"==typeof e).join(" | "):"string"==typeof n?n:"string"==typeof t.$ref?t.$ref.split("/").pop()??"object":"unknown";if("array"===s){let r=t.items,n=r&&"object"==typeof r?e(r):"unknown";return`${n}[]`}return s}(s),description:"string"==typeof s.description?s.description:void 0,required:r.has(t),allowedValues:Array.isArray(s.enum)?s.enum.map(x9).join(", "):void 0,defaultValue:void 0===s.default?void 0:x9(s.default)}})}(d.parameters):[];return(0,n.jsxs)("div",{className:"tool-definitions-panel",children:[(0,n.jsx)("nav",{className:"tool-definitions-sidebar","aria-label":i("tools.title"),children:(0,n.jsx)("div",{className:"tool-definitions-list",children:o&&o.length>0?o.map(e=>{let t=e.name===d?.name;return(0,n.jsx)("button",{type:"button",className:`tool-definitions-item${t?" selected":""}`,"aria-pressed":t,onClick:()=>l(e.name),children:(0,n.jsx)("code",{children:e.name})},e.name)}):o?(0,n.jsx)(ge,{children:i("tools.noTools")}):(0,n.jsx)(ge,{children:t?i("tools.loading"):i("tools.load")})})}),(0,n.jsx)("section",{className:"tool-definition-detail","aria-label":i("tools.details"),children:d?(0,n.jsxs)("div",{className:"tool-definition-scroll",children:[d.description&&(0,n.jsxs)("section",{className:"tool-definition-section",children:[(0,n.jsx)("div",{className:"tool-definition-section-label",children:i("tools.description")}),(0,n.jsx)("div",{className:"tool-definition-description",children:d.description})]}),(0,n.jsxs)("section",{className:"tool-definition-section",children:[(0,n.jsxs)("div",{className:"tool-definition-section-label",children:[(0,n.jsx)("span",{children:i("tools.parameters")}),(0,n.jsx)("span",{children:i("tools.parameterCount",{count:c.length})})]}),c.length>0?(0,n.jsx)("div",{className:"tool-definition-fields",children:c.map(e=>(0,n.jsxs)("div",{className:"tool-definition-field",children:[(0,n.jsxs)("div",{className:"tool-definition-field-name",children:[(0,n.jsx)("code",{children:e.name}),(0,n.jsx)("span",{className:e.required?"required":void 0,children:i(e.required?"tools.required":"tools.optional")})]}),(0,n.jsxs)("div",{className:"tool-definition-field-value",children:[(0,n.jsx)("code",{className:"tool-definition-type",children:e.type}),e.description&&(0,n.jsx)("div",{children:e.description}),e.allowedValues&&(0,n.jsxs)("div",{className:"tool-definition-meta",children:[i("tools.allowedValues"),": ",(0,n.jsx)("code",{children:e.allowedValues})]}),void 0!==e.defaultValue&&(0,n.jsxs)("div",{className:"tool-definition-meta",children:[i("tools.defaultValue"),": ",(0,n.jsx)("code",{children:e.defaultValue})]})]})]},e.name))}):(0,n.jsx)("div",{className:"tool-definition-no-parameters",children:i("tools.noParameters")})]}),d.promptGuidelines&&d.promptGuidelines.length>0&&(0,n.jsxs)("section",{className:"tool-definition-section",children:[(0,n.jsx)("div",{className:"tool-definition-section-label",children:i("tools.guidelines")}),(0,n.jsx)("ul",{className:"tool-definition-guidelines",children:d.promptGuidelines.map((e,t)=>(0,n.jsx)("li",{children:e},`${d.name}:${t}`))})]})]}):(0,n.jsx)(ge,{children:o?i("tools.noTools"):t?i("tools.loading"):i("tools.load")})}),(0,n.jsx)("style",{children:`
|
|
35
|
+
.tool-definitions-panel {
|
|
36
|
+
display: grid;
|
|
37
|
+
grid-template-columns: clamp(112px, 26%, 220px) minmax(0, 1fr);
|
|
38
|
+
height: min(600px, 75dvh);
|
|
39
|
+
min-height: 240px;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
background: var(--bg-panel);
|
|
42
|
+
border-bottom: 1px solid var(--border);
|
|
43
|
+
}
|
|
44
|
+
.tool-definitions-sidebar,
|
|
45
|
+
.tool-definition-detail {
|
|
46
|
+
display: flex;
|
|
47
|
+
min-width: 0;
|
|
48
|
+
min-height: 0;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
}
|
|
51
|
+
.tool-definitions-sidebar {
|
|
52
|
+
border-right: 1px solid var(--border);
|
|
53
|
+
background: color-mix(in srgb, var(--bg-panel) 94%, var(--bg));
|
|
54
|
+
}
|
|
55
|
+
.tool-definitions-list,
|
|
56
|
+
.tool-definition-scroll {
|
|
57
|
+
min-height: 0;
|
|
58
|
+
flex: 1;
|
|
59
|
+
overflow: auto;
|
|
60
|
+
}
|
|
61
|
+
.tool-definitions-item {
|
|
62
|
+
display: flex;
|
|
63
|
+
width: 100%;
|
|
64
|
+
min-height: 38px;
|
|
65
|
+
align-items: center;
|
|
66
|
+
padding: 8px 12px;
|
|
67
|
+
border: none;
|
|
68
|
+
border-bottom: 1px solid var(--border);
|
|
69
|
+
background: transparent;
|
|
70
|
+
color: var(--text-muted);
|
|
71
|
+
cursor: pointer;
|
|
72
|
+
text-align: left;
|
|
73
|
+
}
|
|
74
|
+
.tool-definitions-item:hover {
|
|
75
|
+
background: var(--bg-hover);
|
|
76
|
+
color: var(--text);
|
|
77
|
+
}
|
|
78
|
+
.tool-definitions-item.selected {
|
|
79
|
+
background: var(--bg-selected);
|
|
80
|
+
box-shadow: inset 2px 0 0 var(--accent);
|
|
81
|
+
color: var(--text);
|
|
82
|
+
}
|
|
83
|
+
.tool-definitions-item code {
|
|
84
|
+
max-width: 100%;
|
|
85
|
+
color: inherit;
|
|
86
|
+
font-size: 11px;
|
|
87
|
+
font-weight: 600;
|
|
88
|
+
overflow-wrap: anywhere;
|
|
89
|
+
}
|
|
90
|
+
.tool-definition-scroll {
|
|
91
|
+
padding: 14px 16px 20px;
|
|
92
|
+
}
|
|
93
|
+
.tool-definition-section + .tool-definition-section {
|
|
94
|
+
margin-top: 18px;
|
|
95
|
+
}
|
|
96
|
+
.tool-definition-section-label {
|
|
97
|
+
display: flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
justify-content: space-between;
|
|
100
|
+
gap: 8px;
|
|
101
|
+
margin-bottom: 7px;
|
|
102
|
+
color: var(--text-dim);
|
|
103
|
+
font-size: 11px;
|
|
104
|
+
font-weight: 600;
|
|
105
|
+
}
|
|
106
|
+
.tool-definition-section-label > span:last-child {
|
|
107
|
+
font-weight: 400;
|
|
108
|
+
white-space: nowrap;
|
|
109
|
+
}
|
|
110
|
+
.tool-definition-description {
|
|
111
|
+
color: var(--text-muted);
|
|
112
|
+
font-size: 12px;
|
|
113
|
+
line-height: 1.55;
|
|
114
|
+
overflow-wrap: anywhere;
|
|
115
|
+
white-space: pre-wrap;
|
|
116
|
+
}
|
|
117
|
+
.tool-definition-fields {
|
|
118
|
+
border-top: 1px solid var(--border);
|
|
119
|
+
}
|
|
120
|
+
.tool-definition-field {
|
|
121
|
+
display: grid;
|
|
122
|
+
grid-template-columns: minmax(88px, 0.75fr) minmax(0, 1.5fr);
|
|
123
|
+
gap: 12px;
|
|
124
|
+
padding: 9px 0;
|
|
125
|
+
border-bottom: 1px solid var(--border);
|
|
126
|
+
font-size: 11px;
|
|
127
|
+
line-height: 1.45;
|
|
128
|
+
}
|
|
129
|
+
.tool-definition-field-name {
|
|
130
|
+
display: flex;
|
|
131
|
+
min-width: 0;
|
|
132
|
+
flex-direction: column;
|
|
133
|
+
gap: 3px;
|
|
134
|
+
color: var(--text);
|
|
135
|
+
}
|
|
136
|
+
.tool-definition-field-name code {
|
|
137
|
+
overflow-wrap: anywhere;
|
|
138
|
+
}
|
|
139
|
+
.tool-definition-field-name span {
|
|
140
|
+
color: var(--text-dim);
|
|
141
|
+
font-size: 10px;
|
|
142
|
+
}
|
|
143
|
+
.tool-definition-field-name span.required {
|
|
144
|
+
color: var(--accent);
|
|
145
|
+
}
|
|
146
|
+
.tool-definition-field-value {
|
|
147
|
+
min-width: 0;
|
|
148
|
+
color: var(--text-muted);
|
|
149
|
+
overflow-wrap: anywhere;
|
|
150
|
+
}
|
|
151
|
+
.tool-definition-type {
|
|
152
|
+
display: block;
|
|
153
|
+
margin-bottom: 3px;
|
|
154
|
+
color: var(--text);
|
|
155
|
+
}
|
|
156
|
+
.tool-definition-meta {
|
|
157
|
+
margin-top: 4px;
|
|
158
|
+
color: var(--text-dim);
|
|
159
|
+
}
|
|
160
|
+
.tool-definition-meta code {
|
|
161
|
+
color: var(--text-muted);
|
|
162
|
+
}
|
|
163
|
+
.tool-definition-no-parameters {
|
|
164
|
+
padding: 2px 0 10px;
|
|
165
|
+
color: var(--text-dim);
|
|
166
|
+
font-size: 11px;
|
|
167
|
+
}
|
|
168
|
+
.tool-definition-guidelines {
|
|
169
|
+
margin: 0;
|
|
170
|
+
padding-left: 18px;
|
|
171
|
+
color: var(--text-muted);
|
|
172
|
+
font-size: 11px;
|
|
173
|
+
line-height: 1.5;
|
|
174
|
+
}
|
|
175
|
+
.tool-definitions-empty {
|
|
176
|
+
padding: 14px 12px;
|
|
177
|
+
color: var(--text-muted);
|
|
178
|
+
font-size: 12px;
|
|
179
|
+
font-style: italic;
|
|
180
|
+
overflow-wrap: anywhere;
|
|
181
|
+
}
|
|
182
|
+
@media (max-width: 640px) {
|
|
183
|
+
.tool-definitions-panel {
|
|
184
|
+
grid-template-columns: 112px minmax(0, 1fr);
|
|
185
|
+
}
|
|
186
|
+
.tool-definitions-item {
|
|
187
|
+
padding: 8px 10px;
|
|
188
|
+
}
|
|
189
|
+
.tool-definition-scroll {
|
|
190
|
+
padding: 12px;
|
|
191
|
+
}
|
|
192
|
+
.tool-definition-field {
|
|
193
|
+
grid-template-columns: minmax(74px, 0.7fr) minmax(0, 1.3fr);
|
|
194
|
+
gap: 9px;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
`})]})}let gr=new Set(["read","bash","powershell","edit","write","grep","find","ls"]);function gn(e){let{sessionId:t,onSessionReloaded:r}=e,{t:i}=(0,J.s)(),[o,a]=(0,s.useState)(null),[l,d]=(0,s.useState)(null),[c,u]=(0,s.useState)(null),[p,h]=(0,s.useState)(!1),[x,g]=(0,s.useState)([]),[f,m]=(0,s.useState)(null),[v,y]=(0,s.useState)(!1),b=(0,s.useMemo)(()=>(c??[]).filter(e=>!gr.has(e.name)),[c]);(0,s.useEffect)(()=>{let e=!1;return fetch("/api/tools/extension-tools").then(async t=>{let r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);e||g(r.disabled??[])}).catch(t=>{e||m(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let k=(0,s.useCallback)(async(e,n)=>{let s=n?x.filter(t=>t!==e):[...new Set([...x,e])];g(s),m(null),y(!0);try{let e=await fetch("/api/tools/extension-tools",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({disabled:s})}),n=await e.json();if(!e.ok||n.error)throw Error(n.error??`HTTP ${e.status}`);g(n.disabled??s),t&&(await ud(t,{type:"reload"}),r())}catch(e){m(e instanceof Error?e.message:String(e))}finally{y(!1)}},[x,r,t]);(0,s.useEffect)(()=>{if(!t)return void u(null);let e=!1;return h(!0),ud(t,{type:"get_tools"}).then(t=>{e||u(t??[])}).catch(()=>{e||u([])}).finally(()=>{e||h(!1)}),()=>{e=!0}},[t]),(0,s.useEffect)(()=>{let e=!1;return fetch("/api/tools/settings").then(async t=>{let r=await t.json();if(!t.ok||r.error)throw Error(r.error??`HTTP ${t.status}`);e||a(r)}).catch(t=>{e||d(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[]);let j=(0,s.useCallback)(async e=>{d(null);try{let n=await fetch("/api/tools/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})}),s=await n.json();if(!n.ok||s.error)throw Error(s.error??`HTTP ${n.status}`);a(s),t&&(await ud(t,{type:"reload"}),r())}catch(e){d(e instanceof Error?e.message:String(e))}},[r,t]);return(0,n.jsxs)("div",{className:"settings-content-panel settings-content-card-host settings-content-stack",style:{padding:16,overflowY:"auto",minHeight:0,flex:1},children:[(0,n.jsxs)(lB,{children:[(0,n.jsx)(pm,{children:(0,n.jsx)(u1,{label:i("desktop.usePowerShell"),description:i("desktop.shellToolDescription"),checked:o?.powerShellEnabled??!1,onChange:e=>void j(e)})}),(0,n.jsx)(pv,{children:(0,n.jsx)("div",{style:{padding:"10px 0",fontSize:"var(--text-ui-sm)",lineHeight:1.5,color:"var(--ds-text-muted)"},children:o?.isWindows?i("desktop.shellToolWindowsOnly"):l??i("desktop.shellToolMacOnly")})})]}),(0,n.jsxs)(lB,{children:[(0,n.jsxs)(pm,{children:[(0,n.jsx)("div",{className:"settings-content-section-title",style:{padding:"12px 0 4px",fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:i("desktop.extensionToolsTitle")}),(0,n.jsx)("div",{style:{paddingBottom:8,fontSize:"var(--text-ui-xs)",lineHeight:1.5,color:"var(--ds-text-muted)"},children:i(t?"desktop.extensionToolsHint":"desktop.toolsListNoSession")}),0===b.length&&t&&!p&&(0,n.jsx)("div",{style:{paddingBottom:8,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:i("desktop.extensionToolsEmpty")}),b.map(e=>(0,n.jsx)(u1,{label:e.name,description:e.description?.slice(0,140),checked:!x.includes(e.name),onChange:t=>void k(e.name,t)},e.name))]}),(0,n.jsx)(pv,{children:(0,n.jsx)("div",{style:{padding:"8px 0 10px",fontSize:"var(--text-ui-xs)",lineHeight:1.5,color:f?"var(--status-error)":"var(--ds-text-muted)"},children:f??i(v?"desktop.saving":"desktop.extensionToolsApplyNote")})})]}),(0,n.jsx)(lB,{children:(0,n.jsxs)(pv,{children:[(0,n.jsx)("div",{className:"settings-content-section-title",style:{padding:"12px 0 4px",fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)"},children:i("tools.title")}),(0,n.jsx)("div",{style:{paddingBottom:10,fontSize:"var(--text-ui-xs)",lineHeight:1.5,color:"var(--ds-text-muted)"},children:i(t?"desktop.toolsListHint":"desktop.toolsListNoSession")})]})}),t&&(0,n.jsx)("div",{className:"settings-content-card",style:{border:"var(--settings-content-card-border, 1px solid var(--border))",borderRadius:"var(--radius-md)",overflow:"hidden"},children:(0,n.jsx)(gt,{loading:p,tools:c,translate:i})})]})}function gs(e){return null==e?"—":c1(e)}function gi(e){let{sessionId:t,cwd:r}=e,{t:i}=(0,J.s)(),[o,a]=(0,s.useState)(null),[l,d]=(0,s.useState)(null),[c,u]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=!1;return t?(fetch(`/api/agent/${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).then(t=>{e||a(t?.state?.contextUsage??null)}).catch(()=>{}),()=>{e=!0}):void a(null)},[t]);let p=(0,s.useCallback)(async()=>{u(!0);try{let e=await fetch("/api/usage");e.ok&&d(await e.json())}catch{}finally{u(!1)}},[]);(0,s.useEffect)(()=>{p()},[p]);let h=(0,s.useMemo)(()=>l?.daily.slice(-14)??[],[l]),x=(0,s.useMemo)(()=>h.reduce((e,t)=>Math.max(e,t.tokens),0),[h]);return(0,n.jsxs)("div",{className:"settings-content-panel settings-content-stack",style:{flex:1,overflow:"auto",minWidth:0,padding:"16px 20px",display:"flex",flexDirection:"column",gap:16},children:[(0,n.jsx)("h3",{className:"settings-content-title",style:{margin:0,fontSize:15,fontWeight:600,color:"var(--ds-text-primary)"},children:i("desktop.usage")}),(0,n.jsxs)("div",{className:"settings-content-section",style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{className:"settings-content-section-title",style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-secondary)"},children:i("desktop.usageSession")}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[t?(0,n.jsx)("div",{className:"settings-content-card",style:{display:"flex",flexDirection:"column",gap:12,borderRadius:"var(--radius-lg-plus)",border:"var(--settings-content-card-border, 1px solid var(--border))",padding:16},children:o?(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(--ds-border-default)",strokeWidth:7}),(0,n.jsx)("circle",{cx:36,cy:36,r:30,fill:"none",stroke:"var(--ds-accent)",strokeWidth:7,strokeLinecap:"round",strokeDasharray:2*Math.PI*30,strokeDashoffset:2*Math.PI*30*(1-Math.min(1,(o.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(--ds-text-primary)",children:null!=o.percent?`${o.percent.toFixed(0)}%`:"?"})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:3},children:[(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-base)",color:"var(--ds-text-primary)"},children:i("desktop.usageContext",{used:gs(o.tokens),window:gs(o.contextWindow)})}),(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:i("desktop.usageContextHint")})]})]})}):(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:i("desktop.usageNoSessionData")})}):(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:i("desktop.usageNoSession")}),r&&(0,n.jsx)("span",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)",fontFamily:"var(--font-mono)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r})]})]}),(0,n.jsxs)("div",{className:"settings-content-section",style:{display:"flex",flexDirection:"column",gap:8},children:[(0,n.jsx)("div",{className:"settings-content-section-title",style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-secondary)"},children:i("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:i("desktop.usageTotal"),value:gs(l?.totalTokens),sub:l?`${l.totalSessions} ${i("desktop.usageSessions")}`:"…"},{label:i("desktop.usageMessages"),value:l?String(l.messageCount):"…",sub:i("desktop.usageMessagesHint")}].map(e=>(0,n.jsxs)("div",{className:"settings-content-card",style:{borderRadius:"var(--radius-lg-plus)",border:"var(--settings-content-card-border, 1px solid var(--border))",padding:"12px 14px",background:"var(--settings-content-card-bg, var(--bg-panel))"},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",marginBottom:4},children:e.label}),(0,n.jsx)("div",{style:{fontSize:18,fontWeight:700,color:"var(--ds-text-primary)"},children:e.value}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-muted)",marginTop:2},children:e.sub})]},e.label))}),(0,n.jsxs)("div",{className:"settings-content-card",style:{borderRadius:"var(--radius-lg-plus)",border:"var(--settings-content-card-border, 1px solid var(--border))",padding:"14px 16px"},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",fontWeight:600,color:"var(--ds-text-primary)",marginBottom:10},children:i("desktop.usageDaily")}),0===h.length?(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:i(c?"desktop.featuresLoading":"desktop.usageNoData")}):(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,height:96,minWidth:0,maxWidth:"100%",overflowX:"auto",overflowY:"hidden"},children:h.map(e=>{let t=x>0?Math.max(4,Math.round(e.tokens/x*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:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:e.tokens>0?gs(e.tokens):""}),(0,n.jsx)("div",{style:{width:8,height:t,borderRadius:"var(--radius-xs)",background:e.tokens>0?"var(--ds-accent)":"var(--ds-bg-hover)",opacity:e.tokens>0?.85:1},title:`${e.day}: ${gs(e.tokens)}`}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-xs)",color:"var(--ds-text-muted)"},children:e.day.slice(5)})]},e.day)})})]}),(0,n.jsxs)("div",{className:"settings-content-card",style:{borderRadius:"var(--radius-lg-plus)",border:"var(--settings-content-card-border, 1px solid var(--border))",overflow:"hidden"},children:[(0,n.jsx)("div",{className:"settings-content-section-title",style:{fontSize:"var(--text-ui-sm)",fontWeight:500,color:"var(--ds-text-primary)",padding:"10px 14px",borderBottom:"none",background:"var(--ds-tile)"},children:i("desktop.usageTopSessions")}),l&&0===l.sessions.length?(0,n.jsx)("div",{style:{padding:"14px",fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:i("desktop.usageNoData")}):(l?.sessions??[]).slice(0,12).map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 14px",borderBottom:"none"},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:"var(--text-ui-sm)",color:"var(--ds-text-primary)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:ri({name:e.name,firstMessage:e.firstMessage,id:e.id})}),(0,n.jsx)("span",{style:{flexShrink:0,fontSize:"var(--text-ui-xs)",color:"var(--ds-text-secondary)",fontFamily:"var(--font-mono)"},children:gs(e.tokens)})]},e.path))]})]})]})]})}function go(){let{t:e}=(0,J.s)(),[t,r]=(0,s.useState)(!1),[i,o]=(0,s.useState)("");(0,s.useEffect)(()=>{r(new URLSearchParams(window.location.search).has("piweb_connected")),o(window.location.host)},[]);let a=(0,s.useCallback)(()=>{window.location.href="piweb-switch://manage"},[]);return t?(0,n.jsxs)("div",{className:"settings-content-panel",style:{display:"flex",flexDirection:"column",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:[(0,n.jsx)("header",{className:"settings-content-header",style:{padding:"var(--settings-content-header-padding, 18px 22px 14px)",borderBottom:"var(--settings-content-header-border, 1px solid var(--border))"},children:(0,n.jsx)("h1",{className:"settings-content-title",style:{margin:0,fontSize:16,fontWeight:700,color:"var(--ds-text-primary)"},children:e("desktop.server")})}),(0,n.jsxs)("div",{className:"settings-content-stack",style:{padding:"var(--settings-content-panel-padding, 18px 22px)",display:"flex",flexDirection:"column",gap:14},children:[(0,n.jsxs)("div",{className:"settings-content-card",style:{display:"flex",alignItems:"center",gap:10,padding:"12px 14px",borderRadius:"var(--radius-md-plus)",background:"var(--settings-content-card-bg, var(--bg-hover))",border:"var(--settings-content-card-border, 1px solid var(--border))"},children:[(0,n.jsx)(_.X,{size:18,color:"var(--ds-accent)"}),(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-sm)",color:"var(--ds-text-secondary)"},children:e("desktop.serverCurrent")}),(0,n.jsx)("div",{style:{fontSize:"var(--text-ui-base)",fontWeight:600,color:"var(--ds-text-primary)",fontFamily:"var(--font-mono)",wordBreak:"break-all"},children:i})]})]}),(0,n.jsxs)("button",{type:"button",onClick:a,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"10px 16px",borderRadius:"var(--radius-md-plus)",background:"linear-gradient(135deg, var(--accent), var(--accent-hover, var(--accent)))",color:"var(--accent-fg)",fontSize:"var(--text-ui-base)",fontWeight:600,cursor:"pointer",border:"none"},children:[(0,n.jsx)(pR.o,{size:16}),e("desktop.serverSwitch")]}),(0,n.jsx)("p",{style:{margin:0,fontSize:"var(--text-ui-base)",lineHeight:1.7,color:"var(--ds-text-secondary)"},children:e("desktop.serverSwitchHint")})]})]}):null}let ga=[{id:"server",labelKey:"desktop.server",Icon:_.X},{id:"display",labelKey:"desktop.display",Icon:u_.V},{id:"ui-kit",labelKey:"desktop.interfaceKit",Icon:uK.e},{id:"chat",labelKey:"desktop.chat",Icon:uq.W},{id:"models",labelKey:"desktop.models",Icon:tr.f},{id:"skills",labelKey:"desktop.skills",Icon:nU.B},{id:"plugins",labelKey:"desktop.plugins",Icon:e9.F},{id:"proxy",labelKey:"desktop.proxy",Icon:uV.l},{id:"features",labelKey:"desktop.features",Icon:eX.l},{id:"logs",labelKey:"desktop.logs",Icon:B.B},{id:"snippets",labelKey:"desktop.snippets",Icon:aS.c},{id:"usage",labelKey:"desktop.usage",Icon:uJ._},{id:"mcp",labelKey:"desktop.mcp",Icon:uG.b},{id:"subagents",labelKey:"desktop.subagents",Icon:nj.d},{id:"tools",labelKey:"desktop.tools",Icon:uG.b},{id:"backup",labelKey:"desktop.backup",Icon:lo.W},{id:"import",labelKey:"desktop.importSessions",Icon:tt.z}],gl="settings-modal-nav-item",gd="settings-modal-subtitle";function gc(e){let t,{initialTab:r="models",cwd:o,sessionId:a,onCloseAction:l,onModelsSavedAction:d,onSessionReloadedAction:c,onSessionsChanged:u}=e,p=tu(),{t:h}=(0,J.s)(),[x,g]=(0,s.useState)("skills"===r||"plugins"===r?o?r:"display":r),[f,m]=(0,s.useState)(!1);(0,s.useEffect)(()=>{m(new URLSearchParams(window.location.search).has("piweb_connected"))},[]);let v=(f?ga:ga.filter(e=>{let{id:t}=e;return"server"!==t})).filter(e=>{let{id:t}=e;return!(p&&"import"===t)}),[y,b]=(0,s.useState)(""),k=(t=y.trim().toLocaleLowerCase(),uY.map(e=>({id:e.id,labelKey:e.labelKey,tabs:e.ids.flatMap(e=>{let r=v.find(t=>t.id===e);return r&&(!t||h(r.labelKey).toLocaleLowerCase().includes(t))?[r]:[]})})).filter(e=>e.tabs.length>0)),j=(0,s.useRef)(null),w=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=document.activeElement instanceof HTMLElement?document.activeElement:null;return w.current?.focus(),()=>e?.focus()},[]);let S=(0,s.useCallback)(()=>{let e=j.current;return e?[...e.querySelectorAll('button, input, select, textarea, [tabindex]:not([tabindex="-1"])')].filter(e=>!e.hasAttribute("disabled")&&e.getClientRects().length>0):[]},[]);(0,s.useEffect)(()=>{let e=e=>{if("Tab"!==e.key)return;let t=j.current;if(!t||t.querySelector("[data-settings-child-dialog]"))return;let r=document.activeElement;if(r instanceof Node&&t.contains(r))return;let n=S();0!==n.length&&(e.preventDefault(),(e.shiftKey?n[n.length-1]:n[0]).focus())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[S]);let[C,z]=(0,s.useState)(!1),[T,R]=(0,s.useState)(null),I=(0,s.useRef)(new Set),N=(0,s.useCallback)(e=>(I.current.add(e),()=>{I.current.delete(e)}),[]),M=(0,s.useCallback)(async()=>{if(!C){z(!0),R(null);try{let e=(await Promise.allSettled([...I.current].map(e=>e()))).find(e=>"rejected"===e.status);if(e)throw e.reason;l()}catch(e){R(e instanceof Error?e.message:String(e))}finally{z(!1)}}},[C,l]);return G(!C,()=>{j.current?.querySelector("[data-settings-child-dialog]")||M()}),(0,n.jsx)("div",{className:"settings-page-overlay",children:(0,n.jsxs)("section",{ref:j,onKeyDown:e=>{if("Tab"!==e.key||j.current?.querySelector("[data-settings-child-dialog]"))return;let t=S(),r=t[0],n=t[t.length-1];r&&n&&(e.shiftKey&&document.activeElement===r?(e.preventDefault(),n.focus()):e.shiftKey||document.activeElement!==n||(e.preventDefault(),r.focus()))},role:"dialog","aria-modal":"true","aria-label":h("desktop.settings"),className:"settings-modal",children:[(0,n.jsxs)("aside",{className:"settings-modal-rail",children:[(0,n.jsx)("div",{className:"settings-modal-rail-top",children:(0,n.jsxs)("div",{className:"settings-modal-search-wrap",children:[(0,n.jsx)(eY.e,{size:15,"aria-hidden":"true"}),(0,n.jsx)("input",{ref:w,type:"search",value:y,onChange:e=>b(e.target.value),placeholder:h("desktop.settingsSearch"),"aria-label":h("desktop.settingsSearch")})]})}),(0,n.jsx)("nav",{className:"settings-modal-nav","aria-label":h("desktop.settingsSections"),children:0===k.length?(0,n.jsx)("p",{className:"settings-modal-empty",children:h("desktop.settingsNoResults")}):k.map(e=>(0,n.jsxs)("div",{className:"settings-modal-nav-group",children:[(0,n.jsx)("div",{className:"settings-modal-group-label",children:h(e.labelKey)}),e.tabs.map(e=>{let{id:t,labelKey:r,Icon:s}=e,i=("skills"===t||"plugins"===t)&&!o;return(0,n.jsxs)("button",{type:"button",className:x===t?`${gl} is-active`:gl,disabled:i,onClick:()=>g(t),"aria-current":x===t?"page":void 0,title:h(r),children:[x===t&&(0,n.jsx)("span",{"aria-hidden":"true",className:"absolute left-0 top-1/2 h-4 w-[2px] -translate-y-1/2 rounded-full bg-[var(--cds-clay)] max-[1099px]:hidden"}),(0,n.jsx)(s,{size:16,"aria-hidden":"true"}),(0,n.jsx)("span",{children:h(r)})]},t)})]},e.id))}),(0,n.jsx)("div",{className:"settings-modal-rail-footer border-t-[0.5px] border-[var(--cds-hairline-1)] max-[1099px]:hidden",children:(0,n.jsxs)("button",{type:"button",onClick:()=>{M()},disabled:C,children:[(0,n.jsx)(i.n,{size:16,"aria-hidden":"true"}),(0,n.jsx)("span",{children:h("desktop.settingsBack")})]})})]}),(0,n.jsxs)("main",{className:"settings-modal-main",children:[(0,n.jsxs)("header",{className:"settings-modal-heading",children:[(0,n.jsxs)("div",{className:"settings-modal-heading-copy min-w-0 flex-1",children:[(0,n.jsx)("h1",{className:"settings-modal-title",children:h(ga.find(e=>{let{id:t}=e;return t===x})?.labelKey??"desktop.settings")}),"models"===x?(0,n.jsx)("code",{className:gd,children:"~/.pi/agent/models.json"}):o&&(0,n.jsx)("code",{className:gd,title:o,children:o})]}),p&&(0,n.jsx)("button",{type:"button",className:"settings-modal-close",onClick:()=>{M()},disabled:C,title:h("desktop.settingsBack"),"aria-label":h("desktop.settingsBack"),children:(0,n.jsx)(i.n,{size:19,"aria-hidden":"true"})}),!p&&(0,n.jsx)("button",{type:"button",className:"settings-modal-close",onClick:()=>{M()},disabled:C,title:h("desktop.closeSettings"),"aria-label":h("desktop.closeSettings"),children:(0,n.jsx)(eP.X,{size:19,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{className:"settings-modal-page",style:{pointerEvents:C?"none":void 0},children:[(0,n.jsx)("div",{style:{display:"server"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(go,{})}),(0,n.jsx)("div",{style:{display:"display"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(pg,{})}),(0,n.jsx)("div",{style:{display:"ui-kit"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(pk,{})}),(0,n.jsx)("div",{style:{display:"chat"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(u5,{})}),(0,n.jsx)("div",{style:{display:"models"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(xa,{embedded:!0,sessionId:a,cwd:o,onSavedAction:d,onRegisterFlush:N})}),o&&(0,n.jsx)("div",{style:{display:"skills"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(x$,{cwd:o,embedded:!0,sessionId:a})}),o&&(0,n.jsx)("div",{style:{display:"plugins"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(xw,{cwd:o,sessionId:a,embedded:!0,onReloadedAction:c})}),(0,n.jsx)("div",{style:{display:"proxy"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(xC,{})}),(0,n.jsx)("div",{style:{display:"features"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(pT,{})}),(0,n.jsx)("div",{style:{display:"logs"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(xL,{})}),(0,n.jsx)("div",{style:{display:"snippets"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(xP,{})}),(0,n.jsx)("div",{style:{display:"usage"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(gi,{sessionId:a,cwd:o})}),(0,n.jsx)("div",{style:{display:"mcp"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(pZ,{sessionId:a})}),(0,n.jsx)("div",{style:{display:"subagents"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(x7,{embedded:!0,cwd:o??"",sessionId:a,onClose:l})}),(0,n.jsx)("div",{style:{display:"tools"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(gn,{sessionId:a,onSessionReloaded:c})}),(0,n.jsx)("div",{style:{display:"backup"===x?"flex":"none",flex:1,minWidth:0,minHeight:0},children:(0,n.jsx)(u0,{cwd:o})}),(0,n.jsx)("div",{style:{display:"import"===x?"flex":"none",flex:1,minWidth:0,minHeight:0,overflowY:"auto"},children:(0,n.jsx)(pN,{onSessionsChanged:u})})]}),T&&(0,n.jsx)("div",{className:"settings-modal-close-error",role:"alert",children:T})]})]})})}let gu=new Set(["awaiting_input","review","failed"]),gp=(0,s.createContext)(null);function gh(){let e=(0,s.useContext)(gp);if(!e)throw Error("useTasksView must be used within TasksViewProvider");return e}function gx(e){let{children:t}=e,{t:r}=(0,J.s)(),i=(0,s.useRef)(r);(0,s.useEffect)(()=>{i.current=r},[r]);let[o,a]=(0,s.useState)([]),[l,d]=(0,s.useState)([]),c=(0,s.useRef)(0),u=(0,s.useCallback)(async()=>{let e=++c.current;try{let t=await (0,nB.Wt)(),r=(await Promise.all(t.map(e=>(0,nB.Vk)(e).catch(()=>[])))).flat().sort((e,t)=>t.id-e.id);if(e!==c.current)return;d(e=>gg(e,t)?e:t),a(e=>gg(e,r)?e:r)}catch{}},[]);(0,s.useEffect)(()=>{u();let e=null,t=!1,r=()=>{t||((e=new EventSource("/api/tasks/events")).onmessage=()=>{u()},e.onerror=()=>{e?.close(),e=null,u(),setTimeout(r,2e3)})};r();let n=()=>{"visible"===document.visibilityState&&u()},s=()=>void u();document.addEventListener("visibilitychange",n),window.addEventListener("online",s);let i=setInterval(()=>void u(),6e4);return()=>{t=!0,e?.close(),document.removeEventListener("visibilitychange",n),window.removeEventListener("online",s),clearInterval(i)}},[u]);let p=(0,s.useMemo)(()=>o.filter(e=>gu.has(e.status)&&null==e.archivedAt).length,[o]),h=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=h.current;if((h.current=new Map(o.map(e=>[e.id,e.status])),e&&0!==o.length)&&"Notification"in window){for(let t of o)if(e.get(t.id)!==t.status&&("review"===t.status||"failed"===t.status)&&null==t.archivedAt&&"visible"!==document.visibilityState)try{let e="review"===t.status?r("tasks.notifyReview",{title:t.title}):r("tasks.notifyFailed",{title:t.title});!function(e,t){new Promise(r=>{if(!("Notification"in window))return void r();let n=()=>{try{new Notification(e,{body:t,tag:"pi-tasks"})}catch{}r()};"granted"===Notification.permission?n():"denied"!==Notification.permission?Notification.requestPermission().then(e=>{"granted"===e?n():r()}):r()})}("Pi Web Tasks",e)}catch{}}},[o,r]);let x=(0,s.useMemo)(()=>({tasks:o,projects:l,attentionCount:p,refetch:u}),[o,l,p,u]);return(0,n.jsx)(gp.Provider,{value:x,children:t})}function gg(e,t){return JSON.stringify(e)===JSON.stringify(t)}var gf=r(12449),gm=r(2571);let gv=["todo","inProgress","attention","done"];function gy(e){return"review"===e.status&&0===e.filesChanged}function gb(){return{defaultAgentType:null,modeId:null,configValues:{},autoProcess:!0,maxConcurrent:1,mergeStrategy:"merge",deleteWorktreeDefault:!0,preflightCommand:null,initCommand:null,stagePrompts:null}}let gk=["todo","inProgress","attention","done"],gj={todo:{id:"todo",marker:"var(--text-dim)"},inProgress:{id:"inProgress",marker:"var(--accent)"},attention:{id:"attention",marker:"var(--status-warning)"},done:{id:"done",marker:"var(--status-success)"}};var gw=r(54775),gS=r(98998),gC=r(36668);function gz(e){let{task:t}=e,{t:r}=(0,J.s)(),s=r("failed"===t.status&&"interrupted"===t.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"}}(t.status)),i={display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,padding:"2px 8px",fontSize:10,fontWeight:600,lineHeight:1.4,flexShrink:0,whiteSpace:"nowrap"};switch(t.status){case"queued":case"preparing":case"running":case"merging":return(0,n.jsxs)("span",{style:{...i,color:"var(--accent)"},children:[(0,n.jsx)(gw.N,{size:11,className:"pi-spin",style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}),s]});case"awaiting_input":case"review":return(0,n.jsx)("span",{style:{...i,border:"1px solid rgba(245,158,11,0.45)",background:"rgba(245,158,11,0.08)",color:"var(--status-warning)"},children:s});case"done":return(0,n.jsxs)("span",{style:{...i,background:"rgba(16,185,129,0.12)",color:"#059669"},children:[(0,n.jsx)(q.J,{size:10,weight:"bold","aria-hidden":"true"}),s]});case"failed":return(0,n.jsx)("span",{style:{...i,background:"rgba(239,68,68,0.12)",color:"var(--status-error)"},children:s});default:return(0,n.jsx)("span",{style:{...i,background:"var(--bg-hover)",color:"var(--text-muted)"},children:s})}}function gT(e){let{task:t}=e,r=t.preflight;if(!r||"review"!==t.status)return null;let s="passed"===r.status?{background:"rgba(16,185,129,0.12)",color:"#059669"}:"failed"===r.status?{background:"rgba(239,68,68,0.12)",color:"var(--status-error)"}:{background:"var(--bg-hover)",color:"var(--text-muted)"};return(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,padding:"1px 6px",fontSize:10,fontWeight:500,lineHeight:1.5,maxWidth:"100%",...s},title:r.command,children:["running"===r.status?(0,n.jsx)(gw.N,{size:10,style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}):"passed"===r.status?(0,n.jsx)(lQ.r,{size:10,"aria-hidden":"true"}):(0,n.jsx)(c3.J,{size:10,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r.command})]})}function gR(e){let{task:t,folderName:r,now:s,onOpen:i,onStart:o,onCancel:a,onRetry:l,onRequeue:d,onViewSession:c,onMerge:u,onArchive:p,onEdit:h}=e,{t:x}=(0,J.s)(),g=null!=t.archivedAt,f="running"===t.status||"awaiting_input"===t.status||"merging"===t.status,m=null!=t.filesChanged&&t.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:["+",t.additions??0]}),(0,n.jsxs)("span",{style:{color:"var(--status-error)"},children:["-",t.deletions??0]})]}):null,v=function(e,t){if(!e)return"";let r=new Date(e).getTime();if(Number.isNaN(r))return"";let n=Math.floor(Math.max(0,t-r)/6e4);if(n<1)return"now";if(n<60)return`${n}m`;let s=Math.floor(n/60);if(s<24)return`${s}h`;let i=Math.floor(s/24);return`${i}d`}(t.finishedAt??t.settledAt??t.startedAt??t.createdAt,s),{primary:y,more:b}=(()=>{let e=[],r=null;if(g)return{primary:r={icon:te.T,label:x("tasks.actionUnarchive"),onClick:p},more:e};switch(t.status){case"todo":r={icon:gm.j,label:x("tasks.actionStart"),onClick:o},e.push({icon:aC.S,label:x("tasks.actionEdit"),onClick:h});break;case"queued":case"preparing":case"running":case"awaiting_input":r={icon:gS.k,label:x("tasks.actionCancel"),onClick:a};break;case"review":r=gy(t)?{icon:q.J,label:x("tasks.actionComplete"),onClick:u}:{icon:gC.r,label:x("tasks.actionMerge"),onClick:u};break;case"merging":break;case"failed":r={icon:K.S,label:x("tasks.actionRetry"),onClick:l},e.push({icon:aC.S,label:x("tasks.actionEdit"),onClick:h}),e.push({icon:te.T,label:x("tasks.actionArchive"),onClick:p});break;case"done":r={icon:te.T,label:x("tasks.actionArchive"),onClick:p};break;case"canceled":r={icon:l0.f,label:x("tasks.actionRequeue"),onClick:d},e.push({icon:te.T,label:x("tasks.actionArchive"),onClick:p})}return{primary:r,more:e}})(),k=[...b];return null!=t.conversationId&&k.push({icon:lZ.y,label:x("tasks.actionViewSession"),onClick:c}),(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:i,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),i())},style:{display:"flex",flexDirection:"column",cursor:"pointer",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 85%, transparent)",background:"var(--bg-panel)",padding:12,textAlign:"left",transition:"border-color 0.12s",opacity:g?.6:1,boxShadow:"0 1px 2px rgba(0,0,0,0.04)"},className:"task-card-hover",onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--border) 85%, transparent)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{minWidth:0,overflowWrap:"break-word",fontSize:13,fontWeight:500,lineHeight:1.4},children:t.title}),(0,n.jsx)(gz,{task:t})]}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"2px 6px",marginTop:6,fontSize:11,color:"var(--text-muted)"},children:[r?(0,n.jsx)("span",{style:{maxWidth:160,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r}):null,r&&t.workBranch?(0,n.jsx)("span",{style:{opacity:.5},children:"/"}):null,t.workBranch?(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:180},children:t.workBranch}):null,(r||t.workBranch)&&(m||v)?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,m,m&&v?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,v?(0,n.jsx)("span",{style:{flexShrink:0},children:v}):null,(0,n.jsx)(gT,{task:t})]}),t.lastError&&("failed"===t.status||"review"===t.status)?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:8,borderRadius:8,background:"rgba(239,68,68,0.08)",padding:"6px 8px",fontSize:11,color:"var(--status-error)"},children:[(0,n.jsx)(nG.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:t.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(),i()},children:x("tasks.errorView")})]}):null,"review"===t.status&&t.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:t.resultSummary}):null,f&&t.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:t.latestProgress}):null,y||k.length>0?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:12,paddingTop:12,borderTop:"1px solid var(--border)"},children:[y?(0,n.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),y.onClick()},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 10px",borderRadius:7,background:"var(--accent)",color:"var(--accent-fg)",border:"none",cursor:"pointer",fontSize:11,fontWeight:600},children:[(0,n.jsx)(y.icon,{size:12,weight:"bold","aria-hidden":"true"}),y.label]}):null,(0,n.jsx)("div",{style:{flex:1}}),k.map(e=>(0,n.jsx)("button",{type:"button",title:e.label,"aria-label":e.label,onClick:t=>{t.stopPropagation(),e.onClick()},style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,borderRadius:999,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",opacity:0,transition:"opacity 0.12s, background 0.12s, color 0.12s"},className:"task-card-secondary",onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(e.icon,{size:13,"aria-hidden":"true"})},e.label))]}):null]})}function gI(e){let{open:t,onOpenChange:r,task:i}=e,{t:o}=(0,J.s)(),{refetch:a}=gh(),[l,d]=(0,s.useState)(""),[c,u]=(0,s.useState)(!1);if(G(!c,()=>r(!1)),(0,s.useEffect)(()=>{t&&(d(""),u(!1))},[t,i]),!t||!i)return null;let p=async()=>{if(!c){u(!0);try{await (0,nB.oQ)(i.id,i.projectRoot,"cancel",{reason:l.trim()||null}),r(!1),a()}catch(e){console.error("cancel failed",e)}finally{u(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(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:o("tasks.cancelTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":o("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(eP.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:o("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:o("tasks.cancelReasonLabel")}),(0,n.jsx)("textarea",{value:l,onChange:e=>d(e.target.value),placeholder:o("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:()=>r(!1),disabled:c,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:o("tasks.cancelKeep")}),(0,n.jsx)("button",{type:"button",onClick:()=>void p(),disabled:c,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:o("tasks.cancelSubmit")})]})]})]})})}function gN(e){let{open:t,onOpenChange:r,task:i}=e,{t:o}=(0,J.s)(),{refetch:a}=gh(),[l,d]=(0,s.useState)(!0),[c,u]=(0,s.useState)(!1);G(!c,()=>r(!1));let p=i?.worktreePath!=null;if((0,s.useEffect)(()=>{if(!t||!i)return;u(!1);let e=!1;return(0,nB.CG)(i.projectRoot).then(t=>{e||d(t.deleteWorktreeDefault)}).catch(()=>{e||d(!0)}),()=>{e=!0}},[t,i]),!t||!i)return null;let h=async()=>{if(!c){u(!0);try{await (0,nB.ZX)(i.id,i.projectRoot,p&&l),r(!1),a()}catch(e){console.error("complete failed",e)}finally{u(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(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:o("tasks.completeTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":o("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(eP.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:o("tasks.completeDescription")}),p?(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:l,onChange:e=>d(e.target.checked),style:{accentColor:"var(--accent)"}}),o("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:()=>r(!1),disabled:c,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:o("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void h(),disabled:c,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:o("tasks.completeSubmit")})]})]})]})})}var gM=r(51285),gE=r(16894);function g$(e){let{open:t,onOpenChange:r,task:i,onViewSession:o,onMerge:a,onEdit:l,onCancel:d,onRetry:c,onRequeue:u,onComplete:p}=e,{t:h}=(0,J.s)(),{refetch:x}=gh(),[g,f]=(0,s.useState)([]),[m,v]=(0,s.useState)([]),[y,b]=(0,s.useState)(null),[k,j]=(0,s.useState)(null),[w,S]=(0,s.useState)(!1),[C,z]=(0,s.useState)(!1),[T,R]=(0,s.useState)(""),[I,N]=(0,s.useState)(!1),[M,E]=(0,s.useState)(!1),[$,L]=(0,s.useState)(!1);G(!0,()=>r(!1));let W=i?.id??null,A=i?.projectRoot??null,P=(0,s.useCallback)(async()=>{if(null==W||null==A)return;let[e,t]=await Promise.all([(0,nB.HB)(A,W).catch(()=>[]),i?.worktreePath?(0,nB.JH)(A,W).then(e=>e.files).catch(()=>[]):Promise.resolve([])]);f(e),v(t)},[W,A,i?.worktreePath]);(0,s.useEffect)(()=>{if(!t||null==W)return;f([]),v([]),z(!1),R(""),P();let e=window.setInterval(()=>void P(),5e3);return()=>window.clearInterval(e)},[t,W,P]);let F=(0,s.useCallback)(async e=>{L(!0);try{await e()}catch(e){console.error("detail action failed",e)}finally{L(!1),x()}},[x]),D=(0,s.useCallback)(async e=>{if(null!=A&&null!=W){S(!0);try{let t=await (0,nB.h)(A,W,e);j(t.supported&&t.patch?t.patch:null)}catch{j(null)}finally{S(!1)}}},[A,W]),O=async()=>{null!=i&&null!=A&&(await F(()=>(0,nB.bH)(i.id,A,M)),r(!1))},H=async()=>{null!=i&&null!=A&&T.trim()&&(await F(()=>(0,nB.in)(i.id,A,T.trim())),z(!1),R(""))};if(!t||null==i||null==A)return null;let B=[];if(null==i.archivedAt)switch(i.status){case"todo":B.push({label:h("tasks.actionStart"),icon:gm.j,onClick:()=>void F(()=>(0,nB.oQ)(i.id,A,"start")),filled:!0}),B.push({label:h("tasks.actionEdit"),icon:aC.S,onClick:()=>l(i)});break;case"queued":case"preparing":case"running":case"awaiting_input":B.push({label:h("tasks.actionCancel"),icon:gS.k,onClick:()=>d(i),danger:!0});break;case"review":B.push({label:gy(i)?h("tasks.actionComplete"):h("tasks.actionMerge"),icon:gy(i)?q.J:gM.Y,onClick:()=>gy(i)?p(i):a(i),filled:!0}),B.push({label:h("tasks.actionReturn"),icon:l0.f,onClick:()=>z(!0)});break;case"failed":B.push({label:h("tasks.actionRetry"),icon:K.S,onClick:()=>c(i),filled:!0}),B.push({label:h("tasks.actionEdit"),icon:aC.S,onClick:()=>l(i)});break;case"done":B.push({label:h("tasks.actionArchive"),icon:te.T,onClick:()=>void F(()=>(0,nB.et)(i.id,A,!0))});break;case"canceled":B.push({label:h("tasks.actionRequeue"),icon:l0.f,onClick:()=>u(i),filled:!0})}else B.push({label:h("tasks.actionUnarchive"),icon:te.T,onClick:()=>void F(()=>(0,nB.et)(i.id,A,!1))});return null!=i.conversationId&&B.push({label:h("tasks.actionViewSession"),icon:lZ.y,onClick:()=>o(i)}),(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:800,background:"rgba(0,0,0,0.35)"},children:(0,n.jsxs)("div",{style:{position:"absolute",top:0,right:0,bottom:0,width:"min(480px, 90vw)",background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",display:"flex",flexDirection:"column",boxShadow:"-8px 0 32px rgba(0,0,0,0.2)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,padding:"16px 16px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("h3",{style:{margin:0,fontSize:15,fontWeight:600,lineHeight:1.4,overflowWrap:"break-word"},children:i.title}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6},children:[(0,n.jsx)(gz,{task:i}),i.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)(e0.Z,{size:12,"aria-hidden":"true"}),i.workBranch]}):null]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":h("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex",flexShrink:0},children:(0,n.jsx)(eP.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,padding:"14px 16px 0"},children:B.map(e=>{let t,r;return(0,n.jsxs)("button",{type:"button",onClick:e.onClick,disabled:$,style:(t=e.filled,r=e.danger,{display:"inline-flex",alignItems:"center",gap:5,padding:"7px 12px",borderRadius:8,fontSize:12,fontWeight:600,cursor:"pointer",background:t?"var(--accent)":r?"rgba(239,68,68,0.1)":"var(--bg-hover)",color:t?"#fff":r?"var(--status-error)":"var(--text)",border:t||r?"none":"1px solid var(--border)"}),children:[(0,n.jsx)(e.icon,{size:13,weight:"bold","aria-hidden":"true"}),e.label]},e.label)})}),C&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"12px 16px 0"},children:[(0,n.jsx)("textarea",{value:T,onChange:e=>R(e.target.value),placeholder:h("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:()=>z(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:h("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void H(),disabled:!T.trim(),style:{padding:"6px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:h("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:h("tasks.metaProject")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:i.projectRoot})]}),i.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:h("tasks.metaCreated")}),(0,n.jsx)("span",{children:new Date(i.createdAt).toLocaleString()})]}):null,i.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:h("tasks.metaCommit")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:i.mergeCommit})]}):null]}),m.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:h("tasks.changedFiles")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:140,overflowY:"auto"},children:m.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>{var t;b(t=e.file),j(null),D(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)(gE.o,{size:13,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:e.file}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"#059669",flexShrink:0},children:["+",e.additions]}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--status-error)",flexShrink:0},children:["-",e.deletions]})]},e.file))})]}),null!=y&&(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:h("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:y}),(0,n.jsx)("button",{type:"button",onClick:()=>b(null),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(eP.X,{size:12,"aria-hidden":"true"})})]}),w?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:h("tasks.loading")}):k?(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:k.split("\n").map((e,t)=>{let r;return e.startsWith("+")&&!e.startsWith("+++")?r="#059669":e.startsWith("-")&&!e.startsWith("---")?r="var(--status-error)":e.startsWith("@@")&&(r="var(--accent)"),(0,n.jsx)("div",{style:{color:r},children:e||" "},t)})}):(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:h("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:h("tasks.timeline")}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingBottom:8},children:0===g.length?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",padding:8},children:h("tasks.noEvents")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[...g].reverse().map(e=>{var t;let r,s;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,(s=h(r=`tasks.event_${t}`))===r?t:s)}),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:I?(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:M,onChange:e=>E(e.target.checked),style:{accentColor:"var(--accent)"}}),h("tasks.deleteWorktree")]}),(0,n.jsx)("button",{type:"button",onClick:()=>N(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:h("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void O(),disabled:$,style:{padding:"6px 14px",borderRadius:8,background:"var(--status-error)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:h("tasks.deleteConfirm")})]}):(0,n.jsxs)("button",{type:"button",onClick:()=>N(!0),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--status-error)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(e3.l,{size:13,"aria-hidden":"true"}),h("tasks.delete")]})})]})})}var gL=r(17757);function gW(e){let{open:t,onOpenChange:r,task:i,defaultProject:o,projects:a,prefillTitle:l,prefillPrompt:d,onSubmit:c}=e,{t:u}=(0,J.s)(),[p,h]=(0,s.useState)(""),[x,g]=(0,s.useState)(""),[f,m]=(0,s.useState)(""),[v,y]=(0,s.useState)([]),[b,k]=(0,s.useState)(""),[j,w]=(0,s.useState)(!1);G(!j,()=>r(!1));let S=(0,s.useRef)(!1);if((0,s.useEffect)(()=>{if(!t){S.current=!1;return}S.current||(S.current=!0,h(i?.projectRoot??o??a[0]??""),g(i?.title??l??""),m(i?.config?.prompt??d??""),(0,nB.VB)().then(y).catch(()=>void 0))},[t,i,o,a,l,d]),!t)return null;let C=async()=>{if(p&&x.trim()&&!j){w(!0);try{await c(p,x.trim(),{prompt:f.trim(),agentType:i?.config?.agentType??null,modelId:i?.config?.modelId??null,thinkingLevel:i?.config?.thinkingLevel??null}),r(!1)}catch(e){console.error("submit task failed",e)}finally{w(!1)}}},z=async()=>{if(b.trim()&&x.trim())try{await (0,nB.nY)({name:b.trim(),title:x.trim(),config:{prompt:f.trim()}}),k(""),(0,nB.VB)().then(y).catch(()=>void 0)}catch(e){console.error("save template failed",e)}},T=async e=>{try{await (0,nB.B_)(e),(0,nB.VB)().then(y).catch(()=>void 0)}catch(e){console.error("delete template failed",e)}},R={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:900,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",maxHeight:"80vh",overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i?u("tasks.editTitle"):u("tasks.newTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":u("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(eP.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[v.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:u("tasks.templates")}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:v.map(e=>(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,background:"var(--bg-hover)",padding:"3px 8px",fontSize:11},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{g(e.title),m(e.config?.prompt??"")},style:{background:"none",border:"none",cursor:"pointer",color:"var(--text)",fontSize:11,padding:0},children:e.name}),(0,n.jsx)("button",{type:"button",onClick:()=>void T(e.id),"aria-label":u("tasks.deleteTemplate"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)",padding:0,display:"flex"},children:(0,n.jsx)(e3.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:u("tasks.fieldProject")}),(0,n.jsx)("select",{value:p,onChange:e=>h(e.target.value),style:R,children:a.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:u("tasks.fieldTitle")}),(0,n.jsx)("input",{value:x,onChange:e=>g(e.target.value),placeholder:u("tasks.fieldTitlePlaceholder"),style:R,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:u("tasks.fieldPrompt")}),(0,n.jsx)("textarea",{value:f,onChange:e=>m(e.target.value),placeholder:u("tasks.fieldPromptPlaceholder"),rows:6,style:{...R,resize:"vertical",fontFamily:"inherit",lineHeight:1.5}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("input",{value:b,onChange:e=>k(e.target.value),placeholder:u("tasks.templateNamePlaceholder"),style:{...R,flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void z(),disabled:!b.trim()||!x.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)(gL.D,{size:13,"aria-hidden":"true"}),u("tasks.saveAsTemplate")]})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:u("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void C(),disabled:!p||!x.trim()||j,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:u("tasks.save")})]})]})]})})}function gA(e){let{open:t,onOpenChange:r,task:i}=e,{t:o}=(0,J.s)(),{refetch:a}=gh(),[l,d]=(0,s.useState)(!0),[c,u]=(0,s.useState)(""),[p,h]=(0,s.useState)(!0),[x,g]=(0,s.useState)(!1);if(G(!x,()=>r(!1)),(0,s.useEffect)(()=>{t&&i&&(d(!0),u(i.title),g(!1),(0,nB.CG)(i.projectRoot).then(e=>h(e.deleteWorktreeDefault)).catch(()=>h(!0)))},[t,i]),!t||!i)return null;let f=async()=>{if((l||c.trim())&&!x){g(!0);try{await (0,nB.oB)(i.id,i.projectRoot,l?null:c.trim(),p),r(!1),a()}catch(e){console.error("merge failed",e)}finally{g(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:o("tasks.mergeTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":o("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(eP.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"radio",checked:l,onChange:()=>d(!0),style:{accentColor:"var(--accent)"}}),o("tasks.mergeAutoMessage")]}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"radio",checked:!l,onChange:()=>d(!1),style:{accentColor:"var(--accent)"}}),o("tasks.mergeManualMessage")]}),!l&&(0,n.jsx)("input",{value:c,onChange:e=>u(e.target.value),placeholder:o("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:p,onChange:e=>h(e.target.checked),style:{accentColor:"var(--accent)"}}),o("tasks.mergeDeleteWorktree")]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:o("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void f(),disabled:!l&&!c.trim()||x,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:o("tasks.mergeConfirm")})]})]})]})})}function gP(e){let{open:t,onOpenChange:r,task:i,kind:o}=e,{t:a}=(0,J.s)(),{refetch:l}=gh(),[d,c]=(0,s.useState)(""),[u,p]=(0,s.useState)(!1);if(G(!u,()=>r(!1)),(0,s.useEffect)(()=>{t&&(c(""),p(!1))},[t,i]),!t||!i)return null;let h="retry"===o,x=async()=>{if(!u){p(!0);try{await (0,nB.oQ)(i.id,i.projectRoot,o,{note:d.trim()||null}),r(!1),l()}catch(e){console.error("restart failed",e)}finally{p(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(480px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:a(h?"tasks.restartTitleRetry":"tasks.restartTitleRequeue")}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":a("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(eP.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:a("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:a("tasks.actionAddNote")}),(0,n.jsx)("textarea",{value:d,onChange:e=>c(e.target.value),placeholder:a(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:()=>r(!1),disabled:u,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:a("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void x(),disabled:u,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:a(h?"tasks.actionRetry":"tasks.actionRequeue")})]})]})]})})}let gF=["work","retry","return","merge"];function gD(e){let{open:t,onOpenChange:r,projectRoot:i}=e,{t:o}=(0,J.s)(),{projects:a}=gh(),[l,d]=(0,s.useState)(""),[c,u]=(0,s.useState)(()=>gb()),[p,h]=(0,s.useState)(!1),[x,g]=(0,s.useState)(!1);if(G(!x,()=>r(!1)),(0,s.useEffect)(()=>{if(!t)return;let e=i??a[0]??"";d(e),e&&(0,nB.Pf)(e).then(e=>{h(null!=e),u(e??gb())}).catch(()=>{h(!1),u(gb())})},[t,i,a]),!t)return null;let f=(e,t)=>{u(r=>({...r,[e]:t}))},m=async()=>{if(l&&!x){g(!0);try{await (0,nB.eA)(l,c),h(!0),r(!1)}catch(e){console.error("save settings failed",e)}finally{g(!1)}}},v=async()=>{if(l)try{await (0,nB.E)(l),h(!1),u(gb())}catch(e){console.error("reset settings failed",e)}},y={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:12,outline:"none",fontFamily:"inherit"},b={display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 0",borderBottom:"1px solid var(--border)"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:960,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(560px, calc(100vw - 48px))",maxHeight:"82vh",overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:o("tasks.settingsTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":o("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(eP.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:o("tasks.settingsProject")}),(0,n.jsx)("select",{value:l,onChange:e=>d(e.target.value),style:y,children:a.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),l?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:o("tasks.settingsAutoProcess")}),(0,n.jsx)("input",{type:"checkbox",checked:c.autoProcess,onChange:e=>f("autoProcess",e.target.checked),style:{accentColor:"var(--accent)"}})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:o("tasks.settingsMaxConcurrent")}),(0,n.jsx)("input",{type:"number",min:0,value:c.maxConcurrent,onChange:e=>f("maxConcurrent",Math.max(0,Number(e.target.value)||0)),style:{...y,width:90}})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:o("tasks.settingsMergeStrategy")}),(0,n.jsxs)("select",{value:c.mergeStrategy,onChange:e=>f("mergeStrategy",e.target.value),style:{...y,width:140},children:[(0,n.jsx)("option",{value:"merge",children:o("tasks.mergeStrategyMerge")}),(0,n.jsx)("option",{value:"squash",children:o("tasks.mergeStrategySquash")})]})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:o("tasks.settingsDeleteWorktree")}),(0,n.jsx)("input",{type:"checkbox",checked:c.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:o("tasks.settingsPreflightCommand")}),(0,n.jsx)("input",{value:c.preflightCommand??"",onChange:e=>f("preflightCommand",e.target.value||null),placeholder:o("tasks.settingsPreflightPlaceholder"),style:{...y,fontFamily:"var(--font-mono)",fontSize:11}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12},children:o("tasks.settingsInitCommand")}),(0,n.jsx)("input",{value:c.initCommand??"",onChange:e=>f("initCommand",e.target.value||null),placeholder:o("tasks.settingsInitPlaceholder"),style:{...y,fontFamily:"var(--font-mono)",fontSize:11}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,paddingTop:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500},children:o("tasks.settingsStagePrompts")}),gF.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:o(`tasks.stage.${e}`)}),(0,n.jsx)("input",{value:c.stagePrompts?.[e]??"",onChange:t=>f("stagePrompts",{...c.stagePrompts??{},[e]:t.target.value}),style:{...y,fontSize:11}})]},e))]}),p&&(0,n.jsx)("button",{type:"button",onClick:()=>void v(),style:{alignSelf:"flex-start",padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",fontSize:12,cursor:"pointer"},children:o("tasks.settingsReset")})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",padding:8},children:o("tasks.settingsNoProject")}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:o("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void m(),disabled:!l||x,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:o("tasks.save")})]})]})]})})}function gO(e){let{open:t,onOpenChange:r,task:i}=e,{t:o}=(0,J.s)();return(G(t&&!!i,()=>r(!1)),(0,s.useEffect)(()=>{if(!t)return},[t,i]),t&&i)?(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:970,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:o("tasks.sessionTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),"aria-label":o("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(eP.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:o("tasks.sessionId")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:i.conversationId??"—"})]}),i.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:o("tasks.sessionFile")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:i.sessionFile})]}):null,(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6},children:o("tasks.sessionHint")}),(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:4},children:(0,n.jsx)("button",{type:"button",onClick:()=>r(!1),style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:o("i18n.close")})})]})]})}):null}let gH="__all__",gB="pi-tasks-board-filter",gU={showCanceled:!1,showArchived:!1},g_="pi:open-task-settings";function gK(){let{t:e}=(0,J.s)(),{attentionCount:t}=gh();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)(U.x,{size:15,color:"var(--text-muted)","aria-hidden":"true"}),e("tasks.title"),(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 8px",fontSize:9,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Beta"})]}),t>0?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,background:"rgba(239,68,68,0.12)",color:"var(--status-error)",padding:"1px 8px",fontSize:10,fontWeight:700},children:[t," ",e("tasks.attentionBadge")]}):null,(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>window.dispatchEvent(new Event(g_)),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)(e7.O,{size:13,"aria-hidden":"true"}),e("tasks.settingsTitle")]})]})}function gq(e){let{activeProject:t}=e,{t:i}=(0,J.s)(),{tasks:o,projects:a,refetch:l}=gh(),[d,c]=(0,s.useState)(null),[u,p]=(0,s.useState)(()=>(function(){try{let e=window.localStorage.getItem(gB);if(e){let t=JSON.parse(e);return{showCanceled:t.showCanceled??!1,showArchived:t.showArchived??!1}}}catch{}return gU})()),[h,x]=(0,s.useState)(!1);(0,s.useEffect)(()=>{try{window.localStorage.setItem(gB,JSON.stringify(u))}catch{}},[u]);let[g,f]=(0,s.useState)(null),[m,v]=(0,s.useState)(!1),y=(0,s.useRef)(null),b=(0,s.useRef)({x:0,y:0}),k=(0,s.useRef)(null),j=(0,s.useRef)(null),[w,S]=(0,s.useState)(null),C=(0,s.useRef)(null);C.current=w;let z=(0,s.useRef)(!1),T=(0,s.useRef)(!1),[R,I]=(0,s.useState)(()=>Date.now());(0,s.useEffect)(()=>{let e=window.setInterval(()=>I(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let[N,M]=(0,s.useState)(!1),[E,$]=(0,s.useState)(null),[L,W]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=()=>{let e,t=(e=cY,cY=null,e);t&&($(null),W(t),M(!0))};return e(),window.addEventListener(cG,e),()=>window.removeEventListener(cG,e)},[]);let[A,P]=(0,s.useState)(null),[F,D]=(0,s.useState)(null),[O,H]=(0,s.useState)(!1),[B,_]=(0,s.useState)(null),[K,q]=(0,s.useState)(!1),[V,G]=(0,s.useState)(null),[Y,X]=(0,s.useState)("retry"),[Z,Q]=(0,s.useState)(!1),[ee,et]=(0,s.useState)(null),[er,en]=(0,s.useState)(!1),[es,ei]=(0,s.useState)(!1),[eo,ea]=(0,s.useState)(null),[el,ed]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=()=>ei(!0);return window.addEventListener(g_,e),()=>window.removeEventListener(g_,e)},[]);let ec=(0,s.useMemo)(()=>null==d?o:o.filter(e=>e.projectRoot===d),[o,d]),eu=(0,s.useMemo)(()=>(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n={todo:[],inProgress:[],attention:[],done:[]};for(let s of e)("canceled"!==s.status||t)&&(null==s.archivedAt||r)&&n[function(e){switch(e){case"todo":case"queued":return"todo";case"preparing":case"running":return"inProgress";case"awaiting_input":case"review":case"merging":case"failed":return"attention";case"done":case"canceled":return"done"}}(s.status)].push(s);for(let e of gv)n[e].sort((e,t)=>(t.updatedAt??"").localeCompare(e.updatedAt??""));return n})(ec,u.showCanceled,u.showArchived),[ec,u]),ep=(0,s.useMemo)(()=>{let e=eu.todo;if(null==w)return e;let t=new Map(e.map(e=>[e.id,e])),r=w.flatMap(e=>t.get(e)??[]);for(let t of e)w.includes(t.id)||r.push(t);return r},[eu.todo,w]),eh=(0,s.useMemo)(()=>o.find(e=>e.id===A)??null,[o,A]),ex=(0,s.useMemo)(()=>o.find(e=>e.id===eo)??null,[o,eo]),eg=(0,s.useCallback)(async e=>{try{await e()}catch(e){console.error("task action failed",e)}finally{l()}},[l]),ef=(0,s.useCallback)(e=>{null!=e.conversationId&&(ea(e.id),ed(!0))},[ea,ed]),em=(0,s.useCallback)(e=>{D(e),H(!0)},[D,H]),ev=(0,s.useCallback)(()=>{$(null),M(!0)},[$,M]),ey=(0,s.useCallback)((e,t)=>{let r=k.current,n=y.current;r&&n&&(r.style.transform=`translate3d(${e-n.dx}px, ${t-n.dy}px, 0)`)},[]),eb=e=>{let t=e.currentTarget.getBoundingClientRect();y.current={dx:e.clientX-t.left,dy:e.clientY-t.top,width:t.width}},ek=(0,s.useCallback)(e=>{if(f(null),v(!1),e){z.current=!1;return}requestAnimationFrame(()=>{z.current=!1})},[f,v]),ej=(0,s.useCallback)(()=>{T.current=!0,S(null),ek(!0)},[ek,S]);(0,s.useEffect)(()=>{if(!g)return;let e=()=>{document.hidden&&ej()};return window.addEventListener("blur",ej),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("blur",ej),document.removeEventListener("visibilitychange",e)}},[g,ej]),(0,s.useEffect)(()=>{g&&!ep.some(e=>e.id===g.task.id)&&ej()},[g,ep,ej]);let ew=(0,s.useCallback)((e,t,r)=>{if(T.current){ek(!0),S(null);return}let n=j.current?.getBoundingClientRect(),s=null!=n&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom;if(ek(!1),s){S(null);let t=o.find(t=>t.id===e.id);t?.status==="todo"&&null!=d&&eg(()=>(0,nB.oQ)(e.id,e.projectRoot,"start"));return}let i=C.current;null!=d&&null!=i&&(async()=>{try{await (0,nB.Lu)(d,i)}catch(e){console.error("reorder failed",e)}await l(),S(null)})()},[eg,ek,d,l,o]),eS=(0,s.useCallback)(()=>{eg(async()=>{let e=await (0,nB.a5)(d);e>0&&console.log(`started ${e} tasks`)})},[eg,d]),eC=(0,s.useCallback)(()=>{let e=eu.done.filter(e=>null==e.archivedAt);0!==e.length&&eg(()=>Promise.all(e.map(e=>(0,nB.et)(e.id,e.projectRoot,!0))))},[eg,eu.done]),ez=+(u.showCanceled!==gU.showCanceled)+ +(u.showArchived!==gU.showArchived),eT=o.length>0,eR=(0,s.useMemo)(()=>{let e=new Set(a);return t&&e.add(t),[...e].sort()},[a,t]),eI=(0,s.useMemo)(()=>{let e=new Map;for(let t of eR)e.set(t,t.split("/").filter(Boolean).pop()??t);return e},[eR]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[eT&&(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8,padding:"14px 16px 8px"},children:[(0,n.jsxs)("select",{value:d??gH,onChange:e=>c(e.target.value===gH?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":i("tasks.allFolders"),children:[(0,n.jsx)("option",{value:gH,children:i("tasks.allFolders")}),eR.map(e=>(0,n.jsx)("option",{value:e,children:eI.get(e)??e},e))]}),(0,n.jsxs)("div",{style:{position:"relative"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>x(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)(gf.n,{size:13,"aria-hidden":"true"}),i("tasks.filter"),ez>0?(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 6px",fontSize:10,fontWeight:700},children:ez}):null]}),h&&(0,n.jsx)("div",{style:{position:"absolute",top:34,left:0,zIndex:50,width:200,borderRadius:12,padding:6,background:"var(--bg-panel)",border:"1px solid var(--border)",boxShadow:"0 8px 24px rgba(0,0,0,0.16)"},children:[["showCanceled",i("tasks.showCanceled")],["showArchived",i("tasks.showArchived")]].map(e=>{let[t,r]=e;return(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:u[t],onChange:e=>p(r=>({...r,[t]:e.target.checked})),style:{accentColor:"var(--accent)"}}),r]},t)})})]}),(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:i("tasks.startAll"),children:[(0,n.jsx)(gm.j,{size:13,"aria-hidden":"true"}),i("tasks.startAll")]}),(0,n.jsxs)("button",{type:"button",onClick:ev,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 14px",background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(e4.F,{size:13,weight:"bold","aria-hidden":"true"}),i("tasks.new")]})]}),eT?(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowX:"auto"},children:(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, minmax(0, 1fr))",gap:16,minWidth:"56rem",height:"100%",padding:"4px 16px 16px"},children:gk.map(e=>{let t="todo"===e?ep:eu[e],r=gj[e],s=e=>(0,n.jsx)(gR,{task:e,folderName:e.projectRoot?eI.get(e.projectRoot)??null:null,now:R,onOpen:()=>{z.current||P(e.id)},onStart:()=>void eg(()=>(0,nB.oQ)(e.id,e.projectRoot,"start")),onCancel:()=>{_(e),q(!0)},onRetry:()=>{G(e),X("retry"),Q(!0)},onRequeue:()=>{G(e),X("requeue"),Q(!0)},onViewSession:()=>ef(e),onMerge:()=>{gy(e)?(et(e),en(!0)):em(e)},onArchive:()=>void eg(()=>(0,nB.et)(e.id,e.projectRoot,null==e.archivedAt)),onEdit:()=>{$(e),M(!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:i(`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:t.length}),(0,n.jsx)("div",{style:{flex:1}}),"done"===e&&eu.done.some(e=>null==e.archivedAt)?(0,n.jsx)("button",{type:"button",onClick:eC,style:{background:"none",border:"none",cursor:"pointer",fontSize:11,color:"var(--text-muted)",padding:"2px 6px",borderRadius:6},children:i("tasks.archiveAllDone")}):null]}),0===t.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&&g?m?{borderColor:"var(--accent)",background:"rgba(37,99,235,0.08)"}:{borderColor:"var(--accent)"}:{}},children:(0,n.jsx)("p",{style:{fontSize:12,color:"var(--text-muted)"},children:i(`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&&g?m?{background:"rgba(37,99,235,0.06)",boxShadow:"inset 0 0 0 2px var(--accent)"}:{boxShadow:"inset 0 0 0 1px rgba(37,99,235,0.25)"}:{}},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16,paddingBottom:4},children:t.map(t=>"todo"===e?(0,n.jsx)("div",{draggable:!0,onDragStart:e=>{var r,n;e.dataTransfer.effectAllowed="move",r=e.clientX,n=e.clientY,z.current=!0,T.current=!1,b.current={x:r,y:n},f({task:t,width:y.current?.width??280})},onDrag:e=>{var t,r;let n,s;return b.current={x:t=e.clientX,y:r=e.clientY},ey(t,r),void((s=null!=(n=j.current?.getBoundingClientRect())&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom)!==m&&v(s))},onDragEnd:e=>ew(t,e.clientX,e.clientY),onPointerDown:eb,style:{cursor:"grab",opacity:g?.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)(U.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:i("tasks.empty")}),(0,n.jsx)("p",{style:{maxWidth:320,fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:i("tasks.emptyHint")})]}),(0,n.jsxs)("button",{type:"button",onClick:ev,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(e4.F,{size:13,weight:"bold","aria-hidden":"true"}),i("tasks.new")]})]}),(0,n.jsx)(gW,{open:N,onOpenChange:M,task:E,defaultProject:L?.projectRoot??d??t??null,projects:eR,prefillTitle:L?L.text.slice(0,80):void 0,prefillPrompt:L?L.text:void 0,onSubmit:async(e,t,n)=>{await eg(async()=>{let{createTaskApi:s}=await Promise.resolve().then(r.bind(r,23084)),{updateTaskApi:i}=await Promise.resolve().then(r.bind(r,23084));E?await i(E.id,e,{title:t,config:n}):await s({projectRoot:e,title:t,config:n})}),M(!1),W(null)}}),(0,n.jsx)(g$,{open:null!=A,onOpenChange:e=>{e||P(null)},task:eh,onViewSession:ef,onMerge:em,onEdit:e=>{$(e),M(!0)},onCancel:e=>{_(e),q(!0)},onRetry:e=>{G(e),X("retry"),Q(!0)},onRequeue:e=>{G(e),X("requeue"),Q(!0)},onComplete:e=>{et(e),en(!0)}}),(0,n.jsx)(gA,{open:O,onOpenChange:H,task:F}),(0,n.jsx)(gI,{open:K,onOpenChange:q,task:B}),(0,n.jsx)(gP,{open:Z,onOpenChange:Q,task:V,kind:Y}),(0,n.jsx)(gN,{open:er,onOpenChange:en,task:ee}),(0,n.jsx)(gO,{open:el&&null!=ex,onOpenChange:ed,task:ex}),(0,n.jsx)(gD,{open:es,onOpenChange:ei,projectRoot:d}),g?(0,eG.createPortal)((0,n.jsx)("div",{ref:k,style:{position:"fixed",left:0,top:0,zIndex:999,pointerEvents:"none",width:g.width,willChange:"transform"},"aria-hidden":"true",children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,borderRadius:12,border:m?"1px solid var(--accent)":"1px solid var(--border)",background:"var(--bg-panel)",padding:12,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",transform:"rotate(-1deg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{minWidth:0,overflowWrap:"break-word",fontSize:13,fontWeight:500},children:g.task.title}),(0,n.jsx)(gz,{task:g.task})]}),m?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,color:"var(--accent)"},children:[(0,n.jsx)(gm.j,{size:11,weight:"bold","aria-hidden":"true"}),i("tasks.dropToStart")]}):null]})}),document.body):null]})}function gV(e){let{loading:t,prompt:r,translate:s}=e;return(0,n.jsxs)("section",{className:"system-prompt-panel","aria-label":s("system.prompt"),children:[(0,n.jsx)("div",{className:"system-prompt-scroll",children:r?(0,n.jsx)("div",{className:"system-prompt-text",children:r}):(0,n.jsx)("div",{className:"system-prompt-empty",children:s(""===r?"system.empty":t?"system.loading":"system.load")})}),(0,n.jsx)("style",{children:`
|
|
198
|
+
.system-prompt-panel {
|
|
199
|
+
display: flex;
|
|
200
|
+
height: min(600px, 75dvh);
|
|
201
|
+
min-height: 220px;
|
|
202
|
+
flex-direction: column;
|
|
203
|
+
background: var(--bg-panel);
|
|
204
|
+
border-bottom: 1px solid var(--border);
|
|
205
|
+
}
|
|
206
|
+
.system-prompt-scroll {
|
|
207
|
+
min-height: 0;
|
|
208
|
+
flex: 1;
|
|
209
|
+
overflow: auto;
|
|
210
|
+
padding: 12px 16px;
|
|
211
|
+
}
|
|
212
|
+
.system-prompt-text {
|
|
213
|
+
color: var(--text-muted);
|
|
214
|
+
font-family: var(--font-mono);
|
|
215
|
+
font-size: 12px;
|
|
216
|
+
line-height: 1.6;
|
|
217
|
+
overflow-wrap: anywhere;
|
|
218
|
+
white-space: pre-wrap;
|
|
219
|
+
}
|
|
220
|
+
.system-prompt-empty {
|
|
221
|
+
padding: 10px 0;
|
|
222
|
+
color: var(--text-muted);
|
|
223
|
+
font-size: 12px;
|
|
224
|
+
font-style: italic;
|
|
225
|
+
}
|
|
226
|
+
`})]})}function gJ(e,t,r){let n=Number.isFinite(e)?e:t,s=Math.max(t,r);return Math.round(Math.max(t,Math.min(s,n)))}function gG(e){return gJ(.42*e,360,640)}function gY(e,t){try{window.localStorage.setItem(e,String(t))}catch{}}function gX(e){let{ariaLabel:t,axis:r="horizontal",cssVariable:n,defaultWidth:i,getDefaultWidth:o,getMaxWidth:a,growthDirection:l,maxWidth:d,minWidth:c,storageKey:u,widthRef:p}=e,h=(0,s.useRef)(null),x=(0,s.useRef)(null),g=(0,s.useRef)(!1),[f,m]=(0,s.useState)(i),[v,y]=(0,s.useState)(!1),[b,k]=(0,s.useState)(!1);(0,s.useEffect)(()=>{k(!0)},[]);let j=(0,s.useCallback)(()=>Math.min(d,Math.max(c,a())),[a,d,c]),w=(0,s.useCallback)(e=>gJ(e,c,j()),[j,c]),S=(0,s.useCallback)(e=>{p.current=e;let t=`${e}px`;h.current?.style.setProperty(n,t),h.current?.parentElement?.style.setProperty(n,t)},[n,p]),C=(0,s.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{forcePersist:r=!1,persist:n=!0}=t,s=w(e),i=s!==p.current;return S(s),m(s),n&&(i||r)&&gY(u,s),s},[S,w,u,p]),z=(0,s.useCallback)(e=>{document.body.style.cursor=e.previousCursor,document.body.style.userSelect=e.previousUserSelect},[]),T=(0,s.useCallback)(e=>{let t=x.current;if(t&&t.pointerId===e){x.current=null,z(t),y(!1),C(p.current,{forcePersist:!0});try{t.target.hasPointerCapture(e)&&t.target.releasePointerCapture(e)}catch{}}},[C,z,p]),R=(0,s.useCallback)(e=>{if("mouse"===e.pointerType&&0!==e.button)return;e.preventDefault(),e.stopPropagation();let t=x.current;t&&T(t.pointerId);let n=e.currentTarget;n.focus({preventScroll:!0}),n.setPointerCapture(e.pointerId),x.current={pointerId:e.pointerId,startPosition:"vertical"===r?e.clientY:e.clientX,startWidth:p.current,target:n,previousCursor:document.body.style.cursor,previousUserSelect:document.body.style.userSelect},document.body.style.cursor="vertical"===r?"row-resize":"col-resize",document.body.style.userSelect="none",y(!0)},[r,T,p]),I=(0,s.useCallback)(e=>{let t=x.current;if(!t||t.pointerId!==e.pointerId)return;if("mouse"===e.pointerType&&0===e.buttons)return void T(e.pointerId);e.preventDefault();let n="right"===l||"down"===l?1:-1,s="vertical"===r?e.clientY:e.clientX,i=w(t.startWidth+(s-t.startPosition)*n);S(i),e.currentTarget.setAttribute("aria-valuenow",String(i)),e.currentTarget.setAttribute("aria-valuetext",`${i} px`)},[S,r,w,T,l]),N=(0,s.useCallback)(e=>{T(e.pointerId)},[T]),M=(0,s.useCallback)(e=>{T(e.pointerId)},[T]),E=(0,s.useCallback)(e=>{T(e.pointerId)},[T]),$=(0,s.useCallback)(()=>{C(o?.()??i,{forcePersist:!0})},[C,i,o]),L=(0,s.useCallback)(()=>{C(p.current)},[C,p]),W=(0,s.useCallback)(e=>{let t=e.shiftKey?32:12,n="right"===l||"down"===l,s="vertical"===r?"ArrowDown":"ArrowRight",i="vertical"===r?"ArrowUp":"ArrowLeft";e.key===(n?s:i)?(e.preventDefault(),C(p.current+t,{forcePersist:!0})):e.key===(n?i:s)?(e.preventDefault(),C(p.current-t,{forcePersist:!0})):"Home"===e.key?(e.preventDefault(),C(c,{forcePersist:!0})):"End"===e.key?(e.preventDefault(),C(j(),{forcePersist:!0})):"Enter"===e.key&&(e.preventDefault(),$())},[r,C,j,l,c,$,p]);return(0,s.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 r=Number.parseInt(t,10);return Number.isFinite(r)?r:null}catch{return null}}(u),t=C(e??o?.()??i,{persist:!1});null!==e&&e!==t&&gY(u,t)},[C,i,o,u]),(0,s.useEffect)(()=>{if(!g.current)return;C(p.current);let e=()=>{C(p.current)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[C,p]),(0,s.useEffect)(()=>{if(!v)return;let e=()=>{let e=x.current;e&&T(e.pointerId)},t=()=>{"visible"!==document.visibilityState&&e()};return window.addEventListener("blur",e),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("blur",e),document.removeEventListener("visibilitychange",t)}},[T,v]),(0,s.useEffect)(()=>()=>{let e=x.current;e&&(x.current=null,z(e))},[z]),{isResizing:v,panelRef:h,reclampWidth:L,separatorProps:{"aria-label":t,"aria-orientation":"vertical"===r?"horizontal":"vertical","aria-valuemax":b?j():d,"aria-valuemin":c,"aria-valuenow":f,"aria-valuetext":`${f} px`,onDoubleClick:$,onKeyDown:W,onLostPointerCapture:E,onPointerCancel:M,onPointerDown:R,onPointerMove:I,onPointerUp:N,role:"separator",tabIndex:0},width:f}}let gZ=null;async function gQ(e){if(!("serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window)||"granted"!==Notification.permission)return!1;if(gZ)return gZ;let t=(async()=>{try{let t=await fetch("/api/push/config");if(!t.ok)return!1;let{publicKey:r}=await t.json();if(!r)return!1;let n=await navigator.serviceWorker.ready,s=await n.pushManager.getSubscription();return s||(s=await n.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){let t="=".repeat((4-e.length%4)%4),r=atob((e+t).replace(/-/g,"+").replace(/_/g,"/")),n=new Uint8Array(r.length);for(let e=0;e<r.length;e+=1)n[e]=r.charCodeAt(e);return n}(r)})),(await fetch("/api/push/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:s.toJSON(),locale:e})})).ok}catch{return gZ=null,!1}})();return gZ=t,t.then(e=>{e||gZ!==t||(gZ=null)}),t}let g0="pi-web:tab-open-session";function g1(){try{return window.sessionStorage}catch{return null}}function g2(e){if("string"!=typeof e||0===e.length)return null;if(e.startsWith("{"))try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))return null;if("session"===t.kind&&"string"==typeof t.sessionId&&t.sessionId)return{kind:"session",sessionId:t.sessionId};if("new"===t.kind&&"string"==typeof t.cwd&&t.cwd.trim())return{kind:"new",cwd:t.cwd};return null}catch{return null}return{kind:"session",sessionId:e}}function g6(e,t){t.setItem(g0,JSON.stringify(e))}function g4(e,t){return t?(function(e){let t=function(e){let t=new Map(e.map(e=>[e.id,e])),r=new Map;for(let n of e){if(r.has(n.id))continue;let e=[],s=new Set,i=n.id,o=null;for(;;){if(r.has(i)){o=r.get(i)??null;break}if(s.has(i))break;s.add(i),e.push(i);let n=t.get(i);if(!n)break;if(n.relation?.kind!=="subagent"){o=n.id;break}i=n.relation.parentSessionId}for(let t of e)r.set(t,o)}return r}(e),r=new Map;for(let t of e)t.relation?.kind!=="subagent"&&r.set(t.id,{root:t,subagents:[],latestModified:t.modified});for(let n of e){if(n.relation?.kind!=="subagent")continue;let e=t.get(n.id),s=e?r.get(e):void 0;s&&(s.subagents.push(n),n.modified>s.latestModified&&(s.latestModified=n.modified))}return[...r.values()].sort((e,t)=>t.latestModified.localeCompare(e.latestModified))})(e).find(e=>e.root.id===t||e.subagents.some(e=>e.id===t))??null:null}let g5="pi-web:last-open-by-workspace";function g3(){try{return window.localStorage}catch{return null}}function g8(e){let t=e.getItem(g5);if(!t)return{};try{let e=JSON.parse(t);return null===e||"object"!=typeof e||Array.isArray(e)?{}:e}catch{return{}}}function g7(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g3();if(t)try{let r=g8(t);if(!(e in r))return;delete r[e],0===Object.keys(r).length?t.removeItem(g5):t.setItem(g5,JSON.stringify(r))}catch{}}function g9(e){return e.projectKey??e.projectRoot??e.cwd}function fe(){let e,t,r,d,c,u,p,h,x,g,f,m,v,y,b,k,j=(0,o.useRouter)(),w=(0,o.useSearchParams)(),[S,C]=(0,s.useState)(()=>a(w));(0,s.useEffect)(()=>{C(a(w))},[w]),(0,s.useMemo)(()=>S,[S]);let{isDark:z,toggleTheme:T}=eM();(0,s.useEffect)(()=>{let e=!1;return fetch("/api/settings/appearance",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{e||pt(t?.fontScale??1)}).catch(()=>{}),()=>{e=!0}},[]);let{locale:R,t:I}=(0,J.s)(),N=tu(),[M,E]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let e=window.matchMedia("(max-width: 480px)"),t=()=>E(e.matches);return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let[$,L]=(0,s.useState)(null),[W,A]=(0,s.useState)([]),P=(0,s.useCallback)(e=>{A(e),L(t=>{if(!t)return t;let r=e.find(e=>e.id===t.id);return r?{...t,...r,detailsPending:r.detailsPending,relation:r.relation,branch:r.branch,isWorktree:r.isWorktree}:t})},[]),F=(0,s.useMemo)(()=>$?[...W.filter(e=>e.id!==$.id),$]:W,[$,W]),D=(0,s.useMemo)(()=>g4(F,$?.id),[$?.id,F]),O=!!D?.subagents.length,[H,B]=(0,s.useState)(()=>new Set);(0,s.useCallback)(e=>{B(t=>t.size===e.size&&[...e].every(e=>t.has(e))?t:e)},[]);let[U,_]=(0,s.useState)(null),[K,q]=(0,s.useState)(null),V=(0,s.useRef)(0),G=(0,s.useRef)(null),Y=(0,s.useRef)(null),[X,Z]=(0,s.useState)(0),[Q,ee]=(0,s.useState)(0),[et,es]=(0,s.useState)(0),[ei,eo]=(0,s.useState)(!1),[ea,el]=(0,s.useState)("models"),[ed,ec]=(0,s.useState)(0),[eu,ep]=(0,s.useState)(null),[eh,ex]=(0,s.useState)(!1),[eg,ef]=(0,s.useState)(!1),[em,ev]=(0,s.useState)(null),[ey,eb]=(0,s.useState)(()=>!S.sidebarCollapsed),[ek,ej]=(0,s.useState)(!1),[ew,eS]=(0,s.useState)(!1),[eC,ez]=(0,s.useState)(!1),eT=ew&&eC&&!N;(0,s.useEffect)(()=>{(!ew||N)&&ez(!1)},[ew,N]);let[eR,eI]=(0,s.useState)(!1),[eN,e$]=(0,s.useState)(!1);(0,s.useEffect)(()=>{N&&eb(!1)},[N]),(0,s.useEffect)(()=>{e$(!0)},[]);let eL=(0,s.useRef)(null),eW=(0,s.useRef)(null),eA=(0,s.useRef)(null),eP=(0,s.useRef)(null),[eF,eD]=(0,s.useState)(null),[eO,eH]=(0,s.useState)(null),[eB,eU]=(0,s.useState)(null),e_=eE(),eK=function(){let{isDesktop:e,isMacOS:t}=eE(),r=(0,s.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?er():en())},[]);return e&&!t?{onMouseDown:r}:{}}(),[eq,eV]=(0,s.useState)([]),[eJ,eG]=(0,s.useState)(null),eY=(0,s.useRef)(null),eX=c6(eq),[eZ,eQ]=(0,s.useState)(null),e0=(0,s.useCallback)(e=>{eQ(e)},[]),[e1,e2]=(0,s.useState)(null),e6=(0,s.useCallback)(e=>{e2(e)},[]),[e4,e5]=(0,s.useState)(null),e3=(0,s.useRef)(null),e8=(0,s.useCallback)((e,t)=>{i9(t).then(()=>{e3.current&&clearTimeout(e3.current),e5(e),e3.current=setTimeout(()=>e5(null),1400)})},[]);(0,s.useEffect)(()=>()=>{e3.current&&clearTimeout(e3.current)},[]);let[e7,e9]=(0,s.useState)(null),te=(0,s.useCallback)(e=>{e9(e)},[]),[tt,tr]=(0,s.useState)(null),[tn,ts]=(0,s.useState)(null);(0,s.useEffect)(()=>{eX||tr(e=>"branches"===e?null:e)},[eX]),(0,s.useEffect)(()=>{O||tr(e=>"agents"===e?null:e)},[O]),(0,s.useEffect)(()=>{eT&&tr(null)},[eT]);let ti=(0,s.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];N&&eb(!1),tr(t=>t===e?null:e),N&&M&&t&&eI(!0)},[N,M]),[to,ta]=(0,s.useState)({kind:"idle"}),tl=(0,s.useRef)(null),td=(0,s.useRef)($?.id??null);td.current=$?.id??null;let[tc,tp]=(0,s.useState)(null),[th,tx]=(0,s.useState)(!1),tg=(0,s.useRef)(null),tf=(0,s.useRef)(0),tm=(0,s.useRef)(null),tv=(0,s.useRef)(new Set),ty=(0,s.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=tt!==e;if(ti(e,t),!r||th)return;let n=tg.current;if(!n)return;let s=++tf.current;tx(!0),n().catch(e=>{console.error("Failed to load system information:",e)}).finally(()=>{tf.current===s&&tx(!1)})},[tt,th,ti]),tb=(0,s.useCallback)(()=>{N&&eb(!1),tr("session")},[N]),tk=(0,s.useCallback)(()=>{N&&tr(null),eb(e=>!e)},[N]),tj=(0,s.useCallback)(()=>{eb(!1),tr(null),eI(e=>!e)},[]),tw=(0,s.useCallback)(()=>{N&&(eb(!1),tr(null),eI(!1)),eS(e=>!e)},[N]),tS=(0,s.useCallback)(()=>{tr(null),ez(e=>!e)},[]);(0,s.useEffect)(()=>{if(!eR)return;let e=e=>{let t=eL.current;t&&e.composedPath().includes(t)||eI(!1)},t=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),eI(!1))};return document.addEventListener("pointerdown",e,!0),document.addEventListener("keydown",t,!0),()=>{document.removeEventListener("pointerdown",e,!0),document.removeEventListener("keydown",t,!0)}},[eR]),(0,s.useEffect)(()=>{eI(!1)},[N,M,$?.id,K]),(0,s.useEffect)(()=>{let e=eP.current;if(!tt||!e)return;let t=()=>{let t=e.getBoundingClientRect();"agents"===tt?ts({top:t.bottom,left:t.left,width:Math.min(420,t.width)}):ts({top:t.bottom,left:t.left,width:t.width})};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[tt]);let[tC,tz]=(0,s.useState)([]),[tT,tR]=(0,s.useState)(null),tI=(0,s.useRef)(!1);(0,s.useEffect)(()=>{let e;if(!tI.current){tI.current=!0;try{e=function(e){try{let t=JSON.parse(e??"null");if(!uU(t))return{tabs:[],activeId:null,open:!1};let r=[],n=new Set;for(let e of Array.isArray(t.tabs)?t.tabs:[]){if(!uU(e))continue;let t="string"==typeof e.id?e.id:"",s="string"==typeof e.filePath?e.filePath:"",i="string"==typeof e.label?e.label:"",o="subagent"===e.kind,a="string"==typeof e.sessionId?e.sessionId:"";!(!t||!i||n.has(t))&&(o?a:s)&&(n.add(t),r.push({id:t,label:i,filePath:s,..."terminal"===e.kind?{kind:"terminal"}:{},...o?{kind:"subagent",sessionId:a}:{},..."string"==typeof e.sourceSessionId?{sourceSessionId:e.sourceSessionId}:{},..."diff"===e.initialDisplayMode?{initialDisplayMode:"diff"}:{}}))}let s="string"==typeof t.activeId&&r.some(e=>e.id===t.activeId)?t.activeId:r[r.length-1]?.id??null;return{tabs:r,activeId:s,open:!0===t.open&&r.length>0}}catch{return{tabs:[],activeId:null,open:!1}}}(localStorage.getItem(uB))}catch{return}0!==e.tabs.length&&(tz(e.tabs),tR(e.activeId),eS(e.open))}},[]),(0,s.useEffect)(()=>{if(tI.current)try{localStorage.setItem(uB,JSON.stringify({tabs:tC.filter(e=>!e.closing).map(e=>({id:e.id,label:e.label,filePath:e.filePath,...e.kind?{kind:e.kind}:{},...e.sessionId?{sessionId:e.sessionId}:{},...e.sourceSessionId?{sourceSessionId:e.sourceSessionId}:{},...e.initialDisplayMode?{initialDisplayMode:e.initialDisplayMode}:{}})),activeId:tT,open:ew}))}catch{}},[tC,tT,ew]);let[tN,tM]=(0,s.useState)(!1),[tE,t$]=(0,s.useState)([]),[tW,tP]=(0,s.useState)(()=>new Set);(0,s.useEffect)(()=>{if(!tN)return void t$(e=>0===e.length?e:[]);let e=!1,t=()=>{fetch("/api/sessions",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{!e&&t&&(t$(t.sessions??[]),tP(new Set(t.runningSessionIds??[])))}).catch(()=>{})};t();let r=setInterval(t,3e3);return()=>{e=!0,clearInterval(r)}},[tN,$?.id,X]);let tF=(0,s.useCallback)(async e=>{try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}`,{cache:"no-store"}),r=await t.json();if(!t.ok||!r.info)throw Error(r.error??`HTTP ${t.status}`);ro.current(r.info)}catch(e){console.error("[pi-web] failed to open session:",e instanceof Error?e.message:e)}},[]),tD=(0,s.useRef)(264),tH=(0,s.useRef)(gG(1366)),tB=(0,s.useCallback)(()=>gG(window.innerWidth),[]),tU=(0,s.useCallback)(()=>(function(e){let{viewportWidth:t,rightPanelOpen:r,rightPanelWidth:n}=e;if(t<=640)return 480;let s=t<960;return Math.min(480,t-(s?320:420)-(!s&&r?n:0))})({viewportWidth:window.innerWidth,rightPanelOpen:ew,rightPanelWidth:tH.current}),[ew]),t_=(0,s.useCallback)(()=>(function(e){let{viewportWidth:t,sidebarOpen:r,sidebarWidth:n}=e;return t<960?1200:Math.min(1200,t-420-(r?n:0))})({viewportWidth:window.innerWidth,sidebarOpen:ey,sidebarWidth:tD.current}),[ey]),tK=gX({ariaLabel:I("desktop.resizeSidebar"),cssVariable:"--sidebar-width",defaultWidth:264,getMaxWidth:tU,growthDirection:"right",maxWidth:480,minWidth:180,storageKey:"pi-sidebar-width",widthRef:tD}),tq=gX({ariaLabel:I("desktop.resizeFilePanel"),cssVariable:"--right-panel-width",defaultWidth:gG(1366),getDefaultWidth:tB,getMaxWidth:t_,growthDirection:"left",maxWidth:1200,minWidth:300,storageKey:"pi-right-panel-width",widthRef:tH}),tV=tK.reclampWidth,tJ=tq.reclampWidth;(0,s.useEffect)(()=>{ew&&(tV(),tJ())},[tJ,tV,ew]);let tG=(0,s.useCallback)((e,t)=>{eW.current?.insertText(nD(e,t))},[]),tY=(0,s.useCallback)(e=>{let t=e.map(e=>nD(e,!1)).join("");t&&eW.current?.insertText(t)},[]);(0,s.useCallback)((e,t,r)=>{let n,s,i,o;eW.current?.insertText((n=Math.max(1,Math.min(t,r)),s=Math.max(1,Math.max(t,r)),i=e.includes(" ")?`@"${e}"`:`@${e}`,o=n===s?`:${n}`:`:${n}-${s}`,`${i}${o} `))},[]);let[tX,tZ]=(0,s.useState)(()=>S.sessionId),[tQ,t0]=(0,s.useState)(null),[t1,t2]=(0,s.useState)(()=>S.requestedCwd?"validating":"idle"),[t6,t4]=(0,s.useState)(null),[t5,t3]=(0,s.useState)(()=>!tX);(0,s.useLayoutEffect)(()=>{var e;let t=(e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g1();if(!e)return null;try{return g2(e.getItem(g0))}catch{return null}}(),S.requestedCwd||S.sessionId||!e?S:"session"===e.kind?{...S,sessionId:e.sessionId}:{...S,requestedCwd:e.cwd});t!==S&&(C(t),t.sessionId&&t3(!1))},[S]);let t8=(0,s.useRef)(!1),t7=(0,s.useRef)(new Map),[t9,re]=(0,s.useState)(null),rt=(0,s.useRef)("");(0,s.useEffect)(()=>{let e=`${S.requestedCwd??""}|${S.sessionId??""}`;rt.current!==e&&(rt.current=e,tZ(S.sessionId),t3(!S.sessionId),S.requestedCwd||t2("idle"),t4(null))},[S]),(0,s.useEffect)(()=>{if($){!function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:g3();if(r)try{let n=g8(r);n[e]=t,r.setItem(g5,JSON.stringify(n))}catch{}}($.projectKey??G.current??g9($),$.id),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g1();if(t&&e)try{g6({kind:"session",sessionId:e},t)}catch{}}($.id);return}U&&function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g1(),r=e.trim();if(t&&r)try{g6({kind:"new",cwd:r},t)}catch{}}(U)},[U,$]),(0,s.useEffect)(()=>{let e=S.requestedCwd;if(!e)return;let t=new AbortController;return t2("validating"),t4(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}`);t8.current=!0,_(t.cwd),t2("ready"),new URLSearchParams(window.location.search).get("cwd")||j.replace(`?cwd=${encodeURIComponent(t.cwd)}`,{scroll:!1})}).catch(e=>{t.signal.aborted||(t4(e instanceof Error?e.message:String(e)),t2("error"))}),()=>t.abort()},[S,j]),(0,s.useCallback)((e,t)=>{let r=++V.current,n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g3();if(!t)return null;try{let r=g8(t)[e];return"string"==typeof r&&r.length>0?r:null}catch{return null}}(e);if(!n)return;let s=s=>{if(r!==V.current)return;let i=s?.sessions.find(e=>e.id===n);if(!i){s&&g7(e);return}if(g9(i)!==e)return void g7(e);let o=Y.current;o&&function(e,t){if(e===t)return nR(t);let r=nR(e)??null,n=nR(t);if(nN(e),!r)return;let s=n?nM(n.value,n.images,r.value,r.images,n.pastedBlocks,r.pastedBlocks):r;nI(t,s),nT(s)}(o,`parked-new:${t}`),Y.current=null,L(i),ee(e=>e+1),new URLSearchParams(window.location.search).get("session")!==i.id&&j.replace(`?session=${encodeURIComponent(i.id)}`,{scroll:!1})};W.length>0?s({sessions:W}):fetch("/api/sessions").then(e=>e.ok?e.json():null).then(s).catch(()=>{})},[j,W]);let rr=(0,s.useCallback)(()=>{V.current+=1},[]),rn=(0,s.useCallback)((e,t,r)=>{if(rr(),t0(e),!e)return;if(t0(e),t8.current&&$&&tO($.projectRoot??$.cwd,t??e)){if(t8.current=!1,$){let e=$.projectRoot??$.cwd;e&&t7.current.set(e,$.id)}return}t8.current=!1;let n=t??e;if($&&tO($.projectRoot??$.cwd,n)){($.projectRoot??$.cwd)&&t7.current.set(n,$.id);return}if($){let e=$.projectRoot??$.cwd;e&&t7.current.set(e,$.id)}L(null),_(t=>t&&t!==e?null:t),ee(e=>e+1),eQ(null),tr(null),window.history.replaceState(null,"","/");let s=t7.current.get(n);re(s?{projectRoot:n,sessionId:s}:null)},[$]);(0,s.useEffect)(()=>{let e=tQ?tL(tQ)||tQ:null;document.title=e?`${e} — Pi Agent Web`:"Pi Agent Web"},[tQ]);let rs=(0,s.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t||re(null),!t&&$){let t=tO($.projectRoot??$.cwd,e.projectRoot??e.cwd);if($.id===e.id&&t){N&&eb(!1);return}}let r=e.projectRoot??e.cwd;r&&t7.current.set(r,e.id),_(null),L(e),ee(e=>e+1),eQ(null),t3(!0),N&&!t&&eb(!1),t&&(t8.current=!0),t&&new URLSearchParams(window.location.search).get("session")===e.id||j.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1})},[N,$]),ro=(0,s.useRef)(()=>{});(0,s.useEffect)(()=>{ro.current=rs},[rs]);let ra=(0,s.useRef)(null),rl=(0,s.useCallback)(()=>{ra.current?.()},[]),rd=(0,s.useCallback)(e=>{eY.current?.(e)},[]),rc=(0,s.useCallback)(e=>{let{targetSession:t,title:r,body:n,tag:s}=e;if(!("Notification"in window))return;let i=()=>{nd({title:r,body:n,sessionUrl:t?`/?session=${encodeURIComponent(t.id)}`:"/",tag:s,onClick:()=>{window.focus(),t&&rs(t)}})};"granted"===Notification.permission?(i(),gQ(R)):"default"===Notification.permission&&Notification.requestPermission().then(e=>{"granted"===e&&(i(),gQ(R))})},[rs,R]);(0,s.useCallback)(e=>{var t;$?.relation?.kind!=="subagent"&&nl()&&(t=tv.current,!(!function(e){switch(e.method){case"select":case"confirm":case"input":case"editor":return!0;case"custom":return!0!==e.closed;default:return!1}}(e)||t.has(e.id))&&(t.add(e.id),1)&&rc({targetSession:$,title:I("i18n.attentionNeeded"),body:"custom"===e.method?I("i18n.extensionInputNeeded"):e.title,tag:`pi-extension-ui:${e.id}`}))},[rc,$,I]);let ru=(0,s.useCallback)(async()=>{let e=$?.id;if(e&&"naming"!==to.kind){tl.current&&clearTimeout(tl.current),tr(null),ta({kind:"naming"});try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/auto-name`,{method:"POST"}),r=await t.json().catch(()=>({}));if(!t.ok||!r.title)throw Error(r.error||`HTTP ${t.status}`);let n=r.title.trim();if(Z(e=>e+1),td.current!==e)return;L(t=>t?.id===e?{...t,name:n}:t),e2(t=>t?.sessionId===e?{...t,sessionName:n}:t),ta({kind:"success"}),tl.current=setTimeout(()=>ta({kind:"idle"}),1800)}catch(t){if(td.current!==e)return;ta({kind:"error",message:t instanceof Error?t.message:String(t)}),tl.current=setTimeout(()=>ta({kind:"idle"}),5e3)}}},[to.kind,$?.id]);(0,s.useEffect)(()=>{tl.current&&clearTimeout(tl.current),ta({kind:"idle"})},[$?.id]),(0,s.useCallback)(()=>{es(e=>e+1)},[]);let rp=(0,s.useCallback)(()=>{t3(!0)},[]),rh=(0,s.useCallback)(e=>{if(Z(e=>e+1),$?.id===e){!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g1();if(t&&e)try{let r=g2(t.getItem(g0));if(r?.kind!=="session"||r.sessionId!==e)return;t.removeItem(g0)}catch{}}(e);let t=$.cwd;L(null),_(t??null),ee(e=>e+1),eQ(null),tr(null),window.history.replaceState(null,"","/")}},[j,$]),rx=(0,s.useCallback)(e=>{fetch("/api/sessions").then(e=>e.ok?e.json():null).then(t=>{let r=t?.sessions.find(t=>t.id===e);r&&L(t=>!t||t.id!==e||t.projectRoot&&t.name?t:r)}).catch(()=>{})},[]),rg=(0,s.useCallback)((e,t)=>{Z(e=>e+1),Y.current===t&&(rr(),Y.current=null,_(null),L(e),rx(e.id),j.replace(`?session=${encodeURIComponent(e.id)}`,{scroll:!1}))},[rr,j,rx]),rf=(0,s.useCallback)(e=>{rr(),Y.current=null,Z(e=>e+1),ee(e=>e+1),_(null),L(t=>({...t??{path:"",cwd:"",created:"",modified:"",messageCount:0,firstMessage:""},id:e,transient:!1})),rx(e),j.replace(`?session=${encodeURIComponent(e)}`,{scroll:!1})},[rr,j,rx]),rm=(0,s.useCallback)(()=>{Z(e=>e+1),es(e=>e+1),$&&rx($.id),$?.relation?.kind!=="subagent"&&nl()&&rc({targetSession:$,title:$?.name??I("i18n.sessionComplete"),body:I("i18n.taskFinished"),tag:$?`pi-session-complete:${$.id}`:"pi-session-complete"})},[rc,rx,$,I]);(0,s.useEffect)(()=>{if(!t9)return;let{projectRoot:e,sessionId:t}=t9;ro.current({path:"",id:t,cwd:e,created:"",modified:"",messageCount:0,firstMessage:"",projectRoot:e},!0),rx(t),window.history.replaceState(null,"",`?session=${encodeURIComponent(t)}`),re(null)},[t9,rx]);let rv=(0,s.useCallback)((e,t)=>{re(null),L(null),_(t),ee(e=>e+1),eQ(null),tr(null),N&&eb(!1),q(null),j.replace(`?cwd=${encodeURIComponent(t)}`,{scroll:!1})},[j,N]);!function(e){let{onNewSession:t,activeCwd:r,onOpenCommandPalette:n,commandPaletteOpen:i}=e;(0,s.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&("k"===e.key||"K"===e.key||e.shiftKey&&("p"===e.key||"P"===e.key))){if(!n)return;e.preventDefault(),n();return}if("Escape"===e.key){if(i||!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(!r||!t)return;e.preventDefault(),t(r)}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[r,t,n,i])}({onNewSession:e=>rv(`kb-${Date.now()}`,e),activeCwd:tQ,onOpenCommandPalette:()=>ej(e=>!e),commandPaletteOpen:ek});let ry=(0,s.useCallback)((e,t,r,n)=>{let s="string"==typeof r||null===r?r:r?.sourceSessionId??void 0,i=("object"==typeof r&&null!==r?r:n)??{},o=`file:${e}`;tz(r=>(function(e,t){let r=e.find(e=>e.id===t.tabId);if(!r)return[...e,{id:t.tabId,label:t.fileName,filePath:t.filePath,sourceSessionId:t.sourceSessionId,initialDisplayMode:t.modeHint,page:t.page,viewerState:t.modeHint?{displayMode:t.modeHint,wrapLines:!1,scrollTop:0,scrollLeft:0}:void 0,viewerRevision:0}];let n=!!(t.sourceSessionId&&r.sourceSessionId!==t.sourceSessionId),s=r.page!==t.page;return n||t.modeHint||s?e.map(e=>{if(e.id!==t.tabId)return e;let r={...e},i=!1;return n&&(r.sourceSessionId=t.sourceSessionId,i=!0),s&&(r.page=t.page,i=!0),t.modeHint&&(r.initialDisplayMode=t.modeHint,r.viewerState={displayMode:t.modeHint,wrapLines:e.viewerState?.wrapLines??!1,scrollTop:0,scrollLeft:0},i=!0),i&&(r.viewerRevision=(e.viewerRevision??0)+1),r}):e})(r,{fileName:t,filePath:e,modeHint:i.initialDisplayMode,page:i.page,sourceSessionId:s,tabId:o})),tR(o),eS(!0),N&&eb(!1)},[N]),rb=(0,s.useCallback)((e,t)=>{ry(e,tL(e),{sourceSessionId:$?.id??null,page:t})},[ry,$?.id]),rk=(0,s.useMemo)(()=>{let e=new Map;for(let t of tE){if(t.relation?.kind!=="subagent")continue;let r=t.relation;e.set(t.id,{status:tW.has(t.id)?"running":r.status,...r.createdAt?{createdAt:r.createdAt}:{},...r.completedAt?{completedAt:r.completedAt}:{}})}return e},[tE,tW]),rj=(0,s.useCallback)((e,t)=>{let r=`subagent:${e}`;tz(n=>n.some(e=>e.id===r)?n:[...n,{id:r,label:t,filePath:"",kind:"subagent",sessionId:e}]),tR(r),eS(!0),N&&eb(!1)},[N]),rw=(0,s.useCallback)(e=>{tz(t=>{let r=t.filter(t=>t.id!==e);return 0===r.length&&eS(!1),r}),tR(t=>{if(t!==e)return t;let r=tC.filter(t=>t.id!==e);return r.length>0?r[r.length-1].id:null})},[tC]),rS=(0,s.useCallback)(e=>{es(e=>e+1),ry(e,tL(e))},[ry]),rT=(0,s.useCallback)((e,t)=>{es(e=>e+1);let r=e.endsWith("/")?e:e+"/",n=n=>n===e||t&&n.startsWith(r);tz(e=>{let t=e.filter(e=>!n(e.filePath));return 0===t.length&&eS(!1),t}),tR(e=>{if(!e)return e;let t=tC.find(t=>t.id===e);if(!t||!n(t.filePath))return e;let r=tC.filter(e=>!n(e.filePath));return r.length>0?r[r.length-1].id:null})},[tC]),rR=$?ri({name:$.name||e1?.sessionName||void 0,firstMessage:$.firstMessage,id:$.id},($.cwd??tQ??"").replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()):(e=tQ??U)?e.replace(/[\\/]+$/,"").split(/[\\/]/).filter(Boolean).pop()||e:null,rI=(0,s.useCallback)(()=>{$&&window.open(`/api/sessions/${encodeURIComponent($.id)}/export?inline=1`,"_blank","noopener,noreferrer")},[$]),rN=U??(null===$&&tQ?tQ:null),rM="validating"!==t1&&"error"!==t1&&(null!==$||null!==rN),rE=$?.cwd??rN,[r$,rL]=(0,s.useState)(!1),rW=(0,s.useCallback)(()=>{N||rL(e=>!e)},[N]),[rA,rP]=(0,s.useState)(!0);(0,s.useEffect)(()=>{let e=!1,t=()=>fetch("/api/features").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&"boolean"==typeof t.tasksBoard&&(rP(t.tasksBoard),t.tasksBoard||rL(!1))}).catch(()=>{});t();let r=()=>t();return window.addEventListener("pi:features-changed",r),()=>{e=!0,window.removeEventListener("pi:features-changed",r)}},[]);let rF=t5&&!rM;(0,s.useEffect)(()=>{let e=()=>{N||rL(!0)};return window.addEventListener(uL,e),()=>window.removeEventListener(uL,e)},[N]),(0,s.useEffect)(()=>{if(ep(null),ex(!1),ev(null),!rE)return;let e=new AbortController;return fetch(`/api/project-trust?cwd=${encodeURIComponent(rE)}`,{signal:e.signal}).then(async e=>{let t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);ep(t)}).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||console.error("Failed to load project trust:",e)}),()=>e.abort()},[rE]);let rD=(0,s.useCallback)(async()=>{if(rE&&!eg){ef(!0),ev(null);try{let e=await fetch("/api/project-trust",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:rE})}),t=await e.json();if(!e.ok||t.error)throw Error(t.error??`HTTP ${e.status}`);ep(t),ex(!1),ec(e=>e+1),ee(e=>e+1)}catch(e){ev(e instanceof Error?e.message:String(e))}finally{ef(!1)}}},[eg,rE]),rO=tC.find(e=>e.id===tT)??null,rH=tQ??$?.cwd??U,rB=(0,s.useCallback)(e=>{el(e),eo(!0)},[]),rU=(0,s.useMemo)(()=>(function(e){let{t}=e;return[{id:"new-session",section:"suggested",title:t("palette.cmd.newSession"),icon:di.A,keywords:["new","task","session","新建"],run:e.onNewSession},{id:"toggle-sidebar",section:"panels",title:t("palette.cmd.toggleSidebar"),icon:da.A,keywords:["sidebar","侧边栏"],run:e.onToggleSidebar},{id:"cycle-sidebar-form",section:"panels",title:t("palette.cmd.sidebarForm"),icon:rC.A,keywords:["sidebar","form","形态","列表","面板"],run:e.onCycleSidebarForm},{id:"toggle-right-panel",section:"panels",title:t("palette.cmd.toggleRightPanel"),icon:dl.A,keywords:["panel","right","面板"],run:e.onToggleRightPanel},{id:"toggle-task-board",section:"panels",title:t("palette.cmd.toggleTasks"),icon:rz.A,keywords:["tasks","board","任务","看板"],run:e.onToggleTasks},{id:"toggle-theme",section:"configure",title:t("palette.cmd.toggleTheme"),icon:e.isDark?dd.A:dc.A,keywords:["theme","dark","light","主题"],run:e.onToggleTheme},{id:"open-settings",section:"configure",title:t("palette.cmd.openSettings"),icon:du.A,keywords:["settings","设置"],run:e.onOpenSettings}]})({onNewSession:()=>rv("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`palette-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,tQ??""),onCycleSidebarForm:rl,onToggleSidebar:()=>eb(e=>!e),onToggleRightPanel:()=>eS(e=>!e),onToggleTasks:rW,onToggleTheme:T,onOpenSettings:()=>rB("models"),isDark:z,t:I}),[rv,tQ,rl,T,rB,z,I,rW]),r_=(0,n.jsx)(n.Fragment,{children:(0,n.jsx)(ch,{selectedSessionId:$?.id??null,onSelectSession:rs,onNewSession:rv,initialSessionId:tX,onInitialRestoreDone:rp,refreshKey:X,onSessionDeleted:rh,selectedCwd:$?.cwd??U??null,onCwdChange:rn,onOpenFile:ry,selectedFilePath:rO?.filePath||null,selectedSessionStats:e1,onOpenSettings:e=>{rB(e??"models")},onToggleTasks:rW,showTasks:r$,tasksBoardEnabled:rA,explorerRefreshKey:et,onAtMention:tG,onAtMentions:tY,onFileCreated:rS,onFileDeleted:rT,workspaceControlsHosts:{title:eF,welcome:eB,titleRight:eO},showWorkspaceControls:!0,onOpenCommandPalette:()=>ej(!0),cycleSidebarFormRef:ra,onSessionsLoaded:P})}),rK=e=>rM&&eu?.requiresTrust&&!eu.trusted?(0,n.jsxs)("button",{type:"button",onClick:()=>{ev(null),ex(!0)},title:I("trust.resourcesNotLoaded"),"aria-label":I("trust.resourcesNotLoaded"),style:{display:"flex",alignItems:"center",justifyContent:e?"flex-start":"center",gap:6,width:e?"100%":void 0,minHeight:e?32:void 0,height:e?void 0:"100%",padding:e?"6px 12px":"0 12px",background:e?"color-mix(in srgb, #d97706 8%, var(--bg-panel))":"none",border:"none",borderRight:e?"none":"1px solid var(--border)",borderBottom:e?"1px solid var(--border)":"none",color:"#d97706",cursor:"pointer",flexShrink:0,fontSize:11,lineHeight:1.35,textAlign:"left"},"data-mobile-trust-banner":e?"true":void 0,children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",style:{flexShrink:0},children:[(0,n.jsx)("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z"}),(0,n.jsx)("path",{d:"M12 8v4"}),(0,n.jsx)("path",{d:"M12 16h.01"})]}),(0,n.jsx)("span",{children:I("trust.resourcesNotLoaded")})]}):null,rq=e=>{let t,r,s,i,o,a;return e||rM?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"stretch",height:"100%"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{rI(),e&&M&&eI(!0)},disabled:!$,title:$?I("history.full"):I("history.unsaved"),"aria-label":I("history.full"),style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:$?"var(--text-muted)":"var(--text-dim)",cursor:$?"pointer":"not-allowed",opacity:$?1:.45,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{$&&(e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=$?"var(--text-muted)":"var(--text-dim)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"history":void 0,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:$?"var(--text-muted)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),(0,n.jsx)("path",{d:"M3 3v5h5"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}),!e&&(0,n.jsx)("span",{children:I("history.label")})]}),(t=!!($&&((e1?.userMessages??0)>0||$.messageCount>0)),r=!$||$.transient||!t||"naming"===to.kind,s="success"===to.kind,i="error"===to.kind,o="naming"===to.kind?I("title.generating"):s?I("title.updated"):i?I("title.failed"):I("title.generate"),a=!$||$.transient?I("title.unsaved"):t?i?to.message:I("title.generateSession"):I("title.noMessages"),(0,n.jsxs)("button",{type:"button",onClick:()=>{ru(),e&&M&&eI(!0)},disabled:r,title:a,"aria-label":o,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"none",border:"none",borderTop:"2px solid transparent",borderRight:"1px solid var(--border)",color:i?"#dc2626":s?"var(--accent)":r?"var(--text-dim)":"var(--text-muted)",cursor:r?"not-allowed":"pointer",opacity:r&&"naming"!==to.kind?.45:1,flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s, opacity 0.1s"},onMouseEnter:e=>{r||(e.currentTarget.style.color=i?"#dc2626":"var(--text)",e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{e.currentTarget.style.color=i?"#dc2626":s?"var(--accent)":r?"var(--text-dim)":"var(--text-muted)",e.currentTarget.style.background="none"},"data-mobile-toolbar-action":e?"name":void 0,children:["naming"===to.kind?(0,n.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):s?(0,n.jsx)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"m15 4 5 5L7 22l-5-5Z"}),(0,n.jsx)("path",{d:"m14 5 5 5"}),(0,n.jsx)("path",{d:"M6 4V2M5 3H3M19 19v3M17.5 20.5h3"})]}),!e&&(0,n.jsx)("span",{children:o})]})),O&&(0,n.jsxs)("button",{type:"button",onClick:()=>ti("agents",e),title:I("agentSwitcher.title"),"aria-label":I("agentSwitcher.title"),"aria-pressed":"agents"===tt,style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"agents"===tt?"var(--bg-selected)":"none",border:"none",borderTop:"agents"===tt?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"agents"===tt?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},"data-mobile-toolbar-action":e?"agents":void 0,children:[(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.9",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,n.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]}),!e&&(0,n.jsx)("span",{children:I("agentSwitcher.title")}),(0,n.jsx)("span",{"aria-hidden":"true",style:{minWidth:15,height:15,padding:"0 4px",display:"grid",placeItems:"center",borderRadius:7,background:"var(--bg-selected)",color:"var(--accent)",fontSize:10,lineHeight:1,fontVariantNumeric:"tabular-nums",...e?{position:"absolute",top:2,right:2,minWidth:13,height:13,padding:"0 3px",fontSize:9}:{}},children:D.subagents.length})]}),eX&&(e?(0,n.jsx)("button",{type:"button",onClick:()=>ti("branches",!0),title:I("i18n.branches"),"aria-label":I("i18n.branches"),"aria-pressed":"branches"===tt,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:"100%",padding:0,background:"branches"===tt?"var(--bg-selected)":"none",border:"none",borderTop:"branches"===tt?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",color:"branches"===tt?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0},"data-mobile-toolbar-action":"branches",children:(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:eq.length>0?"var(--accent)":"var(--text-dim)"},"aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]})}):(0,n.jsx)(c5,{tree:eq,activeLeafId:eJ,onLeafChange:rd,inline:!0,containerRef:eA,open:"branches"===tt,onToggle:()=>ti("branches"),hasSession:!0})),(0,n.jsxs)("button",{ref:tm,type:"button",onClick:()=>ty("system",e),disabled:e&&!rM,title:I("system.prompt"),"aria-label":I("system.prompt"),"aria-pressed":"system"===tt,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"system"===tt?"var(--bg-selected)":"none",border:"none",borderTop:"system"===tt?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!rM?"not-allowed":"pointer",color:"system"===tt?"var(--text)":"var(--text-muted)",opacity:e&&!rM?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||rM)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="system"===tt?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"system":void 0,children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:eZ?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),(0,n.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,n.jsx)("line",{x1:"8",y1:"13",x2:"16",y2:"13"}),(0,n.jsx)("line",{x1:"8",y1:"17",x2:"13",y2:"17"})]}),!e&&(0,n.jsx)("span",{children:I("system.label")})]}),(0,n.jsxs)("button",{type:"button",onClick:()=>ty("tools",e),disabled:e&&!rM,title:I("tools.title"),"aria-label":I("tools.title"),"aria-pressed":"tools"===tt,style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,width:e?36:void 0,height:"100%",padding:e?0:"0 12px",background:"tools"===tt?"var(--bg-selected)":"none",border:"none",borderTop:"tools"===tt?"2px solid var(--accent)":"2px solid transparent",borderRight:"1px solid var(--border)",cursor:e&&!rM?"not-allowed":"pointer",color:"tools"===tt?"var(--text)":"var(--text-muted)",opacity:e&&!rM?.45:1,fontSize:11,whiteSpace:"nowrap",transition:"color 0.1s, background 0.1s"},onMouseEnter:t=>{(!e||rM)&&(t.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="tools"===tt?"var(--text)":"var(--text-muted)"},"data-mobile-toolbar-action":e?"tools":void 0,children:[(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{color:tc?.some(e=>e.active)?"var(--accent)":"var(--text-dim)",flexShrink:0},"aria-hidden":"true",children:(0,n.jsx)("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z"})}),!e&&(0,n.jsx)("span",{children:I("tools.label")})]})]}):null};return(0,n.jsxs)(gx,{children:[(0,n.jsx)("style",{children:`
|
|
227
|
+
@media (max-width: 640px) {
|
|
228
|
+
.sidebar-overlay-backdrop.sidebar-mobile-pending {
|
|
229
|
+
opacity: 0 !important;
|
|
230
|
+
pointer-events: none !important;
|
|
231
|
+
}
|
|
232
|
+
.sidebar-container.sidebar-mobile-pending.sidebar-open {
|
|
233
|
+
transform: translateX(-100%);
|
|
234
|
+
box-shadow: none;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
`}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"row",height:"var(--app-viewport-height)",overflow:"hidden",background:"var(--bg-panel)"},children:[(0,n.jsxs)("div",{ref:tK.panelRef,id:"session-sidebar",inert:eT,className:`sidebar-container${ey?" sidebar-open":" sidebar-closed"}${eN?"":" sidebar-mobile-pending"}${tK.isResizing?" sidebar-resizing":""}`,style:{"--sidebar-width":`${tK.width}px`,display:"flex",flexDirection:"column",flexShrink:0,zIndex:200},children:[e_?.isMacOS&&(0,n.jsx)("div",{...e_.dragRegionProps,...eK,"aria-hidden":"true",style:{height:48,flexShrink:0}}),r_]}),ey&&(0,n.jsx)("div",{...tK.separatorProps,inert:eT,"aria-controls":"session-sidebar",className:`panel-resize-handle sidebar-resize-handle${tK.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar",title:`${I("layout.resizeSidebar")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{className:"app-main-region",style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0,position:"relative",background:"var(--bg)"},children:[(0,n.jsx)(cp,{topBarRef:eA,sidebarOpen:ey,onSidebarToggle:tk,isDark:z,toggleTheme:T,isMobile:N,showTasks:r$,tasksBoardEnabled:rA,onToggleTasks:rW,systemPrompt:eZ,activeTopPanel:tt,topPanelPos:tn,sessionStats:e1,selectedSession:$,contextUsage:e7,copiedSessionField:e4,onCopySessionField:e8,rightPanelOpen:ew,onToggleFilePanel:()=>eS(e=>!e),onRefreshSession:()=>ee(e=>e+1),sessionTitle:rR,onWorkspaceControlsHostChange:eD,onTitleRightHostChange:eH,desktopChrome:e_,windowDrag:eK}),rM&&eu?.requiresTrust&&!eu.trusted&&(0,n.jsxs)("button",{type:"button",onClick:()=>{ev(null),ex(!0)},title:I("desktop.projectResourcesRestricted"),"aria-label":I("desktop.projectResourcesRestricted"),style:{position:"fixed",top:60,right:N?12:20,zIndex:700,display:"inline-flex",alignItems:"center",gap:7,padding:"8px 11px",border:"1px solid color-mix(in srgb, var(--accent-orange) 52%, var(--border))",borderRadius:7,background:"color-mix(in srgb, var(--accent-orange) 11%, var(--bg-panel))",color:"var(--accent-orange)",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.16)",cursor:"pointer",fontSize:12,fontWeight:600},children:[(0,n.jsx)("span",{"aria-hidden":"true",children:"⚠"}),I("desktop.trustProject")]}),(0,n.jsxs)("div",{style:{"--right-panel-width":`${tq.width}px`,flex:1,display:"flex",overflow:"hidden",minWidth:0,position:"relative"},children:[(0,n.jsx)("div",{className:`sidebar-overlay-backdrop${eN?"":" sidebar-mobile-pending"}`,onClick:()=>eb(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!ey,pointerEvents:ey?"auto":"none",transition:"opacity 0.25s ease"}}),(0,n.jsxs)("div",{inert:eT,style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,n.jsxs)("div",{ref:eP,style:{flexShrink:0},children:[!N&&rK(!1),(0,n.jsxs)("div",{style:{display:"none",alignItems:"center",position:"relative",borderBottom:"1px solid var(--border)",height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)"},children:[(0,n.jsx)("button",{onClick:tk,title:ey?I("sidebar.hide"):I("sidebar.show"),"aria-label":ey?I("sidebar.hide"):I("sidebar.show"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",borderRight:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:ey?(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,n.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,n.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,n.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),N&&(0,n.jsxs)("div",{ref:eL,"data-mobile-toolbar":"true",style:{position:"relative",display:"flex",alignItems:"stretch",flex:1,minWidth:0,height:"100%"},children:[M&&(0,n.jsx)("button",{type:"button",onClick:tj,title:eR?I("chat.close"):I("chat.moreControls"),"aria-label":eR?I("chat.close"):I("chat.moreControls"),"aria-controls":"mobile-toolbar-actions","aria-expanded":eR,"data-mobile-toolbar-more":"true",style:{position:"relative",zIndex:eR?21:void 0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:eR?"var(--bg-selected)":"none",border:"none",borderRight:"1px solid var(--border)",color:eR?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:eR?(0,n.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"5",x2:"19",y2:"19"}),(0,n.jsx)("line",{x1:"19",y1:"5",x2:"5",y2:"19"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),!M&&rq(!0),(e=>{if(!e&&(!rM||!e1&&!e7))return null;let t=e1?.tokens,r=e1?.cost??0,s=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e),i=r>0?r>=.01?`$${r.toFixed(2)}`:"<$0.01":null,o="var(--text-muted)",a=null,l=null;if(e7?.contextWindow){let e=e7.percent;null!==e&&e>90?o="#ef4444":null!==e&&e>70&&(o="rgba(234,179,8,0.95)"),a=null!==e?`${e.toFixed(0)}% / ${s(e7.contextWindow)}`:`? / ${s(e7.contextWindow)}`,l=null!==e?`${e.toFixed(0)}%`:null}let d=[];if(t&&(d.push(`in: ${t.input.toLocaleString(R)}`),d.push(`out: ${t.output.toLocaleString(R)}`),d.push(`cache read: ${t.cacheRead.toLocaleString(R)}`),d.push(`cache write: ${t.cacheWrite.toLocaleString(R)}`),r>0&&d.push(`cost: $${r.toFixed(4)}`)),e7?.contextWindow){let e=e7.percent;d.push(`context: ${null!==e?e.toFixed(1)+"%":"unknown"} of ${e7.contextWindow.toLocaleString()} tokens`)}let c=d.join(" | "),u=e&&M&&eR,p=!!(t&&(t.input>0||t.output>0)||i||l);return(0,n.jsx)("button",{type:"button",onClick:()=>ti("session"),disabled:!rM||u,tabIndex:u?-1:void 0,title:c||I("session.title"),"aria-label":I("session.title"),"aria-pressed":"session"===tt,"aria-hidden":!!u||void 0,className:e?"mobile-session-stats":void 0,"data-mobile-toolbar-stats":e?"true":void 0,style:{marginLeft:e?0:"auto",display:"flex",alignItems:"center",justifyContent:"flex-end",flex:e?1:void 0,minWidth:0,gap:e?7:10,paddingLeft:e?6:12,paddingRight:e?6:12,height:"100%",overflow:"hidden",visibility:u?"hidden":"visible",pointerEvents:u?"none":"auto",background:"session"===tt?"var(--bg-selected)":"none",border:"none",borderTop:"session"===tt?"2px solid var(--accent)":"2px solid transparent",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:rM?"pointer":"default",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{rM&&!u&&(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="session"===tt?"var(--text)":"var(--text-muted)"},children:e?(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),s(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),s(t.output)]}),i&&(0,n.jsx)("span",{className:"mobile-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:i}),l&&(0,n.jsx)("span",{style:{color:o,flexShrink:0},children:l}),!p&&rM&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-dim)"},children:I("session.title")})]}):(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),s(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),s(t.output)]}),t&&t.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,n.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),s(t.cacheRead)]}),i&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:i}),a&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:o},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),a]})]})})})(!0),(t=M&&eR,(0,n.jsx)("button",{type:"button",onClick:tw,disabled:t,tabIndex:t?-1:void 0,"aria-controls":"file-panel","aria-expanded":ew,"aria-hidden":!!t||void 0,title:ew?I("files.hidePanel"):I("files.showPanel"),"aria-label":ew?I("files.hidePanel"):I("files.showPanel"),"data-mobile-toolbar-file":"true",style:{marginLeft:0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,visibility:t?"hidden":"visible",pointerEvents:t?"none":"auto",background:ew?"var(--bg-selected)":"none",border:"none",borderLeft:"1px solid var(--border)",color:ew?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{t||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color=ew?"var(--text)":"var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})),M&&eR&&(0,n.jsx)("div",{id:"mobile-toolbar-actions",role:"toolbar","aria-label":I("chat.moreControls"),"data-mobile-toolbar-actions":"true",style:{position:"absolute",top:0,right:0,bottom:0,left:36,zIndex:20,display:"flex",alignItems:"stretch",background:"color-mix(in srgb, var(--bg-panel) 94%, var(--bg))",boxShadow:"4px 0 18px rgba(0,0,0,0.12)",backdropFilter:"blur(10px)"},children:rq(!0)})]}),N&&eX&&(0,n.jsx)(c5,{tree:eq,activeLeafId:eJ,onLeafChange:rd,inline:!0,compact:!0,containerRef:eA,open:"branches"===tt,onToggle:()=>ti("branches"),hasSession:rM,hideInlineButton:!0}),N&&tt&&tn&&(0,n.jsxs)("div",{style:{position:"fixed",top:tn.top,left:tn.left,width:tn.width,maxHeight:`calc(100dvh - ${tn.top}px)`,overflowY:"auto",zIndex:500},children:["agents"===tt&&D&&$&&(0,n.jsx)(aZ,{rootSession:D.root,subagents:D.subagents,selectedSessionId:$.id,runningSessionIds:H,onSelectSession:rs}),"system"===tt&&(0,n.jsx)(gV,{loading:th,prompt:eZ,translate:I}),"tools"===tt&&(0,n.jsx)(gt,{loading:th,tools:tc,translate:I}),"session"===tt&&(0,n.jsx)("div",{className:"session-info-popover",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:e1?(r=e1.totalActiveMs??0,d=[...e1.sessionName?[{label:I("session.name"),value:e1.sessionName,copyField:null}]:[],{label:I("session.file"),value:e1.sessionFile??I("session.inMemory"),copyField:"file"},{label:I("session.id"),value:e1.sessionId,copyField:"id"},...r>0?[{label:I("session.totalActive"),value:(e=>{if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),s=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${s}s`:`${s}s`})(r),copyField:null}]:[]],c=[...$?[{label:I("session.projectDir"),value:$.projectRoot??$.cwd,copyField:"projectDir"}]:[],...$?.branch?[{label:I("session.gitBranch"),value:$.branch,copyField:"gitBranch"}]:[],...$?.isWorktree?[{label:I("session.gitWorktree"),value:$.cwd,copyField:"gitWorktree"}]:[]],u=[[I("session.user"),e1.userMessages.toLocaleString(R)],[I("session.assistant"),e1.assistantMessages.toLocaleString(R)],[I("session.toolCalls"),e1.toolCalls.toLocaleString(R)],[I("session.toolResults"),e1.toolResults.toLocaleString(R)],[I("session.total"),e1.totalMessages.toLocaleString(R)]],p=[[I("session.input"),e1.tokens.input.toLocaleString(R)],[I("session.output"),e1.tokens.output.toLocaleString(R)],...e1.tokens.cacheRead>0?[[I("session.cacheRead"),e1.tokens.cacheRead.toLocaleString(R)]]:[],...e1.tokens.cacheWrite>0?[[I("session.cacheWrite"),e1.tokens.cacheWrite.toLocaleString(R)]]:[],[I("session.total"),e1.tokens.total.toLocaleString(R)]],h=e7??e1.contextUsage,g=[...e1.cost>0?[[I("session.cost"),`$${e1.cost.toFixed(4)}`]]:[],...h?.contextWindow?[[I("session.context"),`${null!==h.percent?`${h.percent.toFixed(1)}%`:"?"} / ${(x=h.contextWindow)>=1e6?`${(x/1e6).toFixed(1)}M`:x>=1e3?`${(x/1e3).toFixed(0)}k`:String(x)}`]]:[],...e1.tokens.cacheRead+e1.tokens.cacheWrite>0&&e1.tokens.cacheRead+e1.tokens.cacheWrite+e1.tokens.input>0?[[I("session.cacheHitRate"),`${(e1.tokens.cacheRead/(e1.tokens.cacheRead+e1.tokens.cacheWrite+e1.tokens.input)*100).toFixed(1)}%`]]:[]],f=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"left",s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return(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:s?"max-content max-content":"auto minmax(0, 1fr)",columnGap:s?14:12,rowGap:4,justifyContent:s?"start":void 0},children:t.map(t=>{let[i,o]=t;return(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:i}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:s?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:o})]},`${e}:${i}`)})})]})},m={file:"session.copyFile",id:"session.copyId",projectDir:"session.copyProjectDir",gitBranch:"session.copyGitBranch",gitWorktree:"session.copyGitWorktree"},v=(e,t)=>{let r=e4===e;return(0,n.jsx)("button",{type:"button",title:r?I("session.copied"):I(m[e]),onClick:()=>e8(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},y=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.infoSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:d.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),b=c.length>0?(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:c.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:N?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:N?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:N?16:20},children:[y,b]}),f(I("session.messages"),u),f(I("session.tokens"),[...p,...g],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:I("session.load")})})]})]}),N&&rK(!0)]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:r$&&rA?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(gK,{}),(0,n.jsx)(gq,{activeProject:tQ??void 0})]}):rM?(0,n.jsx)(uW,{session:$,newSessionCwd:rN,onAgentEnd:rm,onSessionCreated:rg,onSessionForked:rf,modelsRefreshKey:ed,chatInputRef:eW,tasksBoardEnabled:rA,onSystemPromptChange:e0,onSessionStatsChange:e6,onOpenSession:tF,onOpenSubagent:rj,subagentRuns:rk,onSessionStatsPanelOpen:tb,onContextUsageChange:te,onOpenFile:rb,onWorkspaceControlsHostChange:eU,onViewFullHistory:rI,systemPrompt:eZ},Q):"validating"===t1?(0,n.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:I("desktop.openingWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd})]}):"error"===t1?(0,n.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--status-error)"},children:I("desktop.unableToOpenWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd}),(0,n.jsx)("div",{style:{maxWidth:720,fontSize:12},children:t6})]}):rF?tQ?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:I("desktop.selectSessionFromSidebar")}):(0,n.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,n.jsx)(i.n,{size:44,color:"var(--accent)","aria-hidden":"true",style:{opacity:.7,flexShrink:0}}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:I("desktop.getStarted")}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),I("desktop.selectProjectDirectory"),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),I("desktop.addModelsFromBottom")]})]})]}):null})]}),ew&&(0,n.jsx)("div",{...tq.separatorProps,inert:eT,"aria-controls":"file-panel",className:`panel-resize-handle right-panel-resize-handle${tq.isResizing?" is-resizing":""}`,"data-resize-handle":"right-panel",title:`${I("layout.resizeFilePanel")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{ref:tq.panelRef,id:"file-panel",className:`right-panel-container${ew?" right-panel-open":" right-panel-closed"}${eT?" right-panel-full-width":""}${tq.isResizing?" right-panel-resizing":""}`,style:{display:"flex",flexDirection:"column",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:36},children:[(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,n.jsx)(cx,{tabs:tC,activeTabId:tT??"",onSelectTab:tR,onCloseTab:rw})}),(0,n.jsx)("div",{style:{width:1,height:18,flexShrink:0,background:"var(--border)",marginRight:6},"aria-hidden":"true"}),(0,n.jsx)("button",{type:"button",className:"file-panel-expand-button",onClick:tS,"aria-controls":"file-panel","aria-pressed":eT,title:I(eT?"files.restorePanelWidth":"files.expandPanel"),"aria-label":I(eT?"files.restorePanelWidth":"files.expandPanel"),children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:eT?"M9 3v6H3m12-6v6h6M9 21v-6H3m12 6v-6h6M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6":"M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6"})})}),(0,n.jsxs)("button",{type:"button",onClick:()=>tM(e=>!e),"aria-controls":"file-panel","aria-pressed":tN,title:I("agentSwitcher.title"),"aria-label":I("agentSwitcher.title"),style:{display:"inline-flex",alignItems:"center",gap:5,flexShrink:0,height:28,marginRight:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:tN?"var(--bg-selected)":"transparent",color:tN?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:11,whiteSpace:"nowrap"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),I("agentSwitcher.title")]}),(0,n.jsx)("button",{type:"button",onClick:()=>eS(!1),"aria-controls":"file-panel","aria-expanded":ew,title:I("files.hidePanel"),"aria-label":I("files.hidePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"var(--bg-selected)",border:"none",borderLeft:"1px solid var(--border)",color:"var(--text)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:tN?(k=g4(tE,$?.id))?(0,n.jsx)(aZ,{rootSession:k.root,subagents:k.subagents,selectedSessionId:$?.id??"",runningSessionIds:tW,onSelectSession:e=>{tM(!1),ro.current(e)}}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:I("agentSwitcher.noFamily")}):rO?.kind==="subagent"&&rO.sessionId?(0,n.jsx)(uH,{sessionId:rO.sessionId,label:rO.label,running:tW.has(rO.sessionId),onOpenFile:rb}):rO?.filePath?(0,n.jsx)(cf,{filePath:rO.filePath,cwd:tQ??void 0,sourceSessionId:rO.sourceSessionId,initialDisplayMode:rO.initialDisplayMode,initialPage:rO.page,initialState:rO.viewerState,onOpenFile:(e,t)=>ry(e,tL(e),{sourceSessionId:rO.sourceSessionId,page:t}),onFileSaved:()=>es(e=>e+1)}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:"No file open"})})]})]})]}),eh&&rE&&(0,n.jsx)(cj,{cwd:rE,busy:eg,error:em,onCancelAction:()=>{eg||ex(!1)},onConfirmAction:()=>void rD()}),(0,n.jsx)(cy,{open:ek,onOpenChange:ej,sessions:W,projectKey:tQ??"",cwd:tQ,commands:rU,onOpenSession:e=>{ro.current(e)},onOpenFile:e=>{let t=tQ?tA(tQ,e):e;ry(t,tL(t))},onOpenMessage:(e,t)=>{if(ro.current(e),!t)return;let r=0,n=()=>{let e=document.querySelector(`[data-entry-id="${CSS.escape(t)}"]`);e?e.scrollIntoView({block:"center",behavior:"smooth"}):r++<20&&setTimeout(n,150)};setTimeout(n,200)}}),ei&&(0,n.jsx)(gc,{initialTab:ea,cwd:rH,sessionId:$?.id??null,onCloseAction:()=>{eo(!1),ec(e=>e+1)},onModelsSavedAction:()=>ec(e=>e+1),onSessionReloadedAction:()=>ee(e=>e+1),onSessionsChanged:()=>Z(e=>e+1)})]})]})}},79023:(e,t,r)=>{Promise.resolve().then(r.bind(r,45020)),Promise.resolve().then(r.bind(r,15170))}},e=>{e.O(0,[7330,6908,2464,5170,8441,3794,7358],()=>e(e.s=79023)),_N_E=e.O()}]);
|