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.
Files changed (445) hide show
  1. package/.brv/.obsidian/app.json +1 -0
  2. package/.brv/.obsidian/appearance.json +1 -0
  3. package/.brv/.obsidian/core-plugins.json +33 -0
  4. package/.brv/.obsidian/graph.json +22 -0
  5. package/.brv/.obsidian/workspace.json +195 -0
  6. package/.brv/Sin ti/314/201tulo 1.canvas" +1 -0
  7. package/.brv/Sin ti/314/201tulo 2.canvas" +1 -0
  8. package/.brv/Sin ti/314/201tulo.canvas" +1 -0
  9. package/.brv/_queue_status.json +1 -0
  10. package/.brv/config.json +5 -0
  11. package/.brv/context-tree/_index.md +60 -0
  12. package/.brv/context-tree/_manifest.json +165 -0
  13. package/.brv/context-tree/backend/_index.md +24 -0
  14. package/.brv/context-tree/backend/backend/_index.md +40 -0
  15. package/.brv/context-tree/backend/backend/init.abstract.md +0 -0
  16. package/.brv/context-tree/backend/backend/init.md +27 -0
  17. package/.brv/context-tree/backend/backend/init.overview.md +29 -0
  18. package/.brv/context-tree/backend/backend/job_tracker.abstract.md +1 -0
  19. package/.brv/context-tree/backend/backend/job_tracker.md +273 -0
  20. package/.brv/context-tree/backend/backend/job_tracker.overview.md +31 -0
  21. package/.brv/context-tree/backend/backend/main.abstract.md +0 -0
  22. package/.brv/context-tree/backend/backend/main.md +1292 -0
  23. package/.brv/context-tree/backend/backend/main.overview.md +30 -0
  24. package/.brv/context-tree/backend/backend/requirements.abstract.md +1 -0
  25. package/.brv/context-tree/backend/backend/requirements.md +37 -0
  26. package/.brv/context-tree/backend/backend/requirements.overview.md +28 -0
  27. package/.brv/context-tree/docs/_index.md +37 -0
  28. package/.brv/context-tree/docs/api/_index.md +54 -0
  29. package/.brv/context-tree/docs/api/context.md +11 -0
  30. package/.brv/context-tree/docs/api/hermes_api_openapi_specification.abstract.md +0 -0
  31. package/.brv/context-tree/docs/api/hermes_api_openapi_specification.md +468 -0
  32. package/.brv/context-tree/docs/api/hermes_api_openapi_specification.overview.md +44 -0
  33. package/.brv/context-tree/frontend/_index.md +48 -0
  34. package/.brv/context-tree/frontend/hermes_dashboard/_index.md +31 -0
  35. package/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.abstract.md +0 -0
  36. package/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.md +41 -0
  37. package/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.overview.md +34 -0
  38. package/.brv/context-tree/frontend/src/_index.md +53 -0
  39. package/.brv/context-tree/frontend/src/components/_index.md +52 -0
  40. package/.brv/context-tree/frontend/src/components/sidebar_navigation_component.abstract.md +0 -0
  41. package/.brv/context-tree/frontend/src/components/sidebar_navigation_component.md +161 -0
  42. package/.brv/context-tree/frontend/src/components/sidebar_navigation_component.overview.md +32 -0
  43. package/.brv/context-tree/frontend/src/context.md +10 -0
  44. package/.brv/context-tree/frontend/src/functioncallingpage.abstract.md +0 -0
  45. package/.brv/context-tree/frontend/src/functioncallingpage.md +34 -0
  46. package/.brv/context-tree/frontend/src/functioncallingpage.overview.md +26 -0
  47. package/.brv/context-tree/frontend/src/lib/_index.md +48 -0
  48. package/.brv/context-tree/frontend/src/lib/api_client_library.abstract.md +1 -0
  49. package/.brv/context-tree/frontend/src/lib/api_client_library.md +403 -0
  50. package/.brv/context-tree/frontend/src/lib/api_client_library.overview.md +69 -0
  51. package/.brv/context-tree/frontend/src/page.abstract.md +0 -0
  52. package/.brv/context-tree/frontend/src/page.md +103 -0
  53. package/.brv/context-tree/frontend/src/page.overview.md +7 -0
  54. package/.brv/context-tree/frontend/src/settingspage.abstract.md +0 -0
  55. package/.brv/context-tree/frontend/src/settingspage.md +124 -0
  56. package/.brv/context-tree/frontend/src/settingspage.overview.md +34 -0
  57. package/.brv/context-tree/frontend/src/sidebar.abstract.md +0 -0
  58. package/.brv/context-tree/frontend/src/sidebar.md +170 -0
  59. package/.brv/context-tree/frontend/src/sidebar.overview.md +25 -0
  60. package/.brv/context-tree/meta/_index.md +24 -0
  61. package/.brv/context-tree/meta/curation_context/_index.md +24 -0
  62. package/.brv/context-tree/meta/curation_context/empty_context.abstract.md +4 -0
  63. package/.brv/context-tree/meta/curation_context/empty_context.md +35 -0
  64. package/.brv/context-tree/meta/curation_context/empty_context.overview.md +20 -0
  65. package/.brv/dream-log/drm-1777341062653.json +33 -0
  66. package/.brv/dream-state.json +8 -0
  67. package/.brv/dream.lock +0 -0
  68. package/.brv/review-backups/docs/api/hermes_api_openapi_specification.md +468 -0
  69. package/.claude/settings.local.json +7 -0
  70. package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/app.json +1 -0
  71. package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/appearance.json +1 -0
  72. package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/core-plugins.json +33 -0
  73. package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/graph.json +22 -0
  74. package/.claude/worktrees/phase-2-mcp/.brv/.obsidian/workspace.json +195 -0
  75. package/.claude/worktrees/phase-2-mcp/.brv/Sin t/303/255tulo 1.canvas" +1 -0
  76. package/.claude/worktrees/phase-2-mcp/.brv/Sin t/303/255tulo 2.canvas" +1 -0
  77. package/.claude/worktrees/phase-2-mcp/.brv/Sin t/303/255tulo.canvas" +1 -0
  78. package/.claude/worktrees/phase-2-mcp/.brv/_queue_status.json +1 -0
  79. package/.claude/worktrees/phase-2-mcp/.brv/config.json +5 -0
  80. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/_index.md +60 -0
  81. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/_manifest.json +165 -0
  82. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/_index.md +24 -0
  83. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/_index.md +40 -0
  84. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/init.abstract.md +0 -0
  85. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/init.md +27 -0
  86. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/init.overview.md +29 -0
  87. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/job_tracker.abstract.md +1 -0
  88. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/job_tracker.md +273 -0
  89. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/job_tracker.overview.md +31 -0
  90. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/main.abstract.md +0 -0
  91. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/main.md +1292 -0
  92. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/main.overview.md +30 -0
  93. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/requirements.abstract.md +1 -0
  94. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/requirements.md +37 -0
  95. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/backend/backend/requirements.overview.md +28 -0
  96. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/_index.md +37 -0
  97. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/_index.md +54 -0
  98. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/context.md +11 -0
  99. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/hermes_api_openapi_specification.abstract.md +0 -0
  100. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/hermes_api_openapi_specification.md +468 -0
  101. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/docs/api/hermes_api_openapi_specification.overview.md +44 -0
  102. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/_index.md +48 -0
  103. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/hermes_dashboard/_index.md +31 -0
  104. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.abstract.md +0 -0
  105. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.md +41 -0
  106. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/hermes_dashboard/architecture_overview.overview.md +34 -0
  107. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/_index.md +53 -0
  108. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/components/_index.md +52 -0
  109. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/components/sidebar_navigation_component.abstract.md +0 -0
  110. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/components/sidebar_navigation_component.md +161 -0
  111. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/components/sidebar_navigation_component.overview.md +32 -0
  112. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/context.md +10 -0
  113. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/functioncallingpage.abstract.md +0 -0
  114. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/functioncallingpage.md +34 -0
  115. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/functioncallingpage.overview.md +26 -0
  116. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/lib/_index.md +48 -0
  117. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/lib/api_client_library.abstract.md +1 -0
  118. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/lib/api_client_library.md +403 -0
  119. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/lib/api_client_library.overview.md +69 -0
  120. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/page.abstract.md +0 -0
  121. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/page.md +103 -0
  122. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/page.overview.md +7 -0
  123. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/settingspage.abstract.md +0 -0
  124. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/settingspage.md +124 -0
  125. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/settingspage.overview.md +34 -0
  126. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/sidebar.abstract.md +0 -0
  127. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/sidebar.md +170 -0
  128. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/frontend/src/sidebar.overview.md +25 -0
  129. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/_index.md +24 -0
  130. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/curation_context/_index.md +24 -0
  131. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/curation_context/empty_context.abstract.md +4 -0
  132. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/curation_context/empty_context.md +35 -0
  133. package/.claude/worktrees/phase-2-mcp/.brv/context-tree/meta/curation_context/empty_context.overview.md +20 -0
  134. package/.claude/worktrees/phase-2-mcp/.brv/dream-log/drm-1777341062653.json +33 -0
  135. package/.claude/worktrees/phase-2-mcp/.brv/dream-state.json +8 -0
  136. package/.claude/worktrees/phase-2-mcp/.brv/dream.lock +0 -0
  137. package/.claude/worktrees/phase-2-mcp/.brv/review-backups/docs/api/hermes_api_openapi_specification.md +468 -0
  138. package/.claude/worktrees/phase-2-mcp/.claude/settings.local.json +13 -0
  139. package/.claude/worktrees/phase-2-mcp/.kilocode/package-lock.json +378 -0
  140. package/.claude/worktrees/phase-2-mcp/.kilocode/package.json +5 -0
  141. package/.claude/worktrees/phase-2-mcp/AGENTS.md +5 -0
  142. package/.claude/worktrees/phase-2-mcp/CLAUDE.md +29 -0
  143. package/.claude/worktrees/phase-2-mcp/QA_AUDIT_PLAN.md +156 -0
  144. package/.claude/worktrees/phase-2-mcp/README.md +316 -0
  145. package/.claude/worktrees/phase-2-mcp/agent-agnostic-evolution-dashboard.md +405 -0
  146. package/.claude/worktrees/phase-2-mcp/backend/__init__.py +0 -0
  147. package/.claude/worktrees/phase-2-mcp/backend/collectors/__init__.py +0 -0
  148. package/.claude/worktrees/phase-2-mcp/backend/collectors/claude_code_collector.py +277 -0
  149. package/.claude/worktrees/phase-2-mcp/backend/collectors/hermes_collector.py +68 -0
  150. package/.claude/worktrees/phase-2-mcp/backend/curator.py +512 -0
  151. package/.claude/worktrees/phase-2-mcp/backend/eval/__init__.py +19 -0
  152. package/.claude/worktrees/phase-2-mcp/backend/eval/engine.py +116 -0
  153. package/.claude/worktrees/phase-2-mcp/backend/eval/scorers.py +201 -0
  154. package/.claude/worktrees/phase-2-mcp/backend/generate_dataset.py +86 -0
  155. package/.claude/worktrees/phase-2-mcp/backend/job_tracker.py +232 -0
  156. package/.claude/worktrees/phase-2-mcp/backend/main.py +1746 -0
  157. package/.claude/worktrees/phase-2-mcp/backend/mcp_server.py +250 -0
  158. package/.claude/worktrees/phase-2-mcp/backend/promethean/__init__.py +24 -0
  159. package/.claude/worktrees/phase-2-mcp/backend/promethean/cycle_orchestrator.py +270 -0
  160. package/.claude/worktrees/phase-2-mcp/backend/promethean/delta_validator.py +191 -0
  161. package/.claude/worktrees/phase-2-mcp/backend/promethean/dspy_compiler.py +315 -0
  162. package/.claude/worktrees/phase-2-mcp/backend/promethean/gepa_strategist.py +213 -0
  163. package/.claude/worktrees/phase-2-mcp/backend/promethean/models.py +260 -0
  164. package/.claude/worktrees/phase-2-mcp/backend/promethean/skill_deployer.py +195 -0
  165. package/.claude/worktrees/phase-2-mcp/backend/promethean/trace_ingestion.py +142 -0
  166. package/.claude/worktrees/phase-2-mcp/backend/requirements.txt +6 -0
  167. package/.claude/worktrees/phase-2-mcp/backend/sdd_evolve.py +459 -0
  168. package/.claude/worktrees/phase-2-mcp/backend/skill_detector.py +227 -0
  169. package/.claude/worktrees/phase-2-mcp/backend/skill_registry.py +289 -0
  170. package/.claude/worktrees/phase-2-mcp/backend/storage/__init__.py +5 -0
  171. package/.claude/worktrees/phase-2-mcp/backend/storage/run_store.py +393 -0
  172. package/.claude/worktrees/phase-2-mcp/backend/storage/schema.sql +99 -0
  173. package/.claude/worktrees/phase-2-mcp/backend/validate_evolution.py +267 -0
  174. package/.claude/worktrees/phase-2-mcp/components.json +28 -0
  175. package/.claude/worktrees/phase-2-mcp/docs/api/hermes-api.openapi.yaml +438 -0
  176. package/.claude/worktrees/phase-2-mcp/docs/hero.svg +148 -0
  177. package/.claude/worktrees/phase-2-mcp/eslint.config.mjs +18 -0
  178. package/.claude/worktrees/phase-2-mcp/install.sh +245 -0
  179. package/.claude/worktrees/phase-2-mcp/next-env.d.ts +6 -0
  180. package/.claude/worktrees/phase-2-mcp/next.config.ts +32 -0
  181. package/.claude/worktrees/phase-2-mcp/package-lock.json +11936 -0
  182. package/.claude/worktrees/phase-2-mcp/package.json +41 -0
  183. package/.claude/worktrees/phase-2-mcp/pnpm-workspace.yaml +4 -0
  184. package/.claude/worktrees/phase-2-mcp/postcss.config.mjs +7 -0
  185. package/.claude/worktrees/phase-2-mcp/public/file.svg +1 -0
  186. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Bold.otf +0 -0
  187. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Heavy.otf +0 -0
  188. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Medium.otf +0 -0
  189. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Regular.otf +0 -0
  190. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Display-Semibold.otf +0 -0
  191. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Bold.otf +0 -0
  192. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Heavy.otf +0 -0
  193. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Medium.otf +0 -0
  194. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Regular.otf +0 -0
  195. package/.claude/worktrees/phase-2-mcp/public/fonts/SF-Pro-Text-Semibold.otf +0 -0
  196. package/.claude/worktrees/phase-2-mcp/public/globe.svg +1 -0
  197. package/.claude/worktrees/phase-2-mcp/public/next.svg +1 -0
  198. package/.claude/worktrees/phase-2-mcp/public/theme-preview.html +257 -0
  199. package/.claude/worktrees/phase-2-mcp/public/vercel.svg +1 -0
  200. package/.claude/worktrees/phase-2-mcp/public/window.svg +1 -0
  201. package/.claude/worktrees/phase-2-mcp/run.sh +26 -0
  202. package/.claude/worktrees/phase-2-mcp/skills-lock.json +10 -0
  203. package/.claude/worktrees/phase-2-mcp/specs/event-schema.md +223 -0
  204. package/.claude/worktrees/phase-2-mcp/specs/examples/run.jsonl +3 -0
  205. package/.claude/worktrees/phase-2-mcp/src/app/api/[...path]/route.ts +55 -0
  206. package/.claude/worktrees/phase-2-mcp/src/app/api/auth/token/route.ts +22 -0
  207. package/.claude/worktrees/phase-2-mcp/src/app/evolution/page.tsx +589 -0
  208. package/.claude/worktrees/phase-2-mcp/src/app/favicon.ico +0 -0
  209. package/.claude/worktrees/phase-2-mcp/src/app/globals.css +321 -0
  210. package/.claude/worktrees/phase-2-mcp/src/app/layout.tsx +63 -0
  211. package/.claude/worktrees/phase-2-mcp/src/app/page.tsx +70 -0
  212. package/.claude/worktrees/phase-2-mcp/src/app/skills/page.tsx +369 -0
  213. package/.claude/worktrees/phase-2-mcp/src/components/ApiConfigCard.tsx +199 -0
  214. package/.claude/worktrees/phase-2-mcp/src/components/ColorBends.css +1 -0
  215. package/.claude/worktrees/phase-2-mcp/src/components/ColorBends.d.ts +1 -0
  216. package/.claude/worktrees/phase-2-mcp/src/components/ColorBends.jsx +1 -0
  217. package/.claude/worktrees/phase-2-mcp/src/components/CoreLoopToggle.tsx +111 -0
  218. package/.claude/worktrees/phase-2-mcp/src/components/EnvironmentStatus.tsx +176 -0
  219. package/.claude/worktrees/phase-2-mcp/src/components/EvolutionBackground.tsx +1 -0
  220. package/.claude/worktrees/phase-2-mcp/src/components/ReactQueryProvider.tsx +24 -0
  221. package/.claude/worktrees/phase-2-mcp/src/components/Sidebar.tsx +247 -0
  222. package/.claude/worktrees/phase-2-mcp/src/components/SkillDiffViewer.tsx +154 -0
  223. package/.claude/worktrees/phase-2-mcp/src/components/ThemeAwareBackground.tsx +67 -0
  224. package/.claude/worktrees/phase-2-mcp/src/components/ThemeToggle.tsx +54 -0
  225. package/.claude/worktrees/phase-2-mcp/src/components/WelcomeHero.tsx +77 -0
  226. package/.claude/worktrees/phase-2-mcp/src/components/bits/ClickSpark.tsx +116 -0
  227. package/.claude/worktrees/phase-2-mcp/src/components/bits/CountUp.tsx +98 -0
  228. package/.claude/worktrees/phase-2-mcp/src/components/bits/DarkSelect.tsx +95 -0
  229. package/.claude/worktrees/phase-2-mcp/src/components/bits/DecryptedText.tsx +161 -0
  230. package/.claude/worktrees/phase-2-mcp/src/components/bits/ElectricBorder.tsx +184 -0
  231. package/.claude/worktrees/phase-2-mcp/src/components/bits/GlitchText.tsx +34 -0
  232. package/.claude/worktrees/phase-2-mcp/src/components/bits/ShinyText.tsx +55 -0
  233. package/.claude/worktrees/phase-2-mcp/src/components/bits/SpotlightCard.tsx +42 -0
  234. package/.claude/worktrees/phase-2-mcp/src/components/bits/TextType.tsx +95 -0
  235. package/.claude/worktrees/phase-2-mcp/src/components/bits/index.ts +9 -0
  236. package/.claude/worktrees/phase-2-mcp/src/components/pages/CuratorPage.tsx +632 -0
  237. package/.claude/worktrees/phase-2-mcp/src/components/pages/DatasetPage.tsx +271 -0
  238. package/.claude/worktrees/phase-2-mcp/src/components/pages/EvolutionPage.tsx +676 -0
  239. package/.claude/worktrees/phase-2-mcp/src/components/pages/FunctionCallingPage.tsx +1 -0
  240. package/.claude/worktrees/phase-2-mcp/src/components/pages/LogsPage.tsx +272 -0
  241. package/.claude/worktrees/phase-2-mcp/src/components/pages/MetricsPage.tsx +246 -0
  242. package/.claude/worktrees/phase-2-mcp/src/components/pages/OverviewPage.tsx +420 -0
  243. package/.claude/worktrees/phase-2-mcp/src/components/pages/SettingsPage.tsx +88 -0
  244. package/.claude/worktrees/phase-2-mcp/src/components/pages/SkillStudioPage.tsx +376 -0
  245. package/.claude/worktrees/phase-2-mcp/src/components/ui/animated-theme-toggler.tsx +97 -0
  246. package/.claude/worktrees/phase-2-mcp/src/components/ui/button.tsx +67 -0
  247. package/.claude/worktrees/phase-2-mcp/src/components/ui/card.tsx +103 -0
  248. package/.claude/worktrees/phase-2-mcp/src/components/ui/input.tsx +19 -0
  249. package/.claude/worktrees/phase-2-mcp/src/components/ui/separator.tsx +28 -0
  250. package/.claude/worktrees/phase-2-mcp/src/components/ui/sheet.tsx +147 -0
  251. package/.claude/worktrees/phase-2-mcp/src/components/ui/sidebar.tsx +702 -0
  252. package/.claude/worktrees/phase-2-mcp/src/components/ui/skeleton.tsx +13 -0
  253. package/.claude/worktrees/phase-2-mcp/src/components/ui/theme-toggle.tsx +272 -0
  254. package/.claude/worktrees/phase-2-mcp/src/components/ui/tooltip.tsx +57 -0
  255. package/.claude/worktrees/phase-2-mcp/src/hooks/use-mobile.ts +19 -0
  256. package/.claude/worktrees/phase-2-mcp/src/lib/api.ts +455 -0
  257. package/.claude/worktrees/phase-2-mcp/src/lib/queryClient.ts +12 -0
  258. package/.claude/worktrees/phase-2-mcp/src/lib/utils.ts +6 -0
  259. package/.claude/worktrees/phase-2-mcp/stitch/agent_dashboard/DESIGN_SPEC.md +521 -0
  260. package/.claude/worktrees/phase-2-mcp/stitch/agent_dashboard/prototype.html +676 -0
  261. package/.claude/worktrees/phase-2-mcp/stitch/curator_workspace/code.html +448 -0
  262. package/.claude/worktrees/phase-2-mcp/stitch/curator_workspace/screen.png +0 -0
  263. package/.claude/worktrees/phase-2-mcp/stitch/datasets/code.html +479 -0
  264. package/.claude/worktrees/phase-2-mcp/stitch/datasets/screen.png +0 -0
  265. package/.claude/worktrees/phase-2-mcp/stitch/evolution_history/code.html +461 -0
  266. package/.claude/worktrees/phase-2-mcp/stitch/evolution_history/screen.png +0 -0
  267. package/.claude/worktrees/phase-2-mcp/stitch/hermes_dashboard/DESIGN.md +192 -0
  268. package/.claude/worktrees/phase-2-mcp/stitch/hermes_dashboard/DESIGN_SPEC.md +455 -0
  269. package/.claude/worktrees/phase-2-mcp/stitch/hermes_overview/code.html +399 -0
  270. package/.claude/worktrees/phase-2-mcp/stitch/hermes_overview/screen.png +0 -0
  271. package/.claude/worktrees/phase-2-mcp/stitch/live_logs/code.html +324 -0
  272. package/.claude/worktrees/phase-2-mcp/stitch/live_logs/screen.png +0 -0
  273. package/.claude/worktrees/phase-2-mcp/stitch/skill_hub/code.html +596 -0
  274. package/.claude/worktrees/phase-2-mcp/stitch/skill_hub/screen.png +0 -0
  275. package/.claude/worktrees/phase-2-mcp/stitch/system_metrics/code.html +527 -0
  276. package/.claude/worktrees/phase-2-mcp/stitch/system_metrics/screen.png +0 -0
  277. package/.claude/worktrees/phase-2-mcp/stitch/system_settings/code.html +257 -0
  278. package/.claude/worktrees/phase-2-mcp/stitch/system_settings/screen.png +0 -0
  279. package/.claude/worktrees/phase-2-mcp/test_dashboard.py +201 -0
  280. package/.claude/worktrees/phase-2-mcp/tests/collectors/__init__.py +0 -0
  281. package/.claude/worktrees/phase-2-mcp/tests/collectors/fixtures/sample_session.jsonl +7 -0
  282. package/.claude/worktrees/phase-2-mcp/tests/collectors/test_claude_code_collector.py +171 -0
  283. package/.claude/worktrees/phase-2-mcp/tests/collectors/test_hermes_collector.py +167 -0
  284. package/.claude/worktrees/phase-2-mcp/tests/eval/test_engine.py +234 -0
  285. package/.claude/worktrees/phase-2-mcp/tests/eval/test_scorers.py +249 -0
  286. package/.claude/worktrees/phase-2-mcp/tests/storage/__init__.py +0 -0
  287. package/.claude/worktrees/phase-2-mcp/tests/storage/test_run_store.py +359 -0
  288. package/.claude/worktrees/phase-2-mcp/tests/test_curator.py +559 -0
  289. package/.claude/worktrees/phase-2-mcp/tests/test_mcp_server.py +114 -0
  290. package/.claude/worktrees/phase-2-mcp/tsconfig.json +34 -0
  291. package/.env.example +72 -0
  292. package/.kilocode/package-lock.json +378 -0
  293. package/.kilocode/package.json +5 -0
  294. package/AGENTS.md +5 -0
  295. package/CLAUDE.md +29 -0
  296. package/QA_AUDIT_PLAN.md +156 -0
  297. package/README.md +355 -0
  298. package/agent-agnostic-evolution-dashboard.md +405 -0
  299. package/backend/__init__.py +0 -0
  300. package/backend/collectors/__init__.py +0 -0
  301. package/backend/collectors/claude_code_collector.py +277 -0
  302. package/backend/collectors/hermes_collector.py +68 -0
  303. package/backend/curator.py +512 -0
  304. package/backend/eval/__init__.py +19 -0
  305. package/backend/eval/engine.py +116 -0
  306. package/backend/eval/scorers.py +201 -0
  307. package/backend/generate_dataset.py +86 -0
  308. package/backend/job_tracker.py +232 -0
  309. package/backend/main.py +1746 -0
  310. package/backend/mcp_server.py +250 -0
  311. package/backend/promethean/__init__.py +24 -0
  312. package/backend/promethean/cycle_orchestrator.py +270 -0
  313. package/backend/promethean/delta_validator.py +191 -0
  314. package/backend/promethean/dspy_compiler.py +315 -0
  315. package/backend/promethean/gepa_strategist.py +213 -0
  316. package/backend/promethean/models.py +260 -0
  317. package/backend/promethean/skill_deployer.py +195 -0
  318. package/backend/promethean/trace_ingestion.py +142 -0
  319. package/backend/requirements.txt +6 -0
  320. package/backend/sdd_evolve.py +459 -0
  321. package/backend/skill_detector.py +227 -0
  322. package/backend/skill_registry.py +289 -0
  323. package/backend/storage/__init__.py +5 -0
  324. package/backend/storage/run_store.py +393 -0
  325. package/backend/storage/schema.sql +99 -0
  326. package/backend/validate_evolution.py +267 -0
  327. package/bin/genoma.js +250 -0
  328. package/components.json +28 -0
  329. package/docs/api/hermes-api.openapi.yaml +438 -0
  330. package/docs/hero.svg +148 -0
  331. package/eslint.config.mjs +18 -0
  332. package/install.sh +245 -0
  333. package/next-env.d.ts +6 -0
  334. package/next.config.ts +32 -0
  335. package/package.json +46 -0
  336. package/pnpm-workspace.yaml +4 -0
  337. package/postcss.config.mjs +7 -0
  338. package/public/file.svg +1 -0
  339. package/public/fonts/SF-Pro-Display-Bold.otf +0 -0
  340. package/public/fonts/SF-Pro-Display-Heavy.otf +0 -0
  341. package/public/fonts/SF-Pro-Display-Medium.otf +0 -0
  342. package/public/fonts/SF-Pro-Display-Regular.otf +0 -0
  343. package/public/fonts/SF-Pro-Display-Semibold.otf +0 -0
  344. package/public/fonts/SF-Pro-Text-Bold.otf +0 -0
  345. package/public/fonts/SF-Pro-Text-Heavy.otf +0 -0
  346. package/public/fonts/SF-Pro-Text-Medium.otf +0 -0
  347. package/public/fonts/SF-Pro-Text-Regular.otf +0 -0
  348. package/public/fonts/SF-Pro-Text-Semibold.otf +0 -0
  349. package/public/globe.svg +1 -0
  350. package/public/next.svg +1 -0
  351. package/public/theme-preview.html +257 -0
  352. package/public/vercel.svg +1 -0
  353. package/public/window.svg +1 -0
  354. package/run.sh +26 -0
  355. package/scripts/postinstall.js +50 -0
  356. package/skills-lock.json +10 -0
  357. package/specs/event-schema.md +223 -0
  358. package/specs/examples/run.jsonl +3 -0
  359. package/src/app/api/[...path]/route.ts +55 -0
  360. package/src/app/api/auth/token/route.ts +22 -0
  361. package/src/app/evolution/page.tsx +589 -0
  362. package/src/app/favicon.ico +0 -0
  363. package/src/app/globals.css +321 -0
  364. package/src/app/layout.tsx +63 -0
  365. package/src/app/page.tsx +70 -0
  366. package/src/app/skills/page.tsx +369 -0
  367. package/src/components/ApiConfigCard.tsx +199 -0
  368. package/src/components/ColorBends.css +1 -0
  369. package/src/components/ColorBends.d.ts +1 -0
  370. package/src/components/ColorBends.jsx +1 -0
  371. package/src/components/CoreLoopToggle.tsx +111 -0
  372. package/src/components/EnvironmentStatus.tsx +176 -0
  373. package/src/components/EvolutionBackground.tsx +1 -0
  374. package/src/components/ReactQueryProvider.tsx +24 -0
  375. package/src/components/Sidebar.tsx +247 -0
  376. package/src/components/SkillDiffViewer.tsx +154 -0
  377. package/src/components/ThemeAwareBackground.tsx +67 -0
  378. package/src/components/ThemeToggle.tsx +54 -0
  379. package/src/components/WelcomeHero.tsx +77 -0
  380. package/src/components/bits/ClickSpark.tsx +116 -0
  381. package/src/components/bits/CountUp.tsx +98 -0
  382. package/src/components/bits/DarkSelect.tsx +95 -0
  383. package/src/components/bits/DecryptedText.tsx +161 -0
  384. package/src/components/bits/ElectricBorder.tsx +184 -0
  385. package/src/components/bits/GlitchText.tsx +34 -0
  386. package/src/components/bits/ShinyText.tsx +55 -0
  387. package/src/components/bits/SpotlightCard.tsx +42 -0
  388. package/src/components/bits/TextType.tsx +95 -0
  389. package/src/components/bits/index.ts +9 -0
  390. package/src/components/pages/CuratorPage.tsx +632 -0
  391. package/src/components/pages/DatasetPage.tsx +271 -0
  392. package/src/components/pages/EvolutionPage.tsx +676 -0
  393. package/src/components/pages/FunctionCallingPage.tsx +1 -0
  394. package/src/components/pages/LogsPage.tsx +272 -0
  395. package/src/components/pages/MetricsPage.tsx +246 -0
  396. package/src/components/pages/OverviewPage.tsx +420 -0
  397. package/src/components/pages/SettingsPage.tsx +88 -0
  398. package/src/components/pages/SkillStudioPage.tsx +376 -0
  399. package/src/components/ui/animated-theme-toggler.tsx +97 -0
  400. package/src/components/ui/button.tsx +67 -0
  401. package/src/components/ui/card.tsx +103 -0
  402. package/src/components/ui/input.tsx +19 -0
  403. package/src/components/ui/separator.tsx +28 -0
  404. package/src/components/ui/sheet.tsx +147 -0
  405. package/src/components/ui/sidebar.tsx +702 -0
  406. package/src/components/ui/skeleton.tsx +13 -0
  407. package/src/components/ui/theme-toggle.tsx +272 -0
  408. package/src/components/ui/tooltip.tsx +57 -0
  409. package/src/hooks/use-mobile.ts +19 -0
  410. package/src/lib/api.ts +455 -0
  411. package/src/lib/queryClient.ts +12 -0
  412. package/src/lib/utils.ts +6 -0
  413. package/stitch/agent_dashboard/DESIGN_SPEC.md +521 -0
  414. package/stitch/agent_dashboard/prototype.html +676 -0
  415. package/stitch/curator_workspace/code.html +448 -0
  416. package/stitch/curator_workspace/screen.png +0 -0
  417. package/stitch/datasets/code.html +479 -0
  418. package/stitch/datasets/screen.png +0 -0
  419. package/stitch/evolution_history/code.html +461 -0
  420. package/stitch/evolution_history/screen.png +0 -0
  421. package/stitch/hermes_dashboard/DESIGN.md +192 -0
  422. package/stitch/hermes_dashboard/DESIGN_SPEC.md +455 -0
  423. package/stitch/hermes_overview/code.html +399 -0
  424. package/stitch/hermes_overview/screen.png +0 -0
  425. package/stitch/live_logs/code.html +324 -0
  426. package/stitch/live_logs/screen.png +0 -0
  427. package/stitch/skill_hub/code.html +596 -0
  428. package/stitch/skill_hub/screen.png +0 -0
  429. package/stitch/system_metrics/code.html +527 -0
  430. package/stitch/system_metrics/screen.png +0 -0
  431. package/stitch/system_settings/code.html +257 -0
  432. package/stitch/system_settings/screen.png +0 -0
  433. package/test_dashboard.py +201 -0
  434. package/tests/collectors/__init__.py +0 -0
  435. package/tests/collectors/fixtures/sample_session.jsonl +7 -0
  436. package/tests/collectors/test_claude_code_collector.py +171 -0
  437. package/tests/collectors/test_hermes_collector.py +167 -0
  438. package/tests/eval/test_engine.py +234 -0
  439. package/tests/eval/test_scorers.py +249 -0
  440. package/tests/storage/__init__.py +0 -0
  441. package/tests/storage/test_run_store.py +359 -0
  442. package/tests/test_curator.py +559 -0
  443. package/tests/test_e2e_npm.py +621 -0
  444. package/tests/test_mcp_server.py +114 -0
  445. package/tsconfig.json +34 -0
