Files
daniel 119bb1d0f6 feat: migrate analytics dashboard to Astro + modernize TUI
Analytics Dashboard (Phase 1 + Phase 2):
- Replace 8663-line vanilla JS monolith with Astro static build
- New bento-grid layout with Geist design system (dark/light themes)
- ECharts (offline, tree-shaken) replaces Chart.js CDN dependency
- React island with KPI cards, token timeline, activity heatmap, agent BarList
- WebSocket client with reconnect backoff; polling fallback when WS disconnects
- API client with 30s cache; normalizes backend field names (inputTokens→totalInput)
- Build source in analytics-ui/, output committed to src/analytics-web/
- Fix: /api/activity now uses in-memory cache (was re-scanning all files on each request)
- Fix: remove duplicate /api/agents route (dead code since Express uses first match)
- Fix: /api/data and /api/fast-update no longer mutate this.data.conversations in place

TUI Modernization:
- Add src/tui.js with @clack/prompts-powered banner and helpers
- Replace inline showBanner() in bin/create-claude-config.js with tui.showBanner()
- Migrate showMainMenu() in src/index.js to @clack select() (replaces inquirer)
- Add @clack/prompts ^1.5.1 and gradient-string ^2.0.2 to dependencies

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 13:20:08 -04:00

26 lines
549 B
JSON

{
"name": "analytics-ui",
"private": true,
"type": "module",
"scripts": {
"dev": "astro dev --port 4321",
"build": "astro build",
"preview": "astro preview"
},
"dependencies": {
"echarts": "^5.6.0",
"geist": "^1.4.2"
},
"devDependencies": {
"@astrojs/react": "^4.4.2",
"@tailwindcss/vite": "^4.2.2",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"astro": "^5.17.2",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"tailwindcss": "^4.1.18",
"typescript": "^5.8.3"
}
}