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,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: SettingsPage
|
|
3
|
+
summary: ''
|
|
4
|
+
tags: []
|
|
5
|
+
related: []
|
|
6
|
+
keywords: []
|
|
7
|
+
createdAt: '2026-04-28T01:33:30.556Z'
|
|
8
|
+
updatedAt: '2026-04-28T01:33:30.556Z'
|
|
9
|
+
---
|
|
10
|
+
## Reason
|
|
11
|
+
Preserving complete src/components/pages/SettingsPage.tsx from hermes-dashboard project
|
|
12
|
+
|
|
13
|
+
## Raw Concept
|
|
14
|
+
**Task:**
|
|
15
|
+
Preserve src/components/pages/SettingsPage.tsx
|
|
16
|
+
|
|
17
|
+
**Files:**
|
|
18
|
+
- src/components/pages/SettingsPage.tsx
|
|
19
|
+
|
|
20
|
+
**Timestamp:** 2026-04-28
|
|
21
|
+
|
|
22
|
+
**Patterns:**
|
|
23
|
+
- `SettingsPage` - Component or function
|
|
24
|
+
|
|
25
|
+
## Narrative
|
|
26
|
+
### Structure
|
|
27
|
+
TSX file with 1 components/functions
|
|
28
|
+
|
|
29
|
+
### Highlights
|
|
30
|
+
Source: hermes-dashboard/src/components/pages/SettingsPage.tsx
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
"use client";
|
|
36
|
+
|
|
37
|
+
import { useState, useEffect } from "react";
|
|
38
|
+
import { motion } from "framer-motion";
|
|
39
|
+
import {
|
|
40
|
+
Settings,
|
|
41
|
+
Key,
|
|
42
|
+
Eye,
|
|
43
|
+
EyeOff,
|
|
44
|
+
Check,
|
|
45
|
+
X,
|
|
46
|
+
Server,
|
|
47
|
+
FolderOpen,
|
|
48
|
+
} from "lucide-react";
|
|
49
|
+
import { fetchHealth } from "@/lib/api";
|
|
50
|
+
|
|
51
|
+
interface EnvVar {
|
|
52
|
+
key: string;
|
|
53
|
+
value: string;
|
|
54
|
+
desc: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export default function SettingsPage() {
|
|
58
|
+
const [health, setHealth] = useState<{
|
|
59
|
+
status: string;
|
|
60
|
+
hermes_repo: string;
|
|
61
|
+
hermes_repo_exists: boolean;
|
|
62
|
+
evolution_dir: string;
|
|
63
|
+
evolution_dir_exists: boolean;
|
|
64
|
+
skills_count: number;
|
|
65
|
+
} | null>(null);
|
|
66
|
+
|
|
67
|
+
const [showKeys, setShowKeys] = useState<Record<string, boolean>>({});
|
|
68
|
+
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
fetchHealth().then(setHealth).catch(() => {});
|
|
71
|
+
}, []);
|
|
72
|
+
|
|
73
|
+
const envVars: EnvVar[] = [
|
|
74
|
+
{ key: "OPENAI_API_KEY", value: "sk-...", desc: "Used by DSPy for LLM calls" },
|
|
75
|
+
{ key: "OPENAI_BASE_URL", value: "http://localhost:11434/v1", desc: "Ollama endpoint" },
|
|
76
|
+
{ key: "HERMES_AGENT_REPO", value: health?.hermes_repo || "~/.hermes/hermes-agent", desc: "Path to hermes-agent repo" },
|
|
77
|
+
];
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<div className="space-y-6 max-w-3xl">
|
|
81
|
+
{/* System Paths */}
|
|
82
|
+
<motion.div initial={{ opacity: 0, y: 15 }} animate={{ opacity: 1, y: 0 }} className="glass-card rounded-2xl p-6">
|
|
83
|
+
<h2 className="text-sm font-semibold uppercase tracking-wider flex items-center gap-2 mb-4"><Server className="w-4 h-4 text-accent-cyan" />System Paths</h2>
|
|
84
|
+
{health && (
|
|
85
|
+
<div className="space-y-3">
|
|
86
|
+
{[
|
|
87
|
+
{ label: "Hermes Agent Repo", path: health.hermes_repo, exists: health.hermes_repo_exists },
|
|
88
|
+
{ label: "Evolution Engine", path: health.evolution_dir, exists: health.evolution_dir_exists },
|
|
89
|
+
].map((item) => (
|
|
90
|
+
<div key={item.label} className="flex items-center justify-between p-3 rounded-xl bg-white/[0.02] border border-white/[0.04]">
|
|
91
|
+
<div className="flex items-center gap-3"><FolderOpen className="w-4 h-4 text-muted-foreground" /><div><p className="text-sm font-medium">{item.label}</p><p className="text-[10px] font-mono text-muted-foreground">{item.path}</p></div></div>
|
|
92
|
+
{item.exists ? <Check className="w-4 h-4 text-success" /> : <X className="w-4 h-4 text-error" />}
|
|
93
|
+
</div>
|
|
94
|
+
))}
|
|
95
|
+
<div className="flex items-center justify-between p-3 rounded-xl bg-white/[0.02] border border-white/[0.04]">
|
|
96
|
+
<div className="flex items-center gap-3"><FolderOpen className="w-4 h-4 text-muted-foreground" /><div><p className="text-sm font-medium">Skills Found</p></div></div>
|
|
97
|
+
<span className="text-sm font-mono text-accent-violet">{health.skills_count}</span>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
)}
|
|
101
|
+
</motion.div>
|
|
102
|
+
|
|
103
|
+
{/* Environment Variables */}
|
|
104
|
+
<motion.div initial={{ opacity: 0, y: 15 }} animate={{ opacity: 1, y: 0 }} transition={{ delay: 0.1 }} className="glass-card rounded-2xl p-6">
|
|
105
|
+
<h2 className="text-sm font-semibold uppercase tracking-wider flex items-center gap-2 mb-4"><Key className="w-4 h-4 text-accent-violet" />Environment Variables</h2>
|
|
106
|
+
<div className="space-y-3">
|
|
107
|
+
{envVars.map((env) => (
|
|
108
|
+
<div key={env.key} className="p-3 rounded-xl bg-white/[0.02] border border-white/[0.04]">
|
|
109
|
+
<div className="flex items-center justify-between mb-1">
|
|
110
|
+
<span className="text-xs font-mono text-accent-cyan">{env.key}</span>
|
|
111
|
+
<button onClick={() => setShowKeys((prev) => ({ ...prev, [env.key]: !prev[env.key] }))} className="text-muted-foreground/50 hover:text-muted-foreground">{showKeys[env.key] ? <EyeOff className="w-3 h-3" /> : <Eye className="w-3 h-3" />}</button>
|
|
112
|
+
</div>
|
|
113
|
+
<p className="text-xs font-mono text-muted-foreground">{showKeys[env.key] ? env.value : "••••••••••••"}</p>
|
|
114
|
+
<p className="text-[10px] text-muted-foreground/50 mt-1">{env.desc}</p>
|
|
115
|
+
</div>
|
|
116
|
+
))}
|
|
117
|
+
</div>
|
|
118
|
+
<p className="text-[10px] text-muted-foreground/40 mt-4">Set these in your shell or .env file. The backend reads them on startup.</p>
|
|
119
|
+
</motion.div>
|
|
120
|
+
</div>
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# SettingsPage Component Overview
|
|
2
|
+
|
|
3
|
+
**Source:** `src/components/pages/SettingsPage.tsx` from `hermes-dashboard`
|
|
4
|
+
|
|
5
|
+
## Key Points
|
|
6
|
+
|
|
7
|
+
- **Client-side React component** (`"use client"`) using `useState`, `useEffect`, and Framer Motion for animations
|
|
8
|
+
- **Fetches health status** from `/lib/api` on mount to display system state
|
|
9
|
+
- **Two main sections:** System Paths and Environment Variables
|
|
10
|
+
- **Toggle visibility** for sensitive values (API keys) with eye/eye-off icons
|
|
11
|
+
- **Visual validation indicators** (Check/X icons) for path existence checks
|
|
12
|
+
- **Hardcoded env var list:** OPENAI_API_KEY, OPENAI_BASE_URL, HERMES_AGENT_REPO
|
|
13
|
+
- **Styling:** Uses glass-card class, Tailwind-like classes, Lucide React icons
|
|
14
|
+
|
|
15
|
+
## Structure / Sections
|
|
16
|
+
|
|
17
|
+
1. **System Paths** — Displays Hermes Agent Repo, Evolution Engine paths with existence checks; shows skills count
|
|
18
|
+
2. **Environment Variables** — Lists sensitive config (API keys, endpoints) with show/hide toggle functionality
|
|
19
|
+
|
|
20
|
+
## Notable Entities & Patterns
|
|
21
|
+
|
|
22
|
+
| Entity | Purpose |
|
|
23
|
+
|--------|---------|
|
|
24
|
+
| `EnvVar` interface | `{ key, value, desc }` shape for env display |
|
|
25
|
+
| `fetchHealth()` | API call to get system status from `@/lib/api` |
|
|
26
|
+
| `showKeys` state | Record toggle for masking/unmasking values |
|
|
27
|
+
| Health object | `{ status, hermes_repo, hermes_repo_exists, evolution_dir, evolution_dir_exists, skills_count }` |
|
|
28
|
+
|
|
29
|
+
## Decisions
|
|
30
|
+
|
|
31
|
+
- Health data is fetched silently (empty catch block) — no user feedback on failure
|
|
32
|
+
- Env vars are hardcoded/static list, not dynamically loaded from backend
|
|
33
|
+
- Keys masked by default as `"••••••••••••"` placeholder
|
|
34
|
+
- Path existence shown with green checkmark or red X icons
|
|
File without changes
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Sidebar
|
|
3
|
+
summary: ''
|
|
4
|
+
tags: []
|
|
5
|
+
related: []
|
|
6
|
+
keywords: []
|
|
7
|
+
createdAt: '2026-04-28T01:33:30.557Z'
|
|
8
|
+
updatedAt: '2026-04-28T01:33:30.557Z'
|
|
9
|
+
---
|
|
10
|
+
## Reason
|
|
11
|
+
Preserving complete src/components/Sidebar.tsx from hermes-dashboard project
|
|
12
|
+
|
|
13
|
+
## Raw Concept
|
|
14
|
+
**Task:**
|
|
15
|
+
Preserve src/components/Sidebar.tsx
|
|
16
|
+
|
|
17
|
+
**Files:**
|
|
18
|
+
- src/components/Sidebar.tsx
|
|
19
|
+
|
|
20
|
+
**Timestamp:** 2026-04-28
|
|
21
|
+
|
|
22
|
+
**Patterns:**
|
|
23
|
+
- `Sidebar` - Component or function
|
|
24
|
+
|
|
25
|
+
## Narrative
|
|
26
|
+
### Structure
|
|
27
|
+
TSX file with 1 components/functions
|
|
28
|
+
|
|
29
|
+
### Highlights
|
|
30
|
+
Source: hermes-dashboard/src/components/Sidebar.tsx
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
"use client";
|
|
36
|
+
|
|
37
|
+
import { useState } from "react";
|
|
38
|
+
import { motion, AnimatePresence } from "framer-motion";
|
|
39
|
+
import {
|
|
40
|
+
Layers,
|
|
41
|
+
GitBranch,
|
|
42
|
+
Database,
|
|
43
|
+
Brain,
|
|
44
|
+
BarChart3,
|
|
45
|
+
Terminal as TerminalIcon,
|
|
46
|
+
Settings,
|
|
47
|
+
Dna,
|
|
48
|
+
ChevronLeft,
|
|
49
|
+
ChevronRight,
|
|
50
|
+
Cpu,
|
|
51
|
+
BookOpen,
|
|
52
|
+
Bot,
|
|
53
|
+
Sparkles,
|
|
54
|
+
} from "lucide-react";
|
|
55
|
+
|
|
56
|
+
export type Page =
|
|
57
|
+
| "overview"
|
|
58
|
+
| "skills"
|
|
59
|
+
| "evolution"
|
|
60
|
+
| "datasets"
|
|
61
|
+
| "memory"
|
|
62
|
+
| "metrics"
|
|
63
|
+
| "logs"
|
|
64
|
+
| "settings"
|
|
65
|
+
;
|
|
66
|
+
|
|
67
|
+
interface NavItem {
|
|
68
|
+
id: Page;
|
|
69
|
+
label: string;
|
|
70
|
+
icon: React.ReactNode;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const navItems: NavItem[] = [
|
|
74
|
+
{ id: "overview", label: "Overview", icon: <Layers className="w-4 h-4" /> },
|
|
75
|
+
{ id: "skills", label: "Skill Hub", icon: <Sparkles className="w-4 h-4" /> },
|
|
76
|
+
{ id: "evolution", label: "Evolution", icon: <GitBranch className="w-4 h-4" /> },
|
|
77
|
+
{ id: "datasets", label: "Datasets", icon: <Database className="w-4 h-4" /> },
|
|
78
|
+
{ id: "memory", label: "Memory", icon: <Brain className="w-4 h-4" /> },
|
|
79
|
+
{ id: "metrics", label: "Metrics", icon: <BarChart3 className="w-4 h-4" /> },
|
|
80
|
+
{ id: "logs", label: "Live Logs", icon: <TerminalIcon className="w-4 h-4" /> },
|
|
81
|
+
{ id: "settings", label: "Settings", icon: <Settings className="w-4 h-4" /> },
|
|
82
|
+
];
|
|
83
|
+
|
|
84
|
+
interface SidebarProps {
|
|
85
|
+
activePage: Page;
|
|
86
|
+
onNavigate: (page: Page) => void;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export default function Sidebar({ activePage, onNavigate }: SidebarProps) {
|
|
90
|
+
const [collapsed, setCollapsed] = useState(false);
|
|
91
|
+
|
|
92
|
+
return (
|
|
93
|
+
<motion.aside
|
|
94
|
+
animate={{ width: collapsed ? 64 : 240 }}
|
|
95
|
+
transition={{ duration: 0.2, ease: "easeOut" }}
|
|
96
|
+
className="h-screen sticky top-0 flex flex-col border-r border-[#B2FFFF]/20 bg-[#E8F9FA] dark:bg-[#061014] backdrop-blur-xl transition-colors duration-300"
|
|
97
|
+
>
|
|
98
|
+
{/* Logo */}
|
|
99
|
+
<div className="flex items-center gap-3 px-4 h-16 border-b border-[#B2FFFF]/15 dark:border-white/[0.06]">
|
|
100
|
+
<div className="w-8 h-8 rounded-lg bg-[#0891B2] dark:bg-[#06B6D4] flex items-center justify-center flex-shrink-0 shadow-sm shadow-[#0891B2]/20">
|
|
101
|
+
<Dna className="w-4 h-4 text-white" />
|
|
102
|
+
</div>
|
|
103
|
+
<AnimatePresence>
|
|
104
|
+
{!collapsed && (
|
|
105
|
+
<motion.div
|
|
106
|
+
initial={{ opacity: 0, x: -10 }}
|
|
107
|
+
animate={{ opacity: 1, x: 0 }}
|
|
108
|
+
exit={{ opacity: 0, x: -10 }}
|
|
109
|
+
className="overflow-hidden"
|
|
110
|
+
>
|
|
111
|
+
<span className="text-sm font-semibold tracking-tight text-[#0F172A] dark:text-white">Hermes</span>
|
|
112
|
+
<p className="text-[10px] text-[#475569] dark:text-slate-400">Evolution Dashboard</p>
|
|
113
|
+
</motion.div>
|
|
114
|
+
)}
|
|
115
|
+
</AnimatePresence>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
{/* Nav items */}
|
|
119
|
+
<nav className="flex-1 py-4 px-2 space-y-1 overflow-y-auto">
|
|
120
|
+
{navItems.map((item) => (
|
|
121
|
+
<button
|
|
122
|
+
key={item.id}
|
|
123
|
+
onClick={() => onNavigate(item.id)}
|
|
124
|
+
className={`w-full flex items-center gap-3 px-3 py-2.5 rounded-xl text-sm transition-all duration-200 ${
|
|
125
|
+
activePage === item.id
|
|
126
|
+
? "bg-[#B2FFFF]/40 text-[#0E7490] dark:bg-[#B2FFFF]/20 dark:text-[#E0FFFF] shadow-sm shadow-[#B2FFFF]/10"
|
|
127
|
+
: "text-[#475569] hover:text-[#0F172A] hover:bg-[#B2FFFF]/20 dark:text-[#B2FFFF] dark:hover:text-[#E0FFFF] dark:hover:bg-[#B2FFFF]/10"
|
|
128
|
+
}`}
|
|
129
|
+
>
|
|
130
|
+
<span
|
|
131
|
+
className={`flex-shrink-0 ${
|
|
132
|
+
activePage === item.id ? "text-[#0891B2] dark:text-[#67E8F9]" : ""
|
|
133
|
+
}`}
|
|
134
|
+
>
|
|
135
|
+
{item.icon}
|
|
136
|
+
</span>
|
|
137
|
+
<AnimatePresence>
|
|
138
|
+
{!collapsed && (
|
|
139
|
+
<motion.span
|
|
140
|
+
initial={{ opacity: 0 }}
|
|
141
|
+
animate={{ opacity: 1 }}
|
|
142
|
+
exit={{ opacity: 0 }}
|
|
143
|
+
className="truncate font-medium"
|
|
144
|
+
>
|
|
145
|
+
{item.label}
|
|
146
|
+
</motion.span>
|
|
147
|
+
)}
|
|
148
|
+
</AnimatePresence>
|
|
149
|
+
</button>
|
|
150
|
+
))}
|
|
151
|
+
</nav>
|
|
152
|
+
|
|
153
|
+
{/* Collapse toggle */}
|
|
154
|
+
<div className="p-2 border-t border-[#B2FFFF]/15 dark:border-[#B2FFFF]/10">
|
|
155
|
+
<button
|
|
156
|
+
onClick={() => setCollapsed(!collapsed)}
|
|
157
|
+
className="w-full flex items-center justify-center p-2 rounded-xl text-[#475569] hover:text-[#0F172A] hover:bg-[#B2FFFF]/20 dark:text-[#A5F3FC]/70 dark:hover:text-[#E0FFFF] dark:hover:bg-[#B2FFFF]/10 transition-colors"
|
|
158
|
+
>
|
|
159
|
+
{collapsed ? (
|
|
160
|
+
<ChevronRight className="w-4 h-4" />
|
|
161
|
+
) : (
|
|
162
|
+
<ChevronLeft className="w-4 h-4" />
|
|
163
|
+
)}
|
|
164
|
+
</button>
|
|
165
|
+
</div>
|
|
166
|
+
</motion.aside>
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
## Key Points
|
|
2
|
+
|
|
3
|
+
- **Sidebar component** from `hermes-dashboard` project - a collapsible navigation sidebar with animated transitions
|
|
4
|
+
- **Navigation structure** supports 8 pages: Overview, Skill Hub, Evolution, Datasets, Memory, Metrics, Live Logs, and Settings
|
|
5
|
+
- **Built with React + TypeScript**, using `framer-motion` for smooth expand/collapse animations and `lucide-react` for icons
|
|
6
|
+
- **Features collapse toggle** that animates width from 240px to 64px with a 0.2s easeOut transition
|
|
7
|
+
- **Dark mode support** via CSS custom properties (`dark:bg-[#061014]`, `dark:text-[#E0FFFF]`)
|
|
8
|
+
- **Active page highlighting** with cyan tint backgrounds and shadow effects
|
|
9
|
+
- **Uses `"use client"`** directive, indicating this is a client-side component in a Next.js app
|
|
10
|
+
|
|
11
|
+
## Structure / Sections Summary
|
|
12
|
+
|
|
13
|
+
1. **Type Definitions**
|
|
14
|
+
- `Page` union type for 8 distinct routes
|
|
15
|
+
- `NavItem` interface with `id`, `label`, and `icon` properties
|
|
16
|
+
|
|
17
|
+
2. **Navigation Data**
|
|
18
|
+
- `navItems` array mapping each page to a label and lucide icon
|
|
19
|
+
|
|
20
|
+
3. **Component Props**
|
|
21
|
+
- `SidebarProps` interface accepting `activePage` and `onNavigate` callback
|
|
22
|
+
|
|
23
|
+
4. **Main Component**
|
|
24
|
+
- `Sidebar` function with local `collapsed` state
|
|
25
|
+
- Renders animated
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
children_hash: dc15e2143853c4d58bd92cf78377d8722d8f607d734e4df57815b80539e86ae2
|
|
3
|
+
compression_ratio: 0.6743119266055045
|
|
4
|
+
condensation_order: 2
|
|
5
|
+
covers: [curation_context/_index.md]
|
|
6
|
+
covers_token_total: 218
|
|
7
|
+
summary_level: d2
|
|
8
|
+
token_count: 147
|
|
9
|
+
type: summary
|
|
10
|
+
---
|
|
11
|
+
# Meta Domain
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
The Meta domain contains knowledge about the curation system itself—its workflows, attempts, and operational patterns.
|
|
16
|
+
|
|
17
|
+
## Child Entry Summary
|
|
18
|
+
|
|
19
|
+
- **curation_context** — Documents curation workflow outcomes, including unsuccessful attempts where input variables contained only placeholder characters with no extractable facts. Serves as operational metadata for distinguishing processed content from empty inputs.
|
|
20
|
+
|
|
21
|
+
## Key Relationships
|
|
22
|
+
|
|
23
|
+
- Curation context tracks workflow patterns at `meta/curation_context/`
|
|
24
|
+
- Provides audit trail for curation session outcomes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
children_hash: ce72a395bf10a82836c973904202f721c5fbcdd57b8e612e44466deac2c68fd8
|
|
3
|
+
compression_ratio: 0.7358490566037735
|
|
4
|
+
condensation_order: 1
|
|
5
|
+
covers: [empty_context.md]
|
|
6
|
+
covers_token_total: 212
|
|
7
|
+
summary_level: d1
|
|
8
|
+
token_count: 156
|
|
9
|
+
type: summary
|
|
10
|
+
---
|
|
11
|
+
# Meta: Curation Context
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
This domain records context curation attempts from RLM sessions where input variables were empty or contained no actionable content.
|
|
16
|
+
|
|
17
|
+
## Key Pattern
|
|
18
|
+
|
|
19
|
+
- **empty_context.md** — Documents instances where the context variable contained only placeholder characters (e.g., ".") with no extractable facts. Serves as a record of unsuccessful curation attempts to distinguish from genuinely processed content.
|
|
20
|
+
|
|
21
|
+
## Relationships
|
|
22
|
+
|
|
23
|
+
- child entries reference abstract and overview variants at `meta/curation_context/`
|
|
24
|
+
- Used to track curation workflow outcomes and prevent reprocessing empty inputs
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: '2026-04-23T05:47:41.687Z'
|
|
3
|
+
keywords: []
|
|
4
|
+
related: [meta/curation_context/empty_context.abstract.md, meta/curation_context/empty_context.overview.md]
|
|
5
|
+
summary: Context variable was empty (single dot), no facts extracted
|
|
6
|
+
tags: []
|
|
7
|
+
title: Empty Context
|
|
8
|
+
updatedAt: '2026-04-23T05:47:41.687Z'
|
|
9
|
+
---
|
|
10
|
+
## Reason
|
|
11
|
+
Documenting that the context variable contained only a dot with no meaningful content
|
|
12
|
+
|
|
13
|
+
## Raw Concept
|
|
14
|
+
**Task:**
|
|
15
|
+
Curate empty context from RLM session
|
|
16
|
+
|
|
17
|
+
**Changes:**
|
|
18
|
+
- Context variable contained only a dot
|
|
19
|
+
|
|
20
|
+
**Flow:**
|
|
21
|
+
Received context -> recon -> determined single-pass -> no facts -> curated meta context
|
|
22
|
+
|
|
23
|
+
**Timestamp:** 2026-04-23
|
|
24
|
+
|
|
25
|
+
**Author:** Context Engineer
|
|
26
|
+
|
|
27
|
+
## Narrative
|
|
28
|
+
### Structure
|
|
29
|
+
No actual content to curate; context variable was "."
|
|
30
|
+
|
|
31
|
+
### Dependencies
|
|
32
|
+
None
|
|
33
|
+
|
|
34
|
+
### Highlights
|
|
35
|
+
No facts extracted due to lack of meaningful input
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
related: [meta/curation_context/empty_context.md, meta/curation_context/empty_context.abstract.md]
|
|
3
|
+
---
|
|
4
|
+
**Key Points**
|
|
5
|
+
- The context variable contained only a single dot (".") with no meaningful content.
|
|
6
|
+
- No facts were extracted because the input lacked substantive information.
|
|
7
|
+
- The document records the reasoning and workflow for handling an empty context in an RLM session.
|
|
8
|
+
- A "meta context" was curated to document the absence of data.
|
|
9
|
+
- The entry was created and updated on 2026-04-23 by the Context Engineer.
|
|
10
|
+
|
|
11
|
+
**Structure / Sections Summary**
|
|
12
|
+
- **Front‑matter**: title, summary, tags, related, keywords, timestamps.
|
|
13
|
+
- **Reason**: brief statement explaining why the document exists (empty context).
|
|
14
|
+
- **Raw Concept**: details the task, changes observed, flow of processing, timestamp, and author.
|
|
15
|
+
- **Narrative**: describes the structure (no content), dependencies (none), and highlights (no facts extracted).
|
|
16
|
+
|
|
17
|
+
**Notable Entities, Patterns, or Decisions**
|
|
18
|
+
- **Entities**: Context Engineer, RLM session, context variable, meta context.
|
|
19
|
+
- **Patterns**: Detection of a single‑dot context → single‑pass determination → zero fact extraction → creation of a meta‑context record.
|
|
20
|
+
- **Decisions**: Determined that the context required only a single pass; concluded no facts could be extracted; opted to curate an empty‑context meta record for traceability.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"completedAt": 1777341186404,
|
|
3
|
+
"id": "drm-1777341062653",
|
|
4
|
+
"operations": [
|
|
5
|
+
{
|
|
6
|
+
"action": "CROSS_REFERENCE",
|
|
7
|
+
"inputFiles": [
|
|
8
|
+
"meta/curation_context/empty_context.md",
|
|
9
|
+
"meta/curation_context/empty_context.abstract.md",
|
|
10
|
+
"meta/curation_context/empty_context.overview.md"
|
|
11
|
+
],
|
|
12
|
+
"needsReview": false,
|
|
13
|
+
"previousTexts": {
|
|
14
|
+
"meta/curation_context/empty_context.md": "---\ntitle: Empty Context\nsummary: Context variable was empty (single dot), no facts extracted\ntags: []\nrelated: []\nkeywords: []\ncreatedAt: '2026-04-23T05:47:41.687Z'\nupdatedAt: '2026-04-23T05:47:41.687Z'\n---\n## Reason\nDocumenting that the context variable contained only a dot with no meaningful content\n\n## Raw Concept\n**Task:**\nCurate empty context from RLM session\n\n**Changes:**\n- Context variable contained only a dot\n\n**Flow:**\nReceived context -> recon -> determined single-pass -> no facts -> curated meta context\n\n**Timestamp:** 2026-04-23\n\n**Author:** Context Engineer\n\n## Narrative\n### Structure\nNo actual content to curate; context variable was \".\"\n\n### Dependencies\nNone\n\n### Highlights\nNo facts extracted due to lack of meaningful input\n",
|
|
15
|
+
"meta/curation_context/empty_context.abstract.md": "The context variable contained only a dot, resulting in no facts being extracted.",
|
|
16
|
+
"meta/curation_context/empty_context.overview.md": "**Key Points**\n- The context variable contained only a single dot (\".\") with no meaningful content. \n- No facts were extracted because the input lacked substantive information. \n- The document records the reasoning and workflow for handling an empty context in an RLM session. \n- A \"meta context\" was curated to document the absence of data. \n- The entry was created and updated on 2026-04-23 by the Context Engineer. \n\n**Structure / Sections Summary**\n- **Front‑matter**: title, summary, tags, related, keywords, timestamps. \n- **Reason**: brief statement explaining why the document exists (empty context). \n- **Raw Concept**: details the task, changes observed, flow of processing, timestamp, and author. \n- **Narrative**: describes the structure (no content), dependencies (none), and highlights (no facts extracted). \n\n**Notable Entities, Patterns, or Decisions**\n- **Entities**: Context Engineer, RLM session, context variable, meta context. \n- **Patterns**: Detection of a single‑dot context → single‑pass determination → zero fact extraction → creation of a meta‑context record. \n- **Decisions**: Determined that the context required only a single pass; concluded no facts could be extracted; opted to curate an empty‑context meta record for traceability."
|
|
17
|
+
},
|
|
18
|
+
"reason": "These are complementary context tree companion files for the 'Empty Context' entry: the main .md contains full content with rawConcept and narrative, the .abstract.md provides a one-sentence summary, and the .overview.md provides a structured breakdown with key points. They serve distinct purposes in the context tree hierarchy and should remain separate with frontmatter cross-references linking them.",
|
|
19
|
+
"type": "CONSOLIDATE"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"startedAt": 1777341062653,
|
|
23
|
+
"status": "completed",
|
|
24
|
+
"summary": {
|
|
25
|
+
"consolidated": 1,
|
|
26
|
+
"errors": 0,
|
|
27
|
+
"flaggedForReview": 0,
|
|
28
|
+
"pruned": 0,
|
|
29
|
+
"synthesized": 0
|
|
30
|
+
},
|
|
31
|
+
"taskId": "fad4a202-0e75-4157-91fd-7ddc01d84c85",
|
|
32
|
+
"trigger": "agent-idle"
|
|
33
|
+
}
|
package/.brv/dream.lock
ADDED
|
File without changes
|