@@ -0,0 +1,44 @@
1
+ ## Hermes API OpenAPI Specification Overview
2
+
3
+ ### Key Points
4
+
5
+ - **OpenAPI 3.1.0** specification for Hermes backend (FastAPI/Python)
6
+ - Base server: `http://127.0.0.1:8000` (overridable via `NEXT_PUBLIC_API_BASE` environment variable)
7
+ - Frontend (Next.js) consumes these endpoints with a defined response contract
8
+ - **Evolution system** enables iterative skill improvement with scoring (baseline vs evolved scores)
9
+ - **Jobs system** provides real-time tracking of evolution runs with status, logs, and progress
10
+ - Standardized **ApiError schema** with typed error kinds for consistent frontend error handling
11
+ - WebSocket endpoint (`/ws`) noted but streaming details not included in this spec excerpt
12
+
13
+ ---
14
+
15
+ ### Section Structure
16
+
17
+ | Section | Path Prefix | Methods |
18
+ |---|---|---|
19
+ | Skills | `/api/skills` | GET (list, detail, evolution-history) |
20
+ | Evolution | `/api/evolution` | GET (runs), POST (start) |
21
+ | Jobs | `/api/jobs` | GET (list, detail), DELETE (cancel), GET logs |
22
+ | Health | `/api/health` | GET |
23
+
24
+ ---
25
+
26
+ ### Notable Schemas
27
+
28
+ | Schema | Purpose |
29
+ |---|---|
30
+ | `SkillInfo` | Basic skill metadata (name, path, providers, category, size) |
31
+ | `SkillDetail` | Full skill content including parsed frontmatter, body, and raw content |
32
+ | `EvolutionRun` | Historical record with baseline_score, evolved_score, improvement |
33
+ | `EvolutionJob` | Active job with status enum and progress tracking |
34
+ | `ApiError` | Typed error contract (network/timeout/server/client) |
35
+
36
+ ---
37
+
38
+ ### Notable Decisions / Patterns
39
+
40
+ - **Job status enum** includes 11 states: `queued → loading_skill → building_dataset → validating → configuring → optimizing → evaluating → saving → completed/failed`
41
+ - **Evolution constraints**: `iterations` (1-20, default 3), `eval_source` (default: "synthetic")
42
+ - **503 handling**: All endpoints share a standardized `ServiceUnavailable` response; frontend shows "Desconectado" state with retry option
43
+ - **Health endpoint** exposes system state including `hermes_repo_exists`, `skills_count`, and `categories` breakdown
44
+ - **Job logs**: Streaming paginated logs via `?since=` query parameter
@@ -0,0 +1,48 @@
1
+ ---
2
+ children_hash: 389c2df13933c66ce0fe0315d13164eb36710f49e971334300a4c3927b66c30b
3
+ compression_ratio: 0.5270618556701031
4
+ condensation_order: 2
5
+ covers: [hermes_dashboard/_index.md, src/_index.md]
6
+ covers_token_total: 776
7
+ summary_level: d2
8
+ token_count: 409
9
+ type: summary
10
+ ---
11
+ # Hermes Dashboard
12
+
13
+ ## Architecture
14
+
15
+ Next.js 16 frontend ↔ FastAPI backend, communicating across ports 3000 and 8000 (env-configured as `NEXT_PUBLIC_API_BASE` → `http://127.0.0.1:9119`).
16
+
17
+ **Stack:** Next.js 16 · React Query · Framer Motion · CSS gradients (Three.js removed for lighter footprint)
18
+
19
+ ## Frontend Structure
20
+
21
+ **8 Navigation Sections** (sidebar.md): Overview · Skills · Evolution · Datasets · Memory · Metrics · Logs · Settings
22
+
23
+ All pages lazy-loaded via `next/dynamic` with loading states.
24
+
25
+ **Key Components:**
26
+ - `Sidebar` — Collapsible (64px/240px), Framer Motion animations, cyan accent, dual light/dark mode
27
+ - `SettingsPage` — System paths, env vars (`OPENAI_API_KEY`, `HERMES_AGENT_REPO`), health status
28
+
29
+ **API Client** (`lib/api.ts`, `api_client_library.md`):
30
+ - Auth: `X-Hermes-Session-Token` header, lazy-loaded session
31
+ - Resilience: 15s AbortController timeouts, 401 retry with token refresh, WebSocket 3s auto-reconnect
32
+ - Types: `SkillInfo`, `SkillDetail`, `EvolutionJob`, `EvolutionRun`, `MetricsData`, `DatasetInfo`
33
+
34
+ ## Source Files
35
+
36
+ | Layer | Files |
37
+ |-------|-------|
38
+ | Pages | `src/app/page.tsx`, `src/app/layout.tsx` |
39
+ | Components | `src/components/Sidebar.tsx`, `src/components/pages/*.tsx` |
40
+ | API | `src/lib/api.ts` |
41
+ | Backend | `backend/main.py` (FastAPI, ~20 endpoints + WebSocket) |
42
+
43
+ ## Drill-Down References
44
+
45
+ - `hermes_dashboard/architecture_overview.md` — Full architecture details
46
+ - `src/components/sidebar_navigation_component.md` — Sidebar implementation
47
+ - `src/lib/api_client_library.md` — API client specification
48
+ - `src/page.md` / `src/sidebar.md` / `src/settingspage.md` — Individual page docs
@@ -0,0 +1,31 @@
1
+ ---
2
+ children_hash: 05120e17ddf4ed76482037a8b67a15c5e41ea8a011162c03430a7d52723952f2
3
+ compression_ratio: 0.6966292134831461
4
+ condensation_order: 1
5
+ covers: [architecture_overview.md]
6
+ covers_token_total: 267
7
+ summary_level: d1
8
+ token_count: 186
9
+ type: summary
10
+ ---
11
+ # Hermes Dashboard Architecture
12
+
13
+ ## Overview
14
+ Next.js 16 frontend paired with FastAPI backend, communicating across ports 3000 and 8000 respectively.
15
+
16
+ ## Frontend Stack
17
+ - **Framework:** Next.js 16
18
+ - **UI Optimization:** Three.js removed → CSS gradients for lighter footprint
19
+ - **Config:** `next.config.ts` set to standalone mode
20
+ - **Key Files:** `src/app/page.tsx`, `src/app/layout.tsx`
21
+
22
+ ## Dashboard Pages
23
+ Overview · Skill Hub · Evolution · Datasets · Memory · Metrics · Logs · Settings
24
+
25
+ ## Backend
26
+ - **Framework:** FastAPI
27
+ - **Lazy-loaded:** Backend components loaded on-demand for faster initial frontend load
28
+ - **Key File:** `backend/main.py`
29
+
30
+ ## Performance Decision
31
+ CSS gradients replace Three.js → reduced bundle size, faster rendering.
@@ -0,0 +1,41 @@
1
+ ---
2
+ title: Architecture Overview
3
+ summary: Next.js 16 + FastAPI dashboard with Three.js replaced by CSS gradients, lazy-loaded backend, standalone next.config
4
+ tags: []
5
+ related: []
6
+ keywords: []
7
+ createdAt: '2026-04-28T02:21:54.807Z'
8
+ updatedAt: '2026-04-28T02:21:54.807Z'
9
+ ---
10
+ ## Reason
11
+ Document Hermes Dashboard architecture from inline context
12
+
13
+ ## Raw Concept
14
+ **Task:**
15
+ Document Hermes Dashboard architecture
16
+
17
+ **Changes:**
18
+ - Replaced Three.js with CSS gradients
19
+ - Backend lazy-loaded
20
+ - next.config set to standalone
21
+
22
+ **Files:**
23
+ - src/app/page.tsx
24
+ - src/app/layout.tsx
25
+ - backend/main.py
26
+ - next.config.ts
27
+
28
+ **Flow:**
29
+ Next.js frontend (port 3000) -> FastAPI backend (port 8000)
30
+
31
+ **Timestamp:** 2026-04-28
32
+
33
+ ## Narrative
34
+ ### Structure
35
+ Next.js 16 frontend with FastAPI backend. Dashboard pages: Overview, Skill Hub, Evolution, Datasets, Memory, Metrics, Logs, Settings.
36
+
37
+ ### Dependencies
38
+ Backend requires FastAPI, frontend requires Next.js 16
39
+
40
+ ### Highlights
41
+ Performance optimization: Three.js removed, CSS gradients used instead. Backend lazy-loaded for faster initial load.
@@ -0,0 +1,34 @@
1
+ # Architecture Overview: Hermes Dashboard
2
+
3
+ ## Key Points
4
+
5
+ - **Tech Stack**: Next.js 16 frontend with FastAPI backend
6
+ - **Performance Optimization**: Three.js removed; CSS gradients now used for visual effects
7
+ - **Backend Strategy**: Lazy-loaded backend for faster initial page load
8
+ - **Deployment Config**: `next.config.ts` set to `standalone` mode
9
+ - **Communication Flow**: Frontend (port 3000) ↔ Backend (port 8000)
10
+
11
+ ## Structure / Sections Summary
12
+
13
+ ### Raw Concept
14
+ - Task: Document Hermes Dashboard architecture
15
+ - Key changes: Three.js removal, CSS gradients, lazy backend, standalone config
16
+ - Target files: `src/app/page.tsx`, `src/app/layout.tsx`, `backend/main.py`, `next.config.ts`
17
+
18
+ ### Narrative
19
+ - **Structure**: Next.js 16 frontend + FastAPI backend with 8 dashboard pages (Overview, Skill Hub, Evolution, Datasets, Memory, Metrics, Logs, Settings)
20
+ - **Dependencies**: FastAPI (backend), Next.js 16 (frontend)
21
+
22
+ ## Notable Entities & Decisions
23
+
24
+ | Entity | Details |
25
+ |--------|---------|
26
+ | **Frontend** | Next.js 16, port 3000 |
27
+ | **Backend** | FastAPI, port 8000, lazy-loaded |
28
+ | **Build Config** | `standalone` mode enabled |
29
+ | **Visual System** | CSS gradients (replaced Three.js) |
30
+
31
+ ### Decisions
32
+ - **Three.js removal**: Reduces bundle size; CSS gradients sufficient for dashboard visuals
33
+ - **Lazy backend loading**: Improves initial load time; backend services load on demand
34
+ - **Standalone next.config**: Self-contained Next.js output for simplified deployment
@@ -0,0 +1,53 @@
1
+ ---
2
+ children_hash: 90692b63a08a05d9811e0d3979c4a61bc3467fb2063e5c3b3eb75018971bdcc6
3
+ compression_ratio: 0.09087154068566708
4
+ condensation_order: 1
5
+ covers: [components/_index.md, context.md, functioncallingpage.md, lib/_index.md, page.md, settingspage.md, sidebar.md]
6
+ covers_token_total: 4842
7
+ summary_level: d1
8
+ token_count: 440
9
+ type: summary
10
+ ---
11
+ # Frontend Architecture (src)
12
+
13
+ ## Overview
14
+ Next.js frontend with lazy-loaded page components, React Query for server state, and Framer Motion animations. Connects to FastAPI backend via typed API client.
15
+
16
+ ## Page Structure
17
+
18
+ **8 Navigation Sections** (see `sidebar.md` for full nav):
19
+ | Page | Component | Purpose |
20
+ |------|-----------|---------|
21
+ | Overview | `OverviewPage` | Dashboard home |
22
+ | Skills | `SkillStudioPage` | Skill management |
23
+ | Evolution | `EvolutionPage` | Evolution engine control |
24
+ | Datasets | `DatasetPage` | Dataset analysis |
25
+ | Memory | `MemoryPage` | Memory/intelligence |
26
+ | Metrics | `MetricsPage` | Analytics & metrics |
27
+ | Logs | `LogsPage` | Live log streaming |
28
+ | Settings | `SettingsPage` | System paths & env vars |
29
+
30
+ All pages lazy-loaded via `next/dynamic` with loading states.
31
+
32
+ ## Key Components
33
+
34
+ - **`Sidebar`** — Collapsible (64px/240px), animated via Framer Motion, cyan accent theme, dual light/dark mode
35
+ - **`SettingsPage`** — Displays system paths, env vars (OPENAI_API_KEY, HERMES_AGENT_REPO), health status via `fetchHealth()`
36
+
37
+ ## API Client (`lib/api.ts`)
38
+
39
+ See `lib/_index.md` and `api_client_library.md` for full details.
40
+
41
+ **Resilience:** 15s AbortController timeouts, retry on 401 with token refresh, WebSocket 3s auto-reconnect
42
+
43
+ **Auth:** `X-Hermes-Session-Token` header, lazy-loaded session
44
+
45
+ **Env:** `NEXT_PUBLIC_API_BASE` → `http://127.0.0.1:9119`
46
+
47
+ **Key Types:** `SkillInfo`, `SkillDetail`, `EvolutionJob`, `EvolutionRun`, `MetricsData`, `DatasetInfo`, `ConstraintResult`, `ProviderSummary`
48
+
49
+ ## Source Files
50
+ - `src/app/page.tsx` — Root page with page routing
51
+ - `src/components/Sidebar.tsx` — Navigation sidebar
52
+ - `src/components/pages/*.tsx` — Page components (lazy-loaded)
53
+ - `src/lib/api.ts` — Typed API client
@@ -0,0 +1,52 @@
1
+ ---
2
+ children_hash: b619fb96a0b08ac7bd129f1d7c125d830caeb4ba9111d31a8938bbf1868eb497
3
+ compression_ratio: 0.21685082872928177
4
+ condensation_order: 0
5
+ covers: [sidebar_navigation_component.md]
6
+ covers_token_total: 1448
7
+ summary_level: d0
8
+ token_count: 314
9
+ type: summary
10
+ ---
11
+ ## Sidebar Navigation Component
12
+
13
+ **Source:** `src/components/Sidebar.tsx`
14
+
15
+ ### Overview
16
+ Collapsible sidebar providing navigation across 7 main sections with environment status, theme support, and animated transitions.
17
+
18
+ ### Navigation Structure
19
+ 7 navigation items with icons:
20
+ - Overview (Layers)
21
+ - Skill Hub (Sparkles)
22
+ - Evolution (GitBranch)
23
+ - Datasets (Database)
24
+ - Metrics (BarChart3)
25
+ - Live Logs (Terminal)
26
+ - Settings (Settings)
27
+
28
+ ### Props Interface
29
+ ```
30
+ activePage: Page
31
+ onNavigate: (page: Page) => void
32
+ ```
33
+
34
+ ### Page Type Definition
35
+ ```typescript
36
+ export type Page = "overview" | "skills" | "evolution" | "datasets" | "metrics" | "logs" | "settings";
37
+ ```
38
+
39
+ ### Visual Design
40
+ - Collapsed width: 64px, Expanded: 240px
41
+ - Animated width transition (0.2s easeOut) via Framer Motion
42
+ - Logo with DNA icon and "Hermes Evolution Dashboard" branding
43
+ - Active state: cyan highlight with text-[#0891B2] accent
44
+ - Hover states with subtle cyan tint on both light/dark themes
45
+ - Collapse toggle button at bottom
46
+
47
+ ### Key Features
48
+ - AnimatePresence for label fade in/out on collapse
49
+ - Sticky positioning (h-screen, top-0)
50
+ - Scrollable nav area (flex-1, overflow-y-auto)
51
+ - Dual theme support: light (bg-[#E8F9FA]) / dark (bg-[#061014])
52
+ - Cyan border accents with 20% opacity
@@ -0,0 +1,161 @@
1
+ ---
2
+ title: Sidebar Navigation Component
3
+ summary: Navigation sidebar with environment status, skill toggles, and core loop controls
4
+ tags: []
5
+ related: []
6
+ keywords: []
7
+ createdAt: '2026-04-28T03:47:02.100Z'
8
+ updatedAt: '2026-04-28T03:47:02.100Z'
9
+ ---
10
+ ## Reason
11
+ Preserving complete Sidebar navigation component
12
+
13
+ ## Raw Concept
14
+ **Task:**
15
+ Document Sidebar navigation component
16
+
17
+ **Files:**
18
+ - src/components/Sidebar.tsx
19
+
20
+ **Timestamp:** 2026-04-28
21
+
22
+ ## Narrative
23
+ ### Structure
24
+ Sidebar navigation with sections: Environment, Core Loop, Skills, Theme
25
+
26
+ ---
27
+
28
+
29
+ "use client";
30
+
31
+ import { useState } from "react";
32
+ import { motion, AnimatePresence } from "framer-motion";
33
+ import {
34
+ Layers,
35
+ GitBranch,
36
+ Database,
37
+ BarChart3,
38
+ Terminal as TerminalIcon,
39
+ Settings,
40
+ Dna,
41
+ ChevronLeft,
42
+ ChevronRight,
43
+ Cpu,
44
+ BookOpen,
45
+ Bot,
46
+ Sparkles,
47
+ } from "lucide-react";
48
+
49
+ export type Page =
50
+ | "overview"
51
+ | "skills"
52
+ | "evolution"
53
+ | "datasets"
54
+ | "metrics"
55
+ | "logs"
56
+ | "settings"
57
+ ;
58
+
59
+ interface NavItem {
60
+ id: Page;
61
+ label: string;
62
+ icon: React.ReactNode;
63
+ }
64
+
65
+ const navItems: NavItem[] = [
66
+ { id: "overview", label: "Overview", icon: <Layers className="w-4 h-4" /> },
67
+ { id: "skills", label: "Skill Hub", icon: <Sparkles className="w-4 h-4" /> },
68
+ { id: "evolution", label: "Evolution", icon: <GitBranch className="w-4 h-4" /> },
69
+ { id: "datasets", label: "Datasets", icon: <Database className="w-4 h-4" /> },
70
+ { id: "metrics", label: "Metrics", icon: <BarChart3 className="w-4 h-4" /> },
71
+ { id: "logs", label: "Live Logs", icon: <TerminalIcon className="w-4 h-4" /> },
72
+ { id: "settings", label: "Settings", icon: <Settings className="w-4 h-4" /> },
73
+ ];
74
+
75
+ interface SidebarProps {
76
+ activePage: Page;
77
+ onNavigate: (page: Page) => void;
78
+ }
79
+
80
+ export default function Sidebar({ activePage, onNavigate }: SidebarProps) {
81
+ const [collapsed, setCollapsed] = useState(false);
82
+
83
+ return (
84
+ <motion.aside
85
+ animate={{ width: collapsed ? 64 : 240 }}
86
+ transition={{ duration: 0.2, ease: "easeOut" }}
87
+ 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"
88
+ >
89
+ {/* Logo */}
90
+ <div className="flex items-center gap-3 px-4 h-16 border-b border-[#B2FFFF]/15 dark:border-white/[0.06]">
91
+ <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">
92
+ <Dna className="w-4 h-4 text-white" />
93
+ </div>
94
+ <AnimatePresence>
95
+ {!collapsed && (
96
+ <motion.div
97
+ initial={{ opacity: 0, x: -10 }}
98
+ animate={{ opacity: 1, x: 0 }}
99
+ exit={{ opacity: 0, x: -10 }}
100
+ className="overflow-hidden"
101
+ >
102
+ <span className="text-sm font-semibold tracking-tight text-[#0F172A] dark:text-white">Hermes</span>
103
+ <p className="text-[10px] text-[#475569] dark:text-slate-400">Evolution Dashboard</p>
104
+ </motion.div>
105
+ )}
106
+ </AnimatePresence>
107
+ </div>
108
+
109
+ {/* Nav items */}
110
+ <nav className="flex-1 py-4 px-2 space-y-1 overflow-y-auto">
111
+ {navItems.map((item) => (
112
+ <button
113
+ key={item.id}
114
+ onClick={() => onNavigate(item.id)}
115
+ className={`w-full flex items-center gap-3 px-3 py-2.5 rounded-xl text-sm transition-all duration-200 ${
116
+ activePage === item.id
117
+ ? "bg-[#B2FFFF]/40 text-[#0E7490] dark:bg-[#B2FFFF]/20 dark:text-[#E0FFFF] shadow-sm shadow-[#B2FFFF]/10"
118
+ : "text-[#475569] hover:text-[#0F172A] hover:bg-[#B2FFFF]/20 dark:text-[#B2FFFF] dark:hover:text-[#E0FFFF] dark:hover:bg-[#B2FFFF]/10"
119
+ }`}
120
+ >
121
+ <span
122
+ className={`flex-shrink-0 ${
123
+ activePage === item.id ? "text-[#0891B2] dark:text-[#67E8F9]" : ""
124
+ }`}
125
+ >
126
+ {item.icon}
127
+ </span>
128
+ <AnimatePresence>
129
+ {!collapsed && (
130
+ <motion.span
131
+ initial={{ opacity: 0 }}
132
+ animate={{ opacity: 1 }}
133
+ exit={{ opacity: 0 }}
134
+ className="truncate font-medium"
135
+ >
136
+ {item.label}
137
+ </motion.span>
138
+ )}
139
+ </AnimatePresence>
140
+ </button>
141
+ ))}
142
+ </nav>
143
+
144
+ {/* Collapse toggle */}
145
+ <div className="p-2 border-t border-[#B2FFFF]/15 dark:border-[#B2FFFF]/10">
146
+ <button
147
+ onClick={() => setCollapsed(!collapsed)}
148
+ 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"
149
+ >
150
+ {collapsed ? (
151
+ <ChevronRight className="w-4 h-4" />
152
+ ) : (
153
+ <ChevronLeft className="w-4 h-4" />
154
+ )}
155
+ </button>
156
+ </div>
157
+ </motion.aside>
158
+ );
159
+ }
160
+
161
+
@@ -0,0 +1,32 @@
1
+ # Sidebar Navigation Component Overview
2
+
3
+ ## Key Points
4
+
5
+ - **React "use client" component** using Next.js with Framer Motion for smooth animations
6
+ - **Collapsible sidebar** toggles between expanded (240px) and collapsed (64px) states with 0.2s ease-out transition
7
+ - **7 navigation items**: Overview, Skills, Evolution, Datasets, Metrics, Live Logs, Settings — each with unique Lucide icon
8
+ - **Dark mode support** with dual color token sets for light (`#E8F9FA`, `#B2FFFF`) and dark (`#061014`, `#06B6D4`) themes
9
+ - **Active page highlighting** with distinct cyan-teal styling (`#0891B2`) and shadow effects
10
+ - **Logo branding**: "Hermes/Evolution Dashboard" with DNA helix icon in rounded container
11
+ - Props interface exposes `activePage` and `onNavigate` callback for parent-controlled routing
12
+
13
+ ## Structure / Sections
14
+
15
+ | Section | Purpose |
16
+ |---------|---------|
17
+ | **Logo Header** | DNA icon + "Hermes/Evolution Dashboard" branding with border separator |
18
+ | **Navigation** | 7 nav buttons with icons, labels, hover/active states |
19
+ | **Collapse Toggle** | ChevronLeft/Right button to expand/collapse sidebar |
20
+
21
+ ## Notable Entities & Patterns
22
+
23
+ - **Page type**: Union type literal (`"overview" | "skills" | "evolution" | ...`)
24
+ - **NavItem interface**: `{ id: Page, label: string, icon: React.ReactNode }`
25
+ - **Animation pattern**: `AnimatePresence` wrapping conditional labels with `initial`/`animate`/`exit` variants
26
+ - **Color scheme**: Cyan-teal palette — `#B2FFFF` (accent), `#0891B2` (primary), `#67E8F9` (dark active)
27
+ - **Hover states**: Semi-transparent cyan overlays (`/20`, `/10` opacity)
28
+ - **Backdrop blur**: `backdrop-blur-xl` on sidebar background
29
+
30
+ ## File
31
+
32
+ `src/components/Sidebar.tsx`
@@ -0,0 +1,10 @@
1
+ # Topic: src
2
+
3
+ ## Overview
4
+ Frontend API client using React Query for server state management
5
+
6
+ ## Key Concepts
7
+ - React Query integration
8
+ - Typed API endpoints
9
+ - WebSocket hooks
10
+ - API configuration
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: FunctionCallingPage
3
+ summary: ''
4
+ tags: []
5
+ related: []
6
+ keywords: []
7
+ createdAt: '2026-04-28T01:33:30.536Z'
8
+ updatedAt: '2026-04-28T01:33:30.536Z'
9
+ ---
10
+ ## Reason
11
+ Preserving complete src/components/pages/FunctionCallingPage.tsx from hermes-dashboard project
12
+
13
+ ## Raw Concept
14
+ **Task:**
15
+ Preserve src/components/pages/FunctionCallingPage.tsx
16
+
17
+ **Files:**
18
+ - src/components/pages/FunctionCallingPage.tsx
19
+
20
+ **Timestamp:** 2026-04-28
21
+
22
+ ## Narrative
23
+ ### Structure
24
+ TSX file with 0 components/functions
25
+
26
+ ### Highlights
27
+ Source: hermes-dashboard/src/components/pages/FunctionCallingPage.tsx
28
+
29
+ ---
30
+
31
+
32
+ <!-- This page has been removed. See page.tsx for available pages. -->
33
+
34
+
@@ -0,0 +1,26 @@
1
+ # FunctionCallingPage - Document Overview
2
+
3
+ ## Key Points
4
+
5
+ - **Preservation Record**: This document preserves metadata about a removed React page component from the hermes-dashboard project
6
+ - **File Preserved**: `src/components/pages/FunctionCallingPage.tsx` — now deleted from the codebase
7
+ - **Empty Component**: The TSX file contained **0 components/functions** — likely a placeholder or stub file that was never implemented
8
+ - **Removal Status**: Explicitly marked as removed; references `page.tsx` for current available pages
9
+ - **Project Context**: Belongs to the hermes-dashboard project
10
+ - **Timestamps**: Created and updated on 2026-04-28 (identical — single preservation event)
11
+
12
+ ## Structure / Sections Summary
13
+
14
+ | Section | Description |
15
+ |---------|-------------|
16
+ | **Reason** | States the preservation purpose: keeping the source reference for the removed file |
17
+ | **Raw Concept** | Contains the task metadata: file path, timestamp, and preservation goal |
18
+ | **Narrative** | Documents structure (0 components/functions) and highlights source location |
19
+
20
+ ## Notable Entities & Patterns
21
+
22
+ - **Entity**: `FunctionCallingPage.tsx` — page component file
23
+ - **Entity**: `hermes-dashboard` — parent project name
24
+ - **Entity**: `page.tsx` — referenced as the source for available pages
25
+ - **Pattern**: Removal notice comment `<!-- This page has been removed. See page.tsx for available pages. -->`
26
+ - **Pattern**: Zero-state component (file existed but held no actual code)
@@ -0,0 +1,48 @@
1
+ ---
2
+ children_hash: 515c06ea24aed64bdce7f7f3687b2a2d29249f0c442224ad38bee6fc316193d0
3
+ compression_ratio: 0.11090342679127727
4
+ condensation_order: 0
5
+ covers: [api_client_library.md]
6
+ covers_token_total: 3210
7
+ summary_level: d0
8
+ token_count: 356
9
+ type: summary
10
+ ---
11
+ # API Client Library
12
+
13
+ TypeScript API client (`src/lib/api.ts`) providing typed endpoints for jobs, skills, evolution, and WebSocket streaming. React Query-compatible design with resilient infrastructure.
14
+
15
+ ## Architecture
16
+
17
+ **Resilience Features:**
18
+ - AbortController timeouts (default 15s)
19
+ - Typed `ApiError` with `ErrorKind`: `network | timeout | server | client`
20
+ - Auto-refresh token on 401, retry once
21
+ - WebSocket auto-reconnect after 3s
22
+
23
+ **Auth:** Session token via `X-Hermes-Session-Token` header, lazy-loaded from `/`
24
+
25
+ **Env:** `NEXT_PUBLIC_API_BASE` → fallback `http://127.0.0.1:9119`
26
+
27
+ ## Key Interfaces
28
+
29
+ - `SkillInfo`, `SkillDetail` — skill metadata and content
30
+ - `EvolutionJob`, `EvolutionRun` — job lifecycle and results
31
+ - `MetricsData`, `DatasetInfo`, `ConstraintResult` — analysis data
32
+ - `ProviderSummary` — skill provider groupings
33
+
34
+ ## Typed API Functions
35
+
36
+ **Skills:** `fetchSkills`, `fetchSkill`, `fetchSkillHistory`, `fetchSkillProviders`, `toggleSkillEnabled`, `deleteProviderSkill`, `deleteGlobalSkill`, `refreshSkills`
37
+
38
+ **Evolution:** `fetchEvolutionRuns`, `fetchSkillDiff`, `startEvolution`
39
+
40
+ **Jobs:** `fetchJobs`, `fetchJob`, `fetchJobLogs`, `cancelJob`
41
+
42
+ **Analysis:** `fetchMetrics`, `fetchDatasets`, `fetchDataset`, `validateSkill`
43
+
44
+ **Infrastructure:** `fetchHealth`, `checkHealth`
45
+
46
+ ---
47
+
48
+ See **api_client_library.md** for full source with session token logic, WebSocket helper, and typed fetch wrapper.
@@ -0,0 +1 @@
1
+ A TypeScript API client library providing typed functions for jobs, skills, evolution, and WebSocket management with Hermes session-based auth, AbortController timeouts, categorized errors, and automatic token refresh on 401 responses.