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,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
@@ -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,4 @@
1
+ ---
2
+ related: [meta/curation_context/empty_context.md, meta/curation_context/empty_context.overview.md]
3
+ ---
4
+ The context variable contained only a dot, resulting in no facts being extracted.
@@ -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
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "curationsSinceDream": 1,
3
+ "lastDreamAt": "2026-04-28T01:53:06.404Z",
4
+ "lastDreamLogId": "drm-1777341062653",
5
+ "pendingMerges": [],
6
+ "totalDreams": 1,
7
+ "version": 1
8
+ }
File without changes