@henlii/pidance 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +5 -5
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.json +1 -1
  6. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_global-error.html +1 -1
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/_not-found.html +1 -1
  17. package/.next/server/app/_not-found.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  24. package/.next/server/app/api/about/route.js +1 -1
  25. package/.next/server/app/api/update/apply/route.js +1 -1
  26. package/.next/server/app/api/update/check/route.js +1 -1
  27. package/.next/server/app/index.html +1 -1
  28. package/.next/server/app/index.rsc +3 -3
  29. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  30. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  31. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  32. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  34. package/.next/server/app/page.js +1 -1
  35. package/.next/server/app/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app-paths-manifest.json +5 -5
  37. package/.next/server/middleware-build-manifest.js +1 -1
  38. package/.next/server/pages/404.html +1 -1
  39. package/.next/server/pages/500.html +1 -1
  40. package/.next/server/server-reference-manifest.json +1 -1
  41. package/.next/static/chunks/app/{page-d30f26ad6c277d9a.js → page-70c6f7b44782cf46.js} +1 -1
  42. package/README.en.md +1 -1
  43. package/README.md +1 -1
  44. package/package.json +1 -1
  45. /package/.next/static/{q1mexPd6cs-PRLAbDhEQK → l9Mw1Wc-mHEZSNYCeXd3z}/_buildManifest.js +0 -0
  46. /package/.next/static/{q1mexPd6cs-PRLAbDhEQK → l9Mw1Wc-mHEZSNYCeXd3z}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{17581:(e,t,r)=>{Promise.resolve().then(r.bind(r,69195)),Promise.resolve().then(r.bind(r,84747))},69195:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>lS});var n=r(95155),i=r(12115),o=r(73321);let a=null;function s(e){let t=new Map;for(let r of e){let e=r.projectRoot??r.cwd,n=t.get(e);(!n||r.modified>n)&&t.set(e,r.modified)}return[...t.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(([e])=>e)}function l(e,t){if(!t)return e;let r=e.replaceAll("\\","/"),n=t.replaceAll("\\","/").replace(/\/$/,"");return r===n?"~":r.startsWith(`${n}/`)?`~${r.slice(n.length)}`:e}let d={status:"idle",error:null,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1};function c(e){return null!==e.cwd&&null!==e.projectRoot?e:{...e,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1}}function u(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 p(e){let t=e.filter(e=>!e.subagent),r=new Map;for(let e of t)r.set(e.id,{session:e,relation:null,children:[]});let n=new Map;for(let e of t)e.parentSessionId&&n.set(e.id,e.parentSessionId);let i=e=>{let t=n.get(e),i=new Set,o=[];for(;t;){if(i.has(t)||t===e)return null;i.add(t),o.push(t),t=n.get(t)}return o.find(e=>r.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 a=e=>{let t=new Set([e]),r=o.get(e)?.parentId;for(;r;){if(t.has(r))return!0;t.add(r),r=o.get(r)?.parentId}return!1},s=[];for(let e of r.values()){let t=o.get(e.session.id),n=t?r.get(t.parentId):void 0;if(!t||!n||a(e.session.id)){s.push(e);continue}e.relation=t.relation,n.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)),r=e.filter(e=>"subagent"!==e.relation).sort(l);e.splice(0,e.length,...t,...r)}for(let t of e)d(t.children,!1)};return d(s,!0),s}function h(e,t){if(!t)return e;let r=[];for(let n of e){let e=h(n.children,t);((function(e,t){let r;return!t||(r=[e.name??"",e.firstMessage,e.id,e.worktreeBranch??""],e.subagent&&(r.push(e.subagent.agent??"",e.subagent.runId),r.push(`run ${e.subagent.runIndex}`,`run-${e.subagent.runIndex}`,String(e.subagent.runIndex))),r.join("\n").toLowerCase()).includes(t)})(n.session,t)||e.length>0)&&r.push({...n,children:e})}return r}function f(e,t){let r=(e,n)=>{for(let i of e){if(i.session.id===t)return n;let e=r(i.children,[...n,i.session.id]);if(e)return e}return null};return r(e,[])??[]}function g(e){let t=[],r=e=>{for(let n of e)n.children.length>0&&t.push(n.session.id),n.children.length>0&&r(n.children)};return r(e),t}function x(e){let t="";for(let r of e)r.modified>t&&(t=r.modified);return t}function m(e,t){if(0===t.size)return[];let r=[];for(let n of e){let e=m(n.children,t);(t.has(n.session.id)||e.length>0)&&r.push({...n,children:e})}return r}function v(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(520,Math.max(240,Math.round(e))):300}function y(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(720,Math.max(320,Math.round(e))):400}function b(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(960,Math.max(320,Math.round(e))):560}function j(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[r,n]of Object.entries(e)){let e=r.trim();if(!e||null===n||"object"!=typeof n||Array.isArray(n))continue;let i=Array.isArray(n.expanded)?n.expanded.filter(e=>"string"==typeof e):[],o="number"==typeof n.scrollTop&&Number.isFinite(n.scrollTop)&&n.scrollTop>0?Math.round(n.scrollTop):0;t[e]={expanded:i,scrollTop:o}}return t}let w={displayMode:"standard",collapsedProjectRoots:[],collapsedWorktreePaths:[],projectAliases:{},closedProjectRoots:[],addedProjectRoots:[],sidebarWidth:300,rightPanelOpen:!1,rightPanelWidth:400,changesPanelOpen:!0,changesPanelWidth:560,showRecentSessions:!0,fileExplorerState:{}},k="pidance:sidebar-preferences";function S(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e):[]}function C(e){return null===e||"object"!=typeof e?{...w,projectAliases:{},closedProjectRoots:[],collapsedProjectRoots:[],collapsedWorktreePaths:[]}:{displayMode:"compact"===e.displayMode||"standard"===e.displayMode?e.displayMode:w.displayMode,collapsedProjectRoots:S(e.collapsedProjectRoots),collapsedWorktreePaths:S(e.collapsedWorktreePaths),projectAliases:function(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[r,n]of Object.entries(e)){if("string"!=typeof n)continue;let e=r.trim(),i=n.trim();e&&i&&(t[e]=i)}return t}(e.projectAliases),closedProjectRoots:S(e.closedProjectRoots),addedProjectRoots:S(e.addedProjectRoots),sidebarWidth:v(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:y(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:b(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,fileExplorerState:j(e.fileExplorerState)}}function _(e){return JSON.stringify({displayMode:e.displayMode,collapsedProjectRoots:e.collapsedProjectRoots,collapsedWorktreePaths:e.collapsedWorktreePaths,projectAliases:e.projectAliases,closedProjectRoots:e.closedProjectRoots,addedProjectRoots:e.addedProjectRoots,sidebarWidth:v(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:y(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:b(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,fileExplorerState:j(e.fileExplorerState)})}function R(e){try{let t=e.getItem(k);if(null===t)return C(null);try{return C(JSON.parse(t))}catch{return C(null)}}catch{return C(null)}}function I(){return R(window.localStorage)}function T(e){var t,r=window.localStorage;try{let n=R(r);r.setItem(k,_({...n,rightPanelOpen:void 0===e.open?n.rightPanelOpen:(t=e.open,!0===t),rightPanelWidth:void 0===e.width?n.rightPanelWidth:y(e.width)}))}catch{}}function M(e){var t,r=window.localStorage;try{let n=R(r);r.setItem(k,_({...n,changesPanelOpen:void 0===e.open?n.changesPanelOpen:(t=e.open,!1!==t),changesPanelWidth:void 0===e.width?n.changesPanelWidth:b(e.width)}))}catch{}}function z(e,t){var r=window.localStorage;try{let n=R(r),i=j(n.fileExplorerState);e.trim()&&(i[e]={expanded:j({[e]:t})[e]?.expanded??[],scrollTop:Math.max(0,Math.round(Number.isFinite(t.scrollTop)?t.scrollTop:0))}),r.setItem(k,_({...n,fileExplorerState:i}))}catch{}}let E="pidance.streamingEnterDefault",W="followUp";function L(e){return"steer"===e?"steer":"followUp"}function A(){var e=window.localStorage;try{let t=e.getItem(E);if(null===t)return W;try{return L(JSON.parse(t))}catch{return L(t)}}catch{return W}}let P="pidance.autoUpdateCheck";function $(e){return!1!==e&&0!==e&&"0"!==e&&"false"!==e}function H(){var e=window.localStorage;try{let t=e.getItem(P);if(null===t)return!0;try{return $(JSON.parse(t))}catch{return $(t)}}catch{return!0}}let D="pidance.sessionList.v1";function F(){try{let e=window.localStorage.getItem(D);if(!e)return null;let t=JSON.parse(e);if(!Array.isArray(t.sessions))return null;return t.sessions}catch{return null}}function N(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(D,JSON.stringify({sessions:t}))}catch{}}var O=r(99780);function B({cwd:e,tab:t}){let{t:r}=(0,O.s9)(),[o,a]=(0,i.useState)(null),[s,l]=(0,i.useState)(null),[d,c]=(0,i.useState)(!0),[u,p]=(0,i.useState)(!1),[h,f]=(0,i.useState)(null),[g,x]=(0,i.useState)(!1),[m,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(""),[j,w]=(0,i.useState)(""),k=(0,i.useCallback)(async()=>{c(!0),f(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 r=await t.json();a(r.rulesContent??""),l(Array.isArray(r.skills)?r.skills:[])}catch(e){f(e instanceof Error?e.message:String(e))}finally{c(!1)}},[e]);(0,i.useEffect)(()=>{k()},[k]);let S=(0,i.useCallback)(async t=>{let r=await fetch("/api/project-assets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,...t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error??`HTTP ${r.status}`);return!0},[e]),C=(0,i.useCallback)(async()=>{if(null!==o){p(!0),f(null),x(!1);try{await S({kind:"rules",content:o}),x(!0),window.setTimeout(()=>x(!1),2e3)}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[o,S]),_=(0,i.useCallback)(async()=>{let e=j.trim();if(e){p(!0),f(null);try{await S({kind:"skill",action:"create",name:e}),w(""),await k()}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[j,S,k]),R=(0,i.useCallback)(async e=>{p(!0),f(null);try{await S({kind:"skill",action:"update",name:e,content:y}),v(null),await k()}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}},[y,S,k]),I=(0,i.useCallback)(async e=>{p(!0),f(null);try{await S({kind:"skill",action:"toggle",name:e.name,enabled:!e.enabled}),await k()}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,k]),T=(0,i.useCallback)(async e=>{p(!0),f(null);try{await S({kind:"skill",action:"delete",name:e}),await k()}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,k]),M={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,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:r("common_loading")}):(0,n.jsxs)("div",{children:[h&&(0,n.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:10,whiteSpace:"pre-wrap"},children:h}),"rules"===t?(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:8,fontFamily:"var(--font-mono)"},children:[e,"/AGENTS.md"]}),(0,n.jsx)("textarea",{value:o??"",onChange:e=>a(e.target.value),spellCheck:!1,"aria-label":r("projectAssets_rules"),style:M}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:10},children:[(0,n.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?r("common_saving"):r("common_save")}),g&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--accent)"},children:r("common_saved")})]})]}):(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",gap:8,marginBottom:12},children:[(0,n.jsx)("input",{type:"text",value:j,onChange:e=>w(e.target.value),placeholder:r("projectAssets_newSkillName"),"aria-label":r("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,n.jsx)("button",{type:"button",onClick:()=>void _(),disabled:u||!j.trim(),style:{minHeight:30,padding:"0 12px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u||!j.trim()?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u||!j.trim()?.6:1},children:r("projectAssets_addSkill")})]}),s?.length===0?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:r("projectAssets_noSkills")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:(s??[]).map(e=>(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,n.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,n.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,color:"var(--text-muted)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:()=>void I(e),disabled:u}),r("projectAssets_enabled")]}),(0,n.jsx)("button",{type:"button",onClick:()=>{v(e.name),b(e.content)},style:{fontSize:11,color:"var(--accent)",cursor:"pointer",background:"none",border:"none"},children:r("projectAssets_edit")}),(0,n.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:r("common_remove")})]}),m===e.name&&(0,n.jsxs)("div",{style:{padding:8},children:[(0,n.jsx)("textarea",{value:y,onChange:e=>b(e.target.value),spellCheck:!1,"aria-label":`${e.name} SKILL.md`,style:M}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,marginTop:8},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void R(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?r("common_saving"):r("common_save")}),(0,n.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:r("common_cancel")})]})]})]},e.name))})]})]})}function U(e,t){let r=e[t];return"number"!=typeof r||!Number.isFinite(r)||r<5?5:Math.floor(r)}function q(e,t,r){if(r)return e;let n=Math.max(0,Math.floor(t));return n>=e.length?e:e.slice(0,n)}function K(e,t){let r=t.modified.localeCompare(e.modified);if(0!==r)return r;let n=t.created.localeCompare(e.created);return 0!==n?n:e.id.localeCompare(t.id)}function V(e,t){return e===t&&e>0}let J={status:"idle",worktrees:[]};function Y(e,t,r){var n;let i,o=e[t];switch(r.status){case"idle":i=J;break;case"loading":i={status:"loading",worktrees:o?.worktrees??[]};break;case"ready":i={status:"ready",worktrees:r.worktrees};break;case"error":i={status:"error",worktrees:r.worktrees??o?.worktrees??[],error:r.error}}return(n=i,o&&o.status===n.status&&(o.error??void 0)===(n.error??void 0)&&function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++){let n=e[r],i=t[r];if(n.path!==i.path||n.branch!==i.branch||n.isMain!==i.isMain)return!1}return!0}(o.worktrees,n.worktrees))?e:{...e,[t]:i}}let Z=(0,i.createContext)(null);function X({children:e,initial:t}){let r=(0,i.useRef)(null);return r.current||(r.current=function(e={}){let t=c({...d,...e.identity}),r=new Set,n=t,i=()=>r.forEach(e=>e());return{getIdentitySnapshot:()=>n,subscribeIdentity:e=>(r.add(e),()=>r.delete(e)),setIdentity:e=>{let r=void 0!==e.cwd&&void 0===e.projectRoot?{...e,projectRoot:e.cwd}:e,o=c({...t,...r});u(t,o)||(n=t=o,i())},reset:()=>{let e=!u(t,d);n=t=d,e&&i()}}}(t)),(0,n.jsx)(Z.Provider,{value:r.current,children:e})}function G(){let e=(0,i.useContext)(Z);if(!e)throw Error("useProjectIdentity/useProjectActions 必须在 ProjectProvider 内使用");return e}function Q(){let e=G();return(0,i.useSyncExternalStore)(e.subscribeIdentity,e.getIdentitySnapshot,e.getIdentitySnapshot)}var ee=r(47650);let et=0,er=null,en=[];function ei(e){return en.length>0&&en[en.length-1]===e}let eo=i.useLayoutEffect;function ea(){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 r=Number.isFinite(t.width)?Math.max(0,t.width):0,n=Number.isFinite(t.height)?Math.max(0,t.height):0;return r<=0||n<=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:r,height:n}}function es(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 el({open:e,onClose:t,title:r,description:o,children:a,actions:s,width:l=560,height:d,zIndex:c=1e3,closeOnBackdrop:u=!0,closeOnEsc:p=!0,initialFocusRef:h,headerActions:f,contentPadding:g="14px 18px",closeLabel:x="Close"}){let m=(0,i.useRef)(null),v=(0,i.useId)(),y=(0,i.useId)(),b=(0,i.useRef)(null);null===b.current&&(b.current=Symbol("ViewportDialog")),(0,i.useEffect)(()=>{if(e){var t;let e;return t=b.current,en.push(t),e=!1,()=>{if(e)return;e=!0;let r=en.lastIndexOf(t);r>=0&&en.splice(r,1)}}},[e]),(0,i.useEffect)(()=>{var t,r;if(!e)return;let n=document.activeElement,i=m.current,o=(t=h?.current,r=i?es(i):[],t??r[0]??i);return o?.focus({preventScroll:!0}),()=>{var e,t;let r=(e=n instanceof HTMLElement?n:null,t=e=>document.contains(e),null!==e&&t(e)?e:null);r?.focus({preventScroll:!0})}},[e,h]),(0,i.useEffect)(()=>{if(e){var t;let e;return t=document.body,0===et&&(er=t.style.overflow,t.style.overflow="hidden"),et+=1,e=!1,()=>{e||(e=!0,0==(et-=1)&&(t.style.overflow=er??"",er=null))}}},[e]),(0,i.useEffect)(()=>{if(!e)return;let r=b.current,n=e=>{let n=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:p,isTop:ei(r)});n.stopPropagation&&(e.stopPropagation(),n.preventDefault&&e.preventDefault(),n.close&&t())};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,p,t]),(0,i.useEffect)(()=>{if(!e)return;let t=b.current,r=e=>{if(!ei(t))return;let r=m.current;!r||!(e.target instanceof Node)||r.contains(e.target)||(es(r)[0]??r).focus({preventScroll:!0})};return document.addEventListener("focusin",r),()=>document.removeEventListener("focusin",r)},[e]);let[j,w]=(0,i.useState)(null),k=(0,i.useRef)(0),S=(0,i.useCallback)(()=>{let e=ea();w(t=>t&&t.top===e.top&&t.left===e.left&&t.width===e.width&&t.height===e.height?t:e)},[]);if(eo(()=>{if(!e)return void w(null);S();let t=()=>{k.current||(k.current=requestAnimationFrame(()=>{k.current=0,S()}))};window.addEventListener("resize",t);let r=window.visualViewport;return r?.addEventListener("resize",t),r?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),r?.removeEventListener("resize",t),r?.removeEventListener("scroll",t),k.current&&(cancelAnimationFrame(k.current),k.current=0)}},[e,S]),!e||"u"<typeof document)return null;let C="number"==typeof l?`${l}px`:l,_=j??ea(),R=function(e,t=16){return{maxWidth:Math.max(0,e.width-2*t),maxHeight:Math.max(0,e.height-2*t)}}(_),I="number"==typeof l?Math.min(l,R.maxWidth):`min(${C}, ${R.maxWidth}px)`,T=void 0===d?void 0:"number"==typeof d?Math.min(d,R.maxHeight):`min(${d}, ${R.maxHeight}px)`;return(0,ee.createPortal)((0,n.jsx)("div",{onMouseDown:e=>{u&&e.target===e.currentTarget&&t()},style:{position:"fixed",top:_.top,left:_.left,width:_.width,height:_.height,zIndex:c,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,overscrollBehavior:"contain"},children:(0,n.jsxs)("div",{ref:m,role:"dialog","aria-modal":"true","aria-labelledby":v,"aria-describedby":o?y:void 0,tabIndex:-1,onKeyDown:e=>{if("Tab"!==e.key)return;let t=m.current;if(!t)return;let r=function(e){let{focusable:t,active:r,shiftKey:n,panel:i,contains:o}=e;if(0===t.length)return{handled:!0,target:i};let a=t[0],s=t[t.length-1],l=null!==r&&o(r);if(n){if(r===a||!l)return{handled:!0,target:s}}else if(r===s||!l)return{handled:!0,target:a};return{handled:!1}}({focusable:es(t),active:document.activeElement,shiftKey:e.shiftKey,panel:t,contains:e=>t.contains(e)});r.handled&&(e.preventDefault(),r.target.focus({preventScroll:!0}))},style:{width:"100%",maxWidth:I,maxHeight:R.maxHeight,...void 0!==T?{height:T,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,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("div",{id:v,style:{fontSize:15,fontWeight:700,color:"var(--text)",minWidth:0,flex:1},children:r}),f,(0,n.jsx)("button",{type:"button",onClick:t,"aria-label":x,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,n.jsx)("div",{id:y,style:{padding:"10px 18px",borderBottom:"1px solid var(--border)",fontSize:13,lineHeight:1.55,color:"var(--text-muted)",flexShrink:0},children:o}),a&&(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",overscrollBehavior:"contain",padding:g},children:a}),s&&(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"12px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:s})]})}),document.body)}let ed="pidance:unread-session-ids";function ec(e,t){let r=new Date(e),n=new Date().getTime()-r.getTime(),i=Math.floor(n/6e4),o=Math.floor(n/36e5),a=Math.floor(n/864e5);return i<1?t("sidebar_justNow"):i<60?t("sidebar_minutesAgo",{count:i}):o<24?t("sidebar_hoursAgo",{count:o}):a<7?t("sidebar_daysAgo",{count:a}):r.toLocaleDateString()}function eu({text:e,style:t}){return(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,n.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}function ep({open:e,children:t,style:r}){let[o,a]=(0,i.useState)(e),[s,l]=(0,i.useState)(e);return((0,i.useEffect)(()=>{let t,r;return e?(a(!0),l(!1),t=window.requestAnimationFrame(()=>{t=window.requestAnimationFrame(()=>l(!0))})):(l(!1),r=setTimeout(()=>a(!1),140)),()=>{void 0!==t&&window.cancelAnimationFrame(t),r&&clearTimeout(r)}},[e]),o)?(0,n.jsx)("div",{style:{...r,opacity:+!!s,transform:s?"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 ef(){let[e,t]=(0,i.useState)(!1),[r,o]=(0,i.useState)(!1),a=(0,i.useRef)(null),s=function(e,t){let[r,n]=(0,i.useState)(e),o=(0,i.useRef)(null),a=(0,i.useRef)(0);return(0,i.useEffect)(()=>{if(!t)return void n(e);a.current=0;let r=4*e.length,i=()=>{a.current+=1;let t=Math.floor(a.current/r*e.length);n(e.split("").map((e,r)=>" "===e?" ":r<t?e:eh[Math.floor(Math.random()*eh.length)]).join("")),a.current<r?o.current=requestAnimationFrame(i):n(e)};return o.current=requestAnimationFrame(i),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t]),r}(e?"0.2.0pexternal":"Pidance",r),l=(0,i.useCallback)(e=>{t(e),o(!0),setTimeout(()=>o(!1),(e?6:8)*4*(1e3/60)+100)},[]),d=(0,i.useCallback)(()=>{a.current&&clearTimeout(a.current);let t=!e;l(t),t&&(a.current=setTimeout(()=>l(!1),3e3))},[e,l]);return(0,i.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),(0,n.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:s})}function eg({label:e,onClick:t,disabled:r=!1,active:i=!1,danger:o=!1,done:a=!1,hoverReveal:s=!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"),a&&h.push("sidebar-icon-btn--done"),s&&h.push("sidebar-icon-btn--hover"),(0,n.jsx)("button",{type:"button",ref:u,onClick:t,disabled:r,"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,n.jsxs)("svg",{...ex(e),children:[(0,n.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,n.jsx)("path",{d:"M12 10v6"}),(0,n.jsx)("path",{d:"M9 13h6"})]}),ev=({size:e=14})=>(0,n.jsx)("svg",{...ex(e),children:(0,n.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,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,n.jsx)("path",{d:"M3 4v5h5"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}),eb=({size:e=18})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),(0,n.jsx)("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),(0,n.jsx)("path",{d:"M10 12h4"})]}),ej=({size:e=18})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.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,n.jsx)("path",{d:"M12 7v6"}),(0,n.jsx)("path",{d:"M9 10h6"})]}),ew=({size:e=18})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,n.jsx)("path",{d:"m21 21-4.3-4.3"})]}),ek=({size:e=18})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("line",{x1:"21",x2:"14",y1:"4",y2:"4"}),(0,n.jsx)("line",{x1:"10",x2:"3",y1:"4",y2:"4"}),(0,n.jsx)("line",{x1:"21",x2:"12",y1:"12",y2:"12"}),(0,n.jsx)("line",{x1:"8",x2:"3",y1:"12",y2:"12"}),(0,n.jsx)("line",{x1:"21",x2:"16",y1:"20",y2:"20"}),(0,n.jsx)("line",{x1:"12",x2:"3",y1:"20",y2:"20"}),(0,n.jsx)("line",{x1:"14",x2:"14",y1:"2",y2:"6"}),(0,n.jsx)("line",{x1:"8",x2:"8",y1:"10",y2:"14"}),(0,n.jsx)("line",{x1:"16",x2:"16",y1:"18",y2:"22"})]}),eS=({size:e=14})=>(0,n.jsx)("svg",{...ex(e),children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}),eC=({size:e=15})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),(0,n.jsx)("polyline",{points:"9 22 9 12 15 12 15 22"})]}),e_=({size:e=14})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,n.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),eR=({size:e=12})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),eI=({size:e=14})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("path",{d:"M15.5 17.5h5"}),(0,n.jsx)("path",{d:"M18 15v5"})]}),eT=({size:e=13})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,n.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,n.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,n.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),eM=({size:e=13})=>(0,n.jsx)("svg",{...ex(e),children:(0,n.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,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"5",r:"1.7"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1.7"}),(0,n.jsx)("circle",{cx:"12",cy:"19",r:"1.7"})]});function eE({collapsed:e,label:t,left:r,onClick:i}){return(0,n.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:r,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,n.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,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})}function eW({primary:e=!1,danger:t=!1,disabled:r=!1,onClick:i,children:o}){let a=e||t;return(0,n.jsx)("button",{type:"button",onClick:i,disabled:r,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:a?"none":"1px solid var(--border)",borderRadius:7,color:a?"#fff":"var(--text-muted)",cursor:r?"not-allowed":"pointer",fontSize:12,fontWeight:a?600:500,opacity:r?.55:1,whiteSpace:"nowrap"},children:o})}function eL({label:e,checked:t,onClick:r}){return(0,n.jsxs)("button",{type:"button",onClick:r,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,n.jsx)("span",{style:{color:"var(--accent)",display:"flex",flexShrink:0},children:(0,n.jsx)(eS,{size:11})}):(0,n.jsx)("span",{style:{width:11,flexShrink:0}}),e]})}function eA({icon:e,label:t,onClick:r}){return(0,n.jsxs)("button",{type:"button",role:"menuitem",onClick:r,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,n.jsx)("span",{style:{display:"flex",flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true",children:e}),t]})}function eP({groupKey:e,total:t,visibleCount:r,searchActive:i,onShowMore:o,onShowFewer:a}){let{t:s}=(0,O.s9)(),l=!i&&t>Math.max(0,Math.floor(r)),d=!i&&Math.floor(r)>5;return l||d?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 8px 5px 28px"},children:[l&&(0,n.jsxs)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>o(e),children:[s("sidebar_showMore"),(0,n.jsxs)("span",{"aria-hidden":"true",children:["+",5]})]}),d&&(0,n.jsx)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>a(e),children:s("sidebar_showFewer")})]}):null}function e$({size:e=14}){let{t}=(0,O.s9)();return(0,n.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,n.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 eH({startedAt:e,now:t,running:r}){let{t:i}=(0,O.s9)();return r?(0,n.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,n.jsx)("span",{children:void 0!==e?function(e,t){let r,n,{hours:i,minutes:o,seconds:a}=(n=Math.floor((r=Math.max(0,Math.floor(e/1e3)))/3600),{hours:n,minutes:Math.floor(r%3600/60),seconds:r%60});return i>0?t("sidebar_runningHoursMinutes",{h:i,m:o}):o>0?t("sidebar_runningMinutesSeconds",{m:o,s:a}):t("sidebar_runningSeconds",{s:a})}(Math.max(0,t-e),i):i("sidebar_running")})}):null}function eD({size:e=14}){let{t}=(0,O.s9)();return(0,n.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,n.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:6,height:6,borderRadius:"50%",background:"currentColor"}})})}let eF=(0,i.createContext)({startedAt:new Map,now:Date.now()}),eN={readOnly:!1,canPrompt:!0,canFork:!0,canCompact:!0,canChangeModel:!0,canChangeThinking:!0,canChangeTools:!0,canRename:!0,canAutoName:!0,canDelete:!0,canConnectEvents:!0,canSendSessionCommands:!0},eO={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 eB(e){return e?.readOnly===!0?eO:eN}function eU(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 eq(e){return`/api/sessions/${encodeURIComponent(e)}/export`}function eK({open:e,onOpenChange:t,projectName:r,onEdit:o,onClose:a}){let{t:s}=(0,O.s9)(),l=(0,i.useRef)(null),d=(0,i.useRef)(null),c=(0,i.useRef)(null),u=(0,i.useCallback)(e=>{t(!1),e&&d.current?.focus()},[t]);return(0,i.useEffect)(()=>{if(!e)return;let r=e=>{l.current&&!l.current.contains(e.target)&&t(!1)};return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[e,t]),(0,i.useEffect)(()=>{if(!e)return;let t=requestAnimationFrame(()=>{c.current?.querySelector("[role='menuitem']")?.focus()});return()=>cancelAnimationFrame(t)},[e]),(0,n.jsxs)("div",{ref:l,style:{position:"relative",flexShrink:0,display:"flex"},onClick:e=>e.stopPropagation(),onKeyDown:t=>{"Escape"===t.key&&e&&(t.stopPropagation(),t.preventDefault(),u(!0))},children:[(0,n.jsx)(eg,{label:s("sidebar_projectMenuLabel",{project:r}),active:e,expanded:e,haspopup:"menu",hoverReveal:!0,buttonRef:d,onClick:r=>{r.stopPropagation(),t(!e)},children:(0,n.jsx)(ez,{size:14})}),(0,n.jsx)(ep,{open:e,style:{position:"absolute",top:"calc(100% + 4px)",right:0,zIndex:100,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)",overflow:"hidden",minWidth:148},children:(0,n.jsxs)("div",{ref:c,role:"menu","aria-label":s("sidebar_projectMenuLabel",{project:r}),children:[(0,n.jsx)(eA,{icon:(0,n.jsx)(eM,{size:13}),label:s("sidebar_editProject"),onClick:()=>{u(!0),o()}}),(0,n.jsx)(eA,{icon:(0,n.jsx)(e_,{size:13}),label:s("sidebar_closeProject"),onClick:()=>{u(!0),a()}})]})})]})}function eV({session:e,title:t,canRename:r,canDelete:o,canArchive:a,archiveDisabledReason:s,onRename:l,onDelete:d,onArchive:c}){var u;let p,{t:h}=(0,O.s9)(),[f,g]=(0,i.useState)(!1),[x,m]=(0,i.useState)(null),v=(0,i.useRef)(null),y=(0,i.useRef)(null),b=h("sidebar_sessionMenuLabel",{session:t}),j=(0,i.useCallback)((e=!1)=>{g(!1),e&&v.current?.focus()},[]);(0,i.useEffect)(()=>{if(!f)return;let e=e=>{let t=e.target;y.current?.contains(t)||v.current?.contains(t)||j()},t=()=>j();document.addEventListener("mousedown",e),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0);let r=requestAnimationFrame(()=>y.current?.querySelector("[role='menuitem']")?.focus());return()=>{cancelAnimationFrame(r),document.removeEventListener("mousedown",e),window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0)}},[j,f]);let w={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"},k={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)"}},S=e=>(0,n.jsx)("span",{"aria-hidden":"true",style:{display:"flex",color:"var(--text-dim)"},children:e});return(0,n.jsxs)("div",{style:{display:"flex",flexShrink:0},onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Escape"===e.key&&f&&(e.preventDefault(),j(!0))},children:[(0,n.jsx)(eg,{label:b,active:f,expanded:f,haspopup:"menu",hoverReveal:!0,buttonRef:v,onClick:e=>{e.stopPropagation(),(()=>{if(f)return j();let e=v.current?.getBoundingClientRect();e&&m({top:e.bottom+4+212<=window.innerHeight?e.bottom+4:Math.max(8,e.top-212-4),right:Math.max(8,window.innerWidth-e.right)}),g(!0)})()},children:(0,n.jsx)(ez,{size:14})}),f&&x&&(0,n.jsxs)("div",{ref:y,role:"menu","aria-label":b,style:{position:"fixed",top:x.top,right:x.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:[r&&(0,n.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{j(),l()},children:[S((0,n.jsx)(eM,{size:13})),h("sidebar_renameSession")]}),(0,n.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{j(),eU(e.id)},children:[S((0,n.jsxs)("svg",{...ex(13),children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})),h("sidebar_copySessionId")]}),(a||null!==s)&&(0,n.jsxs)("button",{type:"button",role:"menuitem",disabled:!a,title:a?void 0:s??void 0,style:{...w,opacity:a?1:.45,cursor:a?"pointer":"not-allowed"},onClick:()=>{a&&(j(),c())},children:[S((0,n.jsx)(eb,{size:13})),h("sidebar_archiveSession")]}),"string"==typeof e?.id&&e.id.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("a",{role:"menuitem",href:eq(e.id),download:!0,style:w,...k,onClick:()=>j(),children:[S((0,n.jsxs)("svg",{...ex(13),children:[(0,n.jsx)("path",{d:"M12 3v12"}),(0,n.jsx)("path",{d:"m7 10 5 5 5-5"}),(0,n.jsx)("path",{d:"M5 21h14"})]})),h("sidebar_exportSessionHtml")]}),(0,n.jsxs)("a",{role:"menuitem",href:(u=e.id,p=new URLSearchParams({format:"jsonl"}),`${eq(u)}?${p.toString()}`),download:!0,style:w,...k,onClick:()=>j(),children:[S((0,n.jsxs)("svg",{...ex(13),children:[(0,n.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,n.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"})]})),h("sidebar_exportSessionJsonl")]})]}),o&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{height:1,margin:"4px 6px",background:"var(--border)"}}),(0,n.jsxs)("button",{type:"button",role:"menuitem",style:{...w,color:"var(--status-danger)"},onClick:()=>{j(),d()},children:[S((0,n.jsx)(eT,{size:13})),h("sidebar_deleteSession")]})]})]})]})}function eJ({project:e,homeDir:t,displayMode:r,projectAliases:i,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,collapsedProjectRoots:c,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleProject:f,onToggleWorktree:g,onNewSession:x,onSelectSession:m,menuOpen:v,onMenuOpenChange:y,onEditProject:b,onCloseProject:j,onRenamed:w,onSessionDeleted:k,onToggleCollapse:S,groupVisibleCounts:C,onShowMore:_,onShowFewer:R,worktreeActions:I,wtNewOpen:T,wtNewBranch:M,wtError:z,wtConfirmRemove:E,wtNewInputRef:W,onStartCreateWorktree:L,onWtNewBranchChange:A,onSubmitCreateWorktree:P,onCancelCreateWorktree:$,onRequestRemoveWorktree:H,onConfirmRemoveWorktree:D,onCancelRemoveWorktree:F,onSessionArchive:N}){var B;let{t:K}=(0,O.s9)(),V=(B=e.root,!h&&c.has(B)),J=e.mainTree.length>0||e.worktrees.some(e=>e.tree.length>0),Y=i[e.root]??l(e.root,t),Z=K(V?"sidebar_expandProjectNamed":"sidebar_collapseProjectNamed",{project:Y});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!V,"aria-label":Z,onClick:()=>f(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(),f(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,n.jsx)(eE,{collapsed:V,label:Z,left:6,onClick:t=>{t.stopPropagation(),f(e.root)}}),(0,n.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,n.jsx)(ev,{size:13})}),(0,n.jsx)(eu,{text:Y,style:{flex:1,fontSize:12.5,fontWeight:600,fontFamily:"var(--font-mono)"}}),(0,n.jsx)(eg,{label:K("sidebar_newSessionIn",{project:Y}),hoverReveal:!0,onClick:t=>{t.stopPropagation(),x(e.root)},children:(0,n.jsx)(ej,{size:14})}),I&&(0,n.jsx)(eg,{label:I.createHint,disabled:!I.canManage||I.busy,hoverReveal:!0,onClick:e=>{e.stopPropagation(),L()},children:(0,n.jsx)(eI,{size:14})}),(0,n.jsx)(eK,{open:v,onOpenChange:y,projectName:Y,onEdit:b,onClose:j})]}),!V&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[q(e.mainTree,U(C,`main:${e.root}`),h).map(e=>(0,n.jsx)(eZ,{node:e,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,onSelectSession:m,onRenamed:w,onSessionDeleted:k,onSessionArchive:N,depth:0,collapsedSessionIds:p,searchActive:h,onToggleCollapse:S,displayMode:r},e.session.id)),(0,n.jsx)(eP,{groupKey:`main:${e.root}`,total:e.mainTree.length,visibleCount:U(C,`main:${e.root}`),searchActive:h,onShowMore:_,onShowFewer:R})]}),e.worktrees.map(e=>(0,n.jsx)(eY,{group:e,homeDir:t,displayMode:r,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleWorktree:e=>g(e),onNewSession:()=>x(e.path),onSelectSession:m,onRenamed:w,onSessionDeleted:k,onToggleCollapse:S,visibleCount:U(C,`worktree:${e.path}`),onShowMore:()=>_(`worktree:${e.path}`),onShowFewer:()=>R(`worktree:${e.path}`),worktreeActions:I,confirmRemove:E===e.path,onRequestRemove:()=>H(e.path),onConfirmRemove:()=>D(e.path),onCancelRemove:F,onSessionArchive:N},e.path)),T&&I?.canManage&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px 4px 30px"},children:[(0,n.jsx)("span",{style:{display:"flex",color:"var(--text-dim)",flexShrink:0},children:(0,n.jsx)(eR,{size:11})}),(0,n.jsx)("input",{ref:W,value:M,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,n.jsx)(eg,{label:K(I.busy?"sidebar_creating":"sidebar_createWorktreeAction"),disabled:I.busy||!M.trim(),onClick:P,children:(0,n.jsx)(eS,{size:14})}),(0,n.jsx)(eg,{label:K("sidebar_cancel"),onClick:$,children:(0,n.jsx)(e_,{size:13})})]}),z&&I&&(0,n.jsx)("div",{style:{padding:"3px 10px 6px 30px",color:"var(--status-danger)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:z}),!J&&0===e.worktrees.length&&(0,n.jsx)("div",{style:{padding:"2px 10px 6px 31px",color:"var(--text-dim)",fontSize:11},children:K("sidebar_noSessionsYet")})]})]})}function eY({group:e,homeDir:t,displayMode:r,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,collapsedWorktreePaths:c,collapsedSessionIds:u,searchActive:p,onToggleWorktree:h,onNewSession:f,onSelectSession:g,onRenamed:x,onSessionDeleted:m,onToggleCollapse:v,visibleCount:y,onShowMore:b,onShowFewer:j,worktreeActions:w,confirmRemove:k,onRequestRemove:S,onConfirmRemove:C,onCancelRemove:_,onSessionArchive:R}){var I;let{t:T}=(0,O.s9)(),M=(I=e.path,!p&&c.has(I)),z=e.branch??l(e.path,t),E=T(M?"sidebar_expandWorktreeNamed":"sidebar_collapseWorktreeNamed",{name:z}),W=(0,i.useMemo)(()=>{let t=new Set([...a,...s]),r=e=>e.some(e=>t.has(e.session.id)||r(e.children));return r(e.tree)},[e,a,s]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!M,"aria-label":E,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,n.jsx)(eE,{collapsed:M,label:E,left:6,onClick:t=>{t.stopPropagation(),h(e.path)}}),(0,n.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,n.jsx)(eR,{size:11})}),W&&(0,n.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,n.jsx)(e$,{size:18})}),(0,n.jsx)(eu,{text:z,style:{flex:1,fontSize:12,fontWeight:400,fontFamily:"var(--font-mono)"}}),W&&(0,n.jsx)(e$,{size:10}),(0,n.jsx)(eg,{label:T("sidebar_newSessionIn",{project:z}),hoverReveal:!0,onClick:e=>{e.stopPropagation(),f()},children:(0,n.jsx)(ej,{size:13})}),w?.canManage&&!k&&(0,n.jsx)(eg,{label:T("sidebar_removeWorktreeAt",{path:e.path}),danger:!0,hoverReveal:!0,disabled:w.busy,onClick:e=>{e.stopPropagation(),S()},children:(0,n.jsx)(eT,{size:13})})]}),k&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 30px",background:"var(--status-danger-bg)"},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:T("sidebar_dirtyWorktreeConfirm")}),(0,n.jsx)("button",{type:"button",onClick:C,disabled:w?.busy,style:{padding:"3px 9px",background:"var(--status-danger)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:T("sidebar_forceRemove")}),(0,n.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:T("sidebar_cancel")})]}),!M&&(0,n.jsxs)("div",{children:[q(e.tree,y,p).map(e=>(0,n.jsx)(eZ,{node:e,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,onSelectSession:g,onRenamed:x,onSessionDeleted:m,onSessionArchive:R,depth:0,collapsedSessionIds:u,searchActive:p,onToggleCollapse:v,displayMode:r},e.session.id)),(0,n.jsx)(eP,{groupKey:e.path,total:e.tree.length,visibleCount:y,searchActive:p,onShowMore:b,onShowFewer:j}),0===e.tree.length&&(0,n.jsx)("div",{style:{padding:"2px 10px 5px 28px",color:"var(--text-dim)",fontSize:11},children:T("sidebar_noSessions")})]})]})}function eZ({node:e,selectedSessionId:t,runningSessionIds:r,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:a,onRenamed:s,onSessionDeleted:l,onSessionArchive:d,depth:c,collapsedSessionIds:u,searchActive:p,onToggleCollapse:h,displayMode:f}){var g;let x=e.children.length>0,m=(g=e.session.id,!p&&u.has(g));return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{"data-session-id":e.session.id,style:{position:"relative"},children:(0,n.jsx)(eX,{session:e.session,relation:e.relation,isSelected:e.session.id===t,isRunning:r.has(e.session.id)||i.has(e.session.id),isUnread:!e.session.subagent&&o.has(e.session.id),onClick:()=>a(e.session),onRenamed:s,onDeleted:e=>l?.(e),onArchive:e=>d?.(e),depth:c,hasChildren:x,collapsed:m,onToggleCollapse:()=>h(e.session.id),displayMode:f})}),x&&!m&&(0,n.jsx)("div",{children:e.children.map(e=>(0,n.jsx)(eZ,{node:e,selectedSessionId:t,runningSessionIds:r,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:a,onRenamed:s,onSessionDeleted:l,onSessionArchive:d,depth:c+1,collapsedSessionIds:u,searchActive:p,onToggleCollapse:h,displayMode:f},e.session.id))})]})}function eX({session:e,relation:t=null,isSelected:r,isRunning:o,isUnread:a,onClick:s,onRenamed:l,onDeleted:d,onArchive:c,depth:u=0,hasChildren:p=!1,collapsed:h=!1,onToggleCollapse:f,displayMode:g}){let{t:x}=(0,O.s9)(),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(!1),[j,w]=(0,i.useState)(""),[k,S]=(0,i.useState)(!1),[C,_]=(0,i.useState)(!1),R=(0,i.useRef)(null),I=eB(e),T=!0===o,M=!T&&!1===eB(e).readOnly,z=M?null:x(T?"archive_rowDisabledRunning":"archive_rowDisabledReadOnly"),E=(0,i.useContext)(eF),W=e.id?E.startedAt.get(e.id):void 0,L=!0===o&&!(p&&h),A=e.firstMessage.trim(),P=e.subagent&&(!A||"(no messages)"===A)?`${e.subagent.agent?`${e.subagent.agent} \xb7 `:""}${x("sidebar_runCount",{count:e.subagent.runIndex})}`:"",$="(no messages)"===A?x("sidebar_noMessages"):e.firstMessage,H=e.name||P||$.slice(0,50)||e.id.slice(0,12),D=(0,i.useCallback)(()=>{I.canRename&&(w(e.name??""),b(!0),setTimeout(()=>R.current?.select(),0))},[e.name,I.canRename]),F=(0,i.useCallback)(async()=>{if(!I.canRename)return void b(!1);let t=j.trim();if(b(!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,I.canRename]),N=(0,i.useCallback)(()=>{I.canDelete&&S(!0)},[I.canDelete]),B=(0,i.useCallback)(async()=>{if(!I.canDelete)return void S(!1);S(!1),_(!0);try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"}),d?.(e.id)}catch{_(!1)}},[e.id,d,I.canDelete]),U=(0,i.useCallback)(()=>{S(!1)},[]),q="compact"===g,K=q?30:40;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sidebar-row","data-sidebar-depth":u,onClick:y?void 0:s,onMouseEnter:()=>v(!0),onMouseLeave:()=>{v(!1)},style:{height:K,display:"flex",alignItems:"center",width:"calc(100% - 12px)",margin:"1px 6px",position:"relative",paddingLeft:32+14*u,paddingRight:8,borderRadius:6,cursor:y?"default":"pointer",background:r?"var(--bg-selected)":m?"var(--bg-hover)":"transparent",borderLeft:r?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.15s ease, color 0.15s ease",opacity:C?.5:1,gap:6,overflow:"hidden"},children:y?(0,n.jsx)("input",{ref:R,value:j,onChange:e=>w(e.target.value),onBlur:F,onKeyDown:e=>{"Enter"===e.key&&F(),"Escape"===e.key&&b(!1)},autoFocus:!0,"aria-label":x("sidebar_renameSession"),style:{flex:1,fontSize:q?11:12,padding:"0 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",height:q?20:28}}):(0,n.jsxs)(n.Fragment,{children:[p?(0,n.jsx)("button",{type:"button",className:"sidebar-chevron-btn sidebar-indent-indicator sidebar-chevron-always",onClick:e=>{e.stopPropagation(),f?.()},title:x(h?"sidebar_expandChild":"sidebar_collapseChild"),"data-tooltip":x(h?"sidebar_expandChild":"sidebar_collapseChild"),"aria-label":x(h?"sidebar_expandChild":"sidebar_collapseChild"),style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:6+14*u,top:"50%",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transform:`translateY(-50%)${h?" rotate(-90deg)":""}`,transition:"transform 0.15s"},children:(0,n.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,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}):(0,n.jsx)("span",{className:"sidebar-indent-placeholder","aria-hidden":"true",style:{position:"absolute",left:6+14*u,top:"50%",width:20,height:20,transform:"translateY(-50%)"}}),o&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:6+14*u,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",pointerEvents:"none"},children:(0,n.jsx)(e$,{size:18})}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,fontSize:q?11.5:12,fontWeight:400,lineHeight:1.4,color:r?"var(--accent-hover)":"var(--text)"},title:H,children:[!o&&a&&(0,n.jsx)(eD,{size:10}),L&&q&&(0,n.jsx)(eH,{startedAt:W,now:E.now,running:!0}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:H}),q&&e.subagent&&(0,n.jsx)("span",{title:`${x("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${x("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:x("sidebar_subagentBadge")})]}),!q&&(0,n.jsxs)("div",{style:{marginTop:1,display:"flex",alignItems:"center",gap:8,color:"var(--text-dim)",fontSize:10.5,minWidth:0},children:[L&&(0,n.jsx)(eH,{startedAt:W,now:E.now,running:!0}),(0,n.jsx)("span",{title:e.modified,children:ec(e.modified,x)}),(0,n.jsx)("span",{children:x("sidebar_messagesCount",{count:e.messageCount})}),e.subagent&&(0,n.jsxs)("span",{title:`${x("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${x("sidebar_runCount",{count:e.subagent.runIndex})}`,style:{display:"flex",alignItems:"center",gap:4,color:"var(--text-muted)",minWidth:0,overflow:"hidden"},children:[(0,n.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:x("sidebar_subagentBadge")}),(0,n.jsxs)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:10},children:[e.subagent.agent?`${e.subagent.agent} \xb7 `:"",x("sidebar_runCount",{count:e.subagent.runIndex})]})]}),e.worktreeBranch&&(0,n.jsxs)("span",{title:x("sidebar_worktreeTooltip",{path:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden"},children:[(0,n.jsx)(eR,{size:9}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.worktreeBranch})]})]})]}),(0,n.jsx)(eV,{session:e,title:H,canRename:I.canRename,canDelete:I.canDelete,canArchive:M,archiveDisabledReason:z,onRename:D,onDelete:N,onArchive:()=>c?.(e.id)})]})}),(0,n.jsx)(el,{open:k,onClose:U,title:x("sidebar_deleteSession"),description:x("sidebar_deleteConfirm",{name:H}),width:400,closeLabel:x("dialog_close"),actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eW,{onClick:U,children:x("sidebar_cancel")}),(0,n.jsx)(eW,{danger:!0,onClick:()=>void B(),children:x("sidebar_deleteSession")})]})})]})}async function eG(e,t,r){try{let n=await r(e,t),i=await n.json().catch(()=>({}));return{ok:n.ok,status:n.status,error:i.error}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function eQ(e){if(!e.archivedAt)return-1/0;let t=Date.parse(e.archivedAt);return Number.isNaN(t)?-1/0:t}function e0(e,t=60){let r=e.name?.trim()||e.firstMessage.trim()||e.id;return r.length<=t?r:`${r.slice(0,t)}…`}function e1(e){return e.ok?"other":409===e.status?"running":403===e.status?"readOnly":0===e.status?"network":"other"}function e2({sessions:e,count:t,homeDir:r,loading:o,onRefresh:a,onBack:s}){let{t:d}=(0,O.s9)(),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)({sessionId:null}),[f,g]=(0,i.useState)(null);(0,i.useEffect)(()=>{a()},[a]);let x=(0,i.useCallback)(e=>{let t=e1(e);return"running"===t?d("archive_runningConflict"):"readOnly"===t?d("archive_readOnlyForbidden"):"network"===t?d("archive_networkError"):e.error??d("archive_unknownError")},[d]),m=(0,i.useCallback)(async e=>{if(null===c){u(e.id),g(null);try{let t=await function(e,t=fetch){return eG(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void g(d("archive_restoreFailed",{error:x(t)}));a()}catch(e){g(d("archive_restoreFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,a,d,x]),v=(0,i.useCallback)(async e=>{if(null===c){u(e.id),g(null);try{let t=await function(e,t=fetch){return eG(`/api/sessions/${encodeURIComponent(e)}`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void g(d("archive_deleteFailed",{error:x(t)}));h({sessionId:null}),a()}catch(e){g(d("archive_deleteFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,a,d,x]),y=[...e].sort((e,t)=>{let r=eQ(e),n=eQ(t);return r===n?0:r===-1/0?1:n===-1/0?-1:n-r}),b=p.sessionId?y.find(e=>e.id===p.sessionId)??null:null,j=b?e0(b):"",w=!!b&&c===b.id;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("button",{type:"button",onClick:s,"data-tooltip":d("archive_back"),"aria-label":d("archive_back"),className:"sidebar-icon-btn",style:{display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,n.jsx)(e_,{size:14})}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12.5,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d("archive_viewTitle")}),(0,n.jsx)("span",{title:d("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})]}),f&&(0,n.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:f}),(0,n.jsxs)("div",{style:{flex:"1 1 auto",overflowY:"auto",padding:"4px 0",minHeight:80},children:[o&&0===y.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:d("sidebar_loading")}),!o&&0===y.length&&(0,n.jsxs)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.7},children:[d("archive_empty"),(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:d("archive_emptyHint")})]}),y.map(e=>{let t=e0(e),i=c===e.id;return(0,n.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,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{title:t,style:{fontSize:12,fontWeight:500,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4},children:t}),(0,n.jsxs)("div",{style:{fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4,marginTop:1},children:[l(e.cwd,r)," \xb7 ",d("archive_archivedAt",{date:ec(e.archivedAt??e.modified,d)})]})]}),(0,n.jsx)("button",{type:"button",disabled:i,onClick:()=>void m(e),title:d("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?d("archive_restoring"):d("archive_restore")}),(0,n.jsx)("button",{type:"button",disabled:i,onClick:()=>h({sessionId:e.id}),title:d("archive_delete"),"aria-label":d("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,n.jsx)(eT,{size:13})})]},e.id)})]}),(0,n.jsx)(el,{open:null!==b,onClose:()=>{w||h({sessionId:null})},title:d("archive_delete"),description:b?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{fontWeight:600,color:"var(--text)",marginBottom:4},children:j}),(0,n.jsx)("div",{children:d("archive_deleteConfirm")})]}):d("archive_deleteConfirm"),width:400,closeLabel:d("dialog_close"),closeOnBackdrop:!w,closeOnEsc:!w,actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eW,{disabled:w,onClick:()=>h({sessionId:null}),children:d("archive_deleteCancel")}),(0,n.jsx)(eW,{danger:!0,disabled:w||!b,onClick:()=>{b&&v(b)},children:w?d("archive_deleting"):d("archive_deleteConfirmButton")})]})})]})}function e4({selectedSessionId:e,onSelectSession:t,onNewSession:r,initialSessionId:o,skipInitialProjectSelection:a,onInitialRestoreDone:d,refreshKey:c,onSessionDeleted:u,onProjectAdded:v,optimisticSessions:y,clientRunningSessionId:b}){let{t:j}=(0,O.s9)(),[w,S]=(0,i.useState)([]),C=(0,i.useRef)([]),[R,T]=(0,i.useState)(()=>new Map),[M,z]=(0,i.useState)(()=>new Set),[E,W]=(0,i.useState)(()=>new Set),[L,A]=(0,i.useState)(!0),[P,$]=(0,i.useState)(null),H=(0,i.useRef)(0),{cwd:D,projectRoot:q}=Q(),{setIdentity:J}=G(),[Z,X]=(0,i.useState)(""),[ee,et]=(0,i.useState)(!1),[er,en]=(0,i.useState)(""),[ei,eo]=(0,i.useState)(null),[ea,es]=(0,i.useState)(!1),ec=(0,i.useRef)(null),[eu,eh]=(0,i.useState)([]),[ex,ev]=(0,i.useState)(null),[eS,eR]=(0,i.useState)(!1),[eI,eT]=(0,i.useState)(!1),[eM,ez]=(0,i.useState)(null),[eA,eP]=(0,i.useState)(null),[e$,eH]=(0,i.useState)(!1),[eD,eN]=(0,i.useState)(null),[eO,eB]=(0,i.useState)(null),[eU,eq]=(0,i.useState)(""),[eK,eV]=(0,i.useState)("name"),eY=(0,i.useRef)(null),eQ=(0,i.useRef)(!0),[e0,e6]=(0,i.useState)(null),[e5,e8]=(0,i.useState)(""),[e3,e9]=(0,i.useState)(null),[e7,te]=(0,i.useState)(null),[tt,tr]=(0,i.useState)(!1),[tn,ti]=(0,i.useState)(null),to=(0,i.useRef)(null),[ta,ts]=(0,i.useState)(!1),[tl,td]=(0,i.useState)(()=>new Set),tc=(0,i.useMemo)(()=>{if(!b||tl.has(b))return tl;let e=new Set(tl);return e.add(b),e},[tl,b]),[tu,tp]=(0,i.useState)([]),[th,tf]=(0,i.useState)(0),[tg,tx]=(0,i.useState)(!1),[tm,tv]=(0,i.useState)(null),[ty,tb]=(0,i.useState)(null),[tj,tw]=(0,i.useState)(()=>new Set),tk=(0,i.useRef)(null),[tS,tC]=(0,i.useState)(()=>Date.now()),[t_,tR]=(0,i.useState)(()=>new Map),tI=tc.size>0||tj.size>0;(0,i.useEffect)(()=>{if(!tI)return;let e=setInterval(()=>tC(Date.now()),1e3);return()=>clearInterval(e)},[tI]),(0,i.useEffect)(()=>{let e=Date.now();tC(e),tR(t=>(function(e,t,r){let n=new Map,i=e.size!==t.length;for(let o of t){let t=e.get(o);void 0!==t?n.set(o,t):(n.set(o,r),i=!0)}return i?n:e})(t,[...tc,...tj],e))},[tc,tj]);let[tT,tM]=(0,i.useState)(()=>(function(){var e=window.localStorage;try{var t=e.getItem(ed);if(!t)return new Set;try{let e=JSON.parse(t);if(Array.isArray(e))return new Set(e.filter(e=>"string"==typeof e));return new Set}catch{return new Set}}catch{return new Set}})()),[tz,tE]=(0,i.useState)(""),[tW,tL]=(0,i.useState)(!1),[tA,tP]=(0,i.useState)("meta"),[t$,tH]=(0,i.useState)([]),[tD,tF]=(0,i.useState)([]),[tN,tO]=(0,i.useState)(null),[tB,tU]=(0,i.useState)(!1),[tq,tK]=(0,i.useState)(null),tV=(0,i.useRef)(0),tJ=(0,i.useRef)(null),[tY,tZ]=(0,i.useState)(!1),tX=(0,i.useRef)(null),[tG,tQ]=(0,i.useState)(()=>I()),[t0,t1]=(0,i.useState)({}),[t2,t4]=(0,i.useState)(()=>new Set),t6=(0,i.useRef)(new Set),t5=(0,i.useRef)(null),t8=(0,i.useRef)(!1),t3=(0,i.useRef)(new Set),t9=(0,i.useRef)(!1),t7=(0,i.useRef)(null),re=(0,i.useCallback)(e=>{tQ(t=>{let r=e(t);return r!==t&&function(e){try{window.localStorage.setItem(k,_(e))}catch{}}({...r,sidebarWidth:I().sidebarWidth}),r})},[]),rt=tG.displayMode,rr=tG.showRecentSessions,[rn,ri]=(0,i.useState)(5),ro=(0,i.useMemo)(()=>new Set(tG.collapsedProjectRoots),[tG.collapsedProjectRoots]),ra=(0,i.useMemo)(()=>new Set(tG.collapsedWorktreePaths),[tG.collapsedWorktreePaths]),rs=(0,i.useMemo)(()=>new Set(tG.closedProjectRoots),[tG.closedProjectRoots]);(0,i.useEffect)(()=>{eH(!!window.piDesktop?.selectDirectory)},[]);let rl=(0,i.useRef)(M);rl.current=M;let rd=(0,i.useCallback)(async(e=!1)=>{let t=++H.current;if(e&&0===C.current.length){let e=F();if(e&&e.length>0){if(!eQ.current||!V(t,H.current))return;S(e),C.current=e,A(!1)}}try{e&&0===C.current.length&&A(!0);let r=await fetch("/api/sessions");if(!eQ.current||!V(t,H.current))return;if(!r.ok)throw Error(`HTTP ${r.status}`);let n=await r.json();if(!eQ.current||!V(t,H.current))return;S(n.sessions),C.current=n.sessions,N(n.sessions),tp(n.archivedSessions??[]),tf(n.archivedCount??0),z(e=>(function(e,t){if(0===e.size)return e;let r=new Set(t.map(e=>e.id)),n=!1,i=new Set;for(let t of e){if(r.has(t)){n=!0;continue}i.add(t)}return n?i:e})(e,n.sessions)),T(e=>{if(0===e.size)return e;let t=new Map(e),r=!1;for(let e of n.sessions)t.has(e.id)&&(t.delete(e.id),r=!0);return r?t:e}),t9.current||td(new Set(n.runningSessionIds??[])),n.runningStartedAt&&tR(e=>{let t=new Map(e),r=!1;for(let[e,i]of Object.entries(n.runningStartedAt??{}))t.has(e)||"number"!=typeof i||(t.set(e,i),r=!0);return r?t:e});let i=new Set(n.sessions.map(e=>e.id)),o=rl.current;tM(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>i.has(e)||o.has(e)));return t.size===e.size?e:t}),$(null),e||(ts(!0),t7.current&&clearTimeout(t7.current),t7.current=setTimeout(()=>{eQ.current&&ts(!1)},2e3))}catch(e){if(!eQ.current||!V(t,H.current))return;$(String(e))}finally{eQ.current&&V(t,H.current)&&e&&A(!1)}},[]),rc=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=!rc.current;rc.current=!0,rd(e)},[rd,c]),(0,i.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&rd(!1)};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",e)}},[rd]),(0,i.useEffect)(()=>{if(!y||0===y.length)return;let e=y.filter(e=>e?.id);0!==e.length&&(W(t=>{let r=null;for(let n of e)t.has(n.id)&&(r||(r=new Set(t)),r.delete(n.id));return r??t}),z(t=>{let r=null;for(let n of e)t.has(n.id)||(r||(r=new Set(t)),r.add(n.id));return r??t}),T(t=>{let r=null;for(let n of e)t.get(n.id)!==n&&(r||(r=new Map(t)),r.set(n.id,n));return r??t}))},[y]);let ru=(0,i.useMemo)(()=>(function(e){let{serverSessions:t,pendingSessions:r,pendingIds:n=new Set(r.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 r)!(i?.has(e.id)||o.has(e.id))&&n.has(e.id)&&o.set(e.id,e);return[...o.values()].sort(K)})({serverSessions:w,pendingSessions:[...R.values()],pendingIds:M,deletedIds:E}),[w,R,M,E]),{worktreeSnapshots:rp,worktreeSnapshotsRef:rh,worktreeMetadata:rf,setWtRefreshKey:rg,commitWorktreeSnapshots:rx}=function({allSessions:e,selectedCwd:t,selectedProjectRoot:r,setIdentity:n,mountedRef:o}){let[a,l]=(0,i.useState)({}),d=(0,i.useRef)({}),[c,u]=(0,i.useState)({}),p=(0,i.useRef)(new Set),h=(0,i.useRef)(new Map),[f,g]=(0,i.useState)(0),x=(0,i.useCallback)(e=>{l(t=>{let r=e(t);return d.current=r,r})},[]);(0,i.useEffect)(()=>()=>{h.current.clear()},[]);let m=(0,i.useCallback)(async e=>{if(p.current.has(e))return;let i=`${Date.now()}:${Math.random()}`;p.current.add(e),h.current.set(e,i),x(t=>Y(t,e,{status:"loading"}));try{let a=await fetch(`/api/worktrees?cwd=${encodeURIComponent(e)}`),s=await a.json().catch(()=>({}));if(!a.ok||s.error||!s.projectRoot)throw Error(s.error??`HTTP ${a.status}`);if(!o.current||h.current.get(e)!==i)return;let l=s.projectRoot,d=s.worktrees??[];x(t=>l===e?Y(t,e,{status:"ready",worktrees:d}):Y(function(e,t){if(!(t in e))return e;let r={...e};return delete r[t],r}(t,e),l,{status:"ready",worktrees:d})),u(t=>{let r={isGit:s.isGit??!1,isTopLevel:s.isTopLevel??!1};return l===e?{...t,[e]:r}:{...t,[l]:r}}),t&&(r===e||t===e)&&n({cwd:t,projectRoot:l,branch:d.find(e=>e.path===t)?.branch??null,isGit:s.isGit??!1,isTopLevel:s.isTopLevel??!1,status:"ready",error:null})}catch(t){if(!o.current||h.current.get(e)!==i)return;x(r=>Y(r,e,{status:"error",error:t instanceof Error?t.message:String(t)}))}finally{h.current.get(e)===i&&(h.current.delete(e),p.current.delete(e))}},[x,t,r,n,o]),v=(0,i.useMemo)(()=>{var n,i,o;return n=s(e),i=t,(o=r)?n.includes(o)?n:[o,...n]:i&&!n.includes(i)?[i,...n]:n},[e,t,r]),y=(0,i.useRef)(new Map);return(0,i.useEffect)(()=>{let e=`wt:${Math.max(0,Math.floor(f))}`,t=v.filter(t=>y.current.get(t)!==e);for(let r of t)y.current.set(r,e);let r=!1;return Promise.all(Array.from({length:Math.min(3,t.length)},async()=>{for(;!r;){let e=t.shift();if(!e)return;await m(e)}})),()=>{r=!0}},[v,f,m]),{worktreeSnapshots:a,worktreeSnapshotsRef:d,worktreeMetadata:c,wtRefreshKey:f,setWtRefreshKey:g,commitWorktreeSnapshots:x,fetchProjectWorktrees:m,knownProjectRoots:v}}({allSessions:ru,selectedCwd:D,selectedProjectRoot:q,setIdentity:J,mountedRef:eQ});(0,i.useEffect)(()=>{try{0===tT.size?window.localStorage.removeItem(ed):window.localStorage.setItem(ed,JSON.stringify([...tT]))}catch{}},[tT]),(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&&(t9.current=!0,td(new Set(t.runningSessionIds??[])))}catch{}},()=>e.close()},[]);let rm=(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),r=new Set;for(let e of t)for(let t of e.steps??[])t.sessionId&&r.add(t.sessionId);let n=new Set;if(r.size>0)for(let e of C.current)e.subagent?.parentSessionId&&r.has(e.id)&&n.add(e.subagent.parentSessionId);tw(new Set([...r,...n]))}catch{}},[]);(0,i.useEffect)(()=>(rm(),tk.current=setInterval(()=>void rm(),3e4),()=>{tk.current&&clearInterval(tk.current)}),[rm]),(0,i.useEffect)(()=>{ta&&rm()},[ta,rm]),(0,i.useEffect)(()=>{let t=t3.current,r=[...t].filter(t=>!tc.has(t)&&t!==e),n=[...tc].filter(e=>!t.has(e));if((r.length>0||n.length>0)&&tM(e=>{let t=new Set(e);return n.forEach(e=>t.delete(e)),r.forEach(e=>t.add(e)),t}),n.length>0){let e=new Date().toISOString();S(t=>{let r=!1,i=t.map(t=>!n.includes(t.id)||t.modified>=e?t:(r=!0,{...t,modified:e}));if(!r)return t;let o=[...i].sort((e,t)=>e.modified<t.modified?1:e.modified>t.modified?-1:0);return C.current=o,N(o),o})}t3.current=new Set(tc)},[tc,e]);let rv=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{let e=rv.current,t=[...tl].filter(t=>!e.has(t));rv.current=new Set(tl),t.length>0&&rd(!1)},[tl,rd]),(0,i.useEffect)(()=>{e&&tM(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r})},[e]),(0,i.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&X(e.home)}).catch(()=>{})},[]);let ry=(0,i.useRef)(!1);(0,i.useEffect)(()=>()=>{eQ.current=!1},[]);let rb=(0,i.useCallback)(e=>{if(!e)return null;if(D===e&&q)return q;for(let[t,r]of Object.entries(rh.current))if(r.worktrees.some(t=>t.path===e))return t;let t=ru.find(t=>t.cwd===e);return t?.projectRoot??e},[D,q,ru]),rj=(0,i.useCallback)((e,t)=>{let r=null===e?null:t??rb(e)??e;J({cwd:e,projectRoot:r,status:e?"ready":"idle",error:null})},[rb,J]),rw=q??rb(D);(0,i.useEffect)(()=>{e6(null),e8(""),e9(null),te(null),ti(null)},[D]),(0,i.useEffect)(()=>{if(0!==ru.length&&!a){if(o&&!ry.current){ry.current=!0;let e=ru.find(e=>e.id===o);if(e){rj(e.cwd,e.projectRoot??e.cwd),t(e,!0);return}d?.()}if(null===D){let e=s(ru).find(e=>!rs.has(e));e&&rj(e)}}},[ru,D,o,a,t,d,rj,rs]);let rk=(0,i.useCallback)(()=>{et(!1),en(""),eo(null)},[]),rS=(0,i.useCallback)(e=>{re(t=>t.closedProjectRoots.includes(e)?{...t,closedProjectRoots:t.closedProjectRoots.filter(t=>t!==e)}:t)},[re]),rC=(0,i.useCallback)(async e=>{let t={current:!1};eR(!0),eT(!1),eo(null);try{let r=await fetch(`/api/cwd/browse?path=${encodeURIComponent(e)}`);if(t.current)return;if(!r.ok){eh([]),ev(null),eT(!0),ez(null),eP(null);return}let n=await r.json();if(t.current)return;en(n.path??e),ez(n.path??e),eP(n.parentPath??null),eh(n.entries??[]),ev(n.git??null),eT(!1)}catch{t.current||(eh([]),ev(null),eT(!0),ez(null),eP(null))}finally{t.current||eR(!1)}return()=>{t.current=!0}},[]),r_=(0,i.useCallback)(async e=>{let t=(e??eM??er).trim();if(t&&!ea){es(!0),eo(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 eo(r.error??`HTTP ${e.status}`);let n=r.cwd??t,i=rb(n)??n;re(e=>e.addedProjectRoots.includes(i)?e:{...e,addedProjectRoots:[...e.addedProjectRoots,i]}),rS(i),rj(n,i),rk(),v?.(i)}catch(e){eo(e instanceof Error?e.message:String(e))}finally{es(!1)}}},[eM,er,ea,rb,rS,rj,rk,v]),rR=(0,i.useCallback)(()=>{eo(null),en(""),ez(null),eP(null),eh([]),ev(null),eT(!1),et(!0),rC("")},[rC]),rI=(0,i.useCallback)(async()=>{let e=window.piDesktop;if(e)try{eo(null);let t=await e.selectDirectory();null!==t&&(en(t),rC(t))}catch(e){eo(e instanceof Error?e.message:String(e))}},[rC]),rT=(0,i.useCallback)(async()=>{if(!ea){es(!0),eo(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 eo(t.error??`HTTP ${e.status}`);let r=rb(t.cwd)??t.cwd;rS(r),rj(t.cwd,r),rk(),v?.(r)}catch(e){eo(e instanceof Error?e.message:String(e))}finally{es(!1)}}},[ea,rb,rS,rj,rk]),rM=(0,i.useCallback)(async()=>{let e=e5.trim();if(e&&!tt&&e0){tr(!0),e9(null),te(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e0,branch:e})}),r=await t.json().catch(()=>({}));if(!t.ok||r.error||!r.path){e9(r.error??`HTTP ${t.status}`),te(e0);return}e6(null),e8(""),rx(t=>Y(t,e0,{status:"ready",worktrees:[...t[e0]?.worktrees??[],{path:r.path,branch:e,isMain:!1}]})),rj(r.path,e0),rg(e=>e+1)}catch(e){e9(e instanceof Error?e.message:String(e)),te(e0)}finally{tr(!1)}}},[e0,e5,tt,rx,rj]),rz=(0,i.useCallback)(async(e,t,r)=>{if(!tt){tr(!0),e9(null),te(null);try{let n=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,path:t,force:r})}),i=await n.json().catch(()=>({}));if(!n.ok){if(i.dirty&&!r)return void ti(t);e9(i.error??`HTTP ${n.status}`),te(e);return}ti(null),D===t&&rj(e,e),rg(e=>e+1)}catch(t){e9(t instanceof Error?t.message:String(t)),te(e)}finally{tr(!1)}}},[tt,D,rj]);(0,i.useEffect)(()=>{if(!tY)return;let e=e=>{tX.current&&!tX.current.contains(e.target)&&tZ(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[tY]);let rE=(0,i.useCallback)(e=>{e.cwd&&rj(e.cwd,e.projectRoot??e.cwd),t(e)},[t,rj]),rW=(0,i.useCallback)(e=>{W(t=>{let r=new Set(t);return r.add(e),r}),z(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r}),T(t=>{if(!t.has(e))return t;let r=new Map(t);return r.delete(e),r}),u?.(e),rd()},[u,rd]),rL=(0,i.useCallback)(async e=>{if(null===tm){tv(e),tb(null);try{let t=await function(e,t=fetch){return eG(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"POST"},t)}(e);if(!t.ok){let e=e1(t);tb("running"===e?j("archive_runningConflict"):"readOnly"===e?j("archive_readOnlyForbidden"):"network"===e?j("archive_networkError"):t.error??j("archive_unknownError"));return}rd()}catch(e){tb(e instanceof Error?e.message:String(e))}finally{tv(null)}}},[tm,rd,j]),rA=(0,i.useCallback)(()=>{tx(e=>(e||tb(null),!e))},[]),rP=(0,i.useCallback)(e=>{re(t=>t.showRecentSessions===e?t:{...t,showRecentSessions:e})},[re]),r$=(0,i.useMemo)(()=>(function(e){let{sessions:t,closedProjectRoots:r,excludeIds:n,limit:i=20}=e,o=Math.max(0,Math.floor(i));return t.filter(e=>{if(e.subagent||n?.has(e.id))return!1;let t=e.projectRoot??e.cwd;return!(t&&r?.has(t))}).slice().sort(K).slice(0,o)})({sessions:ru,closedProjectRoots:rs,limit:20}),[ru,rs]);(0,i.useEffect)(()=>{ri(e=>0===r$.length?5:Math.min(Math.max(e,5),r$.length))},[r$.length]);let rH=(0,i.useCallback)((e=D)=>{e&&(rj(e,rb(e)),r?.(e))},[D,r,rj,rb]),rD=(0,i.useCallback)(()=>{tE(""),tH([]),tF([]),tO(null),tK(null),tU(!1),tV.current+=1},[]),rF=(0,i.useCallback)(()=>{tW?(tL(!1),rD()):(tL(!0),setTimeout(()=>tJ.current?.focus(),0))},[tW,rD]);(0,i.useEffect)(()=>{if(!tW||"fulltext"!==tA)return void tU(!1);let e=tz.trim();if(!e){tH([]),tF([]),tO(null),tK(null),tU(!1);return}let t=++tV.current;tU(!0),tK(null);let r=setTimeout(()=>{(async()=>{try{let r=await fetch(`/api/sessions/search?q=${encodeURIComponent(e)}&limit=40`),n=await r.json().catch(()=>({}));if(t!==tV.current)return;if(!r.ok||n.error){tK(n.error??`HTTP ${r.status}`),tH([]),tF([]),tO(null);return}tH(n.hits??[]),tF(n.sessionIds??[]),tO(n.source??null)}catch(e){if(t!==tV.current)return;tK(e instanceof Error?e.message:String(e)),tH([]),tF([]),tO(null)}finally{t===tV.current&&tU(!1)}})()},280);return()=>clearTimeout(r)},[tW,tA,tz]);let rN=(0,i.useMemo)(()=>Object.fromEntries(Object.entries(rp).map(([e,t])=>[e,t.worktrees])),[rp]),rO=(0,i.useMemo)(()=>(function(e,t={}){let{selectedCwd:r=null,selectedProjectRoot:n=null,knownWorktrees:i=[],knownWorktreesByProject:o={}}=t,a=new Map;for(let t of e){let e=t.projectRoot??t.cwd,r=a.get(e);if(r||(r={main:[],worktrees:new Map},a.set(e,r)),t.cwd===e)r.main.push(t);else{let e=r.worktrees.get(t.cwd);e||(e={sessions:[],branch:null},r.worktrees.set(t.cwd,e)),e.sessions.push(t),!e.branch&&t.worktreeBranch&&(e.branch=t.worktreeBranch)}}let s=n??r;for(let[e,t]of Object.entries(s?{...o,[s]:o[s]??i}:o)){let r=a.get(e);for(let n of(r||(r={main:[],worktrees:new Map},a.set(e,r)),t))!n.isMain&&(r.worktrees.has(n.path)||r.worktrees.set(n.path,{sessions:[],branch:n.branch}))}for(let e of(s&&!a.has(s)&&a.set(s,{main:[],worktrees:new Map}),t.addedProjectRoots??[]))a.has(e)||a.set(e,{main:[],worktrees:new Map});let l=[];for(let[e,t]of a){let r=[...t.worktrees.entries()].map(([e,t])=>({path:e,branch:t.branch,tree:p(t.sessions),latestActivity:x(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)),n=[...t.main,...t.worktrees.values().flatMap(e=>e.sessions)];l.push({root:e,mainTree:p(t.main),worktrees:r,latestActivity:x(n)})}return l.sort((e,t)=>e.latestActivity||t.latestActivity?e.latestActivity?t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):t.root===s?1:-1:e.root===s?-1:1:e.root.localeCompare(t.root)),l})(ru,{selectedCwd:D,selectedProjectRoot:rw,knownWorktreesByProject:rN,addedProjectRoots:tG.addedProjectRoots}),[ru,D,rw,rN,tG.addedProjectRoots]),rB=(0,i.useMemo)(()=>{let e=new Map,t=r=>{for(let n of r)e.set(n.session.id,n),n.children.length>0&&t(n.children)};for(let e of rO)for(let r of(t(e.mainTree),e.worktrees))t(r.tree);return e},[rO]),rU=(0,i.useMemo)(()=>0===rs.size?rO:rO.filter(e=>!rs.has(e.root)),[rO,rs]),rq=tz.trim().toLowerCase(),rK="fulltext"===tA&&rq.length>0,rV=(0,i.useMemo)(()=>rK?new Set(tD):null,[rK,tD]),rJ=rK?tD.length>0||tB||!!tq:rq.length>0,rY=(0,i.useMemo)(()=>(function(e,t,r,n){let i=null!=n;if(!i&&!t)return e;let o=[];for(let a of e){if(!i){let e=r?.[a.root];if(a.root.toLowerCase().includes(t)||void 0!==e&&e.toLowerCase().includes(t)){o.push(a);continue}}let e=i?m(a.mainTree,n):h(a.mainTree,t),s=[];for(let e of a.worktrees){if(!i&&`${e.branch??""}
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{17581:(e,t,r)=>{Promise.resolve().then(r.bind(r,69195)),Promise.resolve().then(r.bind(r,84747))},69195:(e,t,r)=>{"use strict";r.d(t,{AppShell:()=>lS});var n=r(95155),i=r(12115),o=r(73321);let a=null;function s(e){let t=new Map;for(let r of e){let e=r.projectRoot??r.cwd,n=t.get(e);(!n||r.modified>n)&&t.set(e,r.modified)}return[...t.entries()].sort((e,t)=>t[1].localeCompare(e[1])).map(([e])=>e)}function l(e,t){if(!t)return e;let r=e.replaceAll("\\","/"),n=t.replaceAll("\\","/").replace(/\/$/,"");return r===n?"~":r.startsWith(`${n}/`)?`~${r.slice(n.length)}`:e}let d={status:"idle",error:null,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1};function c(e){return null!==e.cwd&&null!==e.projectRoot?e:{...e,cwd:null,projectRoot:null,branch:null,isGit:!1,isTopLevel:!1}}function u(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 p(e){let t=e.filter(e=>!e.subagent),r=new Map;for(let e of t)r.set(e.id,{session:e,relation:null,children:[]});let n=new Map;for(let e of t)e.parentSessionId&&n.set(e.id,e.parentSessionId);let i=e=>{let t=n.get(e),i=new Set,o=[];for(;t;){if(i.has(t)||t===e)return null;i.add(t),o.push(t),t=n.get(t)}return o.find(e=>r.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 a=e=>{let t=new Set([e]),r=o.get(e)?.parentId;for(;r;){if(t.has(r))return!0;t.add(r),r=o.get(r)?.parentId}return!1},s=[];for(let e of r.values()){let t=o.get(e.session.id),n=t?r.get(t.parentId):void 0;if(!t||!n||a(e.session.id)){s.push(e);continue}e.relation=t.relation,n.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)),r=e.filter(e=>"subagent"!==e.relation).sort(l);e.splice(0,e.length,...t,...r)}for(let t of e)d(t.children,!1)};return d(s,!0),s}function h(e,t){if(!t)return e;let r=[];for(let n of e){let e=h(n.children,t);((function(e,t){let r;return!t||(r=[e.name??"",e.firstMessage,e.id,e.worktreeBranch??""],e.subagent&&(r.push(e.subagent.agent??"",e.subagent.runId),r.push(`run ${e.subagent.runIndex}`,`run-${e.subagent.runIndex}`,String(e.subagent.runIndex))),r.join("\n").toLowerCase()).includes(t)})(n.session,t)||e.length>0)&&r.push({...n,children:e})}return r}function f(e,t){let r=(e,n)=>{for(let i of e){if(i.session.id===t)return n;let e=r(i.children,[...n,i.session.id]);if(e)return e}return null};return r(e,[])??[]}function g(e){let t=[],r=e=>{for(let n of e)n.children.length>0&&t.push(n.session.id),n.children.length>0&&r(n.children)};return r(e),t}function x(e){let t="";for(let r of e)r.modified>t&&(t=r.modified);return t}function m(e,t){if(0===t.size)return[];let r=[];for(let n of e){let e=m(n.children,t);(t.has(n.session.id)||e.length>0)&&r.push({...n,children:e})}return r}function v(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(520,Math.max(240,Math.round(e))):300}function y(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(720,Math.max(320,Math.round(e))):400}function b(e){return"number"==typeof e&&Number.isFinite(e)?Math.min(960,Math.max(320,Math.round(e))):560}function j(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[r,n]of Object.entries(e)){let e=r.trim();if(!e||null===n||"object"!=typeof n||Array.isArray(n))continue;let i=Array.isArray(n.expanded)?n.expanded.filter(e=>"string"==typeof e):[],o="number"==typeof n.scrollTop&&Number.isFinite(n.scrollTop)&&n.scrollTop>0?Math.round(n.scrollTop):0;t[e]={expanded:i,scrollTop:o}}return t}let w={displayMode:"standard",collapsedProjectRoots:[],collapsedWorktreePaths:[],projectAliases:{},closedProjectRoots:[],addedProjectRoots:[],sidebarWidth:300,rightPanelOpen:!1,rightPanelWidth:400,changesPanelOpen:!0,changesPanelWidth:560,showRecentSessions:!0,fileExplorerState:{}},k="pidance:sidebar-preferences";function S(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e):[]}function C(e){return null===e||"object"!=typeof e?{...w,projectAliases:{},closedProjectRoots:[],collapsedProjectRoots:[],collapsedWorktreePaths:[]}:{displayMode:"compact"===e.displayMode||"standard"===e.displayMode?e.displayMode:w.displayMode,collapsedProjectRoots:S(e.collapsedProjectRoots),collapsedWorktreePaths:S(e.collapsedWorktreePaths),projectAliases:function(e){if(null===e||"object"!=typeof e||Array.isArray(e))return{};let t={};for(let[r,n]of Object.entries(e)){if("string"!=typeof n)continue;let e=r.trim(),i=n.trim();e&&i&&(t[e]=i)}return t}(e.projectAliases),closedProjectRoots:S(e.closedProjectRoots),addedProjectRoots:S(e.addedProjectRoots),sidebarWidth:v(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:y(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:b(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,fileExplorerState:j(e.fileExplorerState)}}function _(e){return JSON.stringify({displayMode:e.displayMode,collapsedProjectRoots:e.collapsedProjectRoots,collapsedWorktreePaths:e.collapsedWorktreePaths,projectAliases:e.projectAliases,closedProjectRoots:e.closedProjectRoots,addedProjectRoots:e.addedProjectRoots,sidebarWidth:v(e.sidebarWidth),rightPanelOpen:!0===e.rightPanelOpen,rightPanelWidth:y(e.rightPanelWidth),changesPanelOpen:!1!==e.changesPanelOpen,changesPanelWidth:b(e.changesPanelWidth),showRecentSessions:!1!==e.showRecentSessions,fileExplorerState:j(e.fileExplorerState)})}function R(e){try{let t=e.getItem(k);if(null===t)return C(null);try{return C(JSON.parse(t))}catch{return C(null)}}catch{return C(null)}}function I(){return R(window.localStorage)}function T(e){var t,r=window.localStorage;try{let n=R(r);r.setItem(k,_({...n,rightPanelOpen:void 0===e.open?n.rightPanelOpen:(t=e.open,!0===t),rightPanelWidth:void 0===e.width?n.rightPanelWidth:y(e.width)}))}catch{}}function M(e){var t,r=window.localStorage;try{let n=R(r);r.setItem(k,_({...n,changesPanelOpen:void 0===e.open?n.changesPanelOpen:(t=e.open,!1!==t),changesPanelWidth:void 0===e.width?n.changesPanelWidth:b(e.width)}))}catch{}}function z(e,t){var r=window.localStorage;try{let n=R(r),i=j(n.fileExplorerState);e.trim()&&(i[e]={expanded:j({[e]:t})[e]?.expanded??[],scrollTop:Math.max(0,Math.round(Number.isFinite(t.scrollTop)?t.scrollTop:0))}),r.setItem(k,_({...n,fileExplorerState:i}))}catch{}}let E="pidance.streamingEnterDefault",W="followUp";function L(e){return"steer"===e?"steer":"followUp"}function A(){var e=window.localStorage;try{let t=e.getItem(E);if(null===t)return W;try{return L(JSON.parse(t))}catch{return L(t)}}catch{return W}}let P="pidance.autoUpdateCheck";function $(e){return!1!==e&&0!==e&&"0"!==e&&"false"!==e}function H(){var e=window.localStorage;try{let t=e.getItem(P);if(null===t)return!0;try{return $(JSON.parse(t))}catch{return $(t)}}catch{return!0}}let D="pidance.sessionList.v1";function F(){try{let e=window.localStorage.getItem(D);if(!e)return null;let t=JSON.parse(e);if(!Array.isArray(t.sessions))return null;return t.sessions}catch{return null}}function N(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(D,JSON.stringify({sessions:t}))}catch{}}var O=r(99780);function B({cwd:e,tab:t}){let{t:r}=(0,O.s9)(),[o,a]=(0,i.useState)(null),[s,l]=(0,i.useState)(null),[d,c]=(0,i.useState)(!0),[u,p]=(0,i.useState)(!1),[h,f]=(0,i.useState)(null),[g,x]=(0,i.useState)(!1),[m,v]=(0,i.useState)(null),[y,b]=(0,i.useState)(""),[j,w]=(0,i.useState)(""),k=(0,i.useCallback)(async()=>{c(!0),f(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 r=await t.json();a(r.rulesContent??""),l(Array.isArray(r.skills)?r.skills:[])}catch(e){f(e instanceof Error?e.message:String(e))}finally{c(!1)}},[e]);(0,i.useEffect)(()=>{k()},[k]);let S=(0,i.useCallback)(async t=>{let r=await fetch("/api/project-assets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,...t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error??`HTTP ${r.status}`);return!0},[e]),C=(0,i.useCallback)(async()=>{if(null!==o){p(!0),f(null),x(!1);try{await S({kind:"rules",content:o}),x(!0),window.setTimeout(()=>x(!1),2e3)}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[o,S]),_=(0,i.useCallback)(async()=>{let e=j.trim();if(e){p(!0),f(null);try{await S({kind:"skill",action:"create",name:e}),w(""),await k()}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}}},[j,S,k]),R=(0,i.useCallback)(async e=>{p(!0),f(null);try{await S({kind:"skill",action:"update",name:e,content:y}),v(null),await k()}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}},[y,S,k]),I=(0,i.useCallback)(async e=>{p(!0),f(null);try{await S({kind:"skill",action:"toggle",name:e.name,enabled:!e.enabled}),await k()}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,k]),T=(0,i.useCallback)(async e=>{p(!0),f(null);try{await S({kind:"skill",action:"delete",name:e}),await k()}catch(e){f(e instanceof Error?e.message:String(e))}finally{p(!1)}},[S,k]),M={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,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)"},children:r("common_loading")}):(0,n.jsxs)("div",{children:[h&&(0,n.jsx)("div",{style:{fontSize:12,color:"var(--status-danger)",marginBottom:10,whiteSpace:"pre-wrap"},children:h}),"rules"===t?(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:8,fontFamily:"var(--font-mono)"},children:[e,"/AGENTS.md"]}),(0,n.jsx)("textarea",{value:o??"",onChange:e=>a(e.target.value),spellCheck:!1,"aria-label":r("projectAssets_rules"),style:M}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:10},children:[(0,n.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?r("common_saving"):r("common_save")}),g&&(0,n.jsx)("span",{style:{fontSize:12,color:"var(--accent)"},children:r("common_saved")})]})]}):(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",gap:8,marginBottom:12},children:[(0,n.jsx)("input",{type:"text",value:j,onChange:e=>w(e.target.value),placeholder:r("projectAssets_newSkillName"),"aria-label":r("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,n.jsx)("button",{type:"button",onClick:()=>void _(),disabled:u||!j.trim(),style:{minHeight:30,padding:"0 12px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:u||!j.trim()?"not-allowed":"pointer",fontSize:12,fontWeight:600,opacity:u||!j.trim()?.6:1},children:r("projectAssets_addSkill")})]}),s?.length===0?(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-dim)"},children:r("projectAssets_noSkills")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:(s??[]).map(e=>(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 10px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,n.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,n.jsxs)("label",{style:{display:"inline-flex",alignItems:"center",gap:5,fontSize:11,color:"var(--text-muted)",cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:()=>void I(e),disabled:u}),r("projectAssets_enabled")]}),(0,n.jsx)("button",{type:"button",onClick:()=>{v(e.name),b(e.content)},style:{fontSize:11,color:"var(--accent)",cursor:"pointer",background:"none",border:"none"},children:r("projectAssets_edit")}),(0,n.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:r("common_remove")})]}),m===e.name&&(0,n.jsxs)("div",{style:{padding:8},children:[(0,n.jsx)("textarea",{value:y,onChange:e=>b(e.target.value),spellCheck:!1,"aria-label":`${e.name} SKILL.md`,style:M}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,marginTop:8},children:[(0,n.jsx)("button",{type:"button",onClick:()=>void R(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?r("common_saving"):r("common_save")}),(0,n.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:r("common_cancel")})]})]})]},e.name))})]})]})}function U(e,t){let r=e[t];return"number"!=typeof r||!Number.isFinite(r)||r<5?5:Math.floor(r)}function q(e,t,r){if(r)return e;let n=Math.max(0,Math.floor(t));return n>=e.length?e:e.slice(0,n)}function K(e,t){let r=t.modified.localeCompare(e.modified);if(0!==r)return r;let n=t.created.localeCompare(e.created);return 0!==n?n:e.id.localeCompare(t.id)}function V(e,t){return e===t&&e>0}let J={status:"idle",worktrees:[]};function Y(e,t,r){var n;let i,o=e[t];switch(r.status){case"idle":i=J;break;case"loading":i={status:"loading",worktrees:o?.worktrees??[]};break;case"ready":i={status:"ready",worktrees:r.worktrees};break;case"error":i={status:"error",worktrees:r.worktrees??o?.worktrees??[],error:r.error}}return(n=i,o&&o.status===n.status&&(o.error??void 0)===(n.error??void 0)&&function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++){let n=e[r],i=t[r];if(n.path!==i.path||n.branch!==i.branch||n.isMain!==i.isMain)return!1}return!0}(o.worktrees,n.worktrees))?e:{...e,[t]:i}}let Z=(0,i.createContext)(null);function X({children:e,initial:t}){let r=(0,i.useRef)(null);return r.current||(r.current=function(e={}){let t=c({...d,...e.identity}),r=new Set,n=t,i=()=>r.forEach(e=>e());return{getIdentitySnapshot:()=>n,subscribeIdentity:e=>(r.add(e),()=>r.delete(e)),setIdentity:e=>{let r=void 0!==e.cwd&&void 0===e.projectRoot?{...e,projectRoot:e.cwd}:e,o=c({...t,...r});u(t,o)||(n=t=o,i())},reset:()=>{let e=!u(t,d);n=t=d,e&&i()}}}(t)),(0,n.jsx)(Z.Provider,{value:r.current,children:e})}function G(){let e=(0,i.useContext)(Z);if(!e)throw Error("useProjectIdentity/useProjectActions 必须在 ProjectProvider 内使用");return e}function Q(){let e=G();return(0,i.useSyncExternalStore)(e.subscribeIdentity,e.getIdentitySnapshot,e.getIdentitySnapshot)}var ee=r(47650);let et=0,er=null,en=[];function ei(e){return en.length>0&&en[en.length-1]===e}let eo=i.useLayoutEffect;function ea(){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 r=Number.isFinite(t.width)?Math.max(0,t.width):0,n=Number.isFinite(t.height)?Math.max(0,t.height):0;return r<=0||n<=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:r,height:n}}function es(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 el({open:e,onClose:t,title:r,description:o,children:a,actions:s,width:l=560,height:d,zIndex:c=1e3,closeOnBackdrop:u=!0,closeOnEsc:p=!0,initialFocusRef:h,headerActions:f,contentPadding:g="14px 18px",closeLabel:x="Close"}){let m=(0,i.useRef)(null),v=(0,i.useId)(),y=(0,i.useId)(),b=(0,i.useRef)(null);null===b.current&&(b.current=Symbol("ViewportDialog")),(0,i.useEffect)(()=>{if(e){var t;let e;return t=b.current,en.push(t),e=!1,()=>{if(e)return;e=!0;let r=en.lastIndexOf(t);r>=0&&en.splice(r,1)}}},[e]),(0,i.useEffect)(()=>{var t,r;if(!e)return;let n=document.activeElement,i=m.current,o=(t=h?.current,r=i?es(i):[],t??r[0]??i);return o?.focus({preventScroll:!0}),()=>{var e,t;let r=(e=n instanceof HTMLElement?n:null,t=e=>document.contains(e),null!==e&&t(e)?e:null);r?.focus({preventScroll:!0})}},[e,h]),(0,i.useEffect)(()=>{if(e){var t;let e;return t=document.body,0===et&&(er=t.style.overflow,t.style.overflow="hidden"),et+=1,e=!1,()=>{e||(e=!0,0==(et-=1)&&(t.style.overflow=er??"",er=null))}}},[e]),(0,i.useEffect)(()=>{if(!e)return;let r=b.current,n=e=>{let n=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:p,isTop:ei(r)});n.stopPropagation&&(e.stopPropagation(),n.preventDefault&&e.preventDefault(),n.close&&t())};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,p,t]),(0,i.useEffect)(()=>{if(!e)return;let t=b.current,r=e=>{if(!ei(t))return;let r=m.current;!r||!(e.target instanceof Node)||r.contains(e.target)||(es(r)[0]??r).focus({preventScroll:!0})};return document.addEventListener("focusin",r),()=>document.removeEventListener("focusin",r)},[e]);let[j,w]=(0,i.useState)(null),k=(0,i.useRef)(0),S=(0,i.useCallback)(()=>{let e=ea();w(t=>t&&t.top===e.top&&t.left===e.left&&t.width===e.width&&t.height===e.height?t:e)},[]);if(eo(()=>{if(!e)return void w(null);S();let t=()=>{k.current||(k.current=requestAnimationFrame(()=>{k.current=0,S()}))};window.addEventListener("resize",t);let r=window.visualViewport;return r?.addEventListener("resize",t),r?.addEventListener("scroll",t),()=>{window.removeEventListener("resize",t),r?.removeEventListener("resize",t),r?.removeEventListener("scroll",t),k.current&&(cancelAnimationFrame(k.current),k.current=0)}},[e,S]),!e||"u"<typeof document)return null;let C="number"==typeof l?`${l}px`:l,_=j??ea(),R=function(e,t=16){return{maxWidth:Math.max(0,e.width-2*t),maxHeight:Math.max(0,e.height-2*t)}}(_),I="number"==typeof l?Math.min(l,R.maxWidth):`min(${C}, ${R.maxWidth}px)`,T=void 0===d?void 0:"number"==typeof d?Math.min(d,R.maxHeight):`min(${d}, ${R.maxHeight}px)`;return(0,ee.createPortal)((0,n.jsx)("div",{onMouseDown:e=>{u&&e.target===e.currentTarget&&t()},style:{position:"fixed",top:_.top,left:_.left,width:_.width,height:_.height,zIndex:c,background:"rgba(0,0,0,0.35)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,overscrollBehavior:"contain"},children:(0,n.jsxs)("div",{ref:m,role:"dialog","aria-modal":"true","aria-labelledby":v,"aria-describedby":o?y:void 0,tabIndex:-1,onKeyDown:e=>{if("Tab"!==e.key)return;let t=m.current;if(!t)return;let r=function(e){let{focusable:t,active:r,shiftKey:n,panel:i,contains:o}=e;if(0===t.length)return{handled:!0,target:i};let a=t[0],s=t[t.length-1],l=null!==r&&o(r);if(n){if(r===a||!l)return{handled:!0,target:s}}else if(r===s||!l)return{handled:!0,target:a};return{handled:!1}}({focusable:es(t),active:document.activeElement,shiftKey:e.shiftKey,panel:t,contains:e=>t.contains(e)});r.handled&&(e.preventDefault(),r.target.focus({preventScroll:!0}))},style:{width:"100%",maxWidth:I,maxHeight:R.maxHeight,...void 0!==T?{height:T,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,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"12px 18px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("div",{id:v,style:{fontSize:15,fontWeight:700,color:"var(--text)",minWidth:0,flex:1},children:r}),f,(0,n.jsx)("button",{type:"button",onClick:t,"aria-label":x,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,n.jsx)("div",{id:y,style:{padding:"10px 18px",borderBottom:"1px solid var(--border)",fontSize:13,lineHeight:1.55,color:"var(--text-muted)",flexShrink:0},children:o}),a&&(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",overscrollBehavior:"contain",padding:g},children:a}),s&&(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"12px 18px",borderTop:"1px solid var(--border)",flexShrink:0},children:s})]})}),document.body)}let ed="pidance:unread-session-ids";function ec(e,t){let r=new Date(e),n=new Date().getTime()-r.getTime(),i=Math.floor(n/6e4),o=Math.floor(n/36e5),a=Math.floor(n/864e5);return i<1?t("sidebar_justNow"):i<60?t("sidebar_minutesAgo",{count:i}):o<24?t("sidebar_hoursAgo",{count:o}):a<7?t("sidebar_daysAgo",{count:a}):r.toLocaleDateString()}function eu({text:e,style:t}){return(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"block",minWidth:0,lineHeight:1.35,direction:"rtl",textAlign:"left",...t},children:(0,n.jsx)("span",{style:{unicodeBidi:"plaintext"},children:e})})}function ep({open:e,children:t,style:r}){let[o,a]=(0,i.useState)(e),[s,l]=(0,i.useState)(e);return((0,i.useEffect)(()=>{let t,r;return e?(a(!0),l(!1),t=window.requestAnimationFrame(()=>{t=window.requestAnimationFrame(()=>l(!0))})):(l(!1),r=setTimeout(()=>a(!1),140)),()=>{void 0!==t&&window.cancelAnimationFrame(t),r&&clearTimeout(r)}},[e]),o)?(0,n.jsx)("div",{style:{...r,opacity:+!!s,transform:s?"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 ef(){let[e,t]=(0,i.useState)(!1),[r,o]=(0,i.useState)(!1),a=(0,i.useRef)(null),s=function(e,t){let[r,n]=(0,i.useState)(e),o=(0,i.useRef)(null),a=(0,i.useRef)(0);return(0,i.useEffect)(()=>{if(!t)return void n(e);a.current=0;let r=4*e.length,i=()=>{a.current+=1;let t=Math.floor(a.current/r*e.length);n(e.split("").map((e,r)=>" "===e?" ":r<t?e:eh[Math.floor(Math.random()*eh.length)]).join("")),a.current<r?o.current=requestAnimationFrame(i):n(e)};return o.current=requestAnimationFrame(i),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t]),r}(e?"0.2.1pexternal":"Pidance",r),l=(0,i.useCallback)(e=>{t(e),o(!0),setTimeout(()=>o(!1),(e?6:8)*4*(1e3/60)+100)},[]),d=(0,i.useCallback)(()=>{a.current&&clearTimeout(a.current);let t=!e;l(t),t&&(a.current=setTimeout(()=>l(!1),3e3))},[e,l]);return(0,i.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),(0,n.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:s})}function eg({label:e,onClick:t,disabled:r=!1,active:i=!1,danger:o=!1,done:a=!1,hoverReveal:s=!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"),a&&h.push("sidebar-icon-btn--done"),s&&h.push("sidebar-icon-btn--hover"),(0,n.jsx)("button",{type:"button",ref:u,onClick:t,disabled:r,"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,n.jsxs)("svg",{...ex(e),children:[(0,n.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,n.jsx)("path",{d:"M12 10v6"}),(0,n.jsx)("path",{d:"M9 13h6"})]}),ev=({size:e=14})=>(0,n.jsx)("svg",{...ex(e),children:(0,n.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,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,n.jsx)("path",{d:"M3 4v5h5"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}),eb=({size:e=18})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("rect",{x:"2",y:"3",width:"20",height:"5",rx:"1"}),(0,n.jsx)("path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8"}),(0,n.jsx)("path",{d:"M10 12h4"})]}),ej=({size:e=18})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.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,n.jsx)("path",{d:"M12 7v6"}),(0,n.jsx)("path",{d:"M9 10h6"})]}),ew=({size:e=18})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,n.jsx)("path",{d:"m21 21-4.3-4.3"})]}),ek=({size:e=18})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("line",{x1:"21",x2:"14",y1:"4",y2:"4"}),(0,n.jsx)("line",{x1:"10",x2:"3",y1:"4",y2:"4"}),(0,n.jsx)("line",{x1:"21",x2:"12",y1:"12",y2:"12"}),(0,n.jsx)("line",{x1:"8",x2:"3",y1:"12",y2:"12"}),(0,n.jsx)("line",{x1:"21",x2:"16",y1:"20",y2:"20"}),(0,n.jsx)("line",{x1:"12",x2:"3",y1:"20",y2:"20"}),(0,n.jsx)("line",{x1:"14",x2:"14",y1:"2",y2:"6"}),(0,n.jsx)("line",{x1:"8",x2:"8",y1:"10",y2:"14"}),(0,n.jsx)("line",{x1:"16",x2:"16",y1:"18",y2:"22"})]}),eS=({size:e=14})=>(0,n.jsx)("svg",{...ex(e),children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}),eC=({size:e=15})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),(0,n.jsx)("polyline",{points:"9 22 9 12 15 12 15 22"})]}),e_=({size:e=14})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,n.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),eR=({size:e=12})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),eI=({size:e=14})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("path",{d:"M15.5 17.5h5"}),(0,n.jsx)("path",{d:"M18 15v5"})]}),eT=({size:e=13})=>(0,n.jsxs)("svg",{...ex(e),children:[(0,n.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,n.jsx)("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),(0,n.jsx)("path",{d:"M10 11v6M14 11v6"}),(0,n.jsx)("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),eM=({size:e=13})=>(0,n.jsx)("svg",{...ex(e),children:(0,n.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,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"5",r:"1.7"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1.7"}),(0,n.jsx)("circle",{cx:"12",cy:"19",r:"1.7"})]});function eE({collapsed:e,label:t,left:r,onClick:i}){return(0,n.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:r,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,n.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,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})}function eW({primary:e=!1,danger:t=!1,disabled:r=!1,onClick:i,children:o}){let a=e||t;return(0,n.jsx)("button",{type:"button",onClick:i,disabled:r,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:a?"none":"1px solid var(--border)",borderRadius:7,color:a?"#fff":"var(--text-muted)",cursor:r?"not-allowed":"pointer",fontSize:12,fontWeight:a?600:500,opacity:r?.55:1,whiteSpace:"nowrap"},children:o})}function eL({label:e,checked:t,onClick:r}){return(0,n.jsxs)("button",{type:"button",onClick:r,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,n.jsx)("span",{style:{color:"var(--accent)",display:"flex",flexShrink:0},children:(0,n.jsx)(eS,{size:11})}):(0,n.jsx)("span",{style:{width:11,flexShrink:0}}),e]})}function eA({icon:e,label:t,onClick:r}){return(0,n.jsxs)("button",{type:"button",role:"menuitem",onClick:r,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,n.jsx)("span",{style:{display:"flex",flexShrink:0,color:"var(--text-dim)"},"aria-hidden":"true",children:e}),t]})}function eP({groupKey:e,total:t,visibleCount:r,searchActive:i,onShowMore:o,onShowFewer:a}){let{t:s}=(0,O.s9)(),l=!i&&t>Math.max(0,Math.floor(r)),d=!i&&Math.floor(r)>5;return l||d?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 8px 5px 28px"},children:[l&&(0,n.jsxs)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>o(e),children:[s("sidebar_showMore"),(0,n.jsxs)("span",{"aria-hidden":"true",children:["+",5]})]}),d&&(0,n.jsx)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>a(e),children:s("sidebar_showFewer")})]}):null}function e$({size:e=14}){let{t}=(0,O.s9)();return(0,n.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,n.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 eH({startedAt:e,now:t,running:r}){let{t:i}=(0,O.s9)();return r?(0,n.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,n.jsx)("span",{children:void 0!==e?function(e,t){let r,n,{hours:i,minutes:o,seconds:a}=(n=Math.floor((r=Math.max(0,Math.floor(e/1e3)))/3600),{hours:n,minutes:Math.floor(r%3600/60),seconds:r%60});return i>0?t("sidebar_runningHoursMinutes",{h:i,m:o}):o>0?t("sidebar_runningMinutesSeconds",{m:o,s:a}):t("sidebar_runningSeconds",{s:a})}(Math.max(0,t-e),i):i("sidebar_running")})}):null}function eD({size:e=14}){let{t}=(0,O.s9)();return(0,n.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,n.jsx)("span",{"aria-hidden":"true",style:{display:"block",width:6,height:6,borderRadius:"50%",background:"currentColor"}})})}let eF=(0,i.createContext)({startedAt:new Map,now:Date.now()}),eN={readOnly:!1,canPrompt:!0,canFork:!0,canCompact:!0,canChangeModel:!0,canChangeThinking:!0,canChangeTools:!0,canRename:!0,canAutoName:!0,canDelete:!0,canConnectEvents:!0,canSendSessionCommands:!0},eO={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 eB(e){return e?.readOnly===!0?eO:eN}function eU(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 eq(e){return`/api/sessions/${encodeURIComponent(e)}/export`}function eK({open:e,onOpenChange:t,projectName:r,onEdit:o,onClose:a}){let{t:s}=(0,O.s9)(),l=(0,i.useRef)(null),d=(0,i.useRef)(null),c=(0,i.useRef)(null),u=(0,i.useCallback)(e=>{t(!1),e&&d.current?.focus()},[t]);return(0,i.useEffect)(()=>{if(!e)return;let r=e=>{l.current&&!l.current.contains(e.target)&&t(!1)};return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[e,t]),(0,i.useEffect)(()=>{if(!e)return;let t=requestAnimationFrame(()=>{c.current?.querySelector("[role='menuitem']")?.focus()});return()=>cancelAnimationFrame(t)},[e]),(0,n.jsxs)("div",{ref:l,style:{position:"relative",flexShrink:0,display:"flex"},onClick:e=>e.stopPropagation(),onKeyDown:t=>{"Escape"===t.key&&e&&(t.stopPropagation(),t.preventDefault(),u(!0))},children:[(0,n.jsx)(eg,{label:s("sidebar_projectMenuLabel",{project:r}),active:e,expanded:e,haspopup:"menu",hoverReveal:!0,buttonRef:d,onClick:r=>{r.stopPropagation(),t(!e)},children:(0,n.jsx)(ez,{size:14})}),(0,n.jsx)(ep,{open:e,style:{position:"absolute",top:"calc(100% + 4px)",right:0,zIndex:100,background:"var(--bg-elevated)",border:"1px solid var(--border)",borderRadius:"var(--radius-md)",boxShadow:"var(--shadow-float)",overflow:"hidden",minWidth:148},children:(0,n.jsxs)("div",{ref:c,role:"menu","aria-label":s("sidebar_projectMenuLabel",{project:r}),children:[(0,n.jsx)(eA,{icon:(0,n.jsx)(eM,{size:13}),label:s("sidebar_editProject"),onClick:()=>{u(!0),o()}}),(0,n.jsx)(eA,{icon:(0,n.jsx)(e_,{size:13}),label:s("sidebar_closeProject"),onClick:()=>{u(!0),a()}})]})})]})}function eV({session:e,title:t,canRename:r,canDelete:o,canArchive:a,archiveDisabledReason:s,onRename:l,onDelete:d,onArchive:c}){var u;let p,{t:h}=(0,O.s9)(),[f,g]=(0,i.useState)(!1),[x,m]=(0,i.useState)(null),v=(0,i.useRef)(null),y=(0,i.useRef)(null),b=h("sidebar_sessionMenuLabel",{session:t}),j=(0,i.useCallback)((e=!1)=>{g(!1),e&&v.current?.focus()},[]);(0,i.useEffect)(()=>{if(!f)return;let e=e=>{let t=e.target;y.current?.contains(t)||v.current?.contains(t)||j()},t=()=>j();document.addEventListener("mousedown",e),window.addEventListener("resize",t),window.addEventListener("scroll",t,!0);let r=requestAnimationFrame(()=>y.current?.querySelector("[role='menuitem']")?.focus());return()=>{cancelAnimationFrame(r),document.removeEventListener("mousedown",e),window.removeEventListener("resize",t),window.removeEventListener("scroll",t,!0)}},[j,f]);let w={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"},k={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)"}},S=e=>(0,n.jsx)("span",{"aria-hidden":"true",style:{display:"flex",color:"var(--text-dim)"},children:e});return(0,n.jsxs)("div",{style:{display:"flex",flexShrink:0},onClick:e=>e.stopPropagation(),onKeyDown:e=>{"Escape"===e.key&&f&&(e.preventDefault(),j(!0))},children:[(0,n.jsx)(eg,{label:b,active:f,expanded:f,haspopup:"menu",hoverReveal:!0,buttonRef:v,onClick:e=>{e.stopPropagation(),(()=>{if(f)return j();let e=v.current?.getBoundingClientRect();e&&m({top:e.bottom+4+212<=window.innerHeight?e.bottom+4:Math.max(8,e.top-212-4),right:Math.max(8,window.innerWidth-e.right)}),g(!0)})()},children:(0,n.jsx)(ez,{size:14})}),f&&x&&(0,n.jsxs)("div",{ref:y,role:"menu","aria-label":b,style:{position:"fixed",top:x.top,right:x.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:[r&&(0,n.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{j(),l()},children:[S((0,n.jsx)(eM,{size:13})),h("sidebar_renameSession")]}),(0,n.jsxs)("button",{type:"button",role:"menuitem",style:w,...k,onClick:()=>{j(),eU(e.id)},children:[S((0,n.jsxs)("svg",{...ex(13),children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})),h("sidebar_copySessionId")]}),(a||null!==s)&&(0,n.jsxs)("button",{type:"button",role:"menuitem",disabled:!a,title:a?void 0:s??void 0,style:{...w,opacity:a?1:.45,cursor:a?"pointer":"not-allowed"},onClick:()=>{a&&(j(),c())},children:[S((0,n.jsx)(eb,{size:13})),h("sidebar_archiveSession")]}),"string"==typeof e?.id&&e.id.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("a",{role:"menuitem",href:eq(e.id),download:!0,style:w,...k,onClick:()=>j(),children:[S((0,n.jsxs)("svg",{...ex(13),children:[(0,n.jsx)("path",{d:"M12 3v12"}),(0,n.jsx)("path",{d:"m7 10 5 5 5-5"}),(0,n.jsx)("path",{d:"M5 21h14"})]})),h("sidebar_exportSessionHtml")]}),(0,n.jsxs)("a",{role:"menuitem",href:(u=e.id,p=new URLSearchParams({format:"jsonl"}),`${eq(u)}?${p.toString()}`),download:!0,style:w,...k,onClick:()=>j(),children:[S((0,n.jsxs)("svg",{...ex(13),children:[(0,n.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,n.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"})]})),h("sidebar_exportSessionJsonl")]})]}),o&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{height:1,margin:"4px 6px",background:"var(--border)"}}),(0,n.jsxs)("button",{type:"button",role:"menuitem",style:{...w,color:"var(--status-danger)"},onClick:()=>{j(),d()},children:[S((0,n.jsx)(eT,{size:13})),h("sidebar_deleteSession")]})]})]})]})}function eJ({project:e,homeDir:t,displayMode:r,projectAliases:i,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,collapsedProjectRoots:c,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleProject:f,onToggleWorktree:g,onNewSession:x,onSelectSession:m,menuOpen:v,onMenuOpenChange:y,onEditProject:b,onCloseProject:j,onRenamed:w,onSessionDeleted:k,onToggleCollapse:S,groupVisibleCounts:C,onShowMore:_,onShowFewer:R,worktreeActions:I,wtNewOpen:T,wtNewBranch:M,wtError:z,wtConfirmRemove:E,wtNewInputRef:W,onStartCreateWorktree:L,onWtNewBranchChange:A,onSubmitCreateWorktree:P,onCancelCreateWorktree:$,onRequestRemoveWorktree:H,onConfirmRemoveWorktree:D,onCancelRemoveWorktree:F,onSessionArchive:N}){var B;let{t:K}=(0,O.s9)(),V=(B=e.root,!h&&c.has(B)),J=e.mainTree.length>0||e.worktrees.some(e=>e.tree.length>0),Y=i[e.root]??l(e.root,t),Z=K(V?"sidebar_expandProjectNamed":"sidebar_collapseProjectNamed",{project:Y});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!V,"aria-label":Z,onClick:()=>f(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(),f(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,n.jsx)(eE,{collapsed:V,label:Z,left:6,onClick:t=>{t.stopPropagation(),f(e.root)}}),(0,n.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,n.jsx)(ev,{size:13})}),(0,n.jsx)(eu,{text:Y,style:{flex:1,fontSize:12.5,fontWeight:600,fontFamily:"var(--font-mono)"}}),(0,n.jsx)(eg,{label:K("sidebar_newSessionIn",{project:Y}),hoverReveal:!0,onClick:t=>{t.stopPropagation(),x(e.root)},children:(0,n.jsx)(ej,{size:14})}),I&&(0,n.jsx)(eg,{label:I.createHint,disabled:!I.canManage||I.busy,hoverReveal:!0,onClick:e=>{e.stopPropagation(),L()},children:(0,n.jsx)(eI,{size:14})}),(0,n.jsx)(eK,{open:v,onOpenChange:y,projectName:Y,onEdit:b,onClose:j})]}),!V&&(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[q(e.mainTree,U(C,`main:${e.root}`),h).map(e=>(0,n.jsx)(eZ,{node:e,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,onSelectSession:m,onRenamed:w,onSessionDeleted:k,onSessionArchive:N,depth:0,collapsedSessionIds:p,searchActive:h,onToggleCollapse:S,displayMode:r},e.session.id)),(0,n.jsx)(eP,{groupKey:`main:${e.root}`,total:e.mainTree.length,visibleCount:U(C,`main:${e.root}`),searchActive:h,onShowMore:_,onShowFewer:R})]}),e.worktrees.map(e=>(0,n.jsx)(eY,{group:e,homeDir:t,displayMode:r,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,collapsedWorktreePaths:u,collapsedSessionIds:p,searchActive:h,onToggleWorktree:e=>g(e),onNewSession:()=>x(e.path),onSelectSession:m,onRenamed:w,onSessionDeleted:k,onToggleCollapse:S,visibleCount:U(C,`worktree:${e.path}`),onShowMore:()=>_(`worktree:${e.path}`),onShowFewer:()=>R(`worktree:${e.path}`),worktreeActions:I,confirmRemove:E===e.path,onRequestRemove:()=>H(e.path),onConfirmRemove:()=>D(e.path),onCancelRemove:F,onSessionArchive:N},e.path)),T&&I?.canManage&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px 4px 30px"},children:[(0,n.jsx)("span",{style:{display:"flex",color:"var(--text-dim)",flexShrink:0},children:(0,n.jsx)(eR,{size:11})}),(0,n.jsx)("input",{ref:W,value:M,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,n.jsx)(eg,{label:K(I.busy?"sidebar_creating":"sidebar_createWorktreeAction"),disabled:I.busy||!M.trim(),onClick:P,children:(0,n.jsx)(eS,{size:14})}),(0,n.jsx)(eg,{label:K("sidebar_cancel"),onClick:$,children:(0,n.jsx)(e_,{size:13})})]}),z&&I&&(0,n.jsx)("div",{style:{padding:"3px 10px 6px 30px",color:"var(--status-danger)",fontSize:11,lineHeight:1.35,overflowWrap:"anywhere"},children:z}),!J&&0===e.worktrees.length&&(0,n.jsx)("div",{style:{padding:"2px 10px 6px 31px",color:"var(--text-dim)",fontSize:11},children:K("sidebar_noSessionsYet")})]})]})}function eY({group:e,homeDir:t,displayMode:r,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,collapsedWorktreePaths:c,collapsedSessionIds:u,searchActive:p,onToggleWorktree:h,onNewSession:f,onSelectSession:g,onRenamed:x,onSessionDeleted:m,onToggleCollapse:v,visibleCount:y,onShowMore:b,onShowFewer:j,worktreeActions:w,confirmRemove:k,onRequestRemove:S,onConfirmRemove:C,onCancelRemove:_,onSessionArchive:R}){var I;let{t:T}=(0,O.s9)(),M=(I=e.path,!p&&c.has(I)),z=e.branch??l(e.path,t),E=T(M?"sidebar_expandWorktreeNamed":"sidebar_collapseWorktreeNamed",{name:z}),W=(0,i.useMemo)(()=>{let t=new Set([...a,...s]),r=e=>e.some(e=>t.has(e.session.id)||r(e.children));return r(e.tree)},[e,a,s]);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"sidebar-row","data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":!M,"aria-label":E,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,n.jsx)(eE,{collapsed:M,label:E,left:6,onClick:t=>{t.stopPropagation(),h(e.path)}}),(0,n.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,n.jsx)(eR,{size:11})}),W&&(0,n.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,n.jsx)(e$,{size:18})}),(0,n.jsx)(eu,{text:z,style:{flex:1,fontSize:12,fontWeight:400,fontFamily:"var(--font-mono)"}}),W&&(0,n.jsx)(e$,{size:10}),(0,n.jsx)(eg,{label:T("sidebar_newSessionIn",{project:z}),hoverReveal:!0,onClick:e=>{e.stopPropagation(),f()},children:(0,n.jsx)(ej,{size:13})}),w?.canManage&&!k&&(0,n.jsx)(eg,{label:T("sidebar_removeWorktreeAt",{path:e.path}),danger:!0,hoverReveal:!0,disabled:w.busy,onClick:e=>{e.stopPropagation(),S()},children:(0,n.jsx)(eT,{size:13})})]}),k&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"5px 8px 5px 30px",background:"var(--status-danger-bg)"},children:[(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:11,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:T("sidebar_dirtyWorktreeConfirm")}),(0,n.jsx)("button",{type:"button",onClick:C,disabled:w?.busy,style:{padding:"3px 9px",background:"var(--status-danger)",border:"none",borderRadius:5,color:"#fff",fontSize:11,fontWeight:600,cursor:"pointer",flexShrink:0},children:T("sidebar_forceRemove")}),(0,n.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:T("sidebar_cancel")})]}),!M&&(0,n.jsxs)("div",{children:[q(e.tree,y,p).map(e=>(0,n.jsx)(eZ,{node:e,selectedSessionId:o,runningSessionIds:a,subagentRunningIds:s,unreadSessionIds:d,onSelectSession:g,onRenamed:x,onSessionDeleted:m,onSessionArchive:R,depth:0,collapsedSessionIds:u,searchActive:p,onToggleCollapse:v,displayMode:r},e.session.id)),(0,n.jsx)(eP,{groupKey:e.path,total:e.tree.length,visibleCount:y,searchActive:p,onShowMore:b,onShowFewer:j}),0===e.tree.length&&(0,n.jsx)("div",{style:{padding:"2px 10px 5px 28px",color:"var(--text-dim)",fontSize:11},children:T("sidebar_noSessions")})]})]})}function eZ({node:e,selectedSessionId:t,runningSessionIds:r,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:a,onRenamed:s,onSessionDeleted:l,onSessionArchive:d,depth:c,collapsedSessionIds:u,searchActive:p,onToggleCollapse:h,displayMode:f}){var g;let x=e.children.length>0,m=(g=e.session.id,!p&&u.has(g));return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{"data-session-id":e.session.id,style:{position:"relative"},children:(0,n.jsx)(eX,{session:e.session,relation:e.relation,isSelected:e.session.id===t,isRunning:r.has(e.session.id)||i.has(e.session.id),isUnread:!e.session.subagent&&o.has(e.session.id),onClick:()=>a(e.session),onRenamed:s,onDeleted:e=>l?.(e),onArchive:e=>d?.(e),depth:c,hasChildren:x,collapsed:m,onToggleCollapse:()=>h(e.session.id),displayMode:f})}),x&&!m&&(0,n.jsx)("div",{children:e.children.map(e=>(0,n.jsx)(eZ,{node:e,selectedSessionId:t,runningSessionIds:r,subagentRunningIds:i,unreadSessionIds:o,onSelectSession:a,onRenamed:s,onSessionDeleted:l,onSessionArchive:d,depth:c+1,collapsedSessionIds:u,searchActive:p,onToggleCollapse:h,displayMode:f},e.session.id))})]})}function eX({session:e,relation:t=null,isSelected:r,isRunning:o,isUnread:a,onClick:s,onRenamed:l,onDeleted:d,onArchive:c,depth:u=0,hasChildren:p=!1,collapsed:h=!1,onToggleCollapse:f,displayMode:g}){let{t:x}=(0,O.s9)(),[m,v]=(0,i.useState)(!1),[y,b]=(0,i.useState)(!1),[j,w]=(0,i.useState)(""),[k,S]=(0,i.useState)(!1),[C,_]=(0,i.useState)(!1),R=(0,i.useRef)(null),I=eB(e),T=!0===o,M=!T&&!1===eB(e).readOnly,z=M?null:x(T?"archive_rowDisabledRunning":"archive_rowDisabledReadOnly"),E=(0,i.useContext)(eF),W=e.id?E.startedAt.get(e.id):void 0,L=!0===o&&!(p&&h),A=e.firstMessage.trim(),P=e.subagent&&(!A||"(no messages)"===A)?`${e.subagent.agent?`${e.subagent.agent} \xb7 `:""}${x("sidebar_runCount",{count:e.subagent.runIndex})}`:"",$="(no messages)"===A?x("sidebar_noMessages"):e.firstMessage,H=e.name||P||$.slice(0,50)||e.id.slice(0,12),D=(0,i.useCallback)(()=>{I.canRename&&(w(e.name??""),b(!0),setTimeout(()=>R.current?.select(),0))},[e.name,I.canRename]),F=(0,i.useCallback)(async()=>{if(!I.canRename)return void b(!1);let t=j.trim();if(b(!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,I.canRename]),N=(0,i.useCallback)(()=>{I.canDelete&&S(!0)},[I.canDelete]),B=(0,i.useCallback)(async()=>{if(!I.canDelete)return void S(!1);S(!1),_(!0);try{await fetch(`/api/sessions/${encodeURIComponent(e.id)}`,{method:"DELETE"}),d?.(e.id)}catch{_(!1)}},[e.id,d,I.canDelete]),U=(0,i.useCallback)(()=>{S(!1)},[]),q="compact"===g,K=q?30:40;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sidebar-row","data-sidebar-depth":u,onClick:y?void 0:s,onMouseEnter:()=>v(!0),onMouseLeave:()=>{v(!1)},style:{height:K,display:"flex",alignItems:"center",width:"calc(100% - 12px)",margin:"1px 6px",position:"relative",paddingLeft:32+14*u,paddingRight:8,borderRadius:6,cursor:y?"default":"pointer",background:r?"var(--bg-selected)":m?"var(--bg-hover)":"transparent",borderLeft:r?"2px solid var(--accent)":"2px solid transparent",transition:"background 0.15s ease, color 0.15s ease",opacity:C?.5:1,gap:6,overflow:"hidden"},children:y?(0,n.jsx)("input",{ref:R,value:j,onChange:e=>w(e.target.value),onBlur:F,onKeyDown:e=>{"Enter"===e.key&&F(),"Escape"===e.key&&b(!1)},autoFocus:!0,"aria-label":x("sidebar_renameSession"),style:{flex:1,fontSize:q?11:12,padding:"0 8px",border:"1px solid var(--accent)",borderRadius:5,outline:"none",background:"var(--bg)",color:"var(--text)",height:q?20:28}}):(0,n.jsxs)(n.Fragment,{children:[p?(0,n.jsx)("button",{type:"button",className:"sidebar-chevron-btn sidebar-indent-indicator sidebar-chevron-always",onClick:e=>{e.stopPropagation(),f?.()},title:x(h?"sidebar_expandChild":"sidebar_collapseChild"),"data-tooltip":x(h?"sidebar_expandChild":"sidebar_collapseChild"),"aria-label":x(h?"sidebar_expandChild":"sidebar_collapseChild"),style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:6+14*u,top:"50%",width:20,height:20,padding:0,background:"none",border:"none",borderRadius:5,color:"var(--text-dim)",cursor:"pointer",transform:`translateY(-50%)${h?" rotate(-90deg)":""}`,transition:"transform 0.15s"},children:(0,n.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,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})}):(0,n.jsx)("span",{className:"sidebar-indent-placeholder","aria-hidden":"true",style:{position:"absolute",left:6+14*u,top:"50%",width:20,height:20,transform:"translateY(-50%)"}}),o&&(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",left:6+14*u,top:"50%",display:"flex",width:20,height:20,alignItems:"center",justifyContent:"center",transform:"translateY(-50%)",pointerEvents:"none"},children:(0,n.jsx)(e$,{size:18})}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:5,minWidth:0,fontSize:q?11.5:12,fontWeight:400,lineHeight:1.4,color:r?"var(--accent-hover)":"var(--text)"},title:H,children:[!o&&a&&(0,n.jsx)(eD,{size:10}),L&&q&&(0,n.jsx)(eH,{startedAt:W,now:E.now,running:!0}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:H}),q&&e.subagent&&(0,n.jsx)("span",{title:`${x("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${x("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:x("sidebar_subagentBadge")})]}),!q&&(0,n.jsxs)("div",{style:{marginTop:1,display:"flex",alignItems:"center",gap:8,color:"var(--text-dim)",fontSize:10.5,minWidth:0},children:[L&&(0,n.jsx)(eH,{startedAt:W,now:E.now,running:!0}),(0,n.jsx)("span",{title:e.modified,children:ec(e.modified,x)}),(0,n.jsx)("span",{children:x("sidebar_messagesCount",{count:e.messageCount})}),e.subagent&&(0,n.jsxs)("span",{title:`${x("sidebar_subagentReadOnly")}${e.subagent.agent?` \xb7 ${e.subagent.agent}`:""} \xb7 ${x("sidebar_runCount",{count:e.subagent.runIndex})}`,style:{display:"flex",alignItems:"center",gap:4,color:"var(--text-muted)",minWidth:0,overflow:"hidden"},children:[(0,n.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:x("sidebar_subagentBadge")}),(0,n.jsxs)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:10},children:[e.subagent.agent?`${e.subagent.agent} \xb7 `:"",x("sidebar_runCount",{count:e.subagent.runIndex})]})]}),e.worktreeBranch&&(0,n.jsxs)("span",{title:x("sidebar_worktreeTooltip",{path:e.cwd}),style:{display:"flex",alignItems:"center",gap:3,color:"var(--accent)",minWidth:0,overflow:"hidden"},children:[(0,n.jsx)(eR,{size:9}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.worktreeBranch})]})]})]}),(0,n.jsx)(eV,{session:e,title:H,canRename:I.canRename,canDelete:I.canDelete,canArchive:M,archiveDisabledReason:z,onRename:D,onDelete:N,onArchive:()=>c?.(e.id)})]})}),(0,n.jsx)(el,{open:k,onClose:U,title:x("sidebar_deleteSession"),description:x("sidebar_deleteConfirm",{name:H}),width:400,closeLabel:x("dialog_close"),actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eW,{onClick:U,children:x("sidebar_cancel")}),(0,n.jsx)(eW,{danger:!0,onClick:()=>void B(),children:x("sidebar_deleteSession")})]})})]})}async function eG(e,t,r){try{let n=await r(e,t),i=await n.json().catch(()=>({}));return{ok:n.ok,status:n.status,error:i.error}}catch(e){return{ok:!1,status:0,error:e instanceof Error?e.message:String(e)}}}function eQ(e){if(!e.archivedAt)return-1/0;let t=Date.parse(e.archivedAt);return Number.isNaN(t)?-1/0:t}function e0(e,t=60){let r=e.name?.trim()||e.firstMessage.trim()||e.id;return r.length<=t?r:`${r.slice(0,t)}…`}function e1(e){return e.ok?"other":409===e.status?"running":403===e.status?"readOnly":0===e.status?"network":"other"}function e2({sessions:e,count:t,homeDir:r,loading:o,onRefresh:a,onBack:s}){let{t:d}=(0,O.s9)(),[c,u]=(0,i.useState)(null),[p,h]=(0,i.useState)({sessionId:null}),[f,g]=(0,i.useState)(null);(0,i.useEffect)(()=>{a()},[a]);let x=(0,i.useCallback)(e=>{let t=e1(e);return"running"===t?d("archive_runningConflict"):"readOnly"===t?d("archive_readOnlyForbidden"):"network"===t?d("archive_networkError"):e.error??d("archive_unknownError")},[d]),m=(0,i.useCallback)(async e=>{if(null===c){u(e.id),g(null);try{let t=await function(e,t=fetch){return eG(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void g(d("archive_restoreFailed",{error:x(t)}));a()}catch(e){g(d("archive_restoreFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,a,d,x]),v=(0,i.useCallback)(async e=>{if(null===c){u(e.id),g(null);try{let t=await function(e,t=fetch){return eG(`/api/sessions/${encodeURIComponent(e)}`,{method:"DELETE"},t)}(e.id);if(!t.ok)return void g(d("archive_deleteFailed",{error:x(t)}));h({sessionId:null}),a()}catch(e){g(d("archive_deleteFailed",{error:e instanceof Error?e.message:String(e)}))}finally{u(null)}}},[c,a,d,x]),y=[...e].sort((e,t)=>{let r=eQ(e),n=eQ(t);return r===n?0:r===-1/0?1:n===-1/0?-1:n-r}),b=p.sessionId?y.find(e=>e.id===p.sessionId)??null:null,j=b?e0(b):"",w=!!b&&c===b.id;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsx)("button",{type:"button",onClick:s,"data-tooltip":d("archive_back"),"aria-label":d("archive_back"),className:"sidebar-icon-btn",style:{display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,n.jsx)(e_,{size:14})}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,fontSize:12.5,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:d("archive_viewTitle")}),(0,n.jsx)("span",{title:d("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})]}),f&&(0,n.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:f}),(0,n.jsxs)("div",{style:{flex:"1 1 auto",overflowY:"auto",padding:"4px 0",minHeight:80},children:[o&&0===y.length&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:d("sidebar_loading")}),!o&&0===y.length&&(0,n.jsxs)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.7},children:[d("archive_empty"),(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:d("archive_emptyHint")})]}),y.map(e=>{let t=e0(e),i=c===e.id;return(0,n.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,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{title:t,style:{fontSize:12,fontWeight:500,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4},children:t}),(0,n.jsxs)("div",{style:{fontSize:10.5,color:"var(--text-dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:1.4,marginTop:1},children:[l(e.cwd,r)," \xb7 ",d("archive_archivedAt",{date:ec(e.archivedAt??e.modified,d)})]})]}),(0,n.jsx)("button",{type:"button",disabled:i,onClick:()=>void m(e),title:d("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?d("archive_restoring"):d("archive_restore")}),(0,n.jsx)("button",{type:"button",disabled:i,onClick:()=>h({sessionId:e.id}),title:d("archive_delete"),"aria-label":d("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,n.jsx)(eT,{size:13})})]},e.id)})]}),(0,n.jsx)(el,{open:null!==b,onClose:()=>{w||h({sessionId:null})},title:d("archive_delete"),description:b?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{fontWeight:600,color:"var(--text)",marginBottom:4},children:j}),(0,n.jsx)("div",{children:d("archive_deleteConfirm")})]}):d("archive_deleteConfirm"),width:400,closeLabel:d("dialog_close"),closeOnBackdrop:!w,closeOnEsc:!w,actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eW,{disabled:w,onClick:()=>h({sessionId:null}),children:d("archive_deleteCancel")}),(0,n.jsx)(eW,{danger:!0,disabled:w||!b,onClick:()=>{b&&v(b)},children:w?d("archive_deleting"):d("archive_deleteConfirmButton")})]})})]})}function e4({selectedSessionId:e,onSelectSession:t,onNewSession:r,initialSessionId:o,skipInitialProjectSelection:a,onInitialRestoreDone:d,refreshKey:c,onSessionDeleted:u,onProjectAdded:v,optimisticSessions:y,clientRunningSessionId:b}){let{t:j}=(0,O.s9)(),[w,S]=(0,i.useState)([]),C=(0,i.useRef)([]),[R,T]=(0,i.useState)(()=>new Map),[M,z]=(0,i.useState)(()=>new Set),[E,W]=(0,i.useState)(()=>new Set),[L,A]=(0,i.useState)(!0),[P,$]=(0,i.useState)(null),H=(0,i.useRef)(0),{cwd:D,projectRoot:q}=Q(),{setIdentity:J}=G(),[Z,X]=(0,i.useState)(""),[ee,et]=(0,i.useState)(!1),[er,en]=(0,i.useState)(""),[ei,eo]=(0,i.useState)(null),[ea,es]=(0,i.useState)(!1),ec=(0,i.useRef)(null),[eu,eh]=(0,i.useState)([]),[ex,ev]=(0,i.useState)(null),[eS,eR]=(0,i.useState)(!1),[eI,eT]=(0,i.useState)(!1),[eM,ez]=(0,i.useState)(null),[eA,eP]=(0,i.useState)(null),[e$,eH]=(0,i.useState)(!1),[eD,eN]=(0,i.useState)(null),[eO,eB]=(0,i.useState)(null),[eU,eq]=(0,i.useState)(""),[eK,eV]=(0,i.useState)("name"),eY=(0,i.useRef)(null),eQ=(0,i.useRef)(!0),[e0,e6]=(0,i.useState)(null),[e5,e8]=(0,i.useState)(""),[e3,e9]=(0,i.useState)(null),[e7,te]=(0,i.useState)(null),[tt,tr]=(0,i.useState)(!1),[tn,ti]=(0,i.useState)(null),to=(0,i.useRef)(null),[ta,ts]=(0,i.useState)(!1),[tl,td]=(0,i.useState)(()=>new Set),tc=(0,i.useMemo)(()=>{if(!b||tl.has(b))return tl;let e=new Set(tl);return e.add(b),e},[tl,b]),[tu,tp]=(0,i.useState)([]),[th,tf]=(0,i.useState)(0),[tg,tx]=(0,i.useState)(!1),[tm,tv]=(0,i.useState)(null),[ty,tb]=(0,i.useState)(null),[tj,tw]=(0,i.useState)(()=>new Set),tk=(0,i.useRef)(null),[tS,tC]=(0,i.useState)(()=>Date.now()),[t_,tR]=(0,i.useState)(()=>new Map),tI=tc.size>0||tj.size>0;(0,i.useEffect)(()=>{if(!tI)return;let e=setInterval(()=>tC(Date.now()),1e3);return()=>clearInterval(e)},[tI]),(0,i.useEffect)(()=>{let e=Date.now();tC(e),tR(t=>(function(e,t,r){let n=new Map,i=e.size!==t.length;for(let o of t){let t=e.get(o);void 0!==t?n.set(o,t):(n.set(o,r),i=!0)}return i?n:e})(t,[...tc,...tj],e))},[tc,tj]);let[tT,tM]=(0,i.useState)(()=>(function(){var e=window.localStorage;try{var t=e.getItem(ed);if(!t)return new Set;try{let e=JSON.parse(t);if(Array.isArray(e))return new Set(e.filter(e=>"string"==typeof e));return new Set}catch{return new Set}}catch{return new Set}})()),[tz,tE]=(0,i.useState)(""),[tW,tL]=(0,i.useState)(!1),[tA,tP]=(0,i.useState)("meta"),[t$,tH]=(0,i.useState)([]),[tD,tF]=(0,i.useState)([]),[tN,tO]=(0,i.useState)(null),[tB,tU]=(0,i.useState)(!1),[tq,tK]=(0,i.useState)(null),tV=(0,i.useRef)(0),tJ=(0,i.useRef)(null),[tY,tZ]=(0,i.useState)(!1),tX=(0,i.useRef)(null),[tG,tQ]=(0,i.useState)(()=>I()),[t0,t1]=(0,i.useState)({}),[t2,t4]=(0,i.useState)(()=>new Set),t6=(0,i.useRef)(new Set),t5=(0,i.useRef)(null),t8=(0,i.useRef)(!1),t3=(0,i.useRef)(new Set),t9=(0,i.useRef)(!1),t7=(0,i.useRef)(null),re=(0,i.useCallback)(e=>{tQ(t=>{let r=e(t);return r!==t&&function(e){try{window.localStorage.setItem(k,_(e))}catch{}}({...r,sidebarWidth:I().sidebarWidth}),r})},[]),rt=tG.displayMode,rr=tG.showRecentSessions,[rn,ri]=(0,i.useState)(5),ro=(0,i.useMemo)(()=>new Set(tG.collapsedProjectRoots),[tG.collapsedProjectRoots]),ra=(0,i.useMemo)(()=>new Set(tG.collapsedWorktreePaths),[tG.collapsedWorktreePaths]),rs=(0,i.useMemo)(()=>new Set(tG.closedProjectRoots),[tG.closedProjectRoots]);(0,i.useEffect)(()=>{eH(!!window.piDesktop?.selectDirectory)},[]);let rl=(0,i.useRef)(M);rl.current=M;let rd=(0,i.useCallback)(async(e=!1)=>{let t=++H.current;if(e&&0===C.current.length){let e=F();if(e&&e.length>0){if(!eQ.current||!V(t,H.current))return;S(e),C.current=e,A(!1)}}try{e&&0===C.current.length&&A(!0);let r=await fetch("/api/sessions");if(!eQ.current||!V(t,H.current))return;if(!r.ok)throw Error(`HTTP ${r.status}`);let n=await r.json();if(!eQ.current||!V(t,H.current))return;S(n.sessions),C.current=n.sessions,N(n.sessions),tp(n.archivedSessions??[]),tf(n.archivedCount??0),z(e=>(function(e,t){if(0===e.size)return e;let r=new Set(t.map(e=>e.id)),n=!1,i=new Set;for(let t of e){if(r.has(t)){n=!0;continue}i.add(t)}return n?i:e})(e,n.sessions)),T(e=>{if(0===e.size)return e;let t=new Map(e),r=!1;for(let e of n.sessions)t.has(e.id)&&(t.delete(e.id),r=!0);return r?t:e}),t9.current||td(new Set(n.runningSessionIds??[])),n.runningStartedAt&&tR(e=>{let t=new Map(e),r=!1;for(let[e,i]of Object.entries(n.runningStartedAt??{}))t.has(e)||"number"!=typeof i||(t.set(e,i),r=!0);return r?t:e});let i=new Set(n.sessions.map(e=>e.id)),o=rl.current;tM(e=>{if(0===e.size)return e;let t=new Set([...e].filter(e=>i.has(e)||o.has(e)));return t.size===e.size?e:t}),$(null),e||(ts(!0),t7.current&&clearTimeout(t7.current),t7.current=setTimeout(()=>{eQ.current&&ts(!1)},2e3))}catch(e){if(!eQ.current||!V(t,H.current))return;$(String(e))}finally{eQ.current&&V(t,H.current)&&e&&A(!1)}},[]),rc=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=!rc.current;rc.current=!0,rd(e)},[rd,c]),(0,i.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&rd(!1)};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",e)}},[rd]),(0,i.useEffect)(()=>{if(!y||0===y.length)return;let e=y.filter(e=>e?.id);0!==e.length&&(W(t=>{let r=null;for(let n of e)t.has(n.id)&&(r||(r=new Set(t)),r.delete(n.id));return r??t}),z(t=>{let r=null;for(let n of e)t.has(n.id)||(r||(r=new Set(t)),r.add(n.id));return r??t}),T(t=>{let r=null;for(let n of e)t.get(n.id)!==n&&(r||(r=new Map(t)),r.set(n.id,n));return r??t}))},[y]);let ru=(0,i.useMemo)(()=>(function(e){let{serverSessions:t,pendingSessions:r,pendingIds:n=new Set(r.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 r)!(i?.has(e.id)||o.has(e.id))&&n.has(e.id)&&o.set(e.id,e);return[...o.values()].sort(K)})({serverSessions:w,pendingSessions:[...R.values()],pendingIds:M,deletedIds:E}),[w,R,M,E]),{worktreeSnapshots:rp,worktreeSnapshotsRef:rh,worktreeMetadata:rf,setWtRefreshKey:rg,commitWorktreeSnapshots:rx}=function({allSessions:e,selectedCwd:t,selectedProjectRoot:r,setIdentity:n,mountedRef:o}){let[a,l]=(0,i.useState)({}),d=(0,i.useRef)({}),[c,u]=(0,i.useState)({}),p=(0,i.useRef)(new Set),h=(0,i.useRef)(new Map),[f,g]=(0,i.useState)(0),x=(0,i.useCallback)(e=>{l(t=>{let r=e(t);return d.current=r,r})},[]);(0,i.useEffect)(()=>()=>{h.current.clear()},[]);let m=(0,i.useCallback)(async e=>{if(p.current.has(e))return;let i=`${Date.now()}:${Math.random()}`;p.current.add(e),h.current.set(e,i),x(t=>Y(t,e,{status:"loading"}));try{let a=await fetch(`/api/worktrees?cwd=${encodeURIComponent(e)}`),s=await a.json().catch(()=>({}));if(!a.ok||s.error||!s.projectRoot)throw Error(s.error??`HTTP ${a.status}`);if(!o.current||h.current.get(e)!==i)return;let l=s.projectRoot,d=s.worktrees??[];x(t=>l===e?Y(t,e,{status:"ready",worktrees:d}):Y(function(e,t){if(!(t in e))return e;let r={...e};return delete r[t],r}(t,e),l,{status:"ready",worktrees:d})),u(t=>{let r={isGit:s.isGit??!1,isTopLevel:s.isTopLevel??!1};return l===e?{...t,[e]:r}:{...t,[l]:r}}),t&&(r===e||t===e)&&n({cwd:t,projectRoot:l,branch:d.find(e=>e.path===t)?.branch??null,isGit:s.isGit??!1,isTopLevel:s.isTopLevel??!1,status:"ready",error:null})}catch(t){if(!o.current||h.current.get(e)!==i)return;x(r=>Y(r,e,{status:"error",error:t instanceof Error?t.message:String(t)}))}finally{h.current.get(e)===i&&(h.current.delete(e),p.current.delete(e))}},[x,t,r,n,o]),v=(0,i.useMemo)(()=>{var n,i,o;return n=s(e),i=t,(o=r)?n.includes(o)?n:[o,...n]:i&&!n.includes(i)?[i,...n]:n},[e,t,r]),y=(0,i.useRef)(new Map);return(0,i.useEffect)(()=>{let e=`wt:${Math.max(0,Math.floor(f))}`,t=v.filter(t=>y.current.get(t)!==e);for(let r of t)y.current.set(r,e);let r=!1;return Promise.all(Array.from({length:Math.min(3,t.length)},async()=>{for(;!r;){let e=t.shift();if(!e)return;await m(e)}})),()=>{r=!0}},[v,f,m]),{worktreeSnapshots:a,worktreeSnapshotsRef:d,worktreeMetadata:c,wtRefreshKey:f,setWtRefreshKey:g,commitWorktreeSnapshots:x,fetchProjectWorktrees:m,knownProjectRoots:v}}({allSessions:ru,selectedCwd:D,selectedProjectRoot:q,setIdentity:J,mountedRef:eQ});(0,i.useEffect)(()=>{try{0===tT.size?window.localStorage.removeItem(ed):window.localStorage.setItem(ed,JSON.stringify([...tT]))}catch{}},[tT]),(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&&(t9.current=!0,td(new Set(t.runningSessionIds??[])))}catch{}},()=>e.close()},[]);let rm=(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),r=new Set;for(let e of t)for(let t of e.steps??[])t.sessionId&&r.add(t.sessionId);let n=new Set;if(r.size>0)for(let e of C.current)e.subagent?.parentSessionId&&r.has(e.id)&&n.add(e.subagent.parentSessionId);tw(new Set([...r,...n]))}catch{}},[]);(0,i.useEffect)(()=>(rm(),tk.current=setInterval(()=>void rm(),3e4),()=>{tk.current&&clearInterval(tk.current)}),[rm]),(0,i.useEffect)(()=>{ta&&rm()},[ta,rm]),(0,i.useEffect)(()=>{let t=t3.current,r=[...t].filter(t=>!tc.has(t)&&t!==e),n=[...tc].filter(e=>!t.has(e));if((r.length>0||n.length>0)&&tM(e=>{let t=new Set(e);return n.forEach(e=>t.delete(e)),r.forEach(e=>t.add(e)),t}),n.length>0){let e=new Date().toISOString();S(t=>{let r=!1,i=t.map(t=>!n.includes(t.id)||t.modified>=e?t:(r=!0,{...t,modified:e}));if(!r)return t;let o=[...i].sort((e,t)=>e.modified<t.modified?1:e.modified>t.modified?-1:0);return C.current=o,N(o),o})}t3.current=new Set(tc)},[tc,e]);let rv=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{let e=rv.current,t=[...tl].filter(t=>!e.has(t));rv.current=new Set(tl),t.length>0&&rd(!1)},[tl,rd]),(0,i.useEffect)(()=>{e&&tM(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r})},[e]),(0,i.useEffect)(()=>{fetch("/api/home").then(e=>e.json()).then(e=>{e.home&&X(e.home)}).catch(()=>{})},[]);let ry=(0,i.useRef)(!1);(0,i.useEffect)(()=>()=>{eQ.current=!1},[]);let rb=(0,i.useCallback)(e=>{if(!e)return null;if(D===e&&q)return q;for(let[t,r]of Object.entries(rh.current))if(r.worktrees.some(t=>t.path===e))return t;let t=ru.find(t=>t.cwd===e);return t?.projectRoot??e},[D,q,ru]),rj=(0,i.useCallback)((e,t)=>{let r=null===e?null:t??rb(e)??e;J({cwd:e,projectRoot:r,status:e?"ready":"idle",error:null})},[rb,J]),rw=q??rb(D);(0,i.useEffect)(()=>{e6(null),e8(""),e9(null),te(null),ti(null)},[D]),(0,i.useEffect)(()=>{if(0!==ru.length&&!a){if(o&&!ry.current){ry.current=!0;let e=ru.find(e=>e.id===o);if(e){rj(e.cwd,e.projectRoot??e.cwd),t(e,!0);return}d?.()}if(null===D){let e=s(ru).find(e=>!rs.has(e));e&&rj(e)}}},[ru,D,o,a,t,d,rj,rs]);let rk=(0,i.useCallback)(()=>{et(!1),en(""),eo(null)},[]),rS=(0,i.useCallback)(e=>{re(t=>t.closedProjectRoots.includes(e)?{...t,closedProjectRoots:t.closedProjectRoots.filter(t=>t!==e)}:t)},[re]),rC=(0,i.useCallback)(async e=>{let t={current:!1};eR(!0),eT(!1),eo(null);try{let r=await fetch(`/api/cwd/browse?path=${encodeURIComponent(e)}`);if(t.current)return;if(!r.ok){eh([]),ev(null),eT(!0),ez(null),eP(null);return}let n=await r.json();if(t.current)return;en(n.path??e),ez(n.path??e),eP(n.parentPath??null),eh(n.entries??[]),ev(n.git??null),eT(!1)}catch{t.current||(eh([]),ev(null),eT(!0),ez(null),eP(null))}finally{t.current||eR(!1)}return()=>{t.current=!0}},[]),r_=(0,i.useCallback)(async e=>{let t=(e??eM??er).trim();if(t&&!ea){es(!0),eo(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 eo(r.error??`HTTP ${e.status}`);let n=r.cwd??t,i=rb(n)??n;re(e=>e.addedProjectRoots.includes(i)?e:{...e,addedProjectRoots:[...e.addedProjectRoots,i]}),rS(i),rj(n,i),rk(),v?.(i)}catch(e){eo(e instanceof Error?e.message:String(e))}finally{es(!1)}}},[eM,er,ea,rb,rS,rj,rk,v]),rR=(0,i.useCallback)(()=>{eo(null),en(""),ez(null),eP(null),eh([]),ev(null),eT(!1),et(!0),rC("")},[rC]),rI=(0,i.useCallback)(async()=>{let e=window.piDesktop;if(e)try{eo(null);let t=await e.selectDirectory();null!==t&&(en(t),rC(t))}catch(e){eo(e instanceof Error?e.message:String(e))}},[rC]),rT=(0,i.useCallback)(async()=>{if(!ea){es(!0),eo(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 eo(t.error??`HTTP ${e.status}`);let r=rb(t.cwd)??t.cwd;rS(r),rj(t.cwd,r),rk(),v?.(r)}catch(e){eo(e instanceof Error?e.message:String(e))}finally{es(!1)}}},[ea,rb,rS,rj,rk]),rM=(0,i.useCallback)(async()=>{let e=e5.trim();if(e&&!tt&&e0){tr(!0),e9(null),te(null);try{let t=await fetch("/api/worktrees",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e0,branch:e})}),r=await t.json().catch(()=>({}));if(!t.ok||r.error||!r.path){e9(r.error??`HTTP ${t.status}`),te(e0);return}e6(null),e8(""),rx(t=>Y(t,e0,{status:"ready",worktrees:[...t[e0]?.worktrees??[],{path:r.path,branch:e,isMain:!1}]})),rj(r.path,e0),rg(e=>e+1)}catch(e){e9(e instanceof Error?e.message:String(e)),te(e0)}finally{tr(!1)}}},[e0,e5,tt,rx,rj]),rz=(0,i.useCallback)(async(e,t,r)=>{if(!tt){tr(!0),e9(null),te(null);try{let n=await fetch("/api/worktrees",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,path:t,force:r})}),i=await n.json().catch(()=>({}));if(!n.ok){if(i.dirty&&!r)return void ti(t);e9(i.error??`HTTP ${n.status}`),te(e);return}ti(null),D===t&&rj(e,e),rg(e=>e+1)}catch(t){e9(t instanceof Error?t.message:String(t)),te(e)}finally{tr(!1)}}},[tt,D,rj]);(0,i.useEffect)(()=>{if(!tY)return;let e=e=>{tX.current&&!tX.current.contains(e.target)&&tZ(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[tY]);let rE=(0,i.useCallback)(e=>{e.cwd&&rj(e.cwd,e.projectRoot??e.cwd),t(e)},[t,rj]),rW=(0,i.useCallback)(e=>{W(t=>{let r=new Set(t);return r.add(e),r}),z(t=>{if(!t.has(e))return t;let r=new Set(t);return r.delete(e),r}),T(t=>{if(!t.has(e))return t;let r=new Map(t);return r.delete(e),r}),u?.(e),rd()},[u,rd]),rL=(0,i.useCallback)(async e=>{if(null===tm){tv(e),tb(null);try{let t=await function(e,t=fetch){return eG(`/api/sessions/${encodeURIComponent(e)}/archive`,{method:"POST"},t)}(e);if(!t.ok){let e=e1(t);tb("running"===e?j("archive_runningConflict"):"readOnly"===e?j("archive_readOnlyForbidden"):"network"===e?j("archive_networkError"):t.error??j("archive_unknownError"));return}rd()}catch(e){tb(e instanceof Error?e.message:String(e))}finally{tv(null)}}},[tm,rd,j]),rA=(0,i.useCallback)(()=>{tx(e=>(e||tb(null),!e))},[]),rP=(0,i.useCallback)(e=>{re(t=>t.showRecentSessions===e?t:{...t,showRecentSessions:e})},[re]),r$=(0,i.useMemo)(()=>(function(e){let{sessions:t,closedProjectRoots:r,excludeIds:n,limit:i=20}=e,o=Math.max(0,Math.floor(i));return t.filter(e=>{if(e.subagent||n?.has(e.id))return!1;let t=e.projectRoot??e.cwd;return!(t&&r?.has(t))}).slice().sort(K).slice(0,o)})({sessions:ru,closedProjectRoots:rs,limit:20}),[ru,rs]);(0,i.useEffect)(()=>{ri(e=>0===r$.length?5:Math.min(Math.max(e,5),r$.length))},[r$.length]);let rH=(0,i.useCallback)((e=D)=>{e&&(rj(e,rb(e)),r?.(e))},[D,r,rj,rb]),rD=(0,i.useCallback)(()=>{tE(""),tH([]),tF([]),tO(null),tK(null),tU(!1),tV.current+=1},[]),rF=(0,i.useCallback)(()=>{tW?(tL(!1),rD()):(tL(!0),setTimeout(()=>tJ.current?.focus(),0))},[tW,rD]);(0,i.useEffect)(()=>{if(!tW||"fulltext"!==tA)return void tU(!1);let e=tz.trim();if(!e){tH([]),tF([]),tO(null),tK(null),tU(!1);return}let t=++tV.current;tU(!0),tK(null);let r=setTimeout(()=>{(async()=>{try{let r=await fetch(`/api/sessions/search?q=${encodeURIComponent(e)}&limit=40`),n=await r.json().catch(()=>({}));if(t!==tV.current)return;if(!r.ok||n.error){tK(n.error??`HTTP ${r.status}`),tH([]),tF([]),tO(null);return}tH(n.hits??[]),tF(n.sessionIds??[]),tO(n.source??null)}catch(e){if(t!==tV.current)return;tK(e instanceof Error?e.message:String(e)),tH([]),tF([]),tO(null)}finally{t===tV.current&&tU(!1)}})()},280);return()=>clearTimeout(r)},[tW,tA,tz]);let rN=(0,i.useMemo)(()=>Object.fromEntries(Object.entries(rp).map(([e,t])=>[e,t.worktrees])),[rp]),rO=(0,i.useMemo)(()=>(function(e,t={}){let{selectedCwd:r=null,selectedProjectRoot:n=null,knownWorktrees:i=[],knownWorktreesByProject:o={}}=t,a=new Map;for(let t of e){let e=t.projectRoot??t.cwd,r=a.get(e);if(r||(r={main:[],worktrees:new Map},a.set(e,r)),t.cwd===e)r.main.push(t);else{let e=r.worktrees.get(t.cwd);e||(e={sessions:[],branch:null},r.worktrees.set(t.cwd,e)),e.sessions.push(t),!e.branch&&t.worktreeBranch&&(e.branch=t.worktreeBranch)}}let s=n??r;for(let[e,t]of Object.entries(s?{...o,[s]:o[s]??i}:o)){let r=a.get(e);for(let n of(r||(r={main:[],worktrees:new Map},a.set(e,r)),t))!n.isMain&&(r.worktrees.has(n.path)||r.worktrees.set(n.path,{sessions:[],branch:n.branch}))}for(let e of(s&&!a.has(s)&&a.set(s,{main:[],worktrees:new Map}),t.addedProjectRoots??[]))a.has(e)||a.set(e,{main:[],worktrees:new Map});let l=[];for(let[e,t]of a){let r=[...t.worktrees.entries()].map(([e,t])=>({path:e,branch:t.branch,tree:p(t.sessions),latestActivity:x(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)),n=[...t.main,...t.worktrees.values().flatMap(e=>e.sessions)];l.push({root:e,mainTree:p(t.main),worktrees:r,latestActivity:x(n)})}return l.sort((e,t)=>e.latestActivity||t.latestActivity?e.latestActivity?t.latestActivity?t.latestActivity.localeCompare(e.latestActivity):t.root===s?1:-1:e.root===s?-1:1:e.root.localeCompare(t.root)),l})(ru,{selectedCwd:D,selectedProjectRoot:rw,knownWorktreesByProject:rN,addedProjectRoots:tG.addedProjectRoots}),[ru,D,rw,rN,tG.addedProjectRoots]),rB=(0,i.useMemo)(()=>{let e=new Map,t=r=>{for(let n of r)e.set(n.session.id,n),n.children.length>0&&t(n.children)};for(let e of rO)for(let r of(t(e.mainTree),e.worktrees))t(r.tree);return e},[rO]),rU=(0,i.useMemo)(()=>0===rs.size?rO:rO.filter(e=>!rs.has(e.root)),[rO,rs]),rq=tz.trim().toLowerCase(),rK="fulltext"===tA&&rq.length>0,rV=(0,i.useMemo)(()=>rK?new Set(tD):null,[rK,tD]),rJ=rK?tD.length>0||tB||!!tq:rq.length>0,rY=(0,i.useMemo)(()=>(function(e,t,r,n){let i=null!=n;if(!i&&!t)return e;let o=[];for(let a of e){if(!i){let e=r?.[a.root];if(a.root.toLowerCase().includes(t)||void 0!==e&&e.toLowerCase().includes(t)){o.push(a);continue}}let e=i?m(a.mainTree,n):h(a.mainTree,t),s=[];for(let e of a.worktrees){if(!i&&`${e.branch??""}
2
2
  ${e.path}`.toLowerCase().includes(t)){s.push(e);continue}let r=i?m(e.tree,n):h(e.tree,t);r.length>0&&s.push({...e,tree:r})}(e.length>0||s.length>0)&&o.push({...a,mainTree:e,worktrees:s})}return o})(rU,rK?"":rq,tG.projectAliases,rV),[rU,rq,tG.projectAliases,rV,rK]),rZ=(0,i.useCallback)(e=>{let t=ru.find(t=>t.id===e);t&&rE(t)},[ru,rE]);(0,i.useEffect)(()=>{let e=function(e){let t=[];for(let r of e)for(let e of(t.push(...g(r.mainTree)),r.worktrees))t.push(...g(e.tree));return t}(rO);0!==e.length&&t4(t=>{let r=!1,n=new Set(t);for(let t of e)!t6.current.has(t)&&(n.has(t)||(n.add(t),r=!0));return r?n:t})},[rO]),(0,i.useEffect)(()=>{if(!e)return;let t=function(e,t){for(let r of e){if(r.mainTree.some(e=>e.session.id===t))return{projectRoot:r.root,worktreePath:null,ancestors:[]};let e=f(r.mainTree,t);if(e.length>0)return{projectRoot:r.root,worktreePath:null,ancestors:e};for(let e of r.worktrees){if(e.tree.some(e=>e.session.id===t))return{projectRoot:r.root,worktreePath:e.path,ancestors:[]};let n=f(e.tree,t);if(n.length>0)return{projectRoot:r.root,worktreePath:e.path,ancestors:n}}}return null}(rO,e);if(t&&(re(e=>{let r=e.collapsedProjectRoots.includes(t.projectRoot),n=null!==t.worktreePath&&e.collapsedWorktreePaths.includes(t.worktreePath);return r||n?{...e,collapsedProjectRoots:r?e.collapsedProjectRoots.filter(e=>e!==t.projectRoot):e.collapsedProjectRoots,collapsedWorktreePaths:n?e.collapsedWorktreePaths.filter(e=>e!==t.worktreePath):e.collapsedWorktreePaths}:e}),t.ancestors.length>0)){for(let e of t.ancestors)t6.current.add(e);t4(e=>{if(!t.ancestors.some(t=>e.has(t)))return e;let r=new Set(e);return t.ancestors.forEach(e=>r.delete(e)),r})}},[e,rO,re]),(0,i.useLayoutEffect)(()=>{if(!e)return;let t=t5.current;if(!t)return;let r=Array.from(t.querySelectorAll("[data-session-id]")).find(t=>t.dataset.sessionId===e);if(!r)return;let n=!t8.current&&o===e,i=t.getBoundingClientRect(),a=r.getBoundingClientRect(),s=a.top<i.top||a.bottom>i.bottom;(n||s)&&r.scrollIntoView({block:"nearest"}),n&&(t8.current=!0)},[e,o,rY,ro,ra,t2]);let rX=(0,i.useCallback)(e=>{t6.current.add(e),t4(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),rG=(0,i.useCallback)(e=>{re(t=>({...t,collapsedProjectRoots:t.collapsedProjectRoots.includes(e)?t.collapsedProjectRoots.filter(t=>t!==e):[...t.collapsedProjectRoots,e]}))},[re]),rQ=(0,i.useCallback)(e=>{re(t=>({...t,collapsedWorktreePaths:t.collapsedWorktreePaths.includes(e)?t.collapsedWorktreePaths.filter(t=>t!==e):[...t.collapsedWorktreePaths,e]}))},[re]),r0=(0,i.useCallback)(e=>{eN(null);let t=new Set(tG.closedProjectRoots);if(t.add(e),re(t=>t.closedProjectRoots.includes(e)?t:{...t,closedProjectRoots:[...t.closedProjectRoots,e]}),rw===e){let n=function(e,t,r){for(let n of e)if(n.root!==t&&!r.has(n.root))return n.root;return null}(rO,e,t);n?rj(n,n):(rj(null),r?.())}},[tG.closedProjectRoots,rw,rO,re,rj,r]),r1=(0,i.useCallback)(e=>{eN(null),eq(tG.projectAliases[e]??l(e,Z)),eV("name"),eB(e)},[tG.projectAliases,Z]),r2=(0,i.useCallback)(()=>{if(!eO)return;let e=eU.trim();e&&(eB(null),re(t=>{let r={...t.projectAliases};return e===l(eO,Z)?delete r[eO]:r[eO]=e,{...t,projectAliases:r}}))},[eO,eU,Z,re]),r4=(0,i.useCallback)(e=>{re(t=>t.displayMode===e?t:{...t,displayMode:e})},[re]),r6=(0,i.useCallback)(()=>{let e=function(e){let t=[],r=[];for(let n of e)for(let e of(t.push(n.root),n.worktrees))r.push(e.path);return{projectRoots:t,worktreePaths:r}}(rU);re(t=>({...t,collapsedProjectRoots:e.projectRoots,collapsedWorktreePaths:e.worktreePaths}))},[rU,re]),r5=(0,i.useCallback)(()=>{re(e=>0===e.collapsedProjectRoots.length&&0===e.collapsedWorktreePaths.length?e:{...e,collapsedProjectRoots:[],collapsedWorktreePaths:[]})},[re]),r8=(0,i.useCallback)(e=>{let t=rp[e],r=rf[e],n=!!(r?.isGit&&r.isTopLevel),i=n?j("sidebar_createWorktree"):t?.status!=="loading"&&t?r?.isGit?j("sidebar_worktreeOpenRoot"):j("sidebar_worktreeGitOnly"):j("sidebar_checkingWorktree");return{canManage:n,createHint:i,busy:tt}},[rp,rf,tt,j]);return(0,n.jsx)(eF.Provider,{value:{startedAt:t_,now:tS},children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{padding:"10px 10px 8px",borderBottom:"1px solid var(--border)",flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[(0,n.jsx)(ef,{}),(0,n.jsxs)("div",{className:"sidebar-toolbar",style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)(eg,{label:j("sidebar_addProject"),onClick:rR,active:ee,children:(0,n.jsx)(em,{size:18})}),(0,n.jsx)(eg,{label:D?j("sidebar_newSessionIn",{project:l(D,Z)}):j("sidebar_selectProject"),disabled:!D,onClick:()=>rH(),children:(0,n.jsx)(ej,{size:18})}),(0,n.jsx)(eg,{label:j("sidebar_searchSessions"),active:tW,expanded:tW,onClick:rF,children:(0,n.jsx)(ew,{size:18})}),(0,n.jsx)(eg,{label:j("sidebar_archive"),active:tg,expanded:tg,onClick:rA,children:(0,n.jsx)(eb,{size:18})}),(0,n.jsxs)("div",{ref:tX,style:{position:"relative"},children:[(0,n.jsx)(eg,{label:j("sidebar_displayOptions"),active:tY,expanded:tY,onClick:()=>tZ(e=>!e),children:(0,n.jsx)(ek,{size:18})}),(0,n.jsx)(ep,{open:tY,style:{position:"absolute",top:"calc(100% + 4px)",right:0,zIndex:100,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,boxShadow:"0 6px 20px rgba(0,0,0,0.10)",overflow:"hidden",minWidth:168},children:(0,n.jsxs)("div",{onKeyDown:e=>{"Escape"===e.key&&tZ(!1)},children:[(0,n.jsx)(eL,{label:j("sidebar_standard"),checked:"standard"===rt,onClick:()=>{r4("standard"),tZ(!1)}}),(0,n.jsx)(eL,{label:j("sidebar_compact"),checked:"compact"===rt,onClick:()=>{r4("compact"),tZ(!1)}}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)",margin:"2px 0"}}),(0,n.jsx)(eL,{label:j("sidebar_collapseAll"),onClick:()=>{r6(),tZ(!1)}}),(0,n.jsx)(eL,{label:j("sidebar_expandAll"),onClick:()=>{r5(),tZ(!1)}}),(0,n.jsx)("div",{style:{borderTop:"1px solid var(--border)",margin:"2px 0"}}),(0,n.jsx)(eL,{label:j("sidebar_recentSessions"),checked:rr,onClick:()=>{rP(!rr),tZ(!1)}})]})})]})]})]}),!tg&&tW&&(0,n.jsxs)("div",{style:{marginTop:8},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:4,marginBottom:6},children:[(0,n.jsx)("button",{type:"button",onClick:()=>tP("meta"),"aria-pressed":"meta"===tA,style:{flex:1,height:24,borderRadius:6,border:"1px solid var(--border)",background:"meta"===tA?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",fontSize:11,cursor:"pointer"},children:j("sidebar_searchModeMeta")}),(0,n.jsx)("button",{type:"button",onClick:()=>tP("fulltext"),"aria-pressed":"fulltext"===tA,style:{flex:1,height:24,borderRadius:6,border:"1px solid var(--border)",background:"fulltext"===tA?"var(--bg-selected)":"var(--bg-panel)",color:"var(--text)",fontSize:11,cursor:"pointer"},children:j("sidebar_searchModeFulltext")})]}),(0,n.jsxs)("div",{style:{position:"relative"},children:[(0,n.jsx)("span",{style:{position:"absolute",left:9,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none",display:"flex"},children:(0,n.jsx)(ew,{size:13})}),(0,n.jsx)("input",{ref:tJ,type:"search",value:tz,onChange:e=>tE(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),tz||tL(!1),rD())},placeholder:"fulltext"===tA?j("sidebar_searchPlaceholderFulltext"):j("sidebar_searchPlaceholder"),"aria-label":j("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"}}),tz&&(0,n.jsx)("button",{type:"button",onClick:()=>rD(),"aria-label":j("sidebar_clearSearch"),title:j("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,n.jsx)(e_,{size:13})})]}),"fulltext"===tA&&tz.trim()&&(0,n.jsxs)("div",{style:{marginTop:6,fontSize:10.5,color:"var(--text-dim)",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[tB&&(0,n.jsx)("span",{children:j("sidebar_searchFulltextLoading")}),!tB&&"fts"===tN&&(0,n.jsxs)("span",{children:[j("sidebar_searchFulltextSourceFts")," \xb7 ",j("sidebar_searchFulltextHits",{count:t$.length})]}),!tB&&"jsonl"===tN&&(0,n.jsxs)("span",{children:[j("sidebar_searchFulltextSourceJsonl")," \xb7 ",j("sidebar_searchFulltextHits",{count:t$.length})]}),tq&&(0,n.jsx)("span",{style:{color:"var(--status-danger)"},children:tq})]})]})]}),!tg&&tW&&"fulltext"===tA&&t$.length>0&&(0,n.jsx)("div",{style:{flex:"0 0 auto",maxHeight:160,overflowY:"auto",overflowX:"hidden",borderBottom:"1px solid var(--border)",padding:"4px 0"},children:t$.slice(0,12).map((e,t)=>(0,n.jsxs)("button",{type:"button",onClick:()=>rZ(e.sessionId),title:j("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,n.jsxs)("div",{style:{color:"var(--text-dim)",fontSize:10,marginBottom:2},children:[e.role??"message"," \xb7 ",e.sessionId.slice(0,8)]}),(0,n.jsx)("div",{style:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",whiteSpace:"normal"},children:e.snippet})]},`${e.sessionId}-${e.timestamp}-${t}`))}),tg?(0,n.jsx)(e2,{sessions:tu,count:th,homeDir:Z,loading:L,onRefresh:rd,onBack:()=>tx(!1)}):(0,n.jsxs)(n.Fragment,{children:[ty&&(0,n.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:ty}),(0,n.jsxs)("div",{ref:t5,style:{flex:"1 1 auto",overflowY:"auto",overflowX:"hidden",padding:"2px 0",minHeight:80},children:[L&&(0,n.jsx)("div",{style:{padding:"16px 14px",color:"var(--text-muted)",fontSize:12},children:j("sidebar_loading")}),P&&(0,n.jsx)("div",{style:{padding:"12px 14px",color:"var(--status-danger)",fontSize:12},children:P}),!L&&!P&&0===rY.length&&(("meta"===tA?rq.length>0:rK&&!tB)?(0,n.jsx)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.55},children:j("sidebar_searchEmpty",{query:tz.trim()})}):(0,n.jsxs)("div",{style:{padding:"18px 14px",color:"var(--text-muted)",fontSize:12,lineHeight:1.7},children:[j("sidebar_noProjects"),(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:11},children:j("sidebar_addProject")})]})),!rJ&&r$.length>0&&(0,n.jsxs)("div",{style:{paddingBottom:5,borderBottom:"1px solid var(--border)",marginBottom:5},children:[(0,n.jsxs)("div",{"data-sidebar-depth":0,role:"button",tabIndex:0,"aria-expanded":rr,"aria-label":rr?j("sidebar_collapseRecentSessions"):j("sidebar_expandRecentSessions"),onClick:()=>rP(!rr),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),rP(!rr))},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,n.jsx)(eE,{collapsed:!rr,label:rr?j("sidebar_collapseRecentSessions"):j("sidebar_expandRecentSessions"),left:6,onClick:e=>{e.stopPropagation(),rP(!rr)}}),(0,n.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,n.jsx)(ey,{size:13})}),(0,n.jsx)("span",{style:{flex:1,fontSize:12.5,fontWeight:600},children:j("sidebar_recentSessions")})]}),rr&&(0,n.jsxs)("div",{children:[r$.slice(0,rn).map(t=>{let r=rB.get(t.id);return r?(0,n.jsx)(eZ,{node:r,selectedSessionId:e,runningSessionIds:tc,subagentRunningIds:tj,unreadSessionIds:tT,onSelectSession:rE,onRenamed:rd,onSessionDeleted:rW,onSessionArchive:rL,depth:0,collapsedSessionIds:t2,searchActive:rJ,onToggleCollapse:rX,displayMode:rt},t.id):(0,n.jsx)(eX,{session:t,isSelected:t.id===e,isRunning:tc.has(t.id)||tj.has(t.id),isUnread:tT.has(t.id),onClick:()=>rE(t),onRenamed:rd,onDeleted:rW,onArchive:rL,depth:0,displayMode:rt},t.id)}),rn<r$.length&&(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 8px 5px 28px"},children:(0,n.jsxs)("button",{type:"button",className:"sidebar-pagination-btn",onClick:()=>ri(e=>Math.min(e+5,r$.length)),children:[j("sidebar_showMore"),(0,n.jsxs)("span",{"aria-hidden":"true",children:["+",5]})]})})]})]}),rY.map(t=>(0,n.jsx)(eJ,{project:t,homeDir:Z,displayMode:rt,projectAliases:tG.projectAliases,selectedSessionId:e,runningSessionIds:tc,subagentRunningIds:tj,unreadSessionIds:tT,collapsedProjectRoots:ro,collapsedWorktreePaths:ra,collapsedSessionIds:t2,searchActive:rJ,onToggleProject:rG,onToggleWorktree:rQ,onNewSession:rH,onSelectSession:rE,menuOpen:eD===t.root,onMenuOpenChange:e=>eN(e?t.root:null),onEditProject:()=>r1(t.root),onCloseProject:()=>r0(t.root),onRenamed:rd,onSessionDeleted:rW,onToggleCollapse:rX,groupVisibleCounts:t0,onShowMore:e=>t1(t=>{let r;return r=U(t,e),{...t,[e]:r+5}}),onShowFewer:e=>t1(t=>(function(e,t){if(!(t in e))return e;let r={...e};return delete r[t],r})(t,e)),worktreeActions:r8(t.root),wtNewOpen:e0===t.root,wtNewBranch:e5,wtError:e7===t.root?e3:null,wtConfirmRemove:tn,wtNewInputRef:to,onStartCreateWorktree:()=>{e6(t.root),e9(null),te(null),setTimeout(()=>to.current?.focus(),0)},onWtNewBranchChange:e=>{e8(e),e9(null),te(null)},onSubmitCreateWorktree:()=>void rM(),onCancelCreateWorktree:()=>{e6(null),e8(""),e9(null),te(null)},onRequestRemoveWorktree:e=>void rz(t.root,e,!1),onConfirmRemoveWorktree:e=>void rz(t.root,e,!0),onCancelRemoveWorktree:()=>ti(null),onSessionArchive:rL},t.root))]})]}),(0,n.jsx)(el,{open:ee,onClose:rk,title:j("sidebar_addProjectDialog"),width:440,closeLabel:j("dialog_close"),initialFocusRef:ec,description:j("sidebar_addProjectDescription"),actions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(eW,{onClick:rk,children:j("sidebar_cancel")}),(0,n.jsx)("span",{title:eM&&er.trim()===eM?void 0:j("sidebar_browseOpenBeforeSelect"),children:(0,n.jsx)(eW,{primary:!0,disabled:ea||!eM||er.trim()!==eM,onClick:()=>void r_(),children:ea?j("sidebar_validating"):j("sidebar_add")})})]}),children:(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault();let t=er.trim();t&&t!==eM&&rC(t)},children:[(0,n.jsx)("label",{htmlFor:"add-project-path",style:{display:"block",fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:j("sidebar_projectPath")}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("input",{id:"add-project-path",ref:ec,value:er,onChange:e=>{en(e.target.value),eo(null)},onKeyDown:e=>{"Escape"!==e.key||ea||(e.preventDefault(),rk())},placeholder:"/path/to/project","aria-label":j("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,n.jsx)(eW,{disabled:eS||!er.trim(),onClick:()=>void rC(er.trim()),children:eS?j("sidebar_browseLoading"):j("sidebar_browseGo")}),e$&&(0,n.jsx)(eW,{onClick:()=>void rI(),children:j("sidebar_selectDirectory")})]}),eM&&(0,n.jsxs)("div",{style:{marginTop:10},children:[eS&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:j("sidebar_browseLoading")}),!eS&&eI&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:j("sidebar_browseMissing")}),!eS&&!eI&&ex&&(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:11,marginBottom:6,color:ex.isRepo?"var(--text-muted)":"var(--text-dim)"},children:ex.isRepo?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontWeight:600},children:j("sidebar_browseGitRepo")}),ex.branch&&(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10.5},children:ex.branch})]}):(0,n.jsx)("span",{children:j("sidebar_browseNotGit")})}),!eS&&!eI&&(0,n.jsxs)("div",{style:{maxHeight:150,overflowY:"auto",overflowX:"hidden",border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",padding:4},children:[eA&&(0,n.jsx)("button",{type:"button",disabled:eS,onClick:()=>{rC(eA)},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===eu.length?(0,n.jsx)("div",{style:{padding:"6px 8px",fontSize:11,color:"var(--text-dim)"},children:j("sidebar_browseEmpty")}):eu.map(e=>(0,n.jsxs)("button",{type:"button",disabled:eS,onClick:()=>{rC(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,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10.5},children:"▸"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name})]},e.path))]})]}),ei&&(0,n.jsx)("div",{role:"alert",style:{marginTop:8,color:"var(--status-danger)",fontSize:12,lineHeight:1.45,overflowWrap:"anywhere"},children:ei}),(0,n.jsxs)("div",{style:{marginTop:14,paddingTop:12,borderTop:"1px solid var(--border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{fontSize:11.5,color:"var(--text-dim)"},children:j("sidebar_noExistingDirectory")}),(0,n.jsxs)(eW,{disabled:ea,onClick:()=>void rT(),children:[(0,n.jsx)(eC,{size:13}),j("sidebar_createDefaultDirectory")]})]})]})}),(0,n.jsxs)(el,{open:null!==eO,onClose:()=>eB(null),title:j("sidebar_editProject"),width:720,height:620,closeLabel:j("dialog_close"),description:eO?j("sidebar_editProjectDescription",{path:eO}):void 0,children:[(0,n.jsx)("div",{style:{display:"flex",gap:8,marginBottom:14,flexWrap:"wrap"},children:[["name",j("sidebar_projectName")],["rules",j("sidebar_projectRules")],["skills",j("sidebar_projectSkills")]].map(([e,t])=>(0,n.jsx)("button",{type:"button",onClick:()=>eV(e),style:{minHeight:28,padding:"0 12px",borderRadius:6,border:"1px solid var(--border)",background:eK===e?"var(--bg-selected)":"var(--bg-panel)",color:eK===e?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:12,fontWeight:eK===e?600:400},"aria-current":eK===e?"page":void 0,children:t},e))}),"name"===eK?(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault(),r2()},children:[(0,n.jsx)("label",{htmlFor:"edit-project-name",style:{display:"block",fontSize:12,fontWeight:600,color:"var(--text)",marginBottom:6},children:j("sidebar_projectName")}),(0,n.jsx)("input",{id:"edit-project-name",ref:eY,value:eU,onChange:e=>eq(e.target.value),placeholder:j("sidebar_projectName"),"aria-label":j("sidebar_projectName"),"aria-invalid":!eU.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"}}),!eU.trim()&&(0,n.jsx)("div",{style:{marginTop:6,fontSize:11.5,color:"var(--status-danger)"},children:j("sidebar_projectNameRequired")}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,marginTop:14},children:[(0,n.jsx)("button",{type:"submit",disabled:!eU.trim(),style:{minHeight:30,padding:"0 14px",borderRadius:7,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-foreground)",cursor:eU.trim()?"pointer":"not-allowed",fontSize:12,fontWeight:600,opacity:eU.trim()?1:.6},children:j("sidebar_save")}),(0,n.jsx)("button",{type:"button",onClick:()=>eB(null),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:j("sidebar_cancel")})]})]}):eO&&(0,n.jsx)(B,{cwd:eO,tab:"skills"===eK?"skills":"rules"})]})]})})}let e6=/\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/g,e5=/^\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\][^\x07]*(?:\x07|\x1B\\))/,e8=/\x1B\[([0-9;]*)m/g,e3=/\x1B_pi:c\x07/g,e9=["#1f2937","#dc2626","#16a34a","#d97706","#2563eb","#9333ea","#0891b2","#6b7280"],e7=["#9ca3af","#ef4444","#22c55e","#f59e0b","#3b82f6","#a855f7","#06b6d4","#e5e7eb"];function te(e){return e.replace(e3,"").replace(e6,"")}function tt(e){let t=[],r=0;for(;r<e.length;){if(27===e.charCodeAt(r)){let t=e.slice(r).match(e5);if(t){r+=t[0].length;continue}}let n=e.codePointAt(r);if(void 0===n)break;let i=String.fromCodePoint(n);t.push({start:r,end:r+i.length,char:i}),r+=i.length}return t}function tr(e,t){let r=tt(e)[t];return r?e.slice(0,r.start)+e.slice(r.end):e}function tn(e){return tt(e)[0]?.char}function ti(e){let t,r=[],n={},i=0;for(e8.lastIndex=0;null!==(t=e8.exec(e));)t.index>i&&r.push({text:e.slice(i,t.index),style:n}),n=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(r))delete r[e];else if(1===n)r.fontWeight=700;else if(2===n)r.opacity=.65;else if(3===n)r.fontStyle="italic";else if(4===n)r.textDecoration="underline";else if(22===n)delete r.fontWeight,delete r.opacity;else if(23===n)delete r.fontStyle;else if(24===n)delete r.textDecoration;else if(39===n)delete r.color;else if(49===n)delete r.backgroundColor;else if(n>=30&&n<=37)r.color=e9[n-30];else if(n>=90&&n<=97)r.color=e7[n-90];else if(n>=40&&n<=47)r.backgroundColor=e9[n-40];else if(n>=100&&n<=107)r.backgroundColor=e7[n-100];else if((38===n||48===n)&&2===t[e+1]){let[i,o,a]=[t[e+2],t[e+3],t[e+4]];[i,o,a].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${i}, ${o}, ${a})`:r.backgroundColor=`rgb(${i}, ${o}, ${a})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let i=function(e){if(e>=0&&e<8)return e9[e];if(e>=8&&e<16)return e7[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),i=e=>0===e?0:55+40*e;return`rgb(${i(r)}, ${i(n)}, ${i(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);i&&(38===n?r.color=i:r.backgroundColor=i),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),i=t.index+t[0].length;return i<e.length&&r.push({text:e.slice(i),style:n}),r}let to={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:""},ta={ArrowLeft:"\x1bb",ArrowRight:"\x1bf",ArrowUp:"\x1bp",ArrowDown:"\x1bn"};function ts(e,t={}){return"thinking"===e.type&&!e.deferred&&!t.isStreaming&&""===e.thinking.trim()}function tl(e,t={}){return(e.content??[]).filter(e=>!ts(e,t))}function td(e,t={}){let r=tl(e,t),n=r.findLastIndex(e=>"text"!==e.type&&"image"!==e.type);return -1===n?{answerBlocks:r,processBlocks:[]}:{answerBlocks:r.slice(n+1),processBlocks:r.slice(0,n+1)}}function tc(e){return e.filter(e=>"toolCall"===e.type).length}function tu(e){let t=e.stopReason;return"error"===t||"aborted"===t||"string"==typeof e.errorMessage&&e.errorMessage.trim().length>0}function tp(e,t,r=!1){let n={...e,content:t};return r&&(n.usage=void 0),n}function th(e,t,r,n={}){return{kind:"message",source:"disk",messageIndex:t,keyPrefix:n.keyPrefix??"message",attachRef:n.attachRef??!0,showTimestamp:n.showTimestamp??function(e,t,r){if(e[t]?.role!=="assistant")return;let n=!0;for(let r=t+1;r<e.length;r++){let t=e[r].role;if("user"===t)break;if("assistant"===t){n=!1;break}}return n&&r&&t===e.length-1&&(n=!1),n}(e,t,r),...n.messageOverride?{messageOverride:n.messageOverride}:{}}}var tf=r(94514),tg=r(67635),tx=r(31025),tm=r(93631),tv=r(10762),ty=r(49387),tb=r(48368),tj=r(61878),tw=r(92451),tk=r(15161),tS=r(63),tC=r(44478),t_=r(12651),tR=r(41585),tI=r(62791),tT=r(9921),tM=r(66088),tz=r(32316),tE=r(65063),tW=r(7644);let tL="pi-theme",tA="pi-theme-style",tP=new Set,t$=null;function tH(e){return"light"===e||"dark"===e||"system"===e}function tD(e){return"chamber"===e||"fusion"===e}function tF(e){return"system"!==e?e:window.matchMedia?.("(prefers-color-scheme: dark)").matches?"dark":"light"}function tN(){if("u"<typeof document)return"light";let e=document.documentElement.dataset.themeMode??null;if(tH(e))return e;try{let e=localStorage.getItem(tL);if(tH(e))return e}catch{}return document.documentElement.classList.contains("dark")?"dark":"light"}function tO(){if("u"<typeof document)return"light|chamber|light";let e=tN();return`${e}|${function(){if("u"<typeof document)return"chamber";let e=document.documentElement.dataset.themeStyle??null;if(tD(e))return e;try{let e=localStorage.getItem(tA);if(tD(e))return e}catch{}return"chamber"}()}|${document.documentElement.classList.contains("dark")?"dark":"light"}`}function tB(){tP.forEach(e=>e())}function tU(){if("system"!==tN())return;let e=tF("system");document.documentElement.classList.toggle("dark","dark"===e),tB()}function tq(e){return tP.add(e),t$||(t$=window.matchMedia("(prefers-color-scheme: dark)")).addEventListener("change",tU),()=>{tP.delete(e),0===tP.size&&t$&&(t$.removeEventListener("change",tU),t$=null)}}function tK(){let[e,t,r]=(0,i.useSyncExternalStore)(tq,tO,()=>"light|chamber|light").split("|"),n=(0,i.useCallback)((r,n,i)=>{if(e===r&&t===n)return;let o=()=>(function(e,t){let r=tF(e),n=document.documentElement;n.classList.toggle("dark","dark"===r),n.dataset.themeMode=e,n.dataset.themeStyle=t;try{localStorage.setItem(tL,e),localStorage.setItem(tA,t)}catch{}tB()})(r,n),a=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if("function"!=typeof document.startViewTransition||a)return void o();let s=i?.x??window.innerWidth/2,l=i?.y??window.innerHeight/2,d=Math.hypot(Math.max(s,window.innerWidth-s),Math.max(l,window.innerHeight-l));document.startViewTransition(o).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${s}px ${l}px)`,`circle(${d}px at ${s}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,r)=>{n(e,t,r)},[n,t]),a=(0,i.useCallback)((t,r)=>{n(e,t,r)},[e,n]),s=(0,i.useCallback)(e=>{o("dark"===r?"light":"dark",e)},[o,r]);return{theme:r,mode:e,themeStyle:t,toggleTheme:s,setTheme:o,setThemeStyle:a,isDark:"dark"===r}}function tV(e){try{return decodeURIComponent(e)}catch{return e}}function tJ(e){return/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\")?e.replace(/\\/g,"/"):e}function tY(e){return e.replace(/^\/(?:Users|home)\/[^/]+/,"~")}function tZ(e){return tJ(e).split("/").filter(Boolean).map(encodeURIComponent).join("/")}function tX(e){let t=tJ(e).replace(/\/+$/,"");return t.split("/").pop()??t}function tG(e){let t=tJ(e).replace(/\/+$/,""),r=t.lastIndexOf("/");return r<0?"":0===r?"/":2===r&&/^[a-zA-Z]:\//.test(t)?t.slice(0,3):t.slice(0,r)}function tQ(e,t){if(!t)return e;let r=tJ(e),n=tJ(t).replace(/\/$/,"");return r.startsWith(n+"/")?r.slice(n.length+1):e}function t0(e,t){return`${tJ(e).replace(/\/$/,"")}/${t}`}function t1(e){let t=tJ(e),r=/^[a-zA-Z]:\//.test(t),n=t.startsWith("//"),i=t.startsWith("/")&&!r&&!n,o=[];for(let e of t.split("/"))if(e&&"."!==e){if(".."===e){o.length>0&&".."!==o[o.length-1]?o.pop():i||r||n||o.push(e);continue}o.push(e)}let a=o.join("/");return r?a:n?`//${a}`:i?`/${a}`:a}function t2(e,t,r=t){let n,i,o,a,s;if(!e)return null;let l=e.split("#",1)[0].split("?",1)[0].trim();if(!l)return null;let d=null,c=null,u=tV(l),p=u.startsWith("\\\\"),h=tJ(u),f=h.toLowerCase();if(f.startsWith("/api/")||f.startsWith("/_next/")||!p&&h.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/i.test(h)&&!f.startsWith("file:")&&!/^[a-zA-Z]:\//.test(h))return null;if(f.startsWith("file:")?c=(d=function(e){try{let t=new URL(e);if("file:"!==t.protocol)return null;let r=tV(t.pathname);if(t.hostname)return`//${t.hostname}${r.startsWith("/")?r:`/${r}`}`;if(/^\/[a-zA-Z]:\//.test(r))return r.slice(1);return r}catch{return null}}(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=`${tJ(t).replace(/\/+$/,"")}/${h}`,c="relative"),!d)return null;let g=t1(d).replace(/:\d+(?::\d+)?$/,"");return"relative"===c&&r&&(n=t1(g).replace(/\/+$/,""),i=t1(r).replace(/\/+$/,""),a=(o=/^[a-zA-Z]:\//.test(n)||/^[a-zA-Z]:\//.test(i))?n.toLowerCase():n,!(a===(s=o?i.toLowerCase():i)||a.startsWith(`${s}/`)))?null:g}var t4=r(88374),t6=r(5924),t5=r(94764),t8=r(63835),t3=r(84678),t9=r(98164);let t7={...t5.j,attributes:{...t5.j.attributes,code:[["className",/^language-./,"math-inline","math-display"]]},strip:[...t5.j.strip||[],"iframe","object","style","form"]},re=[t3.A,t9.A],rt=[t3.A],rr=[t6.A,[t8.A,t7],[t4.A,{throwOnError:!1,strict:!1}]],rn=[t6.A,[t8.A,t7]];function ri({children:e,className:t,isStreaming:r,cwd:o,onOpenFile:a}){let s=(0,i.useMemo)(()=>{var t;let r,n,i;return r=(t=e).includes("\r\n")?"\r\n":"\n",n=t.split(/\r?\n/),i=null,n.map(e=>{let t=e.match(/^ {0,3}(`{3,}|~{3,})/);if(t){let r=t[1][0],n=t[1].length;return i?r===i.marker&&n>=i.size&&(i=null):i={marker:r,size:n},e}if(i)return e;let n=e.match(/^([ \t]{0,3})\$\$(.+)\$\$[ \t]*$/);if(!n)return e;let o=n[2].trim();return o?`${n[1]}$$${r}${o}${r}${n[1]}$$`:e}).join(r)},[e]);return(0,n.jsx)("div",{className:["markdown-body",t].filter(Boolean).join(" "),children:(0,n.jsx)(tz.oz,{remarkPlugins:re,rehypePlugins:rr,components:{code({className:e,children:t,...i}){let o=e?.replace("language-","").toLowerCase()??"",a=String(t);return e?.includes("language-")||a.includes("\n")?"mermaid"===o?(0,n.jsx)(ro,{code:a.replace(/\n$/,""),isStreaming:r}):(0,n.jsx)(ra,{code:a.replace(/\n$/,""),lang:o}):(0,n.jsx)("code",{className:"markdown-inline-code",...i,children:t})},pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a({href:e,children:t,...r}){delete r.node;let i=a?t2(e,o):null;return i&&a?(0,n.jsx)("a",{href:e,...r,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(),a(i))},children:t}):(0,n.jsx)("a",{href:e,...r,target:"_blank",rel:"noopener noreferrer",children:t})},table:({children:e})=>(0,n.jsx)("div",{className:"markdown-table-wrap",children:(0,n.jsx)("table",{children:e})})},children:s})})}function ro({code:e,isStreaming:t}){let{t:o}=(0,O.s9)(),{isDark:a}=tK(),[s,l]=(0,i.useState)(!1),[d,c]=(0,i.useState)(null),[u,p]=(0,i.useState)(""),[h,f]=(0,i.useState)(null),g=`${a?"dark":"light"}
3
3
  ${e}`;(0,i.useEffect)(()=>{if(!s||t)return;let n=!1;return f(null),(async()=>{let{default:t}=await Promise.all([r.e(279),r.e(2280),r.e(3308)]).then(r.bind(r,43328));if(t.initialize({startOnLoad:!1,securityLevel:"strict",suppressErrorRendering:!0,theme:a?"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);n||(c(o.svg),p(g))})().catch(()=>{n||f(g)}),()=>{n=!0}},[e,g,a,t,s]);let x=(0,n.jsx)("button",{onClick:()=>l(e=>!e),disabled:t,title:o(t?"markdown_previewAfterStreaming":s?"markdown_showSource":"markdown_preview"),className:["markdown-code-action",s?"is-active":""].filter(Boolean).join(" "),children:o(s?"markdown_source":"markdown_previewShort")});if(!s||t)return(0,n.jsx)(ra,{code:e,lang:"mermaid",headerAction:x});let m=h===g?(0,n.jsx)("div",{className:"mermaid-block mermaid-block-error",children:o("markdown_invalidMermaid")}):d&&u===g?(0,n.jsx)("div",{className:"mermaid-block",dangerouslySetInnerHTML:{__html:d}}):(0,n.jsx)("div",{className:"mermaid-block mermaid-block-loading","aria-label":o("markdown_renderingMermaid")});return(0,n.jsxs)("div",{className:"markdown-code-block",children:[(0,n.jsxs)("div",{className:"markdown-code-header",children:[(0,n.jsx)("span",{className:"markdown-code-lang",children:"mermaid"}),x]}),m]})}function ra({code:e,lang:t,headerAction:r}){let{t:o}=(0,O.s9)(),{isDark:a}=tK(),[s,l]=(0,i.useState)(!1);return(0,n.jsxs)("div",{className:"markdown-code-block",children:[(0,n.jsxs)("div",{className:"markdown-code-header",children:[(0,n.jsx)("span",{className:"markdown-code-lang",children:t||"text"}),(0,n.jsxs)("div",{className:"markdown-code-actions",children:[r,(0,n.jsx)("button",{onClick:()=>{eU(e).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},className:"markdown-code-action",children:o(s?"markdown_copied":"markdown_copy")})]})]}),(0,n.jsx)(tE.A,{language:t||"text",style:a?tW.xJ:tW.vs,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal"},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))"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},children:e})]})}r(92619).Buffer;let rs=["result","warning","error","output"];function rl(e){let t=e?.trim()??"";return""===t?null:t}function rd(e){return e.readOnly?{allowed:!1,reason:"readOnly"}:e.busy?{allowed:!1,reason:"busy"}:{allowed:!0}}let rc=/<(read-files|modified-files)>\s*([\s\S]*?)\s*<\/\1>/g,ru=/(?:\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 rp(e){let t=[],r=[],n=e.match(ru),i=n?.[1]??"",o=n?.index===void 0?e:e.slice(0,n.index);return i.replace(rc,(e,n,i)=>{let o=i.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);return"read-files"===n?t.push(...o):r.push(...o),""}),{body:o.trim(),readFiles:t,modifiedFiles:r}}function rh(e){let t,r=[],n=null,i=0,o=0,a=[],s=[],l=()=>({lineNo:null,text:"",type:"empty"}),d=()=>{if(!n){a=[],s=[];return}let e=Math.max(a.length,s.length);for(let t=0;t<e;t++){let e=a[t]?{lineNo:a[t].lineNo,text:a[t].text,type:"removed"}:l(),r=s[t]?{lineNo:s[t].lineNo,text:s[t].text,type:"added"}:l();n.rows.push({type:"line",left:e,right:r})}a=[],s=[]};for(let l of e.split(/\r?\n/)){if(l.startsWith("--- ")){d(),t=rf(l.slice(4));continue}if(l.startsWith("+++ ")){d(),n={oldPath:t,newPath:rf(l.slice(4)),rows:[]},r.push(n);continue}let e=l.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(e){n||(n={rows:[]},r.push(n)),d(),i=Number(e[1]),o=Number(e[2]),n.rows.push({type:"hunk",text:l});continue}if(!n)continue;if(l.startsWith("\\ ")){d(),n.rows.push({type:"hunk",text:l});continue}let c=l[0],u=l.slice(1);" "===c?(d(),n.rows.push({type:"line",left:{lineNo:i++,text:u,type:"context"},right:{lineNo:o++,text:u,type:"context"}})):"-"===c?a.push({lineNo:i++,text:u}):"+"===c?s.push({lineNo:o++,text:u}):""!==l&&(d(),n.rows.push({type:"hunk",text:l}))}d();let c=r.filter(e=>e.rows.some(e=>"line"===e.type));return c.length>0?c:null}function rf(e){return e.split(" ")[0].trim()}let rg={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"},rx={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"},rm={mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",ogv:"video/ogg",mov:"video/quicktime",mkv:"video/x-matroska",avi:"video/x-msvideo"};function rv(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function ry(e){return null!==(rg[rv(e)]??null)}function rb(e){return null!==(rx[rv(e)]??null)}function rj(e){return null!==(rm[rv(e)]??null)}function rw(e){return`/api/files/${tZ(e)}?type=read`}function rk({imageBlocks:e,pathImages:t,pathAudio:r,pathVideo:i}){let o=e??[],a=t??[],s=r??[],l=i??[];return 0===o.length&&0===a.length&&0===s.length&&0===l.length?null:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:8},children:[(o.length>0||a.length>0)&&(0,n.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[o.map((e,t)=>{let r=e.source?"base64"===e.source.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source.url??"":e.data?`data:${e.mimeType};base64,${e.data}`:"";return r?(0,n.jsx)("img",{src:r,alt:"",style:{maxWidth:280,maxHeight:280,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}},`b-${t}`):null}),a.map(e=>(0,n.jsx)("img",{src:rw(e),alt:e,title:e,style:{maxWidth:280,maxHeight:280,borderRadius:6,objectFit:"contain",display:"block",border:"1px solid var(--border)"}},e))]}),s.map(e=>(0,n.jsxs)("div",{style:{minWidth:200,maxWidth:420},children:[(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:e.split(/[\\/]/).pop()}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:rw(e),style:{width:"100%"}})]},e)),l.map(e=>(0,n.jsxs)("div",{style:{minWidth:200,maxWidth:480},children:[(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:4,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:e.split(/[\\/]/).pop()}),(0,n.jsx)("video",{controls:!0,preload:"metadata",src:rw(e),style:{width:"100%",maxHeight:320,borderRadius:6,background:"var(--bg)",border:"1px solid var(--border)"}})]},e))]})}let rS=new Map,rC=new Map;function r_(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&!0===e.deferredHeavy}function rR(e){if(!e)return null;let t=new Date(e),r=new Date,n=t.getFullYear()===r.getFullYear()&&t.getMonth()===r.getMonth()&&t.getDate()===r.getDate(),i=t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});if(n)return i;let o=t.toLocaleDateString([],{month:"short",day:"numeric",year:t.getFullYear()!==r.getFullYear()?"numeric":void 0});return`${o} ${i}`}let rI=(0,i.memo)(function({message:e,isStreaming:t,toolResults:r,toolExecutionSnapshots:i,modelNames:o,cwd:a,onOpenFile:s,entryId:l,onBranchHere:d,onNewSessionFromHere:c,onBranchFromAssistant:u,onNewSessionFromAnswer:p,forking:h,showTimestamp:f,prevTimestamp:g,sessionId:x,toolsActive:m}){if("user"===e.role)return(0,n.jsx)(rT,{message:e,cwd:a,onOpenFile:s,entryId:l,onBranchHere:d,onNewSessionFromHere:c,forking:h});if("assistant"===e.role)return(0,n.jsx)(rM,{message:e,isStreaming:t,toolResults:r,toolExecutionSnapshots:i,modelNames:o,cwd:a,onOpenFile:s,showTimestamp:f,prevTimestamp:g,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,n.jsx)(rJ,{message:e});if("pidance.command"===e.customType)return(0,n.jsx)(rY,{message:e});if("branch_summary"===e.customType)return(0,n.jsx)(rZ,{message:e});if("pidance.activity"===e.customType){var v;let t=rK(v=e.details)&&1===v.version&&"string"==typeof v.kind&&rs.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||rK(v.metadata))?v:null;if(t)return(0,n.jsx)(r0,{message:e,activity:t})}return(0,n.jsx)(r1,{message:e,cwd:a,onOpenFile:s})}return"bashExecution"===e.role?(0,n.jsx)(r4,{message:e,sessionId:x}):null},(e,t)=>e.message===t.message&&e.isStreaming===t.isStreaming&&function(e,t,r){if(t===r||"assistant"!==e.role)return!0;for(let n of e.content??[])if("toolCall"===n.type&&t?.get(n.toolCallId)!==r?.get(n.toolCallId))return!1;return!0}(e.message,e.toolResults,t.toolResults)&&e.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 rT({message:e,cwd:t,onOpenFile:r,entryId:o,onBranchHere:a,onNewSessionFromHere:s,forking:l}){let{t:d}=(0,O.s9)(),[c,u]=(0,i.useState)(!1),[p,h]=(0,i.useState)(!1),f="string"==typeof e.content?e.content:e.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"),g="string"==typeof e.content?[]:e.content.filter(e=>"image"===e.type),x=(0,i.useMemo)(()=>(function(e){let t,r=[],n=[],i=[],o=new Set,a=/(?:^|[\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=a.exec(e));){let e=t[1]?.replace(/[.,;:]+$/,"")??"";!(!e||o.has(e))&&(o.add(e),rj(e)?i.push(e):rb(e)?n.push(e):ry(e)&&r.push(e))}return{images:r,audio:n,video:i}})(f),[f]),m=rR(e.timestamp),v=!!o&&!!a,y=!!o&&!!s;return(0,n.jsxs)("div",{style:{marginBottom:28,display:"flex",flexDirection:"column",alignItems:"flex-end"},onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,n.jsx)("div",{style:{display:"flex",alignItems:"flex-end",gap:6,maxWidth:"85%"},children:(0,n.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,n.jsx)(rk,{imageBlocks:g,pathImages:x.images,pathAudio:x.audio,pathVideo:x.video}),f&&(0,n.jsx)(ri,{className:"markdown-user-message",cwd:t,onOpenFile:r,children:f})]})}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:6,marginTop:3},children:[(0,n.jsx)("div",{style:{display:"flex",gap:3,opacity:+!!c,pointerEvents:c?"auto":"none",transition:"opacity 0.12s"},children:(0,n.jsx)("button",{onClick:()=>{eU(f).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,n.jsx)(tf.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(tg.A,{size:11,strokeWidth:1.8})})}),(v||y)&&(0,n.jsxs)("div",{style:{display:"flex",gap:3,opacity:c||l?1:0,pointerEvents:c||l?"auto":"none",transition:"opacity 0.12s"},children:[v&&(0,n.jsx)("button",{onClick:()=>{a(o,f)},"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,n.jsx)(tx.A,{size:14,strokeWidth:1.8})}),y&&(0,n.jsx)("button",{onClick:()=>{s(o,f)},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,n.jsx)(tm.A,{size:14,strokeWidth:1.8})})]}),m&&(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)"},children:m})]})]})}function rM({message:e,isStreaming:t,toolResults:r,toolExecutionSnapshots:o,modelNames:a,cwd:s,onOpenFile:l,showTimestamp:d,prevTimestamp:c,sessionId:u,entryId:p,onBranchFromAssistant:h,onNewSessionFromAnswer:f,toolsActive:g}){var x;let m,{t:v}=(0,O.s9)(),y=d?rR(e.timestamp):null,b=(e.content??[]).map((e,t)=>({block:e,originalIndex:t})).filter(({block:e})=>!ts(e,{isStreaming:t})),j=b.map(({block:e})=>e),[w,k]=(0,i.useState)(!1),[S,C]=(0,i.useState)(!1),_=(0,i.useRef)(null),[R,I]=(0,i.useState)(null),T=(0,i.useRef)(b);T.current=b;let M=(0,i.useRef)(new Map),[z,E]=(0,i.useState)(new Map),W=(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]),L=(0,i.useMemo)(()=>{let t=new Map;if(!r||!e.timestamp)return t;for(let[n,i]of r)if(i.timestamp&&e.timestamp){let r=Math.round((i.timestamp-e.timestamp)/1e3);r>0&&t.set(n,r)}return t},[r,e.timestamp]),A=(0,i.useMemo)(()=>new Map(o?.map(e=>[e.toolCallId,e])??[]),[o]),P=j.filter(e=>"text"===e.type).map(e=>e.text).join("\n");(0,i.useEffect)(()=>{if(!t){let e=new Date().getTime();E(t=>{let r=new Map(t);for(let[t,n]of M.current)r.has(t)||r.set(t,Math.round((e-n)/1e3));return r}),_.current=null,I(null);return}let e=setInterval(()=>{let e=T.current,t=e.map(({block:e})=>e),r=Date.now();e.forEach(({originalIndex:e})=>{M.current.has(e)||M.current.set(e,r)}),E(t=>{let n=!1,i=new Map(t);for(let t=0;t<e.length-1;t++){let o=e[t].originalIndex,a=e[t+1].originalIndex;if(!i.has(o)&&M.current.has(o)){let e=M.current.get(o),t=M.current.get(a)??r;i.set(o,Math.round((t-e)/1e3)),n=!0}}return n?i:t});let n=0;for(let e of t)"text"===e.type?n+=e.text?.length??0:"thinking"===e.type?n+=e.thinking?.length??0:"toolCall"===e.type&&(n+=JSON.stringify(e.input??{}).length);if(0===n)return;null===_.current&&(_.current=r);let i=(r-_.current)/1e3;i>.5&&I(n/4/i)},300);return()=>clearInterval(e)},[t]);let $=e.stopReason,H="string"==typeof e.errorMessage?e.errorMessage.trim():"",D="error"===$||H.length>0&&"end_turn"!==$&&"toolUse"!==$&&"length"!==$,F="aborted"===$,N=D||F||H.length>0;return 0!==j.length||t||N?(0,n.jsxs)("div",{style:{marginBottom:30},onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:[(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-dim)",marginBottom:8,display:"flex",alignItems:"center",gap:6},children:[e.provider&&(0,n.jsx)("span",{children:a?.[`${e.provider}:${e.model}`]??a?.[e.model]??e.model}),t&&(()=>{let e,t=0;for(let e of j)"text"===e.type?t+=e.text?.length??0:"thinking"===e.type?t+=e.thinking?.length??0:"toolCall"===e.type&&(t+=JSON.stringify(e.input??{}).length);let r=Math.round(t/4);return(0,n.jsx)(n.Fragment,{children:r>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:"var(--text)"},title:v("message_estimatedTokensStreaming"),children:[(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:2,fontSize:11,fontWeight:400},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),r]}),null!==R&&(e=R>=50?"#53b3cb":R>=30?"#9bc53d":R>=15?"#f9c22e":"#e01a4f",(0,n.jsxs)("span",{style:{marginLeft:6,padding:"1px 6px",borderRadius:4,background:e,color:"#fff",fontSize:11,fontWeight:400},children:[R.toFixed(1)," t/s"]}))]})})})()]}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:b.map(({block:i,originalIndex:o})=>(0,n.jsx)(rz,{block:i,toolResults:r,toolExecutionMap:A,isStreaming:t,streamingDuration:z.get(o)??("thinking"===i.type?W:void 0),toolCallDurations:L,cwd:s,onOpenFile:l,sessionId:u,entryId:p,blockIndex:o,toolsActive:g,startedAt:e.timestamp},`${p??"stream"}-${o}`))}),!t&&N&&(0,n.jsxs)("div",{role:"alert",style:{marginTop:10,padding:"10px 12px",borderRadius:8,border:`1px solid ${F?"var(--status-warning-border, var(--border))":"var(--status-danger-border, var(--border))"}`,background:F?"var(--status-warning-bg, var(--bg-subtle))":"var(--status-danger-bg, var(--bg-subtle))",color:F?"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,n.jsxs)("div",{style:{fontWeight:600,marginBottom:4*!!H},children:[F?v("message_aborted"):v("message_apiError"),$&&"error"!==$&&"aborted"!==$?(0,n.jsxs)("span",{style:{fontWeight:400,opacity:.8},children:[" (",$,")"]}):null]}),H?(0,n.jsx)("div",{children:H}):null]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:4},children:[e.usage&&!t&&(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)"},children:(x=e.usage,m=[],x.input&&m.push(`${x.input.toLocaleString()} in`),x.output&&m.push(`${x.output.toLocaleString()} out`),x.cacheRead&&m.push(`${x.cacheRead.toLocaleString()} cache`),x.cost?.total&&m.push(`$${x.cost.total.toFixed(4)}`),m.join(" \xb7 "))}),P&&!t&&(0,n.jsx)("button",{onClick:()=>{eU(P).then(()=>{C(!0),setTimeout(()=>C(!1),1500)})},"data-tooltip":v("message_copyAnswer"),className:"instant-tooltip","aria-label":v("message_copyAnswer"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 6px",height:22,width:22,background:"none",border:"none",borderRadius:5,color:S?"var(--accent)":"var(--text-dim)",cursor:"pointer",transition:"opacity 0.12s, color 0.12s",opacity:+!!w,pointerEvents:w?"auto":"none"},onMouseEnter:e=>{S||(e.currentTarget.style.color="var(--accent)")},onMouseLeave:e=>{S||(e.currentTarget.style.color="var(--text-dim)")},children:S?(0,n.jsx)(tf.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(tg.A,{size:11,strokeWidth:1.8})}),p&&!t&&h&&(0,n.jsx)("button",{onClick:()=>{h(p)},"data-tooltip":v("message_branchFromAnswerTooltip"),className:"instant-tooltip","aria-label":v("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:+!!w,pointerEvents:w?"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,n.jsx)(tx.A,{size:14,strokeWidth:1.8})}),p&&!t&&f&&(0,n.jsx)("button",{onClick:()=>{f(p)},"data-tooltip":v("message_newSessionFromAnswerTooltip"),className:"instant-tooltip","aria-label":v("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:+!!w,pointerEvents:w?"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,n.jsx)(tm.A,{size:14,strokeWidth:1.8})}),y&&!t&&(0,n.jsx)("span",{style:{fontSize:10,color:"var(--text-dim)",marginLeft:"auto"},children:y})]})]}):null}function rz({block:e,toolResults:t,toolExecutionMap:r,isStreaming:i,streamingDuration:o,toolCallDurations:a,cwd:s,onOpenFile:l,sessionId:d,entryId:c,blockIndex:u,toolsActive:p,startedAt:h}){if("text"===e.type)return(0,n.jsx)(rE,{block:e,isStreaming:i,cwd:s,onOpenFile:l});if("thinking"===e.type)return(0,n.jsx)(rL,{block:e,duration:o,isStreaming:i,sessionId:d,entryId:c,blockIndex:u});if("toolCall"===e.type){let i=t?.get(e.toolCallId),o=a?.get(e.toolCallId);return(0,n.jsx)(rA,{block:e,result:i,snapshot:r?.get(e.toolCallId),duration:o,sessionId:d,pending:!i&&!0===p,startedAt:i||!0!==p?void 0:h})}return null}function rE({block:e,isStreaming:t,cwd:r,onOpenFile:i}){return(0,n.jsx)(ri,{isStreaming:t,cwd:r,onOpenFile:i,children:e.text})}let rW="min(320px, 45vh)";function rL({block:e,duration:t,isStreaming:r,sessionId:o,entryId:a,blockIndex:s}){let{t:l}=(0,O.s9)(),[d,c]=(0,i.useState)(r??!1),[u,p]=(0,i.useState)(null),[h,f]=(0,i.useState)(!1),[g,x]=(0,i.useState)(null),m=(0,i.useRef)(null),v=(0,i.useRef)(!0);(0,i.useEffect)(()=>{c(r??!1)},[r]);let y=h?l("message_thinkingLoading"):g??(e.deferred?u:e.thinking),b=async()=>{if(e.deferred&&null===u&&!h){if(!o||!a)return void x(l("message_thinkingUnavailable"));f(!0),x(null);try{p(await function(e,t,r){let n=`${e}:${t}:${r}`,i=rS.get(n);if(i)return rS.delete(n),rS.set(n,i),i;let o=fetch(`/api/sessions/${encodeURIComponent(e)}/entries/${encodeURIComponent(t)}/thinking?blockIndex=${r}`).then(async e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();if("string"!=typeof t.thinking)throw Error("Invalid thinking response");return t.thinking}).catch(e=>{throw rS.delete(n),e});if(rS.set(n,o),rS.size>100){let e=rS.keys().next().value;e&&rS.delete(e)}return o}(o,a,s))}catch(e){x(e instanceof Error?e.message:String(e))}finally{f(!1)}}};(0,i.useEffect)(()=>{d&&b()},[d]);let j=async()=>{let t=!d;c(t),t&&e.deferred&&null===u&&await b()};return(0,i.useEffect)(()=>{let e=m.current;d&&e&&v.current&&(e.scrollTop=e.scrollHeight)},[d,y]),(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:6,overflow:"hidden",fontSize:13},children:[(0,n.jsxs)("button",{onClick:()=>void j(),"aria-expanded":d,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,n.jsx)("span",{children:l("chat_thinking")}),void 0!==t&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--text-dim)",fontVariantNumeric:"tabular-nums"},children:rF(1e3*t)})]}),d&&(0,n.jsx)("div",{ref:m,tabIndex:0,onScroll:e=>{let t=e.currentTarget;v.current=t.scrollHeight-t.scrollTop-t.clientHeight<=24},style:{padding:"8px 10px",color:g?"var(--error-text)":"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",background:"var(--bg-panel)",borderTop:"1px solid var(--border)",maxHeight:rW,overflow:"auto",overscrollBehavior:"contain"},children:y})]})}function rA({block:e,result:t,snapshot:r,duration:o,sessionId:a,pending:s,startedAt:l}){var d,c;let u,p,h,{t:f}=(0,O.s9)(),[g,x]=(0,i.useState)(null),[m,v]=(0,i.useState)(()=>Date.now()),[y,b]=(0,i.useState)(void 0),[j,w]=(0,i.useState)(!1),k=(0,i.useRef)(null),S=(0,i.useRef)(!0),C=r?.status==="running"||!0===s,_=g??C,R="edit"===(u=e.toolName.toLowerCase())||u.startsWith("edit_")||u.endsWith(".edit")||u.endsWith("_edit")||u.includes("str_replace")||u.includes("replace_editor"),I=t&&void 0!==y?{...t,details:y}:t,T=I&&!I.isError?function(e){let t=e.details;if(!rK(t))return null;let r="string"==typeof t.patch?t.patch:null;if(r)return{text:r};let n="string"==typeof t.diff?t.diff:null;return n?{text:n}:null}(I):null,M=I?I.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n"):null,z=null!==M&&("(no output)"===M.trim()||""===M.trim()),E=I?.isError??!1,W=r?.status,L=function(e,t,r=!1,n=!1){return"running"===e||n?"var(--status-running)":"success"===e||r&&!t?"var(--status-success)":"error"===e||t?"var(--status-danger)":"cancelled"===e?"var(--text-dim)":"var(--text-muted)"}(W,E,null!=I,s),A=function(e,t){if(t?.command)return t.command;let r=e.input;if(r&&"object"==typeof r&&"command"in r){let e=r.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 n=e;let i=n.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,r),P=rP(r?.renderedCallLines??e.renderedCallLines),$=rP(r?.renderedLines),H=rP(r?.renderedResultLines??I?.renderedResultLines),D=r?Math.max(0,("running"===r.status?m:r.endedAt??r.startedAt)-r.startedAt):void 0!==l?!0===s||void 0===o?Math.max(0,m-l):1e3*o:void 0===o?void 0:1e3*o;return(0,i.useEffect)(()=>{if(!C)return;let e=setInterval(()=>v(Date.now()),500);return()=>clearInterval(e)},[C]),(0,i.useEffect)(()=>{let e=k.current;_&&e&&S.current&&(e.scrollTop=e.scrollHeight)},[_,r?.output,r?.renderedLines,$]),(0,i.useEffect)(()=>{if(!_||!t||!a||!r_(t.details)||void 0!==y||j)return;let r=!1;return w(!0),(function(e,t){let r=`${e}:${t}`,n=rC.get(r);if(n)return rC.delete(r),rC.set(r,n),n;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 rC.delete(r),e});if(rC.set(r,i),rC.size>50){let e=rC.keys().next().value;e&&rC.delete(e)}return i})(a,e.toolCallId).then(e=>{r||b(e)}).catch(()=>{r||b(t.details)}).finally(()=>{r||w(!1)}),()=>{r=!0}},[_,t,a,e.toolCallId,y,j]),(0,n.jsxs)("div",{style:{borderRadius:"var(--radius-md)",overflow:"hidden",fontSize:12,border:"1px solid var(--border)",borderLeft:`3px solid ${L}`,background:"var(--tool-bg)"},children:[(0,n.jsxs)("button",{onClick:()=>x(!_),"aria-expanded":_,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,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:5,flexShrink:0},children:[(d=e.toolName,c=L,p=d.toLowerCase(),h={size:12,color:c},"bash"===p||"exec_command"===p||"terminal"===p||p.includes("shell")?(0,n.jsx)(tv.A,{...h}):"edit"===p||"write"===p||p.includes("edit")||p.includes("write")?(0,n.jsx)(ty.A,{...h}):"read"===p||"multi_read"===p||p.includes("read")||p.includes("view")?(0,n.jsx)(tb.A,{...h}):"grep"===p||"search"===p||p.includes("grep")||p.includes("search")||p.includes("find")?(0,n.jsx)(tj.A,{...h}):p.includes("web")||p.includes("fetch")||p.includes("http")||p.includes("url")?(0,n.jsx)(tw.A,{...h}):p.includes("todo")||p.includes("task")?(0,n.jsx)(tk.A,{...h}):p.includes("notify")||p.includes("message")?(0,n.jsx)(tS.A,{...h}):p.includes("approve")||p.includes("permission")||p.includes("confirm")?(0,n.jsx)(tC.A,{...h}):(0,n.jsx)(tv.A,{...h})),C&&(0,n.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:L},"aria-hidden":"true"})]}),(0,n.jsx)("span",{style:{color:L,fontFamily:"var(--font-mono)",fontWeight:600,fontSize:11,flexShrink:0},children:e.toolName}),(0,n.jsx)("span",{title:A,style:{color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1,minWidth:0},children:A}),W&&(0,n.jsx)("span",{style:{color:L,fontSize:10,fontWeight:600,flexShrink:0},children:f(rD[W])}),void 0!==D&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",flexShrink:0,fontVariantNumeric:"tabular-nums"},children:rF(D)}),(0,n.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:_?"rotate(180deg)":"none",transition:"transform 0.15s"},children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})]}),_&&A&&(0,n.jsxs)("div",{style:{padding:"8px 10px",borderTop:`1px solid color-mix(in srgb, ${L} 22%, var(--border))`,background:"var(--bg-subtle)"},children:[(0,n.jsx)("div",{style:{marginBottom:4,color:"var(--text-dim)",fontSize:10,textTransform:"uppercase",letterSpacing:"0.08em"},children:f("message_toolCommand")}),(0,n.jsx)("code",{style:{display:"block",maxHeight:rW,overflow:"auto",overscrollBehavior:"contain",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:11.5,lineHeight:1.55,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:A})]}),_&&P&&(0,n.jsx)(rH,{lines:P,statusColor:L}),_&&!R&&(0,n.jsx)("div",{style:{margin:0,padding:"8px 10px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,maxHeight:rW,overflow:"auto",overscrollBehavior:"contain",background:"var(--bg-subtle)",borderTop:`1px solid color-mix(in srgb, ${L} 20%, var(--border))`,display:"flex",flexDirection:"column",gap:3},children:(function(e){let t=[];for(let[r,n]of Object.entries(e)){if(null==n)continue;let e="string"==typeof n?n:"number"==typeof n||"boolean"==typeof n?String(n):"";if(e)t.push({key:r,value:e});else try{t.push({key:r,value:JSON.stringify(n).slice(0,200)})}catch{t.push({key:r,value:"[…]"})}}return t})(e.input).filter(e=>"command"!==e.key).map(e=>(0,n.jsxs)("div",{style:{display:"flex",gap:8,minWidth:0},children:[(0,n.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,n.jsx)("span",{style:{minWidth:0,flex:1,overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:e.value})]},e.key))}),_&&r&&(0,n.jsxs)("div",{style:{borderTop:`1px solid color-mix(in srgb, ${L} 24%, var(--border))`,background:"var(--tool-bg)"},children:[(0,n.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,n.jsx)("span",{children:f("message_toolLiveOutput")}),r.truncated&&(0,n.jsx)("span",{style:{color:"var(--warning)",textTransform:"none",letterSpacing:0},children:f("message_toolOutputTruncated")})]}),(0,n.jsx)("pre",{ref:k,tabIndex:0,onScroll:e=>{let t=e.currentTarget;S.current=t.scrollHeight-t.scrollTop-t.clientHeight<=24},style:{margin:0,padding:"4px 10px 10px",maxHeight:rW,overflow:"auto",overscrollBehavior:"contain",color:$||r.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:$?r$($,"tool-live"):r.output||f("message_toolWaitingOutput")})]}),_&&I&&(H?(0,n.jsx)(rH,{lines:H,statusColor:L}):j&&r_(t?.details)&&!T?(0,n.jsx)("div",{style:{padding:"8px 10px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:f("message_thinkingLoading")}):T?(0,n.jsx)(rN,{diff:T}):(0,n.jsx)(rV,{text:M??"",isEmpty:z,isError:E}))]})}function rP(e){return Array.isArray(e)&&e.length>0&&e.every(e=>"string"==typeof e)?e:null}function r$(e,t){return e.map((r,i)=>{var o;return(0,n.jsxs)("span",{children:[(o=`${t}-${i}`,ti(r).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${o}-${t}`):e.text)),i<e.length-1?"\n":null]},`${t}-${i}`)})}function rH({lines:e,statusColor:t}){return(0,n.jsx)("pre",{tabIndex:0,style:{margin:0,padding:"8px 10px",maxHeight:rW,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:r$(e,"tool-rendered")})}let rD={running:"message_toolStatusRunning",success:"message_toolStatusSuccess",error:"message_toolStatusError",cancelled:"message_toolStatusCancelled"};function rF(e){let t=Number.isFinite(e)?Math.max(0,e):0;if(t<1e3)return`${Math.floor(t)}ms`;let r=t/1e3;if(r<10)return`${r.toFixed(1)}s`;if(r<60)return`${Math.round(r)}s`;let n=Math.round(r);return`${Math.floor(n/60)}m ${String(n%60).padStart(2,"0")}s`}function rN({diff:e}){return(0,n.jsx)("div",{style:{borderTop:"1px solid var(--status-success-border)",background:"var(--bg)"},children:(0,n.jsx)(rO,{text:e.text})})}function rO({text:e}){let t=(0,i.useMemo)(()=>rh(e),[e]);if(!t)return(0,n.jsx)(rq,{text:e});let r=t.length>1;return(0,n.jsx)("div",{style:{maxHeight:560,overflowY:"auto",overflowX:"hidden",background:"var(--bg)"},children:t.map((e,t)=>(0,n.jsxs)("div",{style:{minWidth:0,borderTop:0===t?"none":"1px solid var(--border)",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55},children:[r&&(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)",position:"sticky",top:0,zIndex:1,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)(rB,{title:e.oldPath||"Before",side:"left"}),(0,n.jsx)(rB,{title:e.newPath||"After",side:"right"})]}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)"},children:e.rows.map((e,t)=>"hunk"===e.type?null:(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)(rU,{cell:e.left,side:"left"}),(0,n.jsx)(rU,{cell:e.right,side:"right"})]},t))})]},t))})}function rB({title:e,side:t}){return(0,n.jsx)("div",{title:e,style:{padding:"5px 10px",color:"var(--text-dim)",borderRight:"left"===t?"1px solid var(--border)":"none",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})}function rU({cell:e,side:t}){let r="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,n.jsxs)("div",{style:{display:"flex",minWidth:0,background:r,borderRight:"left"===t?"1px solid var(--border)":"none"},children:[(0,n.jsx)("span",{style:{width:42,padding:"0 6px",textAlign:"right",color:"var(--text-dim)",userSelect:"none",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",flexShrink:0},children:e.lineNo??""}),(0,n.jsx)("span",{style:{width:18,padding:"0 5px",color:o,userSelect:"none",fontWeight:"context"===e.type||"empty"===e.type?400:700,flexShrink:0},children:i}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 10px 0 0",color:"empty"===e.type?"var(--text-dim)":"var(--text)",whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.text||"\xa0"})]})}function rq({text:e}){let t=e.split(/\r?\n/);return(0,n.jsx)("div",{style:{maxHeight:520,overflowY:"auto",overflowX:"hidden",fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:0},children:t.map((e,t)=>{let r=e.startsWith("@@")?"hunk":e.startsWith("+")&&!e.startsWith("+++")?"added":e.startsWith("-")&&!e.startsWith("---")?"removed":"context";return(0,n.jsxs)("div",{style:{display:"flex",background:"added"===r?"var(--diff-added-bg)":"removed"===r?"var(--diff-removed-bg)":"hunk"===r?"var(--diff-hunk-bg)":"transparent",borderLeft:"added"===r?"3px solid var(--diff-added-border)":"removed"===r?"3px solid var(--diff-removed-border)":"hunk"===r?"3px solid var(--accent)":"3px solid transparent"},children:[(0,n.jsx)("span",{style:{width:48,padding:"0 8px",color:"var(--text-dim)",background:"var(--bg-panel)",borderRight:"1px solid var(--border)",textAlign:"right",userSelect:"none",flexShrink:0},children:t+1}),(0,n.jsx)("span",{style:{padding:"0 10px",whiteSpace:"pre-wrap",overflowWrap:"anywhere",color:"added"===r?"var(--diff-added-text)":"removed"===r?"var(--diff-removed-text)":"hunk"===r?"var(--accent)":"var(--text)"},children:e||"\xa0"})]},t)})})}function rK(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function rV({text:e,isEmpty:t,isError:r}){let{t:i}=(0,O.s9)();return(0,n.jsx)("div",{style:{borderTop:`1px solid ${r?"var(--status-danger-border)":"var(--status-success-border)"}`,background:r?"var(--status-danger-bg)":"var(--bg-subtle)"},children:(0,n.jsx)("pre",{style:{margin:0,padding:"8px 10px",color:r?"var(--error-text)":t?"var(--text-dim)":"var(--text-muted)",fontSize:12,lineHeight:1.5,overflow:"auto",maxHeight:400,background:"var(--bg)",whiteSpace:"pre-wrap",wordBreak:"break-all",fontStyle:t?"italic":"normal",opacity:t?.6:1},children:t?`(${i("message_noOutput").toLowerCase()})`:e})})}function rJ({message:e}){let{t}=(0,O.s9)(),r=r2(e.content),o=(0,i.useMemo)(()=>rp(r),[r]),a=rR(e.timestamp);return(0,n.jsx)("div",{style:{marginBottom:16},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:t("message_compaction")}),a&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:a})]}),(0,n.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:15,fontWeight:700,lineHeight:1.35},children:t("message_conversationCompacted")}),(0,n.jsx)("div",{style:{marginTop:3,marginBottom:10,color:"var(--text)",fontSize:14,lineHeight:1.5},children:t("message_conversationCompactedDescription")}),o.body?(0,n.jsx)(ri,{className:"markdown-compaction-message",children:o.body}):(0,n.jsxs)("span",{style:{color:"var(--text-dim)",fontSize:12},children:["(",t("message_noSummary"),")"]}),(0,n.jsx)(rX,{readFiles:o.readFiles,modifiedFiles:o.modifiedFiles})]})]})})}function rY({message:e}){let{t}=(0,O.s9)(),r=r2(e.content),i=e.details?.ok!==!1,o=e.details?.result,a=rR(e.timestamp);return(0,n.jsxs)("div",{style:{marginBottom:12},children:[(0,n.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,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:t("message_command")}),(0,n.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--text)",overflowWrap:"anywhere"},children:r}),i&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:"✓"}),!i&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:"✗"}),a&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:10,whiteSpace:"nowrap"},children:a})]}),o&&(0,n.jsx)("div",{style:{marginTop:4,padding:"0 4px",color:"var(--text-muted)",fontSize:12},children:o})]})}function rZ({message:e}){let{t}=(0,O.s9)(),r=r2(e.content),o=(0,i.useMemo)(()=>rp(r),[r]),a=(0,i.useMemo)(()=>(function(e){if(!e||"object"!=typeof e)return null;let t=e.details;if(!t||"object"!=typeof t)return null;let r=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e):[],n=r(t.readFiles),i=r(t.modifiedFiles);return 0===n.length&&0===i.length?null:{readFiles:n,modifiedFiles:i}})(e.details),[e.details]),s=a?.readFiles??o.readFiles,l=a?.modifiedFiles??o.modifiedFiles,d=rR(e.timestamp);return(0,n.jsx)("div",{style:{marginBottom:16},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderLeft:"2px solid var(--accent)",borderRadius:8,overflow:"hidden",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)"},children:[(0,n.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,n.jsx)("line",{x1:"6",y1:"3",x2:"6",y2:"15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"M18 9a9 9 0 0 1-9 9"})]}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:t("message_branchSummary")}),d&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:d})]}),(0,n.jsxs)("div",{style:{padding:"11px 13px 12px"},children:[(0,n.jsx)("div",{style:{marginBottom:10,color:"var(--text-muted)",fontSize:13,lineHeight:1.5},children:t("message_branchSummaryDescription")}),o.body?(0,n.jsx)(ri,{className:"markdown-compaction-message",children:o.body}):(0,n.jsxs)("span",{style:{color:"var(--text-dim)",fontSize:12},children:["(",t("message_noSummary"),")"]}),(0,n.jsx)(rX,{readFiles:s,modifiedFiles:l})]})]})})}function rX({readFiles:e,modifiedFiles:t}){let{t:r}=(0,O.s9)();if(0===e.length+t.length)return null;let i=[];return e.length>0&&i.push(`${e.length} ${r("message_read").toLowerCase()}`),t.length>0&&i.push(`${t.length} ${r("message_modified").toLowerCase()}`),(0,n.jsxs)("details",{className:"compaction-file-details",children:[(0,n.jsxs)("summary",{children:[r("message_fileContext"),": ",i.join(", ")]}),t.length>0&&(0,n.jsx)(rG,{title:r("message_modifiedFiles"),files:t}),e.length>0&&(0,n.jsx)(rG,{title:r("message_readFiles"),files:e})]})}function rG({title:e,files:t}){return(0,n.jsxs)("div",{className:"compaction-file-section",children:[(0,n.jsx)("div",{className:"compaction-file-title",children:e}),(0,n.jsx)("ul",{className:"compaction-file-list",children:t.map(e=>(0,n.jsx)("li",{children:e},e))})]})}let rQ={result:{color:"var(--status-success)",border:"var(--status-success-border)",background:"var(--status-success-bg)",Icon:t_.A},warning:{color:"var(--status-warning)",border:"var(--status-warning-border)",background:"var(--status-warning-bg)",Icon:tR.A},error:{color:"var(--error-text)",border:"var(--status-danger-border)",background:"var(--status-danger-bg)",Icon:tI.A},output:{color:"var(--accent)",border:"var(--border)",background:"var(--bg)",Icon:tv.A}};function r0({message:e,activity:t}){let{t:r}=(0,O.s9)(),[o,a]=(0,i.useState)(!1),s=rR(e.timestamp),{color:l,border:d,background:c,Icon:u}=rQ[t.kind],p=""!==t.content.trim(),h=function(e){if(!e)return[];let t=[];for(let[r,n]of Object.entries(e)){if(t.length>=4)break;"string"==typeof n?t.push([r,n]):("number"==typeof n||"boolean"==typeof n)&&t.push([r,String(n)])}return t}(t.metadata);return(0,n.jsx)("div",{style:{marginBottom:16},children:(0,n.jsxs)("section",{"aria-label":`${t.kind}: ${t.title}`,style:{border:`1px solid ${d}`,borderLeft:`2px solid ${l}`,borderRadius:8,overflow:"hidden",background:c},children:[(0,n.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,n.jsx)("span",{style:{display:"flex",color:l,flexShrink:0},"aria-hidden":"true",children:(0,n.jsx)(u,{size:12,strokeWidth:1.8})}),(0,n.jsx)("span",{style:{color:l,fontFamily:"var(--font-mono)",fontSize:10,fontWeight:650,letterSpacing:.6,textTransform:"uppercase",flexShrink:0},children:t.kind}),(0,n.jsx)("span",{style:{color:"var(--text)",fontSize:13,fontWeight:600,minWidth:0,overflowWrap:"anywhere"},children:t.title}),s&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10,flexShrink:0},children:s})]}),p&&(0,n.jsx)("pre",{tabIndex:0,style:{margin:0,padding:"8px 12px",maxHeight:rW,overflow:"auto",color:"var(--text)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",wordBreak:"break-word"},children:t.content}),(0,n.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,n.jsx)("button",{onClick:()=>{eU(p?t.content:t.title).then(()=>{a(!0),setTimeout(()=>a(!1),1500)})},title:r("message_copy"),"aria-label":r("message_copy"),style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"3px 7px",border:"none",background:"none",color:o?"var(--accent)":"var(--text-dim)",cursor:"pointer"},children:o?(0,n.jsx)(tf.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(tg.A,{size:11,strokeWidth:1.8})}),t.source&&(0,n.jsx)("span",{style:{overflowWrap:"anywhere"},children:t.source}),t.requestId&&(0,n.jsx)("span",{style:{overflowWrap:"anywhere"},title:t.requestId,children:t.requestId}),h.map(([e,t])=>(0,n.jsxs)("span",{style:{overflowWrap:"anywhere"},children:[e,"=",t]},e))]})]})})}function r1({message:e,cwd:t,onOpenFile:r}){var o,a,s;let l,{t:d}=(0,O.s9)(),c=!1===e.display,[u,p]=(0,i.useState)(!c),[h,f]=(0,i.useState)(!1),[g,x]=(0,i.useState)(!1),m=r2(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):"",j=e.customType||d("message_extensionDefaultType"),w=rR(e.timestamp),k=rP(e.renderedLines);return(0,n.jsx)("div",{style:{marginBottom:16},children:(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:8,overflow:"hidden",background:c?"var(--bg-subtle)":"var(--bg)",opacity:k||!c||u?1:.82},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 10px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:11,fontWeight:650},children:j}),c&&(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:d("message_hiddenExtensionMessage")}),w&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--text-dim)",fontSize:10},children:w})]}),k?(0,n.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:r$(k,"custom-rendered")}):u?(0,n.jsxs)("div",{style:{padding:"6px 9px"},children:[v.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap",marginBottom:8*!!m},children:v.map((e,t)=>{var r;let i=(r=e).source?"base64"===r.source.type?`data:${r.source.media_type};base64,${r.source.data}`:r.source.url??"":r.data?`data:${r.mimeType};base64,${r.data}`:"";return i?(0,n.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,n.jsx)(ri,{className:"markdown-custom-message",cwd:t,onOpenFile:r,children:m}):(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:12},children:d("message_noMessages")})]}):(0,n.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?(a=m,s=d("message_noExtensionMessage"),(l=a.replace(/\s+/g," ").trim())?l.length>140?`${l.slice(0,140)}...`:l:s):d("message_showExtensionMessage")}),!k&&(0,n.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,n.jsx)("button",{onClick:()=>{eU(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:g?"var(--accent)":"var(--text-dim)",cursor:"pointer"},children:g?(0,n.jsx)(tf.A,{size:11,strokeWidth:1.8}):(0,n.jsx)(tg.A,{size:11,strokeWidth:1.8})}):null,(y||c)&&(0,n.jsx)("button",{onClick:()=>{c?p(e=>!e):f(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,n.jsx)(tT.A,{size:12,strokeWidth:1.8}):(0,n.jsx)(tM.A,{size:12,strokeWidth:1.8})})]}),!k&&y&&(c&&u||!c&&h)&&(0,n.jsx)("pre",{style:{margin:0,padding:"9px 10px",borderTop:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",maxHeight:360,overflow:"auto",fontFamily:"var(--font-mono)"},children:b})]})})}function r2(e){return"string"==typeof e?e:e.filter(e=>"text"===e.type).map(e=>e.text).join("\n")}function r4({message:e,sessionId:t}){let{t:r}=(0,O.s9)(),[o,a]=(0,i.useState)(null),[s,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,f=e.truncated&&h&&null===o,g=o??e.output;async function x(){if(h){l(!0),c(null);try{let e=await fetch(h),t=await e.json();t.success?a(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:g?[{type:"text",text:g}]:[],isError:p,timestamp:e.timestamp};return(0,n.jsxs)("div",{style:{margin:"6px 0"},children:[(0,n.jsx)(rA,{block:v,result:y,pending:u,startedAt:u?e.timestamp:void 0}),e.truncated&&h&&(0,n.jsxs)("div",{style:{padding:"4px 10px",fontSize:11,marginTop:-1},children:[f&&(0,n.jsx)("button",{onClick:x,disabled:s,style:{background:"none",border:"none",color:"var(--accent)",cursor:s?"default":"pointer",fontSize:11,padding:0,textDecoration:"underline"},children:r(s?"message_loadingOutput":"message_viewFullOutput")}),(0,n.jsx)("a",{href:`${h}&download=1`,style:{marginLeft:10*!!f,color:"var(--accent)",fontSize:11,textDecoration:"underline"},children:r("message_downloadFullOutput")}),d&&(0,n.jsxs)("span",{style:{marginLeft:6,color:"var(--text-dim)",fontSize:11},children:["(",d,")"]})]})]})}let r6=null,r5=!1,r8=null,r3=new Set;function r9(){for(let e of r3)e()}async function r7(){let e=await fetch("/api/preferences",{cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();return t.prefs&&"object"==typeof t.prefs&&!Array.isArray(t.prefs)?t.prefs:{}}function ne(){return r5&&r6?Promise.resolve(r6):(r8||(r8=r7().then(e=>(r6=e,r5=!0,r8=null,r9(),e)).catch(e=>(console.error("[pidance] failed to load server preferences:",e),r6=r6??{},r5=!0,r8=null,r9(),r6))),r8)}function nt(){return r6??{}}let nr=null;function nn(e,t){if(!r5)return void ne().then(()=>nn(e,t));let r=e.split("."),n=nt();for(let e=0;e<r.length-1;e++){let t=r[e],i=n[t];("object"!=typeof i||null===i||Array.isArray(i))&&(n[t]={}),n=n[t]}let i=r[r.length-1];null==t?delete n[i]:n[i]=t,r9(),nr&&clearTimeout(nr),nr=setTimeout(()=>{nr=null,fetch("/api/preferences",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({prefs:nt()})}).catch(e=>{console.error("[pidance] failed to save server preferences:",e)})},400)}function ni(e){let t=e.split("."),r=nt();for(let e of t){if("object"!=typeof r||null===r)return;r=r[e]}return r}function no(){nr&&(clearTimeout(nr),nr=null,fetch("/api/preferences",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({prefs:nt()})}).catch(()=>void 0))}function na(){let[e,t]=(0,i.useState)(nt());return(0,i.useRef)(e).current=e,(0,i.useEffect)(()=>{let e=()=>t(nt());return r3.add(e),ne().then(e=>{(r6===e||0===Object.keys(e).length)&&t(nt())}),()=>{r3.delete(e)}},[]),(0,i.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&r7().then(e=>{r6=e,r5=!0,r9()}).catch(()=>void 0)};return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),window.addEventListener("beforeunload",()=>no()),()=>{window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e),window.removeEventListener("beforeunload",()=>no())}},[]),e}let ns=new Map;function nl(e){return{value:e.value,images:e.images.map(e=>({...e}))}}function nd(e){return!e.value&&0===e.images.length}function nc(e){return`drafts.${e}`}function nu(e){let t=ns.get(e);return t?nl(t):null}function np(e,t){if(nd(t)){ns.delete(e),nn(nc(e),void 0);return}ns.set(e,nl(t)),nn(nc(e),nl(t))}function nh(e){ns.delete(e),nn(nc(e),void 0)}function nf(e){let t=/(?:^|\s)@"([^"\n]*)$/.exec(e);if(t)return{start:e.length-(t[1].length+2),query:t[1],quoted:!0};let r=/(?:^|\s)@([^\s"]*)$/.exec(e);return r?{start:e.length-(r[1].length+1),query:r[1],quoted:!1}:null}function ng(e){let t=0;for(let r=0;r<e.length;r++)"/"===e[r]&&t++;return t}function nx(e,t){if(!e)return!0;let r=0;for(let n=0;n<t.length&&r<e.length;n++)t[n]===e[r]&&r++;return r===e.length}function nm(e,t){let r=t?`${e}/`:e;return r.includes(" ")?`@"${r}" `:`@${r} `}let nv="var(--text-dim)";function ny({size:e=14,open:t=!1}){return t?(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,n.jsx)("path",{d:"M1 4.5A1 1 0 0 1 2 3.5H5.5L7 5h7.5v1H1V4.5Z",fill:nv}),(0,n.jsx)("path",{d:"M1 6h14.5L14 13H2L1 6Z",stroke:nv,strokeWidth:"1",fill:nv,fillOpacity:"0.12"})]}):(0,n.jsx)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:(0,n.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:nv,strokeWidth:"1",fill:nv,fillOpacity:"0.1"})})}function nb({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 16 16",fill:"none",children:[(0,n.jsx)("path",{d:"M3 2h7l3 3v9H3V2Z",stroke:nv,strokeWidth:"1",fill:nv,fillOpacity:"0.08"}),(0,n.jsx)("path",{d:"M10 2v3h3",stroke:nv,strokeWidth:"1",fill:"none",strokeLinejoin:"round"})]})}function nj({label:e,size:t=14}){let r=t/14;return(0,n.jsxs)("svg",{width:t,height:t,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:nv,strokeWidth:"0.9",fill:nv,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:nv,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("text",{x:"7",y:"9.5",textAnchor:"middle",fontSize:3.4*r,fontFamily:"var(--font-mono), monospace",fontWeight:"600",fill:nv,letterSpacing:"0",children:e})]})}function nw({size:e=14}){return(0,n.jsx)(nj,{label:"TS",size:e})}function nk({size:e=14}){return(0,n.jsx)(nj,{label:"TSX",size:e})}function nS({size:e=14}){return(0,n.jsx)(nj,{label:"JS",size:e})}function nC({size:e=14}){return(0,n.jsx)(nj,{label:"JSX",size:e})}function n_({size:e=14}){return(0,n.jsx)(nj,{label:"PY",size:e})}function nR({size:e=14}){return(0,n.jsx)(nj,{label:"{}",size:e})}function nI({size:e=14}){return(0,n.jsx)(nj,{label:"CSS",size:e})}function nT({size:e=14}){return(0,n.jsx)(nj,{label:"SC",size:e})}function nM({size:e=14}){return(0,n.jsx)(nj,{label:"HTM",size:e})}function nz({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:nv,strokeWidth:"0.9",fill:nv,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:nv,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M3.5 9.5V7l1.5 1.5L6.5 7v2.5",stroke:nv,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,n.jsx)("path",{d:"M8 7v2.5M7 9l1 1.5 1-1.5",stroke:nv,strokeWidth:"0.9",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}function nE({size:e=14}){return(0,n.jsx)(nj,{label:"YML",size:e})}function nW({size:e=14}){return(0,n.jsx)(nj,{label:"TOM",size:e})}function nL({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:nv,strokeWidth:"0.9",fill:nv,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:nv,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M4 7.5l2 1.5-2 1.5",stroke:nv,strokeWidth:"0.95",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,n.jsx)("path",{d:"M7.5 10.5h2.5",stroke:nv,strokeWidth:"0.95",strokeLinecap:"round"})]})}function nA({size:e=14}){return(0,n.jsx)(nj,{label:"RS",size:e})}function nP({size:e=14}){return(0,n.jsx)(nj,{label:"GO",size:e})}function n$({size:e=14}){return(0,n.jsx)(nj,{label:"SQL",size:e})}function nH({size:e=14}){return(0,n.jsx)(nj,{label:"GQL",size:e})}function nD({size:e=14}){return(0,n.jsx)(nj,{label:"TF",size:e})}function nF({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:nv,strokeWidth:"0.9",fill:nv,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:nv,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("rect",{x:"3.5",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:nv,strokeWidth:"0.8"}),(0,n.jsx)("rect",{x:"6",y:"6.5",width:"2",height:"1.5",rx:"0.3",stroke:nv,strokeWidth:"0.8"}),(0,n.jsx)("rect",{x:"3.5",y:"8.5",width:"2",height:"1.5",rx:"0.3",stroke:nv,strokeWidth:"0.8"})]})}function nN({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:nv,strokeWidth:"0.9",fill:nv,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:nv,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"5.5",cy:"8.5",r:"1.5",stroke:nv,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M7 8.5h2.5M8.5 8.5v1.5",stroke:nv,strokeWidth:"0.9",strokeLinecap:"round"})]})}function nO({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:nv,strokeWidth:"0.9",fill:nv,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:nv,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"5",cy:"6.5",r:"1",stroke:nv,strokeWidth:"0.85"}),(0,n.jsx)("circle",{cx:"9",cy:"6.5",r:"1",stroke:nv,strokeWidth:"0.85"}),(0,n.jsx)("circle",{cx:"5",cy:"10",r:"1",stroke:nv,strokeWidth:"0.85"}),(0,n.jsx)("path",{d:"M5 7.5V9",stroke:nv,strokeWidth:"0.85",strokeLinecap:"round"}),(0,n.jsx)("path",{d:"M9 7.5v.5a2 2 0 0 1-2 2H6",stroke:nv,strokeWidth:"0.85",strokeLinecap:"round",fill:"none"})]})}function nB({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:nv,strokeWidth:"0.9",fill:nv,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:nv,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("rect",{x:"4.5",y:"8.5",width:"5",height:"3",rx:"0.6",stroke:nv,strokeWidth:"0.9"}),(0,n.jsx)("path",{d:"M5.5 8.5V7.5a1.5 1.5 0 0 1 3 0v1",stroke:nv,strokeWidth:"0.9",strokeLinecap:"round",fill:"none"})]})}function nU({size:e=14}){return(0,n.jsx)(nj,{label:"DOC",size:e})}function nq({size:e=14}){return(0,n.jsx)(nj,{label:"PDF",size:e})}function nK({size:e=14}){return(0,n.jsxs)("svg",{width:e,height:e,viewBox:"0 0 14 14",fill:"none",children:[(0,n.jsx)("path",{d:"M2.5 1h6l3 3v9h-9V1Z",stroke:nv,strokeWidth:"0.9",fill:nv,fillOpacity:"0.07",strokeLinejoin:"round"}),(0,n.jsx)("path",{d:"M8.5 1v3h3",stroke:nv,strokeWidth:"0.9",fill:"none",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"7",cy:"8.5",r:"1.3",stroke:nv,strokeWidth:"0.9"}),(0,n.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:nv,strokeWidth:"0.8",strokeLinecap:"round"})]})}function nV(e,t=14){let r=e.toLowerCase(),i=r.split(".").pop()??"";if("dockerfile"===r||r.startsWith("dockerfile."))return(0,n.jsx)(nF,{size:t});if(".env"===r||r.startsWith(".env."))return(0,n.jsx)(nN,{size:t});if(".gitignore"===r||".gitattributes"===r||".gitmodules"===r)return(0,n.jsx)(nO,{size:t});if("package-lock.json"===r||"yarn.lock"===r||"bun.lock"===r||"pnpm-lock.yaml"===r||"cargo.lock"===r)return(0,n.jsx)(nB,{size:t});if(r.endsWith(".config.ts")||r.endsWith(".config.js")||r.endsWith(".config.mjs")||r.endsWith(".config.cjs")||[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml","eslint.config.mjs","eslint.config.js"].includes(r))return(0,n.jsx)(nK,{size:t});switch(i){case"ts":return(0,n.jsx)(nw,{size:t});case"tsx":return(0,n.jsx)(nk,{size:t});case"js":case"mjs":case"cjs":return(0,n.jsx)(nS,{size:t});case"jsx":return(0,n.jsx)(nC,{size:t});case"py":return(0,n.jsx)(n_,{size:t});case"json":case"jsonl":return(0,n.jsx)(nR,{size:t});case"css":case"less":return(0,n.jsx)(nI,{size:t});case"scss":return(0,n.jsx)(nT,{size:t});case"html":case"htm":return(0,n.jsx)(nM,{size:t});case"md":case"mdx":return(0,n.jsx)(nz,{size:t});case"yaml":case"yml":return(0,n.jsx)(nE,{size:t});case"toml":return(0,n.jsx)(nW,{size:t});case"sh":case"bash":case"zsh":case"fish":return(0,n.jsx)(nL,{size:t});case"rs":return(0,n.jsx)(nA,{size:t});case"go":return(0,n.jsx)(nP,{size:t});case"sql":return(0,n.jsx)(n$,{size:t});case"graphql":case"gql":return(0,n.jsx)(nH,{size:t});case"tf":case"hcl":return(0,n.jsx)(nD,{size:t});case"docx":return(0,n.jsx)(nU,{size:t});case"pdf":return(0,n.jsx)(nq,{size:t});case"lock":return(0,n.jsx)(nB,{size:t});default:return(0,n.jsx)(nb,{size:t})}}let nJ="(max-width: 640px)";function nY(e){if(!window.matchMedia)return()=>{};let t=window.matchMedia(nJ);return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function nZ(){return!!window.matchMedia&&window.matchMedia(nJ).matches}function nX(){return!1}function nG(){return(0,i.useSyncExternalStore)(nY,nZ,nX)}let nQ=(e,t=0)=>Number.isFinite(e)?e:t,n0=i.useLayoutEffect;function n1(e){let{open:t,anchorRef:r,overlayRef:n,preferredPlacement:o="below",margin:a=8,gap:s=4,minHeight:l,maxHeight:d,maxWidth:c,align:u,width:p,minWidth:h,pollIntervalMs:f=250}=e,[g,x]=(0,i.useState)(null),m=(0,i.useRef)(0),v=(0,i.useCallback)(()=>{let e,t=r.current,i=n.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:r,viewport:n}=e,i=Math.max(0,nQ(e.margin??8)),o=Math.max(0,nQ(e.gap??4)),a=Math.max(0,nQ(e.minHeight??0)),s=Math.max(0,nQ(n.offsetLeft)),l=Math.max(0,nQ(n.offsetTop)),d=s+i,c=l+i,u=s+Math.max(0,nQ(n.width))-i,p=l+Math.max(0,nQ(n.height))-i,h=Math.max(0,u-d),f=Math.max(0,p-c),g=Math.min(f,Math.max(0,nQ(t.top)-o-c)),x=Math.min(f,Math.max(0,p-nQ(t.bottom)-o)),m=e.preferredPlacement??"below",v="below"===m?"above":"below",y=Math.max(a,Math.max(0,nQ(r.height))),b=("below"===m?x:g)>=y?m:("below"===v?x:g)>=y?v:x>=g?"below":"above",j=Math.max(0,"below"===b?x:g),w=Math.max(0,nQ(r.width)),k=Math.min(Math.max("end"===e.align?nQ(t.right)-w:nQ(t.left),d),Math.max(d,u-w)),S=Math.min(Math.max("below"===b?nQ(t.bottom)+o:nQ(t.top)-o-Math.max(0,nQ(r.height)),c),Math.max(c,p-Math.min(j,Math.max(0,nQ(r.height)))));return{top:nQ(S,c),left:nQ(k,d),maxHeight:j,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:a,gap:s,minHeight:l,preferredPlacement:o,align:u}),f={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===f.top&&e.left===f.left&&e.maxHeight===f.maxHeight&&e.maxWidth===f.maxWidth&&e.anchorWidth===f.anchorWidth&&e.placement===f.placement?e:f)},[r,n,a,s,l,d,c,o,u]);return n0(()=>{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),a=r.current,s=n.current;a&&o.observe(a),s&&o.observe(s);let l=f>0?window.setInterval(e,f):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,r,n,f]),{style:(0,i.useMemo)(()=>{if(!g)return{position:"fixed",top:0,left:0,visibility:"hidden"};let e={position:"fixed",top:g.top,left:g.left,maxHeight:g.maxHeight,maxWidth:g.maxWidth,visibility:"visible"},t=e=>Math.max(0,Math.min(e,g.maxWidth));"anchor"===p?e.width=t(g.anchorWidth):"max"===p?e.width=g.maxWidth:"number"==typeof p&&(e.width=t(p));let r="anchor"===h?g.anchorWidth:"number"==typeof h?h:void 0;return void 0!==r&&(e.minWidth=Math.min(r,g.maxWidth)),e},[g,p,h]),placement:g?.placement??o,ready:null!==g}}function n2(e){return e.type.startsWith("image/")&&"image/svg+xml"!==e.type}async function n4(e){let t=new FormData;t.append("files",e,e.name);let r=await fetch("/api/attachments",{method:"POST",body:t}),n=await r.json().catch(()=>({}));if(!r.ok&&207!==r.status)throw Error(n.error??`HTTP ${r.status}`);let i=n.errors?.[0];if(i&&(!n.uploaded||0===n.uploaded.length))throw Error(i.error);let o=n.uploaded?.[0];if(!o?.path)throw Error(n.error??i?.error??"upload failed");return{path:o.path,name:o.name||e.name}}function n6(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 n5=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function n8(e,t){return n5.compare(e.name||e.modelId,t.name||t.modelId)||n5.compare(e.provider,t.provider)||n5.compare(e.modelId,t.modelId)}let n3=["auto","off","minimal","low","medium","high","xhigh","max"];function n9(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${Math.round(e/1e3)}k`:e.toLocaleString()}let n7=[{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"}],ie=["builtin","extension","prompt","skill"],it={builtin:"input_builtIn",extension:"input_extensions",prompt:"input_prompts",skill:"input_skills"},ir={builtin:0,extension:1,prompt:2,skill:3};function ii(e,t){let r=e.name.toLowerCase(),n=e.description?.toLowerCase()??"";return r===t?0:r.startsWith(t)?1:r.includes(t)?2:n.includes(t)?3:4}function io(e){return{data:e.data,mimeType:e.mimeType}}function ia(e){return{...e,previewUrl:`data:${e.mimeType};base64,${e.data}`}}function is(e){e.previewUrl.startsWith("blob:")&&URL.revokeObjectURL(e.previewUrl)}function il(e,t){if(!e)return;let r=e.querySelector(`${t}[aria-checked="true"], ${t}[aria-selected="true"]`),n=e.querySelector(t);(r??n)?.focus({preventScroll:!0})}function id({kind:e,text:t}){return(0,n.jsxs)("div",{title:t,style:{display:"flex",alignItems:"center",gap:8,padding:"3px 10px",fontSize:12,color:"var(--text-muted)",minWidth:0},children:[(0,n.jsx)("span",{style:{flexShrink:0,fontSize:10,fontFamily:"var(--font-mono)",padding:"1px 7px",borderRadius:999,border:`1px solid ${"steer"===e?"color-mix(in srgb, var(--accent) 45%, transparent)":"var(--border)"}`,color:"steer"===e?"var(--accent)":"var(--text-dim)"},children:e}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t})]})}let ic=(0,i.forwardRef)(function({onSend:e,onAbort:t,onSteer:r,onFollowUp:o,isStreaming:a,model:s,isAutoModelSelection:l,modelNames:d,modelList:c,modelAuthConfigured:u,onModelChange:p,onAbortCompaction:h,isCompacting:f,compactError:g,compactResult:x,thinkingLevel:m,onThinkingLevelChange:v,availableThinkingLevels:y,thinkingLevelMap:b,thinkingLevelMaps:j,retryInfo:w,queuedMessages:k,onRecallQueue:S,onSendQueueAsSteer:C,slashCommands:_,slashCommandsLoading:R,onLoadSlashCommands:I,onBuiltinCommand:T,onAudioUnlock:M,onPromptWithStreamingBehavior:z,footerCollapsed:E,onFooterToggle:W,draftKey:L,cwd:P},$){let H,D,F,N,B,U,q,{t:K}=(0,O.s9)(),V=nG(),[J,Y]=(0,i.useState)("followUp");(0,i.useEffect)(()=>{Y(A());let e=e=>{"pidance.streamingEnterDefault"===e.key&&Y(A())},t=()=>Y(A());return window.addEventListener("storage",e),window.addEventListener("pidance:streaming-enter-changed",t),()=>{window.removeEventListener("storage",e),window.removeEventListener("pidance:streaming-enter-changed",t)}},[]);let[Z,X]=(0,i.useState)(()=>L?nu(L)?.value??"":""),[G,Q]=(0,i.useState)(!1),[et,er]=(0,i.useState)(!1),[en,ei]=(0,i.useState)(()=>L?nu(L)?.images.map(ia)??[]:[]),eo=Z.trimStart(),ea=0===en.length&&eo.startsWith("!"),es=ea&&eo.startsWith("!!"),[el,ed]=(0,i.useState)(!1),[ec,eu]=(0,i.useState)(0),[ep,eh]=(0,i.useState)(null),[ef,eg]=(0,i.useState)(!1),[ex,em]=(0,i.useState)(0),[ev,ey]=(0,i.useState)(null),[eb,ej]=(0,i.useState)(!1),[ew,ek]=(0,i.useState)(null),eS=(0,i.useRef)(null),eC=(0,i.useRef)(null),e_=(0,i.useRef)(null),eR=(0,i.useRef)(null),eI=(0,i.useRef)(null),eT=(0,i.useRef)(null),eM=(0,i.useRef)(null),ez=(0,i.useRef)(null),eE=(0,i.useRef)(null),eW=(0,i.useRef)(null),eL=(0,i.useRef)(!1),eA=(0,i.useRef)(0),eP=(0,i.useRef)(!1),e$=(0,i.useRef)([]),eH=(0,i.useRef)([]),eD=(0,i.useRef)(null),eF=(0,i.useRef)(null),eN=(0,i.useRef)(L),[eO,eB]=(0,i.useState)(null),[eU,eq]=(0,i.useState)(null),eK=(0,i.useRef)(null),eV=(0,i.useCallback)((e,t)=>{let r=t.getBoundingClientRect(),n=r.right+6;n+120>window.innerWidth-8&&(n=Math.max(8,r.left-120-6)),eq({top:Math.max(8,Math.min(r.top,window.innerHeight-8-352)),left:n}),eB(e)},[]),eJ=(0,i.useCallback)(()=>{eB(null),eq(null)},[]);(0,i.useEffect)(()=>{if(null===eO)return;let e=e=>{let t=e.target;if(!eK.current?.contains(t)&&!t?.closest?.("[data-depth-trigger]")){if(eR.current?.contains(t))return void window.setTimeout(()=>eJ(),0);eJ()}};return document.addEventListener("pointerdown",e),window.addEventListener("resize",eJ),window.addEventListener("scroll",eJ),()=>{document.removeEventListener("pointerdown",e),window.removeEventListener("resize",eJ),window.removeEventListener("scroll",eJ)}},[eJ,eO]);let eY=(0,i.useCallback)(e=>{let t=[e.name];return"number"==typeof e.contextWindow&&t.push(`${K("input_modelContext")} ${n6(e.contextWindow)}`),"number"==typeof e.maxTokens&&t.push(`${K("input_modelMaxOutput")} ${n6(e.maxTokens)}`),t.join(" \xb7 ")},[K]),eZ=(0,i.useCallback)((e,t)=>{let r=j?.[`${e}:${t}`],n=n3.filter(e=>!r||null!==r[e]);return n.length>0?n:[...n3]},[j]),eX=na(),eG=(0,i.useCallback)((e,t)=>{let r=ni(`thinkingLevel.${e}:${t}`);return"string"==typeof r&&r?r:null},[eX]),eQ=(0,i.useCallback)((e,t,r)=>{nn(`thinkingLevel.${e}:${t}`,r),eJ(),Q(!1),e_.current?.focus({preventScroll:!0}),p?.(e,t,r)},[eJ,p]),e0=(0,i.useRef)(null);(0,i.useEffect)(()=>{L&&ne().then(()=>{if(e0.current===L)return;e0.current=L;let e=function(e){let t=ni(nc(e));if(!t||"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.value)return null;let r=Array.isArray(t.images)?t.images.filter(e=>"object"==typeof e&&null!==e&&"string"==typeof e.data):[],n={value:t.value,images:r};return nd(n)?null:(ns.set(e,nl(n)),n)}(L);if(!e)return;let t=nu(L);t&&(""!==t.value||t.images.length>0)||(X(e.value),e.images.length>0&&ei(e.images.map(ia)))})},[L,ei]);let e1=(0,i.useRef)(Z),e2=(0,i.useRef)(en);e1.current=Z,e2.current=en;let e4=(0,i.useCallback)(e=>{let t=eS.current;(t?t.value:Z).trim()||(X(e),eh(null),requestAnimationFrame(()=>{t&&(t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)}))},[Z]);(0,i.useImperativeHandle)($,()=>({insertIfEmpty:e4,prependText(e){if(!e.trim())return;let t=eS.current,r=[e,t?t.value:Z].filter(e=>e.trim()).join("\n\n");X(r),eh(null),requestAnimationFrame(()=>{t&&(t.focus(),t.setSelectionRange(r.length,r.length),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`)})},replaceText(e){let t=eS.current;X(e),eh(null),requestAnimationFrame(()=>{if(!t)return;t.focus();let r=e.length;t.setSelectionRange(r,r),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},insertText(e){let t=eS.current;if(!t)return void X(t=>t+(t?" ":"")+e);let r=t.selectionStart??t.value.length,n=t.selectionEnd??t.value.length,i=t.value.slice(0,r),o=t.value.slice(n),a=i.length>0&&!i.endsWith(" ")?" ":"";X(i+a+e+o),eh(null),requestAnimationFrame(()=>{if(!t)return;let n=r+a.length+e.length;t.setSelectionRange(n,n),t.focus(),t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,200)}px`})},addImages(e){e9(e)}}));let[e6,e5]=(0,i.useState)([]),e8=(0,i.useRef)(e6);e8.current=e6;let e3=(0,i.useCallback)(async e=>{if(a)return;let t=e.filter(n2);if(!t.length)return;let r=await Promise.all(t.map(e=>new Promise((t,r)=>{let n=new FileReader;n.onload=()=>{t({data:n.result.split(",")[1],mimeType:e.type,previewUrl:URL.createObjectURL(e)})},n.onerror=r,n.readAsDataURL(e)})));ei(e=>[...e,...r])},[a]),e9=(0,i.useCallback)(async e=>{if(a||0===e.length)return;let t=e.filter(n2),r=e.filter(e=>!n2(e));if(t.length&&await e3(t),0===r.length)return;let n=r.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"}));e5(e=>[...e,...n]),await Promise.all(r.map(async(e,t)=>{let r=n[t].id;try{let{path:t,name:n}=await n4(e);e5(e=>e.map(e=>e.id===r?{...e,path:t,name:n,status:"ready"}:e))}catch(t){let e=t instanceof Error?t.message:String(t);e5(t=>t.map(t=>t.id===r?{...t,status:"error",error:e}:t))}}))},[a,e3]),e7=(0,i.useCallback)(e=>{ei(t=>{let r=[...t],[n]=r.splice(e,1);return n&&is(n),r})},[]),te=(0,i.useCallback)(e=>{e5(t=>t.filter(t=>t.id!==e))},[]),tt=(0,i.useCallback)(()=>{ei(e=>(e.forEach(is),[]))},[]),tr=(0,i.useCallback)(()=>{e5([])},[]),tn=(0,i.useCallback)(()=>{X(""),eh(null),L&&nh(L),eN.current&&eN.current!==L&&nh(eN.current),tt(),tr(),eS.current&&(eS.current.style.height="auto")},[tt,tr,L]),ti=(0,i.useCallback)(e=>{let t=e8.current.filter(e=>"ready"===e.status&&e.path);if(0===t.length)return e;let r=t.map(e=>`- \`${e.path}\``).join("\n"),n=`${K("input_attachedFilesPrompt")}
4
4
  ${r}`;return e.trim()?`${e.trim()}