@vitronai/alethia 0.8.1 → 0.8.2

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.
@@ -5,62 +5,367 @@
5
5
  <title>Agent Oversight — Autonomous System Monitor</title>
6
6
  <style>
7
7
  * { box-sizing: border-box; margin: 0; padding: 0; }
8
- body { font-family: 'SF Mono', 'Fira Code', monospace; background: #080c14; color: #c8d6e5; min-height: 100vh; padding: 1rem; font-size: 0.85rem; }
9
- .header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #1a2744; padding-bottom: 0.8rem; margin-bottom: 1rem; }
10
- h1 { font-size: 1.1rem; color: #e2e8f0; }
11
- .system-status { display: flex; gap: 1.5rem; font-size: 0.75rem; color: #5a7a9e; }
12
- .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
13
- .panel { background: #0d1525; border: 1px solid #1a2744; border-radius: 8px; padding: 1rem; }
14
- .panel h2 { font-size: 0.85rem; color: #7eb8da; margin-bottom: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; }
15
- .agent-card { background: #111d30; border: 1px solid #1a2744; border-radius: 6px; padding: 0.8rem; margin-bottom: 0.6rem; }
16
- .agent-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.4rem; }
17
- .agent-name { color: #e2e8f0; font-weight: 600; }
18
- .agent-status { padding: 0.1rem 0.5rem; border-radius: 3px; font-size: 0.7rem; }
19
- .status-running { background: #001a0a; color: #00cc66; border: 1px solid #00cc66; }
20
- .status-flagged { background: #1a1400; color: #ffd700; border: 1px solid #ffd700; animation: pulse 2s ease-in-out infinite; }
21
- @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }
22
- .status-halted { background: #1a0808; color: #ff4444; border: 1px solid #ff4444; }
23
- .agent-detail { color: #5a7a9e; font-size: 0.75rem; line-height: 1.5; }
24
- .agent-actions { display: flex; gap: 0.4rem; margin-top: 0.5rem; }
25
- button { padding: 0.3rem 0.6rem; border-radius: 4px; border: 1px solid #1a2744; background: #111d30; color: #7eb8da; cursor: pointer; font: inherit; font-size: 0.75rem; }
26
- .btn-review { border-color: #00bfff; color: #00bfff; }
27
- .btn-halt { border-color: #ff4444; color: #ff4444; }
28
- .btn-approve { border-color: #00cc66; color: #00cc66; }
29
- .btn-rollback { border-color: #ff8c00; color: #ff8c00; }
30
- .policy-row { display: flex; justify-content: space-between; padding: 0.4rem 0; border-bottom: 1px solid #111d30; }
31
- .policy-pass { color: #00cc66; }
32
- .policy-flag { color: #ffd700; }
33
- .policy-block { color: #ff4444; }
34
- .audit-entry { padding: 0.3rem 0; border-bottom: 1px solid #111d30; display: flex; gap: 0.6rem; font-size: 0.75rem; }
35
- .audit-ts { color: #3a5570; min-width: 75px; }
36
- .audit-agent { color: #7eb8da; min-width: 90px; }
8
+ :root {
9
+ --bg: #050c0a;
10
+ --bg-1: #0a1614;
11
+ --bg-2: #0f201d;
12
+ --edge: rgba(255,255,255,.06);
13
+ --edge-strong: rgba(255,255,255,.12);
14
+ --ink: #e8f5ed;
15
+ --ink-2: #cfdcd6;
16
+ --ink-muted: #93a299;
17
+ --ink-faint: #5d6e69;
18
+ --teal: #14b8a6;
19
+ --teal-bright: #5eead4;
20
+ --teal-glow: #6ee7b7;
21
+ --indigo: #818cf8;
22
+ --indigo-bright: #a5b4fc;
23
+ --emerald: #10b981;
24
+ --emerald-bright: #34d399;
25
+ --red: #ef4444;
26
+ --red-bright: #f87171;
27
+ --amber: #f59e0b;
28
+ --amber-bright: #fbbf24;
29
+ }
30
+ html { color-scheme: dark; }
31
+ body {
32
+ font-family: "SF Pro Display", -apple-system, system-ui, sans-serif;
33
+ background:
34
+ radial-gradient(ellipse 70% 40% at 10% -10%, rgba(94,234,212,.10), transparent 70%),
35
+ radial-gradient(ellipse 60% 40% at 90% 110%, rgba(129,140,248,.06), transparent 70%),
36
+ var(--bg);
37
+ background-attachment: fixed;
38
+ color: var(--ink-2);
39
+ min-height: 100vh;
40
+ padding: 1.5rem 1.75rem 2rem;
41
+ font-size: 13.5px;
42
+ line-height: 1.5;
43
+ -webkit-font-smoothing: antialiased;
44
+ }
45
+ .mono, .audit-ts, .audit-agent, .agent-name, .agent-status {
46
+ font-family: ui-monospace, "SF Mono", "Fira Code", monospace;
47
+ }
48
+
49
+ /* Header */
50
+ .header {
51
+ display: flex; justify-content: space-between; align-items: flex-end;
52
+ padding-bottom: 14px;
53
+ margin-bottom: 18px;
54
+ border-bottom: 1px solid var(--edge);
55
+ }
56
+ .header-left { display: flex; flex-direction: column; gap: 6px; }
57
+ h1 {
58
+ font-size: 19px; font-weight: 700;
59
+ color: var(--ink);
60
+ letter-spacing: -.015em;
61
+ display: inline-flex; align-items: center; gap: 10px;
62
+ }
63
+ h1::before {
64
+ content: ""; width: 8px; height: 8px; border-radius: 999px;
65
+ background: var(--teal-bright);
66
+ box-shadow: 0 0 12px rgba(94,234,212,.7);
67
+ animation: livepulse 2s ease-in-out infinite;
68
+ }
69
+ @keyframes livepulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
70
+ .system-status {
71
+ display: flex; gap: 18px;
72
+ color: var(--ink-faint);
73
+ font-size: 11.5px;
74
+ font-family: ui-monospace, "SF Mono", monospace;
75
+ }
76
+ .system-status span strong { color: var(--ink-muted); }
77
+
78
+ /* Response banner */
79
+ .response-banner {
80
+ display: none;
81
+ padding: 10px 16px;
82
+ border-radius: 10px;
83
+ margin-bottom: 16px;
84
+ font-weight: 600;
85
+ font-size: 12.5px;
86
+ border: 1px solid transparent;
87
+ }
88
+ .response-banner.visible { display: block; animation: fadeIn .25s ease-out; }
89
+ @keyframes fadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
90
+
91
+ /* Metric grid */
92
+ .metric-grid {
93
+ display: grid;
94
+ grid-template-columns: repeat(4, 1fr);
95
+ gap: 12px;
96
+ margin-bottom: 18px;
97
+ }
98
+ .metric {
99
+ background: linear-gradient(180deg, var(--bg-1) 0%, rgba(10,22,20,.5) 100%);
100
+ border: 1px solid var(--edge);
101
+ border-radius: 12px;
102
+ padding: 14px 16px;
103
+ text-align: left;
104
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
105
+ transition: border-color .15s, transform .15s;
106
+ }
107
+ .metric:hover { border-color: var(--edge-strong); transform: translateY(-1px); }
108
+ .metric-value {
109
+ font-size: 22px; font-weight: 700;
110
+ color: var(--ink);
111
+ letter-spacing: -.015em;
112
+ font-variant-numeric: tabular-nums;
113
+ }
114
+ .metric-label {
115
+ font-size: 10.5px;
116
+ color: var(--ink-faint);
117
+ margin-top: 6px;
118
+ font-weight: 700;
119
+ letter-spacing: .1em;
120
+ text-transform: uppercase;
121
+ }
122
+ .metric-value.critical { color: var(--red-bright); }
123
+ .metric-value.warning { color: var(--amber-bright); }
124
+ .metric-value.good { color: var(--emerald-bright); }
125
+
126
+ /* Layout */
127
+ .grid {
128
+ display: grid;
129
+ grid-template-columns: 1fr 1fr;
130
+ gap: 14px;
131
+ }
37
132
  .full-width { grid-column: 1 / -1; }
38
- .metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.6rem; margin-bottom: 1rem; }
39
- .metric { background: #111d30; border: 1px solid #1a2744; border-radius: 6px; padding: 0.8rem; text-align: center; }
40
- .metric-value { font-size: 1.4rem; font-weight: 700; color: #7eb8da; }
41
- .metric-label { font-size: 0.7rem; color: #5a7a9e; margin-top: 0.2rem; }
42
- .metric-value.critical { color: #ff4444; }
43
- .metric-value.warning { color: #ffd700; }
44
- .metric-value.good { color: #00cc66; }
45
- .modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.8); z-index: 100; align-items: center; justify-content: center; }
46
- .modal.visible { display: flex; }
47
- .modal-content { background: #0d1525; border: 1px solid #ff4444; border-radius: 8px; padding: 1.5rem; max-width: 460px; }
48
- .modal-content h3 { color: #ff4444; margin-bottom: 0.6rem; }
49
- .modal-content p { color: #7eb8da; margin-bottom: 1rem; line-height: 1.6; }
50
- .modal-actions { display: flex; gap: 0.6rem; justify-content: flex-end; }
51
- .response-banner { display: none; padding: 0.6rem 1rem; border-radius: 6px; margin-bottom: 1rem; font-weight: 600; }
52
- .response-banner.visible { display: block; }
133
+
134
+ /* Panel */
135
+ .panel {
136
+ background: linear-gradient(180deg, var(--bg-1) 0%, rgba(10,22,20,.5) 100%);
137
+ border: 1px solid var(--edge);
138
+ border-radius: 14px;
139
+ padding: 18px 20px;
140
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
141
+ }
142
+ .panel h2 {
143
+ font-size: 11px; font-weight: 700;
144
+ color: var(--teal-bright);
145
+ margin-bottom: 14px;
146
+ text-transform: uppercase; letter-spacing: .12em;
147
+ display: inline-flex; align-items: center; gap: 6px;
148
+ }
149
+ .panel h2::before {
150
+ content: ""; width: 4px; height: 4px; border-radius: 999px;
151
+ background: var(--teal-bright);
152
+ box-shadow: 0 0 6px var(--teal-bright);
153
+ }
154
+
155
+ /* Agent card */
156
+ .agent-card {
157
+ position: relative;
158
+ background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.01));
159
+ border: 1px solid var(--edge);
160
+ border-radius: 10px;
161
+ padding: 12px 14px 12px 18px;
162
+ margin-bottom: 10px;
163
+ transition: border-color .15s, transform .15s;
164
+ }
165
+ .agent-card::before {
166
+ content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 2px;
167
+ border-radius: 0 2px 2px 0;
168
+ background: var(--teal-bright);
169
+ opacity: .7;
170
+ }
171
+ .agent-card:has(.status-flagged)::before {
172
+ background: var(--amber-bright);
173
+ box-shadow: 0 0 8px rgba(251,191,36,.55);
174
+ }
175
+ .agent-card:has(.status-halted)::before {
176
+ background: var(--red);
177
+ box-shadow: 0 0 10px rgba(239,68,68,.55);
178
+ }
179
+ .agent-card:hover { border-color: var(--edge-strong); }
180
+ .agent-card:last-child { margin-bottom: 0; }
181
+ .agent-header {
182
+ display: flex; justify-content: space-between; align-items: center;
183
+ margin-bottom: 8px;
184
+ gap: 12px;
185
+ }
186
+ .agent-name {
187
+ color: var(--ink); font-weight: 700; font-size: 13px;
188
+ letter-spacing: -.005em;
189
+ }
190
+ .agent-status {
191
+ padding: 3px 10px;
192
+ border-radius: 999px;
193
+ font-size: 10.5px;
194
+ font-weight: 700;
195
+ letter-spacing: .04em;
196
+ white-space: nowrap;
197
+ }
198
+ .status-running {
199
+ background: rgba(16,185,129,.10);
200
+ color: var(--emerald-bright);
201
+ border: 1px solid rgba(16,185,129,.4);
202
+ }
203
+ .status-flagged {
204
+ background: rgba(245,158,11,.12);
205
+ color: var(--amber-bright);
206
+ border: 1px solid rgba(245,158,11,.5);
207
+ animation: flagPulse 2s ease-in-out infinite;
208
+ }
209
+ @keyframes flagPulse {
210
+ 0%, 100% { box-shadow: 0 0 0 0 rgba(245,158,11,.0); }
211
+ 50% { box-shadow: 0 0 0 3px rgba(245,158,11,.25); }
212
+ }
213
+ .status-halted {
214
+ background: rgba(239,68,68,.12);
215
+ color: var(--red-bright);
216
+ border: 1px solid rgba(239,68,68,.5);
217
+ }
218
+ .agent-detail {
219
+ color: var(--ink-2); font-size: 12px;
220
+ line-height: 1.6;
221
+ }
222
+ .agent-actions {
223
+ display: flex; gap: 6px;
224
+ margin-top: 10px;
225
+ }
226
+
227
+ /* Action buttons */
228
+ button {
229
+ padding: 5px 11px;
230
+ border-radius: 6px;
231
+ border: 1px solid var(--edge);
232
+ background: rgba(255,255,255,.02);
233
+ color: var(--ink-2);
234
+ cursor: pointer;
235
+ font: inherit;
236
+ font-size: 11.5px;
237
+ font-weight: 600;
238
+ transition: background .12s, border-color .12s, color .12s, transform .08s, box-shadow .12s;
239
+ }
240
+ button:hover { background: rgba(255,255,255,.05); border-color: var(--edge-strong); }
241
+ button:active { transform: translateY(1px); }
242
+ .btn-review {
243
+ color: var(--indigo-bright);
244
+ border-color: rgba(129,140,248,.4);
245
+ background: rgba(129,140,248,.08);
246
+ }
247
+ .btn-review:hover { background: rgba(129,140,248,.16); border-color: var(--indigo); }
248
+ .btn-halt {
249
+ color: var(--red-bright);
250
+ border-color: rgba(239,68,68,.45);
251
+ background: rgba(239,68,68,.08);
252
+ }
253
+ .btn-halt:hover { background: rgba(239,68,68,.16); border-color: var(--red); box-shadow: 0 0 10px rgba(239,68,68,.25); }
254
+ .btn-approve {
255
+ color: var(--emerald-bright);
256
+ border-color: rgba(16,185,129,.45);
257
+ background: rgba(16,185,129,.08);
258
+ }
259
+ .btn-approve:hover { background: rgba(16,185,129,.16); border-color: var(--emerald); }
260
+ .btn-rollback {
261
+ color: var(--amber-bright);
262
+ border-color: rgba(245,158,11,.45);
263
+ background: rgba(245,158,11,.08);
264
+ }
265
+ .btn-rollback:hover { background: rgba(245,158,11,.16); border-color: var(--amber); }
266
+ .btn-cancel {
267
+ color: var(--ink-2);
268
+ border-color: var(--edge-strong);
269
+ background: rgba(255,255,255,.04);
270
+ }
271
+
272
+ /* Policy rows */
273
+ .policy-row {
274
+ display: flex; justify-content: space-between; align-items: center;
275
+ padding: 9px 0;
276
+ border-bottom: 1px solid rgba(255,255,255,.04);
277
+ font-size: 12.5px;
278
+ }
279
+ .policy-row:last-child { border-bottom: none; }
280
+ .policy-row > span:first-child { color: var(--ink-2); }
281
+ .policy-pass, .policy-flag, .policy-block {
282
+ font-family: ui-monospace, "SF Mono", monospace;
283
+ font-size: 11px;
284
+ font-weight: 700;
285
+ letter-spacing: .04em;
286
+ padding: 3px 10px;
287
+ border-radius: 999px;
288
+ }
289
+ .policy-pass {
290
+ color: var(--emerald-bright);
291
+ background: rgba(16,185,129,.10);
292
+ border: 1px solid rgba(16,185,129,.3);
293
+ }
294
+ .policy-flag {
295
+ color: var(--amber-bright);
296
+ background: rgba(245,158,11,.10);
297
+ border: 1px solid rgba(245,158,11,.3);
298
+ }
299
+ .policy-block {
300
+ color: var(--red-bright);
301
+ background: rgba(239,68,68,.10);
302
+ border: 1px solid rgba(239,68,68,.3);
303
+ }
304
+
305
+ /* Audit feed */
306
+ .audit-entry {
307
+ display: flex; gap: 12px; align-items: center;
308
+ padding: 8px 0;
309
+ border-bottom: 1px solid rgba(255,255,255,.03);
310
+ font-size: 12px;
311
+ }
312
+ .audit-entry:last-child { border-bottom: none; }
313
+ .audit-ts {
314
+ color: var(--ink-faint);
315
+ min-width: 76px;
316
+ font-size: 11.5px;
317
+ }
318
+ .audit-agent {
319
+ color: var(--teal-bright);
320
+ min-width: 110px;
321
+ font-weight: 700;
322
+ font-size: 11.5px;
323
+ }
324
+
325
+ /* Modal */
326
+ .modal {
327
+ display: none;
328
+ position: fixed; inset: 0;
329
+ background: rgba(5,12,10,.85);
330
+ backdrop-filter: blur(8px);
331
+ z-index: 100;
332
+ align-items: center; justify-content: center;
333
+ }
334
+ .modal.visible { display: flex; animation: fadeIn .2s ease-out; }
335
+ .modal-content {
336
+ background: linear-gradient(180deg, var(--bg-2), var(--bg-1));
337
+ border: 1px solid rgba(239,68,68,.45);
338
+ border-radius: 14px;
339
+ padding: 22px 24px;
340
+ max-width: 480px;
341
+ box-shadow: 0 20px 60px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.04);
342
+ }
343
+ .modal-content h3 {
344
+ color: var(--red-bright);
345
+ margin-bottom: 8px;
346
+ font-size: 16px;
347
+ font-weight: 700;
348
+ }
349
+ .modal-content p {
350
+ color: var(--ink-2);
351
+ margin-bottom: 18px;
352
+ line-height: 1.6;
353
+ font-size: 13px;
354
+ }
355
+ .modal-actions { display: flex; gap: 8px; justify-content: flex-end; }
356
+
357
+ ::selection { background: rgba(94,234,212,.3); }
53
358
  </style>
54
359
  </head>
55
360
  <body>
56
361
  <div class="header">
57
- <div>
362
+ <div class="header-left">
58
363
  <h1>Agent Oversight Dashboard</h1>
59
364
  <div class="system-status">
60
- <span>Agents active: 4</span>
61
- <span>Policy violations today: 2</span>
62
- <span>Human reviews pending: 1</span>
63
- <span>Uptime: 99.97%</span>
365
+ <span>Agents active: <strong>4</strong></span>
366
+ <span>Policy violations today: <strong>2</strong></span>
367
+ <span>Human reviews pending: <strong>1</strong></span>
368
+ <span>Uptime: <strong>99.97%</strong></span>
64
369
  </div>
65
370
  </div>
66
371
  </div>