fix: 增加 runs events 低噪声 summary
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import assert from "node:assert/strict";
|
||||
import type { JsonRecord } from "../../common/types.js";
|
||||
import { assertNoSecretLeak, type SelfTestContext, type SelfTestResult } from "../harness.js";
|
||||
import { renderRunEventSummaryTsv, summarizeRunEventPage } from "../../../scripts/src/cli.js";
|
||||
|
||||
export default function selfTest(_context: SelfTestContext): SelfTestResult {
|
||||
const summary = summarizeRunEventPage({ items: [
|
||||
{ seq: 11, type: "backend_status", payload: { phase: "run-claimed", summary: { text: "runner claimed" } } },
|
||||
{ seq: 12, type: "tool_call", payload: { method: "shell", status: "completed", command: "curl -H 'Authorization: Bearer test-token-material' https://example.invalid", exitCode: 0, durationMs: 321, outputSummary: "downloaded archive\nnext line", outputBytes: 4096, outputTruncated: true } },
|
||||
{ seq: 13, type: "assistant_message", payload: { text: "final assistant text that is intentionally longer than the selected summary limit" } },
|
||||
] }, { runId: "run_selftest", afterSeq: 10, limit: 3, tail: 2, summaryChars: 40 });
|
||||
|
||||
assert.equal(summary.action, "runs-events-summary");
|
||||
assert.equal(summary.sourceCount, 3);
|
||||
assert.equal(summary.count, 2);
|
||||
const items = summary.items as JsonRecord[];
|
||||
assert.deepEqual(items.map((item) => item.seq), [12, 13]);
|
||||
assert.equal(items[0]?.method, "shell");
|
||||
assert.equal(items[0]?.status, "completed");
|
||||
assert.equal(items[0]?.exitCode, 0);
|
||||
assert.equal(items[0]?.durationMs, 321);
|
||||
assert.equal(items[0]?.outputTruncated, true);
|
||||
assert.equal(String(items[0]?.command).includes("test-token-material"), false);
|
||||
assert.equal(String(items[0]?.outputSummary).includes("\n"), false);
|
||||
assert.equal(String(items[1]?.summary).endsWith("..."), true);
|
||||
assertNoSecretLeak(summary);
|
||||
|
||||
const tsv = renderRunEventSummaryTsv(summary);
|
||||
assert.match(tsv, /^seq\ttype\tmethod\tstatus\texitCode\tdurationMs\toutputTruncated\toutputBytes\tsummary\n/u);
|
||||
assert.equal(tsv.includes("\n12\ttool_call\tshell\tcompleted\t0\t321\ttrue\t4096"), true);
|
||||
assert.equal(tsv.includes("test-token-material"), false);
|
||||
|
||||
return { name: "15-cli-events-summary", tests: ["runs-events-summary-tail", "runs-events-summary-tsv-redaction"] };
|
||||
}
|
||||
Reference in New Issue
Block a user