@wrongstack/webui 1.0.16 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/assets/{AgentRosterView-DMxOg0xX.js → AgentRosterView-CV9MW-4M.js} +4 -4
  2. package/dist/assets/AnalyticsDashboard-30brLbuz.js +1 -0
  3. package/dist/assets/{AudienceMemoryPanel-CyfpggCK.js → AudienceMemoryPanel-bKVydKg8.js} +1 -1
  4. package/dist/assets/ChangesView-Cv6svx-V.js +1 -0
  5. package/dist/assets/{ChimeraReviewsView-DencEMIY.js → ChimeraReviewsView-DLTrEJDS.js} +1 -1
  6. package/dist/assets/{ChronicleDashboard-CvDPqZKE.js → ChronicleDashboard-DhgWbaXj.js} +1 -1
  7. package/dist/assets/{CodeEditor-s0lHP0DZ.js → CodeEditor-JlvMbECd.js} +2 -2
  8. package/dist/assets/CodeMap-4swT3FIw.js +1 -0
  9. package/dist/assets/{CronJobsPanel-LoDmuRHl.js → CronJobsPanel-LSpFBceD.js} +1 -1
  10. package/dist/assets/{DeadCodeScanPanel-ByhAW_bl.js → DeadCodeScanPanel-ZRNNV02b.js} +1 -1
  11. package/dist/assets/{DebugDashboard-BP1Mia-L.js → DebugDashboard-DlH0QNPX.js} +1 -1
  12. package/dist/assets/{DesignGalleryView-taDxRN63.js → DesignGalleryView-yZgVVEg9.js} +1 -1
  13. package/dist/assets/{GoalView-CcLxMYXe.js → GoalView-D1gxZre2.js} +1 -1
  14. package/dist/assets/{KanbanView-C-K6OBw8.js → KanbanView-Bh0T3p3J.js} +1 -1
  15. package/dist/assets/MailboxDetailView-C4lEW3f8.js +1 -0
  16. package/dist/assets/{MemoryDrawer-CuFQypU-.js → MemoryDrawer-arujfDSW.js} +1 -1
  17. package/dist/assets/MemoryManager-BmQYIRhD.js +1 -0
  18. package/dist/assets/ProcessMonitor-ByW-VKsX.js +1 -0
  19. package/dist/assets/{PromptJournalView-CdC4ldrv.js → PromptJournalView-0cHPeYXa.js} +1 -1
  20. package/dist/assets/{ProviderTestView-Dy7EQEI9.js → ProviderTestView-CQlwC6HG.js} +1 -1
  21. package/dist/assets/{QueuePanel-DE9ySxkR.js → QueuePanel-DJeK7xCh.js} +1 -1
  22. package/dist/assets/{RefreshDebugView-Dbq_bHwj.js → RefreshDebugView-BfOjHodq.js} +1 -1
  23. package/dist/assets/RepositoryHistoryView-BYPPu5uv.js +2 -0
  24. package/dist/assets/RequirementIntakeView-CEwUB7VD.js +1 -0
  25. package/dist/assets/{SageTabs-Dwbux3im.js → SageTabs-Bt2kzPNB.js} +2 -2
  26. package/dist/assets/{SddFlowGraph-BZkvlaQ1.js → SddFlowGraph-CZSwcAtS.js} +1 -1
  27. package/dist/assets/SddHub-Cc79Ob7A.js +2 -0
  28. package/dist/assets/{SessionInspectView-Bak1hK82.js → SessionInspectView-BasxJ_5x.js} +1 -1
  29. package/dist/assets/{SessionList-xXaygO5X.js → SessionList-C9MRSj_-.js} +1 -1
  30. package/dist/assets/{SessionsDashboard-CaSXukNy.js → SessionsDashboard-BK95Zp6f.js} +1 -1
  31. package/dist/assets/{SetupScreen-BSEF1air.js → SetupScreen-rPKsBa9Z.js} +1 -1
  32. package/dist/assets/{SkillDetailView-OdtAJM43.js → SkillDetailView-LkJyIBPb.js} +1 -1
  33. package/dist/assets/{TechStackView-BUIbnU2F.js → TechStackView-xVR5dsSn.js} +1 -1
  34. package/dist/assets/{TerminalPanel-CfoKklMj.js → TerminalPanel-CBEZTuvV.js} +1 -1
  35. package/dist/assets/{activity-Bk7N_ZW5.js → activity-CDHIWIPJ.js} +4 -4
  36. package/dist/assets/{activity-BazcMhZZ.js → activity-CInOo57V.js} +4 -4
  37. package/dist/assets/{activity-VTOCX_jm.js → activity-D6XfckyA.js} +4 -4
  38. package/dist/assets/{activity-BWPWyp3o.js → activity-DapbBEf6.js} +4 -4
  39. package/dist/assets/{activity-DBsMiPsa.js → activity-E8vCWdG2.js} +4 -4
  40. package/dist/assets/{activity-Cmq0z33p.js → activity-e8OIpNGJ.js} +4 -4
  41. package/dist/assets/{activity-B-GYDVn2.js → activity-oTJsNfZu.js} +4 -4
  42. package/dist/assets/button-BbeB5Qm8.js +1 -0
  43. package/dist/assets/{chat-store-DNRce6sE.js → chat-store-BDVZSmod.js} +1 -1
  44. package/dist/assets/common-BXosnbIt.js +1 -0
  45. package/dist/assets/common-CzfPgMjC.js +1 -0
  46. package/dist/assets/common-DDDPz7Dv.js +1 -0
  47. package/dist/assets/common-DYx9oSoC.js +1 -0
  48. package/dist/assets/common-DZ-05t4z.js +1 -0
  49. package/dist/assets/common-MjX8fcng.js +1 -0
  50. package/dist/assets/common-ipsuLC3n.js +1 -0
  51. package/dist/assets/{config-store-BAUadwHd.js → config-store-mWuYCild.js} +1 -1
  52. package/dist/assets/dialog-b-Ai37sa.js +1 -0
  53. package/dist/assets/empty-state-pfuS5znr.js +1 -0
  54. package/dist/assets/{i18n-CbyUyl6G.js → i18n-CvJB4U4z.js} +3 -3
  55. package/dist/assets/{index-3TGBKeBP.js → index-DLjaZSCH.js} +80 -80
  56. package/dist/assets/index-DiX5j910.css +1 -0
  57. package/dist/assets/input-BA6D2L3K.js +1 -0
  58. package/dist/assets/mailbox-store-ZQO_Rv6E.js +1 -0
  59. package/dist/assets/{roster-ws-z8DKquaN.js → roster-ws-BRANim2Y.js} +1 -1
  60. package/dist/assets/stores-D5loyGLL.js +7 -0
  61. package/dist/assets/{vector-memory-panel-DZFEwwGM.js → vector-memory-panel-YWv6xcza.js} +1 -1
  62. package/dist/assets/view-navigation-DTs4cSQ6.js +1 -0
  63. package/dist/components/CodeMap.d.ts +1 -1
  64. package/dist/components/CodeMapCanvasSurface.d.ts +2 -1
  65. package/dist/components/ConfirmModal.d.ts +10 -0
  66. package/dist/components/FileExplorer/FileExplorerModals.d.ts +4 -5
  67. package/dist/components/MainViewSlot.d.ts +1 -1
  68. package/dist/components/MemoryManager/useMemoryManagerState.d.ts +2 -2
  69. package/dist/components/PanelSuspense.d.ts +0 -4
  70. package/dist/components/RepositoryHistoryView.d.ts +1 -1
  71. package/dist/components/RequirementIntakeView.d.ts +22 -1
  72. package/dist/components/SddHub.d.ts +3 -3
  73. package/dist/components/ui/dialog.d.ts +1 -1
  74. package/dist/components/ui/dropdown-menu.d.ts +1 -1
  75. package/dist/components/ui/empty-state.d.ts +1 -1
  76. package/dist/components/ui/tabs.d.ts +1 -1
  77. package/dist/index.html +12 -12
  78. package/dist/index.js +1989 -1473
  79. package/dist/lib/view-navigation.d.ts +2 -2
  80. package/dist/stores/index.d.ts +1 -1
  81. package/dist/stores/sdd-wizard-store.d.ts +7 -0
  82. package/package.json +9 -9
  83. package/dist/assets/AnalyticsDashboard-DGQk1vSi.js +0 -1
  84. package/dist/assets/ChangesView-C8x8tmpi.js +0 -1
  85. package/dist/assets/CodeMap-6mmDO9gJ.js +0 -1
  86. package/dist/assets/MailboxDetailView-N00dLbpr.js +0 -1
  87. package/dist/assets/MemoryManager-Bmz62aEV.js +0 -1
  88. package/dist/assets/ProcessMonitor-CkAtUjrR.js +0 -1
  89. package/dist/assets/RepositoryHistoryView-D0ynYRgu.js +0 -2
  90. package/dist/assets/RequirementIntakeView-CPRtncuJ.js +0 -1
  91. package/dist/assets/SddHub-CoRKeq7Q.js +0 -2
  92. package/dist/assets/button-9ewV4TF3.js +0 -1
  93. package/dist/assets/common-5rSj2oHt.js +0 -1
  94. package/dist/assets/common-B5Uslzr2.js +0 -1
  95. package/dist/assets/common-BnhmJl6b.js +0 -1
  96. package/dist/assets/common-CmkkiJUR.js +0 -1
  97. package/dist/assets/common-CpZ-DoXd.js +0 -1
  98. package/dist/assets/common-Ct-Iodid.js +0 -1
  99. package/dist/assets/common-D9w3BalB.js +0 -1
  100. package/dist/assets/dialog-C7EIBM_2.js +0 -1
  101. package/dist/assets/empty-state-5YP1rmE6.js +0 -1
  102. package/dist/assets/index-NBVZNAcU.css +0 -1
  103. package/dist/assets/input-ag1CrUiS.js +0 -1
  104. package/dist/assets/mailbox-store-C49LeBj8.js +0 -1
  105. package/dist/assets/stores-RkHrTaRO.js +0 -7
  106. package/dist/assets/view-navigation-DHtNFXIl.js +0 -1
@@ -8,12 +8,12 @@ export type PanelMainView = 'chat' | 'files' | 'skill' | 'changes' | 'mailbox' |
8
8
  * A standalone main view with its own activity-bar icon (or a slot in the "…"
9
9
  * utilities menu). Selecting one collapses the side panel.
10
10
  */
11
- export type MainView = 'goal' | 'kanban' | 'sddhub' | 'settings' | 'provider-test' | 'memory' | 'roster' | 'codemap' | 'techstack' | 'chronicle' | 'intake' | 'prompts' | 'chimera' | 'history';
11
+ export type MainView = 'goal' | 'kanban' | 'sddhub' | 'settings' | 'provider-test' | 'memory' | 'roster' | 'codemap' | 'techstack' | 'chronicle' | 'prompts' | 'chimera' | 'history';
12
12
  /**
13
13
  * A view with no bar affordance at all — reached from the command palette, a
14
14
  * deep link, or another view's action. Diagnostics and drill-downs live here.
15
15
  */
16
- export type UnlistedView = 'sessions' | 'session-inspect' | 'setup' | 'context' | 'debug' | 'refresh-debug' | 'analytics' | 'deadcode';
16
+ export type UnlistedView = 'sessions' | 'session-inspect' | 'setup' | 'context' | 'debug' | 'refresh-debug' | 'analytics' | 'deadcode' | 'intake';
17
17
  /**
18
18
  * Every view the app can display. Derived from `VIEWS` in the UI store rather
19
19
  * than re-declared, so the router and the navigation helpers cannot disagree.
@@ -41,7 +41,7 @@ export { type BackgroundStyle, DEFAULT_WAIT_THRESHOLD_MS, useOfficeMapStore, WAI
41
41
  export { formatQuotaResetIn, type QuotaCredits, type QuotaSnapshot, type QuotaWindow, quotaWindowLabel, selectWorstQuotaWindow, useProviderQuotaStore, } from './provider-quota-store.js';
42
42
  export { type ProviderAuditEntry, type ProviderHealthEntry, type ProviderHealthState, useProviderStatusStore, } from './provider-status-store.js';
43
43
  export { type SddBoardFeedEntry, type SddBoardSnapshotUI, type SddBoardStatus, type SddBoardSummary, type SddLifecycleResultUI, useSddBoardStore, } from './sdd-board-store.js';
44
- export { type SddWizardPhase, type SddWizardSnapshot, useSddWizardStore, } from './sdd-wizard-store.js';
44
+ export { type SddTab, type SddWizardPhase, type SddWizardSnapshot, useSddWizardStore, } from './sdd-wizard-store.js';
45
45
  /** The lane pointer — the single answer to "which tab is in front". */
46
46
  export { activeSessionLaneId, useActiveSessionId } from './session-lanes.js';
47
47
  export { memorySessionSnapshots, useSessionStore } from './session-store.js';
@@ -52,6 +52,7 @@ export interface SddWizardSnapshot {
52
52
  prompt: string;
53
53
  busy: boolean;
54
54
  }
