@shield-agent/kya 0.24.0 → 0.24.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.
- package/.cursor-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/README.md +4 -4
- 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/mcp-servers.d.ts +2 -0
- package/dist/mcp-servers.d.ts.map +1 -1
- package/dist/mcp-servers.js +50 -4
- package/dist/mcp-servers.js.map +1 -1
- package/dist/offline-evaluate.d.ts +2 -0
- package/dist/offline-evaluate.d.ts.map +1 -1
- package/dist/offline-evaluate.js +4 -1
- package/dist/offline-evaluate.js.map +1 -1
- package/dist/receipt/live-server.d.ts +18 -1
- package/dist/receipt/live-server.d.ts.map +1 -1
- package/dist/receipt/live-server.js +171 -3
- package/dist/receipt/live-server.js.map +1 -1
- package/dist/receipt/receipt-css.d.ts.map +1 -1
- package/dist/receipt/receipt-css.js +12 -0
- package/dist/receipt/receipt-css.js.map +1 -1
- package/dist/receipt/render-receipt.d.ts +1 -1
- package/dist/receipt/render-receipt.d.ts.map +1 -1
- package/dist/receipt/render-receipt.js +142 -23
- package/dist/receipt/render-receipt.js.map +1 -1
- package/dist/telemetry.d.ts +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +8 -3
- package/dist/telemetry.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 +2 -2
- package/qwen/settings.example.json +1 -1
- package/server.json +2 -2
|
@@ -884,6 +884,18 @@ export function receiptCss() {
|
|
|
884
884
|
}
|
|
885
885
|
.playground-form select { min-width: 8rem; }
|
|
886
886
|
.playground-form input { flex: 1 1 10rem; min-width: 8rem; }
|
|
887
|
+
.inline-form {
|
|
888
|
+
display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: stretch;
|
|
889
|
+
margin: 0.5rem 0;
|
|
890
|
+
}
|
|
891
|
+
.inline-form select,
|
|
892
|
+
.inline-form input {
|
|
893
|
+
font-family: inherit; font-size: 0.8rem; color: var(--fg); background: var(--bg);
|
|
894
|
+
border: 1px solid var(--line); border-radius: 8px; padding: 0.35rem 0.55rem;
|
|
895
|
+
appearance: none; -webkit-appearance: none;
|
|
896
|
+
}
|
|
897
|
+
.inline-form select { min-width: 8rem; }
|
|
898
|
+
.inline-form input { flex: 1 1 10rem; min-width: 8rem; }
|
|
887
899
|
.quick-actions {
|
|
888
900
|
display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
|
|
889
901
|
margin: 0.5rem 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt-css.js","sourceRoot":"","sources":["../../src/receipt/receipt-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO
|
|
1
|
+
{"version":3,"file":"receipt-css.js","sourceRoot":"","sources":["../../src/receipt/receipt-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAs6BL,CAAA;AACJ,CAAC"}
|
|
@@ -108,7 +108,7 @@ export interface ImportCard {
|
|
|
108
108
|
/**
|
|
109
109
|
* Aggregate host "import" trail events (written by kya import; reasonCode
|
|
110
110
|
* IMPORTED / IMPORTED_ERROR) per source format. Undefined when the trail has
|
|
111
|
-
* no imported events - the report section
|
|
111
|
+
* no imported events - the report section renders its empty state instead.
|
|
112
112
|
*/
|
|
113
113
|
export declare function aggregateImports(events: readonly TrailEvent[]): ImportCard | undefined;
|
|
114
114
|
export declare function buildReceiptModel(sessionId: string, events: readonly TrailEvent[], extras?: Partial<Omit<ReceiptModel, "title" | "events" | "generatedAt" | "rangeLabel">>): ReceiptModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-receipt.d.ts","sourceRoot":"","sources":["../../src/receipt/render-receipt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"render-receipt.d.ts","sourceRoot":"","sources":["../../src/receipt/render-receipt.ts"],"names":[],"mappings":"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"}
|
|
@@ -218,7 +218,7 @@ function legacyImportFormat(sessionId) {
|
|
|
218
218
|
/**
|
|
219
219
|
* Aggregate host "import" trail events (written by kya import; reasonCode
|
|
220
220
|
* IMPORTED / IMPORTED_ERROR) per source format. Undefined when the trail has
|
|
221
|
-
* no imported events - the report section
|
|
221
|
+
* no imported events - the report section renders its empty state instead.
|
|
222
222
|
*/
|
|
223
223
|
export function aggregateImports(events) {
|
|
224
224
|
const byFormat = new Map();
|
|
@@ -1362,12 +1362,36 @@ export function gatewayHeroCard(page, _nowMs) {
|
|
|
1362
1362
|
</section>`;
|
|
1363
1363
|
}
|
|
1364
1364
|
/**
|
|
1365
|
-
* Hero Import card: per-format rollup of imported trace events.
|
|
1366
|
-
* the
|
|
1365
|
+
* Hero Import card: per-format rollup of imported trace events. With no
|
|
1366
|
+
* imported events the card still renders as an empty state (CLI hint plus,
|
|
1367
|
+
* on the live report, an inline import form) so the feature is discoverable.
|
|
1367
1368
|
*/
|
|
1368
|
-
function importHeroCard(card, nowMs) {
|
|
1369
|
-
if (!card)
|
|
1370
|
-
|
|
1369
|
+
function importHeroCard(card, nowMs, live) {
|
|
1370
|
+
if (!card) {
|
|
1371
|
+
const form = live
|
|
1372
|
+
? `<form class="inline-form" id="import-form">
|
|
1373
|
+
<label class="sr-only" for="import-from">Source</label>
|
|
1374
|
+
<select id="import-from" name="from" required>
|
|
1375
|
+
<option value="" disabled selected>Source</option>
|
|
1376
|
+
<option value="langsmith">LangSmith</option>
|
|
1377
|
+
<option value="langfuse">Langfuse</option>
|
|
1378
|
+
<option value="phoenix">Phoenix</option>
|
|
1379
|
+
<option value="otel">OTel JSON</option>
|
|
1380
|
+
<option value="agt">AGT audit log</option>
|
|
1381
|
+
</select>
|
|
1382
|
+
<label class="sr-only" for="import-file">File path</label>
|
|
1383
|
+
<input id="import-file" name="file" type="text" placeholder="/path/to/traces.json" />
|
|
1384
|
+
<button type="submit" class="stat">Import</button>
|
|
1385
|
+
</form>
|
|
1386
|
+
<div id="import-result"></div>`
|
|
1387
|
+
: "";
|
|
1388
|
+
return `<section class="panel" aria-label="Import">
|
|
1389
|
+
<h2>Import</h2>
|
|
1390
|
+
<p class="line">Nothing imported yet. Bring existing LangSmith, Langfuse, Phoenix, OTel, or AGT traces into the trail so they show up in this report and feed Certify.</p>
|
|
1391
|
+
<p class="mute small">CLI: <code>kya import --from langsmith|langfuse|phoenix|otel FILE</code> · <code>kya import --from agt</code> reads the AGT audit log</p>
|
|
1392
|
+
${form}
|
|
1393
|
+
</section>`;
|
|
1394
|
+
}
|
|
1371
1395
|
const chips = card.formats
|
|
1372
1396
|
.map((f) => `<span class="chip"><code>${esc(f.format)}</code> × ${f.imported}${f.errors > 0 ? ` · ${f.errors} err` : ""}</span>`)
|
|
1373
1397
|
.join("\n ");
|
|
@@ -1391,12 +1415,23 @@ function severityPill(severity) {
|
|
|
1391
1415
|
}
|
|
1392
1416
|
/**
|
|
1393
1417
|
* Hero Investigations card: the persisted summary of the last kya investigate
|
|
1394
|
-
* run.
|
|
1418
|
+
* run. With no summary file the card still renders as an empty state (CLI hint
|
|
1419
|
+
* plus, on the live report, a run button); a clean run (zero findings) also
|
|
1395
1420
|
* renders, since the run itself is the data.
|
|
1396
1421
|
*/
|
|
1397
|
-
function investigateHeroCard(card, nowMs) {
|
|
1398
|
-
if (!card)
|
|
1399
|
-
|
|
1422
|
+
function investigateHeroCard(card, nowMs, live) {
|
|
1423
|
+
if (!card) {
|
|
1424
|
+
const run = live
|
|
1425
|
+
? `<button type="button" class="stat" data-report-action="investigate">Run investigation now</button>
|
|
1426
|
+
<div id="report-action-result-investigate"></div>`
|
|
1427
|
+
: "";
|
|
1428
|
+
return `<section class="panel" aria-label="Investigations">
|
|
1429
|
+
<h2>Investigations</h2>
|
|
1430
|
+
<p class="line">No investigation has run yet. Deterministic detectors scan the trail for deny spikes, incidents, and risky patterns, then write fix briefs for your coding agent.</p>
|
|
1431
|
+
<p class="mute small">CLI: <code>kya investigate</code></p>
|
|
1432
|
+
${run}
|
|
1433
|
+
</section>`;
|
|
1434
|
+
}
|
|
1400
1435
|
const findingCount = card.findings.reduce((n, f) => n + f.count, 0);
|
|
1401
1436
|
const rows = card.findings.length === 0
|
|
1402
1437
|
? `<p class="line">No findings - the trail looks clean for all detectors.</p>`
|
|
@@ -1421,11 +1456,22 @@ ${card.findings
|
|
|
1421
1456
|
}
|
|
1422
1457
|
/**
|
|
1423
1458
|
* System-tab Alerts panel: per-target delivery rollup from the notify ledger.
|
|
1424
|
-
*
|
|
1459
|
+
* With no deliveries yet the panel still renders as an empty state (config
|
|
1460
|
+
* hint plus, on the live report, a test-alert button).
|
|
1425
1461
|
*/
|
|
1426
|
-
function alertsPanel(card, nowMs) {
|
|
1427
|
-
if (!card)
|
|
1428
|
-
|
|
1462
|
+
function alertsPanel(card, nowMs, live) {
|
|
1463
|
+
if (!card) {
|
|
1464
|
+
const test = live
|
|
1465
|
+
? `<button type="button" class="stat" data-report-action="notify-test">Send test alert</button>
|
|
1466
|
+
<div id="report-action-result-notify-test"></div>`
|
|
1467
|
+
: "";
|
|
1468
|
+
return `<section class="panel" aria-label="Alerts">
|
|
1469
|
+
<h2>Alerts</h2>
|
|
1470
|
+
<p class="line">No alert deliveries yet. kya fires webhooks for DENY and REQUIRE_APPROVE verdicts; every delivery attempt is logged here per target.</p>
|
|
1471
|
+
<p class="mute small">configure <code>notify.webhooks</code> in .kya/config.json or set <code>KYA_NOTIFY_WEBHOOK</code>, then send a test alert</p>
|
|
1472
|
+
${test}
|
|
1473
|
+
</section>`;
|
|
1474
|
+
}
|
|
1429
1475
|
const rows = card.targets
|
|
1430
1476
|
.map((t) => {
|
|
1431
1477
|
const status = t.lastOk
|
|
@@ -1453,12 +1499,23 @@ ${rows}
|
|
|
1453
1499
|
</section>`;
|
|
1454
1500
|
}
|
|
1455
1501
|
/**
|
|
1456
|
-
* System-tab OTel panel: persisted OTLP export counters.
|
|
1457
|
-
*
|
|
1502
|
+
* System-tab OTel panel: persisted OTLP export counters. With no stats file
|
|
1503
|
+
* yet the panel still renders as an empty state (config hint plus, on the
|
|
1504
|
+
* live report, a self-test button).
|
|
1458
1505
|
*/
|
|
1459
|
-
function otelPanel(stats, nowMs) {
|
|
1460
|
-
if (!stats)
|
|
1461
|
-
|
|
1506
|
+
function otelPanel(stats, nowMs, live) {
|
|
1507
|
+
if (!stats) {
|
|
1508
|
+
const test = live
|
|
1509
|
+
? `<button type="button" class="stat" data-report-action="otel-test">Test export now</button>
|
|
1510
|
+
<div id="report-action-result-otel-test"></div>`
|
|
1511
|
+
: "";
|
|
1512
|
+
return `<section class="panel" aria-label="OTel export">
|
|
1513
|
+
<h2>OTel export</h2>
|
|
1514
|
+
<p class="line">No spans exported yet. kya can mirror verdict events to any OTLP/HTTP collector; sent and failed counts are tracked here.</p>
|
|
1515
|
+
<p class="mute small">configure <code>otlpExport.endpoint</code> in .kya/config.json or set <code>KYA_OTLP_EXPORT_ENDPOINT</code>, then test the export</p>
|
|
1516
|
+
${test}
|
|
1517
|
+
</section>`;
|
|
1518
|
+
}
|
|
1462
1519
|
const endpoint = stats.endpoint ? `<code>${esc(stats.endpoint)}</code>` : '<span class="mute">unknown endpoint</span>';
|
|
1463
1520
|
const last = stats.lastExportAt
|
|
1464
1521
|
? `last export ${esc(relativeTime(stats.lastExportAt, nowMs))} · `
|
|
@@ -2049,6 +2106,68 @@ export function renderReceiptHtml(model) {
|
|
|
2049
2106
|
});
|
|
2050
2107
|
});
|
|
2051
2108
|
|
|
2109
|
+
document.querySelectorAll('[data-report-action]').forEach(function(btn){
|
|
2110
|
+
btn.addEventListener('click', function(){
|
|
2111
|
+
var action = btn.getAttribute('data-report-action');
|
|
2112
|
+
var resultEl = document.getElementById('report-action-result-' + action);
|
|
2113
|
+
btn.disabled = true;
|
|
2114
|
+
setResult(resultEl, 'Working...', false);
|
|
2115
|
+
post('/action/' + action, {})
|
|
2116
|
+
.then(parseJson)
|
|
2117
|
+
.then(function(data){
|
|
2118
|
+
if (data && data.ok) {
|
|
2119
|
+
var msg = action === 'investigate'
|
|
2120
|
+
? 'Done: ' + data.findings + ' findings, ' + data.incidents + ' incidents'
|
|
2121
|
+
: action === 'notify-test'
|
|
2122
|
+
? 'Test alert sent to ' + data.targets + ' target(s)'
|
|
2123
|
+
: String(data.detail || 'ok');
|
|
2124
|
+
setResult(resultEl, '<p>' + esc(msg) + '</p>', false);
|
|
2125
|
+
if (action === 'otel-test') {
|
|
2126
|
+
btn.disabled = false;
|
|
2127
|
+
} else {
|
|
2128
|
+
setTimeout(function(){ location.reload(); }, 800);
|
|
2129
|
+
}
|
|
2130
|
+
} else {
|
|
2131
|
+
setResult(resultEl, '<p>Error: ' + esc(data && (data.error || data.detail) ? (data.error || data.detail) : 'unknown') + '</p>', true);
|
|
2132
|
+
btn.disabled = false;
|
|
2133
|
+
}
|
|
2134
|
+
})
|
|
2135
|
+
.catch(function(err){
|
|
2136
|
+
setResult(resultEl, '<p>Error: ' + esc(err.message) + '</p>', true);
|
|
2137
|
+
btn.disabled = false;
|
|
2138
|
+
});
|
|
2139
|
+
});
|
|
2140
|
+
});
|
|
2141
|
+
|
|
2142
|
+
var importForm = document.getElementById('import-form');
|
|
2143
|
+
if (importForm) {
|
|
2144
|
+
importForm.addEventListener('submit', function(e){
|
|
2145
|
+
e.preventDefault();
|
|
2146
|
+
var from = importForm.elements.from.value;
|
|
2147
|
+
var file = importForm.elements.file.value.trim();
|
|
2148
|
+
var resultEl = document.getElementById('import-result');
|
|
2149
|
+
var btn = importForm.querySelector('button[type="submit"]');
|
|
2150
|
+
if (btn) btn.disabled = true;
|
|
2151
|
+
setResult(resultEl, 'Importing...', false);
|
|
2152
|
+
post('/action/import', { from: from, file: file })
|
|
2153
|
+
.then(parseJson)
|
|
2154
|
+
.then(function(data){
|
|
2155
|
+
if (data && data.ok) {
|
|
2156
|
+
var errs = data.errors && data.errors.length ? ' · ' + data.errors.length + ' error(s)' : '';
|
|
2157
|
+
setResult(resultEl, '<p>Imported ' + data.imported + ' event(s)' + errs + ' - reloading...</p>', false);
|
|
2158
|
+
setTimeout(function(){ location.reload(); }, 800);
|
|
2159
|
+
} else {
|
|
2160
|
+
setResult(resultEl, '<p>Error: ' + esc(data && data.error ? data.error : 'unknown') + '</p>', true);
|
|
2161
|
+
if (btn) btn.disabled = false;
|
|
2162
|
+
}
|
|
2163
|
+
})
|
|
2164
|
+
.catch(function(err){
|
|
2165
|
+
setResult(resultEl, '<p>Error: ' + esc(err.message) + '</p>', true);
|
|
2166
|
+
if (btn) btn.disabled = false;
|
|
2167
|
+
});
|
|
2168
|
+
});
|
|
2169
|
+
}
|
|
2170
|
+
|
|
2052
2171
|
var stopLink = document.getElementById('stop-report');
|
|
2053
2172
|
if (stopLink) {
|
|
2054
2173
|
stopLink.addEventListener('click', function(e){
|
|
@@ -2087,8 +2206,8 @@ export function renderReceiptHtml(model) {
|
|
|
2087
2206
|
wiredHostsPanel(model.wiredHosts),
|
|
2088
2207
|
sandboxesPanel(model.sandboxes, nowMs),
|
|
2089
2208
|
orrPanel(model.orr, nowMs),
|
|
2090
|
-
alertsPanel(model.alerts, nowMs),
|
|
2091
|
-
otelPanel(model.otel, nowMs),
|
|
2209
|
+
alertsPanel(model.alerts, nowMs, livePaged),
|
|
2210
|
+
otelPanel(model.otel, nowMs, livePaged),
|
|
2092
2211
|
toolsHtml,
|
|
2093
2212
|
], "No system state yet - wire a host, configure a sandbox, or run an ORR.");
|
|
2094
2213
|
const html = `<!DOCTYPE html>
|
|
@@ -2144,8 +2263,8 @@ ${model.liveToken ? '<main data-live-token="1">' : '<main>'}
|
|
|
2144
2263
|
${verdictsHeroCard(c, events.length)}
|
|
2145
2264
|
${activityHeroCard(agg, dashboard, events.length)}
|
|
2146
2265
|
${gatewayHeroCard(model.gate, nowMs)}
|
|
2147
|
-
${importHeroCard(model.imports, nowMs)}
|
|
2148
|
-
${investigateHeroCard(model.investigate, nowMs)}
|
|
2266
|
+
${importHeroCard(model.imports, nowMs, livePaged)}
|
|
2267
|
+
${investigateHeroCard(model.investigate, nowMs, livePaged)}
|
|
2149
2268
|
${showbackHeroCard(model.showback, model.events)}
|
|
2150
2269
|
</div>
|
|
2151
2270
|
</div>
|