@jaimevalasek/aioson 1.5.1 → 1.7.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 (341) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +729 -226
  3. package/docs/design-previews/aurora-command-ui-website.html +884 -0
  4. package/docs/design-previews/aurora-command-ui.html +682 -0
  5. package/docs/design-previews/bold-editorial-ui-website.html +658 -0
  6. package/docs/design-previews/bold-editorial-ui.html +717 -0
  7. package/docs/design-previews/clean-saas-ui-website.html +1202 -0
  8. package/docs/design-previews/clean-saas-ui.html +549 -0
  9. package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
  10. package/docs/design-previews/cognitive-core-ui.html +463 -0
  11. package/docs/design-previews/glassmorphism-ui-website.html +572 -0
  12. package/docs/design-previews/glassmorphism-ui.html +886 -0
  13. package/docs/design-previews/index.html +699 -0
  14. package/docs/design-previews/interface-design-website.html +1187 -0
  15. package/docs/design-previews/interface-design.html +513 -0
  16. package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
  17. package/docs/design-previews/neo-brutalist-ui.html +797 -0
  18. package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
  19. package/docs/design-previews/premium-command-center-ui.html +552 -0
  20. package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
  21. package/docs/design-previews/warm-craft-ui-website.html +684 -0
  22. package/docs/design-previews/warm-craft-ui.html +739 -0
  23. package/docs/en/cli-reference.md +20 -9
  24. package/docs/integrations/sdlc-genius-boundary.md +76 -0
  25. package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
  26. package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
  27. package/docs/integrations/sdlc-genius-review-samples.md +86 -0
  28. package/docs/pt/README.md +10 -0
  29. package/docs/pt/agent-sharding.md +132 -0
  30. package/docs/pt/agentes.md +9 -2
  31. package/docs/pt/busca-de-contexto.md +129 -0
  32. package/docs/pt/cache-de-contexto.md +156 -0
  33. package/docs/pt/comandos-cli.md +915 -1
  34. package/docs/pt/design-hybrid-forge.md +356 -0
  35. package/docs/pt/devlog-pipeline.md +270 -0
  36. package/docs/pt/fluxo-artefatos.md +178 -0
  37. package/docs/pt/hooks-session-guard.md +454 -0
  38. package/docs/pt/inicio-rapido.md +54 -3
  39. package/docs/pt/inteligencia-adaptativa.md +324 -0
  40. package/docs/pt/monitor-de-contexto.md +158 -0
  41. package/docs/pt/recuperacao-de-sessao.md +125 -0
  42. package/docs/pt/sandbox.md +125 -0
  43. package/docs/pt/sdd-automation-scripts.md +557 -0
  44. package/docs/pt/site-forge.md +309 -0
  45. package/docs/pt/skills.md +98 -6
  46. package/docs/pt/spec-learnings-pipeline.md +265 -0
  47. package/package.json +1 -1
  48. package/src/a2a/client.js +165 -0
  49. package/src/a2a/server.js +223 -0
  50. package/src/agent-loader.js +280 -0
  51. package/src/cli.js +329 -1
  52. package/src/commands/agent-audit.js +397 -0
  53. package/src/commands/agent-export-skill.js +229 -0
  54. package/src/commands/agent-loader.js +85 -0
  55. package/src/commands/artifact-validate.js +189 -0
  56. package/src/commands/brief-gen.js +405 -0
  57. package/src/commands/brief-validate.js +65 -0
  58. package/src/commands/classify.js +256 -0
  59. package/src/commands/context-cache.js +90 -0
  60. package/src/commands/context-compact.js +49 -0
  61. package/src/commands/context-health.js +175 -0
  62. package/src/commands/context-monitor.js +163 -0
  63. package/src/commands/context-search.js +66 -0
  64. package/src/commands/context-trim.js +177 -0
  65. package/src/commands/design-hybrid-options.js +385 -0
  66. package/src/commands/detect-test-runner.js +55 -0
  67. package/src/commands/devlog-export-brains.js +27 -0
  68. package/src/commands/devlog-process.js +292 -0
  69. package/src/commands/devlog-watch.js +131 -0
  70. package/src/commands/feature-close.js +165 -0
  71. package/src/commands/gate-check.js +228 -0
  72. package/src/commands/health.js +214 -0
  73. package/src/commands/hooks-emit.js +253 -0
  74. package/src/commands/hooks-install.js +347 -0
  75. package/src/commands/init.js +54 -13
  76. package/src/commands/install.js +52 -13
  77. package/src/commands/learning-auto-promote.js +195 -0
  78. package/src/commands/learning-evolve.js +364 -0
  79. package/src/commands/learning-export.js +103 -0
  80. package/src/commands/learning-rollback.js +164 -0
  81. package/src/commands/live.js +59 -1
  82. package/src/commands/pattern-detect.js +33 -0
  83. package/src/commands/preflight-context.js +30 -0
  84. package/src/commands/preflight.js +208 -0
  85. package/src/commands/pulse-update.js +130 -0
  86. package/src/commands/recovery.js +43 -0
  87. package/src/commands/runner-daemon.js +274 -0
  88. package/src/commands/runner-plan.js +70 -0
  89. package/src/commands/runner-queue-from-plan.js +166 -0
  90. package/src/commands/runner-queue.js +189 -0
  91. package/src/commands/runner-run.js +129 -0
  92. package/src/commands/runtime.js +47 -1
  93. package/src/commands/sandbox.js +37 -0
  94. package/src/commands/self-implement-loop.js +256 -0
  95. package/src/commands/session-guard.js +218 -0
  96. package/src/commands/setup-context.js +22 -2
  97. package/src/commands/setup.js +178 -0
  98. package/src/commands/sizing.js +165 -0
  99. package/src/commands/skill.js +144 -32
  100. package/src/commands/spec-checkpoint.js +177 -0
  101. package/src/commands/spec-status.js +79 -0
  102. package/src/commands/spec-sync.js +190 -0
  103. package/src/commands/spec-tasks.js +288 -0
  104. package/src/commands/squad-autorun.js +1220 -0
  105. package/src/commands/squad-bus.js +217 -0
  106. package/src/commands/squad-card.js +149 -0
  107. package/src/commands/squad-daemon.js +134 -0
  108. package/src/commands/squad-dependency-graph.js +164 -0
  109. package/src/commands/squad-review.js +106 -0
  110. package/src/commands/squad-scaffold.js +55 -0
  111. package/src/commands/squad-tool-register.js +157 -0
  112. package/src/commands/state-save.js +122 -0
  113. package/src/commands/tool-registry-cmd.js +232 -0
  114. package/src/commands/update.js +9 -0
  115. package/src/commands/verify-gate.js +572 -0
  116. package/src/commands/workflow-execute.js +241 -0
  117. package/src/constants.js +18 -0
  118. package/src/context-cache.js +159 -0
  119. package/src/context-search.js +326 -0
  120. package/src/design-variation-catalog.js +503 -0
  121. package/src/i18n/messages/en.js +32 -2
  122. package/src/i18n/messages/es.js +30 -2
  123. package/src/i18n/messages/fr.js +30 -2
  124. package/src/i18n/messages/pt-BR.js +32 -2
  125. package/src/install-animation.js +260 -0
  126. package/src/install-profile.js +143 -0
  127. package/src/install-wizard.js +475 -0
  128. package/src/installer.js +44 -10
  129. package/src/lib/health-check.js +158 -0
  130. package/src/lib/hook-protocol.js +76 -0
  131. package/src/mcp/apps/squad-dashboard/app.js +163 -0
  132. package/src/mcp/apps/squad-dashboard/index.html +261 -0
  133. package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
  134. package/src/mcp/resources/squad-state.js +130 -0
  135. package/src/parser.js +7 -1
  136. package/src/preflight-engine.js +443 -0
  137. package/src/recovery-context-session.js +154 -0
  138. package/src/runner/cascade.js +97 -0
  139. package/src/runner/cli-launcher.js +109 -0
  140. package/src/runner/plan-importer.js +63 -0
  141. package/src/runner/queue-store.js +159 -0
  142. package/src/runtime-store.js +158 -4
  143. package/src/sandbox.js +177 -0
  144. package/src/squad/agent-teams-adapter.js +264 -0
  145. package/src/squad/brief-validator.js +350 -0
  146. package/src/squad/bus-bridge.js +140 -0
  147. package/src/squad/context-compactor.js +265 -0
  148. package/src/squad/cross-ai-synthesizer.js +250 -0
  149. package/src/squad/hooks-generator.js +196 -0
  150. package/src/squad/inter-squad-events.js +175 -0
  151. package/src/squad/intra-bus.js +345 -0
  152. package/src/squad/learning-extractor.js +213 -0
  153. package/src/squad/pattern-detector.js +365 -0
  154. package/src/squad/preflight-context.js +296 -0
  155. package/src/squad/recovery-context.js +242 -71
  156. package/src/squad/reflection.js +365 -0
  157. package/src/squad/squad-scaffold.js +177 -0
  158. package/src/squad/state-manager.js +310 -0
  159. package/src/squad/task-decomposer.js +652 -0
  160. package/src/squad/verify-gate.js +303 -0
  161. package/src/tool-executor.js +94 -0
  162. package/src/updater.js +10 -3
  163. package/src/worker-runner.js +186 -1
  164. package/template/.aioson/agents/analyst.md +119 -3
  165. package/template/.aioson/agents/architect.md +98 -0
  166. package/template/.aioson/agents/design-hybrid-forge.md +141 -0
  167. package/template/.aioson/agents/dev.md +335 -14
  168. package/template/.aioson/agents/deyvin.md +117 -2
  169. package/template/.aioson/agents/discovery-design-doc.md +44 -0
  170. package/template/.aioson/agents/genome.md +14 -0
  171. package/template/.aioson/agents/neo.md +78 -1
  172. package/template/.aioson/agents/orache.md +50 -4
  173. package/template/.aioson/agents/orchestrator.md +197 -1
  174. package/template/.aioson/agents/pm.md +93 -0
  175. package/template/.aioson/agents/product.md +77 -4
  176. package/template/.aioson/agents/profiler-enricher.md +14 -0
  177. package/template/.aioson/agents/profiler-forge.md +14 -0
  178. package/template/.aioson/agents/profiler-researcher.md +14 -0
  179. package/template/.aioson/agents/qa.md +249 -19
  180. package/template/.aioson/agents/setup.md +144 -12
  181. package/template/.aioson/agents/sheldon.md +237 -11
  182. package/template/.aioson/agents/site-forge.md +1753 -0
  183. package/template/.aioson/agents/squad.md +162 -0
  184. package/template/.aioson/agents/tester.md +209 -0
  185. package/template/.aioson/agents/ux-ui.md +34 -1
  186. package/template/.aioson/brains/README.md +128 -0
  187. package/template/.aioson/brains/_index.json +16 -0
  188. package/template/.aioson/brains/scripts/query.js +103 -0
  189. package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
  190. package/template/.aioson/config.md +158 -13
  191. package/template/.aioson/constitution.md +33 -0
  192. package/template/.aioson/context/forensics/.gitkeep +0 -0
  193. package/template/.aioson/context/project-pulse.md +34 -0
  194. package/template/.aioson/context/seeds/seed-example.md +27 -0
  195. package/template/.aioson/context/user-profile.md +42 -0
  196. package/template/.aioson/docs/LAYERS.md +79 -0
  197. package/template/.aioson/docs/README.md +76 -0
  198. package/template/.aioson/docs/example-external-api-context.md +72 -0
  199. package/template/.aioson/locales/en/agents/architect.md +17 -0
  200. package/template/.aioson/locales/en/agents/dev.md +79 -13
  201. package/template/.aioson/locales/en/agents/orache.md +6 -0
  202. package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
  203. package/template/.aioson/locales/en/agents/product.md +50 -0
  204. package/template/.aioson/locales/en/agents/setup.md +33 -1
  205. package/template/.aioson/locales/en/agents/sheldon.md +115 -0
  206. package/template/.aioson/locales/en/agents/squad.md +14 -0
  207. package/template/.aioson/locales/en/agents/tester.md +6 -0
  208. package/template/.aioson/locales/es/agents/analyst.md +2 -0
  209. package/template/.aioson/locales/es/agents/architect.md +19 -0
  210. package/template/.aioson/locales/es/agents/dev.md +64 -4
  211. package/template/.aioson/locales/es/agents/deyvin.md +2 -0
  212. package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
  213. package/template/.aioson/locales/es/agents/genome.md +2 -0
  214. package/template/.aioson/locales/es/agents/neo.md +2 -0
  215. package/template/.aioson/locales/es/agents/orache.md +2 -0
  216. package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
  217. package/template/.aioson/locales/es/agents/pair.md +2 -0
  218. package/template/.aioson/locales/es/agents/pm.md +2 -0
  219. package/template/.aioson/locales/es/agents/product.md +52 -0
  220. package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
  221. package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
  222. package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
  223. package/template/.aioson/locales/es/agents/qa.md +2 -0
  224. package/template/.aioson/locales/es/agents/setup.md +35 -1
  225. package/template/.aioson/locales/es/agents/sheldon.md +117 -0
  226. package/template/.aioson/locales/es/agents/squad.md +16 -0
  227. package/template/.aioson/locales/es/agents/tester.md +9 -0
  228. package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
  229. package/template/.aioson/locales/fr/agents/analyst.md +2 -0
  230. package/template/.aioson/locales/fr/agents/architect.md +19 -0
  231. package/template/.aioson/locales/fr/agents/dev.md +64 -4
  232. package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
  233. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
  234. package/template/.aioson/locales/fr/agents/genome.md +2 -0
  235. package/template/.aioson/locales/fr/agents/neo.md +2 -0
  236. package/template/.aioson/locales/fr/agents/orache.md +2 -0
  237. package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
  238. package/template/.aioson/locales/fr/agents/pair.md +2 -0
  239. package/template/.aioson/locales/fr/agents/pm.md +2 -0
  240. package/template/.aioson/locales/fr/agents/product.md +52 -0
  241. package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
  242. package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
  243. package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
  244. package/template/.aioson/locales/fr/agents/qa.md +2 -0
  245. package/template/.aioson/locales/fr/agents/setup.md +35 -1
  246. package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
  247. package/template/.aioson/locales/fr/agents/squad.md +16 -0
  248. package/template/.aioson/locales/fr/agents/tester.md +9 -0
  249. package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
  250. package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
  251. package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
  252. package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
  253. package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
  254. package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
  255. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
  256. package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
  257. package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
  258. package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
  259. package/template/.aioson/locales/pt-BR/agents/setup.md +134 -19
  260. package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
  261. package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
  262. package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
  263. package/template/.aioson/rules/README.md +69 -0
  264. package/template/.aioson/rules/data-format-convention.md +136 -0
  265. package/template/.aioson/rules/example-monetary-values.md +30 -0
  266. package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
  267. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
  268. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
  269. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
  270. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
  271. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
  272. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
  273. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
  274. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
  275. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
  276. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
  277. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
  278. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
  279. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
  280. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
  281. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
  282. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
  283. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
  284. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
  285. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
  286. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
  287. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
  288. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
  289. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
  290. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
  291. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
  292. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
  293. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
  294. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
  295. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
  296. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
  297. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
  298. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +46 -0
  299. package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
  300. package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
  301. package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
  302. package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
  303. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
  304. package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
  305. package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
  306. package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
  307. package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +101 -0
  308. package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
  309. package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
  310. package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
  311. package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
  312. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +147 -0
  313. package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
  314. package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
  315. package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +306 -0
  316. package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +149 -0
  317. package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +208 -0
  318. package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
  319. package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
  320. package/template/.aioson/skills/static/context-budget-guide.md +46 -0
  321. package/template/.aioson/skills/static/harness-sensors.md +74 -0
  322. package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
  323. package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
  324. package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
  325. package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
  326. package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
  327. package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
  328. package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
  329. package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
  330. package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
  331. package/template/.aioson/skills/static/threejs-patterns.md +929 -0
  332. package/template/.aioson/skills/static/web-research-cache.md +112 -0
  333. package/template/.aioson/tasks/implementation-plan.md +21 -1
  334. package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
  335. package/template/.claude/commands/aioson/agent/orache.md +5 -0
  336. package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
  337. package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
  338. package/template/AGENTS.md +75 -1
  339. package/template/CLAUDE.md +31 -0
  340. package/template/OPENCODE.md +4 -0
  341. package/template/researchs/.gitkeep +0 -0
