loki-mode 7.125.0 → 7.126.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.
- package/README.md +1 -0
- package/SKILL.md +2 -2
- package/VERSION +1 -1
- package/autonomy/lib/cockpit-render.sh +191 -0
- package/autonomy/loki +370 -0
- package/dashboard/__init__.py +1 -1
- package/dashboard/static/index.html +143 -94
- package/docs/COCKPIT-SPEC.md +70 -0
- package/docs/COCKPIT-UX-MANDATE.md +53 -0
- package/docs/INSTALLATION.md +2 -2
- package/loki-ts/dist/cockpit.js +16 -0
- package/loki-ts/dist/loki.js +2 -2
- package/mcp/__init__.py +1 -1
- package/package.json +1 -1
- package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
|
@@ -8,18 +8,20 @@
|
|
|
8
8
|
<title>Loki Mode Dashboard</title>
|
|
9
9
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
10
10
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
11
|
-
<link href="https://fonts.googleapis.com/css2?family=
|
|
12
|
-
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0
|
|
11
|
+
<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
12
|
+
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='32' height='32'><rect width='512' height='512' rx='118' fill='%23553DE9'/><path d='M152 405 L242 120' fill='none' stroke='%23FFFEFB' stroke-width='28' stroke-linecap='round'/><path d='M360 405 L270 120' fill='none' stroke='%23FFFEFB' stroke-width='28' stroke-linecap='round'/><path d='M242 120 Q256 86 270 120' fill='none' stroke='%23FFFEFB' stroke-width='28' stroke-linecap='round'/><circle cx='256' cy='295' r='20' fill='%231FC5A8'/></svg>">
|
|
13
13
|
<style>
|
|
14
|
-
/*
|
|
14
|
+
/* Autonomi Design Language. Light-grey ground is the default (founder-
|
|
15
|
+
approved identity); dark is an optional toggle persisted in
|
|
16
|
+
localStorage (see data-loki-theme wiring near the end of this file). */
|
|
15
17
|
:root {
|
|
16
|
-
/* Light theme (default -
|
|
17
|
-
--loki-bg-primary: #
|
|
18
|
-
--loki-bg-secondary: #
|
|
19
|
-
--loki-bg-tertiary: #
|
|
20
|
-
--loki-bg-card: rgba(255, 255, 255, 0.
|
|
21
|
-
--loki-bg-hover: #
|
|
22
|
-
--loki-text-primary: #
|
|
18
|
+
/* Light theme (default - Autonomi light-grey ground) */
|
|
19
|
+
--loki-bg-primary: #F1F2F6;
|
|
20
|
+
--loki-bg-secondary: #E6E8EE;
|
|
21
|
+
--loki-bg-tertiary: #DBDEE6;
|
|
22
|
+
--loki-bg-card: rgba(255, 255, 255, 0.86);
|
|
23
|
+
--loki-bg-hover: #E6E8EE;
|
|
24
|
+
--loki-text-primary: #201515;
|
|
23
25
|
--loki-text-secondary: #4A4640;
|
|
24
26
|
--loki-text-muted: #8A857C;
|
|
25
27
|
--loki-accent: #553DE9;
|
|
@@ -27,51 +29,23 @@
|
|
|
27
29
|
--loki-accent-glow: rgba(85, 61, 233, 0.15);
|
|
28
30
|
--loki-border: rgba(0, 0, 0, 0.08);
|
|
29
31
|
--loki-border-light: rgba(0, 0, 0, 0.05);
|
|
30
|
-
--loki-success: #
|
|
31
|
-
--loki-warning: #
|
|
32
|
-
--loki-error: #
|
|
32
|
+
--loki-success: #1f8a52;
|
|
33
|
+
--loki-warning: #9a6a12;
|
|
34
|
+
--loki-error: #b23a3a;
|
|
33
35
|
--loki-info: #2F71E3;
|
|
34
|
-
--loki-glass-bg: rgba(255, 255, 255, 0.
|
|
35
|
-
--loki-glass-border: rgba(255, 255, 255, 0.
|
|
36
|
+
--loki-glass-bg: rgba(255, 255, 255, 0.7);
|
|
37
|
+
--loki-glass-border: rgba(255, 255, 255, 0.4);
|
|
36
38
|
--loki-glass-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
37
39
|
--loki-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
/* v7.90.1: dark mode removed (light-only). Disabled via an always-false media
|
|
41
|
-
query so an OS dark preference no longer flips the dashboard to the dark
|
|
42
|
-
palette the founder found worse. Kept (not deleted) to minimize churn. */
|
|
43
|
-
@media (prefers-color-scheme: dark) and (max-width: 0px) {
|
|
44
|
-
:root {
|
|
45
|
-
--loki-bg-primary: #0F0B1A;
|
|
46
|
-
--loki-bg-secondary: #150F24;
|
|
47
|
-
--loki-bg-tertiary: #1E1533;
|
|
48
|
-
--loki-bg-card: rgba(30, 21, 51, 0.72);
|
|
49
|
-
--loki-bg-hover: #251C3D;
|
|
50
|
-
--loki-text-primary: #F0ECF8;
|
|
51
|
-
--loki-text-secondary: #B8B0C8;
|
|
52
|
-
--loki-text-muted: #7B6FA0;
|
|
53
|
-
--loki-accent: #7B6BF0;
|
|
54
|
-
--loki-accent-hover: #9488F5;
|
|
55
|
-
--loki-accent-glow: rgba(123, 107, 240, 0.2);
|
|
56
|
-
--loki-border: rgba(255, 255, 255, 0.08);
|
|
57
|
-
--loki-border-light: rgba(255, 255, 255, 0.04);
|
|
58
|
-
--loki-success: #2ED8B6;
|
|
59
|
-
--loki-warning: #E8B84A;
|
|
60
|
-
--loki-error: #E07070;
|
|
61
|
-
--loki-info: #5A9CF5;
|
|
62
|
-
--loki-glass-bg: rgba(20, 14, 38, 0.65);
|
|
63
|
-
--loki-glass-border: rgba(255, 255, 255, 0.08);
|
|
64
|
-
--loki-glass-shadow: 0 4px 24px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.12);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
42
|
[data-loki-theme="light"] {
|
|
69
|
-
--loki-bg-primary: #
|
|
70
|
-
--loki-bg-secondary: #
|
|
71
|
-
--loki-bg-tertiary: #
|
|
72
|
-
--loki-bg-card: rgba(255, 255, 255, 0.
|
|
73
|
-
--loki-bg-hover: #
|
|
74
|
-
--loki-text-primary: #
|
|
43
|
+
--loki-bg-primary: #F1F2F6;
|
|
44
|
+
--loki-bg-secondary: #E6E8EE;
|
|
45
|
+
--loki-bg-tertiary: #DBDEE6;
|
|
46
|
+
--loki-bg-card: rgba(255, 255, 255, 0.86);
|
|
47
|
+
--loki-bg-hover: #E6E8EE;
|
|
48
|
+
--loki-text-primary: #201515;
|
|
75
49
|
--loki-text-secondary: #4A4640;
|
|
76
50
|
--loki-text-muted: #8A857C;
|
|
77
51
|
--loki-accent: #553DE9;
|
|
@@ -79,34 +53,34 @@
|
|
|
79
53
|
--loki-accent-glow: rgba(85, 61, 233, 0.15);
|
|
80
54
|
--loki-border: rgba(0, 0, 0, 0.08);
|
|
81
55
|
--loki-border-light: rgba(0, 0, 0, 0.05);
|
|
82
|
-
--loki-success: #
|
|
83
|
-
--loki-warning: #
|
|
84
|
-
--loki-error: #
|
|
56
|
+
--loki-success: #1f8a52;
|
|
57
|
+
--loki-warning: #9a6a12;
|
|
58
|
+
--loki-error: #b23a3a;
|
|
85
59
|
--loki-info: #2F71E3;
|
|
86
|
-
--loki-glass-bg: rgba(255, 255, 255, 0.
|
|
87
|
-
--loki-glass-border: rgba(255, 255, 255, 0.
|
|
60
|
+
--loki-glass-bg: rgba(255, 255, 255, 0.7);
|
|
61
|
+
--loki-glass-border: rgba(255, 255, 255, 0.4);
|
|
88
62
|
--loki-glass-shadow: 0 4px 24px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
89
63
|
}
|
|
90
64
|
|
|
91
65
|
[data-loki-theme="dark"] {
|
|
92
|
-
--loki-bg-primary: #
|
|
93
|
-
--loki-bg-secondary: #
|
|
94
|
-
--loki-bg-tertiary: #
|
|
95
|
-
--loki-bg-card: rgba(
|
|
96
|
-
--loki-bg-hover: #
|
|
66
|
+
--loki-bg-primary: #17161C;
|
|
67
|
+
--loki-bg-secondary: #1E1D25;
|
|
68
|
+
--loki-bg-tertiary: #27262F;
|
|
69
|
+
--loki-bg-card: rgba(35, 34, 43, 0.82);
|
|
70
|
+
--loki-bg-hover: #27262F;
|
|
97
71
|
--loki-text-primary: #F0ECF8;
|
|
98
72
|
--loki-text-secondary: #B8B0C8;
|
|
99
|
-
--loki-text-muted: #
|
|
100
|
-
--loki-accent: #
|
|
101
|
-
--loki-accent-hover: #
|
|
102
|
-
--loki-accent-glow: rgba(
|
|
73
|
+
--loki-text-muted: #8B85A0;
|
|
74
|
+
--loki-accent: #8b7bf5;
|
|
75
|
+
--loki-accent-hover: #9c8ff7;
|
|
76
|
+
--loki-accent-glow: rgba(139, 123, 245, 0.2);
|
|
103
77
|
--loki-border: rgba(255, 255, 255, 0.08);
|
|
104
78
|
--loki-border-light: rgba(255, 255, 255, 0.04);
|
|
105
79
|
--loki-success: #2ED8B6;
|
|
106
80
|
--loki-warning: #E8B84A;
|
|
107
81
|
--loki-error: #E07070;
|
|
108
82
|
--loki-info: #5A9CF5;
|
|
109
|
-
--loki-glass-bg: rgba(
|
|
83
|
+
--loki-glass-bg: rgba(23, 22, 28, 0.7);
|
|
110
84
|
--loki-glass-border: rgba(255, 255, 255, 0.08);
|
|
111
85
|
--loki-glass-shadow: 0 4px 24px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.12);
|
|
112
86
|
}
|
|
@@ -225,6 +199,10 @@
|
|
|
225
199
|
align-items: center;
|
|
226
200
|
gap: 10px;
|
|
227
201
|
}
|
|
202
|
+
.autonomi-logo {
|
|
203
|
+
flex: 0 0 auto;
|
|
204
|
+
border-radius: 8px;
|
|
205
|
+
}
|
|
228
206
|
.brand-text {
|
|
229
207
|
display: flex;
|
|
230
208
|
flex-direction: column;
|
|
@@ -233,7 +211,7 @@
|
|
|
233
211
|
}
|
|
234
212
|
|
|
235
213
|
.logo-brand {
|
|
236
|
-
font-family: '
|
|
214
|
+
font-family: 'Fraunces', Georgia, serif;
|
|
237
215
|
font-size: 22px;
|
|
238
216
|
font-weight: 400;
|
|
239
217
|
color: var(--loki-text-primary);
|
|
@@ -516,6 +494,34 @@
|
|
|
516
494
|
border-color: var(--loki-accent-hover);
|
|
517
495
|
}
|
|
518
496
|
|
|
497
|
+
.theme-toggle-btn {
|
|
498
|
+
display: flex;
|
|
499
|
+
align-items: center;
|
|
500
|
+
gap: 6px;
|
|
501
|
+
padding: 6px 12px;
|
|
502
|
+
background: var(--loki-bg-primary);
|
|
503
|
+
border: 1px solid var(--loki-border);
|
|
504
|
+
border-radius: 7px;
|
|
505
|
+
font-size: 11px;
|
|
506
|
+
font-weight: 500;
|
|
507
|
+
font-family: inherit;
|
|
508
|
+
color: var(--loki-text-primary);
|
|
509
|
+
cursor: pointer;
|
|
510
|
+
transition: all var(--loki-transition);
|
|
511
|
+
}
|
|
512
|
+
.theme-toggle-btn:hover {
|
|
513
|
+
background: var(--loki-bg-hover);
|
|
514
|
+
border-color: var(--loki-border-light);
|
|
515
|
+
}
|
|
516
|
+
.theme-toggle-icon {
|
|
517
|
+
width: 13px;
|
|
518
|
+
height: 13px;
|
|
519
|
+
stroke: currentColor;
|
|
520
|
+
stroke-width: 2;
|
|
521
|
+
fill: none;
|
|
522
|
+
flex-shrink: 0;
|
|
523
|
+
}
|
|
524
|
+
|
|
519
525
|
.api-url-input {
|
|
520
526
|
padding: 6px 8px;
|
|
521
527
|
background: var(--loki-bg-primary);
|
|
@@ -842,7 +848,7 @@
|
|
|
842
848
|
}
|
|
843
849
|
|
|
844
850
|
.section-page-title {
|
|
845
|
-
font-family: '
|
|
851
|
+
font-family: 'Fraunces', Georgia, serif;
|
|
846
852
|
font-size: 1.8rem;
|
|
847
853
|
font-weight: 400;
|
|
848
854
|
color: var(--loki-text-primary);
|
|
@@ -885,7 +891,7 @@
|
|
|
885
891
|
}
|
|
886
892
|
.first-run-hero__icon svg { width: 22px; height: 22px; }
|
|
887
893
|
.first-run-hero__title {
|
|
888
|
-
font-family: '
|
|
894
|
+
font-family: 'Fraunces', Georgia, serif;
|
|
889
895
|
font-size: 1.5rem;
|
|
890
896
|
font-weight: 400;
|
|
891
897
|
color: var(--loki-text-primary);
|
|
@@ -1110,7 +1116,13 @@
|
|
|
1110
1116
|
</svg>
|
|
1111
1117
|
</button>
|
|
1112
1118
|
<div class="brand-row">
|
|
1113
|
-
<
|
|
1119
|
+
<svg class="autonomi-logo" width="34" height="34" viewBox="0 0 512 512" role="img" aria-label="Autonomi">
|
|
1120
|
+
<rect width="512" height="512" rx="118" fill="#553DE9"/>
|
|
1121
|
+
<path d="M152 405 L242 120" fill="none" stroke="#FFFEFB" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1122
|
+
<path d="M360 405 L270 120" fill="none" stroke="#FFFEFB" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1123
|
+
<path d="M242 120 Q256 86 270 120" fill="none" stroke="#FFFEFB" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1124
|
+
<circle cx="256" cy="295" r="20" fill="#1FC5A8"/>
|
|
1125
|
+
</svg>
|
|
1114
1126
|
<div class="brand-text">
|
|
1115
1127
|
<span class="logo-brand">Loki Mode</span>
|
|
1116
1128
|
<span class="logo-subtitle">powered by Autonomi</span>
|
|
@@ -1308,11 +1320,11 @@
|
|
|
1308
1320
|
</div>
|
|
1309
1321
|
<div style="display: grid; gap: 24px;">
|
|
1310
1322
|
<div>
|
|
1311
|
-
<h3 style="font-family: '
|
|
1323
|
+
<h3 style="font-family: 'Fraunces', Georgia, serif; font-size: 1.15rem; font-weight: 400; color: var(--loki-text-primary); margin-bottom: 12px;">Logs</h3>
|
|
1312
1324
|
<loki-log-stream id="log-stream" auto-scroll max-lines="500"></loki-log-stream>
|
|
1313
1325
|
</div>
|
|
1314
1326
|
<div>
|
|
1315
|
-
<h3 style="font-family: '
|
|
1327
|
+
<h3 style="font-family: 'Fraunces', Georgia, serif; font-size: 1.15rem; font-weight: 400; color: var(--loki-text-primary); margin-bottom: 12px;">Memory</h3>
|
|
1316
1328
|
<loki-memory-browser id="memory-browser" tab="summary"></loki-memory-browser>
|
|
1317
1329
|
<!-- v7.7.21 token economics tile: hit rate + tokens + top patterns -->
|
|
1318
1330
|
<div id="memory-economics-tile" style="margin-top: 12px; background: var(--loki-bg-card, rgba(255,255,255,0.72)); border: 1px solid var(--loki-border, rgba(0,0,0,0.08)); border-radius: 5px; padding: 12px;">
|
|
@@ -1365,7 +1377,7 @@
|
|
|
1365
1377
|
</script>
|
|
1366
1378
|
</div>
|
|
1367
1379
|
<div>
|
|
1368
|
-
<h3 style="font-family: '
|
|
1380
|
+
<h3 style="font-family: 'Fraunces', Georgia, serif; font-size: 1.15rem; font-weight: 400; color: var(--loki-text-primary); margin-bottom: 12px;">Memory Files</h3>
|
|
1369
1381
|
<div id="memory-files-panel" style="background: var(--loki-bg-card, rgba(255,255,255,0.72)); border: 1px solid var(--loki-border, rgba(0,0,0,0.08)); border-radius: 5px; padding: 12px;">
|
|
1370
1382
|
<div style="display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px;" id="memory-files-tabs"></div>
|
|
1371
1383
|
<div style="display: grid; grid-template-columns: minmax(220px, 320px) 1fr; gap: 12px; min-height: 280px;">
|
|
@@ -1445,12 +1457,12 @@
|
|
|
1445
1457
|
</script>
|
|
1446
1458
|
</div>
|
|
1447
1459
|
<div>
|
|
1448
|
-
<h3 style="font-family: '
|
|
1460
|
+
<h3 style="font-family: 'Fraunces', Georgia, serif; font-size: 1.15rem; font-weight: 400; color: var(--loki-text-primary); margin-bottom: 12px;">Learning Metrics</h3>
|
|
1449
1461
|
<loki-learning-dashboard id="learning-dashboard" time-range="7d"></loki-learning-dashboard>
|
|
1450
1462
|
</div>
|
|
1451
1463
|
<!-- v7.7.1 F-1 follow-up: How to Run (USAGE.md) -->
|
|
1452
1464
|
<div>
|
|
1453
|
-
<h3 style="font-family: '
|
|
1465
|
+
<h3 style="font-family: 'Fraunces', Georgia, serif; font-size: 1.15rem; font-weight: 400; color: var(--loki-text-primary); margin-bottom: 12px;">How to Run (USAGE.md)</h3>
|
|
1454
1466
|
<div id="usage-doc-panel" style="background: var(--loki-bg-card, rgba(255,255,255,0.72)); border: 1px solid var(--loki-border, rgba(0,0,0,0.08)); border-radius: 5px; padding: 12px;">
|
|
1455
1467
|
<div id="usage-doc-meta" style="font-size: 11px; color: var(--loki-text-muted, #888); margin-bottom: 8px;">Loading...</div>
|
|
1456
1468
|
<div id="usage-doc-content" class="usage-md"></div>
|
|
@@ -1775,6 +1787,13 @@
|
|
|
1775
1787
|
<input type="text" class="api-url-input" id="api-url" placeholder="API URL">
|
|
1776
1788
|
<button class="api-btn" id="connect-btn" type="button">Go</button>
|
|
1777
1789
|
</div>
|
|
1790
|
+
<label class="settings-field-label" style="margin-top: 10px;">Appearance</label>
|
|
1791
|
+
<div class="settings-field-row">
|
|
1792
|
+
<button class="theme-toggle-btn" id="theme-toggle-btn" type="button" aria-pressed="false">
|
|
1793
|
+
<svg class="theme-toggle-icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
|
|
1794
|
+
<span id="theme-toggle-label">Dark mode</span>
|
|
1795
|
+
</button>
|
|
1796
|
+
</div>
|
|
1778
1797
|
</div>
|
|
1779
1798
|
</div>
|
|
1780
1799
|
</div>
|
|
@@ -1800,7 +1819,7 @@
|
|
|
1800
1819
|
|
|
1801
1820
|
<!-- Inlined JavaScript Bundle -->
|
|
1802
1821
|
<script>
|
|
1803
|
-
var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var wt=Object.prototype.hasOwnProperty;var $t=(d,e,t)=>e in d?Re(d,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):d[e]=t;var Et=(d,e)=>{for(var t in e)Re(d,t,{get:e[t],enumerable:!0})},Ct=(d,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of yt(e))!wt.call(d,a)&&a!==t&&Re(d,a,{get:()=>e[a],enumerable:!(i=_t(e,a))||i.enumerable});return d};var St=d=>Ct(Re({},"__esModule",{value:!0}),d);var S=(d,e,t)=>$t(d,typeof e!="symbol"?e+"":e,t);var ri={};Et(ri,{ANIMATION:()=>B,ARIA_PATTERNS:()=>Ie,ApiEvents:()=>f,BASE_STYLES:()=>V,BREAKPOINTS:()=>Be,COMMON_STYLES:()=>Ze,KEYBOARD_SHORTCUTS:()=>Pe,KeyboardHandler:()=>O,LokiActivityStream:()=>ye,LokiAgentLeaderboard:()=>Ae,LokiAnalytics:()=>ge,LokiApiClient:()=>N,LokiApiKeys:()=>xe,LokiAppPreview:()=>re,LokiAppStatus:()=>se,LokiAuditViewer:()=>ke,LokiChecklistViewer:()=>ae,LokiCheckpointViewer:()=>ne,LokiContextTracker:()=>le,LokiCostDashboard:()=>oe,LokiCostWaterfall:()=>Se,LokiCouncilDashboard:()=>ie,LokiCouncilTranscripts:()=>ze,LokiElement:()=>v,LokiEscalations:()=>Le,LokiFleet:()=>be,LokiLearningDashboard:()=>te,LokiLogStream:()=>Z,LokiManagedMemoryPanel:()=>Te,LokiMascotPresence:()=>Me,LokiMemoryBrowser:()=>ee,LokiMemoryGraph:()=>Ce,LokiMigrationDashboard:()=>ue,LokiNotificationCenter:()=>de,LokiOverview:()=>W,LokiPipelineView:()=>$e,LokiPromptOptimizer:()=>pe,LokiProviderHealth:()=>we,LokiQualityGates:()=>me,LokiQualityScore:()=>he,LokiRarvTimeline:()=>ve,LokiRunManager:()=>fe,LokiSessionControl:()=>X,LokiSessionDiff:()=>ce,LokiSpecPanel:()=>He,LokiState:()=>Y,LokiTaskBoard:()=>Q,LokiTenantSwitcher:()=>_e,LokiTheme:()=>j,LokiWikiBrowser:()=>De,MARKDOWN_STYLES:()=>L,RADIUS:()=>R,SPACING:()=>z,STATE_CHANGE_EVENT:()=>Ue,THEMES:()=>A,THEME_VARIABLES:()=>Fe,TYPOGRAPHY:()=>$,UnifiedThemeManager:()=>w,VERSION:()=>ai,Z_INDEX:()=>P,createApiClient:()=>it,createStore:()=>at,escapeHtml:()=>Oe,generateThemeCSS:()=>E,generateTokensCSS:()=>K,getApiClient:()=>h,getState:()=>U,init:()=>si,renderMarkdown:()=>C});var A={light:{"--loki-bg-primary":"#FFFEFB","--loki-bg-secondary":"#F8F4F0","--loki-bg-tertiary":"#ECEAE3","--loki-bg-card":"#ffffff","--loki-bg-hover":"#F3EFE9","--loki-bg-active":"#E6E2DA","--loki-bg-overlay":"rgba(32, 21, 21, 0.5)","--loki-accent":"#553DE9","--loki-accent-hover":"#4432c4","--loki-accent-active":"#3828a0","--loki-accent-light":"#7B6BF0","--loki-accent-muted":"rgba(85, 61, 233, 0.10)","--loki-text-primary":"#201515","--loki-text-secondary":"#36342E","--loki-text-muted":"#939084","--loki-text-disabled":"#C5C0B1","--loki-text-inverse":"#ffffff","--loki-border":"#ECEAE3","--loki-border-light":"#C5C0B1","--loki-border-focus":"#553DE9","--loki-success":"#1FC5A8","--loki-success-muted":"rgba(31, 197, 168, 0.12)","--loki-warning":"#D4A03C","--loki-warning-muted":"rgba(212, 160, 60, 0.12)","--loki-error":"#C45B5B","--loki-error-muted":"rgba(196, 91, 91, 0.12)","--loki-info":"#2F71E3","--loki-info-muted":"rgba(47, 113, 227, 0.12)","--loki-green":"#1FC5A8","--loki-green-muted":"rgba(31, 197, 168, 0.12)","--loki-yellow":"#D4A03C","--loki-yellow-muted":"rgba(212, 160, 60, 0.12)","--loki-red":"#C45B5B","--loki-red-muted":"rgba(196, 91, 91, 0.12)","--loki-blue":"#2F71E3","--loki-blue-muted":"rgba(47, 113, 227, 0.12)","--loki-purple":"#553DE9","--loki-purple-muted":"rgba(85, 61, 233, 0.10)","--loki-opus":"#d97706","--loki-sonnet":"#553DE9","--loki-haiku":"#1FC5A8","--loki-shadow-sm":"0 1px 2px rgba(32, 21, 21, 0.04)","--loki-shadow-md":"0 4px 6px rgba(32, 21, 21, 0.06)","--loki-shadow-lg":"0 10px 15px rgba(32, 21, 21, 0.08)","--loki-shadow-focus":"0 0 0 3px rgba(85, 61, 233, 0.25)"},dark:{"--loki-bg-primary":"#1A0F2E","--loki-bg-secondary":"#140B24","--loki-bg-tertiary":"#251842","--loki-bg-card":"#1F1338","--loki-bg-hover":"#2A1F4A","--loki-bg-active":"#352A55","--loki-bg-overlay":"rgba(20, 11, 36, 0.85)","--loki-accent":"#7B6BF0","--loki-accent-hover":"#9488F5","--loki-accent-active":"#6258D0","--loki-accent-light":"#9488F5","--loki-accent-muted":"rgba(123, 107, 240, 0.18)","--loki-text-primary":"#F0ECF8","--loki-text-secondary":"#C0B8D0","--loki-text-muted":"#8B7FA8","--loki-text-disabled":"#5A4E78","--loki-text-inverse":"#1A0F2E","--loki-border":"#2A1F3E","--loki-border-light":"#3D3060","--loki-border-focus":"#7B6BF0","--loki-success":"#2ED8B6","--loki-success-muted":"rgba(46, 216, 182, 0.18)","--loki-warning":"#E8B84A","--loki-warning-muted":"rgba(232, 184, 74, 0.18)","--loki-error":"#E07070","--loki-error-muted":"rgba(224, 112, 112, 0.18)","--loki-info":"#5A9CF5","--loki-info-muted":"rgba(90, 156, 245, 0.18)","--loki-green":"#2ED8B6","--loki-green-muted":"rgba(46, 216, 182, 0.18)","--loki-yellow":"#E8B84A","--loki-yellow-muted":"rgba(232, 184, 74, 0.18)","--loki-red":"#E07070","--loki-red-muted":"rgba(224, 112, 112, 0.18)","--loki-blue":"#5A9CF5","--loki-blue-muted":"rgba(90, 156, 245, 0.18)","--loki-purple":"#9488F5","--loki-purple-muted":"rgba(148, 136, 245, 0.18)","--loki-opus":"#f59e0b","--loki-sonnet":"#7B6BF0","--loki-haiku":"#2ED8B6","--loki-shadow-sm":"0 1px 2px rgba(0, 0, 0, 0.4)","--loki-shadow-md":"0 4px 12px rgba(0, 0, 0, 0.5)","--loki-shadow-lg":"0 10px 25px rgba(0, 0, 0, 0.6)","--loki-shadow-focus":"0 0 0 3px rgba(123, 107, 240, 0.30)"},"high-contrast":{"--loki-bg-primary":"#000000","--loki-bg-secondary":"#0a0a0a","--loki-bg-tertiary":"#141414","--loki-bg-card":"#0a0a0a","--loki-bg-hover":"#1a1a1a","--loki-bg-active":"#242424","--loki-bg-overlay":"rgba(0, 0, 0, 0.9)","--loki-accent":"#c084fc","--loki-accent-hover":"#d8b4fe","--loki-accent-active":"#e9d5ff","--loki-accent-light":"#d8b4fe","--loki-accent-muted":"rgba(192, 132, 252, 0.25)","--loki-text-primary":"#ffffff","--loki-text-secondary":"#e0e0e0","--loki-text-muted":"#b0b0b0","--loki-text-disabled":"#666666","--loki-text-inverse":"#000000","--loki-border":"#ffffff","--loki-border-light":"#cccccc","--loki-border-focus":"#c084fc","--loki-success":"#4ade80","--loki-success-muted":"rgba(74, 222, 128, 0.25)","--loki-warning":"#fde047","--loki-warning-muted":"rgba(253, 224, 71, 0.25)","--loki-error":"#f87171","--loki-error-muted":"rgba(248, 113, 113, 0.25)","--loki-info":"#60a5fa","--loki-info-muted":"rgba(96, 165, 250, 0.25)","--loki-green":"#4ade80","--loki-green-muted":"rgba(74, 222, 128, 0.25)","--loki-yellow":"#fde047","--loki-yellow-muted":"rgba(253, 224, 71, 0.25)","--loki-red":"#f87171","--loki-red-muted":"rgba(248, 113, 113, 0.25)","--loki-blue":"#60a5fa","--loki-blue-muted":"rgba(96, 165, 250, 0.25)","--loki-purple":"#c084fc","--loki-purple-muted":"rgba(192, 132, 252, 0.25)","--loki-opus":"#fbbf24","--loki-sonnet":"#818cf8","--loki-haiku":"#34d399","--loki-shadow-sm":"none","--loki-shadow-md":"none","--loki-shadow-lg":"none","--loki-shadow-focus":"0 0 0 3px #c084fc"},"vscode-light":{"--loki-bg-primary":"var(--vscode-editor-background, #ffffff)","--loki-bg-secondary":"var(--vscode-sideBar-background, #f3f3f3)","--loki-bg-tertiary":"var(--vscode-input-background, #ffffff)","--loki-bg-card":"var(--vscode-editor-background, #ffffff)","--loki-bg-hover":"var(--vscode-list-hoverBackground, #e8e8e8)","--loki-bg-active":"var(--vscode-list-activeSelectionBackground, #0060c0)","--loki-bg-overlay":"rgba(0, 0, 0, 0.4)","--loki-accent":"var(--vscode-focusBorder, #0066cc)","--loki-accent-hover":"var(--vscode-button-hoverBackground, #0055aa)","--loki-accent-active":"var(--vscode-button-background, #007acc)","--loki-accent-light":"var(--vscode-focusBorder, #0066cc)","--loki-accent-muted":"var(--vscode-editor-selectionBackground, rgba(0, 102, 204, 0.2))","--loki-text-primary":"var(--vscode-foreground, #333333)","--loki-text-secondary":"var(--vscode-descriptionForeground, #717171)","--loki-text-muted":"var(--vscode-disabledForeground, #a0a0a0)","--loki-text-disabled":"var(--vscode-disabledForeground, #cccccc)","--loki-text-inverse":"var(--vscode-button-foreground, #ffffff)","--loki-border":"var(--vscode-widget-border, #c8c8c8)","--loki-border-light":"var(--vscode-widget-border, #e0e0e0)","--loki-border-focus":"var(--vscode-focusBorder, #0066cc)","--loki-success":"var(--vscode-testing-iconPassed, #388a34)","--loki-success-muted":"rgba(56, 138, 52, 0.15)","--loki-warning":"var(--vscode-editorWarning-foreground, #bf8803)","--loki-warning-muted":"rgba(191, 136, 3, 0.15)","--loki-error":"var(--vscode-errorForeground, #e51400)","--loki-error-muted":"rgba(229, 20, 0, 0.15)","--loki-info":"var(--vscode-editorInfo-foreground, #1a85ff)","--loki-info-muted":"rgba(26, 133, 255, 0.15)","--loki-green":"var(--vscode-testing-iconPassed, #388a34)","--loki-green-muted":"rgba(56, 138, 52, 0.15)","--loki-yellow":"var(--vscode-editorWarning-foreground, #bf8803)","--loki-yellow-muted":"rgba(191, 136, 3, 0.15)","--loki-red":"var(--vscode-errorForeground, #e51400)","--loki-red-muted":"rgba(229, 20, 0, 0.15)","--loki-blue":"var(--vscode-editorInfo-foreground, #1a85ff)","--loki-blue-muted":"rgba(26, 133, 255, 0.15)","--loki-purple":"#9333ea","--loki-purple-muted":"rgba(147, 51, 234, 0.15)","--loki-opus":"#d97706","--loki-sonnet":"#4f46e5","--loki-haiku":"#059669","--loki-shadow-sm":"0 1px 2px rgba(0, 0, 0, 0.05)","--loki-shadow-md":"0 2px 4px rgba(0, 0, 0, 0.1)","--loki-shadow-lg":"0 4px 8px rgba(0, 0, 0, 0.15)","--loki-shadow-focus":"0 0 0 2px var(--vscode-focusBorder, #0066cc)"},"vscode-dark":{"--loki-bg-primary":"var(--vscode-editor-background, #1e1e1e)","--loki-bg-secondary":"var(--vscode-sideBar-background, #252526)","--loki-bg-tertiary":"var(--vscode-input-background, #3c3c3c)","--loki-bg-card":"var(--vscode-editor-background, #1e1e1e)","--loki-bg-hover":"var(--vscode-list-hoverBackground, #2a2d2e)","--loki-bg-active":"var(--vscode-list-activeSelectionBackground, #094771)","--loki-bg-overlay":"rgba(0, 0, 0, 0.6)","--loki-accent":"var(--vscode-focusBorder, #007fd4)","--loki-accent-hover":"var(--vscode-button-hoverBackground, #1177bb)","--loki-accent-active":"var(--vscode-button-background, #0e639c)","--loki-accent-light":"var(--vscode-focusBorder, #007fd4)","--loki-accent-muted":"var(--vscode-editor-selectionBackground, rgba(0, 127, 212, 0.25))","--loki-text-primary":"var(--vscode-foreground, #cccccc)","--loki-text-secondary":"var(--vscode-descriptionForeground, #9d9d9d)","--loki-text-muted":"var(--vscode-disabledForeground, #6b6b6b)","--loki-text-disabled":"var(--vscode-disabledForeground, #4d4d4d)","--loki-text-inverse":"var(--vscode-button-foreground, #ffffff)","--loki-border":"var(--vscode-widget-border, #454545)","--loki-border-light":"var(--vscode-widget-border, #5a5a5a)","--loki-border-focus":"var(--vscode-focusBorder, #007fd4)","--loki-success":"var(--vscode-testing-iconPassed, #89d185)","--loki-success-muted":"rgba(137, 209, 133, 0.2)","--loki-warning":"var(--vscode-editorWarning-foreground, #cca700)","--loki-warning-muted":"rgba(204, 167, 0, 0.2)","--loki-error":"var(--vscode-errorForeground, #f48771)","--loki-error-muted":"rgba(244, 135, 113, 0.2)","--loki-info":"var(--vscode-editorInfo-foreground, #75beff)","--loki-info-muted":"rgba(117, 190, 255, 0.2)","--loki-green":"var(--vscode-testing-iconPassed, #89d185)","--loki-green-muted":"rgba(137, 209, 133, 0.2)","--loki-yellow":"var(--vscode-editorWarning-foreground, #cca700)","--loki-yellow-muted":"rgba(204, 167, 0, 0.2)","--loki-red":"var(--vscode-errorForeground, #f48771)","--loki-red-muted":"rgba(244, 135, 113, 0.2)","--loki-blue":"var(--vscode-editorInfo-foreground, #75beff)","--loki-blue-muted":"rgba(117, 190, 255, 0.2)","--loki-purple":"#c084fc","--loki-purple-muted":"rgba(192, 132, 252, 0.2)","--loki-opus":"#f59e0b","--loki-sonnet":"#818cf8","--loki-haiku":"#34d399","--loki-shadow-sm":"0 1px 2px rgba(0, 0, 0, 0.3)","--loki-shadow-md":"0 2px 4px rgba(0, 0, 0, 0.4)","--loki-shadow-lg":"0 4px 8px rgba(0, 0, 0, 0.5)","--loki-shadow-focus":"0 0 0 2px var(--vscode-focusBorder, #007fd4)"}},z={xs:"4px",sm:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"32px","3xl":"48px"},R={none:"0",sm:"2px",md:"4px",lg:"5px",xl:"5px",full:"9999px"},$={fontFamily:{sans:"'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif",serif:"'DM Serif Display', Georgia, 'Times New Roman', serif",mono:"'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, monospace"},fontSize:{xs:"10px",sm:"11px",base:"12px",md:"13px",lg:"14px",xl:"16px","2xl":"18px","3xl":"24px"},fontWeight:{normal:"400",medium:"500",semibold:"600",bold:"700"},lineHeight:{tight:"1.25",normal:"1.5",relaxed:"1.75"}},B={duration:{fast:"100ms",normal:"200ms",slow:"300ms",slower:"500ms"},easing:{default:"cubic-bezier(0.4, 0, 0.2, 1)",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)",bounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)"}},Be={sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},P={base:"0",dropdown:"100",sticky:"200",modal:"300",popover:"400",tooltip:"500",toast:"600"},Pe={"navigation.nextItem":{key:"ArrowDown",modifiers:[]},"navigation.prevItem":{key:"ArrowUp",modifiers:[]},"navigation.nextSection":{key:"Tab",modifiers:[]},"navigation.prevSection":{key:"Tab",modifiers:["Shift"]},"navigation.confirm":{key:"Enter",modifiers:[]},"navigation.cancel":{key:"Escape",modifiers:[]},"action.refresh":{key:"r",modifiers:["Meta"]},"action.search":{key:"k",modifiers:["Meta"]},"action.save":{key:"s",modifiers:["Meta"]},"action.close":{key:"w",modifiers:["Meta"]},"theme.toggle":{key:"d",modifiers:["Meta","Shift"]},"task.create":{key:"n",modifiers:["Meta"]},"task.complete":{key:"Enter",modifiers:["Meta"]},"view.toggleLogs":{key:"l",modifiers:["Meta","Shift"]},"view.toggleMemory":{key:"m",modifiers:["Meta","Shift"]}},Ie={button:{role:"button",tabIndex:0},tablist:{role:"tablist"},tab:{role:"tab",ariaSelected:!1,tabIndex:-1},tabpanel:{role:"tabpanel",tabIndex:0},list:{role:"list"},listitem:{role:"listitem"},livePolite:{ariaLive:"polite",ariaAtomic:!0},liveAssertive:{ariaLive:"assertive",ariaAtomic:!0},dialog:{role:"dialog",ariaModal:!0},alertdialog:{role:"alertdialog",ariaModal:!0},status:{role:"status",ariaLive:"polite"},alert:{role:"alert",ariaLive:"assertive"},log:{role:"log",ariaLive:"polite",ariaRelevant:"additions"}};function E(d){let e=A[d];return e?Object.entries(e).map(([t,i])=>`${t}: ${i};`).join(`
|
|
1822
|
+
var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var wt=Object.prototype.hasOwnProperty;var $t=(d,e,t)=>e in d?Re(d,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):d[e]=t;var Et=(d,e)=>{for(var t in e)Re(d,t,{get:e[t],enumerable:!0})},Ct=(d,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of yt(e))!wt.call(d,a)&&a!==t&&Re(d,a,{get:()=>e[a],enumerable:!(i=_t(e,a))||i.enumerable});return d};var St=d=>Ct(Re({},"__esModule",{value:!0}),d);var S=(d,e,t)=>$t(d,typeof e!="symbol"?e+"":e,t);var ri={};Et(ri,{ANIMATION:()=>P,ARIA_PATTERNS:()=>Ie,ApiEvents:()=>f,BASE_STYLES:()=>V,BREAKPOINTS:()=>Pe,COMMON_STYLES:()=>Ze,KEYBOARD_SHORTCUTS:()=>Be,KeyboardHandler:()=>O,LokiActivityStream:()=>ye,LokiAgentLeaderboard:()=>Ae,LokiAnalytics:()=>ge,LokiApiClient:()=>N,LokiApiKeys:()=>xe,LokiAppPreview:()=>re,LokiAppStatus:()=>se,LokiAuditViewer:()=>ke,LokiChecklistViewer:()=>ae,LokiCheckpointViewer:()=>ne,LokiContextTracker:()=>le,LokiCostDashboard:()=>oe,LokiCostWaterfall:()=>Se,LokiCouncilDashboard:()=>ie,LokiCouncilTranscripts:()=>ze,LokiElement:()=>v,LokiEscalations:()=>Le,LokiFleet:()=>be,LokiLearningDashboard:()=>te,LokiLogStream:()=>Z,LokiManagedMemoryPanel:()=>Te,LokiMascotPresence:()=>Me,LokiMemoryBrowser:()=>ee,LokiMemoryGraph:()=>Ce,LokiMigrationDashboard:()=>ue,LokiNotificationCenter:()=>de,LokiOverview:()=>W,LokiPipelineView:()=>$e,LokiPromptOptimizer:()=>pe,LokiProviderHealth:()=>we,LokiQualityGates:()=>me,LokiQualityScore:()=>he,LokiRarvTimeline:()=>ve,LokiRunManager:()=>fe,LokiSessionControl:()=>X,LokiSessionDiff:()=>ce,LokiSpecPanel:()=>He,LokiState:()=>Y,LokiTaskBoard:()=>Q,LokiTenantSwitcher:()=>_e,LokiTheme:()=>j,LokiWikiBrowser:()=>De,MARKDOWN_STYLES:()=>L,RADIUS:()=>R,SPACING:()=>z,STATE_CHANGE_EVENT:()=>Ue,THEMES:()=>A,THEME_VARIABLES:()=>Fe,TYPOGRAPHY:()=>$,UnifiedThemeManager:()=>w,VERSION:()=>ai,Z_INDEX:()=>B,createApiClient:()=>it,createStore:()=>at,escapeHtml:()=>Oe,generateThemeCSS:()=>E,generateTokensCSS:()=>K,getApiClient:()=>h,getState:()=>U,init:()=>si,renderMarkdown:()=>C});var A={light:{"--loki-bg-primary":"#FFFEFB","--loki-bg-secondary":"#F8F4F0","--loki-bg-tertiary":"#ECEAE3","--loki-bg-card":"#ffffff","--loki-bg-hover":"#F3EFE9","--loki-bg-active":"#E6E2DA","--loki-bg-overlay":"rgba(32, 21, 21, 0.5)","--loki-accent":"#553DE9","--loki-accent-hover":"#4432c4","--loki-accent-active":"#3828a0","--loki-accent-light":"#553de9","--loki-accent-muted":"rgba(85, 61, 233, 0.10)","--loki-text-primary":"#201515","--loki-text-secondary":"#36342E","--loki-text-muted":"#939084","--loki-text-disabled":"#C5C0B1","--loki-text-inverse":"#ffffff","--loki-border":"#ECEAE3","--loki-border-light":"#C5C0B1","--loki-border-focus":"#553DE9","--loki-success":"#1FC5A8","--loki-success-muted":"rgba(31, 197, 168, 0.12)","--loki-warning":"#D4A03C","--loki-warning-muted":"rgba(212, 160, 60, 0.12)","--loki-error":"#C45B5B","--loki-error-muted":"rgba(196, 91, 91, 0.12)","--loki-info":"#2F71E3","--loki-info-muted":"rgba(47, 113, 227, 0.12)","--loki-green":"#1FC5A8","--loki-green-muted":"rgba(31, 197, 168, 0.12)","--loki-yellow":"#D4A03C","--loki-yellow-muted":"rgba(212, 160, 60, 0.12)","--loki-red":"#C45B5B","--loki-red-muted":"rgba(196, 91, 91, 0.12)","--loki-blue":"#2F71E3","--loki-blue-muted":"rgba(47, 113, 227, 0.12)","--loki-purple":"#553DE9","--loki-purple-muted":"rgba(85, 61, 233, 0.10)","--loki-opus":"#d97706","--loki-sonnet":"#553DE9","--loki-haiku":"#1FC5A8","--loki-shadow-sm":"0 1px 2px rgba(32, 21, 21, 0.04)","--loki-shadow-md":"0 4px 6px rgba(32, 21, 21, 0.06)","--loki-shadow-lg":"0 10px 15px rgba(32, 21, 21, 0.08)","--loki-shadow-focus":"0 0 0 3px rgba(85, 61, 233, 0.25)"},dark:{"--loki-bg-primary":"#1A0F2E","--loki-bg-secondary":"#140B24","--loki-bg-tertiary":"#251842","--loki-bg-card":"#1F1338","--loki-bg-hover":"#2A1F4A","--loki-bg-active":"#352A55","--loki-bg-overlay":"rgba(20, 11, 36, 0.85)","--loki-accent":"#553de9","--loki-accent-hover":"#9488F5","--loki-accent-active":"#6258D0","--loki-accent-light":"#9488F5","--loki-accent-muted":"rgba(123, 107, 240, 0.18)","--loki-text-primary":"#F0ECF8","--loki-text-secondary":"#C0B8D0","--loki-text-muted":"#8B7FA8","--loki-text-disabled":"#5A4E78","--loki-text-inverse":"#1A0F2E","--loki-border":"#2A1F3E","--loki-border-light":"#3D3060","--loki-border-focus":"#553de9","--loki-success":"#2ED8B6","--loki-success-muted":"rgba(46, 216, 182, 0.18)","--loki-warning":"#E8B84A","--loki-warning-muted":"rgba(232, 184, 74, 0.18)","--loki-error":"#E07070","--loki-error-muted":"rgba(224, 112, 112, 0.18)","--loki-info":"#5A9CF5","--loki-info-muted":"rgba(90, 156, 245, 0.18)","--loki-green":"#2ED8B6","--loki-green-muted":"rgba(46, 216, 182, 0.18)","--loki-yellow":"#E8B84A","--loki-yellow-muted":"rgba(232, 184, 74, 0.18)","--loki-red":"#E07070","--loki-red-muted":"rgba(224, 112, 112, 0.18)","--loki-blue":"#5A9CF5","--loki-blue-muted":"rgba(90, 156, 245, 0.18)","--loki-purple":"#9488F5","--loki-purple-muted":"rgba(148, 136, 245, 0.18)","--loki-opus":"#f59e0b","--loki-sonnet":"#553de9","--loki-haiku":"#2ED8B6","--loki-shadow-sm":"0 1px 2px rgba(0, 0, 0, 0.4)","--loki-shadow-md":"0 4px 12px rgba(0, 0, 0, 0.5)","--loki-shadow-lg":"0 10px 25px rgba(0, 0, 0, 0.6)","--loki-shadow-focus":"0 0 0 3px rgba(123, 107, 240, 0.30)"},"high-contrast":{"--loki-bg-primary":"#000000","--loki-bg-secondary":"#0a0a0a","--loki-bg-tertiary":"#141414","--loki-bg-card":"#0a0a0a","--loki-bg-hover":"#1a1a1a","--loki-bg-active":"#242424","--loki-bg-overlay":"rgba(0, 0, 0, 0.9)","--loki-accent":"#c084fc","--loki-accent-hover":"#d8b4fe","--loki-accent-active":"#e9d5ff","--loki-accent-light":"#d8b4fe","--loki-accent-muted":"rgba(192, 132, 252, 0.25)","--loki-text-primary":"#ffffff","--loki-text-secondary":"#e0e0e0","--loki-text-muted":"#b0b0b0","--loki-text-disabled":"#666666","--loki-text-inverse":"#000000","--loki-border":"#ffffff","--loki-border-light":"#cccccc","--loki-border-focus":"#c084fc","--loki-success":"#4ade80","--loki-success-muted":"rgba(74, 222, 128, 0.25)","--loki-warning":"#fde047","--loki-warning-muted":"rgba(253, 224, 71, 0.25)","--loki-error":"#f87171","--loki-error-muted":"rgba(248, 113, 113, 0.25)","--loki-info":"#60a5fa","--loki-info-muted":"rgba(96, 165, 250, 0.25)","--loki-green":"#4ade80","--loki-green-muted":"rgba(74, 222, 128, 0.25)","--loki-yellow":"#fde047","--loki-yellow-muted":"rgba(253, 224, 71, 0.25)","--loki-red":"#f87171","--loki-red-muted":"rgba(248, 113, 113, 0.25)","--loki-blue":"#60a5fa","--loki-blue-muted":"rgba(96, 165, 250, 0.25)","--loki-purple":"#c084fc","--loki-purple-muted":"rgba(192, 132, 252, 0.25)","--loki-opus":"#fbbf24","--loki-sonnet":"#818cf8","--loki-haiku":"#34d399","--loki-shadow-sm":"none","--loki-shadow-md":"none","--loki-shadow-lg":"none","--loki-shadow-focus":"0 0 0 3px #c084fc"},"vscode-light":{"--loki-bg-primary":"var(--vscode-editor-background, #ffffff)","--loki-bg-secondary":"var(--vscode-sideBar-background, #f3f3f3)","--loki-bg-tertiary":"var(--vscode-input-background, #ffffff)","--loki-bg-card":"var(--vscode-editor-background, #ffffff)","--loki-bg-hover":"var(--vscode-list-hoverBackground, #e8e8e8)","--loki-bg-active":"var(--vscode-list-activeSelectionBackground, #0060c0)","--loki-bg-overlay":"rgba(0, 0, 0, 0.4)","--loki-accent":"var(--vscode-focusBorder, #0066cc)","--loki-accent-hover":"var(--vscode-button-hoverBackground, #0055aa)","--loki-accent-active":"var(--vscode-button-background, #007acc)","--loki-accent-light":"var(--vscode-focusBorder, #0066cc)","--loki-accent-muted":"var(--vscode-editor-selectionBackground, rgba(0, 102, 204, 0.2))","--loki-text-primary":"var(--vscode-foreground, #333333)","--loki-text-secondary":"var(--vscode-descriptionForeground, #717171)","--loki-text-muted":"var(--vscode-disabledForeground, #a0a0a0)","--loki-text-disabled":"var(--vscode-disabledForeground, #cccccc)","--loki-text-inverse":"var(--vscode-button-foreground, #ffffff)","--loki-border":"var(--vscode-widget-border, #c8c8c8)","--loki-border-light":"var(--vscode-widget-border, #e0e0e0)","--loki-border-focus":"var(--vscode-focusBorder, #0066cc)","--loki-success":"var(--vscode-testing-iconPassed, #388a34)","--loki-success-muted":"rgba(56, 138, 52, 0.15)","--loki-warning":"var(--vscode-editorWarning-foreground, #bf8803)","--loki-warning-muted":"rgba(191, 136, 3, 0.15)","--loki-error":"var(--vscode-errorForeground, #e51400)","--loki-error-muted":"rgba(229, 20, 0, 0.15)","--loki-info":"var(--vscode-editorInfo-foreground, #1a85ff)","--loki-info-muted":"rgba(26, 133, 255, 0.15)","--loki-green":"var(--vscode-testing-iconPassed, #388a34)","--loki-green-muted":"rgba(56, 138, 52, 0.15)","--loki-yellow":"var(--vscode-editorWarning-foreground, #bf8803)","--loki-yellow-muted":"rgba(191, 136, 3, 0.15)","--loki-red":"var(--vscode-errorForeground, #e51400)","--loki-red-muted":"rgba(229, 20, 0, 0.15)","--loki-blue":"var(--vscode-editorInfo-foreground, #1a85ff)","--loki-blue-muted":"rgba(26, 133, 255, 0.15)","--loki-purple":"#9333ea","--loki-purple-muted":"rgba(147, 51, 234, 0.15)","--loki-opus":"#d97706","--loki-sonnet":"#4f46e5","--loki-haiku":"#059669","--loki-shadow-sm":"0 1px 2px rgba(0, 0, 0, 0.05)","--loki-shadow-md":"0 2px 4px rgba(0, 0, 0, 0.1)","--loki-shadow-lg":"0 4px 8px rgba(0, 0, 0, 0.15)","--loki-shadow-focus":"0 0 0 2px var(--vscode-focusBorder, #0066cc)"},"vscode-dark":{"--loki-bg-primary":"var(--vscode-editor-background, #1e1e1e)","--loki-bg-secondary":"var(--vscode-sideBar-background, #252526)","--loki-bg-tertiary":"var(--vscode-input-background, #3c3c3c)","--loki-bg-card":"var(--vscode-editor-background, #1e1e1e)","--loki-bg-hover":"var(--vscode-list-hoverBackground, #2a2d2e)","--loki-bg-active":"var(--vscode-list-activeSelectionBackground, #094771)","--loki-bg-overlay":"rgba(0, 0, 0, 0.6)","--loki-accent":"var(--vscode-focusBorder, #007fd4)","--loki-accent-hover":"var(--vscode-button-hoverBackground, #1177bb)","--loki-accent-active":"var(--vscode-button-background, #0e639c)","--loki-accent-light":"var(--vscode-focusBorder, #007fd4)","--loki-accent-muted":"var(--vscode-editor-selectionBackground, rgba(0, 127, 212, 0.25))","--loki-text-primary":"var(--vscode-foreground, #cccccc)","--loki-text-secondary":"var(--vscode-descriptionForeground, #9d9d9d)","--loki-text-muted":"var(--vscode-disabledForeground, #6b6b6b)","--loki-text-disabled":"var(--vscode-disabledForeground, #4d4d4d)","--loki-text-inverse":"var(--vscode-button-foreground, #ffffff)","--loki-border":"var(--vscode-widget-border, #454545)","--loki-border-light":"var(--vscode-widget-border, #5a5a5a)","--loki-border-focus":"var(--vscode-focusBorder, #007fd4)","--loki-success":"var(--vscode-testing-iconPassed, #89d185)","--loki-success-muted":"rgba(137, 209, 133, 0.2)","--loki-warning":"var(--vscode-editorWarning-foreground, #cca700)","--loki-warning-muted":"rgba(204, 167, 0, 0.2)","--loki-error":"var(--vscode-errorForeground, #f48771)","--loki-error-muted":"rgba(244, 135, 113, 0.2)","--loki-info":"var(--vscode-editorInfo-foreground, #75beff)","--loki-info-muted":"rgba(117, 190, 255, 0.2)","--loki-green":"var(--vscode-testing-iconPassed, #89d185)","--loki-green-muted":"rgba(137, 209, 133, 0.2)","--loki-yellow":"var(--vscode-editorWarning-foreground, #cca700)","--loki-yellow-muted":"rgba(204, 167, 0, 0.2)","--loki-red":"var(--vscode-errorForeground, #f48771)","--loki-red-muted":"rgba(244, 135, 113, 0.2)","--loki-blue":"var(--vscode-editorInfo-foreground, #75beff)","--loki-blue-muted":"rgba(117, 190, 255, 0.2)","--loki-purple":"#c084fc","--loki-purple-muted":"rgba(192, 132, 252, 0.2)","--loki-opus":"#f59e0b","--loki-sonnet":"#818cf8","--loki-haiku":"#34d399","--loki-shadow-sm":"0 1px 2px rgba(0, 0, 0, 0.3)","--loki-shadow-md":"0 2px 4px rgba(0, 0, 0, 0.4)","--loki-shadow-lg":"0 4px 8px rgba(0, 0, 0, 0.5)","--loki-shadow-focus":"0 0 0 2px var(--vscode-focusBorder, #007fd4)"}},z={xs:"4px",sm:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"32px","3xl":"48px"},R={none:"0",sm:"2px",md:"4px",lg:"5px",xl:"5px",full:"9999px"},$={fontFamily:{sans:"'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif",serif:"'Fraunces', Georgia, 'Times New Roman', serif",mono:"'JetBrains Mono', 'Fira Code', 'SF Mono', Menlo, monospace"},fontSize:{xs:"10px",sm:"11px",base:"12px",md:"13px",lg:"14px",xl:"16px","2xl":"18px","3xl":"24px"},fontWeight:{normal:"400",medium:"500",semibold:"600",bold:"700"},lineHeight:{tight:"1.25",normal:"1.5",relaxed:"1.75"}},P={duration:{fast:"100ms",normal:"200ms",slow:"300ms",slower:"500ms"},easing:{default:"cubic-bezier(0.4, 0, 0.2, 1)",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)",bounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)"}},Pe={sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},B={base:"0",dropdown:"100",sticky:"200",modal:"300",popover:"400",tooltip:"500",toast:"600"},Be={"navigation.nextItem":{key:"ArrowDown",modifiers:[]},"navigation.prevItem":{key:"ArrowUp",modifiers:[]},"navigation.nextSection":{key:"Tab",modifiers:[]},"navigation.prevSection":{key:"Tab",modifiers:["Shift"]},"navigation.confirm":{key:"Enter",modifiers:[]},"navigation.cancel":{key:"Escape",modifiers:[]},"action.refresh":{key:"r",modifiers:["Meta"]},"action.search":{key:"k",modifiers:["Meta"]},"action.save":{key:"s",modifiers:["Meta"]},"action.close":{key:"w",modifiers:["Meta"]},"theme.toggle":{key:"d",modifiers:["Meta","Shift"]},"task.create":{key:"n",modifiers:["Meta"]},"task.complete":{key:"Enter",modifiers:["Meta"]},"view.toggleLogs":{key:"l",modifiers:["Meta","Shift"]},"view.toggleMemory":{key:"m",modifiers:["Meta","Shift"]}},Ie={button:{role:"button",tabIndex:0},tablist:{role:"tablist"},tab:{role:"tab",ariaSelected:!1,tabIndex:-1},tabpanel:{role:"tabpanel",tabIndex:0},list:{role:"list"},listitem:{role:"listitem"},livePolite:{ariaLive:"polite",ariaAtomic:!0},liveAssertive:{ariaLive:"assertive",ariaAtomic:!0},dialog:{role:"dialog",ariaModal:!0},alertdialog:{role:"alertdialog",ariaModal:!0},status:{role:"status",ariaLive:"polite"},alert:{role:"alert",ariaLive:"assertive"},log:{role:"log",ariaLive:"polite",ariaRelevant:"additions"}};function E(d){let e=A[d];return e?Object.entries(e).map(([t,i])=>`${t}: ${i};`).join(`
|
|
1804
1823
|
`):""}function K(){return`
|
|
1805
1824
|
/* Spacing */
|
|
1806
1825
|
--loki-space-xs: ${z.xs};
|
|
@@ -1833,19 +1852,19 @@ var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropert
|
|
|
1833
1852
|
--loki-text-3xl: ${$.fontSize["3xl"]};
|
|
1834
1853
|
|
|
1835
1854
|
/* Animation */
|
|
1836
|
-
--loki-duration-fast: ${
|
|
1837
|
-
--loki-duration-normal: ${
|
|
1838
|
-
--loki-duration-slow: ${
|
|
1839
|
-
--loki-easing-default: ${
|
|
1840
|
-
--loki-transition: ${
|
|
1855
|
+
--loki-duration-fast: ${P.duration.fast};
|
|
1856
|
+
--loki-duration-normal: ${P.duration.normal};
|
|
1857
|
+
--loki-duration-slow: ${P.duration.slow};
|
|
1858
|
+
--loki-easing-default: ${P.easing.default};
|
|
1859
|
+
--loki-transition: ${P.duration.normal} ${P.easing.default};
|
|
1841
1860
|
|
|
1842
1861
|
/* Z-Index */
|
|
1843
|
-
--loki-z-dropdown: ${
|
|
1844
|
-
--loki-z-sticky: ${
|
|
1845
|
-
--loki-z-modal: ${
|
|
1846
|
-
--loki-z-popover: ${
|
|
1847
|
-
--loki-z-tooltip: ${
|
|
1848
|
-
--loki-z-toast: ${
|
|
1862
|
+
--loki-z-dropdown: ${B.dropdown};
|
|
1863
|
+
--loki-z-sticky: ${B.sticky};
|
|
1864
|
+
--loki-z-modal: ${B.modal};
|
|
1865
|
+
--loki-z-popover: ${B.popover};
|
|
1866
|
+
--loki-z-tooltip: ${B.tooltip};
|
|
1867
|
+
--loki-z-toast: ${B.toast};
|
|
1849
1868
|
|
|
1850
1869
|
/* Glass effect */
|
|
1851
1870
|
--loki-glass-bg: rgba(255, 255, 255, 0.03);
|
|
@@ -2127,11 +2146,11 @@ var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropert
|
|
|
2127
2146
|
}
|
|
2128
2147
|
|
|
2129
2148
|
/* Responsive utilities */
|
|
2130
|
-
@media (max-width: ${
|
|
2149
|
+
@media (max-width: ${Pe.md}) {
|
|
2131
2150
|
.hide-mobile { display: none !important; }
|
|
2132
2151
|
}
|
|
2133
2152
|
|
|
2134
|
-
@media (min-width: ${
|
|
2153
|
+
@media (min-width: ${Pe.md}) {
|
|
2135
2154
|
.hide-desktop { display: none !important; }
|
|
2136
2155
|
}
|
|
2137
2156
|
`,y=class y{static detectContext(){return typeof acquireVsCodeApi<"u"||document.body.classList.contains("vscode-body")||getComputedStyle(document.documentElement).getPropertyValue("--vscode-editor-background")?"vscode":document.documentElement.dataset.lokiContext==="cli"?"cli":"browser"}static detectVSCodeTheme(){let e=document.body;if(e.classList.contains("vscode-high-contrast"))return"high-contrast";if(e.classList.contains("vscode-dark"))return"dark";if(e.classList.contains("vscode-light"))return"light";let t=getComputedStyle(document.documentElement).getPropertyValue("--vscode-editor-background");if(t){let i=t.match(/\d+/g);if(i)return(parseInt(i[0])*299+parseInt(i[1])*587+parseInt(i[2])*114)/1e3>128?"light":"dark"}return null}static getTheme(){if(y.detectContext()==="vscode"){let t=y.detectVSCodeTheme();return t==="high-contrast"?"high-contrast":t==="dark"?"vscode-dark":"vscode-light"}return"light"}static setTheme(e){if(!A[e]){console.warn(`Unknown theme: ${e}`);return}localStorage.setItem(y.STORAGE_KEY,e),document.documentElement.setAttribute("data-loki-theme",e),window.dispatchEvent(new CustomEvent("loki-theme-change",{detail:{theme:e,context:y.detectContext()}}))}static toggle(){let e=y.getTheme();return e.startsWith("vscode")?e:(y.setTheme("light"),"light")}static getVariables(e=null){let t=e||y.getTheme();return A[t]||A.light}static generateCSS(e=null){let t=e||y.getTheme();return`
|
|
@@ -2140,7 +2159,7 @@ var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropert
|
|
|
2140
2159
|
${K()}
|
|
2141
2160
|
}
|
|
2142
2161
|
${V}
|
|
2143
|
-
`}static init(){let e=y.getTheme();document.documentElement.setAttribute("data-loki-theme",e),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{localStorage.getItem(y.STORAGE_KEY)||y.setTheme(y.getTheme())}),y.detectContext()==="vscode"&&new MutationObserver(()=>{let i=y.getTheme();document.documentElement.setAttribute("data-loki-theme",i),window.dispatchEvent(new CustomEvent("loki-theme-change",{detail:{theme:i,context:"vscode"}}))}).observe(document.body,{attributes:!0,attributeFilter:["class"]})}};S(y,"STORAGE_KEY","loki-theme"),S(y,"CONTEXT_KEY","loki-context");var w=y,O=class{constructor(){this._handlers=new Map,this._enabled=!0}register(e,t){let i=
|
|
2162
|
+
`}static init(){let e=y.getTheme();document.documentElement.setAttribute("data-loki-theme",e),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{localStorage.getItem(y.STORAGE_KEY)||y.setTheme(y.getTheme())}),y.detectContext()==="vscode"&&new MutationObserver(()=>{let i=y.getTheme();document.documentElement.setAttribute("data-loki-theme",i),window.dispatchEvent(new CustomEvent("loki-theme-change",{detail:{theme:i,context:"vscode"}}))}).observe(document.body,{attributes:!0,attributeFilter:["class"]})}};S(y,"STORAGE_KEY","loki-theme"),S(y,"CONTEXT_KEY","loki-context");var w=y,O=class{constructor(){this._handlers=new Map,this._enabled=!0}register(e,t){let i=Be[e];if(!i){console.warn(`Unknown keyboard action: ${e}`);return}this._handlers.set(e,{shortcut:i,handler:t})}unregister(e){this._handlers.delete(e)}setEnabled(e){this._enabled=e}handleEvent(e){if(!this._enabled)return!1;for(let[t,{shortcut:i,handler:a}]of this._handlers)if(this._matchesShortcut(e,i))return e.preventDefault(),e.stopPropagation(),a(e),!0;return!1}_matchesShortcut(e,t){let i=e.key.toLowerCase(),a=t.modifiers||[];if(i!==t.key.toLowerCase())return!1;let s=a.includes("Ctrl")||a.includes("Meta"),r=a.includes("Shift"),o=a.includes("Alt"),n=(e.ctrlKey||e.metaKey)===s,l=e.shiftKey===r,c=e.altKey===o;return n&&l&&c}attach(e){this._boundHandler||(this._boundHandler=t=>this.handleEvent(t)),e.addEventListener("keydown",this._boundHandler)}detach(e){this._boundHandler&&e.removeEventListener("keydown",this._boundHandler)}};var Fe={light:{"--loki-bg-primary":"#FFFEFB","--loki-bg-secondary":"#F8F4F0","--loki-bg-tertiary":"#ECEAE3","--loki-bg-card":"#ffffff","--loki-bg-hover":"#F3EFE9","--loki-accent":"#553DE9","--loki-accent-light":"#553de9","--loki-accent-muted":"rgba(85, 61, 233, 0.10)","--loki-text-primary":"#201515","--loki-text-secondary":"#36342E","--loki-text-muted":"#939084","--loki-border":"#ECEAE3","--loki-border-light":"#C5C0B1","--loki-green":"#1FC5A8","--loki-green-muted":"rgba(31, 197, 168, 0.12)","--loki-yellow":"#D4A03C","--loki-yellow-muted":"rgba(212, 160, 60, 0.12)","--loki-red":"#C45B5B","--loki-red-muted":"rgba(196, 91, 91, 0.12)","--loki-blue":"#2F71E3","--loki-blue-muted":"rgba(47, 113, 227, 0.12)","--loki-purple":"#553DE9","--loki-purple-muted":"rgba(85, 61, 233, 0.10)","--loki-opus":"#d97706","--loki-sonnet":"#553DE9","--loki-haiku":"#1FC5A8","--loki-transition":"0.2s cubic-bezier(0.4, 0, 0.2, 1)"},dark:{"--loki-bg-primary":"#1A0F2E","--loki-bg-secondary":"#140B24","--loki-bg-tertiary":"#251842","--loki-bg-card":"#1F1338","--loki-bg-hover":"#2A1F4A","--loki-accent":"#553de9","--loki-accent-light":"#9488F5","--loki-accent-muted":"rgba(123, 107, 240, 0.18)","--loki-text-primary":"#F0ECF8","--loki-text-secondary":"#C0B8D0","--loki-text-muted":"#8B7FA8","--loki-border":"#2A1F3E","--loki-border-light":"#3D3060","--loki-green":"#2ED8B6","--loki-green-muted":"rgba(46, 216, 182, 0.18)","--loki-yellow":"#E8B84A","--loki-yellow-muted":"rgba(232, 184, 74, 0.18)","--loki-red":"#E07070","--loki-red-muted":"rgba(224, 112, 112, 0.18)","--loki-blue":"#5A9CF5","--loki-blue-muted":"rgba(90, 156, 245, 0.18)","--loki-purple":"#9488F5","--loki-purple-muted":"rgba(148, 136, 245, 0.18)","--loki-opus":"#f59e0b","--loki-sonnet":"#553de9","--loki-haiku":"#2ED8B6","--loki-transition":"0.2s cubic-bezier(0.4, 0, 0.2, 1)"}},Ze=`
|
|
2144
2163
|
:host {
|
|
2145
2164
|
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
|
2146
2165
|
line-height: 1.5;
|
|
@@ -4284,8 +4303,8 @@ var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropert
|
|
|
4284
4303
|
}
|
|
4285
4304
|
|
|
4286
4305
|
.terminal-btn.active {
|
|
4287
|
-
background:
|
|
4288
|
-
border-color:
|
|
4306
|
+
background: var(--loki-accent);
|
|
4307
|
+
border-color: var(--loki-accent);
|
|
4289
4308
|
color: white;
|
|
4290
4309
|
}
|
|
4291
4310
|
|
|
@@ -4301,7 +4320,7 @@ var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropert
|
|
|
4301
4320
|
|
|
4302
4321
|
.filter-input:focus {
|
|
4303
4322
|
outline: none;
|
|
4304
|
-
border-color:
|
|
4323
|
+
border-color: var(--loki-accent);
|
|
4305
4324
|
}
|
|
4306
4325
|
|
|
4307
4326
|
.filter-input::placeholder {
|
|
@@ -7601,7 +7620,7 @@ var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropert
|
|
|
7601
7620
|
</button>
|
|
7602
7621
|
${this._detailsOpen?`<div class="details-body">${s}</div>`:""}
|
|
7603
7622
|
</div>
|
|
7604
|
-
`}_attachEventListeners(){let e=this.shadowRoot;if(!e)return;let t=(i,a)=>{let s=e.querySelector(i);s&&s.addEventListener("click",a)};e.querySelectorAll('[data-action="restart"]').forEach(i=>i.addEventListener("click",()=>this._handleRestart())),e.querySelectorAll('[data-action="open-external"]').forEach(i=>i.addEventListener("click",()=>this._handleOpenExternal())),e.querySelectorAll('[data-action="retry-frame"]').forEach(i=>i.addEventListener("click",()=>this._handleRetryFrame())),t('[data-action="refresh"]',()=>this._handleRefresh()),t('[data-action="toggle-details"]',()=>this._toggleDetails()),e.querySelectorAll('[data-action="select-service"]').forEach(i=>i.addEventListener("click",()=>this._handleSelectService(i.getAttribute("data-service-key"))))}_escapeHtml(e){return e==null?"":String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}};customElements.define("loki-app-preview",re);var
|
|
7623
|
+
`}_attachEventListeners(){let e=this.shadowRoot;if(!e)return;let t=(i,a)=>{let s=e.querySelector(i);s&&s.addEventListener("click",a)};e.querySelectorAll('[data-action="restart"]').forEach(i=>i.addEventListener("click",()=>this._handleRestart())),e.querySelectorAll('[data-action="open-external"]').forEach(i=>i.addEventListener("click",()=>this._handleOpenExternal())),e.querySelectorAll('[data-action="retry-frame"]').forEach(i=>i.addEventListener("click",()=>this._handleRetryFrame())),t('[data-action="refresh"]',()=>this._handleRefresh()),t('[data-action="toggle-details"]',()=>this._toggleDetails()),e.querySelectorAll('[data-action="select-service"]').forEach(i=>i.addEventListener("click",()=>this._handleSelectService(i.getAttribute("data-service-key"))))}_escapeHtml(e){return e==null?"":String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}};customElements.define("loki-app-preview",re);var Pt={opus:{input:5,output:25,label:"Opus 4.6",provider:"claude"},sonnet:{input:3,output:15,label:"Sonnet 5",provider:"claude"},haiku:{input:1,output:5,label:"Haiku 4.5",provider:"claude"},"gpt-5.3-codex":{input:1.5,output:12,label:"GPT-5.3 Codex",provider:"codex"}},oe=class extends v{static get observedAttributes(){return["api-url","theme"]}constructor(){super(),this._data={total_input_tokens:0,total_output_tokens:0,estimated_cost_usd:0,by_phase:{},by_model:{},budget_limit:null,budget_used:0,budget_remaining:null,connected:!1},this._api=null,this._pollInterval=null,this._modelPricing={...Pt}}connectedCallback(){super.connectedCallback(),this._setupApi(),this._loadPricing(),this._loadCost(),this._startPolling()}disconnectedCallback(){super.disconnectedCallback(),this._stopPolling()}attributeChangedCallback(e,t,i){t!==i&&(e==="api-url"&&this._api&&(this._api=h({baseUrl:i}),this._loadCost()),e==="theme"&&this._applyTheme())}_setupApi(){let e=this.getAttribute("api-url")||window.location.origin;this._api=h({baseUrl:e})}async _loadPricing(){let e=this._api;try{let t=await e.getPricing();if(e!==this._api)return;if(t&&t.models){let i={};for(let[a,s]of Object.entries(t.models))i[a]={input:s.input,output:s.output,label:s.label||a,provider:s.provider||"unknown",note:s.note||""};this._modelPricing=i,this._pricingSource=t.source||"api",this._pricingDate=t.updated||"",this._activeProvider=t.provider||"claude",this.render()}}catch{}}async _loadCost(){let e=this._api;try{let t=await e.getCost();if(e!==this._api)return;this._updateFromCost(t)}catch{if(e!==this._api)return;this._data.connected=!1,this.render()}}_updateFromCost(e){e&&(this._data={...this._data,connected:!0,total_input_tokens:e.total_input_tokens||0,total_output_tokens:e.total_output_tokens||0,estimated_cost_usd:e.estimated_cost_usd||0,by_phase:e.by_phase||{},by_model:e.by_model||{},budget_limit:e.budget_limit,budget_used:e.budget_used||0,budget_remaining:e.budget_remaining},this.render())}_startPolling(){this._poll=b({loadFn:()=>this._loadCost(),intervalMs:5e3,element:this,immediate:!1})}_stopPolling(){this._poll&&(this._poll.stop(),this._poll=null)}_formatTokens(e){return!e||e===0?"0":e>=1e6?(e/1e6).toFixed(2)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":String(e)}_formatUSD(e){return!e||e===0?"$0.00":e<.01?"<$0.01":"$"+e.toFixed(2)}_getBudgetPercent(){return!this._data.budget_limit||this._data.budget_limit<=0?0:Math.min(100,this._data.budget_used/this._data.budget_limit*100)}_getBudgetStatusClass(){let e=this._getBudgetPercent();return e>=90?"critical":e>=70?"warning":"ok"}_renderPhaseRows(){let e=this._data.by_phase;return!e||Object.keys(e).length===0?'<tr><td colspan="4" class="empty-cell">No phase data yet</td></tr>':Object.entries(e).map(([t,i])=>{let a=i.input_tokens||0,s=i.output_tokens||0,r=i.cost_usd||0;return`
|
|
7605
7624
|
<tr>
|
|
7606
7625
|
<td class="phase-name">${this._escapeHTML(t)}</td>
|
|
7607
7626
|
<td class="mono-cell">${this._formatTokens(a)}</td>
|
|
@@ -10321,7 +10340,7 @@ var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropert
|
|
|
10321
10340
|
</div>
|
|
10322
10341
|
`:""}
|
|
10323
10342
|
</div>
|
|
10324
|
-
`;let x=this.shadowRoot.getElementById("scan-btn");x&&x.addEventListener("click",()=>this._triggerScan())}};customElements.get("loki-quality-score")||customElements.define("loki-quality-score",he);var ct=["understand","guardrail","migrate","verify"],pt={understand:"Understand",guardrail:"Guardrail",migrate:"Migrate",verify:"Verify"},
|
|
10343
|
+
`;let x=this.shadowRoot.getElementById("scan-btn");x&&x.addEventListener("click",()=>this._triggerScan())}};customElements.get("loki-quality-score")||customElements.define("loki-quality-score",he);var ct=["understand","guardrail","migrate","verify"],pt={understand:"Understand",guardrail:"Guardrail",migrate:"Migrate",verify:"Verify"},Bt={understand:"#5b9bd5",guardrail:"#e8b84a",migrate:"#5bb870",verify:"#5bc8c8"},ue=class extends v{static get observedAttributes(){return["api-url","theme"]}constructor(){super(),this._migration=null,this._migrations=[],this._loading=!0,this._error=null,this._api=null,this._pollInterval=null}connectedCallback(){super.connectedCallback(),this._setupApi(),this._fetchMigrations(),this._poll=b({loadFn:()=>this._fetchData(),intervalMs:15e3,element:this,immediate:!1})}disconnectedCallback(){super.disconnectedCallback(),this._poll&&(this._poll.stop(),this._poll=null)}attributeChangedCallback(e,t,i){t!==i&&(e==="api-url"&&this._api&&(this._api=h({baseUrl:i}),this._fetchMigrations()),e==="theme"&&this._applyTheme())}_setupApi(){let e=this.getAttribute("api-url")||window.location.origin;this._api=h({baseUrl:e})}async _fetchMigrations(){let e=this._api;try{let t=await e._get("/api/migration/list");if(e!==this._api)return;this._migrations=Array.isArray(t)?t:t.migrations||[],this._error=null;let i=this._migrations.find(a=>a.status==="in_progress"||a.status==="active");if(i){if(await this._fetchStatus(i.migration_id||i.id),e!==this._api)return}else this._migration=null}catch(t){if(e!==this._api)return;this._error=t.message,this._migrations=[],this._migration=null}this._loading=!1,this.render()}async _fetchStatus(e){let t=this._api;try{let i=await t._get(`/api/migration/${encodeURIComponent(e)}/status`);if(t!==this._api)return;this._migration=i,this._error=null}catch(i){if(t!==this._api)return;this._error=i.message}}async _fetchData(){let e=this._api,t=this._migration&&(this._migration.migration_id||this._migration.id);if(t){if(await this._fetchStatus(t),e!==this._api)return;this.render()}else await this._fetchMigrations()}_escapeHtml(e){return e?String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"):""}_getPhaseIcon(e,t,i){return(i||[]).includes(e)?"[x]":e===t?"[>]":"[ ]"}_getPhaseIndex(e){let t=ct.indexOf(e);return t>=0?t:0}_renderPhaseBar(e,t){let i=t||[];return ct.map(a=>{let s=i.includes(a),r=a===e,o=Bt[a],n=s?"1":r?"0.7":"0.2",l=this._getPhaseIcon(a,e,t);return`
|
|
10325
10344
|
<div class="phase-segment">
|
|
10326
10345
|
<div class="phase-bar-fill" style="background:${o};opacity:${n};"></div>
|
|
10327
10346
|
<div class="phase-label">
|
|
@@ -15012,7 +15031,7 @@ var LokiDashboard=(()=>{var Re=Object.defineProperty;var _t=Object.getOwnPropert
|
|
|
15012
15031
|
color: var(--text-primary, #201515);
|
|
15013
15032
|
}
|
|
15014
15033
|
.ct-heading {
|
|
15015
|
-
font-family: '
|
|
15034
|
+
font-family: 'Fraunces', Georgia, serif;
|
|
15016
15035
|
font-size: 1.15rem;
|
|
15017
15036
|
font-weight: 400;
|
|
15018
15037
|
color: var(--loki-text-primary, #201515);
|
|
@@ -15683,6 +15702,36 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
15683
15702
|
});
|
|
15684
15703
|
})();
|
|
15685
15704
|
|
|
15705
|
+
// Autonomi identity: dark-mode toggle. Light-grey ground (#f1f2f6) is the
|
|
15706
|
+
// default; dark is opt-in and persisted per machine via data-loki-theme on
|
|
15707
|
+
// <html> (the CSS variable blocks for both live at the top of this file).
|
|
15708
|
+
// Best-effort -- no-ops on an older build without the button.
|
|
15709
|
+
(function initThemeToggle() {
|
|
15710
|
+
var btn = document.getElementById('theme-toggle-btn');
|
|
15711
|
+
var label = document.getElementById('theme-toggle-label');
|
|
15712
|
+
if (!btn) return;
|
|
15713
|
+
var STORE_KEY = 'loki-theme';
|
|
15714
|
+
var root = document.documentElement;
|
|
15715
|
+
|
|
15716
|
+
function apply(theme, persist) {
|
|
15717
|
+
root.setAttribute('data-loki-theme', theme);
|
|
15718
|
+
btn.setAttribute('aria-pressed', String(theme === 'dark'));
|
|
15719
|
+
if (label) label.textContent = theme === 'dark' ? 'Light mode' : 'Dark mode';
|
|
15720
|
+
if (persist) {
|
|
15721
|
+
try { localStorage.setItem(STORE_KEY, theme); } catch (e) { /* ignore */ }
|
|
15722
|
+
}
|
|
15723
|
+
}
|
|
15724
|
+
|
|
15725
|
+
var stored = null;
|
|
15726
|
+
try { stored = localStorage.getItem(STORE_KEY); } catch (e) { /* ignore */ }
|
|
15727
|
+
apply(stored === 'dark' ? 'dark' : 'light', false);
|
|
15728
|
+
|
|
15729
|
+
btn.addEventListener('click', function() {
|
|
15730
|
+
var current = root.getAttribute('data-loki-theme') === 'dark' ? 'dark' : 'light';
|
|
15731
|
+
apply(current === 'dark' ? 'light' : 'dark', true);
|
|
15732
|
+
});
|
|
15733
|
+
})();
|
|
15734
|
+
|
|
15686
15735
|
// v7.92 Right status sidebar collapse. Toggled by the header chevron (when
|
|
15687
15736
|
// expanded) and the rail chevron (when collapsed). State is remembered per
|
|
15688
15737
|
// machine in localStorage; default is EXPANDED so nothing is hidden on first
|