codesesh 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/{chunk-BIXOP5QX.js → chunk-BV65IEWZ.js} +429 -192
- package/dist/chunk-BV65IEWZ.js.map +1 -0
- package/dist/{dist-T737I76S.js → dist-VD54GDPO.js} +22 -2
- package/dist/index.js +1058 -442
- package/dist/index.js.map +1 -1
- package/dist/scan-refresh-worker.js +35 -9
- package/dist/scan-refresh-worker.js.map +1 -1
- package/dist/search-index-worker.js +6 -1
- package/dist/search-index-worker.js.map +1 -1
- package/dist/smart-tag-worker.js +1 -1
- package/dist/web/assets/index-ZikfLnUo.js +113 -0
- package/dist/web/assets/index-y6Zx3LT1.css +2 -0
- package/dist/web/assets/markdown-dR4kAewZ.js +14 -0
- package/dist/web/assets/react-DBHwgW7V.js +1821 -0
- package/dist/web/assets/syntax-C_RLNYQn.js +6 -0
- package/dist/web/assets/vendor-bXsb4Kz4.js +40 -0
- package/dist/web/index.html +6 -6
- package/package.json +9 -8
- package/dist/chunk-BIXOP5QX.js.map +0 -1
- package/dist/web/assets/index-DlZEB-Op.css +0 -2
- package/dist/web/assets/index-O6YSX0s1.js +0 -113
- package/dist/web/assets/markdown-Bm__FT1K.js +0 -14
- package/dist/web/assets/react-CGUTVnhO.js +0 -1821
- package/dist/web/assets/syntax-Cjw-OADI.js +0 -6
- package/dist/web/assets/vendor-CR3FdUHs.js +0 -40
- /package/dist/{dist-T737I76S.js.map → dist-VD54GDPO.js.map} +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{l as t,t as n,u as r}from"./markdown-dR4kAewZ.js";import{c as i,d as a,i as o,l as s,n as c,o as l,r as u,s as d,t as f,u as p}from"./react-DBHwgW7V.js";import{A as m,B as h,C as g,D as _,E as v,F as y,H as b,I as x,L as S,M as C,N as w,O as T,P as ee,R as E,S as D,T as te,V as ne,_ as O,a as k,b as re,c as ie,d as ae,f as A,g as j,h as oe,i as se,j as M,k as ce,l as le,m as ue,n as de,o as fe,p as pe,r as me,s as he,t as ge,u as _e,v as ve,w as ye,x as be,y as xe,z as Se}from"./vendor-bXsb4Kz4.js";import{C as N,S as Ce,_ as we,a as Te,b as Ee,c as De,d as Oe,f as ke,g as Ae,h as je,i as Me,l as Ne,m as Pe,n as Fe,o as Ie,p as Le,r as Re,s as ze,t as Be,u as Ve,v as He,x as Ue,y as P}from"./syntax-C_RLNYQn.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var F=e(r(),1),We=e(p(),1),Ge=`access_token`,Ke=`codesesh:remote-access-token`,qe=null;function Je(){if(typeof window>`u`)return;let e=new URL(window.location.href),t=e.searchParams.get(Ge);if(t){qe=t;try{window.sessionStorage.setItem(Ke,t)}catch{}e.searchParams.delete(Ge),window.history.replaceState(window.history.state,``,`${e.pathname}${e.search}${e.hash}`);return}try{qe=window.sessionStorage.getItem(Ke)}catch{qe=null}}function Ye(e={}){if(!qe)return e;let t=new Headers(e.headers);return t.set(`Authorization`,`Bearer ${qe}`),{...e,headers:t}}function Xe(e){if(!qe)return e;let t=new URL(e,window.location.origin);return t.searchParams.set(Ge,qe),`${t.pathname}${t.search}`}async function I(e,t){let n=await fetch(e,Ye(t));if(!n.ok){let r=t?.method??`GET`;throw Error(`${r} ${e} failed: ${n.status} ${n.statusText}`)}return n.json()}async function Ze(){return I(`/api/config`)}async function Qe(){return I(`/api/status`)}async function $e(){return I(`/api/agents`)}async function et(){return I(`/api/projects`)}async function tt(e={}){let t=new URLSearchParams;return e.agent&&t.set(`agent`,e.agent),e.projectKind&&t.set(`projectKind`,e.projectKind),e.projectKey&&t.set(`projectKey`,e.projectKey),e.from!=null&&t.set(`from`,new Date(e.from).toISOString()),e.to!=null&&t.set(`to`,new Date(e.to).toISOString()),I(`/api/sessions?${t}`)}async function nt(e,t,n={}){return I(`/api/sessions/${e}/${t}`,{signal:n.signal})}async function rt(e,t={}){let n=new URLSearchParams;e?.from!=null&&n.set(`from`,new Date(e.from).toISOString()),e?.to!=null&&n.set(`to`,new Date(e.to).toISOString()),e?.days!=null&&e.days>0&&n.set(`days`,String(e.days)),t.projectKind&&n.set(`projectKind`,t.projectKind),t.projectKey&&n.set(`projectKey`,t.projectKey),t.agent&&n.set(`agent`,t.agent);let r=n.toString();return I(r?`/api/dashboard?${r}`:`/api/dashboard`)}async function it(e,t={}){let n=new URLSearchParams;return n.set(`q`,e),t.agent&&n.set(`agent`,t.agent),t.projectKind&&n.set(`projectKind`,t.projectKind),t.projectKey&&n.set(`projectKey`,t.projectKey),t.tag&&n.set(`tag`,t.tag),t.tool&&n.set(`tool`,t.tool),t.fileKind&&n.set(`fileActivity`,t.fileKind),t.costMin!=null&&n.set(`costMin`,String(t.costMin)),t.costMax!=null&&n.set(`costMax`,String(t.costMax)),I(`/api/search?${n}`)}async function at(){return I(`/api/bookmarks`)}async function ot(e){return I(`/api/bookmarks`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}async function st(e){return I(`/api/bookmarks/import`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}async function ct(e,t){await I(`/api/bookmarks/${e}/${t}`,{method:`DELETE`})}function L(e,t={}){let n=JSON.stringify({event:e,data:t});try{if(!qe&&typeof navigator<`u`&&navigator.sendBeacon){let e=new Blob([n],{type:`application/json`});if(navigator.sendBeacon(`/api/logs`,e))return}}catch{}fetch(`/api/logs`,Ye({method:`POST`,headers:{"Content-Type":`application/json`},body:n,keepalive:!0})).catch(()=>{})}var lt=1e3,ut=3e4;function dt(e){let t=e*.2;return e+(Math.random()*2-1)*t}function ft(e,t,n,r){let i=!1,a,o=lt,s=!1,c=!1,l,u=()=>{let d=new EventSource(Xe(`/api/events`));l=d,d.addEventListener(`sessions-updated`,t=>{try{e(JSON.parse(t.data))}catch(e){console.error(`Failed to parse session update event:`,e)}}),d.addEventListener(`scan-status`,e=>{if(t)try{t(JSON.parse(e.data))}catch(e){console.error(`Failed to parse scan status event:`,e)}}),d.onopen=()=>{o=lt,c=!1,s&&n?.(),s=!0},d.onerror=()=>{if(d.readyState!==EventSource.CLOSED||(d.close(),i))return;c||(c=!0,r?.());let e=dt(o);o=Math.min(o*2,ut),a=setTimeout(u,e)}};return u(),()=>{i=!0,a!==void 0&&clearTimeout(a),l?.close()}}var R=t(),pt=class extends F.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`ErrorBoundary caught error:`,e,t)}render(){return this.state.hasError?this.props.fallback?this.props.fallback:(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-error-border)] bg-[var(--console-error-bg)] p-6`,children:[(0,R.jsx)(`h3`,{className:`console-mono mb-2 text-sm font-semibold text-[var(--console-error)]`,children:`Something went wrong`}),(0,R.jsx)(`p`,{className:`console-mono text-xs text-[var(--console-muted)]`,children:this.state.error?.message||`Unknown error`})]}):this.props.children}};function mt(e){return`'${e.replace(/'/g,`'\\''`)}'`}var ht={claudecode:`claude --resume`,codex:`codex resume`,kimi:`kimi -r`,opencode:`opencode -s`,pi:`pi --session`};function gt(e){let t=e.toLowerCase();return t in ht?ht[t]:null}function _t({agentName:e,sessionId:t,directory:n}){let r=gt(e);if(!r)return null;let i=`${r} ${mt(t)}`,a=n??``;return a.trim()?`cd ${mt(a)} && ${i}`:i}async function vt(e){if(typeof navigator<`u`&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(e),!0}catch{}if(typeof document>`u`)return!1;let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select();let n=!1;try{n=document.execCommand(`copy`)}catch{n=!1}return document.body.removeChild(t),n}function yt({agentName:e,sessionId:t,directory:n,className:r=``}){let[i,a]=(0,F.useState)(!1),o=_t({agentName:e,sessionId:t,directory:n});return(0,F.useEffect)(()=>{if(!i)return;let e=window.setTimeout(()=>a(!1),1500);return()=>window.clearTimeout(e)},[i]),o?(0,R.jsxs)(`button`,{type:`button`,onClick:e=>{e.preventDefault(),e.stopPropagation(),vt(o).then(e=>{e&&a(!0)})},"aria-label":i?`Resume command copied: ${o}`:`Copy resume command: ${o}`,title:i?`Copied: ${o}`:`Copy: ${o}`,className:`console-mono inline-flex items-center gap-1.5 rounded-sm border px-2 py-1 text-[11px] transition-colors ${r} ${i?`border-[var(--console-border-strong)] bg-[var(--console-surface-muted)] text-[var(--console-text)]`:`border-[var(--console-border)] bg-[var(--console-surface-muted)] text-[var(--console-muted)] hover:border-[var(--console-border-strong)] hover:text-[var(--console-text)]`}`,children:[i?(0,R.jsx)(y,{className:`size-3`,strokeWidth:1.8}):(0,R.jsx)(_,{className:`size-3`,strokeWidth:1.8}),(0,R.jsx)(`span`,{children:i?`Copied`:`Copy resume`})]}):null}var bt=`codeseshProfiler`,xt=`codeseshProfilerLog`,St=16,Ct=500;function wt(){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(bt)===`1`}catch{return!1}}function Tt(){if(typeof window>`u`)return!1;try{return window.localStorage.getItem(xt)===`1`}catch{return!1}}function Et(e){let t=window.__CODESHESH_RENDER_PROFILE__??[];t.push(e),t.length>Ct&&t.splice(0,t.length-Ct),window.__CODESHESH_RENDER_PROFILE__=t}function Dt(e){if(!wt()||typeof window>`u`)return;let t=performance.now();Et({...e,startTime:Ot(e.startTime??t),commitTime:Ot(e.commitTime??t),route:e.route??window.location.pathname})}function Ot(e){return Math.round(e*100)/100}function kt({id:e,detail:t,children:n}){return wt()?(0,R.jsx)(F.Profiler,{id:e,onRender:(e,n,r,i,a,o)=>{let s={id:e,source:`react-profiler`,phase:n,actualDuration:Ot(r),baseDuration:Ot(i),startTime:Ot(a),commitTime:Ot(o),route:window.location.pathname,...t?{detail:t}:{}};Et(s),s.actualDuration>=St&&Tt()&&L(`react.profiler.commit`,{...s})},children:(0,R.jsx)(At,{id:e,detail:t,children:n})}):n}function At({id:e,detail:t,children:n}){let r=performance.now(),i=(0,F.useRef)(0);return(0,F.useLayoutEffect)(()=>{i.current+=1;let n=performance.now();Et({id:e,source:`commit-latency`,phase:i.current===1?`mount`:`update`,actualDuration:Ot(n-r),baseDuration:0,startTime:Ot(r),commitTime:Ot(n),route:window.location.pathname,...t?{detail:t}:{}})}),n}function jt(e){return{kind:e.identityKind,key:e.identityKey}}var Mt=new Set([`git_remote`,`git_common_dir`,`manifest_path`,`synthetic`,`path`,`loose`]);function Nt(e){return Mt.has(e)}function z(e){return`${e.kind}:${e.key}`}function Pt(e){return decodeURIComponent(e)}function Ft(e){return`/projects/${encodeURIComponent(e.kind)}/${encodeURIComponent(e.key)}`}function It(e,t){let n=e.replace(/^\/+|\/+$/g,``),r=n?n.split(`/`).map(e=>e.trim()).filter(Boolean):[];if(r.length===0)return{mode:`root`,activeAgentKey:null,activeSessionSlug:null};if(r[0]?.toLowerCase()===`projects`){if(r.length===1)return{mode:`projects`,activeAgentKey:null,activeSessionSlug:null};if(r.length===3)try{let e=decodeURIComponent(r[1]);return Nt(e)?{mode:`project`,activeAgentKey:null,activeSessionSlug:null,activeProjectKind:e,activeProjectKey:Pt(r[2])}:{mode:`invalidRoute`,activeAgentKey:null,activeSessionSlug:null}}catch{return{mode:`invalidRoute`,activeAgentKey:null,activeSessionSlug:null}}return{mode:`invalidRoute`,activeAgentKey:null,activeSessionSlug:null}}if(r.length===1){let e=r[0].toLowerCase();return t.has(e)?{mode:`agent`,activeAgentKey:e,activeSessionSlug:null}:{mode:`missingAgent`,activeAgentKey:null,activeSessionSlug:null,attemptedKey:e}}if(r.length===2){let e=r[0].toLowerCase(),n=r[1];return t.has(e)&&n?{mode:`session`,activeAgentKey:e,activeSessionSlug:n}:t.has(e)?{mode:`missingSession`,activeAgentKey:e,activeSessionSlug:n,attemptedSessionSlug:n}:{mode:`missingAgent`,activeAgentKey:null,activeSessionSlug:null,attemptedKey:e}}return{mode:`invalidRoute`,activeAgentKey:null,activeSessionSlug:null}}function Lt(){let[e,t]=(0,F.useState)(null),n=(0,F.useCallback)(e=>{t(t=>t&&e.updatedAt<t.updatedAt?t:e)},[]);return(0,F.useEffect)(()=>{let e=!1;return Qe().then(t=>{e||n(t)}).catch(e=>{console.error(`Failed to load scan status:`,e)}),()=>{e=!0}},[n]),{scanStatus:e,setScanStatus:n}}function Rt(e){return e.mode===`session`?`${e.activeAgentKey}/${e.activeSessionSlug}`:``}function zt(e){let[t,n]=(0,F.useState)(null),[r,i]=(0,F.useState)(!1),[a,o]=(0,F.useState)(null),s=(0,F.useRef)(null),c=(0,F.useRef)(1),l=Rt(e),u=(0,F.useRef)(l);u.current=l;let d=(0,F.useCallback)(e=>{let t=s.current;t&&(s.current=null,t.controller.abort(),L(`session.open.cancel`,{request_id:t.id,request_key:t.key,reason:e}))},[]),f=(0,F.useCallback)(async(e,t,r,a)=>{if(u.current!==r)return;d(`superseded`);let l={id:c.current++,key:r,controller:new AbortController};s.current=l,a===`route`&&(i(!0),o(null));let f=performance.now();L(`session.open.start`,{request_id:l.id,request_key:l.key,trigger:a,agent:e,session:t});try{let r=await nt(e,t,{signal:l.controller.signal});if(s.current?.id!==l.id||u.current!==l.key){L(`session.open.stale`,{request_id:l.id,request_key:l.key});return}n(r),o(null),L(`session.open.done`,{request_id:l.id,request_key:l.key,trigger:a,agent:e,session:t,duration_ms:Math.round(performance.now()-f),messages:r.messages.length})}catch(r){let i=s.current?.id===l.id;if(l.controller.signal.aborted||!i||u.current!==l.key)return;L(`session.open.error`,{request_id:l.id,request_key:l.key,trigger:a,agent:e,session:t,duration_ms:Math.round(performance.now()-f),error:r instanceof Error?r.message:String(r)}),o(`Session not found`),n(null)}finally{s.current?.id===l.id&&(s.current=null,i(!1))}},[d]);return(0,F.useEffect)(()=>{if(e.mode!==`session`){d(`route-change`),n(null),o(null),i(!1);return}return f(e.activeAgentKey,e.activeSessionSlug,l,`route`),()=>d(`route-change`)},[d,f,l,e.activeAgentKey,e.activeSessionSlug,e.mode]),{session:t,sessionLoading:r,sessionError:a,refresh:(0,F.useCallback)(async()=>{e.mode===`session`&&await f(e.activeAgentKey,e.activeSessionSlug,l,`refresh`)},[f,l,e])}}var Bt={bugfix:`bugfix`,refactoring:`refactoring`,"feature-dev":`feature-dev`,testing:`testing`,docs:`docs`,"git-ops":`git-ops`,"build-deploy":`build-deploy`,exploration:`exploration`,planning:`planning`},Vt={bugfix:{text:`#B42318`,border:`#FECDCA`,background:`#FEF3F2`,bar:`#F04438`},refactoring:{text:`#6941C6`,border:`#D9D6FE`,background:`#F4F3FF`,bar:`#7A5AF8`},"feature-dev":{text:`#175CD3`,border:`#B2DDFF`,background:`#EFF8FF`,bar:`#2E90FA`},testing:{text:`#027A48`,border:`#ABEFC6`,background:`#ECFDF3`,bar:`#12B76A`},docs:{text:`#B54708`,border:`#FEDF89`,background:`#FFFAEB`,bar:`#F79009`},"git-ops":{text:`#3538CD`,border:`#C7D7FE`,background:`#EEF4FF`,bar:`#444CE7`},"build-deploy":{text:`#C4320A`,border:`#F9DBAF`,background:`#FEF6EE`,bar:`#EF6820`},exploration:{text:`#0E7090`,border:`#A5F0FC`,background:`#ECFDFF`,bar:`#06AED4`},planning:{text:`#C11574`,border:`#FCCEEE`,background:`#FDF2FA`,bar:`#EE46BC`}};function Ht(e){return Vt[e]}function Ut(e){let t=Ht(e);return{color:t.text,borderColor:t.border,backgroundColor:t.background}}function Wt({tags:e,limit:t=4,className:n=``}){if(!e||e.length===0)return null;let r=e.slice(0,t),i=e.length-r.length;return(0,R.jsxs)(`div`,{className:`flex flex-wrap gap-1 ${n}`,children:[r.map(e=>(0,R.jsx)(`span`,{className:`console-mono rounded-sm border px-1.5 py-0.5 text-[10px] font-medium`,style:Ut(e),children:Bt[e]},e)),i>0?(0,R.jsxs)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-1.5 py-0.5 text-[10px] text-[var(--console-muted)]`,children:[`+`,i]}):null]})}function Gt({active:e,label:t,onClick:n}){return(0,R.jsx)(`button`,{type:`button`,onClick:n,className:`console-mono rounded-sm border px-2 py-1 text-[10px] transition-colors ${e?`border-[var(--console-border-strong)] bg-[var(--console-accent)] text-white`:`border-[var(--console-border)] bg-[var(--console-surface-muted)] text-[var(--console-muted)] hover:bg-white`}`,children:t})}var Kt=[`bugfix`,`refactoring`,`feature-dev`,`testing`,`docs`,`git-ops`,`build-deploy`,`exploration`,`planning`],qt=[`apply_patch`,`bash`,`read`,`edit`,`grep`],Jt=[{kind:`read`,label:`Read`},{kind:`edit`,label:`Edit`},{kind:`write`,label:`Write`},{kind:`delete`,label:`Delete`}],Yt=[{id:`paid`,label:`Cost > $0`,costMin:1e-6},{id:`one_plus`,label:`Cost >= $1`,costMin:1},{id:`ten_plus`,label:`Cost >= $10`,costMin:10}];function Xt({agents:e,projects:t,filters:n,onChangeFilters:r}){let i=Object.values(n).some(Boolean),a=n.project?z(n.project):void 0,o=(e,t)=>{r(n=>({...n,[e]:n[e]===t?void 0:t}))};return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white/85 p-3`,children:[(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-[10px] font-semibold uppercase text-[var(--console-muted)]`,children:`Scope`}),(0,R.jsx)(Gt,{active:!n.project,label:`All`,onClick:()=>r(e=>({...e,project:void 0}))}),t.map(e=>(0,R.jsx)(Gt,{active:a===e.key,label:e.showCount===!1?e.label:`${e.label} · ${e.count}`,onClick:()=>r(t=>({...t,project:a===e.key?void 0:{kind:e.identityKind,key:e.identityKey}}))},e.key))]}),(0,R.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-[10px] font-semibold uppercase text-[var(--console-muted)]`,children:`Agent`}),(0,R.jsx)(Gt,{active:!n.agent,label:`All Agents`,onClick:()=>r(e=>({...e,agent:void 0}))}),e.map(e=>(0,R.jsx)(Gt,{active:n.agent===e.name,label:e.displayName,onClick:()=>o(`agent`,e.name)},e.name))]}),(0,R.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-[10px] font-semibold uppercase text-[var(--console-muted)]`,children:`Tag`}),Kt.map(e=>(0,R.jsx)(Gt,{active:n.tag===e,label:Bt[e],onClick:()=>o(`tag`,e)},e))]}),(0,R.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-[10px] font-semibold uppercase text-[var(--console-muted)]`,children:`Signal`}),qt.map(e=>(0,R.jsx)(Gt,{active:n.tool===e,label:`tool:${e}`,onClick:()=>o(`tool`,e)},e))]}),(0,R.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-[10px] font-semibold uppercase text-[var(--console-muted)]`,children:`File Activity`}),Jt.map(e=>(0,R.jsx)(Gt,{active:n.fileKind===e.kind,label:e.label,onClick:()=>o(`fileKind`,e.kind)},e.kind))]}),(0,R.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-[10px] font-semibold uppercase text-[var(--console-muted)]`,children:`Cost Range`}),(0,R.jsx)(Gt,{active:!n.costRange,label:`Any Cost`,onClick:()=>r(e=>({...e,costRange:void 0}))}),Yt.map(e=>(0,R.jsx)(Gt,{active:n.costRange===e.id,label:e.label,onClick:()=>o(`costRange`,e.id)},e.id)),i?(0,R.jsx)(`button`,{type:`button`,onClick:()=>r({}),className:`console-mono ml-auto rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[10px] text-[var(--console-muted)] transition-colors hover:bg-white`,children:`Clear`}):null]})]})}function Zt(e,t){return(t.time_updated??t.time_created)-(e.time_updated??e.time_created)}function Qt(e){for(let t=1;t<e.length;t+=1)if(Zt(e[t-1],e[t])>0)return[...e].sort(Zt);return[...e]}function $t(e){return e.slug.split(`/`)[0]?.toLowerCase()||`unknown`}function en(e,t){return`${e.toLowerCase()}/${t}`}function tn(e){return`${e.kind}:${e.key}`}function nn(e,t){return`${e}\0${t.toLowerCase()}`}function rn(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function an(e){let t=new Map,n=new Map,r=new Map,i=new Map;for(let n of e){let e=en($t(n),n.id);t.has(e)||t.set(e,n)}let a=Qt(e);for(let e of a){let t=$t(e);rn(n,t,e);let a=e.project_identity;if(!a?.key)continue;let o=tn(a);rn(r,o,e),rn(i,nn(o,t),e)}return{sourceSessions:e,sessionsByActivity:a,byRouteKey:t,byAgent:n,byProjectIdentityKey:r,byProjectAgentKey:i}}function on(e,t,n){let r=new Map;for(let t of e)r.set(en($t(t),t.id),t);for(let e of n)r.delete(en(e.agentName,e.sessionId));for(let e of t)r.set(en(e.agentName,e.session.id),e.session);return Qt([...r.values()])}function sn(e,t,n){let r=e.get(t);if(r){r.push(n);return}e.set(t,[n])}function cn(e,t){let n=an(e),r=new Map,i=new Map,a=new Map,o=new Map,s=[],c=new Set(t.map(e=>e.name.toLowerCase()));for(let e of c)r.set(e,[]),i.set(e,[]);for(let t of e){let e=$t(t),n={...t,agentKey:e,sessionSlug:t.id,fullPath:t.slug};s.push(n),c.has(e)&&i.get(e).push(n);let r=t.project_identity;if(!r?.key)continue;let l=z(r);sn(a,l,n);let u=o.get(l);u?u.count+=1:o.set(l,{key:l,identityKind:r.kind,identityKey:r.key,label:r.displayName||t.directory,count:1})}for(let e of c)r.set(e,n.byAgent.get(e)??[]);return{byRouteKey:n.byRouteKey,byAgent:r,byProjectIdentityKey:n.byProjectIdentityKey,byProjectAgentKey:n.byProjectAgentKey,byLandingAgent:i,byLandingProjectIdentityKey:a,landingSessions:s,sessionsByActivity:n.sessionsByActivity,projectOptions:[...o.values()].toSorted((e,t)=>t.count-e.count).slice(0,8)}}function ln(e){let t=new Map,n=new Map;for(let r=0;r<e.length;r+=1){let i=e[r];t.has(i.id)||(t.set(i.id,i),n.set(i.id,r))}return{byId:t,indexById:n}}function un(e,t){return{agent:e.agent,projectKind:e.project?.kind,projectKey:e.project?.key,tag:e.tag,tool:e.tool,fileKind:e.fileKind,costMin:t}}function dn(e,t){return e.trim().length>0||!!(t.tool||t.fileKind)}function fn(e,t,n){let r=t.agent?e.byAgent.get(t.agent)??[]:null,i=t.project?z(t.project):void 0,a=i?e.byProjectIdentityKey.get(i)??[]:null,o=r&&a?r.length<=a.length?r:a:r??a??e.sessionsByActivity,s=[];for(let e of o)if(!(t.agent&&$t(e)!==t.agent)&&!(i&&(!e.project_identity||z(e.project_identity)!==i))&&!(t.tag&&!e.smart_tags?.includes(t.tag))&&!(n!==void 0&&e.stats.total_cost<n)&&(s.push({agentName:$t(e),session:e,snippet:`Recent session · ${e.directory}`,matchType:`recent`}),s.length>=50))break;return s}function pn(e){let[t,n]=(0,F.useState)(``),[r,i]=(0,F.useState)(``),[a,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)({}),[l,u]=(0,F.useState)({status:`idle`}),[d,f]=(0,F.useState)(0),[p,m]=(0,F.useState)(0),h=(0,F.useRef)(null),g=(0,F.useRef)(new Map),_=(0,F.useMemo)(()=>Yt.find(e=>e.id===s.costRange)?.costMin,[s.costRange]),v=(0,F.useMemo)(()=>un(s,_),[s,_]),y=dn(r,s),b=(0,F.useMemo)(()=>fn(e,s,_),[e,s,_]),x=(0,F.useMemo)(()=>l.status===`loaded`?l.results:[],[l]),S=l.status===`loading`;return(0,F.useEffect)(()=>{if(!a){u({status:`idle`});return}if(!y){u({status:`loaded`,results:b});return}let e=!1;u({status:`loading`});let t=performance.now();return L(`search.start`,{query_length:r.length}),it(r,v).then(n=>{e||(u({status:`loaded`,results:n.results}),L(`search.done`,{duration_ms:Math.round(performance.now()-t),results:n.results.length}))}).catch(n=>{e||(console.error(`Failed to load search results:`,n),L(`search.error`,{duration_ms:Math.round(performance.now()-t),error:n instanceof Error?n.message:String(n)}),u({status:`failed`,error:n instanceof Error?n.message:`Search request failed`}))}),()=>{e=!0}},[r,b,d,a,v,y]),(0,F.useEffect)(()=>{a&&m(e=>x.length===0?0:Math.min(e,x.length-1))},[a,x.length]),(0,F.useEffect)(()=>{if(!a)return;let e=x[p];if(!e)return;let t=`${e.agentName}/${e.session.id}`;g.current.get(t)?.scrollIntoView({block:`nearest`})},[a,x,p]),{draftSearchQuery:t,activeSearchQuery:r,searchMode:a,searchFilters:s,searchState:l,searchResults:x,searchLoading:S,usesServerSearch:y,selectedSearchIndex:p,searchInputRef:h,searchResultRefs:g,setDraftSearchQuery:n,setSearchFilters:c,setSelectedSearchIndex:m,openSearch:(0,F.useCallback)(()=>{o(!0),window.setTimeout(()=>{h.current?.focus(),h.current?.select()},0)},[]),submitSearch:(0,F.useCallback)(()=>{i(t.trim()),o(!0),m(0)},[t]),closeSearch:(0,F.useCallback)(()=>{o(!1),i(``)},[]),retrySearch:(0,F.useCallback)(()=>{f(e=>e+1)},[]),refresh:(0,F.useCallback)(async()=>{if(a&&y)try{let e=await it(r,v);u({status:`loaded`,results:e.results})}catch(e){console.error(`Failed to refresh search results:`,e),u({status:`failed`,error:e instanceof Error?e.message:`Search request failed`})}},[a,y,r,v])}}var mn=`codesesh:bookmarks:v1`;function hn(e){return typeof e==`object`&&!!e}function gn(e){return hn(e)?typeof e.message_count==`number`&&typeof e.total_input_tokens==`number`&&typeof e.total_output_tokens==`number`&&typeof e.total_cost==`number`&&(e.total_tokens==null||typeof e.total_tokens==`number`):!1}function _n(e){return hn(e)?typeof e.sessionId==`string`&&typeof e.agentKey==`string`&&typeof e.fullPath==`string`&&typeof e.title==`string`&&typeof e.directory==`string`&&typeof e.time_created==`number`&&(e.time_updated==null||typeof e.time_updated==`number`)&&(e.bookmarked_at==null||typeof e.bookmarked_at==`number`)&&gn(e.stats):!1}function vn(e,t){return`${e}:${t}`}function yn(e,t){return{sessionId:e.id,agentKey:t,fullPath:e.slug,title:e.title,directory:e.directory,time_created:e.time_created,time_updated:e.time_updated,stats:e.stats,bookmarked_at:Date.now()}}function bn(){if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(mn);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(_n).toSorted(Sn):[]}catch{return[]}}function xn(){typeof window>`u`||window.localStorage.removeItem(mn)}function Sn(e,t){let n=e.time_updated??e.time_created;return(t.time_updated??t.time_created)-n}function Cn(e,t){if(e.length===0||t.length===0)return e;let n=new Map(t.map(e=>{let t=yn(e,e.slug.split(`/`)[0]?.toLowerCase()??`unknown`);return[vn(t.agentKey,t.sessionId),t]})),r=!1,i=e.map(e=>{let t=n.get(vn(e.agentKey,e.sessionId));return!t||t.fullPath===e.fullPath&&t.title===e.title&&t.directory===e.directory&&t.time_created===e.time_created&&t.time_updated===e.time_updated&&t.stats.message_count===e.stats.message_count&&t.stats.total_input_tokens===e.stats.total_input_tokens&&t.stats.total_output_tokens===e.stats.total_output_tokens&&t.stats.total_cost===e.stats.total_cost&&t.stats.total_tokens===e.stats.total_tokens?e:(r=!0,{...t,bookmarked_at:e.bookmarked_at})});return r?i.toSorted(Sn):e}function wn(e){let[t,n]=(0,F.useState)([]);(0,F.useEffect)(()=>{let e=!1;return at().then(t=>{e||n(t.bookmarks)}).catch(e=>{console.error(`Failed to load bookmarks:`,e)}),()=>{e=!0}},[]),(0,F.useEffect)(()=>{let t=!1;return n(n=>{let r=Cn(n,e);return r===n?n:(st(r.map(({bookmarked_at:e,...t})=>t)).catch(e=>{t||console.error(`Failed to sync bookmark snapshots:`,e)}),r)}),()=>{t=!0}},[e]),(0,F.useEffect)(()=>{let e=!1;return(async()=>{let t=bn();if(t.length!==0)try{let r=await st(t.map(({bookmarked_at:e,...t})=>t));if(e)return;n(r.bookmarks),xn()}catch(t){e||console.error(`Failed to migrate legacy bookmarks:`,t)}})(),()=>{e=!0}},[]);let r=(0,F.useMemo)(()=>new Set(t.map(e=>vn(e.agentKey,e.sessionId))),[t]),i=(0,F.useCallback)((e,t)=>r.has(vn(e,t)),[r]),a=(0,F.useCallback)(e=>{let i=vn(e.agentKey,e.sessionId),a=r.has(i),o=t,s=a?o.filter(e=>vn(e.agentKey,e.sessionId)!==i):[...o,e].toSorted((e,t)=>{let n=e.time_updated??e.time_created;return(t.time_updated??t.time_created)-n});n(s),L(a?`bookmark.delete`:`bookmark.add`,{agent:e.agentKey,session:e.sessionId}),(a?ct(e.agentKey,e.sessionId):ot({agentKey:e.agentKey,sessionId:e.sessionId,fullPath:e.fullPath,title:e.title,directory:e.directory,time_created:e.time_created,time_updated:e.time_updated,stats:e.stats})).catch(e=>{console.error(`Failed to toggle bookmark:`,e),n(o)})},[r,t]),o=(0,F.useCallback)((e,t)=>{a(yn(e,t))},[a]);return{bookmarkedSessions:(0,F.useMemo)(()=>t.toSorted((e,t)=>(t.time_updated??t.time_created)-(e.time_updated??e.time_created)),[t]),isSessionBookmarked:i,toggleBookmark:a,toggleSessionBookmark:o}}function Tn(e){let[t,n]=(0,F.useState)(null);return(0,F.useEffect)(()=>{if(!e)return;let t=!1;return rt(e.window).then(e=>{t||n(e)}).catch(e=>{console.error(`Failed to load dashboard:`,e)}),()=>{t=!0}},[e]),{dashboard:t,refresh:(0,F.useCallback)(async()=>{try{let t=await rt(e?.window);n(t)}catch(e){console.error(`Failed to refresh dashboard:`,e)}},[e])}}function En(e,t,n,r){let[i,a]=(0,F.useState)(null),[o,s]=(0,F.useState)(!1),[c,l]=(0,F.useState)(null),[u,d]=(0,F.useState)(void 0);return(0,F.useEffect)(()=>{r&&d(void 0)},[r]),(0,F.useEffect)(()=>{if(!n||!e){a(null),l(null),s(!1);return}let r=!1;return s(!0),l(null),rt(e.window,{projectKind:t??void 0,projectKey:n,agent:u}).then(e=>{r||a(e)}).catch(e=>{r||(console.error(`Failed to load project dashboard:`,e),a(null),l(`Failed to load project dashboard`))}).finally(()=>{r||s(!1)}),()=>{r=!0}},[t,n,e,u]),{projectDashboard:i,projectDashboardLoading:o,projectDashboardError:c,selectedProjectAgent:u,setSelectedProjectAgent:d,refresh:(0,F.useCallback)(async()=>{if(!(!n||!e))try{let r=await rt(e.window,{projectKind:t??void 0,projectKey:n,agent:u});a(r)}catch(e){console.error(`Failed to refresh project dashboard:`,e)}},[t,n,e,u])}}function Dn(){let[e,t]=(0,F.useState)(null);return{appConfig:e,refresh:(0,F.useCallback)(async()=>{let e=await Ze();return t(e),e},[])}}function On(){let[e,t]=(0,F.useState)([]);return{agents:e,validAgentKeys:(0,F.useMemo)(()=>new Set(e.map(e=>e.name.toLowerCase())),[e]),agentNameMap:(0,F.useMemo)(()=>new Map(e.map(e=>[e.name.toLowerCase(),e.displayName])),[e]),refresh:(0,F.useCallback)(async()=>{let e=await $e();return t(e),e},[])}}function kn(e,t){return!t.changedSessionHeads||!t.removedSessionRefs?null:on(e,t.changedSessionHeads,t.removedSessionRefs)}function An(){let[e,t]=(0,F.useState)([]);return{sessions:e,refresh:(0,F.useCallback)(async e=>{let n=await tt({from:e.from,to:e.to});return t(n.sessions),n.sessions},[]),applyLiveEvent:(0,F.useCallback)(e=>{t(t=>kn(t,e)??t)},[])}}function jn(){let[e,t]=(0,F.useState)([]);return{projects:e,refresh:(0,F.useCallback)(async()=>{try{let e=await et();return t(e.projects),e.projects}catch(e){return console.error(`Failed to load projects:`,e),t([]),[]}},[])}}function Mn({refreshAppConfig:e,refreshAgents:t,refreshSessions:n,refreshProjects:r}){let[i,a]=(0,F.useState)(!0),[o,s]=(0,F.useState)(null);return(0,F.useEffect)(()=>{let i=new AbortController,o=performance.now();return L(`app.load.start`,{path:window.location.pathname}),(async()=>{try{let i=await e(),[a,s,c]=await Promise.all([t(),n(i.window),r()]);L(`app.load.done`,{duration_ms:Math.round(performance.now()-o),agents:a.length,sessions:s.length,projects:c.length})}catch(e){console.error(`Failed to load data:`,e),L(`app.load.error`,{duration_ms:Math.round(performance.now()-o),error:e instanceof Error?e.message:String(e)}),s(`Failed to load data. Is the CLI server running?`)}finally{a(!1)}})(),()=>i.abort()},[e,t,n,r]),{loading:i,error:o}}function Nn(e){let[t,n]=(0,F.useState)(null),[r,i]=(0,F.useState)(null),{appConfig:a,viewState:o,applySessionsLiveEvent:s,refreshAgents:c,refreshSessions:l,refreshProjects:u,refreshDashboard:d,refreshProjectDashboard:f,refreshSessionDetail:p,refreshSearch:m,setScanStatus:h}=e,g=(0,F.useEffectEvent)(async e=>{try{let t=!!(e.changedSessionHeads&&e.removedSessionRefs);t&&s(e),await Promise.all([c(),t||!a?Promise.resolve():l(a.window),u()]),await d(),await f(),o.mode===`session`&&await p(),await m(),e.newSessions>0&&n(`发现 ${e.newSessions} 个新会话,列表已自动刷新`)}catch(e){console.error(`Failed to sync live session update:`,e)}}),_=(0,F.useEffectEvent)(()=>{i(null),g({type:`sessions-updated`,changedAgents:[],newSessions:0,updatedSessions:0,removedSessions:0,totalSessions:0,timestamp:Date.now()})});return(0,F.useEffect)(()=>ft(e=>{g(e)},e=>{h(e)},()=>{_()},()=>{i(`实时更新已断开,重连中…`)}),[h]),(0,F.useEffect)(()=>{if(!t)return;let e=window.setTimeout(()=>{n(null)},3500);return()=>{window.clearTimeout(e)}},[t]),{liveNotice:r??t}}function Pn(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase();return t===`input`||t===`textarea`||t===`select`||e.isContentEditable}function Fn(e){let{viewState:t,browseBy:n,navigate:r,activeAgentKey:i,sidebarSessions:a,sidebarSessionLookup:o,selectedSidebarSessionId:s,setSelectedSidebarSessionId:c,selectedProjectNavigationIdentity:l,shortcutHelpOpen:u,setShortcutHelpOpen:d,dismissShortcutHint:f,isSearchMode:p,activeSearchQuery:m,searchResults:h,selectedSearchIndex:g,setSelectedSearchIndex:_,setDraftSearchQuery:v,openSearch:y,closeSearch:b}=e,x=(0,F.useEffectEvent)(e=>{let x=e.key;if((e.metaKey||e.ctrlKey)&&x.toLowerCase()===`k`){e.preventDefault(),y(),_(0);return}if(e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.isComposing)return;let S=e.target,C=Pn(S);if(u){x===`Escape`&&(e.preventDefault(),d(!1));return}if(C){x===`Escape`&&(e.preventDefault(),S instanceof HTMLElement&&S.blur());return}if(x===`?`){e.preventDefault(),d(!0),f();return}if(x===`/`){e.preventDefault(),f(),y();return}if(x===`Escape`){if(e.preventDefault(),p){b(),v(``);return}if(t.mode===`session`&&t.activeAgentKey){if(n===`projects`&&l){r(Ft(l));return}r(`/${t.activeAgentKey}`)}return}if(p){if(h.length===0)return;if(x===`j`){e.preventDefault(),f(),_(e=>Math.min(e+1,h.length-1));return}if(x===`k`){e.preventDefault(),f(),_(e=>Math.max(e-1,0));return}if(x===`g`){e.preventDefault(),f(),_(0);return}if(x===`G`){e.preventDefault(),f(),_(h.length-1);return}if(x===`Enter`){let t=h[g];if(!t)return;e.preventDefault(),f(),b(),r(`/${t.agentName.toLowerCase()}/${t.session.id}`,{state:{searchQuery:m}})}return}if(n===`agents`&&!i||a.length===0)return;let w=e=>{f();let t=s==null?-1:o.indexById.get(s)??-1,n=t>=0?t:e>=0?-1:a.length,r=Math.max(0,Math.min(n+e,a.length-1));c(a[r]?.id??null)};if(x===`j`){e.preventDefault(),w(1);return}if(x===`k`){e.preventDefault(),w(-1);return}if(x===`g`){e.preventDefault(),f(),c(a[0]?.id??null);return}if(x===`G`){e.preventDefault(),f(),c(a.at(-1)?.id??null);return}if(x===`Enter`){let t=s==null?null:o.byId.get(s);if(!t)return;e.preventDefault(),f(),r(n===`projects`?`/${t.slug}`:`/${i}/${t.id}`)}});(0,F.useEffect)(()=>(window.addEventListener(`keydown`,x),()=>window.removeEventListener(`keydown`,x)),[])}function B(e){if(!e)return`unknown`;let t=Date.now()-e;if(Number.isNaN(t)||t<0)return`just now`;let n=Math.floor(t/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function V(e){return e.toLocaleString(`en-US`)}function In(e){return e===0?`$0.00`:e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function Ln(e){if(e===`recorded`)return`recorded`;if(e===`estimated`)return`estimated`}function Rn(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toString()}function zn(e){if(typeof e==`number`&&e<=0)return`Unknown time`;let t=null;if(typeof e==`number`){let n=e<10**12?e*1e3:e;t=new Date(n)}else if(typeof e==`string`&&e.trim()){let n=Number(e);t=!Number.isNaN(n)&&n>0?new Date(n<10**12?n*1e3:n):new Date(e)}return!t||Number.isNaN(t.getTime())?`Unknown time`:t.toLocaleTimeString(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!0})}function Bn(e){return{...Vn(e),breadcrumbs:Hn(e)}}function Vn(e){let{viewState:t}=e;if(e.isSearchMode)return{title:`Search`,subtitle:e.searchSubtitle};if(t.mode===`root`)return{title:`Dashboard`,subtitle:e.dashboard?`${e.dashboard.totals.sessions.toLocaleString(`en-US`)} total sessions across ${e.dashboard.perAgent.length} agents`:`Aggregated view across all agents`};if(t.mode===`projects`)return{title:`Projects`,subtitle:`${e.projects.length.toLocaleString(`en-US`)} projects across ${e.sessionCount.toLocaleString(`en-US`)} sessions`};if(t.mode===`project`)return{title:e.activeProject?.displayName??`Project`,subtitle:e.activeProject?`${e.activeProject.sessionCount.toLocaleString(`en-US`)} sessions · ${e.activeProject.agentStats.length} agents`:t.activeProjectKey};if(t.mode===`agent`)return{title:e.activeAgent?.displayName??t.activeAgentKey,subtitle:`${e.sidebarSessionCount} sessions`};if(t.mode===`session`){if(e.sessionError)return{title:`Session Not Found`,subtitle:`Requested /${t.activeAgentKey}/${t.activeSessionSlug}`};if(e.session){let t=e.session.time_updated??e.session.time_created;return{title:e.session.title||`Conversation`,subtitle:(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`span`,{children:[`ID: #`,e.session.id.slice(0,8)]}),(0,R.jsx)(`span`,{children:`·`}),(0,R.jsxs)(`span`,{children:[`Updated `,B(t)]}),(0,R.jsx)(Wt,{tags:e.session.smart_tags,limit:9,className:`inline-flex`})]})}}}return t.mode===`missingAgent`?{title:`Agent Not Found`,subtitle:`Requested /${t.attemptedKey}`}:t.mode===`missingSession`?{title:`Session Not Found`,subtitle:`Session not found in /${t.activeAgentKey}`}:{title:`CodeSesh`,subtitle:`Select an agent to browse sessions`}}function Hn(e){let{viewState:t}=e;if(e.isSearchMode)return[{label:`Search`}];let n={label:`Dashboard`,to:e.browseBy===`agents`&&t.mode===`root`||e.browseBy===`projects`&&t.mode===`projects`?void 0:e.browseBy===`projects`?`/projects`:`/`};if(t.mode===`root`)return[{label:`Dashboard`}];if(t.mode===`projects`)return[n,{label:`Projects`}];if(t.mode===`project`)return[n,{label:`Projects`,to:`/projects`},{label:e.activeProject?.displayName??t.activeProjectKey}];if(t.mode===`session`&&e.browseBy===`projects`&&e.selectedProjectIdentity)return[n,{label:`Projects`,to:`/projects`},{label:e.selectedProject?.displayName??e.selectedProjectIdentity.key,to:Ft(e.selectedProjectIdentity)},{label:e.session?.title||t.activeSessionSlug||`Conversation`}];if(t.mode===`missingAgent`)return[n,{label:t.attemptedKey}];let r=e.activeAgent?.displayName??t.activeAgentKey??`Unknown Agent`,i={label:r,to:t.mode===`session`?`/${t.activeAgentKey}`:void 0};return t.mode===`agent`?[n,{label:r}]:t.mode===`missingSession`?[n,i,{label:t.attemptedSessionSlug}]:t.mode===`session`?[n,i,{label:e.session?.title||t.activeSessionSlug||`Conversation`}]:[n,{label:`Invalid Route`}]}var H={agents:{opencode:{name:`OpenCode`,icon:`/icon/agent/opencode.svg`},zcode:{name:`ZCode`,icon:`/icon/agent/zcode.svg`},codex:{name:`Codex`,icon:`/icon/agent/codex.svg`},pi:{name:`Pi`,icon:`/icon/agent/pi.svg`},cursor:{name:`Cursor`,icon:`/icon/agent/cursor.svg`},kimi:{name:`Kimi-Cli`,icon:`/icon/agent/kimi.svg`},claudecode:{name:`Claude Code`,icon:`/icon/agent/claudecode.svg`},kilo:{name:`Kilo Code`,icon:`/icon/agent/kilocode.svg`},antigravity:{name:`Antigravity`,icon:`/icon/agent/antigravity.svg`}},getDefaultAgentKey(){let e=Object.keys(this.agents);return e.length>0?e[0]:null},getAgentName(e){let t=this.agents[e];return t||=this.agents[e.toLowerCase()],t?t.name:e}};function Un(e){let t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function Wn(e){if(!e)return null;let{from:t,to:n,days:r}=e.window;if(t==null)return`All time`;let i=Un(t),a=Un(n??Date.now());return r?`Last ${r}d · ${i} → ${a}`:`${i} → ${a}`}function Gn(e,t,n){return t?e?`Searching for "${e}"`:`Loading recent sessions`:e?`${n} matches for "${e}"`:`${n} recent sessions`}function Kn(e){if(!e?.active)return null;let t=e.completedAgents.length,n=e.totalAgents,r=e.scanningAgents[0],i=r?e.agentStatuses[r]:null,a=i?.total&&i.processed!=null?` · ${i.processed}/${i.total}`:``,o=n>0?r?` · ${r}${a} · ${t}/${n} agents ready`:` · ${t}/${n} agents ready`:``;return e.phase===`initializing`?`First-run setup: indexing all local sessions${o}. Your selected time window appears after this finishes.`:e.phase===`indexing`?`Preparing local session index`:n>0?r?`Checking for new or changed sessions · ${r}${a} · ${t}/${n} agents ready`:`Checking for new or changed sessions · ${t}/${n} agents ready`:`Checking for new or changed sessions`}function qn(e,t){let n=e?.agentStatuses[t];return!n||n.status===`complete`?null:n.total&&n.processed!=null?`${n.processed}/${n.total}`:n.status===`scanning`?`Scanning`:`Pending`}function Jn(e,t,n){let r=e?.agentStatuses[t];return r?.status===`complete`&&r.sessions!=null?r.sessions:n}function Yn({active:e,onToggle:t,className:n=``}){return(0,R.jsx)(`button`,{type:`button`,onClick:e=>{e.preventDefault(),e.stopPropagation(),t()},"aria-label":e?`Remove bookmark`:`Add bookmark`,title:e?`Remove bookmark`:`Add bookmark`,className:`inline-flex size-6 shrink-0 items-center justify-center rounded-sm border transition-colors ${n} ${e?`border-[var(--console-border)] bg-[var(--console-surface-muted)] text-[var(--console-text)]`:`border-transparent text-[var(--console-muted)] opacity-70 hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)] hover:text-[var(--console-text)] hover:opacity-100`}`,children:(0,R.jsx)(ae,{className:`size-3`,strokeWidth:1.8,fill:e?`currentColor`:`none`})})}var Xn=`
|
|
2
|
+
[data-type='item'][data-item-type='file'] > [data-item-section='icon'] {
|
|
3
|
+
display: none;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
[data-type='item'][data-item-type='file'] > [data-item-section='spacing'] {
|
|
7
|
+
padding-left: 2px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
[data-type='item'][data-item-type='file'] > [data-item-section='spacing'] > [data-item-section='spacing-item'] {
|
|
11
|
+
margin-right: 4px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
[data-type='item'][data-item-type='file'] > [data-item-section='content'] {
|
|
15
|
+
flex: 1 1 auto;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
[data-type='item'][data-item-type='file'] > [data-item-section='decoration'] {
|
|
19
|
+
flex: 0 0 auto;
|
|
20
|
+
padding-inline: 8px 6px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-type='item'][data-item-type='file'] > [data-item-section='decoration'] > span {
|
|
24
|
+
cursor: pointer;
|
|
25
|
+
font-size: 18px;
|
|
26
|
+
line-height: 1;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
[data-type='item'][data-item-type='file'] [data-truncate-group-container='middle'] {
|
|
30
|
+
width: 100%;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
[data-type='item'][data-item-type='file']
|
|
34
|
+
[data-truncate-group-container='middle']
|
|
35
|
+
> div[data-truncate-segment-priority='2'] {
|
|
36
|
+
flex: 0 1 auto;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[data-type='item'][data-item-type='file']
|
|
40
|
+
[data-truncate-group-container='middle']
|
|
41
|
+
> div[data-truncate-segment-priority='1'] {
|
|
42
|
+
flex: 1 999999 auto;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
[data-type='item'][data-item-type='file']
|
|
46
|
+
[data-truncate-group-container='middle']
|
|
47
|
+
[data-truncate-container='fruncate']
|
|
48
|
+
[data-truncate-grid] {
|
|
49
|
+
grid-template-columns: minmax(0, max-content) 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
[data-type='item'][data-item-type='file']
|
|
53
|
+
[data-truncate-group-container='middle']
|
|
54
|
+
[data-truncate-container='fruncate']
|
|
55
|
+
[data-truncate-content] {
|
|
56
|
+
direction: ltr;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
[data-type='item'][data-item-type='file']
|
|
60
|
+
[data-truncate-group-container='middle']
|
|
61
|
+
[data-truncate-container='fruncate']
|
|
62
|
+
[data-truncate-marker] {
|
|
63
|
+
right: 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
[data-type='item'][data-item-type='file'] [data-truncate-marker] {
|
|
67
|
+
display: none;
|
|
68
|
+
}
|
|
69
|
+
`;function Zn(e){return e.replaceAll(`/`,`∕`).trim()||`(untitled)`}function Qn(e){return e.replace(/\/+$/,``).split(`/`).at(-1)?.trim()||`(unknown)`}function $n(e){let t=e.project_identity;if(t)return{key:`${t.kind}:${t.key}`,label:t.displayName||Qn(e.directory)};let n=Qn(e.directory);return{key:n===`(unknown)`?`__unknown__`:`path:${e.directory||n}`,label:n}}function er(e){return e.time_updated??e.time_created}function tr(e,t,n){let r=e.get(t.path)??2**53-1,i=e.get(n.path)??2**53-1;return r===i?t.path.localeCompare(n.path):r-i}function nr(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=new Map,o=new Map,s=new Set,c=[],l=new Map;for(let t of e){let{key:e,label:n}=$n(t),r=l.get(e);r?r.sessions.push(t):l.set(e,{label:n,sessions:[t]})}let u=[...l.entries()].sort(([,e],[,t])=>{if(e.label===`(unknown)`)return 1;if(t.label===`(unknown)`)return-1;let n=Math.max(...e.sessions.map(er));return Math.max(...t.sessions.map(er))-n}),d=0,f=new Set;for(let[,e]of u){let l=Zn(e.label),u=`${l}/`,p=2;for(;f.has(u);)u=`${l} (${p})/`,p+=1;f.add(u);let m=u.slice(0,-1),h=new Map;t.set(u,d),t.set(m,d),d+=1,a.set(u,`${e.sessions.length}`),a.set(m,`${e.sessions.length}`);for(let t of e.sessions)h.set(t.title,(h.get(t.title)??0)+1);for(let a of e.sessions){let e=(h.get(a.title)??0)>1?`${Zn(a.title)} #${a.id.slice(0,8)}`:Zn(a.title),l=`${u}${e}`,f=2;for(;s.has(l);)l=`${u}${e} (${f})`,f+=1;s.add(l),c.push(l),t.set(l,d),d+=1,n.set(a.id,l),r.set(a.id,u),i.set(l,a.id),o.set(l,a)}}return{paths:c,sortOrderByPath:t,pathBySessionId:n,groupPathBySessionId:r,sessionIdByPath:i,groupCountByPath:a,sessionByPath:o}}function rr(e,t){if(!wt())return t();let n=performance.now(),r=t(),i=performance.now();return Dt({id:e,source:`custom-timing`,phase:`measure`,actualDuration:Math.round((i-n)*100)/100,baseDuration:0,startTime:n,commitTime:i}),r}var ir=(0,F.memo)(function({sessions:e,activeSessionId:t,selectedSessionId:n,onSelectSession:r,bookmarkedSessionIds:a,onToggleBookmark:o}){let c=(0,F.useMemo)(()=>rr(`SessionTreeSidebar:buildTreeModel`,()=>nr(e)),[e]),l=(0,F.useRef)(c.sortOrderByPath),u=(0,F.useRef)(c.sessionIdByPath),d=(0,F.useRef)(c.groupCountByPath),f=(0,F.useRef)(c.sessionByPath),p=(0,F.useRef)(a),m=(0,F.useRef)(r),h=(0,F.useRef)(o),g={"--trees-bg-override":`transparent`,"--trees-border-color-override":`var(--console-border)`,"--trees-fg-override":`var(--console-text)`,"--trees-fg-muted-override":`var(--console-muted)`,"--trees-font-family-override":`"JetBrains Mono", "IBM Plex Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace`,"--trees-font-size-override":`12px`,"--trees-item-margin-x-override":`0px`,"--trees-item-padding-x-override":`8px`,"--trees-selected-bg-override":`var(--console-surface-muted)`},{model:_}=i({flattenEmptyDirectories:!1,initialExpansion:`closed`,paths:c.paths,sort:(e,t)=>tr(l.current,e,t),density:`compact`,unsafeCSS:Xn,onSelectionChange(e){let t=u.current.get(e[0]??``);t&&m.current(t)},renderRowDecoration({item:e}){let t=f.current.get(e.path);if(t){let e=p.current.has(t.id);return{text:e?`★`:`☆`,title:e?`Remove bookmark`:`Add bookmark`}}return d.current.get(e.path)?{text:d.current.get(e.path),title:`Sessions`}:null}});(0,F.useEffect)(()=>{l.current=c.sortOrderByPath,u.current=c.sessionIdByPath,d.current=c.groupCountByPath,f.current=c.sessionByPath,_.resetPaths(c.paths)},[_,c]),(0,F.useEffect)(()=>{m.current=r},[r]),(0,F.useEffect)(()=>{p.current=a,_.resetPaths(c.paths)},[a,_,c.paths]),(0,F.useEffect)(()=>{h.current=o},[o]);function v(e){let t=e.nativeEvent.composedPath(),n=t.find(e=>e instanceof HTMLElement&&e.parentElement?.getAttribute(`data-item-section`)===`decoration`),r=t.find(e=>e instanceof HTMLElement&&e.getAttribute(`data-type`)===`item`),i=r?f.current.get(r.getAttribute(`data-item-path`)??``):null;!n||!i||(e.preventDefault(),e.stopPropagation(),h.current(i))}return(0,F.useEffect)(()=>{let e=c.pathBySessionId.get(t??``),r=c.pathBySessionId.get(n??``)??e,i=n??t??``,a=c.groupPathBySessionId.get(i);if(e&&_.getItem(e)?.select(),r&&t){let e=a?_.getItem(a):null;e&&`expand`in e&&e.expand(),_.focusPath(r);return}a&&_.focusPath(a)},[t,_,c,n]),(0,R.jsx)(`div`,{className:`session-tree h-[min(560px,calc(100vh-410px))] min-h-56 overflow-hidden`,style:g,onClickCapture:v,children:(0,R.jsx)(s,{model:_,style:{height:`100%`},"aria-label":`Sessions`})})});function ar({value:e,onChange:t,projectsDisabled:n=!1}){return(0,R.jsx)(`div`,{role:`radiogroup`,"aria-label":`Browse by`,className:`grid gap-1.5`,children:[{value:`projects`,label:`Projects`},{value:`agents`,label:`Agents`}].map(r=>{let i=e===r.value,a=r.value===`projects`&&n;return(0,R.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":i,disabled:a,onClick:()=>t(r.value),className:`console-mono flex items-center gap-2 rounded-sm border px-3 py-1.5 text-left text-xs transition-colors ${a?`cursor-not-allowed border-transparent text-[var(--console-muted)] opacity-45`:i?`border-[var(--console-border-strong)] bg-white text-[var(--console-text)]`:`border-transparent text-[var(--console-muted)] hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`}`,title:a?`Project grouping is available after the current scan finishes`:void 0,children:[(0,R.jsx)(`span`,{className:`flex size-3 shrink-0 items-center justify-center rounded-full border ${i?`border-[var(--console-accent)]`:`border-[var(--console-border-strong)]`}`,children:i?(0,R.jsx)(`span`,{className:`size-1.5 rounded-full bg-[var(--console-accent)]`}):null}),(0,R.jsx)(`span`,{children:r.label})]},r.value)})})}function or({sessions:e,activeSessionId:t,selectedSessionId:n,bookmarkedSessionIds:r,onSelectSession:i,onToggleBookmark:a}){return(0,R.jsx)(`div`,{className:`console-scrollbar h-[min(560px,calc(100vh-410px))] min-h-56 overflow-y-auto`,children:(0,R.jsx)(`ul`,{className:`space-y-1`,children:e.map(e=>{let o=$t(e),s=H.agents[o],c=t===e.id,l=n===e.id;return(0,R.jsx)(`li`,{children:(0,R.jsxs)(`div`,{className:`flex items-start gap-1 rounded-sm border px-2 py-1.5 transition-colors ${c||l?`border-[var(--console-border-strong)] bg-white text-[var(--console-text)]`:`border-transparent text-[var(--console-muted)] hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`}`,children:[(0,R.jsxs)(`button`,{type:`button`,onClick:()=>i(e),className:`min-w-0 flex-1 text-left`,children:[(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:[s?.icon?(0,R.jsx)(`img`,{src:s.icon,alt:s.name,className:`size-3.5 shrink-0 object-contain`}):null,(0,R.jsx)(`span`,{className:`console-mono line-clamp-1 text-xs text-[var(--console-text)]`,children:e.title})]}),(0,R.jsx)(`span`,{className:`console-mono mt-0.5 block truncate text-[10px] text-[var(--console-muted)]`,children:B(e.time_updated??e.time_created)})]}),(0,R.jsx)(Yn,{active:r.has(e.id),onToggle:()=>a(e)})]})},e.slug)})})})}function sr({agents:e,activeAgentKey:t,scanStatus:n,isScanActive:r}){return(0,R.jsx)(R.Fragment,{children:e.map(e=>{let i=e.name.toLowerCase(),a=i===t,o=H.agents[i],s=qn(n,e.name),c=r&&s!==null,l=`ml-4 flex items-center gap-2 rounded-sm border px-3 py-1.5 text-left transition-colors ${c?`cursor-not-allowed border-transparent text-[var(--console-muted)] opacity-50`:a?`border-[var(--console-border-strong)] bg-white text-[var(--console-text)]`:`border-transparent text-[var(--console-muted)] hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`}`,u=(0,R.jsxs)(R.Fragment,{children:[o?.icon&&(0,R.jsx)(`img`,{src:o.icon,alt:e.displayName,className:`size-3.5 object-contain`}),(0,R.jsx)(`span`,{className:`console-mono line-clamp-1 flex-1 text-xs`,children:e.displayName}),(0,R.jsx)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:s??Jn(n,e.name,e.count)})]});return(0,R.jsxs)(`li`,{children:[c?(0,R.jsx)(`span`,{className:l,title:`Available after this agent scan completes`,children:u}):(0,R.jsx)(h,{to:`/${i}`,className:l,children:u}),s?(0,R.jsx)(`span`,{className:`ml-4 mt-1 block h-1 overflow-hidden rounded-sm bg-[var(--console-surface-muted)]`,children:(0,R.jsx)(`span`,{className:`block h-full bg-[var(--console-accent)]`,style:{width:`${n?.agentStatuses[e.name]?.total?Math.round((n.agentStatuses[e.name]?.processed??0)/n.agentStatuses[e.name].total*100):8}%`}})}):null]},e.name)})})}function cr({projects:e,selectedProjectNavigationId:t,onSelectProject:n}){return(0,R.jsx)(R.Fragment,{children:e.map(e=>{let r=jt(e),i=t===z(r);return(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:Ft(r),onClick:()=>n(r),className:`ml-4 flex min-w-0 items-center gap-2 rounded-sm border px-3 py-1.5 text-left transition-colors ${i?`border-[var(--console-border-strong)] bg-white text-[var(--console-text)]`:`border-transparent text-[var(--console-muted)] hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`}`,children:[(0,R.jsx)(`span`,{className:`console-mono min-w-0 flex-1 truncate text-xs`,children:e.displayName}),(0,R.jsx)(`span`,{className:`console-mono shrink-0 text-[11px] text-[var(--console-muted)]`,children:e.sessionCount})]})},`${e.identityKind}:${e.identityKey}`)})})}function lr({model:{sidebarCollapsed:e,browseBy:t,isScanActive:n,viewState:r,agents:i,activeAgentKey:a,scanStatus:o,projects:s,selectedProjectNavigationId:c,loading:l,bookmarkedSessions:u,sidebarSessions:d,selectedSidebarSessionId:f,bookmarkedSidebarSessionIds:p},actions:{onChangeBrowseBy:m,onSelectProject:g,onToggleBookmark:_,onSelectFlatSidebarSession:v,onToggleSidebarSessionBookmark:y,onSelectTreeSidebarSession:b}}){return(0,R.jsx)(`aside`,{className:`w-64 shrink-0 flex-col border-r border-[var(--console-border)] bg-[var(--console-sidebar-bg)] ${e?`hidden`:`hidden lg:flex`}`,children:(0,R.jsxs)(`div`,{className:`console-scrollbar flex-1 space-y-8 overflow-y-auto px-4 py-6`,children:[(0,R.jsxs)(`section`,{children:[(0,R.jsx)(`h3`,{className:`console-mono mb-3 text-xs font-bold uppercase text-[var(--console-text)]`,children:`BROWSE BY`}),(0,R.jsx)(ar,{value:t,onChange:m,projectsDisabled:n})]}),(0,R.jsxs)(`section`,{children:[(0,R.jsx)(`h3`,{className:`console-mono mb-3 text-xs font-bold uppercase text-[var(--console-text)]`,children:`NAVIGATION`}),(0,R.jsxs)(`ul`,{className:`space-y-1 ${t===`projects`?`console-scrollbar max-h-[min(280px,calc(100vh-440px))] overflow-y-auto pr-1`:``}`,children:[(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:t===`projects`?`/projects`:`/`,className:`flex items-center gap-2 rounded-sm border px-3 py-1.5 text-left transition-colors ${t===`agents`&&r.mode===`root`||t===`projects`&&r.mode===`projects`?`border-[var(--console-border-strong)] bg-white text-[var(--console-text)]`:`border-transparent text-[var(--console-muted)] hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`}`,children:[(0,R.jsx)(`img`,{src:`/logo.svg?v=3`,alt:`Dashboard`,className:`size-3.5 rounded-[2px]`}),(0,R.jsx)(`span`,{className:`console-mono line-clamp-1 flex-1 text-xs`,children:`Dashboard`})]})}),t===`agents`?(0,R.jsx)(sr,{agents:i,activeAgentKey:a,scanStatus:o,isScanActive:n}):(0,R.jsx)(cr,{projects:s,selectedProjectNavigationId:c,onSelectProject:g}),t===`agents`&&i.length===0&&!l?(0,R.jsx)(`li`,{children:(0,R.jsx)(`span`,{className:`console-mono block rounded-sm px-3 py-1.5 text-xs text-[var(--console-muted)]`,children:o?.active?`Scanning agents...`:`No agents found`})}):null,t===`projects`&&s.length===0&&!l?(0,R.jsx)(`li`,{children:(0,R.jsx)(`span`,{className:`console-mono block rounded-sm px-3 py-1.5 text-xs text-[var(--console-muted)]`,children:o?.active?`Scanning projects...`:`No projects found`})}):null]})]}),(0,R.jsxs)(`section`,{children:[(0,R.jsx)(`h3`,{className:`console-mono mb-3 text-xs font-bold uppercase text-[var(--console-text)]`,children:`BOOKMARKS`}),u.length===0?(0,R.jsx)(`span`,{className:`console-mono block rounded-sm px-3 py-1.5 text-xs text-[var(--console-muted)]`,children:`No bookmarks yet`}):(0,R.jsx)(`ul`,{className:`space-y-1`,children:u.map(e=>{let t=r.mode===`session`&&r.activeAgentKey===e.agentKey&&r.activeSessionSlug===e.sessionId,n=H.agents[e.agentKey];return(0,R.jsx)(`li`,{children:(0,R.jsxs)(`div`,{className:`flex items-start gap-2 rounded-sm border px-2 py-1.5 transition-colors ${t?`border-[var(--console-border-strong)] bg-white text-[var(--console-text)]`:`border-transparent text-[var(--console-muted)] hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`}`,children:[(0,R.jsxs)(h,{to:`/${e.fullPath}`,className:`flex min-w-0 flex-1 items-start gap-2`,children:[n?.icon?(0,R.jsx)(`img`,{src:n.icon,alt:n.name,className:`mt-0.5 size-3.5 shrink-0 object-contain`}):null,(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`span`,{className:`console-mono line-clamp-1 block text-xs`,children:e.title}),(0,R.jsx)(`span`,{className:`console-mono mt-0.5 line-clamp-1 block text-[10px] text-[var(--console-muted)]`,children:n?.name??e.agentKey})]})]}),(0,R.jsx)(Yn,{active:!0,onToggle:()=>_(e)})]})},vn(e.agentKey,e.sessionId))})})]}),(0,R.jsxs)(`section`,{children:[(0,R.jsxs)(`h3`,{className:`console-mono mb-3 text-xs font-bold uppercase text-[var(--console-text)]`,children:[`SESSIONS`,d.length>0?(0,R.jsx)(`span`,{className:`ml-2 text-[10px] font-normal text-[var(--console-muted)]`,children:`Navigate j k · Open Enter`}):null]}),t===`agents`&&!a?(0,R.jsx)(`span`,{className:`console-mono block rounded-sm px-3 py-1.5 text-xs text-[var(--console-muted)]`,children:`Select an agent`}):t===`projects`&&!c?(0,R.jsx)(`span`,{className:`console-mono block rounded-sm px-3 py-1.5 text-xs text-[var(--console-muted)]`,children:`Select a project`}):d.length===0?(0,R.jsx)(`span`,{className:`console-mono block rounded-sm px-3 py-1.5 text-xs text-[var(--console-muted)]`,children:o?.active?`Scanning sessions...`:`No sessions yet`}):t===`projects`?(0,R.jsx)(or,{sessions:d,activeSessionId:r.mode===`session`?r.activeSessionSlug:null,selectedSessionId:f,bookmarkedSessionIds:p,onSelectSession:v,onToggleBookmark:y}):(0,R.jsx)(kt,{id:`SessionTreeSidebar`,detail:{sessions:d.length},children:(0,R.jsx)(ir,{sessions:d,activeSessionId:r.mode===`session`?r.activeSessionSlug:null,selectedSessionId:f,onSelectSession:b,bookmarkedSessionIds:p,onToggleBookmark:y})})]})]})})}var ur=[{title:`Navigation`,items:[{keys:`j / k`,description:`Move through sessions or search results`},{keys:`Enter`,description:`Open the current selection`},{keys:`g / G`,description:`Jump to the first or last item`}]},{title:`Search & Help`,items:[{keys:`Cmd/Ctrl K`,description:`Open global search`},{keys:`/`,description:`Focus the search box`},{keys:`Esc`,description:`Exit search or close the current detail view`},{keys:`?`,description:`Open this shortcuts panel`}]}];function dr({open:e,onClose:t}){return(0,R.jsx)(c,{open:e,onOpenChange:e=>e?void 0:t(),children:(0,R.jsxs)(u,{children:[(0,R.jsx)(d,{className:`shortcut-overlay fixed inset-0 z-50 bg-black/35`}),(0,R.jsxs)(o,{className:`shortcut-content fixed left-1/2 top-1/2 z-50 w-[calc(100%-2rem)] max-w-2xl origin-center -translate-x-1/2 -translate-y-1/2 rounded-sm border border-[var(--console-border-strong)] bg-white p-5 shadow-2xl outline-none`,children:[(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`p`,{className:`console-mono text-[11px] uppercase tracking-[0.16em] text-[var(--console-muted)]`,children:`Keyboard Shortcuts`}),(0,R.jsx)(f,{className:`console-mono mt-2 text-xl font-semibold text-[var(--console-text)]`,children:`Navigate without leaving the keyboard`})]}),(0,R.jsx)(l,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-xs text-[var(--console-text)] transition-colors hover:bg-white`,children:`Esc`})]}),(0,R.jsx)(`div`,{className:`mt-5 grid gap-4 md:grid-cols-2`,children:ur.map(e=>(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] p-4`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:e.title}),(0,R.jsx)(`div`,{className:`mt-3 space-y-3`,children:e.items.map(e=>(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`p`,{className:`console-mono text-xs text-[var(--console-text)]`,children:e.keys}),(0,R.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-[var(--console-muted)]`,children:e.description})]},e.keys))})]},e.title))})]})]})})}function fr(...e){return de(he(e))}var pr={light:``,dark:`.dark`},mr={width:320,height:200},hr=F.createContext(null);function gr(){let e=F.useContext(hr);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function _r({id:e,className:t,children:n,config:r,initialDimension:i=mr,...a}){let o=F.useId(),s=`chart-${e??o.replace(/:/g,``)}`;return(0,R.jsx)(hr.Provider,{value:{config:r},children:(0,R.jsxs)(`div`,{"data-slot":`chart`,"data-chart":s,className:fr(`flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden`,t),...a,children:[(0,R.jsx)(vr,{id:s,config:r}),(0,R.jsx)(fe,{initialDimension:i,children:n})]})})}var vr=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme??e.color);return n.length?(0,R.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(pr).map(([t,r])=>`
|
|
70
|
+
${r} [data-chart=${e}] {
|
|
71
|
+
${n.map(([e,n])=>{let r=n.theme?.[t]??n.color;return r?` --color-${e}: ${r};`:null}).join(`
|
|
72
|
+
`)}
|
|
73
|
+
}
|
|
74
|
+
`).join(`
|
|
75
|
+
`)}}):null},yr=k;function br({active:e,payload:t,className:n,indicator:r=`dot`,hideLabel:i=!1,hideIndicator:a=!1,label:o,labelFormatter:s,labelClassName:c,formatter:l,color:u,nameKey:d,labelKey:f}){let{config:p}=gr(),m=F.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=`${f??e?.dataKey??e?.name??`value`}`,r=xr(p,e,n),a=!f&&typeof o==`string`?p[o]?.label??o:r?.label;return s?(0,R.jsx)(`div`,{className:fr(`font-medium`,c),children:s(a,t)}):a?(0,R.jsx)(`div`,{className:fr(`font-medium`,c),children:a}):null},[o,s,t,i,c,p,f]);if(!e||!t?.length)return null;let h=t.length===1&&r!==`dot`;return(0,R.jsxs)(`div`,{className:fr(`grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl`,n),children:[h?null:m,(0,R.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=`${d??e.name??e.dataKey??`value`}`,i=xr(p,e,n),o=u??e.payload?.fill??e.color;return(0,R.jsx)(`div`,{className:fr(`flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground`,r===`dot`&&`items-center`),children:l&&e?.value!==void 0&&e.name?l(e.value,e.name,e,t,e.payload):(0,R.jsxs)(R.Fragment,{children:[i?.icon?(0,R.jsx)(i.icon,{}):!a&&(0,R.jsx)(`div`,{className:fr(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"h-2.5 w-2.5":r===`dot`,"w-1":r===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":r===`dashed`,"my-0.5":h&&r===`dashed`}),style:{"--color-bg":o,"--color-border":o}}),(0,R.jsxs)(`div`,{className:fr(`flex flex-1 justify-between leading-none`,h?`items-end`:`items-center`),children:[(0,R.jsxs)(`div`,{className:`grid gap-1.5`,children:[h?m:null,(0,R.jsx)(`span`,{className:`text-muted-foreground`,children:i?.label??e.name})]}),e.value!=null&&(0,R.jsx)(`span`,{className:`font-mono font-medium text-foreground tabular-nums`,children:typeof e.value==`number`?e.value.toLocaleString():String(e.value)})]})]})},t)})})]})}function xr(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}function Sr(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:V(e)}function Cr({label:e,value:t,hint:n}){return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsx)(`p`,{className:`console-mono text-[11px] uppercase tracking-wider text-[var(--console-muted)]`,children:e}),(0,R.jsx)(`p`,{className:`console-mono mt-2 text-xl font-semibold text-[var(--console-text)]`,children:t}),n?(0,R.jsx)(`p`,{className:`mt-1 text-xs text-[var(--console-muted)]`,children:n}):null]})}function wr(e){return e.length>=10?e.slice(5):e}function Tr({buckets:e}){let[t,n]=(0,F.useState)(null),r=(0,F.useMemo)(()=>Math.max(1,...e.map(e=>e.sessions)),[e]),i=(0,F.useMemo)(()=>e.reduce((e,t)=>e+t.sessions,0),[e]),a=(0,F.useMemo)(()=>{if(e.length===0)return new Set;let t=Math.min(6,e.length);if(t===1)return new Set([0]);let n=new Set;for(let r=0;r<t;r+=1)n.add(Math.round(r*(e.length-1)/(t-1)));return n},[e.length]);return(0,R.jsxs)(`section`,{"aria-labelledby":`daily-activity-title`,className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h3`,{id:`daily-activity-title`,className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Daily Activity`}),(0,R.jsxs)(`p`,{className:`console-mono mt-1 text-[11px] text-[var(--console-muted)]`,children:[`Session activity · last `,e.length,` days`]})]}),(0,R.jsx)(`span`,{className:`console-mono text-right text-[11px] text-[var(--console-muted)]`,children:t?`${t.date} · ${V(t.sessions)} sessions · ${V(t.messages)} msgs`:`${V(i)} in range`})]}),(0,R.jsx)(`div`,{className:`flex h-32 items-end gap-[2px]`,onPointerLeave:()=>n(null),children:e.map(e=>{let i=e.sessions>0?Math.max(Math.round(e.sessions/r*128),4):2,a=`${e.date} · ${e.sessions} sessions · ${e.messages} msgs`,o=t?.date===e.date;return(0,R.jsx)(`button`,{type:`button`,"aria-label":a,onPointerEnter:()=>n(e),onClick:()=>n(e),onFocus:()=>n(e),onBlur:()=>n(null),className:`flex-1 cursor-default rounded-t-[1px] border-0 p-0 transition-opacity focus-visible:ring-2 focus-visible:ring-[var(--console-text)] focus-visible:ring-offset-2 focus-visible:outline-none ${e.sessions>0?`bg-[var(--console-accent)]`:`bg-[var(--console-surface-muted)]`} ${o?`opacity-70`:`opacity-100`}`,style:{height:`${i}px`}},e.date)})}),(0,R.jsx)(`div`,{className:`console-mono mt-2 flex text-[10px] text-[var(--console-muted)]`,children:e.map((e,t)=>(0,R.jsx)(`span`,{className:`flex-1 text-center`,children:a.has(t)?wr(e.date):``},e.date))}),(0,R.jsxs)(`table`,{className:`sr-only`,children:[(0,R.jsx)(`caption`,{children:`Daily Activity data`}),(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{children:[(0,R.jsx)(`th`,{scope:`col`,children:`Date`}),(0,R.jsx)(`th`,{scope:`col`,children:`Sessions`}),(0,R.jsx)(`th`,{scope:`col`,children:`Messages`})]})}),(0,R.jsx)(`tbody`,{children:e.map(e=>(0,R.jsxs)(`tr`,{children:[(0,R.jsx)(`th`,{scope:`row`,children:e.date}),(0,R.jsx)(`td`,{children:e.sessions}),(0,R.jsx)(`td`,{children:e.messages})]},e.date))})]})]})}var Er={input:`#4A9EFF`,output:`#7C5CFF`,cache_read:`#3FB68B`,cache_create:`#E8A23B`},Dr={input:`Input`,output:`Output`,cache_read:`Cache Read`,cache_create:`Cache Create`};function Or({buckets:e}){let[t,n]=(0,F.useState)(null),r=(0,F.useMemo)(()=>Math.max(1,...e.map(e=>e.input+e.output+e.cache_read+e.cache_create)),[e]),i=(0,F.useMemo)(()=>e.reduce((e,t)=>e+t.input+t.output+t.cache_read+t.cache_create,0),[e]),a=(0,F.useMemo)(()=>{if(e.length===0)return new Set;let t=Math.min(6,e.length);if(t===1)return new Set([0]);let n=new Set;for(let r=0;r<t;r+=1)n.add(Math.round(r*(e.length-1)/(t-1)));return n},[e.length]);return i===0?null:(0,R.jsxs)(`section`,{"aria-labelledby":`daily-token-activity-title`,className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h3`,{id:`daily-token-activity-title`,className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Daily Token Activity`}),(0,R.jsxs)(`p`,{className:`console-mono mt-1 text-[11px] text-[var(--console-muted)]`,children:[`Token breakdown · last `,e.length,` days`]})]}),(0,R.jsx)(`span`,{className:`console-mono text-right text-[11px] text-[var(--console-muted)]`,children:t?`${t.date} · ${Sr(t.input+t.output+t.cache_read+t.cache_create)} total`:`${Sr(i)} in range`})]}),t?(0,R.jsx)(`div`,{className:`mb-2 flex gap-4`,children:[`input`,`output`,`cache_read`,`cache_create`].map(e=>(0,R.jsxs)(`span`,{className:`console-mono flex items-center gap-1.5 text-[10px] text-[var(--console-muted)]`,children:[(0,R.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block size-2 rounded-full`,style:{backgroundColor:Er[e]}}),Dr[e],`: `,Sr(t[e])]},e))}):(0,R.jsx)(`div`,{className:`mb-2 flex gap-4`,children:[`input`,`output`,`cache_read`,`cache_create`].map(e=>(0,R.jsxs)(`span`,{className:`console-mono flex items-center gap-1.5 text-[10px] text-[var(--console-muted)]`,children:[(0,R.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block size-2 rounded-full`,style:{backgroundColor:Er[e]}}),Dr[e]]},e))}),(0,R.jsx)(`div`,{className:`flex h-32 items-end gap-[2px]`,onPointerLeave:()=>n(null),children:e.map(e=>{let i=e.input+e.output+e.cache_read+e.cache_create,a=i>0?Math.max(Math.round(i/r*128),4):2,o=t?.date===e.date,s=i>0?[{key:`input`,value:e.input},{key:`output`,value:e.output},{key:`cache_read`,value:e.cache_read},{key:`cache_create`,value:e.cache_create}]:[];return(0,R.jsx)(`button`,{type:`button`,"aria-label":`${e.date} · ${i} total tokens · ${e.input} input · ${e.output} output · ${e.cache_read} cache read · ${e.cache_create} cache create`,onPointerEnter:()=>n(e),onClick:()=>n(e),onFocus:()=>n(e),onBlur:()=>n(null),className:`flex flex-1 cursor-default flex-col justify-end overflow-hidden rounded-t-[1px] border-0 p-0 transition-opacity focus-visible:ring-2 focus-visible:ring-[var(--console-text)] focus-visible:ring-offset-2 focus-visible:outline-none ${o?`opacity-70`:`opacity-100`}`,style:{height:`${a}px`},children:i>0?s.map(e=>{let t=Math.max(Math.round(e.value/i*a),0);return t===0?null:(0,R.jsx)(`div`,{style:{height:`${t}px`,backgroundColor:Er[e.key]}},e.key)}):(0,R.jsx)(`div`,{className:`h-full bg-[var(--console-surface-muted)]`})},e.date)})}),(0,R.jsx)(`div`,{className:`console-mono mt-2 flex text-[10px] text-[var(--console-muted)]`,children:e.map((e,t)=>(0,R.jsx)(`span`,{className:`flex-1 text-center`,children:a.has(t)?wr(e.date):``},e.date))}),(0,R.jsxs)(`table`,{className:`sr-only`,children:[(0,R.jsx)(`caption`,{children:`Daily Token Activity data`}),(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{children:[(0,R.jsx)(`th`,{scope:`col`,children:`Date`}),(0,R.jsx)(`th`,{scope:`col`,children:`Input`}),(0,R.jsx)(`th`,{scope:`col`,children:`Output`}),(0,R.jsx)(`th`,{scope:`col`,children:`Cache Read`}),(0,R.jsx)(`th`,{scope:`col`,children:`Cache Create`})]})}),(0,R.jsx)(`tbody`,{children:e.map(e=>(0,R.jsxs)(`tr`,{children:[(0,R.jsx)(`th`,{scope:`row`,children:e.date}),(0,R.jsx)(`td`,{children:e.input}),(0,R.jsx)(`td`,{children:e.output}),(0,R.jsx)(`td`,{children:e.cache_read}),(0,R.jsx)(`td`,{children:e.cache_create})]},e.date))})]})]})}var kr=[`#4A9EFF`,`#7C5CFF`,`#3FB68B`,`#E8A23B`,`#E5484D`,`#5BCEDA`,`#F472B6`,`#A78BFA`,`#FB923C`,`#6EE7B7`];function Ar({entries:e}){let t=(0,F.useMemo)(()=>e.filter(e=>e.tokens>0),[e]),n=(0,F.useMemo)(()=>t.reduce((e,t)=>e+t.tokens,0),[t]);if(t.length===0||n===0)return(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4 text-sm text-[var(--console-muted)]`,children:`No model data yet`});let r=t.map((e,t)=>({...e,chartKey:`model${t}`,fraction:e.tokens/n,fill:kr[t%kr.length]})),i=r.reduce((e,t)=>(e[t.chartKey]={label:t.model,color:t.fill},e),{});return(0,R.jsxs)(`section`,{"aria-labelledby":`model-distribution-title`,className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,R.jsx)(`h3`,{id:`model-distribution-title`,className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Model Distribution`}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[t.length,` models`]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-6`,children:[(0,R.jsxs)(`div`,{className:`flex shrink-0 flex-col items-center`,children:[(0,R.jsx)(_r,{config:i,className:`aspect-square size-[160px]`,"aria-hidden":`true`,children:(0,R.jsxs)(me,{children:[(0,R.jsx)(yr,{content:(0,R.jsx)(br,{hideLabel:!0,nameKey:`chartKey`,formatter:e=>(0,R.jsxs)(`span`,{className:`font-mono font-medium text-foreground tabular-nums`,children:[V(Number(e)),` tokens`]})})}),(0,R.jsx)(se,{data:r,dataKey:`tokens`,nameKey:`chartKey`,outerRadius:70,paddingAngle:1,strokeWidth:0,isAnimationActive:!1})]})}),(0,R.jsxs)(`div`,{className:`console-mono -mt-1 text-center`,children:[(0,R.jsx)(`div`,{className:`text-xs font-semibold text-[var(--console-text)]`,children:Sr(n)}),(0,R.jsx)(`div`,{className:`text-[10px] text-[var(--console-muted)]`,children:`tokens`})]})]}),(0,R.jsx)(`ul`,{className:`min-w-0 flex-1 space-y-1.5`,children:r.map(e=>(0,R.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block size-2.5 shrink-0 rounded-full`,style:{backgroundColor:e.fill}}),(0,R.jsx)(`span`,{className:`console-mono min-w-0 flex-1 truncate text-xs text-[var(--console-text)]`,children:e.model}),(0,R.jsxs)(`span`,{className:`console-mono shrink-0 text-[11px] text-[var(--console-muted)]`,children:[Sr(e.tokens),` · `,(e.fraction*100).toFixed(1),`%`]})]},e.model))})]})]})}function jr({perAgent:e}){let t=(0,F.useMemo)(()=>e.reduce((e,t)=>e+t.sessions,0),[e]);return t===0||e.length===0?(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4 text-sm text-[var(--console-muted)]`,children:`No agent data yet`}):(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Agent Distribution`}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[e.length,` agents`]})]}),(0,R.jsx)(`ul`,{className:`space-y-2`,children:e.map(e=>{let n=t>0?e.sessions/t*100:0;return(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:`/${e.name.toLowerCase()}`,className:`block rounded-sm border border-transparent px-2 py-1.5 transition-colors hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon?(0,R.jsx)(`img`,{src:e.icon,alt:e.displayName,className:`size-4 object-contain`}):null,(0,R.jsx)(`span`,{className:`console-mono flex-1 text-xs text-[var(--console-text)]`,children:e.displayName}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[V(e.sessions),` · `,n.toFixed(1),`%`]})]}),(0,R.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-sm bg-[var(--console-surface-muted)]`,children:(0,R.jsx)(`div`,{className:`h-full bg-[var(--console-accent)]`,style:{width:`${n}%`}})}),(0,R.jsxs)(`div`,{className:`console-mono mt-1 flex gap-3 text-[10px] text-[var(--console-muted)]`,children:[(0,R.jsxs)(`span`,{children:[V(e.messages),` msgs`]}),(0,R.jsxs)(`span`,{children:[Sr(e.tokens),` tokens`]})]})]})},e.name)})})]})}function Mr({projects:e}){return e.length===0?null:(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Projects`}),(0,R.jsx)(h,{to:`/projects`,className:`console-mono text-[11px] text-[var(--console-muted)] transition-colors hover:text-[var(--console-text)]`,children:`View all`})]}),(0,R.jsx)(`ul`,{className:`space-y-2`,children:e.slice(0,5).map(e=>{let t=e.agentStats.slice(0,3);return(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:Ft({kind:e.identityKind,key:e.identityKey}),className:`block rounded-sm border border-transparent px-2 py-1.5 transition-colors hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono min-w-0 flex-1 truncate text-xs text-[var(--console-text)]`,children:e.displayName}),(0,R.jsxs)(`span`,{className:`console-mono shrink-0 text-[11px] text-[var(--console-muted)]`,children:[V(e.sessionCount),` · `,In(e.cost)]})]}),(0,R.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-1.5`,children:[t.map(e=>{let t=H.agents[e.name];return(0,R.jsxs)(`span`,{className:`console-mono inline-flex items-center gap-1 rounded-sm border border-[var(--console-border)] bg-white px-1.5 py-0.5 text-[10px] text-[var(--console-muted)]`,children:[t?.icon?(0,R.jsx)(`img`,{src:t.icon,alt:t.name,className:`size-3 object-contain`}):null,t?.name??e.name,` · `,e.sessions]},e.name)}),(0,R.jsxs)(`span`,{className:`console-mono min-w-0 truncate text-[10px] text-[var(--console-muted)]`,children:[Sr(e.tokens),` tokens`]})]})]})},`${e.identityKind}:${e.identityKey}`)})})]})}function Nr({sessions:e,onToggleBookmark:t}){return e.length===0?null:(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Bookmarked Sessions`}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[e.length,` items`]})]}),(0,R.jsx)(`ul`,{className:`space-y-2`,children:e.map(e=>{let n=H.agents[e.agentKey],r=e.time_updated??e.time_created;return(0,R.jsx)(`li`,{children:(0,R.jsxs)(`div`,{className:`flex items-start gap-2 rounded-sm border border-transparent px-2 py-1.5 transition-colors hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsxs)(h,{to:`/${e.fullPath}`,className:`flex min-w-0 flex-1 items-start gap-2`,children:[n?.icon?(0,R.jsx)(`img`,{src:n.icon,alt:n.name,className:`mt-0.5 size-3.5 shrink-0 object-contain`}):null,(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`p`,{className:`line-clamp-1 text-sm text-[var(--console-text)]`,children:e.title}),(0,R.jsxs)(`p`,{className:`console-mono mt-0.5 line-clamp-1 text-[11px] text-[var(--console-muted)]`,children:[`/`,e.fullPath,` · `,B(r)]})]})]}),(0,R.jsx)(Yn,{active:!0,onToggle:()=>t(e)})]})},vn(e.agentKey,e.sessionId))})})]})}function Pr({sessions:e,isBookmarked:t,onToggleBookmark:n}){return e.length===0?(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4 text-sm text-[var(--console-muted)]`,children:`No sessions yet`}):(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Recent Activity`}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[e.length,` items`]})]}),(0,R.jsx)(`ul`,{className:`space-y-2`,children:e.map(e=>{let r=e.agentName.toLowerCase(),i=H.agents[r],a=e.time_updated??e.time_created,o=t(r,e.id);return(0,R.jsx)(`li`,{children:(0,R.jsxs)(`div`,{className:`flex items-start gap-2 rounded-sm border border-transparent px-2 py-1.5 transition-colors hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsxs)(h,{to:`/${e.slug}`,className:`min-w-0 flex-1`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i?.icon?(0,R.jsx)(`img`,{src:i.icon,alt:i.name,className:`size-3.5 shrink-0 object-contain`}):null,(0,R.jsx)(`p`,{className:`line-clamp-1 flex-1 text-sm text-[var(--console-text)]`,children:e.title}),(0,R.jsx)(`span`,{className:`console-mono shrink-0 text-[11px] text-[var(--console-muted)]`,children:B(a)})]}),(0,R.jsxs)(`p`,{className:`console-mono mt-0.5 line-clamp-1 text-[11px] text-[var(--console-muted)]`,children:[`/`,e.slug]}),(0,R.jsx)(Wt,{tags:e.smart_tags,className:`mt-1.5`})]}),(0,R.jsx)(Yn,{active:o,onToggle:()=>n(e,r)})]})},e.id)})})]})}function Fr({activity:e}){return e.length===0?(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4 text-sm text-[var(--console-muted)]`,children:`No file activity yet`}):(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Recently Touched Files`}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[e.length,` files`]})]}),(0,R.jsx)(`ul`,{className:`space-y-2`,children:e.map(e=>{let t=e.latest_time;return(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:`/${e.session.slug}`,className:`block rounded-sm border border-transparent px-2 py-1.5 transition-colors hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--console-muted)]`,children:e.kind}),(0,R.jsx)(`span`,{className:`console-mono min-w-0 flex-1 truncate text-xs text-[var(--console-text)]`,children:e.path}),(0,R.jsx)(`span`,{className:`console-mono shrink-0 text-[11px] text-[var(--console-muted)]`,children:B(t)})]}),(0,R.jsxs)(`p`,{className:`console-mono mt-1 line-clamp-1 text-[11px] text-[var(--console-muted)]`,children:[e.session.project_identity?.displayName??e.session.directory,` ·`,` `,e.session.title,` · `,e.count,` events`]})]})},`${e.agent_name}/${e.session_id}/${e.kind}/${e.path}`)})})]})}function Ir({data:e,projects:t=[],bookmarkedSessions:n,isBookmarked:r,onToggleBookmark:i}){let{totals:a,perAgent:o,dailyActivity:s,dailyTokenActivity:c,modelDistribution:l,recentSessions:u,recentFileActivities:d=[]}=e;return(0,R.jsxs)(`div`,{"data-testid":`dashboard`,className:`mx-auto max-w-5xl space-y-4`,children:[(0,R.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-5`,children:[(0,R.jsx)(Cr,{label:`Total Sessions`,value:V(a.sessions)}),(0,R.jsx)(Cr,{label:`Total Messages`,value:V(a.messages)}),(0,R.jsx)(Cr,{label:`Total Tokens`,value:Sr(a.tokens)}),(0,R.jsx)(Cr,{label:`Total Cost`,value:In(a.cost),hint:Ln(a.cost_source)}),(0,R.jsx)(Cr,{label:`Latest Activity`,value:B(a.latestActivity),hint:a.latestActivity?new Date(a.latestActivity).toLocaleString(`zh-CN`):void 0})]}),(0,R.jsx)(Tr,{buckets:s}),(0,R.jsx)(Or,{buckets:c}),(0,R.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-2`,children:[(0,R.jsx)(Ar,{entries:l}),(0,R.jsx)(jr,{perAgent:o})]}),(0,R.jsx)(Mr,{projects:t}),(0,R.jsx)(Pr,{sessions:u,isBookmarked:r,onToggleBookmark:i}),(0,R.jsx)(Fr,{activity:d}),(0,R.jsx)(Nr,{sessions:n,onToggleBookmark:e=>i(e)})]})}function Lr(e){return e.total_tokens??e.total_input_tokens+e.total_output_tokens}function Rr({label:e,value:t,hint:n}){return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsx)(`p`,{className:`console-mono text-[11px] uppercase tracking-wider text-[var(--console-muted)]`,children:e}),(0,R.jsx)(`p`,{className:`console-mono mt-2 text-xl font-semibold text-[var(--console-text)]`,children:t}),n?(0,R.jsx)(`p`,{className:`mt-1 text-xs text-[var(--console-muted)]`,children:n}):null]})}function zr({label:e,value:t}){return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] p-3`,children:[(0,R.jsx)(`p`,{className:`console-mono text-[11px] uppercase tracking-wider text-[var(--console-muted)]`,children:e}),(0,R.jsx)(`p`,{className:`console-mono mt-2 break-all text-sm leading-6 text-[var(--console-text)]`,children:t})]})}function Br({code:e,title:t,description:n,aside:r,iconSrc:i,iconAlt:a}){return(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border-strong)] bg-white p-5 md:p-6`,children:(0,R.jsxs)(`div`,{className:`flex flex-col gap-5 md:flex-row md:items-start md:justify-between`,children:[(0,R.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,R.jsx)(`span`,{className:`console-mono inline-flex rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--console-muted)]`,children:e}),(0,R.jsxs)(`div`,{className:`mt-4 flex items-start gap-3`,children:[i?(0,R.jsx)(`img`,{src:i,alt:a||``,className:`mt-1 size-8 shrink-0 object-contain`}):null,(0,R.jsx)(`h2`,{className:`console-mono text-2xl leading-tight font-semibold tracking-tight text-[var(--console-text)] md:text-[2rem]`,children:t})]}),(0,R.jsx)(`p`,{className:`mt-3 max-w-[42rem] text-sm leading-7 text-[var(--console-muted)]`,children:n})]}),(0,R.jsxs)(`div`,{className:`min-w-0 rounded-sm border border-dashed border-[var(--console-border)] bg-[var(--console-surface-muted)] px-4 py-3 md:max-w-xs`,children:[(0,R.jsx)(`p`,{className:`console-mono text-[11px] uppercase tracking-[0.16em] text-[var(--console-muted)]`,children:`STATUS NOTE`}),(0,R.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-[var(--console-text)]`,children:r})]})]})})}function Vr({agentItems:e}){return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Known Agents`}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[e.length,` items`]})]}),(0,R.jsx)(`ul`,{className:`grid gap-2 sm:grid-cols-2`,children:e.map(e=>(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:`/${e.key}`,className:`flex min-h-11 items-center gap-2 rounded-sm border border-transparent px-3 py-2 transition-colors duration-200 hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--console-accent)]`,children:[e.icon?(0,R.jsx)(`img`,{src:e.icon,alt:e.name,className:`size-4 object-contain`}):null,(0,R.jsx)(`span`,{className:`console-mono flex-1 text-xs text-[var(--console-text)]`,children:e.name}),(0,R.jsx)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:e.count})]})},e.key))})]})}function Hr({sessions:e,isBookmarked:t,onToggleBookmark:n}){return e.length===0?(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4 text-sm text-[var(--console-muted)]`,children:`No sessions yet`}):(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Recent Sessions`}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[e.length,` items`]})]}),(0,R.jsx)(`ul`,{className:`space-y-2`,children:e.map(e=>{let r=t(e.agentKey,e.id);return(0,R.jsx)(`li`,{children:(0,R.jsxs)(`div`,{className:`flex items-start gap-2 rounded-sm border border-transparent px-2 py-1.5 transition-colors hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsxs)(h,{to:`/${e.fullPath}`,className:`min-w-0 flex-1`,children:[(0,R.jsx)(`p`,{className:`line-clamp-1 text-sm text-[var(--console-text)]`,children:e.title}),(0,R.jsxs)(`p`,{className:`console-mono mt-0.5 text-[11px] text-[var(--console-muted)]`,children:[`/`,e.fullPath,` ·`,` `,B(e.time_updated||e.time_created)]}),(0,R.jsx)(Wt,{tags:e.smart_tags,className:`mt-1.5`})]}),(0,R.jsx)(Yn,{active:r,onToggle:()=>n(e)})]})},e.id)})})]})}function Ur({type:e,sessions:t,agentItems:n,activeAgentKey:r,attemptedAgentKey:i,attemptedSessionSlug:a,isBookmarked:o,onToggleBookmark:s}){let c=t.toSorted((e,t)=>(t.time_updated||t.time_created||0)-(e.time_updated||e.time_created||0)),l=c.slice(0,5),u=t.reduce((e,t)=>e+t.stats.message_count,0),d=t.reduce((e,t)=>e+Lr(t.stats),0),f=t.reduce((e,t)=>e+t.stats.total_cost,0),p=f>0?t.some(e=>e.stats.cost_source===`estimated`)?`estimated`:`recorded`:void 0,m=c[0]?.time_updated||c[0]?.time_created;if(e===`missing-agent`){let e=`/${i||`unknown`}${a?`/${a}`:``}`;return(0,R.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-4`,children:[(0,R.jsx)(Br,{code:`404 / AGENT`,title:`This agent isn't on the roster.`,description:`The path you requested is valid in shape, but there is no matching agent in the current registry. It may not be connected yet, or its name may not match what the system recognizes.`,aside:`Choose one of the available agents to continue.`}),(0,R.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,R.jsx)(zr,{label:`Requested Agent`,value:i||`unknown`}),(0,R.jsx)(zr,{label:`Requested Path`,value:e}),a?(0,R.jsx)(zr,{label:`Requested Session`,value:a}):null]}),(0,R.jsx)(Vr,{agentItems:n})]})}if(e===`missing-session`){let e=r||H.getDefaultAgentKey()||`claudecode`,t=H.agents[e],n=t?.name||e,i=t?.icon,c=a||`unknown-session`;return(0,R.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-4`,children:[(0,R.jsx)(Br,{code:`404 / SESSION`,title:`This session isn't in the index.`,description:`${n} is available, but the session you're looking for does not exist in the current index. The slug may be incorrect, or the record may never have been part of this dataset.`,aside:`We checked the current path, but nothing matched. The session list on the left is still available.`,iconSrc:i,iconAlt:n}),(0,R.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:[(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] p-3`,children:[(0,R.jsx)(`p`,{className:`console-mono text-[11px] uppercase tracking-wider text-[var(--console-muted)]`,children:`Agent`}),(0,R.jsxs)(`div`,{className:`mt-2 flex items-center gap-2`,children:[i?(0,R.jsx)(`img`,{src:i,alt:n,className:`size-4 shrink-0 object-contain`}):null,(0,R.jsx)(`p`,{className:`console-mono break-all text-sm leading-6 text-[var(--console-text)]`,children:n})]})]}),(0,R.jsx)(zr,{label:`Session`,value:c})]}),(0,R.jsx)(Hr,{sessions:l,isBookmarked:o,onToggleBookmark:s})]})}if(e===`global`)return(0,R.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-4`,children:[(0,R.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,R.jsx)(Rr,{label:`Total Sessions`,value:V(t.length)}),(0,R.jsx)(Rr,{label:`Total Messages`,value:V(u)}),(0,R.jsx)(Rr,{label:`Latest Activity`,value:B(m),hint:m?new Date(m).toLocaleString(`zh-CN`):void 0})]}),(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsx)(`h3`,{className:`console-mono mb-3 text-xs font-bold uppercase text-[var(--console-text)]`,children:`Agents`}),(0,R.jsx)(`ul`,{className:`grid gap-2 sm:grid-cols-2`,children:n.map(e=>(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:`/${e.key}`,className:`flex items-center gap-2 rounded-sm border border-transparent px-2 py-1.5 transition-colors hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`,children:[e.icon?(0,R.jsx)(`img`,{src:e.icon,alt:e.name,className:`size-4 object-contain`}):null,(0,R.jsx)(`span`,{className:`console-mono flex-1 text-xs text-[var(--console-text)]`,children:e.name}),(0,R.jsx)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:e.count})]})},e.key))})]}),(0,R.jsx)(Hr,{sessions:l,isBookmarked:o,onToggleBookmark:s})]});let g=r?H.agents[r]:null,_=g?g.name:`Unknown Agent`;return(0,R.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-4`,children:[(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[g?(0,R.jsx)(`img`,{src:g.icon,alt:_,className:`size-6 object-contain`}):null,(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h3`,{className:`console-mono text-sm font-semibold text-[var(--console-text)]`,children:_}),(0,R.jsx)(`p`,{className:`console-mono text-xs text-[var(--console-muted)]`,children:`Select a session from the left to view details`})]})]})}),(0,R.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-4`,children:[(0,R.jsx)(Rr,{label:`Sessions`,value:V(t.length)}),(0,R.jsx)(Rr,{label:`Messages`,value:V(u)}),(0,R.jsx)(Rr,{label:`Tokens`,value:V(d)}),(0,R.jsx)(Rr,{label:`Total Cost`,value:In(f),hint:Ln(p)})]}),(0,R.jsx)(Hr,{sessions:l,isBookmarked:o,onToggleBookmark:s})]})}function Wr(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:V(e)}function Gr(e){return e.stats.total_tokens??e.stats.total_input_tokens+e.stats.total_output_tokens}function Kr({label:e,value:t,hint:n}){return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsx)(`p`,{className:`console-mono text-[11px] uppercase tracking-wider text-[var(--console-muted)]`,children:e}),(0,R.jsx)(`p`,{className:`console-mono mt-2 text-xl font-semibold text-[var(--console-text)]`,children:t}),n?(0,R.jsx)(`p`,{className:`mt-1 text-xs text-[var(--console-muted)]`,children:n}):null]})}function qr({agents:e}){return e.length===0?null:(0,R.jsx)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:e.slice(0,4).map(e=>{let t=H.agents[e.name];return(0,R.jsxs)(`span`,{className:`console-mono inline-flex items-center gap-1 rounded-sm border border-[var(--console-border)] bg-white px-1.5 py-0.5 text-[10px] text-[var(--console-muted)]`,children:[t?.icon?(0,R.jsx)(`img`,{src:t.icon,alt:t.name,className:`size-3 object-contain`}):null,t?.name??e.name,` · `,e.sessions]},e.name)})})}function Jr({project:e}){return(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:Ft({kind:e.identityKind,key:e.identityKey}),className:`block rounded-sm border border-[var(--console-border)] bg-white/85 p-4 transition-colors hover:border-[var(--console-border-strong)] hover:bg-white`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-3 md:flex-row md:items-start md:justify-between`,children:[(0,R.jsxs)(`div`,{className:`min-w-0`,children:[(0,R.jsx)(`h2`,{className:`console-mono line-clamp-1 text-sm font-semibold text-[var(--console-text)]`,children:e.displayName}),(0,R.jsx)(`p`,{className:`console-mono mt-1 break-all text-[11px] text-[var(--console-muted)]`,children:e.identityKey})]}),(0,R.jsxs)(`div`,{className:`console-mono flex shrink-0 flex-wrap gap-2 text-[11px] text-[var(--console-muted)]`,children:[(0,R.jsxs)(`span`,{children:[V(e.sessionCount),` sessions`]}),(0,R.jsxs)(`span`,{children:[Wr(e.tokens),` tokens`]}),(0,R.jsx)(`span`,{children:In(e.cost)}),(0,R.jsx)(`span`,{children:B(e.lastActivity)})]})]}),(0,R.jsxs)(`div`,{className:`mt-3 flex flex-col gap-2 md:flex-row md:items-center md:justify-between`,children:[(0,R.jsx)(qr,{agents:e.agentStats}),(0,R.jsx)(`span`,{className:`console-mono text-[10px] uppercase text-[var(--console-muted)]`,children:e.identityKind})]})]})})}function Yr({projects:e}){let t=e.reduce((e,t)=>e+t.sessionCount,0),n=e.reduce((e,t)=>e+t.tokens,0),r=e.reduce((e,t)=>e+t.cost,0),i=Math.max(0,...e.map(e=>e.lastActivity??0));return e.length===0?(0,R.jsx)(`div`,{className:`mx-auto max-w-5xl rounded-sm border border-[var(--console-border)] bg-white p-6 text-sm text-[var(--console-muted)]`,children:`No projects found`}):(0,R.jsxs)(`div`,{className:`mx-auto max-w-5xl space-y-4`,children:[(0,R.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-4`,children:[(0,R.jsx)(Kr,{label:`Projects`,value:V(e.length)}),(0,R.jsx)(Kr,{label:`Sessions`,value:V(t)}),(0,R.jsx)(Kr,{label:`Tokens`,value:Wr(n)}),(0,R.jsx)(Kr,{label:`Total Cost`,value:In(r),hint:i?`Latest ${B(i)}`:void 0})]}),(0,R.jsx)(`ul`,{className:`grid gap-3`,children:e.map(e=>(0,R.jsx)(Jr,{project:e},`${e.identityKind}:${e.identityKey}`))})]})}function Xr({agents:e,activeAgent:t,onChange:n}){return(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-3`,children:(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-[10px] font-semibold uppercase text-[var(--console-muted)]`,children:`Agent`}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>n(void 0),className:`console-mono rounded-sm border px-2 py-1 text-[10px] transition-colors ${t?`border-[var(--console-border)] bg-[var(--console-surface-muted)] text-[var(--console-muted)] hover:bg-white`:`border-[var(--console-border-strong)] bg-[var(--console-accent)] text-white`}`,children:`All Agents`}),e.map(e=>{let r=H.agents[e.name],i=t===e.name;return(0,R.jsxs)(`button`,{type:`button`,onClick:()=>n(i?void 0:e.name),className:`console-mono inline-flex items-center gap-1 rounded-sm border px-2 py-1 text-[10px] transition-colors ${i?`border-[var(--console-border-strong)] bg-[var(--console-accent)] text-white`:`border-[var(--console-border)] bg-[var(--console-surface-muted)] text-[var(--console-muted)] hover:bg-white`}`,children:[r?.icon?(0,R.jsx)(`img`,{src:r.icon,alt:r.name,className:`size-3 object-contain`}):null,r?.name??e.name,` · `,e.sessions]},e.name)})]})})}function Zr({project:e}){return(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:(0,R.jsxs)(`div`,{className:`flex flex-col gap-3 md:flex-row md:items-start md:justify-between`,children:[(0,R.jsxs)(`div`,{className:`min-w-0`,children:[(0,R.jsx)(`h2`,{className:`console-mono text-base font-semibold text-[var(--console-text)]`,children:e.displayName}),(0,R.jsxs)(`p`,{className:`console-mono mt-1 break-all text-[11px] text-[var(--console-muted)]`,children:[e.identityKind,`: `,e.identityKey]})]}),(0,R.jsx)(qr,{agents:e.agentStats})]})})}function Qr({sessions:e}){if(e.length===0)return null;let t=e.toSorted((e,t)=>t.stats.total_cost-e.stats.total_cost).slice(0,5);return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,R.jsx)(`h3`,{className:`console-mono text-xs font-bold uppercase text-[var(--console-text)]`,children:`Top Cost`}),(0,R.jsxs)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:[t.length,` sessions`]})]}),(0,R.jsx)(`ul`,{className:`space-y-2`,children:t.map(e=>{let t=H.agents[e.agentKey];return(0,R.jsx)(`li`,{children:(0,R.jsxs)(h,{to:`/${e.fullPath}`,className:`block rounded-sm border border-transparent px-2 py-1.5 transition-colors hover:border-[var(--console-border)] hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t?.icon?(0,R.jsx)(`img`,{src:t.icon,alt:t.name,className:`size-3.5 object-contain`}):null,(0,R.jsx)(`span`,{className:`line-clamp-1 flex-1 text-sm text-[var(--console-text)]`,children:e.title}),(0,R.jsx)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:In(e.stats.total_cost)})]}),(0,R.jsxs)(`p`,{className:`console-mono mt-1 text-[11px] text-[var(--console-muted)]`,children:[`/`,e.fullPath,` · `,Wr(Gr(e)),` tokens`]})]})},e.fullPath)})})]})}function $r({project:e,projectKey:t,dashboard:n,loading:r,error:i,sessions:a,activeAgent:o,onChangeAgent:s,isBookmarked:c,onToggleSessionBookmark:l}){if(!e)return(0,R.jsxs)(`div`,{className:`mx-auto max-w-4xl rounded-sm border border-[var(--console-border)] bg-white p-6`,children:[(0,R.jsx)(`h2`,{className:`console-mono text-sm font-semibold text-[var(--console-text)]`,children:`Project Not Found`}),(0,R.jsx)(`p`,{className:`console-mono mt-2 break-all text-xs text-[var(--console-muted)]`,children:t}),(0,R.jsx)(h,{to:`/projects`,className:`console-mono mt-4 inline-flex rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-xs text-[var(--console-text)] transition-colors hover:bg-white`,children:`Back to Projects`})]});let u=o?a.filter(e=>e.agentKey===o):a;return(0,R.jsxs)(`div`,{className:`mx-auto max-w-5xl space-y-4`,children:[(0,R.jsx)(Zr,{project:e}),(0,R.jsx)(Xr,{agents:e.agentStats,activeAgent:o,onChange:s}),r?(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-6 text-sm text-[var(--console-muted)]`,children:`Loading project dashboard`}):i?(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-error-border)] bg-[var(--console-error-bg)] p-6 text-sm text-[var(--console-error)]`,children:i}):n?(0,R.jsx)(Ir,{data:n,projects:[],bookmarkedSessions:[],isBookmarked:c,onToggleBookmark:(e,t)=>{`agentName`in e&&l(e,t??e.agentName.toLowerCase())}}):null,(0,R.jsx)(Qr,{sessions:u})]})}var ei={a:({children:e})=>(0,R.jsx)(`span`,{className:`console-markdown-link`,children:e})};function ti(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ni(e){let t=e?.trim();if(!t)return null;let n=Array.from(new Set((t.match(/"[^"]+"|\S+/g)??[]).map(e=>e.replace(/^"|"$/g,``).trim()).filter(Boolean).filter(e=>!/^OR$/i.test(e))));return n.length===0?null:RegExp(`(${n.map(ti).join(`|`)})`,`gi`)}function ri({text:e,highlightQuery:t}){let r=(0,F.useRef)(null),i=(0,F.useMemo)(()=>ni(t),[t]);return(0,F.useEffect)(()=>{let e=r.current;if(!e||!i)return;let t=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=[];for(;t.nextNode();){let e=t.currentNode;if(!(e instanceof Text))continue;let r=e.parentElement;r&&(r.closest(`mark, pre, code`)||e.textContent?.trim()&&n.push(e))}for(let e of n){let t=e.textContent??``;if(i.lastIndex=0,!i.test(t))continue;let n=document.createDocumentFragment(),r=0;i.lastIndex=0;for(let e of t.matchAll(i)){let i=e.index??0,a=e[0]??``;i>r&&n.append(t.slice(r,i));let o=document.createElement(`mark`);o.textContent=a,n.append(o),r=i+a.length}r<t.length&&n.append(t.slice(r)),e.parentNode?.replaceChild(n,e)}},[i,e]),(0,R.jsx)(`div`,{ref:r,children:(0,R.jsx)(n,{components:ei,children:e})})}function ii(e){return li(e)?`Browser`:typeof e.title==`string`&&e.title.trim()?oi(e.title):typeof e.tool==`string`&&e.tool.trim()?oi(e.tool):`tool`}function ai(e){return li(e)?`browser`:oi(typeof e.tool==`string`&&e.tool.trim()?e.tool:ii(e)).toLowerCase()}function oi(e){return e.trim().replace(/^tool:\s*/i,``).replace(/^\.+(?=\w)/,``)}function si(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function ci(e){return typeof e==`string`?e.trim():``}function li(e){let t=ci(si(e.state?.metadata).namespace);return oi(ci(e.tool)).toLowerCase()===`js`&&(t===`mcp__node_repl__`||t===`mcp__node_repl__.js`)}function ui(e,t){let n=ai(t),r=`tool:${n}`,i=e.get(n);if(i){i.count+=1;return}e.set(n,{id:r,toolKey:n,label:ii(t),count:1})}function di(e){let t={user:0,agent_message:0,thinking:0,plan:0,tools_all:0},n=new Set,r=new Map;for(let{msg:i,blocks:a}of e)for(let e of a){if(i.role===`user`){t.user+=1,n.add(`user`);continue}if(e.type===`text`){t.agent_message+=1,n.add(`agent_message`);continue}if(e.type===`reasoning`){t.thinking+=1,n.add(`thinking`);continue}if(e.type===`plan`){t.plan+=1,n.add(`plan`);continue}t.tools_all+=e.parts.length,n.add(`tools_all`);for(let t of e.parts)ui(r,t),n.add(`tool:${ai(t)}`)}return{filterIds:n,counts:t,tools:[...r.values()].toSorted((e,t)=>e.label.localeCompare(t.label))}}function fi(e,t){return t.has(`tool:${ai(e)}`)}function pi(e,t,n){return t.role===`user`?n.has(`user`):e.type===`text`?n.has(`agent_message`):e.type===`reasoning`?n.has(`thinking`):e.type===`plan`?n.has(`plan`):e.parts.some(e=>fi(e,n))}function mi(e,t){let n=e.parts.filter(e=>fi(e,t));return n.length===0?null:{...e,parts:n}}function hi(e,t){return e.map(e=>{let n=e.blocks.filter(n=>pi(n,e.msg,t)).map(e=>e.type===`tool`?mi(e,t):e).filter(e=>e!=null);return n.length===0?null:{msg:e.msg,blocks:n,index:e.index}}).filter(e=>e!=null)}function gi(e){if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(e=>{if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e,n=gi(t.text);if(n.trim())return n;let r=gi(t.content);if(r.trim())return r}return``}).filter(Boolean).join(`
|
|
76
|
+
|
|
77
|
+
`);if(e&&typeof e==`object`){let t=e,n=gi(t.text);if(n.trim())return n;let r=gi(t.content);if(r.trim())return r}return``}function _i(e){return e.type===`tool`||e.type===`plan`?!0:e.type===`text`||e.type===`reasoning`?!!gi(e.text).trim():!1}function vi(e){return e.reduce((e,t)=>{if(!_i(t))return e;let n=e.at(-1);return t.type!==`plan`&&n?.type===t.type?(n.parts.push(t),e):(e.push({type:t.type,parts:[t]}),e)},[])}function yi(e){let t=[];for(let n of e){let e=vi(n.parts);e.length!==0&&t.push({msg:n,blocks:e,index:t.length})}return t}function bi(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function xi(e){return typeof e==`string`?e:``}function Si(e){return e.replace(/\\n/g,`
|
|
78
|
+
`)}function Ci(e){let t=bi(e),n=xi(t.type);return n?{type:n,path:xi(t.path),oldPath:xi(t.old_path),targetPath:xi(t.targetPath),content:xi(t.content)||xi(bi(t.input).content)}:null}function wi(e){return(Array.isArray(e)?e:Array.isArray(bi(e).content)?bi(e).content:[]).map(e=>Ci(e)).filter(e=>e!=null)}function Ti(e,t,n){return`${e} ${e===1?t:n}`}function Ei(e){let t=e.filter(e=>e.type===`write_file`).length,n=e.filter(e=>e.type===`edit_file`).length,r=e.filter(e=>e.type===`delete_file`).length,i=e.filter(e=>e.type===`move_file`).length,a=[];return t>0&&a.push(Ti(t,`write`,`writes`)),n>0&&a.push(Ti(n,`edit`,`edits`)),r>0&&a.push(Ti(r,`delete`,`deletes`)),i>0&&a.push(Ti(i,`move`,`moves`)),a.join(` · `)}function Di(e){return e.targetPath||e.path||e.oldPath||e.type}function Oi(e,t,n){return e.reduce((e,r)=>r.type===`write_file`?(e.push({label:n(Di(r)),operation:`write`,language:t(r.path),isCode:!0,text:Si(r.content)}),e):r.type===`edit_file`?(e.push({label:n(Di(r)),operation:`edit`,language:`diff`,isCode:!0,text:Si(r.content)}),e):r.type===`delete_file`?(e.push({label:n(Di(r)),operation:`edit`,language:`text`,isCode:!1,text:`File deleted.`}),e):(r.type===`move_file`&&e.push({label:n(Di(r)),operation:`edit`,language:`text`,isCode:!1,text:r.targetPath&&r.path?`Moved from ${n(r.path)} to ${n(r.targetPath)}`:r.oldPath?`Moved from ${n(r.oldPath)}`:`File moved.`}),e),[])}function ki(e,t,n,r=e=>e){let i=Oi(e,n,r);return i.length>0?{kind:`file-sections`,sections:i}:{kind:`plain`,text:t,language:`text`,isCode:!1}}function Ai(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ji(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}}function Mi(e){return typeof e==`string`?e.trim():``}function U(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function W(e){return typeof e==`string`?e.trim():``}function G(e){return typeof e==`string`?e:``}function Ni(e){try{return JSON.parse(e)}catch{return null}}function K(e){return e.replaceAll(/\\n/g,`
|
|
79
|
+
`)}function Pi(e){if(e==null)return``;if(typeof e==`string`){let t=e.trim();if(!t)return``;try{let e=JSON.parse(t);return JSON.stringify(e,null,2)}catch{return e}}try{return JSON.stringify(e,null,2)}catch{return typeof e==`number`||typeof e==`bigint`||typeof e==`boolean`?`${e}`:typeof e==`symbol`?e.description?`Symbol(${e.description})`:`Symbol`:typeof e==`function`?`[Function]`:`[Unserializable value]`}}function Fi(e){if(typeof e==`string`)return[e];if(Array.isArray(e))return e.flatMap(e=>Fi(e));if(e&&typeof e==`object`){let t=e;if(typeof t.text==`string`)return[t.text];if(t.content!==void 0)return Fi(t.content)}return[]}function Ii(e){return e.replace(/^<system>/i,``).replace(/<\/system>$/i,``).trim()}function Li(e,t=!0){let n=Fi(e).map(e=>e.trim()).filter(e=>t?!!e:!!e&&!/^<system>[\s\S]*<\/system>$/i.test(e));return n.length===0?``:n.map(e=>t&&/^<system>[\s\S]*<\/system>$/i.test(e)?Ii(e):e).join(`
|
|
80
|
+
`)}function Ri(e){let t=ji(e);if(t&&typeof t==`object`){let e=t;if(typeof e.cmd==`string`)return e.cmd;if(typeof e.command==`string`)return e.command}return``}function zi(e){let t=e.trim();return t?t.replace(/^tool:\s*/i,``).replace(/^\.+(?=\w)/,``):``}function Bi(e){return typeof e.title==`string`&&e.title.trim()?zi(e.title):typeof e.tool==`string`&&e.tool.trim()?zi(e.tool):`tool`}function Vi(e){return Bi(e).trim().toLowerCase()}function Hi(e,t=`Tool`){return zi(W(e.title))||W(e.tool)||t}function Ui(e){return K(Li(e)||Pi(e))||`No output captured.`}function q(e){let t=Ui(e.outputValue);if(t!==`No output captured.`)return t;let n=Ui(e.errorValue);return n===`No output captured.`?`No output captured.`:n}function Wi(e){let t=e.state||{},n=t.status,r=n===`running`||n===`error`||n===`completed`?n:`completed`,i=t.output??t.result??``,a=t.error??``,o=ji(t.input??t.arguments??{}),s=t.metadata??{};return{status:r,command:Ri(o),inputValue:o,outputValue:i,errorValue:a,metadataValue:s,inputText:Pi(o)}}function Gi(e){let t=Mi(e.nickname);return e.role===`assistant`&&t?`AGENT (${t})`:e.role===`user`?`USER`:e.role===`tool`?`TOOL`:`AGENT`}function Ki(e,t){if(t.toLowerCase()!==`cursor`)return e;let n=[];for(let t of e){if(t.role!==`tool`){n.push({...t,parts:[...t.parts]});continue}let e=n.at(-1);if(e?.role===`assistant`){e.parts.push(...t.parts);continue}n.push({...t,parts:[...t.parts]})}return n}function qi(e){let t=e.trim();return!t||t.length>300||t.includes(`
|
|
81
|
+
`)||/^[a-z]+:\/\//i.test(t)||/[<>{}]/.test(t)?!1:t.startsWith(`/`)||t.startsWith(`./`)||t.startsWith(`../`)||t.startsWith(`~/`)||t.includes(`/`)||t.includes(`\\`)?!0:/^[A-Za-z0-9_.@-]+\.[A-Za-z0-9_-]+$/.test(t)}function Ji(e){let t=e.trim().toLowerCase();return!t||t.includes(`command`)||t.includes(`content`)||t.includes(`text`)||t.includes(`prompt`)||t.includes(`url`)||t.includes(`body`)||t.includes(`title`)||t.includes(`description`)||t===`cwd`||t===`workdir`||t===`directory`?!1:t===`path`||t===`paths`||t.includes(`file`)||t.includes(`path`)}function Yi(e,t,n,r=0){if(!(e==null||r>4)){if(typeof e==`string`){Ji(t)&&qi(e)&&n.add(e.trim());return}if(Array.isArray(e)){for(let i of e)Yi(i,t,n,r+1);return}if(typeof e==`object`)for(let[t,i]of Object.entries(e))Yi(i,t,n,r+1)}}function Xi(e){let t=new Set;return Yi(e,``,t),[...t]}function Zi(e){return e.state?.arguments??e.state?.input??e.input??null}function Qi(e){let t=U(e);return W(t.filePath)||W(t.file_path)||W(t.path)||W(t.targetFile)||W(t.effectiveUri)||W(t.relativeWorkspacePath)||``}function J(e,t){let n=e.trim(),r=(t??``).replace(/\/+$/,``);return!n||!r?n:n===r?`.`:n.startsWith(`${r}/`)?n.slice(r.length+1):n}function $i(e,t){let n=(t??``).replace(/\/+$/,``);return!e||!n?e:e.replace(RegExp(`${Ai(n)}(?=$|/|[\\s"'\\)\\]}:;,])`,`g`),`.`)}function ea(e,t){return e.startsWith(`${t}/`)?e.slice(t.length+1):e}function ta(e,t){return`tool-${e}-${t}`}function na(e){let t=Vi(e);return t===`read`?`read`:t===`edit`||t===`multiedit`||t===`apply_patch`||t===`notebookedit`?`edit`:t===`write`||t===`create_file`||t===`write_file`?`write`:t===`delete`||t===`delete_file`?`delete`:null}function ra(e){let t=new Map;for(let n of e){let e=t.get(n.path);if(e){e.count+=1,e.anchors.push({anchorId:n.anchorId,time:n.time,toolLabel:n.toolLabel}),n.time>=e.latestTime&&(e.latestTime=n.time,e.latestAnchorId=n.anchorId,e.toolLabel=n.toolLabel);continue}t.set(n.path,{path:n.path,count:1,latestTime:n.time,latestAnchorId:n.anchorId,toolLabel:n.toolLabel,anchors:[{anchorId:n.anchorId,time:n.time,toolLabel:n.toolLabel}]})}return[...t.values()].map(e=>({...e,anchors:e.anchors.toSorted((e,t)=>e.time-t.time)})).toSorted((e,t)=>t.latestTime===e.latestTime?e.path.localeCompare(t.path):t.latestTime-e.latestTime)}function ia(e){let t=new Map,n=new Map,r={read:[],edit:[],write:[],delete:[]};return e.forEach(({msg:e,blocks:i,index:a})=>{let o=0;for(let s of i)if(s.type===`tool`)for(let i of s.parts){let s=ta(a,o);o+=1,t.set(i,s),n.set(s,a);let c=Zi(i),l=Bi(i),u=i.time_created??e.time_created,d=wi(c);if(d.length>0){for(let e of d){let t=(e.path||e.oldPath).trim();if(!t)continue;let n=e.type===`write_file`?`write`:e.type===`delete_file`?`delete`:`edit`;r[n].push({kind:n,path:t,anchorId:s,time:u,toolLabel:l})}continue}let f=na(i);if(!f)continue;let p=Xi(c);for(let e of p)r[f].push({kind:f,path:e,anchorId:s,time:u,toolLabel:l})}}),{toolAnchorIds:t,anchorMessageIndexes:n,summary:{read:ra(r.read),edit:ra(r.edit),write:ra(r.write),delete:ra(r.delete)}}}function aa(e,t){if(!e)return t;let n={read:[],edit:[],write:[],delete:[]},r=new Map;for(let e of[`read`,`edit`,`write`,`delete`])for(let n of t[e])r.set(`${e}\0${n.path}`,n);for(let t of e){let e=r.get(`${t.kind}\0${t.path}`);n[t.kind].push({path:t.path,count:t.count,latestTime:t.latest_time,latestAnchorId:e?.latestAnchorId??``,toolLabel:e?.toolLabel??t.kind,anchors:e?.anchors??[]})}for(let e of[`read`,`edit`,`write`,`delete`])n[e].sort((e,t)=>t.latestTime===e.latestTime?e.path.localeCompare(t.path):t.latestTime-e.latestTime);return n}function oa(e){return e.read.length+e.edit.length+e.write.length+e.delete.length}function sa({summary:e,baseDirectory:t,onJumpToAnchor:n}){let r=[{key:`read`,label:`Read`,Icon:ye,items:e.read},{key:`edit`,label:`Edit`,Icon:v,items:e.edit},{key:`write`,label:`Write`,Icon:oe,items:e.write},{key:`delete`,label:`Delete`,Icon:T,items:e.delete}].filter(e=>e.items.length>0);return r.length===0?null:(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white shadow-[0_1px_2px_rgba(15,23,42,0.04)]`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-[var(--console-border)] px-4 py-3`,children:[(0,R.jsx)(g,{className:`size-3.5 text-[var(--console-accent)]`}),(0,R.jsx)(`span`,{className:`console-mono text-xs font-semibold uppercase tracking-[0.16em] text-[var(--console-text)]`,children:`File Tracker`})]}),(0,R.jsx)(`div`,{className:`space-y-3 p-3`,children:r.map(({key:e,label:r,Icon:i,items:a})=>(0,R.jsx)(ca,{label:r,Icon:i,items:a,baseDirectory:t,onJumpToAnchor:n},e))})]})}function ca({label:e,Icon:t,items:n,baseDirectory:r,onJumpToAnchor:i}){let[a,o]=(0,F.useState)(!1);return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-[#fafafa]`,children:[(0,R.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsx)(t,{className:`size-3.5 shrink-0 text-[var(--console-accent)]`}),(0,R.jsx)(`span`,{className:`console-mono min-w-0 flex-1 text-[11px] font-semibold uppercase tracking-[0.12em] text-[var(--console-muted)]`,children:e}),(0,R.jsx)(`span`,{className:`console-mono shrink-0 text-[10px] text-[var(--console-muted)]`,children:n.length}),a?(0,R.jsx)(M,{className:`size-3.5 shrink-0 text-[var(--console-muted)]`}):(0,R.jsx)(w,{className:`size-3.5 shrink-0 text-[var(--console-muted)]`})]}),a?(0,R.jsx)(`div`,{className:`space-y-1 border-t border-[var(--console-border)] p-2`,children:n.map(e=>(0,R.jsx)(la,{item:e,baseDirectory:r,onJumpToAnchor:i},`${e.path}:${e.latestAnchorId||e.latestTime}`))}):null]})}function la({item:e,baseDirectory:t,onJumpToAnchor:n}){let[r,i]=(0,F.useState)(0);function a(t){let r=e.anchors.length;if(r===0)return;let a=(t%r+r)%r;i(a);let o=e.anchors[a];o&&n(o.anchorId)}return(0,R.jsxs)(`div`,{className:`flex items-start gap-2 rounded-sm px-2 py-2 transition-colors hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsx)(`button`,{type:`button`,title:e.path,onClick:()=>a(r),className:`min-w-0 flex-1 text-left`,children:(0,R.jsx)(`span`,{className:`console-mono block break-all text-xs text-[var(--console-text)]`,children:ea(e.path,t)})}),e.anchors.length>1?(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,R.jsx)(`button`,{type:`button`,"aria-label":`Previous ${e.path}`,onClick:()=>a(r-1),className:`rounded-sm border border-[var(--console-border)] p-1 text-[var(--console-muted)] transition-colors hover:bg-white`,children:(0,R.jsx)(M,{className:`size-3`})}),(0,R.jsxs)(`span`,{className:`console-mono text-[10px] text-[var(--console-muted)]`,children:[r+1,`/`,e.anchors.length]}),(0,R.jsx)(`button`,{type:`button`,"aria-label":`Next ${e.path}`,onClick:()=>a(r+1),className:`rounded-sm border border-[var(--console-border)] p-1 text-[var(--console-muted)] transition-colors hover:bg-white`,children:(0,R.jsx)(w,{className:`size-3`})})]}):(0,R.jsx)(`button`,{type:`button`,title:`Jump to tool call`,onClick:()=>a(0),className:`console-mono shrink-0 text-[10px] text-[var(--console-muted)]`,children:e.count})]})}var ua=[{id:`user`,label:`User`},{id:`agent_message`,label:`Agent Responses`},{id:`thinking`,label:`Thinking`},{id:`plan`,label:`Plans`},{id:`tools_all`,label:`Tools`}];function da(e){return e.tools.map(e=>e.id)}function fa(e,t,n){let r=new Set(e),i=da(n);if(t===`tools_all`){if(i.filter(e=>r.has(e)).length<i.length){r.add(`tools_all`);for(let e of i)r.add(e)}else{r.delete(`tools_all`);for(let e of i)r.delete(e)}return r}return t.startsWith(`tool:`)?(r.has(t)?r.delete(t):r.add(t),i.filter(e=>r.has(e)).length===i.length?r.add(`tools_all`):r.delete(`tools_all`),r):(r.has(t)?r.delete(t):r.add(t),r)}function pa({checked:e,indeterminate:t=!1,onChange:n}){let r=(0,F.useRef)(null);return(0,F.useLayoutEffect)(()=>{r.current&&(r.current.indeterminate=t)},[t]),(0,R.jsxs)(`span`,{className:`relative mt-0.5 size-3.5 shrink-0`,children:[(0,R.jsx)(`input`,{ref:r,type:`checkbox`,checked:e,"aria-checked":t?`mixed`:e,"data-indeterminate":t?`true`:void 0,onChange:n,className:`absolute inset-0 z-10 size-full cursor-pointer opacity-0`}),(0,R.jsx)(`span`,{"aria-hidden":`true`,className:`flex size-3.5 items-center justify-center rounded border ${e||t?`border-[var(--console-accent-strong)] bg-[var(--console-accent-strong)] text-white`:`border-[var(--console-border-strong)] bg-white text-transparent`}`,children:t?(0,R.jsx)(j,{className:`size-2.5 stroke-[3]`}):e?(0,R.jsx)(y,{className:`size-2.5 stroke-[3]`}):null})]})}function ma({toc:e,fileChangeSummary:t,baseDirectory:n,selectedFilters:r,onToggle:i,onJumpToAnchor:a}){return(0,R.jsx)(`aside`,{className:`console-scrollbar hidden min-[1025px]:sticky min-[1025px]:top-4 min-[1025px]:block min-[1025px]:max-h-[calc(100dvh-14rem)] min-[1025px]:overflow-y-auto min-[1025px]:overscroll-contain`,children:(0,R.jsxs)(`div`,{className:`space-y-4`,children:[(0,R.jsx)(ha,{toc:e,selectedFilters:r,onToggle:i}),(0,R.jsx)(sa,{summary:t,baseDirectory:n,onJumpToAnchor:a})]})})}function ha({toc:e,selectedFilters:t,onToggle:n}){let r=da(e),i=r.filter(e=>t.has(e)).length,a=r.length>0&&i===r.length,o=i>0&&i<r.length;return(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white shadow-[0_1px_2px_rgba(15,23,42,0.04)]`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-[var(--console-border)] px-4 py-3`,children:[(0,R.jsx)(D,{className:`size-3.5 text-[var(--console-accent)]`}),(0,R.jsx)(`span`,{className:`console-mono text-xs font-semibold uppercase tracking-[0.16em] text-[var(--console-text)]`,children:`Session TOC`})]}),(0,R.jsxs)(`div`,{className:`space-y-1 p-3`,children:[ua.filter(({id:t})=>e.counts[t]>0).map(({id:r,label:i})=>(0,R.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 rounded-sm px-2 py-2 transition-colors hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsx)(pa,{checked:r===`tools_all`?a:t.has(r),indeterminate:r===`tools_all`&&o,onChange:()=>n(r)}),(0,R.jsx)(`span`,{className:`console-mono min-w-0 flex-1 break-all text-xs leading-relaxed text-[var(--console-text)]`,children:i}),(0,R.jsx)(`span`,{className:`console-mono shrink-0 text-[11px] text-[var(--console-muted)]`,children:e.counts[r]})]},r)),e.tools.length>0?(0,R.jsx)(`div`,{className:`space-y-1 border-t border-[var(--console-border)] pt-2`,children:e.tools.map(e=>(0,R.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 rounded-sm px-2 py-2 transition-colors hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsx)(pa,{checked:t.has(e.id),onChange:()=>n(e.id)}),(0,R.jsx)(`span`,{className:`console-mono min-w-0 flex-1 break-all text-xs leading-relaxed text-[var(--console-muted)]`,children:e.label}),(0,R.jsx)(`span`,{className:`console-mono shrink-0 text-[11px] text-[var(--console-muted)]`,children:e.count})]},e.id))}):null]})]})}var ga={".bashrc":`bash`,".zshrc":`bash`,".profile":`bash`,dockerfile:`docker`,".env":`ini`},_a={ts:`typescript`,tsx:`tsx`,js:`javascript`,jsx:`jsx`,py:`python`,sql:`sql`,rs:`rust`,go:`go`,java:`java`,c:`c`,h:`c`,cc:`cpp`,cpp:`cpp`,cxx:`cpp`,hpp:`cpp`,cs:`csharp`,sh:`bash`,bash:`bash`,zsh:`bash`,html:`html`,css:`css`,yaml:`yaml`,yml:`yaml`,json:`json`,md:`markdown`,toml:`toml`,conf:`ini`,xml:`markup`,svg:`markup`,properties:`ini`,dockerfile:`docker`};function Y(e){let t=e.split(`/`).pop()?.toLowerCase()??``;if(!t)return`text`;let n=ga[t];if(n)return n;if(t.startsWith(`.env.`))return`ini`;let r=t.includes(`.`)?t.split(`.`).pop()??``:``;return r&&_a[r]||`text`}function va(e,t,n){return!t.trim()&&!n.trim()?[]:[{label:Ca(e),lines:xa(ge(K(t),K(n)))}]}function ya(e,t){let n=K(e).split(`
|
|
82
|
+
`),r=K(t).split(`
|
|
83
|
+
`);return[`@@`,...n.map(e=>`- ${e}`),...r.map(e=>`+ ${e}`)].join(`
|
|
84
|
+
`)}function ba(e){let t=K(e),n=t.split(`
|
|
85
|
+
`);return t.endsWith(`
|
|
86
|
+
`)&&n.pop(),n}function xa(e){return e.flatMap(e=>{let t=e.added?`add`:e.removed?`remove`:`context`;return ba(e.value).map(e=>({type:t,text:e}))})}function Sa(e){let t=U(e).edit;return Array.isArray(t)?t:t&&typeof t==`object`?[t]:[]}function Ca(e){let t=e.trim();if(!t)return`edit`;let n=t.split(`/`).pop()||t;return n===t?n:`${n} · ${t}`}function wa(e,t){let n=Sa(e.inputValue),r=Ca(t);return n.map(e=>{let t=U(e),n=G(t.old),i=G(t.new);return!n.trim()&&!i.trim()?null:{label:r,lines:xa(ge(K(n),K(i)))}}).filter(e=>e!=null&&e.lines.length>0)}function Ta(e,t){let n=U(e.inputValue),r=Array.isArray(n.edits)?n.edits:[],i=Ca(t),a=r.map(e=>{let t=U(e),n=G(t.oldText)||G(t.old),r=G(t.newText)||G(t.new);return!n.trim()&&!r.trim()?null:{label:i,lines:xa(ge(K(n),K(r)))}}).filter(e=>e!=null&&e.lines.length>0);if(a.length>0)return a;let o=U(e.metadataValue),s=G(o.patch)||G(o.diff);return s.trim()?[{label:i,lines:s.split(`
|
|
87
|
+
`).map(e=>({type:e.startsWith(`+`)?`add`:e.startsWith(`-`)?`remove`:`context`,text:e}))}]:[]}function Ea(e){return e.startsWith(`@@`)?{type:`context`,text:e}:e.startsWith(`+`)?{type:`add`,text:e.slice(1)}:e.startsWith(`-`)?{type:`remove`,text:e.slice(1)}:e.startsWith(` `)?{type:`context`,text:e.slice(1)}:{type:`context`,text:e}}function Da(e,t){let n=U(U(e.metadataValue).display),r=Array.isArray(n.structuredPatch)?n.structuredPatch:[],i=G(n.filePath)||t;return r.map(e=>{let t=U(e),n=(Array.isArray(t.lines)?t.lines:[]).map(e=>typeof e==`string`?Ea(e):null).filter(e=>e!=null);return n.length===0?null:{label:Ca(i),lines:n}}).filter(e=>e!=null)}function Oa(e){let t=G(U(e.metadataValue).diff);if(t.trim())return K(t);let n=Sa(e.inputValue).map(e=>{let t=U(e),n=G(t.old),r=G(t.new);return!n.trim()&&!r.trim()?``:ya(n,r)}).filter(Boolean).join(`
|
|
88
|
+
|
|
89
|
+
`);return n.trim()?n:q(e)}function ka(e){return e.replace(/\n*<system-reminder>[\s\S]*$/i,``).trimEnd()}function Aa(e){let t=Li(e,!1)||Ui(e);return t===`No output captured.`?t:ka(t.replace(/^<file>\s*/i,``).replace(/\s*<\/file>\s*$/i,``)).split(`
|
|
90
|
+
`).filter(e=>!/^\(End of file - total \d+ lines\)$/.test(e.trim())).map(e=>e.replace(/^\d+\|\s?/,``).replace(/^\s*\d+\t/,``)).join(`
|
|
91
|
+
`).trimEnd()||`No output captured.`}function ja(e){let t=U(e.inputValue);if(e.status===`completed`){let e=G(t.content);if(e.trim())return K(e)}return q(e)}function Ma(e,t,n){let r=$i(t.command||t.inputText||`{}`,n).replace(/\s+/g,` `).trim(),i=r.length>72?`${r.slice(0,72)}...`:r;return{Icon:A,title:Hi(e),secondaryText:i?`(${i})`:void 0,details:[],expandable:!0,showInputPreview:!0,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}function Na(e,t,n,r){let i=$i(W(U(t.inputValue).name),r);return{...n,Icon:le,title:W(e.tool)||`skill`,secondaryText:i||void 0,expandable:!1,showInputPreview:!1}}function Pa(e,t,n){let r=Ma(e,t,n),i=(e.tool||``).toLowerCase(),a=U(t.inputValue),o=Qi(t.inputValue),s=J(o,n);if(i===`read`)return{...r,Icon:E,title:`read`,secondaryText:s||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:Aa(t.outputValue),language:Y(o),isCode:!0}};if(i===`edit`){let e=G(a.old_string),n=G(a.new_string),i=va(s||o,e,n);return{...r,Icon:v,title:`edit`,secondaryText:s||void 0,showInputPreview:!1,outputContent:i.length>0?{kind:`structured-diff`,blocks:i}:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}return i===`write`?{...r,Icon:oe,title:`write`,secondaryText:s||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:ja(t),language:Y(o),isCode:!0}}:{...r,title:Hi(e)}}function Fa(e,t,n){let r=Ma(e,t,n),i=(e.tool||``).toLowerCase(),a=U(t.inputValue);if(i===`glob`){let n=W(a.pattern);return{...r,Icon:ye,title:e.tool||`glob`,secondaryText:n||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}if(i===`grep`){let i=W(a.path),o=W(a.pattern),s=[J(i,n),o].filter(Boolean).join(` · `);return{...r,Icon:ye,title:e.tool||`grep`,secondaryText:s||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}if(i===`bash`){let i=W(a.description),o=$i(W(a.command),n),s=i?`${i}${o?` (${o})`:``}`:o?`(${o})`:void 0;return{...r,Icon:A,title:e.tool||`bash`,secondaryText:s,showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}if(i===`read`){let i=Qi(t.inputValue),a=J(i,n);return{...r,Icon:E,title:e.tool||`read`,secondaryText:a||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:Aa(t.outputValue),language:Y(i),isCode:!0}}}if(i===`edit`){let i=J(Qi(t.inputValue),n);return{...r,Icon:v,title:e.tool||`edit`,secondaryText:i||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:Oa(t),language:`diff`,isCode:!0}}}if(i===`write`){let i=Qi(t.inputValue),a=J(i,n),o=t.status===`completed`;return{...r,Icon:oe,title:e.tool||`write`,secondaryText:a||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:ja(t),language:Y(i),isCode:o}}}return i===`skill`?Na(e,t,r,n):r}function Ia(e,t,n){let r=Ma(e,t,n),i=(e.tool||``).toLowerCase(),a=U(t.inputValue);if(i===`glob`){let n=W(a.pattern);return{...r,Icon:ye,title:e.title||`glob`,secondaryText:n||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}if(i===`grep`){let i=W(a.path),o=W(a.pattern),s=[J(i,n),o].filter(Boolean).join(` · `);return{...r,Icon:ye,title:e.title||`grep`,secondaryText:s||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}if(i===`shell`){let i=$i(W(a.command),n);return{...r,Icon:A,title:e.title||`bash`,secondaryText:i?`(${i})`:void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}if(i===`readfile`){let i=Qi(t.inputValue),a=J(i,n);return{...r,Icon:E,title:e.title||`read`,secondaryText:a||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:Aa(t.outputValue),language:Y(i),isCode:!0}}}if(i===`strreplacefile`){let i=Qi(t.inputValue),a=J(i,n),o=wa(t,a||i);return{...r,Icon:v,title:e.title||`edit`,secondaryText:a||void 0,showInputPreview:!1,outputContent:o.length>0?{kind:`structured-diff`,blocks:o}:{kind:`plain`,text:Oa(t),language:`diff`,isCode:!0}}}if(i===`writefile`){let i=Qi(t.inputValue),a=J(i,n);return{...r,Icon:oe,title:e.title||`write`,secondaryText:a||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:ja(t),language:Y(i),isCode:t.status===`completed`}}}return r}function La(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}function Ra(e){return typeof e==`string`?e.trim():``}function za(e){return typeof e==`string`?e:``}function Ba(e){return typeof e==`string`?e.trim():typeof e==`number`||typeof e==`bigint`||typeof e==`boolean`?`${e}`:``}function Va(e){return e.replace(/\\n/g,`
|
|
92
|
+
`)}function Ha(e){return e.replace(/\s*\(Recommended\)\s*$/i,``).trim()}function Ua(e){let t=e.trim();return{label:Ha(t),recommended:/\(Recommended\)\s*$/i.test(t)}}function Wa(e){return e.replace(/\s+/g,` `).trim()}function Ga(e,t=88){let n=Wa(e);return n?n.length>t?`${n.slice(0,t)}...`:n:``}function Ka(e,t){return Ga([`${t} questions`,...e.filter(Boolean).slice(0,2)].join(` · `),96)}function qa(e){try{return JSON.parse(e)}catch{return null}}function Ja(e){let t=Va(e).split(`
|
|
93
|
+
`);if(t.length<5||!(/^Chunk ID:\s+\S+/.test(t[0]||``)&&/^Wall time:\s+/.test(t[1]||``)&&/^Process (?:exited with code \d+|running with session ID \d+)/.test(t[2]||``)&&/^Original token count:\s+\d+/.test(t[3]||``)&&/^Output:$/.test(t[4]||``)))return e;let n=5;for(;n<t.length&&t[n]?.trim()===``;)n+=1;let r=t.slice(n).join(`
|
|
94
|
+
`);return r.trim()?r:e}function Ya(e,t,n){n.trim()&&e.push({label:t,value:n})}function Xa(e){return e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`)?e.slice(1,-1):e}function Za(e){return e.trim()?!/[|&;<>()$`*?{}[\]\\]/.test(e):!1}function Qa(e){let t=Xa(e.trim());return Za(t)?t:null}function $a(e){let t=e.trim();if(!t)return null;let n=t.match(/^nl\s+-ba\s+([^\s]+)\s*\|\s*sed\s+-n\s+['"][^'"]+['"]$/);if(n)return Qa(n[1]||``);for(let e of[/^cat\s+([^\s]+)$/,/^sed\s+-n\s+['"][^'"]+['"]\s+([^\s]+)$/,/^head\s+-n\s+\d+\s+([^\s]+)$/,/^tail\s+-n\s+\d+\s+([^\s]+)$/]){let n=t.match(e);if(n)return Qa(n[1]||``)}return null}function eo(e){let t=e.split(`
|
|
95
|
+
`),n=t.filter(e=>e.trim());if(n.length===0)return e;let r=/^\s*\d+(?:\t|\|\s?)/;return n.filter(e=>r.test(e)).length/n.length<.6?e:t.map(e=>e.replace(/^\s*\d+(?:\t|\|\s?)/,``)).join(`
|
|
96
|
+
`)}function to(e){return/\b(Test Files|Tests|Coverage report|coverage: platform|Ran \d+ tests)\b/.test(e)||/^(PASS|FAIL|stdout\s+\|)/m.test(e)||/\bmodules transformed\b/.test(e)}function no(e){let t=e.trim();return!t||to(t)?null:(t.startsWith(`{`)||t.startsWith(`[`))&&qa(t)!=null?`json`:/<(!DOCTYPE html|html\b|body\b|div\b|span\b|main\b|section\b|svg\b|\/[a-z])/i.test(t)?`markup`:[/^#{1,6}\s/m,/^[-*]\s/m,/^\d+\.\s/m,/^```/m].filter(e=>e.test(t)).length>=1&&!/[{};]\s*$/.test(t)?`markdown`:(t.match(/^[A-Za-z0-9_-]+:\s.+$/gm)||[]).length>=2&&!/\b(import|export|const|let|function|class)\b/.test(t)&&!/[{}()[\];]/.test(t)?`yaml`:[/^(from\s+\S+\s+import\s+.+|import\s+\S+)/m,/^def\s+\w+\(/m,/^class\s+\w+[:(]/m].filter(e=>e.test(t)).length>=2||/^(from\s+\S+\s+import\s+.+|import\s+\S+)/m.test(t)&&/^def\s+\w+\(/m.test(t)?`python`:[/\binterface\s+\w+/,/\btype\s+\w+\s*=/,/\bimplements\b/,/\bas const\b/,/:\s*[A-Z][A-Za-z0-9_<>,[\] |&?]+/].filter(e=>e.test(t)).length>=1&&/\b(import|export|const|let|function|class)\b/.test(t)?`typescript`:[/^\s*import\s.+from\s/m,/^\s*export\s/m,/\b(const|let|function|class)\b/].filter(e=>e.test(t)).length>=2?`javascript`:null}function ro(e,t,n){let r=Ja(t),i=$a(e);if(i){let e=n(i);return{text:eo(r),language:e,isCode:e!==`text`,sourcePath:i,confidence:`path`}}let a=no(r);return a?{text:r,language:a,isCode:!0,confidence:`content`}:{text:r,language:`text`,isCode:!1,confidence:`plain`}}function io(e,t,n,r=e=>e,i=e=>e){let a=La(e),o=Ra(a.cmd),s=Ra(a.workdir),c=Ra(a.sandbox_permissions),l=Ra(a.justification),u=i(o),d=[];Ya(d,`Command`,u),Ya(d,`Workdir`,r(s)),Ya(d,`Escalation`,c),Ya(d,`Justification`,l);let f=Ga(u);return{secondaryText:l?[l,f].filter(Boolean).join(`
|
|
97
|
+
`):f||void 0,details:d,outputAnalysis:ro(o,t,n)}}function ao(e,t,n){let r=La(e),i=Ba(r.session_id),a=za(r.chars),o=a?`stdin`:`poll`,s=[];return Ya(s,`Session`,i),s.push({label:`Chars`,value:a||`(empty)`}),{secondaryText:i?`session #${i} · ${o}`:o,details:s,outputAnalysis:ro(``,t,n)}}function oo(e,t){let n=La(e),r=Array.isArray(n.questions)?n.questions:null;if(!r||r.length===0)return{secondaryText:void 0,details:[],outputContent:{kind:`plain`,text:t,language:`text`,isCode:!1}};let i=La(qa(t)?.answers),a=r.map(e=>{let t=La(e),n=Ra(t.id),r=La(i[n]),a=(Array.isArray(r.answers)?r.answers:[]).map(e=>typeof e==`string`?Ha(e):``).filter(Boolean),o=Array.isArray(t.options)?t.options.map(e=>{let t=La(e),n=Ua(Ra(t.label));return n.label?{label:n.label,description:Ra(t.description)||void 0,recommended:n.recommended||void 0}:null}).filter(e=>e!=null):[],s=Ra(t.question);return s?{header:Ra(t.header)||void 0,question:s,options:o,answers:a}:null}).filter(e=>e!=null);return a.length===0?{secondaryText:void 0,details:[],outputContent:{kind:`plain`,text:t,language:`text`,isCode:!1}}:{secondaryText:Ka(a.map(e=>e.header||``),a.length),details:[],outputContent:{kind:`question-list`,questions:a}}}function so(e){let t=e.indexOf(`Output:
|
|
98
|
+
`);if(t===-1)return e;let n=Ni(e.slice(t+8).trim());return Array.isArray(n)&&n.map(e=>W(U(e).text)).filter(Boolean).join(`
|
|
99
|
+
`)||e}function co(e){let t=U(U(e.state).arguments),n=Mi(t.agent_type),r=Mi(e.nickname),i=[Mi(t.model),Mi(t.reasoning_effort)].filter(Boolean).join(`-`);return[[n,r].filter(Boolean).join(` - `),i].filter(Boolean).join(` `)}function lo(e){let t=U(e.state);return Mi(t.prompt)||Mi(U(t.arguments).message)||``}function uo(e,t,n){let r=Ma(e,t,n),i=Vi(e),a=W(U(t.metadataValue).namespace),o=e=>J(e,n),s=e=>$i(e,n);if(i===`skill`)return Na(e,t,r,n);if(i===`js`&&(a===`mcp__node_repl__`||a===`mcp__node_repl__.js`)){let e=W(U(t.inputValue).title);return{...r,Icon:A,title:`Browser`,secondaryText:e||void 0,details:[],showInputPreview:!1,outputContent:{kind:`plain`,text:so(q(t)),language:`text`,isCode:!1}}}if(i===`exec_command`||i===`bash`){let e=io(t.inputValue,q(t),Y,o,s);return{...r,Icon:A,title:`bash`,secondaryText:e.secondaryText,details:e.details,showInputPreview:!1,outputContent:{kind:`plain`,text:e.outputAnalysis.text,language:e.outputAnalysis.language,isCode:e.outputAnalysis.isCode}}}if(i===`write_stdin`){let e=ao(t.inputValue,q(t),Y);return{...r,Icon:A,title:`bash`,secondaryText:e.secondaryText,details:e.details,showInputPreview:!1,outputContent:{kind:`plain`,text:e.outputAnalysis.text,language:e.outputAnalysis.language,isCode:e.outputAnalysis.isCode}}}if(i===`request_user_input`){let e=oo(t.inputValue,q(t));return{...r,Icon:ce,title:`ask`,secondaryText:e.secondaryText,details:e.details,showInputPreview:!1,outputContent:e.outputContent}}if(i===`patch`){let n=wi(t.inputValue),i=Ei(n);return{...r,Icon:v,title:Hi(e,`patch`),secondaryText:i||void 0,details:[],showInputPreview:!1,outputContent:ki(n,q(t),Y,o)}}if(i===`subagent`){let n=lo(e),i=q(t);return{...r,Icon:S,title:co(e)||Hi(e,`subagent`),secondaryText:void 0,details:[],showInputPreview:!1,outputContent:{kind:`plain`,text:n||i,language:`markdown`,isCode:!1}}}return r}function fo(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:typeof e==`string`&&Ni(e)||{}}function po(e){let t=G(fo(e).contents);return t?K(t):`No output captured.`}function mo(e){let t=fo(e),n=Array.isArray(t.directories)?t.directories:[];if(n.length===0)return Ui(e);let r=n.flatMap(e=>{let t=U(e);return[W(t.absPath),...(Array.isArray(t.files)?t.files:[]).map(e=>{let t=U(e);return W(t.relPath)||W(t.absPath)}).filter(Boolean).map(e=>` ${e}`)].filter(Boolean)});return r.length>0?r.join(`
|
|
100
|
+
`):`No output captured.`}function ho(e,t,n){let r=Ma(e,t,n),i=(e.tool||``).toLowerCase(),a=U(t.inputValue),o=Qi(t.inputValue),s=J(o,n);if(i===`read_file_v2`){let e=po(t.outputValue);return{...r,Icon:E,title:`read`,secondaryText:s||void 0,details:e===`No output captured.`?[{label:`Lines`,value:W(fo(t.outputValue).totalLinesInFile)}]:[],showInputPreview:!1,outputContent:{kind:`plain`,text:e,language:Y(o),isCode:e!==`No output captured.`}}}if(i===`edit_file_v2`){let e=K(G(a.streamingContent));return{...r,Icon:v,title:`edit`,secondaryText:s||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:e||q(t),language:e?`diff`:`text`,isCode:!!e}}}if(i===`ripgrep_raw_search`){let e=W(a.pattern),i=[J(W(a.path),n),e].filter(Boolean).join(` · `);return{...r,Icon:ye,title:`grep`,secondaryText:i||void 0,details:[],showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}if(i===`glob_file_search`){let e=W(a.globPattern),i=[J(W(a.targetDirectory),n),e].filter(Boolean).join(` · `);return{...r,Icon:ye,title:`glob`,secondaryText:i||void 0,details:[],showInputPreview:!1,outputContent:{kind:`plain`,text:mo(t.outputValue),language:`text`,isCode:!1}}}if(i===`run_terminal_command_v2`){let e=$i(W(a.command),n),i=W(a.commandDescription),o=i?`${i}${e?` (${e})`:``}`:e?`(${e})`:void 0;return{...r,Icon:A,title:`bash`,secondaryText:o,details:[],showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}return{...r,title:Hi(e)}}function go(e){let t=U(e.inputValue),n=U(e.metadataValue),r=Array.isArray(n.tasks)?n.tasks:[],i=Number(t.id);return U(Number.isFinite(i)&&i>0?r.find(e=>Number(U(e).id)===i):r.at(-1))}function _o(e){let t=q(e).match(/\(([^()]+?)\s*→\s*([^()]+?)\)/);return t?`${t[1]} -> ${t[2]}`:``}function vo(e){let t=(e.split(`
|
|
101
|
+
`)[0]??``).match(/^Agent:\s*(.+)$/i),n=e.split(`
|
|
102
|
+
`).find(e=>e.includes(`Status:`)),r=[];return t?.[1]&&r.push({label:`Agent`,value:t[1].trim()}),n&&r.push({label:`Summary`,value:n.trim()}),r}function yo(e,t,n){let r=Ma(e,t,n),i=(e.tool||``).toLowerCase(),a=U(t.inputValue),o=U(t.metadataValue),s=Qi(t.inputValue),c=J(s,n);if(i===`todo`){let e=W(a.action)||W(o.action)||`todo`,n=go(t),i=Number(n.id)||Number(a.id),s=W(n.subject)||W(a.subject),c=W(n.description)||W(a.description),l=W(n.status)||W(a.status),u=_o(t),d=[i?`#${i}`:``,s,e===`update`&&u?u:l].filter(Boolean);return{...r,Icon:xe,title:e===`create`?`todo create`:e===`update`?`todo update`:`todo`,secondaryText:d.join(` · `)||void 0,details:[i?{label:`ID`,value:`#${i}`}:null,s?{label:`Subject`,value:s}:null,l?{label:`Status`,value:l}:null,u?{label:`Change`,value:u}:null].filter(e=>e!=null),showInputPreview:!1,outputContent:{kind:`plain`,text:c||q(t),language:`markdown`,isCode:!1}}}if(i===`read`)return{...r,Icon:E,title:`read`,secondaryText:c||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:Aa(t.outputValue),language:Y(s),isCode:!0}};if(i===`write`)return{...r,Icon:te,title:`write`,secondaryText:c||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:ja(t),language:Y(s),isCode:t.status===`completed`}};if(i===`edit`){let e=Ta(t,c||s),n=typeof o.firstChangedLine==`number`?String(o.firstChangedLine):G(o.firstChangedLine);return{...r,Icon:v,title:`edit`,secondaryText:c||void 0,details:n?[{label:`Line`,value:n}]:[],showInputPreview:!1,outputContent:e.length>0?{kind:`structured-diff`,blocks:e}:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}if(i===`agent`){let e=W(a.description)||W(o.description),n=W(a.subagent_type)||W(o.subagentType),i=W(o.agentId),s=W(o.status);return{...r,Icon:S,title:n?`agent · ${n}`:`agent`,secondaryText:[i?`#${i}`:``,e].filter(Boolean).join(` · `),details:[i?{label:`Agent`,value:i}:null,n?{label:`Type`,value:n}:null,s?{label:`Status`,value:s}:null].filter(e=>e!=null),showInputPreview:!1,outputContent:{kind:`plain`,text:G(a.prompt)||q(t),language:`markdown`,isCode:!1}}}if(i===`get_subagent_result`){let e=W(a.agent_id),n=q(t);return{...r,Icon:S,title:`subagent result`,secondaryText:e?`#${e}`:void 0,details:vo(n),showInputPreview:!1,outputContent:{kind:`plain`,text:n,language:`markdown`,isCode:!1}}}if(i===`analyze_image`){let e=Array.isArray(a.images)?a.images.map(e=>G(e)).filter(Boolean):[],i=G(a.question);return{...r,Icon:be,title:`analyze image`,secondaryText:e.map(e=>J(e,n)).join(`, `),details:[...e.map((e,t)=>({label:t===0?`Image`:`Image ${t+1}`,value:J(e,n)})),i?{label:`Question`,value:i}:null].filter(e=>e!=null),showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`markdown`,isCode:!1}}}if(i===`bash`||i===`batch`){let e=$i(W(a.command),n);return{...r,Icon:A,title:i===`batch`?`batch`:`bash`,secondaryText:e?`(${e})`:void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:q(t),language:`text`,isCode:!1}}}return r}function bo(e){return e.replace(/\s*[((](?:Recommended|推荐)[))]\s*$/i,``).trim()}function xo(e){let t=new Map;return{text:e.map(e=>{let n=U(e),r=W(n.status)||`pending`,i=W(n.priority),a=W(n.content);t.set(r,(t.get(r)??0)+1);let o=r===`completed`?`x`:r===`in_progress`?`~`:` `,s=i?` _${i}_`:``;return`- [${o}] ${a||`(empty todo)`}${s}`}).join(`
|
|
103
|
+
`)||`No todos captured.`,summary:[...t.entries()].map(([e,t])=>`${t} ${e}`).join(` · `),details:[...t.entries()].map(([e,t])=>({label:e,value:String(t)}))}}function So(e){let t=new Map;for(let n of e.matchAll(/"([^"]+)"="([^"]+)"/g)){let e=n[1]?.trim(),r=n[2]?.trim();!e||!r||t.set(e,[bo(r)])}return t}function Co(e,t){let n=U(e),r=Array.isArray(n.questions)?n.questions:[],i=So(t),a=r.map(e=>{let t=U(e),n=W(t.question);if(!n)return null;let r=Array.isArray(t.options)?t.options.map(e=>{let t=U(e),n=W(t.label),r=bo(n);return r?{label:r,description:W(t.description)||void 0,recommended:r!==n.trim()||void 0}:null}).filter(e=>e!=null):[];return{header:W(t.header)||void 0,question:n,options:r,answers:i.get(n)??[]}}).filter(e=>e!=null);return a.length===0?{secondaryText:void 0,outputContent:{kind:`plain`,text:t,language:`text`,isCode:!1}}:{secondaryText:`${a.length} question${a.length===1?``:`s`}`,outputContent:{kind:`question-list`,questions:a}}}function wo(e,t,n){let r=Ma(e,t,n),i=Vi(e),a=U(t.inputValue),o=U(t.metadataValue),s=Qi(t.inputValue),c=J(s,n),l=q(t);if(i===`bash`){let e=W(a.description),t=W(a.command),i=$i(t,n),o=l===`(Bash completed with no output)`?`No output captured.`:l;return{...r,Icon:A,title:`bash`,secondaryText:e?`${e}${i?` (${i})`:``}`:i?`(${i})`:void 0,details:t?[{label:`Command`,value:i||t}]:[],showInputPreview:!1,outputContent:{kind:`plain`,text:o,language:`text`,isCode:!1}}}if(i===`read`)return{...r,Icon:E,title:`read`,secondaryText:c||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:Aa(t.outputValue),language:Y(s),isCode:!0}};if(i===`edit`){let e=Da(t,c||s),n=G(a.old_string),i=G(a.new_string),u=va(c||s,n,i),d=e.length>0?e:u,f=U(o.display);return{...r,Icon:v,title:`edit`,secondaryText:c||void 0,details:[typeof f.additions==`number`?{label:`Additions`,value:String(f.additions)}:null,typeof f.deletions==`number`?{label:`Deletions`,value:String(f.deletions)}:null].filter(e=>e!=null),showInputPreview:!1,outputContent:d.length>0?{kind:`structured-diff`,blocks:d}:{kind:`plain`,text:l,language:`text`,isCode:!1}}}if(i===`write`)return{...r,Icon:te,title:`write`,secondaryText:c||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:ja(t),language:Y(s),isCode:t.status===`completed`}};if(i===`glob`||i===`grep`){let e=W(a.path),t=W(a.pattern),o=[J(e,n),t].filter(Boolean).join(` · `);return{...r,Icon:ye,title:i,secondaryText:o||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:l,language:`text`,isCode:!1}}}if(i===`todowrite`){let e=xo(Array.isArray(a.todos)?a.todos:[]);return{...r,Icon:xe,title:`todo`,secondaryText:e.summary||void 0,details:e.details,showInputPreview:!1,outputContent:{kind:`plain`,text:e.text,language:`markdown`,isCode:!1}}}if(i===`agent`){let e=W(a.subagent_type),t=W(a.description);return{...r,Icon:S,title:e?`agent · ${e}`:`agent`,secondaryText:t||void 0,details:e?[{label:`Type`,value:e}]:[],showInputPreview:!1,outputContent:{kind:`plain`,text:l,language:`markdown`,isCode:!1}}}if(i===`askuserquestion`){let e=Co(t.inputValue,l);return{...r,Icon:ce,title:`ask`,secondaryText:e.secondaryText,details:[],showInputPreview:!1,outputContent:e.outputContent}}if(i===`enterplanmode`||i===`exitplanmode`){let e=G(a.plan);return{...r,Icon:xe,title:i===`enterplanmode`?`plan mode`:`plan approved`,secondaryText:e.split(`
|
|
104
|
+
`).find(e=>e.trim())?.replace(/^#+\s*/,``)||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:e||l,language:`markdown`,isCode:!1}}}if(i===`websearch`){let e=W(a.query);return{...r,Icon:ye,title:`web search`,secondaryText:e||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:l,language:`markdown`,isCode:!1}}}if(i===`skill`){let e=W(a.skill);return{...r,Icon:le,title:`skill`,secondaryText:e||void 0,showInputPreview:!1,outputContent:{kind:`plain`,text:l,language:`markdown`,isCode:!1}}}return r}var To={claudecode:Pa,opencode:Fa,kimi:Ia,codex:uo,cursor:ho,pi:yo,zcode:wo};function Eo(e,t,n,r){return(To[e.toLowerCase()]??Ma)(t,n,r)}N.registerLanguage(`bash`,Ce),N.registerLanguage(`c`,Ue),N.registerLanguage(`cpp`,Ee),N.registerLanguage(`csharp`,P),N.registerLanguage(`css`,He),N.registerLanguage(`docker`,we),N.registerLanguage(`go`,Ae),N.registerLanguage(`ini`,je),N.registerLanguage(`java`,Pe),N.registerLanguage(`javascript`,Le),N.registerLanguage(`jsx`,ke),N.registerLanguage(`json`,Oe),N.registerLanguage(`markdown`,Ve),N.registerLanguage(`markup`,Ne),N.registerLanguage(`python`,De),N.registerLanguage(`rust`,ze),N.registerLanguage(`sql`,Ie),N.registerLanguage(`toml`,Te),N.registerLanguage(`tsx`,Me),N.registerLanguage(`typescript`,Re),N.registerLanguage(`yaml`,Fe);function Do(e){return e===`html`||e===`xml`?`markup`:e}function Oo({language:e,text:t}){return(0,R.jsx)(N,{language:Do(e),style:Be,customStyle:{margin:0,padding:`0.75rem`,borderRadius:0,background:`transparent`,fontSize:`0.75rem`,lineHeight:1.55},codeTagProps:{className:`console-mono`},wrapLongLines:!0,children:t})}function ko(e,t){return`${e}:${t}`}function Ao(e){return/^(Index:|diff\s|===)/.test(e)?`text-[var(--console-text)] bg-[#f3f4f6]`:e.startsWith(`@@`)?`text-[#7c3aed] bg-[#f5f3ff]`:e.startsWith(`+++ `)||e.startsWith(`--- `)?`text-[#1d4ed8] bg-[#eff6ff]`:e.startsWith(`+`)?`text-[#15803d] bg-[#f0fdf4]`:e.startsWith(`-`)?`text-[#b91c1c] bg-[#fef2f2]`:`text-[var(--console-text)]`}function jo({text:e}){let t=e.split(`
|
|
105
|
+
`),n=new Map;return(0,R.jsx)(`pre`,{className:`console-mono max-h-[420px] overflow-auto whitespace-pre rounded-sm border border-[var(--console-border)] bg-[#fafafa] p-3 text-xs leading-relaxed`,children:t.map(e=>{let t=n.get(e)??0;return n.set(e,t+1),(0,R.jsx)(`span`,{className:`block rounded-[2px] px-1 ${Ao(e)}`,children:e||` `},ko(e,t))})})}function Mo(e){let t=e.text||`No output captured.`;return!e.isCode||e.language===`text`?(0,R.jsx)(`pre`,{className:`console-mono max-h-[420px] overflow-auto whitespace-pre-wrap break-all p-3 text-xs leading-relaxed text-[var(--console-text)]`,children:t}):e.language===`diff`?(0,R.jsx)(jo,{text:t}):(0,R.jsx)(`div`,{className:`max-h-[420px] overflow-auto bg-[#fafafa]`,children:(0,R.jsx)(Oo,{language:e.language,text:t})})}function No({sections:e}){return(0,R.jsx)(`div`,{className:`space-y-3`,children:e.map(e=>(0,R.jsxs)(`div`,{className:`overflow-hidden rounded-sm border border-[var(--console-border)] bg-[#fafafa]`,children:[(0,R.jsx)(`div`,{className:`border-b border-[var(--console-border)] bg-[var(--console-surface-muted)] px-3 py-1.5`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-white px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--console-muted)]`,children:e.operation}),(0,R.jsx)(`span`,{className:`console-mono text-[11px] font-semibold text-[var(--console-muted)]`,children:e.label})]})}),Mo(e)]},`${e.operation}:${e.label}:${e.language}`))})}function Po({questions:e}){return(0,R.jsx)(`div`,{className:`space-y-3`,children:e.map(e=>(0,R.jsxs)(`div`,{className:`overflow-hidden rounded-sm border border-[var(--console-border)] bg-[#fafafa]`,children:[(0,R.jsxs)(`div`,{className:`border-b border-[var(--console-border)] bg-[var(--console-surface-muted)] px-3 py-2`,children:[(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[e.header?(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-white px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--console-muted)]`,children:e.header}):null,e.answers.length>0?(0,R.jsx)(`span`,{className:`console-mono text-[11px] font-semibold text-[var(--console-success)]`,children:`Answered`}):(0,R.jsx)(`span`,{className:`console-mono text-[11px] font-semibold text-[var(--console-muted)]`,children:`Pending`})]}),(0,R.jsx)(`p`,{className:`mt-2 text-sm leading-relaxed text-[var(--console-text)]`,children:e.question})]}),(0,R.jsx)(`div`,{className:`space-y-2 p-3`,children:e.options.map(t=>{let n=e.answers.includes(t.label);return(0,R.jsxs)(`div`,{className:`rounded-sm border px-3 py-2 ${n?`border-[var(--console-success-border)] bg-[var(--console-success-bg)]`:`border-[var(--console-border)] bg-white`}`,children:[(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-xs font-semibold ${n?`text-[var(--console-success)]`:`text-[var(--console-text)]`}`,children:t.label}),t.recommended?(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-1.5 py-0.5 text-[10px] text-[var(--console-muted)]`,children:`Recommended`}):null,n?(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-success-border)] bg-white px-1.5 py-0.5 text-[10px] text-[var(--console-success)]`,children:`Selected`}):null]}),t.description?(0,R.jsx)(`p`,{className:`mt-1 text-xs leading-relaxed text-[var(--console-muted)]`,children:t.description}):null]},`${e.question}:${t.label}`)})})]},`${e.header??`question`}:${e.question}`))})}function Fo(e){return`${e.label}:${e.lines.map(e=>`${e.type}:${e.text}`).join(`
|
|
106
|
+
`)}`}function Io(e){return e===`add`?`text-[#15803d] bg-[#f0fdf4]`:e===`remove`?`text-[#b91c1c] bg-[#fef2f2]`:`text-[var(--console-text)]`}function Lo({blocks:e}){return(0,R.jsx)(`div`,{className:`space-y-3`,children:e.map(e=>{let t=new Map;return(0,R.jsxs)(`div`,{className:`overflow-hidden rounded-sm border border-[var(--console-border)] bg-[#fafafa]`,children:[(0,R.jsx)(`div`,{className:`border-b border-[var(--console-border)] bg-[var(--console-surface-muted)] px-3 py-1.5`,children:(0,R.jsx)(`span`,{className:`console-mono text-[11px] font-semibold text-[var(--console-muted)]`,children:e.label})}),(0,R.jsx)(`pre`,{className:`console-mono max-h-[280px] overflow-auto whitespace-pre p-3 text-xs leading-relaxed`,children:e.lines.map(e=>{let n=`${e.type}:${e.text}`,r=t.get(n)??0;return t.set(n,r+1),(0,R.jsxs)(`span`,{className:`block rounded-[2px] px-1 ${Io(e.type)}`,children:[e.type===`add`?`+`:e.type===`remove`?`-`:` `,e.text||` `]},`${n}:${r}`)})})]},Fo(e))})})}function Ro({outputContent:e}){if(e.kind===`structured-diff`)return(0,R.jsx)(Lo,{blocks:e.blocks});if(e.kind===`file-sections`)return(0,R.jsx)(No,{sections:e.sections});if(e.kind===`question-list`)return(0,R.jsx)(Po,{questions:e.questions});let t=e.text||`No output captured.`;return!e.isCode||e.language===`text`?(0,R.jsx)(`pre`,{className:`console-mono max-h-[420px] overflow-auto whitespace-pre-wrap break-all rounded-sm border border-[var(--console-border)] bg-[#fafafa] p-3 text-xs leading-relaxed text-[var(--console-text)]`,children:t}):e.language===`diff`?(0,R.jsx)(jo,{text:t}):(0,R.jsx)(`div`,{className:`max-h-[420px] overflow-auto rounded-sm border border-[var(--console-border)] bg-[#fafafa]`,children:(0,R.jsx)(Oo,{language:e.language,text:t})})}var zo=`<turn_aborted>
|
|
107
|
+
The user interrupted the previous turn on purpose. Any running unified exec processes were terminated. If any tools/commands were aborted, they may have partially executed; verify current state before retrying.
|
|
108
|
+
</turn_aborted>`;function Bo(e){return e.replace(/\r\n/g,`
|
|
109
|
+
`).trim()}function Vo(e,t){if(t.toLowerCase()!==`codex`||e.role!==`user`||e.parts.length!==1)return!1;let[n]=e.parts;return!n||n.type!==`text`||typeof n.text!=`string`?!1:Bo(n.text)===Bo(zo)}function Ho(e){if(typeof e==`string`)return e.trim();if(Array.isArray(e))return e.map(e=>Ho(e)).filter(Boolean).join(`
|
|
110
|
+
|
|
111
|
+
`).trim();if(e&&typeof e==`object`){let t=e,n=Ho(t.text);if(n)return n;let r=Ho(t.content);if(r)return r}return``}function Uo(e){let t=e.approval_status===`fail`?`fail`:`success`,n=Ho(t===`fail`?e.output:e.input);return{title:`plan`,secondaryText:void 0,approvalStatus:t,expandable:!!n,contentLabel:t===`fail`?`Rejected`:`Plan`,contentMarkdown:n}}var Wo=48,Go=1;function Ko(e){return`session-message-${e}`}function qo(e,t){return`${Ko(e)}-block-${t}`}function Jo(e){let t=e.replace(/<!--[\s\S]*?-->/g,` `).replace(/(^|\s)#{1,6}\s+/g,`$1`).replace(/(\*\*|__)(.*?)\1/g,`$2`).replace(/([*_])(.*?)\1/g,`$2`).replace(/`([^`]+)`/g,`$1`).replace(/\s+/g,` `).trim(),n=Array.from(t);return n.length<=Wo?t:`${n.slice(0,Wo).join(``)}…`}function Yo(e){return Jo(e.map(e=>gi(e.text)).filter(Boolean).join(` `))}function Xo(e,t){let n=[];for(let{msg:r,blocks:i,index:a}of e){if(r.role===`user`){let e=Ko(a),t=Yo(i.flatMap(e=>e.parts));n.push({id:e,kind:`user`,anchorId:e,messageIndex:a,tooltip:`User · ${t||`Message`}`});continue}i.forEach((e,r)=>{if(e.type===`tool`){e.parts.forEach(e=>{let r=t.get(e);r&&n.push({id:r,kind:`tool`,anchorId:r,messageIndex:a,tooltip:`Tool · ${Bi(e)}`})});return}let i=qo(a,r),o=Yo(e.parts);n.push({id:i,kind:`agent`,anchorId:i,messageIndex:a,tooltip:`Agent · ${o||`Response`}`})})}return n}function Zo(e,t){if(e.length===0)return null;let n=e.toSorted((e,t)=>e.top-t.top),r=n[0].index;for(let e of n){if(e.top>t)break;r=e.index}return r}function Qo(e,t,n,r){return r<=0?null:e<=Go?0:e>=Math.max(0,n-t)-Go?r-1:null}function $o(e,t,n,r){if(r<=0||n<=0)return null;let i=Math.min(1,Math.max(0,(e-t)/n));return Math.min(r-1,Math.floor(i*r))}var es={completed:{label:`Success`,className:`border-[var(--console-success-border)] bg-[var(--console-success-bg)] text-[var(--console-success)]`,icon:m},error:{label:`Failed`,className:`border-[var(--console-error-border)] bg-[var(--console-error-bg)] text-[var(--console-error)]`,icon:T},running:{label:`Running`,className:`border-[var(--console-warning-border)] bg-[var(--console-warning-bg)] text-[var(--console-warning)]`,icon:ve}};function ts(e){let t=e?.trim();if(!t)return null;let n=Array.from(new Set((t.match(/"[^"]+"|\S+/g)??[]).map(e=>e.replace(/^"|"$/g,``).trim()).filter(Boolean).filter(e=>!/^OR$/i.test(e))));return n.length===0?null:RegExp(`(${n.map(Ai).join(`|`)})`,`gi`)}function ns(e,t){let n=ts(t);return n?e.split(n).map((e,t)=>e.match(n)?(0,R.jsx)(`mark`,{children:e},`${e}-${t}`):(0,R.jsx)(`span`,{children:e},`${e}-${t}`)):e}function rs({text:e,highlightQuery:t}){return(0,R.jsx)(ri,{text:e,highlightQuery:t})}function is({messageIndex:e,msg:t,blocks:n,toolAnchorIds:r,formatTokens:i,sessionAgentKey:a,baseDirectory:o,highlightQuery:s}){let c=t.role===`user`,l=Vo(t,a),u=()=>{let e=a.toLowerCase(),t=H.getAgentName(e),n=H.agents[e]?.icon;return(0,R.jsx)(R.Fragment,{children:n?(0,R.jsx)(`img`,{src:n,alt:t,className:`size-4 rounded-sm object-cover`}):(0,R.jsx)(S,{className:`size-4 text-[var(--console-muted)]`})})},d=t.mode?t.mode.toUpperCase():null,f=t.model||null,p=Gi(t),m=zn(t.time_created);return(0,R.jsx)(`article`,{id:c?Ko(e):void 0,"data-session-timeline-anchor":c?Ko(e):void 0,className:`w-full scroll-mt-20 border-l-2 border-[var(--console-thread)] pl-4 pr-3 md:pr-5`,children:(0,R.jsxs)(`div`,{className:`flex gap-4`,children:[(0,R.jsx)(`div`,{className:`shrink-0 pt-1`,children:(0,R.jsx)(`div`,{className:`flex size-8 items-center justify-center rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)]`,children:c?(0,R.jsx)(_e,{className:`size-4 text-[var(--console-muted)]`}):u()})}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-baseline gap-3`,children:[(0,R.jsx)(`span`,{className:`console-mono text-sm font-bold tracking-wide text-[var(--console-text)]`,children:p}),(0,R.jsx)(`time`,{className:`console-mono text-xs text-[var(--console-muted)]`,children:m}),d&&(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-1.5 py-0.5 text-[10px] text-[var(--console-muted)]`,children:d}),f&&(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-1.5 py-0.5 text-[10px] text-[var(--console-muted)]`,children:f})]}),l?(0,R.jsx)(as,{}):n.map((t,n)=>{let i=qo(e,n);return t.type===`reasoning`?(0,R.jsx)(os,{anchorId:i,parts:t.parts,highlightQuery:s},n):t.type===`plan`?(0,R.jsx)(cs,{anchorId:i,parts:t.parts,highlightQuery:s},n):t.type===`tool`?(0,R.jsx)(ss,{parts:t.parts,toolAnchorIds:r,sessionAgentKey:a,baseDirectory:o,highlightQuery:s},n):(0,R.jsx)(`div`,{id:i,"data-session-timeline-anchor":i,className:`scroll-mt-20 rounded-sm border border-[var(--console-border)] bg-white p-4 shadow-[0_1px_2px_rgba(15,23,42,0.04)]`,children:(0,R.jsx)(`div`,{className:`console-markdown text-sm leading-relaxed text-[var(--console-text)]`,children:t.parts.map((e,t)=>(0,R.jsx)(rs,{text:gi(e.text),highlightQuery:s},t))})},n)}),!c&&(t.tokens||t.cost)&&(0,R.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.tokens?.input?(0,R.jsxs)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[11px] text-[var(--console-muted)]`,children:[`INPUT `,i(t.tokens.input)]}):null,t.tokens?.output?(0,R.jsxs)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[11px] text-[var(--console-muted)]`,children:[`OUTPUT `,i(t.tokens.output)]}):null,t.tokens?.reasoning?(0,R.jsxs)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[11px] text-[var(--console-muted)]`,children:[`REASONING `,i(t.tokens.reasoning)]}):null,t.cost?(0,R.jsxs)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[11px] text-[var(--console-muted)]`,children:[t.cost_source===`estimated`?`EST COST`:`COST`,` $`,t.cost.toFixed(4)]}):null]})]})]})})}function as(){return(0,R.jsx)(`div`,{className:`space-y-2`,children:(0,R.jsx)(`div`,{className:`flex flex-wrap items-start gap-2`,children:(0,R.jsx)(`div`,{className:`w-full rounded-sm border border-[var(--console-border-strong)] bg-white px-3 py-2 text-left shadow-[2px_2px_0_0_rgba(15,23,42,0.05)] md:w-[560px]`,children:(0,R.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsx)(O,{className:`mt-0.5 size-3.5 shrink-0 text-[var(--console-accent)]`}),(0,R.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,R.jsx)(`span`,{className:`console-mono block text-xs font-semibold text-[var(--console-text)]`,children:`abort`})})]})})})})}function os({anchorId:e,parts:t,highlightQuery:n}){let[r,i]=(0,F.useState)(!1),a=t.map(e=>gi(e.text)).filter(Boolean).join(`
|
|
112
|
+
|
|
113
|
+
`);return(0,R.jsxs)(`div`,{id:e,"data-session-timeline-anchor":e,className:`scroll-mt-20 overflow-hidden rounded-sm border border-[var(--console-thinking-border)] bg-[var(--console-thinking-bg)]`,children:[(0,R.jsxs)(`div`,{className:`flex cursor-pointer items-center justify-between bg-[var(--console-surface-muted)] px-3 py-2`,onClick:()=>i(!r),children:[(0,R.jsxs)(`span`,{className:`console-mono flex items-center gap-2 text-xs font-medium text-[var(--console-muted)]`,children:[(0,R.jsx)(re,{className:`size-3.5`}),`Thinking`]}),(0,R.jsx)(`span`,{className:`text-[var(--console-muted)]`,children:r?(0,R.jsx)(M,{className:`w-4 h-4`}):(0,R.jsx)(w,{className:`w-4 h-4`})})]}),r&&(0,R.jsx)(`div`,{className:`border-t border-dashed border-[var(--console-thinking-border)] px-4 py-3`,children:(0,R.jsx)(`div`,{className:`console-mono whitespace-pre-wrap text-xs leading-relaxed text-[var(--console-muted)]`,children:ns(a,n)})})]})}function ss({parts:e,toolAnchorIds:t,sessionAgentKey:n,baseDirectory:r,highlightQuery:i}){return(0,R.jsx)(`div`,{className:`space-y-2`,children:(0,R.jsx)(`div`,{className:`space-y-2`,children:e.map((e,a)=>(0,R.jsx)(us,{tool:e,anchorId:t.get(e),sessionAgentKey:n,baseDirectory:r,highlightQuery:i},a))})})}function cs({anchorId:e,parts:t,highlightQuery:n}){return(0,R.jsx)(`div`,{id:e,"data-session-timeline-anchor":e,className:`scroll-mt-20 space-y-2`,children:t.map((e,t)=>(0,R.jsx)(ls,{part:e,highlightQuery:n},t))})}function ls({part:e,highlightQuery:t}){let[n,r]=(0,F.useState)(!1),i=Uo(e),a=i.approvalStatus===`fail`?es.error:es.completed,o=a.icon;return(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,R.jsx)(`div`,{className:`w-full md:w-[560px] rounded-sm border border-[var(--console-border-strong)] bg-white px-3 py-2 text-left shadow-[2px_2px_0_0_rgba(15,23,42,0.05)] ${i.expandable?`transition-colors hover:bg-[var(--console-surface-muted)]`:``}`,children:i.expandable?(0,R.jsxs)(`button`,{type:`button`,className:`flex w-full items-start gap-2 text-left`,onClick:()=>r(!n),children:[(0,R.jsx)(x,{className:`mt-0.5 size-3.5 shrink-0 text-[var(--console-accent)]`}),(0,R.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,R.jsx)(`span`,{className:`console-mono block text-xs font-semibold text-[var(--console-text)]`,children:i.title})}),(0,R.jsx)(`span`,{className:`mt-0.5 shrink-0 text-[var(--console-muted)]`,children:n?(0,R.jsx)(M,{className:`size-3.5`}):(0,R.jsx)(w,{className:`size-3.5`})})]}):(0,R.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsx)(x,{className:`mt-0.5 size-3.5 shrink-0 text-[var(--console-accent)]`}),(0,R.jsx)(`span`,{className:`min-w-0 flex-1`,children:(0,R.jsx)(`span`,{className:`console-mono block text-xs font-semibold text-[var(--console-text)]`,children:i.title})})]})}),(0,R.jsxs)(`span`,{className:`console-mono inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider ${a.className}`,children:[(0,R.jsx)(o,{className:`size-3`}),a.label]})]}),i.expandable&&n?(0,R.jsxs)(`div`,{className:`overflow-hidden rounded-sm border border-[var(--console-border)] bg-white shadow-[0_1px_2px_rgba(15,23,42,0.04)]`,children:[(0,R.jsx)(`div`,{className:`border-b border-[var(--console-border)] bg-[var(--console-surface-muted)] px-3 py-1.5`,children:(0,R.jsx)(`span`,{className:`console-mono text-xs text-[var(--console-muted)]`,children:i.contentLabel})}),(0,R.jsx)(`div`,{className:`p-4`,children:(0,R.jsx)(`div`,{className:`console-markdown text-sm leading-relaxed text-[var(--console-text)]`,children:(0,R.jsx)(rs,{text:i.contentMarkdown,highlightQuery:t})})})]}):null]})}function us({tool:e,anchorId:t,sessionAgentKey:n,baseDirectory:r,highlightQuery:i}){let[a,o]=(0,F.useState)(!1),s=Wi(e),c=Eo(n,e,s,r),l=$i(s.inputText||`{}`,r),u=es[s.status],d=u.icon,f=c.Icon;return(0,R.jsxs)(`div`,{id:t,"data-session-timeline-anchor":t,className:`scroll-mt-20 space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,R.jsx)(`div`,{className:`w-full md:w-[560px] rounded-sm border border-[var(--console-border-strong)] bg-white px-3 py-2 text-left shadow-[2px_2px_0_0_rgba(15,23,42,0.05)] ${c.expandable?`transition-colors hover:bg-[var(--console-surface-muted)]`:``}`,children:c.expandable?(0,R.jsxs)(`button`,{type:`button`,className:`flex w-full items-start gap-2 text-left`,onClick:()=>o(!a),children:[(0,R.jsx)(f,{className:`mt-0.5 size-3.5 shrink-0 text-[var(--console-accent)]`}),(0,R.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`span`,{className:`console-mono block text-xs font-semibold text-[var(--console-text)]`,children:c.title}),c.secondaryText?(0,R.jsx)(`span`,{className:`console-mono mt-0.5 block whitespace-pre-wrap break-words text-xs leading-relaxed text-[var(--console-muted)]`,children:ns(c.secondaryText,i)}):null]}),(0,R.jsx)(`span`,{className:`mt-0.5 shrink-0 text-[var(--console-muted)]`,children:a?(0,R.jsx)(M,{className:`size-3.5`}):(0,R.jsx)(w,{className:`size-3.5`})})]}):(0,R.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsx)(f,{className:`mt-0.5 size-3.5 shrink-0 text-[var(--console-accent)]`}),(0,R.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`span`,{className:`console-mono block text-xs font-semibold text-[var(--console-text)]`,children:c.title}),c.secondaryText?(0,R.jsx)(`span`,{className:`console-mono mt-0.5 block whitespace-pre-wrap break-words text-xs leading-relaxed text-[var(--console-muted)]`,children:ns(c.secondaryText,i)}):null]})]})}),(0,R.jsxs)(`span`,{className:`console-mono inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 text-[10px] font-bold uppercase tracking-wider ${u.className}`,children:[(0,R.jsx)(d,{className:`size-3 ${s.status===`running`?`animate-spin`:``}`}),u.label]})]}),c.expandable&&a?(0,R.jsxs)(`div`,{className:`overflow-hidden rounded-sm border border-[var(--console-border)] bg-white shadow-[0_1px_2px_rgba(15,23,42,0.04)]`,children:[(0,R.jsx)(`div`,{className:`border-b border-[var(--console-border)] bg-[var(--console-surface-muted)] px-3 py-1.5`,children:(0,R.jsx)(`span`,{className:`console-mono text-xs text-[var(--console-muted)]`,children:`Output`})}),(0,R.jsxs)(`div`,{className:`space-y-3 p-3`,children:[c.details.length>0?(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-[#fafafa] px-3 py-2`,children:(0,R.jsx)(`div`,{className:`space-y-2`,children:c.details.map(e=>(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 md:flex-row md:items-start md:gap-3`,children:[(0,R.jsx)(`span`,{className:`console-mono shrink-0 text-[11px] font-semibold uppercase tracking-wide text-[var(--console-muted)] md:w-24`,children:e.label}),(0,R.jsx)(`span`,{className:`console-mono whitespace-pre-wrap break-all text-xs leading-relaxed text-[var(--console-text)]`,children:ns(e.value,i)})]},`${e.label}:${e.value}`))})}):null,(0,R.jsx)(Ro,{outputContent:c.outputContent})]}),c.showInputPreview?(0,R.jsxs)(`div`,{className:`border-t border-[var(--console-border)] bg-[#fafafa] px-3 py-2`,children:[(0,R.jsx)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:`Input Preview`}),(0,R.jsx)(`pre`,{className:`console-mono mt-1 max-h-[200px] overflow-x-auto whitespace-pre-wrap break-all text-xs leading-relaxed text-[var(--console-muted)]`,children:ns(l,i)})]}):null]}):null]})}var ds=32,fs=280,ps=6;function ms(e){return e===window}function hs(e,t){let n=[],r=0;for(let i=0;i<e;i+=1){let a=t[i]??fs,o=r,s=o+a;n.push({start:o,end:s}),r=s+(i===e-1?0:ds)}return{items:n,totalSize:r}}function gs(e,t){let n=0,r=e.length;for(;n<r;){let i=Math.floor((n+r)/2),a=e[i];a&&a.end<t?n=i+1:r=i}return n}function _s(e,t){let n=0,r=e.length;for(;n<r;){let i=Math.floor((n+r)/2),a=e[i];a&&a.start<=t?n=i+1:r=i}return n}function vs(e){let t=e.parentElement;for(;t;){let{overflowY:e}=window.getComputedStyle(t);if(e===`auto`||e===`scroll`||e===`overlay`)return t;t=t.parentElement}return window}function ys(e){return ms(e)?window.scrollY:e.scrollTop}function bs(e){return ms(e)?window.innerHeight||900:e.clientHeight}function xs(e,t){if(ms(t))return e.getBoundingClientRect().top+window.scrollY;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();return t.scrollTop+r.top-n.top}function Ss(e,t){if(ms(e)){window.scrollTo({top:t,behavior:`auto`});return}e.scrollTo({top:t,behavior:`auto`})}function Cs({messages:e,toolAnchorIds:t,sessionAgentKey:n,baseDirectory:r,highlightQuery:i,apiRef:a}){let o=e.length>80;return(0,F.useEffect)(()=>{o||(a.current=null)},[a,o]),o?(0,R.jsx)(ws,{messages:e,toolAnchorIds:t,sessionAgentKey:n,baseDirectory:r,highlightQuery:i,apiRef:a}):(0,R.jsx)(`div`,{className:`flex min-w-0 flex-col gap-8`,children:e.map(({msg:e,blocks:a,index:o})=>(0,R.jsx)(is,{messageIndex:o,msg:e,blocks:a,toolAnchorIds:t,formatTokens:Rn,sessionAgentKey:n,baseDirectory:r,highlightQuery:i},`${e.id}:${o}`))})}function ws({messages:e,toolAnchorIds:t,sessionAgentKey:n,baseDirectory:r,highlightQuery:i,apiRef:a}){let o=(0,F.useRef)(null),s=(0,F.useRef)(null),[c,l]=(0,F.useState)([]),[u,d]=(0,F.useState)(null),[f,p]=(0,F.useState)(()=>({scrollTop:0,height:900,listTop:0})),m=(0,F.useRef)(f);(0,F.useEffect)(()=>{m.current=f},[f]);let h=(0,F.useCallback)(()=>{if(typeof window>`u`)return null;let e=o.current,t=e?vs(e):window;s.current=t;let n=e?xs(e,t):0,r={scrollTop:ys(t),height:bs(t),listTop:n},i=m.current;return Math.abs(i.scrollTop-r.scrollTop)<1&&Math.abs(i.height-r.height)<1&&Math.abs(i.listTop-r.listTop)<1?t:(m.current=r,p(r),t)},[]);(0,F.useEffect)(()=>{let e=0,t=null,n=null,r=e=>{t!==e&&(t&&(t.removeEventListener(`scroll`,a),n&&!ms(t)&&n.unobserve(t)),t=e,t.addEventListener(`scroll`,a,{passive:!0}),n&&!ms(t)&&n.observe(t))},i=()=>{let e=h();e&&r(e)},a=()=>{e||=requestAnimationFrame(()=>{e=0,i()})};window.addEventListener(`resize`,a),typeof ResizeObserver<`u`&&(n=new ResizeObserver(a),o.current&&n.observe(o.current),document.body&&n.observe(document.body));let s=new MutationObserver(a),c=o.current?.parentElement;for(;c;)s.observe(c,{attributes:!0,attributeFilter:[`class`,`style`]}),c=c.parentElement;return document.fonts?.addEventListener(`loadingdone`,a),i(),()=>{e&&cancelAnimationFrame(e),n?.disconnect(),s.disconnect(),document.fonts?.removeEventListener(`loadingdone`,a),t?.removeEventListener(`scroll`,a),window.removeEventListener(`resize`,a)}},[h]),(0,F.useEffect)(()=>{l([]),d(null),h()},[e,h]);let g=(0,F.useMemo)(()=>hs(e.length,c),[c,e.length]),_=(0,F.useCallback)((e,t)=>{let n=Math.ceil(t);!Number.isFinite(n)||n<=0||l(t=>{let r=t[e];if(r!=null&&Math.abs(r-n)<=1)return t;let i=[...t];return i[e]=n,i})},[]),v=(0,F.useMemo)(()=>{if(e.length===0)return[];let t=Math.max(0,f.scrollTop-f.listTop),n=t+f.height,r=Math.max(0,gs(g.items,t)-ps),i=Math.min(e.length,_s(g.items,n)+ps),a=[];for(let e=r;e<i;e+=1){let t=g.items[e];t&&a.push({index:e,start:t.start})}if(u!=null&&u>=0&&u<e.length){let e=g.items[u];e&&!a.some(e=>e.index===u)&&(a.push({index:u,start:e.start}),a.sort((e,t)=>e.start-t.start))}return a},[u,g,e.length,f]),y=(0,F.useCallback)(e=>{if(typeof window>`u`)return;let t=g.items[e];if(!t)return;d(e);let n=o.current,r=n?vs(n):s.current??window;s.current=r;let i=n?xs(n,r):0,a=Math.max(0,i+t.start-24);Ss(r,a);let c={scrollTop:a,height:bs(r),listTop:i};m.current=c,p(c)},[g.items]);return(0,F.useEffect)(()=>(a.current={scrollToIndex:y},()=>{a.current?.scrollToIndex===y&&(a.current=null)}),[a,y]),(0,R.jsx)(`div`,{ref:o,className:`relative min-w-0`,style:{height:Math.max(1,g.totalSize)},children:v.map(({index:a,start:o})=>{let s=e[a];return s?(0,R.jsx)(Ts,{index:a,top:o,onMeasure:_,children:(0,R.jsx)(is,{messageIndex:s.index,msg:s.msg,blocks:s.blocks,toolAnchorIds:t,formatTokens:Rn,sessionAgentKey:n,baseDirectory:r,highlightQuery:i})},`${s.msg.id}:${s.index}`):null})})}function Ts({index:e,top:t,onMeasure:n,children:r}){let i=(0,F.useRef)(null);return(0,F.useLayoutEffect)(()=>{let t=i.current;if(!t)return;let r=()=>n(e,t.getBoundingClientRect().height);if(r(),typeof ResizeObserver>`u`)return;let a=new ResizeObserver(r);return a.observe(t),()=>a.disconnect()},[e,n]),(0,R.jsx)(`div`,{ref:i,className:`absolute left-0 top-0 w-full`,style:{transform:`translateY(${t}px)`},children:r})}function Es(e,t){return t===0||e-t>=15.666666666666668}function Ds(e,t){return e?0:t+1}function Os(e,t){return e>=2&&t>=36}function ks(e,t){return!e||Math.abs(e.receiptWidth-t.receiptWidth)>.5||Math.abs(e.receiptHeight-t.receiptHeight)>.5||Math.abs(e.startX-t.startX)>.5||Math.abs(e.startY-t.startY)>.5}var X=18,Z=42,As=5,Q=270,js=500,Ms=2;function Ns(e){return Math.round(e??0).toLocaleString(`en-US`)}function Ps(e){return`$${(e??0).toFixed(4)}`}function Fs(e){return new Date(e).toLocaleString(`en-US`,{month:`short`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`})}function Is(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function Ls(e){let t=e||1;return()=>(t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296)}function Rs(e){let t=[{label:`User`,count:e.counts.user},{label:`Agent Responses`,count:e.counts.agent_message},{label:`Thinking`,count:e.counts.thinking},{label:`Plans`,count:e.counts.plan},{label:`Tools`,count:e.counts.tools_all}].filter(e=>e.count>0),n=e.tools.map(e=>({label:e.label,count:e.count})),r=Math.max(0,9-t.length),i=n.length>r?n.slice(0,Math.max(0,r-1)):n,a=n.slice(i.length).reduce((e,t)=>e+t.count,0);return a>0&&i.push({label:`Other tools`,count:a}),[...t,...i].slice(0,9)}function zs(e){return!e||e.length===0?`SESSION ACTIVITY RECEIPT`:e.map(e=>Bt[e]).join(` / `)}function Bs(e,t){let n=e.slug?.split(`/`)[0]||`codesesh`;return{id:e.id,title:e.title||`Untitled session`,agent:n,updatedAt:e.time_updated??e.time_created,tags:e.smart_tags,stats:e.stats,items:Rs(t)}}function Vs(e,t,n,r,i){let a=t.toUpperCase(),o=n.toUpperCase();e.fillText(a,18,r),e.fillText(o,i-18-e.measureText(o).width,r)}function Hs(e,t,n){if(e.measureText(t).width<=n)return t;let r=t;for(;r.length>1&&e.measureText(`${r}...`).width>n;)r=r.slice(0,-1);return`${r}...`}function Us(e,t,n,r){let i=t.toUpperCase().split(/\s+/).filter(Boolean),a=[],o=``;for(let t of i){let i=o?`${o} ${t}`:t;if(e.measureText(i).width<=n){o=i;continue}if(o?(a.push(o),o=t):(a.push(Hs(e,t,n)),o=``),a.length===r)break}return a.length<r&&o&&a.push(o),a.length>0&&a.length===r&&(a[a.length-1]=Hs(e,a[a.length-1]??``,n)),a.slice(0,r)}function Ws(e){let t=document.createElement(`canvas`);t.width=Q*Ms,t.height=js*Ms;let n=t.getContext(`2d`);if(!n)return t;n.scale(Ms,Ms);let r=n.createLinearGradient(0,0,Q,js);r.addColorStop(0,`#ffffff`),r.addColorStop(.55,`#fafaf6`),r.addColorStop(1,`#f2f2ec`),n.fillStyle=r,n.fillRect(0,0,Q,js);let i=Ls(Is(e.id));n.fillStyle=`rgba(0, 0, 0, 0.035)`;for(let e=0;e<1200;e+=1)n.globalAlpha=.12+i()*.14,n.fillRect(i()*Q,i()*js,.7,.7);n.globalAlpha=1,n.fillStyle=`rgba(0, 0, 0, 0.78)`,n.font=`700 18px 'Courier New', monospace`,n.textAlign=`center`,n.fillText(`CODESESH MART`,Q/2,34),n.font=`11px 'Courier New', monospace`,n.fillText(Hs(n,zs(e.tags).toUpperCase(),Q-36),Q/2,51),n.strokeStyle=`rgba(0, 0, 0, 0.5)`,n.lineWidth=1,n.setLineDash([4,4]),n.beginPath(),n.moveTo(18,66),n.lineTo(Q-18,66),n.stroke(),n.setLineDash([]),n.textAlign=`left`,n.fillStyle=`rgba(0, 0, 0, 0.74)`,n.font=`11px 'Courier New', monospace`,Vs(n,`Agent`,e.agent,88,Q),Vs(n,`Updated`,Fs(e.updatedAt),104,Q),Vs(n,`Session`,`#${e.id.slice(0,8)}`,120,Q),n.setLineDash([2,3]),n.beginPath(),n.moveTo(18,140),n.lineTo(Q-18,140),n.stroke(),n.setLineDash([]),n.font=`700 12px 'Courier New', monospace`,n.fillText(`SESSION TOC RECEIPT LIST`,18,163),n.font=`11px 'Courier New', monospace`;let a=185;for(let t of e.items){let e=Ns(t.count);n.fillText(Hs(n,t.label,168),18,a),n.fillText(e,Q-18-n.measureText(e).width,a),a+=17}return n.strokeStyle=`rgba(0, 0, 0, 0.62)`,n.lineWidth=1.5,n.beginPath(),n.moveTo(18,a+5),n.lineTo(Q-18,a+5),n.stroke(),a+=26,Vs(n,`Input tokens`,Ns(e.stats.total_input_tokens),a,Q),a+=16,Vs(n,`Output tokens`,Ns(e.stats.total_output_tokens),a,Q),a+=16,Vs(n,`Messages`,Ns(e.stats.message_count),a,Q),a+=22,n.font=`700 13px 'Courier New', monospace`,Vs(n,`TOTAL COST`,Ps(e.stats.total_cost),a,Q),n.strokeStyle=`rgba(0, 0, 0, 0.45)`,n.setLineDash([4,4]),n.beginPath(),n.moveTo(18,a+18),n.lineTo(Q-18,a+18),n.stroke(),n.setLineDash([]),n.font=`10px 'Courier New', monospace`,n.textAlign=`center`,n.fillStyle=`rgba(0, 0, 0, 0.62)`,Us(n,e.title,Q-36,2).forEach((e,t)=>{n.fillText(e,Q/2,a+38+t*13)}),t}function $(e,t){return e*X+t}function Gs(e){let{receiptWidth:t,receiptHeight:n,startX:r,startY:i}=e,a=t/(X-1),o=n/(Z-1),s=[],c=[];for(let e=0;e<Z;e+=1)for(let t=0;t<X;t+=1){let n=r+t*a,c=i+e*o;s.push({x:n,y:c,oldX:n,oldY:c,fixedX:e===0?n:null,fixedY:e===0?c:null})}let l=(e,t,n)=>{let r=s[e],i=s[t];!r||!i||c.push({a:e,b:t,length:Math.hypot(i.x-r.x,i.y-r.y),stiffness:n})};for(let e=0;e<Z;e+=1)for(let t=0;t<X;t+=1){let n=$(e,t);t<X-1&&l(n,$(e,t+1),.98),e<Z-1&&l(n,$(e+1,t),.92),e<Z-1&&t<X-1&&(l(n,$(e+1,t+1),.46),l($(e+1,t),$(e,t+1),.46)),t<X-2&&l(n,$(e,t+2),.35),e<Z-2&&l(n,$(e+2,t),.28)}return{particles:s,constraints:c,receiptWidth:t,receiptHeight:n}}function Ks(e,t){let n=t.receiptWidth/(X-1);for(let r=0;r<X;r+=1){let i=e[r];i&&(i.fixedX=t.startX+r*n,i.fixedY=t.startY)}}function qs(e){for(let t=0;t<X;t+=1){let n=e[t];!n||n.fixedX==null||n.fixedY==null||(n.x=n.fixedX,n.y=n.fixedY,n.oldX=n.fixedX,n.oldY=n.fixedY)}}function Js(e,t){let n=e[t.a],r=e[t.b];if(!n||!r)return;let i=r.x-n.x,a=r.y-n.y,o=Math.hypot(i,a);if(o<1e-4)return;let s=(o-t.length)/o*t.stiffness,c=n.fixedX!=null&&n.fixedY!=null,l=r.fixedX!=null&&r.fixedY!=null,u=c?0:l?1:.5,d=l?0:c?1:.5,f=i*s,p=a*s;c||(n.x+=f*u,n.y+=p*u),l||(r.x-=f*d,r.y-=p*d)}function Ys(e,t,n,r,i){let a=n[$(r,i)],o=n[$(r,i+1)],s=n[$(r+1,i)],c=n[$(r+1,i+1)];if(!a||!o||!s||!c)return;let l=i/(X-1)*t.width,u=r/(Z-1)*t.height,d=t.width/(X-1),f=t.height/(Z-1);e.save(),e.beginPath(),e.moveTo(a.x,a.y),e.lineTo(o.x,o.y),e.lineTo(c.x,c.y),e.lineTo(s.x,s.y),e.closePath(),e.clip(),e.transform((o.x-a.x)/d,(o.y-a.y)/d,(s.x-a.x)/f,(s.y-a.y)/f,a.x,a.y),e.drawImage(t,l,u,d+1,f+1,0,0,d+1,f+1),e.restore();let p=Math.atan2(o.y-a.y,o.x-a.x),m=Math.hypot(s.x-a.x,s.y-a.y)/(js/(Z-1)),h=Math.sin(p)*.08+(m-1)*.16;Math.abs(h)<.01||(e.save(),e.beginPath(),e.moveTo(a.x,a.y),e.lineTo(o.x,o.y),e.lineTo(c.x,c.y),e.lineTo(s.x,s.y),e.closePath(),e.fillStyle=h>0?`rgba(255,255,255,${h})`:`rgba(0,0,0,${-h})`,e.fill(),e.restore())}function Xs(e,t,n){let r=null,i=44;for(let a=X;a<e.length;a+=1){let o=e[a];if(!o)continue;let s=Math.hypot(o.x-t,o.y-n);s<i&&(i=s,r=a)}return r}function Zs({session:e,toc:t,minWidthQuery:n=`(min-width: 1025px)`}){let r=(0,F.useRef)(null),i=(0,F.useRef)(null),a=(0,F.useRef)(null),o=(0,F.useMemo)(()=>Bs(e,t),[e,t]);return(0,F.useLayoutEffect)(()=>{let e=r.current,t=i.current,s=a.current;if(!e||!t||!s)return;let c=e.getContext(`2d`,{alpha:!0});if(!c)return;let l={id:null,x:0,y:0,prevX:0,prevY:0,vx:0,vy:0,grabbedIndex:null},u=Ws(o),d=0,f=0,p=0,m=Gs({receiptWidth:Q,receiptHeight:js,startX:0,startY:32}),h=performance.now(),g=null,_=0,v=0,y=0,b=!1,x=!0,S=!1,C=window.matchMedia(n),w=window.matchMedia(`(prefers-reduced-motion: reduce)`),T=()=>C.matches&&document.visibilityState===`visible`&&x,ee=()=>{let e=t.getBoundingClientRect(),n=Math.max(280,e.width||320),r=Math.min(Q,n-34);return{receiptWidth:r,receiptHeight:Math.min(js,Math.max(320,p-e.top-42)),startX:e.left+(e.width-r)/2,startY:e.top+32}},E=t=>{b!==t&&(b=t,e.style.visibility=t?`visible`:`hidden`,s.style.visibility=t&&!w.matches?`visible`:`hidden`)},D=()=>{S=!1,d&&=(window.cancelAnimationFrame(d),0),E(!1)},te=(e,t=performance.now())=>{m=Gs(e),g=e,h=t},ne=()=>{let t=window.devicePixelRatio||1;f=Math.max(1,window.innerWidth),p=Math.max(1,window.innerHeight),e.width=Math.floor(f*t),e.height=Math.floor(p*t),c.setTransform(t,0,0,t,0,0),_=0,v=0,y=0,E(!1),te(ee()),T()&&O()},O=()=>{S||!T()||(S=!0,d=window.requestAnimationFrame(ue))},k=()=>{T()?ne():D()},re=e=>({x:e.clientX,y:e.clientY}),ie=e=>{if(e.button!==0||w.matches)return;let t=re(e),n=Xs(m.particles,t.x,t.y);n!=null&&(e.preventDefault(),s.setPointerCapture(e.pointerId),l.id=e.pointerId,l.x=t.x,l.y=t.y,l.prevX=t.x,l.prevY=t.y,l.vx=0,l.vy=0,l.grabbedIndex=n,v=0,O())},ae=e=>{if(l.id!==e.pointerId)return;let t=re(e);l.vx=t.x-l.prevX,l.vy=t.y-l.prevY,l.prevX=t.x,l.prevY=t.y,l.x=t.x,l.y=t.y},A=e=>{if(l.id!==e.pointerId)return;let t=l.grabbedIndex==null?null:m.particles[l.grabbedIndex];t&&(t.oldX=t.x-l.vx*.9,t.oldY=t.y-l.vy*.9),l.id=null,l.grabbedIndex=null},j=e=>{let t=(e-h)/1e3;for(let e=X;e<m.particles.length;e+=1){let n=m.particles[e];if(!n)continue;let r=(n.x-n.oldX)*.985,i=(n.y-n.oldY)*.985;n.oldX=n.x,n.oldY=n.y,n.x+=r+Math.sin(t*1.7+e*.19)*.018,n.y+=i+.22}let n=l.grabbedIndex==null?null:m.particles[l.grabbedIndex];n&&(n.x+=(l.x-n.x)*.72,n.y+=(l.y-n.y)*.72)},oe=()=>{for(let e=0;e<As;e+=1){qs(m.particles);for(let e of m.constraints)Js(m.particles,e)}qs(m.particles)},se=()=>{let e=1/0,t=1/0,n=-1/0,r=-1/0;for(let i of m.particles)e=Math.min(e,i.x),t=Math.min(t,i.y),n=Math.max(n,i.x),r=Math.max(r,i.y);s.style.transform=`translate3d(${e-20}px, ${t-20}px, 0)`,s.style.width=`${n-e+40}px`,s.style.height=`${r-t+40}px`},M=()=>{let e=m.particles[0],t=m.particles[X-1],n=m.particles[Z*X-1],r=m.particles[(Z-1)*X];!e||!t||!n||!r||(c.save(),c.shadowColor=`rgba(0,0,0,0.24)`,c.shadowBlur=24,c.shadowOffsetY=16,c.fillStyle=`rgba(0,0,0,0.14)`,c.beginPath(),c.moveTo(e.x,e.y),c.lineTo(t.x,t.y),c.lineTo(n.x,n.y),c.lineTo(r.x,r.y),c.closePath(),c.fill(),c.restore())},ce=()=>{let e=m.particles[0],t=m.particles[X-1];!e||!t||(c.save(),c.strokeStyle=`rgba(0,0,0,0.72)`,c.lineWidth=4,c.lineCap=`round`,c.beginPath(),c.moveTo(e.x-10,e.y-3),c.lineTo(t.x+10,t.y-3),c.stroke(),c.strokeStyle=`rgba(255,255,255,0.55)`,c.lineWidth=1,c.beginPath(),c.moveTo(e.x-8,e.y-5),c.lineTo(t.x+8,t.y-5),c.stroke(),c.restore())},le=()=>{c.clearRect(0,0,f,p),M();for(let e=0;e<Z-1;e+=1)for(let t=0;t<X-1;t+=1)Ys(c,u,m.particles,e,t);ce(),se()},ue=e=>{if(!S)return;if(!T()){D();return}if(!Es(e,y)){d=window.requestAnimationFrame(ue);return}y=e;let t=ee();ks(g,t)&&l.id==null?(_=0,E(!1),te(t,e)):(_+=1,g=t),Ks(m.particles,t),w.matches||(j(e),oe()),le(),v=Ds(l.id!=null,v);let n=w.matches;if((n||_>=2)&&E(!0),n||Os(_,v)){S=!1,d=0;return}d=window.requestAnimationFrame(ue)};E(!1),T()&&ne();let de=new ResizeObserver(ne);de.observe(t);let fe=new IntersectionObserver(([e])=>{x=!!e?.isIntersecting,k()});return fe.observe(t),C.addEventListener(`change`,k),w.addEventListener(`change`,k),document.addEventListener(`visibilitychange`,k),window.addEventListener(`resize`,k),s.addEventListener(`pointerdown`,ie),s.addEventListener(`pointermove`,ae),s.addEventListener(`pointerup`,A),s.addEventListener(`pointercancel`,A),O(),()=>{D(),de.disconnect(),fe.disconnect(),C.removeEventListener(`change`,k),w.removeEventListener(`change`,k),document.removeEventListener(`visibilitychange`,k),window.removeEventListener(`resize`,k),s.removeEventListener(`pointerdown`,ie),s.removeEventListener(`pointermove`,ae),s.removeEventListener(`pointerup`,A),s.removeEventListener(`pointercancel`,A)}},[n,o]),(0,R.jsxs)(`div`,{ref:i,className:`h-[calc(100dvh-5.5rem)] min-h-[420px]`,children:[(0,R.jsx)(`canvas`,{ref:r,className:`invisible pointer-events-none fixed inset-0 z-[61] block h-screen w-screen touch-none`,"aria-hidden":`true`}),(0,R.jsx)(`div`,{ref:a,className:`invisible fixed left-0 top-0 z-[62] cursor-grab touch-none active:cursor-grabbing`,"aria-label":`Interactive thermal receipt with Verlet paper simulation`})]})}var Qs={desktop:{backdrop:`z-[60] hidden bg-black/20 min-[1025px]:block`,popup:`z-[61] hidden w-[min(92vw,430px)] p-4 min-[1025px]:block`},mobile:{backdrop:`z-50 bg-black/30 min-[1025px]:hidden`,popup:`console-scrollbar z-[51] w-[min(90vw,380px)] overflow-y-auto p-3 min-[1025px]:hidden`}};function $s({open:e,onOpenChange:t,title:n,variant:r,children:i}){let a=Qs[r];return(0,R.jsx)(c,{open:e,onOpenChange:t,children:(0,R.jsxs)(u,{children:[(0,R.jsx)(d,{className:`fixed inset-0 ${a.backdrop}`}),(0,R.jsxs)(o,{className:`fixed bottom-0 right-0 top-0 overscroll-contain border-l border-[var(--console-border)] bg-[var(--console-bg)] shadow-[-12px_0_32px_rgba(15,23,42,0.18)] outline-none ${a.popup}`,children:[(0,R.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,R.jsx)(f,{className:`console-mono text-xs font-semibold uppercase tracking-[0.16em] text-[var(--console-text)]`,children:n}),(0,R.jsx)(l,{"aria-label":`Close ${n.toLowerCase()}`,className:`rounded-sm border border-[var(--console-border)] bg-white p-2 text-[var(--console-muted)] transition-colors hover:bg-[var(--console-surface-muted)] focus-visible:ring-2 focus-visible:ring-[var(--console-accent)] focus-visible:ring-offset-2 focus-visible:outline-none`,children:(0,R.jsx)(ie,{className:`size-4`,"aria-hidden":`true`})})]}),i]})]})})}function ec({session:e,toc:t}){let[n,r]=(0,F.useState)(!1),[i,a]=(0,F.useState)(!1);return(0,F.useEffect)(()=>{r(!1)},[e.id]),(0,F.useEffect)(()=>{if(!n){a(!1);return}a(!1);let e=0,t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>a(!0))}),i=window.matchMedia(`(min-width: 1025px)`),o=()=>{i.matches||r(!1)};return i.addEventListener(`change`,o),o(),()=>{cancelAnimationFrame(t),e&&cancelAnimationFrame(e),i.removeEventListener(`change`,o)}},[n]),(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`button`,{type:`button`,"aria-expanded":n,"aria-label":`Open session receipt`,onClick:()=>r(!0),className:`console-mono fixed right-0 top-1/2 z-40 hidden h-32 w-10 -translate-y-1/2 items-center justify-center rounded-l-sm border border-r-0 border-[var(--console-border)] bg-white text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--console-text)] shadow-[-2px_4px_14px_rgba(15,23,42,0.14)] transition-colors hover:bg-[var(--console-surface-muted)] min-[1025px]:flex`,children:(0,R.jsx)(`span`,{className:`[writing-mode:vertical-rl]`,children:`Receipt`})}),(0,R.jsx)($s,{open:n,onOpenChange:r,title:`Session Receipt`,variant:`desktop`,children:i?(0,R.jsx)(kt,{id:`InteractiveReceipt`,children:(0,R.jsx)(Zs,{session:e,toc:t},e.id)}):(0,R.jsx)(`div`,{className:`h-[calc(100dvh-5.5rem)] min-h-[420px] rounded-sm border border-[var(--console-border)] bg-white`})})]})}function tc({toc:e,fileChangeSummary:t,onOpen:n}){let r=oa(t);return(0,R.jsxs)(`div`,{className:`flex flex-wrap gap-2 min-[1025px]:hidden`,children:[(0,R.jsxs)(`button`,{type:`button`,onClick:()=>n(`toc`),className:`console-mono inline-flex h-9 items-center gap-2 rounded-sm border border-[var(--console-border)] bg-white px-3 text-xs font-semibold uppercase tracking-[0.12em] text-[var(--console-text)] shadow-[0_1px_2px_rgba(15,23,42,0.04)] transition-colors hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsx)(D,{className:`size-3.5 text-[var(--console-accent)]`}),`TOC`,(0,R.jsx)(`span`,{className:`text-[var(--console-muted)]`,children:e.counts.tools_all})]}),r>0?(0,R.jsxs)(`button`,{type:`button`,onClick:()=>n(`files`),className:`console-mono inline-flex h-9 items-center gap-2 rounded-sm border border-[var(--console-border)] bg-white px-3 text-xs font-semibold uppercase tracking-[0.12em] text-[var(--console-text)] shadow-[0_1px_2px_rgba(15,23,42,0.04)] transition-colors hover:bg-[var(--console-surface-muted)]`,children:[(0,R.jsx)(g,{className:`size-3.5 text-[var(--console-accent)]`}),`Files`,(0,R.jsx)(`span`,{className:`text-[var(--console-muted)]`,children:r})]}):null]})}function nc({openPanel:e,toc:t,fileChangeSummary:n,baseDirectory:r,selectedFilters:i,onClose:a,onToggle:o,onJumpToAnchor:s}){return(0,F.useEffect)(()=>{if(!e)return;let t=window.matchMedia(`(min-width: 1025px)`),n=()=>{t.matches&&a()};return t.addEventListener(`change`,n),n(),()=>{t.removeEventListener(`change`,n)}},[a,e]),(0,R.jsx)($s,{open:e!==null,onOpenChange:e=>{e||a()},title:e===`files`?`File Tracker`:`Session TOC`,variant:`mobile`,children:e?e===`toc`?(0,R.jsx)(ha,{toc:t,selectedFilters:i,onToggle:o}):(0,R.jsx)(sa,{summary:n,baseDirectory:r,onJumpToAnchor:s}):null})}var rc=e(a(),1),ic=10,ac=1,oc=8,sc={user:`bg-[var(--timeline-user)]`,agent:`bg-[var(--timeline-agent)]`,tool:`bg-[var(--timeline-tool)]`},cc={user:`#a85f82`,agent:`#5e86aa`,tool:`#a3a3a3`};function lc(e){let t=e.parentElement;for(;t;){let{overflowY:e}=window.getComputedStyle(t);if(e===`auto`||e===`scroll`||e===`overlay`)return t;t=t.parentElement}return window}function uc(e){return e===window}function dc(e){if(uc(e)){let e=window.innerHeight||900,t=document.scrollingElement??document.documentElement;return{center:e/2,scrollTop:window.scrollY||t.scrollTop,viewportHeight:e,scrollHeight:t.scrollHeight}}return{center:e.getBoundingClientRect().top+e.clientHeight/2,scrollTop:e.scrollTop,viewportHeight:e.clientHeight,scrollHeight:e.scrollHeight}}function fc(e){let t=e>80?{className:`gap-px`,width:1}:e>40?{className:`gap-0.5`,width:2}:{className:`gap-1`,width:4};return{gapClassName:t.className,minWidth:e*ic+Math.max(0,e-1)*t.width}}function pc({entries:e,onNavigate:t}){let n=(0,F.useRef)(null),r=(0,F.useRef)(null),i=(0,F.useRef)(null),a=(0,F.useRef)(null),o=(0,F.useRef)(null),s=(0,F.useRef)({active:!1,moved:!1,startX:0,lastIndex:-1}),c=(0,F.useRef)(!1),l=(0,F.useRef)(null),u=(0,F.useRef)(null),[d,f]=(0,F.useState)(0),[p,m]=(0,F.useState)(null),[h,g]=(0,F.useState)({left:!1,right:!1}),[_,v]=(0,F.useState)(null),y=(0,F.useMemo)(()=>new Map(e.map((e,t)=>[e.anchorId,t])),[e]),b=fc(e.length),x=(0,F.useCallback)(()=>{let e=r.current;if(!e)return;let t=Math.max(0,e.scrollWidth-e.clientWidth),n={left:e.scrollLeft>ac,right:e.scrollLeft<t-ac};if(g(e=>e.left===n.left&&e.right===n.right?e:n),t<=0){v(null);return}let i={start:e.scrollLeft/e.scrollWidth,size:e.clientWidth/e.scrollWidth};v(e=>e?.start===i.start&&e.size===i.size?e:i)},[]);(0,F.useLayoutEffect)(()=>{let e=a.current;if(!e||!p)return;let t=e.offsetWidth/2,n=Math.min(window.innerWidth-oc-t,Math.max(oc+t,p.anchorX));e.style.left=`${n}px`},[p]),(0,F.useLayoutEffect)(()=>{x();let e=r.current,t=i.current;if(!e||!t||typeof ResizeObserver>`u`)return;let n=new ResizeObserver(x);return n.observe(e),n.observe(t),()=>n.disconnect()},[e.length,x]),(0,F.useEffect)(()=>{f(0);let t=n.current;if(!t||e.length===0)return;let r=t.closest(`[data-testid="session-detail"]`),i=lc(t),a=0,o=()=>{let t=dc(i),n=Qo(t.scrollTop,t.viewportHeight,t.scrollHeight,e.length),a=Array.from(r?.querySelectorAll(`[data-session-timeline-anchor]`)??[]).flatMap(e=>{let t=e.dataset.sessionTimelineAnchor,n=t?y.get(t):void 0;return n==null?[]:[{index:n,top:e.getBoundingClientRect().top}]}),o=n??Zo(a,t.center);o!=null&&f(e=>e===o?e:o)},s=()=>{a||=requestAnimationFrame(()=>{a=0,o()})};s(),i.addEventListener(`scroll`,s,{passive:!0}),window.addEventListener(`resize`,s);let c=typeof ResizeObserver>`u`?null:new ResizeObserver(s);r&&c?.observe(r);let l=typeof MutationObserver>`u`?null:new MutationObserver(s);return r&&l?.observe(r,{childList:!0,subtree:!0}),()=>{a&&cancelAnimationFrame(a),c?.disconnect(),l?.disconnect(),i.removeEventListener(`scroll`,s),window.removeEventListener(`resize`,s)}},[e.length,y]),(0,F.useEffect)(()=>{let e=r.current,t=i.current?.querySelector(`[data-timeline-index="${d}"]`);if(!e||!t)return;let n=e.getBoundingClientRect(),a=t.getBoundingClientRect();a.left<n.left?e.scrollLeft-=n.left-a.left:a.right>n.right&&(e.scrollLeft+=a.right-n.right)},[d]);let S=_!=null;(0,F.useEffect)(()=>{let t=l.current;if(!t||!S)return;let n=()=>{let n=t.getContext(`2d`),r=t.clientWidth,i=t.clientHeight;if(!n||!r||!i||e.length===0)return;let a=window.devicePixelRatio||1;t.width=Math.round(r*a),t.height=Math.round(i*a),n.scale(a,a),n.clearRect(0,0,r,i);let o=window.getComputedStyle(t),s={user:o.getPropertyValue(`--timeline-user`).trim()||cc.user,agent:o.getPropertyValue(`--timeline-agent`).trim()||cc.agent,tool:o.getPropertyValue(`--timeline-tool`).trim()||cc.tool};e.forEach((t,a)=>{let o=a/e.length*r,c=(a+1)/e.length*r;n.fillStyle=s[t.kind],n.fillRect(o,0,Math.max(c-o,.5),i)})};if(n(),typeof ResizeObserver>`u`)return;let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[e,S]);let w=(0,F.useCallback)((e,t)=>{let n=r.current;n&&(n.scrollLeft=(e-t)*n.scrollWidth)},[]),T=(0,F.useCallback)(e=>{let t=r.current;if(!t)return;let n=Math.max(0,t.scrollWidth-t.clientWidth),i=Math.max(40,t.clientWidth*.1),a=Math.max(120,t.clientWidth*.75),o=null;e.key===`ArrowLeft`&&(o=t.scrollLeft-i),e.key===`ArrowRight`&&(o=t.scrollLeft+i),e.key===`PageUp`&&(o=t.scrollLeft-a),e.key===`PageDown`&&(o=t.scrollLeft+a),e.key===`Home`&&(o=0),e.key===`End`&&(o=n),o!=null&&(e.preventDefault(),t.scrollLeft=Math.min(n,Math.max(0,o)))},[]),E=(0,F.useCallback)((e,t,n)=>{let r=t.getBoundingClientRect();o.current=t,m({entryId:e.id,id:`timeline-tooltip-${e.id}`,text:e.tooltip,anchorX:r.left+r.width/2,top:r.bottom+8,source:n})},[]),D=(0,F.useCallback)(e=>{m(t=>t?.entryId===e?(o.current=null,null):t)},[]),te=(0,F.useCallback)(()=>{x(),m(e=>{let t=o.current;if(!e||e.source!==`focus`||!t||t!==document.activeElement)return o.current=null,null;let n=t.getBoundingClientRect();return{...e,anchorX:n.left+n.width/2,top:n.bottom+8}})},[x]),ne=(0,F.useCallback)(e=>{let t=r.current;t&&(t.scrollLeft+=e*Math.max(120,t.clientWidth*.75))},[]),O=(0,F.useCallback)((n,r)=>{let a=i.current;if(!a)return;let o=a.getBoundingClientRect(),c=$o(n,o.left,o.width,e.length);if(c==null||c===s.current.lastIndex)return;let l=e[c];l&&(s.current.lastIndex=c,t(l,r))},[e,t]);return(0,R.jsx)(`div`,{className:`sticky top-0 z-20 -mx-2 bg-[var(--console-bg)] px-2 py-3`,children:(0,R.jsxs)(`div`,{ref:n,className:`session-message-timeline relative rounded-sm border border-[var(--console-border)] bg-white px-3 py-2.5 shadow-[0_1px_2px_rgba(15,23,42,0.05)]`,children:[(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`div`,{ref:r,id:`session-timeline-viewport`,role:`navigation`,"aria-label":`Session message timeline`,tabIndex:0,className:`session-timeline-viewport overflow-x-auto overflow-y-hidden overscroll-x-contain py-1`,onScroll:te,children:(0,R.jsx)(`div`,{ref:i,"data-testid":`session-timeline-track`,className:`grid h-5 w-full select-none items-stretch ${b.gapClassName}`,style:{gridTemplateColumns:`repeat(${e.length}, minmax(${ic}px, 1fr))`,minWidth:`${b.minWidth}px`},onPointerDown:e=>{e.button===0&&(s.current={active:!0,moved:!1,startX:e.clientX,lastIndex:-1})},onPointerMove:e=>{let t=s.current;if(t.active){if(!t.moved){if(Math.abs(e.clientX-t.startX)<3)return;t.moved=!0,e.currentTarget.setPointerCapture(e.pointerId)}c.current=!0,O(e.clientX,`auto`)}},onPointerUp:e=>{s.current.active=!1,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),window.setTimeout(()=>{c.current=!1},0)},onPointerCancel:()=>{s.current.active=!1,c.current=!1},onClick:n=>{if(c.current)return;let r=n.target.closest(`[data-timeline-index]`)?.dataset.timelineIndex,i=r==null?null:Number(r),a=i==null||!Number.isInteger(i)?void 0:e[i];if(a){t(a,`smooth`);return}O(n.clientX,`smooth`)},children:e.map((e,t)=>{let n=`timeline-tooltip-${e.id}`;return(0,R.jsx)(`span`,{className:`t-tt-wrap session-timeline-item min-w-0`,children:(0,R.jsx)(`button`,{type:`button`,"data-timeline-index":t,"aria-current":t===d?`location`:void 0,"aria-describedby":p?.entryId===e.id?n:void 0,"aria-label":`Go to ${e.tooltip}`,className:`t-tt-trigger session-timeline-segment h-full w-full rounded-[3px] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--console-text)] ${sc[e.kind]}`,onPointerEnter:t=>E(e,t.currentTarget,`pointer`),onPointerLeave:()=>D(e.id),onFocus:t=>E(e,t.currentTarget,`focus`),onBlur:()=>D(e.id)})},e.id)})})}),h.left&&(0,R.jsx)(`button`,{type:`button`,"aria-label":`Scroll timeline left`,className:`absolute inset-y-0 left-0 z-10 flex w-8 items-center justify-start bg-[linear-gradient(to_right,#fff_55%,transparent)] pl-0.5 text-[var(--console-muted)] hover:text-[var(--console-text)] focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-[var(--console-text)]`,onClick:()=>ne(-1),children:(0,R.jsx)(ee,{size:14,"aria-hidden":`true`})}),h.right&&(0,R.jsx)(`button`,{type:`button`,"aria-label":`Scroll timeline right`,className:`absolute inset-y-0 right-0 z-10 flex w-8 items-center justify-end bg-[linear-gradient(to_left,#fff_55%,transparent)] pr-0.5 text-[var(--console-muted)] hover:text-[var(--console-text)] focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-[var(--console-text)]`,onClick:()=>ne(1),children:(0,R.jsx)(C,{size:14,"aria-hidden":`true`})})]}),_&&(0,R.jsxs)(`div`,{"data-testid":`session-timeline-minimap`,role:`scrollbar`,"aria-controls":`session-timeline-viewport`,"aria-orientation":`horizontal`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(_.start/(1-_.size)*100),"aria-label":`Timeline scroll position`,tabIndex:0,className:`session-timeline-minimap relative mt-2 h-2.5 cursor-pointer touch-none select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--console-text)]`,onKeyDown:T,onPointerDown:e=>{if(e.button!==0)return;let t=e.currentTarget.getBoundingClientRect();if(t.width<=0)return;let n=(e.clientX-t.left)/t.width,r=n>=_.start&&n<=_.start+_.size?n-_.start:_.size/2;u.current={pointerId:e.pointerId,grabOffset:r},e.currentTarget.setPointerCapture(e.pointerId),w(n,r)},onPointerMove:e=>{let t=u.current;if(!t||t.pointerId!==e.pointerId)return;let n=e.currentTarget.getBoundingClientRect();n.width<=0||w((e.clientX-n.left)/n.width,t.grabOffset)},onPointerUp:e=>{u.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId)},onPointerCancel:()=>{u.current=null},children:[(0,R.jsx)(`canvas`,{ref:l,"aria-hidden":`true`,className:`absolute inset-0 h-full w-full`}),(0,R.jsx)(`div`,{"data-testid":`session-timeline-minimap-window`,className:`session-timeline-minimap-window absolute inset-y-0`,style:{left:`${_.start*100}%`,width:`${_.size*100}%`}})]}),p&&(0,rc.createPortal)((0,R.jsx)(`span`,{ref:a,id:p.id,role:`tooltip`,className:`t-tt session-timeline-floating-tooltip console-mono text-[11px]`,style:{left:p.anchorX,top:p.top},children:p.text}),document.body)]})})}function mc({anchorId:e,behavior:t,prepareAnchor:n,isCurrent:r}){if(typeof document>`u`)return;let i=document.getElementById(e);if(!i&&n){n();let a=0,o=()=>{if(r()){if(i=document.getElementById(e),i){i.scrollIntoView({behavior:t,block:`center`});return}a+=1,a<8&&requestAnimationFrame(o)}};requestAnimationFrame(o);return}i&&i.scrollIntoView({behavior:t,block:`center`})}function hc(e,t){if(!wt())return t();let n=performance.now(),r=t(),i=performance.now();return Dt({id:e,source:`custom-timing`,phase:`measure`,actualDuration:Math.round((i-n)*100)/100,baseDuration:0,startTime:n,commitTime:i}),r}function gc({session:e,highlightQuery:t}){let n=(e.slug||``).split(`/`)[0]||H.getDefaultAgentKey()||`claudecode`,r=(0,F.useMemo)(()=>hc(`SessionDetail:normalizeMessages`,()=>Ki(e.messages,n)),[e.messages,n]),i=(0,F.useMemo)(()=>hc(`SessionDetail:buildMessageDisplayModels`,()=>yi(r)),[r]),{toolAnchorIds:a,anchorMessageIndexes:o,summary:s}=(0,F.useMemo)(()=>hc(`SessionDetail:buildFileChangeSummary`,()=>ia(i)),[i]),c=(0,F.useMemo)(()=>hc(`SessionDetail:buildSessionDetailToc`,()=>di(i)),[i]),[l,u]=(0,F.useState)(()=>new Set(c.filterIds)),[d,f]=(0,F.useState)(null),p=(0,F.useMemo)(()=>[...c.filterIds].toSorted().join(`|`),[c.filterIds]),m=(0,F.useMemo)(()=>[...l].toSorted().join(`|`),[l]),h=(0,F.useMemo)(()=>hc(`SessionDetail:filterSessionMessages`,()=>hi(i,l)),[i,l]),g=(0,F.useRef)(null),_=(0,F.useRef)(0),v=(0,F.useMemo)(()=>hc(`SessionDetail:buildAnchorListIndexes`,()=>{let e=new Map;return h.forEach((t,n)=>{e.set(t.index,n)}),e}),[h]),y=(0,F.useMemo)(()=>hc(`SessionDetail:mergeFileActivitySummary`,()=>aa(e.file_activity,s)),[e.file_activity,s]),b=(0,F.useMemo)(()=>Xo(h,a),[h,a]),x=(0,F.useCallback)((e,t,n=`smooth`)=>{let r=_.current+1;_.current=r;let i=t==null?void 0:v.get(t);mc({anchorId:e,behavior:n,prepareAnchor:i==null?void 0:()=>g.current?.scrollToIndex(i),isCurrent:()=>_.current===r})},[v]),S=(0,F.useCallback)(e=>{x(e,o.get(e))},[o,x]);return(0,F.useEffect)(()=>{u(new Set(c.filterIds))},[p,c.filterIds]),i.length===0?(0,R.jsx)(`div`,{"data-testid":`session-detail`,className:`mx-auto max-w-4xl rounded-sm border border-[var(--console-border)] bg-white p-6 text-sm text-[var(--console-muted)]`,children:`当前会话暂无可展示的消息内容。`}):(0,R.jsxs)(`div`,{"data-testid":`session-detail`,className:`mx-auto w-full max-w-[1440px] space-y-8 px-2 md:px-4 animate-in fade-in slide-in-from-bottom-2 duration-300`,children:[(0,R.jsx)(_c,{summary:typeof e.summary_files==`string`?e.summary_files:void 0}),(0,R.jsxs)(`div`,{className:`grid gap-6 min-[1025px]:grid-cols-[240px_minmax(0,1fr)] min-[1025px]:items-start min-[1280px]:grid-cols-[220px_minmax(0,1fr)]`,children:[(0,R.jsx)(tc,{toc:c,fileChangeSummary:y,onOpen:f}),(0,R.jsx)(nc,{openPanel:d,toc:c,fileChangeSummary:y,baseDirectory:e.directory,selectedFilters:l,onClose:()=>f(null),onToggle:e=>u(t=>fa(t,e,c)),onJumpToAnchor:e=>{f(null),S(e)}}),(0,R.jsx)(ma,{toc:c,fileChangeSummary:y,baseDirectory:e.directory,selectedFilters:l,onToggle:e=>u(t=>fa(t,e,c)),onJumpToAnchor:S}),(0,R.jsx)(`div`,{className:`flex min-w-0 flex-col gap-8`,children:h.length>0?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(pc,{entries:b,onNavigate:(e,t)=>x(e.anchorId,e.messageIndex,t)}),(0,R.jsx)(kt,{id:`MessageList`,detail:{messages:h.length,virtualized:h.length>80},children:(0,R.jsx)(Cs,{messages:h,toolAnchorIds:a,sessionAgentKey:n,baseDirectory:e.directory,highlightQuery:t,apiRef:g},`${e.id}:${m}`)})]}):(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-6 text-sm text-[var(--console-muted)]`,children:`当前筛选条件下暂无可展示的消息内容。`})})]}),(0,R.jsx)(ec,{session:e,toc:c})]})}function _c({summary:e,defaultExpanded:t=!1}){let n=typeof e==`string`?e.trim():``,[r,i]=(0,F.useState)(t);return n?(0,R.jsxs)(`section`,{className:`rounded-sm border border-[var(--console-border)] bg-white shadow-[0_1px_2px_rgba(15,23,42,0.04)]`,children:[(0,R.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 px-4 py-3 text-left`,onClick:()=>i(e=>!e),children:[(0,R.jsxs)(`span`,{className:`console-mono inline-flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.16em] text-[var(--console-text)]`,children:[(0,R.jsx)(g,{className:`size-3.5 text-[var(--console-accent)]`}),`Session Summary`]}),r?(0,R.jsx)(M,{className:`size-3.5 text-[var(--console-muted)]`}):(0,R.jsx)(w,{className:`size-3.5 text-[var(--console-muted)]`})]}),r?(0,R.jsx)(`div`,{className:`border-t border-[var(--console-border)] px-4 py-4`,children:(0,R.jsx)(`div`,{className:`console-markdown text-sm leading-relaxed text-[var(--console-text)]`,children:(0,R.jsx)(ri,{text:n})})}):null]}):null}var vc=[{id:`1`,roleWidth:`w-14`,timeWidth:`w-20`,bodyWidths:[`w-full`,`w-10/12`,`w-7/12`]},{id:`2`,roleWidth:`w-16`,timeWidth:`w-24`,bodyWidths:[`w-9/12`,`w-7/12`]},{id:`3`,roleWidth:`w-14`,timeWidth:`w-16`,bodyWidths:[`w-full`,`w-11/12`,`w-8/12`,`w-5/12`]},{id:`4`,roleWidth:`w-16`,timeWidth:`w-20`,bodyWidths:[`w-10/12`,`w-8/12`]},{id:`5`,roleWidth:`w-14`,timeWidth:`w-24`,bodyWidths:[`w-full`,`w-10/12`,`w-9/12`]}];function yc({className:e}){return(0,R.jsx)(`div`,{className:`rounded-sm bg-[var(--console-border)] ${e}`})}function bc(){return(0,R.jsxs)(`div`,{className:`mx-auto flex min-h-full w-full max-w-5xl flex-col gap-8 px-2 md:px-4`,children:[(0,R.jsx)(`div`,{className:`flex flex-1 flex-col gap-8`,children:vc.map(e=>(0,R.jsx)(`article`,{className:`w-full border-l-2 border-[var(--console-thread)] pl-4 pr-3 md:pr-5`,children:(0,R.jsxs)(`div`,{className:`flex gap-4`,children:[(0,R.jsx)(`div`,{className:`shrink-0 pt-1`,children:(0,R.jsx)(`div`,{className:`flex size-8 items-center justify-center rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)]`,children:(0,R.jsx)(`div`,{className:`size-3.5 rounded-sm bg-[var(--console-border-strong)] animate-pulse`})})}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(yc,{className:`${e.roleWidth} h-3 animate-pulse`}),(0,R.jsx)(yc,{className:`${e.timeWidth} h-2.5 animate-pulse`})]}),(0,R.jsx)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white p-4 shadow-[0_1px_2px_rgba(15,23,42,0.04)]`,children:(0,R.jsx)(`div`,{className:`space-y-2`,children:e.bodyWidths.map(t=>(0,R.jsx)(yc,{className:`${t} h-3 animate-pulse`},`${e.id}-${t}`))})})]})]})},e.id))}),(0,R.jsx)(`div`,{className:`min-h-24 flex-1 rounded-sm border border-[var(--console-border)] bg-white/60 animate-pulse`})]})}var xc={recent:`Recent`,title:`Title`,user_message:`User message`,assistant_reply:`Assistant reply`,tool_output:`Tool output`,file_path:`File path`};function Sc(e){return e.replaceAll(`&`,`&`).replaceAll(`<`,`<`).replaceAll(`>`,`>`).replaceAll(`"`,`"`).replaceAll(`'`,`'`).replaceAll(`<mark>`,`<mark>`).replaceAll(`</mark>`,`</mark>`)}function Cc({query:e,state:t,agentNameMap:n,agents:r,projects:i,filters:a,onChangeFilters:o,onOpenResult:s,onRetry:c,selectedIndex:l,registerResultRef:u}){let d=t.status===`loaded`?t.results:[],f=(0,R.jsx)(Xt,{agents:r,projects:i,filters:a,onChangeFilters:o});return t.status===`loading`?(0,R.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[f,(0,R.jsx)(`p`,{className:`sr-only`,"aria-live":`polite`,children:`Searching…`}),(0,R.jsx)(`div`,{className:`grid gap-3`,children:Array.from({length:4}).map((e,t)=>(0,R.jsxs)(`div`,{className:`animate-pulse rounded-sm border border-[var(--console-border)] bg-white/80 p-4 motion-reduce:animate-none`,children:[(0,R.jsx)(`div`,{className:`h-3 w-32 rounded bg-[var(--console-surface-muted)]`}),(0,R.jsx)(`div`,{className:`mt-3 h-4 w-2/3 rounded bg-[var(--console-surface-muted)]`}),(0,R.jsx)(`div`,{className:`mt-2 h-3 w-full rounded bg-[var(--console-surface-muted)]`}),(0,R.jsx)(`div`,{className:`mt-1 h-3 w-5/6 rounded bg-[var(--console-surface-muted)]`})]},t))})]}):t.status===`failed`?(0,R.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[f,(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-error-border)] bg-[var(--console-error-bg)] p-6`,"aria-live":`polite`,children:[(0,R.jsx)(`h2`,{className:`console-mono text-sm font-semibold text-[var(--console-error)]`,children:`Search Failed`}),(0,R.jsxs)(`p`,{className:`console-mono mt-2 break-words text-xs text-[var(--console-error)]`,children:[t.error,`. Check the server connection, then try again.`]}),(0,R.jsx)(`button`,{type:`button`,onClick:c,className:`console-mono mt-4 rounded-sm border border-[var(--console-error-border)] bg-white px-3 py-1.5 text-xs font-semibold text-[var(--console-error)] transition-colors hover:bg-[var(--console-error-bg)] focus-visible:ring-2 focus-visible:ring-[var(--console-error)] focus-visible:ring-offset-2 focus-visible:outline-none`,children:`Retry Search`})]})]}):d.length===0?(0,R.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[f,(0,R.jsxs)(`div`,{className:`rounded-sm border border-[var(--console-border)] bg-white/80 p-6`,children:[(0,R.jsx)(`h2`,{className:`console-mono text-sm font-semibold text-[var(--console-text)]`,children:e?`No matches`:`No recent sessions`}),e?(0,R.jsxs)(`p`,{className:`console-mono mt-2 text-xs text-[var(--console-muted)]`,children:[`Query: `,e]}):null]})]}):(0,R.jsxs)(`div`,{className:`grid gap-3`,children:[f,(0,R.jsx)(`div`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:`Navigate j k · Open Enter · Exit Esc`}),d.map((t,r)=>{let i=t.agentName.toLowerCase(),a=n.get(i)??t.agentName,o=`${t.agentName}/${t.session.id}`;return(0,R.jsxs)(h,{ref:e=>u(o,e),to:`/${i}/${t.session.id}`,state:{searchQuery:e},onClick:s,className:`rounded-sm border bg-white/85 p-4 transition-colors hover:border-[var(--console-border-strong)] hover:bg-white focus-visible:ring-2 focus-visible:ring-[var(--console-accent)] focus-visible:ring-offset-2 focus-visible:outline-none ${r===l?`border-[var(--console-border-strong)]`:`border-[var(--console-border)]`}`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-1.5 py-0.5 text-[10px] uppercase text-[var(--console-muted)]`,children:a}),(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-white px-1.5 py-0.5 text-[10px] uppercase text-[var(--console-muted)]`,children:xc[t.matchType]}),(0,R.jsx)(`span`,{className:`console-mono text-[11px] text-[var(--console-muted)]`,children:t.session.directory})]}),(0,R.jsx)(`h2`,{className:`console-mono mt-3 text-sm font-semibold text-[var(--console-text)]`,children:t.session.title}),(0,R.jsx)(Wt,{tags:t.session.smart_tags,className:`mt-2`}),(0,R.jsx)(`p`,{className:`console-mono mt-2 text-xs leading-6 text-[var(--console-muted)] [&_mark]:bg-[var(--console-accent)] [&_mark]:px-0.5 [&_mark]:text-white`,dangerouslySetInnerHTML:{__html:Sc(t.snippet||t.session.title)}})]},o)})]})}function wc({loading:e,error:t,viewState:n,detailHighlightQuery:r,agents:i,agentNameMap:a,projects:o,sessionIndexes:s,dashboard:c,sessionDetail:l,projectController:u,search:d,bookmarks:f}){let p=(0,F.useMemo)(()=>i.filter(e=>e.count>0).map(e=>({key:e.name.toLowerCase(),name:e.displayName,icon:e.icon,count:e.count})),[i]),m=n.mode===`project`?z({kind:n.activeProjectKind,key:n.activeProjectKey}):null,h=(0,F.useMemo)(()=>o.find(e=>m===z(jt(e)))??null,[m,o]),g=m?s.byLandingProjectIdentityKey.get(m)??[]:[],_=Tc(d,s.projectOptions);return e?(0,R.jsx)(bc,{}):d.searchMode?(0,R.jsx)(kt,{id:`SearchResultsPanel`,detail:{results:d.searchResults.length,loading:d.searchLoading},children:(0,R.jsx)(Cc,{query:d.activeSearchQuery,state:d.searchState,agentNameMap:a,agents:i,projects:_,filters:d.searchFilters,onChangeFilters:d.setSearchFilters,onOpenResult:d.closeSearch,onRetry:d.retrySearch,selectedIndex:d.selectedSearchIndex,registerResultRef:(e,t)=>{t?d.searchResultRefs.current.set(e,t):d.searchResultRefs.current.delete(e)}})}):t?(0,R.jsx)(`div`,{className:`mx-auto max-w-4xl rounded-sm border border-[var(--console-error-border)] bg-[var(--console-error-bg)] p-6 text-sm text-[var(--console-error)]`,children:t}):n.mode===`root`?c?(0,R.jsx)(kt,{id:`Dashboard`,detail:{sessions:c.totals.sessions,projects:o.length},children:(0,R.jsx)(Ir,{data:c,projects:o,bookmarkedSessions:f.bookmarkedSessions,isBookmarked:f.isSessionBookmarked,onToggleBookmark:(e,t)=>{if(`agentName`in e){f.toggleSessionBookmark(e,t??e.agentName.toLowerCase());return}f.toggleBookmark(e)}})}):(0,R.jsx)(Ur,{type:`global`,sessions:s.landingSessions,agentItems:p,isBookmarked:f.isSessionBookmarked,onToggleBookmark:e=>f.toggleSessionBookmark(e,e.agentKey)}):n.mode===`projects`?(0,R.jsx)(Yr,{projects:o}):n.mode===`project`?(0,R.jsx)($r,{project:h,projectKey:n.activeProjectKey,dashboard:u.projectDashboard,loading:u.projectDashboardLoading,error:u.projectDashboardError,sessions:g,activeAgent:u.selectedProjectAgent,onChangeAgent:u.setSelectedProjectAgent,isBookmarked:f.isSessionBookmarked,onToggleSessionBookmark:f.toggleSessionBookmark}):n.mode===`agent`?(0,R.jsx)(Ur,{type:`agent`,sessions:s.byLandingAgent.get(n.activeAgentKey)??[],agentItems:p,activeAgentKey:n.activeAgentKey,isBookmarked:f.isSessionBookmarked,onToggleBookmark:e=>f.toggleSessionBookmark(e,e.agentKey)}):n.mode===`session`?l.sessionLoading?(0,R.jsx)(bc,{}):l.sessionError||!l.session?(0,R.jsx)(Ur,{type:`missing-session`,sessions:s.byLandingAgent.get(n.activeAgentKey)??[],agentItems:p,activeAgentKey:n.activeAgentKey,attemptedSessionSlug:n.activeSessionSlug,isBookmarked:f.isSessionBookmarked,onToggleBookmark:e=>f.toggleSessionBookmark(e,e.agentKey)}):(0,R.jsx)(kt,{id:`SessionDetail`,detail:{messages:l.session.messages.length,session:l.session.id},children:(0,R.jsx)(gc,{session:l.session,highlightQuery:r})}):n.mode===`missingAgent`?(0,R.jsx)(Ur,{type:`missing-agent`,sessions:s.landingSessions,agentItems:p,attemptedAgentKey:n.attemptedKey,isBookmarked:f.isSessionBookmarked,onToggleBookmark:e=>f.toggleSessionBookmark(e,e.agentKey)}):(0,R.jsx)(`div`,{className:`text-sm text-[var(--console-muted)]`,children:`Invalid route.`})}function Tc(e,t){if(!e.usesServerSearch)return t;let n=new Map,r=e.searchLoading?[]:e.searchResults;for(let e of r){let t=e.session.project_identity;if(!t?.key)continue;let r=z(t),i=n.get(r);i?i.count+=1:n.set(r,{key:r,identityKind:t.kind,identityKey:t.key,label:t.displayName||e.session.directory,count:1,showCount:!1})}let i=e.searchFilters.project?z(e.searchFilters.project):void 0,a=i?t.find(e=>e.key===i):void 0;return i&&a&&!n.has(i)&&n.set(a.key,{...a,count:0,showCount:!1}),[...n.values()].toSorted((e,t)=>t.count-e.count).slice(0,8)}var Ec=`codesesh.shortcuts-hint-dismissed`;function Dc(){let e=b(),{appConfig:t,refresh:n}=Dn(),{agents:r,validAgentKeys:i,agentNameMap:a,refresh:o}=On(),{sessions:s,refresh:c,applyLiveEvent:l}=An(),{projects:u,refresh:d}=jn(),{loading:f,error:p}=Mn({refreshAppConfig:n,refreshAgents:o,refreshSessions:c,refreshProjects:d}),[m,g]=(0,F.useState)(`agents`),[_,v]=(0,F.useState)(null),{scanStatus:y,setScanStatus:x}=Lt(),[S,C]=(0,F.useState)(null),[w,T]=(0,F.useState)(!1),[ee,E]=(0,F.useState)(!0),[D,te]=(0,F.useState)(!1),O=ne(),k=(0,F.useMemo)(()=>It(O.pathname,i),[O.pathname,i]),re=zt(k),{session:ie,sessionError:ae,refresh:A}=re;(0,F.useEffect)(()=>{L(`route.change`,{path:O.pathname,mode:k.mode,agent:k.activeAgentKey,session:k.activeSessionSlug})},[O.pathname,k.mode,k.activeAgentKey,k.activeSessionSlug]),(0,F.useEffect)(()=>{if(k.mode===`projects`||k.mode===`project`){g(`projects`),k.mode===`project`&&v({kind:k.activeProjectKind,key:k.activeProjectKey});return}(k.mode===`agent`||k.mode===`missingAgent`)&&g(`agents`)},[k]);let j=(0,F.useMemo)(()=>cn(s,r),[s,r]),oe=pn(j),{draftSearchQuery:se,activeSearchQuery:M,searchMode:ce,searchState:le,searchResults:de,searchLoading:fe,selectedSearchIndex:me,searchInputRef:he,setDraftSearchQuery:ge,setSelectedSearchIndex:_e,openSearch:ve,submitSearch:ye,closeSearch:be,refresh:xe}=oe,Se=ce,N=Se?M:typeof O.state==`object`&&O.state!==null&&`searchQuery`in O.state&&typeof O.state.searchQuery==`string`?O.state.searchQuery:``,Ce=wn(s),{bookmarkedSessions:we,isSessionBookmarked:Te,toggleBookmark:Ee,toggleSessionBookmark:De}=Ce,Oe=k.activeAgentKey,ke=k.mode===`project`?k.activeProjectKind:null,Ae=k.mode===`project`?k.activeProjectKey:null,je=(0,F.useMemo)(()=>ke&&Ae?{kind:ke,key:Ae}:null,[ke,Ae]),Me=je?z(je):null,{dashboard:Ne,refresh:Pe}=Tn(t),Fe=En(t,ke,Ae,Me),{selectedProjectAgent:Ie,refresh:Le}=Fe,Re=(0,F.useMemo)(()=>k.mode===`session`?j.byRouteKey.get(en(k.activeAgentKey,k.activeSessionSlug))??null:null,[j,k]),ze=(k.mode===`session`&&ie?.id===k.activeSessionSlug?ie:null)?.project_identity??Re?.project_identity??null,Be=m===`projects`?je??(k.mode===`session`?ze:_):null,Ve=Be?z(Be):null,He=(0,F.useMemo)(()=>Oe?j.byAgent.get(Oe)??[]:[],[Oe,j]),Ue=(0,F.useMemo)(()=>Ve?Ie?j.byProjectAgentKey.get(nn(Ve,Ie))??[]:j.byProjectIdentityKey.get(Ve)??[]:[],[Ie,Ve,j]),P=m===`projects`?Ue:He,We=(0,F.useMemo)(()=>ln(P),[P]),Ge=(0,F.useMemo)(()=>P.length===0?new Set:new Set(P.filter(e=>Te($t(e),e.id)).map(e=>e.id)),[Te,P]),Ke=(0,F.useCallback)(t=>{C(t.id),e(`/${t.slug}`)},[e]),qe=(0,F.useCallback)(e=>{De(e,$t(e))},[De]),Je=(0,F.useCallback)(t=>{C(t);let n=We.byId.get(t);n&&e(`/${n.slug}`)},[e,We]),Ye=Kn(y),Xe=y?.active===!0,{liveNotice:I}=Nn({appConfig:t,viewState:k,applySessionsLiveEvent:l,refreshAgents:o,refreshSessions:c,refreshProjects:d,refreshDashboard:Pe,refreshProjectDashboard:Le,refreshSessionDetail:A,refreshSearch:xe,setScanStatus:x});(0,F.useEffect)(()=>{try{E(window.localStorage.getItem(Ec)===`1`)}catch{E(!0)}},[]),(0,F.useEffect)(()=>{if(!Se){if(k.mode===`session`){C(k.activeSessionSlug);return}if(k.mode===`agent`){C(null);return}C(null)}},[Se,k.mode,k.activeSessionSlug,P]);let Ze=(0,F.useMemo)(()=>r.find(e=>e.name.toLowerCase()===Oe)??null,[Oe,r]),Qe=(0,F.useMemo)(()=>u.find(e=>Me===z(jt(e)))??null,[Me,u]),$e=(0,F.useMemo)(()=>u.find(e=>Ve===z(jt(e)))??null,[u,Ve]),et=Bn({viewState:k,browseBy:m,isSearchMode:Se,searchSubtitle:le.status===`failed`?`Search failed for "${M}"`:Gn(M,fe,de.length),dashboard:Ne,projects:u,sessionCount:s.length,activeProject:Qe,activeAgent:Ze,sidebarSessionCount:P.length,session:ie,sessionError:ae,selectedProjectIdentity:Be,selectedProject:$e}),tt=(0,R.jsx)(wc,{loading:f,error:p,viewState:k,detailHighlightQuery:N,agents:r,agentNameMap:a,projects:u,sessionIndexes:j,dashboard:Ne,sessionDetail:re,projectController:Fe,search:oe,bookmarks:Ce});function nt(){E(!0);try{window.localStorage.setItem(Ec,`1`)}catch{}}function rt(t){if(!(t===`projects`&&Xe)){if(g(t),C(null),t===`projects`){let t=ze??(k.mode===`session`?null:_);e(t?Ft(t):`/projects`);return}e(`/`)}}return Fn({viewState:k,browseBy:m,navigate:e,activeAgentKey:Oe,sidebarSessions:P,sidebarSessionLookup:We,selectedSidebarSessionId:S,setSelectedSidebarSessionId:C,selectedProjectNavigationIdentity:Be,shortcutHelpOpen:w,setShortcutHelpOpen:T,dismissShortcutHint:nt,isSearchMode:Se,activeSearchQuery:M,searchResults:de,selectedSearchIndex:me,setSelectedSearchIndex:_e,setDraftSearchQuery:ge,openSearch:ve,closeSearch:be}),(0,R.jsxs)(`div`,{className:`console-ui flex h-screen flex-col overflow-hidden bg-[var(--console-bg)] text-[var(--console-text)]`,children:[(0,R.jsx)(`header`,{className:`shrink-0 border-b border-[var(--console-border)] bg-white/85 backdrop-blur-sm`,children:(0,R.jsxs)(`div`,{className:`grid min-h-14 grid-cols-[auto_1fr] items-center gap-3 px-4 py-2 sm:grid-cols-[auto_1fr_auto] sm:py-0`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,"aria-expanded":!D,"aria-label":D?`Expand sidebar`:`Collapse sidebar`,title:D?`Expand sidebar`:`Collapse sidebar`,onClick:()=>te(e=>!e),className:`hidden rounded-sm border border-[var(--console-border)] bg-white p-1.5 text-[var(--console-muted)] transition-colors hover:bg-[var(--console-surface-muted)] hover:text-[var(--console-text)] lg:inline-flex`,children:D?(0,R.jsx)(pe,{className:`size-4`}):(0,R.jsx)(ue,{className:`size-4`})}),(0,R.jsxs)(h,{to:`/`,className:`flex items-center gap-2 text-[var(--console-text)]`,children:[(0,R.jsx)(`img`,{src:`/logo.svg?v=3`,alt:`CodeSesh`,className:`h-6 w-6 rounded-sm`}),(0,R.jsx)(`span`,{className:`console-mono text-sm font-semibold uppercase tracking-[0.05em]`,children:`CodeSesh`})]})]}),(0,R.jsxs)(`form`,{className:`order-3 col-span-2 flex w-full items-center justify-center gap-2 sm:order-none sm:col-span-1 sm:mx-auto sm:max-w-[560px]`,onSubmit:e=>{e.preventDefault(),ye()},children:[(0,R.jsxs)(`label`,{className:`flex min-w-0 flex-1 items-center rounded-sm border border-[var(--console-border)] bg-white px-2 py-1 focus-within:border-[var(--console-border-strong)] focus-within:ring-2 focus-within:ring-[var(--console-accent)] focus-within:ring-offset-2`,children:[(0,R.jsx)(`span`,{className:`sr-only`,children:`Search Sessions`}),(0,R.jsx)(`input`,{ref:he,type:`search`,name:`session-search`,autoComplete:`off`,value:se,onChange:e=>ge(e.target.value),placeholder:`Search sessions… /`,className:`console-mono w-full min-w-0 bg-transparent text-xs text-[var(--console-text)] outline-none placeholder:text-[var(--console-muted)]`})]}),(0,R.jsx)(`button`,{type:`submit`,className:`console-mono rounded-sm border border-[var(--console-border-strong)] bg-[var(--console-surface-muted)] px-3 py-1 text-xs text-[var(--console-text)] transition-colors hover:bg-white focus-visible:ring-2 focus-visible:ring-[var(--console-accent)] focus-visible:ring-offset-2 focus-visible:outline-none`,children:`Search`})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,R.jsxs)(`button`,{type:`button`,onClick:()=>{T(!0),nt()},className:`console-mono rounded-sm border border-[var(--console-border)] bg-white px-2 py-1 text-xs text-[var(--console-text)] transition-colors hover:bg-[var(--console-surface-muted)]`,title:`Show keyboard shortcuts`,children:[`?`,(0,R.jsx)(`span`,{className:`hidden sm:inline`,children:` Shortcuts`})]}),Wn(t)?(0,R.jsx)(`span`,{className:`console-mono hidden rounded-sm border border-[var(--console-border)] bg-white px-2 py-1 text-xs text-[var(--console-text)] md:inline-flex`,title:`Time window applied to agent counts, dashboard, and session list`,children:Wn(t)}):null,(0,R.jsxs)(`span`,{className:`console-mono hidden rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-xs text-[var(--console-muted)] sm:inline-flex`,children:[`v`,`0.13.0`]})]})]})}),(0,R.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,R.jsx)(lr,{model:{sidebarCollapsed:D,browseBy:m,isScanActive:Xe,viewState:k,agents:r,activeAgentKey:Oe,scanStatus:y,projects:u,selectedProjectNavigationId:Ve,loading:f,bookmarkedSessions:we,sidebarSessions:P,selectedSidebarSessionId:S,bookmarkedSidebarSessionIds:Ge},actions:{onChangeBrowseBy:rt,onSelectProject:v,onToggleBookmark:Ee,onSelectFlatSidebarSession:Ke,onToggleSidebarSessionBookmark:qe,onSelectTreeSidebarSession:Je}}),(0,R.jsxs)(`main`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,R.jsx)(`section`,{className:`shrink-0 border-b border-[var(--console-border)] bg-white/70 px-4 py-4 backdrop-blur-sm md:px-8`,children:(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`nav`,{"aria-label":`Breadcrumb`,className:`console-mono mb-2 flex flex-wrap items-center gap-1 text-[11px] text-[var(--console-muted)]`,children:et.breadcrumbs.map((e,t)=>(0,R.jsxs)(`span`,{className:`flex items-center gap-1`,children:[e.to?(0,R.jsx)(h,{to:e.to,className:`transition-colors hover:text-[var(--console-text)]`,children:e.label}):(0,R.jsx)(`span`,{className:`text-[var(--console-text)]`,children:e.label}),t<et.breadcrumbs.length-1?(0,R.jsx)(`span`,{children:`/`}):null]},`${e.label}-${t}`))}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`console-mono rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-1.5 py-0.5 text-[10px] font-bold uppercase text-[var(--console-muted)]`,children:k.mode===`session`?`Session`:k.mode===`root`?`Dashboard`:k.mode===`projects`?`Projects`:k.mode===`project`?`Project`:`Landing`}),(0,R.jsx)(`h1`,{className:`console-mono text-xl font-semibold tracking-tight text-[var(--console-text)]`,children:et.title})]}),(0,R.jsx)(`div`,{className:`console-mono mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-[var(--console-muted)]`,children:et.subtitle}),(0,R.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[ee?null:(0,R.jsxs)(`div`,{className:`console-mono inline-flex items-center gap-2 rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[11px] text-[var(--console-text)]`,children:[(0,R.jsx)(`span`,{children:`Keyboard navigation available`}),(0,R.jsx)(`span`,{className:`rounded-sm border border-[var(--console-border)] bg-white px-1`,children:`?`}),(0,R.jsx)(`button`,{type:`button`,onClick:nt,className:`text-[var(--console-muted)] transition-colors hover:text-[var(--console-text)]`,"aria-label":`Dismiss keyboard shortcuts hint`,children:`×`})]}),!Se&&k.mode===`session`?(0,R.jsx)(`span`,{className:`console-mono inline-flex rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[11px] text-[var(--console-muted)]`,children:`Esc back`}):null,!Se&&k.mode===`session`&&ie?(0,R.jsx)(yt,{agentName:k.activeAgentKey,sessionId:ie.id,directory:ie.directory}):null]}),I?(0,R.jsx)(`p`,{className:`console-mono mt-2 inline-flex rounded-sm border border-[var(--console-border)] bg-[var(--console-surface-muted)] px-2 py-1 text-[11px] text-[var(--console-text)]`,children:I}):null,Ye&&k.mode===`root`?(0,R.jsx)(`p`,{className:`console-mono mt-2 inline-flex max-w-4xl rounded-sm border border-[var(--console-warning-border)] bg-[var(--console-warning-bg)] px-2 py-1 text-[11px] leading-relaxed text-[var(--console-warning)]`,children:Ye}):null]})}),(0,R.jsx)(`section`,{className:`console-scrollbar bg-grid min-h-0 flex-1 overflow-y-auto px-4 py-6 md:px-8`,children:(0,R.jsx)(pt,{children:(0,R.jsx)(kt,{id:`MainContent`,detail:{mode:k.mode,search:Se,sessions:s.length},children:tt})})})]})]}),(0,R.jsx)(dr,{open:w,onClose:()=>T(!1)})]})}Je(),We.createRoot(document.getElementById(`root`)).render((0,R.jsx)(F.StrictMode,{children:(0,R.jsx)(Se,{children:(0,R.jsx)(kt,{id:`App`,children:(0,R.jsx)(Dc,{})})})}));
|