@@ -0,0 +1,682 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Aurora Command UI — Dashboard Preview</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet" />
10
+ <style>
11
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
12
+
13
+ :root {
14
+ --bg-gradient: linear-gradient(135deg, #060910 0%, #0A0818 30%, #060C1A 70%, #08060F 100%);
15
+ --glass-shell: rgba(8, 12, 22, 0.78);
16
+ --glass-surface: rgba(10, 14, 26, 0.65);
17
+ --glass-elevated: rgba(14, 20, 36, 0.78);
18
+ --glass-border: rgba(255,255,255,0.09);
19
+ --glass-border-strong: rgba(255,255,255,0.16);
20
+ --glass-highlight: linear-gradient(180deg, rgba(255,255,255,0.07) 0%, transparent 50%);
21
+ --accent-primary: #00C8E8;
22
+ --accent-violet: #7C3AED;
23
+ --accent-gradient: linear-gradient(135deg, #00C8E8, #7C3AED);
24
+ --accent-dim: rgba(0,200,232,0.12);
25
+ --text-heading: #F0F4FA;
26
+ --text-primary: #C8D4E8;
27
+ --text-secondary: #8898B0;
28
+ --text-muted: #556070;
29
+ --green: #00D68F;
30
+ --amber: #F4A91D;
31
+ --red: #FF5A67;
32
+ --purple: #A78BFA;
33
+ }
34
+
35
+ html, body {
36
+ height: 100%;
37
+ font-family: 'Inter', system-ui, sans-serif;
38
+ font-size: 13px;
39
+ line-height: 1.5;
40
+ background: var(--bg-gradient);
41
+ background-attachment: fixed;
42
+ color: var(--text-primary);
43
+ overflow: hidden;
44
+ }
45
+
46
+ /* AIOSON badge */
47
+ .aioson-badge {
48
+ position: fixed; top: 10px; right: 10px; z-index: 9999;
49
+ background: var(--accent-gradient);
50
+ color: #fff;
51
+ font-size: 9.5px; font-weight: 700;
52
+ letter-spacing: 0.08em;
53
+ padding: 3px 10px; border-radius: 9999px;
54
+ box-shadow: 0 0 16px rgba(0,200,232,0.35);
55
+ pointer-events: none;
56
+ }
57
+
58
+ .mono { font-family: 'JetBrains Mono', monospace; }
59
+ .mono-label {
60
+ font-family: 'JetBrains Mono', monospace;
61
+ font-size: 0.625rem; font-weight: 600;
62
+ letter-spacing: 0.12em; text-transform: uppercase;
63
+ color: var(--text-muted);
64
+ }
65
+
66
+ /* Glass mixin base */
67
+ .glass {
68
+ background: var(--glass-surface);
69
+ backdrop-filter: blur(16px);
70
+ -webkit-backdrop-filter: blur(16px);
71
+ border: 1px solid var(--glass-border);
72
+ position: relative;
73
+ }
74
+ .glass::before {
75
+ content: '';
76
+ position: absolute;
77
+ inset: 0;
78
+ border-radius: inherit;
79
+ background: var(--glass-highlight);
80
+ pointer-events: none;
81
+ }
82
+
83
+ /* SHELL */
84
+ .shell { display: flex; flex-direction: column; height: 100vh; overflow: hidden; }
85
+
86
+ /* COMMAND STRIP */
87
+ .command-strip {
88
+ height: 28px;
89
+ background: rgba(0,200,232,0.05);
90
+ border-bottom: 1px solid rgba(0,200,232,0.12);
91
+ display: flex; align-items: center;
92
+ padding: 0 20px; gap: 24px;
93
+ flex-shrink: 0;
94
+ }
95
+ .cs-item {
96
+ display: flex; align-items: center; gap: 6px;
97
+ font-family: 'JetBrains Mono', monospace;
98
+ font-size: 0.58rem; font-weight: 600;
99
+ letter-spacing: 0.10em; text-transform: uppercase;
100
+ color: var(--text-secondary);
101
+ white-space: nowrap;
102
+ }
103
+ .cs-dot {
104
+ width: 5px; height: 5px; border-radius: 50%;
105
+ background: var(--accent-primary);
106
+ box-shadow: 0 0 5px var(--accent-primary);
107
+ animation: pulse-dot 2s ease-in-out infinite;
108
+ }
109
+ .cs-dot.amber { background: var(--amber); box-shadow: 0 0 5px var(--amber); }
110
+ .cs-dot.green { background: var(--green); box-shadow: 0 0 5px var(--green); }
111
+ @keyframes pulse-dot {
112
+ 0%,100% { opacity:1; box-shadow: 0 0 4px currentColor; }
113
+ 50% { opacity:0.7; box-shadow: 0 0 8px currentColor; }
114
+ }
115
+
116
+ /* TOP BAR */
117
+ .topbar {
118
+ height: 48px; flex-shrink: 0;
119
+ background: var(--glass-shell);
120
+ backdrop-filter: blur(24px);
121
+ -webkit-backdrop-filter: blur(24px);
122
+ border-bottom: 1px solid var(--glass-border);
123
+ display: flex; align-items: center;
124
+ padding: 0 20px; gap: 0;
125
+ position: relative; z-index: 10;
126
+ }
127
+ .topbar-logo {
128
+ width: 200px; flex-shrink: 0;
129
+ display: flex; align-items: center; gap: 9px;
130
+ }
131
+ .logo-mark {
132
+ width: 26px; height: 26px; border-radius: 6px;
133
+ background: var(--accent-gradient);
134
+ display: flex; align-items: center; justify-content: center;
135
+ flex-shrink: 0;
136
+ }
137
+ .logo-mark svg { width: 12px; height: 12px; }
138
+ .logo-text { font-size: 13px; font-weight: 700; color: var(--text-heading); letter-spacing: -0.02em; }
139
+
140
+ .tab-nav {
141
+ flex: 1; display: flex; align-items: stretch;
142
+ justify-content: center; gap: 0; height: 100%;
143
+ }
144
+ .tab {
145
+ display: flex; align-items: center; padding: 0 18px;
146
+ font-size: 12px; font-weight: 500; color: var(--text-secondary);
147
+ border-bottom: 2px solid transparent;
148
+ cursor: pointer; transition: color 160ms, border-color 160ms;
149
+ white-space: nowrap;
150
+ }
151
+ .tab.active { color: var(--text-heading); border-bottom-color: var(--accent-primary); }
152
+ .tab:hover:not(.active) { color: var(--text-primary); }
153
+
154
+ .topbar-actions {
155
+ display: flex; align-items: center; gap: 8px; margin-left: auto;
156
+ }
157
+ .avatar {
158
+ width: 28px; height: 28px; border-radius: 50%;
159
+ background: var(--accent-dim);
160
+ border: 1px solid rgba(0,200,232,0.30);
161
+ display: flex; align-items: center; justify-content: center;
162
+ font-size: 10px; font-weight: 600; color: var(--accent-primary);
163
+ }
164
+
165
+ /* BODY */
166
+ .body-row { display: flex; flex: 1; overflow: hidden; }
167
+
168
+ /* SIDEBAR */
169
+ .sidebar {
170
+ width: 200px; flex-shrink: 0;
171
+ background: var(--glass-shell);
172
+ backdrop-filter: blur(20px);
173
+ -webkit-backdrop-filter: blur(20px);
174
+ border-right: 1px solid var(--glass-border);
175
+ overflow-y: auto; padding: 16px 10px;
176
+ display: flex; flex-direction: column; gap: 4px;
177
+ }
178
+ .nav-section-label {
179
+ font-family: 'JetBrains Mono', monospace;
180
+ font-size: 0.56rem; font-weight: 600;
181
+ letter-spacing: 0.14em; text-transform: uppercase;
182
+ color: var(--text-muted);
183
+ padding: 10px 10px 4px;
184
+ }
185
+ .nav-item {
186
+ display: flex; align-items: center; gap: 8px;
187
+ padding: 7px 10px; border-radius: 7px;
188
+ font-size: 12px; font-weight: 500; color: var(--text-secondary);
189
+ cursor: pointer;
190
+ border-left: 2px solid transparent;
191
+ transition: all 160ms;
192
+ }
193
+ .nav-item:hover { background: rgba(255,255,255,0.04); color: var(--text-primary); }
194
+ .nav-item.active {
195
+ border-left-color: var(--accent-primary);
196
+ background: var(--glass-elevated);
197
+ color: var(--text-heading);
198
+ }
199
+ .nav-dot { width: 14px; height: 14px; border-radius: 4px; flex-shrink: 0; opacity:0.7; }
200
+
201
+ /* CONTENT */
202
+ .content { flex: 1; overflow-y: auto; padding: 20px 24px; }
203
+
204
+ /* SECTION HEADER */
205
+ .section-header {
206
+ display: flex; align-items: center; gap: 8px;
207
+ margin-bottom: 12px; margin-top: 20px;
208
+ }
209
+ .section-header:first-child { margin-top: 0; }
210
+ .section-icon { width: 16px; height: 16px; color: var(--accent-primary); }
211
+
212
+ /* STAT ROW */
213
+ .stat-row {
214
+ display: grid;
215
+ grid-template-columns: repeat(4, 1fr);
216
+ gap: 10px; margin-bottom: 16px;
217
+ }
218
+ .stat-card {
219
+ border-radius: 12px;
220
+ padding: 14px 16px;
221
+ }
222
+ .stat-label {
223
+ font-family: 'JetBrains Mono', monospace;
224
+ font-size: 0.58rem; font-weight: 600;
225
+ letter-spacing: 0.12em; text-transform: uppercase;
226
+ color: var(--text-muted);
227
+ margin-bottom: 8px;
228
+ }
229
+ .stat-number {
230
+ font-size: 1.8rem; font-weight: 700;
231
+ line-height: 1; letter-spacing: -0.02em;
232
+ font-variant-numeric: tabular-nums;
233
+ color: var(--text-heading);
234
+ }
235
+ .stat-number.gradient-text {
236
+ background: var(--accent-gradient);
237
+ -webkit-background-clip: text;
238
+ -webkit-text-fill-color: transparent;
239
+ background-clip: text;
240
+ }
241
+ .stat-trend {
242
+ font-size: 11px; font-weight: 500;
243
+ margin-top: 4px;
244
+ display: flex; align-items: center; gap: 3px;
245
+ }
246
+ .trend-up { color: var(--green); }
247
+ .trend-down { color: var(--red); }
248
+ .trend-neutral { color: var(--text-muted); }
249
+
250
+ /* SPLIT ROW */
251
+ .split-row {
252
+ display: grid;
253
+ grid-template-columns: 1fr 300px;
254
+ gap: 12px; margin-bottom: 16px;
255
+ }
256
+
257
+ /* GLASS PANEL */
258
+ .panel {
259
+ border-radius: 14px;
260
+ padding: 18px 20px;
261
+ }
262
+ .panel-title {
263
+ font-size: 12.5px; font-weight: 600;
264
+ color: var(--text-heading); margin-bottom: 14px;
265
+ }
266
+
267
+ /* CHART (simulated) */
268
+ .chart-area {
269
+ height: 140px; position: relative;
270
+ border-radius: 8px;
271
+ overflow: hidden;
272
+ }
273
+ .chart-grid-line {
274
+ position: absolute; left: 0; right: 0;
275
+ border-top: 1px solid rgba(255,255,255,0.05);
276
+ }
277
+ .chart-bars {
278
+ display: flex; align-items: flex-end;
279
+ gap: 6px; height: 100%; padding: 0 8px 0;
280
+ }
281
+ .bar {
282
+ flex: 1; border-radius: 4px 4px 0 0;
283
+ background: linear-gradient(180deg, rgba(0,200,232,0.7) 0%, rgba(124,58,237,0.4) 100%);
284
+ transition: opacity 200ms;
285
+ }
286
+ .bar:hover { opacity: 0.8; }
287
+
288
+ /* AREA CHART */
289
+ .area-chart {
290
+ width: 100%; height: 100%;
291
+ }
292
+
293
+ /* FEED */
294
+ .alert-feed {
295
+ display: flex; flex-direction: column; gap: 6px;
296
+ }
297
+ .alert-item {
298
+ display: flex; align-items: center; gap: 10px;
299
+ padding: 8px 10px; border-radius: 8px;
300
+ background: rgba(255,255,255,0.03);
301
+ border: 1px solid var(--glass-border);
302
+ font-size: 11.5px;
303
+ }
304
+ .alert-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
305
+ .alert-dot.critical { background: var(--red); box-shadow: 0 0 5px var(--red); }
306
+ .alert-dot.warning { background: var(--amber); box-shadow: 0 0 5px var(--amber); }
307
+ .alert-dot.info { background: var(--accent-primary); box-shadow: 0 0 5px var(--accent-primary); }
308
+ .alert-text { flex: 1; color: var(--text-primary); }
309
+ .alert-time { font-family: 'JetBrains Mono', monospace; font-size: 0.62rem; color: var(--text-muted); }
310
+
311
+ /* TABLE */
312
+ .glass-table { width: 100%; border-collapse: collapse; font-size: 12px; }
313
+ .glass-table th {
314
+ font-family: 'JetBrains Mono', monospace;
315
+ font-size: 0.58rem; font-weight: 600;
316
+ letter-spacing: 0.10em; text-transform: uppercase;
317
+ color: var(--text-muted);
318
+ padding: 8px 12px; text-align: left;
319
+ border-bottom: 1px solid var(--glass-border);
320
+ }
321
+ .glass-table td {
322
+ padding: 9px 12px; color: var(--text-primary);
323
+ border-bottom: 1px solid rgba(255,255,255,0.04);
324
+ }
325
+ .glass-table tr:hover td { background: rgba(255,255,255,0.02); }
326
+ .status-badge {
327
+ display: inline-flex; align-items: center; gap: 5px;
328
+ padding: 2px 8px; border-radius: 9999px;
329
+ font-size: 10px; font-weight: 600;
330
+ }
331
+ .status-badge.active {
332
+ background: rgba(0,214,143,0.12);
333
+ color: var(--green); border: 1px solid rgba(0,214,143,0.25);
334
+ }
335
+ .status-badge.warning {
336
+ background: rgba(244,169,29,0.12);
337
+ color: var(--amber); border: 1px solid rgba(244,169,29,0.25);
338
+ }
339
+ .status-badge.critical {
340
+ background: rgba(255,90,103,0.12);
341
+ color: var(--red); border: 1px solid rgba(255,90,103,0.25);
342
+ }
343
+
344
+ /* Button */
345
+ .btn-gradient {
346
+ background: var(--accent-gradient);
347
+ color: #fff; border: none;
348
+ padding: 6px 14px; border-radius: 7px;
349
+ font-size: 11px; font-weight: 600;
350
+ cursor: pointer; letter-spacing: 0.02em;
351
+ box-shadow: 0 0 14px rgba(0,200,232,0.25);
352
+ }
353
+ .btn-ghost {
354
+ background: rgba(255,255,255,0.06);
355
+ color: var(--text-secondary); border: 1px solid var(--glass-border);
356
+ padding: 6px 12px; border-radius: 7px;
357
+ font-size: 11px; font-weight: 500; cursor: pointer;
358
+ }
359
+
360
+ /* Search */
361
+ .search-bar {
362
+ background: var(--glass-elevated);
363
+ border: 1px solid var(--glass-border);
364
+ border-radius: 7px;
365
+ padding: 5px 12px;
366
+ font-size: 11.5px; color: var(--text-secondary);
367
+ width: 180px; outline: none;
368
+ font-family: 'Inter', sans-serif;
369
+ }
370
+ .search-bar::placeholder { color: var(--text-muted); }
371
+ .search-bar:focus { border-color: rgba(0,200,232,0.30); }
372
+ </style>
373
+ </head>
374
+ <body>
375
+
376
+ <div class="aioson-badge">AURORA COMMAND UI</div>
377
+
378
+ <div class="shell">
379
+
380
+ <!-- COMMAND STRIP -->
381
+ <div class="command-strip">
382
+ <div class="cs-item">
383
+ <span class="cs-dot"></span>
384
+ LIVE
385
+ </div>
386
+ <div class="cs-item">
387
+ <span class="cs-dot amber"></span>
388
+ 3 ACTIVE ALERTS
389
+ </div>
390
+ <div class="cs-item">
391
+ <span class="cs-dot green"></span>
392
+ 12 AGENTS ONLINE
393
+ </div>
394
+ <div class="cs-item" style="margin-left:auto; margin-right: 50px;">
395
+ <span style="color: var(--text-muted)">LATENCY p99 —</span>&nbsp;
396
+ <span style="color: var(--accent-primary); font-family: 'JetBrains Mono', monospace;">847ms</span>
397
+ </div>
398
+ </div>
399
+
400
+ <!-- TOP BAR -->
401
+ <div class="topbar">
402
+ <div class="topbar-logo">
403
+ <div class="logo-mark">
404
+ <svg viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
405
+ <path d="M6 1L11 4V8L6 11L1 8V4L6 1Z" fill="white" fill-opacity="0.9"/>
406
+ </svg>
407
+ </div>
408
+ <div>
409
+ <div class="logo-text">NEXUS OPS</div>
410
+ </div>
411
+ </div>
412
+
413
+ <div class="tab-nav">
414
+ <div class="tab active">Overview</div>
415
+ <div class="tab">Incidents</div>
416
+ <div class="tab">Agents</div>
417
+ <div class="tab">Intel</div>
418
+ <div class="tab">Config</div>
419
+ </div>
420
+
421
+ <div class="topbar-actions">
422
+ <input class="search-bar" type="text" placeholder="Search..." />
423
+ <button class="btn-ghost">Export</button>
424
+ <button class="btn-gradient">+ New Incident</button>
425
+ <div class="avatar">JR</div>
426
+ </div>
427
+ </div>
428
+
429
+ <!-- BODY -->
430
+ <div class="body-row">
431
+
432
+ <!-- SIDEBAR -->
433
+ <div class="sidebar">
434
+ <div class="nav-section-label">Monitoring</div>
435
+ <div class="nav-item active">
436
+ <svg class="nav-dot" viewBox="0 0 14 14" fill="none">
437
+ <rect x="1" y="1" width="12" height="12" rx="3" fill="rgba(0,200,232,0.4)"/>
438
+ </svg>
439
+ Dashboard
440
+ </div>
441
+ <div class="nav-item">
442
+ <svg class="nav-dot" viewBox="0 0 14 14" fill="none">
443
+ <circle cx="7" cy="7" r="5" fill="rgba(255,90,103,0.35)"/>
444
+ </svg>
445
+ Alerts
446
+ <span style="margin-left:auto; background:rgba(255,90,103,0.18); color:var(--red); border-radius:9999px; padding:1px 7px; font-size:9px; font-weight:700;">3</span>
447
+ </div>
448
+ <div class="nav-item">
449
+ <svg class="nav-dot" viewBox="0 0 14 14" fill="none">
450
+ <rect x="1" y="6" width="12" height="2" rx="1" fill="rgba(167,139,250,0.5)"/>
451
+ <rect x="1" y="2" width="8" height="2" rx="1" fill="rgba(167,139,250,0.35)"/>
452
+ <rect x="1" y="10" width="10" height="2" rx="1" fill="rgba(167,139,250,0.35)"/>
453
+ </svg>
454
+ Activity Feed
455
+ </div>
456
+
457
+ <div class="nav-section-label" style="margin-top: 6px;">Infrastructure</div>
458
+ <div class="nav-item">
459
+ <svg class="nav-dot" viewBox="0 0 14 14" fill="none">
460
+ <rect x="1" y="3" width="12" height="3" rx="1.5" fill="rgba(0,214,143,0.4)"/>
461
+ <rect x="1" y="8" width="12" height="3" rx="1.5" fill="rgba(0,214,143,0.25)"/>
462
+ </svg>
463
+ Clusters
464
+ </div>
465
+ <div class="nav-item">
466
+ <svg class="nav-dot" viewBox="0 0 14 14" fill="none">
467
+ <path d="M7 1 L13 4 L13 10 L7 13 L1 10 L1 4 Z" fill="rgba(0,200,232,0.3)"/>
468
+ </svg>
469
+ Deployments
470
+ </div>
471
+ <div class="nav-item">
472
+ <svg class="nav-dot" viewBox="0 0 14 14" fill="none">
473
+ <circle cx="4" cy="7" r="2.5" fill="rgba(244,169,29,0.5)"/>
474
+ <circle cx="10" cy="7" r="2.5" fill="rgba(244,169,29,0.3)"/>
475
+ <line x1="6.5" y1="7" x2="7.5" y2="7" stroke="rgba(244,169,29,0.5)" stroke-width="1"/>
476
+ </svg>
477
+ Services
478
+ </div>
479
+
480
+ <div class="nav-section-label" style="margin-top: 6px;">Intelligence</div>
481
+ <div class="nav-item">
482
+ <svg class="nav-dot" viewBox="0 0 14 14" fill="none">
483
+ <path d="M7 1 C7 1 13 5 13 9 C13 11 10 13 7 13 C4 13 1 11 1 9 C1 5 7 1 7 1Z" fill="rgba(124,58,237,0.4)"/>
484
+ </svg>
485
+ Threat Intel
486
+ </div>
487
+ <div class="nav-item">
488
+ <svg class="nav-dot" viewBox="0 0 14 14" fill="none">
489
+ <rect x="2" y="2" width="4" height="4" rx="1" fill="rgba(0,200,232,0.4)"/>
490
+ <rect x="8" y="2" width="4" height="4" rx="1" fill="rgba(124,58,237,0.3)"/>
491
+ <rect x="2" y="8" width="4" height="4" rx="1" fill="rgba(0,200,232,0.25)"/>
492
+ <rect x="8" y="8" width="4" height="4" rx="1" fill="rgba(124,58,237,0.2)"/>
493
+ </svg>
494
+ Reports
495
+ </div>
496
+ </div>
497
+
498
+ <!-- CONTENT -->
499
+ <div class="content">
500
+
501
+ <!-- STAT ROW -->
502
+ <div class="section-header">
503
+ <svg class="section-icon" viewBox="0 0 16 16" fill="none">
504
+ <circle cx="8" cy="8" r="6" stroke="currentColor" stroke-width="1.5"/>
505
+ <path d="M8 5V8L10 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
506
+ </svg>
507
+ <span class="mono-label">Platform Status</span>
508
+ </div>
509
+
510
+ <div class="stat-row">
511
+ <div class="stat-card glass">
512
+ <div class="stat-label">Active Incidents</div>
513
+ <div class="stat-number" style="color:var(--amber)">3</div>
514
+ <div class="stat-trend"><span style="color:var(--amber)">▲</span>&nbsp;<span class="trend-neutral">+2 from yesterday</span></div>
515
+ </div>
516
+ <div class="stat-card glass">
517
+ <div class="stat-label">Events (24h)</div>
518
+ <div class="stat-number gradient-text">48,291</div>
519
+ <div class="stat-trend"><span class="trend-up">▲ 8.4%</span>&nbsp;<span class="trend-neutral">vs avg</span></div>
520
+ </div>
521
+ <div class="stat-card glass">
522
+ <div class="stat-label">Mean TTD</div>
523
+ <div class="stat-number" style="font-size:1.4rem; font-family:'JetBrains Mono'; color:var(--text-heading)">00:04:12</div>
524
+ <div class="stat-trend"><span class="trend-up">▼ 12s</span>&nbsp;<span class="trend-neutral">improvement</span></div>
525
+ </div>
526
+ <div class="stat-card glass">
527
+ <div class="stat-label">Agent Coverage</div>
528
+ <div class="stat-number" style="color:var(--green)">99.4%</div>
529
+ <div class="stat-trend"><span class="trend-neutral">12 agents online</span></div>
530
+ </div>
531
+ </div>
532
+
533
+ <!-- SPLIT ROW: Chart + Alert Feed -->
534
+ <div class="split-row">
535
+
536
+ <!-- Main chart panel -->
537
+ <div class="panel glass">
538
+ <div class="panel-title">Threat Events — Last 24 Hours</div>
539
+ <div class="chart-area">
540
+ <div class="chart-grid-line" style="top:25%"></div>
541
+ <div class="chart-grid-line" style="top:50%"></div>
542
+ <div class="chart-grid-line" style="top:75%"></div>
543
+
544
+ <!-- SVG area chart simulation -->
545
+ <svg width="100%" height="140" viewBox="0 0 600 140" preserveAspectRatio="none" style="position:absolute;inset:0;">
546
+ <defs>
547
+ <linearGradient id="areaGrad" x1="0" y1="0" x2="0" y2="1">
548
+ <stop offset="0%" stop-color="#00C8E8" stop-opacity="0.35"/>
549
+ <stop offset="100%" stop-color="#7C3AED" stop-opacity="0.0"/>
550
+ </linearGradient>
551
+ </defs>
552
+ <!-- Area fill -->
553
+ <path d="M0,120 C30,100 60,115 100,90 S160,50 200,70 S260,30 300,45 S360,80 400,55 S460,20 500,35 S560,60 600,40 L600,140 L0,140 Z"
554
+ fill="url(#areaGrad)" />
555
+ <!-- Line -->
556
+ <path d="M0,120 C30,100 60,115 100,90 S160,50 200,70 S260,30 300,45 S360,80 400,55 S460,20 500,35 S560,60 600,40"
557
+ fill="none" stroke="#00C8E8" stroke-width="2" />
558
+ <!-- Dots at peaks -->
559
+ <circle cx="300" cy="45" r="3" fill="#00C8E8" />
560
+ <circle cx="500" cy="35" r="3" fill="#00C8E8" />
561
+ </svg>
562
+ </div>
563
+ <div style="display:flex; gap:16px; margin-top:10px;">
564
+ <span class="mono-label">Peak: <span style="color:var(--accent-primary)">2,847</span></span>
565
+ <span class="mono-label">Avg: <span style="color:var(--text-secondary)">1,210</span></span>
566
+ <span class="mono-label" style="margin-left:auto">Past 24h</span>
567
+ </div>
568
+ </div>
569
+
570
+ <!-- Alert Feed -->
571
+ <div class="panel glass">
572
+ <div class="panel-title">Live Alert Tape</div>
573
+ <div class="alert-feed">
574
+ <div class="alert-item">
575
+ <span class="alert-dot critical"></span>
576
+ <span class="alert-text">SQL injection attempt — endpoint /api/v2/users</span>
577
+ <span class="alert-time">0:02</span>
578
+ </div>
579
+ <div class="alert-item">
580
+ <span class="alert-dot warning"></span>
581
+ <span class="alert-text">Rate limit exceeded — agent nexus-04</span>
582
+ <span class="alert-time">0:08</span>
583
+ </div>
584
+ <div class="alert-item">
585
+ <span class="alert-dot critical"></span>
586
+ <span class="alert-text">Brute force detected — IP 185.220.101.x</span>
587
+ <span class="alert-time">0:14</span>
588
+ </div>
589
+ <div class="alert-item">
590
+ <span class="alert-dot info"></span>
591
+ <span class="alert-text">Anomaly resolved — cluster k8s-prod-02</span>
592
+ <span class="alert-time">0:21</span>
593
+ </div>
594
+ <div class="alert-item">
595
+ <span class="alert-dot warning"></span>
596
+ <span class="alert-text">High memory usage — pod inference-worker-7</span>
597
+ <span class="alert-time">0:33</span>
598
+ </div>
599
+ <div class="alert-item">
600
+ <span class="alert-dot info"></span>
601
+ <span class="alert-text">Agent nexus-09 online — region eu-west</span>
602
+ <span class="alert-time">0:47</span>
603
+ </div>
604
+ </div>
605
+ </div>
606
+
607
+ </div>
608
+
609
+ <!-- TABLE SECTION -->
610
+ <div class="section-header">
611
+ <svg class="section-icon" viewBox="0 0 16 16" fill="none">
612
+ <rect x="1" y="3" width="14" height="2" rx="1" fill="currentColor" fill-opacity="0.8"/>
613
+ <rect x="1" y="7" width="14" height="2" rx="1" fill="currentColor" fill-opacity="0.5"/>
614
+ <rect x="1" y="11" width="14" height="2" rx="1" fill="currentColor" fill-opacity="0.5"/>
615
+ </svg>
616
+ <span class="mono-label">Incident Queue</span>
617
+ <span style="margin-left:auto; display:flex; gap:8px;">
618
+ <button class="btn-ghost">Filter</button>
619
+ <button class="btn-gradient">+ Open Incident</button>
620
+ </span>
621
+ </div>
622
+
623
+ <div class="panel glass" style="padding: 0; overflow:hidden;">
624
+ <table class="glass-table">
625
+ <thead>
626
+ <tr>
627
+ <th>ID</th>
628
+ <th>Severity</th>
629
+ <th>Source</th>
630
+ <th>Description</th>
631
+ <th>Detected</th>
632
+ <th>Status</th>
633
+ <th>Assignee</th>
634
+ </tr>
635
+ </thead>
636
+ <tbody>
637
+ <tr>
638
+ <td class="mono" style="color:var(--accent-primary); font-size:10.5px">INC-2841</td>
639
+ <td><span class="status-badge critical">Critical</span></td>
640
+ <td style="color:var(--text-secondary)">API Gateway</td>
641
+ <td>SQL injection attempt blocked on /users endpoint</td>
642
+ <td class="mono" style="font-size:10px; color:var(--text-muted)">00:02:14</td>
643
+ <td><span class="status-badge warning">Investigating</span></td>
644
+ <td style="color:var(--text-secondary)">A. Chen</td>
645
+ </tr>
646
+ <tr>
647
+ <td class="mono" style="color:var(--accent-primary); font-size:10.5px">INC-2840</td>
648
+ <td><span class="status-badge warning">High</span></td>
649
+ <td style="color:var(--text-secondary)">Auth Service</td>
650
+ <td>Brute force login — 1,200 attempts in 60s</td>
651
+ <td class="mono" style="font-size:10px; color:var(--text-muted)">00:08:42</td>
652
+ <td><span class="status-badge warning">Mitigating</span></td>
653
+ <td style="color:var(--text-secondary)">K. Patel</td>
654
+ </tr>
655
+ <tr>
656
+ <td class="mono" style="color:var(--accent-primary); font-size:10.5px">INC-2839</td>
657
+ <td><span class="status-badge active">Low</span></td>
658
+ <td style="color:var(--text-secondary)">Infra Monitor</td>
659
+ <td>Memory pressure on inference worker pod</td>
660
+ <td class="mono" style="font-size:10px; color:var(--text-muted)">00:33:11</td>
661
+ <td><span class="status-badge active">Resolved</span></td>
662
+ <td style="color:var(--text-secondary)">Auto</td>
663
+ </tr>
664
+ <tr>
665
+ <td class="mono" style="color:var(--accent-primary); font-size:10.5px">INC-2838</td>
666
+ <td><span class="status-badge warning">Medium</span></td>
667
+ <td style="color:var(--text-secondary)">Rate Limiter</td>
668
+ <td>Agent nexus-04 exceeded call quota</td>
669
+ <td class="mono" style="font-size:10px; color:var(--text-muted)">00:47:08</td>
670
+ <td><span class="status-badge active">Resolved</span></td>
671
+ <td style="color:var(--text-secondary)">M. Torres</td>
672
+ </tr>
673
+ </tbody>
674
+ </table>
675
+ </div>
676
+
677
+ </div><!-- /content -->
678
+ </div><!-- /body-row -->
679
+ </div><!-- /shell -->
680
+
681
+ </body>
682
+ </html>