@jaimevalasek/aioson 1.5.1 → 1.6.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 (131) hide show
  1. package/README.md +6 -0
  2. package/docs/design-previews/aurora-command-ui-website.html +884 -0
  3. package/docs/design-previews/aurora-command-ui.html +682 -0
  4. package/docs/design-previews/bold-editorial-ui-website.html +658 -0
  5. package/docs/design-previews/bold-editorial-ui.html +717 -0
  6. package/docs/design-previews/clean-saas-ui-website.html +1202 -0
  7. package/docs/design-previews/clean-saas-ui.html +549 -0
  8. package/docs/design-previews/cognitive-core-ui-website.html +1009 -0
  9. package/docs/design-previews/cognitive-core-ui.html +463 -0
  10. package/docs/design-previews/glassmorphism-ui-website.html +572 -0
  11. package/docs/design-previews/glassmorphism-ui.html +886 -0
  12. package/docs/design-previews/index.html +699 -0
  13. package/docs/design-previews/interface-design-website.html +1187 -0
  14. package/docs/design-previews/interface-design.html +513 -0
  15. package/docs/design-previews/neo-brutalist-ui-website.html +621 -0
  16. package/docs/design-previews/neo-brutalist-ui.html +797 -0
  17. package/docs/design-previews/premium-command-center-ui-website.html +1217 -0
  18. package/docs/design-previews/premium-command-center-ui.html +552 -0
  19. package/docs/design-previews/warm-craft-ui-website.html +684 -0
  20. package/docs/design-previews/warm-craft-ui.html +739 -0
  21. package/docs/en/cli-reference.md +20 -9
  22. package/docs/pt/README.md +7 -0
  23. package/docs/pt/agent-sharding.md +132 -0
  24. package/docs/pt/agentes.md +8 -2
  25. package/docs/pt/busca-de-contexto.md +129 -0
  26. package/docs/pt/cache-de-contexto.md +156 -0
  27. package/docs/pt/comandos-cli.md +28 -0
  28. package/docs/pt/design-hybrid-forge.md +107 -0
  29. package/docs/pt/inicio-rapido.md +54 -3
  30. package/docs/pt/inteligencia-adaptativa.md +324 -0
  31. package/docs/pt/monitor-de-contexto.md +104 -0
  32. package/docs/pt/recuperacao-de-sessao.md +125 -0
  33. package/docs/pt/sandbox.md +125 -0
  34. package/docs/pt/skills.md +98 -6
  35. package/package.json +1 -1
  36. package/src/agent-loader.js +280 -0
  37. package/src/cli.js +94 -0
  38. package/src/commands/agent-loader.js +85 -0
  39. package/src/commands/context-cache.js +90 -0
  40. package/src/commands/context-monitor.js +92 -0
  41. package/src/commands/context-search.js +66 -0
  42. package/src/commands/design-hybrid-options.js +385 -0
  43. package/src/commands/health.js +214 -0
  44. package/src/commands/init.js +54 -13
  45. package/src/commands/install.js +52 -13
  46. package/src/commands/learning-evolve.js +355 -0
  47. package/src/commands/live.js +34 -0
  48. package/src/commands/recovery.js +43 -0
  49. package/src/commands/sandbox.js +37 -0
  50. package/src/commands/setup-context.js +22 -2
  51. package/src/commands/setup.js +178 -0
  52. package/src/commands/skill.js +79 -32
  53. package/src/commands/tool-registry-cmd.js +232 -0
  54. package/src/commands/update.js +7 -0
  55. package/src/constants.js +9 -0
  56. package/src/context-cache.js +159 -0
  57. package/src/context-search.js +326 -0
  58. package/src/design-variation-catalog.js +503 -0
  59. package/src/i18n/messages/en.js +32 -2
  60. package/src/i18n/messages/es.js +30 -2
  61. package/src/i18n/messages/fr.js +30 -2
  62. package/src/i18n/messages/pt-BR.js +32 -2
  63. package/src/install-animation.js +260 -0
  64. package/src/install-profile.js +143 -0
  65. package/src/install-wizard.js +474 -0
  66. package/src/installer.js +38 -10
  67. package/src/parser.js +7 -1
  68. package/src/recovery-context-session.js +154 -0
  69. package/src/runtime-store.js +97 -1
  70. package/src/sandbox.js +177 -0
  71. package/src/tool-executor.js +94 -0
  72. package/src/updater.js +11 -3
  73. package/template/.aioson/agents/analyst.md +58 -3
  74. package/template/.aioson/agents/architect.md +38 -0
  75. package/template/.aioson/agents/design-hybrid-forge.md +127 -0
  76. package/template/.aioson/agents/dev.md +103 -0
  77. package/template/.aioson/agents/deyvin.md +57 -0
  78. package/template/.aioson/agents/pm.md +58 -0
  79. package/template/.aioson/agents/product.md +28 -0
  80. package/template/.aioson/agents/qa.md +79 -0
  81. package/template/.aioson/agents/setup.md +65 -3
  82. package/template/.aioson/agents/sheldon.md +107 -6
  83. package/template/.aioson/agents/tester.md +156 -0
  84. package/template/.aioson/config.md +15 -0
  85. package/template/.aioson/context/forensics/.gitkeep +0 -0
  86. package/template/.aioson/context/seeds/seed-example.md +27 -0
  87. package/template/.aioson/context/user-profile.md +42 -0
  88. package/template/.aioson/locales/en/agents/setup.md +33 -1
  89. package/template/.aioson/locales/es/agents/setup.md +33 -1
  90. package/template/.aioson/locales/fr/agents/setup.md +33 -1
  91. package/template/.aioson/locales/pt-BR/agents/setup.md +33 -1
  92. package/template/.aioson/skills/design/aurora-command-ui/SKILL.md +243 -0
  93. package/template/.aioson/skills/design/aurora-command-ui/references/art-direction.md +293 -0
  94. package/template/.aioson/skills/design/aurora-command-ui/references/components.md +827 -0
  95. package/template/.aioson/skills/design/aurora-command-ui/references/dashboards.md +250 -0
  96. package/template/.aioson/skills/design/aurora-command-ui/references/design-tokens.md +585 -0
  97. package/template/.aioson/skills/design/aurora-command-ui/references/motion.md +365 -0
  98. package/template/.aioson/skills/design/aurora-command-ui/references/patterns.md +482 -0
  99. package/template/.aioson/skills/design/aurora-command-ui/references/websites.md +387 -0
  100. package/template/.aioson/skills/design/glassmorphism-ui/SKILL.md +222 -0
  101. package/template/.aioson/skills/design/glassmorphism-ui/references/art-direction.md +159 -0
  102. package/template/.aioson/skills/design/glassmorphism-ui/references/components.md +498 -0
  103. package/template/.aioson/skills/design/glassmorphism-ui/references/dashboards.md +236 -0
  104. package/template/.aioson/skills/design/glassmorphism-ui/references/design-tokens.md +274 -0
  105. package/template/.aioson/skills/design/glassmorphism-ui/references/motion.md +355 -0
  106. package/template/.aioson/skills/design/glassmorphism-ui/references/patterns.md +198 -0
  107. package/template/.aioson/skills/design/glassmorphism-ui/references/websites.md +307 -0
  108. package/template/.aioson/skills/design/neo-brutalist-ui/SKILL.md +213 -0
  109. package/template/.aioson/skills/design/neo-brutalist-ui/references/art-direction.md +228 -0
  110. package/template/.aioson/skills/design/neo-brutalist-ui/references/components.md +855 -0
  111. package/template/.aioson/skills/design/neo-brutalist-ui/references/dashboards.md +334 -0
  112. package/template/.aioson/skills/design/neo-brutalist-ui/references/design-tokens.md +342 -0
  113. package/template/.aioson/skills/design/neo-brutalist-ui/references/motion.md +286 -0
  114. package/template/.aioson/skills/design/neo-brutalist-ui/references/patterns.md +458 -0
  115. package/template/.aioson/skills/design/neo-brutalist-ui/references/websites.md +723 -0
  116. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +45 -0
  117. package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +109 -0
  118. package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +44 -0
  119. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +37 -0
  120. package/template/.aioson/skills/process/aioson-spec-driven/references/hardening-lane.md +49 -0
  121. package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +66 -0
  122. package/template/.aioson/skills/process/aioson-spec-driven/references/ui-language.md +75 -0
  123. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +144 -0
  124. package/template/.aioson/skills/process/design-hybrid-forge/references/crossover-protocol.md +221 -0
  125. package/template/.aioson/skills/process/design-hybrid-forge/references/naming-registry.md +88 -0
  126. package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +291 -0
  127. package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +117 -0
  128. package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +188 -0
  129. package/template/.aioson/skills/process/design-hybrid-forge/references/variation-library.md +125 -0
  130. package/template/AGENTS.md +23 -1
  131. package/template/CLAUDE.md +1 -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>