@shield-agent/kya 0.15.0 → 0.16.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/.mcp.json +1 -1
- package/README.md +3 -3
- package/amp/settings.example.json +1 -1
- package/claude/claude_desktop_config.example.json +1 -1
- package/cline/cline_mcp_settings.example.json +1 -1
- package/copilot/mcp-config.example.json +1 -1
- package/dist/receipt/enrich.d.ts +1 -0
- package/dist/receipt/enrich.d.ts.map +1 -1
- package/dist/receipt/enrich.js +1 -0
- package/dist/receipt/enrich.js.map +1 -1
- package/dist/receipt/gate-card.d.ts +2 -0
- package/dist/receipt/gate-card.d.ts.map +1 -1
- package/dist/receipt/gate-card.js +1 -1
- package/dist/receipt/gate-card.js.map +1 -1
- package/dist/receipt/gate-page.d.ts +47 -0
- package/dist/receipt/gate-page.d.ts.map +1 -0
- package/dist/receipt/gate-page.js +116 -0
- package/dist/receipt/gate-page.js.map +1 -0
- package/dist/receipt/live-server.d.ts +8 -0
- package/dist/receipt/live-server.d.ts.map +1 -1
- package/dist/receipt/live-server.js +134 -1
- package/dist/receipt/live-server.js.map +1 -1
- package/dist/receipt/receipt-css.d.ts +6 -5
- package/dist/receipt/receipt-css.d.ts.map +1 -1
- package/dist/receipt/receipt-css.js +255 -55
- package/dist/receipt/receipt-css.js.map +1 -1
- package/dist/receipt/render-receipt.d.ts +2 -2
- package/dist/receipt/render-receipt.d.ts.map +1 -1
- package/dist/receipt/render-receipt.js +414 -49
- package/dist/receipt/render-receipt.js.map +1 -1
- package/droid/README.md +1 -1
- package/droid/mcp.example.json +1 -1
- package/gemini/settings.example.json +1 -1
- package/grok/README.md +1 -1
- package/kilo/kilo.example.json +1 -1
- package/kimi/mcp.example.json +1 -1
- package/kiro/mcp.example.json +1 -1
- package/manifest.json +1 -1
- package/mastracode/mcp.example.json +1 -1
- package/mcp.json +1 -1
- package/openai/codex.config.example.toml +1 -1
- package/opencode/opencode.example.json +1 -1
- package/package.json +1 -1
- package/qwen/settings.example.json +1 -1
- package/server.json +2 -2
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
* The page must stay fully offline/standalone: system font stacks only, no
|
|
5
5
|
* external URLs of any kind. Colors come from the --bg/--fg/--mute/--line/
|
|
6
6
|
* --card base tokens plus the --ok/--warn/--bad tone family; dark is the
|
|
7
|
-
* default and light rides on prefers-color-scheme
|
|
8
|
-
*
|
|
7
|
+
* default and light rides on prefers-color-scheme or an explicit
|
|
8
|
+
* html[data-theme="light"] attribute, with translucency done via color-mix so
|
|
9
|
+
* both schemes share one rule set.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
* #activity/#system and :target shows the
|
|
12
|
-
* gated behind
|
|
11
|
+
* Zone switching is pure CSS: nav links point at
|
|
12
|
+
* #overview/#activity/#changes/#certify/#gateway/#system and :target shows the
|
|
13
|
+
* matching zone. The hide rules are gated behind
|
|
13
14
|
* `@supports selector(body:has(*))`, so a browser without :has() simply shows
|
|
14
15
|
* every zone stacked — degraded, but nothing is ever hidden unreachable.
|
|
15
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt-css.d.ts","sourceRoot":"","sources":["../../src/receipt/receipt-css.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"receipt-css.d.ts","sourceRoot":"","sources":["../../src/receipt/receipt-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAgxBnC"}
|
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
* The page must stay fully offline/standalone: system font stacks only, no
|
|
5
5
|
* external URLs of any kind. Colors come from the --bg/--fg/--mute/--line/
|
|
6
6
|
* --card base tokens plus the --ok/--warn/--bad tone family; dark is the
|
|
7
|
-
* default and light rides on prefers-color-scheme
|
|
8
|
-
*
|
|
7
|
+
* default and light rides on prefers-color-scheme or an explicit
|
|
8
|
+
* html[data-theme="light"] attribute, with translucency done via color-mix so
|
|
9
|
+
* both schemes share one rule set.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
* #activity/#system and :target shows the
|
|
12
|
-
* gated behind
|
|
11
|
+
* Zone switching is pure CSS: nav links point at
|
|
12
|
+
* #overview/#activity/#changes/#certify/#gateway/#system and :target shows the
|
|
13
|
+
* matching zone. The hide rules are gated behind
|
|
13
14
|
* `@supports selector(body:has(*))`, so a browser without :has() simply shows
|
|
14
15
|
* every zone stacked — degraded, but nothing is ever hidden unreachable.
|
|
15
16
|
*/
|
|
@@ -17,6 +18,7 @@ export function receiptCss() {
|
|
|
17
18
|
return `
|
|
18
19
|
:root {
|
|
19
20
|
color-scheme: dark;
|
|
21
|
+
--sidebar-width: 15rem;
|
|
20
22
|
--bg: #0a0c10;
|
|
21
23
|
--fg: #eef2f7;
|
|
22
24
|
--mute: #8b95a8;
|
|
@@ -28,8 +30,21 @@ export function receiptCss() {
|
|
|
28
30
|
--rail: #2a3344;
|
|
29
31
|
--day: #6b7280;
|
|
30
32
|
}
|
|
33
|
+
:root[data-theme="light"] {
|
|
34
|
+
color-scheme: light;
|
|
35
|
+
--bg: #f3f5f8;
|
|
36
|
+
--fg: #0f172a;
|
|
37
|
+
--mute: #64748b;
|
|
38
|
+
--line: #e2e8f0;
|
|
39
|
+
--card: #ffffff;
|
|
40
|
+
--ok: #059669;
|
|
41
|
+
--bad: #dc2626;
|
|
42
|
+
--warn: #d97706;
|
|
43
|
+
--rail: #cbd5e1;
|
|
44
|
+
--day: #64748b;
|
|
45
|
+
}
|
|
31
46
|
@media (prefers-color-scheme: light) {
|
|
32
|
-
:root {
|
|
47
|
+
:root:not([data-theme]) {
|
|
33
48
|
color-scheme: light;
|
|
34
49
|
--bg: #f3f5f8;
|
|
35
50
|
--fg: #0f172a;
|
|
@@ -51,20 +66,94 @@ export function receiptCss() {
|
|
|
51
66
|
color: var(--fg);
|
|
52
67
|
line-height: 1.4;
|
|
53
68
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
background:
|
|
60
|
-
-
|
|
61
|
-
|
|
69
|
+
/* Fixed left sidebar: brand, vertical nav, footer actions. */
|
|
70
|
+
.sidebar {
|
|
71
|
+
position: fixed; top: 0; left: 0; bottom: 0;
|
|
72
|
+
width: var(--sidebar-width);
|
|
73
|
+
display: flex; flex-direction: column;
|
|
74
|
+
background: var(--card);
|
|
75
|
+
border-right: 1px solid var(--line);
|
|
76
|
+
z-index: 10;
|
|
77
|
+
}
|
|
78
|
+
.sidebar-header {
|
|
79
|
+
padding: 1.1rem 1.25rem;
|
|
62
80
|
border-bottom: 1px solid var(--line);
|
|
63
|
-
margin-bottom: 1rem;
|
|
64
81
|
}
|
|
65
|
-
|
|
66
|
-
|
|
82
|
+
.brand {
|
|
83
|
+
display: inline-flex; align-items: center; gap: 0.55rem;
|
|
84
|
+
font-weight: 800; font-size: 1.1rem; letter-spacing: -0.02em;
|
|
85
|
+
}
|
|
86
|
+
.mark {
|
|
87
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
88
|
+
width: 1.6rem; height: 1.6rem; border-radius: 6px;
|
|
89
|
+
background: var(--fg); color: var(--card);
|
|
90
|
+
font-size: 1rem; line-height: 1;
|
|
91
|
+
}
|
|
92
|
+
.wordmark { color: var(--fg); }
|
|
93
|
+
.sidebar-nav {
|
|
94
|
+
flex: 1 1 auto; overflow-y: auto;
|
|
95
|
+
padding: 0.75rem; display: flex; flex-direction: column; gap: 0.15rem;
|
|
96
|
+
}
|
|
97
|
+
.nav-link {
|
|
98
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
99
|
+
gap: 0.5rem;
|
|
100
|
+
padding: 0.55rem 0.75rem;
|
|
101
|
+
font-size: 0.82rem; font-weight: 600; color: var(--mute);
|
|
102
|
+
text-decoration: none; border-radius: 8px;
|
|
103
|
+
border: 1px solid transparent;
|
|
104
|
+
}
|
|
105
|
+
.nav-link:hover { color: var(--fg); background: color-mix(in srgb, var(--bg) 55%, var(--card)); }
|
|
106
|
+
.nav-link:focus-visible {
|
|
107
|
+
outline: 2px solid var(--ok);
|
|
108
|
+
outline-offset: 2px;
|
|
109
|
+
color: var(--fg);
|
|
110
|
+
}
|
|
111
|
+
.nav-label { display: inline-flex; align-items: center; gap: 0.4rem; }
|
|
112
|
+
.nav-count {
|
|
113
|
+
font-size: 0.72rem; font-variant-numeric: tabular-nums; font-weight: 650;
|
|
114
|
+
color: var(--mute); background: color-mix(in srgb, var(--bg) 55%, var(--card));
|
|
115
|
+
border: 1px solid var(--line); border-radius: 999px;
|
|
116
|
+
padding: 0.08rem 0.45rem;
|
|
117
|
+
}
|
|
118
|
+
.status-dot {
|
|
119
|
+
width: 0.45rem; height: 0.45rem; border-radius: 50%;
|
|
120
|
+
background: var(--ok);
|
|
121
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--ok) 22%, transparent);
|
|
122
|
+
}
|
|
123
|
+
.sidebar-footer {
|
|
124
|
+
padding: 0.9rem 1.25rem;
|
|
125
|
+
border-top: 1px solid var(--line);
|
|
126
|
+
display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
|
|
127
|
+
}
|
|
128
|
+
.theme-toggle {
|
|
129
|
+
font-family: inherit; font-size: 0.75rem; font-weight: 600;
|
|
130
|
+
color: var(--fg); background: var(--bg);
|
|
131
|
+
border: 1px solid var(--line); border-radius: 8px;
|
|
132
|
+
padding: 0.35rem 0.7rem; cursor: pointer;
|
|
133
|
+
appearance: none; -webkit-appearance: none;
|
|
134
|
+
}
|
|
135
|
+
.theme-toggle:hover { border-color: var(--mute); }
|
|
136
|
+
.theme-toggle:focus-visible {
|
|
137
|
+
outline: 2px solid var(--ok);
|
|
138
|
+
outline-offset: 2px;
|
|
139
|
+
}
|
|
140
|
+
.sidebar-footer a {
|
|
141
|
+
font-size: 0.75rem; font-weight: 600; color: var(--mute);
|
|
142
|
+
text-decoration: none;
|
|
143
|
+
}
|
|
144
|
+
.sidebar-footer a:hover { color: var(--fg); }
|
|
145
|
+
.sidebar-footer a:focus-visible {
|
|
146
|
+
outline: 2px solid var(--ok);
|
|
147
|
+
outline-offset: 2px;
|
|
148
|
+
color: var(--fg);
|
|
149
|
+
}
|
|
150
|
+
main {
|
|
151
|
+
margin-left: var(--sidebar-width);
|
|
152
|
+
max-width: 74rem;
|
|
153
|
+
margin-right: auto;
|
|
154
|
+
padding: 1.35rem 1.25rem 3.5rem;
|
|
67
155
|
}
|
|
156
|
+
.page-header { margin-bottom: 1.25rem; }
|
|
68
157
|
.title-row {
|
|
69
158
|
display: flex; align-items: baseline; justify-content: space-between;
|
|
70
159
|
gap: 0.75rem; flex-wrap: wrap;
|
|
@@ -134,6 +223,26 @@ export function receiptCss() {
|
|
|
134
223
|
@media (max-width: 1100px) {
|
|
135
224
|
.hero { grid-template-columns: repeat(2, 1fr); }
|
|
136
225
|
}
|
|
226
|
+
@media (max-width: 900px) {
|
|
227
|
+
.sidebar {
|
|
228
|
+
position: sticky; top: 0;
|
|
229
|
+
width: 100%; height: auto; flex-direction: row; flex-wrap: wrap;
|
|
230
|
+
border-right: none; border-bottom: 1px solid var(--line);
|
|
231
|
+
}
|
|
232
|
+
.sidebar-header {
|
|
233
|
+
border-bottom: none; border-right: 1px solid var(--line);
|
|
234
|
+
padding: 0.75rem 1rem;
|
|
235
|
+
}
|
|
236
|
+
.sidebar-nav {
|
|
237
|
+
flex-direction: row; flex-wrap: wrap; overflow-x: auto;
|
|
238
|
+
flex: 1 1 auto; padding: 0.6rem;
|
|
239
|
+
}
|
|
240
|
+
.sidebar-footer {
|
|
241
|
+
border-top: none; border-left: 1px solid var(--line);
|
|
242
|
+
padding: 0.75rem 1rem;
|
|
243
|
+
}
|
|
244
|
+
main { margin-left: 0; padding-top: 1rem; }
|
|
245
|
+
}
|
|
137
246
|
@media (max-width: 720px) {
|
|
138
247
|
main { padding: 1.1rem 0.85rem 3rem; }
|
|
139
248
|
}
|
|
@@ -187,51 +296,27 @@ export function receiptCss() {
|
|
|
187
296
|
.sev.high { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 40%, transparent); }
|
|
188
297
|
.sev.medium { color: var(--day); }
|
|
189
298
|
.sev.low { color: var(--mute); }
|
|
190
|
-
/*
|
|
191
|
-
rules never apply and every zone stays visible (degraded but complete). */
|
|
192
|
-
.tabs {
|
|
193
|
-
display: flex; gap: 0.25rem; flex-wrap: wrap;
|
|
194
|
-
}
|
|
195
|
-
.tab {
|
|
196
|
-
padding: 0.45rem 0.85rem; margin-bottom: -1px;
|
|
197
|
-
font-size: 0.8rem; font-weight: 600; color: var(--mute);
|
|
198
|
-
text-decoration: none;
|
|
199
|
-
border: 1px solid transparent; border-bottom: none;
|
|
200
|
-
border-radius: 8px 8px 0 0;
|
|
201
|
-
}
|
|
202
|
-
.tab:hover { color: var(--fg); }
|
|
203
|
-
.tab:focus-visible {
|
|
204
|
-
outline: 2px solid var(--ok);
|
|
205
|
-
outline-offset: 2px;
|
|
206
|
-
color: var(--fg);
|
|
207
|
-
}
|
|
208
|
-
/* Narrow screens: tabs stop wrapping and scroll horizontally instead.
|
|
209
|
-
Padding keeps the focus outline (2px + 2px offset) inside the scrollport. */
|
|
210
|
-
@media (max-width: 480px) {
|
|
211
|
-
.tabs {
|
|
212
|
-
flex-wrap: nowrap; overflow-x: auto;
|
|
213
|
-
scrollbar-width: thin;
|
|
214
|
-
padding: 4px;
|
|
215
|
-
}
|
|
216
|
-
.tab { flex: none; }
|
|
217
|
-
}
|
|
299
|
+
/* Sidebar nav: pure-CSS :target switching, no JS. Without :has() support
|
|
300
|
+
the hide rules never apply and every zone stays visible (degraded but complete). */
|
|
218
301
|
.zone { scroll-margin-top: 6.4rem; }
|
|
219
302
|
.zone-empty { margin: 0.25rem 0 0.5rem; }
|
|
220
303
|
@supports selector(body:has(*)) {
|
|
221
|
-
#
|
|
222
|
-
#overview:target, #
|
|
223
|
-
body:has(#changes:target) #overview,
|
|
304
|
+
#activity, #changes, #certify, #gateway, #system { display: none; }
|
|
305
|
+
#overview:target, #activity:target, #changes:target, #certify:target, #gateway:target, #system:target { display: block; }
|
|
224
306
|
body:has(#activity:target) #overview,
|
|
307
|
+
body:has(#changes:target) #overview,
|
|
225
308
|
body:has(#certify:target) #overview,
|
|
309
|
+
body:has(#gateway:target) #overview,
|
|
226
310
|
body:has(#system:target) #overview { display: none; }
|
|
227
|
-
body:not(:has(.zone:target)) .
|
|
228
|
-
body:has(#overview:target) .
|
|
229
|
-
body:has(#
|
|
230
|
-
body:has(#
|
|
231
|
-
body:has(#
|
|
232
|
-
body:has(#
|
|
311
|
+
body:not(:has(.zone:target)) .nav-link[href="#overview"],
|
|
312
|
+
body:has(#overview:target) .nav-link[href="#overview"],
|
|
313
|
+
body:has(#activity:target) .nav-link[href="#activity"],
|
|
314
|
+
body:has(#changes:target) .nav-link[href="#changes"],
|
|
315
|
+
body:has(#certify:target) .nav-link[href="#certify"],
|
|
316
|
+
body:has(#gateway:target) .nav-link[href="#gateway"],
|
|
317
|
+
body:has(#system:target) .nav-link[href="#system"] {
|
|
233
318
|
color: var(--fg);
|
|
234
|
-
background: var(--
|
|
319
|
+
background: var(--bg);
|
|
235
320
|
border-color: var(--line);
|
|
236
321
|
}
|
|
237
322
|
}
|
|
@@ -597,6 +682,121 @@ export function receiptCss() {
|
|
|
597
682
|
font-size: 0.72rem; color: var(--mute);
|
|
598
683
|
background: var(--card); border: 1px solid var(--line);
|
|
599
684
|
border-radius: 6px; padding: 0.18rem 0.4rem;
|
|
685
|
+
}
|
|
686
|
+
/* Gateway zone dashboard */
|
|
687
|
+
.gate-zone h2 { margin: 0 0 0.15rem; }
|
|
688
|
+
.gate-zone > .sub {
|
|
689
|
+
margin: 0 0 0.9rem; color: var(--mute); font-size: 0.82rem;
|
|
690
|
+
}
|
|
691
|
+
.stat-cards {
|
|
692
|
+
display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
|
|
693
|
+
margin-bottom: 1rem;
|
|
694
|
+
}
|
|
695
|
+
.stat-card {
|
|
696
|
+
background: var(--card); border: 1px solid var(--line);
|
|
697
|
+
border-radius: 12px; padding: 0.7rem 0.9rem;
|
|
698
|
+
display: flex; flex-direction: column; gap: 0.35rem;
|
|
699
|
+
}
|
|
700
|
+
.stat-card .lab {
|
|
701
|
+
font-size: 0.66rem; font-weight: 700; letter-spacing: 0.07em;
|
|
702
|
+
text-transform: uppercase; color: var(--mute);
|
|
703
|
+
}
|
|
704
|
+
.stat-card .num {
|
|
705
|
+
font-size: 1.6rem; font-weight: 700; line-height: 1.15;
|
|
706
|
+
font-variant-numeric: tabular-nums; letter-spacing: -0.02em;
|
|
707
|
+
color: var(--fg);
|
|
708
|
+
}
|
|
709
|
+
.stat-card .num.bad { color: var(--bad); }
|
|
710
|
+
.stat-card .val { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
|
|
711
|
+
.card-grid {
|
|
712
|
+
display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem;
|
|
713
|
+
margin-bottom: 1rem;
|
|
714
|
+
}
|
|
715
|
+
.card {
|
|
716
|
+
background: var(--card); border: 1px solid var(--line);
|
|
717
|
+
border-radius: 12px; padding: 0.7rem 0.9rem 0.8rem;
|
|
718
|
+
}
|
|
719
|
+
.card h3 {
|
|
720
|
+
margin: 0 0 0.55rem; font-size: 0.72rem; font-weight: 700;
|
|
721
|
+
letter-spacing: 0.07em; text-transform: uppercase; color: var(--day);
|
|
722
|
+
}
|
|
723
|
+
.card h3 .mute { text-transform: none; letter-spacing: 0.02em; font-weight: 600; }
|
|
724
|
+
.card .sub {
|
|
725
|
+
margin: 0.6rem 0 0.3rem; font-size: 0.66rem; font-weight: 700;
|
|
726
|
+
letter-spacing: 0.06em; text-transform: uppercase; color: var(--mute);
|
|
727
|
+
}
|
|
728
|
+
.card .line { margin: 0.25rem 0; font-size: 0.82rem; word-break: break-word; }
|
|
729
|
+
.card pre {
|
|
730
|
+
background: color-mix(in srgb, var(--bg) 55%, var(--card));
|
|
731
|
+
border: 1px solid var(--line); border-radius: 8px;
|
|
732
|
+
padding: 0.45rem 0.55rem; margin: 0.3rem 0 0.6rem;
|
|
733
|
+
font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
|
|
734
|
+
font-size: 0.74rem; white-space: pre-wrap; word-break: break-word;
|
|
735
|
+
color: var(--fg);
|
|
736
|
+
}
|
|
737
|
+
.card details { margin: 0.25rem 0; }
|
|
738
|
+
.card details summary {
|
|
739
|
+
font-size: 0.8rem; cursor: pointer; color: var(--fg);
|
|
740
|
+
list-style: none;
|
|
741
|
+
}
|
|
742
|
+
.card details summary::-webkit-details-marker { display: none; }
|
|
743
|
+
.targets-table { margin-top: 0.35rem; }
|
|
744
|
+
.chip.bad {
|
|
745
|
+
color: var(--bad); border-color: color-mix(in srgb, var(--bad) 40%, transparent);
|
|
746
|
+
background: color-mix(in srgb, var(--bad) 10%, var(--card));
|
|
747
|
+
}
|
|
748
|
+
.playground-form {
|
|
749
|
+
display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: stretch;
|
|
750
|
+
margin: 0.5rem 0;
|
|
751
|
+
}
|
|
752
|
+
.playground-form select,
|
|
753
|
+
.playground-form input {
|
|
754
|
+
font-family: inherit; font-size: 0.8rem; color: var(--fg); background: var(--bg);
|
|
755
|
+
border: 1px solid var(--line); border-radius: 8px; padding: 0.35rem 0.55rem;
|
|
756
|
+
appearance: none; -webkit-appearance: none;
|
|
757
|
+
}
|
|
758
|
+
.playground-form select { min-width: 8rem; }
|
|
759
|
+
.playground-form input { flex: 1 1 10rem; min-width: 8rem; }
|
|
760
|
+
.quick-actions {
|
|
761
|
+
display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
|
|
762
|
+
margin: 0.5rem 0;
|
|
763
|
+
}
|
|
764
|
+
.sr-only {
|
|
765
|
+
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
|
|
766
|
+
overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
|
|
767
|
+
}
|
|
768
|
+
@media (max-width: 900px) {
|
|
769
|
+
.stat-cards { grid-template-columns: repeat(2, 1fr); }
|
|
770
|
+
.card-grid { grid-template-columns: 1fr; }
|
|
771
|
+
}
|
|
772
|
+
@media (max-width: 480px) {
|
|
773
|
+
.stat-cards { grid-template-columns: 1fr; }
|
|
774
|
+
}
|
|
775
|
+
/* Gateway interactive result areas (playground + doctor/quick actions). */
|
|
776
|
+
.gate-result {
|
|
777
|
+
margin-top: 0.5rem;
|
|
778
|
+
padding: 0.45rem 0.6rem;
|
|
779
|
+
font-size: 0.8rem;
|
|
780
|
+
background: color-mix(in srgb, var(--bg) 55%, var(--card));
|
|
781
|
+
border: 1px solid var(--line);
|
|
782
|
+
border-radius: 8px;
|
|
783
|
+
word-break: break-word;
|
|
784
|
+
}
|
|
785
|
+
.gate-result p { margin: 0.15rem 0; }
|
|
786
|
+
.gate-result pre {
|
|
787
|
+
margin: 0;
|
|
788
|
+
white-space: pre-wrap;
|
|
789
|
+
word-break: break-word;
|
|
790
|
+
font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
|
|
791
|
+
font-size: 0.74rem;
|
|
792
|
+
}
|
|
793
|
+
.gate-result.error {
|
|
794
|
+
background: color-mix(in srgb, var(--bad) 10%, var(--card));
|
|
795
|
+
border-color: color-mix(in srgb, var(--bad) 35%, var(--line));
|
|
796
|
+
}
|
|
797
|
+
button[disabled], .stat[disabled] {
|
|
798
|
+
opacity: 0.55;
|
|
799
|
+
cursor: not-allowed;
|
|
600
800
|
}`;
|
|
601
801
|
}
|
|
602
802
|
//# sourceMappingURL=receipt-css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt-css.js","sourceRoot":"","sources":["../../src/receipt/receipt-css.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"receipt-css.js","sourceRoot":"","sources":["../../src/receipt/receipt-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8wBL,CAAA;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { type TrailEvent } from "../trail.js";
|
|
|
2
2
|
import type { KyaFileConfig } from "../config.js";
|
|
3
3
|
import { type CertifyCard, type OrrCard, type SandboxCard, type WiredHostRow } from "./enrich.js";
|
|
4
4
|
import { type ShowbackReport } from "../showback/cost-per-task.js";
|
|
5
|
-
import { type
|
|
5
|
+
import { type GatePage } from "./gate-page.js";
|
|
6
6
|
export interface ReceiptModel {
|
|
7
7
|
readonly title: string;
|
|
8
8
|
readonly rangeLabel: string;
|
|
@@ -27,7 +27,7 @@ export interface ReceiptModel {
|
|
|
27
27
|
/** Per-host wiring status across the connect registry. */
|
|
28
28
|
readonly wiredHosts?: readonly WiredHostRow[];
|
|
29
29
|
/** Local gateway state + per-server activity in the window. */
|
|
30
|
-
readonly gate?:
|
|
30
|
+
readonly gate?: GatePage;
|
|
31
31
|
/** Slim ORR card from orr-report/report.json. */
|
|
32
32
|
readonly orr?: OrrCard;
|
|
33
33
|
/** Live Agent Trust Baseline card, recomputed on every model load. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-receipt.d.ts","sourceRoot":"","sources":["../../src/receipt/render-receipt.ts"],"names":[],"mappings":"AAUA,OAAO,EAA2C,KAAK,UAAU,EAAqB,MAAM,aAAa,CAAC;AAE1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,
|
|
1
|
+
{"version":3,"file":"render-receipt.d.ts","sourceRoot":"","sources":["../../src/receipt/render-receipt.ts"],"names":[],"mappings":"AAUA,OAAO,EAA2C,KAAK,UAAU,EAAqB,MAAM,aAAa,CAAC;AAE1G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAOL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAOL,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpF,gEAAgE;IAChE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC9C,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;CACpC;AAsGD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9F,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,mCAAmC;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC;IACvC,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAC;IACvC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;CACvC;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,eAAe,CA6E9E;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,GACtF,YAAY,CAmBd;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,GACtF,YAAY,CAmBd;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GAAG,YAAY,CA2Bf;AA+hCD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAmb7D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAmRjE"}
|