55
+ export type SddTab = 'requirements' | 'project' | 'board' | 'specs';
55
56
  interface SddWizardState {
56
57
  /** Latest interview snapshot, or null before a session starts. */
57
58
  snapshot: SddWizardSnapshot | null;
@@ -61,10 +62,16 @@ interface SddWizardState {
61
62
  error: string | null;
62
63
  /** runId once a run has been kicked off from the wizard. */
63
64
  startedRunId: string | null;
65
+ /** Active tab inside SddHub container. */
66
+ activeHubTab: SddTab;
67
+ /** Prefilled goal prompt for the wizard (e.g. when kicked off from an intake record). */
68
+ prefilledGoal: string;
64
69
  setSnapshot: (s: SddWizardSnapshot) => void;
65
70
  setAgentText: (t: string) => void;
66
71
  setError: (e: string | null) => void;
67
72
  setStartedRunId: (id: string | null) => void;
73
+ setActiveHubTab: (tab: SddTab) => void;
74
+ setPrefilledGoal: (goal: string) => void;
68
75
  reset: () => void;
69
76
  }
70
77
  export declare const useSddWizardStore: import("zustand").UseBoundStore<import("zustand").StoreApi<SddWizardState>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/webui",
3
- "version": "1.0.16",
3
+ "version": "1.0.17",
4
4
  "license": "MIT",
5
5
  "description": "Browser-based WebUI for WrongStack — React + Vite frontend. The WebSocket backend lives in the separate @wrongstack/webui-server package (extracted in PR #018b to remove the CLI -> @wrongstack/webui/server cross-package edge).",
6
6
  "keywords": [
@@ -87,12 +87,12 @@
87
87
  "@radix-ui/react-tabs": "^1.1.21",
88
88
  "@tanstack/react-virtual": "^3.14.12",
89
89
  "@uiw/react-textarea-code-editor": "^3.1.1",
90
- "@wrongstack/core": "1.0.16",
91
- "@wrongstack/kanban": "1.0.16",
92
- "@wrongstack/plugins": "1.0.16",
93
- "@wrongstack/providers": "1.0.16",
94
- "@wrongstack/tools": "1.0.16",
95
- "@wrongstack/webui-protocol": "1.0.16",
90
+ "@wrongstack/core": "1.0.17",
91
+ "@wrongstack/kanban": "1.0.17",
92
+ "@wrongstack/plugins": "1.0.17",
93
+ "@wrongstack/providers": "1.0.17",
94
+ "@wrongstack/tools": "1.0.17",
95
+ "@wrongstack/webui-protocol": "1.0.17",
96
96
  "@xterm/addon-fit": "^0.11.0",
97
97
  "@xterm/xterm": "^6.0.0",
98
98
  "@xyflow/react": "^12.11.6",
@@ -128,8 +128,8 @@
128
128
  "@types/ws": "^8.18.1",
129
129
  "@vitejs/plugin-react": "^6.1.1",
130
130
  "@vitest/coverage-v8": "^5.0.0",
131
- "@wrongstack/sdd": "1.0.16",
132
- "@wrongstack/webui-server": "1.0.16",
131
+ "@wrongstack/sdd": "1.0.17",
132
+ "@wrongstack/webui-server": "1.0.17",
133
133
  "jsdom": "^30.0.1",
134
134
  "tailwindcss": "^4.3.3",
135
135
  "typescript": "^7.0.2",
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{K as t,t as n}from"./config-store-BAUadwHd.js";import{i as r,t as i}from"./react-core-wiHys0m2.js";import{Bt as a,Ji as o,La as s,Mr as c,Qi as l,Xt as u,Yt as d,ho as f,tn as p,xo as m,yr as h}from"./vendor-V3ydTHqN.js";import"./i18n-CbyUyl6G.js";import"./stores-RkHrTaRO.js";import{E as g,T as _,y as v}from"./index-3TGBKeBP.js";var y=e(r(),1),b=i();function x(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m ${t%60}s`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d`}function S(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e)}function C(e){return e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function w(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function T(e){return e.includes(`error`)||e.includes(`fail`)?`text-destructive`:e.includes(`warn`)?`text-warning`:e.includes(`success`)||e.includes(`complete`)?`text-success`:`text-muted-foreground`}function E({icon:e,label:t,value:n,sub:r,color:i=`text-muted-foreground`}){return(0,b.jsxs)(`div`,{className:`flex items-start gap-3 rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:[(0,b.jsx)(`div`,{className:`mt-0.5 ${i}`,children:e}),(0,b.jsxs)(`div`,{className:`min-w-0`,children:[(0,b.jsx)(`div`,{className:`text-2xl font-semibold tabular-nums text-foreground`,children:n}),(0,b.jsx)(`div`,{className:`mt-0.5 text-xs text-muted-foreground`,children:t}),r?(0,b.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground/70`,children:r}):null]})]})}function D(){let{t:e}=m(),[r,i]=(0,y.useState)(null),[D,O]=(0,y.useState)([]),[k,A]=(0,y.useState)([]),[j,M]=(0,y.useState)(null),[N,P]=(0,y.useState)(!0),[F,I]=(0,y.useState)(!1),L=(0,y.useRef)(null),R=(0,y.useCallback)(async()=>{try{let e=await fetch(`/api/analytics/summary`);if(e.ok){let t=await e.json();i(t)}}catch{}},[]),z=(0,y.useCallback)(async()=>{try{let e=await fetch(`/api/analytics?limit=50`);if(e.ok){let t=await e.json();O(t.events)}}catch{}},[]),B=(0,y.useCallback)(async()=>{try{let e=await fetch(`/api/sessions`);if(e.ok){let t=await e.json();A(t)}}catch{}},[]),V=(0,y.useCallback)(async()=>{if(F)return;I(!0);let e=null,r=null;try{let i=t(n.getState().wsUrl);L.current=i,r=i.on(`stats.get`,t=>{let n=t.payload;M(n),I(!1),r?.(),e!==null&&clearTimeout(e)}),i.getStats({echoToChat:!1}),e=setTimeout(()=>{r?.(),I(!1)},8e3)}catch{r?.(),e!==null&&clearTimeout(e),I(!1)}},[F]);(0,y.useEffect)(()=>{let e=()=>{Promise.all([R(),z(),B(),V()]).finally(()=>P(!1))};e();let t=setInterval(e,1e4);return()=>clearInterval(t)},[R,z,B,V]);let{totalAgents:H,activeAgents:U,totalToolCalls:W,totalIterations:G}=(0,y.useMemo)(()=>{let e=0,t=0,n=0,r=0;for(let i of k)for(let a of i.agents)e++,a.status===`running`&&t++,n+=a.toolCalls,r+=a.iterations;return{totalAgents:e,activeAgents:t,totalToolCalls:n,totalIterations:r}},[k]),K=(0,y.useMemo)(()=>r?Object.entries(r.categoryBreakdown).sort((e,t)=>t[1]-e[1]).slice(0,8):[],[r]),q=(0,y.useMemo)(()=>r?Object.entries(r.eventBreakdown).sort((e,t)=>t[1]-e[1]).slice(0,10):[],[r]),J=(0,y.useMemo)(()=>{if(!r)return 0;let e=0;for(let[t,n]of Object.entries(r.eventBreakdown))t.toLowerCase().includes(`error`)&&(e+=n);return e},[r]),Y=(0,y.useMemo)(()=>{if(!r)return 0;let e=0;for(let[t,n]of Object.entries(r.eventBreakdown))t.toLowerCase().includes(`warn`)&&(e+=n);return e},[r]),X=(0,y.useMemo)(()=>[...D].reverse(),[D]),Z=g(X,20);return N?(0,b.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center bg-[hsl(var(--surface-2)/0.45)] p-4`,children:(0,b.jsxs)(`div`,{className:`ws-surface flex items-center gap-2 rounded-xl px-4 py-3 text-sm text-muted-foreground`,children:[(0,b.jsx)(c,{className:`h-4 w-4 animate-spin text-primary`}),e(`activity:analytics.loading`)]})}):(0,b.jsx)(`div`,{ref:v(`analytics`),className:`h-full min-h-0 min-w-0 overflow-y-auto overscroll-contain bg-[hsl(var(--surface-2)/0.45)] p-4 sm:p-6`,children:(0,b.jsxs)(`div`,{className:`mx-auto flex w-full max-w-7xl flex-col gap-5`,children:[(0,b.jsx)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,b.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,b.jsx)(s,{className:`h-4 w-4 text-primary`}),(0,b.jsx)(`h1`,{className:`truncate text-base font-semibold`,children:e(`activity:analytics.heading`)})]}),(0,b.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`activity:analytics.autoRefresh`)})]})}),(0,b.jsxs)(`div`,{className:`min-w-0 space-y-5`,children:[(0,b.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-3`,children:[(0,b.jsx)(E,{icon:(0,b.jsx)(f,{className:`h-4 w-4`}),label:e(`activity:analytics.liveSessions`),value:k.length,color:`text-primary`}),(0,b.jsx)(E,{icon:(0,b.jsx)(a,{className:`h-4 w-4`}),label:e(`activity:analytics.agents`),value:`${U}/${H}`,sub:U>0?e(`activity:analytics.agentsActive`,{count:U}):void 0,color:`text-success`}),(0,b.jsx)(E,{icon:(0,b.jsx)(h,{className:`h-4 w-4`}),label:e(`activity:analytics.totalEvents`),value:r?.totalEvents??0,sub:e(`activity:analytics.categoriesSub`,{count:r?.uniqueCategories??0}),color:`text-warning`}),(0,b.jsx)(E,{icon:(0,b.jsx)(p,{className:`h-4 w-4`}),label:e(`activity:analytics.toolCalls`),value:W,sub:e(`activity:analytics.iterationsSub`,{count:G}),color:`text-success`}),(0,b.jsx)(E,{icon:(0,b.jsx)(o,{className:`h-4 w-4`}),label:e(`activity:analytics.sessionCost`),value:j?C(j.cost):`—`,sub:j?e(`activity:analytics.tokensSub`,{input:S(j.usage.input),output:S(j.usage.output)}):void 0,color:`text-primary`}),(0,b.jsx)(E,{icon:(0,b.jsx)(l,{className:`h-4 w-4`}),label:e(`activity:analytics.sessionDuration`),value:j?x(j.elapsedMs):`—`,sub:j?e(`activity:analytics.messagesSub`,{count:j.messages}):void 0,color:`text-muted-foreground`})]}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-4`,children:[(0,b.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:[(0,b.jsxs)(`h3`,{className:`mb-3 flex items-center gap-2 text-xs font-semibold uppercase text-muted-foreground`,children:[(0,b.jsx)(u,{className:`h-3.5 w-3.5 text-primary`}),e(`activity:analytics.eventsByCategory`)]}),K.length===0?(0,b.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`activity:analytics.noEvents`)}):(0,b.jsx)(`div`,{className:`space-y-1.5`,children:K.map(([e,t])=>{let n=K[0]?.[1]??1,r=Math.round(t/n*100);return(0,b.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,7rem)_minmax(0,1fr)_2.5rem] items-center gap-2 text-xs`,children:[(0,b.jsx)(`span`,{className:`min-w-0 truncate text-foreground`,children:e}),(0,b.jsx)(`div`,{className:`h-4 overflow-hidden rounded-full bg-muted`,children:(0,b.jsx)(`div`,{className:`h-full rounded-full bg-primary/70 transition-all`,style:{width:`${Math.max(r,4)}%`}})}),(0,b.jsx)(`span`,{className:`text-right tabular-nums text-muted-foreground`,children:t})]},e)})})]}),(0,b.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:[(0,b.jsxs)(`h3`,{className:`mb-3 flex items-center gap-2 text-xs font-semibold uppercase text-muted-foreground`,children:[(0,b.jsx)(s,{className:`h-3.5 w-3.5 text-warning`}),e(`activity:analytics.topEvents`)]}),q.length===0?(0,b.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`activity:analytics.noEvents`)}):(0,b.jsx)(`div`,{className:`space-y-1.5`,children:q.map(([e,t])=>{let n=q[0]?.[1]??1,r=Math.round(t/n*100);return(0,b.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,9rem)_minmax(0,1fr)_2.5rem] items-center gap-2 text-xs`,children:[(0,b.jsx)(`span`,{className:`min-w-0 truncate ${T(e)}`,children:e}),(0,b.jsx)(`div`,{className:`h-4 overflow-hidden rounded-full bg-muted`,children:(0,b.jsx)(`div`,{className:`h-full rounded-full bg-warning/70 transition-all`,style:{width:`${Math.max(r,4)}%`}})}),(0,b.jsx)(`span`,{className:`text-right tabular-nums text-muted-foreground`,children:t})]},e)})})]})]}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-4`,children:[(0,b.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:[(0,b.jsxs)(`h3`,{className:`mb-3 flex items-center gap-2 text-xs font-semibold uppercase text-muted-foreground`,children:[(0,b.jsx)(o,{className:`h-3.5 w-3.5 text-primary`}),e(`activity:analytics.activeSessionUsage`)]}),j?(0,b.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 text-xs`,children:[(0,b.jsxs)(`div`,{className:`min-w-0 rounded-lg border border-border/70 bg-background/50 px-3 py-2`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.provider`)}),(0,b.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-foreground`,children:j.provider})]}),(0,b.jsxs)(`div`,{className:`min-w-0 rounded-lg border border-border/70 bg-background/50 px-3 py-2`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.model`)}),(0,b.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-foreground`,children:j.model})]}),(0,b.jsxs)(`div`,{className:`rounded-lg border border-border/70 bg-background/50 px-3 py-2`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.inputTokens`)}),(0,b.jsx)(`p`,{className:`mt-0.5 tabular-nums text-foreground`,children:S(j.usage.input)})]}),(0,b.jsxs)(`div`,{className:`rounded-lg border border-border/70 bg-background/50 px-3 py-2`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.outputTokens`)}),(0,b.jsx)(`p`,{className:`mt-0.5 tabular-nums text-foreground`,children:S(j.usage.output)})]}),(0,b.jsxs)(`div`,{className:`rounded-lg border border-border/70 bg-background/50 px-3 py-2`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.cacheRatio`)}),(0,b.jsxs)(`p`,{className:`mt-0.5 tabular-nums text-foreground`,children:[(j.cache.hitRatio*100).toFixed(1),`%`]})]}),(0,b.jsxs)(`div`,{className:`rounded-lg border border-border/70 bg-background/50 px-3 py-2`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.filesRead`)}),(0,b.jsx)(`p`,{className:`mt-0.5 tabular-nums text-foreground`,children:j.readFiles})]}),(j.cache.providers?.length??0)>0?(0,b.jsxs)(`div`,{className:`col-span-2 rounded-lg border border-border/70 bg-background/50 px-3 py-2`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:`Provider cache breakdown`}),(0,b.jsx)(`div`,{className:`mt-1.5 space-y-1`,children:j.cache.providers?.map(e=>(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-3 font-mono`,children:[(0,b.jsx)(`span`,{className:`text-foreground`,children:e.provider}),(0,b.jsxs)(`span`,{className:`tabular-nums text-success`,children:[(e.hitRatio*100).toFixed(1),`% hit`]}),(0,b.jsxs)(`span`,{className:`tabular-nums text-muted-foreground`,children:[S(e.cacheRead),` read ·`,` `,S(e.cacheWrite),` write`]})]},e.provider))})]}):null]}):(0,b.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`activity:analytics.noSession`)})]}),(0,b.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:[(0,b.jsxs)(`h3`,{className:`mb-3 flex items-center gap-2 text-xs font-semibold uppercase text-muted-foreground`,children:[(0,b.jsx)(d,{className:`h-3.5 w-3.5 text-warning`}),e(`activity:analytics.healthErrors`)]}),(0,b.jsx)(`div`,{className:`space-y-2 text-xs`,children:r?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`flex justify-between`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.errorEvents`)}),(0,b.jsx)(`span`,{className:`tabular-nums text-destructive`,children:J})]}),(0,b.jsxs)(`div`,{className:`flex justify-between`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.warningEvents`)}),(0,b.jsx)(`span`,{className:`tabular-nums text-warning`,children:Y})]}),(0,b.jsxs)(`div`,{className:`flex justify-between`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.cacheHitRate`)}),(0,b.jsx)(`span`,{className:`tabular-nums text-success`,children:j?`${(j.cache.hitRatio*100).toFixed(1)}%`:`—`})]}),(0,b.jsxs)(`div`,{className:`flex justify-between`,children:[(0,b.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:analytics.totalCategories`)}),(0,b.jsx)(`span`,{className:`tabular-nums text-foreground`,children:r.uniqueCategories})]})]}):(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:e(`activity:analytics.waitingData`)})})]})]}),(0,b.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:[(0,b.jsxs)(`h3`,{className:`mb-3 flex items-center gap-2 text-xs font-semibold uppercase text-muted-foreground`,children:[(0,b.jsx)(f,{className:`h-3.5 w-3.5 text-primary`}),e(`activity:analytics.recentEvents`)]}),D.length===0?(0,b.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`activity:analytics.noRecentEvents`)}):(0,b.jsx)(`div`,{className:`max-h-64 space-y-1 overflow-y-auto`,children:Z.pageItems.map((e,t)=>(0,b.jsxs)(`div`,{className:`grid grid-cols-[4rem_minmax(0,7rem)_minmax(0,6rem)_minmax(0,1fr)] items-start gap-2 rounded px-2 py-1 text-xs hover:bg-muted/60`,children:[(0,b.jsx)(`span`,{className:`tabular-nums text-muted-foreground/70`,children:w(e.timestamp)}),(0,b.jsx)(`span`,{className:`min-w-0 truncate ${T(e.event)}`,children:e.event}),(0,b.jsx)(`span`,{className:`min-w-0 truncate text-muted-foreground`,children:e.category}),(0,b.jsx)(`span`,{className:`min-w-0 truncate text-foreground/80`,children:e.label??e.sessionId??``})]},`${e.timestamp}-${t}`))}),(0,b.jsx)(_,{page:Z.page,pageSize:Z.pageSize,totalItems:Z.totalItems,onPageChange:Z.setPage,compact:!0,itemLabel:`events`,className:`mt-3 rounded-lg border`})]})]})]})})}export{D as AnalyticsDashboard};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{K as t,nt as n,t as r}from"./config-store-BAUadwHd.js";import{i,t as a}from"./react-core-wiHys0m2.js";import{Mn as o,Mr as s,Ni as c,Nn as l,Pa as u,Vn as d,aa as f,hr as p,qn as m,qt as h,xo as g}from"./vendor-V3ydTHqN.js";import"./i18n-CbyUyl6G.js";import{t as _}from"./utils-CKsqCaP8.js";import"./stores-RkHrTaRO.js";import{C as v}from"./fonts-DRGbd-AM.js";import{F as y,L as b,m as x}from"./index-3TGBKeBP.js";import{i as S,r as C,s as w,t as T}from"./monaco-CbI7qrVD.js";import{t as E}from"./empty-state-5YP1rmE6.js";import{t as D}from"./monaco-theme-Dr3-rSid.js";var O=e(i(),1),k=a();S.config({monaco:T});var A={ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,mjs:`javascript`,json:`json`,css:`css`,scss:`scss`,html:`html`,md:`markdown`,py:`python`,go:`go`,rs:`rust`,java:`java`,c:`c`,cpp:`cpp`,cs:`csharp`,rb:`ruby`,php:`php`,sh:`shell`,bash:`shell`,yml:`yaml`,yaml:`yaml`,toml:`toml`,sql:`sql`};function j(e){return A[e.split(`.`).pop()?.toLowerCase()??``]??`plaintext`}function M({path:e,oldText:n,newText:i}){let{t:a}=g(),c=(0,O.useRef)(null),[l,d]=(0,O.useState)(!1),[f,p]=(0,O.useState)(!1),[m,h]=(0,O.useState)(null),{editor:_}=x();(0,O.useEffect)(()=>v(()=>w.remeasureFonts()),[]),(0,O.useEffect)(()=>{d(!1),p(!1),h(null)},[]);let y=(0,O.useCallback)(e=>{c.current=e,w.setTheme(D()),e.getModifiedEditor().onDidChangeModelContent(()=>d(!0))},[]),b=(0,O.useCallback)(()=>{let n=c.current?.getModifiedEditor().getValue();if(n==null)return;p(!0);let i=t(r.getState().wsUrl),a=i.on(`files.written`,t=>{t.type===`files.written`&&t.payload.filePath===e&&(a(),clearTimeout(o),p(!1),t.payload.success&&(d(!1),h(Date.now())))}),o=setTimeout(()=>{a(),p(!1)},5e3);i.send({type:`files.write`,payload:i.withSession({filePath:e,content:n})})},[e]),S=j(e);return(0,k.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,k.jsxs)(`div`,{className:`flex min-w-0 items-center justify-between gap-2 px-2 py-1.5 border-b border-border/40`,children:[(0,k.jsx)(`span`,{className:`text-xs font-mono text-muted-foreground truncate`,children:e}),(0,k.jsxs)(`button`,{type:`button`,onClick:b,disabled:!l||f,className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-md border border-border text-xs font-medium disabled:opacity-40 enabled:hover:bg-muted transition-colors`,title:a(`activity:monacoDiff.applyTitle`),children:[f?(0,k.jsx)(s,{className:`h-3.5 w-3.5 animate-spin`}):m&&!l?(0,k.jsx)(u,{className:`h-3.5 w-3.5 text-success`}):(0,k.jsx)(o,{className:`h-3.5 w-3.5`}),a(f?`activity:monacoDiff.applying`:m&&!l?`activity:monacoDiff.applied`:`activity:monacoDiff.apply`)]})]}),(0,k.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-hidden`,children:(0,k.jsx)(C,{original:n,modified:i,language:S,theme:D(),onMount:y,options:{renderSideBySide:!0,readOnly:!1,originalEditable:!1,minimap:{enabled:!1},fontSize:_.fontSize,fontFamily:_.fontFamily,lineHeight:_.lineHeight,fontLigatures:_.fontLigatures,scrollBeyondLastLine:!1,automaticLayout:!0}})})]})}var N=1e4;function P({className:e}){let{t:i}=g(),{stageGit:a,unstageGit:o,discardGit:u}=b(),v=n(e=>e.selectedPath),x=n(e=>e.files),S=n(e=>e.diff),C=n(e=>e.loadingDiff),w=x.find(e=>e.path===v),[T,D]=(0,O.useState)(`unified`),[A,j]=(0,O.useState)(!1),P=!!v&&(C||!S);(0,O.useEffect)(()=>{if(j(!1),!P)return;let e=setTimeout(()=>j(!0),N);return()=>clearTimeout(e)},[P,v]);let F=()=>{v&&(j(!1),n.getState().setDiffLoading(!0),t(r.getState().wsUrl).getGitDiff?.(v))};if(!v)return(0,k.jsx)(E,{icon:(0,k.jsx)(c,{className:`h-6 w-6`}),title:i(`activity:changesView.sourceChanges`),description:i(`activity:changes.selectPrompt`),className:e});let I=S&&!S.error&&!S.binary&&!S.tooLarge;return(0,k.jsx)(`div`,{className:_(`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-[hsl(var(--surface-2)/0.45)] p-3`,e),children:(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-border/70 bg-card/75 shadow-sm`,children:[(0,k.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-2 border-b border-border/70 px-3 py-2`,children:[(0,k.jsxs)(`div`,{className:`min-w-0 flex items-center gap-2`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`div`,{className:`text-[10px] font-semibold uppercase text-muted-foreground`,children:i(`activity:changesView.sourceControl`)}),(0,k.jsx)(`div`,{className:`truncate font-mono text-xs text-foreground`,title:v,children:v})]}),w?.staged&&(0,k.jsx)(`span`,{className:`rounded bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium text-primary uppercase`,children:`Staged`})]}),(0,k.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,k.jsx)(`div`,{className:`flex items-center gap-1 border-r border-border/70 pr-2`,children:w?.staged?(0,k.jsxs)(`button`,{type:`button`,onClick:()=>o?.(v),title:`Unstage this file`,className:`inline-flex h-8 items-center gap-1 rounded-md border border-border px-2 text-xs text-muted-foreground hover:bg-muted hover:text-foreground transition-colors`,children:[(0,k.jsx)(p,{className:`h-3.5 w-3.5`}),` Unstage`]}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`button`,{type:`button`,onClick:()=>a?.(v),title:`Stage this file`,className:`inline-flex h-8 items-center gap-1 rounded-md border border-border px-2 text-xs text-muted-foreground hover:bg-muted hover:text-foreground transition-colors`,children:[(0,k.jsx)(m,{className:`h-3.5 w-3.5`}),` Stage`]}),(0,k.jsxs)(`button`,{type:`button`,onClick:()=>{window.confirm(`Discard changes in ${v}? This cannot be undone.`)&&u?.(v)},title:`Discard changes in this file`,className:`inline-flex h-8 items-center gap-1 rounded-md border border-border px-2 text-xs text-muted-foreground hover:bg-destructive/10 hover:text-destructive transition-colors`,children:[(0,k.jsx)(h,{className:`h-3.5 w-3.5`}),` Discard`]})]})}),I&&(0,k.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,k.jsxs)(`button`,{type:`button`,onClick:()=>D(`unified`),title:i(`activity:changes.unifiedTitle`),className:_(`inline-flex h-8 items-center gap-1 rounded-md border px-2 text-xs transition-colors`,T===`unified`?`border-primary/40 bg-primary/10 text-primary`:`border-border text-muted-foreground hover:bg-muted`),children:[(0,k.jsx)(l,{className:`h-3.5 w-3.5`}),` `,i(`activity:changes.unified`)]}),(0,k.jsxs)(`button`,{type:`button`,onClick:()=>D(`edit`),title:i(`activity:changes.editTitle`),className:_(`inline-flex h-8 items-center gap-1 rounded-md border px-2 text-xs transition-colors`,T===`edit`?`border-primary/40 bg-primary/10 text-primary`:`border-border text-muted-foreground hover:bg-muted`),children:[(0,k.jsx)(f,{className:`h-3.5 w-3.5`}),` `,i(`activity:changes.edit`)]})]})]})]}),(0,k.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:C||!S?A?(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 p-4 text-center`,children:[(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`activity:changes.diffTimeout`)}),(0,k.jsxs)(`button`,{type:`button`,onClick:F,className:`inline-flex h-8 items-center gap-1.5 rounded-md border border-border px-3 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,children:[(0,k.jsx)(d,{className:`h-3.5 w-3.5`}),` `,i(`common:action.retry`)]})]}):(0,k.jsxs)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center gap-2 text-sm text-muted-foreground`,children:[(0,k.jsx)(s,{className:`h-4 w-4 animate-spin`}),` `,i(`activity:changes.loadingDiff`)]}):S.error?(0,k.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center text-sm text-destructive`,children:S.error}):S.binary?(0,k.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center text-sm text-muted-foreground`,children:i(`activity:changes.binary`)}):S.tooLarge?(0,k.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center text-sm text-muted-foreground`,children:i(`activity:changes.tooLarge`)}):T===`edit`?(0,k.jsx)(M,{path:S.path,oldText:S.oldText??``,newText:S.newText??``},S.path):(0,k.jsx)(y,{oldText:S.oldText,newText:S.newText,caption:S.path,fill:!0})})]})})}export{P as ChangesView};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-wiHys0m2.js";import{$n as r,$r as i,Dn as a,Fi as o,Ga as s,Hi as c,Hn as l,Jn as u,Mr as d,Mt as f,Na as p,Wa as m,Wr as h,bi as g,ci as _,cr as ee,gi as v,go as te,ho as y,ja as b,n as ne,nn as x,so as re,sr as S,ur as C,xo as w,yn as ie}from"./vendor-V3ydTHqN.js";import"./i18n-CbyUyl6G.js";import{a as T,c as ae,d as E,f as oe,h as D,m as se,n as O,o as ce,p as le,r as ue,t as de,u as fe}from"./xyflow-BqDBClm9.js";import{t as k}from"./utils-CKsqCaP8.js";import{i as pe,r as me,t as he}from"./codemap-activity-store-Ha7XbGgq.js";import{S as ge}from"./fonts-DRGbd-AM.js";import{R as _e}from"./index-3TGBKeBP.js";var A=e(t(),1),j=n();function ve({historyFile:e,fileHistory:t,onClose:n}){let{t:r}=w();return(0,j.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,j.jsxs)(`div`,{className:`flex h-12 items-center justify-between border-b px-4`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,j.jsx)(y,{className:`h-4 w-4 shrink-0 text-warning`}),(0,j.jsx)(`span`,{className:`truncate font-mono text-[11px] font-semibold`,title:e,children:e})]}),(0,j.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,j.jsx)(f,{className:`h-3.5 w-3.5`})})]}),(0,j.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:t.length===0?(0,j.jsx)(`p`,{className:`py-12 text-center text-[10px] text-muted-foreground`,children:r(`activity:codeMap.noActivityRecordedForThisFile`)}):t.map((e,t)=>(0,j.jsxs)(`div`,{className:`mb-1 flex items-start gap-2 border p-2 text-[10px]`,children:[(0,j.jsx)(`span`,{className:k(`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,j.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,j.jsx)(`div`,{className:`font-mono text-[9px] text-muted-foreground`,children:new Date(e.timestamp).toLocaleTimeString()}),e.toolName&&(0,j.jsxs)(`div`,{className:`mt-1`,children:[`via `,e.toolName]}),e.agent&&(0,j.jsx)(`div`,{className:`text-muted-foreground`,children:e.agent}),e.summary&&(0,j.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:e.summary}),e.change&&(0,j.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 font-mono text-[8px]`,children:[(0,j.jsxs)(`span`,{className:`border border-success/40 bg-success/10 px-1 text-success`,children:[`+`,e.change.added]}),(0,j.jsxs)(`span`,{className:`border border-destructive/40 bg-destructive/10 px-1 text-destructive`,children:[`−`,e.change.removed]}),e.change.before&&(0,j.jsx)(`span`,{className:`ml-1 truncate text-destructive/80`,title:e.change.before,children:e.change.before}),e.change.after&&(0,j.jsxs)(`span`,{className:`truncate text-success/80`,title:e.change.after,children:[`→ `,e.change.after]})]}),(0,j.jsxs)(`div`,{className:`mt-1 flex gap-2 font-mono text-[8px] uppercase text-muted-foreground`,children:[(0,j.jsx)(`span`,{children:e.status??`observed`}),(0,j.jsx)(`span`,{children:e.source??`legacy`}),e.durationMs!==void 0&&(0,j.jsxs)(`span`,{children:[e.durationMs,`ms`]}),e.watcherConfirmed&&(0,j.jsx)(`span`,{className:`text-success`,children:r(`activity:codeMap.fsVerified`)})]})]})]},`${e.timestamp}-${t}`))}),(0,j.jsxs)(`div`,{className:`border-t px-4 py-2 font-mono text-[9px] text-muted-foreground`,children:[t.length,` events · newest first`]})]})}var ye=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>=ye;){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 be(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 xe(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 Se(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 F(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 Ce(e){let t=new Set(e.nodes.map(e=>e.id)),n=F(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 I(e,t){if(e.nodes.length===0)return[];let n=F(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=Se(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 we(e,t,n){return t===`orbit`?I(e,n):t===`subsystems`?Oe(e):Ce(e)}function Te(e){return e.subsystem??e.package??`(ungrouped)`}var Ee=6,De=96;function Oe(e){if(e.nodes.length===0)return[];let t=F(e,new Set(e.nodes.map(e=>e.id))),n=e=>e.rank??(t.get(e.id)??0)/1e3,r=new Map;for(let t of e.nodes){let e=Te(t),n=r.get(e);n===void 0?r.set(e,[t]):n.push(t)}let i=[...r.entries()].map(([e,t])=>({name:e,nodes:[...t].sort((e,t)=>n(t)-n(e)||e.label.localeCompare(t.label)),weight:t.reduce((e,t)=>e+n(t),0)})).sort((e,t)=>e.name===`(ungrouped)`?1:t.name===`(ungrouped)`?-1:t.weight-e.weight||e.name.localeCompare(t.name)),a=[],o=0;for(let e of i){e.nodes.forEach((e,t)=>{a.push({node:e,position:{x:t%Ee*311,y:o+Math.floor(t/Ee)*160}})});let t=Math.ceil(e.nodes.length/Ee);o+=t*160+De}return a}function ke(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 Ae(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.some(e=>e.rank!==void 0),o=e=>a?e.rank??0:i.get(e.id)??0,s=[...e.nodes].sort((e,t)=>o(t)-o(e)||e.label.localeCompare(t.label)),c=new Set,l=e=>{n.has(e)&&c.size<96&&c.add(e)};if(t&&n.has(t)){l(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)l(e.source),l(e.target);let r=new Set(c),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)l(e.source),l(e.target)}else{let e=s.filter(e=>!e.external).slice(0,72),t=s.filter(e=>e.external).slice(0,24);for(let n of[...e,...t])l(n.id)}for(let e of s)l(e.id);r=e.nodes.filter(e=>c.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:ke(a,t,180)}}var L=[`/src/main/java/`,`/src/main/kotlin/`,`/src/`,`/lib/`,`/internal/`,`/cmd/`,`/pkg/`,`/app/`];function R(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 z(e){let t=(e.file??e.label).replace(/\\/g,`/`),n=R(e);if(n!==void 0)return n;let r=-1,i=0;for(let e of L){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 je(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 Me=new WeakMap;function Ne(e){let t=Me.get(e);if(t)return t;let n={name:``,path:``,directories:[],files:[]},r=e.filter(e=>e.kind===`file`&&!e.external),i=r.map(R),a=i.every(e=>e!==void 0),o=a?``:je(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??z(t):o&&r.startsWith(o)?r.slice(o.length):z(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),Me.set(e,n),n}function Pe(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 Fe(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 Ie(e,t){if(!e||!t)return!1;let n=N(e),r=N(t);return n===r||n.endsWith(`/${r}`)||r.endsWith(`/${n}`)}function Le(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 Re(e,t){return t.kind===`package`?Le(e.filePath)===(t.package??t.label):Ie(e.filePath,t.file)?t.kind!==`symbol`||e.symbol?.id===t.id:!1}function B(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 ze(e,t){let n=new Map;if(t.length===0||e.length===0)return n;let r=B(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=>Le(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 Be(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 Ve(e,t){let n=t.filter(t=>t.kind===`symbol`&&!t.external&&Ie(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 V={package:{icon:S,accent:`border-l-primary`,iconStyle:`bg-primary/12 text-primary`},file:{icon:o,accent:`border-l-info`,iconStyle:`bg-info/12 text-info`},symbol:{icon:s,accent:`border-l-success`,iconStyle:`bg-success/12 text-success`}},He=.25;function Ue(e){return e===void 0?`border-l-[3px]`:e>=.6?`border-l-[7px]`:e>=He?`border-l-[5px]`:`border-l-[3px]`}var We={call:`hsl(var(--primary))`,import:`hsl(var(--info))`,type_ref:`hsl(var(--success))`,inherit:`hsl(var(--warning))`,implement:`hsl(var(--destructive))`},Ge={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`},Ke=[`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 qe(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 Ke[Math.abs(t)%Ke.length]??Ke[0]}function Je(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 Ye=[`/packages/`,`/apps/`,`/crates/`,`/cmd/`,`/internal/`,`/pkg/`,`/src/`];function Xe(e){let t=e.replace(/\\/g,`/`),n=Ye.reduce((e,n)=>Math.max(e,t.lastIndexOf(n)),-1);return n>=0?t.slice(n+1):t.split(`/`).slice(-3).join(`/`)}function U(e){return[e.symbol?.name,e.line?`L${e.line}`:void 0].filter(Boolean).join(` · `)}function Ze({data:e}){let{t}=w(),{graphNode:n,selected:r,dimmed:i,incoming:a,outgoing:o,isActive:s,activityType:u,activeOperations:d}=e,f=V[n.kind],p=f.icon,m=n.kind!==`symbol`,h=n.kind===`symbol`?`${n.symbolKind??`symbol`}${n.line?` · L${n.line}`:``}`:n.kind===`file`?z(n):`${n.fileCount??0} files · ${n.symbolCount??0} symbols`;return(0,j.jsxs)(`div`,{className:k(`group relative w-[236px] border bg-card text-card-foreground shadow-[0_8px_24px_hsl(var(--shadow-color)/0.08)] transition-[opacity,box-shadow,border-color,background-color]`,f.accent,Ue(n.rank),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`,s&&u&&Ge[u]),children:[d.length>0&&(0,j.jsxs)(`div`,{className:`absolute -top-5 left-2 z-20 flex max-w-[210px] items-center gap-1`,children:[d.slice(0,4).map(e=>{let t=e.agentName??e.agent??`External`,n=`${e.sessionId??`none`}:${e.agentId??t}`;return(0,j.jsxs)(`span`,{className:k(`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} ${U(e)}`,children:[(0,j.jsx)(`span`,{className:`h-1.5 w-1.5 animate-pulse bg-current`}),qe(t),e.symbol&&(0,j.jsx)(`span`,{className:`max-w-[80px] truncate`,children:e.symbol.name})]},e.id??`${n}:${e.filePath}`)}),d.length>4&&(0,j.jsxs)(`span`,{className:`border bg-card px-1 font-mono text-[8px] shadow`,children:[`+`,d.length-4]})]}),(0,j.jsx)(T,{type:`target`,position:D.Left,className:`!h-2.5 !w-2.5 !border-2 !border-card !bg-muted-foreground`}),(0,j.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:()=>m&&e.onOpen(n),"aria-label":`${n.kind} ${n.label}`,children:[(0,j.jsxs)(`div`,{className:`flex items-start gap-3 p-3 pr-10`,children:[(0,j.jsx)(`span`,{className:k(`flex h-8 w-8 shrink-0 items-center justify-center border`,f.iconStyle),children:(0,j.jsx)(p,{className:`h-4 w-4`})}),(0,j.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[9px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[(0,j.jsx)(`span`,{children:n.kind}),n.external&&(0,j.jsx)(`span`,{className:`border border-border px-1 py-0.5 text-[8px] text-warning`,children:`external`}),n.rank!==void 0&&n.rank>=.6&&(0,j.jsx)(`span`,{className:`border border-primary/40 bg-primary/10 px-1 py-0.5 text-[8px] text-primary`,children:t(`activity:codeMap.hub`)}),n.lang&&(0,j.jsx)(`span`,{className:`ml-auto font-mono normal-case tracking-normal`,children:n.lang})]}),(0,j.jsx)(`div`,{className:`truncate font-mono text-[13px] font-semibold`,title:n.label,children:n.label}),(0,j.jsx)(`div`,{className:`mt-1 truncate text-[10px] text-muted-foreground`,title:h,children:h}),n.concept&&(0,j.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[9px] leading-snug text-muted-foreground/80`,title:n.concept,children:n.concept})]})]}),n.rank!==void 0&&(0,j.jsx)(`div`,{className:`h-[3px] w-full bg-muted`,title:t(`activity:codeMap.centrality`,{value:Math.round(n.rank*100)}),children:(0,j.jsx)(`div`,{className:`h-full bg-primary/70`,style:{width:`${Math.max(2,Math.round(n.rank*100))}%`}})}),(0,j.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,j.jsxs)(`span`,{title:t(`activity:codeMapVisuals.incomingRelationships`),children:[`← `,a]}),(0,j.jsxs)(`span`,{title:t(`activity:codeMapVisuals.outgoingRelationships`),children:[`→ `,o]}),n.symbolCount!==void 0&&n.kind===`file`&&(0,j.jsxs)(`span`,{className:`ml-auto`,children:[n.symbolCount,` sym`]}),s&&(0,j.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-bold text-warning`,children:[(0,j.jsx)(l,{className:`h-2.5 w-2.5 animate-pulse`}),` LIVE`]})]})]}),m&&(0,j.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,j.jsx)(c,{className:`h-3.5 w-3.5`})}),(0,j.jsx)(T,{type:`source`,position:D.Right,className:`!h-2.5 !w-2.5 !border-2 !border-card !bg-muted-foreground`})]})}function W(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function Qe(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&&W(e.activeOperations,t.activeOperations)}var G={codemap:(0,A.memo)(Ze,(e,t)=>Qe(e.data,t.data))},$e={nodes:[],edges:[]};function et(e){return/Authentication required|Unauthorized/i.test(e)}function tt({loading:e,error:t,graph:n,canvasNodeCount:r,flowNodes:i,flowEdges:a,onNodesChange:o,onEdgesChange:s,agentTrailCount:c}){let{t:l}=w();return(0,j.jsxs)(j.Fragment,{children:[e&&(0,j.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,j.jsx)(d,{className:`h-7 w-7 animate-spin text-primary`}),(0,j.jsx)(`span`,{className:`font-mono text-[10px] uppercase tracking-widest text-muted-foreground`,children:l(`activity:codeMap.mappingRelationships`)})]}),t&&!e&&(0,j.jsxs)(`div`,{className:`absolute inset-0 z-20 flex flex-col items-center justify-center gap-3 p-8 text-center`,children:[(0,j.jsx)(C,{className:`h-10 w-10 text-destructive`}),(0,j.jsx)(`p`,{className:`font-mono text-sm text-destructive`,children:t}),!et(t)&&(0,j.jsxs)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:[`The map needs a codebase index. Run`,` `,(0,j.jsx)(`code`,{className:`border bg-muted px-1.5 py-0.5`,children:`codebase-index`}),` `,l(`activity:codeMap.onceThenReopenThisView`)]})]}),!e&&!t&&n.nodes.length===0&&(0,j.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-2 text-muted-foreground`,children:[(0,j.jsx)(C,{className:`h-8 w-8 opacity-40`}),(0,j.jsx)(`p`,{className:`text-xs`,children:l(`activity:codeMap.noIndexedNodesAtThisLevel`)})]}),!e&&!t&&n.nodes.length>1&&n.edges.length===0&&(0,j.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,j.jsx)(`div`,{className:`font-mono text-[9px] font-bold uppercase tracking-wider text-warning`,children:l(`activity:codeMap.noResolvedRelationsInThisScope`)}),(0,j.jsx)(`div`,{className:`mt-0.5 text-[8px] text-muted-foreground`,children:l(`activity:codeMap.theUpgradedIndexWillRebuildAnd`)})]}),!t&&n.nodes.length>0&&(0,j.jsxs)(fe,{nodes:i,edges:a,onNodesChange:o,onEdgesChange:s,nodeTypes:G,nodesConnectable:!1,nodesDraggable:!1,edgesFocusable:!1,elementsSelectable:!1,onlyRenderVisibleElements:!0,minZoom:.08,maxZoom:2.2,proOptions:{hideAttribution:!0},children:[(0,j.jsx)(de,{variant:O.Dots,gap:r>60?32:22,size:1,color:`hsl(var(--muted-foreground))`,className:`!opacity-25`}),(0,j.jsx)(ue,{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,j.jsx)(ce,{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,j.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(We).map(([e,t])=>(0,j.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,j.jsx)(`span`,{className:`h-0.5 w-3`,style:{backgroundColor:t}}),e.replace(`_`,` `)]},e)),(0,j.jsxs)(`span`,{className:`flex items-center gap-1 text-primary`,"data-testid":`agent-trail-count`,children:[(0,j.jsx)(`span`,{className:`w-4 border-t-2 border-dashed border-primary`}),`agent trail`,c>0?` ×${c}`:``]})]})]})}function nt({layout:e,canvasMode:t,edgeFilter:n,canvasNodeCount:r,graphNodeCount:i,onLayoutChange:a,onCanvasModeChange:o,onEdgeFilterChange:s}){let{t:c}=w();return(0,j.jsxs)(`div`,{className:`pointer-events-none absolute left-3 right-3 top-3 z-10 flex items-center gap-2`,children:[(0,j.jsxs)(`div`,{className:`pointer-events-auto flex border bg-card/95 shadow-md backdrop-blur`,children:[(0,j.jsxs)(`button`,{type:`button`,className:k(`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:()=>a(`layers`),children:[(0,j.jsx)(h,{className:`h-3 w-3`}),` `,c(`activity:codeMap.layers`)]}),(0,j.jsxs)(`button`,{type:`button`,className:k(`flex h-8 items-center gap-1.5 border-r px-2.5 text-[9px] font-semibold uppercase tracking-wider`,e===`orbit`?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>a(`orbit`),children:[(0,j.jsx)(ee,{className:`h-3 w-3`}),` `,c(`activity:codeMap.relations`)]}),(0,j.jsxs)(`button`,{type:`button`,className:k(`flex h-8 items-center gap-1.5 px-2.5 text-[9px] font-semibold uppercase tracking-wider`,e===`subsystems`?`bg-primary text-primary-foreground`:`text-muted-foreground hover:bg-muted`),onClick:()=>a(`subsystems`),title:c(`activity:codeMap.groupNodesByTheSubsystemTheyBelongTo`),children:[(0,j.jsx)(m,{className:`h-3 w-3`}),` `,c(`activity:codeMap.subsystems`)]})]}),(0,j.jsxs)(`div`,{className:`pointer-events-auto flex border bg-card/95 shadow-md backdrop-blur`,children:[(0,j.jsxs)(`button`,{type:`button`,className:k(`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:()=>o(`smart`),title:c(`activity:codeMap.keepTheFullTreeShowTheStrongestRelationsAndSelectedNeighbourhood`),children:[`SMART `,r,`/`,i]}),(0,j.jsx)(`button`,{type:`button`,className:k(`h-8 px-2.5 font-mono text-[9px] font-bold`,t===`all`?`bg-foreground text-background`:`text-muted-foreground hover:bg-muted`),onClick:()=>o(`all`),title:c(`activity:codeMap.renderEveryNodeAndRelationInThisScope`),children:c(`activity:codeMap.all`)})]}),(0,j.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,j.jsx)(`button`,{type:`button`,className:k(`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:()=>s(e),children:e===`all`?`ALL LINKS`:e.replace(`_`,` `).toUpperCase()},e))})]})}function rt(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&&Qe(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 K(e){return e.data?.renderKey}function it(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&&K(a)===K(t)?(e[i]!==a&&(r=!0),a):(r=!0,t)});return r?i:e}function at({scope:e,graph:t,agentPresences:n,edgeWeight:r,connectedNodeCount:a,navigate:o}){let{t:s}=w();return(0,j.jsxs)(`header`,{className:`flex h-[62px] shrink-0 items-center gap-4 border-b bg-card px-4`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-[220px] items-center gap-3`,children:[(0,j.jsx)(`span`,{className:`flex h-9 w-9 items-center justify-center border border-primary bg-primary/10 text-primary`,children:(0,j.jsx)(C,{className:`h-4 w-4`})}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h1`,{className:`font-display text-sm font-semibold tracking-tight`,children:s(`activity:codeMap.codeAtlas`)}),(0,j.jsx)(`p`,{className:`text-[9px] uppercase tracking-[0.18em] text-muted-foreground`,children:s(`activity:codeMap.architectureIntelligence`)})]})]}),(0,j.jsxs)(`nav`,{className:`flex min-w-0 flex-1 items-center gap-1 font-mono text-[10px]`,"aria-label":s(`activity:codeMap.codeMapBreadcrumb`),children:[e.level!==`packages`&&(0,j.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`?o({level:`files`,package:e.package??`(root)`}):o({level:`packages`})},"aria-label":s(`activity:codeMap.back`),children:(0,j.jsx)(re,{className:`h-3.5 w-3.5`})}),(0,j.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1.5 px-1.5 py-1 text-muted-foreground hover:text-foreground`,onClick:()=>o({level:`packages`}),children:[(0,j.jsx)(i,{className:`h-3 w-3`}),` workspace`]}),e.level!==`packages`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(b,{className:`h-3 w-3 text-muted-foreground`}),(0,j.jsx)(`button`,{type:`button`,className:`max-w-[220px] truncate px-1.5 py-1 hover:text-primary`,onClick:()=>o({level:`files`,package:e.package??`(root)`}),children:e.package??`(root)`})]}),e.level===`symbols`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(b,{className:`h-3 w-3 text-muted-foreground`}),(0,j.jsx)(`span`,{className:`truncate px-1.5 py-1 text-primary`,children:z({id:``,label:e.file,kind:`file`,file:e.file,package:e.package})})]})]}),(0,j.jsxs)(`div`,{className:`hidden items-center gap-5 xl:flex`,children:[(0,j.jsxs)(`div`,{className:k(`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,j.jsx)(l,{className:k(`h-3 w-3`,n.length>0&&`animate-pulse`)}),(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`font-mono text-[10px] font-bold`,children:[n.length,` LIVE`]}),(0,j.jsx)(`div`,{className:`text-[7px] uppercase tracking-wider`,children:`agents`})]})]}),(0,j.jsxs)(`div`,{className:`text-right`,children:[(0,j.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:t.nodes.length}),(0,j.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`nodes`})]}),(0,j.jsxs)(`div`,{className:`text-right`,children:[(0,j.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:t.edges.length}),(0,j.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`links`})]}),(0,j.jsxs)(`div`,{className:`text-right`,children:[(0,j.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:r}),(0,j.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`references`})]}),(0,j.jsxs)(`div`,{className:`text-right`,children:[(0,j.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:a}),(0,j.jsx)(`div`,{className:`text-[8px] uppercase tracking-wider text-muted-foreground`,children:`connected`})]})]})]})}function ot({activity:e}){return(0,j.jsx)(`span`,{className:k(`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 q({activity:e,onLocate:t,showAgent:n=!1}){let{t:r}=w(),i=e.agentName??e.agent??`External process`,a=`${e.sessionId??`none`}:${e.agentId??i}`;return(0,j.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,j.jsx)(`span`,{className:k(`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center font-mono text-[8px] font-black`,H(a)),children:qe(i)}),(0,j.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,j.jsx)(ot,{activity:e}),n&&(0,j.jsx)(`span`,{className:`truncate text-[9px] font-semibold`,children:i}),e.status===`active`&&(0,j.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-mono text-[8px] font-bold text-success`,children:[(0,j.jsx)(`span`,{className:`h-1.5 w-1.5 animate-pulse bg-success`}),` `,r(`activity:codeMap.live`)]}),e.watcherConfirmed&&(0,j.jsx)(ie,{className:`ml-auto h-3 w-3 text-success`,"aria-label":r(`activity:codeMap.filesystemConfirmed`)}),e.attribution===`correlated`&&!e.watcherConfirmed&&(0,j.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,j.jsx)(`span`,{className:`ml-auto font-mono text-[7px] uppercase text-destructive`,children:`external`})]}),(0,j.jsx)(`div`,{className:`mt-1 truncate font-mono text-[9px] font-semibold`,title:e.filePath,children:Xe(e.filePath)}),(e.symbol||e.line)&&(0,j.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-1 truncate font-mono text-[8px] text-success`,children:[(0,j.jsx)(x,{className:`h-2.5 w-2.5 shrink-0`}),e.symbol?.name??`line ${e.line}`,e.symbol?.kind&&(0,j.jsxs)(`span`,{className:`text-muted-foreground`,children:[`· `,e.symbol.kind]})]}),e.change&&(0,j.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 font-mono text-[8px]`,children:[(0,j.jsxs)(`span`,{className:`border border-success/40 bg-success/10 px-1 text-success`,children:[`+`,e.change.added]}),(0,j.jsxs)(`span`,{className:`border border-destructive/40 bg-destructive/10 px-1 text-destructive`,children:[`−`,e.change.removed]}),e.durationMs!==void 0&&(0,j.jsxs)(`span`,{className:`ml-auto text-muted-foreground`,children:[e.durationMs,`ms`]})]}),e.summary&&e.summary!==e.toolName&&(0,j.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[8px] leading-3 text-muted-foreground`,children:e.summary})]}),!e.filePath.startsWith(`(`)&&(0,j.jsx)(c,{className:`mt-1 h-3 w-3 shrink-0 text-muted-foreground opacity-0 group-hover:opacity-100`})]})}function st({presences:e,onLocate:t}){let{t:n}=w();return e.length===0?null:(0,j.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,j.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b px-3`,children:[(0,j.jsx)(l,{className:`h-3.5 w-3.5 animate-pulse text-success`}),(0,j.jsx)(`h2`,{className:`text-[9px] font-black uppercase tracking-[0.18em]`,children:n(`activity:codeMap.liveAgentOperations`)}),(0,j.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,j.jsx)(`div`,{className:`max-h-[330px] overflow-y-auto`,children:e.map(e=>(0,j.jsxs)(`div`,{className:`border-b last:border-b-0`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 bg-muted/35 px-3 py-1.5`,children:[(0,j.jsx)(`span`,{className:k(`flex h-6 w-6 items-center justify-center font-mono text-[8px] font-black`,H(e.key)),children:qe(e.agentName)}),(0,j.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,j.jsx)(`div`,{className:`truncate text-[9px] font-bold`,children:e.agentName}),(0,j.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,j.jsxs)(`span`,{className:`font-mono text-[8px] text-success`,children:[e.operations.length,` op`]})]}),e.operations.map(e=>(0,j.jsx)(q,{activity:e,onLocate:t},e.id??`${e.toolUseId}:${e.filePath}`))]},e.key))})]})}function ct({paused:e,followLive:t,agentFilter:n,agents:i,onTogglePaused:a,onToggleFollow:o,onAgentFilter:s}){let{t:c}=w();return(0,j.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,j.jsxs)(`button`,{type:`button`,className:k(`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,j.jsx)(x,{className:`h-3 w-3`}),` `,c(`activity:codeMap.follow`)]}),(0,j.jsxs)(`button`,{type:`button`,className:k(`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:a,title:e?`Resume the live telemetry stream`:`Freeze the current telemetry frame`,children:[e?(0,j.jsx)(u,{className:`h-3 w-3`}):(0,j.jsx)(r,{className:`h-3 w-3`}),e?`Resume`:`Live`]}),(0,j.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,j.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,j.jsx)(`option`,{value:`all`,children:c(`activity:codeMap.allAgents`)}),i.map(e=>(0,j.jsxs)(`option`,{value:e.key,children:[e.agentName,` · `,e.sessionId.slice(0,10)]},e.key))]})]})]})}function lt({activeOperations:e,recentActivities:t,activityTotalCount:n,onLocate:r}){let{t:i}=w();return(0,j.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[e.length>0&&(0,j.jsxs)(`section`,{className:`border-b`,children:[(0,j.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b bg-success/5 px-3`,children:[(0,j.jsx)(l,{className:`h-3 w-3 animate-pulse text-success`}),(0,j.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:i(`activity:codeMap.activeNow`)}),(0,j.jsx)(`span`,{className:`ml-auto font-mono text-[9px] text-success`,children:e.length})]}),e.map(e=>(0,j.jsx)(q,{activity:e,onLocate:r,showAgent:!0},e.id??`${e.toolUseId}:${e.filePath}`))]}),(0,j.jsxs)(`section`,{children:[(0,j.jsxs)(`div`,{className:`flex h-9 items-center gap-2 border-b px-3`,children:[(0,j.jsx)(y,{className:`h-3 w-3 text-muted-foreground`}),(0,j.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:i(`activity:codeMap.eventStream`)}),(0,j.jsxs)(`span`,{className:`ml-auto font-mono text-[8px] text-muted-foreground`,children:[n,` total`]})]}),t.length>0?t.map((e,t)=>(0,j.jsx)(q,{activity:e,onLocate:r,showAgent:!0},e.id??`${e.timestamp}:${t}`)):(0,j.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-7 py-16 text-center`,children:[(0,j.jsx)(`span`,{className:`mb-4 flex h-12 w-12 items-center justify-center border bg-muted text-muted-foreground`,children:(0,j.jsx)(_,{className:`h-5 w-5`})}),(0,j.jsx)(`h3`,{className:`text-xs font-semibold`,children:i(`activity:codeMap.selectANodeOrWaitFor`)}),(0,j.jsx)(`p`,{className:`mt-2 text-[10px] leading-relaxed text-muted-foreground`,children:i(`activity:codeMap.relationsAppearOnSelectionToolCalls`)})]})]})]})}function ut({node:e,incomingCount:t,outgoingCount:n,onOpenNode:r,onOpenActivity:i}){let{t:a}=w(),o=V[e.kind].icon;return(0,j.jsxs)(`div`,{className:`border-b bg-muted/25 p-3`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,j.jsx)(`span`,{className:k(`flex h-8 w-8 items-center justify-center border`,V[e.kind].iconStyle),children:(0,j.jsx)(o,{className:`h-4 w-4`})}),(0,j.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,j.jsxs)(`div`,{className:`text-[8px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[e.external?`external `:``,e.kind]}),(0,j.jsx)(`div`,{className:`truncate font-mono text-xs font-semibold`,title:e.label,children:e.label})]})]}),(0,j.jsx)(`div`,{className:`break-all font-mono text-[9px] leading-relaxed text-muted-foreground`,children:e.file?z(e):e.package}),e.subsystem&&(0,j.jsx)(`div`,{className:`mt-2 inline-flex items-center gap-1 border border-border px-1.5 py-0.5 text-[8px] uppercase tracking-wider text-muted-foreground`,children:e.subsystem}),e.concept&&(0,j.jsx)(`p`,{className:`mt-2 text-[11px] leading-relaxed text-foreground`,children:e.concept}),e.crux&&(0,j.jsxs)(`div`,{className:`mt-1 font-mono text-[9px] text-muted-foreground`,children:[a(`activity:codeMap.crux`),` L`,e.crux.start,`–L`,e.crux.end]}),e.signature&&(0,j.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,j.jsxs)(`div`,{className:`mt-3 grid grid-cols-3 border`,children:[(0,j.jsx)(J,{value:t,label:a(`activity:codeMap.incoming`),className:`border-r text-info`}),(0,j.jsx)(J,{value:n,label:a(`activity:codeMap.outgoing`),className:`border-r text-primary`}),(0,j.jsx)(J,{value:e.symbolCount??e.fileCount??e.line??`—`,label:e.kind===`package`?`files`:e.kind===`file`?`symbols`:`line`})]}),(0,j.jsx)(`div`,{className:`mt-2 grid grid-cols-1 border`,children:(0,j.jsx)(J,{value:e.rank===void 0?`—`:`${Math.round(e.rank*100)}%`,label:a(`activity:codeMap.centralityLabel`)})}),(0,j.jsxs)(`div`,{className:`mt-2 flex gap-2`,children:[e.kind!==`symbol`&&(0,j.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,j.jsx)(c,{className:`h-3 w-3`}),` Open`,` `,e.kind===`package`?`files`:`symbols`]}),e.file&&(0,j.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:()=>i(e.file),children:[(0,j.jsx)(y,{className:`h-3 w-3`}),` `,a(`activity:codeMap.activity`)]})]})]})}function J({value:e,label:t,className:n}){return(0,j.jsxs)(`div`,{className:k(`p-2 text-center`,n),children:[(0,j.jsx)(`div`,{className:`font-mono text-sm font-semibold`,children:e}),(0,j.jsx)(`div`,{className:`text-[8px] uppercase text-muted-foreground`,children:t})]})}function dt(e){let{t}=w(),{title:n,subtitle:r,items:i,graph:a,selectedId:o,expanded:s,onToggle:c,onSelect:l}=e;return(0,j.jsxs)(`section`,{className:`border-b py-3`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-end justify-between px-3`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h3`,{className:`text-[10px] font-bold uppercase tracking-[0.16em]`,children:n}),(0,j.jsx)(`p`,{className:`mt-0.5 text-[9px] text-muted-foreground`,children:r})]}),(0,j.jsx)(`span`,{className:`border bg-muted px-1.5 py-0.5 font-mono text-[9px]`,children:i.length})]}),i.length===0?(0,j.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=s.has(t),i=[...xe(a,e.node.id,`incoming`),...xe(a,e.node.id,`outgoing`)].filter((e,t,n)=>e.node.id!==o&&n.findIndex(t=>t.node.id===e.node.id)===t).slice(0,8);return(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`group flex min-h-9 items-center gap-1 px-2 hover:bg-muted/70`,children:[(0,j.jsx)(`button`,{type:`button`,className:`flex h-6 w-5 shrink-0 items-center justify-center text-muted-foreground`,onClick:()=>i.length>0&&c(t),"aria-label":`${r?`Collapse`:`Expand`} relation ${e.node.label}`,children:i.length>0?r?(0,j.jsx)(p,{className:`h-3 w-3`}):(0,j.jsx)(b,{className:`h-3 w-3`}):(0,j.jsx)(`span`,{className:`h-px w-2 bg-border`})}),(0,j.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 py-1 text-left`,onClick:()=>l(e.node),children:[(0,j.jsx)(`span`,{className:`block truncate font-mono text-[10px] font-semibold`,title:e.node.label,children:e.node.label}),(0,j.jsx)(`span`,{className:`block truncate text-[9px] text-muted-foreground`,children:e.node.package??e.node.symbolKind??e.node.kind})]}),(0,j.jsx)(`span`,{className:`border px-1 py-0.5 font-mono text-[8px] text-muted-foreground`,children:e.edge.refType}),(0,j.jsxs)(`span`,{className:`w-5 text-right font-mono text-[9px] text-muted-foreground`,children:[`×`,e.edge.weight]})]}),r&&i.map(e=>(0,j.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:()=>l(e.node),children:[(0,j.jsx)(`span`,{className:`absolute left-7 top-1/2 h-px w-3 bg-border`}),(0,j.jsx)(_,{className:`h-3 w-3 shrink-0`}),(0,j.jsx)(`span`,{className:`truncate font-mono`,children:e.node.label}),(0,j.jsx)(`span`,{className:`ml-auto font-mono opacity-70`,children:e.edge.refType})]},`${t}:${e.node.id}`))]},t)})]})}function ft({selectedNode:e,incoming:t,outgoing:n,filteredGraph:r,expandedRelations:i,activeOperations:a,recentActivities:o,activityTotalCount:s,selectedActivities:c,onClearSelection:u,onOpenNode:d,onOpenActivity:p,onLocateActivity:m,onToggleRelation:h,onSelectNode:g}){let{t:_}=w();return(0,j.jsxs)(`aside`,{className:`flex w-[326px] shrink-0 flex-col border-l bg-card/80`,children:[(0,j.jsxs)(`div`,{className:`flex h-10 items-center justify-between border-b px-3`,children:[(0,j.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.18em]`,children:_(`activity:codeMap.relationInspector`)}),e&&(0,j.jsx)(`button`,{type:`button`,className:`text-muted-foreground hover:text-foreground`,onClick:u,"aria-label":_(`activity:codeMap.clearSelection`),children:(0,j.jsx)(f,{className:`h-3.5 w-3.5`})})]}),e?(0,j.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,j.jsx)(ut,{node:e,incomingCount:t.length,outgoingCount:n.length,onOpenNode:d,onOpenActivity:p}),c.length>0&&(0,j.jsxs)(`section`,{className:`border-b bg-success/5 py-2`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center gap-2 px-3`,children:[(0,j.jsx)(l,{className:`h-3 w-3 animate-pulse text-success`}),(0,j.jsx)(`h3`,{className:`text-[9px] font-bold uppercase tracking-[0.16em]`,children:_(`activity:codeMap.agentsOnThisNode`)}),(0,j.jsx)(`span`,{className:`ml-auto font-mono text-[9px] text-success`,children:c.length})]}),c.map(e=>(0,j.jsx)(q,{activity:e,onLocate:m,showAgent:!0},e.id??`${e.toolUseId}:${e.filePath}`))]}),(0,j.jsx)(dt,{title:_(`activity:codeMap.incoming`),subtitle:_(`activity:codeMap.whoDependsOnThis`),items:t,graph:r,selectedId:e.id,expanded:i,onToggle:h,onSelect:g}),(0,j.jsx)(dt,{title:_(`activity:codeMap.outgoing`),subtitle:_(`activity:codeMap.whatThisDependsOn`),items:n,graph:r,selectedId:e.id,expanded:i,onToggle:h,onSelect:g})]}):(0,j.jsx)(lt,{activeOperations:a,recentActivities:o,activityTotalCount:s,onLocate:m})]})}function pt({node:e,onSelect:t,virtual:n}){let r=V[e.kind].icon;return(0,j.jsxs)(`button`,{type:`button`,"data-index":n?.index,ref:n?e=>n.measureElement(e):void 0,className:k(`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,j.jsx)(r,{className:k(`h-3.5 w-3.5 shrink-0`,e.kind===`package`?`text-primary`:e.kind===`file`?`text-info`:`text-success`)}),(0,j.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,j.jsx)(`span`,{className:`block truncate font-mono text-[10px]`,children:e.label}),(0,j.jsx)(`span`,{className:`block truncate text-[8px] text-muted-foreground`,children:e.file??e.package??e.symbolKind})]}),(0,j.jsx)(`span`,{className:`text-[8px] uppercase text-muted-foreground`,children:e.kind.slice(0,3)})]},e.id)}var mt=80,ht=40;function gt(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 Y=(0,A.memo)(function e(t){let{t:n}=w(),{directory:r,packageName:i,depth:a,expandedDirectories:u,expandedFiles:f,loadingBranches:m,graphForFile:h,onToggleDirectory:_,onToggleFile:ee,onSelectFile:te,onOpenFile:y,onSelectSymbol:ne,selectedId:x,activeFileNorms:re,activeSymbolIds:S,revealAllKeys:C,onRevealAll:ie}=t,T=`files:${i}:${r.path||`.`}`,ae=C.has(T)?r.files:r.files.slice(0,mt),E=r.files.length-ae.length;return(0,j.jsxs)(j.Fragment,{children:[r.directories.map(n=>{let r=`${i}:${n.path}`,o=u.has(r);return(0,j.jsxs)(`div`,{children:[(0,j.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+a*12},onClick:()=>_(r),children:[o?(0,j.jsx)(p,{className:`h-3 w-3`}):(0,j.jsx)(b,{className:`h-3 w-3`}),o?(0,j.jsx)(g,{className:`h-3.5 w-3.5 text-warning`}):(0,j.jsx)(v,{className:`h-3.5 w-3.5 text-warning`}),(0,j.jsx)(`span`,{className:`truncate`,children:n.name})]}),o&&(0,j.jsx)(e,{...t,directory:n,depth:a+1})]},r)}),ae.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)??[],u=`symbols:${e.file??e.id}`,g=C.has(u)?i:i.slice(0,ht),_=i.length-g.length,v=gt(e.file,re);return(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:k(`group flex h-7 items-center pr-1 text-[11px] hover:bg-muted`,x===e.id&&`bg-primary/10 text-primary`),style:{paddingLeft:8+a*12},children:[(0,j.jsx)(`button`,{type:`button`,className:`flex h-6 w-4 shrink-0 items-center justify-center text-muted-foreground`,onClick:()=>ee(e),"aria-label":`${t?`Collapse`:`Expand`} ${e.label}`,children:m.has(r)?(0,j.jsx)(d,{className:`h-3 w-3 animate-spin`}):t?(0,j.jsx)(p,{className:`h-3 w-3`}):(0,j.jsx)(b,{className:`h-3 w-3`})}),(0,j.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-1.5 text-left`,onClick:()=>te(e),onDoubleClick:()=>y(e),children:[(0,j.jsx)(o,{className:`h-3.5 w-3.5 shrink-0 text-info`}),v&&(0,j.jsx)(`span`,{className:`h-1.5 w-1.5 shrink-0 animate-pulse bg-success`,title:n(`activity:codeMap.liveOperation`)}),(0,j.jsx)(`span`,{className:`truncate font-mono`,title:e.file,children:e.label}),(0,j.jsx)(`span`,{className:`ml-auto text-[9px] text-muted-foreground`,children:e.symbolCount??0})]}),(0,j.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:()=>y(e),title:n(`activity:codeMap.openSymbolMap`),"aria-label":`Open ${e.label} map`,children:(0,j.jsx)(c,{className:`h-3 w-3`})})]}),t&&g.map(e=>(0,j.jsxs)(`button`,{type:`button`,className:k(`flex h-7 w-full items-center gap-1.5 pr-2 text-left text-[10px] hover:bg-muted`,x===e.id?`bg-primary/10 text-primary`:`text-muted-foreground`),style:{paddingLeft:38+a*12},onClick:()=>ne(e),children:[(0,j.jsx)(s,{className:`h-3 w-3 shrink-0 text-success`}),S.has(e.id)&&(0,j.jsx)(l,{className:`h-3 w-3 shrink-0 animate-pulse text-success`}),(0,j.jsx)(`span`,{className:`truncate font-mono`,children:e.label}),e.line&&(0,j.jsxs)(`span`,{className:`ml-auto font-mono text-[8px] opacity-60`,children:[`:`,e.line]})]},e.id)),t&&_>0&&(0,j.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+a*12},onClick:()=>ie(u),children:[`Show `,_,` more symbols`]})]},e.id)}),E>0&&(0,j.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+a*12},onClick:()=>ie(T),children:[`Show `,E,` more files`]})]})});function _t({rootGraph:e,search:t,searchInput:n,searchResults:r,virtualizeSearch:i,searchVirtualizer:o,treeScrollRef:s,selectedId:l,expandedPackages:u,expandedDirectories:m,expandedFiles:h,loadingBranches:g,activeFileNorms:_,activeSymbolIds:ee,revealAllKeys:v,packageGraph:te,graphForFile:y,navigate:ne,togglePackage:x,toggleDirectory:re,toggleFile:C,revealAllTree:ie,selectFileFromTree:T,selectSymbolFromTree:ae,selectSearchResult:E,handleOpenNode:oe,onSearchInputChange:D,onSearchChange:se}){let{t:O}=w();return(0,j.jsxs)(`aside`,{className:`flex w-[286px] shrink-0 flex-col border-r bg-card/70`,children:[(0,j.jsxs)(`div`,{className:`border-b p-3`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,j.jsx)(`h2`,{className:`text-[10px] font-bold uppercase tracking-[0.18em]`,children:O(`activity:codeMapTree.codeTree`)}),(0,j.jsxs)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:[e.nodes.length,` roots`]})]}),(0,j.jsxs)(`label`,{className:`flex h-8 items-center gap-2 border bg-background px-2 focus-within:border-primary`,children:[(0,j.jsx)(a,{className:`h-3.5 w-3.5 text-muted-foreground`}),(0,j.jsx)(`input`,{className:`min-w-0 flex-1 bg-transparent font-mono text-[10px] outline-none placeholder:text-muted-foreground`,value:n,onChange:e=>D(e.target.value),placeholder:O(`activity:codeMapTree.findPackageFileSymbol`)}),n&&(0,j.jsx)(`button`,{type:`button`,onClick:()=>{D(``),se(``)},"aria-label":O(`activity:codeMapTree.clearSearch`),children:(0,j.jsx)(f,{className:`h-3 w-3 text-muted-foreground`})})]})]}),(0,j.jsx)(`div`,{ref:s,className:`min-h-0 flex-1 overflow-y-auto py-2`,children:t.trim()?(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`px-3 pb-2 text-[9px] text-muted-foreground`,children:[r.length,` loaded-map results`]}),r.length===0?(0,j.jsxs)(`p`,{className:`px-3 py-8 text-center text-[10px] text-muted-foreground`,children:[O(`activity:codeMapTree.noMatchInLoadedBranches`),(0,j.jsx)(`br`,{}),O(`activity:codeMapTree.expandAPackageToSearchIts`)]}):i?(0,j.jsx)(`div`,{style:{height:`${o.getTotalSize()}px`,width:`100%`,position:`relative`},children:o.getVirtualItems().map(e=>{let t=r[e.index];return t?(0,j.jsx)(pt,{node:t,onSelect:E,virtual:{index:e.index,start:e.start,measureElement:o.measureElement}},t.id):null})}):r.map(e=>(0,j.jsx)(pt,{node:e,onSelect:E},e.id))]}):e.nodes.map(e=>{let t=e.package??e.label,n=u.has(t),r=P({level:`files`,package:t}),i=te(t),a=i?Ne(i.nodes):void 0;return(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:k(`group flex h-8 items-center px-2 hover:bg-muted`,l===e.id&&`bg-primary/10 text-primary`),children:[(0,j.jsx)(`button`,{type:`button`,className:`flex h-6 w-5 items-center justify-center text-muted-foreground`,onClick:()=>x(e),"aria-label":`${n?`Collapse`:`Expand`} ${t}`,children:g.has(r)?(0,j.jsx)(d,{className:`h-3 w-3 animate-spin`}):n?(0,j.jsx)(p,{className:`h-3 w-3`}):(0,j.jsx)(b,{className:`h-3 w-3`})}),(0,j.jsxs)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 text-left`,onClick:()=>ne({level:`packages`},e.id),onDoubleClick:()=>ne({level:`files`,package:t}),children:[(0,j.jsx)(S,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,j.jsx)(`span`,{className:`truncate font-mono text-[10px] font-semibold`,children:e.label}),(0,j.jsx)(`span`,{className:`ml-auto text-[9px] text-muted-foreground`,children:e.fileCount??0})]}),(0,j.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:()=>ne({level:`files`,package:t}),title:O(`activity:codeMapTree.openFileMap`),"aria-label":`Open ${t} map`,children:(0,j.jsx)(c,{className:`h-3 w-3`})})]}),n&&a&&(0,j.jsx)(Y,{directory:a,packageName:t,depth:1,expandedDirectories:m,expandedFiles:h,loadingBranches:g,graphForFile:y,onToggleDirectory:re,onToggleFile:C,onSelectFile:T,onOpenFile:oe,onSelectSymbol:ae,selectedId:l,activeFileNorms:_,activeSymbolIds:ee,revealAllKeys:v,onRevealAll:ie})]},e.id)})}),(0,j.jsxs)(`div`,{className:`border-t px-3 py-2 text-[9px] leading-relaxed text-muted-foreground`,children:[O(`activity:codeMapTree.clickToFocusDoubleClickTo`),(0,j.jsx)(`br`,{}),O(`activity:codeMapTree.branchesStayOpenWhileTheMap`)]})]})}function vt(){let[e,t]=(0,A.useState)({level:`packages`}),n=P(e),[r,i]=(0,A.useState)($e),[a,o]=(0,A.useState)(!0),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(null),[d,f]=(0,A.useState)(`layers`),[p,m]=(0,A.useState)(`smart`),[h,g]=(0,A.useState)(`all`),[_,ee]=(0,A.useState)(``),[v,y]=(0,A.useState)(``),[b,x]=(0,A.useState)(new Set),[re,S]=(0,A.useState)(new Set),[C,w]=(0,A.useState)(new Set),[ie,T]=(0,A.useState)(new Set),[ae,D]=(0,A.useState)(new Set),[O,ce]=(0,A.useState)(new Set),[ue,de]=(0,A.useState)(0),[fe,k]=(0,A.useState)(null),[ye,M]=(0,A.useState)(!1),[F,Ce]=(0,A.useState)(`all`),[I,Te]=(0,A.useState)(null),[Ee,De]=(0,A.useState)(null),[Oe,ke]=(0,A.useState)(0),L=(0,A.useRef)(new Map),R=(0,A.useRef)(null),z=(0,A.useRef)(null),je=(0,A.useRef)(``),Me=(0,A.useRef)(``),B=(0,A.useRef)(null),V=(0,A.useRef)(new Set),{history:He,pulses:Ue,activeOperationsMap:Ge,activityTotalCount:Ke,resolveActivitySymbol:H,getActivityForFile:Ye,sweepActivity:Xe}=pe(te(e=>({history:e.history,pulses:e.pulses,activeOperationsMap:e.activeOperations,activityTotalCount:e.totalCount,resolveActivitySymbol:e.resolveActivitySymbol,getActivityForFile:e.getActivityForFile,sweepActivity:e._sweep}))),U=(0,A.useMemo)(()=>[...Ge.values()].flat(),[Ge]),Ze=(0,A.useMemo)(()=>[...Ue.keys()].map(e=>He.get(e)?.[0]).filter(e=>!!e),[He,Ue]),W=(0,A.useMemo)(()=>{let e=[];for(let t of He.values())e.push(...t.slice(0,16));return e.sort((e,t)=>t.timestamp-e.timestamp).slice(0,16)},[He]),Qe=(0,A.useMemo)(()=>me([...U,...W]),[U,W]),G=(0,A.useMemo)(()=>{let e=I??U;return F===`all`?e:e.filter(e=>he(e)===F)},[U,F,I]),et=(0,A.useMemo)(()=>{let e=Ee??W;return F===`all`?e:e.filter(e=>he(e)===F)},[F,Ee,W]),K=(0,A.useDeferredValue)(G),ot=(0,A.useDeferredValue)(et),q=(0,A.useDeferredValue)(Ze),lt=(0,A.useMemo)(()=>me(G),[G]),[ut,J,dt]=oe([]),[pt,mt,ht]=E([]),{fitView:gt}=le(),Y=(0,A.useCallback)(async(e,t=!1)=>{let n=P(e),r=L.current.get(n);if(r&&!t)return Fe(L.current,n,r,48),r;let i=await fetch(be(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 Fe(L.current,n,a,48),de(e=>e+1),a},[]);(0,A.useEffect)(()=>{let e=window.setTimeout(()=>y(_),150);return()=>window.clearTimeout(e)},[_]);let vt=_e(e=>e.generation),yt=(0,A.useRef)(0),bt=(0,A.useRef)(null);(0,A.useEffect)(()=>{let t=!1,n=vt>yt.current;return n&&(yt.current=vt,L.current.clear(),de(e=>e+1),x(new Set),S(new Set),w(new Set),D(new Set)),o(!0),c(null),Y(e,n).then(e=>{if(!t){if(i(e),!n){let t=R.current;R.current=null,u(t&&e.nodes.some(e=>e.id===t)?t:null)}o(!1)}}).catch(e=>{t||(c(e instanceof Error?e.message:String(e)),i($e),o(!1))}),()=>{t=!0}},[n,Y,vt,e]);let X=(0,A.useCallback)((e,r)=>{if(R.current=r??null,P(e)===n){u(r??null),R.current=null;return}t(e)},[n]),xt=(0,A.useCallback)(async e=>{let t=P(e);if(!(L.current.has(t)||O.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,O]);(0,A.useEffect)(()=>{let e=!1,t=0;for(let n of U){if(t>=2)break;if(n.symbol||!n.toolUseId||n.filePath.startsWith(`(`))continue;let r=n.filePath;V.current.has(r)||(V.current.add(r),t+=1,Y({level:`symbols`,file:r}).then(t=>{if(e)return;let i=Ve(n,t.nodes);i&&H(n.toolUseId,r,{id:i.id,name:i.label,...i.symbolKind?{kind:i.symbolKind}:{},...i.line?{line:i.line}:{}})}).catch(()=>void 0).finally(()=>{V.current.delete(r)}))}return()=>{e=!0}},[U,Y,H]);let Z=(0,A.useMemo)(()=>({nodes:r.nodes,edges:h===`all`?r.edges:r.edges.filter(e=>e.refType===h)}),[r,h]),Q=r.nodes.find(e=>e.id===l),$=(0,A.useMemo)(()=>Ae(Z,l,p),[p,Z,l]),St=(0,A.useMemo)(()=>l?Se(Z,l):new Set,[Z,l]),{incomingCounts:Ct,outgoingCounts:wt}=(0,A.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]),Tt=d===`orbit`?l??void 0:void 0,Et=(0,A.useMemo)(()=>we($,d,Tt),[$,d,Tt]),Dt=(0,A.useMemo)(()=>[n,d,d===`orbit`?l??``:``,Pe($)].join(``),[$,n,d,l]),Ot=(0,A.useCallback)(e=>{u(e.id),T(new Set)},[]),kt=(0,A.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]),At=(0,A.useMemo)(()=>[Be(K),Be(q),Be(ot)].join(``),[K,q,ot]),jt=(0,A.useMemo)(()=>{let e=new Set;for(let t of G)e.add(N(t.filePath));return e},[G]),Mt=(0,A.useMemo)(()=>{let e=new Set;for(let t of G)t.symbol?.id&&e.add(t.symbol.id);return e},[G]);(0,A.useEffect)(()=>{let e=()=>{let e=Et.map(({node:e})=>e),t=ze(e,K),n=ze(e,q),r=new Set(t.keys()),i=Et.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===l,dimmed:!!l&&!St.has(e.id),incoming:Ct.get(e.id)??0,outgoing:wt.get(e.id)??0,isActive:!!a,...a?{activityType:a.type}:{},activeOperations:i,onSelect:Ot,onOpen:kt,onShowHistory:k}}});J(e=>rt(e,i));let a=6,o=$.edges.map((e,t)=>{let n=!!l&&(e.source===l||e.target===l),i=r.has(e.source)||r.has(e.target),o=i&&(n||a>0);o&&--a;let s=We[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:se.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:l?n?.88:.08:.52},labelStyle:{fontSize:ge(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}:${l?n?`focused`:`dimmed`:`idle`}:${i?`live`:`still`}:${o?`anim`:`still`}:${c}`}}}),s=new Map,c=new Set(K.map(he));for(let e of[...ot].sort((e,t)=>e.timestamp-t.timestamp)){let t=he(e),n=s.get(t);n?n.push(e):s.set(t,[e])}let u=[...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 u){let r=t.slice(-7).map(e=>({activity:e,node:$.nodes.find(t=>Re(e,t))})).filter(e=>!!e.node).filter((e,t,n)=>t===0||e.node.id!==n[t-1]?.node.id),i=Je(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?`${qe(s.activity.agentName??s.activity.agent??`agent`)} TRAIL`:void 0,markerEnd:{type:se.ArrowClosed,color:i,width:13,height:13},style:{stroke:i,strokeWidth:2.5,strokeDasharray:`7 5`,opacity:.9},labelStyle:{fontSize:ge(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`}`}})}}ke(d.length),mt(e=>it(e,[...o,...d]))},t=Dt,n=Me.current!==t;Me.current=t,B.current!==null&&(window.clearTimeout(B.current),B.current=null),n?e():B.current=window.setTimeout(()=>{B.current=null,e()},120);let r;return je.current!==Dt&&(r=window.setTimeout(()=>{je.current=Dt;let e=$.nodes.length>48?0:240;gt({padding:.2,duration:e,maxZoom:1.25})},20)),()=>{B.current!==null&&(window.clearTimeout(B.current),B.current=null),r!==void 0&&window.clearTimeout(r)}},[At,$,l,K,ot,q,Dt,St,gt,kt,Ot,Ct,wt,Et,mt,J]),(0,A.useEffect)(()=>{let e=window.setInterval(()=>{Xe()},2e3);return()=>window.clearInterval(e)},[Xe]);let Nt=L.current.get(`packages`)??(e.level===`packages`?r:$e),Pt=(0,A.useCallback)(e=>L.current.get(P({level:`files`,package:e})),[ue]),Ft=(0,A.useCallback)(e=>L.current.get(P({level:`symbols`,file:e})),[ue]),It=(0,A.useCallback)(e=>{let t=e.filePath,n=Le(e.filePath),r=`file:${e.filePath}`;for(let i of L.current.values()){let a=i.nodes.find(t=>t.kind===`file`&&!t.external&&Ie(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,A.useEffect)(()=>{if(!ye||I)return;let e=[...G].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`}`;z.current!==t&&(z.current=t,It(e))},[G,ye,It,I]);let Lt=(0,A.useCallback)(()=>{if(I){Te(null),De(null);return}Te([...U]),De([...W])},[U,I,W]),Rt=(0,A.useCallback)(e=>{let t=e.package??e.label,n=!b.has(t);x(e=>{let r=new Set(e);return n?r.add(t):r.delete(t),r}),n&&xt({level:`files`,package:t}).then(()=>{let e=L.current.get(P({level:`files`,package:t})),n=e?Ne(e.nodes):void 0;n?.directories.length===1&&n.directories[0]&&S(e=>new Set(e).add(`${t}:${n.directories[0].path}`))}).catch(()=>void 0)},[xt,b]),zt=(0,A.useCallback)(e=>{if(!e.file)return;let t=!C.has(e.file);w(n=>{let r=new Set(n);return t?r.add(e.file):r.delete(e.file),r}),t&&xt({level:`symbols`,file:e.file,package:e.package}).catch(()=>void 0)},[xt,C]),Bt=(0,A.useCallback)(e=>{S(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),Vt=(0,A.useCallback)(e=>{D(t=>new Set(t).add(e))},[]),Ht=(0,A.useCallback)(e=>{X({level:`files`,package:e.package??`(root)`},e.id)},[X]),Ut=(0,A.useCallback)(e=>{e.file&&X({level:`symbols`,file:e.file,package:e.package},e.id)},[X]),Wt=(0,A.useMemo)(()=>{let e=v.trim().toLocaleLowerCase();if(!e)return[];let t=new Map;for(let n of L.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)},[v,ue]),Gt=Wt.length>40,Kt=ne({count:Wt.length,getScrollElement:()=>bt.current,estimateSize:()=>40,overscan:8,enabled:Gt}),qt=(0,A.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:Jt,outgoing:Yt}=(0,A.useMemo)(()=>({incoming:Q?xe(Z,Q.id,`incoming`):[],outgoing:Q?xe(Z,Q.id,`outgoing`):[]}),[Z,Q]),{edgeWeight:Xt,connectedNodeCount:Zt}=(0,A.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]),Qt=Q?G.filter(e=>Re(e,Q)):[],$t=fe?Ye(fe):[];return(0,j.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,children:[(0,j.jsx)(at,{scope:e,graph:r,agentPresences:lt,edgeWeight:Xt,connectedNodeCount:Zt,navigate:X}),(0,j.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,j.jsx)(_t,{rootGraph:Nt,search:v,searchInput:_,searchResults:Wt,virtualizeSearch:Gt,searchVirtualizer:Kt,treeScrollRef:bt,selectedId:l,expandedPackages:b,expandedDirectories:re,expandedFiles:C,loadingBranches:O,activeFileNorms:jt,activeSymbolIds:Mt,revealAllKeys:ae,packageGraph:Pt,graphForFile:Ft,navigate:X,togglePackage:Rt,toggleDirectory:Bt,toggleFile:zt,revealAllTree:Vt,selectFileFromTree:Ht,selectSymbolFromTree:Ut,selectSearchResult:qt,handleOpenNode:kt,onSearchInputChange:ee,onSearchChange:y}),(0,j.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,j.jsx)(nt,{layout:d,canvasMode:p,edgeFilter:h,canvasNodeCount:$.nodes.length,graphNodeCount:r.nodes.length,onLayoutChange:f,onCanvasModeChange:m,onEdgeFilterChange:g}),(0,j.jsx)(st,{presences:lt,onLocate:It}),(0,j.jsx)(ct,{paused:I!==null,followLive:ye,agentFilter:F,agents:Qe,onTogglePaused:Lt,onToggleFollow:()=>{z.current=null,M(e=>!e)},onAgentFilter:e=>{z.current=null,Ce(e)}}),(0,j.jsx)(tt,{loading:a,error:s,graph:r,canvasNodeCount:$.nodes.length,flowNodes:ut,flowEdges:pt,onNodesChange:dt,onEdgesChange:ht,agentTrailCount:Oe})]}),(0,j.jsx)(ft,{selectedNode:Q,incoming:Jt,outgoing:Yt,filteredGraph:Z,expandedRelations:ie,activeOperations:G,recentActivities:et,activityTotalCount:Ke,selectedActivities:Qt,onClearSelection:()=>u(null),onOpenNode:kt,onOpenActivity:k,onLocateActivity:It,onToggleRelation:e=>T(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),onSelectNode:Ot})]}),fe&&(0,j.jsx)(ve,{historyFile:fe,fileHistory:$t,onClose:()=>k(null)})]})}function yt(){return(0,j.jsx)(ae,{children:(0,j.jsx)(vt,{})})}export{yt as CodeMap};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-wiHys0m2.js";import{Bn as r,Dn as i,En as a,Er as o,Fn as s,Ht as c,Mt as l,Ta as u,Ti as d,Xa as f,ba as p,ha as m,jr as h,ri as g,rn as _,so as v,ua as y,wo as b,xo as x,yr as S}from"./vendor-V3ydTHqN.js";import"./i18n-CbyUyl6G.js";import{t as C}from"./utils-CKsqCaP8.js";import{o as w}from"./view-navigation-DHtNFXIl.js";import{n as T}from"./ui-store-DC3mkswy.js";import{t as E}from"./mailbox-store-C49LeBj8.js";import{o as D,x as O}from"./index-3TGBKeBP.js";import{t as k}from"./empty-state-5YP1rmE6.js";var A=e(t(),1),j=n(),M={note:d,ask:p,assign:a,steer:s,btw:f,broadcast:a,status:m,result:u,review:i},N={high:`border-destructive/25 bg-destructive/10 text-destructive`,normal:`border-border bg-muted text-muted-foreground`,low:`border-primary/20 bg-primary/10 text-primary`};function P(e){return new Date(e).toLocaleString()}function F(e){let t=new Date(e),n=Date.now()-t.getTime();return n<6e4?b.t(`common:time.justNow`):n<36e5?b.t(`common:time.minutesAgo`,{count:Math.round(n/6e4)}):n<864e5?b.t(`common:time.hoursAgo`,{count:Math.round(n/36e5)}):n<6048e5?b.t(`common:time.daysAgo`,{count:Math.round(n/864e5)}):t.toLocaleDateString()}function I({readBy:e}){let{t}=x(),n=Object.entries(e);return n.length===0?null:(0,j.jsxs)(`div`,{className:`space-y-1`,children:[(0,j.jsx)(`div`,{className:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wide`,children:t(`activity:mailbox.readBy`)}),(0,j.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:n.map(([e,t])=>(0,j.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] bg-success/10 text-success`,title:P(t),children:[(0,j.jsx)(u,{className:`h-2.5 w-2.5`}),e]},e))})]})}function L({className:e}){let{t}=x(),n=T(e=>e.selectedMailMessage),i=T(e=>e.setSelectedMailMessage);(0,A.useEffect)(()=>()=>{i(null)},[i]);function a(){i(null),w(`chat`)}if(!n)return(0,j.jsx)(k,{icon:(0,j.jsx)(o,{className:`h-6 w-6`}),title:t(`activity:mailbox.emptyDetail`),description:t(`activity:mailbox.emptyDetailHint`)});let s=M[n.type]??S,d=t(`activity:mailbox.type.${n.type}`,{defaultValue:n.type}),f=N[n.priority]??N.normal,p=n.scope?{scope:n.scope,recipientSessionId:n.recipientSessionId}:E(n.to),m=n.to===`*`||n.to===`all`?t(`activity:mailbox.everyone`):n.to,b=p.scope===`session`?t(`activity:mailbox.sessionScope`,{sid:p.recipientSessionId??``}):p.scope===`project`?t(`activity:mailbox.projectScope`):t(`activity:mailbox.directScope`);return(0,j.jsx)(`div`,{className:C(`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-[hsl(var(--surface-2)/0.45)] p-3`,e),children:(0,j.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-xl border border-border/70 bg-card/75 shadow-sm`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-3 border-b border-border/70 px-3 py-3 sm:px-4 shrink-0`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:a,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-border/70 bg-background/60 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,title:t(`activity:mailbox.backToChat`),children:(0,j.jsx)(v,{className:`h-4 w-4`})}),(0,j.jsx)(`div`,{className:C(`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg`,n.completed?`bg-success/10`:`bg-primary/10`),children:(0,j.jsx)(s,{className:C(`h-4 w-4`,n.completed?`text-success`:`text-primary`)})}),(0,j.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,j.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,j.jsx)(`h2`,{className:`text-sm font-semibold text-foreground truncate`,children:n.subject}),n.completed&&(0,j.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1 rounded-md border border-success/25 bg-success/8 px-1.5 py-0.5 text-[10px] font-semibold text-success`,children:[(0,j.jsx)(u,{className:`h-3 w-3`}),t(`activity:mailbox.completed`)]}),(0,j.jsx)(`span`,{className:C(`rounded-md border px-1.5 py-0.5 text-[10px] font-semibold uppercase`,f),children:n.priority||`normal`}),n.audience===`leaders`&&(0,j.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border border-primary/25 bg-primary/10 px-1.5 py-0.5 text-[10px] font-semibold text-primary`,children:[(0,j.jsx)(h,{className:`h-2.5 w-2.5`}),` `,t(`activity:mailbox.audienceLeaders`)]})]}),(0,j.jsxs)(`div`,{className:`mt-1 flex min-w-0 flex-wrap items-center gap-2 text-[11px] text-muted-foreground`,children:[(0,j.jsx)(`span`,{className:`min-w-0 truncate font-medium text-foreground/80`,children:n.from}),(0,j.jsx)(`span`,{children:`→`}),(0,j.jsx)(`span`,{className:`min-w-0 truncate`,children:m}),p.scope===`session`&&(0,j.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-semibold bg-warning/12 text-warning`,title:t(`activity:mailbox.sessionScopeTitle`,{sid:p.recipientSessionId??``}),children:[(0,j.jsx)(h,{className:`h-2.5 w-2.5`}),t(`activity:mailbox.sessionLabel`)]}),p.scope===`project`&&(0,j.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-semibold bg-primary/12 text-primary`,children:[(0,j.jsx)(g,{className:`h-2.5 w-2.5`}),t(`activity:mailbox.projectLabel`)]}),(0,j.jsx)(`span`,{className:`opacity-40`,children:`•`}),(0,j.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,j.jsx)(y,{className:`h-3 w-3`}),F(n.timestamp)]})]})]}),(0,j.jsx)(`button`,{type:`button`,onClick:a,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,title:t(`activity:mailbox.closeTitle`),children:(0,j.jsx)(l,{className:`h-4 w-4`})})]}),(0,j.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,j.jsx)(`div`,{className:`mx-auto w-full max-w-4xl px-4 py-5`,children:(0,j.jsx)(`div`,{className:`markdown-content prose prose-sm dark:prose-invert max-w-none text-sm leading-relaxed`,children:(0,j.jsx)(D,{components:O,children:n.body})})})}),(0,j.jsxs)(`div`,{className:`border-t border-border/70 bg-muted/20 px-4 py-3 shrink-0`,children:[(0,j.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-x-6 gap-y-2 text-xs`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground`,children:[(0,j.jsx)(_,{className:`h-3 w-3 shrink-0`}),(0,j.jsx)(`span`,{children:d})]}),(0,j.jsx)(`div`,{className:`flex items-center gap-1.5`,children:(0,j.jsx)(`span`,{className:C(`rounded border px-1.5 py-0.5 text-[10px] font-semibold uppercase`,f),children:n.priority||`normal`})}),(0,j.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground`,children:[(0,j.jsx)(c,{className:`h-3 w-3 shrink-0`}),(0,j.jsx)(`span`,{className:`truncate`,title:n.from,children:n.from})]}),(0,j.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground`,children:[p.scope===`session`?(0,j.jsx)(h,{className:`h-3 w-3 shrink-0 text-warning`}):(0,j.jsx)(g,{className:`h-3 w-3 shrink-0 text-primary`}),(0,j.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide shrink-0`,children:t(`activity:mailbox.scopeLabel`)}),(0,j.jsx)(`span`,{className:`truncate`,children:b})]}),(0,j.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground`,children:[(0,j.jsx)(y,{className:`h-3 w-3 shrink-0`}),(0,j.jsx)(`span`,{children:P(n.timestamp)})]}),n.replyTo&&(0,j.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground col-span-2`,children:[(0,j.jsx)(r,{className:`h-3 w-3 shrink-0`}),(0,j.jsx)(`span`,{className:`truncate`,children:t(`activity:mailbox.replyTo`,{id:n.replyTo})})]}),n.completed&&n.completedBy&&(0,j.jsxs)(`div`,{className:`flex items-center gap-1.5 text-muted-foreground col-span-2`,children:[(0,j.jsx)(u,{className:`h-3 w-3 shrink-0 text-success`}),(0,j.jsx)(`span`,{children:n.completedAt?t(`activity:mailbox.completedByAt`,{name:n.completedBy,time:P(n.completedAt)}):t(`activity:mailbox.completedBy`,{name:n.completedBy})})]}),n.outcome&&(0,j.jsxs)(`div`,{className:`flex items-start gap-1.5 text-muted-foreground col-span-2 sm:col-span-4`,children:[(0,j.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide shrink-0 mt-0.5`,children:t(`activity:mailbox.outcome`)}),(0,j.jsx)(`span`,{children:n.outcome})]}),n.taskContext&&(0,j.jsxs)(`div`,{className:`flex items-start gap-1.5 text-muted-foreground col-span-2 sm:col-span-4`,children:[(0,j.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide shrink-0 mt-0.5`,children:t(`activity:mailbox.task`)}),(0,j.jsx)(`span`,{children:n.taskContext})]})]}),Object.keys(n.readBy??{}).length>0&&(0,j.jsx)(`div`,{className:`mt-3 pt-3 border-t border-border/50`,children:(0,j.jsx)(I,{readBy:n.readBy})})]})]})})}export{L as MailboxDetailView};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./config-store-BAUadwHd.js";import{i as n,t as r}from"./react-core-wiHys0m2.js";import{Dn as i,Ha as a,Ii as o,Mn as s,Mr as c,Mt as l,Na as u,Pa as d,Qt as f,Va as p,Vi as m,Vn as h,Ya as g,Yi as ee,Yt as _,Zn as v,ci as y,ei as b,fa as x,fn as S,ja as C,ln as w,mi as T,n as E,nr as D,po as te,qn as O,rn as k,so as A,tr as ne,ur as re,wa as ie,xo as j,yn as ae,zr as oe}from"./vendor-V3ydTHqN.js";import"./i18n-CbyUyl6G.js";import{a as M,h as N,n as se,r as P,t as ce,u as le}from"./xyflow-BqDBClm9.js";import{t as F}from"./utils-CKsqCaP8.js";import{n as ue}from"./ui-store-DC3mkswy.js";import"./stores-RkHrTaRO.js";import{S as I}from"./fonts-DRGbd-AM.js";import{a as de,i as fe,n as L,o as pe,r as R,t as me}from"./dialog-C7EIBM_2.js";import{t as z}from"./button-9ewV4TF3.js";import{t as B}from"./input-ag1CrUiS.js";import{L as he,y as V}from"./index-3TGBKeBP.js";import{t as ge}from"./roster-ws-z8DKquaN.js";import{_ as _e,a as ve,b as ye,c as H,d as be,f as xe,g as Se,h as Ce,i as we,l as Te,m as Ee,n as De,o as Oe,p as ke,r as Ae,s as U,t as je,u as Me,v as Ne,y as W}from"./shared-BFJvAYzX.js";import{t as Pe}from"./MemoryDrawer-CuFQypU-.js";var G=r();function Fe({busyAction:e,deletingId:t,memory:n,onCancel:r,onConfirm:i,onOpenChange:a}){let{t:o}=j();return(0,G.jsx)(me,{open:!!t,onOpenChange:a,children:(0,G.jsxs)(L,{className:`max-w-md`,children:[(0,G.jsxs)(de,{children:[(0,G.jsx)(`span`,{className:`mb-2 flex size-10 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,G.jsx)(f,{className:`size-4`})}),(0,G.jsx)(pe,{children:o(`activity:memoryManager.deleteTitle`)}),(0,G.jsx)(R,{className:`leading-6`,children:o(`activity:deleteMemoryDialog.sageWillMarkTheRecordDeleted`)})]}),(0,G.jsx)(`div`,{className:`border border-border/70 bg-background/45 p-3 text-xs text-muted-foreground`,children:Se(n?.text??``,180)}),(0,G.jsxs)(fe,{children:[(0,G.jsx)(z,{variant:`outline`,onClick:r,disabled:e===`delete`,children:o(`common:action.cancel`)}),(0,G.jsxs)(z,{variant:`destructive`,onClick:i,disabled:e===`delete`,children:[e===`delete`?(0,G.jsx)(c,{className:`size-4 animate-spin`}):(0,G.jsx)(f,{className:`size-4`}),o(e===`delete`?`activity:memoryManager.deletingLabel`:`activity:memoryManager.actionDeleteMemory`)]})]})]})})}var K=e(n(),1),Ie=212,Le=188;function Re(e){return e.length>14?`${e.slice(0,11)}…`:e}function ze(e,t=58){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function q(e){return e.type===`symbol`?[e.path,e.symbol?`#${e.symbol}`:``].filter(Boolean).join(``):e.path??e.command??e.symbol??e.role??e.type}function J(e){return e===`active`?`border-success/45 bg-success/10 text-success`:e===`stale`?`border-warning/45 bg-warning/10 text-warning`:e===`contradicted`?`border-destructive/45 bg-destructive/10 text-destructive`:e===`superseded`?`border-warning/35 bg-warning/5 text-warning`:`border-border bg-muted/55 text-muted-foreground`}function Be({data:e}){let{entry:t,center:n}=e;return(0,G.jsxs)(`div`,{className:n?`border border-primary/70 bg-card px-3 py-2.5 text-card-foreground shadow-[0_0_0_1px_hsl(var(--primary)/0.2),0_0_24px_hsl(var(--primary)/0.12)]`:`border border-border/80 bg-card/95 px-3 py-2.5 text-card-foreground shadow-lg`,style:{width:Ie},title:t.text,children:[(0,G.jsx)(M,{type:`target`,position:N.Top,className:`!border-background !bg-muted-foreground`}),(0,G.jsx)(M,{type:`source`,position:N.Bottom,className:`!border-background !bg-primary`}),(0,G.jsx)(M,{type:`source`,position:N.Right,className:`!border-background !bg-primary`}),(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`border px-1.5 py-0.5 text-[9px] font-bold uppercase ${J(t.status)}`,children:t.status}),(0,G.jsx)(`span`,{className:`ml-auto truncate font-mono text-[9px] text-muted-foreground`,children:Re(t.id)})]}),(0,G.jsx)(`p`,{className:`mt-2 line-clamp-2 text-[11px] leading-4 text-foreground/90`,children:ze(t.text)}),(0,G.jsx)(`p`,{className:`mt-1 font-mono text-[9px] uppercase text-muted-foreground`,children:t.kind})]})}function Y({data:e}){return(0,G.jsxs)(`div`,{className:`border border-info/40 bg-info/8 px-2.5 py-2 text-card-foreground shadow-lg`,style:{width:Le},title:e.label,children:[(0,G.jsx)(M,{type:`target`,position:N.Left,className:`!border-background !bg-info`}),(0,G.jsx)(`p`,{className:`font-mono text-[9px] font-bold uppercase text-info`,children:e.anchor.type}),(0,G.jsx)(`p`,{className:`mt-1 truncate font-mono text-[10px] text-foreground/85`,children:e.label})]})}var Ve={memoryNode:Be,anchorNode:Y};function X(e,t){return{id:e,revision:0,scope:`project`,kind:`fact`,status:`deleted`,text:t(`activity:memoryManager.memoryUnavailable`),importance:0,confidence:0,freshness:0,tags:[],anchors:[],createdAt:``,updatedAt:``}}function He({nodes:e,edges:t,className:n}){return(0,G.jsx)(`div`,{className:F(`w-full`,n),children:(0,G.jsxs)(le,{nodes:e,edges:t,nodeTypes:Ve,fitView:!0,fitViewOptions:{padding:.24,maxZoom:1.05},minZoom:.4,maxZoom:1.5,nodesConnectable:!1,elementsSelectable:!1,panOnScroll:!1,zoomOnScroll:!1,proOptions:{hideAttribution:!0},children:[(0,G.jsx)(ce,{variant:se.Dots,gap:18,size:1,color:`hsl(var(--muted-foreground) / 0.18)`}),(0,G.jsx)(P,{showInteractive:!1,className:`!border-border !bg-card !shadow-lg`})]})})}function Ue({centerMemory:e,allMemories:t,graphEdges:n,loading:r=!1,error:i=null}){let{t:a}=j(),[o,s]=(0,K.useState)(!1),c=`mem:${e.id}`,l=(0,K.useMemo)(()=>n.filter(e=>e.from===c&&e.to.startsWith(`mem:`)||e.to===c&&e.from.startsWith(`mem:`)).slice(0,24),[c,n]),{nodes:u,edges:d}=(0,K.useMemo)(()=>{let n=[],r=[],i=new Map(t.map(e=>[e.id,e]));n.push({id:e.id,type:`memoryNode`,position:{x:320-Ie/2,y:120},data:{entry:e,center:!0}});let o=[...e.supersededBy?[{id:e.supersededBy,relation:`superseded by`}]:[],...(e.supersedes??[]).map(e=>({id:e,relation:`supersedes`})),...(e.contradicts??[]).map(e=>({id:e,relation:`contradicts`}))];for(let e of l){let t=(e.from===c?e.to:e.from).slice(4);o.some(n=>n.id===t&&n.relation===e.relation)||o.push({id:t,relation:e.relation,weight:e.weight,evidence:e.evidence})}let s=320-(o.length-1)*220/2;return o.forEach((t,o)=>{let c=i.get(t.id)??X(t.id,a),l=t.relation===`superseded by`,u=l?0:280+Math.floor(o/3)*130,d=l?320-Ie/2:s+o*220-Ie/2;n.push({id:`memory:${t.id}:${o}`,type:`memoryNode`,position:{x:d,y:u},data:{entry:c,center:!1}});let f=t.relation===`contradicts`,p=l?`memory:${t.id}:${o}`:e.id,m=l?e.id:`memory:${t.id}:${o}`;r.push({id:`relation:${t.relation}:${t.id}:${o}`,source:p,target:m,type:`smoothstep`,animated:!f,label:t.weight===void 0?t.relation:`${t.relation} ${t.weight.toFixed(2)}`,data:{evidence:t.evidence??[]},style:{stroke:f?`hsl(var(--destructive))`:`hsl(var(--primary))`,strokeWidth:1.7,...f?{strokeDasharray:`5 4`}:{}},labelStyle:{fill:f?`hsl(var(--destructive))`:`hsl(var(--muted-foreground))`,fontSize:I(9),fontWeight:700},labelBgStyle:{fill:`hsl(var(--card))`,fillOpacity:.9}})}),e.anchors.forEach((t,i)=>{let a=`anchor:${i}`;n.push({id:a,type:`anchorNode`,position:{x:540,y:120+(i-(e.anchors.length-1)/2)*66},data:{anchor:t,label:q(t)}}),r.push({id:`anchor-edge:${i}`,source:e.id,target:a,type:`smoothstep`,style:{stroke:`hsl(var(--info))`,strokeWidth:1.3}})}),{nodes:n,edges:r}},[t,e,c,l]);return u.length<=1&&!r&&!i?null:(0,G.jsxs)(`section`,{className:`overflow-hidden border border-border/75 bg-background/35`,"aria-label":a(`activity:memoryManager.graphAria`),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/70 bg-card/55 px-3 py-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`p`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:a(`activity:memoryManager.graphHeading`)}),u.length>1&&(0,G.jsxs)(z,{variant:`ghost`,size:`sm`,onClick:()=>s(!0),className:`h-6 gap-1 px-2 text-[9px] font-bold uppercase tracking-[0.12em]`,"aria-label":a(`activity:memoryManager.graphFullscreenAria`),children:[(0,G.jsx)(m,{className:`size-3`}),a(`activity:memoryManager.graphOpenFullscreen`)]})]}),(0,G.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:r?a(`activity:memoryManager.loadingGraph`):a(`activity:memoryManager.graphStats`,{nodes:u.length,edges:d.length})})]}),i&&(0,G.jsx)(`p`,{className:`border-b border-destructive/25 bg-destructive/5 px-3 py-2 text-[10px] text-destructive`,children:i}),u.length>1&&(0,G.jsx)(He,{nodes:u,edges:d,className:`h-[320px]`}),l.some(e=>e.evidence?.length)&&(0,G.jsx)(`div`,{className:`grid gap-1 border-t border-border/70 bg-card/35 px-3 py-2`,children:l.filter(e=>e.evidence?.length).slice(0,12).map(e=>{let t=(e.from===c?e.to:e.from).slice(4);return(0,G.jsxs)(`p`,{className:`truncate font-mono text-[9px] text-muted-foreground`,children:[(0,G.jsx)(`span`,{className:`text-info`,children:e.relation}),` `,Re(t),` · why:`,` `,e.evidence?.join(`, `)]},e.id)})}),o&&(0,G.jsx)(me,{open:o,onOpenChange:s,children:(0,G.jsxs)(L,{className:`flex max-h-[90dvh] max-w-[90vw] flex-col p-0`,showCloseButton:!1,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/70 bg-card/55 px-4 py-3`,children:[(0,G.jsx)(`p`,{className:`text-[10px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:a(`activity:memoryManager.graphHeadingFull`,{id:e.id})}),(0,G.jsx)(z,{variant:`ghost`,size:`sm`,onClick:()=>s(!1),className:`h-7 gap-1 px-2 text-[10px]`,children:a(`common:action.close`)})]}),(0,G.jsx)(`div`,{className:`min-h-0 flex-1 px-4 pb-4`,children:(0,G.jsx)(He,{nodes:u,edges:d,className:`h-[65vh]`})})]})})]})}function We({memory:e,allMemories:t,relatedMemories:n,graphEdges:r,graphLoading:i,graphError:o,onClose:s,onOpenMemory:c,onEdit:l,onDelete:u,onTagSelect:d,onNotice:p}){let{t:m}=j();return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-b border-border/70 bg-card/65 px-4 py-3 backdrop-blur-xl`,children:[(0,G.jsx)(z,{variant:`ghost`,size:`icon`,className:`md:hidden`,onClick:s,"aria-label":m(`activity:memoryManager.backToList`),children:(0,G.jsx)(A,{className:`size-4`})}),(0,G.jsx)(`span`,{className:F(`text-[10px] font-bold uppercase tracking-[0.14em]`,Ce(e.kind)),children:Ae[e.kind]??e.kind}),(0,G.jsx)(Te,{status:e.status}),(0,G.jsx)(`span`,{className:`border border-border/70 px-2 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:e.scope}),e.audience&&(0,G.jsxs)(`span`,{className:`flex items-center gap-1 border border-primary/30 bg-primary/10 px-2 py-0.5 font-mono text-[9px] text-primary`,title:ke(e.audience),children:[(0,G.jsx)(a,{className:`size-3`}),ke(e.audience)]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-1.5`,children:[(0,G.jsx)(z,{variant:`ghost`,size:`icon`,"aria-label":m(`activity:memoryManager.copyId`),title:m(`activity:memoryManager.copyId`),onClick:()=>{navigator.clipboard?.writeText(e.id),p(m(`activity:memoryManager.copiedNotice`))},children:(0,G.jsx)(x,{className:`size-4`})}),(0,G.jsxs)(z,{variant:`outline`,size:`sm`,onClick:()=>l(e.id),disabled:e.status===`deleted`,children:[(0,G.jsx)(v,{className:`size-3.5`}),` `,m(`common:action.edit`)]}),(0,G.jsxs)(z,{variant:`destructive`,size:`sm`,onClick:u,disabled:e.status===`deleted`,children:[(0,G.jsx)(f,{className:`size-3.5`}),` `,m(`common:action.delete`)]})]})]}),(0,G.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-4 md:p-5`,children:(0,G.jsxs)(`div`,{className:`mx-auto max-w-5xl space-y-5`,children:[(0,G.jsx)(Z,{memory:e}),(0,G.jsx)(Ge,{memory:e}),e.tags.length>0&&(0,G.jsx)(Q,{tags:e.tags,onTagSelect:d}),e.anchors.length>0&&(0,G.jsx)(Ke,{anchors:e.anchors}),n.length>0&&(0,G.jsx)(qe,{relatedMemories:n,allMemories:t,onOpenMemory:c}),(0,G.jsx)(Ue,{centerMemory:e,allMemories:t,graphEdges:r,loading:i,error:o}),(0,G.jsx)($,{memory:e}),e.status===`deleted`&&(0,G.jsx)(Je,{contextPolicy:e.contextPolicy})]})})]})}function Z({memory:e}){let{t}=j();return(0,G.jsxs)(`div`,{className:`relative overflow-hidden border border-border/75 bg-card/55 p-5 shadow-[inset_0_1px_0_hsl(var(--foreground)/0.04)]`,children:[(0,G.jsx)(`div`,{className:`pointer-events-none absolute -right-10 -top-10 size-36 bg-[radial-gradient(circle,hsl(var(--info)/0.13),transparent_68%)]`}),(0,G.jsx)(`p`,{className:`relative whitespace-pre-wrap text-sm leading-7 text-foreground md:text-[15px]`,children:e.text}),e.summary&&(0,G.jsx)(`p`,{className:`relative mt-4 border-l-2 border-info/50 pl-3 text-xs italic leading-5 text-muted-foreground`,children:e.summary}),(0,G.jsxs)(`div`,{className:`relative mt-5 flex flex-wrap items-center gap-2 border-t border-border/60 pt-3`,children:[(0,G.jsx)(`code`,{className:`min-w-0 break-all font-mono text-[10px] text-muted-foreground`,children:e.id}),(0,G.jsx)(`span`,{className:`ml-auto font-mono text-[10px] text-muted-foreground`,children:t(`activity:memoryManager.revisionSuffix`,{n:e.revision})})]})]})}function Ge({memory:e}){let{t}=j(),n=[[t(`activity:memoryManager.editorImportance`),e.importance,ae],[t(`activity:memoryManager.editorConfidence`),e.confidence,ie],[t(`activity:memoryManager.editorFreshness`),e.freshness,h]];return(0,G.jsx)(`div`,{className:`grid gap-px bg-border/60 sm:grid-cols-3`,children:n.map(([e,t,n])=>(0,G.jsxs)(`div`,{className:`bg-card/60 p-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(n,{className:`size-3.5 text-info`}),(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.13em] text-muted-foreground`,children:e}),(0,G.jsxs)(`span`,{className:`ml-auto font-mono text-xs font-bold tabular-nums`,children:[Math.round(t*100),`%`]})]}),(0,G.jsx)(`div`,{className:`mt-2 h-1 bg-muted`,children:(0,G.jsx)(`div`,{className:`h-full bg-info shadow-[0_0_8px_hsl(var(--info)/0.45)]`,style:{width:`${Math.round(t*100)}%`}})})]},e))})}function Q({tags:e,onTagSelect:t}){let{t:n}=j();return(0,G.jsxs)(`section`,{children:[(0,G.jsxs)(`h3`,{className:`mb-2 flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,G.jsx)(k,{className:`size-3.5 text-info`}),` `,n(`activity:memoryManager.tagsLabel`)]}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>t(e),className:`border border-info/25 bg-info/5 px-2 py-1 font-mono text-[10px] text-info hover:border-info/55 hover:bg-info/10`,children:[`#`,e]},e))})]})}function Ke({anchors:e}){let{t}=j();return(0,G.jsxs)(`section`,{className:`border border-border/75 bg-card/40`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/65 px-3 py-2.5`,children:[(0,G.jsxs)(`h3`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,G.jsx)(o,{className:`size-3.5 text-info`}),` `,t(`activity:memoryManager.editorAnchors`)]}),(0,G.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e.length})]}),(0,G.jsx)(`ul`,{className:`divide-y divide-border/55`,children:e.map((e,t)=>(0,G.jsxs)(`li`,{className:`flex min-w-0 items-start gap-3 px-3 py-2.5`,children:[(0,G.jsx)(`span`,{className:`mt-0.5 flex size-7 shrink-0 items-center justify-center border border-info/25 bg-info/5 text-info`,children:e.type===`command`?(0,G.jsx)(w,{className:`size-3.5`}):(0,G.jsx)(o,{className:`size-3.5`})}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-[9px] font-bold uppercase text-muted-foreground`,children:e.type}),(0,G.jsxs)(`p`,{className:`mt-0.5 break-all font-mono text-[10px] leading-4 text-foreground/85`,children:[e.path??e.command??e.role??`—`,e.symbol?`#${e.symbol}`:``]})]}),(e.lineStart||e.lineEnd)&&(0,G.jsxs)(`span`,{className:`ml-auto shrink-0 font-mono text-[9px] text-muted-foreground`,children:[`L`,e.lineStart??`?`,`–`,e.lineEnd??`?`]})]},`${e.type}:${e.path??e.command??e.symbol??e.role}:${t}`))})]})}function qe({relatedMemories:e,allMemories:t,onOpenMemory:n}){let{t:r}=j();return(0,G.jsxs)(`section`,{className:`border border-border/75 bg-card/40`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/65 px-3 py-2.5`,children:[(0,G.jsxs)(`h3`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,G.jsx)(y,{className:`size-3.5 text-info`}),` `,r(`activity:memoryManager.memoryRelationships`)]}),(0,G.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e.length})]}),(0,G.jsx)(`ul`,{className:`divide-y divide-border/55`,children:e.map(e=>{let i=t.find(t=>t.id===e.id);return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,disabled:!i,onClick:()=>i&&n(i.id),className:`group flex w-full min-w-0 items-center gap-3 px-3 py-2.5 text-left hover:bg-info/5 disabled:cursor-not-allowed disabled:opacity-55`,children:[(0,G.jsx)(`span`,{className:F(`w-24 shrink-0 text-[9px] font-bold uppercase`,e.relation===`Contradicts`?`text-destructive`:`text-info`),children:e.relation}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs`,children:i?Se(i.text,95):r(`activity:memoryManager.referencedUnavailable`)}),(0,G.jsx)(`code`,{className:`hidden max-w-32 truncate font-mono text-[9px] text-muted-foreground sm:block`,children:e.id}),i&&(0,G.jsx)(C,{className:`size-3.5 shrink-0 text-muted-foreground group-hover:text-info`})]})},`${e.relation}:${e.id}`)})})]})}function $({memory:e}){let{t}=j(),n=[[t(`activity:memoryManager.metaCreated`),Ee(e.createdAt),g],[t(`activity:memoryManager.metaUpdated`),Ee(e.updatedAt),h],[t(`activity:memoryManager.metaLastAccessed`),Ee(e.lastAccessedAt),re],[t(`activity:memoryManager.metaLastVerified`),Ee(e.lastVerifiedAt),ae]];return(0,G.jsx)(`section`,{className:`grid gap-px bg-border/60 sm:grid-cols-2 lg:grid-cols-4`,children:n.map(([e,t,n])=>(0,G.jsxs)(`div`,{className:`bg-card/50 p-3`,children:[(0,G.jsx)(n,{className:`size-3.5 text-muted-foreground`}),(0,G.jsx)(`p`,{className:`mt-2 text-[9px] font-bold uppercase tracking-[0.12em] text-muted-foreground`,children:e}),(0,G.jsx)(`p`,{className:`mt-1 text-[10px] leading-4 text-foreground/85`,children:t})]},e))})}function Je({contextPolicy:e}){let{t}=j();return(0,G.jsxs)(`div`,{className:`flex items-start gap-3 border border-border bg-muted/50 p-4 text-xs text-muted-foreground`,children:[(0,G.jsx)(te,{className:`mt-0.5 size-4 shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`p`,{className:`font-bold text-foreground`,children:t(`activity:memoryManager.deletedMemory`)}),(0,G.jsx)(`p`,{className:`mt-1 leading-5`,children:t(e===`never`?`activity:memoryManager.deletedNeverPolicy`:`activity:memoryManager.deletedEligiblePolicy`)})]})]})}function Ye({currentFilePath:e,knownFilePaths:t,drawerActive:n,onFilePathChange:r,onToggleDrawer:i}){let{t:a}=j();return(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border/60 bg-card/30 px-3 py-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] uppercase tracking-wide text-muted-foreground`,children:a(`activity:memoryManager.fileDrawerLabel`)}),(0,G.jsx)(`input`,{type:`text`,list:`memory-drawer-file-list`,value:e??``,onChange:e=>{r(e.target.value.trim()||null)},placeholder:a(`activity:memoryManager.selectFilePlaceholder`),className:`min-w-0 max-w-[260px] flex-1 truncate rounded-sm border border-border/60 bg-background px-1.5 py-0.5 text-[10px] font-mono`,"aria-label":a(`activity:memoryManager.fileForDrawerAria`),"data-testid":`memory-drawer-file-select`}),(0,G.jsx)(`datalist`,{id:`memory-drawer-file-list`,children:[...t].sort().map(e=>(0,G.jsx)(`option`,{value:e},e))}),(0,G.jsxs)(z,{type:`button`,size:`sm`,variant:n?`default`:`outline`,onClick:i,disabled:!e,className:`h-7 shrink-0 gap-1 px-2 text-[11px]`,"aria-pressed":n,title:a(n?`activity:memoryManager.hideFileDrawer`:`activity:memoryManager.showFileDrawer`),children:[n?(0,G.jsx)(D,{className:`size-3`}):(0,G.jsx)(ne,{className:`size-3`}),a(n?`activity:memoryManager.hideDrawer`:`activity:memoryManager.showDrawer`)]})]})}function Xe({mode:e,draft:t,busy:n,error:r,onChange:i,onCancel:a,onSubmit:o}){let{t:u}=j(),d=(0,K.useRef)(null),[p,m]=(0,K.useState)([]);(0,K.useEffect)(()=>{d.current?.focus();let e=new AbortController;return ge(`agent-roster.list`,{},e.signal).then(e=>{let t=e.roles;Array.isArray(t)&&m(t.filter(e=>typeof e==`string`))}).catch(()=>void 0),()=>e.abort()},[]);let h=(e,n)=>{i({...t,[e]:n})},g=()=>{h(`anchors`,[...t.anchors,{type:`file`,path:``}])};return(0,G.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col`,onSubmit:e=>{e.preventDefault(),o()},"aria-busy":n,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 border-b border-border/70 bg-card/70 px-4 py-3 backdrop-blur-xl`,children:[(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`flex size-8 items-center justify-center border border-info/35 bg-info/10 text-info`,children:e===`create`?(0,G.jsx)(S,{className:`size-4`}):(0,G.jsx)(v,{className:`size-4`})}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`p`,{className:`truncate text-sm font-bold`,children:u(e===`create`?`activity:memoryManager.captureMemory`:`activity:memoryManager.editMemory`)}),(0,G.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:u(e===`create`?`activity:memoryManager.editorCreateHint`:`activity:memoryManager.editorEditHint`)})]})]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,G.jsxs)(z,{type:`button`,variant:`ghost`,size:`sm`,onClick:a,disabled:n,children:[(0,G.jsx)(l,{className:`size-3.5`}),` `,u(`common:action.cancel`)]}),(0,G.jsxs)(z,{type:`submit`,size:`sm`,disabled:n||!t.text.trim(),children:[n?(0,G.jsx)(c,{className:`size-3.5 animate-spin`}):e===`create`?(0,G.jsx)(O,{className:`size-3.5`}):(0,G.jsx)(s,{className:`size-3.5`}),u(n?`common:action.saving`:e===`create`?`activity:memoryManager.createMemory`:`activity:memoryManager.saveChanges`)]})]})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto overscroll-contain p-4 md:p-5`,children:(0,G.jsxs)(`div`,{className:`mx-auto max-w-4xl space-y-5`,children:[r&&(0,G.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-2 border border-destructive/40 bg-destructive/10 px-3 py-2.5 text-sm text-destructive`,children:[(0,G.jsx)(_,{className:`mt-0.5 size-4 shrink-0`}),(0,G.jsx)(`span`,{children:r})]}),(0,G.jsxs)(`section`,{className:`border border-border/75 bg-card/45 p-4`,children:[(0,G.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:u(`activity:memoryManager.editorKnowledge`)}),(0,G.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:u(`activity:memEditor.writeTheDurableFactOrDecision`)})]}),(0,G.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground tabular-nums`,children:u(`activity:memoryManager.editorCharCount`,{count:t.text.length})})]}),(0,G.jsx)(`label`,{htmlFor:`memory-text`,className:`sr-only`,children:u(`activity:memoryManager.editorContentLabel`)}),(0,G.jsx)(`textarea`,{ref:d,id:`memory-text`,value:t.text,onChange:e=>h(`text`,e.target.value),rows:7,required:!0,placeholder:u(`activity:memoryManager.editorContentPlaceholder`),className:`min-h-36 w-full resize-y border border-input bg-background/75 px-3 py-3 text-sm leading-6 text-foreground shadow-inner placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`})]}),(0,G.jsxs)(`section`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`label`,{htmlFor:`memory-kind`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memoryManager.editorKind`)}),(0,G.jsx)(`select`,{id:`memory-kind`,value:t.kind,onChange:e=>h(`kind`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:we.map(e=>(0,G.jsx)(`option`,{value:e,children:Ae[e]},e))})]}),e===`create`?(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`label`,{htmlFor:`memory-scope`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memoryManager.editorScope`)}),(0,G.jsx)(`select`,{id:`memory-scope`,value:t.scope,onChange:e=>h(`scope`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:ve.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))})]}):(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`label`,{htmlFor:`memory-status`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memoryManager.editorLifecycleStatus`)}),(0,G.jsx)(`select`,{id:`memory-status`,value:t.status,onChange:e=>h(`status`,e.target.value),className:`h-10 w-full border border-input bg-background px-3 text-sm`,children:De.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))})]}),(0,G.jsxs)(`div`,{className:F(`min-w-0`,e===`create`?`sm:col-span-2 lg:col-span-1`:``),children:[(0,G.jsx)(`label`,{htmlFor:`memory-tags`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memoryManager.tagsLabel`)}),(0,G.jsx)(B,{id:`memory-tags`,value:t.tags,onChange:e=>h(`tags`,e.target.value),placeholder:u(`activity:memEditor.architectureWebuiWorkflow`),className:`h-10 bg-background`})]})]}),(0,G.jsxs)(`section`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,G.jsx)(H,{id:`memory-importance`,label:u(`activity:memoryManager.editorImportance`),value:t.importance,onChange:e=>h(`importance`,e)}),(0,G.jsx)(H,{id:`memory-confidence`,label:u(`activity:memoryManager.editorConfidence`),value:t.confidence,onChange:e=>h(`confidence`,e)}),(0,G.jsx)(H,{id:`memory-freshness`,label:u(`activity:memoryManager.editorFreshness`),value:t.freshness,onChange:e=>h(`freshness`,e)})]}),(0,G.jsxs)(`section`,{className:`border border-border/75 bg-card/45 p-4`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:u(`activity:memoryManager.editorAnchors`)}),(0,G.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:u(`activity:memEditor.bindKnowledgeToFilesSymbolsPackages`)})]}),(0,G.jsxs)(z,{type:`button`,variant:`outline`,size:`sm`,onClick:g,children:[(0,G.jsx)(O,{className:`size-3.5`}),` `,u(`activity:memoryManager.addAnchor`)]})]}),t.anchors.length===0?(0,G.jsxs)(`button`,{type:`button`,onClick:g,className:`mt-4 flex w-full items-center justify-center gap-2 border border-dashed border-border px-4 py-7 text-xs text-muted-foreground transition-colors hover:border-info/50 hover:bg-info/5 hover:text-info`,children:[(0,G.jsx)(oe,{className:`size-4`}),` `,u(`activity:memoryManager.noAnchors`)]}):(0,G.jsx)(`div`,{className:`mt-4 space-y-2`,children:t.anchors.map((e,n)=>(0,G.jsxs)(`div`,{className:`grid gap-2 border border-border/65 bg-background/40 p-2 sm:grid-cols-[9rem_minmax(0,1fr)_auto]`,children:[(0,G.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-type-${n}`,children:[`Anchor `,n+1,` type`]}),(0,G.jsx)(`select`,{id:`anchor-type-${n}`,value:e.type,onChange:e=>{let r=e.target.value,i=r===`command`?{type:r,command:``}:r===`agent`?{type:r,role:``}:{type:r,path:``},a=t.anchors.map((e,t)=>t===n?i:e);h(`anchors`,a)},className:`h-10 border border-input bg-background px-2 text-xs`,children:je.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))}),(0,G.jsxs)(`div`,{className:F(`grid min-w-0 gap-2`,e.type===`symbol`&&`sm:grid-cols-[minmax(0,1fr)_11rem]`),children:[(0,G.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-value-${n}`,children:[`Anchor `,n+1,` value`]}),(0,G.jsx)(B,{id:`anchor-value-${n}`,list:e.type===`agent`?`memory-agent-role-options`:void 0,value:Me(e),onChange:e=>{let r=t.anchors.map((t,r)=>r===n?ye(t,e.target.value):t);h(`anchors`,r)},placeholder:e.type===`command`?`pnpm test --filter webui`:e.type===`agent`?`reviewer`:`packages/webui/src/App.tsx`,className:`h-10 min-w-0 bg-background font-mono text-xs`}),e.type===`symbol`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`label`,{className:`sr-only`,htmlFor:`anchor-symbol-${n}`,children:[`Anchor `,n+1,` symbol`]}),(0,G.jsx)(B,{id:`anchor-symbol-${n}`,value:e.symbol??``,onChange:e=>{let r=t.anchors.map((t,r)=>r===n?{...t,symbol:e.target.value}:t);h(`anchors`,r)},placeholder:u(`activity:memoryManager.editorSymbolPlaceholder`),className:`h-10 bg-background font-mono text-xs`})]})]}),(0,G.jsx)(z,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Remove anchor ${n+1}`,onClick:()=>h(`anchors`,t.anchors.filter((e,t)=>t!==n)),children:(0,G.jsx)(f,{className:`size-4 text-destructive`})})]},`${e.type}:${n}`))}),(0,G.jsx)(`datalist`,{id:`memory-agent-role-options`,children:p.map(e=>(0,G.jsx)(`option`,{value:e},e))})]}),(0,G.jsxs)(`section`,{className:`grid gap-3 border border-border/75 bg-card/45 p-4 sm:grid-cols-2`,children:[(0,G.jsxs)(`div`,{className:`sm:col-span-2`,children:[(0,G.jsx)(`h3`,{className:`text-xs font-bold uppercase tracking-[0.14em]`,children:u(`activity:memoryManager.editorRelationships`)}),(0,G.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:u(`activity:memoryManager.editorRelationshipsHint`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`memory-supersedes`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memoryManager.editorSupersedes`)}),(0,G.jsx)(B,{id:`memory-supersedes`,value:t.supersedes,onChange:e=>h(`supersedes`,e.target.value),placeholder:u(`activity:memEditor.memIdMemId`),className:`h-10 bg-background font-mono text-xs`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`memory-contradicts`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memoryManager.editorContradicts`)}),(0,G.jsx)(B,{id:`memory-contradicts`,value:t.contradicts,onChange:e=>h(`contradicts`,e.target.value),placeholder:u(`activity:memEditor.memIdMemId`),className:`h-10 bg-background font-mono text-xs`})]})]}),(0,G.jsxs)(`section`,{className:`space-y-2`,children:[(0,G.jsx)(`h3`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memEditor.audienceOptional`)}),(0,G.jsx)(`p`,{className:`text-[10px] text-muted-foreground/70`,children:u(`activity:memEditor.targetThisMemoryToSpecificAgent`)}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`memory-audience-roles`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memEditor.roles`)}),(0,G.jsx)(B,{id:`memory-audience-roles`,value:t.audienceRoles,onChange:e=>h(`audienceRoles`,e.target.value),placeholder:u(`activity:memEditor.reviewerRefactorPlanner`),className:`h-9 bg-background font-mono text-xs`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`memory-audience-task-types`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memoryManager.editorTaskTypes`)}),(0,G.jsx)(B,{id:`memory-audience-task-types`,value:t.audienceTaskTypes,onChange:e=>h(`audienceTaskTypes`,e.target.value),placeholder:u(`activity:memEditor.reviewRefactorBugfix`),className:`h-9 bg-background font-mono text-xs`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`label`,{htmlFor:`memory-audience-modes`,className:`mb-1.5 block text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:u(`activity:memEditor.modes`)}),(0,G.jsx)(B,{id:`memory-audience-modes`,value:t.audienceModes,onChange:e=>h(`audienceModes`,e.target.value),placeholder:u(`activity:memEditor.teachCodeReview`),className:`h-9 bg-background font-mono text-xs`})]})]})]})})]})}function Ze({searchQuery:e,statusFilter:t,kindFilter:n,audienceOnly:r,tagFilter:o,hasFilters:s,allTags:c,stats:d,onSearchChange:f,onStatusFilterChange:p,onKindFilterChange:m,onToggleAudienceOnly:h,onTagFilterChange:g,onClearFilters:ee}){let{t:_}=j(),[v,y]=(0,K.useState)(!!o),b=v||!!o,x=c.length>0;return(0,G.jsxs)(`div`,{className:`shrink-0 space-y-2 overflow-hidden border-b border-border/70 bg-card/45 p-3`,children:[(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(`div`,{className:`relative min-w-0 flex-1`,children:[(0,G.jsx)(i,{className:`pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground`}),(0,G.jsx)(B,{"aria-label":_(`activity:memoryManager.searchAria`),value:e,onChange:e=>f(e.target.value),placeholder:_(`activity:memoryManager.searchPlaceholder`),className:`h-10 min-w-0 bg-background pl-9 pr-8 text-xs`}),e&&(0,G.jsx)(`button`,{type:`button`,"aria-label":_(`activity:memoryManager.clearSearchAria`),onClick:()=>f(``),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-muted-foreground hover:text-foreground`,children:(0,G.jsx)(l,{className:`size-3.5`})})]}),(0,G.jsx)(z,{variant:r?`default`:`ghost`,size:`icon`,onClick:h,"aria-label":_(`activity:memoryManager.audienceFilterAria`),title:_(`activity:memoryManager.audienceFilterTitle`),className:`shrink-0`,children:(0,G.jsx)(a,{className:`size-4`})}),s&&(0,G.jsx)(z,{variant:`ghost`,size:`icon`,onClick:ee,"aria-label":_(`activity:memoryManager.clearFiltersAria`),title:_(`activity:memoryManager.clearFiltersTitle`),children:(0,G.jsx)(T,{className:`size-4`})})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,G.jsx)(`label`,{className:`sr-only`,htmlFor:`memory-status-filter`,children:_(`activity:memoryManager.filterByStatus`)}),(0,G.jsxs)(`select`,{id:`memory-status-filter`,value:t,onChange:e=>p(e.target.value),className:`h-9 min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,G.jsx)(`option`,{value:`all`,children:_(`activity:memoryManager.allStatuses`)}),Oe.map(e=>(0,G.jsxs)(`option`,{value:e,children:[e,` · `,d?.byStatus[e]??0]},e))]}),(0,G.jsx)(`label`,{className:`sr-only`,htmlFor:`memory-kind-filter`,children:_(`activity:memoryManager.filterByKind`)}),(0,G.jsxs)(`select`,{id:`memory-kind-filter`,value:n,onChange:e=>m(e.target.value),className:`h-9 min-w-0 border border-input bg-background px-2 text-xs`,children:[(0,G.jsx)(`option`,{value:`all`,children:_(`activity:memoryManager.allKinds`)}),we.map(e=>(0,G.jsxs)(`option`,{value:e,children:[Ae[e],` · `,d?.byKind[e]??0]},e))]})]}),x&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{o||y(e=>!e)},"aria-expanded":b,"aria-controls":`memory-tags-panel`,disabled:!!o,className:F(`flex items-center gap-1.5 px-1 py-0.5 text-[10px] uppercase tracking-wide transition-colors`,b?`text-foreground`:`text-muted-foreground hover:text-foreground`,!!o&&`cursor-default`),title:o?`Active filter: ${o} (click the chip to clear)`:b?`Hide tag filters`:`Show tag filters (${c.length})`,children:[(0,G.jsx)(u,{className:F(`size-3 transition-transform`,!b&&`-rotate-90`)}),(0,G.jsx)(k,{className:`size-3`}),(0,G.jsx)(`span`,{className:`font-semibold`,children:_(`activity:memoryManager.tagsLabel`)}),(0,G.jsx)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:c.length})]}),o&&(0,G.jsx)(`span`,{role:`status`,"aria-label":`Active tag filter: ${o}`,className:`border border-info/55 bg-info/10 px-1 font-mono text-[9px] uppercase text-info`,children:o})]}),x&&b&&(0,G.jsxs)(`fieldset`,{id:`memory-tags-panel`,className:`min-w-0 border-0 p-0`,children:[(0,G.jsx)(`legend`,{className:`sr-only`,children:_(`activity:memoryManager.popularTags`)}),(0,G.jsx)(`div`,{className:`no-scrollbar flex gap-1.5 overflow-x-auto pb-0.5`,children:c.slice(0,18).map(([e,t])=>(0,G.jsxs)(`button`,{type:`button`,"aria-pressed":o===e,onClick:()=>g(o===e?null:e),className:F(`flex shrink-0 items-center gap-1 border px-2 py-1 text-[10px] transition-colors`,o===e?`border-info/55 bg-info/10 text-info`:`border-border/70 bg-background/45 text-muted-foreground hover:border-info/35 hover:text-foreground`),children:[(0,G.jsx)(k,{className:`size-2.5`}),` `,e,(0,G.jsx)(`span`,{className:`font-mono opacity-60`,children:t})]},e))})]})]})}var Qe=100;function $e({memoryListRef:e,memories:t,filteredMemories:n,selectedId:r,onSelectMemory:i,onOpenCreate:a,onClearFilters:o}){let{t:s}=j(),c=n.length>Qe,l=E({count:n.length,getScrollElement:()=>e.current,estimateSize:()=>100,overscan:8,enabled:c});return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between border-b border-border/60 px-3 py-2 text-[10px] text-muted-foreground`,children:[(0,G.jsx)(`span`,{children:s(`activity:memoryManager.memoryCountSummary`,{shown:n.length,total:t.length})}),(0,G.jsx)(`span`,{className:`font-mono uppercase`,children:s(`activity:memoryManager.updatedSortLabel`)})]}),(0,G.jsx)(`section`,{ref:e,className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,"aria-label":s(`activity:memoryManager.listAria`),children:n.length===0?(0,G.jsx)(et,{hasMemories:t.length>0,onOpenCreate:a,onClearFilters:o}):c?(0,G.jsx)(`div`,{style:{height:`${l.getTotalSize()}px`,width:`100%`,position:`relative`},children:l.getVirtualItems().map(e=>{let t=n[e.index];return t?(0,G.jsx)(`div`,{"data-index":e.index,ref:l.measureElement,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${e.start}px)`},children:(0,G.jsx)(tt,{memory:t,isSelected:r===t.id,onClick:()=>i(t.id)})},t.id):null})}):n.map(e=>(0,G.jsx)(tt,{memory:e,isSelected:r===e.id,onClick:()=>i(e.id)},e.id))})]})}function et({hasMemories:e,onOpenCreate:t,onClearFilters:n}){let{t:r}=j();return(0,G.jsxs)(`div`,{className:`flex min-h-64 flex-col items-center justify-center px-6 text-center`,children:[(0,G.jsx)(`span`,{className:`flex size-12 items-center justify-center border border-dashed border-border text-muted-foreground`,children:(0,G.jsx)(ee,{className:`size-5`})}),(0,G.jsx)(`h2`,{className:`mt-4 text-sm font-bold`,children:r(e?`activity:memoryManager.noMatching`:`activity:memoryManager.buildGraph`)}),(0,G.jsx)(`p`,{className:`mt-1 max-w-xs text-xs leading-5 text-muted-foreground`,children:r(e?`activity:memoryManager.emptyFiltered`:`activity:memoryManager.emptyCapture`)}),(0,G.jsxs)(z,{className:`mt-4`,variant:`outline`,size:`sm`,onClick:e?n:t,children:[e?(0,G.jsx)(T,{className:`size-3.5`}):(0,G.jsx)(O,{className:`size-3.5`}),r(e?`activity:memoryManager.clearFilters`:`activity:memoryManager.createFirst`)]})]})}function tt({memory:e,isSelected:t,onClick:n}){return(0,G.jsxs)(`button`,{type:`button`,"aria-current":t?`true`:void 0,onClick:n,className:F(`group relative block w-full border-b border-border/55 px-3 py-3 text-left transition-[background-color,border-color] hover:bg-info/5`,t&&`bg-info/8`),children:[t&&(0,G.jsx)(`span`,{className:`absolute inset-y-0 left-0 w-0.5 bg-info shadow-[0_0_10px_hsl(var(--info)/0.7)]`}),(0,G.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,G.jsx)(`span`,{className:F(`truncate text-[10px] font-bold uppercase tracking-[0.1em]`,Ce(e.kind)),children:Ae[e.kind]??e.kind}),(0,G.jsx)(Te,{status:e.status}),(0,G.jsxs)(`span`,{className:`ml-auto shrink-0 font-mono text-[9px] text-muted-foreground`,children:[`r`,e.revision]})]}),(0,G.jsx)(`p`,{className:F(`mt-2 line-clamp-2 text-xs leading-5 text-foreground/90`,e.status===`deleted`&&`line-through opacity-60`),children:Se(e.text)}),(0,G.jsxs)(`div`,{className:`mt-2 flex min-w-0 items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`border border-border/60 bg-background/50 px-1.5 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:e.scope}),e.audience&&(0,G.jsxs)(`span`,{className:`flex items-center gap-0.5 border border-primary/30 bg-primary/10 px-1.5 py-0.5 font-mono text-[9px] text-primary`,children:[(0,G.jsx)(a,{className:`size-2.5`}),(e.audience.roles??e.audience.taskTypes??e.audience.modes??[]).slice(0,1)[0]??`scoped`]}),e.tags.slice(0,2).map(e=>(0,G.jsxs)(`span`,{className:`max-w-24 truncate border border-border/60 px-1.5 py-0.5 font-mono text-[9px] text-muted-foreground`,children:[`#`,e]},e)),e.tags.length>2&&(0,G.jsxs)(`span`,{className:`font-mono text-[9px] text-muted-foreground`,children:[`+`,e.tags.length-2]}),(0,G.jsx)(`span`,{className:`ml-auto shrink-0 text-[9px] text-muted-foreground`,children:Ne(e.updatedAt)}),(0,G.jsx)(C,{className:`size-3 shrink-0 text-muted-foreground transition-transform group-hover:translate-x-0.5 group-hover:text-info`})]})]})}function nt({onCapture:e}){let{t}=j();return(0,G.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center p-8 text-center`,children:[(0,G.jsxs)(`div`,{className:`relative flex size-20 items-center justify-center border border-info/25 bg-info/5 text-info`,children:[(0,G.jsx)(a,{className:`size-8`}),(0,G.jsx)(`span`,{className:`absolute inset-2 border border-info/10`})]}),(0,G.jsx)(`h2`,{className:`mt-5 text-lg font-bold`,children:t(`activity:memoryManager.emptyTitle`)}),(0,G.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-muted-foreground`,children:t(`activity:memoryManager.emptyBody`)}),(0,G.jsxs)(`div`,{className:`mt-6 grid w-full max-w-lg gap-2 sm:grid-cols-3`,children:[(0,G.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,G.jsx)(d,{className:`mx-auto size-4 text-success`}),(0,G.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:t(`activity:memoryManager.emptyVerifiedAnchors`)})]}),(0,G.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,G.jsx)(a,{className:`mx-auto size-4 text-info`}),(0,G.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:t(`activity:memoryManager.emptyTypedRelations`)})]}),(0,G.jsxs)(`div`,{className:`border border-border/70 bg-card/45 p-3`,children:[(0,G.jsx)(O,{className:`mx-auto size-4 text-warning`}),(0,G.jsx)(`p`,{className:`mt-2 text-[10px] font-bold uppercase`,children:t(`activity:memoryManager.emptyAgentRecall`)})]})]}),(0,G.jsxs)(z,{onClick:e,children:[(0,G.jsx)(O,{className:`size-4`}),` `,t(`activity:memoryManager.captureButton`)]})]})}function rt({wsConnected:e,refreshing:t,onRefresh:n,onCreate:r}){let{t:i}=j(),o=ue(e=>e.setCurrentView);return(0,G.jsxs)(`header`,{className:`relative shrink-0 overflow-hidden border-b border-border/70 bg-card/72 px-4 py-3 backdrop-blur-xl sm:px-5`,children:[(0,G.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 right-0 w-1/2 bg-[radial-gradient(circle_at_right,hsl(var(--info)/0.11),transparent_68%)]`}),(0,G.jsxs)(`div`,{className:`relative flex flex-wrap items-center gap-3`,children:[(0,G.jsx)(z,{variant:`ghost`,size:`icon`,onClick:()=>o(`chat`),"aria-label":i(`activity:memoryManager.backToChat`),title:i(`activity:memoryManager.backToChat`),children:(0,G.jsx)(A,{className:`size-4`})}),(0,G.jsx)(`span`,{className:`flex size-10 items-center justify-center border border-info/40 bg-info/10 text-info shadow-[0_0_20px_hsl(var(--info)/0.12)]`,children:(0,G.jsx)(a,{className:`size-5`})}),(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,G.jsx)(`h1`,{className:`text-base font-bold sm:text-lg`,children:i(`activity:memoryManager.sageHeading`)}),(0,G.jsx)(`span`,{className:`border border-success/35 bg-success/10 px-2 py-0.5 font-mono text-[9px] font-bold uppercase text-success`,children:i(`activity:memoryManager.projectKnowledge`)})]}),(0,G.jsx)(`p`,{className:`mt-0.5 max-w-2xl text-[10px] text-muted-foreground sm:text-xs`,children:i(`activity:memoryManager.sageSubtitle`)})]}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:F(`hidden items-center gap-1.5 border px-2 py-1 font-mono text-[9px] uppercase sm:flex`,e?`border-success/30 text-success`:`border-warning/30 text-warning`),children:[(0,G.jsx)(`span`,{className:`size-1.5 bg-current`}),` `,i(e?`activity:memoryManager.liveStore`:`activity:memoryManager.reconnecting`)]}),(0,G.jsxs)(z,{variant:`outline`,size:`sm`,onClick:n,disabled:t,"aria-label":i(`activity:memoryManager.refreshAria`),children:[(0,G.jsx)(h,{className:F(`size-3.5`,t&&`animate-spin`)}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:i(`common:action.refresh`)})]}),(0,G.jsxs)(z,{size:`sm`,onClick:r,children:[(0,G.jsx)(O,{className:`size-3.5`}),` `,i(`activity:memoryManager.newMemory`)]})]})]})]})}function it({stats:e,memories:t,filteredCount:n,allTagsCount:r}){let{t:i}=j(),o=t.filter(e=>e.audience).length,s=new Set;if(o>0){for(let e of t)if(e.audience){for(let t of e.audience.roles??[])s.add(t);for(let t of e.audience.taskTypes??[])s.add(t);for(let t of e.audience.modes??[])s.add(t)}}return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`grid shrink-0 grid-cols-2 gap-px border-b border-border/70 bg-border/60 sm:grid-cols-4`,children:[(0,G.jsx)(U,{label:i(`activity:memoryManager.tabMemories`),value:e?.total??t.length,hint:`${n} visible`}),(0,G.jsx)(U,{label:i(`activity:memoryManager.tabActive`),value:e?.byStatus.active??t.filter(e=>e.status===`active`).length,hint:`retrievable`,tone:`success`}),(0,G.jsx)(U,{label:i(`activity:memoryManager.tabNeedsReview`),value:(e?.byStatus.stale??0)+(e?.byStatus.contradicted??0),hint:i(`activity:memoryManager.staleConflicts`),tone:`warning`}),(0,G.jsx)(`div`,{className:`hidden sm:block`,children:(0,G.jsx)(U,{label:i(`activity:memoryManager.tabGraphEdges`),value:e?.edges??0,hint:`${r} tags`,tone:`info`})})]}),o>0&&(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border/70 bg-primary/5 px-4 py-1.5`,children:[(0,G.jsx)(a,{className:`size-3.5 text-primary`}),(0,G.jsxs)(`span`,{className:`text-[11px] font-medium text-primary`,children:[o,` audience-scoped memory`,o===1?``:`ies`]}),s.size>0&&(0,G.jsxs)(`span`,{className:`text-[10px] text-muted-foreground`,children:[`(`,[...s].sort().join(`, `),`)`]})]})]})}function at({query:e,channel:t,hits:n,loading:r,error:i,onOpenMemory:a,onClear:o}){let{t:s}=j();return e?(0,G.jsxs)(`section`,{"aria-label":s(`activity:memoryManager.searchBreakdownAria`),className:`border-b border-border/60 bg-card/35`,children:[(0,G.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between border-b border-border/55 px-3 py-2 text-[10px] text-muted-foreground`,children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(S,{className:`size-3 text-info`}),(0,G.jsx)(`span`,{className:`font-mono uppercase tracking-[0.1em]`,children:s(`activity:memoryManager.searchBreakdownTitle`,{query:e})}),t===`breakdown`&&(0,G.jsx)(`span`,{className:`border border-info/40 bg-info/8 px-1.5 py-0.5 font-mono text-[9px] uppercase text-info`,children:s(`activity:memoryManager.searchBreakdownDual`)}),t===`lexical`&&(0,G.jsx)(`span`,{className:`border border-border/60 px-1.5 py-0.5 font-mono text-[9px] uppercase text-muted-foreground`,children:s(`activity:memoryManager.searchBreakdownLexicalOnly`)})]}),(0,G.jsx)(`button`,{type:`button`,onClick:o,className:`font-mono text-[10px] uppercase text-muted-foreground hover:text-foreground`,children:s(`common:action.close`)})]}),r&&(0,G.jsx)(`p`,{className:`px-3 py-3 text-[10px] text-muted-foreground`,children:s(`activity:memoryManager.searchBreakdownLoading`)}),i&&(0,G.jsx)(`p`,{className:`border-t border-border/55 px-3 py-2 text-[10px] text-destructive`,role:`alert`,children:i}),!r&&!i&&n.length===0&&(0,G.jsx)(`p`,{className:`px-3 py-3 text-[10px] text-muted-foreground`,children:s(`activity:memoryManager.searchBreakdownEmpty`)}),(0,G.jsx)(`ul`,{className:`divide-y divide-border/55`,children:n.map(e=>(0,G.jsx)(ot,{hit:e,onOpenMemory:a},e.memory.id))})]}):null}function ot({hit:e,onOpenMemory:t}){let{t:n}=j(),r=st(e.lexicalScore),i=st(e.vectorScore),a=st(e.finalScore),{accent:o,label:s}=ct(e.source);return(0,G.jsx)(`li`,{children:(0,G.jsxs)(`button`,{type:`button`,onClick:()=>t(e.memory.id),className:`group flex w-full min-w-0 items-start gap-3 px-3 py-2.5 text-left hover:bg-info/5`,children:[(0,G.jsx)(`span`,{className:F(`flex size-7 shrink-0 items-center justify-center border font-mono text-[9px] uppercase`,o),title:n(`activity:memoryManager.searchBreakdownSourceLabel`,{source:s}),children:e.source===`vector`?(0,G.jsx)(S,{className:`size-3.5`}):e.source===`both`?(0,G.jsx)(p,{className:`size-3.5`}):(0,G.jsx)(b,{className:`size-3.5`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:`line-clamp-2 text-[11px] leading-5 text-foreground/90`,children:e.memory.text}),(0,G.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:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`L`}),(0,G.jsx)(`span`,{className:`tabular-nums text-foreground/80`,children:r})]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`V`}),(0,G.jsx)(`span`,{className:F(`tabular-nums`,e.vectorScore===null?`text-muted-foreground/50`:`text-foreground/80`),children:i})]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`uppercase text-[9px] text-muted-foreground/80`,children:`RRF`}),(0,G.jsx)(`span`,{className:`tabular-nums font-bold text-foreground`,children:a})]}),(0,G.jsx)(`span`,{className:`ml-auto uppercase text-[9px]`,children:s})]})]})]})})}function st(e){return e===null?`—`:`${Math.round(e*100)}%`}function ct(e){switch(e){case`vector`:return{accent:`border-accent/40 bg-accent/10 text-accent`,label:`vector`};case`both`:return{accent:`border-info/40 bg-info/10 text-info`,label:`both`};default:return{accent:`border-border/60 bg-background text-muted-foreground`,label:`lexical`}}}function lt({listCandidates:e,resolveCandidate:t,onOpenMemory:n,client:r,active:i}){let{t:a}=j(),[o,s]=(0,K.useState)([]),[u,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(null),[g,ee]=(0,K.useState)(null),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(()=>new Set),S=(0,K.useRef)(0),C=(0,K.useCallback)(()=>{let t=++S.current;f(!0),m(null);let n=r.on(`memory.sage.listCandidates`,e=>{if(t===S.current){if(n(),e.payload.error)m(String(e.payload.error)),s([]);else{let t=(Array.isArray(e.payload.candidates)?e.payload.candidates:[]).filter(e=>e.status===`pending`);s(t),x(e=>{let n=new Set;for(let r of e)t.some(e=>e.id===r)&&n.add(r);return n})}f(!1)}}),i=setTimeout(()=>{t===S.current&&(n(),f(!1),m(a(`activity:memoryManager.reviewLoadTimeout`)))},15e3);return e({includeResolved:!1},{echoToChat:!1}),()=>{clearTimeout(i),n()}},[r,e,a]);(0,K.useEffect)(()=>{if(i)return C()},[i,C]);let w=(0,K.useCallback)((e,n)=>new Promise(i=>{let a=r.on(`memory.sage.candidateResolve`,e=>{a();let t=e.payload.error;i(!t)});t({candidateId:e,action:n,reason:n===`reject`?`Rejected via Memory Review tab`:void 0},{echoToChat:!1}),setTimeout(()=>{a(),i(!1)},15e3)}),[r,t]),T=(0,K.useCallback)(async(e,t)=>{ee(e),await w(e,t),ee(null),C()},[C,w]),E=(0,K.useCallback)(async e=>{let t=[...b];if(t.length!==0){y(!0);for(let n of t)await w(n,e);y(!1),x(new Set),C()}},[C,w,b]),D=e=>{x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},te=()=>{x(new Set(o.map(e=>e.id)))},O=()=>x(new Set);if(u&&o.length===0)return(0,G.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-2 p-6 text-sm text-muted-foreground`,children:[(0,G.jsx)(c,{className:`size-4 animate-spin`}),a(`activity:memoryManager.reviewLoading`)]});if(p&&o.length===0)return(0,G.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 p-6 text-center`,children:[(0,G.jsx)(_,{className:`size-5 text-warning`}),(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:p}),(0,G.jsxs)(z,{size:`sm`,variant:`outline`,onClick:()=>C(),children:[(0,G.jsx)(h,{className:`size-3.5`}),` `,a(`common:action.retry`)]})]});if(o.length===0)return(0,G.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-2 p-8 text-center`,children:[(0,G.jsx)(d,{className:`size-6 text-success`}),(0,G.jsx)(`p`,{className:`text-sm font-medium`,children:a(`activity:memoryManager.reviewEmptyTitle`)}),(0,G.jsx)(`p`,{className:`max-w-sm text-xs text-muted-foreground`,children:a(`activity:memoryManager.reviewEmptyHint`)}),(0,G.jsxs)(z,{size:`sm`,variant:`ghost`,onClick:()=>C(),children:[(0,G.jsx)(h,{className:`size-3.5`}),` `,a(`common:action.refresh`)]})]});let k=b.size,A=k===o.length&&o.length>0;return(0,G.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,G.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-2 border-b border-border/60 px-3 py-2`,children:[(0,G.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`,children:a(`activity:memoryManager.reviewPendingCount`,{count:o.length})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,G.jsx)(z,{size:`sm`,variant:`ghost`,className:`h-7 text-[11px]`,onClick:A?O:te,children:a(A?`activity:memoryManager.reviewClearSelection`:`activity:memoryManager.reviewSelectAll`)}),(0,G.jsxs)(z,{size:`sm`,className:`h-7`,disabled:k===0||v,onClick:()=>void E(`accept`),children:[v?(0,G.jsx)(c,{className:`size-3 animate-spin`}):(0,G.jsx)(d,{className:`size-3`}),a(`activity:memoryManager.reviewBulkAccept`),k>0?` (${k})`:``]}),(0,G.jsxs)(z,{size:`sm`,variant:`outline`,className:`h-7`,disabled:k===0||v,onClick:()=>void E(`reject`),children:[(0,G.jsx)(l,{className:`size-3`}),a(`activity:memoryManager.reviewBulkKeep`),k>0?` (${k})`:``]}),(0,G.jsx)(z,{size:`sm`,variant:`ghost`,className:`h-7`,onClick:()=>C(),disabled:u,children:(0,G.jsx)(h,{className:F(`size-3.5`,u&&`animate-spin`)})})]})]}),(0,G.jsx)(`ul`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto p-3`,children:o.map(e=>{let t=e.targetMemoryId??e.memoryId,r=e.reviewReason??e.reason??``,i=g===e.id||v,o=b.has(e.id);return(0,G.jsx)(`li`,{className:F(`rounded-md border bg-card/60 p-3 text-sm shadow-sm`,o?`border-primary/50 ring-1 ring-primary/20`:`border-border/70`),children:(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsx)(`input`,{type:`checkbox`,className:`mt-1 size-3.5 accent-primary`,checked:o,disabled:v,onChange:()=>D(e.id),"aria-label":a(`activity:memoryManager.reviewSelectOne`)}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 text-[10px] uppercase tracking-wide text-muted-foreground`,children:[(0,G.jsx)(`span`,{className:`font-mono text-warning`,children:e.suggestedAction??`review`}),(0,G.jsx)(`span`,{children:`·`}),(0,G.jsx)(`span`,{children:Ne(e.createdAt)}),e.tags?.includes(`triage`)&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:`·`}),(0,G.jsx)(`span`,{className:`text-info`,children:`triage`})]})]}),(0,G.jsx)(`p`,{className:`mt-1.5 text-[13px] leading-snug text-foreground`,children:Se(e.text,220)}),r?(0,G.jsx)(`p`,{className:`mt-1 text-[11px] text-muted-foreground`,children:r}):null,t?(0,G.jsxs)(`button`,{type:`button`,className:`mt-1 font-mono text-[10px] text-primary hover:underline`,onClick:()=>n?.(t),children:[t.slice(0,16),`…`]}):null,(0,G.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:[(0,G.jsxs)(z,{size:`sm`,className:`h-7`,disabled:i,onClick:()=>void T(e.id,`accept`),children:[g===e.id?(0,G.jsx)(c,{className:`size-3 animate-spin`}):(0,G.jsx)(d,{className:`size-3`}),a(`activity:memoryManager.actionAcceptDeletion`)]}),(0,G.jsxs)(z,{size:`sm`,variant:`outline`,className:`h-7`,disabled:i,onClick:()=>void T(e.id,`reject`),children:[(0,G.jsx)(l,{className:`size-3`}),a(`activity:memoryManager.actionKeep`)]})]})]})]})},e.id)})})]})}function ut(e,t){let n=t.searchQuery.trim().toLowerCase();return e.filter(e=>{if(t.statusFilter!==`all`&&e.status!==t.statusFilter||t.kindFilter!==`all`&&e.kind!==t.kindFilter||t.tagFilter&&!e.tags.includes(t.tagFilter)||t.audienceOnly&&!e.audience)return!1;if(!n)return!0;let r=e.anchors.map(e=>[e.path,e.symbol,e.command,e.role].filter(Boolean).join(` `)).join(` `),i=e.audience?[e.audience.roles?.join(` `)??``,e.audience.taskTypes?.join(` `)??``,e.audience.modes?.join(` `)??``].join(` `):``;return[e.id,e.text,e.summary??``,e.kind,e.scope,e.tags.join(` `),r,i].join(` `).toLowerCase().includes(n)})}function dt(e){let t=new Map;for(let n of e)for(let e of n.tags)t.set(e,(t.get(e)??0)+1);return[...t.entries()].sort((e,t)=>t[1]-e[1]||e[0].localeCompare(t[0]))}function ft(e){if(!e)return[];let t=[];e.supersededBy&&t.push({relation:`Superseded by`,id:e.supersededBy});for(let n of e.supersedes??[])t.push({relation:`Supersedes`,id:n});for(let n of e.contradicts??[])t.push({relation:`Contradicts`,id:n});return t}var pt=100;function mt(){let{t:e}=j(),{client:n,listSageMemoriesPage:r,listMemoryCandidates:i,rememberSage:a,updateSage:o,deleteSage:s,getSageGraph:c,recoverSage:l,resolveMemoryCandidate:u,searchSageBreakdown:d}=he(),f=t(e=>e.wsConnected),[p,m]=(0,K.useState)([]),[h,g]=(0,K.useState)(null),[ee,_]=(0,K.useState)(!0),[v,y]=(0,K.useState)(!1),[b,x]=(0,K.useState)(null),[S,C]=(0,K.useState)(null),[w,T]=(0,K.useState)(null),[E,D]=(0,K.useState)(null),[te,O]=(0,K.useState)([]),[k,A]=(0,K.useState)([]),[ne,re]=(0,K.useState)(null),[ie,ae]=(0,K.useState)(!1),[oe,M]=(0,K.useState)(!1),[N,se]=(0,K.useState)(!1),[P,ce]=(0,K.useState)(xe),[le,F]=(0,K.useState)(xe),[ue,I]=(0,K.useState)(null),[de,fe]=(0,K.useState)(null),[L,pe]=(0,K.useState)({hits:[],channel:void 0,loading:!1,error:null}),[R,me]=(0,K.useState)(``),[z,B]=(0,K.useState)(`all`),[V,ge]=(0,K.useState)(`all`),[ve,ye]=(0,K.useState)(!1),[H,Se]=(0,K.useState)(null),[Ce,we]=(0,K.useState)(`active`),Te=Ce===`deleted`,Ee=Ce===`review`,[De,Oe]=(0,K.useState)(null),[ke,Ae]=(0,K.useState)(!1),[U,je]=(0,K.useState)(!1),[Me,Ne]=(0,K.useState)({}),[Pe,G]=(0,K.useState)(!1),[Fe,Ie]=(0,K.useState)(null),Le=(0,K.useRef)(!1),Re=(0,K.useRef)([]),ze=(0,K.useRef)(0),q=(0,K.useRef)(null),J=(0,K.useRef)(!0),Be=(0,K.useRef)(0),Y=(0,K.useRef)(0),Ve=(0,K.useRef)(null),X=(0,K.useRef)(null),He=(0,K.useMemo)(()=>{let e=new Set;for(let t of p)for(let n of t.anchors??[])n.type===`file`&&n.path&&e.add(n.path);return e},[p]),Ue=(0,K.useMemo)(()=>JSON.stringify(P)!==JSON.stringify(le),[le,P]),We=(0,K.useCallback)(e=>p.find(t=>t.id===e)??L.hits.find(t=>t.memory.id===e)?.memory??k.find(t=>t.id===e)??null,[k,p,L.hits]),Z=(0,K.useMemo)(()=>E===null?null:We(E),[We,E]),Ge=(0,K.useCallback)(e=>{let t=e!==null,i=++Be.current;Ve.current?.(),x(null),t?je(!0):(y(!0),Le.current||_(!0));let a=()=>{},o=null,s=!1,c=()=>{s||(s=!0,o!==null&&clearTimeout(o),a(),Ve.current===c&&(Ve.current=null))};a=n.on(`memory.sage.listPage`,e=>{if(i!==Be.current||!J.current){c();return}if(c(),e.payload.error)x(e.payload.error);else{let n=e.payload.memories??[];m(e=>t?[...e,...n]:n),Oe(e.payload.nextCursor??null),Ae(!!e.payload.nextCursor);let r=e.payload.statusCounts??{};Ne(r);let i=Object.values(r).reduce((e,t)=>e+t,0);e.payload.stats?g(e.payload.stats):g(e=>({total:i,byStatus:r,byKind:e?.byKind??{},edges:e?.edges??0})),Le.current=!0,t||D(e=>e&&(n.some(t=>t.id===e)||Re.current.some(t=>t.memory.id===e))?e:null)}_(!1),y(!1),je(!1)}),o=setTimeout(()=>{i===Be.current&&J.current&&(c(),x(`The memory store did not respond. Check the WebSocket connection and try again.`),_(!1),y(!1),je(!1))},2e4),Ve.current=c,r({limit:pt,...Te?{statuses:[`deleted`]}:{},...e?{cursor:e}:{},...R.trim()?{query:R.trim()}:{},...V===`all`?{}:{kind:V}},{echoToChat:!1})},[n,V,r,R,Te]),Q=(0,K.useCallback)(()=>{Oe(null),Ae(!1),Ge(null)},[Ge]),Ke=(0,K.useCallback)(()=>{!U&&De&&Ge(De)},[Ge,U,De]);(0,K.useEffect)(()=>(J.current=!0,Q(),()=>{J.current=!1,Be.current+=1,Y.current+=1,Ve.current?.(),X.current?.(),q.current?.()}),[Q]),(0,K.useEffect)(()=>{let e=R.trim();if(q.current?.(),e.length===0){pe({hits:[],channel:void 0,loading:!1,error:null});return}let t=++ze.current;pe(e=>({...e,loading:!0,error:null}));let r=()=>{},i=()=>{q.current===i&&(q.current=null),r()};q.current=i,r=n.on(`memory.sage.searchBreakdown`,e=>{if(t!==ze.current||!J.current){i();return}if(i(),e.payload.error){pe({hits:[],channel:void 0,loading:!1,error:e.payload.error});return}pe({hits:e.payload.hits??[],channel:e.payload.source,loading:!1,error:null})}),d({query:e,limit:20})},[R,n,d]),(0,K.useEffect)(()=>{Re.current=L.hits},[L.hits]),(0,K.useEffect)(()=>{if(O([]),A([]),re(null),!E){ae(!1);return}let e=E;ae(!0);let t=null,r=n.on(`memory.sage.graph`,n=>{n.payload.query===e&&(t!==null&&clearTimeout(t),O(n.payload.edges??[]),A(n.payload.memories??[]),re(n.payload.error??null),ae(!1))});return t=setTimeout(()=>{re(`Relationship graph did not respond in time.`),ae(!1)},15e3),c(e,{maxDepth:1,limit:120},{echoToChat:!1}),()=>{t!==null&&clearTimeout(t),r()}},[n,c,E]);let qe=(0,K.useRef)(f);(0,K.useEffect)(()=>{f&&!qe.current&&Le.current&&Q(),qe.current=f},[Q,f]),(0,K.useEffect)(()=>{if(!w)return;let e=setTimeout(()=>T(null),4e3);return()=>clearTimeout(e)},[w]);let $=(0,K.useCallback)(()=>!Ue||!oe&&!N||window.confirm(`Discard the unsaved memory changes?`),[N,Ue,oe]),Je=(0,K.useCallback)(()=>{if(!$())return;let e=xe();ce(e),F(e),se(!0),M(!1),D(null),C(null)},[$]),Ye=(0,K.useCallback)(e=>{$()&&(D(e),se(!1),M(!1),C(null))},[$]),Xe=(0,K.useCallback)(e=>{let t=e===void 0?Z:We(e);if(!t||t.status===`deleted`)return;e!==void 0&&D(e);let n=be(t);ce(n),F(n),M(!0),se(!1),C(null)},[We,Z]),Ze=(0,K.useCallback)(()=>{$()&&(M(!1),se(!1),C(null))},[$]),Qe=(0,K.useCallback)((t,r,i)=>{if(!P.text.trim()){C(`Memory content is required.`);return}let a=++Y.current;X.current?.(),I(i),C(null),T(null);let o=()=>{},s=null,c=!1,l=()=>{c||(c=!0,s!==null&&clearTimeout(s),o(),X.current===l&&(X.current=null))},u=t=>{if(a!==Y.current||!J.current){l();return}if(l(),I(null),t.payload.error||!t.payload.memory){C(t.payload.error??`The server returned no memory record.`);return}let n=t.payload.memory;m(e=>{let t=e.filter(e=>e.id!==n.id);return[n,...t]}),D(n.id),se(!1),M(!1),T(e(i===`create`?`activity:memoryManager.memoryCaptured`:`activity:memoryManager.memoryUpdated`)),Q()};o=t===`memory.sage.remember`?n.on(`memory.sage.remember`,u):n.on(`memory.sage.update`,u),s=setTimeout(()=>{a===Y.current&&J.current&&(l(),I(null),C(e(`activity:memoryManager.mutationTimeout`,{verb:e(i===`create`?`activity:memoryManager.createAction`:`common:action.save`)})))},2e4),X.current=l,r()},[n,P.text,Q,e]),$e=(0,K.useCallback)(()=>{Qe(`memory.sage.remember`,()=>a({text:P.text.trim(),kind:P.kind,scope:P.scope,tags:W(P.tags),importance:P.importance,confidence:P.confidence,freshness:P.freshness,anchors:_e(P.anchors),...W(P.audienceRoles).length||W(P.audienceTaskTypes).length||W(P.audienceModes).length?{audience:{roles:W(P.audienceRoles),taskTypes:W(P.audienceTaskTypes),modes:W(P.audienceModes)}}:{},supersedes:W(P.supersedes),contradicts:W(P.contradicts)},{echoToChat:!1}),`create`)},[P,a,Qe]),et=(0,K.useCallback)(()=>{Z&&Qe(`memory.sage.update`,()=>o(Z.id,{text:P.text.trim(),kind:P.kind,status:P.status,tags:W(P.tags),importance:P.importance,confidence:P.confidence,freshness:P.freshness,anchors:_e(P.anchors),...W(P.audienceRoles).length||W(P.audienceTaskTypes).length||W(P.audienceModes).length?{audience:{roles:W(P.audienceRoles),taskTypes:W(P.audienceTaskTypes),modes:W(P.audienceModes)}}:{},supersedes:W(P.supersedes),contradicts:W(P.contradicts)},{echoToChat:!1}),`update`)},[P,Qe,Z,o]),tt=(0,K.useCallback)(()=>{if(!de)return;let e=++Y.current;X.current?.(),I(`delete`),C(null);let t=()=>{},r=null,i=!1,a=()=>{i||(i=!0,r!==null&&clearTimeout(r),t(),X.current===a&&(X.current=null))};t=n.on(`memory.sage.delete`,t=>{if(e!==Y.current||!J.current){a();return}if(a(),I(null),!t.payload.success){C(t.payload.message||`Delete failed.`);return}fe(null),D(null),M(!1),T(`Memory deleted and relationship edges cleaned up.`),Q()}),r=setTimeout(()=>{e===Y.current&&J.current&&(a(),I(null),C(`Delete timed out. The memory may still exist; refresh to confirm.`))},2e4),X.current=a,s(de,`Deleted from the WebUI Memory Manager.`)},[n,s,de,Q]),nt=(0,K.useCallback)((e,t,r)=>{let i=++Y.current;X.current?.(),C(null);let a=()=>{},o=null,s=!1,c=()=>{s||(s=!0,o!==null&&clearTimeout(o),a(),X.current===c&&(X.current=null))};a=n.on(e,e=>{if(i!==Y.current||!J.current){c();return}c(),r(e.payload)}),o=setTimeout(()=>{i===Y.current&&J.current&&(c(),C(`The memory store did not respond. Check the WebSocket connection and try again.`))},2e4),X.current=c,t()},[n]),rt=(0,K.useMemo)(()=>ut(p,{searchQuery:R,statusFilter:z,kindFilter:V,tagFilter:H,audienceOnly:ve}),[ve,V,p,R,z,H]),it=(0,K.useMemo)(()=>dt(p),[p]),at=(0,K.useMemo)(()=>ft(Z),[Z]),ot=(0,K.useCallback)(()=>{me(``),B(`all`),ge(`all`),ye(!1),Se(null)},[]);return{client:n,wsConnected:f,memories:p,stats:h,initialLoading:ee,refreshing:v,loadError:b,mutationError:S,setMutationError:C,notice:w,setNotice:T,selectedId:E,setSelectedId:D,selectedMemory:Z,graphEdges:te,graphMemories:k,graphError:ne,graphLoading:ie,editing:oe,creating:N,draft:P,setDraft:ce,busyAction:ue,deletingId:de,setDeletingId:fe,searchQuery:R,setSearchQuery:me,searchBreakdown:L,clearSearchBreakdown:()=>{ze.current+=1,q.current?.(),pe({hits:[],channel:void 0,loading:!1,error:null})},statusFilter:z,setStatusFilter:B,kindFilter:V,setKindFilter:ge,audienceOnly:ve,setAudienceOnly:ye,tagFilter:H,setTagFilter:Se,libraryView:Ce,setLibraryView:we,showDeleted:Te,showReview:Ee,hasMore:ke,loadingMore:U,statusCounts:Me,drawerOpen:Pe,setDrawerOpen:G,currentFilePath:Fe,setCurrentFilePath:Ie,knownFilePaths:He,filteredMemories:rt,allTags:it,relatedMemories:at,hasFilters:!!(R||z!==`all`||V!==`all`||H||ve),detailOpen:N||!!Z,drawerActive:Pe&&!!Fe,loadMemories:Q,loadMore:Ke,openCreate:Je,openMemory:Ye,openEdit:Xe,cancelEditor:Ze,submitCreate:$e,submitUpdate:et,confirmDelete:tt,sendWithAck:nt,clearFilters:ot,resolveMemoryCandidate:u,updateSage:o,recoverSage:l,listMemoryCandidates:i}}function ht(){let{t:e}=j(),t=ue(e=>e.setCurrentView),n=V(`memory`),r=mt();return r.initialLoading&&r.memories.length===0?(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-background`,"aria-busy":`true`,children:[(0,G.jsxs)(`div`,{className:`border-b border-border/70 bg-card/70 px-5 py-4`,children:[(0,G.jsx)(`div`,{className:`h-3 w-28 animate-pulse bg-muted`}),(0,G.jsx)(`div`,{className:`mt-3 h-7 w-56 animate-pulse bg-muted`})]}),(0,G.jsxs)(`div`,{className:`grid flex-1 gap-px bg-border/60 md:grid-cols-[minmax(300px,0.82fr)_minmax(0,1.35fr)]`,children:[(0,G.jsx)(`div`,{className:`space-y-px bg-background p-4`,children:Array.from({length:7},(e,t)=>(0,G.jsx)(`div`,{className:`h-24 animate-pulse border border-border/60 bg-card/45`},t))}),(0,G.jsx)(`div`,{className:`hidden bg-background p-6 md:block`,children:(0,G.jsx)(`div`,{className:`h-full animate-pulse border border-border/60 bg-card/35`})})]}),(0,G.jsx)(`span`,{className:`sr-only`,role:`status`,children:e(`activity:memoryManager.loadingSageContent`)})]}):r.loadError&&r.memories.length===0?(0,G.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center bg-background p-6`,children:(0,G.jsxs)(`div`,{className:`max-w-md border border-destructive/35 bg-card p-6 shadow-2xl`,children:[(0,G.jsx)(`span`,{className:`flex size-11 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,G.jsx)(_,{className:`size-5`})}),(0,G.jsx)(`h2`,{className:`mt-4 text-lg font-bold`,children:e(`activity:memoryManager.storeUnavailable`)}),(0,G.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-muted-foreground`,children:r.loadError}),(0,G.jsxs)(`div`,{className:`mt-5 flex gap-2`,children:[(0,G.jsxs)(z,{onClick:r.loadMemories,children:[(0,G.jsx)(h,{className:`size-4`}),` `,e(`common:action.retry`)]}),(0,G.jsxs)(z,{variant:`outline`,onClick:()=>t(`chat`),children:[(0,G.jsx)(A,{className:`size-4`}),` `,e(`activity:memoryManager.backToChat`)]})]})]})}):(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden bg-background`,children:[(0,G.jsx)(rt,{wsConnected:r.wsConnected,refreshing:r.refreshing,onRefresh:r.loadMemories,onCreate:r.openCreate}),(0,G.jsx)(it,{stats:r.stats,memories:r.memories,filteredCount:r.filteredMemories.length,allTagsCount:r.allTags.length}),(r.notice||r.loadError||r.mutationError)&&(0,G.jsxs)(`div`,{className:`shrink-0 border-b border-border/70 px-4 py-2`,"aria-live":`polite`,children:[r.notice&&(0,G.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 text-xs text-success`,children:[(0,G.jsx)(d,{className:`size-3.5`}),` `,r.notice]}),r.loadError&&(0,G.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 text-xs text-warning`,children:[(0,G.jsx)(_,{className:`size-3.5`}),` `,r.loadError,` Existing content remains available.`]}),r.mutationError&&!r.editing&&!r.creating&&(0,G.jsxs)(`div`,{role:`alert`,className:`flex items-center gap-2 text-xs text-destructive`,children:[(0,G.jsx)(_,{className:`size-3.5`}),` `,r.mutationError]})]}),(0,G.jsxs)(`div`,{className:`grid min-h-0 flex-1 md:grid-cols-[minmax(320px,0.82fr)_minmax(0,1.35fr)]`,children:[(0,G.jsxs)(`section`,{className:F(`min-h-0 border-r border-border/70 bg-card/25`,r.detailOpen?`hidden md:flex md:flex-col`:`flex flex-col`),"aria-label":e(`activity:memoryManager.libraryAria`),children:[(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 border-b border-border/60 px-3 pt-1`,role:`tablist`,"aria-label":e(`activity:memoryManager.viewAria`),children:[(0,G.jsx)(z,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":r.libraryView===`active`,onClick:()=>r.setLibraryView(`active`),className:F(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,r.libraryView===`active`?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:e(`activity:memoryManager.tabActive`)}),(0,G.jsx)(z,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":r.showReview,onClick:()=>r.setLibraryView(`review`),className:F(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,r.showReview?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:e(`activity:memoryManager.tabReview`)}),(0,G.jsxs)(z,{type:`button`,variant:`ghost`,size:`sm`,role:`tab`,"aria-selected":r.showDeleted,onClick:()=>r.setLibraryView(`deleted`),className:F(`h-7 rounded-b-none border-b-2 px-3 text-[11px]`,r.showDeleted?`border-primary text-foreground`:`border-transparent text-muted-foreground`),children:[e(`activity:memoryManager.tabDeleted`),typeof r.statusCounts.deleted==`number`?` (${r.statusCounts.deleted})`:``]})]}),r.showReview?(0,G.jsx)(lt,{active:r.showReview,client:r.client,listCandidates:r.listMemoryCandidates,resolveCandidate:r.resolveMemoryCandidate,onOpenMemory:r.openMemory}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ze,{searchQuery:r.searchQuery,statusFilter:r.statusFilter,kindFilter:r.kindFilter,audienceOnly:r.audienceOnly,tagFilter:r.tagFilter,hasFilters:r.hasFilters,allTags:r.allTags,stats:r.stats,onSearchChange:r.setSearchQuery,onStatusFilterChange:r.setStatusFilter,onKindFilterChange:r.setKindFilter,onToggleAudienceOnly:()=>r.setAudienceOnly(e=>!e),onTagFilterChange:r.setTagFilter,onClearFilters:r.clearFilters}),(0,G.jsx)($e,{memoryListRef:n,memories:r.memories,filteredMemories:r.filteredMemories,selectedId:r.selectedId,onSelectMemory:r.openMemory,onOpenCreate:r.openCreate,onClearFilters:r.clearFilters}),r.searchQuery.trim().length>0&&(0,G.jsx)(at,{query:r.searchQuery.trim(),channel:r.searchBreakdown.channel,hits:r.searchBreakdown.hits,loading:r.searchBreakdown.loading,error:r.searchBreakdown.error,onOpenMemory:r.openMemory,onClear:r.clearSearchBreakdown}),r.hasMore?(0,G.jsx)(`div`,{className:`shrink-0 border-t border-border/60 p-2`,children:(0,G.jsx)(z,{type:`button`,variant:`outline`,size:`sm`,onClick:r.loadMore,disabled:r.loadingMore,className:`h-7 w-full text-[11px]`,children:r.loadingMore?e(`common:action.loading`):`Load more (${r.memories.length} loaded)`})}):null]})]}),(0,G.jsxs)(`section`,{className:F(`min-h-0 bg-background`,r.detailOpen?`flex flex-col`:`hidden md:flex md:flex-col`),"aria-label":e(`activity:memoryManager.detailAria`),children:[r.memories.some(e=>(e.anchors??[]).some(e=>e.type===`file`&&e.path))&&(0,G.jsx)(Ye,{currentFilePath:r.currentFilePath,knownFilePaths:r.knownFilePaths,drawerActive:r.drawerActive,onFilePathChange:e=>{e&&r.knownFilePaths.has(e)?(r.setCurrentFilePath(e),r.setDrawerOpen(!0)):e?r.setCurrentFilePath(e):r.setCurrentFilePath(null)},onToggleDrawer:()=>{r.currentFilePath&&r.setDrawerOpen(e=>!e)}}),r.creating?(0,G.jsx)(Xe,{mode:`create`,draft:r.draft,busy:r.busyAction===`create`,error:r.mutationError,onChange:r.setDraft,onCancel:r.cancelEditor,onSubmit:r.submitCreate}):r.selectedMemory?r.editing?(0,G.jsx)(Xe,{mode:`edit`,draft:r.draft,busy:r.busyAction===`update`,error:r.mutationError,onChange:r.setDraft,onCancel:r.cancelEditor,onSubmit:r.submitUpdate}):r.drawerActive?(0,G.jsx)(Pe,{filePath:r.currentFilePath,open:r.drawerActive,onClose:()=>r.setDrawerOpen(!1),onShowMemory:e=>r.setSelectedId(e),onAcceptDeletion:(e,t)=>{r.sendWithAck(`memory.sage.candidateResolve`,()=>r.resolveMemoryCandidate({candidateId:e,action:`accept`}),n=>{if(n.error){r.setMutationError(n.error);return}r.setNotice(`Accepted hygiene review for ${t.slice(0,12)}… (candidate ${e.slice(0,12)}…).`),r.loadMemories()})},onKeep:(e,t)=>{r.sendWithAck(`memory.sage.candidateResolve`,()=>r.resolveMemoryCandidate({candidateId:e,action:`reject`}),n=>{if(n.error){r.setMutationError(n.error);return}r.setNotice(`Kept ${t.slice(0,12)}… (candidate ${e.slice(0,12)}… rejected).`),r.loadMemories()})},onUpdate:e=>{r.openEdit(e)},onMarkPermanent:e=>{r.sendWithAck(`memory.sage.update`,()=>r.updateSage(e,{persistence:`permanent`}),t=>{if(t.error||!t.memory){r.setMutationError(t.error??`The server returned no memory record.`);return}r.setNotice(`Memory ${e.slice(0,12)}… promoted to permanent.`),r.loadMemories()})},onRecover:e=>{r.sendWithAck(`memory.sage.recover`,()=>r.recoverSage({id:e,reason:`recovered via file drawer`}),t=>{if(t.error){r.setMutationError(t.error);return}r.setNotice(`Recovered ${e.slice(0,12)}…`),r.loadMemories()})}}):(0,G.jsx)(We,{memory:r.selectedMemory,allMemories:[...r.memories,...r.graphMemories],relatedMemories:r.relatedMemories,graphEdges:r.graphEdges,graphLoading:r.graphLoading,graphError:r.graphError,onClose:()=>r.setSelectedId(null),onOpenMemory:r.openMemory,onEdit:r.openEdit,onDelete:()=>r.setDeletingId(r.selectedMemory.id),onTagSelect:e=>{r.setTagFilter(e),r.setSelectedId(null)},onNotice:r.setNotice}):(0,G.jsx)(nt,{onCapture:r.openCreate})]})]}),(0,G.jsx)(Fe,{busyAction:r.busyAction,deletingId:r.deletingId,memory:r.selectedMemory,onCancel:()=>r.setDeletingId(null),onConfirm:r.confirmDelete,onOpenChange:e=>{!e&&r.busyAction!==`delete`&&r.setDeletingId(null)}})]})}export{ht as MemoryManager};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{U as t,mt as n,t as r}from"./config-store-BAUadwHd.js";import{i,t as a}from"./react-core-wiHys0m2.js";import{cn as o,hn as s,tn as c,xo as l}from"./vendor-V3ydTHqN.js";import"./i18n-CbyUyl6G.js";import{t as u}from"./utils-CKsqCaP8.js";import"./stores-RkHrTaRO.js";import{n as d,o as f,r as p,t as m}from"./dialog-C7EIBM_2.js";import{L as h}from"./index-3TGBKeBP.js";var g=e(i(),1),_=a();function v({open:e,onClose:i,className:a}){let{t:v}=l(),[y,b]=(0,g.useState)([]),x=n(),S=h(),C=r(e=>e.wsConnected),w=(0,g.useRef)(null),T=(0,g.useRef)(null);(0,g.useEffect)(()=>{if(!e||!C||!S.client?.isConnected)return;b([]);let n=()=>{let e=S.client.withSession?.({})??(x?{sessionId:x}:{});S.client.send?.({type:`process.list`,payload:e})};return n(),w.current=S.client.on?.(`process.list`,e=>{let n=e?.payload;n?.processes&&t(n.sessionId,x)&&b(n.processes)})??null,T.current=setInterval(n,3e3),()=>{w.current?.(),T.current&&clearInterval(T.current)}},[e,C,S.client,x]);let E=y.filter(e=>e.status===`running`),D=(0,g.useCallback)(e=>{if(e.background&&!window.confirm(v(`activity:process.confirmKillBackground`,{pid:e.pid,defaultValue:`Terminate detached background process ${e.pid}?`})))return;let t=S.client.withSession?.({pid:e.pid})??{pid:e.pid};S.client.send?.({type:`process.kill`,payload:t})},[v,S.client]),O=(0,g.useCallback)(()=>{if(!window.confirm(v(`activity:process.confirmKillAll`,{count:E.length,defaultValue:`Terminate all ${E.length} running processes?`})))return;let e=S.client.withSession?.({})??(x?{sessionId:x}:{});S.client.send?.({type:`process.killAll`,payload:e})},[E.length,v,S.client,x]);return(0,_.jsx)(m,{open:e,onOpenChange:e=>{e||i()},children:(0,_.jsxs)(d,{className:u(`max-w-lg gap-0 p-0 overflow-hidden flex flex-col max-h-[75dvh] pt-[10dvh]`,a),showCloseButton:!1,children:[(0,_.jsx)(f,{className:`sr-only`,children:v(`activity:process.heading`)}),(0,_.jsx)(p,{className:`sr-only`,children:v(`activity:process.subtitle`,{active:E.length,total:y.length})}),(0,_.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b shrink-0`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,_.jsx)(`span`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-warning/10 text-warning`,children:(0,_.jsx)(c,{className:`h-4 w-4`})}),(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`h2`,{className:`text-sm font-semibold`,children:v(`activity:process.heading`)}),(0,_.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:v(`activity:process.subtitle`,{active:E.length,total:y.length})})]})]}),(0,_.jsx)(`div`,{className:`flex items-center gap-1`,children:E.length>0&&(0,_.jsxs)(`button`,{type:`button`,onClick:O,className:`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs text-destructive hover:bg-destructive/10 transition-colors font-medium`,children:[(0,_.jsx)(o,{className:`h-3 w-3 fill-current`}),v(`activity:process.killAll`)]})})]}),(0,_.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain`,children:y.length===0?(0,_.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 gap-3 text-muted-foreground`,children:[(0,_.jsx)(c,{className:`h-10 w-10 opacity-15`}),(0,_.jsx)(`p`,{className:`text-sm font-medium`,children:v(`activity:process.emptyTitle`)}),(0,_.jsx)(`p`,{className:`text-xs text-center max-w-xs`,children:v(`activity:process.emptyBody`)})]}):(0,_.jsx)(`div`,{className:`divide-y`,children:y.map(e=>{let t=e.status===`running`?Math.floor((Date.now()-e.startedAt)/1e3):null,n=t?t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`:null,r=e.protected===!0,i=e.background===!0;return(0,_.jsxs)(`div`,{className:u(`flex items-center justify-between px-4 py-3 text-xs transition-colors`,e.status===`running`?`bg-background hover:bg-muted/30`:`bg-muted/20 text-muted-foreground`),children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,_.jsx)(`span`,{className:u(`led shrink-0`,e.status===`running`?r?`text-info`:`text-success led-pulse`:`text-muted-foreground`)}),(0,_.jsxs)(`div`,{className:`min-w-0`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,_.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground shrink-0`,children:v(`activity:process.pidLabel`,{pid:e.pid})}),(0,_.jsx)(`span`,{className:`font-medium truncate`,children:e.tool}),r&&(0,_.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 px-1 py-0.5 rounded text-[9px] bg-info/10 text-info font-medium shrink-0`,title:v(`activity:process.protectedTitle`),children:[(0,_.jsx)(s,{className:`h-2.5 w-2.5`}),v(`activity:process.protected`)]}),i&&(0,_.jsx)(`span`,{className:`inline-flex items-center px-1 py-0.5 rounded text-[9px] bg-success/10 text-success font-medium shrink-0`,title:v(`activity:process.backgroundTitle`),children:v(`activity:process.background`)})]}),(0,_.jsx)(`code`,{className:`text-[10px] text-muted-foreground/70 truncate block mt-0.5 font-mono`,children:e.command})]})]}),(0,_.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0 ml-3`,children:[n&&(0,_.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:n}),e.status===`running`&&!r&&(0,_.jsx)(`button`,{type:`button`,onClick:()=>D(e),className:`p-1.5 rounded-md hover:bg-destructive/10 hover:text-destructive transition-colors`,title:v(`activity:process.killTitle`,{pid:e.pid}),children:(0,_.jsx)(o,{className:`h-3.5 w-3.5 fill-current`})})]})]},e.pid)})})})]})})}export{v as ProcessMonitor};
@@ -1,2 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{nt as t,t as n}from"./config-store-BAUadwHd.js";import{i as r,t as i}from"./react-core-wiHys0m2.js";import{Dn as a,Ii as o,Mr as s,Pa as c,Ua as l,Vn as u,ai as d,ci as f,co as p,da as m,ea as h,ii as g,ja as _,pi as ee,rn as v,si as te,wa as y}from"./vendor-V3ydTHqN.js";import{t as b}from"./utils-CKsqCaP8.js";import{o as x}from"./view-navigation-DHtNFXIl.js";import"./stores-RkHrTaRO.js";import{a as S,n as ne,o as re,r as ie,t as ae}from"./dialog-C7EIBM_2.js";import{F as oe,L as C}from"./index-3TGBKeBP.js";var w=e(r(),1),T=i(),E=[`#9b87f5`,`#37c9a2`,`#f2b95f`,`#67a7ff`,`#e879b8`,`#f07178`],D=48,O=15,k=`flex h-[44%] min-h-[230px] max-h-[460px] shrink-0 flex-col overflow-hidden border-t border-border/70 bg-card/35 shadow-[0_-16px_40px_-34px_hsl(var(--primary)/0.8)] sm:h-[36%] sm:max-h-[390px] sm:flex-row`;function A(e){let t=[],n=[],r=new Map(e.map((e,t)=>[e.hash,t]));for(let r of e){let e=t.indexOf(r.hash);e<0&&(e=t.indexOf(void 0),e<0&&(e=t.length)),n.push(e),t[e]=r.parents[0];for(let e of r.parents.slice(1)){if(t.includes(e))continue;let n=t.indexOf(void 0);n<0&&(n=t.length),t[n]=e}}let i=new Map(e.map((e,t)=>[e.hash,n[t]??0])),a=e.flatMap((e,t)=>e.parents.flatMap(e=>{let a=r.get(e);return a===void 0?[]:[{fromRow:t,fromLane:n[t]??0,toRow:a,toLane:i.get(e)??0}]}));return{lanes:n,laneCount:Math.max(1,...n.map(e=>e+1)),edges:a}}function j(e){return e.slice(0,7)}function M(e){let t=Date.now()-new Date(e).getTime();if(!Number.isFinite(t))return e;let n=Math.max(0,Math.round(t/6e4));if(n<60)return`${n}m`;let r=Math.round(n/60);if(r<48)return`${r}h`;let i=Math.round(r/24);return i<60?`${i}d`:new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`}).format(new Date(e))}function N(e){return e.split(/\s+/).slice(0,2).map(e=>e[0]?.toUpperCase()).join(``)}function P(e){return e.startsWith(`tag: `)?`border-amber-400/35 bg-amber-400/10 text-amber-500`:e.includes(`/`)?`border-emerald-400/30 bg-emerald-400/10 text-emerald-500`:`border-violet-400/35 bg-violet-400/12 text-violet-400`}function se({commits:e,layout:t}){let n=22+t.laneCount*O;return(0,T.jsxs)(`svg`,{"aria-label":`Commit topology`,className:`pointer-events-none absolute inset-y-0 left-0`,width:n,height:e.length*D,viewBox:`0 0 ${n} ${e.length*D}`,children:[t.edges.map((e,t)=>{let n=14+e.fromLane*O,r=14+e.toLane*O,i=e.fromRow*D+D/2,a=e.toRow*D+D/2,o=Math.min(18,Math.max(8,(a-i)*.35));return(0,T.jsx)(`path`,{d:`M ${n} ${i} C ${n} ${i+o}, ${r} ${a-o}, ${r} ${a}`,fill:`none`,stroke:E[e.fromLane%E.length],strokeWidth:`2`,strokeLinecap:`round`,opacity:`0.9`},`${e.fromRow}-${e.toRow}-${t}`)}),e.map((e,n)=>{let r=t.lanes[n]??0,i=e.parents.length>1;return(0,T.jsxs)(`g`,{children:[(0,T.jsx)(`circle`,{cx:14+r*O,cy:n*D+D/2,r:i?5:4,fill:`hsl(var(--background))`,stroke:E[r%E.length],strokeWidth:i?2.5:2}),!i&&(0,T.jsx)(`circle`,{cx:14+r*O,cy:n*D+D/2,r:`1.5`,fill:E[r%E.length]})]},e.hash)})]})}function ce({refs:e,activeRef:t,onSelect:n}){let r=[{kind:`local`,label:`Local branches`,icon:f},{kind:`remote`,label:`Remotes`,icon:d},{kind:`tag`,label:`Tags`,icon:v}];return(0,T.jsxs)(`aside`,{className:`hidden min-h-0 w-[218px] shrink-0 flex-col border-r border-border/70 bg-card/35 xl:flex`,children:[(0,T.jsxs)(`div`,{className:`border-b border-border/60 px-4 py-3`,children:[(0,T.jsx)(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:`Repository`}),(0,T.jsxs)(`button`,{type:`button`,onClick:()=>n(``),className:b(`mt-2 flex w-full items-center gap-2 rounded-lg px-2.5 py-2 text-left text-xs transition-colors`,t===``?`bg-primary/12 text-primary`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[(0,T.jsx)(l,{className:`h-3.5 w-3.5`}),` All branches`]})]}),(0,T.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-2 py-3`,children:r.map(({kind:r,label:i,icon:a})=>{let o=e.filter(e=>e.kind===r);return o.length===0?null:(0,T.jsxs)(`section`,{className:`mb-5`,children:[(0,T.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 px-2 text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground/75`,children:[(0,T.jsx)(a,{className:`h-3 w-3`}),` `,i,(0,T.jsx)(`span`,{className:`ml-auto font-mono`,children:o.length})]}),o.map(e=>(0,T.jsxs)(`button`,{type:`button`,onClick:()=>n(e.name),title:e.name,className:b(`group flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-[11px] transition-colors`,t===e.name?`bg-primary/12 text-primary`:`text-muted-foreground hover:bg-muted/55 hover:text-foreground`),children:[(0,T.jsx)(`span`,{className:b(`h-1.5 w-1.5 shrink-0 rounded-full`,e.current?`bg-primary shadow-[0_0_8px_hsl(var(--primary))]`:`bg-muted-foreground/45`)}),(0,T.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.shortName}),e.current&&(0,T.jsx)(c,{className:`h-3 w-3`})]},e.name))]},r)})})]})}function le({commit:e,detail:t,loading:n,onOpenFile:r}){let[i,a]=(0,w.useState)(!1);if(!e)return(0,T.jsx)(`section`,{className:`flex h-[34%] min-h-[210px] shrink-0 items-center justify-center border-t border-border/70 bg-card/30 p-6 text-center text-xs text-muted-foreground`,children:`Select a commit to inspect its files and metadata.`});let l=t?.files??[],u=l.reduce((e,t)=>e+t.added,0),d=l.reduce((e,t)=>e+t.deleted,0),f=t?.body?.split(/\r?\n/).slice(1).join(`
2
- `).trim();return(0,T.jsxs)(`section`,{className:k,children:[(0,T.jsxs)(`div`,{className:`w-full max-w-none shrink-0 overflow-y-auto border-b border-border/70 px-5 py-4 sm:w-[34%] sm:min-w-[250px] sm:max-w-[440px] sm:border-b-0 sm:border-r`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2 text-[10px] font-bold uppercase tracking-[0.17em] text-muted-foreground`,children:[(0,T.jsx)(y,{className:`h-3.5 w-3.5 text-primary`}),` Commit details`]}),(0,T.jsx)(`h2`,{className:`mt-3 text-sm font-semibold leading-5 text-foreground`,children:e.subject}),(0,T.jsxs)(`div`,{className:`mt-3 flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`flex h-7 w-7 items-center justify-center rounded-full border border-primary/25 bg-primary/10 text-[10px] font-bold text-primary`,children:N(e.author)}),(0,T.jsxs)(`div`,{className:`min-w-0`,children:[(0,T.jsx)(`div`,{className:`truncate text-xs font-medium`,children:e.author}),(0,T.jsx)(`div`,{className:`truncate text-[10px] text-muted-foreground`,children:e.email})]})]}),(0,T.jsxs)(`button`,{type:`button`,onClick:async()=>{await navigator.clipboard?.writeText(e.hash),a(!0),window.setTimeout(()=>a(!1),1200)},className:`mt-4 flex w-full items-center justify-between rounded-lg border border-border/70 bg-background/55 px-3 py-2 font-mono text-[11px] text-muted-foreground hover:border-primary/35 hover:text-foreground`,children:[(0,T.jsx)(`span`,{children:j(e.hash)}),i?(0,T.jsx)(c,{className:`h-3.5 w-3.5 text-success`}):(0,T.jsx)(h,{className:`h-3.5 w-3.5`})]}),(0,T.jsxs)(`div`,{className:`mt-3 grid grid-cols-2 overflow-hidden rounded-lg border border-border/70`,children:[(0,T.jsxs)(`div`,{className:`border-r border-border/70 p-3`,children:[(0,T.jsx)(`div`,{className:`text-lg font-semibold tabular-nums`,children:l.length}),(0,T.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-muted-foreground`,children:`Files`})]}),(0,T.jsxs)(`div`,{className:`p-3`,children:[(0,T.jsxs)(`div`,{className:`font-mono text-xs`,children:[(0,T.jsxs)(`span`,{className:`text-success`,children:[`+`,u]}),` `,(0,T.jsxs)(`span`,{className:`text-destructive`,children:[`-`,d]})]}),(0,T.jsx)(`div`,{className:`mt-1 text-[10px] uppercase tracking-wider text-muted-foreground`,children:`Lines`})]})]}),(0,T.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-[11px] text-muted-foreground`,children:[(0,T.jsx)(m,{className:`h-3.5 w-3.5`}),new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e.authoredAt))]}),e.parents.length>1&&(0,T.jsxs)(`div`,{className:`mt-2 flex items-center gap-2 text-[11px] text-violet-400`,children:[(0,T.jsx)(g,{className:`h-3.5 w-3.5`}),`Merge of `,e.parents.length,` parents`]}),f&&(0,T.jsx)(`p`,{className:`mt-4 whitespace-pre-wrap rounded-lg border border-border/60 bg-background/45 px-3 py-2.5 text-[11px] leading-5 text-muted-foreground`,children:f}),e.refs.length>0&&(0,T.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-1.5`,children:e.refs.map(e=>(0,T.jsx)(`span`,{className:b(`rounded-md border px-1.5 py-0.5 text-[9px]`,P(e)),children:e.replace(/^tag: /,``)},e))})]}),(0,T.jsxs)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto p-4 sm:p-5`,children:[(0,T.jsx)(`div`,{className:`mt-5 text-[10px] font-bold uppercase tracking-[0.15em] text-muted-foreground`,children:`Changed files`}),n?(0,T.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,T.jsx)(s,{className:`h-3.5 w-3.5 animate-spin`}),`Loading changes…`]}):t?.error?(0,T.jsx)(`div`,{className:`py-5 text-xs text-destructive`,children:t.error}):(0,T.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[l.map(e=>(0,T.jsxs)(`button`,{type:`button`,onClick:()=>r(e),className:`group w-full rounded-lg border border-transparent px-2 py-2 text-left transition-colors hover:border-primary/30 hover:bg-primary/[0.055]`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(o,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,T.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px]`,title:e.path,children:e.path}),(0,T.jsx)(_,{className:`h-3 w-3 shrink-0 text-muted-foreground opacity-0 transition-all group-hover:translate-x-0.5 group-hover:opacity-100`})]}),(0,T.jsxs)(`div`,{className:`mt-1 pl-5 font-mono text-[10px]`,children:[(0,T.jsxs)(`span`,{className:`text-success`,children:[`+`,e.added]}),(0,T.jsxs)(`span`,{className:`ml-2 text-destructive`,children:[`-`,e.deleted]})]})]},e.path)),l.length===0&&(0,T.jsx)(`div`,{className:`py-5 text-xs text-muted-foreground`,children:`No file changes reported.`})]})]})]})}function F(){let{client:e}=C(),r=n(e=>e.wsConnected),i=t(e=>e.files),[c,l]=(0,w.useState)(null),[m,h]=(0,w.useState)(null),[v,y]=(0,w.useState)(null),[E,k]=(0,w.useState)(``),[F,ue]=(0,w.useState)(``),[I,L]=(0,w.useState)(!0),[R,z]=(0,w.useState)(!1),[B,V]=(0,w.useState)(null),[H,U]=(0,w.useState)(!1),[de,W]=(0,w.useState)(!1),G=(0,w.useRef)(null),K=(0,w.useRef)(null);G.current=v;let q=(0,w.useCallback)((t,n=0)=>{e&&r&&(L(!0),e.getGitHistory({...t?{ref:t}:{},limit:160,skip:n}),e.getGitChanges())},[e,r]);(0,w.useEffect)(()=>{if(!e)return;let t=e.on(`git.history`,e=>{l(t=>e.payload.skip>0&&t?{...e.payload,commits:[...t.commits,...e.payload.commits],refs:t.refs}:e.payload),L(!1);let t=e.payload.commits[0]?.hash??null;y(n=>e.payload.skip>0||n&&e.payload.commits.some(e=>e.hash===n)?n:t)}),n=e.on(`git.commit_detail`,e=>{e.payload.hash===G.current&&(h(e.payload),z(!1))}),r=e.on(`git.commit_file_diff`,e=>{`${e.payload.hash}:${e.payload.path}`===K.current&&(V(e.payload),W(!1))});return q(``),()=>{t(),n(),r()}},[e,q]),(0,w.useEffect)(()=>{v&&e&&(h(null),z(!0),e.getGitCommitDetail(v))},[e,v]);let J=(0,w.useMemo)(()=>{let e=F.trim().toLowerCase();return e?(c?.commits??[]).filter(t=>`${t.subject} ${t.author} ${t.email} ${t.hash} ${t.refs.join(` `)}`.toLowerCase().includes(e)):c?.commits??[]},[c?.commits,F]),Y=(0,w.useMemo)(()=>A(J),[J]),X=22+Y.laneCount*O,fe=c?.commits.find(e=>e.hash===v)??null,Z=(0,w.useMemo)(()=>{let e=c?.commits??[];return{commits:e.length,contributors:new Set(e.map(e=>e.email||e.author)).size,merges:e.filter(e=>e.parents.length>1).length,branches:(c?.refs??[]).filter(e=>e.kind!==`tag`).length}},[c]),Q=e=>{k(e),y(null),h(null),q(e)},$=e=>{if(J.length===0)return;let t=Math.max(0,J.findIndex(e=>e.hash===v));y(J[Math.max(0,Math.min(J.length-1,t+e))]?.hash??null)};return(0,T.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 flex-col overflow-hidden bg-[radial-gradient(circle_at_48%_-20%,hsl(var(--primary)/0.10),transparent_42%),hsl(var(--background))]`,"data-testid":`repository-history-view`,children:[(0,T.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 overflow-hidden`,children:[(0,T.jsx)(ce,{refs:c?.refs??[],activeRef:E,onSelect:Q}),(0,T.jsxs)(`section`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,T.jsxs)(`header`,{className:`shrink-0 border-b border-border/70 bg-card/30 px-4 py-3 backdrop-blur-xl sm:px-5`,children:[(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,T.jsx)(`div`,{children:(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`flex h-8 w-8 items-center justify-center rounded-xl border border-primary/25 bg-primary/10 text-primary shadow-[0_0_22px_hsl(var(--primary)/0.12)]`,children:(0,T.jsx)(d,{className:`h-4 w-4`})}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h1`,{className:`text-base font-semibold tracking-tight`,children:`Repository history`}),(0,T.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:`Every branch. One clear picture.`})]})]})}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsxs)(`span`,{className:`hidden rounded-full border border-border/70 bg-background/55 px-2.5 py-1 font-mono text-[10px] text-muted-foreground sm:inline-flex`,children:[(0,T.jsx)(f,{className:`mr-1.5 h-3 w-3 text-primary`}),c?.currentBranch||`—`]}),(0,T.jsxs)(`button`,{type:`button`,onClick:()=>q(E),className:`inline-flex h-8 items-center gap-1.5 rounded-lg border border-border/70 bg-background/55 px-2.5 text-xs text-muted-foreground transition-colors hover:border-primary/35 hover:text-foreground`,children:[(0,T.jsx)(u,{className:b(`h-3.5 w-3.5`,I&&`animate-spin`)}),`Refresh`]})]})]}),(0,T.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,T.jsxs)(`label`,{className:`relative min-w-[220px] flex-1`,children:[(0,T.jsx)(a,{className:`pointer-events-none absolute left-3 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`}),(0,T.jsx)(`input`,{value:F,onChange:e=>ue(e.target.value),placeholder:`Search commits, authors, hashes…`,className:`h-9 w-full rounded-lg border border-border/70 bg-background/60 pl-9 pr-3 text-xs outline-none transition focus:border-primary/50 focus:ring-2 focus:ring-primary/10`})]}),(0,T.jsxs)(`label`,{className:`relative xl:hidden`,children:[(0,T.jsx)(ee,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`}),(0,T.jsxs)(`select`,{value:E,onChange:e=>Q(e.target.value),className:`h-9 max-w-[190px] appearance-none rounded-lg border border-border/70 bg-background/60 pl-8 pr-7 text-xs outline-none`,children:[(0,T.jsx)(`option`,{value:``,children:`All branches`}),c?.refs.map(e=>(0,T.jsx)(`option`,{value:e.name,children:e.shortName},e.name))]})]})]})]}),(0,T.jsx)(`div`,{className:`grid h-10 shrink-0 grid-cols-4 divide-x divide-border/60 border-b border-border/70 bg-card/20`,children:[[`Commits`,Z.commits],[`Branches`,Z.branches],[`Contributors`,Z.contributors],[`Merges`,Z.merges]].map(([e,t])=>(0,T.jsxs)(`div`,{className:`flex items-center justify-center gap-2 px-2`,children:[(0,T.jsx)(`span`,{className:`font-mono text-xs font-semibold tabular-nums text-foreground`,children:t}),(0,T.jsx)(`span`,{className:`hidden text-[9px] font-semibold uppercase tracking-wider text-muted-foreground sm:inline`,children:e})]},e))}),i.length>0&&(0,T.jsxs)(`button`,{type:`button`,onClick:()=>x(`changes`),className:`group flex h-10 shrink-0 items-center gap-3 border-b border-border/70 bg-primary/[0.055] px-4 text-left text-xs hover:bg-primary/[0.09]`,children:[(0,T.jsx)(`span`,{className:`h-2 w-2 animate-pulse rounded-full border border-primary bg-background`}),(0,T.jsx)(`span`,{className:`font-medium`,children:`Working changes`}),(0,T.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground`,children:i.length}),(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:`Your next chapter starts here`}),(0,T.jsx)(_,{className:`ml-auto h-3.5 w-3.5 text-muted-foreground transition-transform group-hover:translate-x-0.5`})]}),(0,T.jsxs)(`div`,{className:`grid h-7 shrink-0 grid-cols-[minmax(0,1fr)_120px_82px_48px] items-center border-b border-border/70 bg-muted/20 px-3 text-[9px] font-bold uppercase tracking-[0.14em] text-muted-foreground sm:grid-cols-[minmax(0,1fr)_160px_92px_58px]`,children:[(0,T.jsx)(`span`,{style:{paddingLeft:X+10},children:`Graph / commit message`}),(0,T.jsx)(`span`,{children:`Author`}),(0,T.jsx)(`span`,{children:`Commit`}),(0,T.jsx)(`span`,{children:`When`})]}),(0,T.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:I&&!c?(0,T.jsxs)(`div`,{className:`flex h-full items-center justify-center gap-2 text-xs text-muted-foreground`,children:[(0,T.jsx)(s,{className:`h-4 w-4 animate-spin text-primary`}),`Mapping repository history…`]}):c?.error?(0,T.jsx)(`div`,{className:`flex h-full items-center justify-center p-8 text-sm text-destructive`,children:c.error}):J.length===0?(0,T.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 text-sm text-muted-foreground`,children:[(0,T.jsx)(te,{className:`h-7 w-7 opacity-45`}),`No commits match this view.`]}):(0,T.jsxs)(`div`,{className:`relative min-w-[700px]`,style:{height:J.length*D},children:[(0,T.jsx)(se,{commits:J,layout:Y}),J.map((e,t)=>{let n=e.hash===v;return(0,T.jsxs)(`button`,{type:`button`,onClick:()=>y(e.hash),onKeyDown:e=>{(e.key===`ArrowDown`||e.key===`j`)&&(e.preventDefault(),$(1)),(e.key===`ArrowUp`||e.key===`k`)&&(e.preventDefault(),$(-1))},className:b(`absolute left-0 grid w-full grid-cols-[minmax(0,1fr)_120px_82px_48px] items-center border-b border-border/45 pr-3 text-left transition-colors sm:grid-cols-[minmax(0,1fr)_160px_92px_58px]`,n?`bg-primary/[0.075] shadow-[inset_2px_0_hsl(var(--primary))]`:`hover:bg-muted/35`),style:{top:t*D,height:D},children:[(0,T.jsx)(`div`,{className:`flex min-w-0 items-center gap-2`,style:{paddingLeft:X+10},children:(0,T.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[e.refs.slice(0,2).map(e=>(0,T.jsx)(`span`,{className:b(`hidden max-w-[170px] shrink-0 truncate rounded-md border px-1.5 py-0.5 text-[9px] font-medium md:inline`,P(e)),children:e.replace(/^tag: /,``)},e)),(0,T.jsx)(`span`,{className:b(`truncate text-xs`,n?`font-semibold text-foreground`:`text-foreground/90`),children:e.subject}),e.parents.length>1&&(0,T.jsx)(g,{className:`h-3.5 w-3.5 shrink-0 text-violet-400`})]})}),(0,T.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-muted text-[8px] font-bold text-muted-foreground`,children:N(e.author)}),(0,T.jsx)(`span`,{className:`truncate text-[10px] text-muted-foreground`,children:e.author})]}),(0,T.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:j(e.hash)}),(0,T.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:M(e.authoredAt)})]},e.hash)})]})}),(0,T.jsxs)(`footer`,{className:`flex h-7 shrink-0 items-center border-t border-border/70 bg-card/25 px-4 text-[9px] text-muted-foreground`,children:[(0,T.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,T.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full bg-violet-400`}),`Commit`]}),(0,T.jsxs)(`span`,{className:`ml-4 flex items-center gap-1.5`,children:[(0,T.jsx)(`span`,{className:`h-1.5 w-1.5 rounded-full border border-emerald-400`}),`Merge`]}),(0,T.jsxs)(`span`,{className:`ml-auto font-mono`,children:[J.length,` commits · topological order`]}),c?.hasMore&&!F&&(0,T.jsx)(`button`,{type:`button`,onClick:()=>q(E,c.commits.length),disabled:I,className:`ml-3 rounded border border-border/70 px-1.5 py-0.5 font-sans text-[9px] font-semibold uppercase tracking-wider hover:border-primary/40 hover:text-primary disabled:opacity-50`,children:`Load more`}),(0,T.jsx)(p,{className:`ml-2 h-3 w-3`})]})]})]}),(0,T.jsx)(le,{commit:fe,detail:m,loading:R,onOpenFile:t=>{e&&v&&(K.current=`${v}:${t.path}`,V(null),W(!0),U(!0),e.getGitCommitFileDiff(v,t.path,t.previousPath))}}),(0,T.jsx)(ae,{open:H,onOpenChange:U,children:(0,T.jsxs)(ne,{className:`h-[min(86dvh,860px)] max-w-[min(94vw,1180px)] grid-rows-[auto_minmax(0,1fr)] gap-0 overflow-hidden p-0 sm:p-0`,children:[(0,T.jsx)(S,{className:`border-b border-border/70 bg-card/80 px-5 py-4 pr-12`,children:(0,T.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,T.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg border border-primary/25 bg-primary/10 text-primary`,children:(0,T.jsx)(o,{className:`h-4 w-4`})}),(0,T.jsxs)(`div`,{className:`min-w-0`,children:[(0,T.jsx)(re,{className:`truncate font-mono text-sm`,children:B?.path??`Commit file diff`}),(0,T.jsxs)(ie,{className:`mt-1 flex items-center gap-2 text-[11px]`,children:[(0,T.jsx)(`span`,{className:`font-mono`,children:B?j(B.hash):`—`}),B?.previousPath&&B.previousPath!==B.path&&(0,T.jsxs)(`span`,{className:`truncate`,children:[`renamed from `,B.previousPath]})]})]})]})}),(0,T.jsx)(`div`,{className:`min-h-0 overflow-hidden bg-[hsl(var(--surface-2)/0.45)] p-3`,children:(0,T.jsx)(`div`,{className:`flex h-full min-h-0 overflow-hidden rounded-lg border border-border/70 bg-background/70`,children:de||!B?(0,T.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-2 text-sm text-muted-foreground`,children:[(0,T.jsx)(s,{className:`h-4 w-4 animate-spin text-primary`}),` Loading revision diff…`]}):B.error?(0,T.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8 text-sm text-destructive`,children:B.error}):B.binary?(0,T.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:`Binary files cannot be displayed as text.`}):B.tooLarge?(0,T.jsx)(`div`,{className:`flex flex-1 items-center justify-center text-sm text-muted-foreground`,children:`This revision is too large for the inline diff viewer.`}):(0,T.jsx)(oe,{oldText:B.oldText??``,newText:B.newText??``,caption:B.path,fill:!0})})})]})})]})}export{F as RepositoryHistoryView};