@henlii/pidance 0.2.22 → 0.2.23
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 +5 -5
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- 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/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/about/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +5 -5
- package/.next/server/chunks/5274.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/app/{page-0135c9d722ed6a90.js → page-546bfde49da18ff8.js} +1 -1
- package/README.en.md +4 -3
- package/README.md +4 -3
- package/README.zh-CN.md +3 -2
- package/package.json +1 -1
- /package/.next/static/{IvTykGOPbSV_UrgPBoP-1 → 9Tr9m3GjZ3RcbmXYktF98}/_buildManifest.js +0 -0
- /package/.next/static/{IvTykGOPbSV_UrgPBoP-1 → 9Tr9m3GjZ3RcbmXYktF98}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{15717:(e,t,n)=>{"use strict";n.d(t,{AppShell:()=>db});var r=n(95155),i=n(12115),o=n(73321);let s=null;var a=n(47650);function l(e){let t=new Map;for(let n of e){let e=n.projectRoot??n.cwd,r=t.get(e);(!r||n.modified>r)&&t.set(e,n.modified)}return[...t.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(([e])=>e)}function d(e,t){if(!t)return e;let n=e.replaceAll("\\","/"),r=t.replaceAll("\\","/").replace(/\/$/,"");return n===r?"~":n.startsWith(`${r}/`)?`~${n.slice(r.length)}`:e}function c(e){let t=e.replaceAll("\\","/").replace(/\/+$/,""),n=t.lastIndexOf("/");return(n>=0?t.slice(n+1):t)||e}let u={status:"idle",error:null,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1};function p(e){return null!==e.cwd&&null!==e.projectRoot?e:{...e,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1}}function h(e,t){return e.status===t.status&&e.error===t.error&&e.cwd===t.cwd&&e.projectRoot===t.projectRoot&&e.branch===t.branch&&e.isGit===t.isGit&&e.isTopLevel===t.isTopLevel}function g(e){let t=e.filter(e=>!e.subagent),n=new Map;for(let e of t)n.set(e.id,{session:e,relation:null,children:[]});let r=new Map;for(let e of t)e.parentSessionId&&r.set(e.id,e.parentSessionId);let i=e=>{let t=r.get(e),i=new Set,o=[];for(;t;){if(i.has(t)||t===e)return null;i.add(t),o.push(t),t=r.get(t)}return o.find(e=>n.has(e))??null},o=new Map;for(let e of t){let t=i(e.id);t&&o.set(e.id,{parentId:t,relation:"fork"})}let s=e=>{let t=new Set([e]),n=o.get(e)?.parentId;for(;n;){if(t.has(n))return!0;t.add(n),n=o.get(n)?.parentId}return!1},a=[];for(let e of n.values()){let t=o.get(e.session.id),r=t?n.get(t.parentId):void 0;if(!t||!r||s(e.session.id)){a.push(e);continue}e.relation=t.relation,r.children.push(e)}let l=(e,t)=>t.session.modified.localeCompare(e.session.modified),d=(e,t)=>{if(t)e.sort(l);else{let t=e.filter(e=>"subagent"===e.relation).sort((e,t)=>(e.session.subagent?.runIndex??0)-(t.session.subagent?.runIndex??0)),n=e.filter(e=>"subagent"!==e.relation).sort(l);e.splice(0,e.length,...t,...n)}for(let t of e)d(t.children,!1)};return d(a,!0),a}function f(e,t){if(!t)return e;let n=[];for(let r of e){let e=f(r.children,t);((function(e,t){let n;return!t||(n=[e.name??"",e.firstMessage,e.id,e.worktreeBranch??""],e.subagent&&(n.push(e.subagent.agent??"",e.subagent.runId),n.push(`run ${e.subagent.runIndex}`,`run-${e.subagent.runIndex}`,String(e.subagent.runIndex))),n.join("\n").toLowerCase()).includes(t)})(r.session,t)||e.length>0)&&n.push({...r,children:e})}return n}function x(e,t){let n=(e,r)=>{for(let i of e){if(i.session.id===t)return r;let e=n(i.children,[...r,i.session.id]);if(e)return e}return null};return n(e,[])??[]}function m(e){let t=[],n=e=>{for(let r of e)r.children.length>0&&t.push(r.session.id),r.children.length>0&&n(r.children)};return n(e),t}function v(e){let t="";for(let n of e)n.modified>t&&(t=n.modified);return t}let y=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function b(e,t){if(t?.[e.root])return t[e.root];let n=e.root.replaceAll("\\","/").replace(/\/+$/,""),r=n.lastIndexOf("/");return(r>=0?n.slice(r+1):n)||e.root}function w(e,t){if(0===t.size)return[];let n=[];for(let r of e){let e=w(r.children,t);(t.has(r.session.id)||e.length>0)&&n.push({...r,children:e})}return n}function k(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(520,Math.max(240,Math.round(e))):300}function j(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(720,Math.max(320,Math.round(e))):400}function S(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(960,Math.max(320,Math.round(e))):560}function C(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){let e=n.trim();if(!e||null===r||"object"!=typeof r||Array.isArray(r))continue;let i=Array.isArray(r.expanded)?r.expanded.filter(e=>"string"==typeof e):[],o="number"==typeof r.scrollTop&&Number.isFinite(r.scrollTop)&&r.scrollTop>0?Math.round(r.scrollTop):0;t[e]={expanded:i,scrollTop:o}}return t}let _={displayMode:"standard",collapsedProjectRoots:[],collapsedWorktreePaths:[],projectAliases:{},closedProjectRoots:[],addedProjectRoots:[],sidebarWidth:300,rightPanelOpen:!1,rightPanelWidth:400,changesPanelOpen:!0,changesPanelWidth:560,showRecentSessions:!0,pinnedSessionIds:[],fileExplorerState:{},projectSort:"recent",projectOrder:[]},I="pidance:sidebar-preferences";function R(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e):[]}function T(e){return null===e||"object"!=typeof e?{..._,projectAliases:{},closedProjectRoots:[],collapsedProjectRoots:[],collapsedWorktreePaths:[]}:{displayMode:"compact"===e.displayMode||"standard"===e.displayMode?e.displayMode:_.displayMode,collapsedProjectRoots:R(e.collapsedProjectRoots),collapsedWorktreePaths:R(e.collapsedWorktreePaths),projectAliases:function(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){if("string"!=typeof r)continue;let e=n.trim(),i=r.trim();e&&i&&(t[e]=i)}return t}(e.projectAliases),closedProjectRoots:R(e.closedProjectRoots),addedProjectRoots:R(e.addedProjectRoots),sidebarWidth:k(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:j(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:S(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,pinnedSessionIds:R(e.pinnedSessionIds),fileExplorerState:C(e.fileExplorerState),projectSort:E(e.projectSort),projectOrder:R(e.projectOrder)}}function E(e){return"az"===e||"za"===e||"fixed"===e||"recent"===e?e:_.projectSort}function M(e){return JSON.stringify({displayMode:e.displayMode,collapsedProjectRoots:e.collapsedProjectRoots,collapsedWorktreePaths:e.collapsedWorktreePaths,projectAliases:e.projectAliases,closedProjectRoots:e.closedProjectRoots,addedProjectRoots:e.addedProjectRoots,sidebarWidth:k(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:j(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:S(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,pinnedSessionIds:R(e.pinnedSessionIds),fileExplorerState:C(e.fileExplorerState),projectSort:E(e.projectSort),projectOrder:R(e.projectOrder)})}function z(e){try{let t=e.getItem(I);if(null===t)return T(null);try{return T(JSON.parse(t))}catch{return T(null)}}catch{return T(null)}}function L(){return z(window.localStorage)}function W(e){try{window.localStorage.setItem(I,M(e))}catch{}}function A(e){return{displayMode:e.displayMode,collapsedProjectRoots:e.collapsedProjectRoots,collapsedWorktreePaths:e.collapsedWorktreePaths,closedProjectRoots:e.closedProjectRoots,addedProjectRoots:e.addedProjectRoots,showRecentSessions:e.showRecentSessions,pinnedSessionIds:e.pinnedSessionIds,projectSort:e.projectSort,projectOrder:e.projectOrder}}function P(e){var t,n=window.localStorage;try{let r=z(n);n.setItem(I,M({...r,rightPanelOpen:void 0===e.open?r.rightPanelOpen:(t=e.open,!0===t),rightPanelWidth:void 0===e.width?r.rightPanelWidth:j(e.width)}))}catch{}}function $(e){var t,n=window.localStorage;try{let r=z(n);n.setItem(I,M({...r,changesPanelOpen:void 0===e.open?r.changesPanelOpen:(t=e.open,!1!==t),changesPanelWidth:void 0===e.width?r.changesPanelWidth:S(e.width)}))}catch{}}function H(e,t){var n=window.localStorage;try{let r=z(n),i=C(r.fileExplorerState);e.trim()&&(i[e]={expanded:C({[e]:t})[e]?.expanded??[],scrollTop:Math.max(0,Math.round(Number.isFinite(t.scrollTop)?t.scrollTop:0))}),n.setItem(I,M({...r,fileExplorerState:i}))}catch{}}let F="pidance.streamingEnterDefault",D="followUp";function N(e){return"steer"===e?"steer":"followUp"}function B(){var e=window.localStorage;try{let t=e.getItem(F);if(null===t)return D;try{return N(JSON.parse(t))}catch{return N(t)}}catch{return D}}function O(e){var t=window.localStorage;try{t.setItem(F,JSON.stringify(N(e)))}catch{}}let U="pidance.autoUpdateCheck";function q(e){return!1!==e&&0!==e&&"0"!==e&&"false"!==e}function K(){var e=window.localStorage;try{let t=e.getItem(U);if(null===t)return!0;try{return q(JSON.parse(t))}catch{return q(t)}}catch{return!0}}function V(e){var t=window.localStorage;try{t.setItem(U,JSON.stringify(q(e)))}catch{}}let J="pidance.sessionList.v1";function Y(){try{let e=window.localStorage.getItem(J);if(!e)return null;let t=JSON.parse(e);if(!Array.isArray(t.sessions))return null;return t.sessions}catch{return null}}function G(e){try{let t=[...e].sort((e,t)=>e.modified<t.modified?1:e.modified>t.modified?-1:0).slice(0,50);window.localStorage.setItem(J,JSON.stringify({sessions:t}))}catch{}}var Z=n(69892);function X(e,t){let n=e[t];return"number"!=typeof n||!Number.isFinite(n)||n<5?5:Math.floor(n)}function Q(e,t,n){if(n)return e;let r=Math.max(0,Math.floor(t));return r>=e.length?e:e.slice(0,r)}function ee(e,t){let n=t.modified.localeCompare(e.modified);if(0!==n)return n;let r=t.created.localeCompare(e.created);return 0!==r?r:e.id.localeCompare(t.id)}function et(e,t){return e===t&&e>0}let en={status:"idle",worktrees:[]};function er(e,t,n){var r;let i,o=e[t];switch(n.status){case"idle":i=en;break;case"loading":i={status:"loading",worktrees:o?.worktrees??[]};break;case"ready":i={status:"ready",worktrees:n.worktrees};break;case"error":i={status:"error",worktrees:n.worktrees??o?.worktrees??[],error:n.error}}return(r=i,o&&o.status===r.status&&(o.error??void 0)===(r.error??void 0)&&function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],i=t[n];if(r.path!==i.path||r.branch!==i.branch||r.isMain!==i.isMain)return!1}return!0}(o.worktrees,r.worktrees))?e:{...e,[t]:i}}let ei=(0,i.createContext)(null);function eo({children:e,initial:t}){let n=(0,i.useRef)(null);return n.current||(n.current=function(e={}){let t=p({...u,...e.identity}),n=new Set,r=t,i=()=>n.forEach(e=>e());return{getIdentitySnapshot:()=>r,subscribeIdentity:e=>(n.add(e),()=>n.delete(e)),setIdentity:e=>{let n=void 0!==e.cwd&&void 0===e.projectRoot?{...e,projectRoot:e.cwd}:e,o=p({...t,...n});h(t,o)||(r=t=o,i())},reset:()=>{let e=!h(t,u);r=t=u,e&&i()}}}(t)),(0,r.jsx)(ei.Provider,{value:n.current,children:e})}function es(){let e=(0,i.useContext)(ei);if(!e)throw Error("useProjectIdentity/useProjectActions 必须在 ProjectProvider 内使用");return e}function ea(){let e=es();return(0,i.useSyncExternalStore)(e.subscribeIdentity,e.getIdentitySnapshot,e.getIdentitySnapshot)}var el=n(99780),ed=n(61995);function ec(e,t){let n=new Date(e),r=new Date().getTime()-n.getTime(),i=Math.floor(r/6e4),o=Math.floor(r/36e5),s=Math.floor(r/864e5);return i<1?t("sidebar_justNow"):i<60?t("sidebar_minutesAgo",{count:i}):o<24?t("sidebar_hoursAgo",{count:o}):s<7?t("sidebar_daysAgo",{count:s}):n.toLocaleDateString()}function eu({text:e,style:t}){return(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,r.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}function ep({open:e,children:t,style:n}){let[o,s]=(0,i.useState)(e),[a,l]=(0,i.useState)(e);return((0,i.useEffect)(()=>{let t,n;return e?(s(!0),l(!1),t=window.requestAnimationFrame(()=>{t=window.requestAnimationFrame(()=>l(!0))})):(l(!1),n=setTimeout(()=>s(!1),140)),()=>{void 0!==t&&window.cancelAnimationFrame(t),n&&clearTimeout(n)}},[e]),o)?(0,r.jsx)("div",{style:{...n,opacity:+!!a,transform:a?"translateY(0) scale(1)":"translateY(-8px) scale(0.96)",transformOrigin:"top center",transition:"opacity 140ms ease, transform 140ms ease",pointerEvents:e?"auto":"none"},children:t}):null}let eh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function eg(){let[e,t]=(0,i.useState)(!1),[n,o]=(0,i.useState)(!1),s=(0,i.useRef)(null),a=function(e,t){let[n,r]=(0,i.useState)(e),o=(0,i.useRef)(null),s=(0,i.useRef)(0);return(0,i.useEffect)(()=>{if(!t)return void r(e);s.current=0;let n=4*e.length,i=()=>{s.current+=1;let t=Math.floor(s.current/n*e.length);r(e.split("").map((e,n)=>" "===e?" ":n<t?e:eh[Math.floor(Math.random()*eh.length)]).join("")),s.current<n?o.current=requestAnimationFrame(i):r(e)};return o.current=requestAnimationFrame(i),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t]),n}(e?"0.2.22pexternal":"Pidance",n),l=(0,i.useCallback)(e=>{t(e),o(!0),setTimeout(()=>o(!1),(e?6:8)*4*(1e3/60)+100)},[]),d=(0,i.useCallback)(()=>{s.current&&clearTimeout(s.current);let t=!e;l(t),t&&(s.current=setTimeout(()=>l(!1),3e3))},[e,l]);return(0,i.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),(0,r.jsx)("button",{onClick:d,style:{background:"none",border:"none",padding:0,cursor:"default",fontWeight:700,fontSize:15,letterSpacing:"-0.01em",color:e?"var(--accent)":"var(--text)",fontFamily:"var(--font-mono)",minWidth:"6ch"},children:a})}function ef({label:e,onClick:t,disabled:n=!1,active:i=!1,danger:o=!1,done:s=!1,hoverReveal:a=!1,expanded:l,pressed:d,haspopup:c,buttonRef:u,children:p}){let h=["sidebar-icon-btn"];return i&&h.push("sidebar-icon-btn--active"),o&&h.push("sidebar-icon-btn--danger"),s&&h.push("sidebar-icon-btn--done"),a&&h.push("sidebar-icon-btn--hover"),(0,r.jsx)("button",{type:"button",ref:u,onClick:t,disabled:n,"data-tooltip":e,"aria-label":e,"aria-expanded":l,"aria-pressed":d,"aria-haspopup":c,className:h.join(" "),children:p})}function ex(e){return{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.75,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0}}let em=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}),(0,r.jsx)("path",{d:"M12 10v6"}),(0,r.jsx)("path",{d:"M9 13h6"})]}),ev=({size:e=14})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"})}),ey=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,r.jsx)("path",{d:"M3 4v5h5"}),(0,r.jsx)("path",{d:"M12 7v5l3 2"})]}),eb=({size:e=13})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M12 17v5"}),(0,r.jsx)("path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z"})]}),ew=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),(0,r.jsx)("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),(0,r.jsx)("path",{d:"M10 12h4"})]}),ek=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"}),(0,r.jsx)("path",{d:"M12 7v6"}),(0,r.jsx)("path",{d:"M9 10h6"})]}),ej=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,r.jsx)("path",{d:"m21 21-4.3-4.3"})]}),eS=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"21",x2:"14",y1:"4",y2:"4"}),(0,r.jsx)("line",{x1:"10",x2:"3",y1:"4",y2:"4"}),(0,r.jsx)("line",{x1:"21",x2:"12",y1:"12",y2:"12"}),(0,r.jsx)("line",{x1:"8",x2:"3",y1:"12",y2:"12"}),(0,r.jsx)("line",{x1:"21",x2:"16",y1:"20",y2:"20"}),(0,r.jsx)("line",{x1:"12",x2:"3",y1:"20",y2:"20"}),(0,r.jsx)("line",{x1:"14",x2:"14",y1:"2",y2:"6"}),(0,r.jsx)("line",{x1:"8",x2:"8",y1:"10",y2:"14"}),(0,r.jsx)("line",{x1:"16",x2:"16",y1:"18",y2:"22"})]}),eC=({size:e=14})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}),e_=({size:e=15})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),(0,r.jsx)("polyline",{points:"9 22 9 12 15 12 15 22"})]}),eI=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,r.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),eR=({size:e=12})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),eT=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("path",{d:"M15.5 17.5h5"}),(0,r.jsx)("path",{d:"M18 15v5"})]}),eE=({size:e=13})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,r.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,r.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,r.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),eM=({size:e=13})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})}),ez=({size:e=14})=>(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"5",r:"1.7"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"1.7"}),(0,r.jsx)("circle",{cx:"12",cy:"19",r:"1.7"})]});function eL({collapsed:e,label:t,left:n,onClick:i}){return(0,r.jsx)("button",{type:"button",onClick:e=>{i(e),e.currentTarget.blur()},"data-tooltip":t,"aria-label":t,className:"sidebar-indent-indicator",style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:n,top:"50%",width:16,height:20,padding:0,flexShrink:0,zIndex:1,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transform:`translateY(-50%)${e?" rotate(-90deg)":""}`,transition:"transform 0.15s"},children:(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})}function eW({primary:e=!1,danger:t=!1,disabled:n=!1,onClick:i,children:o}){let s=e||t;return(0,r.jsx)("button",{type:"button",onClick:i,disabled:n,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,height:30,padding:"0 14px",flexShrink:0,background:t?"var(--status-danger)":e?"var(--accent)":"var(--bg)",border:s?"none":"1px solid var(--border)",borderRadius:7,color:s?"#fff":"var(--text-muted)",cursor:n?"not-allowed":"pointer",fontSize:12,fontWeight:s?600:500,opacity:n?.55:1,whiteSpace:"nowrap"},children:o})}function eA({label:e,checked:t,onClick:n}){return(0,r.jsxs)("button",{type:"button",onClick:n,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"7px 10px",background:"var(--bg-elevated)",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11.5},children:[t?(0,r.jsx)("span",{style:{color:"var(--accent)",display:"flex",flexShrink:0},children:(0,r.jsx)(eC,{size:11})}):(0,r.jsx)("span",{style:{width:11,flexShrink:0}}),e]})}function eP({icon:e,label:t,onClick:n}){return(0,r.jsxs)("button",{type:"button",role:"menuitem",onClick:n,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:"var(--bg-elevated)",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12,whiteSpace:"nowrap"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"},onFocus:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onBlur:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"},children:[(0,r.jsx)("span",{style:{display:"flex",flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true",children:e}),t]})}function e$({groupKey:e,total:t,visibleCount:n,searchActive:i,onShowMore:o,onShowFewer:s}){let{t:a}=(0,el.s9)(),l=!i&&t>Math.max(0,Math.floor(n)),d=!i&&Math.floor(n)>5;return l||d?(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 8px 5px 28px"},children:[l&&(0,r.jsxs)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>o(e),children:[a("sidebar_showMore"),(0,r.jsxs)("span",{"aria-hidden":"true",children:["+",5]})]}),d&&(0,r.jsx)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>s(e),children:a("sidebar_showFewer")})]}):null}function eH({size:e=14}){let{t}=(0,el.s9)();return(0,r.jsx)("span",{title:t("sidebar_running"),"aria-label":t("sidebar_running"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--status-running)"},children:(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:e-4,height:e-4,borderRadius:"50%",border:"2px solid currentColor",borderTopColor:"transparent",background:"transparent",boxSizing:"border-box",animation:"sidebar-running-spin 1s linear infinite"}})})}function eF({startedAt:e,now:t,running:n}){let{t:i}=(0,el.s9)();return n?(0,r.jsx)("span",{title:i("sidebar_running"),style:{display:"inline-flex",alignItems:"center",flexShrink:0,color:"var(--status-running)",fontSize:10,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap"},children:(0,r.jsx)("span",{children:void 0!==e?function(e,t){let n,r,{hours:i,minutes:o,seconds:s}=(r=Math.floor((n=Math.max(0,Math.floor(e/1e3)))/3600),{hours:r,minutes:Math.floor(n%3600/60),seconds:n%60});return i>0?t("sidebar_runningHoursMinutes",{h:i,m:o}):o>0?t("sidebar_runningMinutesSeconds",{m:o,s:s}):t("sidebar_runningSeconds",{s:s})}(Math.max(0,t-e),i):i("sidebar_running")})}):null}function eD({size:e=14}){let{t}=(0,el.s9)();return(0,r.jsx)("span",{title:t("sidebar_activity"),"aria-label":t("sidebar_activity"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--status-unread)"},children:(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:6,height:6,borderRadius:"50%",background:"currentColor"}})})}let eN=(0,i.createContext)({startedAt:new Map,now:Date.now()}),eB=0,eO=null,eU=[];function eq(e){return eU.length>0&&eU[eU.length-1]===e}let eK=i.useLayoutEffect;function eV(){let e={top:0,left:0,width:Number.isFinite(window.innerWidth)?Math.max(0,window.innerWidth):0,height:Number.isFinite(window.innerHeight)?Math.max(0,window.innerHeight):0},t=window.visualViewport;if(!t)return e;let n=Number.isFinite(t.width)?Math.max(0,t.width):0,r=Number.isFinite(t.height)?Math.max(0,t.height):0;return n<=0||r<=0?e:{top:Number.isFinite(t.offsetTop)?Math.max(0,t.offsetTop):0,left:Number.isFinite(t.offsetLeft)?Math.max(0,t.offsetLeft):0,width:n,height:r}}function eJ(e){return Array.from(e.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>e.getClientRects().length>0)}function eY({open:e,onClose:t,title:n,description:o,children:s,actions:l,width:d=560,height:c,zIndex:u=1e3,closeOnBackdrop:p=!0,closeOnEsc:h=!0,initialFocusRef:g,headerActions:f,contentPadding:x="14px 18px",closeLabel:m="Close"}){let v=(0,i.useRef)(null),y=(0,i.useId)(),b=(0,i.useId)(),w=(0,i.useRef)(null);null===w.current&&(w.current=Symbol("ViewportDialog")),(0,i.useEffect)(()=>{if(e){var t;let e;return t=w.current,eU.push(t),e=!1,()=>{if(e)return;e=!0;let n=eU.lastIndexOf(t);n>=0&&eU.splice(n,1)}}},[e]),(0,i.useEffect)(()=>{var t,n;if(!e)return;let r=document.activeElement,i=v.current,o=(t=g?.current,n=i?eJ(i):[],t??n[0]??i);return o?.focus({preventScroll:!0}),()=>{var e,t;let n=(e=r instanceof HTMLElement?r:null,t=e=>document.contains(e),null!==e&&t(e)?e:null);n?.focus({preventScroll:!0})}},[e,g]),(0,i.useEffect)(()=>{if(e){var t;let e;return t=document.body,0===eB&&(eO=t.style.overflow,t.style.overflow="hidden"),eB+=1,e=!1,()=>{e||(e=!0,0==(eB-=1)&&(t.style.overflow=eO??"",eO=null))}}},[e]),(0,i.useEffect)(()=>{if(!e)return;let n=w.current,r=e=>{let r=function(e){if(!e.isTop)return{stopPropagation:!1,preventDefault:!1,close:!1};let t="Escape"===e.key&&e.closeOnEsc&&!e.defaultPrevented;return{stopPropagation:!0,preventDefault:t,close:t}}({key:e.key,defaultPrevented:e.defaultPrevented,closeOnEsc:h,isTop:eq(n)});r.stopPropagation&&(e.stopPropagation(),r.preventDefault&&e.preventDefault(),r.close&&t())};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,h,t]),(0,i.useEffect)(()=>{if(!e)return;let t=w.current,n=e=>{if(!eq(t))return;let n=v.current;!n||!(e.target instanceof Node)||n.contains(e.target)||(eJ(n)[0]??n).focus({preventScroll:!0})};return document.addEventListener("focusin",n),()=>document.removeEventListener("focusin",n)},[e]);let[k,j]=(0,i.useState)(null),S=(0,i.useRef)(0),C=(0,i.useCallback)(()=>{let e=eV();j(t=>t&&t.top===e.top&&t.left===e.left&&t.width===e.width&&t.height===e.height?t:e)},[]);if(eK(()=>{if(!e)return void j(null);C();let t=()=>{S.current||(S.current=requestAnimationFrame(()=>{S.current=0,C()}))};window.addEventListener("resize",t);let n=window.visualViewport;return n?.addEventListener("resize",t),n?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),n?.removeEventListener("resize",t),n?.removeEventListener("scroll",t),S.current&&(cancelAnimationFrame(S.current),S.current=0)}},[e,C]),!e||"u"<typeof document)return null;let _="number"==typeof d?`${d}px`:d,I=k??eV(),R=function(e,t=16){return{maxWidth:Math.max(0,e.width-2*t),maxHeight:Math.max(0,e.height-2*t)}}(I),T="number"==typeof d?Math.min(d,R.maxWidth):`min(${_}, ${R.maxWidth}px)`,E=void 0===c?void 0:"number"==typeof c?Math.min(c,R.maxHeight):`min(${c}, ${R.maxHeight}px)`;return(0,a.createPortal)((0,r.jsx)("div",{onMouseDown:e=>{p&&e.target===e.currentTarget&&t()},style:{position:"fixed",top:I.top,left:I.left,width:I.width,height:I.height,zIndex:u,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,overscrollBehavior:"contain"},children:(0,r.jsxs)("div",{ref:v,role:"dialog","aria-modal":"true","aria-labelledby":y,"aria-describedby":o?b:void 0,tabIndex:-1,onKeyDown:e=>{if("Tab"!==e.key)return;let t=v.current;if(!t)return;let n=function(e){let{focusable:t,active:n,shiftKey:r,panel:i,contains:o}=e;if(0===t.length)return{handled:!0,target:i};let s=t[0],a=t[t.length-1],l=null!==n&&o(n);if(r){if(n===s||!l)return{handled:!0,target:a}}else if(n===a||!l)return{handled:!0,target:s};return{handled:!1}}({focusable:eJ(t),active:document.activeElement,shiftKey:e.shiftKey,panel:t,contains:e=>t.contains(e)});n.handled&&(e.preventDefault(),n.target.focus({preventScroll:!0}))},style:{width:"100%",maxWidth:T,maxHeight:R.maxHeight,...void 0!==E?{height:E,minHeight:0}:{},display:"flex",flexDirection:"column",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden",outline:"none"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("div",{id:y,style:{fontSize:15,fontWeight:700,color:"var(--text)",minWidth:0,flex:1},children:n}),f,(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":m,style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",minWidth:32,minHeight:32,padding:"2px 6px",background:"none",border:"none",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1},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:"\xd7"})]}),o&&(0,r.jsx)("div",{id:b,style:{padding:"10px 18px",borderBottom:"1px solid var(--border)",fontSize:13,lineHeight:1.55,color:"var(--text-muted)",flexShrink:0},children:o}),s&&(0,r.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",overscrollBehavior:"contain",padding:x},children:s}),l&&(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"12px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:l})]})}),document.body)}let eG={readOnly:!1,canPrompt:!0,canFork:!0,canCompact:!0,canChangeModel:!0,canChangeThinking:!0,canChangeTools:!0,canRename:!0,canAutoName:!0,canDelete:!0,canConnectEvents:!0,canSendSessionCommands:!0},eZ={readOnly:!0,canPrompt:!1,canFork:!1,canCompact:!1,canChangeModel:!1,canChangeThinking:!1,canChangeTools:!1,canRename:!1,canAutoName:!1,canDelete:!1,canConnectEvents:!1,canSendSessionCommands:!1};function eX(e){return e?.readOnly===!0?eZ:eG}function eQ(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 e0(e){return`/api/sessions/${encodeURIComponent(e)}/export`}function e1(e,t,n=2){return!!e&&!!t&&(Math.abs(e.top-t.top)>=n||Math.abs(e.right-t.right)>=n)}function e2({open:e,onOpenChange:t,projectName:n,onEdit:o,onClose:s}){let{t:l}=(0,el.s9)(),d=(0,i.useRef)(null),c=(0,i.useRef)(null),u=(0,i.useRef)(null),[p,h]=(0,i.useState)(null),g=(0,i.useRef)(null),f=(0,i.useCallback)(e=>{t(!1),e&&c.current?.focus()},[t]),x=(0,i.useCallback)(()=>{if(e)return void f(!0);let n=c.current?.getBoundingClientRect();n&&(g.current={top:n.top,bottom:n.bottom,right:n.right},h({top:n.bottom+4,right:Math.max(8,window.innerWidth-n.right)})),t(!0)},[e,f,t]);return(0,i.useEffect)(()=>{if(!e||!g.current)return;let t=requestAnimationFrame(()=>{let e=u.current,t=g.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||h(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(t)},[e]),(0,i.useEffect)(()=>{if(!e)return;let n=e=>{!d.current||d.current.contains(e.target)||u.current?.contains(e.target)||t(!1)},r=()=>{let e=c.current?.getBoundingClientRect();e1(g.current,e?{top:e.top,right:e.right}:null)&&t(!1)};return document.addEventListener("mousedown",n),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{document.removeEventListener("mousedown",n),window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[e,t]),(0,i.useEffect)(()=>{if(!e)return;let t=requestAnimationFrame(()=>{u.current?.querySelector("[role='menuitem']")?.focus()});return()=>cancelAnimationFrame(t)},[e]),(0,r.jsxs)("div",{ref:d,style:{position:"relative",flexShrink:0,display:"flex"},onClick:e=>e.stopPropagation(),onKeyDown:t=>{"Escape"===t.key&&e&&(t.stopPropagation(),t.preventDefault(),f(!0))},children:[(0,r.jsx)(ef,{label:l("sidebar_projectMenuLabel",{project:n}),active:e,expanded:e,haspopup:"menu",hoverReveal:!0,buttonRef:c,onClick:e=>{e.stopPropagation(),x()},children:(0,r.jsx)(ez,{size:14})}),e&&(0,a.createPortal)((0,r.jsx)(ep,{open:e,style:{position:"fixed",top:p?.top??0,right:p?.right??0,zIndex:600,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)",overflow:"hidden",minWidth:148},children:(0,r.jsxs)("div",{ref:u,role:"menu","aria-label":l("sidebar_projectMenuLabel",{project:n}),children:[(0,r.jsx)(eP,{icon:(0,r.jsx)(eM,{size:13}),label:l("sidebar_editProject"),onClick:()=>{f(!0),o()}}),(0,r.jsx)(eP,{icon:(0,r.jsx)(eI,{size:13}),label:l("sidebar_closeProject"),onClick:()=>{f(!0),s()}})]})}),document.body)]})}function e4({session:e,title:t,canRename:n,canDelete:o,canArchive:s,archiveDisabledReason:l,isPinned:d,onTogglePin:c,onRename:u,onDelete:p,onArchive:h}){var g;let f,{t:x}=(0,el.s9)(),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(null),w=(0,i.useRef)(null),k=(0,i.useRef)(null),j=(0,i.useRef)(null),S=x("sidebar_sessionMenuLabel",{session:t}),C=(0,i.useCallback)((e=!1)=>{v(!1),e&&k.current?.focus()},[]);(0,i.useEffect)(()=>{if(!m||!w.current)return;let e=requestAnimationFrame(()=>{let e=j.current,t=w.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||b(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(e)},[m]),(0,i.useEffect)(()=>{if(!m)return;let e=e=>{let t=e.target;j.current?.contains(t)||k.current?.contains(t)||C()},t=()=>{let e=k.current?.getBoundingClientRect();e1(w.current,e?{top:e.top,right:e.right}:null)&&C()};document.addEventListener("mousedown",e),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0);let n=requestAnimationFrame(()=>j.current?.querySelector("[role='menuitem']")?.focus());return()=>{cancelAnimationFrame(n),document.removeEventListener("mousedown",e),window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0)}},[C,m]);let _={display:"flex",alignItems:"center",gap:8,width:"100%",minHeight:32,padding:"6px 11px",boxSizing:"border-box",background:"var(--bg-elevated)",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",textDecoration:"none",fontSize:12,whiteSpace:"nowrap"},I={onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"}},R=e=>(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"flex",color:"var(--text-dim)"},children:e});return(0,r.jsxs)("div",{style:{display:"flex",flexShrink:0},onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Escape"===e.key&&m&&(e.preventDefault(),C(!0))},children:[(0,r.jsx)(ef,{label:S,active:m,expanded:m,haspopup:"menu",hoverReveal:!0,buttonRef:k,onClick:e=>{e.stopPropagation(),(()=>{if(m)return C();let e=k.current?.getBoundingClientRect();e&&(w.current={top:e.top,bottom:e.bottom,right:e.right},b({top:e.bottom+4,right:Math.max(8,window.innerWidth-e.right)})),v(!0)})()},children:(0,r.jsx)(ez,{size:14})}),m&&y&&(0,a.createPortal)((0,r.jsxs)("div",{ref:j,role:"menu","aria-label":S,style:{position:"fixed",top:y.top,right:y.right,zIndex:600,minWidth:190,padding:4,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)"},children:[n&&(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),u()},children:[R((0,r.jsx)(eM,{size:13})),x("sidebar_renameSession")]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),eQ(e.id)},children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,r.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})),x("sidebar_copySessionId")]}),!e.subagent&&c&&(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),c()},children:[R((0,r.jsx)(eb,{size:13})),x(d?"sidebar_unpinSession":"sidebar_pinSession")]}),(s||null!==l)&&(0,r.jsxs)("button",{type:"button",role:"menuitem",disabled:!s,title:s?void 0:l??void 0,style:{..._,opacity:s?1:.45,cursor:s?"pointer":"not-allowed"},onClick:()=>{s&&(C(),h())},children:[R((0,r.jsx)(ew,{size:13})),x("sidebar_archiveSession")]}),"string"==typeof e?.id&&e.id.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("a",{role:"menuitem",href:e0(e.id),download:!0,style:_,...I,onClick:()=>C(),children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("path",{d:"M12 3v12"}),(0,r.jsx)("path",{d:"m7 10 5 5 5-5"}),(0,r.jsx)("path",{d:"M5 21h14"})]})),x("sidebar_exportSessionHtml")]}),(0,r.jsxs)("a",{role:"menuitem",href:(g=e.id,f=new URLSearchParams({format:"jsonl"}),`${e0(g)}?${f.toString()}`),download:!0,style:_,...I,onClick:()=>C(),children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("path",{d:"M8 3H7a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2 2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h1"}),(0,r.jsx)("path",{d:"M16 21h1a2 2 0 0 0 2-2v-4a2 2 0 0 1 2-2 2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1"})]})),x("sidebar_exportSessionJsonl")]})]}),o&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{height:1,margin:"4px 6px",background:"var(--border)"}}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:{..._,color:"var(--status-danger)"},onClick:()=>{C(),p()},children:[R((0,r.jsx)(eE,{size:13})),x("sidebar_deleteSession")]})]})]}),document.body)]})}function e6({project:e,homeDir:t,displayMode:n,projectAliases:i,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,collapsedProjectRoots:d,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleProject:g,onToggleWorktree:f,onNewSession:x,onSelectSession:m,menuOpen:v,onMenuOpenChange:y,onEditProject:b,onCloseProject:w,onRenamed:k,onSessionDeleted:j,onToggleCollapse:S,groupVisibleCounts:C,onShowMore:_,onShowFewer:I,worktreeActions:R,wtNewOpen:T,wtNewBranch:E,wtError:M,wtConfirmRemove:z,wtNewInputRef:L,onStartCreateWorktree:W,onWtNewBranchChange:A,onSubmitCreateWorktree:P,onCancelCreateWorktree:$,onRequestRemoveWorktree:H,onConfirmRemoveWorktree:F,onCancelRemoveWorktree:D,onSessionArchive:N,isSessionPinned:B,onTogglePin:O,onProjectDrop:U}){var q;let{t:K}=(0,el.s9)(),V=(q=e.root,!h&&d.has(q)),J=e.mainTree.length>0||e.worktrees.some(e=>e.tree.length>0),Y=i[e.root]??c(e.root),G=K(V?"sidebar_expandProjectNamed":"sidebar_collapseProjectNamed",{project:Y});return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!V,"aria-label":G,draggable:!!U,onDragStart:t=>{U&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/pidance-project",e.root),t.dataTransfer.setData("text/plain",e.root))},onDragOver:e=>{U&&(e.preventDefault(),e.dataTransfer.dropEffect="move")},onDrop:t=>{if(!U)return;t.preventDefault(),t.stopPropagation();let n=t.dataTransfer.getData("text/pidance-project")||t.dataTransfer.getData("text/plain");n&&U(n,e.root)},onClick:()=>g(e.root),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onKeyDown:t=>{t.target===t.currentTarget&&("Enter"===t.key||" "===t.key)&&(t.preventDefault(),g(e.root))},title:e.root,style:{display:"flex",alignItems:"center",gap:6,height:32,margin:"1px 6px",position:"relative",paddingLeft:32,paddingRight:8,borderRadius:6,cursor:"pointer",background:"transparent",color:"var(--text-muted)"},children:[(0,r.jsx)(eL,{collapsed:V,label:G,left:6,onClick:t=>{t.stopPropagation(),g(e.root)}}),(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(ev,{size:13})}),(0,r.jsx)(eu,{text:Y,style:{flex:1,fontSize:12.5,fontWeight:600,fontFamily:"var(--font-mono)"}}),(0,r.jsx)(ef,{label:K("sidebar_newSessionIn",{project:Y}),hoverReveal:!0,onClick:t=>{t.stopPropagation(),x(e.root)},children:(0,r.jsx)(ek,{size:14})}),R&&(0,r.jsx)(ef,{label:R.createHint,disabled:!R.canManage||R.busy,hoverReveal:!0,onClick:e=>{e.stopPropagation(),W()},children:(0,r.jsx)(eT,{size:14})}),(0,r.jsx)(e2,{open:v,onOpenChange:y,projectName:Y,onEdit:b,onClose:w})]}),!V&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{children:[Q(e.mainTree,X(C,`main:${e.root}`),h).map(e=>(0,r.jsx)(e8,{node:e,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,onSelectSession:m,onRenamed:k,onSessionDeleted:j,onSessionArchive:N,isSessionPinned:B,onTogglePin:O,depth:0,collapsedSessionIds:p,searchActive:h,onToggleCollapse:S,displayMode:n},e.session.id)),(0,r.jsx)(e$,{groupKey:`main:${e.root}`,total:e.mainTree.length,visibleCount:X(C,`main:${e.root}`),searchActive:h,onShowMore:_,onShowFewer:I})]}),e.worktrees.map(e=>(0,r.jsx)(e5,{group:e,homeDir:t,displayMode:n,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleWorktree:e=>f(e),onNewSession:()=>x(e.path),onSelectSession:m,onRenamed:k,onSessionDeleted:j,onToggleCollapse:S,visibleCount:X(C,`worktree:${e.path}`),onShowMore:()=>_(`worktree:${e.path}`),onShowFewer:()=>I(`worktree:${e.path}`),worktreeActions:R,confirmRemove:z===e.path,onRequestRemove:()=>H(e.path),onConfirmRemove:()=>F(e.path),onCancelRemove:D,onSessionArchive:N,isSessionPinned:B,onTogglePin:O},e.path)),T&&R?.canManage&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px 4px 30px"},children:[(0,r.jsx)("span",{style:{display:"flex",color:"var(--text-dim)",flexShrink:0},children:(0,r.jsx)(eR,{size:11})}),(0,r.jsx)("input",{ref:L,value:E,onChange:e=>A(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),P()),"Escape"===e.key&&$()},placeholder:K("sidebar_branchName"),"aria-label":K("sidebar_branchName"),style:{flex:1,minWidth:0,height:26,fontSize:11,fontFamily:"var(--font-mono)",padding:"0 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,r.jsx)(ef,{label:K(R.busy?"sidebar_creating":"sidebar_createWorktreeAction"),disabled:R.busy||!E.trim(),onClick:P,children:(0,r.jsx)(eC,{size:14})}),(0,r.jsx)(ef,{label:K("sidebar_cancel"),onClick:$,children:(0,r.jsx)(eI,{size:13})})]}),M&&R&&(0,r.jsx)("div",{style:{padding:"3px 10px 6px 30px",color:"var(--status-danger)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:M}),!J&&0===e.worktrees.length&&(0,r.jsx)("div",{style:{padding:"2px 10px 6px 31px",color:"var(--text-dim)",fontSize:11},children:K("sidebar_noSessionsYet")})]})]})}function e5({group:e,homeDir:t,displayMode:n,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,collapsedWorktreePaths:c,collapsedSessionIds:u,searchActive:p,onToggleWorktree:h,onNewSession:g,onSelectSession:f,onRenamed:x,onSessionDeleted:m,onToggleCollapse:v,visibleCount:y,onShowMore:b,onShowFewer:w,worktreeActions:k,confirmRemove:j,onRequestRemove:S,onConfirmRemove:C,onCancelRemove:_,onSessionArchive:I,isSessionPinned:R,onTogglePin:T}){var E;let{t:M}=(0,el.s9)(),z=(E=e.path,!p&&c.has(E)),L=e.branch??d(e.path,t),W=M(z?"sidebar_expandWorktreeNamed":"sidebar_collapseWorktreeNamed",{name:L}),A=(0,i.useMemo)(()=>{let t=new Set([...s,...a]),n=e=>e.some(e=>t.has(e.session.id)||n(e.children));return n(e.tree)},[e,s,a]);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!z,"aria-label":W,onClick:()=>h(e.path),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onKeyDown:t=>{t.target===t.currentTarget&&("Enter"===t.key||" "===t.key)&&(t.preventDefault(),h(e.path))},title:e.path,style:{display:"flex",alignItems:"center",gap:6,height:30,margin:"1px 6px",position:"relative",paddingLeft:32,paddingRight:8,borderRadius:6,cursor:"pointer",background:"transparent",color:"var(--text-muted)"},children:[(0,r.jsx)(eL,{collapsed:z,label:W,left:6,onClick:t=>{t.stopPropagation(),h(e.path)}}),(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(eR,{size:11})}),A&&(0,r.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",pointerEvents:"none"},children:(0,r.jsx)(eH,{size:18})}),(0,r.jsx)(eu,{text:L,style:{flex:1,fontSize:12,fontWeight:400,fontFamily:"var(--font-mono)"}}),A&&(0,r.jsx)(eH,{size:10}),(0,r.jsx)(ef,{label:M("sidebar_newSessionIn",{project:L}),hoverReveal:!0,onClick:e=>{e.stopPropagation(),g()},children:(0,r.jsx)(ek,{size:13})}),k?.canManage&&!j&&(0,r.jsx)(ef,{label:M("sidebar_removeWorktreeAt",{path:e.path}),danger:!0,hoverReveal:!0,disabled:k.busy,onClick:e=>{e.stopPropagation(),S()},children:(0,r.jsx)(eE,{size:13})})]}),j&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 30px",background:"var(--status-danger-bg)"},children:[(0,r.jsx)("span",{style:{flex:1,minWidth:0,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:M("sidebar_dirtyWorktreeConfirm")}),(0,r.jsx)("button",{type:"button",onClick:C,disabled:k?.busy,style:{padding:"3px 9px",background:"var(--status-danger)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:M("sidebar_forceRemove")}),(0,r.jsx)("button",{type:"button",onClick:_,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:M("sidebar_cancel")})]}),!z&&(0,r.jsxs)("div",{children:[Q(e.tree,y,p).map(e=>(0,r.jsx)(e8,{node:e,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,onSelectSession:f,onRenamed:x,onSessionDeleted:m,onSessionArchive:I,isSessionPinned:R,onTogglePin:T,depth:0,collapsedSessionIds:u,searchActive:p,onToggleCollapse:v,displayMode:n},e.session.id)),(0,r.jsx)(e$,{groupKey:e.path,total:e.tree.length,visibleCount:y,searchActive:p,onShowMore:b,onShowFewer:w}),0===e.tree.length&&(0,r.jsx)("div",{style:{padding:"2px 10px 5px 28px",color:"var(--text-dim)",fontSize:11},children:M("sidebar_noSessions")})]})]})}function e8({node:e,selectedSessionId:t,runningSessionIds:n,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:s,onRenamed:a,onSessionDeleted:l,onSessionArchive:d,isSessionPinned:c,onTogglePin:u,depth:p,collapsedSessionIds:h,searchActive:g,onToggleCollapse:f,displayMode:x}){var m;let v=e.children.length>0,y=(m=e.session.id,!g&&h.has(m));return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{"data-session-id":e.session.id,style:{position:"relative"},children:(0,r.jsx)(e3,{session:e.session,relation:e.relation,isSelected:e.session.id===t,isRunning:n.has(e.session.id)||i.has(e.session.id),isUnread:!e.session.subagent&&o.has(e.session.id),onClick:()=>s(e.session),onRenamed:a,onDeleted:e=>l?.(e),onArchive:e=>d?.(e),isPinned:c?.(e.session.id),onTogglePin:()=>u?.(e.session.id),depth:p,hasChildren:v,collapsed:y,onToggleCollapse:()=>f(e.session.id),displayMode:x})}),v&&!y&&(0,r.jsx)("div",{children:e.children.map(e=>(0,r.jsx)(e8,{node:e,selectedSessionId:t,runningSessionIds:n,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:s,onRenamed:a,onSessionDeleted:l,onSessionArchive:d,isSessionPinned:c,onTogglePin:u,depth:p+1,collapsedSessionIds:h,searchActive:g,onToggleCollapse:f,displayMode:x},e.session.id))})]})}function e3({session:e,relation:t=null,isSelected:n,isRunning:o,isUnread:s,onClick:a,onRenamed:l,onDeleted:d,onArchive:c,isPinned:u,onTogglePin:p,depth:h=0,hasChildren:g=!1,collapsed:f=!1,onToggleCollapse:x,displayMode:m}){let{t:v}=(0,el.s9)(),[y,b]=(0,i.useState)(!1),[w,k]=(0,i.useState)(!1),[j,S]=(0,i.useState)(""),[C,_]=(0,i.useState)(!1),[I,R]=(0,i.useState)(!1),T=(0,i.useRef)(null),E=eX(e),M=!0===o,z=!M&&!1===eX(e).readOnly,L=z?null:v(M?"archive_rowDisabledRunning":"archive_rowDisabledReadOnly"),W=(0,i.useContext)(eN),A=e.id?W.startedAt.get(e.id):void 0,P=!0===o&&!(g&&f),$=e.firstMessage.trim(),H=e.subagent&&(!$||"(no messages)"===$)?`${e.subagent.agent?`${e.subagent.agent} \xb7 `:""}${v("sidebar_runCount",{count:e.subagent.runIndex})}`:"",F="(no messages)"===$?v("sidebar_noMessages"):e.firstMessage,D=e.name||H||F.slice(0,50)||e.id.slice(0,12),N=(0,i.useCallback)(()=>{E.canRename&&(S(D),k(!0),setTimeout(()=>T.current?.select(),0))},[D,E.canRename]),B=(0,i.useCallback)(async()=>{if(!E.canRename)return void k(!1);let t=j.trim();if(k(!1),t!==(e.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}),l?.()}catch{}},[j,e.id,e.name,l,E.canRename]),O=(0,i.useCallback)(()=>{E.canDelete&&_(!0)},[E.canDelete]),U=(0,i.useCallback)(async()=>{if(!E.canDelete)return void _(!1);_(!1),R(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)return void R(!1);d?.(e.id)}catch{R(!1)}},[e.id,d,E.canDelete]),q=(0,i.useCallback)(()=>{_(!1)},[]),K="compact"===m,V=K?30:40;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"sidebar-row","data-sidebar-depth":h,onClick:w?void 0:a,onMouseEnter:()=>b(!0),onMouseLeave:()=>{b(!1)},style:{height:V,display:"flex",alignItems:"center",width:"calc(100% - 12px)",margin:"1px 6px",position:"relative",paddingLeft:32+14*h,paddingRight:8,borderRadius:6,cursor:w?"default":"pointer",background:n?"var(--bg-selected)":y?"var(--bg-hover)":"transparent",borderLeft:n?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.15s ease, color 0.15s ease",opacity:I?.5:1,gap:6,overflow:"hidden"},children:w?(0,r.jsx)("input",{ref:T,value:j,onChange:e=>S(e.target.value),onBlur:B,onKeyDown:e=>{"Enter"===e.key&&B(),"Escape"===e.key&&k(!1)},autoFocus:!0,"aria-label":v("sidebar_renameSession"),style:{flex:1,fontSize:K?11:12,padding:"0 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",height:K?20:28}}):(0,r.jsxs)(r.Fragment,{children:[g?(0,r.jsx)("button",{type:"button",className:"sidebar-chevron-btn sidebar-indent-indicator sidebar-chevron-always",onClick:e=>{e.stopPropagation(),x?.()},title:v(f?"sidebar_expandChild":"sidebar_collapseChild"),"data-tooltip":v(f?"sidebar_expandChild":"sidebar_collapseChild"),"aria-label":v(f?"sidebar_expandChild":"sidebar_collapseChild"),style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:6+14*h,top:"50%",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transform:`translateY(-50%)${f?" rotate(-90deg)":""}`,transition:"transform 0.15s"},children:(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}):(0,r.jsx)("span",{className:"sidebar-indent-placeholder","aria-hidden":"true",style:{position:"absolute",left:6+14*h,top:"50%",width:20,height:20,transform:"translateY(-50%)"}}),o&&(0,r.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:6+14*h,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",pointerEvents:"none"},children:(0,r.jsx)(eH,{size:18})}),(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,fontSize:K?11.5:12,fontWeight:400,lineHeight:1.4,color:n?"var(--accent-hover)":"var(--text)"},title:D,children:[!o&&s&&(0,r.jsx)(eD,{size:10}),P&&K&&(0,r.jsx)(eF,{startedAt:A,now:W.now,running:!0}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:D}),K&&e.subagent&&(0,r.jsx)("span",{title:`${v("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${v("sidebar_runCount",{count:e.subagent.runIndex})}`,style:{display:"inline-flex",alignItems:"center",flexShrink:0,padding:"0 5px",border:"1px solid color-mix(in srgb, var(--status-success) 42%, var(--border))",borderRadius:999,color:"var(--status-success)",fontSize:9,lineHeight:1.55},children:v("sidebar_subagentBadge")})]}),!K&&(0,r.jsxs)("div",{style:{marginTop:1,display:"flex",alignItems:"center",gap:8,color:"var(--text-dim)",fontSize:10.5,minWidth:0},children:[P&&(0,r.jsx)(eF,{startedAt:A,now:W.now,running:!0}),(0,r.jsx)("span",{title:e.modified,children:ec(e.modified,v)}),(0,r.jsx)("span",{children:v("sidebar_messagesCount",{count:e.messageCount})}),e.subagent&&(0,r.jsxs)("span",{title:`${v("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${v("sidebar_runCount",{count:e.subagent.runIndex})}`,style:{display:"flex",alignItems:"center",gap:4,color:"var(--text-muted)",minWidth:0,overflow:"hidden"},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontSize:9,padding:"0 5px",borderRadius:999,border:"1px solid color-mix(in srgb, var(--status-success) 42%, var(--border))",color:"var(--status-success)",lineHeight:1.55},children:v("sidebar_subagentBadge")}),(0,r.jsxs)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:10},children:[e.subagent.agent?`${e.subagent.agent} \xb7 `:"",v("sidebar_runCount",{count:e.subagent.runIndex})]})]}),e.worktreeBranch&&(0,r.jsxs)("span",{title:v("sidebar_worktreeTooltip",{path:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden"},children:[(0,r.jsx)(eR,{size:9}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.worktreeBranch})]})]})]}),(0,r.jsx)(e4,{session:e,title:D,canRename:E.canRename,canDelete:E.canDelete,canArchive:z,archiveDisabledReason:L,isPinned:u,onTogglePin:p,onRename:N,onDelete:O,onArchive:()=>c?.(e.id)})]})}),(0,r.jsx)(eY,{open:C,onClose:q,title:v("sidebar_deleteSession"),description:v("sidebar_deleteConfirm",{name:D}),width:400,closeLabel:v("dialog_close"),actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{disabled:I,onClick:q,children:v("sidebar_cancel")}),(0,r.jsx)(eW,{danger:!0,disabled:I,onClick:()=>void U(),children:v("sidebar_deleteSession")})]})})]})}function e9({open:e,onClose:t,resolveProjectRoot:n,onAdded:o}){let{t:s}=(0,el.s9)(),a=(0,i.useRef)(null),[l,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(!1),[g,f]=(0,i.useState)([]),[x,m]=(0,i.useState)(null),[v,y]=(0,i.useState)(!1),[b,w]=(0,i.useState)(!1),[k,j]=(0,i.useState)(null),[S,C]=(0,i.useState)(null),[_,I]=(0,i.useState)(!1),R=(0,i.useRef)(0);(0,i.useEffect)(()=>{I(!!window.piDesktop?.selectDirectory)},[]);let T=(0,i.useCallback)(()=>{d(""),u(null),h(!1),f([]),m(null),y(!1),w(!1),j(null),C(null)},[]),E=(0,i.useCallback)(async e=>{let t=++R.current;y(!0),w(!1),u(null);try{let n=await fetch(`/api/cwd/browse?path=${encodeURIComponent(e)}`);if(t!==R.current)return;if(!n.ok){f([]),m(null),w(!0),j(null),C(null);return}let r=await n.json();if(t!==R.current)return;d(r.path??e),j(r.path??e),C(r.parentPath??null),f(r.entries??[]),m(r.git??null),w(!1)}catch{if(t!==R.current)return;f([]),m(null),w(!0),j(null),C(null)}finally{t===R.current&&y(!1)}},[]);(0,i.useEffect)(()=>{e?E(""):T()},[e,T,E]);let M=(0,i.useCallback)(()=>{t()},[t]),z=(0,i.useCallback)(async e=>{let t=(e??k??l).trim();if(t&&!p){h(!0),u(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 u(r.error??`HTTP ${e.status}`);let i=r.cwd??t;o(i,n(i))}catch(e){u(e instanceof Error?e.message:String(e))}finally{h(!1)}}},[k,l,p,o,n]),L=(0,i.useCallback)(async()=>{let e=window.piDesktop;if(e)try{u(null);let t=await e.selectDirectory();null!==t&&(d(t),E(t))}catch(e){u(e instanceof Error?e.message:String(e))}},[E]),W=(0,i.useCallback)(async()=>{if(!p){h(!0),u(null);try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json().catch(()=>({}));if(!e.ok||t.error||!t.cwd)return void u(t.error??`HTTP ${e.status}`);o(t.cwd,n(t.cwd))}catch(e){u(e instanceof Error?e.message:String(e))}finally{h(!1)}}},[p,o,n]),A=!!(k&&l.trim()===k);return(0,r.jsx)(eY,{open:e,onClose:M,title:s("sidebar_addProjectDialog"),width:440,closeLabel:s("dialog_close"),initialFocusRef:a,description:s("sidebar_addProjectDescription"),actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{onClick:M,children:s("sidebar_cancel")}),(0,r.jsx)("span",{title:A?void 0:s("sidebar_browseOpenBeforeSelect"),children:(0,r.jsx)(eW,{primary:!0,disabled:p||!A,onClick:()=>void z(),children:s(p?"sidebar_validating":"sidebar_add")})})]}),children:(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=l.trim();t&&t!==k&&E(t)},children:[(0,r.jsx)("label",{htmlFor:"add-project-path",style:{display:"block",fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:s("sidebar_projectPath")}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,r.jsx)("input",{id:"add-project-path",ref:a,value:l,onChange:e=>{d(e.target.value),u(null)},onKeyDown:e=>{"Escape"!==e.key||p||(e.preventDefault(),M())},placeholder:"/path/to/project","aria-label":s("sidebar_projectPath"),autoComplete:"off",spellCheck:!1,style:{flex:1,minWidth:0,height:32,fontSize:12,fontFamily:"var(--font-mono)",padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,outline:"none",background:"var(--bg-panel)",color:"var(--text)",boxSizing:"border-box"}}),(0,r.jsx)(eW,{disabled:v||!l.trim(),onClick:()=>void E(l.trim()),children:s(v?"sidebar_browseLoading":"sidebar_browseGo")}),_&&(0,r.jsx)(eW,{onClick:()=>void L(),children:s("sidebar_selectDirectory")})]}),k&&(0,r.jsxs)("div",{style:{marginTop:10},children:[v&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseLoading")}),!v&&b&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseMissing")}),!v&&!b&&x&&(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:11,marginBottom:6,color:x.isRepo?"var(--text-muted)":"var(--text-dim)"},children:x.isRepo?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{style:{color:"var(--accent)",fontWeight:600},children:s("sidebar_browseGitRepo")}),x.branch&&(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10.5},children:x.branch})]}):(0,r.jsx)("span",{children:s("sidebar_browseNotGit")})}),!v&&!b&&(0,r.jsxs)("div",{style:{maxHeight:150,overflowY:"auto",overflowX:"hidden",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",padding:4},children:[S&&(0,r.jsx)("button",{type:"button",disabled:v,onClick:()=>{E(S)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"4px 8px",border:"none",background:"transparent",color:"var(--text-muted)",fontSize:12,cursor:"pointer",borderRadius:5,fontFamily:"var(--font-mono)"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:".."}),0===g.length?(0,r.jsx)("div",{style:{padding:"6px 8px",fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseEmpty")}):g.map(e=>(0,r.jsxs)("button",{type:"button",disabled:v,onClick:()=>{E(e.path)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"4px 8px",border:"none",background:"transparent",color:"var(--text)",fontSize:12,cursor:"pointer",borderRadius:5,textAlign:"left",fontFamily:"var(--font-mono)"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10.5},children:"▸"}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path))]})]}),c&&(0,r.jsx)("div",{role:"alert",style:{marginTop:8,color:"var(--status-danger)",fontSize:12,lineHeight:1.45,overflowWrap:"anywhere"},children:c}),(0,r.jsxs)("div",{style:{marginTop:14,paddingTop:12,borderTop:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,r.jsx)("span",{style:{fontSize:11.5,color:"var(--text-dim)"},children:s("sidebar_noExistingDirectory")}),(0,r.jsxs)(eW,{disabled:p,onClick:()=>void W(),children:[(0,r.jsx)(e_,{size:13}),s("sidebar_createDefaultDirectory")]})]})]})})}function e7({cwd:e,tab:t}){let{t:n}=(0,el.s9)(),[o,s]=(0,i.useState)(null),[a,l]=(0,i.useState)(null),[d,c]=(0,i.useState)(!0),[u,p]=(0,i.useState)(!1),[h,g]=(0,i.useState)(null),[f,x]=(0,i.useState)(!1),[m,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(""),[w,k]=(0,i.useState)(""),j=(0,i.useCallback)(async()=>{c(!0),g(null);try{let t=await fetch(`/api/project-assets?cwd=${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`HTTP ${t.status}`)}let n=await t.json();s(n.rulesContent??""),l(Array.isArray(n.skills)?n.skills:[])}catch(e){g(e instanceof Error?e.message:String(e))}finally{c(!1)}},[e]);(0,i.useEffect)(()=>{j()},[j]);let S=(0,i.useCallback)(async t=>{let n=await fetch("/api/project-assets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,...t})});if(!n.ok)throw Error((await n.json().catch(()=>({}))).error??`HTTP ${n.status}`);return!0},[e]),C=(0,i.useCallback)(async()=>{if(null!==o){p(!0),g(null),x(!1);try{await S({kind:"rules",content:o}),x(!0),window.setTimeout(()=>x(!1),2e3)}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[o,S]),_=(0,i.useCallback)(async()=>{let e=w.trim();if(e){p(!0),g(null);try{await S({kind:"skill",action:"create",name:e}),k(""),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[w,S,j]),I=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"update",name:e,content:y}),v(null),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[y,S,j]),R=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"toggle",name:e.name,enabled:!e.enabled}),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,j]),T=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"delete",name:e}),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,j]),E={width:"100%",minHeight:200,padding:"10px 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,lineHeight:1.55,outline:"none",fontFamily:"var(--font-mono)",whiteSpace:"pre",overflow:"auto",boxSizing:"border-box",resize:"vertical"};return d?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:n("common_loading")}):(0,r.jsxs)("div",{children:[h&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:10,whiteSpace:"pre-wrap"},children:h}),"rules"===t?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:8,fontFamily:"var(--font-mono)"},children:[e,"/AGENTS.md"]}),(0,r.jsx)("textarea",{value:o??"",onChange:e=>s(e.target.value),spellCheck:!1,"aria-label":n("projectAssets_rules"),style:E}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:10},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void C(),disabled:u||null===o,style:{minHeight:30,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u||null===o?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u||null===o?.6:1},children:u?n("common_saving"):n("common_save")}),f&&(0,r.jsx)("span",{style:{fontSize:12,color:"var(--accent)"},children:n("common_saved")})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginBottom:12},children:[(0,r.jsx)("input",{type:"text",value:w,onChange:e=>k(e.target.value),placeholder:n("projectAssets_newSkillName"),"aria-label":n("projectAssets_newSkillName"),style:{flex:1,height:30,padding:"0 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}}),(0,r.jsx)("button",{type:"button",onClick:()=>void _(),disabled:u||!w.trim(),style:{minHeight:30,padding:"0 12px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u||!w.trim()?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u||!w.trim()?.6:1},children:n("projectAssets_addSkill")})]}),a?.length===0?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:n("projectAssets_noSkills")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:(a??[]).map(e=>(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,r.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,color:"var(--text-muted)",cursor:"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:()=>void R(e),disabled:u}),n("projectAssets_enabled")]}),(0,r.jsx)("button",{type:"button",onClick:()=>{v(e.name),b(e.content)},style:{fontSize:11,color:"var(--accent)",cursor:"pointer",background:"none",border:"none"},children:n("projectAssets_edit")}),(0,r.jsx)("button",{type:"button",onClick:()=>void T(e.name),disabled:u,style:{fontSize:11,color:"var(--status-danger)",cursor:u?"not-allowed":"pointer",background:"none",border:"none"},children:n("common_remove")})]}),m===e.name&&(0,r.jsxs)("div",{style:{padding:8},children:[(0,r.jsx)("textarea",{value:y,onChange:e=>b(e.target.value),spellCheck:!1,"aria-label":`${e.name} SKILL.md`,style:E}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginTop:8},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void I(e.name),disabled:u,style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u?.6:1},children:u?n("common_saving"):n("common_save")}),(0,r.jsx)("button",{type:"button",onClick:()=>v(null),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:n("common_cancel")})]})]})]},e.name))})]})]})}function te({projectRoot:e,initialName:t,onClose:n,onSaveName:o}){let{t:s}=(0,el.s9)(),a=(0,i.useRef)(null),[l,d]=(0,i.useState)("name"),[c,u]=(0,i.useState)(t);return(0,i.useEffect)(()=>{null!==e&&(d("name"),u(t))},[e,t]),(0,r.jsxs)(eY,{open:null!==e,onClose:n,title:s("sidebar_editProject"),width:720,height:620,closeLabel:s("dialog_close"),description:e?s("sidebar_editProjectDescription",{path:e}):void 0,children:[(0,r.jsx)("div",{style:{display:"flex",gap:8,marginBottom:14,flexWrap:"wrap"},children:[["name",s("sidebar_projectName")],["rules",s("sidebar_projectRules")],["skills",s("sidebar_projectSkills")]].map(([e,t])=>(0,r.jsx)("button",{type:"button",onClick:()=>d(e),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:l===e?"var(--bg-selected)":"var(--bg-panel)",color:l===e?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:l===e?600:400},"aria-current":l===e?"page":void 0,children:t},e))}),"name"===l?(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=c.trim();t&&o(t)},children:[(0,r.jsx)("label",{htmlFor:"edit-project-name",style:{display:"block",fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:s("sidebar_projectName")}),(0,r.jsx)("input",{id:"edit-project-name",ref:a,value:c,onChange:e=>u(e.target.value),placeholder:s("sidebar_projectName"),"aria-label":s("sidebar_projectName"),"aria-invalid":!c.trim(),autoComplete:"off",spellCheck:!1,style:{width:"100%",height:32,fontSize:12.5,padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,outline:"none",background:"var(--bg-panel)",color:"var(--text)",boxSizing:"border-box"}}),!c.trim()&&(0,r.jsx)("div",{style:{marginTop:6,fontSize:11.5,color:"var(--status-danger)"},children:s("sidebar_projectNameRequired")}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginTop:14},children:[(0,r.jsx)("button",{type:"submit",disabled:!c.trim(),style:{minHeight:30,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:c.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,opacity:c.trim()?1:.6},children:s("sidebar_save")}),(0,r.jsx)("button",{type:"button",onClick:n,style:{minHeight:30,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:s("sidebar_cancel")})]})]}):e&&(0,r.jsx)(e7,{cwd:e,tab:"skills"===l?"skills":"rules"})]})}async function tt(e,t,n){try{let r=await n(e,t),i=await r.json().catch(()=>({}));return{ok:r.ok,status:r.status,error:i.error}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function tn(e){if(!e.archivedAt)return-1/0;let t=Date.parse(e.archivedAt);return Number.isNaN(t)?-1/0:t}function tr(e,t=60){let n=e.name?.trim()||e.firstMessage.trim()||e.id;return n.length<=t?n:`${n.slice(0,t)}…`}function ti(e){return e.ok?"other":409===e.status?"running":403===e.status?"readOnly":0===e.status?"network":"other"}function to({sessions:e,count:t,homeDir:n,loading:o,onRefresh:s,onBack:a}){let{t:l}=(0,el.s9)(),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)({sessionId:null}),[g,f]=(0,i.useState)(null);(0,i.useEffect)(()=>{s()},[s]);let x=(0,i.useCallback)(e=>{let t=ti(e);return"running"===t?l("archive_runningConflict"):"readOnly"===t?l("archive_readOnlyForbidden"):"network"===t?l("archive_networkError"):e.error??l("archive_unknownError")},[l]),m=(0,i.useCallback)(async e=>{if(null===c){u(e.id),f(null);try{let t=await function(e,t=fetch){return tt(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void f(l("archive_restoreFailed",{error:x(t)}));s()}catch(e){f(l("archive_restoreFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,s,l,x]),v=(0,i.useCallback)(async e=>{if(null===c){u(e.id),f(null);try{let t=await function(e,t=fetch){return tt(`/api/sessions/${encodeURIComponent(e)}`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void f(l("archive_deleteFailed",{error:x(t)}));h({sessionId:null}),s()}catch(e){f(l("archive_deleteFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,s,l,x]),y=[...e].sort((e,t)=>{let n=tn(e),r=tn(t);return n===r?0:n===-1/0?1:r===-1/0?-1:r-n}),b=p.sessionId?y.find(e=>e.id===p.sessionId)??null:null,w=b?tr(b):"",k=!!b&&c===b.id;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("button",{type:"button",onClick:a,"data-tooltip":l("archive_back"),"aria-label":l("archive_back"),className:"sidebar-icon-btn",style:{display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,r.jsx)(eI,{size:14})}),(0,r.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12.5,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l("archive_viewTitle")}),(0,r.jsx)("span",{title:l("archive_viewCount",{count:t}),style:{flexShrink:0,minWidth:18,padding:"1px 6px",boxSizing:"border-box",borderRadius:999,background:"var(--bg-selected)",color:"var(--text-muted)",fontSize:10,fontWeight:600,textAlign:"center"},children:t})]}),g&&(0,r.jsx)("div",{role:"alert",style:{padding:"6px 10px",borderBottom:"1px solid var(--border)",background:"var(--status-danger-bg)",color:"var(--status-danger)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere",flexShrink:0},children:g}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",overflowY:"auto",padding:"4px 0",minHeight:80},children:[o&&0===y.length&&(0,r.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:l("sidebar_loading")}),!o&&0===y.length&&(0,r.jsxs)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.7},children:[l("archive_empty"),(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:l("archive_emptyHint")})]}),y.map(e=>{let t=tr(e),i=c===e.id;return(0,r.jsxs)("div",{"data-archive-session-id":e.id,style:{display:"flex",alignItems:"center",gap:6,margin:"1px 6px",padding:"7px 8px",borderRadius:6,background:"transparent",opacity:i?.5:1},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{title:t,style:{fontSize:12,fontWeight:500,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4},children:t}),(0,r.jsxs)("div",{style:{fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4,marginTop:1},children:[d(e.cwd,n)," \xb7 ",l("archive_archivedAt",{date:ec(e.archivedAt??e.modified,l)})]})]}),(0,r.jsx)("button",{type:"button",disabled:i,onClick:()=>void m(e),title:l("archive_restore"),style:{padding:"3px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:11,cursor:i?"not-allowed":"pointer",flexShrink:0},children:i?l("archive_restoring"):l("archive_restore")}),(0,r.jsx)("button",{type:"button",disabled:i,onClick:()=>h({sessionId:e.id}),title:l("archive_delete"),"aria-label":l("archive_delete"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:i?"not-allowed":"pointer",flexShrink:0},children:(0,r.jsx)(eE,{size:13})})]},e.id)})]}),(0,r.jsx)(eY,{open:null!==b,onClose:()=>{k||h({sessionId:null})},title:l("archive_delete"),description:b?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{fontWeight:600,color:"var(--text)",marginBottom:4},children:w}),(0,r.jsx)("div",{children:l("archive_deleteConfirm")})]}):l("archive_deleteConfirm"),width:400,closeLabel:l("dialog_close"),closeOnBackdrop:!k,closeOnEsc:!k,actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{disabled:k,onClick:()=>h({sessionId:null}),children:l("archive_deleteCancel")}),(0,r.jsx)(eW,{danger:!0,disabled:k||!b,onClick:()=>{b&&v(b)},children:k?l("archive_deleting"):l("archive_deleteConfirmButton")})]})})]})}function ts(e,t){let n=new Set(e);for(let e of t)n.add(e);return n}function ta(e){let t=e?.now??(()=>Date.now()),n={serverSessions:[],pendingById:new Map,pendingIds:new Set,deletedIds:new Set,archivedSessions:[],archivedCount:0,runningIds:new Set,startingIds:new Set,runningStartedAt:new Map,runningEpoch:new Map,unread:(0,ed.oJ)(),loading:!1,error:null,serverListLoaded:!1,listStatus:"idle"},r=new Set,i=()=>{for(let e of r)e()},o=()=>ts(n.runningIds,n.startingIds),s={getState:()=>n,getSnapshot(e=null){let t=function(e){let{serverSessions:t,pendingSessions:n,pendingIds:r=new Set(n.map(e=>e.id)),deletedIds:i}=e,o=new Map;for(let e of t)i?.has(e.id)||o.set(e.id,e);for(let e of n)!(i?.has(e.id)||o.has(e.id))&&r.has(e.id)&&o.set(e.id,e);return[...o.values()].sort(ee)}({serverSessions:n.serverSessions,pendingSessions:[...n.pendingById.values()],pendingIds:n.pendingIds,deletedIds:n.deletedIds}),r=o(),i=(0,ed.hA)(n.unread);for(let e of r)i.delete(e);return e&&i.delete(e),{sessions:t,archivedSessions:n.archivedSessions,archivedCount:n.archivedCount,runningIds:new Set(n.runningIds),startingIds:new Set(n.startingIds),effectiveRunningIds:r,unreadIds:i,loading:n.loading,error:n.error,serverListLoaded:n.serverListLoaded,listStatus:n.listStatus,runningStartedAt:new Map(n.runningStartedAt)}},subscribe:e=>(r.add(e),()=>{r.delete(e)}),applyServerList(e){let t=e.archivedSessions??[];n.serverSessions=[...e.sessions],n.archivedSessions=t,n.archivedCount=e.archivedCount??t.length,n.loading=!1,n.error=null,n.serverListLoaded=!0,n.listStatus="ready",((e,t)=>{let r=new Set(t.map(e=>e.id)),i=new Set(e.map(e=>e.id)),o=!1,s=new Map(n.pendingById);for(let e of[...s.keys()])(i.has(e)||r.has(e)||n.deletedIds.has(e))&&(s.delete(e),o=!0);let a=function(e,t){if(0===e.size)return e;let n=new Set(t.map(e=>e.id)),r=!1,i=new Set;for(let t of e){if(n.has(t)){r=!0;continue}i.add(t)}return r?i:e}(n.pendingIds,e);for(let e of[...a])(r.has(e)||n.deletedIds.has(e))&&a.delete(e);o&&(n.pendingById=s),n.pendingIds=a})(e.sessions,t);let r=new Set([...e.sessions.map(e=>e.id),...n.pendingIds]);if(n.unread=(0,ed.v7)(n.unread,r),e.runningSessionIds&&0===n.runningIds.size&&0===n.startingIds.size)s.applyRunningSnapshot({runningIds:e.runningSessionIds,runningStartedAt:e.runningStartedAt,selectedSessionId:e.selectedSessionId,now:e.now});else if(e.runningStartedAt){let t=new Map(n.runningStartedAt);for(let[n,r]of Object.entries(e.runningStartedAt))t.has(n)||"number"!=typeof r||t.set(n,r);n.runningStartedAt=t}i()},applyListError(e){n.loading=!1,n.error=e,n.listStatus="error",n.serverListLoaded=!0,i()},beginListLoad(){"idle"===n.listStatus&&(n.listStatus="loading"),n.loading=0===n.serverSessions.length&&0===n.pendingById.size,i()},upsertPending(e){if(n.deletedIds.has(e.id))return;let t=new Map(n.pendingById);t.set(e.id,e),n.pendingById=t;let r=new Set(n.pendingIds);r.add(e.id),n.pendingIds=r,i()},removePending(e){if(!n.pendingById.has(e)&&!n.pendingIds.has(e))return;let t=new Map(n.pendingById);t.delete(e),n.pendingById=t;let r=new Set(n.pendingIds);r.delete(e),n.pendingIds=r,i()},markDeleted(e){let t=new Set(n.deletedIds);t.add(e),n.deletedIds=t,s.removePending(e);let r=new Set(n.startingIds);r.delete(e),n.startingIds=r,i()},markStarting(e,r=t()){if(!e)return;let o=new Set(n.startingIds);o.add(e),n.startingIds=o;let s=new Map(n.runningStartedAt);s.has(e)||s.set(e,r),n.runningStartedAt=s,i()},clearStarting(e){if(!n.startingIds.has(e))return;let t=new Set(n.startingIds);t.delete(e),n.startingIds=t,i()},applyRunningSnapshot(e){let r=new Set(e.runningIds),s=o(),a=new Map(n.runningStartedAt),l=new Map(n.runningEpoch),d=e.now??t(),c=new Date(d).toISOString();if(e.runningStartedAt)for(let[t,i]of Object.entries(e.runningStartedAt)){if("number"!=typeof i)continue;let o=a.get(t);void 0!==o&&o!==i&&r.has(t)&&(l.set(t,(l.get(t)??0)+1),n.unread=(0,ed.du)(n.unread,new Set([t]),new Set,e.selectedSessionId??null,c)),a.set(t,i)}for(let e of r)a.has(e)||a.set(e,d);for(let e of[...a.keys()])r.has(e)||n.startingIds.has(e)||a.delete(e);let u=ts(r,n.startingIds);for(let t of(n.unread=(0,ed.du)(n.unread,s,u,e.selectedSessionId??null,c),n.runningIds=r,n.runningStartedAt=a,n.runningEpoch=l,r))if(n.startingIds.has(t)){let e=new Set(n.startingIds);e.delete(t),n.startingIds=e}i()},markRead(e,r=new Date(t()).toISOString()){let o=(0,ed.AH)(n.unread,e,r);o!==n.unread&&(n.unread=o,i())},replaceUnread(e){n.unread=e,i()}};return s}function tl({selectedSessionId:e,onSelectSession:t,onNewSession:n,initialSessionId:o,skipInitialProjectSelection:s,onInitialRestoreDone:u,restoreNonce:p=0,refreshKey:h,onSessionDeleted:k,onProjectAdded:j,catalogStore:S}){let{t:C}=(0,el.s9)(),_=(0,i.useRef)(S??null);_.current||(_.current=S??ta()),S&&(_.current=S);let I=_.current,[R,E]=(0,i.useState)(0),M=(0,i.useRef)(e);M.current=e;let z=(0,i.useMemo)(()=>I.getSnapshot(M.current),[R,e]),P=z.sessions,$=z.serverListLoaded,H=z.loading,F=z.error,D=z.archivedSessions,N=z.archivedCount,B=z.runningIds,O=(0,i.useRef)(P);O.current=P;let U=(0,i.useRef)(0),{cwd:q,projectRoot:K}=ea(),{setIdentity:V,getIdentitySnapshot:J}=es(),[Q,en]=(0,i.useState)(""),[ei,eo]=(0,i.useState)(!1),[ec,eu]=(0,i.useState)(null),[eh,ex]=(0,i.useState)(null),ev=(0,i.useRef)(!0),eC=(0,i.useRef)(null),[e_,eR]=(0,i.useState)(!1),eT=z.effectiveRunningIds,[eE,eM]=(0,i.useState)(!1),[ez,eW]=(0,i.useState)(null),[eP,e$]=(0,i.useState)(null),[eH,eF]=(0,i.useState)(()=>new Set),eD=(0,i.useRef)(null),[eB,eO]=(0,i.useState)(()=>Date.now()),[eU,eq]=(0,i.useState)(()=>new Map),eK=eT.size>0||eH.size>0;(0,i.useEffect)(()=>{if(!eK)return;let e=setInterval(()=>eO(Date.now()),1e3);return()=>clearInterval(e)},[eK]),(0,i.useEffect)(()=>{let e=Date.now();eO(e),eq(t=>(function(e,t,n,r){let i=new Map,o=e.size!==t.length;for(let s of t){let t=function(e,t){let n=e?.get(t);return"number"==typeof n?n:void 0}(n,s)??e.get(s)??r;e.get(s)!==t&&(o=!0),i.set(s,t)}return o?i:e})(t,[...eT,...eH],z.runningStartedAt,e))},[eT,eH,z.runningStartedAt]);let eV=z.unreadIds,[eJ,eY]=(0,i.useState)(""),[eG,eZ]=(0,i.useState)(!1),[eX,eQ]=(0,i.useState)("meta"),[e0,e1]=(0,i.useState)([]),[e2,e4]=(0,i.useState)([]),[e5,e7]=(0,i.useState)(null),[tn,tr]=(0,i.useState)(!1),[ts,td]=(0,i.useState)(null),tc=(0,i.useRef)(0),tu=(0,i.useRef)(null),[tp,th]=(0,i.useState)(!1),[tg,tf]=(0,i.useState)(null),tx=(0,i.useRef)(null),tm=(0,i.useRef)(null),tv=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!tp||!tv.current)return;let e=requestAnimationFrame(()=>{let e=tm.current,t=tv.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||tf(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(e)},[tp]);let[ty,tb]=(0,i.useState)(()=>L()),[tw,tk]=(0,i.useState)({}),[tj,tS]=(0,i.useState)(()=>new Set),tC=(0,i.useRef)(new Set),t_=(0,i.useRef)(null),tI=(0,i.useRef)(!1),tR=(0,i.useRef)(null),tT=(0,i.useRef)(new Set),tE=(0,i.useRef)(new Set),tM=(0,i.useRef)(!1),tz=(0,i.useRef)(0),tL=(0,i.useRef)(0),tW=(0,i.useRef)(null),tA=(0,i.useCallback)((e,t)=>{tz.current+=1,I.applyRunningSnapshot({runningIds:[...e],runningStartedAt:t,selectedSessionId:M.current,now:Date.now()})},[I]),tP=(0,i.useCallback)(e=>{tb(t=>{let n=e(t);if(n!==t){let e={...n,sidebarWidth:L().sidebarWidth};W(e),(0,Z.dM)("sidebarUi",A(e))}return n})},[]),t$=(0,Z.Fd)(),tH=(0,i.useMemo)(()=>{let e=t$.projectAliases,t="object"!=typeof e||null===e||Array.isArray(e)?{}:e;return{...ty.projectAliases,...t}},[ty.projectAliases,t$]);(0,i.useEffect)(()=>{let e=t$.sidebarUi;void 0!==e&&tb(t=>{let n=function(e,t){if("object"!=typeof t||null===t||Array.isArray(t))return e;let n=T({...e,...t});return{...e,displayMode:n.displayMode,collapsedProjectRoots:n.collapsedProjectRoots,collapsedWorktreePaths:n.collapsedWorktreePaths,closedProjectRoots:n.closedProjectRoots,addedProjectRoots:n.addedProjectRoots,showRecentSessions:n.showRecentSessions,pinnedSessionIds:n.pinnedSessionIds,projectSort:n.projectSort,projectOrder:n.projectOrder}}(t,e);return JSON.stringify(A(t))===JSON.stringify(A(n))?t:(W({...n,sidebarWidth:L().sidebarWidth}),n)})},[t$]);let tF=ty.displayMode,tD=ty.showRecentSessions,[tN,tB]=(0,i.useState)(5),tO=(0,i.useMemo)(()=>new Set(ty.collapsedProjectRoots),[ty.collapsedProjectRoots]),tU=(0,i.useMemo)(()=>new Set(ty.collapsedWorktreePaths),[ty.collapsedWorktreePaths]),tq=(0,i.useMemo)(()=>new Set(ty.closedProjectRoots),[ty.closedProjectRoots]);(0,i.useEffect)(()=>I.subscribe(()=>E(e=>e+1)),[I]);let tK=(0,i.useCallback)(async(e=!1)=>{let t=++U.current;if(e&&0===O.current.length&&!$){let e=Y();if(e&&e.length>0){if(!ev.current||!et(t,U.current))return;I.applyServerList({sessions:e,archivedSessions:[],archivedCount:0})}}I.beginListLoad();try{let n=await fetch("/api/sessions");if(!ev.current||!et(t,U.current))return;if(!n.ok)throw Error(`HTTP ${n.status}`);let r=await n.json();if(!ev.current||!et(t,U.current))return;I.applyServerList({sessions:r.sessions,archivedSessions:r.archivedSessions??[],archivedCount:r.archivedCount??0,runningSessionIds:r.runningSessionIds,runningStartedAt:r.runningStartedAt,selectedSessionId:M.current,now:Date.now()}),G(r.sessions),e||(eR(!0),tW.current&&clearTimeout(tW.current),tW.current=setTimeout(()=>{ev.current&&eR(!1)},2e3))}catch(e){if(!ev.current||!et(t,U.current))return;I.applyListError(String(e))}},[I,$,O]),tV=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=!tV.current;tV.current=!0,tK(e)},[tK,h]),(0,i.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&tK(!1)};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",e)}},[tK]);let{worktreeSnapshots:tJ,worktreeSnapshotsRef:tY,worktreeMetadata:tG,setWtRefreshKey:tZ,commitWorktreeSnapshots:tX}=function({allSessions:e,selectedCwd:t,selectedProjectRoot:n,setIdentity:r,getIdentitySnapshot:o,mountedRef:s}){let[a,d]=(0,i.useState)({}),c=(0,i.useRef)({}),[u,p]=(0,i.useState)({}),h=(0,i.useRef)(new Set),g=(0,i.useRef)(new Map),[f,x]=(0,i.useState)(0),m=(0,i.useCallback)(e=>{d(t=>{let n=e(t);return c.current=n,n})},[]);(0,i.useEffect)(()=>()=>{g.current.clear()},[]);let v=(0,i.useCallback)(async e=>{if(h.current.has(e))return;let t=`${Date.now()}:${Math.random()}`;h.current.add(e),g.current.set(e,t),m(t=>er(t,e,{status:"loading"}));try{var n;let i=await fetch(`/api/worktrees?cwd=${encodeURIComponent(e)}`),a=await i.json().catch(()=>({}));if(!i.ok||a.error||!a.projectRoot)throw Error(a.error??`HTTP ${i.status}`);if(!s.current||g.current.get(e)!==t)return;let l=a.projectRoot,d=a.worktrees??[];m(t=>l===e?er(t,e,{status:"ready",worktrees:d}):er(function(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n}(t,e),l,{status:"ready",worktrees:d})),p(t=>{let n={isGit:a.isGit??!1,isTopLevel:a.isTopLevel??!1};return l===e?{...t,[e]:n}:{...t,[l]:n}});let c=o();(n={snapshotCwd:c.cwd,snapshotProjectRoot:c.projectRoot,requestedRoot:e,canonicalRoot:l}).snapshotCwd&&(n.snapshotCwd===n.requestedRoot||n.snapshotProjectRoot===n.requestedRoot||n.snapshotCwd===n.canonicalRoot||n.snapshotProjectRoot===n.canonicalRoot)&&r({cwd:c.cwd,projectRoot:l,branch:d.find(e=>e.path===c.cwd)?.branch??c.branch,isGit:a.isGit??!1,isTopLevel:a.isTopLevel??!1,status:"ready",error:null})}catch(n){if(!s.current||g.current.get(e)!==t)return;m(t=>er(t,e,{status:"error",error:n instanceof Error?n.message:String(n)}))}finally{g.current.get(e)===t&&(g.current.delete(e),h.current.delete(e))}},[m,o,r,s]),y=(0,i.useMemo)(()=>{var r,i,o;return r=l(e),i=t,(o=n)?r.includes(o)?r:[o,...r]:i&&!r.includes(i)?[i,...r]:r},[e,t,n]),b=(0,i.useRef)(new Map);return(0,i.useEffect)(()=>{let e=`wt:${Math.max(0,Math.floor(f))}`,t=y.filter(t=>b.current.get(t)!==e);for(let n of t)b.current.set(n,e);let n=!1;return Promise.all(Array.from({length:Math.min(3,t.length)},async()=>{for(;!n;){let e=t.shift();if(!e)return;await v(e)}})),()=>{n=!0}},[y,f,v]),{worktreeSnapshots:a,worktreeSnapshotsRef:c,worktreeMetadata:u,wtRefreshKey:f,setWtRefreshKey:x,commitWorktreeSnapshots:m,fetchProjectWorktrees:v,knownProjectRoots:y}}({allSessions:P,selectedCwd:q,selectedProjectRoot:K,setIdentity:V,getIdentitySnapshot:J,mountedRef:ev});(0,i.useEffect)(()=>{let e=(0,ed.mD)([...(0,ed.Uj)()]);I.replaceUnread(e)},[I]),(0,i.useEffect)(()=>{let e=I.getState().unread,t=(0,ed.hA)(e);(0,ed.Xb)(t)},[R,I]),(0,i.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);"running"===t.type&&(tM.current=!0,tA((t.runningSessionIds??[]).filter(e=>"string"==typeof e),t.runningStartedAt&&"object"==typeof t.runningStartedAt?t.runningStartedAt:void 0))}catch{}},()=>e.close()},[tA]),(0,i.useEffect)(()=>{let e=()=>{if("visible"!==document.visibilityState)return;let e=++tL.current,t=tz.current;fetch("/api/agent/running",{cache:"no-store"}).then(e=>e.json()).then(n=>{!Array.isArray(n.runningSessionIds)||ev.current&&(0,ed._i)(t,tz.current,e,tL.current)&&(tM.current=!0,tA(n.runningSessionIds.filter(e=>"string"==typeof e),n.runningStartedAt&&"object"==typeof n.runningStartedAt?n.runningStartedAt:void 0))}).catch(()=>void 0)};return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[tA]);let tQ=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/subagent-runs?limit=50");if(!e.ok)return;let t=((await e.json()).runs??[]).filter(e=>"running"===e.state||"queued"===e.state||"paused"===e.state),n=new Set;for(let e of t)for(let t of e.steps??[])t.sessionId&&n.add(t.sessionId);let r=new Set;if(n.size>0)for(let e of O.current)e.subagent?.parentSessionId&&n.has(e.id)&&r.add(e.subagent.parentSessionId);eF(new Set([...n,...r]))}catch{}},[]);(0,i.useEffect)(()=>(tQ(),eD.current=setInterval(()=>void tQ(),3e4),()=>{eD.current&&clearInterval(eD.current)}),[tQ]),(0,i.useEffect)(()=>{e_&&tQ()},[e_,tQ]),(0,i.useEffect)(()=>{tT.current=new Set(B),tE.current=new Set(eT)},[eT,B]);let t0=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{let e=t0.current,t=[...B].filter(t=>!e.has(t));t0.current=new Set(B),t.length>0&&tK(!1)},[B,tK]),(0,i.useEffect)(()=>{e&&I.markRead(e)},[e,I]),(0,i.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&en(e.home)}).catch(()=>{})},[]);let t1=(0,i.useRef)(!1);(0,i.useEffect)(()=>{t1.current=!1},[p]),(0,i.useEffect)(()=>()=>{ev.current=!1},[]);let t2=(0,i.useCallback)(e=>{if(!e)return null;if(q===e&&K)return K;for(let[t,n]of Object.entries(tY.current))if(n.worktrees.some(t=>t.path===e))return t;let t=P.find(t=>t.cwd===e);return t?.projectRoot??e},[q,K,P]),t4=(0,i.useCallback)((e,t)=>{let n=null===e?null:t??t2(e)??e;V({cwd:e,projectRoot:n,status:e?"ready":"idle",error:null})},[t2,V]),t6=K??t2(q),{wtNewForProject:t5,setWtNewForProject:t8,wtNewBranch:t3,setWtNewBranch:t9,wtError:t7,setWtError:ne,wtErrorRoot:nt,setWtErrorRoot:nn,wtBusy:nr,wtConfirmRemove:ni,setWtConfirmRemove:no,handleCreateWorktree:ns,handleRemoveWorktree:na}=function({selectedCwd:e,selectCwd:t,commitWorktreeSnapshots:n,setWtRefreshKey:r}){let[o,s]=(0,i.useState)(null),[a,l]=(0,i.useState)(""),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(null);(0,i.useEffect)(()=>{s(null),l(""),c(null),p(null),x(null)},[e]);let m=(0,i.useCallback)(async()=>{let e=a.trim();if(e&&!h&&o){g(!0),c(null),p(null);try{let i=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:o,branch:e})}),a=await i.json().catch(()=>({}));if(!i.ok||a.error||!a.path){c(a.error??`HTTP ${i.status}`),p(o);return}s(null),l(""),n(t=>er(t,o,{status:"ready",worktrees:[...t[o]?.worktrees??[],{path:a.path,branch:e,isMain:!1}]})),t(a.path,o),r(e=>e+1)}catch(e){c(e instanceof Error?e.message:String(e)),p(o)}finally{g(!1)}}},[o,a,h,n,t,r]),v=(0,i.useCallback)(async(n,i,o)=>{if(!h){g(!0),c(null),p(null);try{let s=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,path:i,force:o})}),a=await s.json().catch(()=>({}));if(!s.ok){if(a.dirty&&!o)return void x(i);c(a.error??`HTTP ${s.status}`),p(n);return}x(null),e===i&&t(n,n),r(e=>e+1)}catch(e){c(e instanceof Error?e.message:String(e)),p(n)}finally{g(!1)}}},[h,e,t,r]);return{wtNewForProject:o,setWtNewForProject:s,wtNewBranch:a,setWtNewBranch:l,wtError:d,setWtError:c,wtErrorRoot:u,setWtErrorRoot:p,wtBusy:h,wtConfirmRemove:f,setWtConfirmRemove:x,handleCreateWorktree:m,handleRemoveWorktree:v}}({selectedCwd:q,selectCwd:(e,t)=>t4(e,t),commitWorktreeSnapshots:tX,setWtRefreshKey:tZ});(0,i.useEffect)(()=>{if(!s||o){if(o&&!t1.current){if(F&&$){t1.current=!0,u?.({error:F});return}if(!$)return;let e=P.find(e=>e.id===o);if(e){t1.current=!0,t(e,!0),u?.({found:!0});return}t1.current=!0,u?.({found:!1});return}if(0!==P.length&&null===q){let e=l(P).find(e=>!tq.has(e));e&&t4(e)}}},[P,q,o,s,t,u,t4,tq,$,F,p]);let nl=(0,i.useCallback)(()=>{eo(!1)},[]),nd=(0,i.useCallback)(e=>{tP(t=>t.closedProjectRoots.includes(e)?{...t,closedProjectRoots:t.closedProjectRoots.filter(t=>t!==e)}:t)},[tP]),nc=(0,i.useCallback)((e,t)=>{tP(e=>e.addedProjectRoots.includes(t)?e:{...e,addedProjectRoots:[...e.addedProjectRoots,t]}),nd(t),nl(),j?.(t)},[tP,nd,nl,j]),nu=(0,i.useCallback)(()=>{eo(!0)},[]);(0,i.useEffect)(()=>{if(!tp)return;let e=e=>{!tx.current||tx.current.contains(e.target)||tm.current?.contains(e.target)||th(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[tp]);let np=(0,i.useCallback)(e=>{t(e)},[t]),nh=(0,i.useCallback)(e=>{tP(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:t),I.markDeleted(e),k?.(e),tK()},[I,k,tK,tP]),ng=(0,i.useCallback)(async e=>{if(null===ez){eW(e),e$(null);try{let t=await function(e,t=fetch){return tt(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"POST"},t)}(e);if(!t.ok){let e=ti(t);e$("running"===e?C("archive_runningConflict"):"readOnly"===e?C("archive_readOnlyForbidden"):"network"===e?C("archive_networkError"):t.error??C("archive_unknownError"));return}tP(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:t),tK()}catch(e){e$(e instanceof Error?e.message:String(e))}finally{eW(null)}}},[ez,tK,C,tP]),nf=(0,i.useCallback)(()=>{eM(e=>(e||e$(null),!e))},[]),nx=(0,i.useCallback)(e=>{tP(t=>t.showRecentSessions===e?t:{...t,showRecentSessions:e})},[tP]),nm=(0,i.useMemo)(()=>new Set(ty.pinnedSessionIds),[ty.pinnedSessionIds]),nv=(0,i.useMemo)(()=>(function(e){let{sessions:t,pinnedSessionIds:n,closedProjectRoots:r}=e,i=new Map;for(let e of t){if(e.subagent)continue;let t=e.projectRoot??e.cwd;t&&r?.has(t)||i.set(e.id,e)}let o=[],s=new Set;for(let e of n){let t=i.get(e);t&&!s.has(e)&&(s.add(e),o.push(t))}return o})({sessions:P,pinnedSessionIds:ty.pinnedSessionIds,closedProjectRoots:tq}),[P,ty.pinnedSessionIds,tq]),ny=(0,i.useCallback)(e=>{tP(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:{...t,pinnedSessionIds:[e,...t.pinnedSessionIds]})},[tP]),nb=(0,i.useMemo)(()=>(function(e){let{sessions:t,closedProjectRoots:n,excludeIds:r,limit:i=20}=e,o=Math.max(0,Math.floor(i));return t.filter(e=>{if(e.subagent||r?.has(e.id))return!1;let t=e.projectRoot??e.cwd;return!(t&&n?.has(t))}).slice().sort(ee).slice(0,o)})({sessions:P,closedProjectRoots:tq,excludeIds:nm,limit:20}),[P,tq,nm]);(0,i.useEffect)(()=>{tB(e=>0===nb.length?5:Math.min(Math.max(e,5),nb.length))},[nb.length]);let nw=(0,i.useCallback)((e=q)=>{e&&(t4(e,t2(e)),n?.(e))},[q,n,t4,t2]),nk=(0,i.useCallback)(()=>{eY(""),e1([]),e4([]),e7(null),td(null),tr(!1),tc.current+=1},[]),nj=(0,i.useCallback)(()=>{eG?(eZ(!1),nk()):(eZ(!0),setTimeout(()=>tu.current?.focus(),0))},[eG,nk]);(0,i.useEffect)(()=>{if(!eG||"fulltext"!==eX)return void tr(!1);let e=eJ.trim();if(!e){e1([]),e4([]),e7(null),td(null),tr(!1);return}let t=++tc.current;tr(!0),td(null);let n=setTimeout(()=>{(async()=>{try{let n=await fetch(`/api/sessions/search?q=${encodeURIComponent(e)}&limit=40`),r=await n.json().catch(()=>({}));if(t!==tc.current)return;if(!n.ok||r.error){td(r.error??`HTTP ${n.status}`),e1([]),e4([]),e7(null);return}e1(r.hits??[]),e4(r.sessionIds??[]),e7(r.source??null)}catch(e){if(t!==tc.current)return;td(e instanceof Error?e.message:String(e)),e1([]),e4([]),e7(null)}finally{t===tc.current&&tr(!1)}})()},280);return()=>clearTimeout(n)},[eG,eX,eJ]);let nS=(0,i.useMemo)(()=>Object.fromEntries(Object.entries(tJ).map(([e,t])=>[e,t.worktrees])),[tJ]),nC=(0,i.useMemo)(()=>(function(e,t={}){let{selectedCwd:n=null,selectedProjectRoot:r=null,knownWorktrees:i=[],knownWorktreesByProject:o={}}=t,s=new Map;for(let t of e){let e=t.projectRoot??t.cwd,n=s.get(e);if(n||(n={main:[],worktrees:new Map},s.set(e,n)),t.cwd===e)n.main.push(t);else{let e=n.worktrees.get(t.cwd);e||(e={sessions:[],branch:null},n.worktrees.set(t.cwd,e)),e.sessions.push(t),!e.branch&&t.worktreeBranch&&(e.branch=t.worktreeBranch)}}let a=r??n;for(let[e,t]of Object.entries(a?{...o,[a]:o[a]??i}:o)){let n=s.get(e);for(let r of(n||(n={main:[],worktrees:new Map},s.set(e,n)),t))!r.isMain&&(n.worktrees.has(r.path)||n.worktrees.set(r.path,{sessions:[],branch:r.branch}))}for(let e of(a&&!s.has(a)&&s.set(a,{main:[],worktrees:new Map}),t.addedProjectRoots??[]))s.has(e)||s.set(e,{main:[],worktrees:new Map});let l=[];for(let[e,t]of s){let n=[...t.worktrees.entries()].map(([e,t])=>({path:e,branch:t.branch,tree:g(t.sessions),latestActivity:v(t.sessions)})).sort((e,t)=>e.latestActivity&&t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):e.latestActivity?-1:t.latestActivity?1:e.path.localeCompare(t.path)),r=[...t.main,...t.worktrees.values().flatMap(e=>e.sessions)];l.push({root:e,mainTree:g(t.main),worktrees:n,latestActivity:v(r)})}return l.sort((e,t)=>e.latestActivity||t.latestActivity?e.latestActivity?t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):t.root===a?1:-1:e.root===a?-1:1:e.root.localeCompare(t.root)),l})(P,{selectedCwd:q,selectedProjectRoot:t6,knownWorktreesByProject:nS,addedProjectRoots:ty.addedProjectRoots}),[P,q,t6,nS,ty.addedProjectRoots]),n_=(0,i.useMemo)(()=>{let e=new Map,t=n=>{for(let r of n)e.set(r.session.id,r),r.children.length>0&&t(r.children)};for(let e of nC)for(let n of(t(e.mainTree),e.worktrees))t(n.tree);return e},[nC]),nI=(0,i.useMemo)(()=>0===tq.size?nC:nC.filter(e=>!tq.has(e.root)),[nC,tq]),nR=eJ.trim().toLowerCase(),nT="fulltext"===eX&&nR.length>0,nE=(0,i.useMemo)(()=>nT?new Set(e2):null,[nT,e2]),nM=nT?e2.length>0||tn||!!ts:nR.length>0,nz=(0,i.useMemo)(()=>(function(e,t){let{mode:n,order:r=[],aliases:i,selectedRoot:o=null}=t,s=[...e];if("az"===n||"za"===n)return s.sort((e,t)=>{let r=y.compare(b(e,i),b(t,i));return"az"===n?r:-r}),s;if("fixed"===n){let e=new Map(r.map((e,t)=>[e,t]));return s.sort((t,n)=>{let r=e.has(t.root)?e.get(t.root):Number.MAX_SAFE_INTEGER,i=e.has(n.root)?e.get(n.root):Number.MAX_SAFE_INTEGER;return r!==i?r-i:n.latestActivity.localeCompare(t.latestActivity)}),s}return s.sort((e,t)=>e.latestActivity||t.latestActivity?e.latestActivity?t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):t.root===o?1:-1:e.root===o?-1:1:e.root.localeCompare(t.root)),s})(nI,{mode:ty.projectSort,order:ty.projectOrder,aliases:tH,selectedRoot:t6}),[nI,ty.projectSort,ty.projectOrder,tH,t6]),nL=(0,i.useMemo)(()=>(function(e,t,n,r){let i=null!=r;if(!i&&!t)return e;let o=[];for(let s of e){if(!i){let e=n?.[s.root];if(s.root.toLowerCase().includes(t)||void 0!==e&&e.toLowerCase().includes(t)){o.push(s);continue}}let e=i?w(s.mainTree,r):f(s.mainTree,t),a=[];for(let e of s.worktrees){if(!i&&`${e.branch??""}
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{15717:(e,t,n)=>{"use strict";n.d(t,{AppShell:()=>db});var r=n(95155),i=n(12115),o=n(73321);let s=null;var a=n(47650);function l(e){let t=new Map;for(let n of e){let e=n.projectRoot??n.cwd,r=t.get(e);(!r||n.modified>r)&&t.set(e,n.modified)}return[...t.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(([e])=>e)}function d(e,t){if(!t)return e;let n=e.replaceAll("\\","/"),r=t.replaceAll("\\","/").replace(/\/$/,"");return n===r?"~":n.startsWith(`${r}/`)?`~${n.slice(r.length)}`:e}function c(e){let t=e.replaceAll("\\","/").replace(/\/+$/,""),n=t.lastIndexOf("/");return(n>=0?t.slice(n+1):t)||e}let u={status:"idle",error:null,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1};function p(e){return null!==e.cwd&&null!==e.projectRoot?e:{...e,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1}}function h(e,t){return e.status===t.status&&e.error===t.error&&e.cwd===t.cwd&&e.projectRoot===t.projectRoot&&e.branch===t.branch&&e.isGit===t.isGit&&e.isTopLevel===t.isTopLevel}function g(e){let t=e.filter(e=>!e.subagent),n=new Map;for(let e of t)n.set(e.id,{session:e,relation:null,children:[]});let r=new Map;for(let e of t)e.parentSessionId&&r.set(e.id,e.parentSessionId);let i=e=>{let t=r.get(e),i=new Set,o=[];for(;t;){if(i.has(t)||t===e)return null;i.add(t),o.push(t),t=r.get(t)}return o.find(e=>n.has(e))??null},o=new Map;for(let e of t){let t=i(e.id);t&&o.set(e.id,{parentId:t,relation:"fork"})}let s=e=>{let t=new Set([e]),n=o.get(e)?.parentId;for(;n;){if(t.has(n))return!0;t.add(n),n=o.get(n)?.parentId}return!1},a=[];for(let e of n.values()){let t=o.get(e.session.id),r=t?n.get(t.parentId):void 0;if(!t||!r||s(e.session.id)){a.push(e);continue}e.relation=t.relation,r.children.push(e)}let l=(e,t)=>t.session.modified.localeCompare(e.session.modified),d=(e,t)=>{if(t)e.sort(l);else{let t=e.filter(e=>"subagent"===e.relation).sort((e,t)=>(e.session.subagent?.runIndex??0)-(t.session.subagent?.runIndex??0)),n=e.filter(e=>"subagent"!==e.relation).sort(l);e.splice(0,e.length,...t,...n)}for(let t of e)d(t.children,!1)};return d(a,!0),a}function f(e,t){if(!t)return e;let n=[];for(let r of e){let e=f(r.children,t);((function(e,t){let n;return!t||(n=[e.name??"",e.firstMessage,e.id,e.worktreeBranch??""],e.subagent&&(n.push(e.subagent.agent??"",e.subagent.runId),n.push(`run ${e.subagent.runIndex}`,`run-${e.subagent.runIndex}`,String(e.subagent.runIndex))),n.join("\n").toLowerCase()).includes(t)})(r.session,t)||e.length>0)&&n.push({...r,children:e})}return n}function x(e,t){let n=(e,r)=>{for(let i of e){if(i.session.id===t)return r;let e=n(i.children,[...r,i.session.id]);if(e)return e}return null};return n(e,[])??[]}function m(e){let t=[],n=e=>{for(let r of e)r.children.length>0&&t.push(r.session.id),r.children.length>0&&n(r.children)};return n(e),t}function v(e){let t="";for(let n of e)n.modified>t&&(t=n.modified);return t}let y=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function b(e,t){if(t?.[e.root])return t[e.root];let n=e.root.replaceAll("\\","/").replace(/\/+$/,""),r=n.lastIndexOf("/");return(r>=0?n.slice(r+1):n)||e.root}function w(e,t){if(0===t.size)return[];let n=[];for(let r of e){let e=w(r.children,t);(t.has(r.session.id)||e.length>0)&&n.push({...r,children:e})}return n}function k(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(520,Math.max(240,Math.round(e))):300}function j(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(720,Math.max(320,Math.round(e))):400}function S(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(960,Math.max(320,Math.round(e))):560}function C(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){let e=n.trim();if(!e||null===r||"object"!=typeof r||Array.isArray(r))continue;let i=Array.isArray(r.expanded)?r.expanded.filter(e=>"string"==typeof e):[],o="number"==typeof r.scrollTop&&Number.isFinite(r.scrollTop)&&r.scrollTop>0?Math.round(r.scrollTop):0;t[e]={expanded:i,scrollTop:o}}return t}let _={displayMode:"standard",collapsedProjectRoots:[],collapsedWorktreePaths:[],projectAliases:{},closedProjectRoots:[],addedProjectRoots:[],sidebarWidth:300,rightPanelOpen:!1,rightPanelWidth:400,changesPanelOpen:!0,changesPanelWidth:560,showRecentSessions:!0,pinnedSessionIds:[],fileExplorerState:{},projectSort:"recent",projectOrder:[]},I="pidance:sidebar-preferences";function R(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e):[]}function T(e){return null===e||"object"!=typeof e?{..._,projectAliases:{},closedProjectRoots:[],collapsedProjectRoots:[],collapsedWorktreePaths:[]}:{displayMode:"compact"===e.displayMode||"standard"===e.displayMode?e.displayMode:_.displayMode,collapsedProjectRoots:R(e.collapsedProjectRoots),collapsedWorktreePaths:R(e.collapsedWorktreePaths),projectAliases:function(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e)){if("string"!=typeof r)continue;let e=n.trim(),i=r.trim();e&&i&&(t[e]=i)}return t}(e.projectAliases),closedProjectRoots:R(e.closedProjectRoots),addedProjectRoots:R(e.addedProjectRoots),sidebarWidth:k(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:j(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:S(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,pinnedSessionIds:R(e.pinnedSessionIds),fileExplorerState:C(e.fileExplorerState),projectSort:E(e.projectSort),projectOrder:R(e.projectOrder)}}function E(e){return"az"===e||"za"===e||"fixed"===e||"recent"===e?e:_.projectSort}function M(e){return JSON.stringify({displayMode:e.displayMode,collapsedProjectRoots:e.collapsedProjectRoots,collapsedWorktreePaths:e.collapsedWorktreePaths,projectAliases:e.projectAliases,closedProjectRoots:e.closedProjectRoots,addedProjectRoots:e.addedProjectRoots,sidebarWidth:k(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:j(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:S(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,pinnedSessionIds:R(e.pinnedSessionIds),fileExplorerState:C(e.fileExplorerState),projectSort:E(e.projectSort),projectOrder:R(e.projectOrder)})}function z(e){try{let t=e.getItem(I);if(null===t)return T(null);try{return T(JSON.parse(t))}catch{return T(null)}}catch{return T(null)}}function L(){return z(window.localStorage)}function W(e){try{window.localStorage.setItem(I,M(e))}catch{}}function A(e){return{displayMode:e.displayMode,collapsedProjectRoots:e.collapsedProjectRoots,collapsedWorktreePaths:e.collapsedWorktreePaths,closedProjectRoots:e.closedProjectRoots,addedProjectRoots:e.addedProjectRoots,showRecentSessions:e.showRecentSessions,pinnedSessionIds:e.pinnedSessionIds,projectSort:e.projectSort,projectOrder:e.projectOrder}}function P(e){var t,n=window.localStorage;try{let r=z(n);n.setItem(I,M({...r,rightPanelOpen:void 0===e.open?r.rightPanelOpen:(t=e.open,!0===t),rightPanelWidth:void 0===e.width?r.rightPanelWidth:j(e.width)}))}catch{}}function $(e){var t,n=window.localStorage;try{let r=z(n);n.setItem(I,M({...r,changesPanelOpen:void 0===e.open?r.changesPanelOpen:(t=e.open,!1!==t),changesPanelWidth:void 0===e.width?r.changesPanelWidth:S(e.width)}))}catch{}}function H(e,t){var n=window.localStorage;try{let r=z(n),i=C(r.fileExplorerState);e.trim()&&(i[e]={expanded:C({[e]:t})[e]?.expanded??[],scrollTop:Math.max(0,Math.round(Number.isFinite(t.scrollTop)?t.scrollTop:0))}),n.setItem(I,M({...r,fileExplorerState:i}))}catch{}}let F="pidance.streamingEnterDefault",D="followUp";function N(e){return"steer"===e?"steer":"followUp"}function B(){var e=window.localStorage;try{let t=e.getItem(F);if(null===t)return D;try{return N(JSON.parse(t))}catch{return N(t)}}catch{return D}}function O(e){var t=window.localStorage;try{t.setItem(F,JSON.stringify(N(e)))}catch{}}let U="pidance.autoUpdateCheck";function q(e){return!1!==e&&0!==e&&"0"!==e&&"false"!==e}function K(){var e=window.localStorage;try{let t=e.getItem(U);if(null===t)return!0;try{return q(JSON.parse(t))}catch{return q(t)}}catch{return!0}}function V(e){var t=window.localStorage;try{t.setItem(U,JSON.stringify(q(e)))}catch{}}let J="pidance.sessionList.v1";function Y(){try{let e=window.localStorage.getItem(J);if(!e)return null;let t=JSON.parse(e);if(!Array.isArray(t.sessions))return null;return t.sessions}catch{return null}}function G(e){try{let t=[...e].sort((e,t)=>e.modified<t.modified?1:e.modified>t.modified?-1:0).slice(0,50);window.localStorage.setItem(J,JSON.stringify({sessions:t}))}catch{}}var Z=n(69892);function X(e,t){let n=e[t];return"number"!=typeof n||!Number.isFinite(n)||n<5?5:Math.floor(n)}function Q(e,t,n){if(n)return e;let r=Math.max(0,Math.floor(t));return r>=e.length?e:e.slice(0,r)}function ee(e,t){let n=t.modified.localeCompare(e.modified);if(0!==n)return n;let r=t.created.localeCompare(e.created);return 0!==r?r:e.id.localeCompare(t.id)}function et(e,t){return e===t&&e>0}let en={status:"idle",worktrees:[]};function er(e,t,n){var r;let i,o=e[t];switch(n.status){case"idle":i=en;break;case"loading":i={status:"loading",worktrees:o?.worktrees??[]};break;case"ready":i={status:"ready",worktrees:n.worktrees};break;case"error":i={status:"error",worktrees:n.worktrees??o?.worktrees??[],error:n.error}}return(r=i,o&&o.status===r.status&&(o.error??void 0)===(r.error??void 0)&&function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],i=t[n];if(r.path!==i.path||r.branch!==i.branch||r.isMain!==i.isMain)return!1}return!0}(o.worktrees,r.worktrees))?e:{...e,[t]:i}}let ei=(0,i.createContext)(null);function eo({children:e,initial:t}){let n=(0,i.useRef)(null);return n.current||(n.current=function(e={}){let t=p({...u,...e.identity}),n=new Set,r=t,i=()=>n.forEach(e=>e());return{getIdentitySnapshot:()=>r,subscribeIdentity:e=>(n.add(e),()=>n.delete(e)),setIdentity:e=>{let n=void 0!==e.cwd&&void 0===e.projectRoot?{...e,projectRoot:e.cwd}:e,o=p({...t,...n});h(t,o)||(r=t=o,i())},reset:()=>{let e=!h(t,u);r=t=u,e&&i()}}}(t)),(0,r.jsx)(ei.Provider,{value:n.current,children:e})}function es(){let e=(0,i.useContext)(ei);if(!e)throw Error("useProjectIdentity/useProjectActions 必须在 ProjectProvider 内使用");return e}function ea(){let e=es();return(0,i.useSyncExternalStore)(e.subscribeIdentity,e.getIdentitySnapshot,e.getIdentitySnapshot)}var el=n(99780),ed=n(61995);function ec(e,t){let n=new Date(e),r=new Date().getTime()-n.getTime(),i=Math.floor(r/6e4),o=Math.floor(r/36e5),s=Math.floor(r/864e5);return i<1?t("sidebar_justNow"):i<60?t("sidebar_minutesAgo",{count:i}):o<24?t("sidebar_hoursAgo",{count:o}):s<7?t("sidebar_daysAgo",{count:s}):n.toLocaleDateString()}function eu({text:e,style:t}){return(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,r.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}function ep({open:e,children:t,style:n}){let[o,s]=(0,i.useState)(e),[a,l]=(0,i.useState)(e);return((0,i.useEffect)(()=>{let t,n;return e?(s(!0),l(!1),t=window.requestAnimationFrame(()=>{t=window.requestAnimationFrame(()=>l(!0))})):(l(!1),n=setTimeout(()=>s(!1),140)),()=>{void 0!==t&&window.cancelAnimationFrame(t),n&&clearTimeout(n)}},[e]),o)?(0,r.jsx)("div",{style:{...n,opacity:+!!a,transform:a?"translateY(0) scale(1)":"translateY(-8px) scale(0.96)",transformOrigin:"top center",transition:"opacity 140ms ease, transform 140ms ease",pointerEvents:e?"auto":"none"},children:t}):null}let eh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";function eg(){let[e,t]=(0,i.useState)(!1),[n,o]=(0,i.useState)(!1),s=(0,i.useRef)(null),a=function(e,t){let[n,r]=(0,i.useState)(e),o=(0,i.useRef)(null),s=(0,i.useRef)(0);return(0,i.useEffect)(()=>{if(!t)return void r(e);s.current=0;let n=4*e.length,i=()=>{s.current+=1;let t=Math.floor(s.current/n*e.length);r(e.split("").map((e,n)=>" "===e?" ":n<t?e:eh[Math.floor(Math.random()*eh.length)]).join("")),s.current<n?o.current=requestAnimationFrame(i):r(e)};return o.current=requestAnimationFrame(i),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t]),n}(e?"0.2.23pexternal":"Pidance",n),l=(0,i.useCallback)(e=>{t(e),o(!0),setTimeout(()=>o(!1),(e?6:8)*4*(1e3/60)+100)},[]),d=(0,i.useCallback)(()=>{s.current&&clearTimeout(s.current);let t=!e;l(t),t&&(s.current=setTimeout(()=>l(!1),3e3))},[e,l]);return(0,i.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),(0,r.jsx)("button",{onClick:d,style:{background:"none",border:"none",padding:0,cursor:"default",fontWeight:700,fontSize:15,letterSpacing:"-0.01em",color:e?"var(--accent)":"var(--text)",fontFamily:"var(--font-mono)",minWidth:"6ch"},children:a})}function ef({label:e,onClick:t,disabled:n=!1,active:i=!1,danger:o=!1,done:s=!1,hoverReveal:a=!1,expanded:l,pressed:d,haspopup:c,buttonRef:u,children:p}){let h=["sidebar-icon-btn"];return i&&h.push("sidebar-icon-btn--active"),o&&h.push("sidebar-icon-btn--danger"),s&&h.push("sidebar-icon-btn--done"),a&&h.push("sidebar-icon-btn--hover"),(0,r.jsx)("button",{type:"button",ref:u,onClick:t,disabled:n,"data-tooltip":e,"aria-label":e,"aria-expanded":l,"aria-pressed":d,"aria-haspopup":c,className:h.join(" "),children:p})}function ex(e){return{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.75,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0}}let em=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"}),(0,r.jsx)("path",{d:"M12 10v6"}),(0,r.jsx)("path",{d:"M9 13h6"})]}),ev=({size:e=14})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"})}),ey=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,r.jsx)("path",{d:"M3 4v5h5"}),(0,r.jsx)("path",{d:"M12 7v5l3 2"})]}),eb=({size:e=13})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M12 17v5"}),(0,r.jsx)("path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z"})]}),ew=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),(0,r.jsx)("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),(0,r.jsx)("path",{d:"M10 12h4"})]}),ek=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"}),(0,r.jsx)("path",{d:"M12 7v6"}),(0,r.jsx)("path",{d:"M9 10h6"})]}),ej=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,r.jsx)("path",{d:"m21 21-4.3-4.3"})]}),eS=({size:e=18})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"21",x2:"14",y1:"4",y2:"4"}),(0,r.jsx)("line",{x1:"10",x2:"3",y1:"4",y2:"4"}),(0,r.jsx)("line",{x1:"21",x2:"12",y1:"12",y2:"12"}),(0,r.jsx)("line",{x1:"8",x2:"3",y1:"12",y2:"12"}),(0,r.jsx)("line",{x1:"21",x2:"16",y1:"20",y2:"20"}),(0,r.jsx)("line",{x1:"12",x2:"3",y1:"20",y2:"20"}),(0,r.jsx)("line",{x1:"14",x2:"14",y1:"2",y2:"6"}),(0,r.jsx)("line",{x1:"8",x2:"8",y1:"10",y2:"14"}),(0,r.jsx)("line",{x1:"16",x2:"16",y1:"18",y2:"22"})]}),eC=({size:e=14})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12"})}),e_=({size:e=15})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),(0,r.jsx)("polyline",{points:"9 22 9 12 15 12 15 22"})]}),eI=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,r.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),eR=({size:e=12})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),eT=({size:e=14})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("path",{d:"M15.5 17.5h5"}),(0,r.jsx)("path",{d:"M18 15v5"})]}),eE=({size:e=13})=>(0,r.jsxs)("svg",{...ex(e),children:[(0,r.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,r.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,r.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,r.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),eM=({size:e=13})=>(0,r.jsx)("svg",{...ex(e),children:(0,r.jsx)("path",{d:"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})}),ez=({size:e=14})=>(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,r.jsx)("circle",{cx:"12",cy:"5",r:"1.7"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"1.7"}),(0,r.jsx)("circle",{cx:"12",cy:"19",r:"1.7"})]});function eL({collapsed:e,label:t,left:n,onClick:i}){return(0,r.jsx)("button",{type:"button",onClick:e=>{i(e),e.currentTarget.blur()},"data-tooltip":t,"aria-label":t,className:"sidebar-indent-indicator",style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:n,top:"50%",width:16,height:20,padding:0,flexShrink:0,zIndex:1,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transform:`translateY(-50%)${e?" rotate(-90deg)":""}`,transition:"transform 0.15s"},children:(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})}function eW({primary:e=!1,danger:t=!1,disabled:n=!1,onClick:i,children:o}){let s=e||t;return(0,r.jsx)("button",{type:"button",onClick:i,disabled:n,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:6,height:30,padding:"0 14px",flexShrink:0,background:t?"var(--status-danger)":e?"var(--accent)":"var(--bg)",border:s?"none":"1px solid var(--border)",borderRadius:7,color:s?"#fff":"var(--text-muted)",cursor:n?"not-allowed":"pointer",fontSize:12,fontWeight:s?600:500,opacity:n?.55:1,whiteSpace:"nowrap"},children:o})}function eA({label:e,checked:t,onClick:n}){return(0,r.jsxs)("button",{type:"button",onClick:n,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"7px 10px",background:"var(--bg-elevated)",border:"none",color:t?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:11.5},children:[t?(0,r.jsx)("span",{style:{color:"var(--accent)",display:"flex",flexShrink:0},children:(0,r.jsx)(eC,{size:11})}):(0,r.jsx)("span",{style:{width:11,flexShrink:0}}),e]})}function eP({icon:e,label:t,onClick:n}){return(0,r.jsxs)("button",{type:"button",role:"menuitem",onClick:n,style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"7px 12px",background:"var(--bg-elevated)",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",fontSize:12,whiteSpace:"nowrap"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"},onFocus:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onBlur:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"},children:[(0,r.jsx)("span",{style:{display:"flex",flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true",children:e}),t]})}function e$({groupKey:e,total:t,visibleCount:n,searchActive:i,onShowMore:o,onShowFewer:s}){let{t:a}=(0,el.s9)(),l=!i&&t>Math.max(0,Math.floor(n)),d=!i&&Math.floor(n)>5;return l||d?(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 8px 5px 28px"},children:[l&&(0,r.jsxs)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>o(e),children:[a("sidebar_showMore"),(0,r.jsxs)("span",{"aria-hidden":"true",children:["+",5]})]}),d&&(0,r.jsx)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>s(e),children:a("sidebar_showFewer")})]}):null}function eH({size:e=14}){let{t}=(0,el.s9)();return(0,r.jsx)("span",{title:t("sidebar_running"),"aria-label":t("sidebar_running"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--status-running)"},children:(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:e-4,height:e-4,borderRadius:"50%",border:"2px solid currentColor",borderTopColor:"transparent",background:"transparent",boxSizing:"border-box",animation:"sidebar-running-spin 1s linear infinite"}})})}function eF({startedAt:e,now:t,running:n}){let{t:i}=(0,el.s9)();return n?(0,r.jsx)("span",{title:i("sidebar_running"),style:{display:"inline-flex",alignItems:"center",flexShrink:0,color:"var(--status-running)",fontSize:10,fontVariantNumeric:"tabular-nums",whiteSpace:"nowrap"},children:(0,r.jsx)("span",{children:void 0!==e?function(e,t){let n,r,{hours:i,minutes:o,seconds:s}=(r=Math.floor((n=Math.max(0,Math.floor(e/1e3)))/3600),{hours:r,minutes:Math.floor(n%3600/60),seconds:n%60});return i>0?t("sidebar_runningHoursMinutes",{h:i,m:o}):o>0?t("sidebar_runningMinutesSeconds",{m:o,s:s}):t("sidebar_runningSeconds",{s:s})}(Math.max(0,t-e),i):i("sidebar_running")})}):null}function eD({size:e=14}){let{t}=(0,el.s9)();return(0,r.jsx)("span",{title:t("sidebar_activity"),"aria-label":t("sidebar_activity"),style:{width:e,height:e,display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"var(--status-unread)"},children:(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:6,height:6,borderRadius:"50%",background:"currentColor"}})})}let eN=(0,i.createContext)({startedAt:new Map,now:Date.now()}),eB=0,eO=null,eU=[];function eq(e){return eU.length>0&&eU[eU.length-1]===e}let eK=i.useLayoutEffect;function eV(){let e={top:0,left:0,width:Number.isFinite(window.innerWidth)?Math.max(0,window.innerWidth):0,height:Number.isFinite(window.innerHeight)?Math.max(0,window.innerHeight):0},t=window.visualViewport;if(!t)return e;let n=Number.isFinite(t.width)?Math.max(0,t.width):0,r=Number.isFinite(t.height)?Math.max(0,t.height):0;return n<=0||r<=0?e:{top:Number.isFinite(t.offsetTop)?Math.max(0,t.offsetTop):0,left:Number.isFinite(t.offsetLeft)?Math.max(0,t.offsetLeft):0,width:n,height:r}}function eJ(e){return Array.from(e.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>e.getClientRects().length>0)}function eY({open:e,onClose:t,title:n,description:o,children:s,actions:l,width:d=560,height:c,zIndex:u=1e3,closeOnBackdrop:p=!0,closeOnEsc:h=!0,initialFocusRef:g,headerActions:f,contentPadding:x="14px 18px",closeLabel:m="Close"}){let v=(0,i.useRef)(null),y=(0,i.useId)(),b=(0,i.useId)(),w=(0,i.useRef)(null);null===w.current&&(w.current=Symbol("ViewportDialog")),(0,i.useEffect)(()=>{if(e){var t;let e;return t=w.current,eU.push(t),e=!1,()=>{if(e)return;e=!0;let n=eU.lastIndexOf(t);n>=0&&eU.splice(n,1)}}},[e]),(0,i.useEffect)(()=>{var t,n;if(!e)return;let r=document.activeElement,i=v.current,o=(t=g?.current,n=i?eJ(i):[],t??n[0]??i);return o?.focus({preventScroll:!0}),()=>{var e,t;let n=(e=r instanceof HTMLElement?r:null,t=e=>document.contains(e),null!==e&&t(e)?e:null);n?.focus({preventScroll:!0})}},[e,g]),(0,i.useEffect)(()=>{if(e){var t;let e;return t=document.body,0===eB&&(eO=t.style.overflow,t.style.overflow="hidden"),eB+=1,e=!1,()=>{e||(e=!0,0==(eB-=1)&&(t.style.overflow=eO??"",eO=null))}}},[e]),(0,i.useEffect)(()=>{if(!e)return;let n=w.current,r=e=>{let r=function(e){if(!e.isTop)return{stopPropagation:!1,preventDefault:!1,close:!1};let t="Escape"===e.key&&e.closeOnEsc&&!e.defaultPrevented;return{stopPropagation:!0,preventDefault:t,close:t}}({key:e.key,defaultPrevented:e.defaultPrevented,closeOnEsc:h,isTop:eq(n)});r.stopPropagation&&(e.stopPropagation(),r.preventDefault&&e.preventDefault(),r.close&&t())};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,h,t]),(0,i.useEffect)(()=>{if(!e)return;let t=w.current,n=e=>{if(!eq(t))return;let n=v.current;!n||!(e.target instanceof Node)||n.contains(e.target)||(eJ(n)[0]??n).focus({preventScroll:!0})};return document.addEventListener("focusin",n),()=>document.removeEventListener("focusin",n)},[e]);let[k,j]=(0,i.useState)(null),S=(0,i.useRef)(0),C=(0,i.useCallback)(()=>{let e=eV();j(t=>t&&t.top===e.top&&t.left===e.left&&t.width===e.width&&t.height===e.height?t:e)},[]);if(eK(()=>{if(!e)return void j(null);C();let t=()=>{S.current||(S.current=requestAnimationFrame(()=>{S.current=0,C()}))};window.addEventListener("resize",t);let n=window.visualViewport;return n?.addEventListener("resize",t),n?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),n?.removeEventListener("resize",t),n?.removeEventListener("scroll",t),S.current&&(cancelAnimationFrame(S.current),S.current=0)}},[e,C]),!e||"u"<typeof document)return null;let _="number"==typeof d?`${d}px`:d,I=k??eV(),R=function(e,t=16){return{maxWidth:Math.max(0,e.width-2*t),maxHeight:Math.max(0,e.height-2*t)}}(I),T="number"==typeof d?Math.min(d,R.maxWidth):`min(${_}, ${R.maxWidth}px)`,E=void 0===c?void 0:"number"==typeof c?Math.min(c,R.maxHeight):`min(${c}, ${R.maxHeight}px)`;return(0,a.createPortal)((0,r.jsx)("div",{onMouseDown:e=>{p&&e.target===e.currentTarget&&t()},style:{position:"fixed",top:I.top,left:I.left,width:I.width,height:I.height,zIndex:u,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,overscrollBehavior:"contain"},children:(0,r.jsxs)("div",{ref:v,role:"dialog","aria-modal":"true","aria-labelledby":y,"aria-describedby":o?b:void 0,tabIndex:-1,onKeyDown:e=>{if("Tab"!==e.key)return;let t=v.current;if(!t)return;let n=function(e){let{focusable:t,active:n,shiftKey:r,panel:i,contains:o}=e;if(0===t.length)return{handled:!0,target:i};let s=t[0],a=t[t.length-1],l=null!==n&&o(n);if(r){if(n===s||!l)return{handled:!0,target:a}}else if(n===a||!l)return{handled:!0,target:s};return{handled:!1}}({focusable:eJ(t),active:document.activeElement,shiftKey:e.shiftKey,panel:t,contains:e=>t.contains(e)});n.handled&&(e.preventDefault(),n.target.focus({preventScroll:!0}))},style:{width:"100%",maxWidth:T,maxHeight:R.maxHeight,...void 0!==E?{height:E,minHeight:0}:{},display:"flex",flexDirection:"column",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:10,boxShadow:"0 8px 32px rgba(0,0,0,0.18)",overflow:"hidden",outline:"none"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("div",{id:y,style:{fontSize:15,fontWeight:700,color:"var(--text)",minWidth:0,flex:1},children:n}),f,(0,r.jsx)("button",{type:"button",onClick:t,"aria-label":m,style:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",minWidth:32,minHeight:32,padding:"2px 6px",background:"none",border:"none",borderRadius:7,color:"var(--text-muted)",cursor:"pointer",fontSize:20,lineHeight:1},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:"\xd7"})]}),o&&(0,r.jsx)("div",{id:b,style:{padding:"10px 18px",borderBottom:"1px solid var(--border)",fontSize:13,lineHeight:1.55,color:"var(--text-muted)",flexShrink:0},children:o}),s&&(0,r.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",overscrollBehavior:"contain",padding:x},children:s}),l&&(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"12px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:l})]})}),document.body)}let eG={readOnly:!1,canPrompt:!0,canFork:!0,canCompact:!0,canChangeModel:!0,canChangeThinking:!0,canChangeTools:!0,canRename:!0,canAutoName:!0,canDelete:!0,canConnectEvents:!0,canSendSessionCommands:!0},eZ={readOnly:!0,canPrompt:!1,canFork:!1,canCompact:!1,canChangeModel:!1,canChangeThinking:!1,canChangeTools:!1,canRename:!1,canAutoName:!1,canDelete:!1,canConnectEvents:!1,canSendSessionCommands:!1};function eX(e){return e?.readOnly===!0?eZ:eG}function eQ(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 e0(e){return`/api/sessions/${encodeURIComponent(e)}/export`}function e1(e,t,n=2){return!!e&&!!t&&(Math.abs(e.top-t.top)>=n||Math.abs(e.right-t.right)>=n)}function e2({open:e,onOpenChange:t,projectName:n,onEdit:o,onClose:s}){let{t:l}=(0,el.s9)(),d=(0,i.useRef)(null),c=(0,i.useRef)(null),u=(0,i.useRef)(null),[p,h]=(0,i.useState)(null),g=(0,i.useRef)(null),f=(0,i.useCallback)(e=>{t(!1),e&&c.current?.focus()},[t]),x=(0,i.useCallback)(()=>{if(e)return void f(!0);let n=c.current?.getBoundingClientRect();n&&(g.current={top:n.top,bottom:n.bottom,right:n.right},h({top:n.bottom+4,right:Math.max(8,window.innerWidth-n.right)})),t(!0)},[e,f,t]);return(0,i.useEffect)(()=>{if(!e||!g.current)return;let t=requestAnimationFrame(()=>{let e=u.current,t=g.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||h(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(t)},[e]),(0,i.useEffect)(()=>{if(!e)return;let n=e=>{!d.current||d.current.contains(e.target)||u.current?.contains(e.target)||t(!1)},r=()=>{let e=c.current?.getBoundingClientRect();e1(g.current,e?{top:e.top,right:e.right}:null)&&t(!1)};return document.addEventListener("mousedown",n),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{document.removeEventListener("mousedown",n),window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[e,t]),(0,i.useEffect)(()=>{if(!e)return;let t=requestAnimationFrame(()=>{u.current?.querySelector("[role='menuitem']")?.focus()});return()=>cancelAnimationFrame(t)},[e]),(0,r.jsxs)("div",{ref:d,style:{position:"relative",flexShrink:0,display:"flex"},onClick:e=>e.stopPropagation(),onKeyDown:t=>{"Escape"===t.key&&e&&(t.stopPropagation(),t.preventDefault(),f(!0))},children:[(0,r.jsx)(ef,{label:l("sidebar_projectMenuLabel",{project:n}),active:e,expanded:e,haspopup:"menu",hoverReveal:!0,buttonRef:c,onClick:e=>{e.stopPropagation(),x()},children:(0,r.jsx)(ez,{size:14})}),e&&(0,a.createPortal)((0,r.jsx)(ep,{open:e,style:{position:"fixed",top:p?.top??0,right:p?.right??0,zIndex:600,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)",overflow:"hidden",minWidth:148},children:(0,r.jsxs)("div",{ref:u,role:"menu","aria-label":l("sidebar_projectMenuLabel",{project:n}),children:[(0,r.jsx)(eP,{icon:(0,r.jsx)(eM,{size:13}),label:l("sidebar_editProject"),onClick:()=>{f(!0),o()}}),(0,r.jsx)(eP,{icon:(0,r.jsx)(eI,{size:13}),label:l("sidebar_closeProject"),onClick:()=>{f(!0),s()}})]})}),document.body)]})}function e4({session:e,title:t,canRename:n,canDelete:o,canArchive:s,archiveDisabledReason:l,isPinned:d,onTogglePin:c,onRename:u,onDelete:p,onArchive:h}){var g;let f,{t:x}=(0,el.s9)(),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(null),w=(0,i.useRef)(null),k=(0,i.useRef)(null),j=(0,i.useRef)(null),S=x("sidebar_sessionMenuLabel",{session:t}),C=(0,i.useCallback)((e=!1)=>{v(!1),e&&k.current?.focus()},[]);(0,i.useEffect)(()=>{if(!m||!w.current)return;let e=requestAnimationFrame(()=>{let e=j.current,t=w.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||b(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(e)},[m]),(0,i.useEffect)(()=>{if(!m)return;let e=e=>{let t=e.target;j.current?.contains(t)||k.current?.contains(t)||C()},t=()=>{let e=k.current?.getBoundingClientRect();e1(w.current,e?{top:e.top,right:e.right}:null)&&C()};document.addEventListener("mousedown",e),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0);let n=requestAnimationFrame(()=>j.current?.querySelector("[role='menuitem']")?.focus());return()=>{cancelAnimationFrame(n),document.removeEventListener("mousedown",e),window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0)}},[C,m]);let _={display:"flex",alignItems:"center",gap:8,width:"100%",minHeight:32,padding:"6px 11px",boxSizing:"border-box",background:"var(--bg-elevated)",border:"none",color:"var(--text-muted)",cursor:"pointer",textAlign:"left",textDecoration:"none",fontSize:12,whiteSpace:"nowrap"},I={onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="var(--bg-elevated)",e.currentTarget.style.color="var(--text-muted)"}},R=e=>(0,r.jsx)("span",{"aria-hidden":"true",style:{display:"flex",color:"var(--text-dim)"},children:e});return(0,r.jsxs)("div",{style:{display:"flex",flexShrink:0},onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Escape"===e.key&&m&&(e.preventDefault(),C(!0))},children:[(0,r.jsx)(ef,{label:S,active:m,expanded:m,haspopup:"menu",hoverReveal:!0,buttonRef:k,onClick:e=>{e.stopPropagation(),(()=>{if(m)return C();let e=k.current?.getBoundingClientRect();e&&(w.current={top:e.top,bottom:e.bottom,right:e.right},b({top:e.bottom+4,right:Math.max(8,window.innerWidth-e.right)})),v(!0)})()},children:(0,r.jsx)(ez,{size:14})}),m&&y&&(0,a.createPortal)((0,r.jsxs)("div",{ref:j,role:"menu","aria-label":S,style:{position:"fixed",top:y.top,right:y.right,zIndex:600,minWidth:190,padding:4,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)"},children:[n&&(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),u()},children:[R((0,r.jsx)(eM,{size:13})),x("sidebar_renameSession")]}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),eQ(e.id)},children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,r.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})),x("sidebar_copySessionId")]}),!e.subagent&&c&&(0,r.jsxs)("button",{type:"button",role:"menuitem",style:_,...I,onClick:()=>{C(),c()},children:[R((0,r.jsx)(eb,{size:13})),x(d?"sidebar_unpinSession":"sidebar_pinSession")]}),(s||null!==l)&&(0,r.jsxs)("button",{type:"button",role:"menuitem",disabled:!s,title:s?void 0:l??void 0,style:{..._,opacity:s?1:.45,cursor:s?"pointer":"not-allowed"},onClick:()=>{s&&(C(),h())},children:[R((0,r.jsx)(ew,{size:13})),x("sidebar_archiveSession")]}),"string"==typeof e?.id&&e.id.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("a",{role:"menuitem",href:e0(e.id),download:!0,style:_,...I,onClick:()=>C(),children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("path",{d:"M12 3v12"}),(0,r.jsx)("path",{d:"m7 10 5 5 5-5"}),(0,r.jsx)("path",{d:"M5 21h14"})]})),x("sidebar_exportSessionHtml")]}),(0,r.jsxs)("a",{role:"menuitem",href:(g=e.id,f=new URLSearchParams({format:"jsonl"}),`${e0(g)}?${f.toString()}`),download:!0,style:_,...I,onClick:()=>C(),children:[R((0,r.jsxs)("svg",{...ex(13),children:[(0,r.jsx)("path",{d:"M8 3H7a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2 2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h1"}),(0,r.jsx)("path",{d:"M16 21h1a2 2 0 0 0 2-2v-4a2 2 0 0 1 2-2 2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1"})]})),x("sidebar_exportSessionJsonl")]})]}),o&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{height:1,margin:"4px 6px",background:"var(--border)"}}),(0,r.jsxs)("button",{type:"button",role:"menuitem",style:{..._,color:"var(--status-danger)"},onClick:()=>{C(),p()},children:[R((0,r.jsx)(eE,{size:13})),x("sidebar_deleteSession")]})]})]}),document.body)]})}function e6({project:e,homeDir:t,displayMode:n,projectAliases:i,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,collapsedProjectRoots:d,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleProject:g,onToggleWorktree:f,onNewSession:x,onSelectSession:m,menuOpen:v,onMenuOpenChange:y,onEditProject:b,onCloseProject:w,onRenamed:k,onSessionDeleted:j,onToggleCollapse:S,groupVisibleCounts:C,onShowMore:_,onShowFewer:I,worktreeActions:R,wtNewOpen:T,wtNewBranch:E,wtError:M,wtConfirmRemove:z,wtNewInputRef:L,onStartCreateWorktree:W,onWtNewBranchChange:A,onSubmitCreateWorktree:P,onCancelCreateWorktree:$,onRequestRemoveWorktree:H,onConfirmRemoveWorktree:F,onCancelRemoveWorktree:D,onSessionArchive:N,isSessionPinned:B,onTogglePin:O,onProjectDrop:U}){var q;let{t:K}=(0,el.s9)(),V=(q=e.root,!h&&d.has(q)),J=e.mainTree.length>0||e.worktrees.some(e=>e.tree.length>0),Y=i[e.root]??c(e.root),G=K(V?"sidebar_expandProjectNamed":"sidebar_collapseProjectNamed",{project:Y});return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!V,"aria-label":G,draggable:!!U,onDragStart:t=>{U&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/pidance-project",e.root),t.dataTransfer.setData("text/plain",e.root))},onDragOver:e=>{U&&(e.preventDefault(),e.dataTransfer.dropEffect="move")},onDrop:t=>{if(!U)return;t.preventDefault(),t.stopPropagation();let n=t.dataTransfer.getData("text/pidance-project")||t.dataTransfer.getData("text/plain");n&&U(n,e.root)},onClick:()=>g(e.root),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onKeyDown:t=>{t.target===t.currentTarget&&("Enter"===t.key||" "===t.key)&&(t.preventDefault(),g(e.root))},title:e.root,style:{display:"flex",alignItems:"center",gap:6,height:32,margin:"1px 6px",position:"relative",paddingLeft:32,paddingRight:8,borderRadius:6,cursor:"pointer",background:"transparent",color:"var(--text-muted)"},children:[(0,r.jsx)(eL,{collapsed:V,label:G,left:6,onClick:t=>{t.stopPropagation(),g(e.root)}}),(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(ev,{size:13})}),(0,r.jsx)(eu,{text:Y,style:{flex:1,fontSize:12.5,fontWeight:600,fontFamily:"var(--font-mono)"}}),(0,r.jsx)(ef,{label:K("sidebar_newSessionIn",{project:Y}),hoverReveal:!0,onClick:t=>{t.stopPropagation(),x(e.root)},children:(0,r.jsx)(ek,{size:14})}),R&&(0,r.jsx)(ef,{label:R.createHint,disabled:!R.canManage||R.busy,hoverReveal:!0,onClick:e=>{e.stopPropagation(),W()},children:(0,r.jsx)(eT,{size:14})}),(0,r.jsx)(e2,{open:v,onOpenChange:y,projectName:Y,onEdit:b,onClose:w})]}),!V&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{children:[Q(e.mainTree,X(C,`main:${e.root}`),h).map(e=>(0,r.jsx)(e8,{node:e,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,onSelectSession:m,onRenamed:k,onSessionDeleted:j,onSessionArchive:N,isSessionPinned:B,onTogglePin:O,depth:0,collapsedSessionIds:p,searchActive:h,onToggleCollapse:S,displayMode:n},e.session.id)),(0,r.jsx)(e$,{groupKey:`main:${e.root}`,total:e.mainTree.length,visibleCount:X(C,`main:${e.root}`),searchActive:h,onShowMore:_,onShowFewer:I})]}),e.worktrees.map(e=>(0,r.jsx)(e5,{group:e,homeDir:t,displayMode:n,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleWorktree:e=>f(e),onNewSession:()=>x(e.path),onSelectSession:m,onRenamed:k,onSessionDeleted:j,onToggleCollapse:S,visibleCount:X(C,`worktree:${e.path}`),onShowMore:()=>_(`worktree:${e.path}`),onShowFewer:()=>I(`worktree:${e.path}`),worktreeActions:R,confirmRemove:z===e.path,onRequestRemove:()=>H(e.path),onConfirmRemove:()=>F(e.path),onCancelRemove:D,onSessionArchive:N,isSessionPinned:B,onTogglePin:O},e.path)),T&&R?.canManage&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px 4px 30px"},children:[(0,r.jsx)("span",{style:{display:"flex",color:"var(--text-dim)",flexShrink:0},children:(0,r.jsx)(eR,{size:11})}),(0,r.jsx)("input",{ref:L,value:E,onChange:e=>A(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),P()),"Escape"===e.key&&$()},placeholder:K("sidebar_branchName"),"aria-label":K("sidebar_branchName"),style:{flex:1,minWidth:0,height:26,fontSize:11,fontFamily:"var(--font-mono)",padding:"0 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",boxSizing:"border-box"}}),(0,r.jsx)(ef,{label:K(R.busy?"sidebar_creating":"sidebar_createWorktreeAction"),disabled:R.busy||!E.trim(),onClick:P,children:(0,r.jsx)(eC,{size:14})}),(0,r.jsx)(ef,{label:K("sidebar_cancel"),onClick:$,children:(0,r.jsx)(eI,{size:13})})]}),M&&R&&(0,r.jsx)("div",{style:{padding:"3px 10px 6px 30px",color:"var(--status-danger)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:M}),!J&&0===e.worktrees.length&&(0,r.jsx)("div",{style:{padding:"2px 10px 6px 31px",color:"var(--text-dim)",fontSize:11},children:K("sidebar_noSessionsYet")})]})]})}function e5({group:e,homeDir:t,displayMode:n,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,collapsedWorktreePaths:c,collapsedSessionIds:u,searchActive:p,onToggleWorktree:h,onNewSession:g,onSelectSession:f,onRenamed:x,onSessionDeleted:m,onToggleCollapse:v,visibleCount:y,onShowMore:b,onShowFewer:w,worktreeActions:k,confirmRemove:j,onRequestRemove:S,onConfirmRemove:C,onCancelRemove:_,onSessionArchive:I,isSessionPinned:R,onTogglePin:T}){var E;let{t:M}=(0,el.s9)(),z=(E=e.path,!p&&c.has(E)),L=e.branch??d(e.path,t),W=M(z?"sidebar_expandWorktreeNamed":"sidebar_collapseWorktreeNamed",{name:L}),A=(0,i.useMemo)(()=>{let t=new Set([...s,...a]),n=e=>e.some(e=>t.has(e.session.id)||n(e.children));return n(e.tree)},[e,s,a]);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!z,"aria-label":W,onClick:()=>h(e.path),onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onKeyDown:t=>{t.target===t.currentTarget&&("Enter"===t.key||" "===t.key)&&(t.preventDefault(),h(e.path))},title:e.path,style:{display:"flex",alignItems:"center",gap:6,height:30,margin:"1px 6px",position:"relative",paddingLeft:32,paddingRight:8,borderRadius:6,cursor:"pointer",background:"transparent",color:"var(--text-muted)"},children:[(0,r.jsx)(eL,{collapsed:z,label:W,left:6,onClick:t=>{t.stopPropagation(),h(e.path)}}),(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(eR,{size:11})}),A&&(0,r.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",pointerEvents:"none"},children:(0,r.jsx)(eH,{size:18})}),(0,r.jsx)(eu,{text:L,style:{flex:1,fontSize:12,fontWeight:400,fontFamily:"var(--font-mono)"}}),A&&(0,r.jsx)(eH,{size:10}),(0,r.jsx)(ef,{label:M("sidebar_newSessionIn",{project:L}),hoverReveal:!0,onClick:e=>{e.stopPropagation(),g()},children:(0,r.jsx)(ek,{size:13})}),k?.canManage&&!j&&(0,r.jsx)(ef,{label:M("sidebar_removeWorktreeAt",{path:e.path}),danger:!0,hoverReveal:!0,disabled:k.busy,onClick:e=>{e.stopPropagation(),S()},children:(0,r.jsx)(eE,{size:13})})]}),j&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 30px",background:"var(--status-danger-bg)"},children:[(0,r.jsx)("span",{style:{flex:1,minWidth:0,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:M("sidebar_dirtyWorktreeConfirm")}),(0,r.jsx)("button",{type:"button",onClick:C,disabled:k?.busy,style:{padding:"3px 9px",background:"var(--status-danger)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:M("sidebar_forceRemove")}),(0,r.jsx)("button",{type:"button",onClick:_,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:M("sidebar_cancel")})]}),!z&&(0,r.jsxs)("div",{children:[Q(e.tree,y,p).map(e=>(0,r.jsx)(e8,{node:e,selectedSessionId:o,runningSessionIds:s,subagentRunningIds:a,unreadSessionIds:l,onSelectSession:f,onRenamed:x,onSessionDeleted:m,onSessionArchive:I,isSessionPinned:R,onTogglePin:T,depth:0,collapsedSessionIds:u,searchActive:p,onToggleCollapse:v,displayMode:n},e.session.id)),(0,r.jsx)(e$,{groupKey:e.path,total:e.tree.length,visibleCount:y,searchActive:p,onShowMore:b,onShowFewer:w}),0===e.tree.length&&(0,r.jsx)("div",{style:{padding:"2px 10px 5px 28px",color:"var(--text-dim)",fontSize:11},children:M("sidebar_noSessions")})]})]})}function e8({node:e,selectedSessionId:t,runningSessionIds:n,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:s,onRenamed:a,onSessionDeleted:l,onSessionArchive:d,isSessionPinned:c,onTogglePin:u,depth:p,collapsedSessionIds:h,searchActive:g,onToggleCollapse:f,displayMode:x}){var m;let v=e.children.length>0,y=(m=e.session.id,!g&&h.has(m));return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{"data-session-id":e.session.id,style:{position:"relative"},children:(0,r.jsx)(e3,{session:e.session,relation:e.relation,isSelected:e.session.id===t,isRunning:n.has(e.session.id)||i.has(e.session.id),isUnread:!e.session.subagent&&o.has(e.session.id),onClick:()=>s(e.session),onRenamed:a,onDeleted:e=>l?.(e),onArchive:e=>d?.(e),isPinned:c?.(e.session.id),onTogglePin:()=>u?.(e.session.id),depth:p,hasChildren:v,collapsed:y,onToggleCollapse:()=>f(e.session.id),displayMode:x})}),v&&!y&&(0,r.jsx)("div",{children:e.children.map(e=>(0,r.jsx)(e8,{node:e,selectedSessionId:t,runningSessionIds:n,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:s,onRenamed:a,onSessionDeleted:l,onSessionArchive:d,isSessionPinned:c,onTogglePin:u,depth:p+1,collapsedSessionIds:h,searchActive:g,onToggleCollapse:f,displayMode:x},e.session.id))})]})}function e3({session:e,relation:t=null,isSelected:n,isRunning:o,isUnread:s,onClick:a,onRenamed:l,onDeleted:d,onArchive:c,isPinned:u,onTogglePin:p,depth:h=0,hasChildren:g=!1,collapsed:f=!1,onToggleCollapse:x,displayMode:m}){let{t:v}=(0,el.s9)(),[y,b]=(0,i.useState)(!1),[w,k]=(0,i.useState)(!1),[j,S]=(0,i.useState)(""),[C,_]=(0,i.useState)(!1),[I,R]=(0,i.useState)(!1),T=(0,i.useRef)(null),E=eX(e),M=!0===o,z=!M&&!1===eX(e).readOnly,L=z?null:v(M?"archive_rowDisabledRunning":"archive_rowDisabledReadOnly"),W=(0,i.useContext)(eN),A=e.id?W.startedAt.get(e.id):void 0,P=!0===o&&!(g&&f),$=e.firstMessage.trim(),H=e.subagent&&(!$||"(no messages)"===$)?`${e.subagent.agent?`${e.subagent.agent} \xb7 `:""}${v("sidebar_runCount",{count:e.subagent.runIndex})}`:"",F="(no messages)"===$?v("sidebar_noMessages"):e.firstMessage,D=e.name||H||F.slice(0,50)||e.id.slice(0,12),N=(0,i.useCallback)(()=>{E.canRename&&(S(D),k(!0),setTimeout(()=>T.current?.select(),0))},[D,E.canRename]),B=(0,i.useCallback)(async()=>{if(!E.canRename)return void k(!1);let t=j.trim();if(k(!1),t!==(e.name??""))try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})}),l?.()}catch{}},[j,e.id,e.name,l,E.canRename]),O=(0,i.useCallback)(()=>{E.canDelete&&_(!0)},[E.canDelete]),U=(0,i.useCallback)(async()=>{if(!E.canDelete)return void _(!1);_(!1),R(!0);try{if(!(await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"})).ok)return void R(!1);d?.(e.id)}catch{R(!1)}},[e.id,d,E.canDelete]),q=(0,i.useCallback)(()=>{_(!1)},[]),K="compact"===m,V=K?30:40;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"sidebar-row","data-sidebar-depth":h,onClick:w?void 0:a,onMouseEnter:()=>b(!0),onMouseLeave:()=>{b(!1)},style:{height:V,display:"flex",alignItems:"center",width:"calc(100% - 12px)",margin:"1px 6px",position:"relative",paddingLeft:32+14*h,paddingRight:8,borderRadius:6,cursor:w?"default":"pointer",background:n?"var(--bg-selected)":y?"var(--bg-hover)":"transparent",borderLeft:n?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.15s ease, color 0.15s ease",opacity:I?.5:1,gap:6,overflow:"hidden"},children:w?(0,r.jsx)("input",{ref:T,value:j,onChange:e=>S(e.target.value),onBlur:B,onKeyDown:e=>{"Enter"===e.key&&B(),"Escape"===e.key&&k(!1)},autoFocus:!0,"aria-label":v("sidebar_renameSession"),style:{flex:1,fontSize:K?11:12,padding:"0 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",height:K?20:28}}):(0,r.jsxs)(r.Fragment,{children:[g?(0,r.jsx)("button",{type:"button",className:"sidebar-chevron-btn sidebar-indent-indicator sidebar-chevron-always",onClick:e=>{e.stopPropagation(),x?.()},title:v(f?"sidebar_expandChild":"sidebar_collapseChild"),"data-tooltip":v(f?"sidebar_expandChild":"sidebar_collapseChild"),"aria-label":v(f?"sidebar_expandChild":"sidebar_collapseChild"),style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:6+14*h,top:"50%",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transform:`translateY(-50%)${f?" rotate(-90deg)":""}`,transition:"transform 0.15s"},children:(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}):(0,r.jsx)("span",{className:"sidebar-indent-placeholder","aria-hidden":"true",style:{position:"absolute",left:6+14*h,top:"50%",width:20,height:20,transform:"translateY(-50%)"}}),o&&(0,r.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:6+14*h,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",pointerEvents:"none"},children:(0,r.jsx)(eH,{size:18})}),(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,fontSize:K?11.5:12,fontWeight:400,lineHeight:1.4,color:n?"var(--accent-hover)":"var(--text)"},title:D,children:[!o&&s&&(0,r.jsx)(eD,{size:10}),P&&K&&(0,r.jsx)(eF,{startedAt:A,now:W.now,running:!0}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:D}),K&&e.subagent&&(0,r.jsx)("span",{title:`${v("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${v("sidebar_runCount",{count:e.subagent.runIndex})}`,style:{display:"inline-flex",alignItems:"center",flexShrink:0,padding:"0 5px",border:"1px solid color-mix(in srgb, var(--status-success) 42%, var(--border))",borderRadius:999,color:"var(--status-success)",fontSize:9,lineHeight:1.55},children:v("sidebar_subagentBadge")})]}),!K&&(0,r.jsxs)("div",{style:{marginTop:1,display:"flex",alignItems:"center",gap:8,color:"var(--text-dim)",fontSize:10.5,minWidth:0},children:[P&&(0,r.jsx)(eF,{startedAt:A,now:W.now,running:!0}),(0,r.jsx)("span",{title:e.modified,children:ec(e.modified,v)}),(0,r.jsx)("span",{children:v("sidebar_messagesCount",{count:e.messageCount})}),e.subagent&&(0,r.jsxs)("span",{title:`${v("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${v("sidebar_runCount",{count:e.subagent.runIndex})}`,style:{display:"flex",alignItems:"center",gap:4,color:"var(--text-muted)",minWidth:0,overflow:"hidden"},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontSize:9,padding:"0 5px",borderRadius:999,border:"1px solid color-mix(in srgb, var(--status-success) 42%, var(--border))",color:"var(--status-success)",lineHeight:1.55},children:v("sidebar_subagentBadge")}),(0,r.jsxs)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:10},children:[e.subagent.agent?`${e.subagent.agent} \xb7 `:"",v("sidebar_runCount",{count:e.subagent.runIndex})]})]}),e.worktreeBranch&&(0,r.jsxs)("span",{title:v("sidebar_worktreeTooltip",{path:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden"},children:[(0,r.jsx)(eR,{size:9}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.worktreeBranch})]})]})]}),(0,r.jsx)(e4,{session:e,title:D,canRename:E.canRename,canDelete:E.canDelete,canArchive:z,archiveDisabledReason:L,isPinned:u,onTogglePin:p,onRename:N,onDelete:O,onArchive:()=>c?.(e.id)})]})}),(0,r.jsx)(eY,{open:C,onClose:q,title:v("sidebar_deleteSession"),description:v("sidebar_deleteConfirm",{name:D}),width:400,closeLabel:v("dialog_close"),actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{disabled:I,onClick:q,children:v("sidebar_cancel")}),(0,r.jsx)(eW,{danger:!0,disabled:I,onClick:()=>void U(),children:v("sidebar_deleteSession")})]})})]})}function e9({open:e,onClose:t,resolveProjectRoot:n,onAdded:o}){let{t:s}=(0,el.s9)(),a=(0,i.useRef)(null),[l,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)(!1),[g,f]=(0,i.useState)([]),[x,m]=(0,i.useState)(null),[v,y]=(0,i.useState)(!1),[b,w]=(0,i.useState)(!1),[k,j]=(0,i.useState)(null),[S,C]=(0,i.useState)(null),[_,I]=(0,i.useState)(!1),R=(0,i.useRef)(0);(0,i.useEffect)(()=>{I(!!window.piDesktop?.selectDirectory)},[]);let T=(0,i.useCallback)(()=>{d(""),u(null),h(!1),f([]),m(null),y(!1),w(!1),j(null),C(null)},[]),E=(0,i.useCallback)(async e=>{let t=++R.current;y(!0),w(!1),u(null);try{let n=await fetch(`/api/cwd/browse?path=${encodeURIComponent(e)}`);if(t!==R.current)return;if(!n.ok){f([]),m(null),w(!0),j(null),C(null);return}let r=await n.json();if(t!==R.current)return;d(r.path??e),j(r.path??e),C(r.parentPath??null),f(r.entries??[]),m(r.git??null),w(!1)}catch{if(t!==R.current)return;f([]),m(null),w(!0),j(null),C(null)}finally{t===R.current&&y(!1)}},[]);(0,i.useEffect)(()=>{e?E(""):T()},[e,T,E]);let M=(0,i.useCallback)(()=>{t()},[t]),z=(0,i.useCallback)(async e=>{let t=(e??k??l).trim();if(t&&!p){h(!0),u(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 u(r.error??`HTTP ${e.status}`);let i=r.cwd??t;o(i,n(i))}catch(e){u(e instanceof Error?e.message:String(e))}finally{h(!1)}}},[k,l,p,o,n]),L=(0,i.useCallback)(async()=>{let e=window.piDesktop;if(e)try{u(null);let t=await e.selectDirectory();null!==t&&(d(t),E(t))}catch(e){u(e instanceof Error?e.message:String(e))}},[E]),W=(0,i.useCallback)(async()=>{if(!p){h(!0),u(null);try{let e=await fetch("/api/default-cwd",{method:"POST"}),t=await e.json().catch(()=>({}));if(!e.ok||t.error||!t.cwd)return void u(t.error??`HTTP ${e.status}`);o(t.cwd,n(t.cwd))}catch(e){u(e instanceof Error?e.message:String(e))}finally{h(!1)}}},[p,o,n]),A=!!(k&&l.trim()===k);return(0,r.jsx)(eY,{open:e,onClose:M,title:s("sidebar_addProjectDialog"),width:440,closeLabel:s("dialog_close"),initialFocusRef:a,description:s("sidebar_addProjectDescription"),actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{onClick:M,children:s("sidebar_cancel")}),(0,r.jsx)("span",{title:A?void 0:s("sidebar_browseOpenBeforeSelect"),children:(0,r.jsx)(eW,{primary:!0,disabled:p||!A,onClick:()=>void z(),children:s(p?"sidebar_validating":"sidebar_add")})})]}),children:(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=l.trim();t&&t!==k&&E(t)},children:[(0,r.jsx)("label",{htmlFor:"add-project-path",style:{display:"block",fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:s("sidebar_projectPath")}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,r.jsx)("input",{id:"add-project-path",ref:a,value:l,onChange:e=>{d(e.target.value),u(null)},onKeyDown:e=>{"Escape"!==e.key||p||(e.preventDefault(),M())},placeholder:"/path/to/project","aria-label":s("sidebar_projectPath"),autoComplete:"off",spellCheck:!1,style:{flex:1,minWidth:0,height:32,fontSize:12,fontFamily:"var(--font-mono)",padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,outline:"none",background:"var(--bg-panel)",color:"var(--text)",boxSizing:"border-box"}}),(0,r.jsx)(eW,{disabled:v||!l.trim(),onClick:()=>void E(l.trim()),children:s(v?"sidebar_browseLoading":"sidebar_browseGo")}),_&&(0,r.jsx)(eW,{onClick:()=>void L(),children:s("sidebar_selectDirectory")})]}),k&&(0,r.jsxs)("div",{style:{marginTop:10},children:[v&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseLoading")}),!v&&b&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseMissing")}),!v&&!b&&x&&(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:11,marginBottom:6,color:x.isRepo?"var(--text-muted)":"var(--text-dim)"},children:x.isRepo?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{style:{color:"var(--accent)",fontWeight:600},children:s("sidebar_browseGitRepo")}),x.branch&&(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10.5},children:x.branch})]}):(0,r.jsx)("span",{children:s("sidebar_browseNotGit")})}),!v&&!b&&(0,r.jsxs)("div",{style:{maxHeight:150,overflowY:"auto",overflowX:"hidden",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",padding:4},children:[S&&(0,r.jsx)("button",{type:"button",disabled:v,onClick:()=>{E(S)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"4px 8px",border:"none",background:"transparent",color:"var(--text-muted)",fontSize:12,cursor:"pointer",borderRadius:5,fontFamily:"var(--font-mono)"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:".."}),0===g.length?(0,r.jsx)("div",{style:{padding:"6px 8px",fontSize:11,color:"var(--text-dim)"},children:s("sidebar_browseEmpty")}):g.map(e=>(0,r.jsxs)("button",{type:"button",disabled:v,onClick:()=>{E(e.path)},style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"4px 8px",border:"none",background:"transparent",color:"var(--text)",fontSize:12,cursor:"pointer",borderRadius:5,textAlign:"left",fontFamily:"var(--font-mono)"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10.5},children:"▸"}),(0,r.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path))]})]}),c&&(0,r.jsx)("div",{role:"alert",style:{marginTop:8,color:"var(--status-danger)",fontSize:12,lineHeight:1.45,overflowWrap:"anywhere"},children:c}),(0,r.jsxs)("div",{style:{marginTop:14,paddingTop:12,borderTop:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,r.jsx)("span",{style:{fontSize:11.5,color:"var(--text-dim)"},children:s("sidebar_noExistingDirectory")}),(0,r.jsxs)(eW,{disabled:p,onClick:()=>void W(),children:[(0,r.jsx)(e_,{size:13}),s("sidebar_createDefaultDirectory")]})]})]})})}function e7({cwd:e,tab:t}){let{t:n}=(0,el.s9)(),[o,s]=(0,i.useState)(null),[a,l]=(0,i.useState)(null),[d,c]=(0,i.useState)(!0),[u,p]=(0,i.useState)(!1),[h,g]=(0,i.useState)(null),[f,x]=(0,i.useState)(!1),[m,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(""),[w,k]=(0,i.useState)(""),j=(0,i.useCallback)(async()=>{c(!0),g(null);try{let t=await fetch(`/api/project-assets?cwd=${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`HTTP ${t.status}`)}let n=await t.json();s(n.rulesContent??""),l(Array.isArray(n.skills)?n.skills:[])}catch(e){g(e instanceof Error?e.message:String(e))}finally{c(!1)}},[e]);(0,i.useEffect)(()=>{j()},[j]);let S=(0,i.useCallback)(async t=>{let n=await fetch("/api/project-assets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,...t})});if(!n.ok)throw Error((await n.json().catch(()=>({}))).error??`HTTP ${n.status}`);return!0},[e]),C=(0,i.useCallback)(async()=>{if(null!==o){p(!0),g(null),x(!1);try{await S({kind:"rules",content:o}),x(!0),window.setTimeout(()=>x(!1),2e3)}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[o,S]),_=(0,i.useCallback)(async()=>{let e=w.trim();if(e){p(!0),g(null);try{await S({kind:"skill",action:"create",name:e}),k(""),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[w,S,j]),I=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"update",name:e,content:y}),v(null),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[y,S,j]),R=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"toggle",name:e.name,enabled:!e.enabled}),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,j]),T=(0,i.useCallback)(async e=>{p(!0),g(null);try{await S({kind:"skill",action:"delete",name:e}),await j()}catch(e){g(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,j]),E={width:"100%",minHeight:200,padding:"10px 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,lineHeight:1.55,outline:"none",fontFamily:"var(--font-mono)",whiteSpace:"pre",overflow:"auto",boxSizing:"border-box",resize:"vertical"};return d?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:n("common_loading")}):(0,r.jsxs)("div",{children:[h&&(0,r.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:10,whiteSpace:"pre-wrap"},children:h}),"rules"===t?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:8,fontFamily:"var(--font-mono)"},children:[e,"/AGENTS.md"]}),(0,r.jsx)("textarea",{value:o??"",onChange:e=>s(e.target.value),spellCheck:!1,"aria-label":n("projectAssets_rules"),style:E}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:10},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void C(),disabled:u||null===o,style:{minHeight:30,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u||null===o?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u||null===o?.6:1},children:u?n("common_saving"):n("common_save")}),f&&(0,r.jsx)("span",{style:{fontSize:12,color:"var(--accent)"},children:n("common_saved")})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginBottom:12},children:[(0,r.jsx)("input",{type:"text",value:w,onChange:e=>k(e.target.value),placeholder:n("projectAssets_newSkillName"),"aria-label":n("projectAssets_newSkillName"),style:{flex:1,height:30,padding:"0 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}}),(0,r.jsx)("button",{type:"button",onClick:()=>void _(),disabled:u||!w.trim(),style:{minHeight:30,padding:"0 12px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u||!w.trim()?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u||!w.trim()?.6:1},children:n("projectAssets_addSkill")})]}),a?.length===0?(0,r.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:n("projectAssets_noSkills")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:(a??[]).map(e=>(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,r.jsx)("span",{style:{fontSize:12,color:"var(--text)",fontFamily:"var(--font-mono)",flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,r.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,color:"var(--text-muted)",cursor:"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:()=>void R(e),disabled:u}),n("projectAssets_enabled")]}),(0,r.jsx)("button",{type:"button",onClick:()=>{v(e.name),b(e.content)},style:{fontSize:11,color:"var(--accent)",cursor:"pointer",background:"none",border:"none"},children:n("projectAssets_edit")}),(0,r.jsx)("button",{type:"button",onClick:()=>void T(e.name),disabled:u,style:{fontSize:11,color:"var(--status-danger)",cursor:u?"not-allowed":"pointer",background:"none",border:"none"},children:n("common_remove")})]}),m===e.name&&(0,r.jsxs)("div",{style:{padding:8},children:[(0,r.jsx)("textarea",{value:y,onChange:e=>b(e.target.value),spellCheck:!1,"aria-label":`${e.name} SKILL.md`,style:E}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginTop:8},children:[(0,r.jsx)("button",{type:"button",onClick:()=>void I(e.name),disabled:u,style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u?.6:1},children:u?n("common_saving"):n("common_save")}),(0,r.jsx)("button",{type:"button",onClick:()=>v(null),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:n("common_cancel")})]})]})]},e.name))})]})]})}function te({projectRoot:e,initialName:t,onClose:n,onSaveName:o}){let{t:s}=(0,el.s9)(),a=(0,i.useRef)(null),[l,d]=(0,i.useState)("name"),[c,u]=(0,i.useState)(t);return(0,i.useEffect)(()=>{null!==e&&(d("name"),u(t))},[e,t]),(0,r.jsxs)(eY,{open:null!==e,onClose:n,title:s("sidebar_editProject"),width:720,height:620,closeLabel:s("dialog_close"),description:e?s("sidebar_editProjectDescription",{path:e}):void 0,children:[(0,r.jsx)("div",{style:{display:"flex",gap:8,marginBottom:14,flexWrap:"wrap"},children:[["name",s("sidebar_projectName")],["rules",s("sidebar_projectRules")],["skills",s("sidebar_projectSkills")]].map(([e,t])=>(0,r.jsx)("button",{type:"button",onClick:()=>d(e),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:l===e?"var(--bg-selected)":"var(--bg-panel)",color:l===e?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:l===e?600:400},"aria-current":l===e?"page":void 0,children:t},e))}),"name"===l?(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=c.trim();t&&o(t)},children:[(0,r.jsx)("label",{htmlFor:"edit-project-name",style:{display:"block",fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:s("sidebar_projectName")}),(0,r.jsx)("input",{id:"edit-project-name",ref:a,value:c,onChange:e=>u(e.target.value),placeholder:s("sidebar_projectName"),"aria-label":s("sidebar_projectName"),"aria-invalid":!c.trim(),autoComplete:"off",spellCheck:!1,style:{width:"100%",height:32,fontSize:12.5,padding:"0 10px",border:"1px solid var(--border)",borderRadius:7,outline:"none",background:"var(--bg-panel)",color:"var(--text)",boxSizing:"border-box"}}),!c.trim()&&(0,r.jsx)("div",{style:{marginTop:6,fontSize:11.5,color:"var(--status-danger)"},children:s("sidebar_projectNameRequired")}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,marginTop:14},children:[(0,r.jsx)("button",{type:"submit",disabled:!c.trim(),style:{minHeight:30,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:c.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,opacity:c.trim()?1:.6},children:s("sidebar_save")}),(0,r.jsx)("button",{type:"button",onClick:n,style:{minHeight:30,padding:"0 12px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:s("sidebar_cancel")})]})]}):e&&(0,r.jsx)(e7,{cwd:e,tab:"skills"===l?"skills":"rules"})]})}async function tt(e,t,n){try{let r=await n(e,t),i=await r.json().catch(()=>({}));return{ok:r.ok,status:r.status,error:i.error}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function tn(e){if(!e.archivedAt)return-1/0;let t=Date.parse(e.archivedAt);return Number.isNaN(t)?-1/0:t}function tr(e,t=60){let n=e.name?.trim()||e.firstMessage.trim()||e.id;return n.length<=t?n:`${n.slice(0,t)}…`}function ti(e){return e.ok?"other":409===e.status?"running":403===e.status?"readOnly":0===e.status?"network":"other"}function to({sessions:e,count:t,homeDir:n,loading:o,onRefresh:s,onBack:a}){let{t:l}=(0,el.s9)(),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)({sessionId:null}),[g,f]=(0,i.useState)(null);(0,i.useEffect)(()=>{s()},[s]);let x=(0,i.useCallback)(e=>{let t=ti(e);return"running"===t?l("archive_runningConflict"):"readOnly"===t?l("archive_readOnlyForbidden"):"network"===t?l("archive_networkError"):e.error??l("archive_unknownError")},[l]),m=(0,i.useCallback)(async e=>{if(null===c){u(e.id),f(null);try{let t=await function(e,t=fetch){return tt(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void f(l("archive_restoreFailed",{error:x(t)}));s()}catch(e){f(l("archive_restoreFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,s,l,x]),v=(0,i.useCallback)(async e=>{if(null===c){u(e.id),f(null);try{let t=await function(e,t=fetch){return tt(`/api/sessions/${encodeURIComponent(e)}`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void f(l("archive_deleteFailed",{error:x(t)}));h({sessionId:null}),s()}catch(e){f(l("archive_deleteFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,s,l,x]),y=[...e].sort((e,t)=>{let n=tn(e),r=tn(t);return n===r?0:n===-1/0?1:r===-1/0?-1:r-n}),b=p.sessionId?y.find(e=>e.id===p.sessionId)??null:null,w=b?tr(b):"",k=!!b&&c===b.id;return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsx)("button",{type:"button",onClick:a,"data-tooltip":l("archive_back"),"aria-label":l("archive_back"),className:"sidebar-icon-btn",style:{display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,r.jsx)(eI,{size:14})}),(0,r.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12.5,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:l("archive_viewTitle")}),(0,r.jsx)("span",{title:l("archive_viewCount",{count:t}),style:{flexShrink:0,minWidth:18,padding:"1px 6px",boxSizing:"border-box",borderRadius:999,background:"var(--bg-selected)",color:"var(--text-muted)",fontSize:10,fontWeight:600,textAlign:"center"},children:t})]}),g&&(0,r.jsx)("div",{role:"alert",style:{padding:"6px 10px",borderBottom:"1px solid var(--border)",background:"var(--status-danger-bg)",color:"var(--status-danger)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere",flexShrink:0},children:g}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",overflowY:"auto",padding:"4px 0",minHeight:80},children:[o&&0===y.length&&(0,r.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:l("sidebar_loading")}),!o&&0===y.length&&(0,r.jsxs)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.7},children:[l("archive_empty"),(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:l("archive_emptyHint")})]}),y.map(e=>{let t=tr(e),i=c===e.id;return(0,r.jsxs)("div",{"data-archive-session-id":e.id,style:{display:"flex",alignItems:"center",gap:6,margin:"1px 6px",padding:"7px 8px",borderRadius:6,background:"transparent",opacity:i?.5:1},children:[(0,r.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,r.jsx)("div",{title:t,style:{fontSize:12,fontWeight:500,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4},children:t}),(0,r.jsxs)("div",{style:{fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4,marginTop:1},children:[d(e.cwd,n)," \xb7 ",l("archive_archivedAt",{date:ec(e.archivedAt??e.modified,l)})]})]}),(0,r.jsx)("button",{type:"button",disabled:i,onClick:()=>void m(e),title:l("archive_restore"),style:{padding:"3px 9px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:5,color:"var(--text)",fontSize:11,cursor:i?"not-allowed":"pointer",flexShrink:0},children:i?l("archive_restoring"):l("archive_restore")}),(0,r.jsx)("button",{type:"button",disabled:i,onClick:()=>h({sessionId:e.id}),title:l("archive_delete"),"aria-label":l("archive_delete"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:i?"not-allowed":"pointer",flexShrink:0},children:(0,r.jsx)(eE,{size:13})})]},e.id)})]}),(0,r.jsx)(eY,{open:null!==b,onClose:()=>{k||h({sessionId:null})},title:l("archive_delete"),description:b?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{style:{fontWeight:600,color:"var(--text)",marginBottom:4},children:w}),(0,r.jsx)("div",{children:l("archive_deleteConfirm")})]}):l("archive_deleteConfirm"),width:400,closeLabel:l("dialog_close"),closeOnBackdrop:!k,closeOnEsc:!k,actions:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(eW,{disabled:k,onClick:()=>h({sessionId:null}),children:l("archive_deleteCancel")}),(0,r.jsx)(eW,{danger:!0,disabled:k||!b,onClick:()=>{b&&v(b)},children:k?l("archive_deleting"):l("archive_deleteConfirmButton")})]})})]})}function ts(e,t){let n=new Set(e);for(let e of t)n.add(e);return n}function ta(e){let t=e?.now??(()=>Date.now()),n={serverSessions:[],pendingById:new Map,pendingIds:new Set,deletedIds:new Set,archivedSessions:[],archivedCount:0,runningIds:new Set,startingIds:new Set,runningStartedAt:new Map,runningEpoch:new Map,unread:(0,ed.oJ)(),loading:!1,error:null,serverListLoaded:!1,listStatus:"idle"},r=new Set,i=()=>{for(let e of r)e()},o=()=>ts(n.runningIds,n.startingIds),s={getState:()=>n,getSnapshot(e=null){let t=function(e){let{serverSessions:t,pendingSessions:n,pendingIds:r=new Set(n.map(e=>e.id)),deletedIds:i}=e,o=new Map;for(let e of t)i?.has(e.id)||o.set(e.id,e);for(let e of n)!(i?.has(e.id)||o.has(e.id))&&r.has(e.id)&&o.set(e.id,e);return[...o.values()].sort(ee)}({serverSessions:n.serverSessions,pendingSessions:[...n.pendingById.values()],pendingIds:n.pendingIds,deletedIds:n.deletedIds}),r=o(),i=(0,ed.hA)(n.unread);for(let e of r)i.delete(e);return e&&i.delete(e),{sessions:t,archivedSessions:n.archivedSessions,archivedCount:n.archivedCount,runningIds:new Set(n.runningIds),startingIds:new Set(n.startingIds),effectiveRunningIds:r,unreadIds:i,loading:n.loading,error:n.error,serverListLoaded:n.serverListLoaded,listStatus:n.listStatus,runningStartedAt:new Map(n.runningStartedAt)}},subscribe:e=>(r.add(e),()=>{r.delete(e)}),applyServerList(e){let t=e.archivedSessions??[];n.serverSessions=[...e.sessions],n.archivedSessions=t,n.archivedCount=e.archivedCount??t.length,n.loading=!1,n.error=null,n.serverListLoaded=!0,n.listStatus="ready",((e,t)=>{let r=new Set(t.map(e=>e.id)),i=new Set(e.map(e=>e.id)),o=!1,s=new Map(n.pendingById);for(let e of[...s.keys()])(i.has(e)||r.has(e)||n.deletedIds.has(e))&&(s.delete(e),o=!0);let a=function(e,t){if(0===e.size)return e;let n=new Set(t.map(e=>e.id)),r=!1,i=new Set;for(let t of e){if(n.has(t)){r=!0;continue}i.add(t)}return r?i:e}(n.pendingIds,e);for(let e of[...a])(r.has(e)||n.deletedIds.has(e))&&a.delete(e);o&&(n.pendingById=s),n.pendingIds=a})(e.sessions,t);let r=new Set([...e.sessions.map(e=>e.id),...n.pendingIds]);if(n.unread=(0,ed.v7)(n.unread,r),e.runningSessionIds&&0===n.runningIds.size&&0===n.startingIds.size)s.applyRunningSnapshot({runningIds:e.runningSessionIds,runningStartedAt:e.runningStartedAt,selectedSessionId:e.selectedSessionId,now:e.now});else if(e.runningStartedAt){let t=new Map(n.runningStartedAt);for(let[n,r]of Object.entries(e.runningStartedAt))t.has(n)||"number"!=typeof r||t.set(n,r);n.runningStartedAt=t}i()},applyListError(e){n.loading=!1,n.error=e,n.listStatus="error",n.serverListLoaded=!0,i()},beginListLoad(){"idle"===n.listStatus&&(n.listStatus="loading"),n.loading=0===n.serverSessions.length&&0===n.pendingById.size,i()},upsertPending(e){if(n.deletedIds.has(e.id))return;let t=new Map(n.pendingById);t.set(e.id,e),n.pendingById=t;let r=new Set(n.pendingIds);r.add(e.id),n.pendingIds=r,i()},removePending(e){if(!n.pendingById.has(e)&&!n.pendingIds.has(e))return;let t=new Map(n.pendingById);t.delete(e),n.pendingById=t;let r=new Set(n.pendingIds);r.delete(e),n.pendingIds=r,i()},markDeleted(e){let t=new Set(n.deletedIds);t.add(e),n.deletedIds=t,s.removePending(e);let r=new Set(n.startingIds);r.delete(e),n.startingIds=r,i()},markStarting(e,r=t()){if(!e)return;let o=new Set(n.startingIds);o.add(e),n.startingIds=o;let s=new Map(n.runningStartedAt);s.has(e)||s.set(e,r),n.runningStartedAt=s,i()},clearStarting(e){if(!n.startingIds.has(e))return;let t=new Set(n.startingIds);t.delete(e),n.startingIds=t,i()},applyRunningSnapshot(e){let r=new Set(e.runningIds),s=o(),a=new Map(n.runningStartedAt),l=new Map(n.runningEpoch),d=e.now??t(),c=new Date(d).toISOString();if(e.runningStartedAt)for(let[t,i]of Object.entries(e.runningStartedAt)){if("number"!=typeof i)continue;let o=a.get(t);void 0!==o&&o!==i&&r.has(t)&&(l.set(t,(l.get(t)??0)+1),n.unread=(0,ed.du)(n.unread,new Set([t]),new Set,e.selectedSessionId??null,c)),a.set(t,i)}for(let e of r)a.has(e)||a.set(e,d);for(let e of[...a.keys()])r.has(e)||n.startingIds.has(e)||a.delete(e);let u=ts(r,n.startingIds);for(let t of(n.unread=(0,ed.du)(n.unread,s,u,e.selectedSessionId??null,c),n.runningIds=r,n.runningStartedAt=a,n.runningEpoch=l,r))if(n.startingIds.has(t)){let e=new Set(n.startingIds);e.delete(t),n.startingIds=e}i()},markRead(e,r=new Date(t()).toISOString()){let o=(0,ed.AH)(n.unread,e,r);o!==n.unread&&(n.unread=o,i())},replaceUnread(e){n.unread=e,i()}};return s}function tl({selectedSessionId:e,onSelectSession:t,onNewSession:n,initialSessionId:o,skipInitialProjectSelection:s,onInitialRestoreDone:u,restoreNonce:p=0,refreshKey:h,onSessionDeleted:k,onProjectAdded:j,catalogStore:S}){let{t:C}=(0,el.s9)(),_=(0,i.useRef)(S??null);_.current||(_.current=S??ta()),S&&(_.current=S);let I=_.current,[R,E]=(0,i.useState)(0),M=(0,i.useRef)(e);M.current=e;let z=(0,i.useMemo)(()=>I.getSnapshot(M.current),[R,e]),P=z.sessions,$=z.serverListLoaded,H=z.loading,F=z.error,D=z.archivedSessions,N=z.archivedCount,B=z.runningIds,O=(0,i.useRef)(P);O.current=P;let U=(0,i.useRef)(0),{cwd:q,projectRoot:K}=ea(),{setIdentity:V,getIdentitySnapshot:J}=es(),[Q,en]=(0,i.useState)(""),[ei,eo]=(0,i.useState)(!1),[ec,eu]=(0,i.useState)(null),[eh,ex]=(0,i.useState)(null),ev=(0,i.useRef)(!0),eC=(0,i.useRef)(null),[e_,eR]=(0,i.useState)(!1),eT=z.effectiveRunningIds,[eE,eM]=(0,i.useState)(!1),[ez,eW]=(0,i.useState)(null),[eP,e$]=(0,i.useState)(null),[eH,eF]=(0,i.useState)(()=>new Set),eD=(0,i.useRef)(null),[eB,eO]=(0,i.useState)(()=>Date.now()),[eU,eq]=(0,i.useState)(()=>new Map),eK=eT.size>0||eH.size>0;(0,i.useEffect)(()=>{if(!eK)return;let e=setInterval(()=>eO(Date.now()),1e3);return()=>clearInterval(e)},[eK]),(0,i.useEffect)(()=>{let e=Date.now();eO(e),eq(t=>(function(e,t,n,r){let i=new Map,o=e.size!==t.length;for(let s of t){let t=function(e,t){let n=e?.get(t);return"number"==typeof n?n:void 0}(n,s)??e.get(s)??r;e.get(s)!==t&&(o=!0),i.set(s,t)}return o?i:e})(t,[...eT,...eH],z.runningStartedAt,e))},[eT,eH,z.runningStartedAt]);let eV=z.unreadIds,[eJ,eY]=(0,i.useState)(""),[eG,eZ]=(0,i.useState)(!1),[eX,eQ]=(0,i.useState)("meta"),[e0,e1]=(0,i.useState)([]),[e2,e4]=(0,i.useState)([]),[e5,e7]=(0,i.useState)(null),[tn,tr]=(0,i.useState)(!1),[ts,td]=(0,i.useState)(null),tc=(0,i.useRef)(0),tu=(0,i.useRef)(null),[tp,th]=(0,i.useState)(!1),[tg,tf]=(0,i.useState)(null),tx=(0,i.useRef)(null),tm=(0,i.useRef)(null),tv=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!tp||!tv.current)return;let e=requestAnimationFrame(()=>{let e=tm.current,t=tv.current;if(!e||!t)return;let n=e.offsetHeight;t.bottom+4+n<=window.innerHeight||tf(e=>e?{...e,top:Math.max(8,t.top-n-4)}:e)});return()=>cancelAnimationFrame(e)},[tp]);let[ty,tb]=(0,i.useState)(()=>L()),[tw,tk]=(0,i.useState)({}),[tj,tS]=(0,i.useState)(()=>new Set),tC=(0,i.useRef)(new Set),t_=(0,i.useRef)(null),tI=(0,i.useRef)(!1),tR=(0,i.useRef)(null),tT=(0,i.useRef)(new Set),tE=(0,i.useRef)(new Set),tM=(0,i.useRef)(!1),tz=(0,i.useRef)(0),tL=(0,i.useRef)(0),tW=(0,i.useRef)(null),tA=(0,i.useCallback)((e,t)=>{tz.current+=1,I.applyRunningSnapshot({runningIds:[...e],runningStartedAt:t,selectedSessionId:M.current,now:Date.now()})},[I]),tP=(0,i.useCallback)(e=>{tb(t=>{let n=e(t);if(n!==t){let e={...n,sidebarWidth:L().sidebarWidth};W(e),(0,Z.dM)("sidebarUi",A(e))}return n})},[]),t$=(0,Z.Fd)(),tH=(0,i.useMemo)(()=>{let e=t$.projectAliases,t="object"!=typeof e||null===e||Array.isArray(e)?{}:e;return{...ty.projectAliases,...t}},[ty.projectAliases,t$]);(0,i.useEffect)(()=>{let e=t$.sidebarUi;void 0!==e&&tb(t=>{let n=function(e,t){if("object"!=typeof t||null===t||Array.isArray(t))return e;let n=T({...e,...t});return{...e,displayMode:n.displayMode,collapsedProjectRoots:n.collapsedProjectRoots,collapsedWorktreePaths:n.collapsedWorktreePaths,closedProjectRoots:n.closedProjectRoots,addedProjectRoots:n.addedProjectRoots,showRecentSessions:n.showRecentSessions,pinnedSessionIds:n.pinnedSessionIds,projectSort:n.projectSort,projectOrder:n.projectOrder}}(t,e);return JSON.stringify(A(t))===JSON.stringify(A(n))?t:(W({...n,sidebarWidth:L().sidebarWidth}),n)})},[t$]);let tF=ty.displayMode,tD=ty.showRecentSessions,[tN,tB]=(0,i.useState)(5),tO=(0,i.useMemo)(()=>new Set(ty.collapsedProjectRoots),[ty.collapsedProjectRoots]),tU=(0,i.useMemo)(()=>new Set(ty.collapsedWorktreePaths),[ty.collapsedWorktreePaths]),tq=(0,i.useMemo)(()=>new Set(ty.closedProjectRoots),[ty.closedProjectRoots]);(0,i.useEffect)(()=>I.subscribe(()=>E(e=>e+1)),[I]);let tK=(0,i.useCallback)(async(e=!1)=>{let t=++U.current;if(e&&0===O.current.length&&!$){let e=Y();if(e&&e.length>0){if(!ev.current||!et(t,U.current))return;I.applyServerList({sessions:e,archivedSessions:[],archivedCount:0})}}I.beginListLoad();try{let n=await fetch("/api/sessions");if(!ev.current||!et(t,U.current))return;if(!n.ok)throw Error(`HTTP ${n.status}`);let r=await n.json();if(!ev.current||!et(t,U.current))return;I.applyServerList({sessions:r.sessions,archivedSessions:r.archivedSessions??[],archivedCount:r.archivedCount??0,runningSessionIds:r.runningSessionIds,runningStartedAt:r.runningStartedAt,selectedSessionId:M.current,now:Date.now()}),G(r.sessions),e||(eR(!0),tW.current&&clearTimeout(tW.current),tW.current=setTimeout(()=>{ev.current&&eR(!1)},2e3))}catch(e){if(!ev.current||!et(t,U.current))return;I.applyListError(String(e))}},[I,$,O]),tV=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=!tV.current;tV.current=!0,tK(e)},[tK,h]),(0,i.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&tK(!1)};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",e)}},[tK]);let{worktreeSnapshots:tJ,worktreeSnapshotsRef:tY,worktreeMetadata:tG,setWtRefreshKey:tZ,commitWorktreeSnapshots:tX}=function({allSessions:e,selectedCwd:t,selectedProjectRoot:n,setIdentity:r,getIdentitySnapshot:o,mountedRef:s}){let[a,d]=(0,i.useState)({}),c=(0,i.useRef)({}),[u,p]=(0,i.useState)({}),h=(0,i.useRef)(new Set),g=(0,i.useRef)(new Map),[f,x]=(0,i.useState)(0),m=(0,i.useCallback)(e=>{d(t=>{let n=e(t);return c.current=n,n})},[]);(0,i.useEffect)(()=>()=>{g.current.clear()},[]);let v=(0,i.useCallback)(async e=>{if(h.current.has(e))return;let t=`${Date.now()}:${Math.random()}`;h.current.add(e),g.current.set(e,t),m(t=>er(t,e,{status:"loading"}));try{var n;let i=await fetch(`/api/worktrees?cwd=${encodeURIComponent(e)}`),a=await i.json().catch(()=>({}));if(!i.ok||a.error||!a.projectRoot)throw Error(a.error??`HTTP ${i.status}`);if(!s.current||g.current.get(e)!==t)return;let l=a.projectRoot,d=a.worktrees??[];m(t=>l===e?er(t,e,{status:"ready",worktrees:d}):er(function(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n}(t,e),l,{status:"ready",worktrees:d})),p(t=>{let n={isGit:a.isGit??!1,isTopLevel:a.isTopLevel??!1};return l===e?{...t,[e]:n}:{...t,[l]:n}});let c=o();(n={snapshotCwd:c.cwd,snapshotProjectRoot:c.projectRoot,requestedRoot:e,canonicalRoot:l}).snapshotCwd&&(n.snapshotCwd===n.requestedRoot||n.snapshotProjectRoot===n.requestedRoot||n.snapshotCwd===n.canonicalRoot||n.snapshotProjectRoot===n.canonicalRoot)&&r({cwd:c.cwd,projectRoot:l,branch:d.find(e=>e.path===c.cwd)?.branch??c.branch,isGit:a.isGit??!1,isTopLevel:a.isTopLevel??!1,status:"ready",error:null})}catch(n){if(!s.current||g.current.get(e)!==t)return;m(t=>er(t,e,{status:"error",error:n instanceof Error?n.message:String(n)}))}finally{g.current.get(e)===t&&(g.current.delete(e),h.current.delete(e))}},[m,o,r,s]),y=(0,i.useMemo)(()=>{var r,i,o;return r=l(e),i=t,(o=n)?r.includes(o)?r:[o,...r]:i&&!r.includes(i)?[i,...r]:r},[e,t,n]),b=(0,i.useRef)(new Map);return(0,i.useEffect)(()=>{let e=`wt:${Math.max(0,Math.floor(f))}`,t=y.filter(t=>b.current.get(t)!==e);for(let n of t)b.current.set(n,e);let n=!1;return Promise.all(Array.from({length:Math.min(3,t.length)},async()=>{for(;!n;){let e=t.shift();if(!e)return;await v(e)}})),()=>{n=!0}},[y,f,v]),{worktreeSnapshots:a,worktreeSnapshotsRef:c,worktreeMetadata:u,wtRefreshKey:f,setWtRefreshKey:x,commitWorktreeSnapshots:m,fetchProjectWorktrees:v,knownProjectRoots:y}}({allSessions:P,selectedCwd:q,selectedProjectRoot:K,setIdentity:V,getIdentitySnapshot:J,mountedRef:ev});(0,i.useEffect)(()=>{let e=(0,ed.mD)([...(0,ed.Uj)()]);I.replaceUnread(e)},[I]),(0,i.useEffect)(()=>{let e=I.getState().unread,t=(0,ed.hA)(e);(0,ed.Xb)(t)},[R,I]),(0,i.useEffect)(()=>{let e=new EventSource("/api/agent/running/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);"running"===t.type&&(tM.current=!0,tA((t.runningSessionIds??[]).filter(e=>"string"==typeof e),t.runningStartedAt&&"object"==typeof t.runningStartedAt?t.runningStartedAt:void 0))}catch{}},()=>e.close()},[tA]),(0,i.useEffect)(()=>{let e=()=>{if("visible"!==document.visibilityState)return;let e=++tL.current,t=tz.current;fetch("/api/agent/running",{cache:"no-store"}).then(e=>e.json()).then(n=>{!Array.isArray(n.runningSessionIds)||ev.current&&(0,ed._i)(t,tz.current,e,tL.current)&&(tM.current=!0,tA(n.runningSessionIds.filter(e=>"string"==typeof e),n.runningStartedAt&&"object"==typeof n.runningStartedAt?n.runningStartedAt:void 0))}).catch(()=>void 0)};return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[tA]);let tQ=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/subagent-runs?limit=50");if(!e.ok)return;let t=((await e.json()).runs??[]).filter(e=>"running"===e.state||"queued"===e.state||"paused"===e.state),n=new Set;for(let e of t)for(let t of e.steps??[])t.sessionId&&n.add(t.sessionId);let r=new Set;if(n.size>0)for(let e of O.current)e.subagent?.parentSessionId&&n.has(e.id)&&r.add(e.subagent.parentSessionId);eF(new Set([...n,...r]))}catch{}},[]);(0,i.useEffect)(()=>(tQ(),eD.current=setInterval(()=>void tQ(),3e4),()=>{eD.current&&clearInterval(eD.current)}),[tQ]),(0,i.useEffect)(()=>{e_&&tQ()},[e_,tQ]),(0,i.useEffect)(()=>{tT.current=new Set(B),tE.current=new Set(eT)},[eT,B]);let t0=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{let e=t0.current,t=[...B].filter(t=>!e.has(t));t0.current=new Set(B),t.length>0&&tK(!1)},[B,tK]),(0,i.useEffect)(()=>{e&&I.markRead(e)},[e,I]),(0,i.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&en(e.home)}).catch(()=>{})},[]);let t1=(0,i.useRef)(!1);(0,i.useEffect)(()=>{t1.current=!1},[p]),(0,i.useEffect)(()=>()=>{ev.current=!1},[]);let t2=(0,i.useCallback)(e=>{if(!e)return null;if(q===e&&K)return K;for(let[t,n]of Object.entries(tY.current))if(n.worktrees.some(t=>t.path===e))return t;let t=P.find(t=>t.cwd===e);return t?.projectRoot??e},[q,K,P]),t4=(0,i.useCallback)((e,t)=>{let n=null===e?null:t??t2(e)??e;V({cwd:e,projectRoot:n,status:e?"ready":"idle",error:null})},[t2,V]),t6=K??t2(q),{wtNewForProject:t5,setWtNewForProject:t8,wtNewBranch:t3,setWtNewBranch:t9,wtError:t7,setWtError:ne,wtErrorRoot:nt,setWtErrorRoot:nn,wtBusy:nr,wtConfirmRemove:ni,setWtConfirmRemove:no,handleCreateWorktree:ns,handleRemoveWorktree:na}=function({selectedCwd:e,selectCwd:t,commitWorktreeSnapshots:n,setWtRefreshKey:r}){let[o,s]=(0,i.useState)(null),[a,l]=(0,i.useState)(""),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(null),[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(null);(0,i.useEffect)(()=>{s(null),l(""),c(null),p(null),x(null)},[e]);let m=(0,i.useCallback)(async()=>{let e=a.trim();if(e&&!h&&o){g(!0),c(null),p(null);try{let i=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:o,branch:e})}),a=await i.json().catch(()=>({}));if(!i.ok||a.error||!a.path){c(a.error??`HTTP ${i.status}`),p(o);return}s(null),l(""),n(t=>er(t,o,{status:"ready",worktrees:[...t[o]?.worktrees??[],{path:a.path,branch:e,isMain:!1}]})),t(a.path,o),r(e=>e+1)}catch(e){c(e instanceof Error?e.message:String(e)),p(o)}finally{g(!1)}}},[o,a,h,n,t,r]),v=(0,i.useCallback)(async(n,i,o)=>{if(!h){g(!0),c(null),p(null);try{let s=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:n,path:i,force:o})}),a=await s.json().catch(()=>({}));if(!s.ok){if(a.dirty&&!o)return void x(i);c(a.error??`HTTP ${s.status}`),p(n);return}x(null),e===i&&t(n,n),r(e=>e+1)}catch(e){c(e instanceof Error?e.message:String(e)),p(n)}finally{g(!1)}}},[h,e,t,r]);return{wtNewForProject:o,setWtNewForProject:s,wtNewBranch:a,setWtNewBranch:l,wtError:d,setWtError:c,wtErrorRoot:u,setWtErrorRoot:p,wtBusy:h,wtConfirmRemove:f,setWtConfirmRemove:x,handleCreateWorktree:m,handleRemoveWorktree:v}}({selectedCwd:q,selectCwd:(e,t)=>t4(e,t),commitWorktreeSnapshots:tX,setWtRefreshKey:tZ});(0,i.useEffect)(()=>{if(!s||o){if(o&&!t1.current){if(F&&$){t1.current=!0,u?.({error:F});return}if(!$)return;let e=P.find(e=>e.id===o);if(e){t1.current=!0,t(e,!0),u?.({found:!0});return}t1.current=!0,u?.({found:!1});return}if(0!==P.length&&null===q){let e=l(P).find(e=>!tq.has(e));e&&t4(e)}}},[P,q,o,s,t,u,t4,tq,$,F,p]);let nl=(0,i.useCallback)(()=>{eo(!1)},[]),nd=(0,i.useCallback)(e=>{tP(t=>t.closedProjectRoots.includes(e)?{...t,closedProjectRoots:t.closedProjectRoots.filter(t=>t!==e)}:t)},[tP]),nc=(0,i.useCallback)((e,t)=>{tP(e=>e.addedProjectRoots.includes(t)?e:{...e,addedProjectRoots:[...e.addedProjectRoots,t]}),nd(t),nl(),j?.(t)},[tP,nd,nl,j]),nu=(0,i.useCallback)(()=>{eo(!0)},[]);(0,i.useEffect)(()=>{if(!tp)return;let e=e=>{!tx.current||tx.current.contains(e.target)||tm.current?.contains(e.target)||th(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[tp]);let np=(0,i.useCallback)(e=>{t(e)},[t]),nh=(0,i.useCallback)(e=>{tP(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:t),I.markDeleted(e),k?.(e),tK()},[I,k,tK,tP]),ng=(0,i.useCallback)(async e=>{if(null===ez){eW(e),e$(null);try{let t=await function(e,t=fetch){return tt(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"POST"},t)}(e);if(!t.ok){let e=ti(t);e$("running"===e?C("archive_runningConflict"):"readOnly"===e?C("archive_readOnlyForbidden"):"network"===e?C("archive_networkError"):t.error??C("archive_unknownError"));return}tP(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:t),tK()}catch(e){e$(e instanceof Error?e.message:String(e))}finally{eW(null)}}},[ez,tK,C,tP]),nf=(0,i.useCallback)(()=>{eM(e=>(e||e$(null),!e))},[]),nx=(0,i.useCallback)(e=>{tP(t=>t.showRecentSessions===e?t:{...t,showRecentSessions:e})},[tP]),nm=(0,i.useMemo)(()=>new Set(ty.pinnedSessionIds),[ty.pinnedSessionIds]),nv=(0,i.useMemo)(()=>(function(e){let{sessions:t,pinnedSessionIds:n,closedProjectRoots:r}=e,i=new Map;for(let e of t){if(e.subagent)continue;let t=e.projectRoot??e.cwd;t&&r?.has(t)||i.set(e.id,e)}let o=[],s=new Set;for(let e of n){let t=i.get(e);t&&!s.has(e)&&(s.add(e),o.push(t))}return o})({sessions:P,pinnedSessionIds:ty.pinnedSessionIds,closedProjectRoots:tq}),[P,ty.pinnedSessionIds,tq]),ny=(0,i.useCallback)(e=>{tP(t=>t.pinnedSessionIds.includes(e)?{...t,pinnedSessionIds:t.pinnedSessionIds.filter(t=>t!==e)}:{...t,pinnedSessionIds:[e,...t.pinnedSessionIds]})},[tP]),nb=(0,i.useMemo)(()=>(function(e){let{sessions:t,closedProjectRoots:n,excludeIds:r,limit:i=20}=e,o=Math.max(0,Math.floor(i));return t.filter(e=>{if(e.subagent||r?.has(e.id))return!1;let t=e.projectRoot??e.cwd;return!(t&&n?.has(t))}).slice().sort(ee).slice(0,o)})({sessions:P,closedProjectRoots:tq,excludeIds:nm,limit:20}),[P,tq,nm]);(0,i.useEffect)(()=>{tB(e=>0===nb.length?5:Math.min(Math.max(e,5),nb.length))},[nb.length]);let nw=(0,i.useCallback)((e=q)=>{e&&(t4(e,t2(e)),n?.(e))},[q,n,t4,t2]),nk=(0,i.useCallback)(()=>{eY(""),e1([]),e4([]),e7(null),td(null),tr(!1),tc.current+=1},[]),nj=(0,i.useCallback)(()=>{eG?(eZ(!1),nk()):(eZ(!0),setTimeout(()=>tu.current?.focus(),0))},[eG,nk]);(0,i.useEffect)(()=>{if(!eG||"fulltext"!==eX)return void tr(!1);let e=eJ.trim();if(!e){e1([]),e4([]),e7(null),td(null),tr(!1);return}let t=++tc.current;tr(!0),td(null);let n=setTimeout(()=>{(async()=>{try{let n=await fetch(`/api/sessions/search?q=${encodeURIComponent(e)}&limit=40`),r=await n.json().catch(()=>({}));if(t!==tc.current)return;if(!n.ok||r.error){td(r.error??`HTTP ${n.status}`),e1([]),e4([]),e7(null);return}e1(r.hits??[]),e4(r.sessionIds??[]),e7(r.source??null)}catch(e){if(t!==tc.current)return;td(e instanceof Error?e.message:String(e)),e1([]),e4([]),e7(null)}finally{t===tc.current&&tr(!1)}})()},280);return()=>clearTimeout(n)},[eG,eX,eJ]);let nS=(0,i.useMemo)(()=>Object.fromEntries(Object.entries(tJ).map(([e,t])=>[e,t.worktrees])),[tJ]),nC=(0,i.useMemo)(()=>(function(e,t={}){let{selectedCwd:n=null,selectedProjectRoot:r=null,knownWorktrees:i=[],knownWorktreesByProject:o={}}=t,s=new Map;for(let t of e){let e=t.projectRoot??t.cwd,n=s.get(e);if(n||(n={main:[],worktrees:new Map},s.set(e,n)),t.cwd===e)n.main.push(t);else{let e=n.worktrees.get(t.cwd);e||(e={sessions:[],branch:null},n.worktrees.set(t.cwd,e)),e.sessions.push(t),!e.branch&&t.worktreeBranch&&(e.branch=t.worktreeBranch)}}let a=r??n;for(let[e,t]of Object.entries(a?{...o,[a]:o[a]??i}:o)){let n=s.get(e);for(let r of(n||(n={main:[],worktrees:new Map},s.set(e,n)),t))!r.isMain&&(n.worktrees.has(r.path)||n.worktrees.set(r.path,{sessions:[],branch:r.branch}))}for(let e of(a&&!s.has(a)&&s.set(a,{main:[],worktrees:new Map}),t.addedProjectRoots??[]))s.has(e)||s.set(e,{main:[],worktrees:new Map});let l=[];for(let[e,t]of s){let n=[...t.worktrees.entries()].map(([e,t])=>({path:e,branch:t.branch,tree:g(t.sessions),latestActivity:v(t.sessions)})).sort((e,t)=>e.latestActivity&&t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):e.latestActivity?-1:t.latestActivity?1:e.path.localeCompare(t.path)),r=[...t.main,...t.worktrees.values().flatMap(e=>e.sessions)];l.push({root:e,mainTree:g(t.main),worktrees:n,latestActivity:v(r)})}return l.sort((e,t)=>e.latestActivity||t.latestActivity?e.latestActivity?t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):t.root===a?1:-1:e.root===a?-1:1:e.root.localeCompare(t.root)),l})(P,{selectedCwd:q,selectedProjectRoot:t6,knownWorktreesByProject:nS,addedProjectRoots:ty.addedProjectRoots}),[P,q,t6,nS,ty.addedProjectRoots]),n_=(0,i.useMemo)(()=>{let e=new Map,t=n=>{for(let r of n)e.set(r.session.id,r),r.children.length>0&&t(r.children)};for(let e of nC)for(let n of(t(e.mainTree),e.worktrees))t(n.tree);return e},[nC]),nI=(0,i.useMemo)(()=>0===tq.size?nC:nC.filter(e=>!tq.has(e.root)),[nC,tq]),nR=eJ.trim().toLowerCase(),nT="fulltext"===eX&&nR.length>0,nE=(0,i.useMemo)(()=>nT?new Set(e2):null,[nT,e2]),nM=nT?e2.length>0||tn||!!ts:nR.length>0,nz=(0,i.useMemo)(()=>(function(e,t){let{mode:n,order:r=[],aliases:i,selectedRoot:o=null}=t,s=[...e];if("az"===n||"za"===n)return s.sort((e,t)=>{let r=y.compare(b(e,i),b(t,i));return"az"===n?r:-r}),s;if("fixed"===n){let e=new Map(r.map((e,t)=>[e,t]));return s.sort((t,n)=>{let r=e.has(t.root)?e.get(t.root):Number.MAX_SAFE_INTEGER,i=e.has(n.root)?e.get(n.root):Number.MAX_SAFE_INTEGER;return r!==i?r-i:n.latestActivity.localeCompare(t.latestActivity)}),s}return s.sort((e,t)=>e.latestActivity||t.latestActivity?e.latestActivity?t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):t.root===o?1:-1:e.root===o?-1:1:e.root.localeCompare(t.root)),s})(nI,{mode:ty.projectSort,order:ty.projectOrder,aliases:tH,selectedRoot:t6}),[nI,ty.projectSort,ty.projectOrder,tH,t6]),nL=(0,i.useMemo)(()=>(function(e,t,n,r){let i=null!=r;if(!i&&!t)return e;let o=[];for(let s of e){if(!i){let e=n?.[s.root];if(s.root.toLowerCase().includes(t)||void 0!==e&&e.toLowerCase().includes(t)){o.push(s);continue}}let e=i?w(s.mainTree,r):f(s.mainTree,t),a=[];for(let e of s.worktrees){if(!i&&`${e.branch??""}
|
|
2
2
|
${e.path}`.toLowerCase().includes(t)){a.push(e);continue}let n=i?w(e.tree,r):f(e.tree,t);n.length>0&&a.push({...e,tree:n})}(e.length>0||a.length>0)&&o.push({...s,mainTree:e,worktrees:a})}return o})(nz,nT?"":nR,tH,nE),[nz,nR,tH,nE,nT]),nW=(0,i.useCallback)(e=>{let t=P.find(t=>t.id===e);t&&np(t)},[P,np]);(0,i.useEffect)(()=>{let e=function(e){let t=[];for(let n of e)for(let e of(t.push(...m(n.mainTree)),n.worktrees))t.push(...m(e.tree));return t}(nC);0!==e.length&&tS(t=>{let n=!1,r=new Set(t);for(let t of e)!tC.current.has(t)&&(r.has(t)||(r.add(t),n=!0));return n?r:t})},[nC]),(0,i.useEffect)(()=>{if(!e)return;let t=function(e,t){for(let n of e){if(n.mainTree.some(e=>e.session.id===t))return{projectRoot:n.root,worktreePath:null,ancestors:[]};let e=x(n.mainTree,t);if(e.length>0)return{projectRoot:n.root,worktreePath:null,ancestors:e};for(let e of n.worktrees){if(e.tree.some(e=>e.session.id===t))return{projectRoot:n.root,worktreePath:e.path,ancestors:[]};let r=x(e.tree,t);if(r.length>0)return{projectRoot:n.root,worktreePath:e.path,ancestors:r}}}return null}(nC,e);if(t&&(tP(e=>{let n=e.collapsedProjectRoots.includes(t.projectRoot),r=null!==t.worktreePath&&e.collapsedWorktreePaths.includes(t.worktreePath);return n||r?{...e,collapsedProjectRoots:n?e.collapsedProjectRoots.filter(e=>e!==t.projectRoot):e.collapsedProjectRoots,collapsedWorktreePaths:r?e.collapsedWorktreePaths.filter(e=>e!==t.worktreePath):e.collapsedWorktreePaths}:e}),t.ancestors.length>0)){for(let e of t.ancestors)tC.current.add(e);tS(e=>{if(!t.ancestors.some(t=>e.has(t)))return e;let n=new Set(e);return t.ancestors.forEach(e=>n.delete(e)),n})}},[e,nC,tP]),(0,i.useLayoutEffect)(()=>{if(!e)return;let t=t_.current;if(!t)return;let n=Array.from(t.querySelectorAll("[data-session-id]")).find(t=>t.dataset.sessionId===e);if(!n)return;let r=!tI.current&&o===e,i=tR.current!==e;tR.current=e;let s=t.getBoundingClientRect(),a=n.getBoundingClientRect(),l=a.top<s.top||a.bottom>s.bottom;(r||i&&l)&&n.scrollIntoView({block:"nearest"}),r&&(tI.current=!0)},[e,o,nL,tO,tU,tj]);let nA=(0,i.useCallback)(e=>{tC.current.add(e),tS(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),nP=(0,i.useCallback)(e=>{tP(t=>({...t,collapsedProjectRoots:t.collapsedProjectRoots.includes(e)?t.collapsedProjectRoots.filter(t=>t!==e):[...t.collapsedProjectRoots,e]}))},[tP]),n$=(0,i.useCallback)(e=>{tP(t=>({...t,collapsedWorktreePaths:t.collapsedWorktreePaths.includes(e)?t.collapsedWorktreePaths.filter(t=>t!==e):[...t.collapsedWorktreePaths,e]}))},[tP]),nH=(0,i.useCallback)(e=>{let t;if(eu(null),t=eT instanceof Set?eT:new Set(eT),P.some(n=>(n.projectRoot??n.cwd)===e&&t.has(n.id)))return void ne(C("sidebar_closeProjectRunning"));let r=new Set(ty.closedProjectRoots);if(r.add(e),tP(t=>t.closedProjectRoots.includes(e)?t:{...t,closedProjectRoots:[...t.closedProjectRoots,e]}),t6===e){let t=function(e,t,n){for(let r of e)if(r.root!==t&&!n.has(r.root))return r.root;return null}(nC,e,r);t?t4(t,t):(t4(null),n?.())}},[ty.closedProjectRoots,t6,nC,tP,t4,n,P,eT,C]),nF=(0,i.useCallback)(e=>{eu(null),ex(e)},[]),nD=(0,i.useCallback)(e=>{if(!eh)return;let t=e.trim();if(!t)return;ex(null);let n={...tH};t===c(eh)?delete n[eh]:n[eh]=t,tP(e=>({...e,projectAliases:n})),(0,Z.dM)("projectAliases",n)},[eh,tH,tP]),nN=(0,i.useCallback)(e=>{tP(t=>t.displayMode===e?t:{...t,displayMode:e})},[tP]),nB=(0,i.useCallback)(e=>{tP(t=>{if(t.projectSort===e&&"fixed"!==e)return t;let n="fixed"===e?t.projectOrder.length>0?t.projectOrder:nL.map(e=>e.root):t.projectOrder;return{...t,projectSort:e,projectOrder:n}})},[tP,nL]),nO=(0,i.useCallback)((e,t)=>{e&&t&&e!==t&&tP(n=>{let r,i,o,s="fixed"===n.projectSort&&n.projectOrder.length>0?[...n.projectOrder]:nL.map(e=>e.root);for(let e of nL)s.includes(e.root)||s.push(e.root);return s.includes(e)||s.push(e),s.includes(t)||s.push(t),{...n,projectSort:"fixed",projectOrder:(i=(r=[...s]).indexOf(e),o=r.indexOf(t),i<0||o<0||i===o||(r.splice(i,1),r.splice(o,0,e)),r)}})},[tP,nL]),nU=(0,i.useCallback)(()=>{let e=function(e){let t=[],n=[];for(let r of e)for(let e of(t.push(r.root),r.worktrees))n.push(e.path);return{projectRoots:t,worktreePaths:n}}(nI);tP(t=>({...t,collapsedProjectRoots:e.projectRoots,collapsedWorktreePaths:e.worktreePaths}))},[nI,tP]),nq=(0,i.useCallback)(()=>{tP(e=>0===e.collapsedProjectRoots.length&&0===e.collapsedWorktreePaths.length?e:{...e,collapsedProjectRoots:[],collapsedWorktreePaths:[]})},[tP]),nK=(0,i.useCallback)(e=>{let t=tJ[e],n=tG[e],r=!!(n?.isGit&&n.isTopLevel),i=r?C("sidebar_createWorktree"):t?.status!=="loading"&&t?n?.isGit?C("sidebar_worktreeOpenRoot"):C("sidebar_worktreeGitOnly"):C("sidebar_checkingWorktree");return{canManage:r,createHint:i,busy:nr}},[tJ,tG,nr,C]);return(0,r.jsx)(eN.Provider,{value:{startedAt:eU,now:eB},children:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{padding:"10px 10px 8px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,r.jsx)(eg,{}),(0,r.jsxs)("div",{className:"sidebar-toolbar",style:{display:"flex",alignItems:"center",gap:6},children:[(0,r.jsx)(ef,{label:C("sidebar_addProject"),onClick:nu,active:ei,children:(0,r.jsx)(em,{size:18})}),(0,r.jsx)(ef,{label:q?C("sidebar_newSessionIn",{project:d(q,Q)}):C("sidebar_selectProject"),disabled:!q,onClick:()=>nw(),children:(0,r.jsx)(ek,{size:18})}),(0,r.jsx)(ef,{label:C("sidebar_searchSessions"),active:eG,expanded:eG,onClick:nj,children:(0,r.jsx)(ej,{size:18})}),(0,r.jsx)(ef,{label:C("sidebar_archive"),active:eE,expanded:eE,onClick:nf,children:(0,r.jsx)(ew,{size:18})}),(0,r.jsxs)("div",{ref:tx,style:{position:"relative"},children:[(0,r.jsx)(ef,{label:C("sidebar_displayOptions"),active:tp,expanded:tp,onClick:()=>{let e=!tp;if(th(e),e){let e=tx.current?.getBoundingClientRect();e&&(tv.current={top:e.top,bottom:e.bottom,right:e.right},tf({top:e.bottom+4,right:Math.max(8,window.innerWidth-e.right)}))}},children:(0,r.jsx)(eS,{size:18})}),tp&&(0,a.createPortal)((0,r.jsx)(ep,{open:tp,style:{position:"fixed",top:tg?.top??0,right:tg?.right??0,zIndex:600,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",minWidth:168},children:(0,r.jsxs)("div",{ref:tm,onKeyDown:e=>{"Escape"===e.key&&th(!1)},children:[(0,r.jsx)(eA,{label:C("sidebar_standard"),checked:"standard"===tF,onClick:()=>{nN("standard"),th(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_compact"),checked:"compact"===tF,onClick:()=>{nN("compact"),th(!1)}}),(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",margin:"2px 0"}}),(0,r.jsx)("div",{style:{padding:"6px 10px 2px",fontSize:10,fontWeight:600,color:"var(--text-dim)",letterSpacing:"0.04em"},children:C("sidebar_projectSort")}),(0,r.jsx)(eA,{label:C("sidebar_projectSortRecent"),checked:"recent"===ty.projectSort,onClick:()=>{nB("recent"),th(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_projectSortAz"),checked:"az"===ty.projectSort,onClick:()=>{nB("az"),th(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_projectSortZa"),checked:"za"===ty.projectSort,onClick:()=>{nB("za"),th(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_projectSortFixed"),checked:"fixed"===ty.projectSort,onClick:()=>{nB("fixed"),th(!1)}}),(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",margin:"2px 0"}}),(0,r.jsx)(eA,{label:C("sidebar_collapseAll"),onClick:()=>{nU(),th(!1)}}),(0,r.jsx)(eA,{label:C("sidebar_expandAll"),onClick:()=>{nq(),th(!1)}}),(0,r.jsx)("div",{style:{borderTop:"1px solid var(--border)",margin:"2px 0"}}),(0,r.jsx)(eA,{label:C("sidebar_recentSessions"),checked:tD,onClick:()=>{nx(!tD),th(!1)}})]})}),document.body)]})]})]}),!eE&&eG&&(0,r.jsxs)("div",{style:{marginTop:8},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:4,marginBottom:6},children:[(0,r.jsx)("button",{type:"button",onClick:()=>eQ("meta"),"aria-pressed":"meta"===eX,style:{flex:1,height:24,borderRadius:6,border:"1px solid var(--border)",background:"meta"===eX?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",fontSize:11,cursor:"pointer"},children:C("sidebar_searchModeMeta")}),(0,r.jsx)("button",{type:"button",onClick:()=>eQ("fulltext"),"aria-pressed":"fulltext"===eX,style:{flex:1,height:24,borderRadius:6,border:"1px solid var(--border)",background:"fulltext"===eX?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",fontSize:11,cursor:"pointer"},children:C("sidebar_searchModeFulltext")})]}),(0,r.jsxs)("div",{style:{position:"relative"},children:[(0,r.jsx)("span",{style:{position:"absolute",left:9,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none",display:"flex"},children:(0,r.jsx)(ej,{size:13})}),(0,r.jsx)("input",{ref:tu,type:"search",value:eJ,onChange:e=>eY(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),eJ||eZ(!1),nk())},placeholder:"fulltext"===eX?C("sidebar_searchPlaceholderFulltext"):C("sidebar_searchPlaceholder"),"aria-label":C("sidebar_searchSessions"),style:{width:"100%",height:30,boxSizing:"border-box",padding:"0 28px 0 29px",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",color:"var(--text)",fontSize:11.5,outline:"none"}}),eJ&&(0,r.jsx)("button",{type:"button",onClick:()=>nk(),"aria-label":C("sidebar_clearSearch"),title:C("sidebar_clearSearch"),style:{position:"absolute",right:4,top:"50%",transform:"translateY(-50%)",width:22,height:22,display:"flex",alignItems:"center",justifyContent:"center",padding:0,border:"none",borderRadius:5,background:"none",color:"var(--text-dim)",cursor:"pointer"},children:(0,r.jsx)(eI,{size:13})})]}),"fulltext"===eX&&eJ.trim()&&(0,r.jsxs)("div",{style:{marginTop:6,fontSize:10.5,color:"var(--text-dim)",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[tn&&(0,r.jsx)("span",{children:C("sidebar_searchFulltextLoading")}),!tn&&"fts"===e5&&(0,r.jsxs)("span",{children:[C("sidebar_searchFulltextSourceFts")," \xb7 ",C("sidebar_searchFulltextHits",{count:e0.length})]}),!tn&&"jsonl"===e5&&(0,r.jsxs)("span",{children:[C("sidebar_searchFulltextSourceJsonl")," \xb7 ",C("sidebar_searchFulltextHits",{count:e0.length})]}),ts&&(0,r.jsx)("span",{style:{color:"var(--status-danger)"},children:ts})]})]})]}),!eE&&eG&&"fulltext"===eX&&e0.length>0&&(0,r.jsx)("div",{style:{flex:"0 0 auto",maxHeight:160,overflowY:"auto",overflowX:"hidden",borderBottom:"1px solid var(--border)",padding:"4px 0"},children:e0.slice(0,12).map((e,t)=>(0,r.jsxs)("button",{type:"button",onClick:()=>nW(e.sessionId),title:C("sidebar_searchFulltextSnippet"),style:{display:"block",width:"100%",textAlign:"left",padding:"6px 12px",border:"none",background:"transparent",color:"var(--text)",cursor:"pointer",fontSize:11,lineHeight:1.4},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,r.jsxs)("div",{style:{color:"var(--text-dim)",fontSize:10,marginBottom:2},children:[e.role??"message"," \xb7 ",e.sessionId.slice(0,8)]}),(0,r.jsx)("div",{style:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",whiteSpace:"normal"},children:e.snippet})]},`${e.sessionId}-${e.timestamp}-${t}`))}),eE?(0,r.jsx)(to,{sessions:D,count:N,homeDir:Q,loading:H,onRefresh:tK,onBack:()=>eM(!1)}):(0,r.jsxs)(r.Fragment,{children:[eP&&(0,r.jsx)("div",{role:"alert",style:{padding:"6px 12px",borderBottom:"1px solid var(--border)",background:"var(--status-danger-bg)",color:"var(--status-danger)",fontSize:11,lineHeight:1.4,overflowWrap:"anywhere",flexShrink:0},children:eP}),(0,r.jsxs)("div",{ref:t_,style:{flex:"1 1 auto",overflowY:"auto",overflowX:"hidden",padding:"2px 0",minHeight:80},children:[H&&(0,r.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:C("sidebar_loading")}),F&&(0,r.jsx)("div",{style:{padding:"12px 14px",color:"var(--status-danger)",fontSize:12},children:F}),!H&&!F&&0===nL.length&&(("meta"===eX?nR.length>0:nT&&!tn)?(0,r.jsx)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.55},children:C("sidebar_searchEmpty",{query:eJ.trim()})}):(0,r.jsxs)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.7},children:[C("sidebar_noProjects"),(0,r.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:C("sidebar_addProject")})]})),!nM&&nv.length>0&&(0,r.jsxs)("div",{style:{paddingBottom:5,borderBottom:"1px solid var(--border)",marginBottom:5},children:[(0,r.jsxs)("div",{"data-sidebar-depth":0,className:"sidebar-row",style:{display:"flex",alignItems:"center",gap:6,height:32,margin:"1px 6px",paddingLeft:32,paddingRight:8,color:"var(--text-muted)",fontSize:12.5,fontWeight:600,position:"relative",borderRadius:6},children:[(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(eb,{size:13})}),(0,r.jsx)("span",{style:{flex:1,fontSize:12.5,fontWeight:600},children:C("sidebar_pinnedSessions")})]}),nv.map(t=>{let n=n_.get(t.id);return n?(0,r.jsx)(e8,{node:n,selectedSessionId:e,runningSessionIds:eT,subagentRunningIds:eH,unreadSessionIds:eV,onSelectSession:np,onRenamed:tK,onSessionDeleted:nh,onSessionArchive:ng,isSessionPinned:e=>nm.has(e),onTogglePin:ny,depth:0,collapsedSessionIds:tj,searchActive:nM,onToggleCollapse:nA,displayMode:tF},t.id):(0,r.jsx)(e3,{session:t,isSelected:t.id===e,isRunning:eT.has(t.id)||eH.has(t.id),isUnread:eV.has(t.id),onClick:()=>np(t),onRenamed:tK,onDeleted:nh,onArchive:ng,isPinned:nm.has(t.id),onTogglePin:()=>ny(t.id),depth:0,displayMode:tF},t.id)})]}),!nM&&nb.length>0&&(0,r.jsxs)("div",{style:{paddingBottom:5,borderBottom:"1px solid var(--border)",marginBottom:5},children:[(0,r.jsxs)("div",{"data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":tD,"aria-label":tD?C("sidebar_collapseRecentSessions"):C("sidebar_expandRecentSessions"),onClick:()=>nx(!tD),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),nx(!tD))},className:"sidebar-row",style:{display:"flex",alignItems:"center",gap:6,height:32,margin:"1px 6px",paddingLeft:32,paddingRight:8,color:"var(--text-muted)",fontSize:12.5,fontWeight:600,position:"relative",cursor:"pointer",borderRadius:6},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},children:[(0,r.jsx)(eL,{collapsed:!tD,label:tD?C("sidebar_collapseRecentSessions"):C("sidebar_expandRecentSessions"),left:6,onClick:e=>{e.stopPropagation(),nx(!tD)}}),(0,r.jsx)("span",{"aria-hidden":"true",className:"sidebar-indicator-icon",style:{position:"absolute",left:6,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",color:"var(--text-dim)"},children:(0,r.jsx)(ey,{size:13})}),(0,r.jsx)("span",{style:{flex:1,fontSize:12.5,fontWeight:600},children:C("sidebar_recentSessions")})]}),tD&&(0,r.jsxs)("div",{children:[nb.slice(0,tN).map(t=>{let n=n_.get(t.id);return n?(0,r.jsx)(e8,{node:n,selectedSessionId:e,runningSessionIds:eT,subagentRunningIds:eH,unreadSessionIds:eV,onSelectSession:np,onRenamed:tK,onSessionDeleted:nh,onSessionArchive:ng,isSessionPinned:e=>nm.has(e),onTogglePin:ny,depth:0,collapsedSessionIds:tj,searchActive:nM,onToggleCollapse:nA,displayMode:tF},t.id):(0,r.jsx)(e3,{session:t,isSelected:t.id===e,isRunning:eT.has(t.id)||eH.has(t.id),isUnread:eV.has(t.id),onClick:()=>np(t),onRenamed:tK,onDeleted:nh,onArchive:ng,isPinned:nm.has(t.id),onTogglePin:()=>ny(t.id),depth:0,displayMode:tF},t.id)}),tN<nb.length&&(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 8px 5px 28px"},children:(0,r.jsxs)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>tB(e=>Math.min(e+5,nb.length)),children:[C("sidebar_showMore"),(0,r.jsxs)("span",{"aria-hidden":"true",children:["+",5]})]})})]})]}),nL.map(t=>(0,r.jsx)(e6,{project:t,homeDir:Q,displayMode:tF,projectAliases:tH,selectedSessionId:e,runningSessionIds:eT,subagentRunningIds:eH,unreadSessionIds:eV,collapsedProjectRoots:tO,collapsedWorktreePaths:tU,collapsedSessionIds:tj,searchActive:nM,onToggleProject:nP,onToggleWorktree:n$,onNewSession:nw,onSelectSession:np,menuOpen:ec===t.root,onMenuOpenChange:e=>eu(e?t.root:null),onEditProject:()=>nF(t.root),onCloseProject:()=>nH(t.root),onRenamed:tK,onSessionDeleted:nh,onToggleCollapse:nA,groupVisibleCounts:tw,onShowMore:e=>tk(t=>{let n;return n=X(t,e),{...t,[e]:n+5}}),onShowFewer:e=>tk(t=>(function(e,t){if(!(t in e))return e;let n={...e};return delete n[t],n})(t,e)),worktreeActions:nK(t.root),wtNewOpen:t5===t.root,wtNewBranch:t3,wtError:nt===t.root?t7:null,wtConfirmRemove:ni,wtNewInputRef:eC,onStartCreateWorktree:()=>{t8(t.root),ne(null),nn(null),setTimeout(()=>eC.current?.focus(),0)},onWtNewBranchChange:e=>{t9(e),ne(null),nn(null)},onSubmitCreateWorktree:()=>void ns(),onCancelCreateWorktree:()=>{t8(null),t9(""),ne(null),nn(null)},onRequestRemoveWorktree:e=>void na(t.root,e,!1),onConfirmRemoveWorktree:e=>void na(t.root,e,!0),onCancelRemoveWorktree:()=>no(null),onSessionArchive:ng,isSessionPinned:e=>nm.has(e),onTogglePin:ny,onProjectDrop:nM?void 0:nO},t.root))]})]}),(0,r.jsx)(e9,{open:ei,onClose:nl,resolveProjectRoot:e=>t2(e)??e,onAdded:nc}),(0,r.jsx)(te,{projectRoot:eh,initialName:eh?tH[eh]??c(eh):"",onClose:()=>ex(null),onSaveName:nD})]})})}let td=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,tc=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,tu=/\x1B\[([0-9;]*)m/g,tp=/\x1B_pi:c\x07/g,th=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],tg=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function tf(e){return e.replace(tp,"").replace(td,"")}function tx(e){let t=[],n=0;for(;n<e.length;){if(27===e.charCodeAt(n)){let t=e.slice(n).match(tc);if(t){n+=t[0].length;continue}}let r=e.codePointAt(n);if(void 0===r)break;let i=String.fromCodePoint(r);t.push({start:n,end:n+i.length,char:i}),n+=i.length}return t}function tm(e,t){let n=tx(e)[t];return n?e.slice(0,n.start)+e.slice(n.end):e}function tv(e){return tx(e)[0]?.char}function ty(e){let t,n=[],r={},i=0;for(tu.lastIndex=0;null!==(t=tu.exec(e));)t.index>i&&n.push({text:e.slice(i,t.index),style:r}),r=function(e,t){let n={...e};for(let e=0;e<t.length;e++){let r=t[e];if(0===r)for(let e of Object.keys(n))delete n[e];else if(1===r)n.fontWeight=700;else if(2===r)n.opacity=.65;else if(3===r)n.fontStyle="italic";else if(4===r)n.textDecoration="underline";else if(22===r)delete n.fontWeight,delete n.opacity;else if(23===r)delete n.fontStyle;else if(24===r)delete n.textDecoration;else if(39===r)delete n.color;else if(49===r)delete n.backgroundColor;else if(r>=30&&r<=37)n.color=th[r-30];else if(r>=90&&r<=97)n.color=tg[r-90];else if(r>=40&&r<=47)n.backgroundColor=th[r-40];else if(r>=100&&r<=107)n.backgroundColor=tg[r-100];else if((38===r||48===r)&&2===t[e+1]){let[i,o,s]=[t[e+2],t[e+3],t[e+4]];[i,o,s].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===r?n.color=`rgb(${i}, ${o}, ${s})`:n.backgroundColor=`rgb(${i}, ${o}, ${s})`),e+=4}else if((38===r||48===r)&&5===t[e+1]){let i=function(e){if(e>=0&&e<8)return th[e];if(e>=8&&e<16)return tg[e-8];if(e>=16&&e<=231){let t=e-16,n=Math.floor(t/36),r=Math.floor(t%36/6),i=e=>0===e?0:55+40*e;return`rgb(${i(n)}, ${i(r)}, ${i(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);i&&(38===r?n.color=i:n.backgroundColor=i),e+=2}}return n}(r,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),i=t.index+t[0].length;return i<e.length&&n.push({text:e.slice(i),style:r}),n}let tb={ArrowUp:"\x1b[A",ArrowDown:"\x1b[B",ArrowRight:"\x1b[C",ArrowLeft:"\x1b[D",Home:"\x1b[H",End:"\x1b[F",Insert:"\x1b[2~",Delete:"\x1b[3~",PageUp:"\x1b[5~",PageDown:"\x1b[6~",Escape:"\x1b",Backspace:""},tw={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function tk(e){for(let t of[e.thinking,e.text,e.reasoning])if("string"==typeof t&&t.length>0)return t;return""}function tj(e){return"thinking"===e||"reasoning"===e||"redacted_thinking"===e}function tS(e){let t={...e,type:"thinking",thinking:tk(e)};return!0===e.deferred&&(t.deferred=!0),t}let tC=/<think(?:ing)?>([\s\S]*?)<\/think(?:ing)?>/gi,t_=/<think(?:ing)?>/i;function tI(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===tk(e).trim()}function tR(e,t={}){return(e.content??[]).filter(e=>!tI(e,t))}function tT(e,t={}){let n=tR(e,t),r=n.findLastIndex(e=>"text"!==e.type&&"image"!==e.type);return -1===r?{answerBlocks:n,processBlocks:[]}:{answerBlocks:n.slice(r+1),processBlocks:n.slice(0,r+1)}}function tE(e){return e.filter(e=>"toolCall"===e.type).length}function tM(e){let t=e.stopReason;return"error"===t||"aborted"===t||"string"==typeof e.errorMessage&&e.errorMessage.trim().length>0}function tz(e,t,n=!1){let r={...e,content:t};return n&&(r.usage=void 0),r}function tL(e,t,n,r={}){return{kind:"message",source:"disk",messageIndex:t,keyPrefix:r.keyPrefix??"message",attachRef:r.attachRef??!0,showTimestamp:r.showTimestamp??function(e,t,n){if(e[t]?.role!=="assistant")return;let r=!0;for(let n=t+1;n<e.length;n++){let t=e[n].role;if("user"===t)break;if("assistant"===t){r=!1;break}}return r&&n&&t===e.length-1&&(r=!1),r}(e,t,n),...r.messageOverride?{messageOverride:r.messageOverride}:{}}}function tW(e,t){if(!t)return e.length;let n=e.length;for(;n>0;){let t=e[n-1];if(t?.role!=="user")break;let r=!0===t._steerOptimistic,i=n-2>=0&&e[n-2]?.role==="user";if(!r&&!i)break;n--}return n}let tA="(max-width: 640px)";function tP(e){if(!window.matchMedia)return()=>{};let t=window.matchMedia(tA);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function t$(){return!!window.matchMedia&&window.matchMedia(tA).matches}function tH(){return!1}function tF(){return(0,i.useSyncExternalStore)(tP,t$,tH)}var tD=n(94514),tN=n(67635),tB=n(31025),tO=n(93631),tU=n(10762),tq=n(49387),tK=n(48368),tV=n(61878),tJ=n(92451),tY=n(15161),tG=n(63),tZ=n(44478),tX=n(12651),tQ=n(41585),t0=n(62791),t1=n(9921),t2=n(66088),t4=n(32316),t6=n(65063),t5=n(7644);let t8="pi-theme",t3="pi-theme-style",t9=new Set,t7=null;function ne(e){return"light"===e||"dark"===e||"system"===e}function nt(e){return"chamber"===e||"fusion"===e}function nn(e){return"system"!==e?e:window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function nr(){if("u"<typeof document)return"light";let e=document.documentElement.dataset.themeMode??null;if(ne(e))return e;try{let e=localStorage.getItem(t8);if(ne(e))return e}catch{}return document.documentElement.classList.contains("dark")?"dark":"light"}function ni(){if("u"<typeof document)return"chamber";let e=document.documentElement.dataset.themeStyle??null;if(nt(e))return e;try{let e=localStorage.getItem(t3);if(nt(e))return e}catch{}return"chamber"}function no(){if("u"<typeof document)return"light|chamber|light";let e=nr();return`${e}|${ni()}|${document.documentElement.classList.contains("dark")?"dark":"light"}`}function ns(){t9.forEach(e=>e())}function na(){if("system"!==nr())return;let e=nn("system");document.documentElement.classList.toggle("dark","dark"===e),ns()}function nl(e){return t9.add(e),t7||(t7=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",na),()=>{t9.delete(e),0===t9.size&&t7&&(t7.removeEventListener("change",na),t7=null)}}function nd(e,t){let n=nn(e),r=document.documentElement;r.classList.toggle("dark","dark"===n),r.dataset.themeMode=e,r.dataset.themeStyle=t;try{localStorage.setItem(t8,e),localStorage.setItem(t3,t)}catch{}(0,Z.dM)("theme",{mode:e,style:t}),ns()}function nc(){let[e,t,n]=(0,i.useSyncExternalStore)(nl,no,()=>"light|chamber|light").split("|"),r=(0,i.useCallback)((n,r,i)=>{if(e===n&&t===r)return;let o=()=>nd(n,r),s=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||s)return void o();let a=i?.x??window.innerWidth/2,l=i?.y??window.innerHeight/2,d=Math.hypot(Math.max(a,window.innerWidth-a),Math.max(l,window.innerHeight-l));document.startViewTransition(o).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${l}px)`,`circle(${d}px at ${a}px ${l}px)`]},{duration:450,easing:"cubic-bezier(0.22, 0.61, 0.36, 1)",pseudoElement:"::view-transition-new(root)"})}).catch(()=>{})},[e,t]),o=(0,i.useCallback)((e,n)=>{r(e,t,n)},[r,t]),s=(0,i.useCallback)((t,n)=>{r(e,t,n)},[e,r]),a=(0,i.useCallback)(e=>{o("dark"===n?"light":"dark",e)},[o,n]);return{theme:n,mode:e,themeStyle:t,toggleTheme:a,setTheme:o,setThemeStyle:s,isDark:"dark"===n}}function nu(e){try{return decodeURIComponent(e)}catch{return e}}function np(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function nh(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function ng(e){return np(e).split("/").filter(Boolean).map(encodeURIComponent).join("/")}function nf(e){let t=np(e).replace(/\/+$/,"");return t.split("/").pop()??t}function nx(e){let t=np(e).replace(/\/+$/,""),n=t.lastIndexOf("/");return n<0?"":0===n?"/":2===n&&/^[a-zA-Z]:\//.test(t)?t.slice(0,3):t.slice(0,n)}function nm(e,t){if(!t)return e;let n=np(e),r=np(t).replace(/\/$/,"");return n.startsWith(r+"/")?n.slice(r.length+1):e}function nv(e,t){return`${np(e).replace(/\/$/,"")}/${t}`}function ny(e){let t=np(e),n=/^[a-zA-Z]:\//.test(t),r=t.startsWith("//"),i=t.startsWith("/")&&!n&&!r,o=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){o.length>0&&".."!==o[o.length-1]?o.pop():i||n||r||o.push(e);continue}o.push(e)}let s=o.join("/");return n?s:r?`//${s}`:i?`/${s}`:s}function nb(e,t,n=t){let r,i,o,s,a;if(!e)return null;let l=e.split("#",1)[0].split("?",1)[0].trim();if(!l)return null;let d=null,c=null,u=nu(l),p=u.startsWith("\\\\"),h=np(u),g=h.toLowerCase();if(g.startsWith("/api/")||g.startsWith("/_next/")||!p&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!g.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(g.startsWith("file:")?c=(d=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let n=nu(t.pathname);if(t.hostname)return`//${t.hostname}${n.startsWith("/")?n:`/${n}`}`;if(/^\/[a-zA-Z]:\//.test(n))return n.slice(1);return n}catch{return null}}(h))?"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=`${np(t).replace(/\/+$/,"")}/${h}`,c="relative"),!d)return null;let f=ny(d).replace(/:\d+(?::\d+)?$/,"");return"relative"===c&&n&&(r=ny(f).replace(/\/+$/,""),i=ny(n).replace(/\/+$/,""),s=(o=/^[a-zA-Z]:\//.test(r)||/^[a-zA-Z]:\//.test(i))?r.toLowerCase():r,!(s===(a=o?i.toLowerCase():i)||s.startsWith(`${a}/`)))?null:f}(0,Z.zo)().then(()=>{let e=(0,Z.b3)("theme"),t="string"==typeof e?.mode?e.mode:null,n="string"==typeof e?.style?e.style:null;ne(t)&&nd(t,nt(n)?n:ni())});var nw=n(88374),nk=n(5924),nj=n(94764),nS=n(63835),nC=n(84678),n_=n(98164);let nI={...nj.j,attributes:{...nj.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},strip:[...nj.j.strip||[],"iframe","object","style","form"]},nR=[nC.A,n_.A],nT=[nC.A],nE=[nk.A,[nS.A,nI],[nw.A,{throwOnError:!1,strict:!1}]],nM=[nk.A,[nS.A,nI]];function nz({code:e,isStreaming:t}){let{t:o}=(0,el.s9)(),{isDark:s}=nc(),[a,l]=(0,i.useState)(!1),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(""),[h,g]=(0,i.useState)(null),f=`${s?"dark":"light"}
|
|
3
3
|
${e}`;(0,i.useEffect)(()=>{if(!a||t)return;let r=!1;return g(null),(async()=>{let{default:t}=await Promise.all([n.e(279),n.e(2280),n.e(3308)]).then(n.bind(n,43328));if(t.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:s?"dark":"default"}),!await t.parse(e,{suppressErrors:!0}))throw Error("Invalid Mermaid diagram");let i="u">typeof crypto&&"randomUUID"in crypto?`mermaid-${crypto.randomUUID()}`:`mermaid-${Date.now()}-${Math.random().toString(36).slice(2)}`,o=await t.render(i,e);r||(c(o.svg),p(f))})().catch(()=>{r||g(f)}),()=>{r=!0}},[e,f,s,t,a]);let x=(0,r.jsx)("button",{onClick:()=>l(e=>!e),disabled:t,title:o(t?"markdown_previewAfterStreaming":a?"markdown_showSource":"markdown_preview"),className:["markdown-code-action",a?"is-active":""].filter(Boolean).join(" "),children:o(a?"markdown_source":"markdown_previewShort")});if(!a||t)return(0,r.jsx)(nL,{code:e,lang:"mermaid",headerAction:x});let m=h===f?(0,r.jsx)("div",{className:"mermaid-block mermaid-block-error",children:o("markdown_invalidMermaid")}):d&&u===f?(0,r.jsx)("div",{className:"mermaid-block",dangerouslySetInnerHTML:{__html:d}}):(0,r.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":o("markdown_renderingMermaid")});return(0,r.jsxs)("div",{className:"markdown-code-block",children:[(0,r.jsxs)("div",{className:"markdown-code-header",children:[(0,r.jsx)("span",{className:"markdown-code-lang",children:"mermaid"}),x]}),m]})}function nL({code:e,lang:t,headerAction:n}){let{t:o}=(0,el.s9)(),{isDark:s}=nc(),[a,l]=(0,i.useState)(!1);return(0,r.jsxs)("div",{className:"markdown-code-block",children:[(0,r.jsxs)("div",{className:"markdown-code-header",children:[(0,r.jsx)("span",{className:"markdown-code-lang",children:t||"text"}),(0,r.jsxs)("div",{className:"markdown-code-actions",children:[n,(0,r.jsx)("button",{onClick:()=>{eQ(e).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},className:"markdown-code-action",children:o(a?"markdown_copied":"markdown_copy")})]})]}),(0,r.jsx)("div",{className:"markdown-code-body",children:(0,r.jsx)(t6.A,{language:t||"text",style:s?t5.xJ:t5.vs,showLineNumbers:!0,showInlineLineNumbers:!1,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal",userSelect:"none"},customStyle:{margin:0,padding:"11px 13px",fontSize:12.5,lineHeight:1.62,borderRadius:0,background:"color-mix(in srgb, var(--bg) 92%, var(--bg-panel))",userSelect:"text",WebkitUserSelect:"text"},codeTagProps:{style:{fontFamily:"var(--font-mono)",userSelect:"text",WebkitUserSelect:"text"}},children:e})})]})}let nW=(0,i.memo)(function({children:e,className:t,isStreaming:n,cwd:o,onOpenFile:s}){let a=(0,i.useMemo)(()=>{var t;let n,r,i;return n=(t=e).includes("\r\n")?"\r\n":"\n",r=t.split(/\r?\n/),i=null,r.map(e=>{let t=e.match(/^ {0,3}(`{3,}|~{3,})/);if(t){let n=t[1][0],r=t[1].length;return i?n===i.marker&&r>=i.size&&(i=null):i={marker:n,size:r},e}if(i)return e;let r=e.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(!r)return e;let o=r[2].trim();return o?`${r[1]}$$${n}${o}${n}${r[1]}$$`:e}).join(n)},[e]);return(0,r.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:(0,r.jsx)(t4.oz,{remarkPlugins:nR,rehypePlugins:nE,components:{code({className:e,children:t,...i}){delete i.node;let o=e?.replace("language-","").toLowerCase()??"",s=String(t);return e?.includes("language-")||s.includes("\n")?"mermaid"===o?(0,r.jsx)(nz,{code:s.replace(/\n$/,""),isStreaming:n}):(0,r.jsx)(nL,{code:s.replace(/\n$/,""),lang:o}):(0,r.jsx)("code",{className:"markdown-inline-code",...i,children:t})},pre:({children:e})=>(0,r.jsx)(r.Fragment,{children:e}),a({href:e,children:t,...n}){delete n.node;let i=s?nb(e,o):null;return i&&s?(0,r.jsx)("a",{href:e,...n,onClick:e=>{if(e.defaultPrevented||0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.currentTarget.getAttribute("target");t&&"_self"!==t||(e.preventDefault(),s(i))},children:t}):(0,r.jsx)("a",{href:e,...n,target:"_blank",rel:"noopener noreferrer",children:t})},table:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-wrap",children:(0,r.jsx)("div",{className:"markdown-table-scroll",children:e})}),thead:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-head",children:e}),tbody:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-body",children:e}),tr({children:e}){let t=i.Children.count(e)||1;return(0,r.jsx)("div",{className:"markdown-table-row",style:{gridTemplateColumns:`repeat(${t}, minmax(0, 1fr))`},children:e})},th:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-th",children:e}),td:({children:e})=>(0,r.jsx)("div",{className:"markdown-table-td",children:e})},children:a})})});n(92619).Buffer;let nA=["result","warning","error","output"];function nP(e){let t=e?.trim()??"";return""===t?null:t}function n$(e){return e.readOnly?{allowed:!1,reason:"readOnly"}:e.busy?{allowed:!1,reason:"busy"}:{allowed:!0}}let nH=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,nF=/(?:\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 nD(e){let t=[],n=[],r=e.match(nF),i=r?.[1]??"",o=r?.index===void 0?e:e.slice(0,r.index);return i.replace(nH,(e,r,i)=>{let o=i.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===r?t.push(...o):n.push(...o),""}),{body:o.trim(),readFiles:t,modifiedFiles:n}}function nN(e){let t,n=[],r=null,i=0,o=0,s=[],a=[],l=()=>({lineNo:null,text:"",type:"empty"}),d=()=>{if(!r){s=[],a=[];return}let e=Math.max(s.length,a.length);for(let t=0;t<e;t++){let e=s[t]?{lineNo:s[t].lineNo,text:s[t].text,type:"removed"}:l(),n=a[t]?{lineNo:a[t].lineNo,text:a[t].text,type:"added"}:l();r.rows.push({type:"line",left:e,right:n})}s=[],a=[]};for(let l of e.split(/\r?\n/)){if(l.startsWith("--- ")){d(),t=nB(l.slice(4));continue}if(l.startsWith("+++ ")){d(),r={oldPath:t,newPath:nB(l.slice(4)),rows:[]},n.push(r);continue}let e=l.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(e){r||(r={rows:[]},n.push(r)),d(),i=Number(e[1]),o=Number(e[2]),r.rows.push({type:"hunk",text:l});continue}if(!r)continue;if(l.startsWith("\\ ")){d(),r.rows.push({type:"hunk",text:l});continue}let c=l[0],u=l.slice(1);" "===c?(d(),r.rows.push({type:"line",left:{lineNo:i++,text:u,type:"context"},right:{lineNo:o++,text:u,type:"context"}})):"-"===c?s.push({lineNo:i++,text:u}):"+"===c?a.push({lineNo:o++,text:u}):""!==l&&(d(),r.rows.push({type:"hunk",text:l}))}d();let c=n.filter(e=>e.rows.some(e=>"line"===e.type));return c.length>0?c:null}function nB(e){return e.split(" ")[0].trim()}let nO={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"},nU={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"},nq={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg",mov:"video/quicktime",mkv:"video/x-matroska",avi:"video/x-msvideo"};function nK(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function nV(e){return null!==(nO[nK(e)]??null)}function nJ(e){return null!==(nU[nK(e)]??null)}function nY(e){return null!==(nq[nK(e)]??null)}function nG(e){return`/api/files/${ng(e)}?type=read`}function nZ({imageBlocks:e,pathImages:t,pathAudio:n,pathVideo:i}){let o=e??[],s=t??[],a=n??[],l=i??[];return 0===o.length&&0===s.length&&0===a.length&&0===l.length?null:(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:8},children:[(o.length>0||s.length>0)&&(0,r.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[o.map((e,t)=>{let n=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 n?(0,r.jsx)("img",{src:n,alt:"",style:{maxWidth:280,maxHeight:280,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}},`b-${t}`):null}),s.map(e=>(0,r.jsx)("img",{src:nG(e),alt:e,title:e,style:{maxWidth:280,maxHeight:280,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}},e))]}),a.map(e=>(0,r.jsxs)("div",{style:{minWidth:200,maxWidth:420},children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:e.split(/[\\/]/).pop()}),(0,r.jsx)("audio",{controls:!0,preload:"metadata",src:nG(e),style:{width:"100%"}})]},e)),l.map(e=>(0,r.jsxs)("div",{style:{minWidth:200,maxWidth:480},children:[(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:e.split(/[\\/]/).pop()}),(0,r.jsx)("video",{controls:!0,preload:"metadata",src:nG(e),style:{width:"100%",maxHeight:320,borderRadius:6,background:"var(--bg)",border:"1px solid var(--border)"}})]},e))]})}let nX=new Map,nQ=new Map;function n0(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&!0===e.deferredHeavy}function n1(e){if(!e)return null;let t=new Date(e),n=new Date,r=t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate(),i=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(r)return i;let o=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==n.getFullYear()?"numeric":void 0});return`${o} ${i}`}let n2=(0,i.memo)(function({message:e,isStreaming:t,toolResults:n,toolExecutionSnapshots:i,modelNames:o,cwd:s,onOpenFile:a,entryId:l,onBranchHere:d,onNewSessionFromHere:c,onBranchFromAssistant:u,onNewSessionFromAnswer:p,forking:h,showTimestamp:g,prevTimestamp:f,sessionId:x,toolsActive:m}){if("user"===e.role)return(0,r.jsx)(n4,{message:e,cwd:s,onOpenFile:a,entryId:l,onBranchHere:d,onNewSessionFromHere:c,forking:h});if("assistant"===e.role)return(0,r.jsx)(n6,{message:e,isStreaming:t,toolResults:n,toolExecutionSnapshots:i,modelNames:o,cwd:s,onOpenFile:a,showTimestamp:g,prevTimestamp:f,sessionId:x,entryId:l,onBranchFromAssistant:u,onNewSessionFromAnswer:p,toolsActive:m});if("toolResult"===e.role)return null;if("custom"===e.role){if("compaction"===e.customType)return(0,r.jsx)(rg,{message:e});if("pidance.command"===e.customType)return(0,r.jsx)(rf,{message:e});if("branch_summary"===e.customType)return(0,r.jsx)(rx,{message:e});if("pidance.activity"===e.customType){var v;let t=rp(v=e.details)&&1===v.version&&"string"==typeof v.kind&&nA.includes(v.kind)&&"string"==typeof v.title&&""!==v.title.trim()&&"string"==typeof v.content&&(void 0===v.source||"string"==typeof v.source)&&(void 0===v.requestId||"string"==typeof v.requestId)&&(void 0===v.metadata||rp(v.metadata))?v:null;if(t)return(0,r.jsx)(rb,{message:e,activity:t})}return(0,r.jsx)(rw,{message:e,cwd:s,onOpenFile:a})}return"bashExecution"===e.role?(0,r.jsx)(rj,{message:e,sessionId:x}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,n){if(t===n||"assistant"!==e.role)return!0;for(let r of e.content??[])if("toolCall"===r.type&&t?.get(r.toolCallId)!==n?.get(r.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.toolExecutionSnapshots===t.toolExecutionSnapshots&&e.modelNames===t.modelNames&&e.cwd===t.cwd&&e.onOpenFile===t.onOpenFile&&e.entryId===t.entryId&&e.onBranchHere===t.onBranchHere&&e.onNewSessionFromHere===t.onNewSessionFromHere&&e.onBranchFromAssistant===t.onBranchFromAssistant&&e.onNewSessionFromAnswer===t.onNewSessionFromAnswer&&e.forking===t.forking&&e.showTimestamp===t.showTimestamp&&e.prevTimestamp===t.prevTimestamp&&e.sessionId===t.sessionId);function n4({message:e,cwd:t,onOpenFile:n,entryId:o,onBranchHere:s,onNewSessionFromHere:a,forking:l}){let{t:d}=(0,el.s9)(),[c,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(!1),g="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),f="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),x=(0,i.useMemo)(()=>(function(e){let t,n=[],r=[],i=[],o=new Set,s=/(?:^|[\s`"'(\[]|-\s)((?:\/|[A-Za-z]:[\\/]|~\/)[^\s`"'\)\]]+\.(?:png|jpe?g|gif|webp|bmp|avif|svg|mp3|wav|ogg|oga|opus|m4a|aac|flac|weba|mp4|m4v|webm|ogv|mov|mkv|avi))\b/gim;for(;null!==(t=s.exec(e));){let e=t[1]?.replace(/[.,;:]+$/,"")??"";!(!e||o.has(e))&&(o.add(e),nY(e)?i.push(e):nJ(e)?r.push(e):nV(e)&&n.push(e))}return{images:n,audio:r,video:i}})(g),[g]),m=n1(e.timestamp),v=!!o&&!!s,y=!!o&&!!a;return(0,r.jsxs)("div",{style:{marginBottom:28,display:"flex",flexDirection:"column",alignItems:"flex-end"},onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,r.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,maxWidth:"85%"},children:(0,r.jsxs)("div",{style:{flex:1,minWidth:0,background:"var(--user-bg)",border:"1px solid color-mix(in srgb, var(--accent) 18%, var(--border))",borderRadius:"var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg)",padding:"11px 14px",fontSize:14,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word"},children:[(0,r.jsx)(nZ,{imageBlocks:f,pathImages:x.images,pathAudio:x.audio,pathVideo:x.video}),g&&(0,r.jsx)(nW,{className:"markdown-user-message",cwd:t,onOpenFile:n,children:g})]})}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,r.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!c,pointerEvents:c?"auto":"none",transition:"opacity 0.12s"},children:(0,r.jsx)("button",{onClick:()=>{eQ(g).then(()=>{h(!0),setTimeout(()=>h(!1),1500)})},"data-tooltip":d("message_copy"),className:"instant-tooltip","aria-label":d("message_copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 6px",height:22,background:"none",border:"none",borderRadius:5,color:p?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{p||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{p||(e.currentTarget.style.color="var(--text-dim)")},children:p?(0,r.jsx)(tD.A,{size:11,strokeWidth:1.8}):(0,r.jsx)(tN.A,{size:11,strokeWidth:1.8})})}),(v||y)&&(0,r.jsxs)("div",{style:{display:"flex",gap:3,opacity:c||l?1:0,pointerEvents:c||l?"auto":"none",transition:"opacity 0.12s"},children:[v&&(0,r.jsx)("button",{onClick:()=>{s(o,g)},"data-tooltip":d("message_branchHereTooltip"),className:"instant-tooltip","aria-label":d("message_branchHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:22,padding:0,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,r.jsx)(tB.A,{size:14,strokeWidth:1.8})}),y&&(0,r.jsx)("button",{onClick:()=>{a(o,g)},disabled:l,title:d(l?"message_creating":"message_newSessionFromHereTooltip"),"data-tooltip":d(l?"message_creating":"message_newSessionFromHereTooltip"),className:"instant-tooltip","aria-label":d("message_newSessionFromHere"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:22,padding:0,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,r.jsx)(tO.A,{size:14,strokeWidth:1.8})})]}),m&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:m})]})]})}function n6({message:e,isStreaming:t,toolResults:n,toolExecutionSnapshots:o,modelNames:s,cwd:a,onOpenFile:l,showTimestamp:d,prevTimestamp:c,sessionId:u,entryId:p,onBranchFromAssistant:h,onNewSessionFromAnswer:g,toolsActive:f}){var x,m,v;let y,b,w,k,j,{t:S}=(0,el.s9)(),C=d?n1(e.timestamp):null,_=(x=e.content??[],j=[],x.forEach((e,t)=>{if(tj(e.type))return void j.push({block:tS(e),sourceIndex:t});if("text"===e.type&&"string"==typeof e.text&&t_.test(e.text)){for(let n of(t_.lastIndex=0,function(e){let t,n=[],r=0;for(tC.lastIndex=0;null!==(t=tC.exec(e));)t.index>r&&n.push({type:"text",value:e.slice(r,t.index)}),n.push({type:"thinking",value:t[1]??""}),r=t.index+t[0].length;let i=e.slice(r),o=t_.exec(i);return o&&void 0!==o.index?(o.index>0&&n.push({type:"text",value:i.slice(0,o.index)}),n.push({type:"thinking",value:i.slice(o.index+o[0].length)})):i.length>0&&n.push({type:"text",value:i}),n}(e.text)))"thinking"===n.type?j.push({block:{type:"thinking",thinking:n.value},sourceIndex:t}):n.value.length>0&&j.push({block:{...e,type:"text",text:n.value},sourceIndex:t});return}j.push({block:e,sourceIndex:t})}),j).map(({block:e,sourceIndex:t})=>({block:e,originalIndex:t})).filter(({block:e})=>!tI(e,{isStreaming:t})),I=_.map(({block:e})=>e),[R,T]=(0,i.useState)(!1),[E,M]=(0,i.useState)(!1),z=(0,i.useRef)(null),[L,W]=(0,i.useState)(null),A=(0,i.useRef)(_);A.current=_;let P=(0,i.useRef)(new Map),[$,H]=(0,i.useState)(new Map),F=(0,i.useMemo)(()=>{if(!e.timestamp||!c)return;let t=Math.round((e.timestamp-c)/1e3);return t>0?t:void 0},[e.timestamp,c]),D=(0,i.useMemo)(()=>{let t=new Map;if(!n||!e.timestamp)return t;for(let[r,i]of n)if(i.timestamp&&e.timestamp){let n=Math.round((i.timestamp-e.timestamp)/1e3);n>0&&t.set(r,n)}return t},[n,e.timestamp]),N=(0,i.useMemo)(()=>new Map(o?.map(e=>[e.toolCallId,e])??[]),[o]),B=I.filter(e=>"text"===e.type).map(e=>e.text).join("\n");(0,i.useEffect)(()=>{if(!t){let e=new Date().getTime();H(t=>{let n=new Map(t);for(let[t,r]of P.current)n.has(t)||n.set(t,Math.round((e-r)/1e3));return n}),z.current=null,W(null);return}let e=setInterval(()=>{let e=A.current,t=e.map(({block:e})=>e),n=Date.now();e.forEach(({originalIndex:e})=>{P.current.has(e)||P.current.set(e,n)}),H(t=>{let r=!1,i=new Map(t);for(let t=0;t<e.length-1;t++){let o=e[t].originalIndex,s=e[t+1].originalIndex;if(!i.has(o)&&P.current.has(o)){let e=P.current.get(o),t=P.current.get(s)??n;i.set(o,Math.round((t-e)/1e3)),r=!0}}return r?i:t});let r=0;for(let e of t)"text"===e.type?r+=e.text?.length??0:"thinking"===e.type?r+=e.thinking?.length??0:"toolCall"===e.type&&(r+=JSON.stringify(e.input??{}).length);if(0===r)return;null===z.current&&(z.current=n);let i=(n-z.current)/1e3;i>.5&&W(r/4/i)},300);return()=>clearInterval(e)},[t]);let O=e.stopReason,U="string"==typeof e.errorMessage?e.errorMessage.trim():"",q="error"===O||U.length>0&&"end_turn"!==O&&"toolUse"!==O&&"length"!==O,K="aborted"===O,V=q||K||U.length>0;return 0!==I.length||t||V?(0,r.jsxs)("div",{style:{marginBottom:30},onMouseEnter:()=>T(!0),onMouseLeave:()=>T(!1),children:[(0,r.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:8,display:"flex",alignItems:"center",gap:6},children:[e.provider&&(0,r.jsx)("span",{children:s?.[`${e.provider}:${e.model}`]??s?.[e.model]??e.model}),t&&(()=>{let e,t=0;for(let e of I)"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 n=Math.round(t/4);return(0,r.jsx)(r.Fragment,{children:n>0&&(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:S("message_estimatedTokensStreaming"),children:[(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,r.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,r.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),n]}),null!==L&&(e=L>=50?"#53b3cb":L>=30?"#9bc53d":L>=15?"#f9c22e":"#e01a4f",(0,r.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:e,color:"#fff",fontSize:11,fontWeight:400},children:[L.toFixed(1)," t/s"]}))]})})})()]}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:_.map(({block:i,originalIndex:o},s)=>{var d;return(0,r.jsx)(n5,{block:i,toolResults:n,toolExecutionMap:N,isStreaming:t,activeStreamBlock:(d=_.length,!!t&&d>0&&s===d-1),streamingDuration:$.get(o)??("thinking"===i.type?F:void 0),toolCallDurations:D,cwd:a,onOpenFile:l,sessionId:u,entryId:p,blockIndex:o,toolsActive:f,startedAt:e.timestamp},`${p??"stream"}-${o}`)})}),!t&&V&&(0,r.jsxs)("div",{role:"alert",style:{marginTop:10,padding:"10px 12px",borderRadius:8,border:`1px solid ${K?"var(--status-warning-border, var(--border))":"var(--status-danger-border, var(--border))"}`,background:K?"var(--status-warning-bg, var(--bg-subtle))":"var(--status-danger-bg, var(--bg-subtle))",color:K?"var(--status-warning, var(--text))":"var(--error-text, var(--status-danger, var(--text)))",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:[(0,r.jsxs)("div",{style:{fontWeight:600,marginBottom:4*!!U},children:[K?S("message_aborted"):S("message_apiError"),O&&"error"!==O&&"aborted"!==O?(0,r.jsxs)("span",{style:{fontWeight:400,opacity:.8},children:[" (",O,")"]}):null]}),U?(0,r.jsx)("div",{children:U}):null]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[e.usage&&!t&&(0,r.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(m=e.usage,v=e,y=[],m.input&&y.push(`${m.input.toLocaleString()} in`),m.output&&y.push(`${m.output.toLocaleString()} out`),m.cacheRead&&y.push(`${m.cacheRead.toLocaleString()} cache`),m.cost?.total&&y.push(`$${m.cost.total.toFixed(4)}`),b=v?.provider?.trim(),w=v?.model?.trim(),(b||w)&&y.push([b,w].filter(Boolean).join(" / ")),(k=v?.thinkingLevel?.trim())&&"off"!==k&&y.push(k),y.join(" \xb7 "))}),B&&!t&&(0,r.jsx)("button",{onClick:()=>{eQ(B).then(()=>{M(!0),setTimeout(()=>M(!1),1500)})},"data-tooltip":S("message_copyAnswer"),className:"instant-tooltip","aria-label":S("message_copyAnswer"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 6px",height:22,width:22,background:"none",border:"none",borderRadius:5,color:E?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"opacity 0.12s, color 0.12s",opacity:+!!R,pointerEvents:R?"auto":"none"},onMouseEnter:e=>{E||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{E||(e.currentTarget.style.color="var(--text-dim)")},children:E?(0,r.jsx)(tD.A,{size:11,strokeWidth:1.8}):(0,r.jsx)(tN.A,{size:11,strokeWidth:1.8})}),p&&!t&&h&&(0,r.jsx)("button",{onClick:()=>{h(p)},"data-tooltip":S("message_branchFromAnswerTooltip"),className:"instant-tooltip","aria-label":S("message_branchFromAnswer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:22,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",opacity:+!!R,pointerEvents:R?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,r.jsx)(tB.A,{size:14,strokeWidth:1.8})}),p&&!t&&g&&(0,r.jsx)("button",{onClick:()=>{g(p)},"data-tooltip":S("message_newSessionFromAnswerTooltip"),className:"instant-tooltip","aria-label":S("message_newSessionFromAnswer"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:22,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",opacity:+!!R,pointerEvents:R?"auto":"none",transition:"opacity 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-dim)"},children:(0,r.jsx)(tO.A,{size:14,strokeWidth:1.8})}),C&&!t&&(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto"},children:C})]})]}):null}function n5({block:e,toolResults:t,toolExecutionMap:n,isStreaming:i,activeStreamBlock:o,streamingDuration:s,toolCallDurations:a,cwd:l,onOpenFile:d,sessionId:c,entryId:u,blockIndex:p,toolsActive:h,startedAt:g}){if("text"===e.type)return(0,r.jsx)(n8,{block:e,isStreaming:i,cwd:l,onOpenFile:d});if("thinking"===e.type)return(0,r.jsx)(re,{block:e,duration:s,isStreaming:!!o,sessionId:c,entryId:u,blockIndex:p});if("toolCall"===e.type){let i=t?.get(e.toolCallId),o=a?.get(e.toolCallId);return(0,r.jsx)(rt,{block:e,result:i,snapshot:n?.get(e.toolCallId),duration:o,sessionId:c,pending:!i&&!0===h,startedAt:i||!0!==h?void 0:g})}return null}function n8({block:e,isStreaming:t,cwd:n,onOpenFile:i}){return(0,r.jsx)(nW,{isStreaming:t,cwd:n,onOpenFile:i,children:e.text})}function n3(){return tF()?"min(240px, 32vh)":"min(320px, 45vh)"}function n9(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=24}function n7(e,t,n){e&&t&&(n.current=!0,e.scrollTop=e.scrollHeight,requestAnimationFrame(()=>{n.current=!1}))}function re({block:e,duration:t,isStreaming:n,sessionId:o,entryId:s,blockIndex:a}){let{t:l}=(0,el.s9)(),d=n3(),[c,u]=(0,i.useState)(n??!1),[p,h]=(0,i.useState)(null),[g,f]=(0,i.useState)(!1),[x,m]=(0,i.useState)(null),v=(0,i.useRef)(null),y=(0,i.useRef)(!0),b=(0,i.useRef)(!1);(0,i.useEffect)(()=>{u(n??!1)},[n]);let w=g?l("message_thinkingLoading"):x??(e.deferred?p:tk(e)),k=async()=>{if(e.deferred&&null===p&&!g){if(!o||!s)return void m(l("message_thinkingUnavailable"));f(!0),m(null);try{h(await function(e,t,n){let r=`${e}:${t}:${n}`,i=nX.get(r);if(i)return nX.delete(r),nX.set(r,i),i;let o=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${n}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if("string"!=typeof t.thinking)throw Error("Invalid thinking response");return t.thinking}).catch(e=>{throw nX.delete(r),e});if(nX.set(r,o),nX.size>100){let e=nX.keys().next().value;e&&nX.delete(e)}return o}(o,s,a))}catch(e){m(e instanceof Error?e.message:String(e))}finally{f(!1)}}};(0,i.useEffect)(()=>{c&&k()},[c]);let j=async()=>{let t=!c;u(t),t&&e.deferred&&null===p&&await k()};return(0,i.useEffect)(()=>{c&&(y.current=!0)},[c]),(0,i.useEffect)(()=>{n7(v.current,c&&y.current,b)},[c,w]),(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",fontSize:13},children:[(0,r.jsxs)("button",{onClick:()=>void j(),"aria-expanded":c,style:{display:"flex",alignItems:"center",gap:6,width:"100%",padding:"6px 10px",background:"var(--bg-panel)",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left"},children:[(0,r.jsx)("span",{children:l("chat_thinking")}),void 0!==t&&(0,r.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:rs(1e3*t)})]}),c&&(0,r.jsx)("div",{ref:v,tabIndex:0,className:"chat-selectable",onScroll:e=>{b.current||(y.current=n9(e.currentTarget))},style:{padding:"8px 10px",color:x?"var(--error-text)":"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",background:"var(--bg-panel)",borderTop:"1px solid var(--border)",maxHeight:d,overflow:"auto",overscrollBehavior:"contain"},children:w})]})}function rt({block:e,result:t,snapshot:n,duration:o,sessionId:s,pending:a,startedAt:l}){var d,c;let u,p,h,{t:g}=(0,el.s9)(),f=n3(),[x,m]=(0,i.useState)(null),[v,y]=(0,i.useState)(()=>Date.now()),[b,w]=(0,i.useState)(void 0),[k,j]=(0,i.useState)(!1),S=(0,i.useRef)(null),C=(0,i.useRef)(!0),_=(0,i.useRef)(!1),I=!t&&(n?.status==="running"||!0===a),R=x??I,T="edit"===(u=e.toolName.toLowerCase())||u.startsWith("edit_")||u.endsWith(".edit")||u.endsWith("_edit")||u.includes("str_replace")||u.includes("replace_editor"),E=t&&void 0!==b?{...t,details:b}:t,M=E&&!E.isError?function(e){let t=e.details;if(!rp(t))return null;let n="string"==typeof t.patch?t.patch:null;if(n)return{text:n};let r="string"==typeof t.diff?t.diff:null;return r?{text:r}:null}(E):null,z=E?E.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,L=null!==z&&("(no output)"===z.trim()||""===z.trim()),W=E?.isError??!1,A=n?.status,P=function(e,t,n=!1,r=!1){return"running"===e||r?"var(--status-running)":"success"===e||n&&!t?"var(--status-success)":"error"===e||t?"var(--status-danger)":"cancelled"===e?"var(--text-dim)":"var(--text-muted)"}(A,W,null!=E,a),$=function(e,t){if(t?.command)return t.command;let n=e.input;if(n&&"object"==typeof n&&"command"in n){let e=n.command;if("string"==typeof e)return e;if(e&&"object"==typeof e){if("string"==typeof e.command)return e.command;if("string"==typeof e.cmd)return e.cmd}}var r=e;let i=r.input;if(!i||"object"!=typeof i)return"";let o=Object.keys(i);return 0===o.length?"":"command"in i?String(i.command).slice(0,120):"path"in i?String(i.path).slice(0,120):"file_path"in i?String(i.file_path).slice(0,120):"pattern"in i?String(i.pattern).slice(0,120):"query"in i?String(i.query).slice(0,120):String(i[o[0]]).slice(0,120)}(e,n),H=rn(n?.renderedCallLines??e.renderedCallLines),F=rn(n?.renderedLines),D=rn(n?.renderedResultLines??E?.renderedResultLines),N=n?Math.max(0,("running"===n.status?v:n.endedAt??n.startedAt)-n.startedAt):void 0!==l?!0===a||void 0===o?Math.max(0,v-l):1e3*o:void 0===o?void 0:1e3*o;return(0,i.useEffect)(()=>{if(!I)return;let e=setInterval(()=>y(Date.now()),500);return()=>clearInterval(e)},[I]),(0,i.useEffect)(()=>{R&&(C.current=!0)},[R]),(0,i.useEffect)(()=>{n7(S.current,R&&C.current,_)},[R,n?.output,n?.renderedLines,F]),(0,i.useEffect)(()=>{if(!R||!t||!s||!n0(t.details)||void 0!==b||k)return;let n=!1;return j(!0),(function(e,t){let n=`${e}:${t}`,r=nQ.get(n);if(r)return nQ.delete(n),nQ.set(n,r),r;let i=fetch(`/api/sessions/${encodeURIComponent(e)}/tool-results/${encodeURIComponent(t)}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return(await e.json()).details??null}).catch(e=>{throw nQ.delete(n),e});if(nQ.set(n,i),nQ.size>50){let e=nQ.keys().next().value;e&&nQ.delete(e)}return i})(s,e.toolCallId).then(e=>{n||w(e)}).catch(()=>{n||w(t.details)}).finally(()=>{n||j(!1)}),()=>{n=!0}},[R,t,s,e.toolCallId,b,k]),(0,r.jsxs)("div",{style:{borderRadius:"var(--radius-md)",overflow:"hidden",fontSize:12,border:"1px solid var(--border)",borderLeft:`3px solid ${P}`,background:"var(--tool-bg)"},children:[(0,r.jsxs)("button",{onClick:()=>m(!R),"aria-expanded":R,style:{display:"flex",alignItems:"center",gap:7,width:"100%",padding:"6px 10px",background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:12,textAlign:"left",minWidth:0},children:[(0,r.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:5,flexShrink:0},children:[(d=e.toolName,c=P,p=d.toLowerCase(),h={size:12,color:c},"bash"===p||"exec_command"===p||"terminal"===p||p.includes("shell")?(0,r.jsx)(tU.A,{...h}):"edit"===p||"write"===p||p.includes("edit")||p.includes("write")?(0,r.jsx)(tq.A,{...h}):"read"===p||"multi_read"===p||p.includes("read")||p.includes("view")?(0,r.jsx)(tK.A,{...h}):"grep"===p||"search"===p||p.includes("grep")||p.includes("search")||p.includes("find")?(0,r.jsx)(tV.A,{...h}):p.includes("web")||p.includes("fetch")||p.includes("http")||p.includes("url")?(0,r.jsx)(tJ.A,{...h}):p.includes("todo")||p.includes("task")?(0,r.jsx)(tY.A,{...h}):p.includes("notify")||p.includes("message")?(0,r.jsx)(tG.A,{...h}):p.includes("approve")||p.includes("permission")||p.includes("confirm")?(0,r.jsx)(tZ.A,{...h}):(0,r.jsx)(tU.A,{...h})),I&&(0,r.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:P},"aria-hidden":"true"})]}),(0,r.jsx)("span",{style:{color:P,fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,flexShrink:0},children:e.toolName}),(0,r.jsx)("span",{title:$,style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:$}),A&&(0,r.jsx)("span",{style:{color:P,fontSize:10,fontWeight:600,flexShrink:0},children:g(ro[A])}),void 0!==N&&(0,r.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:rs(N)}),(0,r.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"var(--text-dim)",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",style:{flexShrink:0,transform:R?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,r.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),R&&$&&(0,r.jsxs)("div",{style:{padding:"8px 10px",borderTop:`1px solid color-mix(in srgb, ${P} 22%, var(--border))`,background:"var(--bg-subtle)"},children:[(0,r.jsx)("div",{style:{marginBottom:4,color:"var(--text-dim)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.08em"},children:g("message_toolCommand")}),(0,r.jsx)("code",{style:{display:"block",maxHeight:f,overflow:"auto",overscrollBehavior:"contain",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11.5,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:$})]}),R&&H&&(0,r.jsx)(ri,{lines:H,statusColor:P}),R&&!T&&(0,r.jsx)("div",{style:{margin:0,padding:"8px 10px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,maxHeight:f,overflow:"auto",overscrollBehavior:"contain",background:"var(--bg-subtle)",borderTop:`1px solid color-mix(in srgb, ${P} 20%, var(--border))`,display:"flex",flexDirection:"column",gap:3},children:(function(e){let t=[];for(let[n,r]of Object.entries(e)){if(null==r)continue;let e="string"==typeof r?r:"number"==typeof r||"boolean"==typeof r?String(r):"";if(e)t.push({key:n,value:e});else try{t.push({key:n,value:JSON.stringify(r).slice(0,200)})}catch{t.push({key:n,value:"[…]"})}}return t})(e.input).filter(e=>"command"!==e.key).map(e=>(0,r.jsxs)("div",{style:{display:"flex",gap:8,minWidth:0},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-dim)",width:88,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.key}),(0,r.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:e.value})]},e.key))}),R&&n&&(0,r.jsxs)("div",{style:{borderTop:`1px solid color-mix(in srgb, ${P} 24%, var(--border))`,background:"var(--tool-bg)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,padding:"6px 10px 4px",color:"var(--text-dim)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.08em"},children:[(0,r.jsx)("span",{children:g("message_toolLiveOutput")}),n.truncated&&(0,r.jsx)("span",{style:{color:"var(--warning)",textTransform:"none",letterSpacing:0},children:g("message_toolOutputTruncated")})]}),(0,r.jsx)("pre",{ref:S,tabIndex:0,onScroll:e=>{_.current||(C.current=n9(e.currentTarget))},style:{margin:0,padding:"4px 10px 10px",maxHeight:f,overflow:"auto",overscrollBehavior:"contain",color:F||n.output?"var(--text-muted)":"var(--text-dim)",background:"var(--tool-bg)",fontFamily:"var(--font-mono)",fontSize:11.5,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:F?rr(F,"tool-live"):n.output||g("message_toolWaitingOutput")})]}),R&&E&&(D?(0,r.jsx)(ri,{lines:D,statusColor:P}):k&&n0(t?.details)&&!M?(0,r.jsx)("div",{style:{padding:"8px 10px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:g("message_thinkingLoading")}):M?(0,r.jsx)(ra,{diff:M}):(0,r.jsx)(rh,{text:z??"",isEmpty:L,isError:W}))]})}function rn(e){return Array.isArray(e)&&e.length>0&&e.every(e=>"string"==typeof e)?e:null}function rr(e,t){return e.map((n,i)=>{var o;return(0,r.jsxs)("span",{children:[(o=`${t}-${i}`,ty(n).map((e,t)=>Object.keys(e.style).length>0?(0,r.jsx)("span",{style:e.style,children:e.text},`${o}-${t}`):e.text)),i<e.length-1?"\n":null]},`${t}-${i}`)})}function ri({lines:e,statusColor:t}){let n=n3();return(0,r.jsx)("pre",{tabIndex:0,style:{margin:0,padding:"8px 10px",maxHeight:n,overflow:"auto",overscrollBehavior:"contain",borderTop:`1px solid color-mix(in srgb, ${t} 24%, var(--border))`,background:"var(--bg-subtle)",color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:rr(e,"tool-rendered")})}let ro={running:"message_toolStatusRunning",success:"message_toolStatusSuccess",error:"message_toolStatusError",cancelled:"message_toolStatusCancelled"};function rs(e){let t=Number.isFinite(e)?Math.max(0,e):0;if(t<1e3)return`${Math.floor(t)}ms`;let n=t/1e3;if(n<10)return`${n.toFixed(1)}s`;if(n<60)return`${Math.round(n)}s`;let r=Math.round(n);return`${Math.floor(r/60)}m ${String(r%60).padStart(2,"0")}s`}function ra({diff:e}){return(0,r.jsx)("div",{style:{borderTop:"1px solid var(--status-success-border)",background:"var(--bg)"},children:(0,r.jsx)(rl,{text:e.text})})}function rl({text:e}){let t=(0,i.useMemo)(()=>nN(e),[e]);if(!t)return(0,r.jsx)(ru,{text:e});let n=t.length>1;return(0,r.jsx)("div",{style:{maxHeight:"min(560px, 50vh)",overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:t.map((e,t)=>(0,r.jsxs)("div",{style:{minWidth:0,borderTop:0===t?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55},children:[n&&(0,r.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,r.jsx)(rd,{title:e.oldPath||"Before",side:"left"}),(0,r.jsx)(rd,{title:e.newPath||"After",side:"right"})]}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:e.rows.map((e,t)=>"hunk"===e.type?null:(0,r.jsxs)("div",{style:{display:"contents"},children:[(0,r.jsx)(rc,{cell:e.left,side:"left"}),(0,r.jsx)(rc,{cell:e.right,side:"right"})]},t))})]},t))})}function rd({title:e,side:t}){return(0,r.jsx)("div",{title:e,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===t?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})}function rc({cell:e,side:t}){let n="added"===e.type?"var(--diff-added-bg)":"removed"===e.type?"var(--diff-removed-bg)":"empty"===e.type?"var(--bg-subtle)":"transparent",i="added"===e.type?"+":"removed"===e.type?"-":" ",o="added"===e.type?"var(--diff-added-text)":"removed"===e.type?"var(--diff-removed-text)":"var(--text-dim)";return(0,r.jsxs)("div",{style:{display:"flex",minWidth:0,background:n,borderRight:"left"===t?"1px solid var(--border)":"none"},children:[(0,r.jsx)("span",{style:{width:42,padding:"0 6px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",flexShrink:0},children:e.lineNo??""}),(0,r.jsx)("span",{style:{width:18,padding:"0 5px",color:o,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:i}),(0,r.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===e.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere",userSelect:"text",WebkitUserSelect:"text"},children:e.text||"\xa0"})]})}function ru({text:e}){let t=e.split(/\r?\n/);return(0,r.jsx)("div",{className:"chat-selectable",style:{maxHeight:"min(520px, 45vh)",overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:0},children:t.map((e,t)=>{let n=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,r.jsxs)("div",{style:{display:"flex",background:"added"===n?"var(--diff-added-bg)":"removed"===n?"var(--diff-removed-bg)":"hunk"===n?"var(--diff-hunk-bg)":"transparent",borderLeft:"added"===n?"3px solid var(--diff-added-border)":"removed"===n?"3px solid var(--diff-removed-border)":"hunk"===n?"3px solid var(--accent)":"3px solid transparent"},children:[(0,r.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,r.jsx)("span",{style:{padding:"0 10px",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===n?"var(--diff-added-text)":"removed"===n?"var(--diff-removed-text)":"hunk"===n?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function rp(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function rh({text:e,isEmpty:t,isError:n}){let{t:i}=(0,el.s9)();return(0,r.jsx)("div",{style:{borderTop:`1px solid ${n?"var(--status-danger-border)":"var(--status-success-border)"}`,background:n?"var(--status-danger-bg)":"var(--bg-subtle)"},children:(0,r.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:n?"var(--error-text)":t?"var(--text-dim)":"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",maxHeight:"min(400px, 45vh)",background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:t?"italic":"normal",opacity:t?.6:1},children:t?`(${i("message_noOutput").toLowerCase()})`:e})})}function rg({message:e}){let{t}=(0,el.s9)(),n=rk(e.content),o=(0,i.useMemo)(()=>nD(n),[n]),s=n1(e.timestamp);return(0,r.jsx)("div",{style:{marginBottom:16},children:(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:t("message_compaction")}),s&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:s})]}),(0,r.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,r.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700,lineHeight:1.35},children:t("message_conversationCompacted")}),(0,r.jsx)("div",{style:{marginTop:3,marginBottom:10,color:"var(--text)",fontSize:14,lineHeight:1.5},children:t("message_conversationCompactedDescription")}),o.body?(0,r.jsx)(nW,{className:"markdown-compaction-message",children:o.body}):(0,r.jsxs)("span",{style:{color:"var(--text-dim)",fontSize:12},children:["(",t("message_noSummary"),")"]}),(0,r.jsx)(rm,{readFiles:o.readFiles,modifiedFiles:o.modifiedFiles})]})]})})}function rf({message:e}){let{t}=(0,el.s9)(),n=rk(e.content),i=e.details?.ok!==!1,o=e.details?.result,s=n1(e.timestamp);return(0,r.jsxs)("div",{style:{marginBottom:12},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",border:"1px solid var(--border)",borderLeft:"2px solid var(--accent)",borderRadius:8,background:"var(--bg-subtle)"},children:[(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:t("message_command")}),(0,r.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflowWrap:"anywhere"},children:n}),i&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:"✓"}),!i&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:"✗"}),s&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:s})]}),o&&(0,r.jsx)("div",{style:{marginTop:4,padding:"0 4px",color:"var(--text-muted)",fontSize:12},children:o})]})}function rx({message:e}){let{t}=(0,el.s9)(),n=rk(e.content),o=(0,i.useMemo)(()=>nD(n),[n]),s=(0,i.useMemo)(()=>(function(e){if(!e||"object"!=typeof e)return null;let t=e.details;if(!t||"object"!=typeof t)return null;let n=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e):[],r=n(t.readFiles),i=n(t.modifiedFiles);return 0===r.length&&0===i.length?null:{readFiles:r,modifiedFiles:i}})(e.details),[e.details]),a=s?.readFiles??o.readFiles,l=s?.modifiedFiles??o.modifiedFiles,d=n1(e.timestamp);return(0,r.jsx)("div",{style:{marginBottom:16},children:(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderLeft:"2px solid var(--accent)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,r.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,r.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,r.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,r.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),(0,r.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:t("message_branchSummary")}),d&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:d})]}),(0,r.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,r.jsx)("div",{style:{marginBottom:10,color:"var(--text-muted)",fontSize:13,lineHeight:1.5},children:t("message_branchSummaryDescription")}),o.body?(0,r.jsx)(nW,{className:"markdown-compaction-message",children:o.body}):(0,r.jsxs)("span",{style:{color:"var(--text-dim)",fontSize:12},children:["(",t("message_noSummary"),")"]}),(0,r.jsx)(rm,{readFiles:a,modifiedFiles:l})]})]})})}function rm({readFiles:e,modifiedFiles:t}){let{t:n}=(0,el.s9)();if(0===e.length+t.length)return null;let i=[];return e.length>0&&i.push(`${e.length} ${n("message_read").toLowerCase()}`),t.length>0&&i.push(`${t.length} ${n("message_modified").toLowerCase()}`),(0,r.jsxs)("details",{className:"compaction-file-details",children:[(0,r.jsxs)("summary",{children:[n("message_fileContext"),": ",i.join(", ")]}),t.length>0&&(0,r.jsx)(rv,{title:n("message_modifiedFiles"),files:t}),e.length>0&&(0,r.jsx)(rv,{title:n("message_readFiles"),files:e})]})}function rv({title:e,files:t}){return(0,r.jsxs)("div",{className:"compaction-file-section",children:[(0,r.jsx)("div",{className:"compaction-file-title",children:e}),(0,r.jsx)("ul",{className:"compaction-file-list",children:t.map(e=>(0,r.jsx)("li",{children:e},e))})]})}let ry={result:{color:"var(--status-success)",border:"var(--status-success-border)",background:"var(--status-success-bg)",Icon:tX.A},warning:{color:"var(--status-warning)",border:"var(--status-warning-border)",background:"var(--status-warning-bg)",Icon:tQ.A},error:{color:"var(--error-text)",border:"var(--status-danger-border)",background:"var(--status-danger-bg)",Icon:t0.A},output:{color:"var(--accent)",border:"var(--border)",background:"var(--bg)",Icon:tU.A}};function rb({message:e,activity:t}){let{t:n}=(0,el.s9)(),o=n3(),[s,a]=(0,i.useState)(!1),l=n1(e.timestamp),{color:d,border:c,background:u,Icon:p}=ry[t.kind],h=""!==t.content.trim(),g=function(e){if(!e)return[];let t=[];for(let[n,r]of Object.entries(e)){if(t.length>=4)break;"string"==typeof r?t.push([n,r]):("number"==typeof r||"boolean"==typeof r)&&t.push([n,String(r)])}return t}(t.metadata);return(0,r.jsx)("div",{style:{marginBottom:16},children:(0,r.jsxs)("section",{"aria-label":`${t.kind}: ${t.title}`,style:{border:`1px solid ${c}`,borderLeft:`2px solid ${d}`,borderRadius:8,overflow:"hidden",background:u},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",minWidth:0},children:[(0,r.jsx)("span",{style:{display:"flex",color:d,flexShrink:0},"aria-hidden":"true",children:(0,r.jsx)(p,{size:12,strokeWidth:1.8})}),(0,r.jsx)("span",{style:{color:d,fontFamily:"var(--font-mono)",fontSize:10,fontWeight:650,letterSpacing:.6,textTransform:"uppercase",flexShrink:0},children:t.kind}),(0,r.jsx)("span",{style:{color:"var(--text)",fontSize:13,fontWeight:600,minWidth:0,overflowWrap:"anywhere"},children:t.title}),l&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,flexShrink:0},children:l})]}),h&&(0,r.jsx)("pre",{tabIndex:0,style:{margin:0,padding:"8px 12px",maxHeight:o,overflow:"auto",color:"var(--text)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:t.content}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"4px 10px",padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:10},children:[(0,r.jsx)("button",{onClick:()=>{eQ(h?t.content:t.title).then(()=>{a(!0),setTimeout(()=>a(!1),1500)})},title:n("message_copy"),"aria-label":n("message_copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 7px",border:"none",background:"none",color:s?"var(--accent)":"var(--text-dim)",cursor:"pointer"},children:s?(0,r.jsx)(tD.A,{size:11,strokeWidth:1.8}):(0,r.jsx)(tN.A,{size:11,strokeWidth:1.8})}),t.source&&(0,r.jsx)("span",{style:{overflowWrap:"anywhere"},children:t.source}),t.requestId&&(0,r.jsx)("span",{style:{overflowWrap:"anywhere"},title:t.requestId,children:t.requestId}),g.map(([e,t])=>(0,r.jsxs)("span",{style:{overflowWrap:"anywhere"},children:[e,"=",t]},e))]})]})})}function rw({message:e,cwd:t,onOpenFile:n}){var o,s,a;let l,{t:d}=(0,el.s9)(),c=!1===e.display,[u,p]=(0,i.useState)(!c),[h,g]=(0,i.useState)(!1),[f,x]=(0,i.useState)(!1),m=rk(e.content),v="string"==typeof(o=e.content)?[]:o.filter(e=>"image"===e.type),y=void 0!==e.details,b=y?function(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}(e.details):"",w=e.customType||d("message_extensionDefaultType"),k=n1(e.timestamp),j=rn(e.renderedLines);return(0,r.jsx)("div",{style:{marginBottom:16},children:(0,r.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:c?"var(--bg-subtle)":"var(--bg)",opacity:j||!c||u?1:.82},children:[(0,r.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,r.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:w}),c&&(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:d("message_hiddenExtensionMessage")}),k&&(0,r.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:k})]}),j?(0,r.jsx)("pre",{style:{margin:0,padding:"6px 9px",color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:rr(j,"custom-rendered")}):u?(0,r.jsxs)("div",{style:{padding:"6px 9px"},children:[v.length>0&&(0,r.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!m},children:v.map((e,t)=>{var n;let i=(n=e).source?"base64"===n.source.type?`data:${n.source.media_type};base64,${n.source.data}`:n.source.url??"":n.data?`data:${n.mimeType};base64,${n.data}`:"";return i?(0,r.jsx)("img",{src:i,alt:"",style:{maxWidth:240,maxHeight:240,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}},t):null})}),m?(0,r.jsx)(nW,{className:"markdown-custom-message",cwd:t,onOpenFile:n,children:m}):(0,r.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:d("message_noMessages")})]}):(0,r.jsx)("button",{onClick:()=>p(!0),style:{display:"block",width:"100%",padding:"8px 10px",border:"none",background:"transparent",color:"var(--text-dim)",cursor:"pointer",fontSize:12,textAlign:"left"},children:m?(s=m,a=d("message_noExtensionMessage"),(l=s.replace(/\s+/g," ").trim())?l.length>140?`${l.slice(0,140)}...`:l:a):d("message_showExtensionMessage")}),!j&&(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"4px 9px",borderTop:"1px solid var(--border)",background:"var(--bg-subtle)"},children:[m||b?(0,r.jsx)("button",{onClick:()=>{eQ(m||b).then(()=>{x(!0),setTimeout(()=>x(!1),1500)})},title:d("message_copy"),"aria-label":d("message_copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 7px",border:"none",background:"none",color:f?"var(--accent)":"var(--text-dim)",cursor:"pointer"},children:f?(0,r.jsx)(tD.A,{size:11,strokeWidth:1.8}):(0,r.jsx)(tN.A,{size:11,strokeWidth:1.8})}):null,(y||c)&&(0,r.jsx)("button",{onClick:()=>{c?p(e=>!e):g(e=>!e)},title:d(c?u?"message_collapse":"message_expand":h?"message_hideDetails":"message_showDetails"),"aria-label":d(c?u?"message_collapse":"message_expand":h?"message_hideDetails":"message_showDetails"),style:{display:"flex",alignItems:"center",justifyContent:"center",marginLeft:"auto",padding:"3px 7px",border:"none",background:"none",color:"var(--text-dim)",cursor:"pointer"},children:(c?u:h)?(0,r.jsx)(t1.A,{size:12,strokeWidth:1.8}):(0,r.jsx)(t2.A,{size:12,strokeWidth:1.8})})]}),!j&&y&&(c&&u||!c&&h)&&(0,r.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:"min(360px, 45vh)",overflow:"auto",fontFamily:"var(--font-mono)"},children:b})]})})}function rk(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function rj({message:e,sessionId:t}){let{t:n}=(0,el.s9)(),[o,s]=(0,i.useState)(null),[a,l]=(0,i.useState)(!1),[d,c]=(0,i.useState)(null),u=!e.output&&void 0===e.exitCode&&!e.cancelled,p=e.cancelled||void 0!==e.exitCode&&0!==e.exitCode,h=t&&e.fullOutputPath?`/api/agent/${encodeURIComponent(t)}/bash-output?path=${encodeURIComponent(e.fullOutputPath)}`:null,g=e.truncated&&h&&null===o,f=o??e.output;async function x(){if(h){l(!0),c(null);try{let e=await fetch(h),t=await e.json();t.success?s(t.data?.output??""):c(t.error??"failed")}catch(e){c(String(e))}finally{l(!1)}}}let m=e.excludeFromContext?"bash (local)":"bash",v={type:"toolCall",toolCallId:`bash-${e.timestamp??""}`,toolName:m,input:{command:e.command}},y=u?void 0:{role:"toolResult",toolCallId:v.toolCallId,toolName:m,content:f?[{type:"text",text:f}]:[],isError:p,timestamp:e.timestamp};return(0,r.jsxs)("div",{style:{margin:"6px 0"},children:[(0,r.jsx)(rt,{block:v,result:y,pending:u,startedAt:u?e.timestamp:void 0}),e.truncated&&h&&(0,r.jsxs)("div",{style:{padding:"4px 10px",fontSize:11,marginTop:-1},children:[g&&(0,r.jsx)("button",{onClick:x,disabled:a,style:{background:"none",border:"none",color:"var(--accent)",cursor:a?"default":"pointer",fontSize:11,padding:0,textDecoration:"underline"},children:n(a?"message_loadingOutput":"message_viewFullOutput")}),(0,r.jsx)("a",{href:`${h}&download=1`,style:{marginLeft:10*!!g,color:"var(--accent)",fontSize:11,textDecoration:"underline"},children:n("message_downloadFullOutput")}),d&&(0,r.jsxs)("span",{style:{marginLeft:6,color:"var(--text-dim)",fontSize:11},children:["(",d,")"]})]})]})}let rS=new Map;function rC(e){return{value:e.value,images:e.images.map(e=>({...e}))}}function r_(e){return!e.value&&0===e.images.length}function rI(e){return`drafts.${e}`}function rR(e){let t=rS.get(e);return t?rC(t):null}function rT(e,t){if(r_(t)){rS.delete(e),(0,Z.dM)(rI(e),void 0);return}rS.set(e,rC(t));let n={...rC(t),updatedAt:Date.now()};(0,Z.dM)(rI(e),n)}function rE(e){rS.delete(e),(0,Z.dM)(rI(e),void 0)}function rM(e){return"string"==typeof e&&e&&"auto"!==e?e:null}let rz=["off","minimal","low","medium","high","xhigh","max"];function rL(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let n=/(?:^|\s)@([^\s"]*)$/.exec(e);return n?{start:e.length-(n[1].length+1),query:n[1],quoted:!1}:null}function rW(e){let t=0;for(let n=0;n<e.length;n++)"/"===e[n]&&t++;return t}function rA(e,t){if(!e)return!0;let n=0;for(let r=0;r<t.length&&n<e.length;r++)t[r]===e[n]&&n++;return n===e.length}function rP(e,t){let n=t?`${e}/`:e;return n.includes(" ")?`@"${n}" `:`@${n} `}let r$="var(--text-dim)";function rH({size:e=14,open:t=!1}){return t?(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,r.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5h7.5v1H1V4.5Z",fill:r$}),(0,r.jsx)("path",{d:"M1 6h14.5L14 13H2L1 6Z",stroke:r$,strokeWidth:"1",fill:r$,fillOpacity:"0.12"})]}):(0,r.jsx)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:(0,r.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5H14a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4.5Z",stroke:r$,strokeWidth:"1",fill:r$,fillOpacity:"0.1"})})}function rF({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,r.jsx)("path",{d:"M3 2h7l3 3v9H3V2Z",stroke:r$,strokeWidth:"1",fill:r$,fillOpacity:"0.08"}),(0,r.jsx)("path",{d:"M10 2v3h3",stroke:r$,strokeWidth:"1",fill:"none",strokeLinejoin:"round"})]})}function rD({label:e,size:t=14}){let n=t/14;return(0,r.jsxs)("svg",{width:t,height:t,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:r$,strokeWidth:"0.9",fill:r$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:r$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("text",{x:"7",y:"9.5",textAnchor:"middle",fontSize:3.4*n,fontFamily:"var(--font-mono), monospace",fontWeight:"600",fill:r$,letterSpacing:"0",children:e})]})}function rN({size:e=14}){return(0,r.jsx)(rD,{label:"TS",size:e})}function rB({size:e=14}){return(0,r.jsx)(rD,{label:"TSX",size:e})}function rO({size:e=14}){return(0,r.jsx)(rD,{label:"JS",size:e})}function rU({size:e=14}){return(0,r.jsx)(rD,{label:"JSX",size:e})}function rq({size:e=14}){return(0,r.jsx)(rD,{label:"PY",size:e})}function rK({size:e=14}){return(0,r.jsx)(rD,{label:"{}",size:e})}function rV({size:e=14}){return(0,r.jsx)(rD,{label:"CSS",size:e})}function rJ({size:e=14}){return(0,r.jsx)(rD,{label:"SC",size:e})}function rY({size:e=14}){return(0,r.jsx)(rD,{label:"HTM",size:e})}function rG({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:r$,strokeWidth:"0.9",fill:r$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:r$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M3.5 9.5V7l1.5 1.5L6.5 7v2.5",stroke:r$,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,r.jsx)("path",{d:"M8 7v2.5M7 9l1 1.5 1-1.5",stroke:r$,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function rZ({size:e=14}){return(0,r.jsx)(rD,{label:"YML",size:e})}function rX({size:e=14}){return(0,r.jsx)(rD,{label:"TOM",size:e})}function rQ({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:r$,strokeWidth:"0.9",fill:r$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:r$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M4 7.5l2 1.5-2 1.5",stroke:r$,strokeWidth:"0.95",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,r.jsx)("path",{d:"M7.5 10.5h2.5",stroke:r$,strokeWidth:"0.95",strokeLinecap:"round"})]})}function r0({size:e=14}){return(0,r.jsx)(rD,{label:"RS",size:e})}function r1({size:e=14}){return(0,r.jsx)(rD,{label:"GO",size:e})}function r2({size:e=14}){return(0,r.jsx)(rD,{label:"SQL",size:e})}function r4({size:e=14}){return(0,r.jsx)(rD,{label:"GQL",size:e})}function r6({size:e=14}){return(0,r.jsx)(rD,{label:"TF",size:e})}function r5({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:r$,strokeWidth:"0.9",fill:r$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:r$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("rect",{x:"3.5",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:r$,strokeWidth:"0.8"}),(0,r.jsx)("rect",{x:"6",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:r$,strokeWidth:"0.8"}),(0,r.jsx)("rect",{x:"3.5",y:"8.5",width:"2",height:"1.5",rx:"0.3",stroke:r$,strokeWidth:"0.8"})]})}function r8({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:r$,strokeWidth:"0.9",fill:r$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:r$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:"5.5",cy:"8.5",r:"1.5",stroke:r$,strokeWidth:"0.9"}),(0,r.jsx)("path",{d:"M7 8.5h2.5M8.5 8.5v1.5",stroke:r$,strokeWidth:"0.9",strokeLinecap:"round"})]})}function r3({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:r$,strokeWidth:"0.9",fill:r$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:r$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:"5",cy:"6.5",r:"1",stroke:r$,strokeWidth:"0.85"}),(0,r.jsx)("circle",{cx:"9",cy:"6.5",r:"1",stroke:r$,strokeWidth:"0.85"}),(0,r.jsx)("circle",{cx:"5",cy:"10",r:"1",stroke:r$,strokeWidth:"0.85"}),(0,r.jsx)("path",{d:"M5 7.5V9",stroke:r$,strokeWidth:"0.85",strokeLinecap:"round"}),(0,r.jsx)("path",{d:"M9 7.5v.5a2 2 0 0 1-2 2H6",stroke:r$,strokeWidth:"0.85",strokeLinecap:"round",fill:"none"})]})}function r9({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:r$,strokeWidth:"0.9",fill:r$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:r$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("rect",{x:"4.5",y:"8.5",width:"5",height:"3",rx:"0.6",stroke:r$,strokeWidth:"0.9"}),(0,r.jsx)("path",{d:"M5.5 8.5V7.5a1.5 1.5 0 0 1 3 0v1",stroke:r$,strokeWidth:"0.9",strokeLinecap:"round",fill:"none"})]})}function r7({size:e=14}){return(0,r.jsx)(rD,{label:"DOC",size:e})}function ie({size:e=14}){return(0,r.jsx)(rD,{label:"PDF",size:e})}function it({size:e=14}){return(0,r.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,r.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:r$,strokeWidth:"0.9",fill:r$,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,r.jsx)("path",{d:"M8.5 1v3h3",stroke:r$,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,r.jsx)("circle",{cx:"7",cy:"8.5",r:"1.3",stroke:r$,strokeWidth:"0.9"}),(0,r.jsx)("path",{d:"M7 6.5v.7M7 10.3v.7M5 8.5h.7M8.3 8.5H9M5.5 6.9l.5.5M8.5 9.6l-.5-.5M5.5 10.1l.5-.5M8.5 7.4l-.5.5",stroke:r$,strokeWidth:"0.8",strokeLinecap:"round"})]})}function ir(e,t=14){let n=e.toLowerCase(),i=n.split(".").pop()??"";if("dockerfile"===n||n.startsWith("dockerfile."))return(0,r.jsx)(r5,{size:t});if(".env"===n||n.startsWith(".env."))return(0,r.jsx)(r8,{size:t});if(".gitignore"===n||".gitattributes"===n||".gitmodules"===n)return(0,r.jsx)(r3,{size:t});if("package-lock.json"===n||"yarn.lock"===n||"bun.lock"===n||"pnpm-lock.yaml"===n||"cargo.lock"===n)return(0,r.jsx)(r9,{size:t});if(n.endsWith(".config.ts")||n.endsWith(".config.js")||n.endsWith(".config.mjs")||n.endsWith(".config.cjs")||[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(n))return(0,r.jsx)(it,{size:t});switch(i){case"ts":return(0,r.jsx)(rN,{size:t});case"tsx":return(0,r.jsx)(rB,{size:t});case"js":case"mjs":case"cjs":return(0,r.jsx)(rO,{size:t});case"jsx":return(0,r.jsx)(rU,{size:t});case"py":return(0,r.jsx)(rq,{size:t});case"json":case"jsonl":return(0,r.jsx)(rK,{size:t});case"css":case"less":return(0,r.jsx)(rV,{size:t});case"scss":return(0,r.jsx)(rJ,{size:t});case"html":case"htm":return(0,r.jsx)(rY,{size:t});case"md":case"mdx":return(0,r.jsx)(rG,{size:t});case"yaml":case"yml":return(0,r.jsx)(rZ,{size:t});case"toml":return(0,r.jsx)(rX,{size:t});case"sh":case"bash":case"zsh":case"fish":return(0,r.jsx)(rQ,{size:t});case"rs":return(0,r.jsx)(r0,{size:t});case"go":return(0,r.jsx)(r1,{size:t});case"sql":return(0,r.jsx)(r2,{size:t});case"graphql":case"gql":return(0,r.jsx)(r4,{size:t});case"tf":case"hcl":return(0,r.jsx)(r6,{size:t});case"docx":return(0,r.jsx)(r7,{size:t});case"pdf":return(0,r.jsx)(ie,{size:t});case"lock":return(0,r.jsx)(r9,{size:t});default:return(0,r.jsx)(rF,{size:t})}}let ii=(e,t=0)=>Number.isFinite(e)?e:t,io=i.useLayoutEffect;function is(e){let{open:t,anchorRef:n,overlayRef:r,preferredPlacement:o="below",margin:s=8,gap:a=4,minHeight:l,maxHeight:d,maxWidth:c,align:u,width:p,minWidth:h,pollIntervalMs:g=250}=e,[f,x]=(0,i.useState)(null),m=(0,i.useRef)(0),v=(0,i.useCallback)(()=>{let e,t=n.current,i=r.current;if(!t||!i)return;let p=t.getBoundingClientRect();if(0===p.width&&0===p.height)return void x(e=>null===e?e:null);let h=function(e){let{anchor:t,desiredSize:n,viewport:r}=e,i=Math.max(0,ii(e.margin??8)),o=Math.max(0,ii(e.gap??4)),s=Math.max(0,ii(e.minHeight??0)),a=Math.max(0,ii(r.offsetLeft)),l=Math.max(0,ii(r.offsetTop)),d=a+i,c=l+i,u=a+Math.max(0,ii(r.width))-i,p=l+Math.max(0,ii(r.height))-i,h=Math.max(0,u-d),g=Math.max(0,p-c),f=Math.min(g,Math.max(0,ii(t.top)-o-c)),x=Math.min(g,Math.max(0,p-ii(t.bottom)-o)),m=e.preferredPlacement??"below",v="below"===m?"above":"below",y=Math.max(s,Math.max(0,ii(n.height))),b=("below"===m?x:f)>=y?m:("below"===v?x:f)>=y?v:x>=f?"below":"above",w=Math.max(0,"below"===b?x:f),k=Math.max(0,ii(n.width)),j=Math.min(Math.max("end"===e.align?ii(t.right)-k:ii(t.left),d),Math.max(d,u-k)),S=Math.min(Math.max("below"===b?ii(t.bottom)+o:ii(t.top)-o-Math.max(0,ii(n.height)),c),Math.max(c,p-Math.min(w,Math.max(0,ii(n.height)))));return{top:ii(S,c),left:ii(j,d),maxHeight:w,maxWidth:h,placement:b}}({anchor:{top:p.top,left:p.left,right:p.right,bottom:p.bottom},desiredSize:{width:i.offsetWidth,height:Math.min(i.offsetHeight,d??1/0)},viewport:(e=window.visualViewport)?{offsetLeft:e.offsetLeft,offsetTop:e.offsetTop,width:e.width,height:e.height}:{offsetLeft:0,offsetTop:0,width:window.innerWidth,height:window.innerHeight},margin:s,gap:a,minHeight:l,preferredPlacement:o,align:u}),g={top:h.top,left:h.left,maxHeight:void 0===d?h.maxHeight:Math.min(h.maxHeight,d),maxWidth:void 0===c?h.maxWidth:Math.min(h.maxWidth,c),anchorWidth:p.width,placement:h.placement};x(e=>null!==e&&e.top===g.top&&e.left===g.left&&e.maxHeight===g.maxHeight&&e.maxWidth===g.maxWidth&&e.anchorWidth===g.anchorWidth&&e.placement===g.placement?e:g)},[n,r,s,a,l,d,c,o,u]);return io(()=>{if(!t)return void x(null);v();let e=()=>{m.current||(m.current=requestAnimationFrame(()=>{m.current=0,v()}))};window.addEventListener("resize",e),window.addEventListener("scroll",e,!0);let i=window.visualViewport;i?.addEventListener("resize",e),i?.addEventListener("scroll",e);let o=new ResizeObserver(e),s=n.current,a=r.current;s&&o.observe(s),a&&o.observe(a);let l=g>0?window.setInterval(e,g):0;return()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e),i?.removeEventListener("resize",e),i?.removeEventListener("scroll",e),o.disconnect(),l&&window.clearInterval(l),m.current&&(cancelAnimationFrame(m.current),m.current=0)}},[t,v,n,r,g]),{style:(0,i.useMemo)(()=>{if(!f)return{position:"fixed",top:0,left:0,visibility:"hidden"};let e={position:"fixed",top:f.top,left:f.left,maxHeight:f.maxHeight,maxWidth:f.maxWidth,visibility:"visible"},t=e=>Math.max(0,Math.min(e,f.maxWidth));"anchor"===p?e.width=t(f.anchorWidth):"max"===p?e.width=f.maxWidth:"number"==typeof p&&(e.width=t(p));let n="anchor"===h?f.anchorWidth:"number"==typeof h?h:void 0;return void 0!==n&&(e.minWidth=Math.min(n,f.maxWidth)),e},[f,p,h]),placement:f?.placement??o,ready:null!==f}}function ia(e){return e.type.startsWith("image/")&&"image/svg+xml"!==e.type}async function il(e){let t=new FormData;t.append("files",e,e.name);let n=await fetch("/api/attachments",{method:"POST",body:t}),r=await n.json().catch(()=>({}));if(!n.ok&&207!==n.status)throw Error(r.error??`HTTP ${n.status}`);let i=r.errors?.[0];if(i&&(!r.uploaded||0===r.uploaded.length))throw Error(i.error);let o=r.uploaded?.[0];if(!o?.path)throw Error(r.error??i?.error??"upload failed");return{path:o.path,name:o.name||e.name}}function id(e){if("number"!=typeof e||!Number.isFinite(e)||e<=0)return"";if(e>=1e6){let t=e/1e6;return`${Number.isInteger(t)?t:t.toFixed(1)}M`}return e>=1e3?`${Math.round(e/1e3)}K`:String(e)}let ic=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function iu(e,t){return ic.compare(e.name||e.modelId,t.name||t.modelId)||ic.compare(e.provider,t.provider)||ic.compare(e.modelId,t.modelId)}function ip(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let ih=[{name:"compact",description:"input_compactCommandDescription",source:"builtin"},{name:"reload",description:"input_reloadCommandDescription",source:"builtin"},{name:"name",description:"input_nameCommandDescription",source:"builtin"},{name:"session",description:"input_sessionCommandDescription",source:"builtin"},{name:"copy",description:"input_copyCommandDescription",source:"builtin"}],ig=["builtin","extension","prompt","skill"],ix={builtin:"input_builtIn",extension:"input_extensions",prompt:"input_prompts",skill:"input_skills"},im={builtin:0,extension:1,prompt:2,skill:3};function iv(e,t){let n=e.name.toLowerCase(),r=e.description?.toLowerCase()??"";return n===t?0:n.startsWith(t)?1:n.includes(t)?2:r.includes(t)?3:4}function iy(e){return{data:e.data,mimeType:e.mimeType}}function ib(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function iw(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function ik(e,t){if(!e)return;let n=e.querySelector(`${t}[aria-checked="true"], ${t}[aria-selected="true"]`),r=e.querySelector(t);(n??r)?.focus({preventScroll:!0})}function ij({kind:e,text:t}){return(0,r.jsxs)("div",{title:t,style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,r.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===e?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===e?"var(--accent)":"var(--text-dim)"},children:e}),(0,r.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]})}let iS=(0,i.forwardRef)(function({onSend:e,onAbort:t,onSteer:n,onFollowUp:o,isStreaming:s,model:l,isAutoModelSelection:d,modelNames:c,modelList:u,modelAuthConfigured:p,onModelChange:h,onAbortCompaction:g,isCompacting:f,compactError:x,compactResult:m,thinkingLevel:v,onThinkingLevelChange:y,defaultThinkingLevel:b,availableThinkingLevels:w,thinkingLevelMap:k,thinkingLevelMaps:j,retryInfo:S,queuedMessages:C,onRecallQueue:_,onSendQueueAsSteer:I,slashCommands:R,slashCommandsLoading:T,onLoadSlashCommands:E,onBuiltinCommand:M,onAudioUnlock:z,onPromptWithStreamingBehavior:L,footerCollapsed:W,onFooterToggle:A,draftKey:P,cwd:$},H){let F,D,N,O,U,q,{t:K}=(0,el.s9)(),V=tF(),[J,Y]=(0,i.useState)("followUp");(0,i.useEffect)(()=>{Y(B());let e=e=>{"pidance.streamingEnterDefault"===e.key&&Y(B())},t=()=>Y(B());return window.addEventListener("storage",e),window.addEventListener("pidance:streaming-enter-changed",t),()=>{window.removeEventListener("storage",e),window.removeEventListener("pidance:streaming-enter-changed",t)}},[]);let[G,X]=(0,i.useState)(()=>P?rR(P)?.value??"":""),[Q,ee]=(0,i.useState)(!1),[et,en]=(0,i.useState)(!1),[er,ei]=(0,i.useState)(()=>P?rR(P)?.images.map(ib)??[]:[]),eo=G.trimStart(),es=0===er.length&&eo.startsWith("!"),ea=es&&eo.startsWith("!!"),[ed,ec]=(0,i.useState)(!1),[eu,ep]=(0,i.useState)(0),[eh,eg]=(0,i.useState)(null),[ef,ex]=(0,i.useState)(!1),[em,ev]=(0,i.useState)(0),[ey,eb]=(0,i.useState)(null),[ew,ek]=(0,i.useState)(!1),[ej,eS]=(0,i.useState)(null),eC=(0,i.useRef)(null),e_=(0,i.useRef)(null),eI=(0,i.useRef)(null),eR=(0,i.useRef)(null),eT=(0,i.useRef)(null),eE=(0,i.useRef)(null),eM=(0,i.useRef)(null),ez=(0,i.useRef)(null),eL=(0,i.useRef)(null),eW=(0,i.useRef)(null),eA=(0,i.useRef)(!1),eP=(0,i.useRef)(0),e$=(0,i.useRef)(!1),eH=(0,i.useRef)([]),eF=(0,i.useRef)([]),eD=(0,i.useRef)(null),eN=(0,i.useRef)(null),eB=(0,i.useRef)(P),[eO,eU]=(0,i.useState)(null),[eq,eK]=(0,i.useState)(null),eV=(0,i.useRef)(null),eJ=(0,i.useCallback)((e,t)=>{let n=t.getBoundingClientRect(),r=n.right+6;r+120>window.innerWidth-8&&(r=Math.max(8,n.left-120-6)),eK({top:Math.max(8,Math.min(n.top,window.innerHeight-8-352)),left:r}),eU(e)},[]),eY=(0,i.useCallback)(()=>{eU(null),eK(null)},[]);(0,i.useEffect)(()=>{if(null===eO)return;let e=e=>{let t=e.target;if(!eV.current?.contains(t)&&!t?.closest?.("[data-depth-trigger]")){if(eR.current?.contains(t))return void window.setTimeout(()=>eY(),0);eY()}};return document.addEventListener("pointerdown",e),window.addEventListener("resize",eY),window.addEventListener("scroll",eY),()=>{document.removeEventListener("pointerdown",e),window.removeEventListener("resize",eY),window.removeEventListener("scroll",eY)}},[eY,eO]);let eG=(0,i.useCallback)(e=>{let t=[e.name];return"number"==typeof e.contextWindow&&t.push(`${K("input_modelContext")} ${id(e.contextWindow)}`),"number"==typeof e.maxTokens&&t.push(`${K("input_modelMaxOutput")} ${id(e.maxTokens)}`),t.join(" \xb7 ")},[K]),eZ=b??"off",eX=(0,i.useCallback)((e,t)=>{var n;return n=j?.[`${e}:${t}`]??void 0,rz.filter(e=>n?.[e]!==null)},[j]),eQ=(0,Z.Fd)(),e0=(0,i.useCallback)((e,t)=>{let n=(0,Z.b3)(`thinkingLevel.${e}:${t}`);return"string"==typeof n&&n?n:null},[eQ]),e1=(0,i.useCallback)((e,t,n)=>{(0,Z.dM)(`thinkingLevel.${e}:${t}`,n),eY(),ee(!1),eI.current?.focus({preventScroll:!0}),h?.(e,t,n)},[eY,h]),e2=(0,i.useRef)(null);(0,i.useEffect)(()=>{P&&(0,Z.zo)().then(()=>{if(e2.current===P)return;e2.current=P;let e=function(e){let t=(0,Z.b3)(rI(e));if(!t||"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.value)return null;let n=Array.isArray(t.images)?t.images.filter(e=>"object"==typeof e&&null!==e&&"string"==typeof e.data):[],r={value:t.value,images:n};return r_(r)?null:(rS.set(e,rC(r)),r)}(P);if(!e)return;let t=rR(P);t&&(""!==t.value||t.images.length>0)||(X(e.value),e.images.length>0&&ei(e.images.map(ib)))})},[P,ei]);let e4=(0,i.useRef)(G),e6=(0,i.useRef)(er);e4.current=G,e6.current=er;let e5=(0,i.useCallback)(e=>{let t=eC.current;(t?t.value:G).trim()||(X(e),eg(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},[G]);(0,i.useImperativeHandle)(H,()=>({insertIfEmpty:e5,prependText(e){if(!e.trim())return;let t=eC.current,n=[e,t?t.value:G].filter(e=>e.trim()).join("\n\n");X(n),eg(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(n.length,n.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},replaceText(e){let t=eC.current;X(e),eg(null),requestAnimationFrame(()=>{if(!t)return;t.focus();let n=e.length;t.setSelectionRange(n,n),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},insertText(e){let t=eC.current;if(!t)return void X(t=>t+(t?" ":"")+e);let n=t.selectionStart??t.value.length,r=t.selectionEnd??t.value.length,i=t.value.slice(0,n),o=t.value.slice(r),s=i.length>0&&!i.endsWith(" ")?" ":"";X(i+s+e+o),eg(null),requestAnimationFrame(()=>{if(!t)return;let r=n+s.length+e.length;t.setSelectionRange(r,r),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){te(e)}}));let[e8,e3]=(0,i.useState)([]),e9=(0,i.useRef)(e8);e9.current=e8;let e7=(0,i.useCallback)(async e=>{if(s)return;let t=e.filter(ia);if(!t.length)return;let n=await Promise.all(t.map(e=>new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{t({data:r.result.split(",")[1],mimeType:e.type,previewUrl:URL.createObjectURL(e)})},r.onerror=n,r.readAsDataURL(e)})));ei(e=>[...e,...n])},[s]),te=(0,i.useCallback)(async e=>{if(s||0===e.length)return;let t=e.filter(ia),n=e.filter(e=>!ia(e));if(t.length&&await e7(t),0===n.length)return;let r=n.map(e=>({id:`up-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,name:e.name,mimeType:e.type||"application/octet-stream",size:e.size,status:"uploading"}));e3(e=>[...e,...r]),await Promise.all(n.map(async(e,t)=>{let n=r[t].id;try{let{path:t,name:r}=await il(e);e3(e=>e.map(e=>e.id===n?{...e,path:t,name:r,status:"ready"}:e))}catch(t){let e=t instanceof Error?t.message:String(t);e3(t=>t.map(t=>t.id===n?{...t,status:"error",error:e}:t))}}))},[s,e7]),tt=(0,i.useCallback)(e=>{ei(t=>{let n=[...t],[r]=n.splice(e,1);return r&&iw(r),n})},[]),tn=(0,i.useCallback)(e=>{e3(t=>t.filter(t=>t.id!==e))},[]),tr=(0,i.useCallback)(()=>{ei(e=>(e.forEach(iw),[]))},[]),ti=(0,i.useCallback)(()=>{e3([])},[]),to=(0,i.useCallback)(()=>{X(""),eg(null),P&&rE(P),eB.current&&eB.current!==P&&rE(eB.current),tr(),ti(),eC.current&&(eC.current.style.height="auto")},[tr,ti,P]),ts=(0,i.useCallback)(e=>{let t=e9.current.filter(e=>"ready"===e.status&&e.path);if(0===t.length)return e;let n=t.map(e=>`- \`${e.path}\``).join("\n"),r=`${K("input_attachedFilesPrompt")}
|
|
4
4
|
${n}`;return e.trim()?`${e.trim()}
|