genoma-evolution 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.brv/.obsidian/app.json +1 -0
- package/.brv/.obsidian/appearance.json +1 -0
- package/.brv/.obsidian/core-plugins.json +33 -0
- package/.brv/.obsidian/graph.json +22 -0
- package/.brv/.obsidian/workspace.json +195 -0
- package/.brv/Sin ti/314/201tulo 1.canvas" +1 -0
- package/.brv/Sin ti/314/201tulo 2.canvas" +1 -0
- package/.brv/Sin ti/314/201tulo.canvas" +1 -0
- package/.brv/_queue_status.json +1 -0
- package/.brv/config.json +5 -0
- package/.brv/context-tree/_index.md +60 -0
- package/.brv/context-tree/_manifest.json +165 -0
- package/.brv/context-tree/backend/_index.md +24 -0
- package/.brv/context-tree/backend/backend/_index.md +40 -0
- package/.brv/context-tree/backend/backend/init.abstract.md +0 -0
- package/.brv/context-tree/backend/backend/init.md +27 -0
- package/.brv/context-tree/backend/backend/init.overview.md +29 -0
- package/.brv/context-tree/backend/backend/job_tracker.abstract.md +1 -0
- package/.brv/context-tree/backend/backend/job_tracker.md +273 -0
- package/.brv/context-tree/backend/backend/job_tracker.overview.md +31 -0
- package/.brv/context-tree/backend/backend/main.abstract.md +0 -0
- package/.brv/context-tree/backend/backend/main.md +1292 -0
- package/.brv/context-tree/backend/backend/main.overview.md +30 -0
- package/.brv/context-tree/backend/backend/requirements.abstract.md +1 -0
- package/.brv/context-tree/backend/backend/requirements.md +37 -0
- package/.brv/context-tree/backend/backend/requirements.overview.md +28 -0
- package/.brv/context-tree/docs/_index.md +37 -0
- package/.brv/context-tree/docs/api/_index.md +54 -0
- package/.brv/context-tree/docs/api/context.md +11 -0
- package/.brv/context-tree/docs/api/hermes_api_openapi_specification.abstract.md +0 -0
- package/.brv/context-tree/docs/api/hermes_api_openapi_specification.md +468 -0
- package/.brv/context-tree/docs/api/hermes_api_openapi_specification.overview.md +44 -0
- package/.brv/context-tree/frontend/_index.md +48 -0
- package/.brv/context-tree/frontend/hermes_dashboard/_index.md +31 -0
- package/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.abstract.md +0 -0
- package/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.md +41 -0
- package/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.overview.md +34 -0
- package/.brv/context-tree/frontend/src/_index.md +53 -0
- package/.brv/context-tree/frontend/src/components/_index.md +52 -0
- package/.brv/context-tree/frontend/src/components/sidebar_navigation_component.abstract.md +0 -0
- package/.brv/context-tree/frontend/src/components/sidebar_navigation_component.md +161 -0
- package/.brv/context-tree/frontend/src/components/sidebar_navigation_component.overview.md +32 -0
- package/.brv/context-tree/frontend/src/context.md +10 -0
- package/.brv/context-tree/frontend/src/functioncallingpage.abstract.md +0 -0
- package/.brv/context-tree/frontend/src/functioncallingpage.md +34 -0
- package/.brv/context-tree/frontend/src/functioncallingpage.overview.md +26 -0
- package/.brv/context-tree/frontend/src/lib/_index.md +48 -0
- package/.brv/context-tree/frontend/src/lib/api_client_library.abstract.md +1 -0
- package/.brv/context-tree/frontend/src/lib/api_client_library.md +403 -0
- package/.brv/context-tree/frontend/src/lib/api_client_library.overview.md +69 -0
- package/.brv/context-tree/frontend/src/page.abstract.md +0 -0
- package/.brv/context-tree/frontend/src/page.md +103 -0
- package/.brv/context-tree/frontend/src/page.overview.md +7 -0
- package/.brv/context-tree/frontend/src/settingspage.abstract.md +0 -0
- package/.brv/context-tree/frontend/src/settingspage.md +124 -0
- package/.brv/context-tree/frontend/src/settingspage.overview.md +34 -0
- package/.brv/context-tree/frontend/src/sidebar.abstract.md +0 -0
- package/.brv/context-tree/frontend/src/sidebar.md +170 -0
- package/.brv/context-tree/frontend/src/sidebar.overview.md +25 -0
- package/.brv/context-tree/meta/_index.md +24 -0
- package/.brv/context-tree/meta/curation_context/_index.md +24 -0
- package/.brv/context-tree/meta/curation_context/empty_context.abstract.md +4 -0
- package/.brv/context-tree/meta/curation_context/empty_context.md +35 -0
- package/.brv/context-tree/meta/curation_context/empty_context.overview.md +20 -0
- package/.brv/dream-log/drm-1777341062653.json +33 -0
- package/.brv/dream-state.json +8 -0
- package/.brv/dream.lock +0 -0
- package/.brv/review-backups/docs/api/hermes_api_openapi_specification.md +468 -0
- package/.claude/settings.local.json +7 -0
- package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/app.json +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/appearance.json +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/core-plugins.json +33 -0
- package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/graph.json +22 -0
- package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/workspace.json +195 -0
- package/.claude/worktrees/phase-2-mcp/.brv/Sin t/303/255tulo 1.canvas" +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/Sin t/303/255tulo 2.canvas" +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/Sin t/303/255tulo.canvas" +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/_queue_status.json +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/config.json +5 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/_index.md +60 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/_manifest.json +165 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/_index.md +24 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/_index.md +40 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/init.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/init.md +27 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/init.overview.md +29 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/job_tracker.abstract.md +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/job_tracker.md +273 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/job_tracker.overview.md +31 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/main.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/main.md +1292 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/main.overview.md +30 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/requirements.abstract.md +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/requirements.md +37 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/requirements.overview.md +28 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/_index.md +37 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/_index.md +54 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/context.md +11 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/hermes_api_openapi_specification.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/hermes_api_openapi_specification.md +468 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/hermes_api_openapi_specification.overview.md +44 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/_index.md +48 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/hermes_dashboard/_index.md +31 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.md +41 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.overview.md +34 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/_index.md +53 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/components/_index.md +52 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/components/sidebar_navigation_component.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/components/sidebar_navigation_component.md +161 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/components/sidebar_navigation_component.overview.md +32 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/context.md +10 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/functioncallingpage.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/functioncallingpage.md +34 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/functioncallingpage.overview.md +26 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/lib/_index.md +48 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/lib/api_client_library.abstract.md +1 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/lib/api_client_library.md +403 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/lib/api_client_library.overview.md +69 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/page.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/page.md +103 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/page.overview.md +7 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/settingspage.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/settingspage.md +124 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/settingspage.overview.md +34 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/sidebar.abstract.md +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/sidebar.md +170 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/sidebar.overview.md +25 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/_index.md +24 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/curation_context/_index.md +24 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/curation_context/empty_context.abstract.md +4 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/curation_context/empty_context.md +35 -0
- package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/curation_context/empty_context.overview.md +20 -0
- package/.claude/worktrees/phase-2-mcp/.brv/dream-log/drm-1777341062653.json +33 -0
- package/.claude/worktrees/phase-2-mcp/.brv/dream-state.json +8 -0
- package/.claude/worktrees/phase-2-mcp/.brv/dream.lock +0 -0
- package/.claude/worktrees/phase-2-mcp/.brv/review-backups/docs/api/hermes_api_openapi_specification.md +468 -0
- package/.claude/worktrees/phase-2-mcp/.claude/settings.local.json +13 -0
- package/.claude/worktrees/phase-2-mcp/.kilocode/package-lock.json +378 -0
- package/.claude/worktrees/phase-2-mcp/.kilocode/package.json +5 -0
- package/.claude/worktrees/phase-2-mcp/AGENTS.md +5 -0
- package/.claude/worktrees/phase-2-mcp/CLAUDE.md +29 -0
- package/.claude/worktrees/phase-2-mcp/QA_AUDIT_PLAN.md +156 -0
- package/.claude/worktrees/phase-2-mcp/README.md +316 -0
- package/.claude/worktrees/phase-2-mcp/agent-agnostic-evolution-dashboard.md +405 -0
- package/.claude/worktrees/phase-2-mcp/backend/__init__.py +0 -0
- package/.claude/worktrees/phase-2-mcp/backend/collectors/__init__.py +0 -0
- package/.claude/worktrees/phase-2-mcp/backend/collectors/claude_code_collector.py +277 -0
- package/.claude/worktrees/phase-2-mcp/backend/collectors/hermes_collector.py +68 -0
- package/.claude/worktrees/phase-2-mcp/backend/curator.py +512 -0
- package/.claude/worktrees/phase-2-mcp/backend/eval/__init__.py +19 -0
- package/.claude/worktrees/phase-2-mcp/backend/eval/engine.py +116 -0
- package/.claude/worktrees/phase-2-mcp/backend/eval/scorers.py +201 -0
- package/.claude/worktrees/phase-2-mcp/backend/generate_dataset.py +86 -0
- package/.claude/worktrees/phase-2-mcp/backend/job_tracker.py +232 -0
- package/.claude/worktrees/phase-2-mcp/backend/main.py +1746 -0
- package/.claude/worktrees/phase-2-mcp/backend/mcp_server.py +250 -0
- package/.claude/worktrees/phase-2-mcp/backend/promethean/__init__.py +24 -0
- package/.claude/worktrees/phase-2-mcp/backend/promethean/cycle_orchestrator.py +270 -0
- package/.claude/worktrees/phase-2-mcp/backend/promethean/delta_validator.py +191 -0
- package/.claude/worktrees/phase-2-mcp/backend/promethean/dspy_compiler.py +315 -0
- package/.claude/worktrees/phase-2-mcp/backend/promethean/gepa_strategist.py +213 -0
- package/.claude/worktrees/phase-2-mcp/backend/promethean/models.py +260 -0
- package/.claude/worktrees/phase-2-mcp/backend/promethean/skill_deployer.py +195 -0
- package/.claude/worktrees/phase-2-mcp/backend/promethean/trace_ingestion.py +142 -0
- package/.claude/worktrees/phase-2-mcp/backend/requirements.txt +6 -0
- package/.claude/worktrees/phase-2-mcp/backend/sdd_evolve.py +459 -0
- package/.claude/worktrees/phase-2-mcp/backend/skill_detector.py +227 -0
- package/.claude/worktrees/phase-2-mcp/backend/skill_registry.py +289 -0
- package/.claude/worktrees/phase-2-mcp/backend/storage/__init__.py +5 -0
- package/.claude/worktrees/phase-2-mcp/backend/storage/run_store.py +393 -0
- package/.claude/worktrees/phase-2-mcp/backend/storage/schema.sql +99 -0
- package/.claude/worktrees/phase-2-mcp/backend/validate_evolution.py +267 -0
- package/.claude/worktrees/phase-2-mcp/components.json +28 -0
- package/.claude/worktrees/phase-2-mcp/docs/api/hermes-api.openapi.yaml +438 -0
- package/.claude/worktrees/phase-2-mcp/docs/hero.svg +148 -0
- package/.claude/worktrees/phase-2-mcp/eslint.config.mjs +18 -0
- package/.claude/worktrees/phase-2-mcp/install.sh +245 -0
- package/.claude/worktrees/phase-2-mcp/next-env.d.ts +6 -0
- package/.claude/worktrees/phase-2-mcp/next.config.ts +32 -0
- package/.claude/worktrees/phase-2-mcp/package-lock.json +11936 -0
- package/.claude/worktrees/phase-2-mcp/package.json +41 -0
- package/.claude/worktrees/phase-2-mcp/pnpm-workspace.yaml +4 -0
- package/.claude/worktrees/phase-2-mcp/postcss.config.mjs +7 -0
- package/.claude/worktrees/phase-2-mcp/public/file.svg +1 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Bold.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Heavy.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Medium.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Regular.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Semibold.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Bold.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Heavy.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Medium.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Regular.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Semibold.otf +0 -0
- package/.claude/worktrees/phase-2-mcp/public/globe.svg +1 -0
- package/.claude/worktrees/phase-2-mcp/public/next.svg +1 -0
- package/.claude/worktrees/phase-2-mcp/public/theme-preview.html +257 -0
- package/.claude/worktrees/phase-2-mcp/public/vercel.svg +1 -0
- package/.claude/worktrees/phase-2-mcp/public/window.svg +1 -0
- package/.claude/worktrees/phase-2-mcp/run.sh +26 -0
- package/.claude/worktrees/phase-2-mcp/skills-lock.json +10 -0
- package/.claude/worktrees/phase-2-mcp/specs/event-schema.md +223 -0
- package/.claude/worktrees/phase-2-mcp/specs/examples/run.jsonl +3 -0
- package/.claude/worktrees/phase-2-mcp/src/app/api/[...path]/route.ts +55 -0
- package/.claude/worktrees/phase-2-mcp/src/app/api/auth/token/route.ts +22 -0
- package/.claude/worktrees/phase-2-mcp/src/app/evolution/page.tsx +589 -0
- package/.claude/worktrees/phase-2-mcp/src/app/favicon.ico +0 -0
- package/.claude/worktrees/phase-2-mcp/src/app/globals.css +321 -0
- package/.claude/worktrees/phase-2-mcp/src/app/layout.tsx +63 -0
- package/.claude/worktrees/phase-2-mcp/src/app/page.tsx +70 -0
- package/.claude/worktrees/phase-2-mcp/src/app/skills/page.tsx +369 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ApiConfigCard.tsx +199 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ColorBends.css +1 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ColorBends.d.ts +1 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ColorBends.jsx +1 -0
- package/.claude/worktrees/phase-2-mcp/src/components/CoreLoopToggle.tsx +111 -0
- package/.claude/worktrees/phase-2-mcp/src/components/EnvironmentStatus.tsx +176 -0
- package/.claude/worktrees/phase-2-mcp/src/components/EvolutionBackground.tsx +1 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ReactQueryProvider.tsx +24 -0
- package/.claude/worktrees/phase-2-mcp/src/components/Sidebar.tsx +247 -0
- package/.claude/worktrees/phase-2-mcp/src/components/SkillDiffViewer.tsx +154 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ThemeAwareBackground.tsx +67 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ThemeToggle.tsx +54 -0
- package/.claude/worktrees/phase-2-mcp/src/components/WelcomeHero.tsx +77 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/ClickSpark.tsx +116 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/CountUp.tsx +98 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/DarkSelect.tsx +95 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/DecryptedText.tsx +161 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/ElectricBorder.tsx +184 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/GlitchText.tsx +34 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/ShinyText.tsx +55 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/SpotlightCard.tsx +42 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/TextType.tsx +95 -0
- package/.claude/worktrees/phase-2-mcp/src/components/bits/index.ts +9 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/CuratorPage.tsx +632 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/DatasetPage.tsx +271 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/EvolutionPage.tsx +676 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/FunctionCallingPage.tsx +1 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/LogsPage.tsx +272 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/MetricsPage.tsx +246 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/OverviewPage.tsx +420 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/SettingsPage.tsx +88 -0
- package/.claude/worktrees/phase-2-mcp/src/components/pages/SkillStudioPage.tsx +376 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/animated-theme-toggler.tsx +97 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/button.tsx +67 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/card.tsx +103 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/input.tsx +19 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/separator.tsx +28 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/sheet.tsx +147 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/sidebar.tsx +702 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/skeleton.tsx +13 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/theme-toggle.tsx +272 -0
- package/.claude/worktrees/phase-2-mcp/src/components/ui/tooltip.tsx +57 -0
- package/.claude/worktrees/phase-2-mcp/src/hooks/use-mobile.ts +19 -0
- package/.claude/worktrees/phase-2-mcp/src/lib/api.ts +455 -0
- package/.claude/worktrees/phase-2-mcp/src/lib/queryClient.ts +12 -0
- package/.claude/worktrees/phase-2-mcp/src/lib/utils.ts +6 -0
- package/.claude/worktrees/phase-2-mcp/stitch/agent_dashboard/DESIGN_SPEC.md +521 -0
- package/.claude/worktrees/phase-2-mcp/stitch/agent_dashboard/prototype.html +676 -0
- package/.claude/worktrees/phase-2-mcp/stitch/curator_workspace/code.html +448 -0
- package/.claude/worktrees/phase-2-mcp/stitch/curator_workspace/screen.png +0 -0
- package/.claude/worktrees/phase-2-mcp/stitch/datasets/code.html +479 -0
- package/.claude/worktrees/phase-2-mcp/stitch/datasets/screen.png +0 -0
- package/.claude/worktrees/phase-2-mcp/stitch/evolution_history/code.html +461 -0
- package/.claude/worktrees/phase-2-mcp/stitch/evolution_history/screen.png +0 -0
- package/.claude/worktrees/phase-2-mcp/stitch/hermes_dashboard/DESIGN.md +192 -0
- package/.claude/worktrees/phase-2-mcp/stitch/hermes_dashboard/DESIGN_SPEC.md +455 -0
- package/.claude/worktrees/phase-2-mcp/stitch/hermes_overview/code.html +399 -0
- package/.claude/worktrees/phase-2-mcp/stitch/hermes_overview/screen.png +0 -0
- package/.claude/worktrees/phase-2-mcp/stitch/live_logs/code.html +324 -0
- package/.claude/worktrees/phase-2-mcp/stitch/live_logs/screen.png +0 -0
- package/.claude/worktrees/phase-2-mcp/stitch/skill_hub/code.html +596 -0
- package/.claude/worktrees/phase-2-mcp/stitch/skill_hub/screen.png +0 -0
- package/.claude/worktrees/phase-2-mcp/stitch/system_metrics/code.html +527 -0
- package/.claude/worktrees/phase-2-mcp/stitch/system_metrics/screen.png +0 -0
- package/.claude/worktrees/phase-2-mcp/stitch/system_settings/code.html +257 -0
- package/.claude/worktrees/phase-2-mcp/stitch/system_settings/screen.png +0 -0
- package/.claude/worktrees/phase-2-mcp/test_dashboard.py +201 -0
- package/.claude/worktrees/phase-2-mcp/tests/collectors/__init__.py +0 -0
- package/.claude/worktrees/phase-2-mcp/tests/collectors/fixtures/sample_session.jsonl +7 -0
- package/.claude/worktrees/phase-2-mcp/tests/collectors/test_claude_code_collector.py +171 -0
- package/.claude/worktrees/phase-2-mcp/tests/collectors/test_hermes_collector.py +167 -0
- package/.claude/worktrees/phase-2-mcp/tests/eval/test_engine.py +234 -0
- package/.claude/worktrees/phase-2-mcp/tests/eval/test_scorers.py +249 -0
- package/.claude/worktrees/phase-2-mcp/tests/storage/__init__.py +0 -0
- package/.claude/worktrees/phase-2-mcp/tests/storage/test_run_store.py +359 -0
- package/.claude/worktrees/phase-2-mcp/tests/test_curator.py +559 -0
- package/.claude/worktrees/phase-2-mcp/tests/test_mcp_server.py +114 -0
- package/.claude/worktrees/phase-2-mcp/tsconfig.json +34 -0
- package/.env.example +72 -0
- package/.kilocode/package-lock.json +378 -0
- package/.kilocode/package.json +5 -0
- package/AGENTS.md +5 -0
- package/CLAUDE.md +29 -0
- package/QA_AUDIT_PLAN.md +156 -0
- package/README.md +355 -0
- package/agent-agnostic-evolution-dashboard.md +405 -0
- package/backend/__init__.py +0 -0
- package/backend/collectors/__init__.py +0 -0
- package/backend/collectors/claude_code_collector.py +277 -0
- package/backend/collectors/hermes_collector.py +68 -0
- package/backend/curator.py +512 -0
- package/backend/eval/__init__.py +19 -0
- package/backend/eval/engine.py +116 -0
- package/backend/eval/scorers.py +201 -0
- package/backend/generate_dataset.py +86 -0
- package/backend/job_tracker.py +232 -0
- package/backend/main.py +1746 -0
- package/backend/mcp_server.py +250 -0
- package/backend/promethean/__init__.py +24 -0
- package/backend/promethean/cycle_orchestrator.py +270 -0
- package/backend/promethean/delta_validator.py +191 -0
- package/backend/promethean/dspy_compiler.py +315 -0
- package/backend/promethean/gepa_strategist.py +213 -0
- package/backend/promethean/models.py +260 -0
- package/backend/promethean/skill_deployer.py +195 -0
- package/backend/promethean/trace_ingestion.py +142 -0
- package/backend/requirements.txt +6 -0
- package/backend/sdd_evolve.py +459 -0
- package/backend/skill_detector.py +227 -0
- package/backend/skill_registry.py +289 -0
- package/backend/storage/__init__.py +5 -0
- package/backend/storage/run_store.py +393 -0
- package/backend/storage/schema.sql +99 -0
- package/backend/validate_evolution.py +267 -0
- package/bin/genoma.js +250 -0
- package/components.json +28 -0
- package/docs/api/hermes-api.openapi.yaml +438 -0
- package/docs/hero.svg +148 -0
- package/eslint.config.mjs +18 -0
- package/install.sh +245 -0
- package/next-env.d.ts +6 -0
- package/next.config.ts +32 -0
- package/package.json +46 -0
- package/pnpm-workspace.yaml +4 -0
- package/postcss.config.mjs +7 -0
- package/public/file.svg +1 -0
- package/public/fonts/SF-Pro-Display-Bold.otf +0 -0
- package/public/fonts/SF-Pro-Display-Heavy.otf +0 -0
- package/public/fonts/SF-Pro-Display-Medium.otf +0 -0
- package/public/fonts/SF-Pro-Display-Regular.otf +0 -0
- package/public/fonts/SF-Pro-Display-Semibold.otf +0 -0
- package/public/fonts/SF-Pro-Text-Bold.otf +0 -0
- package/public/fonts/SF-Pro-Text-Heavy.otf +0 -0
- package/public/fonts/SF-Pro-Text-Medium.otf +0 -0
- package/public/fonts/SF-Pro-Text-Regular.otf +0 -0
- package/public/fonts/SF-Pro-Text-Semibold.otf +0 -0
- package/public/globe.svg +1 -0
- package/public/next.svg +1 -0
- package/public/theme-preview.html +257 -0
- package/public/vercel.svg +1 -0
- package/public/window.svg +1 -0
- package/run.sh +26 -0
- package/scripts/postinstall.js +50 -0
- package/skills-lock.json +10 -0
- package/specs/event-schema.md +223 -0
- package/specs/examples/run.jsonl +3 -0
- package/src/app/api/[...path]/route.ts +55 -0
- package/src/app/api/auth/token/route.ts +22 -0
- package/src/app/evolution/page.tsx +589 -0
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +321 -0
- package/src/app/layout.tsx +63 -0
- package/src/app/page.tsx +70 -0
- package/src/app/skills/page.tsx +369 -0
- package/src/components/ApiConfigCard.tsx +199 -0
- package/src/components/ColorBends.css +1 -0
- package/src/components/ColorBends.d.ts +1 -0
- package/src/components/ColorBends.jsx +1 -0
- package/src/components/CoreLoopToggle.tsx +111 -0
- package/src/components/EnvironmentStatus.tsx +176 -0
- package/src/components/EvolutionBackground.tsx +1 -0
- package/src/components/ReactQueryProvider.tsx +24 -0
- package/src/components/Sidebar.tsx +247 -0
- package/src/components/SkillDiffViewer.tsx +154 -0
- package/src/components/ThemeAwareBackground.tsx +67 -0
- package/src/components/ThemeToggle.tsx +54 -0
- package/src/components/WelcomeHero.tsx +77 -0
- package/src/components/bits/ClickSpark.tsx +116 -0
- package/src/components/bits/CountUp.tsx +98 -0
- package/src/components/bits/DarkSelect.tsx +95 -0
- package/src/components/bits/DecryptedText.tsx +161 -0
- package/src/components/bits/ElectricBorder.tsx +184 -0
- package/src/components/bits/GlitchText.tsx +34 -0
- package/src/components/bits/ShinyText.tsx +55 -0
- package/src/components/bits/SpotlightCard.tsx +42 -0
- package/src/components/bits/TextType.tsx +95 -0
- package/src/components/bits/index.ts +9 -0
- package/src/components/pages/CuratorPage.tsx +632 -0
- package/src/components/pages/DatasetPage.tsx +271 -0
- package/src/components/pages/EvolutionPage.tsx +676 -0
- package/src/components/pages/FunctionCallingPage.tsx +1 -0
- package/src/components/pages/LogsPage.tsx +272 -0
- package/src/components/pages/MetricsPage.tsx +246 -0
- package/src/components/pages/OverviewPage.tsx +420 -0
- package/src/components/pages/SettingsPage.tsx +88 -0
- package/src/components/pages/SkillStudioPage.tsx +376 -0
- package/src/components/ui/animated-theme-toggler.tsx +97 -0
- package/src/components/ui/button.tsx +67 -0
- package/src/components/ui/card.tsx +103 -0
- package/src/components/ui/input.tsx +19 -0
- package/src/components/ui/separator.tsx +28 -0
- package/src/components/ui/sheet.tsx +147 -0
- package/src/components/ui/sidebar.tsx +702 -0
- package/src/components/ui/skeleton.tsx +13 -0
- package/src/components/ui/theme-toggle.tsx +272 -0
- package/src/components/ui/tooltip.tsx +57 -0
- package/src/hooks/use-mobile.ts +19 -0
- package/src/lib/api.ts +455 -0
- package/src/lib/queryClient.ts +12 -0
- package/src/lib/utils.ts +6 -0
- package/stitch/agent_dashboard/DESIGN_SPEC.md +521 -0
- package/stitch/agent_dashboard/prototype.html +676 -0
- package/stitch/curator_workspace/code.html +448 -0
- package/stitch/curator_workspace/screen.png +0 -0
- package/stitch/datasets/code.html +479 -0
- package/stitch/datasets/screen.png +0 -0
- package/stitch/evolution_history/code.html +461 -0
- package/stitch/evolution_history/screen.png +0 -0
- package/stitch/hermes_dashboard/DESIGN.md +192 -0
- package/stitch/hermes_dashboard/DESIGN_SPEC.md +455 -0
- package/stitch/hermes_overview/code.html +399 -0
- package/stitch/hermes_overview/screen.png +0 -0
- package/stitch/live_logs/code.html +324 -0
- package/stitch/live_logs/screen.png +0 -0
- package/stitch/skill_hub/code.html +596 -0
- package/stitch/skill_hub/screen.png +0 -0
- package/stitch/system_metrics/code.html +527 -0
- package/stitch/system_metrics/screen.png +0 -0
- package/stitch/system_settings/code.html +257 -0
- package/stitch/system_settings/screen.png +0 -0
- package/test_dashboard.py +201 -0
- package/tests/collectors/__init__.py +0 -0
- package/tests/collectors/fixtures/sample_session.jsonl +7 -0
- package/tests/collectors/test_claude_code_collector.py +171 -0
- package/tests/collectors/test_hermes_collector.py +167 -0
- package/tests/eval/test_engine.py +234 -0
- package/tests/eval/test_scorers.py +249 -0
- package/tests/storage/__init__.py +0 -0
- package/tests/storage/test_run_store.py +359 -0
- package/tests/test_curator.py +559 -0
- package/tests/test_e2e_npm.py +621 -0
- package/tests/test_mcp_server.py +114 -0
- package/tsconfig.json +34 -0
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
# Hermes Dashboard — High-Fidelity Design Specification
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-05-18
|
|
4
|
+
**Version:** 1.0
|
|
5
|
+
**Scope:** Production-ready HTML/React components for Hermes Dashboard
|
|
6
|
+
**Target:** Control-room aesthetic for engineer-facing system monitoring + skill discovery
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Purpose & Goals
|
|
11
|
+
|
|
12
|
+
Hermes Dashboard is a **hybrid monitoring + control + analytics + skill-discovery** interface serving three user personas:
|
|
13
|
+
|
|
14
|
+
1. **System Engineers:** Monitor agent health, system metrics, real-time status
|
|
15
|
+
2. **Skill Developers:** Analyze skill performance, discover improvement opportunities
|
|
16
|
+
3. **Operations:** Execute/retry actions, filter & debug historical task execution
|
|
17
|
+
|
|
18
|
+
**Success Criteria:**
|
|
19
|
+
- Data-dense interface; information parseable without excessive scrolling
|
|
20
|
+
- Status & health visible at-a-glance (no hidden states)
|
|
21
|
+
- All core interactions (filter, sort, trigger, detail) work without page reload
|
|
22
|
+
- Consistent with Hermes control-room design system (navy + orange, Inter + JetBrains Mono)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. Design System Constraints
|
|
27
|
+
|
|
28
|
+
**Colors:**
|
|
29
|
+
- Primary: Navy (#002444) — structure, buttons, borders
|
|
30
|
+
- Secondary: Orange (#a93800) — high-priority actions, alerts, editable states
|
|
31
|
+
- Surface: Warm White (#faf9fc) — background
|
|
32
|
+
- Text: On-surface (#1a1c1e) — body text; Mono (#43474e) — data
|
|
33
|
+
- Status: Green (#4caf50) — success; Yellow (#ffc107) — warning; Red (#ba1a1a) — error
|
|
34
|
+
|
|
35
|
+
**Typography:**
|
|
36
|
+
- Headlines: Inter, 20px (headline-sm), weight 600
|
|
37
|
+
- Body: Inter, 14px (body-md), weight 400
|
|
38
|
+
- Data/mono: JetBrains Mono, 12px, weight 400
|
|
39
|
+
|
|
40
|
+
**Spacing & Grid:**
|
|
41
|
+
- 8px base unit
|
|
42
|
+
- Gutters: 16px (between columns), 24px (container padding)
|
|
43
|
+
- Dense rows: 32–40px height (tables/lists)
|
|
44
|
+
|
|
45
|
+
**Elevation:**
|
|
46
|
+
- Level 0: Surface background
|
|
47
|
+
- Level 1: Cards/panels with 1px navy border, no shadow
|
|
48
|
+
- Level 2: Popovers/tooltips with 4px blur shadow
|
|
49
|
+
- Level 3: Modals with 12px blur shadow + high-contrast border
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 3. Layout & Navigation
|
|
54
|
+
|
|
55
|
+
### 3.1 Global Header
|
|
56
|
+
**Height:** 56px
|
|
57
|
+
**Components:**
|
|
58
|
+
- Left: Hermes logo + text "Hermes Dashboard"
|
|
59
|
+
- Center: Real-time status indicator
|
|
60
|
+
- Indicator dot (green = monitoring, red = paused/error)
|
|
61
|
+
- Text: "Monitoring" or "Paused" + last update timestamp
|
|
62
|
+
- Right: User menu (future; placeholder for now)
|
|
63
|
+
|
|
64
|
+
**Styling:**
|
|
65
|
+
- Navy background (#002444)
|
|
66
|
+
- White text
|
|
67
|
+
- Subtle bottom border (1px, #ccc)
|
|
68
|
+
|
|
69
|
+
### 3.2 Tab Navigation
|
|
70
|
+
**Position:** Below global header, sticky
|
|
71
|
+
**Height:** 48px
|
|
72
|
+
**Components:**
|
|
73
|
+
- 4 tabs: **Agents | Skills | Metrics | Actions**
|
|
74
|
+
- Active tab: underline (navy, 3px), bold text
|
|
75
|
+
- Inactive tabs: gray text (#73777f)
|
|
76
|
+
- Hover: subtle background tint
|
|
77
|
+
|
|
78
|
+
**Styling:**
|
|
79
|
+
- Surface background
|
|
80
|
+
- 1px bottom border separating from content
|
|
81
|
+
|
|
82
|
+
### 3.3 Tab Content Area
|
|
83
|
+
**Layout:** Full-width below tabs
|
|
84
|
+
**Padding:** 24px (all sides)
|
|
85
|
+
**Max-width:** 1440px (centered)
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 4. Tab: AGENTS
|
|
90
|
+
|
|
91
|
+
### 4.1 Overall Layout
|
|
92
|
+
**Hybrid:** Left sidebar (fixed 256px) + Right detail panel (fluid)
|
|
93
|
+
|
|
94
|
+
### 4.2 Left Sidebar (Tree View)
|
|
95
|
+
**Width:** 256px, fixed
|
|
96
|
+
**Background:** Surface container-low (#f4f3f6)
|
|
97
|
+
**Border-right:** 1px navy at 10% opacity
|
|
98
|
+
|
|
99
|
+
**Tree Structure:**
|
|
100
|
+
```
|
|
101
|
+
Hermes [online]
|
|
102
|
+
├── Sub-Agent-1 [online] ✓
|
|
103
|
+
├── Sub-Agent-2 [offline] ✗
|
|
104
|
+
├── Sub-Agent-3 [busy] ⚠
|
|
105
|
+
└── Sub-Agent-N
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Node Styling:**
|
|
109
|
+
- Each node: 40px height, 16px padding, 8px left margin (nesting)
|
|
110
|
+
- Text: body-md navy
|
|
111
|
+
- Status badge: 8px dot (green/red/yellow) + text
|
|
112
|
+
- Hover: background tint
|
|
113
|
+
- Click: select + load detail in right panel
|
|
114
|
+
- Expand/collapse: chevron icon for nodes with children
|
|
115
|
+
|
|
116
|
+
**Header (above tree):**
|
|
117
|
+
- "AGENTS" label (label-caps)
|
|
118
|
+
- Refresh button (navy icon)
|
|
119
|
+
|
|
120
|
+
### 4.3 Right Detail Panel
|
|
121
|
+
**Layout:** Single-column, scrollable
|
|
122
|
+
**Min-width:** 400px
|
|
123
|
+
|
|
124
|
+
**Content Sections (stacked vertically):**
|
|
125
|
+
|
|
126
|
+
**Section A: Agent Identity**
|
|
127
|
+
- Heading: Agent name (headline-sm)
|
|
128
|
+
- Sub-text: Agent ID (body-sm, gray)
|
|
129
|
+
- Status badge (large): online/offline/busy + indicator dot
|
|
130
|
+
|
|
131
|
+
**Section B: Status Overview**
|
|
132
|
+
- 4 stat cards in 2×2 grid:
|
|
133
|
+
- Uptime (%) | Cpu (%) | Memory (%) | Last Action
|
|
134
|
+
- Card format: label (body-sm) + value (mono-label, large) + mini sparkline
|
|
135
|
+
- Card styling: navy border, surface container bg
|
|
136
|
+
|
|
137
|
+
**Section C: Recent Skills (Table)**
|
|
138
|
+
- Columns: Skill Name | Started | Duration | Status
|
|
139
|
+
- Dense rows (32px)
|
|
140
|
+
- Up to 5 rows; scrollable if more
|
|
141
|
+
- Status icon: ✓/⚠/✗
|
|
142
|
+
|
|
143
|
+
**Section D: Actions**
|
|
144
|
+
- Buttons (navy): "Force Refresh", "View Logs"
|
|
145
|
+
- Buttons (orange): "Stop" (if agent is running)
|
|
146
|
+
|
|
147
|
+
**Default State (no agent selected):**
|
|
148
|
+
- Right panel shows "Select an agent to view details"
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 5. Tab: SKILLS
|
|
153
|
+
|
|
154
|
+
### 5.1 Layout
|
|
155
|
+
Single-column, full-width table with search & sort
|
|
156
|
+
|
|
157
|
+
### 5.2 Search & Filter Bar
|
|
158
|
+
**Height:** 48px
|
|
159
|
+
**Components:**
|
|
160
|
+
- Search input (label: "Search skills")
|
|
161
|
+
- Icon: magnifying glass
|
|
162
|
+
- Placeholder: "Search by name or agent..."
|
|
163
|
+
- Sort dropdown (default: "Usage (24h)", descending)
|
|
164
|
+
|
|
165
|
+
### 5.3 Skills Table
|
|
166
|
+
**Columns (7):**
|
|
167
|
+
1. Skill Name (text)
|
|
168
|
+
2. Used By (agent count, e.g., "3 agents")
|
|
169
|
+
3. Usage Count (24h, numeric)
|
|
170
|
+
4. Perf Score (0-100, numeric; orange if <70)
|
|
171
|
+
5. Avg Exec Time (milliseconds, mono)
|
|
172
|
+
6. Errors (count; red if >0)
|
|
173
|
+
7. Last Run (relative time, e.g., "5m ago")
|
|
174
|
+
|
|
175
|
+
**Row Height:** 32px
|
|
176
|
+
**Row Dividers:** 1px navy at 5% opacity
|
|
177
|
+
**Hover State:** Background tint, slight lift
|
|
178
|
+
|
|
179
|
+
**Column Sorting:**
|
|
180
|
+
- Click header to sort ascending/descending
|
|
181
|
+
- Indicator: up/down arrow next to active column name
|
|
182
|
+
|
|
183
|
+
**Status Styling:**
|
|
184
|
+
- Perf Score <70: orange text
|
|
185
|
+
- Errors >0: red dot + count
|
|
186
|
+
- Success: green checkmark (implicit in "Errors" column showing 0)
|
|
187
|
+
|
|
188
|
+
**Pagination:**
|
|
189
|
+
- Bottom: "Showing X–Y of Z | < Previous | Next >"
|
|
190
|
+
- 50 rows per page
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 6. Tab: METRICS
|
|
195
|
+
|
|
196
|
+
### 6.1 Layout
|
|
197
|
+
Two-tier: Top stat cards + below time-series charts
|
|
198
|
+
|
|
199
|
+
### 6.2 Stat Cards Section
|
|
200
|
+
**Grid:** 4 columns (responsive: 2 cols on tablet, 1 on mobile)
|
|
201
|
+
**Card Height:** 120px
|
|
202
|
+
**Card Content:**
|
|
203
|
+
- Label (body-sm, gray): "CPU Usage", "Memory", "Latency (ms)", "Error Rate (%)"
|
|
204
|
+
- Value (mono-label, large, navy): e.g., "45.2%", "2048 MB", "234ms", "1.3%"
|
|
205
|
+
- Mini sparkline (8×30px, navy line, transparent fill, bottom-right corner)
|
|
206
|
+
- Card styling: navy border (1px), surface container bg
|
|
207
|
+
|
|
208
|
+
**Card Hover:**
|
|
209
|
+
- Slight shadow lift
|
|
210
|
+
- Tooltip on sparkline: hover point shows timestamp + value
|
|
211
|
+
|
|
212
|
+
### 6.3 Charts Section
|
|
213
|
+
**Grid:** 2 columns (1 on mobile)
|
|
214
|
+
**Chart Height:** 300px each
|
|
215
|
+
|
|
216
|
+
**Chart A: Resource Usage (CPU & Memory)**
|
|
217
|
+
- X-axis: Time (last 24h, labels every 4h)
|
|
218
|
+
- Y-axis: % (0-100)
|
|
219
|
+
- Lines: CPU (navy), Memory (orange)
|
|
220
|
+
- Grid: subtle navy lines (1px, 10% opacity)
|
|
221
|
+
- Legend: below chart
|
|
222
|
+
- Interaction: Hover shows tooltip (timestamp + values for both metrics)
|
|
223
|
+
|
|
224
|
+
**Chart B: Latency & Errors**
|
|
225
|
+
- X-axis: Time (last 24h)
|
|
226
|
+
- Y-axis (left): Latency (ms), Y-axis (right): Error Rate (%)
|
|
227
|
+
- Lines: Latency (navy), Error Rate (orange)
|
|
228
|
+
- Legend: below chart
|
|
229
|
+
- Interaction: Hover tooltip
|
|
230
|
+
|
|
231
|
+
**Chart Library:**
|
|
232
|
+
- Recommend: Recharts (React) or Chart.js (vanilla)
|
|
233
|
+
- Styling: navy/orange colors from design system
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## 7. Tab: ACTIONS
|
|
238
|
+
|
|
239
|
+
### 7.1 Layout
|
|
240
|
+
Filter bar + action log table
|
|
241
|
+
|
|
242
|
+
### 7.2 Filter Bar
|
|
243
|
+
**Height:** 56px
|
|
244
|
+
**Components:**
|
|
245
|
+
|
|
246
|
+
- **Agent Filter (multi-select dropdown):**
|
|
247
|
+
- Label: "Agent"
|
|
248
|
+
- Placeholder: "All agents"
|
|
249
|
+
- Shows selected count, e.g., "2 selected"
|
|
250
|
+
|
|
251
|
+
- **Skill Filter (multi-select dropdown):**
|
|
252
|
+
- Label: "Skill"
|
|
253
|
+
- Placeholder: "All skills"
|
|
254
|
+
|
|
255
|
+
- **Status Filter (dropdown):**
|
|
256
|
+
- Label: "Status"
|
|
257
|
+
- Options: All | Success ✓ | Error ✗ | Pending ⏳
|
|
258
|
+
|
|
259
|
+
- **Date Range Picker:**
|
|
260
|
+
- Label: "Date Range"
|
|
261
|
+
- Buttons: "Last 24h", "Last 7d", "Custom"
|
|
262
|
+
- Custom: start & end date inputs
|
|
263
|
+
|
|
264
|
+
- **Clear Filters Button:**
|
|
265
|
+
- Navy text, no bg
|
|
266
|
+
|
|
267
|
+
**Styling:** Flex row, 16px gaps, wrap on mobile
|
|
268
|
+
|
|
269
|
+
### 7.3 Action Log Table
|
|
270
|
+
**Columns (7):**
|
|
271
|
+
1. Timestamp (relative + full on hover, e.g., "5m ago")
|
|
272
|
+
2. Agent Name (text)
|
|
273
|
+
3. Skill Name (text)
|
|
274
|
+
4. Status (icon + text; ✓/⚠/✗)
|
|
275
|
+
5. Duration (milliseconds, mono)
|
|
276
|
+
6. Result (truncated text; full on modal)
|
|
277
|
+
7. Actions (button: "Details" or "Retry")
|
|
278
|
+
|
|
279
|
+
**Row Height:** 40px
|
|
280
|
+
**Row Dividers:** 1px navy at 5% opacity
|
|
281
|
+
**Row Hover:**
|
|
282
|
+
- Background tint
|
|
283
|
+
- Status icon highlights (orange if error)
|
|
284
|
+
|
|
285
|
+
**Status Badges:**
|
|
286
|
+
- Success: green checkmark + "Success"
|
|
287
|
+
- Error: red X + "Error"
|
|
288
|
+
- Pending: orange hourglass + "Pending"
|
|
289
|
+
|
|
290
|
+
**Actions Column:**
|
|
291
|
+
- "Details" button: opens modal with full result/logs
|
|
292
|
+
- "Retry" button (orange): retry the action (if applicable)
|
|
293
|
+
|
|
294
|
+
**Pagination:**
|
|
295
|
+
- 50 rows per page
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## 8. Components (Reusable)
|
|
300
|
+
|
|
301
|
+
### 8.1 Buttons
|
|
302
|
+
- **Primary (Navy):** solid navy bg, white text, 4px radius
|
|
303
|
+
- **Secondary (Ghost):** navy border, transparent bg, navy text
|
|
304
|
+
- **Tertiary/Action (Orange):** solid orange bg, white text, 4px radius
|
|
305
|
+
- **Disabled:** gray bg, gray text, cursor not-allowed
|
|
306
|
+
|
|
307
|
+
### 8.2 Status Badge
|
|
308
|
+
- Dot (8px circle) + text
|
|
309
|
+
- Colors: green (#4caf50), yellow (#ffc107), red (#ba1a1a)
|
|
310
|
+
|
|
311
|
+
### 8.3 Stat Card
|
|
312
|
+
- Navy border (1px), surface bg, 24px padding
|
|
313
|
+
- Label (body-sm, gray) + Value (mono-label, large, navy) + sparkline
|
|
314
|
+
|
|
315
|
+
### 8.4 Table Row
|
|
316
|
+
- 32–40px height
|
|
317
|
+
- Navy divider (1px)
|
|
318
|
+
- Hover tint
|
|
319
|
+
- Clickable (cursor pointer, selection highlight)
|
|
320
|
+
|
|
321
|
+
### 8.5 Dropdown / Multi-Select
|
|
322
|
+
- Navy border (1px) on focus
|
|
323
|
+
- Chevron icon (right)
|
|
324
|
+
- Placeholder text (gray)
|
|
325
|
+
|
|
326
|
+
### 8.6 Modal
|
|
327
|
+
- Navy border (3px), shadow (12px blur)
|
|
328
|
+
- Header: title + close button
|
|
329
|
+
- Body: scrollable content
|
|
330
|
+
- Footer: action buttons (cancel, confirm)
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## 9. Interaction & Behavior
|
|
335
|
+
|
|
336
|
+
### 9.1 Tab Switching
|
|
337
|
+
- Instant (no loading state)
|
|
338
|
+
- URL updates (e.g., `/dashboard#agents`)
|
|
339
|
+
- Selected tab persists on page reload
|
|
340
|
+
|
|
341
|
+
### 9.2 Agents Tab
|
|
342
|
+
- Click agent in tree → load details in right panel (smooth transition)
|
|
343
|
+
- Right panel is scrollable if content exceeds viewport height
|
|
344
|
+
- Buttons (refresh, stop) perform actions, show loading state + success/error toast
|
|
345
|
+
|
|
346
|
+
### 9.3 Skills Tab
|
|
347
|
+
- Sort/filter: instant (client-side if <1000 rows, else debounced API call)
|
|
348
|
+
- Click skill name: opens detail modal with full metrics, optimization suggestions, edit button
|
|
349
|
+
|
|
350
|
+
### 9.4 Metrics Tab
|
|
351
|
+
- Charts auto-refresh every 30 seconds (WebSocket or polling)
|
|
352
|
+
- Stat cards reflect latest values
|
|
353
|
+
- Hover on sparkline/chart: tooltip with exact values
|
|
354
|
+
|
|
355
|
+
### 9.5 Actions Tab
|
|
356
|
+
- Filter/sort: instant or debounced API call
|
|
357
|
+
- "Details" button: modal with full logs, error stack, full result text
|
|
358
|
+
- "Retry" button: trigger re-execution, show loading state + result toast
|
|
359
|
+
|
|
360
|
+
### 9.6 Global Refresh
|
|
361
|
+
- Header status indicator shows "updating..." during refresh
|
|
362
|
+
- Refresh completes in <2s (or shows "refresh failed" in orange)
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## 10. Responsive Behavior
|
|
367
|
+
|
|
368
|
+
### 10.1 Desktop (1440px+)
|
|
369
|
+
- Full layout as described
|
|
370
|
+
|
|
371
|
+
### 10.2 Tablet (768–1024px)
|
|
372
|
+
- Sidebar width reduced to 200px (Agents tab)
|
|
373
|
+
- Charts stack vertically (Metrics tab)
|
|
374
|
+
- Table columns: prioritize Agent, Skill, Status; hide Duration/Result (available in detail)
|
|
375
|
+
|
|
376
|
+
### 10.3 Mobile (<768px)
|
|
377
|
+
- Sidebar hidden; menu button (☰) toggles tree
|
|
378
|
+
- Single-column layout
|
|
379
|
+
- Tables: horizontal scroll or card layout per row
|
|
380
|
+
- Dropdowns: native mobile select
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## 11. Data Structures (Mock)
|
|
385
|
+
|
|
386
|
+
### Agent Object
|
|
387
|
+
```json
|
|
388
|
+
{
|
|
389
|
+
"id": "agent-001",
|
|
390
|
+
"name": "Sub-Agent-1",
|
|
391
|
+
"status": "online",
|
|
392
|
+
"uptime_percent": 99.5,
|
|
393
|
+
"cpu_percent": 45.2,
|
|
394
|
+
"memory_mb": 512,
|
|
395
|
+
"last_action": "2026-05-18T15:30:00Z",
|
|
396
|
+
"recent_skills": [
|
|
397
|
+
{ "name": "brainstorm", "started": "...", "duration": 1200, "status": "success" },
|
|
398
|
+
...
|
|
399
|
+
]
|
|
400
|
+
}
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
### Skill Object
|
|
404
|
+
```json
|
|
405
|
+
{
|
|
406
|
+
"id": "skill-001",
|
|
407
|
+
"name": "brainstorm",
|
|
408
|
+
"used_by": 3,
|
|
409
|
+
"usage_count_24h": 42,
|
|
410
|
+
"perf_score": 85,
|
|
411
|
+
"avg_exec_time_ms": 1200,
|
|
412
|
+
"errors_count": 0,
|
|
413
|
+
"last_run": "2026-05-18T15:28:00Z"
|
|
414
|
+
}
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
### Action Object
|
|
418
|
+
```json
|
|
419
|
+
{
|
|
420
|
+
"id": "action-001",
|
|
421
|
+
"timestamp": "2026-05-18T15:30:00Z",
|
|
422
|
+
"agent_name": "Sub-Agent-1",
|
|
423
|
+
"skill_name": "brainstorm",
|
|
424
|
+
"status": "success",
|
|
425
|
+
"duration_ms": 1500,
|
|
426
|
+
"result": "Design proposal generated",
|
|
427
|
+
"full_logs": "..."
|
|
428
|
+
}
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## 12. Future Enhancements (Out of Scope)
|
|
434
|
+
|
|
435
|
+
- Skill improvement workflows (edit, test, deploy)
|
|
436
|
+
- Real-time WebSocket updates
|
|
437
|
+
- Export/reporting (CSV, PDF)
|
|
438
|
+
- Alerting rules & notifications
|
|
439
|
+
- Dark mode
|
|
440
|
+
- Accessibility (WCAG AA)
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
## 13. Implementation Notes
|
|
445
|
+
|
|
446
|
+
- **Framework:** React 19 recommended (component-based, hooks)
|
|
447
|
+
- **Styling:** Tailwind CSS + custom CSS vars for design system colors
|
|
448
|
+
- **Charts:** Recharts (lightweight, Recharts-React integration)
|
|
449
|
+
- **Icons:** Lucide React
|
|
450
|
+
- **State Management:** React Context or Zustand (lightweight)
|
|
451
|
+
- **API Integration:** Placeholder endpoints; integrate with actual Hermes API once available
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
**End of Specification**
|