@shield-agent/kya 0.1.38 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.mcp.json +1 -1
  2. package/README.md +3 -3
  3. package/amp/settings.example.json +1 -1
  4. package/claude/claude_desktop_config.example.json +1 -1
  5. package/cline/cline_mcp_settings.example.json +1 -1
  6. package/copilot/mcp-config.example.json +1 -1
  7. package/dist/commands/connect.d.ts +15 -0
  8. package/dist/commands/connect.d.ts.map +1 -1
  9. package/dist/commands/connect.js +4 -4
  10. package/dist/commands/connect.js.map +1 -1
  11. package/dist/commands/orr.d.ts.map +1 -1
  12. package/dist/commands/orr.js +3 -3
  13. package/dist/commands/orr.js.map +1 -1
  14. package/dist/node-upgrade.d.ts +17 -1
  15. package/dist/node-upgrade.d.ts.map +1 -1
  16. package/dist/node-upgrade.js +152 -5
  17. package/dist/node-upgrade.js.map +1 -1
  18. package/dist/receipt/enrich.d.ts +45 -0
  19. package/dist/receipt/enrich.d.ts.map +1 -0
  20. package/dist/receipt/enrich.js +205 -0
  21. package/dist/receipt/enrich.js.map +1 -0
  22. package/dist/receipt/render-receipt.d.ts +47 -0
  23. package/dist/receipt/render-receipt.d.ts.map +1 -1
  24. package/dist/receipt/render-receipt.js +433 -13
  25. package/dist/receipt/render-receipt.js.map +1 -1
  26. package/dist/showback/usage-file.d.ts +12 -0
  27. package/dist/showback/usage-file.d.ts.map +1 -0
  28. package/dist/showback/usage-file.js +14 -0
  29. package/dist/showback/usage-file.js.map +1 -0
  30. package/droid/README.md +1 -1
  31. package/droid/mcp.example.json +1 -1
  32. package/gemini/settings.example.json +1 -1
  33. package/grok/README.md +1 -1
  34. package/kilo/kilo.example.json +1 -1
  35. package/kimi/mcp.example.json +1 -1
  36. package/kiro/mcp.example.json +1 -1
  37. package/manifest.json +1 -1
  38. package/mastracode/mcp.example.json +1 -1
  39. package/mcp.json +1 -1
  40. package/openai/codex.config.example.toml +1 -1
  41. package/opencode/opencode.example.json +1 -1
  42. package/package.json +1 -1
  43. package/qwen/settings.example.json +1 -1
  44. package/server.json +2 -2
@@ -4,6 +4,8 @@
4
4
  import { assertNoSecrets, clip } from "../dash/render.js";
5
5
  import { clipMultiline, DIFF_MAX_TOTAL_CHARS } from "../diff-preview.js";
6
6
  import { productLabel, readTrail, readTrailSince } from "../trail.js";
