@wrongstack/webui 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AgentRosterView-B_J6SvVF.js → AgentRosterView-BXURTwLP.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-BgZiiiDb.js → AnalyticsDashboard-yAGcObTd.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-CPuksIMN.js → AudienceMemoryPanel-BwtB_jYJ.js} +1 -1
- package/dist/assets/{ChangesView-CmZeNwbw.js → ChangesView-BgC27G9n.js} +1 -1
- package/dist/assets/{ChimeraReviewsView-CpfSkgQ2.js → ChimeraReviewsView-BZ3kmsEA.js} +1 -1
- package/dist/assets/{ChronicleDashboard-B6lhZGjz.js → ChronicleDashboard-DVor6J-y.js} +1 -1
- package/dist/assets/{CodeEditor-Daz1yqjF.js → CodeEditor-Dk2WJQks.js} +1 -1
- package/dist/assets/{CodeMap-D-H9FNUJ.js → CodeMap-CjWRQ37U.js} +1 -1
- package/dist/assets/{ConfirmModal-CjsZbvo3.js → ConfirmModal-C_KAUjBK.js} +1 -1
- package/dist/assets/{CronJobsPanel-DGKW_zwc.js → CronJobsPanel-CGq8lhRJ.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-Cn5bSfLv.js → DeadCodeScanPanel-CcPRcYm0.js} +1 -1
- package/dist/assets/{DebugDashboard-Uh9QLbEk.js → DebugDashboard-B-aDaDrO.js} +1 -1
- package/dist/assets/{DesignGalleryView-Da1QtI5b.js → DesignGalleryView-Ex3zW5ci.js} +1 -1
- package/dist/assets/{GoalView-BgVxzzzS.js → GoalView-CBDc5nCD.js} +1 -1
- package/dist/assets/{KanbanView-_JvZKFyI.js → KanbanView-azjPGLmM.js} +2 -2
- package/dist/assets/{MailboxDetailView-26bVSSbU.js → MailboxDetailView-BXW9zqle.js} +1 -1
- package/dist/assets/{MemoryDrawer-C5sEdVvj.js → MemoryDrawer-CyN_6CRo.js} +1 -1
- package/dist/assets/{MemoryManager-BqWzNt8w.js → MemoryManager-BLu0rLEm.js} +1 -1
- package/dist/assets/{ModelPicker-DqRzzv5J.js → ModelPicker-CXQR8UbH.js} +1 -1
- package/dist/assets/{ProcessMonitor-ygFLD5zk.js → ProcessMonitor-CBIQkbLx.js} +1 -1
- package/dist/assets/{PromptJournalView-B65KxlYi.js → PromptJournalView-C6O40uTv.js} +1 -1
- package/dist/assets/{QueuePanel-CJlIV0pX.js → QueuePanel-CutrvgTH.js} +1 -1
- package/dist/assets/{RefreshDebugView-CNovrSAn.js → RefreshDebugView-DDFD26EI.js} +1 -1
- package/dist/assets/{RequirementIntakeView-BnrQSVE_.js → RequirementIntakeView-BpFyFOlB.js} +1 -1
- package/dist/assets/{SageTabs-CJqOqiY7.js → SageTabs-Cx299O-q.js} +2 -2
- package/dist/assets/{SddFlowGraph-CNOyn5N9.js → SddFlowGraph-CJjawf9r.js} +1 -1
- package/dist/assets/{SddHub-mFjsa_Zl.js → SddHub-CmSlkvkM.js} +1 -1
- package/dist/assets/{SessionInspectView-MEmxIEzB.js → SessionInspectView-CtrlRlJu.js} +1 -1
- package/dist/assets/{SessionList-DmcQJmzw.js → SessionList-BWoK6Ro5.js} +1 -1
- package/dist/assets/{SessionsDashboard-BCYViJlx.js → SessionsDashboard-7C6Fj9pK.js} +1 -1
- package/dist/assets/{SetupScreen-BwnSJt7v.js → SetupScreen-IzaqHJ_O.js} +1 -1
- package/dist/assets/{SkillDetailView-ebz2dRUQ.js → SkillDetailView-C5nOcysX.js} +1 -1
- package/dist/assets/{TechStackView-DESDpUDA.js → TechStackView-DkNjeYPK.js} +1 -1
- package/dist/assets/{TerminalPanel-BiWnldbB.js → TerminalPanel-CTr-KAnH.js} +1 -1
- package/dist/assets/{chat-store-BcfvHUUj.js → chat-store-BbBGSliF.js} +1 -1
- package/dist/assets/i18n-tRUjoMoU.js +2 -0
- package/dist/assets/{index-TDhvFXb0.js → index-BnpuNJ9u.js} +7 -7
- package/dist/assets/{roster-ws-n_N7K9tX.js → roster-ws-B4xVrXos.js} +1 -1
- package/dist/assets/{stores-Cfei1ViB.js → stores-B7GcARdp.js} +1 -1
- package/dist/assets/{useWebSocket-AYEcpb1U.js → useWebSocket-L5s7ggJm.js} +1 -1
- package/dist/assets/{ws-client-C_IqS0t4.js → ws-client-BR51gfnV.js} +2 -2
- package/dist/index.html +8 -8
- package/dist/index.js +23 -20
- package/package.json +9 -9
- package/dist/assets/i18n-DBqM1FUM.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./ws-client-C_IqS0t4.js";import{i as n,t as r}from"./react-core-BNmTiJ-I.js";import{Ct as i,Da as a,Er as o,Fa as s,Gi as c,Jr as l,K as ee,Nt as u,Qn as te,Vt as ne,Xt as re,ci as d,ia as f,lt as p,ta as m,tn as ie,wi as h,xr as g}from"./vendor-BshlG0z-.js";import"./i18n-DBqM1FUM.js";import{t as _}from"./utils-BpBOwXlT.js";import{b as ae,x as oe}from"./index-TDhvFXb0.js";var v=e(n(),1),y=r();function b({status:e}){let{t}=s();return(0,y.jsxs)(`section`,{className:`flex flex-wrap gap-x-5 gap-y-1 border-b border-border/60 bg-primary/[0.025] px-4 py-1.5 font-mono text-[9px] text-muted-foreground`,title:e.chronicleDirectory,children:[(0,y.jsx)(`span`,{className:`font-sans font-semibold uppercase tracking-wider text-primary`,children:t(`activity:chroniclePipelineStrip.chronicleOwnership`)}),(0,y.jsxs)(`span`,{children:[`collect `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.pipeline.collection})]}),(0,y.jsxs)(`span`,{children:[`process `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.pipeline.processing})]}),(0,y.jsxs)(`span`,{children:[`serve `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.pipeline.serving})]}),(0,y.jsxs)(`span`,{children:[`PID `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.pid}),` · `,e.clients,` clients`]}),(0,y.jsxs)(`span`,{children:[`watcher`,` `,(0,y.jsx)(`b`,{className:_(e.watcher.active?`text-success`:`text-warning`),children:e.watcher.active?`active`:`inactive`}),` `,`· `,e.watcher.watchedFiles,` files`]}),(0,y.jsxs)(`span`,{children:[`store `,(0,y.jsx)(`b`,{className:`text-foreground`,children:x(e.pipeline.storage)})]}),e.mode===`inline`&&(0,y.jsx)(`span`,{className:`font-sans font-semibold text-warning`,children:t(`activity:chroniclePipelineStrip.inlineFallback`)})]})}function x(e){return e.replaceAll(`\\`,`/`).split(`/`).filter(Boolean).slice(-3).join(`/`)}var S=[`eventType`,`providerId`,`modelId`,`outcome`,`resourceKind`],C=864e5;function w(){return{limit:300,order:`desc`,from:new Date(Date.now()-C).toISOString()}}var se=[{id:`all`,labelKey:`activity:chronicle.signalAllSignals`,icon:(0,y.jsx)(a,{})},{id:`llm`,labelKey:`activity:chronicle.signalLlm`,icon:(0,y.jsx)(m,{})},{id:`agents`,labelKey:`activity:chronicle.signalAgents`,icon:(0,y.jsx)(f,{})},{id:`tools`,labelKey:`activity:chronicle.signalTools`,icon:(0,y.jsx)(i,{})},{id:`files`,labelKey:`activity:chronicle.signalFiles`,icon:(0,y.jsx)(l,{})},{id:`failures`,labelKey:`activity:chronicle.signalFailures`,icon:(0,y.jsx)(p,{})}];function T(){let{t:e}=s(),n=t(),[r,a]=(0,v.useState)([]),[c,u]=(0,v.useState)(null),[d,p]=(0,v.useState)({}),[g,x]=(0,v.useState)(w()),[C,T]=(0,v.useState)({text:``,path:``,providerId:``,modelId:``,sessionId:``}),[E,O]=(0,v.useState)(`all`),[N,F]=(0,v.useState)({total:0,scannedEvents:0,sourceFiles:0,invalidLines:0}),[I,pe]=(0,v.useState)(D),[L,R]=(0,v.useState)(!0),[z,B]=(0,v.useState)(null),[me,V]=(0,v.useState)(null),[H,he]=(0,v.useState)([]),[U,ge]=(0,v.useState)([]),[W,_e]=(0,v.useState)(null),G=(0,v.useRef)(g);G.current=g;let K=(0,v.useCallback)(e=>{if(!n.supportsCapability(`chronicle.query`)){R(!1),B(`Restart the backend once to activate Chronicle protocol support.`);return}if(R(!0),B(null),x(e),p({}),n.send({type:`chronicle.query`,payload:{query:e}}),n.supportsCapability(`chronicle.facets`))n.send({type:`chronicle.facets`,payload:{fields:[...S],query:e,limit:12}});else for(let t of S)n.send({type:`chronicle.facet`,payload:{field:t,query:e,limit:12}})},[n]),q=(0,v.useCallback)(()=>{n.supportsCapability(`chronicle.metrics`)&&(n.send({type:`chronicle.metrics`,payload:{view:`providers`}}),n.send({type:`chronicle.metrics`,payload:{view:`tasks`,limit:200}}))},[n]),J=(0,v.useCallback)(()=>{n.supportsCapability(`chronicle.status`)&&n.send({type:`chronicle.status`})},[n]);(0,v.useEffect)(()=>{let e=n.on(`chronicle.query_result`,e=>{e.type===`chronicle.query_result`&&(a(e.payload.events),F(e.payload),pe(e.payload.summary??D),R(!1))}),t=n.on(`chronicle.facet_result`,e=>{e.type===`chronicle.facet_result`&&p(t=>({...t,[e.payload.field]:e.payload.values}))}),r=n.on(`chronicle.facets_result`,e=>{e.type===`chronicle.facets_result`&&p(e.payload.values)}),i=n.on(`chronicle.error`,e=>{e.type===`chronicle.error`&&(B(e.payload.message),R(!1))}),o=n.on(`chronicle.graph_result`,e=>{e.type===`chronicle.graph_result`&&V(e.payload)}),s=n.on(`chronicle.metrics_result`,e=>{e.type===`chronicle.metrics_result`&&(e.payload.view===`providers`?he(e.payload.data):e.payload.view===`tasks`&&ge(e.payload.data))}),c=n.on(`chronicle.status_result`,e=>{e.type===`chronicle.status_result`&&_e(e.payload)});return K(G.current),q(),J(),()=>{e(),t(),r(),i(),o(),s(),c()}},[n,K,q,J]);let Y=(0,v.useMemo)(()=>r.filter(e=>ue(e,E)),[r,E]),X=oe(Y,25,E),Z=(0,v.useMemo)(()=>{let e=r.find(e=>e.eventType===`metrics.rollup`&&e.attributes?.signal===`runtime.health`)?.attributes?.stats;if(!e)return;let t=t=>e[t]?.last;return{eventLoop:{utilization:t(`eventLoop.utilization`),delayP95Ms:t(`eventLoop.delayP95Ms`)},memory:{heapUsedBytes:t(`memory.heapUsedBytes`)},chronicle:{pendingEvents:t(`chronicle.pendingEvents`),rejectedEvents:t(`chronicle.rejectedEvents`)}}},[r]),Q=(0,v.useMemo)(()=>{let e={};for(let t of U)e[t.status]=(e[t.status]??0)+1;let t=(e.completed??0)+(e.merged??0)+(e.failed??0)+(e.conflict??0),n=(e.completed??0)+(e.merged??0),r=[...U].sort((e,t)=>(t.endedAt??t.startedAt??``).localeCompare(e.endedAt??e.startedAt??``)).slice(0,8);return{counts:e,total:U.length,terminal:t,successRate:t>0?n/t*100:100,recent:r}},[U]),$=()=>K({...w(),...C.text?{text:C.text}:{},...C.path?{path:C.path}:{},...C.providerId?{providerId:C.providerId}:{},...C.modelId?{modelId:C.modelId}:{},...C.sessionId?{sessionId:C.sessionId}:{}}),ve=()=>{T({text:``,path:``,providerId:``,modelId:``,sessionId:``}),O(`all`),K(w())},ye=e=>{u(e),V(null),n.supportsCapability(`chronicle.graph`)&&n.send({type:`chronicle.graph`,payload:{seed:{eventId:e.eventId},hops:2,maxNodes:250}})};return(0,y.jsxs)(`div`,{className:`flex h-full min-h-0 bg-background`,"data-testid":`chronicle-dashboard`,children:[(0,y.jsxs)(`main`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,y.jsx)(`header`,{className:`border-b border-border/70 bg-gradient-to-r from-primary/[0.045] via-background to-background px-5 py-4`,children:(0,y.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(m,{className:`h-5 w-5 text-primary`}),(0,y.jsx)(`h1`,{className:`text-lg font-semibold tracking-tight`,children:e(`activity:chronicle.codingIntelligence`)}),(0,y.jsx)(`span`,{className:`rounded-full border border-primary/20 bg-primary/10 px-2 py-0.5 text-[9px] font-semibold tracking-wider text-primary`,children:e(`activity:chronicle.chronicle`)})]}),(0,y.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e(`activity:chronicle.llmAgentToolAndFileEvidence`)})]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{className:_(`h-2 w-2 rounded-full`,z?`bg-destructive`:L?`animate-pulse bg-warning`:`bg-success`)}),(0,y.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:L?`Reading journal`:z?`Unavailable`:`Live evidence`}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>{K(g),q(),J()},className:`ml-2 rounded-md border border-border bg-card p-2 hover:bg-muted`,title:e(`activity:chronicle.refreshEvidence`),children:(0,y.jsx)(ie,{className:_(`h-4 w-4`,L&&`animate-spin`)})})]})]})}),(0,y.jsxs)(`section`,{className:`grid grid-cols-2 border-b border-border/70 xl:grid-cols-6`,children:[(0,y.jsx)(j,{icon:(0,y.jsx)(m,{}),label:e(`activity:chronicle.llmRequests`),value:I.logicalRequests,detail:`${I.modelAttempts} attempts · ${I.providers} providers · ${I.models} models`}),(0,y.jsx)(j,{icon:(0,y.jsx)(f,{}),label:e(`activity:chronicle.agentWork`),value:I.agentEvents,detail:`${I.uniqueAgents} correlated agents · ${I.decisions} decisions`}),(0,y.jsx)(j,{icon:(0,y.jsx)(i,{}),label:e(`activity:chronicle.toolCalls`),value:I.toolCalls,detail:`${I.failedTools} failed · ${I.processes} processes`}),(0,y.jsx)(j,{icon:(0,y.jsx)(l,{}),label:e(`activity:chronicle.fileEvidence`),value:I.fileEvents,detail:`${I.uniqueFiles} unique paths`}),(0,y.jsx)(j,{icon:(0,y.jsx)(re,{}),label:e(`activity:chronicle.retries`),value:I.scheduledRetries,detail:`${I.failures} failures · ${I.fallbacks} fallbacks`,tone:I.failures?`danger`:`normal`}),(0,y.jsx)(j,{icon:(0,y.jsx)(h,{}),label:e(`activity:chronicle.providerP95`),value:k(I.providerP95DurationMs),detail:`${k(I.providerAvgDurationMs)} average · all matches`})]}),(0,y.jsxs)(`section`,{className:`flex flex-wrap gap-x-6 gap-y-1 border-b border-border/60 bg-primary/[0.018] px-4 py-1.5 font-mono text-[9px] text-muted-foreground`,children:[(0,y.jsx)(`span`,{className:`font-sans font-semibold uppercase tracking-wider text-primary`,children:e(`activity:chronicle.tokenEconomics`)}),(0,y.jsxs)(`span`,{children:[e(`activity:chronicle.freshInput`),` `,(0,y.jsx)(`b`,{className:`text-foreground`,children:I.inputTokens.toLocaleString()})]}),(0,y.jsxs)(`span`,{children:[`output `,(0,y.jsx)(`b`,{className:`text-foreground`,children:I.outputTokens.toLocaleString()})]}),(0,y.jsxs)(`span`,{children:[e(`activity:chronicle.cacheRead`),` `,(0,y.jsx)(`b`,{className:`text-foreground`,children:I.cacheReadTokens.toLocaleString()})]}),(0,y.jsxs)(`span`,{children:[`cache write`,` `,(0,y.jsx)(`b`,{className:`text-foreground`,children:I.cacheWriteTokens.toLocaleString()})]}),(0,y.jsxs)(`span`,{children:[e(`activity:chronicle.cacheHit`),` `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[le(I).toFixed(1),`%`]})]}),(0,y.jsxs)(`span`,{children:[e(`activity:chronicle.estimatedCost`),` `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[`$`,I.estimatedCostUsd.toFixed(4)]})]})]}),H.length>0&&(0,y.jsxs)(`section`,{className:`flex items-center gap-3 overflow-x-auto border-b border-border/60 bg-muted/[0.14] px-4 py-1.5`,children:[(0,y.jsx)(`span`,{className:`shrink-0 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:e(`activity:chronicle.modelReliability`)}),H.slice(0,6).map(e=>{let t=e.completed+e.failed,n=t>0?e.completed/t*100:100;return(0,y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2 rounded-full border border-border bg-card px-2.5 py-0.5 font-mono text-[9px]`,title:`${e.day} · ${e.attempts} attempts · avg ${k(e.avgDurationMs)} · ${e.inputTokens.toLocaleString()} in / ${e.outputTokens.toLocaleString()} out`,children:[(0,y.jsx)(`span`,{className:_(`h-1.5 w-1.5 rounded-full`,n>=99?`bg-success`:n>=90?`bg-warning`:`bg-destructive`)}),(0,y.jsxs)(`span`,{className:`max-w-[180px] truncate`,children:[e.providerId,`/`,e.modelId]}),(0,y.jsxs)(`b`,{className:`text-foreground`,children:[n.toFixed(0),`%`]}),(0,y.jsx)(`span`,{className:`text-muted-foreground`,children:e.day.slice(5)})]},`${e.day}-${e.providerId}-${e.modelId}`)})]}),Q.total>0&&(0,y.jsxs)(`section`,{className:`flex items-center gap-3 overflow-x-auto border-b border-border/60 bg-muted/[0.10] px-4 py-1.5`,children:[(0,y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[(0,y.jsx)(te,{className:`h-3 w-3`}),e(`activity:chronicle.taskOutcomes`)]}),(0,y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2 rounded-full border border-border bg-card px-2.5 py-0.5 font-mono text-[9px]`,title:`${Q.total} tasks tracked · ${Q.terminal} finished`,children:[(0,y.jsx)(`span`,{className:_(`h-1.5 w-1.5 rounded-full`,Q.successRate>=90?`bg-success`:Q.successRate>=60?`bg-warning`:`bg-destructive`)}),(0,y.jsxs)(`b`,{className:`text-foreground`,children:[Q.successRate.toFixed(0),`%`]}),(0,y.jsxs)(`span`,{className:`text-muted-foreground`,children:[`success · `,Q.total,` tasks`]})]}),[`completed`,`merged`,`failed`,`conflict`,`started`].filter(e=>Q.counts[e]).map(e=>(0,y.jsxs)(`span`,{className:`shrink-0 font-mono text-[9px] text-muted-foreground`,children:[e,` `,(0,y.jsx)(`b`,{className:_(e===`failed`||e===`conflict`?`text-destructive`:`text-foreground`),children:Q.counts[e]})]},e)),(0,y.jsx)(`span`,{className:`mx-1 h-3 w-px shrink-0 bg-border`}),Q.recent.map(e=>(0,y.jsxs)(`button`,{type:`button`,onClick:()=>K({limit:300,order:`desc`,taskId:e.taskId}),className:`flex shrink-0 items-center gap-1.5 rounded-full border border-border bg-card px-2 py-0.5 font-mono text-[9px] hover:border-primary/50`,title:`${e.taskId}${e.boardId?` · board ${e.boardId}`:``}${e.sessionId?` · ${e.sessionId}`:``} · ${e.filesTouched} files${e.retries?` · ${e.retries} retries`:``}${e.verificationFailures?` · ${e.verificationFailures} verify-fails`:``}`,children:[(0,y.jsx)(`span`,{className:_(`h-1.5 w-1.5 rounded-full`,e.status===`completed`||e.status===`merged`?`bg-success`:e.status===`failed`||e.status===`conflict`?`bg-destructive`:`bg-primary`)}),(0,y.jsx)(`span`,{className:`max-w-[84px] truncate`,children:e.taskId}),e.durationMs!==null&&(0,y.jsx)(`span`,{className:`text-muted-foreground`,children:k(e.durationMs)}),e.filesTouched>0&&(0,y.jsxs)(`span`,{className:`flex items-center gap-0.5 text-muted-foreground`,children:[(0,y.jsx)(l,{className:`h-2.5 w-2.5`}),e.filesTouched]})]},e.taskId))]}),(0,y.jsx)(`section`,{className:`border-b border-border/70 px-4 py-3`,children:(0,y.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 xl:grid-cols-[1.35fr_1fr_1fr_1fr_1fr_auto]`,children:[(0,y.jsx)(A,{icon:(0,y.jsx)(ne,{}),placeholder:e(`activity:chronicle.searchEventEvidence`),value:C.text,onChange:e=>T(t=>({...t,text:e})),onEnter:$}),(0,y.jsx)(A,{placeholder:e(`activity:chronicle.fileOrDirectory`),value:C.path,onChange:e=>T(t=>({...t,path:e})),onEnter:$}),(0,y.jsx)(A,{placeholder:e(`activity:chronicle.provider`),value:C.providerId,onChange:e=>T(t=>({...t,providerId:e})),onEnter:$}),(0,y.jsx)(A,{placeholder:e(`activity:chronicle.model`),value:C.modelId,onChange:e=>T(t=>({...t,modelId:e})),onEnter:$}),(0,y.jsx)(A,{placeholder:e(`activity:chronicle.session`),value:C.sessionId,onChange:e=>T(t=>({...t,sessionId:e})),onEnter:$}),(0,y.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,y.jsxs)(`button`,{type:`button`,onClick:$,className:`rounded-md bg-primary px-3 text-xs font-medium text-primary-foreground`,children:[(0,y.jsx)(o,{className:`mr-1 inline h-3 w-3`}),e(`activity:chronicle.apply`)]}),(0,y.jsx)(`button`,{type:`button`,onClick:ve,className:`rounded-md border border-border px-2.5 text-xs hover:bg-muted`,children:e(`activity:chronicle.clear`)})]})]})}),(0,y.jsxs)(`section`,{className:`flex items-center gap-1 overflow-x-auto border-b border-border/70 px-4 py-2`,children:[se.map(t=>(0,y.jsxs)(`button`,{type:`button`,onClick:()=>O(t.id),className:_(`flex shrink-0 items-center gap-1.5 rounded-md px-2.5 py-1.5 text-[11px] transition-colors [&>svg]:h-3.5 [&>svg]:w-3.5`,E===t.id?`bg-primary/10 font-medium text-primary`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[t.icon,e(t.labelKey),(0,y.jsx)(`span`,{className:`ml-1 rounded bg-background/70 px-1 font-mono text-[9px]`,children:ce(I,t.id,N.total)})]},t.id)),(0,y.jsxs)(`div`,{className:`ml-auto hidden items-center gap-3 pl-4 text-[9px] text-muted-foreground lg:flex`,children:[(0,y.jsxs)(`span`,{children:[N.total.toLocaleString(),` matched`]}),(0,y.jsxs)(`span`,{children:[N.sourceFiles,` journal files`]}),N.invalidLines>0&&(0,y.jsxs)(`span`,{className:`text-warning`,children:[N.invalidLines,` invalid lines`]})]})]}),W&&(0,y.jsx)(b,{status:W}),Z&&(0,y.jsx)(M,{health:Z}),(0,y.jsx)(`section`,{className:`flex gap-4 overflow-x-auto border-b border-border/60 bg-muted/[0.18] px-4 py-2`,children:[`providerId`,`modelId`,`outcome`].map(e=>(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,y.jsx)(`span`,{className:`mr-1 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:e.replace(`Id`,``)}),(d[e]??[]).slice(0,4).map(t=>(0,y.jsxs)(`button`,{type:`button`,onClick:()=>K({...g,[e]:t.value}),className:`rounded-full border border-border bg-card px-2 py-0.5 text-[9px] hover:border-primary/50`,children:[t.value,` `,(0,y.jsx)(`b`,{children:t.count})]},t.value))]},e))}),(0,y.jsxs)(`div`,{className:`grid grid-cols-[92px_minmax(190px,1.25fr)_110px_minmax(180px,1fr)_minmax(140px,.8fr)_24px] gap-3 border-b border-border/60 bg-muted/20 px-4 py-1.5 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[(0,y.jsx)(`span`,{children:e(`activity:chronicle.time`)}),(0,y.jsx)(`span`,{children:e(`activity:chronicle.signal`)}),(0,y.jsx)(`span`,{children:e(`activity:chronicle.outcome`)}),(0,y.jsx)(`span`,{children:e(`activity:chronicle.modelAgent`)}),(0,y.jsx)(`span`,{children:e(`activity:chronicle.resource`)}),(0,y.jsx)(`span`,{})]}),(0,y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:z?(0,y.jsx)(P,{text:z}):!L&&Y.length===0?(0,y.jsx)(P,{text:`No coding evidence matches these filters.`}):(0,y.jsx)(`div`,{className:`divide-y divide-border/40`,children:X.pageItems.map(e=>(0,y.jsx)(de,{event:e,active:c?.eventId===e.eventId,onClick:()=>ye(e)},e.eventId))})}),(0,y.jsx)(ae,{page:X.page,pageSize:X.pageSize,totalItems:X.totalItems,onPageChange:X.setPage,itemLabel:`events`})]}),c&&(0,y.jsxs)(`aside`,{className:`w-[440px] max-w-[48vw] shrink-0 overflow-auto border-l border-border bg-card/60 shadow-[-12px_0_32px_hsl(var(--background)/.35)]`,children:[(0,y.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card/95 px-4 py-3 backdrop-blur`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`text-xs font-semibold`,children:e(`activity:chronicle.evidenceLineage`)}),(0,y.jsxs)(`div`,{className:`mt-0.5 font-mono text-[9px] text-muted-foreground`,children:[`#`,c.sequence,` · `,c.eventId]})]}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>u(null),className:`rounded p-1 hover:bg-muted`,children:(0,y.jsx)(ee,{className:`h-4 w-4`})})]}),(0,y.jsx)(fe,{event:c,graph:me})]})]})}var E={llm:0,agent:0,tool:0,file:0,memory:0,task:0,decision:0,runtime:0},D={logicalRequests:0,modelAttempts:0,completedAttempts:0,failedAttempts:0,scheduledRetries:0,fallbacks:0,providers:0,models:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,estimatedCostUsd:0,providerAvgDurationMs:0,providerP95DurationMs:0,toolCalls:0,completedTools:0,failedTools:0,toolAvgDurationMs:0,processes:0,failedProcesses:0,fileEvents:0,uniqueFiles:0,agentEvents:0,uniqueAgents:0,decisions:0,escalations:0,failures:0,cancellations:0,families:{...E},failuresByFamily:{...E}};function ce(e,t,n){return t===`all`?n:t===`llm`?e.families.llm:t===`agents`?e.families.agent:t===`tools`?e.families.tool:t===`files`?e.families.file:e.failures}function le(e){let t=e.inputTokens+e.cacheReadTokens;return t?e.cacheReadTokens/t*100:0}function ue(e,t){return t===`all`?!0:t===`llm`?/^(provider|token|context|compaction)\./.test(e.eventType):t===`agents`?/^(agent|subagent|delegate|fleet|sdd)\./.test(e.eventType):t===`tools`?/^(tool|process|mcp|network)\./.test(e.eventType):t===`files`?e.resource?.kind===`file`||/^(file|worktree|storage)\./.test(e.eventType):e.outcome===`failure`||/(?:failed|error|retry|fallback|blocked|conflict)/i.test(e.eventType)}function O(e){if(!e)return`—`;let t=e/1e6;return t<1?`${(e/1e3).toFixed(0)}µs`:t<1e3?`${t.toFixed(1)}ms`:`${(t/1e3).toFixed(1)}s`}function k(e){return e?e<1?`${(e*1e3).toFixed(0)}µs`:e<1e3?`${e.toFixed(1)}ms`:`${(e/1e3).toFixed(1)}s`:`—`}function A({placeholder:e,value:t,onChange:n,onEnter:r,icon:i}){return(0,y.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border bg-card px-2.5 py-2 focus-within:border-primary/60`,children:[i&&(0,y.jsx)(`span`,{className:`text-muted-foreground [&>svg]:h-3.5 [&>svg]:w-3.5`,children:i}),(0,y.jsx)(`input`,{className:`w-full bg-transparent text-xs outline-none placeholder:text-muted-foreground/70`,placeholder:e,value:t,onChange:e=>n(e.target.value),onKeyDown:e=>{e.key===`Enter`&&r()}})]})}function j({icon:e,label:t,value:n,detail:r,tone:i=`normal`}){return(0,y.jsxs)(`div`,{className:`min-w-0 border-r border-border/60 px-4 py-3`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground`,children:[(0,y.jsx)(`span`,{className:`text-primary [&>svg]:h-3.5 [&>svg]:w-3.5`,children:e}),t]}),(0,y.jsx)(`div`,{className:_(`mt-1 text-xl font-semibold tabular-nums`,i===`danger`&&`text-destructive`),children:typeof n==`number`?n.toLocaleString():n}),(0,y.jsx)(`div`,{className:`mt-0.5 truncate text-[9px] text-muted-foreground`,children:r})]})}function M({health:e}){let{t}=s();return(0,y.jsxs)(`section`,{className:`flex flex-wrap gap-x-5 gap-y-1 border-b border-border/60 bg-success/[0.025] px-4 py-1.5 font-mono text-[9px] text-muted-foreground`,children:[(0,y.jsx)(`span`,{className:`font-sans font-semibold uppercase tracking-wider text-success`,children:t(`activity:chronicle.collectorHealthy`)}),(0,y.jsxs)(`span`,{children:[`ELU`,` `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[((e.eventLoop?.utilization??0)*100).toFixed(1),`%`]})]}),(0,y.jsxs)(`span`,{children:[`p95 `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[(e.eventLoop?.delayP95Ms??0).toFixed(1),`ms`]})]}),(0,y.jsxs)(`span`,{children:[`heap`,` `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[((e.memory?.heapUsedBytes??0)/1048576).toFixed(0),`MB`]})]}),(0,y.jsxs)(`span`,{children:[`queue `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.chronicle?.pendingEvents??0})]}),(0,y.jsxs)(`span`,{children:[`dropped`,` `,(0,y.jsx)(`b`,{className:_((e.chronicle?.rejectedEvents??0)>0&&`text-destructive`),children:e.chronicle?.rejectedEvents??0})]})]})}function de({event:e,active:t,onClick:n}){let r=e.occurredAt??e.observedAt,i=e.runtime?.modelId??e.scope.agentId??e.runtime?.providerId??`—`,a=e.resource?.path??e.resource?.id??e.correlation.toolCallId??`—`;return(0,y.jsxs)(`button`,{type:`button`,onClick:n,className:_(`grid w-full grid-cols-[92px_minmax(190px,1.25fr)_110px_minmax(180px,1fr)_minmax(140px,.8fr)_24px] items-center gap-3 px-4 py-2.5 text-left hover:bg-muted/45`,t&&`bg-primary/[0.07]`),children:[(0,y.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:new Date(r).toLocaleTimeString()}),(0,y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,y.jsx)(`span`,{className:_(`h-1.5 w-1.5 shrink-0 rounded-full`,e.outcome===`failure`?`bg-destructive`:e.outcome===`success`?`bg-success`:`bg-primary`)}),(0,y.jsx)(`span`,{className:`truncate font-mono text-[11px] font-medium`,children:e.eventType})]}),(0,y.jsx)(`span`,{className:_(`w-fit rounded px-1.5 py-0.5 text-[9px]`,F(e.outcome)),children:e.outcome??`unknown`}),(0,y.jsx)(`span`,{className:`truncate font-mono text-[9px] text-muted-foreground`,children:i}),(0,y.jsx)(`span`,{className:`truncate font-mono text-[9px] text-muted-foreground`,children:a}),(0,y.jsx)(c,{className:`h-3.5 w-3.5 text-muted-foreground`})]})}function fe({event:e,graph:t}){let{t:n}=s(),r=(0,v.useMemo)(()=>[[`Scope`,e.scope],[`Correlation`,e.correlation],[`Runtime`,e.runtime],[`Resource`,e.resource],[`Attributes`,e.attributes],[`Tags`,e.tags]],[e]);return(0,y.jsxs)(`div`,{className:`p-4`,children:[(0,y.jsxs)(`div`,{className:`mb-4 rounded-lg border border-border bg-background/60 p-3`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{className:_(`h-2 w-2 rounded-full`,e.outcome===`failure`?`bg-destructive`:e.outcome===`success`?`bg-success`:`bg-primary`)}),(0,y.jsx)(`span`,{className:`font-mono text-xs font-semibold`,children:e.eventType})]}),(0,y.jsxs)(`div`,{className:`mt-2 flex gap-4 text-[9px] text-muted-foreground`,children:[(0,y.jsx)(`span`,{children:new Date(e.occurredAt??e.observedAt).toLocaleString()}),(0,y.jsx)(`span`,{children:O(Number(e.durationNs??0))})]})]}),(0,y.jsxs)(`div`,{className:`mb-4 grid grid-cols-2 gap-2`,children:[(0,y.jsx)(N,{icon:(0,y.jsx)(u,{}),label:n(`activity:chronicle.evidenceHash`),value:e.hash.slice(0,16)}),(0,y.jsx)(N,{icon:(0,y.jsx)(d,{}),label:n(`activity:chronicle.sequence`),value:String(e.sequence)})]}),t&&(0,y.jsxs)(`section`,{className:`mb-4`,children:[(0,y.jsxs)(`h3`,{className:`mb-1.5 flex items-center gap-1 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[(0,y.jsx)(g,{className:`h-3 w-3`}),`Lineage · `,t.nodes.length,` nodes · `,t.edges.length,` edges`]}),(0,y.jsx)(`div`,{className:`space-y-1 rounded-md border border-border bg-background/70 p-2`,children:t.edges.slice(0,40).map((e,n)=>(0,y.jsxs)(`div`,{className:`flex items-center gap-2 font-mono text-[9px]`,children:[(0,y.jsx)(`span`,{className:_(`rounded px-1`,e.confidence===`explicit`?`bg-success/10 text-success`:e.confidence===`inferred`?`bg-warning/10 text-warning`:`bg-primary/10 text-primary`),children:e.confidence}),(0,y.jsx)(`span`,{className:`text-muted-foreground`,children:e.kind}),(0,y.jsxs)(`span`,{className:`truncate`,children:[t.nodes.find(t=>t.eventId===e.from)?.eventType,` →`,` `,t.nodes.find(t=>t.eventId===e.to)?.eventType]})]},`${e.from}-${e.to}-${e.kind}-${n}`))}),t.truncated&&(0,y.jsx)(`p`,{className:`mt-1 text-[9px] text-warning`,children:n(`activity:chronicle.lineageTruncatedAtSafetyLimit`)})]}),r.map(([e,t])=>t&&(0,y.jsxs)(`section`,{className:`mb-4`,children:[(0,y.jsx)(`h3`,{className:`mb-1.5 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:e}),(0,y.jsx)(`pre`,{className:`overflow-auto rounded-md border border-border bg-background/70 p-3 font-mono text-[9px] leading-relaxed`,children:JSON.stringify(t,null,2)})]},e))]})}function N({icon:e,label:t,value:n}){return(0,y.jsxs)(`div`,{className:`rounded-md border border-border p-2`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-1 text-[8px] uppercase text-muted-foreground`,children:[(0,y.jsx)(`span`,{className:`[&>svg]:h-3 [&>svg]:w-3`,children:e}),t]}),(0,y.jsx)(`div`,{className:`mt-1 truncate font-mono text-[9px]`,children:n})]})}function P({text:e}){return(0,y.jsx)(`div`,{className:`flex h-48 items-center justify-center text-sm text-muted-foreground`,children:e})}function F(e){return e===`failure`?`bg-destructive/10 text-destructive`:e===`success`?`bg-success/10 text-success`:e===`started`?`bg-primary/10 text-primary`:`bg-muted text-muted-foreground`}export{T as ChronicleDashboard};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./ws-client-BR51gfnV.js";import{i as n,t as r}from"./react-core-BNmTiJ-I.js";import{Ct as i,Da as a,Er as o,Fa as s,Gi as c,Jr as l,K as ee,Nt as u,Qn as te,Vt as ne,Xt as re,ci as d,ia as f,lt as p,ta as m,tn as ie,wi as h,xr as g}from"./vendor-BshlG0z-.js";import"./i18n-tRUjoMoU.js";import{t as _}from"./utils-BpBOwXlT.js";import{b as ae,x as oe}from"./index-BnpuNJ9u.js";var v=e(n(),1),y=r();function b({status:e}){let{t}=s();return(0,y.jsxs)(`section`,{className:`flex flex-wrap gap-x-5 gap-y-1 border-b border-border/60 bg-primary/[0.025] px-4 py-1.5 font-mono text-[9px] text-muted-foreground`,title:e.chronicleDirectory,children:[(0,y.jsx)(`span`,{className:`font-sans font-semibold uppercase tracking-wider text-primary`,children:t(`activity:chroniclePipelineStrip.chronicleOwnership`)}),(0,y.jsxs)(`span`,{children:[`collect `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.pipeline.collection})]}),(0,y.jsxs)(`span`,{children:[`process `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.pipeline.processing})]}),(0,y.jsxs)(`span`,{children:[`serve `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.pipeline.serving})]}),(0,y.jsxs)(`span`,{children:[`PID `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.pid}),` · `,e.clients,` clients`]}),(0,y.jsxs)(`span`,{children:[`watcher`,` `,(0,y.jsx)(`b`,{className:_(e.watcher.active?`text-success`:`text-warning`),children:e.watcher.active?`active`:`inactive`}),` `,`· `,e.watcher.watchedFiles,` files`]}),(0,y.jsxs)(`span`,{children:[`store `,(0,y.jsx)(`b`,{className:`text-foreground`,children:x(e.pipeline.storage)})]}),e.mode===`inline`&&(0,y.jsx)(`span`,{className:`font-sans font-semibold text-warning`,children:t(`activity:chroniclePipelineStrip.inlineFallback`)})]})}function x(e){return e.replaceAll(`\\`,`/`).split(`/`).filter(Boolean).slice(-3).join(`/`)}var S=[`eventType`,`providerId`,`modelId`,`outcome`,`resourceKind`],C=864e5;function w(){return{limit:300,order:`desc`,from:new Date(Date.now()-C).toISOString()}}var se=[{id:`all`,labelKey:`activity:chronicle.signalAllSignals`,icon:(0,y.jsx)(a,{})},{id:`llm`,labelKey:`activity:chronicle.signalLlm`,icon:(0,y.jsx)(m,{})},{id:`agents`,labelKey:`activity:chronicle.signalAgents`,icon:(0,y.jsx)(f,{})},{id:`tools`,labelKey:`activity:chronicle.signalTools`,icon:(0,y.jsx)(i,{})},{id:`files`,labelKey:`activity:chronicle.signalFiles`,icon:(0,y.jsx)(l,{})},{id:`failures`,labelKey:`activity:chronicle.signalFailures`,icon:(0,y.jsx)(p,{})}];function T(){let{t:e}=s(),n=t(),[r,a]=(0,v.useState)([]),[c,u]=(0,v.useState)(null),[d,p]=(0,v.useState)({}),[g,x]=(0,v.useState)(w()),[C,T]=(0,v.useState)({text:``,path:``,providerId:``,modelId:``,sessionId:``}),[E,O]=(0,v.useState)(`all`),[N,F]=(0,v.useState)({total:0,scannedEvents:0,sourceFiles:0,invalidLines:0}),[I,pe]=(0,v.useState)(D),[L,R]=(0,v.useState)(!0),[z,B]=(0,v.useState)(null),[me,V]=(0,v.useState)(null),[H,he]=(0,v.useState)([]),[U,ge]=(0,v.useState)([]),[W,_e]=(0,v.useState)(null),G=(0,v.useRef)(g);G.current=g;let K=(0,v.useCallback)(e=>{if(!n.supportsCapability(`chronicle.query`)){R(!1),B(`Restart the backend once to activate Chronicle protocol support.`);return}if(R(!0),B(null),x(e),p({}),n.send({type:`chronicle.query`,payload:{query:e}}),n.supportsCapability(`chronicle.facets`))n.send({type:`chronicle.facets`,payload:{fields:[...S],query:e,limit:12}});else for(let t of S)n.send({type:`chronicle.facet`,payload:{field:t,query:e,limit:12}})},[n]),q=(0,v.useCallback)(()=>{n.supportsCapability(`chronicle.metrics`)&&(n.send({type:`chronicle.metrics`,payload:{view:`providers`}}),n.send({type:`chronicle.metrics`,payload:{view:`tasks`,limit:200}}))},[n]),J=(0,v.useCallback)(()=>{n.supportsCapability(`chronicle.status`)&&n.send({type:`chronicle.status`})},[n]);(0,v.useEffect)(()=>{let e=n.on(`chronicle.query_result`,e=>{e.type===`chronicle.query_result`&&(a(e.payload.events),F(e.payload),pe(e.payload.summary??D),R(!1))}),t=n.on(`chronicle.facet_result`,e=>{e.type===`chronicle.facet_result`&&p(t=>({...t,[e.payload.field]:e.payload.values}))}),r=n.on(`chronicle.facets_result`,e=>{e.type===`chronicle.facets_result`&&p(e.payload.values)}),i=n.on(`chronicle.error`,e=>{e.type===`chronicle.error`&&(B(e.payload.message),R(!1))}),o=n.on(`chronicle.graph_result`,e=>{e.type===`chronicle.graph_result`&&V(e.payload)}),s=n.on(`chronicle.metrics_result`,e=>{e.type===`chronicle.metrics_result`&&(e.payload.view===`providers`?he(e.payload.data):e.payload.view===`tasks`&&ge(e.payload.data))}),c=n.on(`chronicle.status_result`,e=>{e.type===`chronicle.status_result`&&_e(e.payload)});return K(G.current),q(),J(),()=>{e(),t(),r(),i(),o(),s(),c()}},[n,K,q,J]);let Y=(0,v.useMemo)(()=>r.filter(e=>ue(e,E)),[r,E]),X=oe(Y,25,E),Z=(0,v.useMemo)(()=>{let e=r.find(e=>e.eventType===`metrics.rollup`&&e.attributes?.signal===`runtime.health`)?.attributes?.stats;if(!e)return;let t=t=>e[t]?.last;return{eventLoop:{utilization:t(`eventLoop.utilization`),delayP95Ms:t(`eventLoop.delayP95Ms`)},memory:{heapUsedBytes:t(`memory.heapUsedBytes`)},chronicle:{pendingEvents:t(`chronicle.pendingEvents`),rejectedEvents:t(`chronicle.rejectedEvents`)}}},[r]),Q=(0,v.useMemo)(()=>{let e={};for(let t of U)e[t.status]=(e[t.status]??0)+1;let t=(e.completed??0)+(e.merged??0)+(e.failed??0)+(e.conflict??0),n=(e.completed??0)+(e.merged??0),r=[...U].sort((e,t)=>(t.endedAt??t.startedAt??``).localeCompare(e.endedAt??e.startedAt??``)).slice(0,8);return{counts:e,total:U.length,terminal:t,successRate:t>0?n/t*100:100,recent:r}},[U]),$=()=>K({...w(),...C.text?{text:C.text}:{},...C.path?{path:C.path}:{},...C.providerId?{providerId:C.providerId}:{},...C.modelId?{modelId:C.modelId}:{},...C.sessionId?{sessionId:C.sessionId}:{}}),ve=()=>{T({text:``,path:``,providerId:``,modelId:``,sessionId:``}),O(`all`),K(w())},ye=e=>{u(e),V(null),n.supportsCapability(`chronicle.graph`)&&n.send({type:`chronicle.graph`,payload:{seed:{eventId:e.eventId},hops:2,maxNodes:250}})};return(0,y.jsxs)(`div`,{className:`flex h-full min-h-0 bg-background`,"data-testid":`chronicle-dashboard`,children:[(0,y.jsxs)(`main`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,y.jsx)(`header`,{className:`border-b border-border/70 bg-gradient-to-r from-primary/[0.045] via-background to-background px-5 py-4`,children:(0,y.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(m,{className:`h-5 w-5 text-primary`}),(0,y.jsx)(`h1`,{className:`text-lg font-semibold tracking-tight`,children:e(`activity:chronicle.codingIntelligence`)}),(0,y.jsx)(`span`,{className:`rounded-full border border-primary/20 bg-primary/10 px-2 py-0.5 text-[9px] font-semibold tracking-wider text-primary`,children:e(`activity:chronicle.chronicle`)})]}),(0,y.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e(`activity:chronicle.llmAgentToolAndFileEvidence`)})]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{className:_(`h-2 w-2 rounded-full`,z?`bg-destructive`:L?`animate-pulse bg-warning`:`bg-success`)}),(0,y.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:L?`Reading journal`:z?`Unavailable`:`Live evidence`}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>{K(g),q(),J()},className:`ml-2 rounded-md border border-border bg-card p-2 hover:bg-muted`,title:e(`activity:chronicle.refreshEvidence`),children:(0,y.jsx)(ie,{className:_(`h-4 w-4`,L&&`animate-spin`)})})]})]})}),(0,y.jsxs)(`section`,{className:`grid grid-cols-2 border-b border-border/70 xl:grid-cols-6`,children:[(0,y.jsx)(j,{icon:(0,y.jsx)(m,{}),label:e(`activity:chronicle.llmRequests`),value:I.logicalRequests,detail:`${I.modelAttempts} attempts · ${I.providers} providers · ${I.models} models`}),(0,y.jsx)(j,{icon:(0,y.jsx)(f,{}),label:e(`activity:chronicle.agentWork`),value:I.agentEvents,detail:`${I.uniqueAgents} correlated agents · ${I.decisions} decisions`}),(0,y.jsx)(j,{icon:(0,y.jsx)(i,{}),label:e(`activity:chronicle.toolCalls`),value:I.toolCalls,detail:`${I.failedTools} failed · ${I.processes} processes`}),(0,y.jsx)(j,{icon:(0,y.jsx)(l,{}),label:e(`activity:chronicle.fileEvidence`),value:I.fileEvents,detail:`${I.uniqueFiles} unique paths`}),(0,y.jsx)(j,{icon:(0,y.jsx)(re,{}),label:e(`activity:chronicle.retries`),value:I.scheduledRetries,detail:`${I.failures} failures · ${I.fallbacks} fallbacks`,tone:I.failures?`danger`:`normal`}),(0,y.jsx)(j,{icon:(0,y.jsx)(h,{}),label:e(`activity:chronicle.providerP95`),value:k(I.providerP95DurationMs),detail:`${k(I.providerAvgDurationMs)} average · all matches`})]}),(0,y.jsxs)(`section`,{className:`flex flex-wrap gap-x-6 gap-y-1 border-b border-border/60 bg-primary/[0.018] px-4 py-1.5 font-mono text-[9px] text-muted-foreground`,children:[(0,y.jsx)(`span`,{className:`font-sans font-semibold uppercase tracking-wider text-primary`,children:e(`activity:chronicle.tokenEconomics`)}),(0,y.jsxs)(`span`,{children:[e(`activity:chronicle.freshInput`),` `,(0,y.jsx)(`b`,{className:`text-foreground`,children:I.inputTokens.toLocaleString()})]}),(0,y.jsxs)(`span`,{children:[`output `,(0,y.jsx)(`b`,{className:`text-foreground`,children:I.outputTokens.toLocaleString()})]}),(0,y.jsxs)(`span`,{children:[e(`activity:chronicle.cacheRead`),` `,(0,y.jsx)(`b`,{className:`text-foreground`,children:I.cacheReadTokens.toLocaleString()})]}),(0,y.jsxs)(`span`,{children:[`cache write`,` `,(0,y.jsx)(`b`,{className:`text-foreground`,children:I.cacheWriteTokens.toLocaleString()})]}),(0,y.jsxs)(`span`,{children:[e(`activity:chronicle.cacheHit`),` `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[le(I).toFixed(1),`%`]})]}),(0,y.jsxs)(`span`,{children:[e(`activity:chronicle.estimatedCost`),` `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[`$`,I.estimatedCostUsd.toFixed(4)]})]})]}),H.length>0&&(0,y.jsxs)(`section`,{className:`flex items-center gap-3 overflow-x-auto border-b border-border/60 bg-muted/[0.14] px-4 py-1.5`,children:[(0,y.jsx)(`span`,{className:`shrink-0 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:e(`activity:chronicle.modelReliability`)}),H.slice(0,6).map(e=>{let t=e.completed+e.failed,n=t>0?e.completed/t*100:100;return(0,y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2 rounded-full border border-border bg-card px-2.5 py-0.5 font-mono text-[9px]`,title:`${e.day} · ${e.attempts} attempts · avg ${k(e.avgDurationMs)} · ${e.inputTokens.toLocaleString()} in / ${e.outputTokens.toLocaleString()} out`,children:[(0,y.jsx)(`span`,{className:_(`h-1.5 w-1.5 rounded-full`,n>=99?`bg-success`:n>=90?`bg-warning`:`bg-destructive`)}),(0,y.jsxs)(`span`,{className:`max-w-[180px] truncate`,children:[e.providerId,`/`,e.modelId]}),(0,y.jsxs)(`b`,{className:`text-foreground`,children:[n.toFixed(0),`%`]}),(0,y.jsx)(`span`,{className:`text-muted-foreground`,children:e.day.slice(5)})]},`${e.day}-${e.providerId}-${e.modelId}`)})]}),Q.total>0&&(0,y.jsxs)(`section`,{className:`flex items-center gap-3 overflow-x-auto border-b border-border/60 bg-muted/[0.10] px-4 py-1.5`,children:[(0,y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[(0,y.jsx)(te,{className:`h-3 w-3`}),e(`activity:chronicle.taskOutcomes`)]}),(0,y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2 rounded-full border border-border bg-card px-2.5 py-0.5 font-mono text-[9px]`,title:`${Q.total} tasks tracked · ${Q.terminal} finished`,children:[(0,y.jsx)(`span`,{className:_(`h-1.5 w-1.5 rounded-full`,Q.successRate>=90?`bg-success`:Q.successRate>=60?`bg-warning`:`bg-destructive`)}),(0,y.jsxs)(`b`,{className:`text-foreground`,children:[Q.successRate.toFixed(0),`%`]}),(0,y.jsxs)(`span`,{className:`text-muted-foreground`,children:[`success · `,Q.total,` tasks`]})]}),[`completed`,`merged`,`failed`,`conflict`,`started`].filter(e=>Q.counts[e]).map(e=>(0,y.jsxs)(`span`,{className:`shrink-0 font-mono text-[9px] text-muted-foreground`,children:[e,` `,(0,y.jsx)(`b`,{className:_(e===`failed`||e===`conflict`?`text-destructive`:`text-foreground`),children:Q.counts[e]})]},e)),(0,y.jsx)(`span`,{className:`mx-1 h-3 w-px shrink-0 bg-border`}),Q.recent.map(e=>(0,y.jsxs)(`button`,{type:`button`,onClick:()=>K({limit:300,order:`desc`,taskId:e.taskId}),className:`flex shrink-0 items-center gap-1.5 rounded-full border border-border bg-card px-2 py-0.5 font-mono text-[9px] hover:border-primary/50`,title:`${e.taskId}${e.boardId?` · board ${e.boardId}`:``}${e.sessionId?` · ${e.sessionId}`:``} · ${e.filesTouched} files${e.retries?` · ${e.retries} retries`:``}${e.verificationFailures?` · ${e.verificationFailures} verify-fails`:``}`,children:[(0,y.jsx)(`span`,{className:_(`h-1.5 w-1.5 rounded-full`,e.status===`completed`||e.status===`merged`?`bg-success`:e.status===`failed`||e.status===`conflict`?`bg-destructive`:`bg-primary`)}),(0,y.jsx)(`span`,{className:`max-w-[84px] truncate`,children:e.taskId}),e.durationMs!==null&&(0,y.jsx)(`span`,{className:`text-muted-foreground`,children:k(e.durationMs)}),e.filesTouched>0&&(0,y.jsxs)(`span`,{className:`flex items-center gap-0.5 text-muted-foreground`,children:[(0,y.jsx)(l,{className:`h-2.5 w-2.5`}),e.filesTouched]})]},e.taskId))]}),(0,y.jsx)(`section`,{className:`border-b border-border/70 px-4 py-3`,children:(0,y.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 xl:grid-cols-[1.35fr_1fr_1fr_1fr_1fr_auto]`,children:[(0,y.jsx)(A,{icon:(0,y.jsx)(ne,{}),placeholder:e(`activity:chronicle.searchEventEvidence`),value:C.text,onChange:e=>T(t=>({...t,text:e})),onEnter:$}),(0,y.jsx)(A,{placeholder:e(`activity:chronicle.fileOrDirectory`),value:C.path,onChange:e=>T(t=>({...t,path:e})),onEnter:$}),(0,y.jsx)(A,{placeholder:e(`activity:chronicle.provider`),value:C.providerId,onChange:e=>T(t=>({...t,providerId:e})),onEnter:$}),(0,y.jsx)(A,{placeholder:e(`activity:chronicle.model`),value:C.modelId,onChange:e=>T(t=>({...t,modelId:e})),onEnter:$}),(0,y.jsx)(A,{placeholder:e(`activity:chronicle.session`),value:C.sessionId,onChange:e=>T(t=>({...t,sessionId:e})),onEnter:$}),(0,y.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,y.jsxs)(`button`,{type:`button`,onClick:$,className:`rounded-md bg-primary px-3 text-xs font-medium text-primary-foreground`,children:[(0,y.jsx)(o,{className:`mr-1 inline h-3 w-3`}),e(`activity:chronicle.apply`)]}),(0,y.jsx)(`button`,{type:`button`,onClick:ve,className:`rounded-md border border-border px-2.5 text-xs hover:bg-muted`,children:e(`activity:chronicle.clear`)})]})]})}),(0,y.jsxs)(`section`,{className:`flex items-center gap-1 overflow-x-auto border-b border-border/70 px-4 py-2`,children:[se.map(t=>(0,y.jsxs)(`button`,{type:`button`,onClick:()=>O(t.id),className:_(`flex shrink-0 items-center gap-1.5 rounded-md px-2.5 py-1.5 text-[11px] transition-colors [&>svg]:h-3.5 [&>svg]:w-3.5`,E===t.id?`bg-primary/10 font-medium text-primary`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[t.icon,e(t.labelKey),(0,y.jsx)(`span`,{className:`ml-1 rounded bg-background/70 px-1 font-mono text-[9px]`,children:ce(I,t.id,N.total)})]},t.id)),(0,y.jsxs)(`div`,{className:`ml-auto hidden items-center gap-3 pl-4 text-[9px] text-muted-foreground lg:flex`,children:[(0,y.jsxs)(`span`,{children:[N.total.toLocaleString(),` matched`]}),(0,y.jsxs)(`span`,{children:[N.sourceFiles,` journal files`]}),N.invalidLines>0&&(0,y.jsxs)(`span`,{className:`text-warning`,children:[N.invalidLines,` invalid lines`]})]})]}),W&&(0,y.jsx)(b,{status:W}),Z&&(0,y.jsx)(M,{health:Z}),(0,y.jsx)(`section`,{className:`flex gap-4 overflow-x-auto border-b border-border/60 bg-muted/[0.18] px-4 py-2`,children:[`providerId`,`modelId`,`outcome`].map(e=>(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,y.jsx)(`span`,{className:`mr-1 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:e.replace(`Id`,``)}),(d[e]??[]).slice(0,4).map(t=>(0,y.jsxs)(`button`,{type:`button`,onClick:()=>K({...g,[e]:t.value}),className:`rounded-full border border-border bg-card px-2 py-0.5 text-[9px] hover:border-primary/50`,children:[t.value,` `,(0,y.jsx)(`b`,{children:t.count})]},t.value))]},e))}),(0,y.jsxs)(`div`,{className:`grid grid-cols-[92px_minmax(190px,1.25fr)_110px_minmax(180px,1fr)_minmax(140px,.8fr)_24px] gap-3 border-b border-border/60 bg-muted/20 px-4 py-1.5 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[(0,y.jsx)(`span`,{children:e(`activity:chronicle.time`)}),(0,y.jsx)(`span`,{children:e(`activity:chronicle.signal`)}),(0,y.jsx)(`span`,{children:e(`activity:chronicle.outcome`)}),(0,y.jsx)(`span`,{children:e(`activity:chronicle.modelAgent`)}),(0,y.jsx)(`span`,{children:e(`activity:chronicle.resource`)}),(0,y.jsx)(`span`,{})]}),(0,y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:z?(0,y.jsx)(P,{text:z}):!L&&Y.length===0?(0,y.jsx)(P,{text:`No coding evidence matches these filters.`}):(0,y.jsx)(`div`,{className:`divide-y divide-border/40`,children:X.pageItems.map(e=>(0,y.jsx)(de,{event:e,active:c?.eventId===e.eventId,onClick:()=>ye(e)},e.eventId))})}),(0,y.jsx)(ae,{page:X.page,pageSize:X.pageSize,totalItems:X.totalItems,onPageChange:X.setPage,itemLabel:`events`})]}),c&&(0,y.jsxs)(`aside`,{className:`w-[440px] max-w-[48vw] shrink-0 overflow-auto border-l border-border bg-card/60 shadow-[-12px_0_32px_hsl(var(--background)/.35)]`,children:[(0,y.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center justify-between border-b border-border bg-card/95 px-4 py-3 backdrop-blur`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`text-xs font-semibold`,children:e(`activity:chronicle.evidenceLineage`)}),(0,y.jsxs)(`div`,{className:`mt-0.5 font-mono text-[9px] text-muted-foreground`,children:[`#`,c.sequence,` · `,c.eventId]})]}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>u(null),className:`rounded p-1 hover:bg-muted`,children:(0,y.jsx)(ee,{className:`h-4 w-4`})})]}),(0,y.jsx)(fe,{event:c,graph:me})]})]})}var E={llm:0,agent:0,tool:0,file:0,memory:0,task:0,decision:0,runtime:0},D={logicalRequests:0,modelAttempts:0,completedAttempts:0,failedAttempts:0,scheduledRetries:0,fallbacks:0,providers:0,models:0,inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,estimatedCostUsd:0,providerAvgDurationMs:0,providerP95DurationMs:0,toolCalls:0,completedTools:0,failedTools:0,toolAvgDurationMs:0,processes:0,failedProcesses:0,fileEvents:0,uniqueFiles:0,agentEvents:0,uniqueAgents:0,decisions:0,escalations:0,failures:0,cancellations:0,families:{...E},failuresByFamily:{...E}};function ce(e,t,n){return t===`all`?n:t===`llm`?e.families.llm:t===`agents`?e.families.agent:t===`tools`?e.families.tool:t===`files`?e.families.file:e.failures}function le(e){let t=e.inputTokens+e.cacheReadTokens;return t?e.cacheReadTokens/t*100:0}function ue(e,t){return t===`all`?!0:t===`llm`?/^(provider|token|context|compaction)\./.test(e.eventType):t===`agents`?/^(agent|subagent|delegate|fleet|sdd)\./.test(e.eventType):t===`tools`?/^(tool|process|mcp|network)\./.test(e.eventType):t===`files`?e.resource?.kind===`file`||/^(file|worktree|storage)\./.test(e.eventType):e.outcome===`failure`||/(?:failed|error|retry|fallback|blocked|conflict)/i.test(e.eventType)}function O(e){if(!e)return`—`;let t=e/1e6;return t<1?`${(e/1e3).toFixed(0)}µs`:t<1e3?`${t.toFixed(1)}ms`:`${(t/1e3).toFixed(1)}s`}function k(e){return e?e<1?`${(e*1e3).toFixed(0)}µs`:e<1e3?`${e.toFixed(1)}ms`:`${(e/1e3).toFixed(1)}s`:`—`}function A({placeholder:e,value:t,onChange:n,onEnter:r,icon:i}){return(0,y.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border bg-card px-2.5 py-2 focus-within:border-primary/60`,children:[i&&(0,y.jsx)(`span`,{className:`text-muted-foreground [&>svg]:h-3.5 [&>svg]:w-3.5`,children:i}),(0,y.jsx)(`input`,{className:`w-full bg-transparent text-xs outline-none placeholder:text-muted-foreground/70`,placeholder:e,value:t,onChange:e=>n(e.target.value),onKeyDown:e=>{e.key===`Enter`&&r()}})]})}function j({icon:e,label:t,value:n,detail:r,tone:i=`normal`}){return(0,y.jsxs)(`div`,{className:`min-w-0 border-r border-border/60 px-4 py-3`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground`,children:[(0,y.jsx)(`span`,{className:`text-primary [&>svg]:h-3.5 [&>svg]:w-3.5`,children:e}),t]}),(0,y.jsx)(`div`,{className:_(`mt-1 text-xl font-semibold tabular-nums`,i===`danger`&&`text-destructive`),children:typeof n==`number`?n.toLocaleString():n}),(0,y.jsx)(`div`,{className:`mt-0.5 truncate text-[9px] text-muted-foreground`,children:r})]})}function M({health:e}){let{t}=s();return(0,y.jsxs)(`section`,{className:`flex flex-wrap gap-x-5 gap-y-1 border-b border-border/60 bg-success/[0.025] px-4 py-1.5 font-mono text-[9px] text-muted-foreground`,children:[(0,y.jsx)(`span`,{className:`font-sans font-semibold uppercase tracking-wider text-success`,children:t(`activity:chronicle.collectorHealthy`)}),(0,y.jsxs)(`span`,{children:[`ELU`,` `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[((e.eventLoop?.utilization??0)*100).toFixed(1),`%`]})]}),(0,y.jsxs)(`span`,{children:[`p95 `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[(e.eventLoop?.delayP95Ms??0).toFixed(1),`ms`]})]}),(0,y.jsxs)(`span`,{children:[`heap`,` `,(0,y.jsxs)(`b`,{className:`text-foreground`,children:[((e.memory?.heapUsedBytes??0)/1048576).toFixed(0),`MB`]})]}),(0,y.jsxs)(`span`,{children:[`queue `,(0,y.jsx)(`b`,{className:`text-foreground`,children:e.chronicle?.pendingEvents??0})]}),(0,y.jsxs)(`span`,{children:[`dropped`,` `,(0,y.jsx)(`b`,{className:_((e.chronicle?.rejectedEvents??0)>0&&`text-destructive`),children:e.chronicle?.rejectedEvents??0})]})]})}function de({event:e,active:t,onClick:n}){let r=e.occurredAt??e.observedAt,i=e.runtime?.modelId??e.scope.agentId??e.runtime?.providerId??`—`,a=e.resource?.path??e.resource?.id??e.correlation.toolCallId??`—`;return(0,y.jsxs)(`button`,{type:`button`,onClick:n,className:_(`grid w-full grid-cols-[92px_minmax(190px,1.25fr)_110px_minmax(180px,1fr)_minmax(140px,.8fr)_24px] items-center gap-3 px-4 py-2.5 text-left hover:bg-muted/45`,t&&`bg-primary/[0.07]`),children:[(0,y.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:new Date(r).toLocaleTimeString()}),(0,y.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,y.jsx)(`span`,{className:_(`h-1.5 w-1.5 shrink-0 rounded-full`,e.outcome===`failure`?`bg-destructive`:e.outcome===`success`?`bg-success`:`bg-primary`)}),(0,y.jsx)(`span`,{className:`truncate font-mono text-[11px] font-medium`,children:e.eventType})]}),(0,y.jsx)(`span`,{className:_(`w-fit rounded px-1.5 py-0.5 text-[9px]`,F(e.outcome)),children:e.outcome??`unknown`}),(0,y.jsx)(`span`,{className:`truncate font-mono text-[9px] text-muted-foreground`,children:i}),(0,y.jsx)(`span`,{className:`truncate font-mono text-[9px] text-muted-foreground`,children:a}),(0,y.jsx)(c,{className:`h-3.5 w-3.5 text-muted-foreground`})]})}function fe({event:e,graph:t}){let{t:n}=s(),r=(0,v.useMemo)(()=>[[`Scope`,e.scope],[`Correlation`,e.correlation],[`Runtime`,e.runtime],[`Resource`,e.resource],[`Attributes`,e.attributes],[`Tags`,e.tags]],[e]);return(0,y.jsxs)(`div`,{className:`p-4`,children:[(0,y.jsxs)(`div`,{className:`mb-4 rounded-lg border border-border bg-background/60 p-3`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{className:_(`h-2 w-2 rounded-full`,e.outcome===`failure`?`bg-destructive`:e.outcome===`success`?`bg-success`:`bg-primary`)}),(0,y.jsx)(`span`,{className:`font-mono text-xs font-semibold`,children:e.eventType})]}),(0,y.jsxs)(`div`,{className:`mt-2 flex gap-4 text-[9px] text-muted-foreground`,children:[(0,y.jsx)(`span`,{children:new Date(e.occurredAt??e.observedAt).toLocaleString()}),(0,y.jsx)(`span`,{children:O(Number(e.durationNs??0))})]})]}),(0,y.jsxs)(`div`,{className:`mb-4 grid grid-cols-2 gap-2`,children:[(0,y.jsx)(N,{icon:(0,y.jsx)(u,{}),label:n(`activity:chronicle.evidenceHash`),value:e.hash.slice(0,16)}),(0,y.jsx)(N,{icon:(0,y.jsx)(d,{}),label:n(`activity:chronicle.sequence`),value:String(e.sequence)})]}),t&&(0,y.jsxs)(`section`,{className:`mb-4`,children:[(0,y.jsxs)(`h3`,{className:`mb-1.5 flex items-center gap-1 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:[(0,y.jsx)(g,{className:`h-3 w-3`}),`Lineage · `,t.nodes.length,` nodes · `,t.edges.length,` edges`]}),(0,y.jsx)(`div`,{className:`space-y-1 rounded-md border border-border bg-background/70 p-2`,children:t.edges.slice(0,40).map((e,n)=>(0,y.jsxs)(`div`,{className:`flex items-center gap-2 font-mono text-[9px]`,children:[(0,y.jsx)(`span`,{className:_(`rounded px-1`,e.confidence===`explicit`?`bg-success/10 text-success`:e.confidence===`inferred`?`bg-warning/10 text-warning`:`bg-primary/10 text-primary`),children:e.confidence}),(0,y.jsx)(`span`,{className:`text-muted-foreground`,children:e.kind}),(0,y.jsxs)(`span`,{className:`truncate`,children:[t.nodes.find(t=>t.eventId===e.from)?.eventType,` →`,` `,t.nodes.find(t=>t.eventId===e.to)?.eventType]})]},`${e.from}-${e.to}-${e.kind}-${n}`))}),t.truncated&&(0,y.jsx)(`p`,{className:`mt-1 text-[9px] text-warning`,children:n(`activity:chronicle.lineageTruncatedAtSafetyLimit`)})]}),r.map(([e,t])=>t&&(0,y.jsxs)(`section`,{className:`mb-4`,children:[(0,y.jsx)(`h3`,{className:`mb-1.5 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:e}),(0,y.jsx)(`pre`,{className:`overflow-auto rounded-md border border-border bg-background/70 p-3 font-mono text-[9px] leading-relaxed`,children:JSON.stringify(t,null,2)})]},e))]})}function N({icon:e,label:t,value:n}){return(0,y.jsxs)(`div`,{className:`rounded-md border border-border p-2`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-1 text-[8px] uppercase text-muted-foreground`,children:[(0,y.jsx)(`span`,{className:`[&>svg]:h-3 [&>svg]:w-3`,children:e}),t]}),(0,y.jsx)(`div`,{className:`mt-1 truncate font-mono text-[9px]`,children:n})]})}function P({text:e}){return(0,y.jsx)(`div`,{className:`flex h-48 items-center justify-center text-sm text-muted-foreground`,children:e})}function F(e){return e===`failure`?`bg-destructive/10 text-destructive`:e===`success`?`bg-success/10 text-success`:e===`started`?`bg-primary/10 text-primary`:`bg-muted text-muted-foreground`}export{T as ChronicleDashboard};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$ as t,et as n,t as r}from"./ws-client-C_IqS0t4.js";import{i,t as a}from"./react-core-BNmTiJ-I.js";import{Bt as o,Ct as s,Da as c,Fa as l,K as u,Ki as d,Kn as f,Kr as p,Li as m,Oi as h,Pt as g,Rr as _,Ui as v,Xr as y,Yr as b,et as x,ia as S,mt as C,pi as w,qi as T,qn as E,ta as D,tn as O,xr as ee,zn as k}from"./vendor-BshlG0z-.js";import"./i18n-DBqM1FUM.js";import{t as A}from"./utils-BpBOwXlT.js";import{i as j}from"./codemap-activity-store-CWi-Yd9Z.js";import{d as M,g as N,o as P,v as F}from"./stores-Cfei1ViB.js";import{o as I}from"./view-navigation-CvWJeGMc.js";import{O as L,_ as te,k as R}from"./index-TDhvFXb0.js";import{a as ne,c as z,i as B,n as V,o as H,s as U,t as W}from"./monaco-_kWjHrlo.js";import{t as G}from"./empty-state-BxilAuC3.js";import{t as K}from"./monaco-theme-Dmx6JuoU.js";import{t as re}from"./MemoryDrawer-C5sEdVvj.js";var q={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,css:`css`,html:`html`,svg:`xml`,md:`markdown`,yml:`yaml`,yaml:`yaml`,toml:`toml`,sh:`shell`,bash:`shell`,ps1:`powershell`,py:`python`,rs:`rust`,go:`go`,rb:`ruby`,java:`java`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,sql:`sql`,xml:`xml`},J=Array.from(new Set(Object.values(q))).filter(e=>e!==`plaintext`),ie=12e3,ae=4e3,oe=5e3,se=1e4;function ce(e){return q[e.split(`.`).pop()?.toLowerCase()??``]??`plaintext`}function le(e){return e.match(/([A-Za-z_$][\w$]*)$/)?.[1]??``}function ue(e,t){return e.triggerCharacter?!0:t.length>=3}function de(e,t){return e.triggerCharacter===`.`||!e.triggerCharacter&&/^(findBy|findAllBy|create|update|delete|remove|get[A-Z_]|set[A-Z_]|use[A-Z_])/.test(t)}function fe(e){return[e.filePath,e.language,e.lineNumber,e.column,e.versionId??``,e.triggerCharacter??``,e.linePrefix.slice(-160),e.suffix.slice(0,160)].join(`\0`)}var Y=e(i(),1);function pe(e){let t=new Set,n=new Set,r=new Set,i=new Set,a=new Set,o,s;for(let c of e)c.sessionId&&t.add(c.sessionId),c.taskId&&n.add(c.taskId),c.boardId&&r.add(c.boardId),c.toolName&&i.add(c.toolName),c.modelId&&a.add(c.modelId),(!o||c.occurredAt<o)&&(o=c.occurredAt),(!s||c.occurredAt>s)&&(s=c.occurredAt);return{mutations:e.length,sessions:t.size,tasks:n.size,boards:r.size,tools:[...i],models:[...a],firstAt:o,lastAt:s}}var me=/(write|edit|update|create|delete|rename|modified|changed)/i;function he(e){return e.replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/{2,}/g,`/`).toLowerCase()}function X(e,t){let n=he(e),r=he(t);return n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function ge(e,t=Date.now()){let n=e.filter(e=>t-e.at<=18e5),r=n.filter(e=>me.test(e.action)),i=new Set(n.map(e=>e.sessionId).filter(Boolean)).size,a=new Set(n.map(e=>e.actor).filter(Boolean)).size,o=new Set(n.map(e=>e.taskId).filter(Boolean)).size;return{level:r.length>=8||r.length>=4&&a>=3?`churn`:r.length>0?`active`:`quiet`,mutationCount:r.length,sessionCount:i,actorCount:a,taskCount:o}}function Z(e){return typeof e==`string`&&e.length>0?e:void 0}function _e(e){let t=Date.parse(e.occurredAt??e.observedAt);return Number.isFinite(t)?t:Date.now()}function ve(e){let t=e.attributes??{},n=Z(t.operation)??e.eventType,r=e.scope.agentId,i=e.runtime?.providerId,a=e.runtime?.modelId;return{id:e.eventId,at:_e(e),action:n,actor:r??i??Z(t.actor)??`external`,source:Z(t.source)??e.tags?.collector??`chronicle`,summary:[e.eventType,i&&a?`${i}/${a}`:i,e.outcome].filter(Boolean).join(` · `),sessionId:e.scope.sessionId,agentId:r,taskId:e.scope.taskId??Z(t.taskId),boardId:Z(t.boardId)??e.scope.boardId,tool:Z(t.toolName),status:e.outcome,raw:e}}function ye(e){return{id:e.id??`${e.filePath}:${e.timestamp}:${e.type}`,at:e.timestamp,action:e.type,actor:e.agentName??e.agent??e.agentId??`external`,source:e.source??`live`,summary:e.summary,sessionId:e.sessionId,agentId:e.agentId,tool:e.toolName,status:e.status,raw:e}}function be(e){let t=new Set;return e.sort((e,t)=>t.at-e.at).filter(e=>{let n=`${e.id}:${e.at}`;return!t.has(n)&&(t.add(n),!0)})}function xe(e){return e?e.split(/\r?\n/).length:0}function Se(e){return new TextEncoder().encode(e).length}function Ce(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function we(e){return e.length>18?`${e.slice(0,8)}…${e.slice(-6)}`:e}function Te(e,t){let n=R(e,t);return n?{added:n.filter(e=>e.kind===`add`).length,removed:n.filter(e=>e.kind===`del`).length,large:!1}:{added:0,removed:0,large:!0}}var Q=a();function $({text:e}){return(0,Q.jsx)(`div`,{className:`px-3 py-3 text-center text-[10px] text-muted-foreground`,children:e})}function Ee({record:e,raw:t=!1}){let n=new Date(e.at).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),r=(0,Q.jsxs)(`div`,{className:`grid grid-cols-[62px_74px_minmax(90px,.7fr)_minmax(160px,1.5fr)] items-center gap-2 text-[9px]`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-muted-foreground`,children:n}),(0,Q.jsx)(`span`,{className:A(`w-fit rounded px-1.5 py-0.5 font-mono`,me.test(e.action)?`bg-warning/10 text-warning`:`bg-primary/10 text-primary`),children:e.action}),(0,Q.jsx)(`span`,{className:`truncate`,title:e.agentId,children:e.actor}),(0,Q.jsx)(`span`,{className:`truncate text-muted-foreground`,title:e.summary,children:e.summary})]});return t?(0,Q.jsxs)(`details`,{className:`group cursor-pointer px-2.5 py-1.5`,children:[(0,Q.jsx)(`summary`,{className:`list-none [&::-webkit-details-marker]:hidden`,children:r}),(0,Q.jsx)(`pre`,{className:`mt-1.5 max-h-48 overflow-auto rounded border border-border/60 bg-background/60 p-2 font-mono text-[8px] leading-relaxed text-muted-foreground`,children:JSON.stringify(e.raw,null,2)})]}):(0,Q.jsx)(`div`,{className:`px-2.5 py-1.5`,children:r})}function De({records:e,loading:t}){let{t:n}=l();return t&&e.length===0?(0,Q.jsxs)(`div`,{className:`flex h-full items-center justify-center gap-2 text-[10px] text-muted-foreground`,children:[(0,Q.jsx)(f,{className:`h-3.5 w-3.5 animate-spin`}),n(`activity:fileActivity.loadingEvidence`)]}):e.length===0?(0,Q.jsx)($,{text:n(`activity:fileActivity.noEvidence`)}):(0,Q.jsx)(`div`,{className:`divide-y divide-border/40`,children:e.map(e=>(0,Q.jsx)(Ee,{record:e,raw:!0},`${e.id}:${e.at}`))})}function Oe({title:e,subtitle:t,raw:n}){return(0,Q.jsxs)(`div`,{className:`rounded-md border border-border/60 bg-background/45 px-2 py-1.5`,title:n,children:[(0,Q.jsx)(`div`,{className:`truncate text-[10px] font-medium`,children:e}),(0,Q.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[8px] text-muted-foreground`,children:t})]})}function ke({icon:e,title:t,empty:n,children:r}){let i=Array.isArray(r)?r.length>0:!!r;return(0,Q.jsxs)(`section`,{className:`min-w-0 p-2`,children:[(0,Q.jsxs)(`h3`,{className:`mb-1.5 flex items-center gap-1.5 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground [&>svg]:h-3 [&>svg]:w-3`,children:[e,t]}),(0,Q.jsx)(`div`,{className:`space-y-1`,children:i?r:(0,Q.jsx)($,{text:n})})]})}function Ae({sessions:e,agents:t,tasks:n,records:r,taskLabel:i,boardTitle:a}){let{t:o}=l();return(0,Q.jsxs)(`div`,{className:`grid min-h-full grid-cols-1 divide-y divide-border/50 md:grid-cols-3 md:divide-x md:divide-y-0`,children:[(0,Q.jsx)(ke,{icon:(0,Q.jsx)(x,{}),title:o(`activity:fileActivity.sessions`),empty:o(`activity:fileActivity.noSessions`),children:e.map(e=>(0,Q.jsx)(Oe,{title:we(e),subtitle:`${r.filter(t=>t.sessionId===e).length} ${o(`activity:fileActivity.events`)}`,raw:e},e))}),(0,Q.jsx)(ke,{icon:(0,Q.jsx)(S,{}),title:o(`activity:fileActivity.actors`),empty:o(`activity:fileActivity.noActors`),children:t.map(e=>(0,Q.jsx)(Oe,{title:e,subtitle:`${r.filter(t=>t.actor===e).length} ${o(`activity:fileActivity.events`)}`},e))}),(0,Q.jsx)(ke,{icon:(0,Q.jsx)(E,{}),title:o(`activity:fileActivity.workLinks`),empty:o(`activity:fileActivity.noWorkLinks`),children:n.map(e=>(0,Q.jsx)(Oe,{title:i(e),subtitle:a??o(`activity:fileActivity.taskOrTodo`),raw:e},e))})]})}function je({lifetime:e}){let{t}=l(),n=[{value:e.mutations,label:t(`activity:fileActivity.lifetimeChanges`)},{value:e.sessions,label:t(`activity:fileActivity.lifetimeSessions`)},{value:e.tasks,label:t(`activity:fileActivity.lifetimeTasks`)},{value:e.boards,label:t(`activity:fileActivity.lifetimeBoards`)}],r=e.firstAt?new Date(e.firstAt).toLocaleDateString():void 0;return(0,Q.jsxs)(`div`,{className:`rounded-md border border-primary/15 bg-primary/[0.03] px-2.5 py-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[9px] font-semibold uppercase tracking-wider text-primary [&>svg]:h-3 [&>svg]:w-3`,children:[(0,Q.jsx)(y,{}),t(`activity:fileActivity.lifetimeTitle`)]}),(0,Q.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-x-3 gap-y-1 font-mono text-[9px] text-muted-foreground`,children:[n.map(e=>(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(`b`,{className:`text-foreground`,children:e.value.toLocaleString()}),` `,e.label]},e.label)),r&&(0,Q.jsx)(`span`,{children:t(`activity:fileActivity.lifetimeSince`,{date:r})})]}),e.tools.length>0&&(0,Q.jsx)(`div`,{className:`mt-1 truncate font-mono text-[8px] text-muted-foreground`,title:e.tools.join(`, `),children:t(`activity:fileActivity.lifetimeTools`,{tools:e.tools.slice(0,6).join(`, `)})})]})}function Me({analysis:e,lifetime:t,records:n,sessions:r,agents:i,tasks:a,taskLabel:o}){let{t:s}=l(),c=[{label:s(`activity:fileActivity.mutations30m`),value:e.mutationCount,icon:(0,Q.jsx)(p,{})},{label:s(`activity:fileActivity.sessions`),value:r.length,icon:(0,Q.jsx)(x,{})},{label:s(`activity:fileActivity.actors`),value:i.length,icon:(0,Q.jsx)(S,{})},{label:s(`activity:fileActivity.linkedWork`),value:a.length,icon:(0,Q.jsx)(E,{})}];return(0,Q.jsxs)(`div`,{className:`grid min-h-full grid-cols-1 gap-2 p-2 lg:grid-cols-[minmax(360px,.9fr)_minmax(420px,1.35fr)]`,children:[(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`div`,{className:`grid grid-cols-4 gap-1.5`,children:c.map(e=>(0,Q.jsxs)(`div`,{className:`rounded-md border border-border/70 bg-background/45 px-2 py-1.5`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 text-[9px] text-muted-foreground [&>svg]:h-3 [&>svg]:w-3`,children:[e.icon,(0,Q.jsx)(`span`,{className:`truncate`,children:e.label})]}),(0,Q.jsx)(`div`,{className:`mt-0.5 font-mono text-sm font-semibold`,children:e.value})]},e.label))}),t.mutations>0&&(0,Q.jsx)(je,{lifetime:t}),(0,Q.jsxs)(`div`,{className:A(`flex items-start gap-2 rounded-md border px-2.5 py-2 text-[10px]`,e.level===`churn`?`border-destructive/25 bg-destructive/[0.055]`:`border-border/70 bg-background/45`),children:[(0,Q.jsx)(g,{className:A(`mt-0.5 h-3.5 w-3.5 shrink-0`,e.level===`churn`?`text-destructive`:`text-primary`)}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`font-semibold`,children:s(`activity:fileActivity.analysisTitle.${e.level}`)}),(0,Q.jsx)(`p`,{className:`mt-0.5 text-muted-foreground`,children:s(`activity:fileActivity.analysisBody.${e.level}`,{mutations:e.mutationCount,actors:e.actorCount,sessions:e.sessionCount})})]})]}),a.length>0&&(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 text-[9px]`,children:[(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[s(`activity:fileActivity.workLinks`),`:`]}),a.slice(0,4).map(e=>(0,Q.jsx)(`span`,{className:`max-w-[180px] truncate rounded border border-primary/20 bg-primary/5 px-1.5 py-0.5 text-primary`,title:e,children:o(e)},e))]})]}),(0,Q.jsxs)(`div`,{className:`min-w-0 rounded-md border border-border/70 bg-background/35`,children:[(0,Q.jsx)(`div`,{className:`border-b border-border/60 px-2.5 py-1.5 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:s(`activity:fileActivity.recentActivity`)}),(0,Q.jsx)(`div`,{className:`divide-y divide-border/40`,children:n.length===0?(0,Q.jsx)($,{text:s(`activity:fileActivity.noEvidence`)}):n.slice(0,5).map(e=>(0,Q.jsx)(Ee,{record:e},`${e.id}:${e.at}`))})]})]})}function Ne({file:e}){let i=n(e=>e.wsUrl),a=t(e=>e.jumpToLine),o=(0,Y.useMemo)(()=>r(i),[i]),[s,c]=(0,Y.useState)(``),[l,u]=(0,Y.useState)(null),[d,p]=(0,Y.useState)(``),[m,h]=(0,Y.useState)(!0),[g,_]=(0,Y.useState)(null),[v,y]=(0,Y.useState)(!1),[x,S]=(0,Y.useState)(!1),[C,E]=(0,Y.useState)(!0),D=(0,Y.useCallback)(()=>{h(!0),_(null),o.send({type:`files.skeleton`,payload:{filePath:e.path,content:e.content,options:{collapseImports:x,includeDocs:C}}})},[o,e.path,e.content,x,C]);(0,Y.useEffect)(()=>{let t=o.on(`files.skeleton_result`,t=>{if(t.type===`files.skeleton_result`&&t.payload.filePath===e.path){if(h(!1),t.payload.error){_(t.payload.error);return}c(t.payload.skeleton),t.payload.stats&&u(t.payload.stats),t.payload.lang&&p(t.payload.lang)}});return D(),()=>{t()}},[o,e.path,D]);let ee=async()=>{if(s)try{await navigator.clipboard.writeText(s),y(!0),setTimeout(()=>y(!1),2e3)}catch{}},k=(e,t)=>{let n=e.match(/(?:\/\*\s*L(\d+)(?:-L\d+)?\s*\*\/|#\s*L(\d+)(?:-L\d+)?)/),r=n?parseInt(n[1]||n[2]||`0`,10):null;return r&&r>0?(0,Q.jsxs)(`div`,{className:`group flex items-center justify-between gap-2 rounded px-1.5 py-0.5 hover:bg-primary/10 transition-colors`,children:[(0,Q.jsx)(`span`,{className:`truncate`,children:e}),(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>a(r),className:`shrink-0 cursor-pointer rounded bg-primary/20 px-1.5 py-0.5 font-mono text-[9px] font-semibold text-primary opacity-75 group-hover:opacity-100 hover:bg-primary hover:text-primary-foreground transition-all`,title:`Jump to line ${r} in editor`,children:[`Jump to L`,r,` →`]})]},t):(0,Q.jsx)(`div`,{className:`px-1.5 py-0.5 whitespace-pre`,children:e},t)};return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-[140px] flex-col p-2`,children:[(0,Q.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center justify-between gap-2 border-b border-border/50 pb-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-primary/10 px-2 py-0.5 font-mono text-[10px] font-semibold uppercase text-primary`,children:[(0,Q.jsx)(b,{className:`h-3 w-3`}),d||`AST`]}),l&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`span`,{className:`rounded bg-success/10 px-1.5 py-0.5 font-mono text-[10px] font-medium text-success`,children:[`-`,l.tokenSavingsPercent,`% Tokens`]}),(0,Q.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[l.originalLines,` → `,l.skeletonLines,` lines`]}),(0,Q.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`(`,l.symbolCount,` symbols)`]})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-[10px]`,children:[(0,Q.jsxs)(`label`,{className:`inline-flex cursor-pointer items-center gap-1 text-muted-foreground hover:text-foreground`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:x,onChange:e=>S(e.target.checked),className:`rounded border-border`}),(0,Q.jsx)(`span`,{children:`Collapse imports`})]}),(0,Q.jsxs)(`label`,{className:`inline-flex cursor-pointer items-center gap-1 text-muted-foreground hover:text-foreground`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:C,onChange:e=>E(e.target.checked),className:`rounded border-border`}),(0,Q.jsx)(`span`,{children:`Include docs`})]}),(0,Q.jsx)(`button`,{type:`button`,onClick:D,className:`rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground`,title:`Refresh Skeleton`,children:(0,Q.jsx)(O,{className:A(`h-3.5 w-3.5`,m&&`animate-spin`)})}),(0,Q.jsxs)(`button`,{type:`button`,onClick:ee,disabled:!s,className:`inline-flex items-center gap-1 rounded bg-secondary px-2 py-1 text-[10px] font-medium text-secondary-foreground hover:bg-secondary/80 disabled:opacity-50`,children:[v?(0,Q.jsx)(T,{className:`h-3 w-3 text-success`}):(0,Q.jsx)(w,{className:`h-3 w-3`}),(0,Q.jsx)(`span`,{children:v?`Copied`:`Copy`})]})]})]}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto rounded border border-border/60 bg-muted/20 p-2 font-mono text-[11px] leading-relaxed`,children:m&&!s?(0,Q.jsxs)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:[(0,Q.jsx)(f,{className:`mr-2 h-4 w-4 animate-spin text-primary`}),(0,Q.jsx)(`span`,{children:`Extracting AST Skeleton…`})]}):g?(0,Q.jsx)(`div`,{className:`p-4 text-warning`,children:g}):(0,Q.jsx)(`div`,{className:`font-mono select-text`,children:s.split(`
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$ as t,et as n,t as r}from"./ws-client-BR51gfnV.js";import{i,t as a}from"./react-core-BNmTiJ-I.js";import{Bt as o,Ct as s,Da as c,Fa as l,K as u,Ki as d,Kn as f,Kr as p,Li as m,Oi as h,Pt as g,Rr as _,Ui as v,Xr as y,Yr as b,et as x,ia as S,mt as C,pi as w,qi as T,qn as E,ta as D,tn as O,xr as ee,zn as k}from"./vendor-BshlG0z-.js";import"./i18n-tRUjoMoU.js";import{t as A}from"./utils-BpBOwXlT.js";import{i as j}from"./codemap-activity-store-CWi-Yd9Z.js";import{d as M,g as N,o as P,v as F}from"./stores-B7GcARdp.js";import{o as I}from"./view-navigation-CvWJeGMc.js";import{O as L,_ as te,k as R}from"./index-BnpuNJ9u.js";import{a as ne,c as z,i as B,n as V,o as H,s as U,t as W}from"./monaco-_kWjHrlo.js";import{t as G}from"./empty-state-BxilAuC3.js";import{t as K}from"./monaco-theme-Dmx6JuoU.js";import{t as re}from"./MemoryDrawer-CyN_6CRo.js";var q={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,css:`css`,html:`html`,svg:`xml`,md:`markdown`,yml:`yaml`,yaml:`yaml`,toml:`toml`,sh:`shell`,bash:`shell`,ps1:`powershell`,py:`python`,rs:`rust`,go:`go`,rb:`ruby`,java:`java`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,sql:`sql`,xml:`xml`},J=Array.from(new Set(Object.values(q))).filter(e=>e!==`plaintext`),ie=12e3,ae=4e3,oe=5e3,se=1e4;function ce(e){return q[e.split(`.`).pop()?.toLowerCase()??``]??`plaintext`}function le(e){return e.match(/([A-Za-z_$][\w$]*)$/)?.[1]??``}function ue(e,t){return e.triggerCharacter?!0:t.length>=3}function de(e,t){return e.triggerCharacter===`.`||!e.triggerCharacter&&/^(findBy|findAllBy|create|update|delete|remove|get[A-Z_]|set[A-Z_]|use[A-Z_])/.test(t)}function fe(e){return[e.filePath,e.language,e.lineNumber,e.column,e.versionId??``,e.triggerCharacter??``,e.linePrefix.slice(-160),e.suffix.slice(0,160)].join(`\0`)}var Y=e(i(),1);function pe(e){let t=new Set,n=new Set,r=new Set,i=new Set,a=new Set,o,s;for(let c of e)c.sessionId&&t.add(c.sessionId),c.taskId&&n.add(c.taskId),c.boardId&&r.add(c.boardId),c.toolName&&i.add(c.toolName),c.modelId&&a.add(c.modelId),(!o||c.occurredAt<o)&&(o=c.occurredAt),(!s||c.occurredAt>s)&&(s=c.occurredAt);return{mutations:e.length,sessions:t.size,tasks:n.size,boards:r.size,tools:[...i],models:[...a],firstAt:o,lastAt:s}}var me=/(write|edit|update|create|delete|rename|modified|changed)/i;function he(e){return e.replace(/\\/g,`/`).replace(/^\.\//,``).replace(/\/{2,}/g,`/`).toLowerCase()}function X(e,t){let n=he(e),r=he(t);return n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function ge(e,t=Date.now()){let n=e.filter(e=>t-e.at<=18e5),r=n.filter(e=>me.test(e.action)),i=new Set(n.map(e=>e.sessionId).filter(Boolean)).size,a=new Set(n.map(e=>e.actor).filter(Boolean)).size,o=new Set(n.map(e=>e.taskId).filter(Boolean)).size;return{level:r.length>=8||r.length>=4&&a>=3?`churn`:r.length>0?`active`:`quiet`,mutationCount:r.length,sessionCount:i,actorCount:a,taskCount:o}}function Z(e){return typeof e==`string`&&e.length>0?e:void 0}function _e(e){let t=Date.parse(e.occurredAt??e.observedAt);return Number.isFinite(t)?t:Date.now()}function ve(e){let t=e.attributes??{},n=Z(t.operation)??e.eventType,r=e.scope.agentId,i=e.runtime?.providerId,a=e.runtime?.modelId;return{id:e.eventId,at:_e(e),action:n,actor:r??i??Z(t.actor)??`external`,source:Z(t.source)??e.tags?.collector??`chronicle`,summary:[e.eventType,i&&a?`${i}/${a}`:i,e.outcome].filter(Boolean).join(` · `),sessionId:e.scope.sessionId,agentId:r,taskId:e.scope.taskId??Z(t.taskId),boardId:Z(t.boardId)??e.scope.boardId,tool:Z(t.toolName),status:e.outcome,raw:e}}function ye(e){return{id:e.id??`${e.filePath}:${e.timestamp}:${e.type}`,at:e.timestamp,action:e.type,actor:e.agentName??e.agent??e.agentId??`external`,source:e.source??`live`,summary:e.summary,sessionId:e.sessionId,agentId:e.agentId,tool:e.toolName,status:e.status,raw:e}}function be(e){let t=new Set;return e.sort((e,t)=>t.at-e.at).filter(e=>{let n=`${e.id}:${e.at}`;return!t.has(n)&&(t.add(n),!0)})}function xe(e){return e?e.split(/\r?\n/).length:0}function Se(e){return new TextEncoder().encode(e).length}function Ce(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function we(e){return e.length>18?`${e.slice(0,8)}…${e.slice(-6)}`:e}function Te(e,t){let n=R(e,t);return n?{added:n.filter(e=>e.kind===`add`).length,removed:n.filter(e=>e.kind===`del`).length,large:!1}:{added:0,removed:0,large:!0}}var Q=a();function $({text:e}){return(0,Q.jsx)(`div`,{className:`px-3 py-3 text-center text-[10px] text-muted-foreground`,children:e})}function Ee({record:e,raw:t=!1}){let n=new Date(e.at).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),r=(0,Q.jsxs)(`div`,{className:`grid grid-cols-[62px_74px_minmax(90px,.7fr)_minmax(160px,1.5fr)] items-center gap-2 text-[9px]`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-muted-foreground`,children:n}),(0,Q.jsx)(`span`,{className:A(`w-fit rounded px-1.5 py-0.5 font-mono`,me.test(e.action)?`bg-warning/10 text-warning`:`bg-primary/10 text-primary`),children:e.action}),(0,Q.jsx)(`span`,{className:`truncate`,title:e.agentId,children:e.actor}),(0,Q.jsx)(`span`,{className:`truncate text-muted-foreground`,title:e.summary,children:e.summary})]});return t?(0,Q.jsxs)(`details`,{className:`group cursor-pointer px-2.5 py-1.5`,children:[(0,Q.jsx)(`summary`,{className:`list-none [&::-webkit-details-marker]:hidden`,children:r}),(0,Q.jsx)(`pre`,{className:`mt-1.5 max-h-48 overflow-auto rounded border border-border/60 bg-background/60 p-2 font-mono text-[8px] leading-relaxed text-muted-foreground`,children:JSON.stringify(e.raw,null,2)})]}):(0,Q.jsx)(`div`,{className:`px-2.5 py-1.5`,children:r})}function De({records:e,loading:t}){let{t:n}=l();return t&&e.length===0?(0,Q.jsxs)(`div`,{className:`flex h-full items-center justify-center gap-2 text-[10px] text-muted-foreground`,children:[(0,Q.jsx)(f,{className:`h-3.5 w-3.5 animate-spin`}),n(`activity:fileActivity.loadingEvidence`)]}):e.length===0?(0,Q.jsx)($,{text:n(`activity:fileActivity.noEvidence`)}):(0,Q.jsx)(`div`,{className:`divide-y divide-border/40`,children:e.map(e=>(0,Q.jsx)(Ee,{record:e,raw:!0},`${e.id}:${e.at}`))})}function Oe({title:e,subtitle:t,raw:n}){return(0,Q.jsxs)(`div`,{className:`rounded-md border border-border/60 bg-background/45 px-2 py-1.5`,title:n,children:[(0,Q.jsx)(`div`,{className:`truncate text-[10px] font-medium`,children:e}),(0,Q.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[8px] text-muted-foreground`,children:t})]})}function ke({icon:e,title:t,empty:n,children:r}){let i=Array.isArray(r)?r.length>0:!!r;return(0,Q.jsxs)(`section`,{className:`min-w-0 p-2`,children:[(0,Q.jsxs)(`h3`,{className:`mb-1.5 flex items-center gap-1.5 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground [&>svg]:h-3 [&>svg]:w-3`,children:[e,t]}),(0,Q.jsx)(`div`,{className:`space-y-1`,children:i?r:(0,Q.jsx)($,{text:n})})]})}function Ae({sessions:e,agents:t,tasks:n,records:r,taskLabel:i,boardTitle:a}){let{t:o}=l();return(0,Q.jsxs)(`div`,{className:`grid min-h-full grid-cols-1 divide-y divide-border/50 md:grid-cols-3 md:divide-x md:divide-y-0`,children:[(0,Q.jsx)(ke,{icon:(0,Q.jsx)(x,{}),title:o(`activity:fileActivity.sessions`),empty:o(`activity:fileActivity.noSessions`),children:e.map(e=>(0,Q.jsx)(Oe,{title:we(e),subtitle:`${r.filter(t=>t.sessionId===e).length} ${o(`activity:fileActivity.events`)}`,raw:e},e))}),(0,Q.jsx)(ke,{icon:(0,Q.jsx)(S,{}),title:o(`activity:fileActivity.actors`),empty:o(`activity:fileActivity.noActors`),children:t.map(e=>(0,Q.jsx)(Oe,{title:e,subtitle:`${r.filter(t=>t.actor===e).length} ${o(`activity:fileActivity.events`)}`},e))}),(0,Q.jsx)(ke,{icon:(0,Q.jsx)(E,{}),title:o(`activity:fileActivity.workLinks`),empty:o(`activity:fileActivity.noWorkLinks`),children:n.map(e=>(0,Q.jsx)(Oe,{title:i(e),subtitle:a??o(`activity:fileActivity.taskOrTodo`),raw:e},e))})]})}function je({lifetime:e}){let{t}=l(),n=[{value:e.mutations,label:t(`activity:fileActivity.lifetimeChanges`)},{value:e.sessions,label:t(`activity:fileActivity.lifetimeSessions`)},{value:e.tasks,label:t(`activity:fileActivity.lifetimeTasks`)},{value:e.boards,label:t(`activity:fileActivity.lifetimeBoards`)}],r=e.firstAt?new Date(e.firstAt).toLocaleDateString():void 0;return(0,Q.jsxs)(`div`,{className:`rounded-md border border-primary/15 bg-primary/[0.03] px-2.5 py-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[9px] font-semibold uppercase tracking-wider text-primary [&>svg]:h-3 [&>svg]:w-3`,children:[(0,Q.jsx)(y,{}),t(`activity:fileActivity.lifetimeTitle`)]}),(0,Q.jsxs)(`div`,{className:`mt-1.5 flex flex-wrap items-center gap-x-3 gap-y-1 font-mono text-[9px] text-muted-foreground`,children:[n.map(e=>(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(`b`,{className:`text-foreground`,children:e.value.toLocaleString()}),` `,e.label]},e.label)),r&&(0,Q.jsx)(`span`,{children:t(`activity:fileActivity.lifetimeSince`,{date:r})})]}),e.tools.length>0&&(0,Q.jsx)(`div`,{className:`mt-1 truncate font-mono text-[8px] text-muted-foreground`,title:e.tools.join(`, `),children:t(`activity:fileActivity.lifetimeTools`,{tools:e.tools.slice(0,6).join(`, `)})})]})}function Me({analysis:e,lifetime:t,records:n,sessions:r,agents:i,tasks:a,taskLabel:o}){let{t:s}=l(),c=[{label:s(`activity:fileActivity.mutations30m`),value:e.mutationCount,icon:(0,Q.jsx)(p,{})},{label:s(`activity:fileActivity.sessions`),value:r.length,icon:(0,Q.jsx)(x,{})},{label:s(`activity:fileActivity.actors`),value:i.length,icon:(0,Q.jsx)(S,{})},{label:s(`activity:fileActivity.linkedWork`),value:a.length,icon:(0,Q.jsx)(E,{})}];return(0,Q.jsxs)(`div`,{className:`grid min-h-full grid-cols-1 gap-2 p-2 lg:grid-cols-[minmax(360px,.9fr)_minmax(420px,1.35fr)]`,children:[(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`div`,{className:`grid grid-cols-4 gap-1.5`,children:c.map(e=>(0,Q.jsxs)(`div`,{className:`rounded-md border border-border/70 bg-background/45 px-2 py-1.5`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1 text-[9px] text-muted-foreground [&>svg]:h-3 [&>svg]:w-3`,children:[e.icon,(0,Q.jsx)(`span`,{className:`truncate`,children:e.label})]}),(0,Q.jsx)(`div`,{className:`mt-0.5 font-mono text-sm font-semibold`,children:e.value})]},e.label))}),t.mutations>0&&(0,Q.jsx)(je,{lifetime:t}),(0,Q.jsxs)(`div`,{className:A(`flex items-start gap-2 rounded-md border px-2.5 py-2 text-[10px]`,e.level===`churn`?`border-destructive/25 bg-destructive/[0.055]`:`border-border/70 bg-background/45`),children:[(0,Q.jsx)(g,{className:A(`mt-0.5 h-3.5 w-3.5 shrink-0`,e.level===`churn`?`text-destructive`:`text-primary`)}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`font-semibold`,children:s(`activity:fileActivity.analysisTitle.${e.level}`)}),(0,Q.jsx)(`p`,{className:`mt-0.5 text-muted-foreground`,children:s(`activity:fileActivity.analysisBody.${e.level}`,{mutations:e.mutationCount,actors:e.actorCount,sessions:e.sessionCount})})]})]}),a.length>0&&(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 text-[9px]`,children:[(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[s(`activity:fileActivity.workLinks`),`:`]}),a.slice(0,4).map(e=>(0,Q.jsx)(`span`,{className:`max-w-[180px] truncate rounded border border-primary/20 bg-primary/5 px-1.5 py-0.5 text-primary`,title:e,children:o(e)},e))]})]}),(0,Q.jsxs)(`div`,{className:`min-w-0 rounded-md border border-border/70 bg-background/35`,children:[(0,Q.jsx)(`div`,{className:`border-b border-border/60 px-2.5 py-1.5 text-[9px] font-semibold uppercase tracking-wider text-muted-foreground`,children:s(`activity:fileActivity.recentActivity`)}),(0,Q.jsx)(`div`,{className:`divide-y divide-border/40`,children:n.length===0?(0,Q.jsx)($,{text:s(`activity:fileActivity.noEvidence`)}):n.slice(0,5).map(e=>(0,Q.jsx)(Ee,{record:e},`${e.id}:${e.at}`))})]})]})}function Ne({file:e}){let i=n(e=>e.wsUrl),a=t(e=>e.jumpToLine),o=(0,Y.useMemo)(()=>r(i),[i]),[s,c]=(0,Y.useState)(``),[l,u]=(0,Y.useState)(null),[d,p]=(0,Y.useState)(``),[m,h]=(0,Y.useState)(!0),[g,_]=(0,Y.useState)(null),[v,y]=(0,Y.useState)(!1),[x,S]=(0,Y.useState)(!1),[C,E]=(0,Y.useState)(!0),D=(0,Y.useCallback)(()=>{h(!0),_(null),o.send({type:`files.skeleton`,payload:{filePath:e.path,content:e.content,options:{collapseImports:x,includeDocs:C}}})},[o,e.path,e.content,x,C]);(0,Y.useEffect)(()=>{let t=o.on(`files.skeleton_result`,t=>{if(t.type===`files.skeleton_result`&&t.payload.filePath===e.path){if(h(!1),t.payload.error){_(t.payload.error);return}c(t.payload.skeleton),t.payload.stats&&u(t.payload.stats),t.payload.lang&&p(t.payload.lang)}});return D(),()=>{t()}},[o,e.path,D]);let ee=async()=>{if(s)try{await navigator.clipboard.writeText(s),y(!0),setTimeout(()=>y(!1),2e3)}catch{}},k=(e,t)=>{let n=e.match(/(?:\/\*\s*L(\d+)(?:-L\d+)?\s*\*\/|#\s*L(\d+)(?:-L\d+)?)/),r=n?parseInt(n[1]||n[2]||`0`,10):null;return r&&r>0?(0,Q.jsxs)(`div`,{className:`group flex items-center justify-between gap-2 rounded px-1.5 py-0.5 hover:bg-primary/10 transition-colors`,children:[(0,Q.jsx)(`span`,{className:`truncate`,children:e}),(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>a(r),className:`shrink-0 cursor-pointer rounded bg-primary/20 px-1.5 py-0.5 font-mono text-[9px] font-semibold text-primary opacity-75 group-hover:opacity-100 hover:bg-primary hover:text-primary-foreground transition-all`,title:`Jump to line ${r} in editor`,children:[`Jump to L`,r,` →`]})]},t):(0,Q.jsx)(`div`,{className:`px-1.5 py-0.5 whitespace-pre`,children:e},t)};return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-[140px] flex-col p-2`,children:[(0,Q.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center justify-between gap-2 border-b border-border/50 pb-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-primary/10 px-2 py-0.5 font-mono text-[10px] font-semibold uppercase text-primary`,children:[(0,Q.jsx)(b,{className:`h-3 w-3`}),d||`AST`]}),l&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`span`,{className:`rounded bg-success/10 px-1.5 py-0.5 font-mono text-[10px] font-medium text-success`,children:[`-`,l.tokenSavingsPercent,`% Tokens`]}),(0,Q.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[l.originalLines,` → `,l.skeletonLines,` lines`]}),(0,Q.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`(`,l.symbolCount,` symbols)`]})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-[10px]`,children:[(0,Q.jsxs)(`label`,{className:`inline-flex cursor-pointer items-center gap-1 text-muted-foreground hover:text-foreground`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:x,onChange:e=>S(e.target.checked),className:`rounded border-border`}),(0,Q.jsx)(`span`,{children:`Collapse imports`})]}),(0,Q.jsxs)(`label`,{className:`inline-flex cursor-pointer items-center gap-1 text-muted-foreground hover:text-foreground`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:C,onChange:e=>E(e.target.checked),className:`rounded border-border`}),(0,Q.jsx)(`span`,{children:`Include docs`})]}),(0,Q.jsx)(`button`,{type:`button`,onClick:D,className:`rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground`,title:`Refresh Skeleton`,children:(0,Q.jsx)(O,{className:A(`h-3.5 w-3.5`,m&&`animate-spin`)})}),(0,Q.jsxs)(`button`,{type:`button`,onClick:ee,disabled:!s,className:`inline-flex items-center gap-1 rounded bg-secondary px-2 py-1 text-[10px] font-medium text-secondary-foreground hover:bg-secondary/80 disabled:opacity-50`,children:[v?(0,Q.jsx)(T,{className:`h-3 w-3 text-success`}):(0,Q.jsx)(w,{className:`h-3 w-3`}),(0,Q.jsx)(`span`,{children:v?`Copied`:`Copy`})]})]})]}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto rounded border border-border/60 bg-muted/20 p-2 font-mono text-[11px] leading-relaxed`,children:m&&!s?(0,Q.jsxs)(`div`,{className:`flex h-full items-center justify-center text-muted-foreground`,children:[(0,Q.jsx)(f,{className:`mr-2 h-4 w-4 animate-spin text-primary`}),(0,Q.jsx)(`span`,{children:`Extracting AST Skeleton…`})]}):g?(0,Q.jsx)(`div`,{className:`p-4 text-warning`,children:g}):(0,Q.jsx)(`div`,{className:`font-mono select-text`,children:s.split(`
|
|
2
2
|
`).map((e,t)=>k(e,t))})})]})}function Pe({label:e}){return(0,Q.jsx)(`span`,{className:`hidden whitespace-nowrap font-mono text-[9px] text-muted-foreground sm:inline`,children:e})}function Fe({file:e}){let{t}=l(),[i,a]=(0,Y.useState)(!0),[o,u]=(0,Y.useState)(224),[f,h]=(0,Y.useState)(`overview`),[g,_]=(0,Y.useState)([]),[x,S]=(0,Y.useState)([]),[C,w]=(0,Y.useState)(!1),[T,k]=(0,Y.useState)(null),[N,F]=(0,Y.useState)(null),I=(0,Y.useRef)(null),te=n(e=>e.wsUrl),R=j(e=>e.history),ne=j(e=>e.activeOperations),z=M(e=>e.activeBoard),B=P(e=>e.snapshot),V=(0,Y.useMemo)(()=>r(te),[te]),H=(0,Y.useCallback)(()=>{k(null),w(!0),typeof V.getGitDiff==`function`&&V.getGitDiff(e.path);let t=typeof V.supportsCapability==`function`?V.supportsCapability.bind(V):null;t?.(`chronicle.query`)?V.send({type:`chronicle.query`,payload:{query:{path:e.path,resourceKind:`file`,order:`desc`,limit:150}}}):w(!1),t?.(`chronicle.metrics`)&&V.send({type:`chronicle.metrics`,payload:{view:`files`,path:e.path,limit:1e3}})},[V,e.path]);(0,Y.useEffect)(()=>{_([]),S([]),F(null);let t=V.on(`chronicle.query_result`,t=>{if(t.type!==`chronicle.query_result`)return;let n=t.payload.events.filter(t=>t.resource?.path&&X(t.resource.path,e.path));t.payload.events.length>0&&n.length===0||(_(n),w(!1))}),n=V.on(`chronicle.metrics_result`,t=>{t.type===`chronicle.metrics_result`&&t.payload.view===`files`&&S(t.payload.data.filter(t=>X(t.path,e.path)))}),r=V.on(`chronicle.error`,e=>{e.type===`chronicle.error`&&(k(e.payload.message),w(!1))}),i=V.on(`git.diff`,t=>{if(t.type!==`git.diff`||!X(t.payload.path,e.path))return;let n=t.payload;if(n.error||n.binary||n.tooLarge){F({text:e.savedContent,available:!1,error:n.error});return}F({text:n.oldText??``,available:!0})});return H(),()=>{t(),n(),r(),i()}},[V,e.path,e.savedContent,H]),(0,Y.useEffect)(()=>{let e=e=>{if(!I.current)return;let t=I.current.startY-e.clientY,n=Math.max(150,Math.floor(window.innerHeight*.62));u(Math.min(n,Math.max(150,I.current.startHeight+t)))},t=()=>{I.current=null,document.body.style.cursor=``,document.body.style.userSelect=``};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}},[]);let U=(0,Y.useMemo)(()=>{let t=[];for(let[n,r]of R)X(n,e.path)&&t.push(...r);for(let n of ne.values())t.push(...n.filter(t=>X(t.filePath,e.path)));return t},[ne,e.path,R]),W=(0,Y.useMemo)(()=>be([...U.map(ye),...g.map(ve)]),[g,U]),G=(0,Y.useMemo)(()=>ge(W),[W]),K=(0,Y.useMemo)(()=>pe(x),[x]),q=N?.text??e.savedContent,J=(0,Y.useMemo)(()=>Te(q,e.content),[q,e.content]),ie=(0,Y.useMemo)(()=>[...new Set(W.map(e=>e.sessionId).filter(e=>!!e))],[W]),ae=(0,Y.useMemo)(()=>[...new Set(W.map(e=>e.actor).filter(Boolean))],[W]),oe=(0,Y.useMemo)(()=>[...new Set(W.map(e=>e.taskId).filter(e=>!!e))],[W]),se=(0,Y.useCallback)(e=>{let t=z?.tasks.find(t=>t.id===e),n=B?.tasks.find(t=>t.id===e||t.shortId===e);return t?.title??n?.title??e},[z,B]),ce=e=>{i||a(!0),I.current={startY:e.clientY,startHeight:i?o:150},document.body.style.cursor=`ns-resize`,document.body.style.userSelect=`none`},le=[{id:`overview`,label:t(`activity:fileActivity.overview`),icon:(0,Q.jsx)(c,{})},{id:`changes`,label:t(`activity:fileActivity.changes`),icon:(0,Q.jsx)(p,{})},{id:`skeleton`,label:`Skeleton`,icon:(0,Q.jsx)(b,{})},{id:`context`,label:t(`activity:fileActivity.context`),icon:(0,Q.jsx)(E,{})},{id:`logs`,label:t(`activity:fileActivity.logs`),icon:(0,Q.jsx)(s,{})},{id:`memory`,label:t(`activity:fileActivity.memory`),icon:(0,Q.jsx)(D,{})}];return(0,Q.jsxs)(`section`,{className:`flex shrink-0 flex-col overflow-hidden border-t border-border bg-card/95 shadow-[0_-10px_30px_hsl(var(--background)/0.24)] backdrop-blur`,style:{height:i?o:38},"data-testid":`file-activity-drawer`,children:[(0,Q.jsx)(`button`,{type:`button`,"aria-label":t(`activity:fileActivity.resizeHint`),className:`group relative block h-2 w-full cursor-ns-resize touch-none`,onPointerDown:ce,onDoubleClick:()=>{a(!0),u(224)},title:t(`activity:fileActivity.resizeHint`),children:(0,Q.jsx)(`span`,{className:`absolute left-1/2 top-0.5 h-1 w-10 -translate-x-1/2 rounded-full bg-border transition-colors group-hover:bg-primary/60`})}),(0,Q.jsxs)(`header`,{className:`flex h-[30px] min-w-0 items-center gap-2 border-b border-border/70 px-2.5`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>a(e=>!e),className:`inline-flex min-w-0 items-center gap-1.5 rounded px-1.5 py-1 text-[11px] font-semibold hover:bg-muted`,"aria-expanded":i,children:[(0,Q.jsx)(y,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,Q.jsx)(`span`,{className:`truncate`,children:t(`activity:fileActivity.title`)}),i?(0,Q.jsx)(d,{className:`h-3 w-3`}):(0,Q.jsx)(v,{className:`h-3 w-3`})]}),(0,Q.jsx)(`span`,{className:`hidden h-3 w-px bg-border sm:block`}),(0,Q.jsx)(Pe,{label:`${xe(e.content)} ${t(`activity:fileActivity.lines`)}`}),(0,Q.jsx)(Pe,{label:Ce(Se(e.content))}),!J.large&&(J.added>0||J.removed>0)&&(0,Q.jsxs)(`span`,{className:`hidden items-center gap-1 font-mono text-[10px] md:flex`,children:[(0,Q.jsxs)(`span`,{className:`text-success`,children:[`+`,J.added]}),(0,Q.jsxs)(`span`,{className:`text-destructive`,children:[`−`,J.removed]})]}),(0,Q.jsxs)(`span`,{className:A(`ml-auto inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[9px] font-semibold uppercase tracking-wide`,G.level===`churn`&&`bg-destructive/10 text-destructive`,G.level===`active`&&`bg-warning/10 text-warning`,G.level===`quiet`&&`bg-success/10 text-success`),children:[(0,Q.jsx)(m,{className:`h-2.5 w-2.5`}),t(`activity:fileActivity.level.${G.level}`)]}),(0,Q.jsx)(`span`,{className:`hidden text-[9px] text-muted-foreground lg:inline`,children:t(`activity:fileActivity.evidenceCount`,{count:W.length})}),i&&(0,Q.jsx)(`button`,{type:`button`,onClick:H,className:`rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground`,title:t(`activity:fileActivity.refresh`),children:(0,Q.jsx)(O,{className:A(`h-3.5 w-3.5`,C&&`animate-spin`)})})]}),i&&(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,Q.jsxs)(`nav`,{className:`flex shrink-0 items-center gap-0.5 border-b border-border/60 bg-muted/20 px-2`,children:[le.map(e=>(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>h(e.id),className:A(`inline-flex h-7 items-center gap-1.5 border-b-2 px-2 text-[10px] transition-colors [&>svg]:h-3 [&>svg]:w-3`,f===e.id?`border-primary font-medium text-foreground`:`border-transparent text-muted-foreground hover:text-foreground`),children:[e.icon,e.label]},e.id)),T&&(0,Q.jsx)(`span`,{className:`ml-auto truncate px-2 text-[9px] text-warning`,children:T})]}),(0,Q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:[f===`overview`&&(0,Q.jsx)(Me,{analysis:G,lifetime:K,records:W,sessions:ie,agents:ae,tasks:oe,taskLabel:se}),f===`changes`&&(0,Q.jsxs)(`div`,{className:`h-full min-h-[120px] p-2`,children:[(0,Q.jsxs)(`div`,{className:`mb-1.5 flex items-center gap-2 text-[9px] text-muted-foreground`,children:[(0,Q.jsx)(ee,{className:`h-3 w-3`}),(0,Q.jsx)(`span`,{children:N?.available?t(`activity:fileActivity.gitToBuffer`):t(`activity:fileActivity.savedToBuffer`)}),e.dirty&&(0,Q.jsx)(`span`,{className:`rounded bg-warning/10 px-1.5 py-0.5 text-warning`,children:t(`activity:fileActivity.unsaved`)}),N?.error&&(0,Q.jsx)(`span`,{className:`truncate text-warning`,children:N.error})]}),(0,Q.jsx)(`div`,{className:`h-[calc(100%-24px)] min-h-[90px]`,children:(0,Q.jsx)(L,{oldText:q,newText:e.content,caption:e.path,fill:!0})})]}),f===`skeleton`&&(0,Q.jsx)(Ne,{file:e}),f===`context`&&(0,Q.jsx)(Ae,{sessions:ie,agents:ae,tasks:oe,records:W,taskLabel:se,boardTitle:z?.title??B?.title}),f===`logs`&&(0,Q.jsx)(De,{records:W,loading:C}),f===`memory`&&(0,Q.jsx)(`div`,{className:`h-full min-h-[120px]`,children:(0,Q.jsx)(re,{filePath:e.path,open:!0,onClose:()=>h(`overview`)})})]})]})]})}B.config({monaco:W});function Ie(e){switch(e){case`method`:return z.CompletionItemKind.Method;case`function`:return z.CompletionItemKind.Function;case`constructor`:return z.CompletionItemKind.Constructor;case`field`:return z.CompletionItemKind.Field;case`variable`:return z.CompletionItemKind.Variable;case`class`:return z.CompletionItemKind.Class;case`interface`:return z.CompletionItemKind.Interface;case`module`:return z.CompletionItemKind.Module;case`property`:return z.CompletionItemKind.Property;case`unit`:return z.CompletionItemKind.Unit;case`value`:return z.CompletionItemKind.Value;case`enum`:return z.CompletionItemKind.Enum;case`keyword`:return z.CompletionItemKind.Keyword;case`snippet`:return z.CompletionItemKind.Snippet;case`file`:return z.CompletionItemKind.File;case`reference`:return z.CompletionItemKind.Reference;default:return z.CompletionItemKind.Text}}function Le(){let e=t(e=>e.openFiles),n=t(e=>e.activeFilePath),r=t(e=>e.setActiveFile),i=t(e=>e.closeFile);return e.length===0?null:(0,Q.jsx)(`div`,{className:`flex items-center border-b bg-muted/40 overflow-x-auto shrink-0`,children:e.map(e=>{let t=e.path===n,a=e.path.split(`/`).pop()??e.path;return(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>r(e.path),onMouseDown:t=>{t.button===1&&(t.preventDefault(),i(e.path))},className:A(`group flex items-center gap-1.5 px-3 py-1.5 text-[11px] border-r whitespace-nowrap min-w-0 max-w-[180px] transition-colors`,t?`bg-background border-t-2 border-t-primary text-foreground -mb-px`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),title:e.path,children:[e.dirty&&(0,Q.jsx)(h,{className:`h-2 w-2 fill-current text-primary shrink-0`}),(0,Q.jsx)(`span`,{className:`truncate`,children:a}),(0,Q.jsx)(u,{className:A(`h-3 w-3 shrink-0 rounded-sm hover:bg-muted-foreground/20 opacity-0 group-hover:opacity-100 transition-opacity`,t&&`opacity-100`),onClick:t=>{t.stopPropagation(),i(e.path)}})]},e.path)})})}function Re(){let{t:e}=l(),i=t(e=>e.openFiles),a=t(e=>e.activeFilePath),s=t(e=>e.updateContent),{theme:c}=te(),u=(0,Y.useRef)(null),d=(0,Y.useRef)(a),f=(0,Y.useRef)(new Map),p=(0,Y.useMemo)(()=>i.find(e=>e.path===a)??null,[i,a]),m=a?ce(a):`plaintext`,h=K(),[g,v]=(0,Y.useState)(!1),[y,b]=(0,Y.useState)({line:1,col:1}),[x,S]=(0,Y.useState)(!1),[w,T]=(0,Y.useState)(!1),E=N(e=>e.info?.branch);(0,Y.useEffect)(()=>{d.current=a},[a]),(0,Y.useEffect)(()=>{let e=K();U.setTheme(e)},[c]);let D=t(e=>e.targetLine),O=t(e=>e.clearTargetLine);(0,Y.useEffect)(()=>{D&&u.current&&(u.current.revealLineInCenter(D.line),u.current.setPosition({lineNumber:D.line,column:D.col??1}),u.current.focus(),O())},[D,O]),(0,Y.useEffect)(()=>{let e=J.map(e=>z.registerCompletionItemProvider(e,{triggerCharacters:[`.`,`_`],provideCompletionItems:async(e,t,i,a)=>{let o=d.current;if(!o)return{suggestions:[]};let s=e.getOffsetAt(t),c=e.getValue(),l=c.slice(Math.max(0,s-ie),s),u=c.slice(s,s+ae),p=e.getLineContent(t.lineNumber).slice(0,Math.max(0,t.column-1)),m=le(p),h={triggerCharacter:i.triggerCharacter,triggerKind:i.triggerKind};if(!ue(h,m))return{suggestions:[]};let g=`cmp_${Date.now()}_${Math.random().toString(36).slice(2)}`,_=e.getWordUntilPosition(t),v={startLineNumber:t.lineNumber,endLineNumber:t.lineNumber,startColumn:_.startColumn,endColumn:t.column},y=r(n.getState().wsUrl),b=e=>e.map((e,t)=>({label:e.label,kind:Ie(e.kind),insertText:e.insertText,detail:e.detail??(e.source?`WrongStack ${e.source}`:void 0),documentation:e.documentation,sortText:e.sortText??`${String(t).padStart(3,`0`)}-${e.label}`,range:v,insertTextRules:e.kind===`snippet`?z.CompletionItemInsertTextRule.InsertAsSnippet:void 0})),x=fe({filePath:o,language:e.getLanguageId(),lineNumber:t.lineNumber,column:t.column,versionId:e.getVersionId(),triggerCharacter:i.triggerCharacter,linePrefix:p,suffix:u}),S=f.current.get(x);return S&&S.expiresAt>Date.now()?{suggestions:b(S.items)}:await new Promise(n=>{let r=!1,s=()=>{},d=null,p,_=e=>{r||(r=!0,s(),p!==void 0&&window.clearTimeout(p),d?.dispose(),n({suggestions:e}))};s=y.on(`completion.result`,e=>{let t=e;t.payload.requestId===g&&(f.current.set(x,{expiresAt:Date.now()+se,items:t.payload.items}),_(b(t.payload.items)))}),p=window.setTimeout(()=>_([]),oe),d=a.onCancellationRequested(()=>_([])),y.requestCompletion({requestId:g,filePath:o,language:e.getLanguageId(),lineNumber:t.lineNumber,column:t.column,content:c.length<=5e5?c:void 0,prefix:l,suffix:u,triggerCharacter:i.triggerCharacter,triggerKind:i.triggerKind,allowLlm:de(h,m)})})}}));return()=>{e.forEach(e=>{e.dispose()})}},[]);let j=(0,Y.useCallback)(()=>{let e=u.current;if(!e)return null;let t=e.getSelection();if(!t||t.isEmpty())return null;let n=e.getModel();if(!n)return null;let r=n.getValueInRange(t);return r.trim()?{content:r,startLine:t.startLineNumber,endLine:t.endLineNumber}:null},[]),M=(0,Y.useCallback)(()=>{I(`chat`),requestAnimationFrame(()=>{document.querySelector(`[data-chat-textarea]`)?.focus()})},[]),P=(0,Y.useCallback)(()=>{let e=d.current;if(!e)return;let t=j();t&&(F.getState().addRef({kind:`snippet`,path:e,startLine:t.startLine,endLine:t.endLine,content:t.content}),M())},[j,M]),L=(0,Y.useCallback)(()=>{let e=d.current;e&&(F.getState().addRef({kind:`file`,path:e}),M())},[M]),R=(0,Y.useCallback)(t=>{u.current=t,U.setTheme(K()),t.onDidChangeCursorSelection?.(()=>{let e=t.getSelection();v(!!e&&!e.isEmpty())}),t.onDidChangeCursorPosition?.(e=>{e?.position&&b({line:e.position.lineNumber,col:e.position.column})}),t.addAction({id:`wrongstack-send-to-chat`,label:e(`activity:codeEditor.sendSelectionAction`),contextMenuGroupId:`wrongstack`,contextMenuOrder:0,precondition:void 0,keybindings:[H.CtrlCmd|H.Shift|ne.KeyL],run:e=>{let t=e.getSelection();t&&!t.isEmpty()?P():L()}})},[P,L]),B=(0,Y.useCallback)(e=>{a&&e!==void 0&&s(a,e)},[a,s]);return(0,Y.useEffect)(()=>{let e=e=>{let n=e.ctrlKey||e.metaKey,r=e.target?.tagName?.toLowerCase()===`textarea`||e.target?.closest(`.monaco-editor`)!==null;!n||!r||(e.key.toLowerCase()===`s`&&(e.preventDefault(),window.dispatchEvent(new CustomEvent(`wrongstack:save-file`,{detail:{filePath:a}}))),e.key.toLowerCase()===`w`&&(e.preventDefault(),a&&t.getState().closeFile(a)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]),i.length===0?(0,Q.jsx)(G,{title:e(`activity:codeEditor.noFilesOpen`),description:e(`activity:codeEditor.selectToEdit`)}):(0,Q.jsxs)(`div`,{className:`flex h-full min-w-0 flex-col overflow-hidden`,children:[(0,Q.jsx)(Le,{}),(0,Q.jsxs)(`div`,{className:`relative min-h-0 min-w-0 flex-1 overflow-hidden`,children:[(g||p)&&(0,Q.jsxs)(`div`,{className:`absolute top-2 right-2 z-10 flex items-center gap-1 rounded-lg border border-border bg-popover/95 backdrop-blur shadow-md p-1`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>S(e=>!e),className:A(`inline-flex items-center gap-1 rounded-md px-2 py-1 text-[11px] transition-colors`,x?`bg-primary/20 text-primary font-medium`:`text-muted-foreground hover:text-foreground hover:bg-accent`),title:x?`Disable word wrap`:`Enable word wrap`,children:[(0,Q.jsx)(C,{className:`h-3 w-3`}),(0,Q.jsx)(`span`,{children:`Wrap`})]}),(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>T(e=>!e),className:A(`inline-flex items-center gap-1 rounded-md px-2 py-1 text-[11px] transition-colors`,w?`bg-primary/20 text-primary font-medium`:`text-muted-foreground hover:text-foreground hover:bg-accent`),title:w?`Hide minimap`:`Show minimap`,children:[(0,Q.jsx)(k,{className:`h-3 w-3`}),(0,Q.jsx)(`span`,{children:`Map`})]}),(0,Q.jsx)(`div`,{className:`h-3.5 w-px bg-border/80 mx-0.5`}),(0,Q.jsxs)(`button`,{type:`button`,onClick:g?P:L,className:`inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-[11px] text-foreground hover:bg-accent transition-colors`,title:e(g?`activity:codeEditor.sendSelectedTitle`:`activity:codeEditor.mentionFileTitle`),children:[g?(0,Q.jsx)(o,{className:`h-3 w-3`}):(0,Q.jsx)(_,{className:`h-3 w-3`}),(0,Q.jsx)(`span`,{children:e(g?`activity:codeEditor.sendToChat`:`activity:codeEditor.mentionFile`)})]})]}),p?(0,Q.jsx)(V,{language:m,value:p.content,onChange:B,theme:h,onMount:R,loading:(0,Q.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,Q.jsx)(`span`,{className:`text-[11px] text-muted-foreground animate-pulse`,children:e(`activity:codeEditor.loadingEditor`)})}),options:{minimap:{enabled:w},fontSize:13,fontFamily:`'IBM Plex Mono', 'Cascadia Code', 'Fira Code', 'JetBrains Mono', monospace`,lineNumbers:`on`,renderWhitespace:`selection`,scrollBeyondLastLine:!1,wordWrap:x?`on`:`off`,tabSize:2,smoothScrolling:!0,cursorBlinking:`smooth`,cursorSmoothCaretAnimation:`on`,bracketPairColorization:{enabled:!0},"semanticHighlighting.enabled":!0,automaticLayout:!0,padding:{top:8}}},p.path):(0,Q.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,Q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:e(`activity:codeEditor.selectTab`)})})]}),p&&(0,Q.jsxs)(`div`,{className:`flex h-6 shrink-0 items-center justify-between border-t border-border/70 bg-muted/30 px-3 text-[11px] text-muted-foreground font-mono select-none`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[E&&(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-foreground/80 font-medium`,children:[(0,Q.jsx)(ee,{className:`h-3 w-3 text-primary shrink-0`}),(0,Q.jsx)(`span`,{className:`truncate max-w-[140px]`,children:E})]}),(0,Q.jsx)(`span`,{className:`truncate max-w-[320px] text-muted-foreground`,children:p.path})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0`,children:[(0,Q.jsxs)(`span`,{children:[`Ln `,y.line,`, Col `,y.col]}),(0,Q.jsx)(`span`,{children:`UTF-8`}),(0,Q.jsx)(`span`,{className:`uppercase text-[10px] font-semibold text-primary`,children:m})]})]}),p&&(0,Q.jsx)(Fe,{file:p})]})}export{Re as CodeEditor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-BNmTiJ-I.js";import{Aa as r,Da as i,Fa as a,Gi as o,K as s,Ki as c,Kn as l,Nr as u,Nt as d,Sn as f,Vt as p,Yr as m,cn as h,ei as g,gt as _,ir as v,kr as ee,n as te,nn as y,pn as b,pr as x,ra as S,wn as C,xn as w,xr as T,ya as E}from"./vendor-BshlG0z-.js";import"./i18n-DBqM1FUM.js";import{a as D,c as O,d as ne,f as re,h as ie,m as ae,n as oe,o as k,p as se,r as ce,t as le,u as ue}from"./xyflow-BNn76cbK.js";import{t as A}from"./utils-BpBOwXlT.js";import{i as de,r as fe,t as pe}from"./codemap-activity-store-CWi-Yd9Z.js";import{t as me}from"./codemap-index-store-3M7F08K_.js";var j=e(t(),1),he=4096,M=new Map;function N(e){let t=M.get(e);if(t!==void 0)return t;let n=e.replace(/\\/g,`/`).replace(/^\.\//,``).toLocaleLowerCase();for(;M.size>=he;){let e=M.keys().next().value;if(e===void 0)break;M.delete(e)}return M.set(e,n),n}function P(e){return e.level===`packages`?`packages`:e.level===`files`?`files:${e.package}`:`symbols:${e.file}`}function ge(e){return e.level===`packages`?`/api/codemap/packages`:e.level===`files`?`/api/codemap/files?package=${encodeURIComponent(e.package)}`:`/api/codemap/symbols?file=${encodeURIComponent(e.file)}`}function _e(e,t,n){let r=new Map(e.nodes.map(e=>[e.id,e])),i=[];for(let a of e.edges){let e=n===`incoming`?a.target===t?a.source:void 0:a.source===t?a.target:void 0;if(!e)continue;let o=r.get(e);o&&i.push({node:o,edge:a})}return i.sort((e,t)=>t.edge.weight-e.edge.weight||e.node.label.localeCompare(t.node.label))}function ve(e,t){let n=new Set([t]);for(let r of e.edges)r.source===t&&n.add(r.target),r.target===t&&n.add(r.source);return n}function ye(e,t){let n=new Map(e.nodes.map(e=>[e.id,0]));for(let r of e.edges)!t.has(r.source)||!t.has(r.target)||(n.set(r.source,(n.get(r.source)??0)+r.weight),r.target!==r.source&&n.set(r.target,(n.get(r.target)??0)+r.weight));return n}function F(e){let t=new Set(e.nodes.map(e=>e.id)),n=ye(e,t),r=new Map(e.nodes.map(e=>[e.id,0])),i=new Map;for(let n of e.edges){if(!t.has(n.source)||!t.has(n.target)||n.source===n.target)continue;r.set(n.target,(r.get(n.target)??0)+1);let e=i.get(n.source)??[];e.push(n.target),i.set(n.source,e)}let a=new Map,o=e.nodes.filter(e=>(r.get(e.id)??0)===0).sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0)).map(e=>e.id);o.length===0&&e.nodes[0]&&o.push(e.nodes[0].id);for(let e of o)a.set(e,0);let s=new Set,c=0;for(;c<o.length;){let e=o[c++];if(!s.has(e)){s.add(e);for(let t of i.get(e)??[])a.set(t,Math.max(a.get(t)??0,Math.min((a.get(e)??0)+1,7))),r.set(t,(r.get(t)??1)-1),(r.get(t)??0)<=0&&o.push(t)}}let l=e.nodes.filter(e=>!a.has(e.id)).sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0));l.forEach((e,t)=>{a.set(e.id,t%Math.min(4,Math.max(1,l.length)))});let u=new Map;for(let t of e.nodes){let e=a.get(t.id)??0,n=u.get(e)??[];n.push(t),u.set(e,n)}for(let e of u.values())e.sort((e,t)=>Number(e.external)-Number(t.external)||(n.get(t.id)??0)-(n.get(e.id)??0)||e.label.localeCompare(t.label));let d=Math.max(1,...[...u.values()].map(e=>e.length))*160,f=[];for(let[e,t]of[...u.entries()].sort(([e],[t])=>e-t)){let n=(d-t.length*160)/2;t.forEach((t,r)=>{f.push({node:t,position:{x:e*386,y:n+r*160}})})}return f}function be(e,t){if(e.nodes.length===0)return[];let n=ye(e,new Set(e.nodes.map(e=>e.id))),r=e.nodes.find(e=>e.id===t)??[...e.nodes].sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0))[0],i=ve(e,r.id);i.delete(r.id);let a=e.nodes.filter(e=>i.has(e.id)),o=e.nodes.filter(e=>e.id!==r.id&&!i.has(e.id)),s=[{node:r,position:{x:0,y:0}}],c=(e,t,n)=>{e.forEach((r,i)=>{let a=n+Math.PI*2*i/Math.max(1,e.length);s.push({node:r,position:{x:Math.cos(a)*t,y:Math.sin(a)*t}})})};c(a,Math.max(330,a.length*34),-Math.PI/2);for(let e=0;e<o.length;e+=18)c(o.slice(e,e+18),620+Math.floor(e/18)*280,-Math.PI/2+.12);return s}function xe(e,t,n){return t===`orbit`?be(e,n):F(e)}function I(e,t,n){if(e.length<=n)return e;let r=t?e.filter(e=>e.source===t||e.target===t):[],i=e.filter(e=>!t||e.source!==t&&e.target!==t).sort((e,t)=>t.weight-e.weight||e.source.localeCompare(t.source)||e.target.localeCompare(t.target)),a=Math.max(0,n-r.length);return[...r,...i.slice(0,a)]}function Se(e,t,n){if(n===`all`)return e;let r=e.nodes;if(e.nodes.length>96){let n=new Map(e.nodes.map(e=>[e.id,e])),i=new Map;for(let t of e.edges)i.set(t.source,(i.get(t.source)??0)+t.weight),i.set(t.target,(i.get(t.target)??0)+t.weight);let a=[...e.nodes].sort((e,t)=>(i.get(t.id)??0)-(i.get(e.id)??0)||e.label.localeCompare(t.label)),o=new Set,s=e=>{n.has(e)&&o.size<96&&o.add(e)};if(t&&n.has(t)){s(t);let n=e.edges.filter(e=>e.source===t||e.target===t).sort((e,t)=>t.weight-e.weight);for(let e of n)s(e.source),s(e.target);let r=new Set(o),i=e.edges.filter(e=>r.has(e.source)||r.has(e.target)).sort((e,t)=>t.weight-e.weight);for(let e of i)s(e.source),s(e.target)}else{let e=a.filter(e=>!e.external).slice(0,72),t=a.filter(e=>e.external).slice(0,24);for(let n of[...e,...t])s(n.id)}for(let e of a)s(e.id);r=e.nodes.filter(e=>o.has(e.id))}let i=new Set(r.map(e=>e.id)),a=e.edges.filter(e=>i.has(e.source)&&i.has(e.target));return{nodes:r,edges:I(a,t,180)}}var Ce=[`/src/main/java/`,`/src/main/kotlin/`,`/src/`,`/lib/`,`/internal/`,`/cmd/`,`/pkg/`,`/app/`];function we(e){let t=(e.file??e.label).replace(/\\/g,`/`),n=e.package??``,r=n.startsWith(`@wrongstack/`)?`/packages/${n.slice(12)}/`:n.startsWith(`app:`)?`/apps/${n.slice(4)}/`:void 0;if(!r)return;let i=t.indexOf(r);return i>=0?t.slice(i+r.length):void 0}function L(e){let t=(e.file??e.label).replace(/\\/g,`/`),n=we(e);if(n!==void 0)return n;let r=-1,i=0;for(let e of Ce){let n=t.lastIndexOf(e);n>r&&(r=n,i=n+e.length)}return r>=0?t.slice(i):t.split(`/`).slice(-3).join(`/`)}function Te(e){if(e.length===0)return``;let t=e.map(e=>e.split(`/`)),n=t[0]??[],r=0;for(;r<n.length-1;){let e=n[r];if(!t.every(t=>t.length-1>r&&t[r]===e))break;r++}return r===0?``:`${n.slice(0,r).join(`/`)}/`}var Ee=new WeakMap;function De(e){let t=Ee.get(e);if(t)return t;let n={name:``,path:``,directories:[],files:[]},r=e.filter(e=>e.kind===`file`&&!e.external),i=r.map(we),a=i.every(e=>e!==void 0),o=a?``:Te(r.map(e=>(e.file??e.label).replace(/\\/g,`/`)));for(let[e,t]of r.entries()){let r=(t.file??t.label).replace(/\\/g,`/`),s=i[e],c=(a?s??L(t):o&&r.startsWith(o)?r.slice(o.length):L(t)).split(`/`).filter(Boolean),l=c.pop()??t.label,u=n;for(let e of c){let t=u.path?`${u.path}/${e}`:e,n=u.directories.find(t=>t.name===e);n||(n={name:e,path:t,directories:[],files:[]},u.directories.push(n)),u=n}u.files.push({...t,label:l})}let s=e=>{e.directories.sort((e,t)=>e.name.localeCompare(t.name)),e.files.sort((e,t)=>e.label.localeCompare(t.label)),e.directories.forEach(s)};return s(n),Ee.set(e,n),n}function Oe(e){let t=2166136261,n=e=>{for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)};for(let t of e.nodes)n(t.id);for(let r of e.edges)n(r.source),n(r.target),n(r.refType),t^=r.weight|0,t=Math.imul(t,16777619);return`${e.nodes.length}:${e.edges.length}:${t>>>0}`}function ke(e,t,n,r){for(e.has(t)&&e.delete(t),e.set(t,n);e.size>r;){let t=e.keys().next().value;if(t===void 0)break;e.delete(t)}}function Ae(e,t){if(!e||!t)return!1;let n=N(e),r=N(t);return n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function je(e){let t=N(e),n=t.match(/\/packages\/([^/]+)\//);if(n?.[1])return`@wrongstack/${n[1]}`;let r=t.match(/\/apps\/([^/]+)\//);return r?.[1]?`app:${r[1]}`:`(root)`}function Me(e,t){return t.kind===`package`?je(e.filePath)===(t.package??t.label):Ae(e.filePath,t.file)?t.kind!==`symbol`||e.symbol?.id===t.id:!1}function R(e){let t=new Map;for(let n of e){let e=N(n.filePath),r=t.get(e);r?r.push(n):t.set(e,[n])}return t}function Ne(e,t){let n=new Map;if(t.length===0||e.length===0)return n;let r=R(t),i=new Map;for(let a of e){let e;if(a.kind===`package`){let n=a.package??a.label,r=i.get(n);r||(r=t.filter(e=>je(e.filePath)===n),i.set(n,r)),e=r}else if(a.file){let t=N(a.file),n=r.get(t);if(!n){n=[];for(let[e,i]of r)(e.endsWith(`/${t}`)||t.endsWith(`/${e}`))&&n.push(...i)}e=a.kind===`symbol`?n.filter(e=>e.symbol?.id===a.id):n}else e=[];e.length>0&&n.set(a.id,e)}return n}function Pe(e){if(e.length===0)return``;let t=`${e.length}`;for(let n=0;n<e.length;n++){let r=e[n];t+=`|${r.id??``}:${r.toolUseId??``}:${r.filePath}:${r.type}:${r.status??``}:${r.symbol?.id??``}:${r.timestamp}`}return t}function Fe(e,t){let n=t.filter(t=>t.kind===`symbol`&&!t.external&&Ae(t.file,e.filePath));if(n.length===0)return;if(e.line)return[...n].sort((e,t)=>(t.line??0)-(e.line??0)).find(t=>(t.line??0)<=e.line)??n[0];let r=e.summary.toLocaleLowerCase();return n.find(e=>e.label.length>2&&(r.includes(e.label.toLocaleLowerCase())||!!(e.signature&&r.includes(e.signature.toLocaleLowerCase()))))}var z=n();function Ie({historyFile:e,fileHistory:t,onClose:n}){let{t:r}=a();return(0,z.jsxs)(`div`,{className:`absolute right-0 top-0 z-50 flex h-full w-[390px] max-w-[90%] flex-col border-l bg-card shadow-2xl`,children:[(0,z.jsxs)(`div`,{className:`flex h-12 items-center justify-between border-b px-4`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,z.jsx)(i,{className:`h-4 w-4 shrink-0 text-warning`}),(0,z.jsx)(`span`,{className:`truncate font-mono text-[11px] font-semibold`,title:e,children:e})]}),(0,z.jsx)(`button`,{type:`button`,onClick:n,className:`flex h-7 w-7 items-center justify-center border text-muted-foreground hover:bg-muted`,"aria-label":r(`activity:codeMap.closeActivity`),children:(0,z.jsx)(s,{className:`h-3.5 w-3.5`})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:t.length===0?(0,z.jsx)(`p`,{className:`py-12 text-center text-[10px] text-muted-foreground`,children:r(`activity:codeMap.noActivityRecordedForThisFile`)}):t.map((e,t)=>(0,z.jsxs)(`div`,{className:`mb-1 flex items-start gap-2 border p-2 text-[10px]`,children:[(0,z.jsx)(`span`,{className:A(`border px-1.5 py-0.5 font-mono text-[8px] font-bold uppercase`,e.type===`delete`?`border-destructive/40 text-destructive`:e.type===`read`?`border-info/40 text-info`:`border-warning/40 text-warning`),children:e.type}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`div`,{className:`font-mono text-[9px] text-muted-foreground`,children:new Date(e.timestamp).toLocaleTimeString()}),e.toolName&&(0,z.jsxs)(`div`,{className:`mt-1`,children:[`via `,e.toolName]}),e.agent&&(0,z.jsx)(`div`,{className:`text-muted-foreground`,children:e.agent}),e.summary&&(0,z.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:e.summary}),e.change&&(0,z.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 font-mono text-[8px]`,children:[(0,z.jsxs)(`span`,{className:`border border-success/40 bg-success/10 px-1 text-success`,children:[`+`,e.change.added]}),(0,z.jsxs)(`span`,{className:`border border-destructive/40 bg-destructive/10 px-1 text-destructive`,children:[`−`,e.change.removed]}),e.change.before&&(0,z.jsx)(`span`,{className:`ml-1 truncate text-destructive/80`,title:e.change.before,children:e.change.before}),e.change.after&&(0,z.jsxs)(`span`,{className:`truncate text-success/80`,title:e.change.after,children:[`→ `,e.change.after]})]}),(0,z.jsxs)(`div`,{className:`mt-1 flex gap-2 font-mono text-[8px] uppercase text-muted-foreground`,children:[(0,z.jsx)(`span`,{children:e.status??`observed`}),(0,z.jsx)(`span`,{children:e.source??`legacy`}),e.durationMs!==void 0&&(0,z.jsxs)(`span`,{children:[e.durationMs,`ms`]}),e.watcherConfirmed&&(0,z.jsx)(`span`,{className:`text-success`,children:r(`activity:codeMap.fsVerified`)})]})]})]},`${e.timestamp}-${t}`))}),(0,z.jsxs)(`div`,{className:`border-t px-4 py-2 font-mono text-[9px] text-muted-foreground`,children:[t.length,` events · newest first`]})]})}var B={package:{icon:w,accent:`border-l-primary`,iconStyle:`bg-primary/12 text-primary`},file:{icon:m,accent:`border-l-info`,iconStyle:`bg-info/12 text-info`},symbol:{icon:S,accent:`border-l-success`,iconStyle:`bg-success/12 text-success`}},Le={call:`hsl(var(--primary))`,import:`hsl(var(--info))`,type_ref:`hsl(var(--success))`,inherit:`hsl(var(--warning))`,implement:`hsl(var(--destructive))`},V={read:`ring-2 ring-info/60 shadow-info/20`,write:`ring-2 ring-warning/70 shadow-warning/30`,edit:`ring-2 ring-warning/80 shadow-warning/40`,delete:`ring-2 ring-destructive/70 shadow-destructive/30`,search:`ring-2 ring-primary/55 shadow-primary/20`,memory:`ring-2 ring-success/60 shadow-success/30`,index:`ring-2 ring-info/50 shadow-info/20`,execute:`ring-2 ring-primary/55 shadow-primary/25`},Re=[`bg-primary text-primary-foreground`,`bg-info text-info-foreground`,`bg-success text-success-foreground`,`bg-warning text-warning-foreground`,`bg-destructive text-destructive-foreground`];function ze(e){let t=e.trim().split(/[\s:_-]+/).filter(Boolean);return(t.length>1?`${t[0]?.[0]??``}${t[1]?.[0]??``}`:e.slice(0,2)).toLocaleUpperCase()}function H(e){let t=0;for(let n of e)t=t*31+n.charCodeAt(0)|0;return Re[Math.abs(t)%Re.length]??Re[0]}function Be(e){let t=0;for(let n of e)t=t*31+n.charCodeAt(0)|0;return`hsl(${Math.abs(t)%360} 82% 58%)`}var U=[`/packages/`,`/apps/`,`/crates/`,`/cmd/`,`/internal/`,`/pkg/`,`/src/`];function Ve(e){let t=e.replace(/\\/g,`/`),n=U.reduce((e,n)=>Math.max(e,t.lastIndexOf(n)),-1);return n>=0?t.slice(n+1):t.split(`/`).slice(-3).join(`/`)}function W(e){return[e.symbol?.name,e.line?`L${e.line}`:void 0].filter(Boolean).join(` · `)}function He({data:e}){let{t}=a(),{graphNode:n,selected:r,dimmed:i,incoming:o,outgoing:s,isActive:c,activityType:l,activeOperations:u}=e,d=B[n.kind],f=d.icon,p=n.kind!==`symbol`,m=n.kind===`symbol`?`${n.symbolKind??`symbol`}${n.line?` · L${n.line}`:``}`:n.kind===`file`?L(n):`${n.fileCount??0} files · ${n.symbolCount??0} symbols`;return(0,z.jsxs)(`div`,{className:A(`group relative w-[236px] border border-l-[3px] bg-card text-card-foreground shadow-[0_8px_24px_hsl(var(--shadow-color)/0.08)] transition-[opacity,box-shadow,border-color,background-color]`,d.accent,r&&`border-primary bg-primary/5 shadow-[0_0_0_2px_hsl(var(--primary)/0.18),0_16px_36px_hsl(var(--shadow-color)/0.18)]`,n.external&&`border-dashed bg-muted/75`,i&&`opacity-25 grayscale`,c&&l&&V[l]),children:[u.length>0&&(0,z.jsxs)(`div`,{className:`absolute -top-5 left-2 z-20 flex max-w-[210px] items-center gap-1`,children:[u.slice(0,4).map(e=>{let t=e.agentName??e.agent??`External`,n=`${e.sessionId??`none`}:${e.agentId??t}`;return(0,z.jsxs)(`span`,{className:A(`flex h-6 items-center gap-1 border-2 border-background px-1.5 font-mono text-[8px] font-bold shadow-md`,H(n)),title:`${t} · ${e.type} ${W(e)}`,children:[(0,z.jsx)(`span`,{className:`h-1.5 w-1.5 animate-pulse bg-current`}),ze(t),e.symbol&&(0,z.jsx)(`span`,{className:`max-w-[80px] truncate`,children:e.symbol.name})]},e.id??`${n}:${e.filePath}`)}),u.length>4&&(0,z.jsxs)(`span`,{className:`border bg-card px-1 font-mono text-[8px] shadow`,children:[`+`,u.length-4]})]}),(0,z.jsx)(D,{type:`target`,position:ie.Left,className:`!h-2.5 !w-2.5 !border-2 !border-card !bg-muted-foreground`}),(0,z.jsxs)(`button`,{type:`button`,className:`block w-full text-left`,onClick:t=>{if(t.shiftKey&&n.file){e.onShowHistory(n.file);return}e.onSelect(n)},onDoubleClick:()=>p&&e.onOpen(n),"aria-label":`${n.kind} ${n.label}`,children:[(0,z.jsxs)(`div`,{className:`flex items-start gap-3 p-3 pr-10`,children:[(0,z.jsx)(`span`,{className:A(`flex h-8 w-8 shrink-0 items-center justify-center border`,d.iconStyle),children:(0,z.jsx)(f,{className:`h-4 w-4`})}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[9px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[(0,z.jsx)(`span`,{children:n.kind}),n.external&&(0,z.jsx)(`span`,{className:`border border-border px-1 py-0.5 text-[8px] text-warning`,children:`external`}),n.lang&&(0,z.jsx)(`span`,{className:`ml-auto font-mono normal-case tracking-normal`,children:n.lang})]}),(0,z.jsx)(`div`,{className:`truncate font-mono text-[13px] font-semibold`,title:n.label,children:n.label}),(0,z.jsx)(`div`,{className:`mt-1 truncate text-[10px] text-muted-foreground`,title:m,children:m})]})]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 border-t bg-muted/30 px-3 py-1.5 font-mono text-[9px] text-muted-foreground`,children:[(0,z.jsxs)(`span`,{title:t(`activity:codeMapVisuals.incomingRelationships`),children:[`← `,o]}),(0,z.jsxs)(`span`,{title:t(`activity:codeMapVisuals.outgoingRelationships`),children:[`→ `,s]}),n.symbolCount!==void 0&&n.kind===`file`&&(0,z.jsxs)(`span`,{className:`ml-auto`,children:[n.symbolCount,` sym`]}),c&&(0,z.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-bold text-warning`,children:[(0,z.jsx)(y,{className:`h-2.5 w-2.5 animate-pulse`}),` LIVE`]})]})]}),p&&(0,z.jsx)(`button`,{type:`button`,className:`absolute right-2 top-2 z-10 flex h-7 w-7 items-center justify-center border border-transparent text-muted-foreground opacity-0 transition hover:border-border hover:bg-muted hover:text-foreground group-hover:opacity-100 focus:opacity-100`,onClick:()=>e.onOpen(n),title:n.kind===`package`?`Open file map`:`Open symbol map`,"aria-label":`Open ${n.label} map`,children:(0,z.jsx)(g,{className:`h-3.5 w-3.5`})}),(0,z.jsx)(D,{type:`source`,position:ie.Right,className:`!h-2.5 !w-2.5 !border-2 !border-card !bg-muted-foreground`})]})}function Ue(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function We(e,t){return e.graphNode===t.graphNode&&e.selected===t.selected&&e.dimmed===t.dimmed&&e.incoming===t.incoming&&e.outgoing===t.outgoing&&e.isActive===t.isActive&&e.activityType===t.activityType&&e.onSelect===t.onSelect&&e.onOpen===t.onOpen&&e.onShowHistory===t.onShowHistory&&Ue(e.activeOperations,t.activeOperations)}var Ge={codemap:(0,j.memo)(He,(e,t)=>We(e.data,t.data))},Ke={nodes:[],edges:[]};function qe(e){return/Authentication required|Unauthorized/i.test(e)}function Je({loading:e,error:t,graph:n,canvasNodeCount:r,flowNodes:i,flowEdges:o,onNodesChange:s,onEdgesChange:c,agentTrailCount:u}){let{t:d}=a();return(0,z.jsxs)(z.Fragment,{children:[e&&(0,z.jsxs)(`div`,{className:`absolute inset-0 z-20 flex flex-col items-center justify-center gap-3 bg-background/75 backdrop-blur-sm`,children:[(0,z.jsx)(l,{className:`h-7 w-7 animate-spin text-primary`}),(0,z.jsx)(`span`,{className:`font-mono text-[10px] uppercase tracking-widest text-muted-foreground`,children:d(`activity:codeMap.mappingRelationships`)})]}),t&&!e&&(0,z.jsxs)(`div`,{className:`absolute inset-0 z-20 flex flex-col items-center justify-center gap-3 p-8 text-center`,children:[(0,z.jsx)(C,{className:`h-10 w-10 text-destructive`}),(0,z.jsx)(`p`,{className:`font-mono text-sm text-destructive`,children:t}),!qe(t)&&(0,z.jsxs)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:[`The map needs a codebase index. Run`,` `,(0,z.jsx)(`code`,{className:`border bg-muted px-1.5 py-0.5`,children:`codebase-index`}),` `,d(`activity:codeMap.onceThenReopenThisView`)]})]}),!e&&!t&&n.nodes.length===0&&(0,z.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-2 text-muted-foreground`,children:[(0,z.jsx)(C,{className:`h-8 w-8 opacity-40`}),(0,z.jsx)(`p`,{className:`text-xs`,children:d(`activity:codeMap.noIndexedNodesAtThisLevel`)})]}),!e&&!t&&n.nodes.length>1&&n.edges.length===0&&(0,z.jsxs)(`div`,{className:`pointer-events-none absolute left-1/2 top-14 z-10 -translate-x-1/2 border border-warning/40 bg-warning/10 px-3 py-2 text-center shadow backdrop-blur`,children:[(0,z.jsx)(`div`,{className:`font-mono text-[9px] font-bold uppercase tracking-wider text-warning`,children:d(`activity:codeMap.noResolvedRelationsInThisScope`)}),(0,z.jsx)(`div`,{className:`mt-0.5 text-[8px] text-muted-foreground`,children:d(`activity:codeMap.theUpgradedIndexWillRebuildAnd`)})]}),!t&&n.nodes.length>0&&(0,z.jsxs)(ue,{nodes:i,edges:o,onNodesChange:s,onEdgesChange:c,nodeTypes:Ge,nodesConnectable:!1,nodesDraggable:!1,edgesFocusable:!1,elementsSelectable:!1,onlyRenderVisibleElements:!0,minZoom:.08,maxZoom:2.2,proOptions:{hideAttribution:!0},children:[(0,z.jsx)(le,{variant:oe.Dots,gap:r>60?32:22,size:1,color:`hsl(var(--muted-foreground))`,className:`!opacity-25`}),(0,z.jsx)(ce,{position:`bottom-left`,showInteractive:!1,className:`!border !border-border !bg-card !shadow-md [&>button]:!border-border [&>button]:!bg-card [&>button]:!fill-foreground`}),r<=48&&(0,z.jsx)(k,{position:`bottom-right`,pannable:!0,zoomable:!0,className:`!h-[112px] !w-[180px] !border !border-border !bg-card !shadow-md`,maskColor:`hsl(var(--background) / 0.72)`,nodeColor:e=>{let t=e.data?.graphNode.kind;return t===`package`?`hsl(var(--primary))`:t===`file`?`hsl(var(--info))`:`hsl(var(--success))`}})]}),(0,z.jsxs)(`div`,{className:`pointer-events-none absolute bottom-3 left-1/2 z-10 flex -translate-x-1/2 items-center gap-3 border bg-card/90 px-3 py-1.5 font-mono text-[8px] text-muted-foreground shadow backdrop-blur`,children:[Object.entries(Le).map(([e,t])=>(0,z.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,z.jsx)(`span`,{className:`h-0.5 w-3`,style:{backgroundColor:t}}),e.replace(`_`,` `)]},e)),(0,z.jsxs)(`span`,{className:`flex items-center gap-1 text-primary`,"data-testid":`agent-trail-count`,children:[(0,z.jsx)(`span`,{className:`w-4 border-t-2 border-dashed border-primary`}),`agent trail`,u>0?` ×${u}`:``]})]})]})}function Ye({layout:e,canvasMode:t,edgeFilter:n,canvasNodeCount:r,graphNodeCount:i,onLayoutChange:o,onCanvasModeChange:s,onEdgeFilterChange:c}){let{t:l}=a();return(0,z.jsxs)(`div`,{className:`pointer-events-none absolute left-3 right-3 top-3 z-10 flex items-center gap-2`,children:[(0,z.jsxs)(`div`,{className:`pointer-events-auto flex border bg-card/95 shadow-md backdrop-blur`,children:[(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-8 items-center gap-1.5 border-r px-2.5 text-[9px] font-semibold uppercase tracking-wider`,e===`layers`?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>o(`layers`),children:[(0,z.jsx)(v,{className:`h-3 w-3`}),` `,l(`activity:codeMap.layers`)]}),(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-8 items-center gap-1.5 px-2.5 text-[9px] font-semibold uppercase tracking-wider`,e===`orbit`?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>o(`orbit`),children:[(0,z.jsx)(f,{className:`h-3 w-3`}),` `,l(`activity:codeMap.relations`)]})]}),(0,z.jsxs)(`div`,{className:`pointer-events-auto flex border bg-card/95 shadow-md backdrop-blur`,children:[(0,z.jsxs)(`button`,{type:`button`,className:A(`h-8 border-r px-2.5 font-mono text-[9px] font-bold`,t===`smart`?`bg-success text-success-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>s(`smart`),title:l(`activity:codeMap.keepTheFullTreeShowTheStrongestRelationsAndSelectedNeighbourhood`),children:[`SMART `,r,`/`,i]}),(0,z.jsx)(`button`,{type:`button`,className:A(`h-8 px-2.5 font-mono text-[9px] font-bold`,t===`all`?`bg-foreground text-background`:`text-muted-foreground hover:bg-muted`),onClick:()=>s(`all`),title:l(`activity:codeMap.renderEveryNodeAndRelationInThisScope`),children:l(`activity:codeMap.all`)})]}),(0,z.jsx)(`div`,{className:`pointer-events-auto ml-auto flex max-w-[60%] overflow-x-auto border bg-card/95 shadow-md backdrop-blur`,children:[`all`,`import`,`call`,`type_ref`,`inherit`,`implement`].map(e=>(0,z.jsx)(`button`,{type:`button`,className:A(`h-8 whitespace-nowrap border-r px-2.5 font-mono text-[9px] last:border-r-0`,n===e?`bg-foreground text-background`:`text-muted-foreground hover:bg-muted`),onClick:()=>c(e),children:e===`all`?`ALL LINKS`:e.replace(`_`,` `).toUpperCase()},e))})]})}function Xe({scope:e,graph:t,agentPresences:n,edgeWeight:r,connectedNodeCount:i,navigate:s}){let{t:c}=a();return(0,z.jsxs)(`header`,{className:`flex h-[62px] shrink-0 items-center gap-4 border-b bg-card px-4`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-[220px] items-center gap-3`,children:[(0,z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center border border-primary bg-primary/10 text-primary`,children:(0,z.jsx)(C,{className:`h-4 w-4`})}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h1`,{className:`font-display text-sm font-semibold tracking-tight`,children:c(`activity:codeMap.codeAtlas`)}),(0,z.jsx)(`p`,{className:`text-[9px] uppercase tracking-[0.18em] text-muted-foreground`,children:c(`activity:codeMap.architectureIntelligence`)})]})]}),(0,z.jsxs)(`nav`,{className:`flex min-w-0 flex-1 items-center gap-1 font-mono text-[10px]`,"aria-label":c(`activity:codeMap.codeMapBreadcrumb`),children:[e.level!==`packages`&&(0,z.jsx)(`button`,{type:`button`,className:`mr-1 flex h-7 w-7 items-center justify-center border text-muted-foreground hover:bg-muted`,onClick:()=>{e.level===`symbols`?s({level:`files`,package:e.package??`(root)`}):s({level:`packages`})},"aria-label":c(`activity:codeMap.back`),children:(0,z.jsx)(E,{className:`h-3.5 w-3.5`})}),(0,z.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 px-1.5 py-1 text-muted-foreground hover:text-foreground`,onClick:()=>s({level:`packages`}),children:[(0,z.jsx)(x,{className:`h-3 w-3`}),` workspace`]}),e.level!==`packages`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(o,{className:`h-3 w-3 text-muted-foreground`}),(0,z.jsx)(`button`,{type:`button`,className:`max-w-[220px] truncate px-1.5 py-1 hover:text-primary`,onClick:()=>s({level:`files`,package:e.package??`(root)`}),children:e.package??`(root)`})]}),e.level===`symbols`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(o,{className:`h-3 w-3 text-muted-foreground`}),(0,z.jsx)(`span`,{className:`truncate px-1.5 py-1 text-primary`,children:L({id:``,label:e.file,kind:`file`,file:e.file,package:e.package})})]})]}),(0,z.jsxs)(`div`,{className:`hidden items-center gap-5 xl:flex`,children:[(0,z.jsxs)(`div`,{className:A(`flex h-8 items-center gap-2 border px-2.5`,n.length>0?`border-success/50 bg-success/10 text-success`:`text-muted-foreground`),children:[(0,z.jsx)(y,{className:A(`h-3 w-3`,n.length>0&&`animate-pulse`)}),(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`font-mono text-[10px] font-bold`,children:[n.length,` LIVE`]}),(0,z.jsx)(`div`,{className:`text-[7px] uppercase tracking-wider`,children:`agents`})]})]}),(0,z.jsxs)(`div`,{className:`text-right`,children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:t.nodes.length}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`nodes`})]}),(0,z.jsxs)(`div`,{className:`text-right`,children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:t.edges.length}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`links`})]}),(0,z.jsxs)(`div`,{className:`text-right`,children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:r}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`references`})]}),(0,z.jsxs)(`div`,{className:`text-right`,children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:i}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`connected`})]})]})]})}function Ze({activity:e}){return(0,z.jsx)(`span`,{className:A(`shrink-0 border px-1.5 py-0.5 font-mono text-[8px] font-bold uppercase`,e.type===`delete`?`border-destructive/50 bg-destructive/10 text-destructive`:e.type===`read`?`border-info/50 bg-info/10 text-info`:e.type===`search`||e.type===`index`?`border-primary/50 bg-primary/10 text-primary`:`border-warning/50 bg-warning/10 text-warning`),children:e.filePath.startsWith(`(tool:`)?e.toolName:e.type})}function G({activity:e,onLocate:t,showAgent:n=!1}){let{t:r}=a(),i=e.agentName??e.agent??`External process`,o=`${e.sessionId??`none`}:${e.agentId??i}`;return(0,z.jsxs)(`button`,{type:`button`,className:`group flex w-full items-start gap-2 border-b px-3 py-2 text-left last:border-b-0 hover:bg-muted/70`,onClick:()=>!e.filePath.startsWith(`(`)&&t(e),title:`Locate ${e.filePath}`,children:[n&&(0,z.jsx)(`span`,{className:A(`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center font-mono text-[8px] font-black`,H(o)),children:ze(i)}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,z.jsx)(Ze,{activity:e}),n&&(0,z.jsx)(`span`,{className:`truncate text-[9px] font-semibold`,children:i}),e.status===`active`&&(0,z.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-mono text-[8px] font-bold text-success`,children:[(0,z.jsx)(`span`,{className:`h-1.5 w-1.5 animate-pulse bg-success`}),` `,r(`activity:codeMap.live`)]}),e.watcherConfirmed&&(0,z.jsx)(d,{className:`ml-auto h-3 w-3 text-success`,"aria-label":r(`activity:codeMap.filesystemConfirmed`)}),e.attribution===`correlated`&&!e.watcherConfirmed&&(0,z.jsx)(`span`,{className:`ml-auto font-mono text-[7px] uppercase text-warning`,title:r(`activity:codeMap.correlatedFromTheOnlyActiveTool`),children:r(`activity:codeMap.correlated`)}),e.attribution===`external`&&(0,z.jsx)(`span`,{className:`ml-auto font-mono text-[7px] uppercase text-destructive`,children:`external`})]}),(0,z.jsx)(`div`,{className:`mt-1 truncate font-mono text-[9px] font-semibold`,title:e.filePath,children:Ve(e.filePath)}),(e.symbol||e.line)&&(0,z.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-1 truncate font-mono text-[8px] text-success`,children:[(0,z.jsx)(_,{className:`h-2.5 w-2.5 shrink-0`}),e.symbol?.name??`line ${e.line}`,e.symbol?.kind&&(0,z.jsxs)(`span`,{className:`text-muted-foreground`,children:[`· `,e.symbol.kind]})]}),e.change&&(0,z.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 font-mono text-[8px]`,children:[(0,z.jsxs)(`span`,{className:`border border-success/40 bg-success/10 px-1 text-success`,children:[`+`,e.change.added]}),(0,z.jsxs)(`span`,{className:`border border-destructive/40 bg-destructive/10 px-1 text-destructive`,children:[`−`,e.change.removed]}),e.durationMs!==void 0&&(0,z.jsxs)(`span`,{className:`ml-auto text-muted-foreground`,children:[e.durationMs,`ms`]})]}),e.summary&&e.summary!==e.toolName&&(0,z.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[8px] leading-3 text-muted-foreground`,children:e.summary})]}),!e.filePath.startsWith(`(`)&&(0,z.jsx)(g,{className:`mt-1 h-3 w-3 shrink-0 text-muted-foreground opacity-0 group-hover:opacity-100`})]})}function Qe({presences:e,onLocate:t}){let{t:n}=a();return e.length===0?null:(0,z.jsxs)(`section`,{className:`pointer-events-auto absolute left-3 top-14 z-20 w-[304px] border bg-card/95 shadow-xl backdrop-blur`,children:[(0,z.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b px-3`,children:[(0,z.jsx)(y,{className:`h-3.5 w-3.5 animate-pulse text-success`}),(0,z.jsx)(`h2`,{className:`text-[9px] font-black uppercase tracking-[0.18em]`,children:n(`activity:codeMap.liveAgentOperations`)}),(0,z.jsxs)(`span`,{className:`ml-auto bg-success px-1.5 py-0.5 font-mono text-[8px] font-bold text-success-foreground`,children:[e.length,` ONLINE`]})]}),(0,z.jsx)(`div`,{className:`max-h-[330px] overflow-y-auto`,children:e.map(e=>(0,z.jsxs)(`div`,{className:`border-b last:border-b-0`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 bg-muted/35 px-3 py-1.5`,children:[(0,z.jsx)(`span`,{className:A(`flex h-6 w-6 items-center justify-center font-mono text-[8px] font-black`,H(e.key)),children:ze(e.agentName)}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`div`,{className:`truncate text-[9px] font-bold`,children:e.agentName}),(0,z.jsxs)(`div`,{className:`truncate font-mono text-[7px] text-muted-foreground`,children:[`session `,e.sessionId.slice(0,12),` · agent `,e.agentId.slice(0,12)]})]}),(0,z.jsxs)(`span`,{className:`font-mono text-[8px] text-success`,children:[e.operations.length,` op`]})]}),e.operations.map(e=>(0,z.jsx)(G,{activity:e,onLocate:t},e.id??`${e.toolUseId}:${e.filePath}`))]},e.key))})]})}function $e({paused:e,followLive:t,agentFilter:n,agents:r,onTogglePaused:i,onToggleFollow:o,onAgentFilter:s}){let{t:c}=a();return(0,z.jsxs)(`div`,{className:`pointer-events-auto absolute right-3 top-14 z-20 flex h-9 items-center border bg-card/95 shadow-lg backdrop-blur`,children:[(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-full items-center gap-1.5 border-r px-2.5 text-[8px] font-bold uppercase tracking-wider`,t?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:o,title:c(`activity:codeMap.automaticallyEnterTheFileFunctionUsedByTheNewestVisibleAgent`),children:[(0,z.jsx)(_,{className:`h-3 w-3`}),` `,c(`activity:codeMap.follow`)]}),(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-full items-center gap-1.5 border-r px-2.5 text-[8px] font-bold uppercase tracking-wider`,e?`bg-warning text-warning-foreground`:`text-success hover:bg-success/10`),onClick:i,title:e?`Resume the live telemetry stream`:`Freeze the current telemetry frame`,children:[e?(0,z.jsx)(h,{className:`h-3 w-3`}):(0,z.jsx)(b,{className:`h-3 w-3`}),e?`Resume`:`Live`]}),(0,z.jsxs)(`label`,{className:`flex h-full items-center gap-1.5 px-2 text-[8px] uppercase text-muted-foreground`,children:[c(`activity:codeMap.agent`),(0,z.jsxs)(`select`,{"aria-label":c(`activity:codeMap.filterCodemapByAgentAndSession`),className:`h-6 max-w-[170px] border bg-background px-1.5 font-mono text-[8px] text-foreground outline-none focus:border-primary`,value:n,onChange:e=>s(e.target.value),children:[(0,z.jsx)(`option`,{value:`all`,children:c(`activity:codeMap.allAgents`)}),r.map(e=>(0,z.jsxs)(`option`,{value:e.key,children:[e.agentName,` · `,e.sessionId.slice(0,10)]},e.key))]})]})]})}function et({activeOperations:e,recentActivities:t,activityTotalCount:n,onLocate:r}){let{t:o}=a();return(0,z.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[e.length>0&&(0,z.jsxs)(`section`,{className:`border-b`,children:[(0,z.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b bg-success/5 px-3`,children:[(0,z.jsx)(y,{className:`h-3 w-3 animate-pulse text-success`}),(0,z.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:o(`activity:codeMap.activeNow`)}),(0,z.jsx)(`span`,{className:`ml-auto font-mono text-[9px] text-success`,children:e.length})]}),e.map(e=>(0,z.jsx)(G,{activity:e,onLocate:r,showAgent:!0},e.id??`${e.toolUseId}:${e.filePath}`))]}),(0,z.jsxs)(`section`,{children:[(0,z.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b px-3`,children:[(0,z.jsx)(i,{className:`h-3 w-3 text-muted-foreground`}),(0,z.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:o(`activity:codeMap.eventStream`)}),(0,z.jsxs)(`span`,{className:`ml-auto font-mono text-[8px] text-muted-foreground`,children:[n,` total`]})]}),t.length>0?t.map((e,t)=>(0,z.jsx)(G,{activity:e,onLocate:r,showAgent:!0},e.id??`${e.timestamp}:${t}`)):(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-7 py-16 text-center`,children:[(0,z.jsx)(`span`,{className:`mb-4 flex h-12 w-12 items-center justify-center border bg-muted text-muted-foreground`,children:(0,z.jsx)(T,{className:`h-5 w-5`})}),(0,z.jsx)(`h3`,{className:`text-xs font-semibold`,children:o(`activity:codeMap.selectANodeOrWaitFor`)}),(0,z.jsx)(`p`,{className:`mt-2 text-[10px] leading-relaxed text-muted-foreground`,children:o(`activity:codeMap.relationsAppearOnSelectionToolCalls`)})]})]})]})}function K({node:e,incomingCount:t,outgoingCount:n,onOpenNode:r,onOpenActivity:o}){let{t:s}=a(),c=B[e.kind].icon;return(0,z.jsxs)(`div`,{className:`border-b bg-muted/25 p-3`,children:[(0,z.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,z.jsx)(`span`,{className:A(`flex h-8 w-8 items-center justify-center border`,B[e.kind].iconStyle),children:(0,z.jsx)(c,{className:`h-4 w-4`})}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`div`,{className:`text-[8px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[e.external?`external `:``,e.kind]}),(0,z.jsx)(`div`,{className:`truncate font-mono text-xs font-semibold`,title:e.label,children:e.label})]})]}),(0,z.jsx)(`div`,{className:`break-all font-mono text-[9px] leading-relaxed text-muted-foreground`,children:e.file?L(e):e.package}),e.signature&&(0,z.jsx)(`pre`,{className:`mt-3 overflow-x-auto border bg-background p-2 font-mono text-[9px] leading-relaxed text-foreground`,children:e.signature}),(0,z.jsxs)(`div`,{className:`mt-3 grid grid-cols-3 border`,children:[(0,z.jsx)(tt,{value:t,label:s(`activity:codeMap.incoming`),className:`border-r text-info`}),(0,z.jsx)(tt,{value:n,label:s(`activity:codeMap.outgoing`),className:`border-r text-primary`}),(0,z.jsx)(tt,{value:e.symbolCount??e.fileCount??e.line??`—`,label:e.kind===`package`?`files`:e.kind===`file`?`symbols`:`line`})]}),(0,z.jsxs)(`div`,{className:`mt-2 flex gap-2`,children:[e.kind!==`symbol`&&(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 flex-1 items-center justify-center gap-1.5 border bg-foreground text-[9px] font-semibold uppercase tracking-wider text-background hover:opacity-90`,onClick:()=>r(e),children:[(0,z.jsx)(g,{className:`h-3 w-3`}),` Open`,` `,e.kind===`package`?`files`:`symbols`]}),e.file&&(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 items-center justify-center gap-1.5 border px-2 text-[9px] uppercase text-muted-foreground hover:bg-muted`,onClick:()=>o(e.file),children:[(0,z.jsx)(i,{className:`h-3 w-3`}),` `,s(`activity:codeMap.activity`)]})]})]})}function tt({value:e,label:t,className:n}){return(0,z.jsxs)(`div`,{className:A(`p-2 text-center`,n),children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:e}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase text-muted-foreground`,children:t})]})}function q(e){let{t}=a(),{title:n,subtitle:r,items:i,graph:s,selectedId:l,expanded:u,onToggle:d,onSelect:f}=e;return(0,z.jsxs)(`section`,{className:`border-b py-3`,children:[(0,z.jsxs)(`div`,{className:`mb-2 flex items-end justify-between px-3`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h3`,{className:`text-[10px] font-bold uppercase tracking-[0.16em]`,children:n}),(0,z.jsx)(`p`,{className:`mt-0.5 text-[9px] text-muted-foreground`,children:r})]}),(0,z.jsx)(`span`,{className:`border bg-muted px-1.5 py-0.5 font-mono text-[9px]`,children:i.length})]}),i.length===0?(0,z.jsx)(`p`,{className:`px-3 py-2 text-[10px] text-muted-foreground`,children:t(`activity:codeMap.noRelationshipsInThisView`)}):i.map(e=>{let t=`${n}:${e.node.id}`,r=u.has(t),i=[..._e(s,e.node.id,`incoming`),..._e(s,e.node.id,`outgoing`)].filter((e,t,n)=>e.node.id!==l&&n.findIndex(t=>t.node.id===e.node.id)===t).slice(0,8);return(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`group flex min-h-9 items-center gap-1 px-2 hover:bg-muted/70`,children:[(0,z.jsx)(`button`,{type:`button`,className:`flex h-6 w-5 shrink-0 items-center justify-center text-muted-foreground`,onClick:()=>i.length>0&&d(t),"aria-label":`${r?`Collapse`:`Expand`} relation ${e.node.label}`,children:i.length>0?r?(0,z.jsx)(c,{className:`h-3 w-3`}):(0,z.jsx)(o,{className:`h-3 w-3`}):(0,z.jsx)(`span`,{className:`h-px w-2 bg-border`})}),(0,z.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 py-1 text-left`,onClick:()=>f(e.node),children:[(0,z.jsx)(`span`,{className:`block truncate font-mono text-[10px] font-semibold`,title:e.node.label,children:e.node.label}),(0,z.jsx)(`span`,{className:`block truncate text-[9px] text-muted-foreground`,children:e.node.package??e.node.symbolKind??e.node.kind})]}),(0,z.jsx)(`span`,{className:`border px-1 py-0.5 font-mono text-[8px] text-muted-foreground`,children:e.edge.refType}),(0,z.jsxs)(`span`,{className:`w-5 text-right font-mono text-[9px] text-muted-foreground`,children:[`×`,e.edge.weight]})]}),r&&i.map(e=>(0,z.jsxs)(`button`,{type:`button`,className:`relative flex h-7 w-full items-center gap-2 border-l border-border pl-11 pr-3 text-left text-[9px] text-muted-foreground hover:bg-muted hover:text-foreground`,onClick:()=>f(e.node),children:[(0,z.jsx)(`span`,{className:`absolute left-7 top-1/2 h-px w-3 bg-border`}),(0,z.jsx)(T,{className:`h-3 w-3 shrink-0`}),(0,z.jsx)(`span`,{className:`truncate font-mono`,children:e.node.label}),(0,z.jsx)(`span`,{className:`ml-auto font-mono opacity-70`,children:e.edge.refType})]},`${t}:${e.node.id}`))]},t)})]})}function nt({selectedNode:e,incoming:t,outgoing:n,filteredGraph:r,expandedRelations:i,activeOperations:o,recentActivities:c,activityTotalCount:l,selectedActivities:u,onClearSelection:d,onOpenNode:f,onOpenActivity:p,onLocateActivity:m,onToggleRelation:h,onSelectNode:g}){let{t:_}=a();return(0,z.jsxs)(`aside`,{className:`flex w-[326px] shrink-0 flex-col border-l bg-card/80`,children:[(0,z.jsxs)(`div`,{className:`flex h-10 items-center justify-between border-b px-3`,children:[(0,z.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.18em]`,children:_(`activity:codeMap.relationInspector`)}),e&&(0,z.jsx)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground`,onClick:d,"aria-label":_(`activity:codeMap.clearSelection`),children:(0,z.jsx)(s,{className:`h-3.5 w-3.5`})})]}),e?(0,z.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,z.jsx)(K,{node:e,incomingCount:t.length,outgoingCount:n.length,onOpenNode:f,onOpenActivity:p}),u.length>0&&(0,z.jsxs)(`section`,{className:`border-b bg-success/5 py-2`,children:[(0,z.jsxs)(`div`,{className:`mb-1 flex items-center gap-2 px-3`,children:[(0,z.jsx)(y,{className:`h-3 w-3 animate-pulse text-success`}),(0,z.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:_(`activity:codeMap.agentsOnThisNode`)}),(0,z.jsx)(`span`,{className:`ml-auto font-mono text-[9px] text-success`,children:u.length})]}),u.map(e=>(0,z.jsx)(G,{activity:e,onLocate:m,showAgent:!0},e.id??`${e.toolUseId}:${e.filePath}`))]}),(0,z.jsx)(q,{title:_(`activity:codeMap.incoming`),subtitle:_(`activity:codeMap.whoDependsOnThis`),items:t,graph:r,selectedId:e.id,expanded:i,onToggle:h,onSelect:g}),(0,z.jsx)(q,{title:_(`activity:codeMap.outgoing`),subtitle:_(`activity:codeMap.whatThisDependsOn`),items:n,graph:r,selectedId:e.id,expanded:i,onToggle:h,onSelect:g})]}):(0,z.jsx)(et,{activeOperations:o,recentActivities:c,activityTotalCount:l,onLocate:m})]})}function rt({node:e,onSelect:t,virtual:n}){let r=B[e.kind].icon;return(0,z.jsxs)(`button`,{type:`button`,"data-index":n?.index,ref:n?e=>n.measureElement(e):void 0,className:A(`min-h-8 items-center gap-2 px-3 py-1 text-left hover:bg-muted`,n?`absolute left-0 flex w-full`:`flex w-full`),style:n?{transform:`translateY(${n.start}px)`}:void 0,onClick:()=>t(e),children:[(0,z.jsx)(r,{className:A(`h-3.5 w-3.5 shrink-0`,e.kind===`package`?`text-primary`:e.kind===`file`?`text-info`:`text-success`)}),(0,z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`span`,{className:`block truncate font-mono text-[10px]`,children:e.label}),(0,z.jsx)(`span`,{className:`block truncate text-[8px] text-muted-foreground`,children:e.file??e.package??e.symbolKind})]}),(0,z.jsx)(`span`,{className:`text-[8px] uppercase text-muted-foreground`,children:e.kind.slice(0,3)})]},e.id)}var J=80,it=40;function at(e,t){if(!e||t.size===0)return!1;let n=N(e);if(t.has(n))return!0;for(let e of t)if(e.endsWith(`/${n}`)||n.endsWith(`/${e}`))return!0;return!1}var ot=(0,j.memo)(function e(t){let{t:n}=a(),{directory:r,packageName:i,depth:s,expandedDirectories:d,expandedFiles:f,loadingBranches:p,graphForFile:h,onToggleDirectory:_,onToggleFile:v,onSelectFile:te,onOpenFile:b,onSelectSymbol:x,selectedId:C,activeFileNorms:w,activeSymbolIds:T,revealAllKeys:E,onRevealAll:D}=t,O=`files:${i}:${r.path||`.`}`,ne=E.has(O)?r.files:r.files.slice(0,J),re=r.files.length-ne.length;return(0,z.jsxs)(z.Fragment,{children:[r.directories.map(n=>{let r=`${i}:${n.path}`,a=d.has(r);return(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center gap-1.5 pr-2 text-left text-[11px] text-muted-foreground hover:bg-muted hover:text-foreground`,style:{paddingLeft:8+s*12},onClick:()=>_(r),children:[a?(0,z.jsx)(c,{className:`h-3 w-3`}):(0,z.jsx)(o,{className:`h-3 w-3`}),a?(0,z.jsx)(u,{className:`h-3.5 w-3.5 text-warning`}):(0,z.jsx)(ee,{className:`h-3.5 w-3.5 text-warning`}),(0,z.jsx)(`span`,{className:`truncate`,children:n.name})]}),a&&(0,z.jsx)(e,{...t,directory:n,depth:s+1})]},r)}),ne.map(e=>{let t=f.has(e.file??e.id),r=P({level:`symbols`,file:e.file??e.label}),i=(e.file?h(e.file):void 0)?.nodes.filter(t=>t.kind===`symbol`&&t.file===e.file&&!t.external)??[],a=`symbols:${e.file??e.id}`,u=E.has(a)?i:i.slice(0,it),d=i.length-u.length,_=at(e.file,w);return(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:A(`group flex h-7 items-center pr-1 text-[11px] hover:bg-muted`,C===e.id&&`bg-primary/10 text-primary`),style:{paddingLeft:8+s*12},children:[(0,z.jsx)(`button`,{type:`button`,className:`flex h-6 w-4 shrink-0 items-center justify-center text-muted-foreground`,onClick:()=>v(e),"aria-label":`${t?`Collapse`:`Expand`} ${e.label}`,children:p.has(r)?(0,z.jsx)(l,{className:`h-3 w-3 animate-spin`}):t?(0,z.jsx)(c,{className:`h-3 w-3`}):(0,z.jsx)(o,{className:`h-3 w-3`})}),(0,z.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-1.5 text-left`,onClick:()=>te(e),onDoubleClick:()=>b(e),children:[(0,z.jsx)(m,{className:`h-3.5 w-3.5 shrink-0 text-info`}),_&&(0,z.jsx)(`span`,{className:`h-1.5 w-1.5 shrink-0 animate-pulse bg-success`,title:n(`activity:codeMap.liveOperation`)}),(0,z.jsx)(`span`,{className:`truncate font-mono`,title:e.file,children:e.label}),(0,z.jsx)(`span`,{className:`ml-auto text-[9px] text-muted-foreground`,children:e.symbolCount??0})]}),(0,z.jsx)(`button`,{type:`button`,className:`ml-1 hidden h-5 w-5 items-center justify-center text-muted-foreground hover:text-foreground group-hover:flex`,onClick:()=>b(e),title:n(`activity:codeMap.openSymbolMap`),"aria-label":`Open ${e.label} map`,children:(0,z.jsx)(g,{className:`h-3 w-3`})})]}),t&&u.map(e=>(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-7 w-full items-center gap-1.5 pr-2 text-left text-[10px] hover:bg-muted`,C===e.id?`bg-primary/10 text-primary`:`text-muted-foreground`),style:{paddingLeft:38+s*12},onClick:()=>x(e),children:[(0,z.jsx)(S,{className:`h-3 w-3 shrink-0 text-success`}),T.has(e.id)&&(0,z.jsx)(y,{className:`h-3 w-3 shrink-0 animate-pulse text-success`}),(0,z.jsx)(`span`,{className:`truncate font-mono`,children:e.label}),e.line&&(0,z.jsxs)(`span`,{className:`ml-auto font-mono text-[8px] opacity-60`,children:[`:`,e.line]})]},e.id)),t&&d>0&&(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center text-left font-mono text-[9px] text-primary hover:bg-muted`,style:{paddingLeft:38+s*12},onClick:()=>D(a),children:[`Show `,d,` more symbols`]})]},e.id)}),re>0&&(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center text-left font-mono text-[9px] text-primary hover:bg-muted`,style:{paddingLeft:8+s*12},onClick:()=>D(O),children:[`Show `,re,` more files`]})]})});function st({rootGraph:e,search:t,searchInput:n,searchResults:r,virtualizeSearch:i,searchVirtualizer:u,treeScrollRef:d,selectedId:f,expandedPackages:m,expandedDirectories:h,expandedFiles:_,loadingBranches:v,activeFileNorms:ee,activeSymbolIds:te,revealAllKeys:y,packageGraph:b,graphForFile:x,navigate:S,togglePackage:C,toggleDirectory:T,toggleFile:E,revealAllTree:D,selectFileFromTree:O,selectSymbolFromTree:ne,selectSearchResult:re,handleOpenNode:ie,onSearchInputChange:ae,onSearchChange:oe}){let{t:k}=a();return(0,z.jsxs)(`aside`,{className:`flex w-[286px] shrink-0 flex-col border-r bg-card/70`,children:[(0,z.jsxs)(`div`,{className:`border-b p-3`,children:[(0,z.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,z.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.18em]`,children:k(`activity:codeMapTree.codeTree`)}),(0,z.jsxs)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:[e.nodes.length,` roots`]})]}),(0,z.jsxs)(`label`,{className:`flex h-8 items-center gap-2 border bg-background px-2 focus-within:border-primary`,children:[(0,z.jsx)(p,{className:`h-3.5 w-3.5 text-muted-foreground`}),(0,z.jsx)(`input`,{className:`min-w-0 flex-1 bg-transparent font-mono text-[10px] outline-none placeholder:text-muted-foreground`,value:n,onChange:e=>ae(e.target.value),placeholder:k(`activity:codeMapTree.findPackageFileSymbol`)}),n&&(0,z.jsx)(`button`,{type:`button`,onClick:()=>{ae(``),oe(``)},"aria-label":k(`activity:codeMapTree.clearSearch`),children:(0,z.jsx)(s,{className:`h-3 w-3 text-muted-foreground`})})]})]}),(0,z.jsx)(`div`,{ref:d,className:`min-h-0 flex-1 overflow-y-auto py-2`,children:t.trim()?(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`px-3 pb-2 text-[9px] text-muted-foreground`,children:[r.length,` loaded-map results`]}),r.length===0?(0,z.jsxs)(`p`,{className:`px-3 py-8 text-center text-[10px] text-muted-foreground`,children:[k(`activity:codeMapTree.noMatchInLoadedBranches`),(0,z.jsx)(`br`,{}),k(`activity:codeMapTree.expandAPackageToSearchIts`)]}):i?(0,z.jsx)(`div`,{style:{height:`${u.getTotalSize()}px`,width:`100%`,position:`relative`},children:u.getVirtualItems().map(e=>{let t=r[e.index];return t?(0,z.jsx)(rt,{node:t,onSelect:re,virtual:{index:e.index,start:e.start,measureElement:u.measureElement}},t.id):null})}):r.map(e=>(0,z.jsx)(rt,{node:e,onSelect:re},e.id))]}):e.nodes.map(e=>{let t=e.package??e.label,n=m.has(t),r=P({level:`files`,package:t}),i=b(t),a=i?De(i.nodes):void 0;return(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:A(`group flex h-8 items-center px-2 hover:bg-muted`,f===e.id&&`bg-primary/10 text-primary`),children:[(0,z.jsx)(`button`,{type:`button`,className:`flex h-6 w-5 items-center justify-center text-muted-foreground`,onClick:()=>C(e),"aria-label":`${n?`Collapse`:`Expand`} ${t}`,children:v.has(r)?(0,z.jsx)(l,{className:`h-3 w-3 animate-spin`}):n?(0,z.jsx)(c,{className:`h-3 w-3`}):(0,z.jsx)(o,{className:`h-3 w-3`})}),(0,z.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 text-left`,onClick:()=>S({level:`packages`},e.id),onDoubleClick:()=>S({level:`files`,package:t}),children:[(0,z.jsx)(w,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,z.jsx)(`span`,{className:`truncate font-mono text-[10px] font-semibold`,children:e.label}),(0,z.jsx)(`span`,{className:`ml-auto text-[9px] text-muted-foreground`,children:e.fileCount??0})]}),(0,z.jsx)(`button`,{type:`button`,className:`ml-1 hidden h-5 w-5 items-center justify-center text-muted-foreground hover:text-foreground group-hover:flex`,onClick:()=>S({level:`files`,package:t}),title:k(`activity:codeMapTree.openFileMap`),"aria-label":`Open ${t} map`,children:(0,z.jsx)(g,{className:`h-3 w-3`})})]}),n&&a&&(0,z.jsx)(ot,{directory:a,packageName:t,depth:1,expandedDirectories:h,expandedFiles:_,loadingBranches:v,graphForFile:x,onToggleDirectory:T,onToggleFile:E,onSelectFile:O,onOpenFile:ie,onSelectSymbol:ne,selectedId:f,activeFileNorms:ee,activeSymbolIds:te,revealAllKeys:y,onRevealAll:D})]},e.id)})}),(0,z.jsxs)(`div`,{className:`border-t px-3 py-2 text-[9px] leading-relaxed text-muted-foreground`,children:[k(`activity:codeMapTree.clickToFocusDoubleClickTo`),(0,z.jsx)(`br`,{}),k(`activity:codeMapTree.branchesStayOpenWhileTheMap`)]})]})}function ct(e,t){let n=new Map(e.map(e=>[e.id,e])),r=e.length!==t.length,i=t.map((t,i)=>{let a=n.get(t.id);return a?a.type===t.type&&a.position.x===t.position.x&&a.position.y===t.position.y&&We(a.data,t.data)?(e[i]!==a&&(r=!0),a):(r=!0,{...a,...t,measured:a.measured}):(r=!0,t)});return r?i:e}function lt(e){return e.data?.renderKey}function ut(e,t){let n=new Map(e.map(e=>[e.id,e])),r=e.length!==t.length,i=t.map((t,i)=>{let a=n.get(t.id);return a&<(a)===lt(t)?(e[i]!==a&&(r=!0),a):(r=!0,t)});return r?i:e}function dt(){let[e,t]=(0,j.useState)({level:`packages`}),n=P(e),[i,a]=(0,j.useState)(Ke),[o,s]=(0,j.useState)(!0),[c,l]=(0,j.useState)(null),[u,d]=(0,j.useState)(null),[f,p]=(0,j.useState)(`layers`),[m,h]=(0,j.useState)(`smart`),[g,_]=(0,j.useState)(`all`),[v,ee]=(0,j.useState)(``),[y,b]=(0,j.useState)(``),[x,S]=(0,j.useState)(new Set),[C,w]=(0,j.useState)(new Set),[T,E]=(0,j.useState)(new Set),[D,O]=(0,j.useState)(new Set),[ie,oe]=(0,j.useState)(new Set),[k,ce]=(0,j.useState)(new Set),[le,ue]=(0,j.useState)(0),[A,he]=(0,j.useState)(null),[M,ye]=(0,j.useState)(!1),[F,be]=(0,j.useState)(`all`),[I,Ce]=(0,j.useState)(null),[we,L]=(0,j.useState)(null),[Te,Ee]=(0,j.useState)(0),R=(0,j.useRef)(new Map),B=(0,j.useRef)(null),V=(0,j.useRef)(null),Re=(0,j.useRef)(``),H=(0,j.useRef)(``),U=(0,j.useRef)(null),Ve=(0,j.useRef)(new Set),{history:W,pulses:He,activeOperationsMap:Ue,activityTotalCount:We,resolveActivitySymbol:Ge,getActivityForFile:qe,sweepActivity:Ze}=de(r(e=>({history:e.history,pulses:e.pulses,activeOperationsMap:e.activeOperations,activityTotalCount:e.totalCount,resolveActivitySymbol:e.resolveActivitySymbol,getActivityForFile:e.getActivityForFile,sweepActivity:e._sweep}))),G=(0,j.useMemo)(()=>[...Ue.values()].flat(),[Ue]),et=(0,j.useMemo)(()=>[...He.keys()].map(e=>W.get(e)?.[0]).filter(e=>!!e),[W,He]),K=(0,j.useMemo)(()=>{let e=[];for(let t of W.values())e.push(...t.slice(0,16));return e.sort((e,t)=>t.timestamp-e.timestamp).slice(0,16)},[W]),tt=(0,j.useMemo)(()=>fe([...G,...K]),[G,K]),q=(0,j.useMemo)(()=>{let e=I??G;return F===`all`?e:e.filter(e=>pe(e)===F)},[G,F,I]),rt=(0,j.useMemo)(()=>{let e=we??K;return F===`all`?e:e.filter(e=>pe(e)===F)},[F,we,K]),J=(0,j.useDeferredValue)(q),it=(0,j.useDeferredValue)(rt),at=(0,j.useDeferredValue)(et),ot=(0,j.useMemo)(()=>fe(q),[q]),[lt,dt,ft]=re([]),[pt,mt,ht]=ne([]),{fitView:gt}=se(),Y=(0,j.useCallback)(async(e,t=!1)=>{let n=P(e),r=R.current.get(n);if(r&&!t)return ke(R.current,n,r,48),r;let i=await fetch(ge(e),{credentials:`same-origin`});if(!i.ok){if(i.status===401||i.status===403)throw Error(`Authentication required — open this dashboard from its token URL.`);let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error??`HTTP ${i.status}`)}let a=await i.json();return ke(R.current,n,a,48),ue(e=>e+1),a},[]);(0,j.useEffect)(()=>{let e=window.setTimeout(()=>b(v),150);return()=>window.clearTimeout(e)},[v]);let _t=me(e=>e.generation),vt=(0,j.useRef)(0),yt=(0,j.useRef)(null);(0,j.useEffect)(()=>{let t=!1,n=_t>vt.current;return n&&(vt.current=_t,R.current.clear(),ue(e=>e+1),S(new Set),w(new Set),E(new Set),oe(new Set)),s(!0),l(null),Y(e,n).then(e=>{if(!t){if(a(e),!n){let t=B.current;B.current=null,d(t&&e.nodes.some(e=>e.id===t)?t:null)}s(!1)}}).catch(e=>{t||(l(e instanceof Error?e.message:String(e)),a(Ke),s(!1))}),()=>{t=!0}},[n,Y,_t,e]);let X=(0,j.useCallback)((e,r)=>{if(B.current=r??null,P(e)===n){d(r??null),B.current=null;return}t(e)},[n]),bt=(0,j.useCallback)(async e=>{let t=P(e);if(!(R.current.has(t)||k.has(t))){ce(e=>new Set(e).add(t));try{await Y(e)}finally{ce(e=>{let n=new Set(e);return n.delete(t),n})}}},[Y,k]);(0,j.useEffect)(()=>{let e=!1,t=0;for(let n of G){if(t>=2)break;if(n.symbol||!n.toolUseId||n.filePath.startsWith(`(`))continue;let r=n.filePath;Ve.current.has(r)||(Ve.current.add(r),t+=1,Y({level:`symbols`,file:r}).then(t=>{if(e)return;let i=Fe(n,t.nodes);i&&Ge(n.toolUseId,r,{id:i.id,name:i.label,...i.symbolKind?{kind:i.symbolKind}:{},...i.line?{line:i.line}:{}})}).catch(()=>void 0).finally(()=>{Ve.current.delete(r)}))}return()=>{e=!0}},[G,Y,Ge]);let Z=(0,j.useMemo)(()=>({nodes:i.nodes,edges:g===`all`?i.edges:i.edges.filter(e=>e.refType===g)}),[i,g]),Q=i.nodes.find(e=>e.id===u),$=(0,j.useMemo)(()=>Se(Z,u,m),[m,Z,u]),xt=(0,j.useMemo)(()=>u?ve(Z,u):new Set,[Z,u]),{incomingCounts:St,outgoingCounts:Ct}=(0,j.useMemo)(()=>{let e=new Map,t=new Map;for(let n of Z.edges)t.set(n.source,(t.get(n.source)??0)+1),e.set(n.target,(e.get(n.target)??0)+1);return{incomingCounts:e,outgoingCounts:t}},[Z]),wt=f===`orbit`?u??void 0:void 0,Tt=(0,j.useMemo)(()=>xe($,f,wt),[$,f,wt]),Et=(0,j.useMemo)(()=>[n,f,f===`orbit`?u??``:``,Oe($)].join(``),[$,n,f,u]),Dt=(0,j.useCallback)(e=>{d(e.id),O(new Set)},[]),Ot=(0,j.useCallback)(e=>{e.kind===`package`&&X({level:`files`,package:e.package??e.label}),e.kind===`file`&&e.file&&X({level:`symbols`,file:e.file,package:e.package})},[X]),kt=(0,j.useMemo)(()=>[Pe(J),Pe(at),Pe(it)].join(``),[J,at,it]),At=(0,j.useMemo)(()=>{let e=new Set;for(let t of q)e.add(N(t.filePath));return e},[q]),jt=(0,j.useMemo)(()=>{let e=new Set;for(let t of q)t.symbol?.id&&e.add(t.symbol.id);return e},[q]);(0,j.useEffect)(()=>{let e=()=>{let e=Tt.map(({node:e})=>e),t=Ne(e,J),n=Ne(e,at),r=new Set(t.keys()),i=Tt.map(({node:e,position:r})=>{let i=t.get(e.id)??[],a=i[0]??n.get(e.id)?.[0];return{id:e.id,type:`codemap`,position:r,data:{graphNode:e,selected:e.id===u,dimmed:!!u&&!xt.has(e.id),incoming:St.get(e.id)??0,outgoing:Ct.get(e.id)??0,isActive:!!a,...a?{activityType:a.type}:{},activeOperations:i,onSelect:Dt,onOpen:Ot,onShowHistory:he}}});dt(e=>ct(e,i));let a=6,o=$.edges.map((e,t)=>{let n=!!u&&(e.source===u||e.target===u),i=r.has(e.source)||r.has(e.target),o=i&&(n||a>0);o&&--a;let s=Le[e.refType]??`hsl(var(--muted-foreground))`,c=n||i?`smoothstep`:`default`;return{id:`edge:${e.source}:${e.target}:${t}`,source:e.source,target:e.target,type:c,animated:o,label:n?`${e.refType}${e.weight>1?` ×${e.weight}`:``}`:void 0,markerEnd:{type:ae.ArrowClosed,color:s,width:14,height:14},style:{stroke:s,strokeWidth:i?Math.min(2.5+Math.log2(e.weight+1)*.65,5):n?Math.min(1.25+Math.log2(e.weight+1)*.65,4):1,opacity:i?1:u?n?.88:.08:.52},labelStyle:{fontSize:9,fontFamily:`var(--font-mono)`,fill:`hsl(var(--muted-foreground))`},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.92},labelBgPadding:[4,2],zIndex:i?4:n?2:0,data:{renderKey:`${e.refType}:${e.weight}:${u?n?`focused`:`dimmed`:`idle`}:${i?`live`:`still`}:${o?`anim`:`still`}:${c}`}}}),s=new Map,c=new Set(J.map(pe));for(let e of[...it].sort((e,t)=>e.timestamp-t.timestamp)){let t=pe(e),n=s.get(t);n?n.push(e):s.set(t,[e])}let l=[...s.entries()].map(([e,t])=>({agentKey:e,activities:t,live:c.has(e),latest:t[t.length-1]?.timestamp??0})).sort((e,t)=>Number(t.live)-Number(e.live)||t.latest-e.latest).slice(0,4),d=[];for(let{agentKey:e,activities:t,live:n}of l){let r=t.slice(-7).map(e=>({activity:e,node:$.nodes.find(t=>Me(e,t))})).filter(e=>!!e.node).filter((e,t,n)=>t===0||e.node.id!==n[t-1]?.node.id),i=Be(e);for(let t=1;t<r.length;t++){let o=r[t-1],s=r[t],c=n&&a>0;c&&--a,d.push({id:`trail:${e}:${o.activity.timestamp}:${s.activity.timestamp}`,source:o.node.id,target:s.node.id,type:`smoothstep`,animated:c,label:t===r.length-1?`${ze(s.activity.agentName??s.activity.agent??`agent`)} TRAIL`:void 0,markerEnd:{type:ae.ArrowClosed,color:i,width:13,height:13},style:{stroke:i,strokeWidth:2.5,strokeDasharray:`7 5`,opacity:.9},labelStyle:{fontSize:8,fontWeight:700,fill:i},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.94},labelBgPadding:[4,2],zIndex:6,data:{renderKey:`${i}:${t===r.length-1?`label`:`plain`}:${n?`live`:`still`}:${c?`anim`:`still`}`}})}}Ee(d.length),mt(e=>ut(e,[...o,...d]))},t=Et,n=H.current!==t;H.current=t,U.current!==null&&(window.clearTimeout(U.current),U.current=null),n?e():U.current=window.setTimeout(()=>{U.current=null,e()},120);let r;return Re.current!==Et&&(r=window.setTimeout(()=>{Re.current=Et;let e=$.nodes.length>48?0:240;gt({padding:.2,duration:e,maxZoom:1.25})},20)),()=>{U.current!==null&&(window.clearTimeout(U.current),U.current=null),r!==void 0&&window.clearTimeout(r)}},[kt,$,u,J,it,at,Et,xt,gt,Ot,Dt,St,Ct,Tt,mt,dt]),(0,j.useEffect)(()=>{let e=window.setInterval(()=>{Ze()},2e3);return()=>window.clearInterval(e)},[Ze]);let Mt=R.current.get(`packages`)??(e.level===`packages`?i:Ke),Nt=(0,j.useCallback)(e=>R.current.get(P({level:`files`,package:e})),[le]),Pt=(0,j.useCallback)(e=>R.current.get(P({level:`symbols`,file:e})),[le]),Ft=(0,j.useCallback)(e=>{let t=e.filePath,n=je(e.filePath),r=`file:${e.filePath}`;for(let i of R.current.values()){let a=i.nodes.find(t=>t.kind===`file`&&!t.external&&Ae(t.file,e.filePath));if(a){t=a.file??t,n=a.package??n,r=a.id;break}}if(e.symbol){X({level:`symbols`,file:t,package:n},e.symbol.id);return}X({level:`files`,package:n},r)},[X]);(0,j.useEffect)(()=>{if(!M||I)return;let e=[...q].filter(e=>!e.filePath.startsWith(`(`)).sort((e,t)=>t.timestamp-e.timestamp)[0];if(!e)return;let t=`${e.id??e.toolUseId}:${e.filePath}:${e.symbol?.id??`file`}`;V.current!==t&&(V.current=t,Ft(e))},[q,M,Ft,I]);let It=(0,j.useCallback)(()=>{if(I){Ce(null),L(null);return}Ce([...G]),L([...K])},[G,I,K]),Lt=(0,j.useCallback)(e=>{let t=e.package??e.label,n=!x.has(t);S(e=>{let r=new Set(e);return n?r.add(t):r.delete(t),r}),n&&bt({level:`files`,package:t}).then(()=>{let e=R.current.get(P({level:`files`,package:t})),n=e?De(e.nodes):void 0;n?.directories.length===1&&n.directories[0]&&w(e=>new Set(e).add(`${t}:${n.directories[0].path}`))}).catch(()=>void 0)},[bt,x]),Rt=(0,j.useCallback)(e=>{if(!e.file)return;let t=!T.has(e.file);E(n=>{let r=new Set(n);return t?r.add(e.file):r.delete(e.file),r}),t&&bt({level:`symbols`,file:e.file,package:e.package}).catch(()=>void 0)},[bt,T]),zt=(0,j.useCallback)(e=>{w(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Bt=(0,j.useCallback)(e=>{oe(t=>new Set(t).add(e))},[]),Vt=(0,j.useCallback)(e=>{X({level:`files`,package:e.package??`(root)`},e.id)},[X]),Ht=(0,j.useCallback)(e=>{e.file&&X({level:`symbols`,file:e.file,package:e.package},e.id)},[X]),Ut=(0,j.useMemo)(()=>{let e=y.trim().toLocaleLowerCase();if(!e)return[];let t=new Map;for(let n of R.current.values())for(let r of n.nodes)`${r.label} ${r.file??``} ${r.signature??``} ${r.package??``}`.toLocaleLowerCase().includes(e)&&t.set(r.id,r);return[...t.values()].sort((e,t)=>e.kind.localeCompare(t.kind)||e.label.localeCompare(t.label)).slice(0,80)},[y,le]),Wt=Ut.length>40,Gt=te({count:Ut.length,getScrollElement:()=>yt.current,estimateSize:()=>40,overscan:8,enabled:Wt}),Kt=(0,j.useCallback)(e=>{e.kind===`package`?X({level:`packages`},e.id):e.kind===`file`?X({level:`files`,package:e.package??`(root)`},e.id):e.file&&X({level:`symbols`,file:e.file,package:e.package},e.id)},[X]),{incoming:qt,outgoing:Jt}=(0,j.useMemo)(()=>({incoming:Q?_e(Z,Q.id,`incoming`):[],outgoing:Q?_e(Z,Q.id,`outgoing`):[]}),[Z,Q]),{edgeWeight:Yt,connectedNodeCount:Xt}=(0,j.useMemo)(()=>{let e=0,t=new Set;for(let n of Z.edges)e+=n.weight,t.add(n.source),t.add(n.target);return{edgeWeight:e,connectedNodeCount:t.size}},[Z]),Zt=Q?q.filter(e=>Me(e,Q)):[],Qt=A?qe(A):[];return(0,z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,children:[(0,z.jsx)(Xe,{scope:e,graph:i,agentPresences:ot,edgeWeight:Yt,connectedNodeCount:Xt,navigate:X}),(0,z.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,z.jsx)(st,{rootGraph:Mt,search:y,searchInput:v,searchResults:Ut,virtualizeSearch:Wt,searchVirtualizer:Gt,treeScrollRef:yt,selectedId:u,expandedPackages:x,expandedDirectories:C,expandedFiles:T,loadingBranches:k,activeFileNorms:At,activeSymbolIds:jt,revealAllKeys:ie,packageGraph:Nt,graphForFile:Pt,navigate:X,togglePackage:Lt,toggleDirectory:zt,toggleFile:Rt,revealAllTree:Bt,selectFileFromTree:Vt,selectSymbolFromTree:Ht,selectSearchResult:Kt,handleOpenNode:Ot,onSearchInputChange:ee,onSearchChange:b}),(0,z.jsxs)(`main`,{className:`relative min-w-0 flex-1 bg-[radial-gradient(circle_at_50%_0%,hsl(var(--primary)/0.055),transparent_38%)]`,children:[(0,z.jsx)(Ye,{layout:f,canvasMode:m,edgeFilter:g,canvasNodeCount:$.nodes.length,graphNodeCount:i.nodes.length,onLayoutChange:p,onCanvasModeChange:h,onEdgeFilterChange:_}),(0,z.jsx)(Qe,{presences:ot,onLocate:Ft}),(0,z.jsx)($e,{paused:I!==null,followLive:M,agentFilter:F,agents:tt,onTogglePaused:It,onToggleFollow:()=>{V.current=null,ye(e=>!e)},onAgentFilter:e=>{V.current=null,be(e)}}),(0,z.jsx)(Je,{loading:o,error:c,graph:i,canvasNodeCount:$.nodes.length,flowNodes:lt,flowEdges:pt,onNodesChange:ft,onEdgesChange:ht,agentTrailCount:Te})]}),(0,z.jsx)(nt,{selectedNode:Q,incoming:qt,outgoing:Jt,filteredGraph:Z,expandedRelations:D,activeOperations:q,recentActivities:rt,activityTotalCount:We,selectedActivities:Zt,onClearSelection:()=>d(null),onOpenNode:Ot,onOpenActivity:he,onLocateActivity:Ft,onToggleRelation:e=>O(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),onSelectNode:Dt})]}),A&&(0,z.jsx)(Ie,{historyFile:A,fileHistory:Qt,onClose:()=>he(null)})]})}function ft(){return(0,z.jsx)(O,{children:(0,z.jsx)(dt,{})})}export{ft as CodeMap};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-BNmTiJ-I.js";import{Aa as r,Da as i,Fa as a,Gi as o,K as s,Ki as c,Kn as l,Nr as u,Nt as d,Sn as f,Vt as p,Yr as m,cn as h,ei as g,gt as _,ir as v,kr as ee,n as te,nn as y,pn as b,pr as x,ra as S,wn as C,xn as w,xr as T,ya as E}from"./vendor-BshlG0z-.js";import"./i18n-tRUjoMoU.js";import{a as D,c as O,d as ne,f as re,h as ie,m as ae,n as oe,o as k,p as se,r as ce,t as le,u as ue}from"./xyflow-BNn76cbK.js";import{t as A}from"./utils-BpBOwXlT.js";import{i as de,r as fe,t as pe}from"./codemap-activity-store-CWi-Yd9Z.js";import{t as me}from"./codemap-index-store-3M7F08K_.js";var j=e(t(),1),he=4096,M=new Map;function N(e){let t=M.get(e);if(t!==void 0)return t;let n=e.replace(/\\/g,`/`).replace(/^\.\//,``).toLocaleLowerCase();for(;M.size>=he;){let e=M.keys().next().value;if(e===void 0)break;M.delete(e)}return M.set(e,n),n}function P(e){return e.level===`packages`?`packages`:e.level===`files`?`files:${e.package}`:`symbols:${e.file}`}function ge(e){return e.level===`packages`?`/api/codemap/packages`:e.level===`files`?`/api/codemap/files?package=${encodeURIComponent(e.package)}`:`/api/codemap/symbols?file=${encodeURIComponent(e.file)}`}function _e(e,t,n){let r=new Map(e.nodes.map(e=>[e.id,e])),i=[];for(let a of e.edges){let e=n===`incoming`?a.target===t?a.source:void 0:a.source===t?a.target:void 0;if(!e)continue;let o=r.get(e);o&&i.push({node:o,edge:a})}return i.sort((e,t)=>t.edge.weight-e.edge.weight||e.node.label.localeCompare(t.node.label))}function ve(e,t){let n=new Set([t]);for(let r of e.edges)r.source===t&&n.add(r.target),r.target===t&&n.add(r.source);return n}function ye(e,t){let n=new Map(e.nodes.map(e=>[e.id,0]));for(let r of e.edges)!t.has(r.source)||!t.has(r.target)||(n.set(r.source,(n.get(r.source)??0)+r.weight),r.target!==r.source&&n.set(r.target,(n.get(r.target)??0)+r.weight));return n}function F(e){let t=new Set(e.nodes.map(e=>e.id)),n=ye(e,t),r=new Map(e.nodes.map(e=>[e.id,0])),i=new Map;for(let n of e.edges){if(!t.has(n.source)||!t.has(n.target)||n.source===n.target)continue;r.set(n.target,(r.get(n.target)??0)+1);let e=i.get(n.source)??[];e.push(n.target),i.set(n.source,e)}let a=new Map,o=e.nodes.filter(e=>(r.get(e.id)??0)===0).sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0)).map(e=>e.id);o.length===0&&e.nodes[0]&&o.push(e.nodes[0].id);for(let e of o)a.set(e,0);let s=new Set,c=0;for(;c<o.length;){let e=o[c++];if(!s.has(e)){s.add(e);for(let t of i.get(e)??[])a.set(t,Math.max(a.get(t)??0,Math.min((a.get(e)??0)+1,7))),r.set(t,(r.get(t)??1)-1),(r.get(t)??0)<=0&&o.push(t)}}let l=e.nodes.filter(e=>!a.has(e.id)).sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0));l.forEach((e,t)=>{a.set(e.id,t%Math.min(4,Math.max(1,l.length)))});let u=new Map;for(let t of e.nodes){let e=a.get(t.id)??0,n=u.get(e)??[];n.push(t),u.set(e,n)}for(let e of u.values())e.sort((e,t)=>Number(e.external)-Number(t.external)||(n.get(t.id)??0)-(n.get(e.id)??0)||e.label.localeCompare(t.label));let d=Math.max(1,...[...u.values()].map(e=>e.length))*160,f=[];for(let[e,t]of[...u.entries()].sort(([e],[t])=>e-t)){let n=(d-t.length*160)/2;t.forEach((t,r)=>{f.push({node:t,position:{x:e*386,y:n+r*160}})})}return f}function be(e,t){if(e.nodes.length===0)return[];let n=ye(e,new Set(e.nodes.map(e=>e.id))),r=e.nodes.find(e=>e.id===t)??[...e.nodes].sort((e,t)=>(n.get(t.id)??0)-(n.get(e.id)??0))[0],i=ve(e,r.id);i.delete(r.id);let a=e.nodes.filter(e=>i.has(e.id)),o=e.nodes.filter(e=>e.id!==r.id&&!i.has(e.id)),s=[{node:r,position:{x:0,y:0}}],c=(e,t,n)=>{e.forEach((r,i)=>{let a=n+Math.PI*2*i/Math.max(1,e.length);s.push({node:r,position:{x:Math.cos(a)*t,y:Math.sin(a)*t}})})};c(a,Math.max(330,a.length*34),-Math.PI/2);for(let e=0;e<o.length;e+=18)c(o.slice(e,e+18),620+Math.floor(e/18)*280,-Math.PI/2+.12);return s}function xe(e,t,n){return t===`orbit`?be(e,n):F(e)}function I(e,t,n){if(e.length<=n)return e;let r=t?e.filter(e=>e.source===t||e.target===t):[],i=e.filter(e=>!t||e.source!==t&&e.target!==t).sort((e,t)=>t.weight-e.weight||e.source.localeCompare(t.source)||e.target.localeCompare(t.target)),a=Math.max(0,n-r.length);return[...r,...i.slice(0,a)]}function Se(e,t,n){if(n===`all`)return e;let r=e.nodes;if(e.nodes.length>96){let n=new Map(e.nodes.map(e=>[e.id,e])),i=new Map;for(let t of e.edges)i.set(t.source,(i.get(t.source)??0)+t.weight),i.set(t.target,(i.get(t.target)??0)+t.weight);let a=[...e.nodes].sort((e,t)=>(i.get(t.id)??0)-(i.get(e.id)??0)||e.label.localeCompare(t.label)),o=new Set,s=e=>{n.has(e)&&o.size<96&&o.add(e)};if(t&&n.has(t)){s(t);let n=e.edges.filter(e=>e.source===t||e.target===t).sort((e,t)=>t.weight-e.weight);for(let e of n)s(e.source),s(e.target);let r=new Set(o),i=e.edges.filter(e=>r.has(e.source)||r.has(e.target)).sort((e,t)=>t.weight-e.weight);for(let e of i)s(e.source),s(e.target)}else{let e=a.filter(e=>!e.external).slice(0,72),t=a.filter(e=>e.external).slice(0,24);for(let n of[...e,...t])s(n.id)}for(let e of a)s(e.id);r=e.nodes.filter(e=>o.has(e.id))}let i=new Set(r.map(e=>e.id)),a=e.edges.filter(e=>i.has(e.source)&&i.has(e.target));return{nodes:r,edges:I(a,t,180)}}var Ce=[`/src/main/java/`,`/src/main/kotlin/`,`/src/`,`/lib/`,`/internal/`,`/cmd/`,`/pkg/`,`/app/`];function we(e){let t=(e.file??e.label).replace(/\\/g,`/`),n=e.package??``,r=n.startsWith(`@wrongstack/`)?`/packages/${n.slice(12)}/`:n.startsWith(`app:`)?`/apps/${n.slice(4)}/`:void 0;if(!r)return;let i=t.indexOf(r);return i>=0?t.slice(i+r.length):void 0}function L(e){let t=(e.file??e.label).replace(/\\/g,`/`),n=we(e);if(n!==void 0)return n;let r=-1,i=0;for(let e of Ce){let n=t.lastIndexOf(e);n>r&&(r=n,i=n+e.length)}return r>=0?t.slice(i):t.split(`/`).slice(-3).join(`/`)}function Te(e){if(e.length===0)return``;let t=e.map(e=>e.split(`/`)),n=t[0]??[],r=0;for(;r<n.length-1;){let e=n[r];if(!t.every(t=>t.length-1>r&&t[r]===e))break;r++}return r===0?``:`${n.slice(0,r).join(`/`)}/`}var Ee=new WeakMap;function De(e){let t=Ee.get(e);if(t)return t;let n={name:``,path:``,directories:[],files:[]},r=e.filter(e=>e.kind===`file`&&!e.external),i=r.map(we),a=i.every(e=>e!==void 0),o=a?``:Te(r.map(e=>(e.file??e.label).replace(/\\/g,`/`)));for(let[e,t]of r.entries()){let r=(t.file??t.label).replace(/\\/g,`/`),s=i[e],c=(a?s??L(t):o&&r.startsWith(o)?r.slice(o.length):L(t)).split(`/`).filter(Boolean),l=c.pop()??t.label,u=n;for(let e of c){let t=u.path?`${u.path}/${e}`:e,n=u.directories.find(t=>t.name===e);n||(n={name:e,path:t,directories:[],files:[]},u.directories.push(n)),u=n}u.files.push({...t,label:l})}let s=e=>{e.directories.sort((e,t)=>e.name.localeCompare(t.name)),e.files.sort((e,t)=>e.label.localeCompare(t.label)),e.directories.forEach(s)};return s(n),Ee.set(e,n),n}function Oe(e){let t=2166136261,n=e=>{for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)};for(let t of e.nodes)n(t.id);for(let r of e.edges)n(r.source),n(r.target),n(r.refType),t^=r.weight|0,t=Math.imul(t,16777619);return`${e.nodes.length}:${e.edges.length}:${t>>>0}`}function ke(e,t,n,r){for(e.has(t)&&e.delete(t),e.set(t,n);e.size>r;){let t=e.keys().next().value;if(t===void 0)break;e.delete(t)}}function Ae(e,t){if(!e||!t)return!1;let n=N(e),r=N(t);return n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function je(e){let t=N(e),n=t.match(/\/packages\/([^/]+)\//);if(n?.[1])return`@wrongstack/${n[1]}`;let r=t.match(/\/apps\/([^/]+)\//);return r?.[1]?`app:${r[1]}`:`(root)`}function Me(e,t){return t.kind===`package`?je(e.filePath)===(t.package??t.label):Ae(e.filePath,t.file)?t.kind!==`symbol`||e.symbol?.id===t.id:!1}function R(e){let t=new Map;for(let n of e){let e=N(n.filePath),r=t.get(e);r?r.push(n):t.set(e,[n])}return t}function Ne(e,t){let n=new Map;if(t.length===0||e.length===0)return n;let r=R(t),i=new Map;for(let a of e){let e;if(a.kind===`package`){let n=a.package??a.label,r=i.get(n);r||(r=t.filter(e=>je(e.filePath)===n),i.set(n,r)),e=r}else if(a.file){let t=N(a.file),n=r.get(t);if(!n){n=[];for(let[e,i]of r)(e.endsWith(`/${t}`)||t.endsWith(`/${e}`))&&n.push(...i)}e=a.kind===`symbol`?n.filter(e=>e.symbol?.id===a.id):n}else e=[];e.length>0&&n.set(a.id,e)}return n}function Pe(e){if(e.length===0)return``;let t=`${e.length}`;for(let n=0;n<e.length;n++){let r=e[n];t+=`|${r.id??``}:${r.toolUseId??``}:${r.filePath}:${r.type}:${r.status??``}:${r.symbol?.id??``}:${r.timestamp}`}return t}function Fe(e,t){let n=t.filter(t=>t.kind===`symbol`&&!t.external&&Ae(t.file,e.filePath));if(n.length===0)return;if(e.line)return[...n].sort((e,t)=>(t.line??0)-(e.line??0)).find(t=>(t.line??0)<=e.line)??n[0];let r=e.summary.toLocaleLowerCase();return n.find(e=>e.label.length>2&&(r.includes(e.label.toLocaleLowerCase())||!!(e.signature&&r.includes(e.signature.toLocaleLowerCase()))))}var z=n();function Ie({historyFile:e,fileHistory:t,onClose:n}){let{t:r}=a();return(0,z.jsxs)(`div`,{className:`absolute right-0 top-0 z-50 flex h-full w-[390px] max-w-[90%] flex-col border-l bg-card shadow-2xl`,children:[(0,z.jsxs)(`div`,{className:`flex h-12 items-center justify-between border-b px-4`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,z.jsx)(i,{className:`h-4 w-4 shrink-0 text-warning`}),(0,z.jsx)(`span`,{className:`truncate font-mono text-[11px] font-semibold`,title:e,children:e})]}),(0,z.jsx)(`button`,{type:`button`,onClick:n,className:`flex h-7 w-7 items-center justify-center border text-muted-foreground hover:bg-muted`,"aria-label":r(`activity:codeMap.closeActivity`),children:(0,z.jsx)(s,{className:`h-3.5 w-3.5`})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:t.length===0?(0,z.jsx)(`p`,{className:`py-12 text-center text-[10px] text-muted-foreground`,children:r(`activity:codeMap.noActivityRecordedForThisFile`)}):t.map((e,t)=>(0,z.jsxs)(`div`,{className:`mb-1 flex items-start gap-2 border p-2 text-[10px]`,children:[(0,z.jsx)(`span`,{className:A(`border px-1.5 py-0.5 font-mono text-[8px] font-bold uppercase`,e.type===`delete`?`border-destructive/40 text-destructive`:e.type===`read`?`border-info/40 text-info`:`border-warning/40 text-warning`),children:e.type}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`div`,{className:`font-mono text-[9px] text-muted-foreground`,children:new Date(e.timestamp).toLocaleTimeString()}),e.toolName&&(0,z.jsxs)(`div`,{className:`mt-1`,children:[`via `,e.toolName]}),e.agent&&(0,z.jsx)(`div`,{className:`text-muted-foreground`,children:e.agent}),e.summary&&(0,z.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:e.summary}),e.change&&(0,z.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 font-mono text-[8px]`,children:[(0,z.jsxs)(`span`,{className:`border border-success/40 bg-success/10 px-1 text-success`,children:[`+`,e.change.added]}),(0,z.jsxs)(`span`,{className:`border border-destructive/40 bg-destructive/10 px-1 text-destructive`,children:[`−`,e.change.removed]}),e.change.before&&(0,z.jsx)(`span`,{className:`ml-1 truncate text-destructive/80`,title:e.change.before,children:e.change.before}),e.change.after&&(0,z.jsxs)(`span`,{className:`truncate text-success/80`,title:e.change.after,children:[`→ `,e.change.after]})]}),(0,z.jsxs)(`div`,{className:`mt-1 flex gap-2 font-mono text-[8px] uppercase text-muted-foreground`,children:[(0,z.jsx)(`span`,{children:e.status??`observed`}),(0,z.jsx)(`span`,{children:e.source??`legacy`}),e.durationMs!==void 0&&(0,z.jsxs)(`span`,{children:[e.durationMs,`ms`]}),e.watcherConfirmed&&(0,z.jsx)(`span`,{className:`text-success`,children:r(`activity:codeMap.fsVerified`)})]})]})]},`${e.timestamp}-${t}`))}),(0,z.jsxs)(`div`,{className:`border-t px-4 py-2 font-mono text-[9px] text-muted-foreground`,children:[t.length,` events · newest first`]})]})}var B={package:{icon:w,accent:`border-l-primary`,iconStyle:`bg-primary/12 text-primary`},file:{icon:m,accent:`border-l-info`,iconStyle:`bg-info/12 text-info`},symbol:{icon:S,accent:`border-l-success`,iconStyle:`bg-success/12 text-success`}},Le={call:`hsl(var(--primary))`,import:`hsl(var(--info))`,type_ref:`hsl(var(--success))`,inherit:`hsl(var(--warning))`,implement:`hsl(var(--destructive))`},V={read:`ring-2 ring-info/60 shadow-info/20`,write:`ring-2 ring-warning/70 shadow-warning/30`,edit:`ring-2 ring-warning/80 shadow-warning/40`,delete:`ring-2 ring-destructive/70 shadow-destructive/30`,search:`ring-2 ring-primary/55 shadow-primary/20`,memory:`ring-2 ring-success/60 shadow-success/30`,index:`ring-2 ring-info/50 shadow-info/20`,execute:`ring-2 ring-primary/55 shadow-primary/25`},Re=[`bg-primary text-primary-foreground`,`bg-info text-info-foreground`,`bg-success text-success-foreground`,`bg-warning text-warning-foreground`,`bg-destructive text-destructive-foreground`];function ze(e){let t=e.trim().split(/[\s:_-]+/).filter(Boolean);return(t.length>1?`${t[0]?.[0]??``}${t[1]?.[0]??``}`:e.slice(0,2)).toLocaleUpperCase()}function H(e){let t=0;for(let n of e)t=t*31+n.charCodeAt(0)|0;return Re[Math.abs(t)%Re.length]??Re[0]}function Be(e){let t=0;for(let n of e)t=t*31+n.charCodeAt(0)|0;return`hsl(${Math.abs(t)%360} 82% 58%)`}var U=[`/packages/`,`/apps/`,`/crates/`,`/cmd/`,`/internal/`,`/pkg/`,`/src/`];function Ve(e){let t=e.replace(/\\/g,`/`),n=U.reduce((e,n)=>Math.max(e,t.lastIndexOf(n)),-1);return n>=0?t.slice(n+1):t.split(`/`).slice(-3).join(`/`)}function W(e){return[e.symbol?.name,e.line?`L${e.line}`:void 0].filter(Boolean).join(` · `)}function He({data:e}){let{t}=a(),{graphNode:n,selected:r,dimmed:i,incoming:o,outgoing:s,isActive:c,activityType:l,activeOperations:u}=e,d=B[n.kind],f=d.icon,p=n.kind!==`symbol`,m=n.kind===`symbol`?`${n.symbolKind??`symbol`}${n.line?` · L${n.line}`:``}`:n.kind===`file`?L(n):`${n.fileCount??0} files · ${n.symbolCount??0} symbols`;return(0,z.jsxs)(`div`,{className:A(`group relative w-[236px] border border-l-[3px] bg-card text-card-foreground shadow-[0_8px_24px_hsl(var(--shadow-color)/0.08)] transition-[opacity,box-shadow,border-color,background-color]`,d.accent,r&&`border-primary bg-primary/5 shadow-[0_0_0_2px_hsl(var(--primary)/0.18),0_16px_36px_hsl(var(--shadow-color)/0.18)]`,n.external&&`border-dashed bg-muted/75`,i&&`opacity-25 grayscale`,c&&l&&V[l]),children:[u.length>0&&(0,z.jsxs)(`div`,{className:`absolute -top-5 left-2 z-20 flex max-w-[210px] items-center gap-1`,children:[u.slice(0,4).map(e=>{let t=e.agentName??e.agent??`External`,n=`${e.sessionId??`none`}:${e.agentId??t}`;return(0,z.jsxs)(`span`,{className:A(`flex h-6 items-center gap-1 border-2 border-background px-1.5 font-mono text-[8px] font-bold shadow-md`,H(n)),title:`${t} · ${e.type} ${W(e)}`,children:[(0,z.jsx)(`span`,{className:`h-1.5 w-1.5 animate-pulse bg-current`}),ze(t),e.symbol&&(0,z.jsx)(`span`,{className:`max-w-[80px] truncate`,children:e.symbol.name})]},e.id??`${n}:${e.filePath}`)}),u.length>4&&(0,z.jsxs)(`span`,{className:`border bg-card px-1 font-mono text-[8px] shadow`,children:[`+`,u.length-4]})]}),(0,z.jsx)(D,{type:`target`,position:ie.Left,className:`!h-2.5 !w-2.5 !border-2 !border-card !bg-muted-foreground`}),(0,z.jsxs)(`button`,{type:`button`,className:`block w-full text-left`,onClick:t=>{if(t.shiftKey&&n.file){e.onShowHistory(n.file);return}e.onSelect(n)},onDoubleClick:()=>p&&e.onOpen(n),"aria-label":`${n.kind} ${n.label}`,children:[(0,z.jsxs)(`div`,{className:`flex items-start gap-3 p-3 pr-10`,children:[(0,z.jsx)(`span`,{className:A(`flex h-8 w-8 shrink-0 items-center justify-center border`,d.iconStyle),children:(0,z.jsx)(f,{className:`h-4 w-4`})}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[9px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[(0,z.jsx)(`span`,{children:n.kind}),n.external&&(0,z.jsx)(`span`,{className:`border border-border px-1 py-0.5 text-[8px] text-warning`,children:`external`}),n.lang&&(0,z.jsx)(`span`,{className:`ml-auto font-mono normal-case tracking-normal`,children:n.lang})]}),(0,z.jsx)(`div`,{className:`truncate font-mono text-[13px] font-semibold`,title:n.label,children:n.label}),(0,z.jsx)(`div`,{className:`mt-1 truncate text-[10px] text-muted-foreground`,title:m,children:m})]})]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 border-t bg-muted/30 px-3 py-1.5 font-mono text-[9px] text-muted-foreground`,children:[(0,z.jsxs)(`span`,{title:t(`activity:codeMapVisuals.incomingRelationships`),children:[`← `,o]}),(0,z.jsxs)(`span`,{title:t(`activity:codeMapVisuals.outgoingRelationships`),children:[`→ `,s]}),n.symbolCount!==void 0&&n.kind===`file`&&(0,z.jsxs)(`span`,{className:`ml-auto`,children:[n.symbolCount,` sym`]}),c&&(0,z.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-bold text-warning`,children:[(0,z.jsx)(y,{className:`h-2.5 w-2.5 animate-pulse`}),` LIVE`]})]})]}),p&&(0,z.jsx)(`button`,{type:`button`,className:`absolute right-2 top-2 z-10 flex h-7 w-7 items-center justify-center border border-transparent text-muted-foreground opacity-0 transition hover:border-border hover:bg-muted hover:text-foreground group-hover:opacity-100 focus:opacity-100`,onClick:()=>e.onOpen(n),title:n.kind===`package`?`Open file map`:`Open symbol map`,"aria-label":`Open ${n.label} map`,children:(0,z.jsx)(g,{className:`h-3.5 w-3.5`})}),(0,z.jsx)(D,{type:`source`,position:ie.Right,className:`!h-2.5 !w-2.5 !border-2 !border-card !bg-muted-foreground`})]})}function Ue(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function We(e,t){return e.graphNode===t.graphNode&&e.selected===t.selected&&e.dimmed===t.dimmed&&e.incoming===t.incoming&&e.outgoing===t.outgoing&&e.isActive===t.isActive&&e.activityType===t.activityType&&e.onSelect===t.onSelect&&e.onOpen===t.onOpen&&e.onShowHistory===t.onShowHistory&&Ue(e.activeOperations,t.activeOperations)}var Ge={codemap:(0,j.memo)(He,(e,t)=>We(e.data,t.data))},Ke={nodes:[],edges:[]};function qe(e){return/Authentication required|Unauthorized/i.test(e)}function Je({loading:e,error:t,graph:n,canvasNodeCount:r,flowNodes:i,flowEdges:o,onNodesChange:s,onEdgesChange:c,agentTrailCount:u}){let{t:d}=a();return(0,z.jsxs)(z.Fragment,{children:[e&&(0,z.jsxs)(`div`,{className:`absolute inset-0 z-20 flex flex-col items-center justify-center gap-3 bg-background/75 backdrop-blur-sm`,children:[(0,z.jsx)(l,{className:`h-7 w-7 animate-spin text-primary`}),(0,z.jsx)(`span`,{className:`font-mono text-[10px] uppercase tracking-widest text-muted-foreground`,children:d(`activity:codeMap.mappingRelationships`)})]}),t&&!e&&(0,z.jsxs)(`div`,{className:`absolute inset-0 z-20 flex flex-col items-center justify-center gap-3 p-8 text-center`,children:[(0,z.jsx)(C,{className:`h-10 w-10 text-destructive`}),(0,z.jsx)(`p`,{className:`font-mono text-sm text-destructive`,children:t}),!qe(t)&&(0,z.jsxs)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:[`The map needs a codebase index. Run`,` `,(0,z.jsx)(`code`,{className:`border bg-muted px-1.5 py-0.5`,children:`codebase-index`}),` `,d(`activity:codeMap.onceThenReopenThisView`)]})]}),!e&&!t&&n.nodes.length===0&&(0,z.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-2 text-muted-foreground`,children:[(0,z.jsx)(C,{className:`h-8 w-8 opacity-40`}),(0,z.jsx)(`p`,{className:`text-xs`,children:d(`activity:codeMap.noIndexedNodesAtThisLevel`)})]}),!e&&!t&&n.nodes.length>1&&n.edges.length===0&&(0,z.jsxs)(`div`,{className:`pointer-events-none absolute left-1/2 top-14 z-10 -translate-x-1/2 border border-warning/40 bg-warning/10 px-3 py-2 text-center shadow backdrop-blur`,children:[(0,z.jsx)(`div`,{className:`font-mono text-[9px] font-bold uppercase tracking-wider text-warning`,children:d(`activity:codeMap.noResolvedRelationsInThisScope`)}),(0,z.jsx)(`div`,{className:`mt-0.5 text-[8px] text-muted-foreground`,children:d(`activity:codeMap.theUpgradedIndexWillRebuildAnd`)})]}),!t&&n.nodes.length>0&&(0,z.jsxs)(ue,{nodes:i,edges:o,onNodesChange:s,onEdgesChange:c,nodeTypes:Ge,nodesConnectable:!1,nodesDraggable:!1,edgesFocusable:!1,elementsSelectable:!1,onlyRenderVisibleElements:!0,minZoom:.08,maxZoom:2.2,proOptions:{hideAttribution:!0},children:[(0,z.jsx)(le,{variant:oe.Dots,gap:r>60?32:22,size:1,color:`hsl(var(--muted-foreground))`,className:`!opacity-25`}),(0,z.jsx)(ce,{position:`bottom-left`,showInteractive:!1,className:`!border !border-border !bg-card !shadow-md [&>button]:!border-border [&>button]:!bg-card [&>button]:!fill-foreground`}),r<=48&&(0,z.jsx)(k,{position:`bottom-right`,pannable:!0,zoomable:!0,className:`!h-[112px] !w-[180px] !border !border-border !bg-card !shadow-md`,maskColor:`hsl(var(--background) / 0.72)`,nodeColor:e=>{let t=e.data?.graphNode.kind;return t===`package`?`hsl(var(--primary))`:t===`file`?`hsl(var(--info))`:`hsl(var(--success))`}})]}),(0,z.jsxs)(`div`,{className:`pointer-events-none absolute bottom-3 left-1/2 z-10 flex -translate-x-1/2 items-center gap-3 border bg-card/90 px-3 py-1.5 font-mono text-[8px] text-muted-foreground shadow backdrop-blur`,children:[Object.entries(Le).map(([e,t])=>(0,z.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,z.jsx)(`span`,{className:`h-0.5 w-3`,style:{backgroundColor:t}}),e.replace(`_`,` `)]},e)),(0,z.jsxs)(`span`,{className:`flex items-center gap-1 text-primary`,"data-testid":`agent-trail-count`,children:[(0,z.jsx)(`span`,{className:`w-4 border-t-2 border-dashed border-primary`}),`agent trail`,u>0?` ×${u}`:``]})]})]})}function Ye({layout:e,canvasMode:t,edgeFilter:n,canvasNodeCount:r,graphNodeCount:i,onLayoutChange:o,onCanvasModeChange:s,onEdgeFilterChange:c}){let{t:l}=a();return(0,z.jsxs)(`div`,{className:`pointer-events-none absolute left-3 right-3 top-3 z-10 flex items-center gap-2`,children:[(0,z.jsxs)(`div`,{className:`pointer-events-auto flex border bg-card/95 shadow-md backdrop-blur`,children:[(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-8 items-center gap-1.5 border-r px-2.5 text-[9px] font-semibold uppercase tracking-wider`,e===`layers`?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>o(`layers`),children:[(0,z.jsx)(v,{className:`h-3 w-3`}),` `,l(`activity:codeMap.layers`)]}),(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-8 items-center gap-1.5 px-2.5 text-[9px] font-semibold uppercase tracking-wider`,e===`orbit`?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>o(`orbit`),children:[(0,z.jsx)(f,{className:`h-3 w-3`}),` `,l(`activity:codeMap.relations`)]})]}),(0,z.jsxs)(`div`,{className:`pointer-events-auto flex border bg-card/95 shadow-md backdrop-blur`,children:[(0,z.jsxs)(`button`,{type:`button`,className:A(`h-8 border-r px-2.5 font-mono text-[9px] font-bold`,t===`smart`?`bg-success text-success-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>s(`smart`),title:l(`activity:codeMap.keepTheFullTreeShowTheStrongestRelationsAndSelectedNeighbourhood`),children:[`SMART `,r,`/`,i]}),(0,z.jsx)(`button`,{type:`button`,className:A(`h-8 px-2.5 font-mono text-[9px] font-bold`,t===`all`?`bg-foreground text-background`:`text-muted-foreground hover:bg-muted`),onClick:()=>s(`all`),title:l(`activity:codeMap.renderEveryNodeAndRelationInThisScope`),children:l(`activity:codeMap.all`)})]}),(0,z.jsx)(`div`,{className:`pointer-events-auto ml-auto flex max-w-[60%] overflow-x-auto border bg-card/95 shadow-md backdrop-blur`,children:[`all`,`import`,`call`,`type_ref`,`inherit`,`implement`].map(e=>(0,z.jsx)(`button`,{type:`button`,className:A(`h-8 whitespace-nowrap border-r px-2.5 font-mono text-[9px] last:border-r-0`,n===e?`bg-foreground text-background`:`text-muted-foreground hover:bg-muted`),onClick:()=>c(e),children:e===`all`?`ALL LINKS`:e.replace(`_`,` `).toUpperCase()},e))})]})}function Xe({scope:e,graph:t,agentPresences:n,edgeWeight:r,connectedNodeCount:i,navigate:s}){let{t:c}=a();return(0,z.jsxs)(`header`,{className:`flex h-[62px] shrink-0 items-center gap-4 border-b bg-card px-4`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-[220px] items-center gap-3`,children:[(0,z.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center border border-primary bg-primary/10 text-primary`,children:(0,z.jsx)(C,{className:`h-4 w-4`})}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h1`,{className:`font-display text-sm font-semibold tracking-tight`,children:c(`activity:codeMap.codeAtlas`)}),(0,z.jsx)(`p`,{className:`text-[9px] uppercase tracking-[0.18em] text-muted-foreground`,children:c(`activity:codeMap.architectureIntelligence`)})]})]}),(0,z.jsxs)(`nav`,{className:`flex min-w-0 flex-1 items-center gap-1 font-mono text-[10px]`,"aria-label":c(`activity:codeMap.codeMapBreadcrumb`),children:[e.level!==`packages`&&(0,z.jsx)(`button`,{type:`button`,className:`mr-1 flex h-7 w-7 items-center justify-center border text-muted-foreground hover:bg-muted`,onClick:()=>{e.level===`symbols`?s({level:`files`,package:e.package??`(root)`}):s({level:`packages`})},"aria-label":c(`activity:codeMap.back`),children:(0,z.jsx)(E,{className:`h-3.5 w-3.5`})}),(0,z.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 px-1.5 py-1 text-muted-foreground hover:text-foreground`,onClick:()=>s({level:`packages`}),children:[(0,z.jsx)(x,{className:`h-3 w-3`}),` workspace`]}),e.level!==`packages`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(o,{className:`h-3 w-3 text-muted-foreground`}),(0,z.jsx)(`button`,{type:`button`,className:`max-w-[220px] truncate px-1.5 py-1 hover:text-primary`,onClick:()=>s({level:`files`,package:e.package??`(root)`}),children:e.package??`(root)`})]}),e.level===`symbols`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(o,{className:`h-3 w-3 text-muted-foreground`}),(0,z.jsx)(`span`,{className:`truncate px-1.5 py-1 text-primary`,children:L({id:``,label:e.file,kind:`file`,file:e.file,package:e.package})})]})]}),(0,z.jsxs)(`div`,{className:`hidden items-center gap-5 xl:flex`,children:[(0,z.jsxs)(`div`,{className:A(`flex h-8 items-center gap-2 border px-2.5`,n.length>0?`border-success/50 bg-success/10 text-success`:`text-muted-foreground`),children:[(0,z.jsx)(y,{className:A(`h-3 w-3`,n.length>0&&`animate-pulse`)}),(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`font-mono text-[10px] font-bold`,children:[n.length,` LIVE`]}),(0,z.jsx)(`div`,{className:`text-[7px] uppercase tracking-wider`,children:`agents`})]})]}),(0,z.jsxs)(`div`,{className:`text-right`,children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:t.nodes.length}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`nodes`})]}),(0,z.jsxs)(`div`,{className:`text-right`,children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:t.edges.length}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`links`})]}),(0,z.jsxs)(`div`,{className:`text-right`,children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:r}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`references`})]}),(0,z.jsxs)(`div`,{className:`text-right`,children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:i}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`connected`})]})]})]})}function Ze({activity:e}){return(0,z.jsx)(`span`,{className:A(`shrink-0 border px-1.5 py-0.5 font-mono text-[8px] font-bold uppercase`,e.type===`delete`?`border-destructive/50 bg-destructive/10 text-destructive`:e.type===`read`?`border-info/50 bg-info/10 text-info`:e.type===`search`||e.type===`index`?`border-primary/50 bg-primary/10 text-primary`:`border-warning/50 bg-warning/10 text-warning`),children:e.filePath.startsWith(`(tool:`)?e.toolName:e.type})}function G({activity:e,onLocate:t,showAgent:n=!1}){let{t:r}=a(),i=e.agentName??e.agent??`External process`,o=`${e.sessionId??`none`}:${e.agentId??i}`;return(0,z.jsxs)(`button`,{type:`button`,className:`group flex w-full items-start gap-2 border-b px-3 py-2 text-left last:border-b-0 hover:bg-muted/70`,onClick:()=>!e.filePath.startsWith(`(`)&&t(e),title:`Locate ${e.filePath}`,children:[n&&(0,z.jsx)(`span`,{className:A(`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center font-mono text-[8px] font-black`,H(o)),children:ze(i)}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,z.jsx)(Ze,{activity:e}),n&&(0,z.jsx)(`span`,{className:`truncate text-[9px] font-semibold`,children:i}),e.status===`active`&&(0,z.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-mono text-[8px] font-bold text-success`,children:[(0,z.jsx)(`span`,{className:`h-1.5 w-1.5 animate-pulse bg-success`}),` `,r(`activity:codeMap.live`)]}),e.watcherConfirmed&&(0,z.jsx)(d,{className:`ml-auto h-3 w-3 text-success`,"aria-label":r(`activity:codeMap.filesystemConfirmed`)}),e.attribution===`correlated`&&!e.watcherConfirmed&&(0,z.jsx)(`span`,{className:`ml-auto font-mono text-[7px] uppercase text-warning`,title:r(`activity:codeMap.correlatedFromTheOnlyActiveTool`),children:r(`activity:codeMap.correlated`)}),e.attribution===`external`&&(0,z.jsx)(`span`,{className:`ml-auto font-mono text-[7px] uppercase text-destructive`,children:`external`})]}),(0,z.jsx)(`div`,{className:`mt-1 truncate font-mono text-[9px] font-semibold`,title:e.filePath,children:Ve(e.filePath)}),(e.symbol||e.line)&&(0,z.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-1 truncate font-mono text-[8px] text-success`,children:[(0,z.jsx)(_,{className:`h-2.5 w-2.5 shrink-0`}),e.symbol?.name??`line ${e.line}`,e.symbol?.kind&&(0,z.jsxs)(`span`,{className:`text-muted-foreground`,children:[`· `,e.symbol.kind]})]}),e.change&&(0,z.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 font-mono text-[8px]`,children:[(0,z.jsxs)(`span`,{className:`border border-success/40 bg-success/10 px-1 text-success`,children:[`+`,e.change.added]}),(0,z.jsxs)(`span`,{className:`border border-destructive/40 bg-destructive/10 px-1 text-destructive`,children:[`−`,e.change.removed]}),e.durationMs!==void 0&&(0,z.jsxs)(`span`,{className:`ml-auto text-muted-foreground`,children:[e.durationMs,`ms`]})]}),e.summary&&e.summary!==e.toolName&&(0,z.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[8px] leading-3 text-muted-foreground`,children:e.summary})]}),!e.filePath.startsWith(`(`)&&(0,z.jsx)(g,{className:`mt-1 h-3 w-3 shrink-0 text-muted-foreground opacity-0 group-hover:opacity-100`})]})}function Qe({presences:e,onLocate:t}){let{t:n}=a();return e.length===0?null:(0,z.jsxs)(`section`,{className:`pointer-events-auto absolute left-3 top-14 z-20 w-[304px] border bg-card/95 shadow-xl backdrop-blur`,children:[(0,z.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b px-3`,children:[(0,z.jsx)(y,{className:`h-3.5 w-3.5 animate-pulse text-success`}),(0,z.jsx)(`h2`,{className:`text-[9px] font-black uppercase tracking-[0.18em]`,children:n(`activity:codeMap.liveAgentOperations`)}),(0,z.jsxs)(`span`,{className:`ml-auto bg-success px-1.5 py-0.5 font-mono text-[8px] font-bold text-success-foreground`,children:[e.length,` ONLINE`]})]}),(0,z.jsx)(`div`,{className:`max-h-[330px] overflow-y-auto`,children:e.map(e=>(0,z.jsxs)(`div`,{className:`border-b last:border-b-0`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 bg-muted/35 px-3 py-1.5`,children:[(0,z.jsx)(`span`,{className:A(`flex h-6 w-6 items-center justify-center font-mono text-[8px] font-black`,H(e.key)),children:ze(e.agentName)}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`div`,{className:`truncate text-[9px] font-bold`,children:e.agentName}),(0,z.jsxs)(`div`,{className:`truncate font-mono text-[7px] text-muted-foreground`,children:[`session `,e.sessionId.slice(0,12),` · agent `,e.agentId.slice(0,12)]})]}),(0,z.jsxs)(`span`,{className:`font-mono text-[8px] text-success`,children:[e.operations.length,` op`]})]}),e.operations.map(e=>(0,z.jsx)(G,{activity:e,onLocate:t},e.id??`${e.toolUseId}:${e.filePath}`))]},e.key))})]})}function $e({paused:e,followLive:t,agentFilter:n,agents:r,onTogglePaused:i,onToggleFollow:o,onAgentFilter:s}){let{t:c}=a();return(0,z.jsxs)(`div`,{className:`pointer-events-auto absolute right-3 top-14 z-20 flex h-9 items-center border bg-card/95 shadow-lg backdrop-blur`,children:[(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-full items-center gap-1.5 border-r px-2.5 text-[8px] font-bold uppercase tracking-wider`,t?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:o,title:c(`activity:codeMap.automaticallyEnterTheFileFunctionUsedByTheNewestVisibleAgent`),children:[(0,z.jsx)(_,{className:`h-3 w-3`}),` `,c(`activity:codeMap.follow`)]}),(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-full items-center gap-1.5 border-r px-2.5 text-[8px] font-bold uppercase tracking-wider`,e?`bg-warning text-warning-foreground`:`text-success hover:bg-success/10`),onClick:i,title:e?`Resume the live telemetry stream`:`Freeze the current telemetry frame`,children:[e?(0,z.jsx)(h,{className:`h-3 w-3`}):(0,z.jsx)(b,{className:`h-3 w-3`}),e?`Resume`:`Live`]}),(0,z.jsxs)(`label`,{className:`flex h-full items-center gap-1.5 px-2 text-[8px] uppercase text-muted-foreground`,children:[c(`activity:codeMap.agent`),(0,z.jsxs)(`select`,{"aria-label":c(`activity:codeMap.filterCodemapByAgentAndSession`),className:`h-6 max-w-[170px] border bg-background px-1.5 font-mono text-[8px] text-foreground outline-none focus:border-primary`,value:n,onChange:e=>s(e.target.value),children:[(0,z.jsx)(`option`,{value:`all`,children:c(`activity:codeMap.allAgents`)}),r.map(e=>(0,z.jsxs)(`option`,{value:e.key,children:[e.agentName,` · `,e.sessionId.slice(0,10)]},e.key))]})]})]})}function et({activeOperations:e,recentActivities:t,activityTotalCount:n,onLocate:r}){let{t:o}=a();return(0,z.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[e.length>0&&(0,z.jsxs)(`section`,{className:`border-b`,children:[(0,z.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b bg-success/5 px-3`,children:[(0,z.jsx)(y,{className:`h-3 w-3 animate-pulse text-success`}),(0,z.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:o(`activity:codeMap.activeNow`)}),(0,z.jsx)(`span`,{className:`ml-auto font-mono text-[9px] text-success`,children:e.length})]}),e.map(e=>(0,z.jsx)(G,{activity:e,onLocate:r,showAgent:!0},e.id??`${e.toolUseId}:${e.filePath}`))]}),(0,z.jsxs)(`section`,{children:[(0,z.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b px-3`,children:[(0,z.jsx)(i,{className:`h-3 w-3 text-muted-foreground`}),(0,z.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:o(`activity:codeMap.eventStream`)}),(0,z.jsxs)(`span`,{className:`ml-auto font-mono text-[8px] text-muted-foreground`,children:[n,` total`]})]}),t.length>0?t.map((e,t)=>(0,z.jsx)(G,{activity:e,onLocate:r,showAgent:!0},e.id??`${e.timestamp}:${t}`)):(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-7 py-16 text-center`,children:[(0,z.jsx)(`span`,{className:`mb-4 flex h-12 w-12 items-center justify-center border bg-muted text-muted-foreground`,children:(0,z.jsx)(T,{className:`h-5 w-5`})}),(0,z.jsx)(`h3`,{className:`text-xs font-semibold`,children:o(`activity:codeMap.selectANodeOrWaitFor`)}),(0,z.jsx)(`p`,{className:`mt-2 text-[10px] leading-relaxed text-muted-foreground`,children:o(`activity:codeMap.relationsAppearOnSelectionToolCalls`)})]})]})]})}function K({node:e,incomingCount:t,outgoingCount:n,onOpenNode:r,onOpenActivity:o}){let{t:s}=a(),c=B[e.kind].icon;return(0,z.jsxs)(`div`,{className:`border-b bg-muted/25 p-3`,children:[(0,z.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,z.jsx)(`span`,{className:A(`flex h-8 w-8 items-center justify-center border`,B[e.kind].iconStyle),children:(0,z.jsx)(c,{className:`h-4 w-4`})}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`div`,{className:`text-[8px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[e.external?`external `:``,e.kind]}),(0,z.jsx)(`div`,{className:`truncate font-mono text-xs font-semibold`,title:e.label,children:e.label})]})]}),(0,z.jsx)(`div`,{className:`break-all font-mono text-[9px] leading-relaxed text-muted-foreground`,children:e.file?L(e):e.package}),e.signature&&(0,z.jsx)(`pre`,{className:`mt-3 overflow-x-auto border bg-background p-2 font-mono text-[9px] leading-relaxed text-foreground`,children:e.signature}),(0,z.jsxs)(`div`,{className:`mt-3 grid grid-cols-3 border`,children:[(0,z.jsx)(tt,{value:t,label:s(`activity:codeMap.incoming`),className:`border-r text-info`}),(0,z.jsx)(tt,{value:n,label:s(`activity:codeMap.outgoing`),className:`border-r text-primary`}),(0,z.jsx)(tt,{value:e.symbolCount??e.fileCount??e.line??`—`,label:e.kind===`package`?`files`:e.kind===`file`?`symbols`:`line`})]}),(0,z.jsxs)(`div`,{className:`mt-2 flex gap-2`,children:[e.kind!==`symbol`&&(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 flex-1 items-center justify-center gap-1.5 border bg-foreground text-[9px] font-semibold uppercase tracking-wider text-background hover:opacity-90`,onClick:()=>r(e),children:[(0,z.jsx)(g,{className:`h-3 w-3`}),` Open`,` `,e.kind===`package`?`files`:`symbols`]}),e.file&&(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 items-center justify-center gap-1.5 border px-2 text-[9px] uppercase text-muted-foreground hover:bg-muted`,onClick:()=>o(e.file),children:[(0,z.jsx)(i,{className:`h-3 w-3`}),` `,s(`activity:codeMap.activity`)]})]})]})}function tt({value:e,label:t,className:n}){return(0,z.jsxs)(`div`,{className:A(`p-2 text-center`,n),children:[(0,z.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:e}),(0,z.jsx)(`div`,{className:`text-[8px] uppercase text-muted-foreground`,children:t})]})}function q(e){let{t}=a(),{title:n,subtitle:r,items:i,graph:s,selectedId:l,expanded:u,onToggle:d,onSelect:f}=e;return(0,z.jsxs)(`section`,{className:`border-b py-3`,children:[(0,z.jsxs)(`div`,{className:`mb-2 flex items-end justify-between px-3`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h3`,{className:`text-[10px] font-bold uppercase tracking-[0.16em]`,children:n}),(0,z.jsx)(`p`,{className:`mt-0.5 text-[9px] text-muted-foreground`,children:r})]}),(0,z.jsx)(`span`,{className:`border bg-muted px-1.5 py-0.5 font-mono text-[9px]`,children:i.length})]}),i.length===0?(0,z.jsx)(`p`,{className:`px-3 py-2 text-[10px] text-muted-foreground`,children:t(`activity:codeMap.noRelationshipsInThisView`)}):i.map(e=>{let t=`${n}:${e.node.id}`,r=u.has(t),i=[..._e(s,e.node.id,`incoming`),..._e(s,e.node.id,`outgoing`)].filter((e,t,n)=>e.node.id!==l&&n.findIndex(t=>t.node.id===e.node.id)===t).slice(0,8);return(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`group flex min-h-9 items-center gap-1 px-2 hover:bg-muted/70`,children:[(0,z.jsx)(`button`,{type:`button`,className:`flex h-6 w-5 shrink-0 items-center justify-center text-muted-foreground`,onClick:()=>i.length>0&&d(t),"aria-label":`${r?`Collapse`:`Expand`} relation ${e.node.label}`,children:i.length>0?r?(0,z.jsx)(c,{className:`h-3 w-3`}):(0,z.jsx)(o,{className:`h-3 w-3`}):(0,z.jsx)(`span`,{className:`h-px w-2 bg-border`})}),(0,z.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 py-1 text-left`,onClick:()=>f(e.node),children:[(0,z.jsx)(`span`,{className:`block truncate font-mono text-[10px] font-semibold`,title:e.node.label,children:e.node.label}),(0,z.jsx)(`span`,{className:`block truncate text-[9px] text-muted-foreground`,children:e.node.package??e.node.symbolKind??e.node.kind})]}),(0,z.jsx)(`span`,{className:`border px-1 py-0.5 font-mono text-[8px] text-muted-foreground`,children:e.edge.refType}),(0,z.jsxs)(`span`,{className:`w-5 text-right font-mono text-[9px] text-muted-foreground`,children:[`×`,e.edge.weight]})]}),r&&i.map(e=>(0,z.jsxs)(`button`,{type:`button`,className:`relative flex h-7 w-full items-center gap-2 border-l border-border pl-11 pr-3 text-left text-[9px] text-muted-foreground hover:bg-muted hover:text-foreground`,onClick:()=>f(e.node),children:[(0,z.jsx)(`span`,{className:`absolute left-7 top-1/2 h-px w-3 bg-border`}),(0,z.jsx)(T,{className:`h-3 w-3 shrink-0`}),(0,z.jsx)(`span`,{className:`truncate font-mono`,children:e.node.label}),(0,z.jsx)(`span`,{className:`ml-auto font-mono opacity-70`,children:e.edge.refType})]},`${t}:${e.node.id}`))]},t)})]})}function nt({selectedNode:e,incoming:t,outgoing:n,filteredGraph:r,expandedRelations:i,activeOperations:o,recentActivities:c,activityTotalCount:l,selectedActivities:u,onClearSelection:d,onOpenNode:f,onOpenActivity:p,onLocateActivity:m,onToggleRelation:h,onSelectNode:g}){let{t:_}=a();return(0,z.jsxs)(`aside`,{className:`flex w-[326px] shrink-0 flex-col border-l bg-card/80`,children:[(0,z.jsxs)(`div`,{className:`flex h-10 items-center justify-between border-b px-3`,children:[(0,z.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.18em]`,children:_(`activity:codeMap.relationInspector`)}),e&&(0,z.jsx)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground`,onClick:d,"aria-label":_(`activity:codeMap.clearSelection`),children:(0,z.jsx)(s,{className:`h-3.5 w-3.5`})})]}),e?(0,z.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,z.jsx)(K,{node:e,incomingCount:t.length,outgoingCount:n.length,onOpenNode:f,onOpenActivity:p}),u.length>0&&(0,z.jsxs)(`section`,{className:`border-b bg-success/5 py-2`,children:[(0,z.jsxs)(`div`,{className:`mb-1 flex items-center gap-2 px-3`,children:[(0,z.jsx)(y,{className:`h-3 w-3 animate-pulse text-success`}),(0,z.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:_(`activity:codeMap.agentsOnThisNode`)}),(0,z.jsx)(`span`,{className:`ml-auto font-mono text-[9px] text-success`,children:u.length})]}),u.map(e=>(0,z.jsx)(G,{activity:e,onLocate:m,showAgent:!0},e.id??`${e.toolUseId}:${e.filePath}`))]}),(0,z.jsx)(q,{title:_(`activity:codeMap.incoming`),subtitle:_(`activity:codeMap.whoDependsOnThis`),items:t,graph:r,selectedId:e.id,expanded:i,onToggle:h,onSelect:g}),(0,z.jsx)(q,{title:_(`activity:codeMap.outgoing`),subtitle:_(`activity:codeMap.whatThisDependsOn`),items:n,graph:r,selectedId:e.id,expanded:i,onToggle:h,onSelect:g})]}):(0,z.jsx)(et,{activeOperations:o,recentActivities:c,activityTotalCount:l,onLocate:m})]})}function rt({node:e,onSelect:t,virtual:n}){let r=B[e.kind].icon;return(0,z.jsxs)(`button`,{type:`button`,"data-index":n?.index,ref:n?e=>n.measureElement(e):void 0,className:A(`min-h-8 items-center gap-2 px-3 py-1 text-left hover:bg-muted`,n?`absolute left-0 flex w-full`:`flex w-full`),style:n?{transform:`translateY(${n.start}px)`}:void 0,onClick:()=>t(e),children:[(0,z.jsx)(r,{className:A(`h-3.5 w-3.5 shrink-0`,e.kind===`package`?`text-primary`:e.kind===`file`?`text-info`:`text-success`)}),(0,z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`span`,{className:`block truncate font-mono text-[10px]`,children:e.label}),(0,z.jsx)(`span`,{className:`block truncate text-[8px] text-muted-foreground`,children:e.file??e.package??e.symbolKind})]}),(0,z.jsx)(`span`,{className:`text-[8px] uppercase text-muted-foreground`,children:e.kind.slice(0,3)})]},e.id)}var J=80,it=40;function at(e,t){if(!e||t.size===0)return!1;let n=N(e);if(t.has(n))return!0;for(let e of t)if(e.endsWith(`/${n}`)||n.endsWith(`/${e}`))return!0;return!1}var ot=(0,j.memo)(function e(t){let{t:n}=a(),{directory:r,packageName:i,depth:s,expandedDirectories:d,expandedFiles:f,loadingBranches:p,graphForFile:h,onToggleDirectory:_,onToggleFile:v,onSelectFile:te,onOpenFile:b,onSelectSymbol:x,selectedId:C,activeFileNorms:w,activeSymbolIds:T,revealAllKeys:E,onRevealAll:D}=t,O=`files:${i}:${r.path||`.`}`,ne=E.has(O)?r.files:r.files.slice(0,J),re=r.files.length-ne.length;return(0,z.jsxs)(z.Fragment,{children:[r.directories.map(n=>{let r=`${i}:${n.path}`,a=d.has(r);return(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center gap-1.5 pr-2 text-left text-[11px] text-muted-foreground hover:bg-muted hover:text-foreground`,style:{paddingLeft:8+s*12},onClick:()=>_(r),children:[a?(0,z.jsx)(c,{className:`h-3 w-3`}):(0,z.jsx)(o,{className:`h-3 w-3`}),a?(0,z.jsx)(u,{className:`h-3.5 w-3.5 text-warning`}):(0,z.jsx)(ee,{className:`h-3.5 w-3.5 text-warning`}),(0,z.jsx)(`span`,{className:`truncate`,children:n.name})]}),a&&(0,z.jsx)(e,{...t,directory:n,depth:s+1})]},r)}),ne.map(e=>{let t=f.has(e.file??e.id),r=P({level:`symbols`,file:e.file??e.label}),i=(e.file?h(e.file):void 0)?.nodes.filter(t=>t.kind===`symbol`&&t.file===e.file&&!t.external)??[],a=`symbols:${e.file??e.id}`,u=E.has(a)?i:i.slice(0,it),d=i.length-u.length,_=at(e.file,w);return(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:A(`group flex h-7 items-center pr-1 text-[11px] hover:bg-muted`,C===e.id&&`bg-primary/10 text-primary`),style:{paddingLeft:8+s*12},children:[(0,z.jsx)(`button`,{type:`button`,className:`flex h-6 w-4 shrink-0 items-center justify-center text-muted-foreground`,onClick:()=>v(e),"aria-label":`${t?`Collapse`:`Expand`} ${e.label}`,children:p.has(r)?(0,z.jsx)(l,{className:`h-3 w-3 animate-spin`}):t?(0,z.jsx)(c,{className:`h-3 w-3`}):(0,z.jsx)(o,{className:`h-3 w-3`})}),(0,z.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-1.5 text-left`,onClick:()=>te(e),onDoubleClick:()=>b(e),children:[(0,z.jsx)(m,{className:`h-3.5 w-3.5 shrink-0 text-info`}),_&&(0,z.jsx)(`span`,{className:`h-1.5 w-1.5 shrink-0 animate-pulse bg-success`,title:n(`activity:codeMap.liveOperation`)}),(0,z.jsx)(`span`,{className:`truncate font-mono`,title:e.file,children:e.label}),(0,z.jsx)(`span`,{className:`ml-auto text-[9px] text-muted-foreground`,children:e.symbolCount??0})]}),(0,z.jsx)(`button`,{type:`button`,className:`ml-1 hidden h-5 w-5 items-center justify-center text-muted-foreground hover:text-foreground group-hover:flex`,onClick:()=>b(e),title:n(`activity:codeMap.openSymbolMap`),"aria-label":`Open ${e.label} map`,children:(0,z.jsx)(g,{className:`h-3 w-3`})})]}),t&&u.map(e=>(0,z.jsxs)(`button`,{type:`button`,className:A(`flex h-7 w-full items-center gap-1.5 pr-2 text-left text-[10px] hover:bg-muted`,C===e.id?`bg-primary/10 text-primary`:`text-muted-foreground`),style:{paddingLeft:38+s*12},onClick:()=>x(e),children:[(0,z.jsx)(S,{className:`h-3 w-3 shrink-0 text-success`}),T.has(e.id)&&(0,z.jsx)(y,{className:`h-3 w-3 shrink-0 animate-pulse text-success`}),(0,z.jsx)(`span`,{className:`truncate font-mono`,children:e.label}),e.line&&(0,z.jsxs)(`span`,{className:`ml-auto font-mono text-[8px] opacity-60`,children:[`:`,e.line]})]},e.id)),t&&d>0&&(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center text-left font-mono text-[9px] text-primary hover:bg-muted`,style:{paddingLeft:38+s*12},onClick:()=>D(a),children:[`Show `,d,` more symbols`]})]},e.id)}),re>0&&(0,z.jsxs)(`button`,{type:`button`,className:`flex h-7 w-full items-center text-left font-mono text-[9px] text-primary hover:bg-muted`,style:{paddingLeft:8+s*12},onClick:()=>D(O),children:[`Show `,re,` more files`]})]})});function st({rootGraph:e,search:t,searchInput:n,searchResults:r,virtualizeSearch:i,searchVirtualizer:u,treeScrollRef:d,selectedId:f,expandedPackages:m,expandedDirectories:h,expandedFiles:_,loadingBranches:v,activeFileNorms:ee,activeSymbolIds:te,revealAllKeys:y,packageGraph:b,graphForFile:x,navigate:S,togglePackage:C,toggleDirectory:T,toggleFile:E,revealAllTree:D,selectFileFromTree:O,selectSymbolFromTree:ne,selectSearchResult:re,handleOpenNode:ie,onSearchInputChange:ae,onSearchChange:oe}){let{t:k}=a();return(0,z.jsxs)(`aside`,{className:`flex w-[286px] shrink-0 flex-col border-r bg-card/70`,children:[(0,z.jsxs)(`div`,{className:`border-b p-3`,children:[(0,z.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,z.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.18em]`,children:k(`activity:codeMapTree.codeTree`)}),(0,z.jsxs)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:[e.nodes.length,` roots`]})]}),(0,z.jsxs)(`label`,{className:`flex h-8 items-center gap-2 border bg-background px-2 focus-within:border-primary`,children:[(0,z.jsx)(p,{className:`h-3.5 w-3.5 text-muted-foreground`}),(0,z.jsx)(`input`,{className:`min-w-0 flex-1 bg-transparent font-mono text-[10px] outline-none placeholder:text-muted-foreground`,value:n,onChange:e=>ae(e.target.value),placeholder:k(`activity:codeMapTree.findPackageFileSymbol`)}),n&&(0,z.jsx)(`button`,{type:`button`,onClick:()=>{ae(``),oe(``)},"aria-label":k(`activity:codeMapTree.clearSearch`),children:(0,z.jsx)(s,{className:`h-3 w-3 text-muted-foreground`})})]})]}),(0,z.jsx)(`div`,{ref:d,className:`min-h-0 flex-1 overflow-y-auto py-2`,children:t.trim()?(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`px-3 pb-2 text-[9px] text-muted-foreground`,children:[r.length,` loaded-map results`]}),r.length===0?(0,z.jsxs)(`p`,{className:`px-3 py-8 text-center text-[10px] text-muted-foreground`,children:[k(`activity:codeMapTree.noMatchInLoadedBranches`),(0,z.jsx)(`br`,{}),k(`activity:codeMapTree.expandAPackageToSearchIts`)]}):i?(0,z.jsx)(`div`,{style:{height:`${u.getTotalSize()}px`,width:`100%`,position:`relative`},children:u.getVirtualItems().map(e=>{let t=r[e.index];return t?(0,z.jsx)(rt,{node:t,onSelect:re,virtual:{index:e.index,start:e.start,measureElement:u.measureElement}},t.id):null})}):r.map(e=>(0,z.jsx)(rt,{node:e,onSelect:re},e.id))]}):e.nodes.map(e=>{let t=e.package??e.label,n=m.has(t),r=P({level:`files`,package:t}),i=b(t),a=i?De(i.nodes):void 0;return(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:A(`group flex h-8 items-center px-2 hover:bg-muted`,f===e.id&&`bg-primary/10 text-primary`),children:[(0,z.jsx)(`button`,{type:`button`,className:`flex h-6 w-5 items-center justify-center text-muted-foreground`,onClick:()=>C(e),"aria-label":`${n?`Collapse`:`Expand`} ${t}`,children:v.has(r)?(0,z.jsx)(l,{className:`h-3 w-3 animate-spin`}):n?(0,z.jsx)(c,{className:`h-3 w-3`}):(0,z.jsx)(o,{className:`h-3 w-3`})}),(0,z.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 text-left`,onClick:()=>S({level:`packages`},e.id),onDoubleClick:()=>S({level:`files`,package:t}),children:[(0,z.jsx)(w,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,z.jsx)(`span`,{className:`truncate font-mono text-[10px] font-semibold`,children:e.label}),(0,z.jsx)(`span`,{className:`ml-auto text-[9px] text-muted-foreground`,children:e.fileCount??0})]}),(0,z.jsx)(`button`,{type:`button`,className:`ml-1 hidden h-5 w-5 items-center justify-center text-muted-foreground hover:text-foreground group-hover:flex`,onClick:()=>S({level:`files`,package:t}),title:k(`activity:codeMapTree.openFileMap`),"aria-label":`Open ${t} map`,children:(0,z.jsx)(g,{className:`h-3 w-3`})})]}),n&&a&&(0,z.jsx)(ot,{directory:a,packageName:t,depth:1,expandedDirectories:h,expandedFiles:_,loadingBranches:v,graphForFile:x,onToggleDirectory:T,onToggleFile:E,onSelectFile:O,onOpenFile:ie,onSelectSymbol:ne,selectedId:f,activeFileNorms:ee,activeSymbolIds:te,revealAllKeys:y,onRevealAll:D})]},e.id)})}),(0,z.jsxs)(`div`,{className:`border-t px-3 py-2 text-[9px] leading-relaxed text-muted-foreground`,children:[k(`activity:codeMapTree.clickToFocusDoubleClickTo`),(0,z.jsx)(`br`,{}),k(`activity:codeMapTree.branchesStayOpenWhileTheMap`)]})]})}function ct(e,t){let n=new Map(e.map(e=>[e.id,e])),r=e.length!==t.length,i=t.map((t,i)=>{let a=n.get(t.id);return a?a.type===t.type&&a.position.x===t.position.x&&a.position.y===t.position.y&&We(a.data,t.data)?(e[i]!==a&&(r=!0),a):(r=!0,{...a,...t,measured:a.measured}):(r=!0,t)});return r?i:e}function lt(e){return e.data?.renderKey}function ut(e,t){let n=new Map(e.map(e=>[e.id,e])),r=e.length!==t.length,i=t.map((t,i)=>{let a=n.get(t.id);return a&<(a)===lt(t)?(e[i]!==a&&(r=!0),a):(r=!0,t)});return r?i:e}function dt(){let[e,t]=(0,j.useState)({level:`packages`}),n=P(e),[i,a]=(0,j.useState)(Ke),[o,s]=(0,j.useState)(!0),[c,l]=(0,j.useState)(null),[u,d]=(0,j.useState)(null),[f,p]=(0,j.useState)(`layers`),[m,h]=(0,j.useState)(`smart`),[g,_]=(0,j.useState)(`all`),[v,ee]=(0,j.useState)(``),[y,b]=(0,j.useState)(``),[x,S]=(0,j.useState)(new Set),[C,w]=(0,j.useState)(new Set),[T,E]=(0,j.useState)(new Set),[D,O]=(0,j.useState)(new Set),[ie,oe]=(0,j.useState)(new Set),[k,ce]=(0,j.useState)(new Set),[le,ue]=(0,j.useState)(0),[A,he]=(0,j.useState)(null),[M,ye]=(0,j.useState)(!1),[F,be]=(0,j.useState)(`all`),[I,Ce]=(0,j.useState)(null),[we,L]=(0,j.useState)(null),[Te,Ee]=(0,j.useState)(0),R=(0,j.useRef)(new Map),B=(0,j.useRef)(null),V=(0,j.useRef)(null),Re=(0,j.useRef)(``),H=(0,j.useRef)(``),U=(0,j.useRef)(null),Ve=(0,j.useRef)(new Set),{history:W,pulses:He,activeOperationsMap:Ue,activityTotalCount:We,resolveActivitySymbol:Ge,getActivityForFile:qe,sweepActivity:Ze}=de(r(e=>({history:e.history,pulses:e.pulses,activeOperationsMap:e.activeOperations,activityTotalCount:e.totalCount,resolveActivitySymbol:e.resolveActivitySymbol,getActivityForFile:e.getActivityForFile,sweepActivity:e._sweep}))),G=(0,j.useMemo)(()=>[...Ue.values()].flat(),[Ue]),et=(0,j.useMemo)(()=>[...He.keys()].map(e=>W.get(e)?.[0]).filter(e=>!!e),[W,He]),K=(0,j.useMemo)(()=>{let e=[];for(let t of W.values())e.push(...t.slice(0,16));return e.sort((e,t)=>t.timestamp-e.timestamp).slice(0,16)},[W]),tt=(0,j.useMemo)(()=>fe([...G,...K]),[G,K]),q=(0,j.useMemo)(()=>{let e=I??G;return F===`all`?e:e.filter(e=>pe(e)===F)},[G,F,I]),rt=(0,j.useMemo)(()=>{let e=we??K;return F===`all`?e:e.filter(e=>pe(e)===F)},[F,we,K]),J=(0,j.useDeferredValue)(q),it=(0,j.useDeferredValue)(rt),at=(0,j.useDeferredValue)(et),ot=(0,j.useMemo)(()=>fe(q),[q]),[lt,dt,ft]=re([]),[pt,mt,ht]=ne([]),{fitView:gt}=se(),Y=(0,j.useCallback)(async(e,t=!1)=>{let n=P(e),r=R.current.get(n);if(r&&!t)return ke(R.current,n,r,48),r;let i=await fetch(ge(e),{credentials:`same-origin`});if(!i.ok){if(i.status===401||i.status===403)throw Error(`Authentication required — open this dashboard from its token URL.`);let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error??`HTTP ${i.status}`)}let a=await i.json();return ke(R.current,n,a,48),ue(e=>e+1),a},[]);(0,j.useEffect)(()=>{let e=window.setTimeout(()=>b(v),150);return()=>window.clearTimeout(e)},[v]);let _t=me(e=>e.generation),vt=(0,j.useRef)(0),yt=(0,j.useRef)(null);(0,j.useEffect)(()=>{let t=!1,n=_t>vt.current;return n&&(vt.current=_t,R.current.clear(),ue(e=>e+1),S(new Set),w(new Set),E(new Set),oe(new Set)),s(!0),l(null),Y(e,n).then(e=>{if(!t){if(a(e),!n){let t=B.current;B.current=null,d(t&&e.nodes.some(e=>e.id===t)?t:null)}s(!1)}}).catch(e=>{t||(l(e instanceof Error?e.message:String(e)),a(Ke),s(!1))}),()=>{t=!0}},[n,Y,_t,e]);let X=(0,j.useCallback)((e,r)=>{if(B.current=r??null,P(e)===n){d(r??null),B.current=null;return}t(e)},[n]),bt=(0,j.useCallback)(async e=>{let t=P(e);if(!(R.current.has(t)||k.has(t))){ce(e=>new Set(e).add(t));try{await Y(e)}finally{ce(e=>{let n=new Set(e);return n.delete(t),n})}}},[Y,k]);(0,j.useEffect)(()=>{let e=!1,t=0;for(let n of G){if(t>=2)break;if(n.symbol||!n.toolUseId||n.filePath.startsWith(`(`))continue;let r=n.filePath;Ve.current.has(r)||(Ve.current.add(r),t+=1,Y({level:`symbols`,file:r}).then(t=>{if(e)return;let i=Fe(n,t.nodes);i&&Ge(n.toolUseId,r,{id:i.id,name:i.label,...i.symbolKind?{kind:i.symbolKind}:{},...i.line?{line:i.line}:{}})}).catch(()=>void 0).finally(()=>{Ve.current.delete(r)}))}return()=>{e=!0}},[G,Y,Ge]);let Z=(0,j.useMemo)(()=>({nodes:i.nodes,edges:g===`all`?i.edges:i.edges.filter(e=>e.refType===g)}),[i,g]),Q=i.nodes.find(e=>e.id===u),$=(0,j.useMemo)(()=>Se(Z,u,m),[m,Z,u]),xt=(0,j.useMemo)(()=>u?ve(Z,u):new Set,[Z,u]),{incomingCounts:St,outgoingCounts:Ct}=(0,j.useMemo)(()=>{let e=new Map,t=new Map;for(let n of Z.edges)t.set(n.source,(t.get(n.source)??0)+1),e.set(n.target,(e.get(n.target)??0)+1);return{incomingCounts:e,outgoingCounts:t}},[Z]),wt=f===`orbit`?u??void 0:void 0,Tt=(0,j.useMemo)(()=>xe($,f,wt),[$,f,wt]),Et=(0,j.useMemo)(()=>[n,f,f===`orbit`?u??``:``,Oe($)].join(``),[$,n,f,u]),Dt=(0,j.useCallback)(e=>{d(e.id),O(new Set)},[]),Ot=(0,j.useCallback)(e=>{e.kind===`package`&&X({level:`files`,package:e.package??e.label}),e.kind===`file`&&e.file&&X({level:`symbols`,file:e.file,package:e.package})},[X]),kt=(0,j.useMemo)(()=>[Pe(J),Pe(at),Pe(it)].join(``),[J,at,it]),At=(0,j.useMemo)(()=>{let e=new Set;for(let t of q)e.add(N(t.filePath));return e},[q]),jt=(0,j.useMemo)(()=>{let e=new Set;for(let t of q)t.symbol?.id&&e.add(t.symbol.id);return e},[q]);(0,j.useEffect)(()=>{let e=()=>{let e=Tt.map(({node:e})=>e),t=Ne(e,J),n=Ne(e,at),r=new Set(t.keys()),i=Tt.map(({node:e,position:r})=>{let i=t.get(e.id)??[],a=i[0]??n.get(e.id)?.[0];return{id:e.id,type:`codemap`,position:r,data:{graphNode:e,selected:e.id===u,dimmed:!!u&&!xt.has(e.id),incoming:St.get(e.id)??0,outgoing:Ct.get(e.id)??0,isActive:!!a,...a?{activityType:a.type}:{},activeOperations:i,onSelect:Dt,onOpen:Ot,onShowHistory:he}}});dt(e=>ct(e,i));let a=6,o=$.edges.map((e,t)=>{let n=!!u&&(e.source===u||e.target===u),i=r.has(e.source)||r.has(e.target),o=i&&(n||a>0);o&&--a;let s=Le[e.refType]??`hsl(var(--muted-foreground))`,c=n||i?`smoothstep`:`default`;return{id:`edge:${e.source}:${e.target}:${t}`,source:e.source,target:e.target,type:c,animated:o,label:n?`${e.refType}${e.weight>1?` ×${e.weight}`:``}`:void 0,markerEnd:{type:ae.ArrowClosed,color:s,width:14,height:14},style:{stroke:s,strokeWidth:i?Math.min(2.5+Math.log2(e.weight+1)*.65,5):n?Math.min(1.25+Math.log2(e.weight+1)*.65,4):1,opacity:i?1:u?n?.88:.08:.52},labelStyle:{fontSize:9,fontFamily:`var(--font-mono)`,fill:`hsl(var(--muted-foreground))`},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.92},labelBgPadding:[4,2],zIndex:i?4:n?2:0,data:{renderKey:`${e.refType}:${e.weight}:${u?n?`focused`:`dimmed`:`idle`}:${i?`live`:`still`}:${o?`anim`:`still`}:${c}`}}}),s=new Map,c=new Set(J.map(pe));for(let e of[...it].sort((e,t)=>e.timestamp-t.timestamp)){let t=pe(e),n=s.get(t);n?n.push(e):s.set(t,[e])}let l=[...s.entries()].map(([e,t])=>({agentKey:e,activities:t,live:c.has(e),latest:t[t.length-1]?.timestamp??0})).sort((e,t)=>Number(t.live)-Number(e.live)||t.latest-e.latest).slice(0,4),d=[];for(let{agentKey:e,activities:t,live:n}of l){let r=t.slice(-7).map(e=>({activity:e,node:$.nodes.find(t=>Me(e,t))})).filter(e=>!!e.node).filter((e,t,n)=>t===0||e.node.id!==n[t-1]?.node.id),i=Be(e);for(let t=1;t<r.length;t++){let o=r[t-1],s=r[t],c=n&&a>0;c&&--a,d.push({id:`trail:${e}:${o.activity.timestamp}:${s.activity.timestamp}`,source:o.node.id,target:s.node.id,type:`smoothstep`,animated:c,label:t===r.length-1?`${ze(s.activity.agentName??s.activity.agent??`agent`)} TRAIL`:void 0,markerEnd:{type:ae.ArrowClosed,color:i,width:13,height:13},style:{stroke:i,strokeWidth:2.5,strokeDasharray:`7 5`,opacity:.9},labelStyle:{fontSize:8,fontWeight:700,fill:i},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.94},labelBgPadding:[4,2],zIndex:6,data:{renderKey:`${i}:${t===r.length-1?`label`:`plain`}:${n?`live`:`still`}:${c?`anim`:`still`}`}})}}Ee(d.length),mt(e=>ut(e,[...o,...d]))},t=Et,n=H.current!==t;H.current=t,U.current!==null&&(window.clearTimeout(U.current),U.current=null),n?e():U.current=window.setTimeout(()=>{U.current=null,e()},120);let r;return Re.current!==Et&&(r=window.setTimeout(()=>{Re.current=Et;let e=$.nodes.length>48?0:240;gt({padding:.2,duration:e,maxZoom:1.25})},20)),()=>{U.current!==null&&(window.clearTimeout(U.current),U.current=null),r!==void 0&&window.clearTimeout(r)}},[kt,$,u,J,it,at,Et,xt,gt,Ot,Dt,St,Ct,Tt,mt,dt]),(0,j.useEffect)(()=>{let e=window.setInterval(()=>{Ze()},2e3);return()=>window.clearInterval(e)},[Ze]);let Mt=R.current.get(`packages`)??(e.level===`packages`?i:Ke),Nt=(0,j.useCallback)(e=>R.current.get(P({level:`files`,package:e})),[le]),Pt=(0,j.useCallback)(e=>R.current.get(P({level:`symbols`,file:e})),[le]),Ft=(0,j.useCallback)(e=>{let t=e.filePath,n=je(e.filePath),r=`file:${e.filePath}`;for(let i of R.current.values()){let a=i.nodes.find(t=>t.kind===`file`&&!t.external&&Ae(t.file,e.filePath));if(a){t=a.file??t,n=a.package??n,r=a.id;break}}if(e.symbol){X({level:`symbols`,file:t,package:n},e.symbol.id);return}X({level:`files`,package:n},r)},[X]);(0,j.useEffect)(()=>{if(!M||I)return;let e=[...q].filter(e=>!e.filePath.startsWith(`(`)).sort((e,t)=>t.timestamp-e.timestamp)[0];if(!e)return;let t=`${e.id??e.toolUseId}:${e.filePath}:${e.symbol?.id??`file`}`;V.current!==t&&(V.current=t,Ft(e))},[q,M,Ft,I]);let It=(0,j.useCallback)(()=>{if(I){Ce(null),L(null);return}Ce([...G]),L([...K])},[G,I,K]),Lt=(0,j.useCallback)(e=>{let t=e.package??e.label,n=!x.has(t);S(e=>{let r=new Set(e);return n?r.add(t):r.delete(t),r}),n&&bt({level:`files`,package:t}).then(()=>{let e=R.current.get(P({level:`files`,package:t})),n=e?De(e.nodes):void 0;n?.directories.length===1&&n.directories[0]&&w(e=>new Set(e).add(`${t}:${n.directories[0].path}`))}).catch(()=>void 0)},[bt,x]),Rt=(0,j.useCallback)(e=>{if(!e.file)return;let t=!T.has(e.file);E(n=>{let r=new Set(n);return t?r.add(e.file):r.delete(e.file),r}),t&&bt({level:`symbols`,file:e.file,package:e.package}).catch(()=>void 0)},[bt,T]),zt=(0,j.useCallback)(e=>{w(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Bt=(0,j.useCallback)(e=>{oe(t=>new Set(t).add(e))},[]),Vt=(0,j.useCallback)(e=>{X({level:`files`,package:e.package??`(root)`},e.id)},[X]),Ht=(0,j.useCallback)(e=>{e.file&&X({level:`symbols`,file:e.file,package:e.package},e.id)},[X]),Ut=(0,j.useMemo)(()=>{let e=y.trim().toLocaleLowerCase();if(!e)return[];let t=new Map;for(let n of R.current.values())for(let r of n.nodes)`${r.label} ${r.file??``} ${r.signature??``} ${r.package??``}`.toLocaleLowerCase().includes(e)&&t.set(r.id,r);return[...t.values()].sort((e,t)=>e.kind.localeCompare(t.kind)||e.label.localeCompare(t.label)).slice(0,80)},[y,le]),Wt=Ut.length>40,Gt=te({count:Ut.length,getScrollElement:()=>yt.current,estimateSize:()=>40,overscan:8,enabled:Wt}),Kt=(0,j.useCallback)(e=>{e.kind===`package`?X({level:`packages`},e.id):e.kind===`file`?X({level:`files`,package:e.package??`(root)`},e.id):e.file&&X({level:`symbols`,file:e.file,package:e.package},e.id)},[X]),{incoming:qt,outgoing:Jt}=(0,j.useMemo)(()=>({incoming:Q?_e(Z,Q.id,`incoming`):[],outgoing:Q?_e(Z,Q.id,`outgoing`):[]}),[Z,Q]),{edgeWeight:Yt,connectedNodeCount:Xt}=(0,j.useMemo)(()=>{let e=0,t=new Set;for(let n of Z.edges)e+=n.weight,t.add(n.source),t.add(n.target);return{edgeWeight:e,connectedNodeCount:t.size}},[Z]),Zt=Q?q.filter(e=>Me(e,Q)):[],Qt=A?qe(A):[];return(0,z.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,children:[(0,z.jsx)(Xe,{scope:e,graph:i,agentPresences:ot,edgeWeight:Yt,connectedNodeCount:Xt,navigate:X}),(0,z.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,z.jsx)(st,{rootGraph:Mt,search:y,searchInput:v,searchResults:Ut,virtualizeSearch:Wt,searchVirtualizer:Gt,treeScrollRef:yt,selectedId:u,expandedPackages:x,expandedDirectories:C,expandedFiles:T,loadingBranches:k,activeFileNorms:At,activeSymbolIds:jt,revealAllKeys:ie,packageGraph:Nt,graphForFile:Pt,navigate:X,togglePackage:Lt,toggleDirectory:zt,toggleFile:Rt,revealAllTree:Bt,selectFileFromTree:Vt,selectSymbolFromTree:Ht,selectSearchResult:Kt,handleOpenNode:Ot,onSearchInputChange:ee,onSearchChange:b}),(0,z.jsxs)(`main`,{className:`relative min-w-0 flex-1 bg-[radial-gradient(circle_at_50%_0%,hsl(var(--primary)/0.055),transparent_38%)]`,children:[(0,z.jsx)(Ye,{layout:f,canvasMode:m,edgeFilter:g,canvasNodeCount:$.nodes.length,graphNodeCount:i.nodes.length,onLayoutChange:p,onCanvasModeChange:h,onEdgeFilterChange:_}),(0,z.jsx)(Qe,{presences:ot,onLocate:Ft}),(0,z.jsx)($e,{paused:I!==null,followLive:M,agentFilter:F,agents:tt,onTogglePaused:It,onToggleFollow:()=>{V.current=null,ye(e=>!e)},onAgentFilter:e=>{V.current=null,be(e)}}),(0,z.jsx)(Je,{loading:o,error:c,graph:i,canvasNodeCount:$.nodes.length,flowNodes:lt,flowEdges:pt,onNodesChange:ft,onEdgesChange:ht,agentTrailCount:Te})]}),(0,z.jsx)(nt,{selectedNode:Q,incoming:qt,outgoing:Jt,filteredGraph:Z,expandedRelations:D,activeOperations:q,recentActivities:rt,activityTotalCount:We,selectedActivities:Zt,onClearSelection:()=>d(null),onOpenNode:Ot,onOpenActivity:he,onLocateActivity:Ft,onToggleRelation:e=>O(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),onSelectNode:Dt})]}),A&&(0,z.jsx)(Ie,{historyFile:A,fileHistory:Qt,onClose:()=>he(null)})]})}function ft(){return(0,z.jsx)(O,{children:(0,z.jsx)(dt,{})})}export{ft as CodeMap};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-BNmTiJ-I.js";import{Fa as r,Ma as i}from"./vendor-BshlG0z-.js";import"./i18n-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-BNmTiJ-I.js";import{Fa as r,Ma as i}from"./vendor-BshlG0z-.js";import"./i18n-tRUjoMoU.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./dialog-xJxaQi60.js";import{t as d}from"./button-rqi3MczV.js";import{t as f}from"./input-ClZR-odw.js";var p=e(t(),1),m=n(),h=i()((e,t)=>({request:null,open:n=>{t().request?.resolve(!1),e({request:n})},settle:n=>{t().request?.resolve(n),e({request:null})}}));function g(e){return new Promise(t=>{h.getState().open({...e,resolve:e=>t(e===!0)})})}function _(e){return new Promise(t=>{h.getState().open({...e,resolve:e=>t(e===null?`dismiss`:e?`confirm`:`cancel`)})})}function v(){let{t:e}=r(),t=h(e=>e.request),n=h(e=>e.settle);return(0,p.useEffect)(()=>{if(!t)return;let e=e=>{e.key===`Enter`&&(e.preventDefault(),h.getState().settle(t.defaultAction!==`cancel`))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t]),(0,m.jsx)(u,{open:t!==null,onOpenChange:e=>{e||n(null)},children:(0,m.jsxs)(s,{className:`max-w-md`,children:[(0,m.jsxs)(a,{children:[(0,m.jsx)(c,{children:t?.title}),t?.message&&(0,m.jsx)(l,{children:t.message}),t?.details&&t.details.length>0&&(0,m.jsx)(`ul`,{className:`mt-2 max-h-56 space-y-1 overflow-y-auto rounded-md border border-border/60 bg-muted/30 px-3 py-2 text-left text-xs text-foreground/85`,children:t.details.map((e,t)=>(0,m.jsxs)(`li`,{className:`flex gap-2`,children:[(0,m.jsx)(`span`,{"aria-hidden":`true`,className:`shrink-0 text-warning`,children:`•`}),(0,m.jsx)(`span`,{className:`min-w-0 break-words`,children:e})]},`${t}-${e}`))})]}),(0,m.jsxs)(o,{className:`gap-2`,children:[(0,m.jsx)(d,{variant:`outline`,size:`sm`,autoFocus:t?.defaultAction===`cancel`,onClick:()=>n(!1),children:t?.cancelLabel??e(`common:action.cancel`)}),(0,m.jsx)(d,{variant:t?.danger?`destructive`:`default`,size:`sm`,autoFocus:t?.defaultAction!==`cancel`,onClick:()=>n(!0),children:t?.confirmLabel??e(`common:action.confirm`)})]})]})})}var y=i()((e,t)=>({request:null,open:n=>{t().request?.resolve(null),e({request:n})},settle:n=>{t().request?.resolve(n),e({request:null})}}));function b(e){return new Promise(t=>{y.getState().open({...e,resolve:t})})}function x(){let{t:e}=r(),t=y(e=>e.request),n=y(e=>e.settle),[i,h]=(0,p.useState)(``);(0,p.useEffect)(()=>{h(t?.defaultValue??``)},[t]);let g=()=>{let e=i.trim();n(e.length>0?e:null)};return(0,m.jsx)(u,{open:t!==null,onOpenChange:e=>{e||n(null)},children:(0,m.jsxs)(s,{className:`max-w-md`,children:[(0,m.jsxs)(a,{children:[(0,m.jsx)(c,{children:t?.title}),t?.message&&(0,m.jsx)(l,{children:t.message})]}),(0,m.jsx)(f,{autoFocus:!0,value:i,placeholder:t?.placeholder,onChange:e=>h(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),g())}}),(0,m.jsxs)(o,{className:`gap-2`,children:[(0,m.jsx)(d,{variant:`outline`,size:`sm`,onClick:()=>n(null),children:t?.cancelLabel??e(`common:action.cancel`)}),(0,m.jsx)(d,{size:`sm`,disabled:i.trim().length===0,onClick:g,children:t?.confirmLabel??e(`common:action.ok`)})]})]})})}export{b as a,_ as i,x as n,h as o,g as r,v as t};
|