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,521 @@
1
+ # Agent-Agnostic Evolution Dashboard — Design Specification
2
+
3
+ **Date:** 2026-05-19
4
+ **Version:** 1.0
5
+ **Scope:** Desktop dashboard para monitoreo y evaluación de runs de cualquier agente AI
6
+ **Target:** Control-room aesthetic, engineer-facing, high data density
7
+
8
+ ---
9
+
10
+ ## 1. Purpose & Goals
11
+
12
+ Dashboard para visualizar y comparar ejecuciones de múltiples agentes (Hermes, Claude Code, Codex, etc.) evaluadas por el motor Promethean. Permite:
13
+
14
+ 1. **Ingenieros de agentes** — Ver performance cross-agent, detectar regresiones
15
+ 2. **Skill developers** — Comparar baseline vs evolved, aprobar/rechazar evoluciones
16
+ 3. **Operaciones** — Monitorear tasas de éxito, costos de tokens, efficiency
17
+
18
+ **Success Criteria:**
19
+ - Datos de cualquier agente visibles con el mismo formato
20
+ - Regresiones detectadas visualmente sin fricción
21
+ - Aggregate score + scorer breakdown accesibles en ≤2 clicks
22
+ - Consistent con Hermes control-room design system
23
+
24
+ ---
25
+
26
+ ## 2. Design System (Herencia)
27
+
28
+ Mismo sistema que `hermes_dashboard/DESIGN.md`:
29
+
30
+ | Token | Valor |
31
+ |---|---|
32
+ | Primary | `#002444` (Navy) |
33
+ | Secondary | `#a93800` (Orange accent) |
34
+ | Surface | `#faf9fc` (Warm White) |
35
+ | On-surface | `#1a1c1e` |
36
+ | On-surface-variant | `#43474e` |
37
+ | Success | `#4caf50` |
38
+ | Warning | `#ffc107` |
39
+ | Error | `#ba1a1a` |
40
+ | Outline | `#73777f` |
41
+
42
+ **Typography:**
43
+ - Headlines: Inter 600, 20px (headline-sm)
44
+ - Body: Inter 400, 14px (body-md)
45
+ - Data/mono: JetBrains Mono 400, 12px
46
+ - Caps label: Inter 700, 11px, 0.05em tracking
47
+
48
+ **Spacing:** 8px base unit. Container padding 24px. Table rows 32–40px.
49
+
50
+ ---
51
+
52
+ ## 3. Layout & Navigation
53
+
54
+ ### 3.1 Global Header (56px)
55
+
56
+ ```
57
+ ┌────────────────────────────────────────────────────────────────────────────┐
58
+ │ [◈] GENOMA ● All Systems Active — last sync 3s ago [👤 Leandro]│
59
+ └────────────────────────────────────────────────────────────────────────────┘
60
+ ```
61
+
62
+ - Fondo: Navy `#002444`
63
+ - Logo + "GENOMA" en Inter 600, white
64
+ - Status dot: green cuando backend online, red cuando offline
65
+ - Text: "All Systems Active" / "Backend Unavailable" + timestamp relativo
66
+
67
+ ### 3.2 Tab Navigation (48px, sticky)
68
+
69
+ ```
70
+ ┌────────────────────────────────────────────────────────────────────────────┐
71
+ │ Agents │ Runs │ Regression │ Scorers │
72
+ └────────────────────────────────────────────────────────────────────────────┘
73
+ ```
74
+
75
+ - Active tab: underline navy 3px, Inter 600
76
+ - Inactive: `#73777f`, Inter 400
77
+ - Surface background, 1px bottom border
78
+
79
+ ### 3.3 Content Layout
80
+
81
+ ```
82
+ ┌────────────────┬─────────────────────────────────────────────────────────┐
83
+ │ Sidebar │ Main Content │
84
+ │ 256px fixed │ fluid (max-width 1440px) │
85
+ │ │ │
86
+ │ Filters │ Page content here │
87
+ │ Agent list │ │
88
+ │ Quick stats │ │
89
+ └────────────────┴─────────────────────────────────────────────────────────┘
90
+ ```
91
+
92
+ ---
93
+
94
+ ## 4. Screens
95
+
96
+ ### Screen 1: Agents Overview (`/agents`)
97
+
98
+ Vista principal. Muestra performance cross-agent con stat cards + tabla.
99
+
100
+ #### 4.1.1 Stat Cards Row (4 cards)
101
+
102
+ ```
103
+ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐
104
+ │ AGENTS │ │ TOTAL RUNS │ │ AVG SUCCESS │ │ AVG AGG. SCORE │
105
+ │ mono: 3 │ │ mono: 1,247 │ │ mono: 87.4% │ │ mono: 0.83 │
106
+ │ ────────────── │ │ ────────────── │ │ ────────────── │ │ ────────────── │
107
+ │ [sparkline] │ │ [sparkline] │ │ [sparkline] │ │ [sparkline] │
108
+ └────────────────┘ └────────────────┘ └────────────────┘ └────────────────┘
109
+ ```
110
+
111
+ - Label: `label-caps` typography, `#43474e`
112
+ - Value: `mono-data` typography (JetBrains Mono), `#1a1c1e`, 28px
113
+ - Sparkline: 40px height, navy line, last 30 days
114
+ - Border: 1px solid `#002444` at 10% opacity
115
+
116
+ #### 4.1.2 Agent Table
117
+
118
+ ```
119
+ ┌──────────────────────────────────────────────────────────────────────────┐
120
+ │ AGENT RUNS SUCCESS AVG TOKENS AGG SCORE LAST RUN │
121
+ ├──────────────────────────────────────────────────────────────────────────┤
122
+ │ ● hermes 524 94.2% 6,240 0.89 2m ago │
123
+ │ ○ claude-code 412 85.1% 8,100 0.81 15m ago │
124
+ │ ○ codex 311 79.3% 9,800 0.76 1h ago │
125
+ └──────────────────────────────────────────────────────────────────────────┘
126
+ ```
127
+
128
+ - Row height: 40px
129
+ - Agent status dot: ● green = active (run <1h), ○ gray = idle
130
+ - Agent name: Inter 500, `#1a1c1e`
131
+ - Numeric data: JetBrains Mono, `#43474e`
132
+ - AGG SCORE column: color-coded pill
133
+ - `> 0.85` → navy bg, white text
134
+ - `0.65–0.85` → warning yellow bg
135
+ - `< 0.65` → error red bg
136
+ - Row hover: `#f4f3f6` background tint
137
+ - Clickable row → navigates to runs filtered by agent
138
+
139
+ #### 4.1.3 Score Distribution Chart (right panel, 340px)
140
+
141
+ ```
142
+ ┌─────────────────────────────────────────┐
143
+ │ SCORE DISTRIBUTION │
144
+ │ │
145
+ │ hermes ████████████████ 0.89 │
146
+ │ claude-code ████████████ 0.81 │
147
+ │ codex ██████████ 0.76 │
148
+ │ │
149
+ │ BY SCORER: │
150
+ │ outcome ████████████████ 0.91 │
151
+ │ tool_eff ████████ 0.68 │
152
+ │ token_cost █████████████ 0.84 │
153
+ │ error_recov ████████████ 0.80 │
154
+ └─────────────────────────────────────────┘
155
+ ```
156
+
157
+ - Horizontal bar chart
158
+ - Bar fill: navy gradient (left) → lighter navy (right)
159
+ - Value label: JetBrains Mono, right-aligned
160
+
161
+ ---
162
+
163
+ ### Screen 2: Runs List (`/runs`)
164
+
165
+ Tabla de todas las runs con filtros y evaluación inline.
166
+
167
+ #### 4.2.1 Filter Bar
168
+
169
+ ```
170
+ ┌────────────────────────────────────────────────────────────────────────────┐
171
+ │ [Agent ▾] [Outcome ▾] [Since: 7d ▾] [Scorer ▾] ──────── [↓ Export] │
172
+ └────────────────────────────────────────────────────────────────────────────┘
173
+ ```
174
+
175
+ - Dropdowns: Inter 14px, 1px navy border, 4px radius
176
+ - Active filter: navy bg + white text
177
+ - Export: secondary button (1px navy border)
178
+
179
+ #### 4.2.2 Runs Table
180
+
181
+ ```
182
+ ┌───┬──────────┬─────────────┬────────────────────────┬─────────┬──────────┬───────┐
183
+ │ │ RUN ID │ AGENT │ TASK │ OUTCOME │ AGG SCORE│ TIME │
184
+ ├───┼──────────┼─────────────┼────────────────────────┼─────────┼──────────┼───────┤
185
+ │ □ │ run-001 │ hermes │ Refactor auth module │ ✓ success│ 0.91 │ 2m │
186
+ │ □ │ run-002 │ claude-code │ Fix N+1 query in list │ ✓ success│ 0.84 │ 15m │
187
+ │ □ │ run-003 │ claude-code │ Add dark mode toggle │ ✗ failure│ 0.21 │ 23m │
188
+ │ □ │ run-004 │ hermes │ Optimize skill prompt │ ~ partial│ 0.55 │ 45m │
189
+ └───┴──────────┴─────────────┴────────────────────────┴─────────┴──────────┴───────┘
190
+ ```
191
+
192
+ - RUN ID: JetBrains Mono, `#73777f`, 10 chars truncated
193
+ - TASK: Inter 400, truncated at 40 chars, tooltip on hover
194
+ - OUTCOME pill:
195
+ - `success` → `#4caf50` text + `rgba(76,175,80,0.1)` bg
196
+ - `failure` → `#ba1a1a` text + `rgba(186,26,26,0.1)` bg
197
+ - `partial` → `#ffc107` text + `rgba(255,193,7,0.1)` bg
198
+ - AGG SCORE: navy pill si >0.85, warning si 0.65–0.85, error si <0.65
199
+ - Checkbox: multi-select para batch compare
200
+ - Row click → Run Detail drawer (slide-in desde derecha, 520px)
201
+
202
+ #### 4.2.3 Pagination
203
+
204
+ ```
205
+ ← Prev [1] [2] [3] ... [12] Next →
206
+ Showing 1–50 of 584 runs
207
+ ```
208
+
209
+ ---
210
+
211
+ ### Screen 3: Run Detail Drawer (slide-in, 520px)
212
+
213
+ Se abre al hacer click en cualquier run. Overlay sobre runs list.
214
+
215
+ #### 4.3.1 Header
216
+
217
+ ```
218
+ ┌─────────────────────────────────────────────────────────┬───┐
219
+ │ run-001 ✓ success │ ✕ │
220
+ │ Refactor auth module hermes · 2m ago │ │
221
+ └─────────────────────────────────────────────────────────┴───┘
222
+ ```
223
+
224
+ - Run ID: JetBrains Mono 13px
225
+ - Task name: Inter 600 18px
226
+ - Agent + time: Inter 400 13px, `#73777f`
227
+ - Close button: 32x32, icon only
228
+
229
+ #### 4.3.2 Aggregate Score Badge
230
+
231
+ ```
232
+ ┌──────────────────────────────────────────┐
233
+ │ AGGREGATE SCORE │
234
+ │ 0.91 │
235
+ │ ████████████████████████████░░░░ │
236
+ └──────────────────────────────────────────┘
237
+ ```
238
+
239
+ - Score: JetBrains Mono, 40px, navy
240
+ - Progress bar: 8px height, navy fill, `#e3e2e5` track
241
+ - Label: label-caps
242
+
243
+ #### 4.3.3 Scorer Breakdown
244
+
245
+ ```
246
+ ┌──────────────────────────────────────────────────────────┐
247
+ │ SCORER BREAKDOWN │
248
+ ├───────────────────┬────────┬────────┬────────────────────┤
249
+ │ SCORER │ SCORE │ PASSED │ DETAILS │
250
+ ├───────────────────┼────────┼────────┼────────────────────┤
251
+ │ outcome │ 1.00 │ ✓ │ outcome: success │
252
+ │ tool_efficiency │ 0.67 │ ✓ │ 2 unique / 3 total │
253
+ │ token_cost │ 0.86 │ ✓ │ 7,000 / 50,000 │
254
+ │ error_recovery │ 1.00 │ ✓ │ 0 errors │
255
+ ├───────────────────┼────────┼────────┼────────────────────┤
256
+ │ AGGREGATE │ 0.91 │ │ │
257
+ └───────────────────┴────────┴────────┴────────────────────┘
258
+ ```
259
+
260
+ - Score: JetBrains Mono
261
+ - Passed: ✓ green icon / ✗ red icon
262
+ - Details: JetBrains Mono 11px, `#73777f`
263
+ - Footer row: bold, navy background tint
264
+
265
+ #### 4.3.4 Metrics Panel
266
+
267
+ ```
268
+ ┌──────────────────────────────────────────┐
269
+ │ METRICS │
270
+ │ │
271
+ │ input_tokens 5,000 │
272
+ │ output_tokens 2,000 │
273
+ │ total_tokens 7,000 │
274
+ │ tool_calls 3 │
275
+ │ latency_ms 1,420ms │
276
+ └──────────────────────────────────────────┘
277
+ ```
278
+
279
+ #### 4.3.5 Tool Calls (expandable)
280
+
281
+ ```
282
+ ┌──────────────────────────────────────────┐
283
+ │ TOOL CALLS (3) ▾ │
284
+ ├──────────────────────────────────────────┤
285
+ │ Read id:1 150ms input_summary... │
286
+ │ Edit id:2 200ms path: auth.ts │
287
+ │ Read id:3 80ms input_summary... │
288
+ └──────────────────────────────────────────┘
289
+ ```
290
+
291
+ #### 4.3.6 Errors Panel (solo si errors.length > 0)
292
+
293
+ ```
294
+ ┌──────────────────────────────────────────┐
295
+ │ ERRORS (1) ▾ │
296
+ ├──────────────────────────────────────────┤
297
+ │ ⚠ TypeError: Cannot read prop 'x' │
298
+ │ message: expected number, got string │
299
+ └──────────────────────────────────────────┘
300
+ ```
301
+
302
+ - Error header: orange `#a93800`
303
+ - Error text: JetBrains Mono 11px
304
+
305
+ #### 4.3.7 Actions Footer
306
+
307
+ ```
308
+ ┌──────────────────────────────────────────┐
309
+ │ [Re-evaluate] [Compare with...] │
310
+ └──────────────────────────────────────────┘
311
+ ```
312
+
313
+ - Re-evaluate: primary navy button
314
+ - Compare with: secondary button → opens compare modal
315
+
316
+ ---
317
+
318
+ ### Screen 4: Regression Comparison (`/regression`)
319
+
320
+ Comparación side-by-side de dos runs para detectar mejoras o regresiones.
321
+
322
+ #### 4.4.1 Run Selector
323
+
324
+ ```
325
+ ┌────────────────────────────────────────────────────────────────────────────┐
326
+ │ BASELINE EVOLVED │
327
+ │ ┌──────────────────────┐ ┌──────────────────────┐ │
328
+ │ │ run-001 ▾│ │ run-002 ▾│ │
329
+ │ │ hermes · Refactor auth│ │ hermes · Optimize skill│ │
330
+ │ └──────────────────────┘ └──────────────────────┘ │
331
+ │ [Compare →] │
332
+ └────────────────────────────────────────────────────────────────────────────┘
333
+ ```
334
+
335
+ #### 4.4.2 Delta Banner (resultado principal)
336
+
337
+ **Improvement:**
338
+ ```
339
+ ┌────────────────────────────────────────────────────────────────────────────┐
340
+ │ ▲ IMPROVEMENT DETECTED +0.07 (threshold: 0.05) │
341
+ │ Evolved run significantly outperforms baseline │
342
+ └────────────────────────────────────────────────────────────────────────────┘
343
+ ```
344
+ - Bg: `rgba(76,175,80,0.1)`, border: `#4caf50`, icon: ▲ green
345
+
346
+ **Regression:**
347
+ ```
348
+ ┌────────────────────────────────────────────────────────────────────────────┐
349
+ │ ▼ REGRESSION DETECTED -0.12 (threshold: 0.05) │
350
+ │ Evolved run scores significantly lower than baseline │
351
+ └────────────────────────────────────────────────────────────────────────────┘
352
+ ```
353
+ - Bg: `rgba(186,26,26,0.1)`, border: `#ba1a1a`, icon: ▼ red
354
+
355
+ **Neutral:**
356
+ ```
357
+ ┌────────────────────────────────────────────────────────────────────────────┐
358
+ │ ● NEUTRAL Δ +0.02 (within ±0.05 threshold) │
359
+ └────────────────────────────────────────────────────────────────────────────┘
360
+ ```
361
+ - Bg: `rgba(115,119,127,0.08)`, border: `#c3c6cf`, icon: ● gray
362
+
363
+ #### 4.4.3 Side-by-Side Score Comparison
364
+
365
+ ```
366
+ ┌─────────────────────────────┬─────────────────────────────┬─────────────┐
367
+ │ BASELINE │ EVOLVED │ DELTA │
368
+ ├─────────────────────────────┼─────────────────────────────┼─────────────┤
369
+ │ Aggregate 0.84 │ Aggregate 0.91 │ +0.07 ▲ │
370
+ ├─────────────────────────────┼─────────────────────────────┼─────────────┤
371
+ │ outcome 1.00 ✓ │ outcome 1.00 ✓ │ +0.00 ● │
372
+ │ tool_eff 0.45 ✗ │ tool_eff 0.67 ✓ │ +0.22 ▲ │
373
+ │ token_cost 0.91 ✓ │ token_cost 0.86 ✓ │ -0.05 ▼ │
374
+ │ error_recov 1.00 ✓ │ error_recov 1.00 ✓ │ +0.00 ● │
375
+ └─────────────────────────────┴─────────────────────────────┴─────────────┘
376
+ ```
377
+
378
+ - Delta column: color-coded
379
+ - `> 0` → green `#4caf50` + ▲
380
+ - `< 0` → red `#ba1a1a` + ▼
381
+ - `= 0` → gray + ●
382
+ - Improved scorer rows: subtle green left border (2px)
383
+ - Regressed scorer rows: subtle red left border (2px)
384
+
385
+ #### 4.4.4 Threshold Control
386
+
387
+ ```
388
+ Threshold [──────●─────────────────] 0.05
389
+ 0.01 0.20
390
+ ```
391
+
392
+ - Slider: navy track, navy thumb
393
+ - Value display: JetBrains Mono, live update
394
+ - Changing threshold re-runs comparison
395
+
396
+ ---
397
+
398
+ ### Screen 5: Scorers Reference (`/scorers`)
399
+
400
+ Documentación interactiva de los 5 scorers disponibles.
401
+
402
+ ```
403
+ ┌──────────────────────────────────────────────────────────────────────────┐
404
+ │ SCORERS (5) │
405
+ ├──────────────┬──────────────────────────────────────────────┬────────────┤
406
+ │ SCORER │ LOGIC │ APPLIES TO │
407
+ ├──────────────┼──────────────────────────────────────────────┼────────────┤
408
+ │ outcome │ success=1.0, partial=0.5, failure=0.0 │ all runs │
409
+ │ tool_eff │ unique_tools / total_calls (pass if >0.3) │ w/ tools │
410
+ │ token_cost │ max(0, 1 - tokens/50000) │ w/ metrics │
411
+ │ error_recov │ success_no_err=1.0, w_err=0.8, failure=0.0 │ all runs │
412
+ │ delta │ wraps DeltaValidator (DSPy+GEPA) │ hermes only│
413
+ └──────────────┴──────────────────────────────────────────────┴────────────┘
414
+ ```
415
+
416
+ ---
417
+
418
+ ## 5. Component Library
419
+
420
+ ### StatusPill
421
+
422
+ ```
423
+ ● success ✗ failure ~ partial ? unknown
424
+ ```
425
+
426
+ | Outcome | Text color | Background | Icon |
427
+ |---|---|---|---|
428
+ | success | `#4caf50` | `rgba(76,175,80,0.1)` | ✓ |
429
+ | failure | `#ba1a1a` | `rgba(186,26,26,0.1)` | ✗ |
430
+ | partial | `#ffc107` | `rgba(255,193,7,0.1)` | ~ |
431
+ | unknown | `#73777f` | `rgba(115,119,127,0.1)` | ? |
432
+
433
+ ### ScoreBadge
434
+
435
+ ```
436
+ 0.91 (navy) 0.74 (warning yellow) 0.42 (error red)
437
+ ```
438
+
439
+ - JetBrains Mono, 4px radius pill
440
+ - Thresholds: `>0.85` navy, `0.65–0.85` warning, `<0.65` error
441
+
442
+ ### AgentChip
443
+
444
+ ```
445
+ [◈ hermes] [≡ claude-code] [⊕ codex]
446
+ ```
447
+
448
+ - 4px radius, 1px border, navy text on white bg
449
+ - Icon per agent type
450
+ - Hover: navy fill, white text
451
+
452
+ ### DeltaIndicator
453
+
454
+ ```
455
+ +0.07 ▲ -0.03 ▼ +0.00 ●
456
+ ```
457
+
458
+ - JetBrains Mono
459
+ - Positive: `#4caf50`
460
+ - Negative: `#ba1a1a`
461
+ - Zero: `#73777f`
462
+
463
+ ---
464
+
465
+ ## 6. Empty States
466
+
467
+ ### No runs for agent
468
+
469
+ ```
470
+
471
+
472
+ No runs found for this agent.
473
+ Run a collector to ingest data.
474
+
475
+ [POST /api/runs/migrate →]
476
+ ```
477
+
478
+ ### First-time state (no data)
479
+
480
+ ```
481
+ [◈ GENOMA]
482
+
483
+ No agents connected yet.
484
+ Migrate existing traces or run a collector.
485
+
486
+ [↓ Migrate Hermes traces] [↓ Collect Claude Code sessions]
487
+ ```
488
+
489
+ ---
490
+
491
+ ## 7. Responsiveness
492
+
493
+ Desktop focused (min-width 1024px). Sidebar collapses to icon-only at 1280px. No mobile layout required for MVP.
494
+
495
+ ---
496
+
497
+ ## 8. Interactions
498
+
499
+ | Trigger | Action |
500
+ |---|---|
501
+ | Click agent row | Navigate to `/runs?agent=hermes` |
502
+ | Click run row | Open Run Detail drawer (slide-in 300ms ease-out) |
503
+ | Click [Compare with...] | Open run selector modal → navigate to `/regression` |
504
+ | Click scorer row | Tooltip with full details dict |
505
+ | Change threshold slider | Debounce 150ms → re-fetch `/api/runs/compare` |
506
+ | Click [Re-evaluate] | POST `/api/runs/{id}/evaluate` → refresh scores |
507
+ | Click [↓ Export] | Download runs as CSV |
508
+
509
+ ---
510
+
511
+ ## 9. API Binding
512
+
513
+ | Screen element | API call |
514
+ |---|---|
515
+ | Stat cards | `GET /api/agents` |
516
+ | Agent table | `GET /api/agents` |
517
+ | Runs table | `GET /api/runs?...filters` |
518
+ | Run Detail scores | `GET /api/runs/{id}/scores` |
519
+ | Run Detail evaluate | `POST /api/runs/{id}/evaluate` |
520
+ | Regression result | `POST /api/runs/compare` |
521
+ | Migration button | `POST /api/runs/migrate` |