7
+ import { loadIdentity, loadOrrCard, loadSandboxes, loadShowbackCard, loadWiredHosts, } from "./enrich.js";
8
+ import { SHOWBACK_DISCLAIMER, } from "../showback/cost-per-task.js";
7
9
  function esc(s) {
8
10
  return s
9
11
  .replace(/&/g, "&")
@@ -84,6 +86,67 @@ function verdictWord(verdict) {
84
86
  return "HOLD";
85
87
  return v;
86
88
  }
89
+ /** Pure rollup of trail events for the report's stat chips and sections. */
90
+ export function aggregateEvents(events) {
91
+ const modes = { observe: 0, hold: 0, offline: 0 };
92
+ const planes = { ide: 0, runtime: 0 };
93
+ const reasonCounts = new Map();
94
+ const productCounts = new Map();
95
+ const bySession = new Map();
96
+ for (const e of events) {
97
+ if (e.mode === "observe")
98
+ modes.observe++;
99
+ else if (e.mode === "hold")
100
+ modes.hold++;
101
+ else if (e.mode === "offline")
102
+ modes.offline++;
103
+ if (e.host === "ide")
104
+ planes.ide++;
105
+ else if (e.host === "runtime")
106
+ planes.runtime++;
107
+ reasonCounts.set(e.reasonCode, (reasonCounts.get(e.reasonCode) ?? 0) + 1);
108
+ const pl = productLabel(e.product);
109
+ productCounts.set(pl, (productCounts.get(pl) ?? 0) + 1);
110
+ const sid = e.sessionId || "unknown";
111
+ let s = bySession.get(sid);
112
+ if (!s) {
113
+ s = { events: 0, deny: 0, hold: 0, never: 0, lastTs: e.ts };
114
+ bySession.set(sid, s);
115
+ }
116
+ s.events++;
117
+ if (e.neverEvent || e.reasonCode === "NEVER_EVENT")
118
+ s.never++;
119
+ const v = e.verdict.toUpperCase();
120
+ if (v === "DENY")
121
+ s.deny++;
122
+ else if (v === "REQUIRE_APPROVE")
123
+ s.hold++;
124
+ if (e.ts > s.lastTs)
125
+ s.lastTs = e.ts;
126
+ }
127
+ const sessions = [...bySession.entries()]
128
+ .map(([sessionId, s]) => ({
129
+ sessionId,
130
+ ...s,
131
+ worst: (s.never > 0
132
+ ? "never"
133
+ : s.deny > 0
134
+ ? "deny"
135
+ : s.hold > 0
136
+ ? "hold"
137
+ : "allow"),
138
+ }))
139
+ .sort((a, b) => b.lastTs.localeCompare(a.lastTs))
140
+ .slice(0, 8);
141
+ const reasons = [...reasonCounts.entries()]
142
+ .map(([label, count]) => ({ label, count }))
143
+ .sort((a, b) => b.count - a.count || a.label.localeCompare(b.label))
144
+ .slice(0, 8);
145
+ const products = [...productCounts.entries()]
146
+ .map(([label, count]) => ({ label, count }))
147
+ .sort((a, b) => b.count - a.count || a.label.localeCompare(b.label));
148
+ return { modes, planes, sessions, reasons, products };
149
+ }
87
150
  export function buildReceiptModel(sessionId, events, extras) {
88
151
  const filtered = events.filter((e) => e.sessionId === sessionId);
89
152
  return {
@@ -94,6 +157,11 @@ export function buildReceiptModel(sessionId, events, extras) {
94
157
  spend: extras?.spend,
95
158
  mcpSeen: extras?.mcpSeen,
96
159
  live: extras?.live,
160
+ identity: extras?.identity,
161
+ sandboxes: extras?.sandboxes,
162
+ wiredHosts: extras?.wiredHosts,
163
+ orr: extras?.orr,
164
+ showback: extras?.showback,
97
165
  };
98
166
  }
99
167
  export function buildWindowReceiptModel(events, days, extras) {
@@ -106,16 +174,42 @@ export function buildWindowReceiptModel(events, days, extras) {
106
174
  spend: extras?.spend,
107
175
  mcpSeen: extras?.mcpSeen,
108
176
  live: extras?.live,
177
+ identity: extras?.identity,
178
+ sandboxes: extras?.sandboxes,
179
+ wiredHosts: extras?.wiredHosts,
180
+ orr: extras?.orr,
181
+ showback: extras?.showback,
109
182
  };
110
183
  }
111
184
  /** Shared loader for static artifacts and the live loopback server. */
112
185
  export function loadReceiptModel(input) {
113
186
  const days = input.days > 0 ? Math.floor(input.days) : 3;
187
+ const showback = loadShowbackCard(input.cwd);
188
+ const extras = {
189
+ live: input.live,
190
+ identity: loadIdentity(input.cwd),
191
+ sandboxes: loadSandboxes(input.cwd),
192
+ wiredHosts: loadWiredHosts(input.cwd),
193
+ orr: loadOrrCard(input.cwd),
194
+ showback,
195
+ spend: showback
196
+ ? {
197
+ tokens: showback.totalTokensIn + showback.totalTokensOut,
198
+ usdEstimate: showback.estimatedUsd ?? undefined,
199
+ }
200
+ : undefined,
201
+ };
114
202
  if (input.sessionId) {
115
- return buildReceiptModel(input.sessionId, readTrail(input.cwd), { live: input.live });
203
+ return buildReceiptModel(input.sessionId, readTrail(input.cwd), extras);
116
204
  }
117
205
  const since = new Date(Date.now() - days * 24 * 60 * 60 * 1000);
118
- return buildWindowReceiptModel(readTrailSince(input.cwd, since), days, { live: input.live });
206
+ return buildWindowReceiptModel(readTrailSince(input.cwd, since), days, extras);
207
+ }
208
+ function modeBadge(mode) {
209
+ const letter = mode === "observe" ? "O" : mode === "hold" ? "H" : mode === "offline" ? "X" : "";
210
+ if (!letter)
211
+ return "";
212
+ return `<span class="modeb" title="${letter === "O" ? "observe" : letter === "H" ? "hold" : "offline"} mode">${letter}</span>`;
119
213
  }
120
214
  function renderFeed(events, nowMs, live) {
121
215
  if (events.length === 0) {
@@ -145,7 +239,7 @@ function renderFeed(events, nowMs, live) {
145
239
  <div class="rail" aria-hidden="true"><span class="tick"></span></div>
146
240
  <div class="main">
147
241
  <div class="top">
148
- <span class="verdict">${esc(verdictWord(e.verdict))}</span>
242
+ <span class="verdict">${esc(verdictWord(e.verdict))}</span>${modeBadge(e.mode)}
149
243
  <code class="tool">${esc(e.toolId)}</code>
150
244
  <time class="when" datetime="${esc(e.ts)}" title="${esc(e.ts)}">${esc(clock(e.ts))} <span class="rel">${esc(relativeTime(e.ts, nowMs))}</span></time>
151
245
  </div>
@@ -161,6 +255,167 @@ function renderFeed(events, nowMs, live) {
161
255
  }
162
256
  return parts.join("\n");
163
257
  }
258
+ function identityLine(identity) {
259
+ if (!identity)
260
+ return "";
261
+ const nameId = identity.agentName && identity.agentId
262
+ ? `${identity.agentName}/${identity.agentId}`
263
+ : (identity.agentName ?? identity.agentId);
264
+ const bits = [nameId, identity.host, identity.baseUrl].filter((b) => typeof b === "string" && b.trim().length > 0);
265
+ if (bits.length === 0)
266
+ return "";
267
+ // baseUrl is inert text here — never an anchor.
268
+ return `<div class="identity">${esc(clip(bits.join(" · "), 160))}</div>`;
269
+ }
270
+ function statChips(agg) {
271
+ const chip = (label, n, cls = "") => n > 0 ? `<span class="stat${cls ? ` ${cls}` : ""}">${label}<b>${n}</b></span>` : "";
272
+ return {
273
+ modes: chip("Mode: observe", agg.modes.observe) +
274
+ chip("Mode: hold", agg.modes.hold, "warn") +
275
+ chip("Mode: offline", agg.modes.offline),
276
+ planes: chip("IDE", agg.planes.ide) + chip("Runtime", agg.planes.runtime),
277
+ products: agg.products.length >= 2
278
+ ? `<div class="stats" aria-label="Products">${agg.products
279
+ .map((p) => `<span class="stat">${esc(clip(p.label, 40))}<b>${p.count}</b></span>`)
280
+ .join("")}</div>`
281
+ : "",
282
+ };
283
+ }
284
+ function sessionsPanel(agg, nowMs) {
285
+ if (agg.sessions.length === 0)
286
+ return "";
287
+ const rows = agg.sessions
288
+ .map((s) => `<li>
289
+ <span class="wdot ${s.worst}" title="worst verdict: ${s.worst}"></span>
290
+ <code class="sid" title="${esc(s.sessionId)}">${esc(clip(s.sessionId, 24))}</code>
291
+ <span class="cnt">${s.events} event${s.events === 1 ? "" : "s"}</span>
292
+ <span class="rel">${esc(relativeTime(s.lastTs, nowMs))}</span>
293
+ </li>`)
294
+ .join("\n");
295
+ return `<section class="panel" aria-label="Sessions">
296
+ <h2>Sessions</h2>
297
+ <ul class="rows">
298
+ ${rows}
299
+ </ul>
300
+ </section>`;
301
+ }
302
+ function reasonsPanel(agg) {
303
+ if (agg.reasons.length === 0)
304
+ return "";
305
+ const chips = agg.reasons
306
+ .map((r) => `<span class="chip"><code>${esc(clip(r.label, 60))}</code> × ${r.count}</span>`)
307
+ .join("\n ");
308
+ return `<section class="panel" aria-label="Reasons">
309
+ <h2>Reasons</h2>
310
+ <div class="chiprow">
311
+ ${chips}
312
+ </div>
313
+ </section>`;
314
+ }
315
+ function wiredHostsPanel(hosts) {
316
+ if (!hosts || hosts.length === 0)
317
+ return "";
318
+ if (!hosts.some((h) => h.wired !== "none"))
319
+ return "";
320
+ const rank = (h) => h.wired !== "none" ? 0 : h.recipeOnly ? 1 : 2;
321
+ const rows = [...hosts]
322
+ .sort((a, b) => rank(a) - rank(b))
323
+ .map((h) => {
324
+ if (h.recipeOnly) {
325
+ return `<li class="mute">${esc(h.label)} — manual setup <span class="hint" title="${esc(h.recipeOnly)}">docs recipe</span></li>`;
326
+ }
327
+ if (h.wired === "none") {
328
+ return `<li class="mute">${esc(h.label)} — not wired</li>`;
329
+ }
330
+ const reload = h.reload ? ` · ${esc(h.reload.reload)}` : "";
331
+ const running = h.running ? "running" : "not running";
332
+ return `<li>${esc(h.label)} — wired (${h.wired})${reload} · ${running}</li>`;
333
+ })
334
+ .join("\n ");
335
+ return `<section class="panel" aria-label="Wired hosts">
336
+ <h2>Wired hosts</h2>
337
+ <ul class="rows">
338
+ ${rows}
339
+ </ul>
340
+ </section>`;
341
+ }
342
+ function sandboxesPanel(card, nowMs) {
343
+ if (!card)
344
+ return "";
345
+ if (card.sandboxes.length === 0 && !card.backend)
346
+ return "";
347
+ const backend = card.backend
348
+ ? `<p class="sub">Configured backend: <code>${esc(clip(card.backend, 40))}</code></p>`
349
+ : "";
350
+ const tbl = card.sandboxes.length === 0
351
+ ? ""
352
+ : `<table class="tbl">
353
+ <thead><tr><th>id</th><th>backend</th><th>status</th><th>created</th></tr></thead>
354
+ <tbody>
355
+ ${card.sandboxes
356
+ .map((s) => ` <tr>
357
+ <td><code title="${esc(s.sandboxId)}">${esc(clip(s.sandboxId, 20))}</code></td>
358
+ <td>${esc(s.backend)}</td>
359
+ <td><span class="pill ${s.status === "running" ? "ok" : "mute"}">${esc(s.status)}</span></td>
360
+ <td>${esc(relativeTime(s.createdAt, nowMs))}</td>
361
+ </tr>`)
362
+ .join("\n")}
363
+ </tbody>
364
+ </table>`;
365
+ return `<section class="panel" aria-label="Sandboxes">
366
+ <h2>Sandboxes</h2>
367
+ ${backend}
368
+ ${tbl}
369
+ </section>`;
370
+ }
371
+ function orrPanel(orr, nowMs) {
372
+ if (!orr)
373
+ return "";
374
+ const target = orr.targetName
375
+ ? `<span class="mute">target ${esc(clip(orr.targetName, 60))}</span>`
376
+ : "";
377
+ const failure = orr.primaryFailureMode
378
+ ? `<p class="line">Primary failure mode: ${esc(clip(orr.primaryFailureMode, 200))}</p>`
379
+ : "";
380
+ const fix = orr.mostUrgentFix
381
+ ? `<p class="line">Most urgent fix: ${esc(clip(orr.mostUrgentFix, 200))}</p>`
382
+ : "";
383
+ const when = orr.generatedAt ? ` · ${esc(relativeTime(orr.generatedAt, nowMs))}` : "";
384
+ return `<section class="panel" aria-label="ORR">
385
+ <h2>Operational readiness</h2>
386
+ <div class="orrline">
387
+ <span class="pill orr-${esc(orr.overall)}">${esc(orr.overall)}</span>
388
+ <span class="disp">${esc(orr.disposition.replace(/_/g, " "))}</span>
389
+ ${target}
390
+ </div>
391
+ ${failure}
392
+ ${fix}
393
+ <p class="mute small">scorecards: ${orr.scorecards.pass} pass · ${orr.scorecards.fail} fail · ${orr.scorecards.partial} partial · ${orr.scorecards.notEvaluated} n/e${when}</p>
394
+ </section>`;
395
+ }
396
+ function usdText(usd) {
397
+ return usd === null ? "USD n/a" : `~$${usd.toFixed(2)}`;
398
+ }
399
+ function showbackPanel(report) {
400
+ if (!report)
401
+ return "";
402
+ const topRuns = [...report.perRun]
403
+ .sort((a, b) => (b.estimatedUsd ?? -1) - (a.estimatedUsd ?? -1))
404
+ .slice(0, 5);
405
+ const runs = topRuns.length === 0
406
+ ? ""
407
+ : `<ul class="rows">
408
+ ${topRuns
409
+ .map((r) => ` <li><code title="${esc(r.runId)}">${esc(clip(r.runId, 32))}</code> — ${r.steps} step${r.steps === 1 ? "" : "s"} · ${esc(usdText(r.estimatedUsd))}</li>`)
410
+ .join("\n")}
411
+ </ul>`;
412
+ return `<section class="panel" aria-label="Showback">
413
+ <h2>Showback (observe only)</h2>
414
+ <p class="line">${report.totalTokensIn} tokens in · ${report.totalTokensOut} tokens out · ${esc(usdText(report.estimatedUsd))}</p>
415
+ ${runs}
416
+ <p class="mute small">${esc(SHOWBACK_DISCLAIMER)}</p>
417
+ </section>`;
418
+ }
164
419
  export function renderReceiptHtml(model) {
165
420
  const nowMs = Date.now();
166
421
  const events = [...model.events].map((e) => ({
@@ -172,6 +427,8 @@ export function renderReceiptHtml(model) {
172
427
  diffPreview: e.diffPreview ? clipMultiline(e.diffPreview, DIFF_MAX_TOTAL_CHARS) : undefined,
173
428
  }));
174
429
  const c = countVerdicts(events);
430
+ const agg = aggregateEvents(events);
431
+ const chips = statChips(agg);
175
432
  const blocked = events.filter((e) => e.neverEvent || e.reasonCode === "NEVER_EVENT");
176
433
  const tools = model.mcpSeen && model.mcpSeen.length > 0
177
434
  ? model.mcpSeen.map((m) => m.toolId)
@@ -296,6 +553,81 @@ export function renderReceiptHtml(model) {
296
553
  .stat.bad b { color: var(--bad); }
297
554
  .stat.warn b { color: var(--warn); }
298
555
  .stat.ok b { color: var(--ok); }
556
+ .identity {
557
+ margin-top: 0.45rem; color: var(--mute); font-size: 0.78rem;
558
+ word-break: break-word;
559
+ }
560
+ .modeb {
561
+ display: inline-block; font-size: 0.6rem; font-weight: 700;
562
+ color: var(--mute); border: 1px solid var(--line); border-radius: 4px;
563
+ padding: 0 0.28rem; line-height: 1.1rem; vertical-align: baseline;
564
+ }
565
+ .panel {
566
+ background: var(--card); border: 1px solid var(--line);
567
+ border-radius: 12px; padding: 0.7rem 0.9rem 0.8rem; margin-bottom: 1rem;
568
+ }
569
+ .panel h2 {
570
+ margin: 0 0 0.5rem; font-size: 0.72rem; font-weight: 700;
571
+ letter-spacing: 0.07em; text-transform: uppercase; color: var(--day);
572
+ }
573
+ .panel .sub { margin: 0 0 0.45rem; color: var(--mute); font-size: 0.8rem; }
574
+ .panel .line { margin: 0.25rem 0; font-size: 0.84rem; word-break: break-word; }
575
+ .panel .mute { color: var(--mute); }
576
+ .panel .small { font-size: 0.74rem; }
577
+ .rows {
578
+ list-style: none; margin: 0; padding: 0;
579
+ display: flex; flex-direction: column; gap: 0.3rem;
580
+ font-size: 0.82rem;
581
+ }
582
+ .rows li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.45rem; min-width: 0; }
583
+ .rows li.mute { color: var(--mute); }
584
+ .rows .sid, .rows code {
585
+ font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
586
+ font-size: 0.78rem; word-break: break-all;
587
+ }
588
+ .rows .cnt { color: var(--mute); font-size: 0.76rem; }
589
+ .rows .rel { margin-left: auto; color: var(--mute); font-size: 0.74rem; white-space: nowrap; }
590
+ .rows .hint {
591
+ font-size: 0.72rem; border-bottom: 1px dotted var(--mute); cursor: help;
592
+ }
593
+ .wdot {
594
+ width: 0.5rem; height: 0.5rem; border-radius: 50%; flex: none;
595
+ align-self: center; background: var(--mute);
596
+ }
597
+ .wdot.allow { background: var(--ok); }
598
+ .wdot.hold { background: var(--warn); }
599
+ .wdot.deny, .wdot.never { background: var(--bad); }
600
+ .chiprow { display: flex; flex-wrap: wrap; gap: 0.35rem; }
601
+ .chip {
602
+ font-size: 0.76rem; color: var(--mute);
603
+ background: color-mix(in srgb, var(--bg) 55%, var(--card));
604
+ border: 1px solid var(--line); border-radius: 999px; padding: 0.15rem 0.55rem;
605
+ }
606
+ .chip code {
607
+ font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace;
608
+ color: var(--fg); font-size: 0.74rem;
609
+ }
610
+ .tbl { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
611
+ .tbl th {
612
+ text-align: left; font-size: 0.66rem; font-weight: 700; letter-spacing: 0.06em;
613
+ text-transform: uppercase; color: var(--mute); padding: 0.15rem 0.5rem 0.3rem 0;
614
+ }
615
+ .tbl td { padding: 0.2rem 0.5rem 0.2rem 0; border-top: 1px solid var(--line); }
616
+ .tbl code {
617
+ font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-size: 0.76rem;
618
+ }
619
+ .pill {
620
+ display: inline-block; font-size: 0.7rem; font-weight: 700;
621
+ letter-spacing: 0.04em; text-transform: uppercase;
622
+ border-radius: 999px; padding: 0.1rem 0.55rem;
623
+ border: 1px solid var(--line); color: var(--mute);
624
+ }
625
+ .pill.ok { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 40%, transparent); }
626
+ .pill.orr-green { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 40%, transparent); }
627
+ .pill.orr-amber { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 40%, transparent); }
628
+ .pill.orr-red { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 40%, transparent); }
629
+ .orrline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.55rem; }
630
+ .orrline .disp { font-size: 0.84rem; font-weight: 600; }
299
631
  .alert {
300
632
  display: flex; flex-wrap: wrap; gap: 0.45rem 0.75rem; align-items: baseline;
301
633
  background: color-mix(in srgb, var(--bad) 12%, var(--card));
@@ -431,17 +763,26 @@ export function renderReceiptHtml(model) {
431
763
  <h1>${esc(model.title)}</h1>
432
764
  <div class="range">${esc(model.rangeLabel)}${livePill}</div>
433
765
  </div>
766
+ ${identityLine(model.identity)}
434
767
  <div class="stats" aria-label="Counts">
435
768
  <span class="stat ok">Allow<b>${c.allow}</b></span>
436
769
  <span class="stat bad">Deny<b>${c.deny}</b></span>
437
770
  <span class="stat warn">Hold<b>${c.require}</b></span>
438
771
  <span class="stat">Never<b>${c.never}</b></span>
772
+ ${chips.modes}${chips.planes}
439
773
  </div>
774
+ ${chips.products}
440
775
  </header>
441
776
  ${blockedBanner}
442
777
  <section class="feed" id="feed" aria-label="Activity feed">
443
778
  ${renderFeed(events, nowMs, model.live)}
444
779
  </section>
780
+ ${sessionsPanel(agg, nowMs)}
781
+ ${reasonsPanel(agg)}
782
+ ${wiredHostsPanel(model.wiredHosts)}
783
+ ${sandboxesPanel(model.sandboxes, nowMs)}
784
+ ${orrPanel(model.orr, nowMs)}
785
+ ${showbackPanel(model.showback)}
445
786
  ${toolsHtml}
446
787
  </main>
447
788
  ${liveScript}
@@ -453,6 +794,8 @@ ${liveScript}
453
794
  }
454
795
  export function renderReceiptMarkdown(model) {
455
796
  const c = countVerdicts(model.events);
797
+ const agg = aggregateEvents(model.events);
798
+ const nowMs = Date.now();
456
799
  const lines = [
457
800
  `# ${model.title}`,
458
801
  "",
@@ -460,17 +803,94 @@ export function renderReceiptMarkdown(model) {
460
803
  "",
461
804
  `Allow ${c.allow} | Deny ${c.deny} | Hold ${c.require} | Never ${c.never}`,
462
805
  "",
463
- "## Feed",
464
- ...[...model.events]
465
- .sort((a, b) => b.ts.localeCompare(a.ts))
466
- .flatMap((e) => {
467
- const sum = e.summary?.trim() ? ` - ${e.summary.trim()}` : "";
468
- const head = `- **${verdictWord(e.verdict)}** \`${e.toolId}\`${sum} - ${productLabel(e.product)} - ${e.reasonCode}`;
469
- if (!e.diffPreview?.trim())
470
- return [head];
471
- return [head, "", "```", e.diffPreview.trim(), "```", ""];
472
- }),
473
806
  ];
807
+ if (model.identity) {
808
+ const id = model.identity;
809
+ const nameId = id.agentName && id.agentId
810
+ ? `${id.agentName}/${id.agentId}`
811
+ : (id.agentName ?? id.agentId);
812
+ const bits = [nameId, id.host, id.baseUrl].filter((b) => typeof b === "string" && b.trim().length > 0);
813
+ if (bits.length > 0) {
814
+ lines.push(bits.join(" · "), "");
815
+ }
816
+ }
817
+ const modeBits = [
818
+ agg.modes.observe > 0 ? `observe ${agg.modes.observe}` : "",
819
+ agg.modes.hold > 0 ? `hold ${agg.modes.hold}` : "",
820
+ agg.modes.offline > 0 ? `offline ${agg.modes.offline}` : "",
821
+ ].filter(Boolean);
822
+ const planeBits = [
823
+ agg.planes.ide > 0 ? `IDE ${agg.planes.ide}` : "",
824
+ agg.planes.runtime > 0 ? `Runtime ${agg.planes.runtime}` : "",
825
+ ].filter(Boolean);
826
+ if (modeBits.length > 0 || planeBits.length > 0) {
827
+ lines.push(`Modes: ${modeBits.join(" | ") || "-"} · Planes: ${planeBits.join(" | ") || "-"}`, "");
828
+ }
829
+ if (agg.products.length >= 2) {
830
+ lines.push("## Products", ...agg.products.map((p) => `- ${p.label} × ${p.count}`), "");
831
+ }
832
+ lines.push("## Feed", ...[...model.events]
833
+ .sort((a, b) => b.ts.localeCompare(a.ts))
834
+ .flatMap((e) => {
835
+ const sum = e.summary?.trim() ? ` - ${e.summary.trim()}` : "";
836
+ const head = `- **${verdictWord(e.verdict)}** \`${e.toolId}\`${sum} - ${productLabel(e.product)} - ${e.reasonCode}`;
837
+ if (!e.diffPreview?.trim())
838
+ return [head];
839
+ return [head, "", "```", e.diffPreview.trim(), "```", ""];
840
+ }), "");
841
+ if (agg.sessions.length > 0) {
842
+ lines.push("## Sessions", ...agg.sessions.map((s) => `- \`${s.sessionId}\` — ${s.events} event${s.events === 1 ? "" : "s"}, worst: ${s.worst}, last ${relativeTime(s.lastTs, nowMs)}`), "");
843
+ }
844
+ if (agg.reasons.length > 0) {
845
+ lines.push("## Reasons", ...agg.reasons.map((r) => `- ${r.label} × ${r.count}`), "");
846
+ }
847
+ const hosts = model.wiredHosts ?? [];
848
+ if (hosts.some((h) => h.wired !== "none")) {
849
+ lines.push("## Wired hosts");
850
+ for (const h of hosts) {
851
+ if (h.recipeOnly) {
852
+ lines.push(`- ${h.label} — manual setup (docs recipe)`);
853
+ }
854
+ else if (h.wired === "none") {
855
+ lines.push(`- ${h.label} — not wired`);
856
+ }
857
+ else {
858
+ const reload = h.reload ? ` · ${h.reload.reload}` : "";
859
+ lines.push(`- ${h.label} — wired (${h.wired})${reload} · ${h.running ? "running" : "not running"}`);
860
+ }
861
+ }
862
+ lines.push("");
863
+ }
864
+ if (model.sandboxes && (model.sandboxes.sandboxes.length > 0 || model.sandboxes.backend)) {
865
+ const sb = model.sandboxes;
866
+ lines.push("## Sandboxes");
867
+ if (sb.backend)
868
+ lines.push(`Configured backend: ${sb.backend}`);
869
+ for (const s of sb.sandboxes) {
870
+ lines.push(`- \`${s.sandboxId}\` — ${s.backend} · ${s.status} · created ${relativeTime(s.createdAt, nowMs)}`);
871
+ }
872
+ lines.push("");
873
+ }
874
+ if (model.orr) {
875
+ const orr = model.orr;
876
+ lines.push("## Operational readiness", `overall: ${orr.overall} · disposition: ${orr.disposition.replace(/_/g, " ")}${orr.targetName ? ` · target ${orr.targetName}` : ""}`);
877
+ if (orr.primaryFailureMode)
878
+ lines.push(`Primary failure mode: ${orr.primaryFailureMode}`);
879
+ if (orr.mostUrgentFix)
880
+ lines.push(`Most urgent fix: ${orr.mostUrgentFix}`);
881
+ lines.push(`scorecards: ${orr.scorecards.pass} pass · ${orr.scorecards.fail} fail · ${orr.scorecards.partial} partial · ${orr.scorecards.notEvaluated} n/e${orr.generatedAt ? ` · ${relativeTime(orr.generatedAt, nowMs)}` : ""}`, "");
882
+ }
883
+ if (model.showback) {
884
+ const sb = model.showback;
885
+ lines.push("## Showback (observe only)", `${sb.totalTokensIn} tokens in · ${sb.totalTokensOut} tokens out · ${usdText(sb.estimatedUsd)}`);
886
+ const topRuns = [...sb.perRun]
887
+ .sort((a, b) => (b.estimatedUsd ?? -1) - (a.estimatedUsd ?? -1))
888
+ .slice(0, 5);
889
+ for (const r of topRuns) {
890
+ lines.push(`- \`${r.runId}\` — ${r.steps} step${r.steps === 1 ? "" : "s"} · ${usdText(r.estimatedUsd)}`);
891
+ }
892
+ lines.push(SHOWBACK_DISCLAIMER, "");
893
+ }
474
894
  const md = `${lines.join("\n")}\n`;
475
895
  assertNoSecrets(md);
476
896
  return md;
@@ -1 +1 @@
1
- {"version":3,"file":"render-receipt.js","sourceRoot":"","sources":["../../src/receipt/render-receipt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-receipt.js","sourceRoot":"","sources":["../../src/receipt/render-receipt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared usage-file handling: 256KB cap and payload acceptance (bare array
3
+ * or { "usage": [...] }) for .kya/usage.json-style files. Record parsing
4
+ * itself lives in cost-per-task.ts; this module is the file-level seam used
5
+ * by both the ORR --usage loader and the receipt showback card.
6
+ */
7
+ import { parseUsageRecords, type UsageRecord } from "./cost-per-task.js";
8
+ export declare const MAX_USAGE_FILE_BYTES: number;
9
+ export { parseUsageRecords };
10
+ /** Accept either a bare usage array or { "usage": [...] }; throws otherwise. */
11
+ export declare function parseUsageFilePayload(raw: unknown): UsageRecord[];
12
+ //# sourceMappingURL=usage-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-file.d.ts","sourceRoot":"","sources":["../../src/showback/usage-file.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEzE,eAAO,MAAM,oBAAoB,QAAa,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,EAAE,CAIjE"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared usage-file handling: 256KB cap and payload acceptance (bare array
3
+ * or { "usage": [...] }) for .kya/usage.json-style files. Record parsing
4
+ * itself lives in cost-per-task.ts; this module is the file-level seam used
5
+ * by both the ORR --usage loader and the receipt showback card.
6
+ */
7
+ import { parseUsageRecords } from "./cost-per-task.js";
8
+ export const MAX_USAGE_FILE_BYTES = 256 * 1024;
9
+ export { parseUsageRecords };
10
+ /** Accept either a bare usage array or { "usage": [...] }; throws otherwise. */
11
+ export function parseUsageFilePayload(raw) {
12
+ return parseUsageRecords(Array.isArray(raw) ? raw : raw?.usage);
13
+ }
14
+ //# sourceMappingURL=usage-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-file.js","sourceRoot":"","sources":["../../src/showback/usage-file.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAoB,MAAM,oBAAoB,CAAC;AAEzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,OAAO,iBAAiB,CACtB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,GAAkC,EAAE,KAAK,CACtE,CAAC;AACJ,CAAC"}