@cyanautomation/kaseki-agent 1.18.0 → 1.19.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/dist/kaseki-report.d.ts +1 -1
- package/dist/kaseki-report.d.ts.map +1 -1
- package/dist/kaseki-report.js +78 -74
- package/dist/kaseki-report.js.map +1 -1
- package/dist/pi-progress-stream.js +66 -42
- package/dist/pi-progress-stream.js.map +1 -1
- package/dist/pi-progress-summarizer.d.ts +5 -0
- package/dist/pi-progress-summarizer.d.ts.map +1 -1
- package/dist/pi-progress-summarizer.js +49 -0
- package/dist/pi-progress-summarizer.js.map +1 -1
- package/dist/validation-output-filter.d.ts +6 -2
- package/dist/validation-output-filter.d.ts.map +1 -1
- package/dist/validation-output-filter.js +53 -29
- package/dist/validation-output-filter.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/kaseki-report.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaseki-report.d.ts","sourceRoot":"","sources":["../src/kaseki-report.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"kaseki-report.d.ts","sourceRoot":"","sources":["../src/kaseki-report.ts"],"names":[],"mappings":";AA8GA,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA6E9D"}
|
package/dist/kaseki-report.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
+
import { basename } from 'node:path';
|
|
4
5
|
import { normalizeExitCodeCandidate } from './instance-state-derivation.js';
|
|
5
|
-
|
|
6
|
-
function readText(name) {
|
|
6
|
+
function readText(resultDir, name) {
|
|
7
7
|
try {
|
|
8
8
|
return fs.readFileSync(path.join(resultDir, name), 'utf8');
|
|
9
9
|
}
|
|
@@ -11,8 +11,8 @@ function readText(name) {
|
|
|
11
11
|
return '';
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
function readJson(name) {
|
|
15
|
-
const text = readText(name);
|
|
14
|
+
function readJson(resultDir, name) {
|
|
15
|
+
const text = readText(resultDir, name);
|
|
16
16
|
if (!text.trim())
|
|
17
17
|
return {};
|
|
18
18
|
try {
|
|
@@ -22,7 +22,7 @@ function readJson(name) {
|
|
|
22
22
|
return {};
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
function firstReadableNonEmpty(names) {
|
|
25
|
+
function firstReadableNonEmpty(resultDir, names) {
|
|
26
26
|
for (const name of names) {
|
|
27
27
|
try {
|
|
28
28
|
const text = fs.readFileSync(path.join(resultDir, name), 'utf8');
|
|
@@ -42,36 +42,17 @@ function printableExitCode(value) {
|
|
|
42
42
|
const normalized = normalizeExitCode(value);
|
|
43
43
|
return normalized === null ? 'unknown' : String(normalized);
|
|
44
44
|
}
|
|
45
|
-
function
|
|
46
|
-
|
|
45
|
+
function appendList(lines, title, values) {
|
|
46
|
+
lines.push(`${title}:`);
|
|
47
47
|
if (values.length === 0) {
|
|
48
|
-
|
|
48
|
+
lines.push(' none');
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
for (const value of values)
|
|
52
|
-
|
|
52
|
+
lines.push(` ${value}`);
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
process.exit(2);
|
|
57
|
-
}
|
|
58
|
-
const metadata = readJson('metadata.json');
|
|
59
|
-
const summary = readJson('pi-summary.json');
|
|
60
|
-
const changedFiles = readText('changed-files.txt')
|
|
61
|
-
.split(/\r?\n/)
|
|
62
|
-
.filter(Boolean);
|
|
63
|
-
const timings = readText('validation-timings.tsv')
|
|
64
|
-
.split(/\r?\n/)
|
|
65
|
-
.filter(Boolean);
|
|
66
|
-
const stageTimings = readText('stage-timings.tsv')
|
|
67
|
-
.split(/\r?\n/)
|
|
68
|
-
.filter(Boolean);
|
|
69
|
-
const dependencyCache = readText('dependency-cache.log')
|
|
70
|
-
.split(/\r?\n/)
|
|
71
|
-
.filter(Boolean);
|
|
72
|
-
const secretScanBytes = Buffer.byteLength(readText('secret-scan.log'));
|
|
73
|
-
function parseRestorationMetrics() {
|
|
74
|
-
const restorationJsonl = readText('restoration.jsonl');
|
|
54
|
+
function parseRestorationMetrics(resultDir) {
|
|
55
|
+
const restorationJsonl = readText(resultDir, 'restoration.jsonl');
|
|
75
56
|
if (!restorationJsonl.trim())
|
|
76
57
|
return { restored: 0, kept: 0 };
|
|
77
58
|
let restored = 0, kept = 0;
|
|
@@ -91,50 +72,73 @@ function parseRestorationMetrics() {
|
|
|
91
72
|
}
|
|
92
73
|
return { restored, kept };
|
|
93
74
|
}
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
75
|
+
export function generateKasekiReport(resultDir) {
|
|
76
|
+
const metadata = readJson(resultDir, 'metadata.json');
|
|
77
|
+
const summary = readJson(resultDir, 'pi-summary.json');
|
|
78
|
+
const changedFiles = readText(resultDir, 'changed-files.txt')
|
|
79
|
+
.split(/\r?\n/)
|
|
80
|
+
.filter(Boolean);
|
|
81
|
+
const timings = readText(resultDir, 'validation-timings.tsv')
|
|
82
|
+
.split(/\r?\n/)
|
|
83
|
+
.filter(Boolean);
|
|
84
|
+
const stageTimings = readText(resultDir, 'stage-timings.tsv')
|
|
85
|
+
.split(/\r?\n/)
|
|
86
|
+
.filter(Boolean);
|
|
87
|
+
const dependencyCache = readText(resultDir, 'dependency-cache.log')
|
|
88
|
+
.split(/\r?\n/)
|
|
89
|
+
.filter(Boolean);
|
|
90
|
+
const secretScanBytes = Buffer.byteLength(readText(resultDir, 'secret-scan.log'));
|
|
91
|
+
const { restored: restoredCount, kept: keptCount } = parseRestorationMetrics(resultDir);
|
|
92
|
+
const normalizedExitCode = normalizeExitCode(metadata.exit_code);
|
|
93
|
+
const status = normalizedExitCode === 0 ? 'passed' : 'failed';
|
|
94
|
+
const resultName = metadata.instance || path.basename(resultDir);
|
|
95
|
+
const nextDiagnostic = normalizedExitCode === 0
|
|
96
|
+
? 'none'
|
|
97
|
+
: firstReadableNonEmpty(resultDir, [
|
|
98
|
+
'failure.json',
|
|
99
|
+
'quality.log',
|
|
100
|
+
'secret-scan.log',
|
|
101
|
+
'pi-stderr.log',
|
|
102
|
+
'validation.log',
|
|
103
|
+
'preflight-git.log',
|
|
104
|
+
'stderr.log',
|
|
105
|
+
])?.name ?? 'metadata.json';
|
|
106
|
+
const lines = [
|
|
107
|
+
`Kaseki result: ${resultName}`,
|
|
108
|
+
`Status: ${status}`,
|
|
109
|
+
`Failed command: ${metadata.failed_command || 'none'}`,
|
|
110
|
+
`Exit code: ${printableExitCode(metadata.exit_code)}`,
|
|
111
|
+
`Pi exit code: ${printableExitCode(metadata.pi_exit_code)}`,
|
|
112
|
+
`Validation exit code: ${printableExitCode(metadata.validation_exit_code)}`,
|
|
113
|
+
`Validation failed command: ${metadata.validation_failed_command || 'none'}`,
|
|
114
|
+
];
|
|
115
|
+
if (metadata.validation_stopped_early) {
|
|
116
|
+
lines.push(`⚠️ Validation stopped early (fail-fast mode): ${metadata.validation_commands_attempted ?? 'unknown'} command(s) attempted`);
|
|
117
|
+
}
|
|
118
|
+
lines.push(`Quality exit code: ${printableExitCode(metadata.quality_exit_code)}`, `Secret scan exit code: ${printableExitCode(metadata.secret_scan_exit_code)}`, `Requested model: ${metadata.model || 'unknown'}`, `Actual model: ${metadata.actual_model || summary.selected_model || 'unknown'}`, `Pi version: ${metadata.pi_version || 'unknown'}`, `Duration seconds: ${metadata.duration_seconds ?? 'unknown'}`, `Agent duration seconds: ${metadata.pi_duration_seconds ?? 'unknown'}`, `Diff non-empty: ${metadata.diff_nonempty ?? 'unknown'}`);
|
|
119
|
+
appendList(lines, 'Changed files', changedFiles);
|
|
120
|
+
if (restoredCount > 0 || keptCount > 0) {
|
|
121
|
+
const totalFiles = restoredCount + keptCount;
|
|
122
|
+
const coverage = totalFiles > 0 ? Math.round((keptCount * 100) / totalFiles) : 0;
|
|
123
|
+
lines.push(`Allowlist coverage: ${keptCount}/${totalFiles} files (${coverage}%)`, `Files restored: ${restoredCount}`, `Files kept (allowlist match): ${keptCount}`);
|
|
124
|
+
}
|
|
125
|
+
appendList(lines, 'Stage timings', stageTimings);
|
|
126
|
+
appendList(lines, 'Validation timings', timings);
|
|
127
|
+
appendList(lines, 'Dependency cache', dependencyCache);
|
|
128
|
+
lines.push(`Secret scan bytes: ${secretScanBytes}`);
|
|
129
|
+
lines.push(`Next diagnostic: ${nextDiagnostic}`);
|
|
130
|
+
return `${lines.join('\n')}\n`;
|
|
131
|
+
}
|
|
132
|
+
function main() {
|
|
133
|
+
const resultDir = process.argv[2] ?? '/results';
|
|
134
|
+
if (!fs.existsSync(resultDir)) {
|
|
135
|
+
console.error(`Result directory not found: ${resultDir}`);
|
|
136
|
+
process.exit(2);
|
|
137
|
+
}
|
|
138
|
+
process.stdout.write(generateKasekiReport(resultDir));
|
|
118
139
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
console.log(`Actual model: ${metadata.actual_model || summary.selected_model || 'unknown'}`);
|
|
123
|
-
console.log(`Pi version: ${metadata.pi_version || 'unknown'}`);
|
|
124
|
-
console.log(`Duration seconds: ${metadata.duration_seconds ?? 'unknown'}`);
|
|
125
|
-
console.log(`Agent duration seconds: ${metadata.pi_duration_seconds ?? 'unknown'}`);
|
|
126
|
-
console.log(`Diff non-empty: ${metadata.diff_nonempty ?? 'unknown'}`);
|
|
127
|
-
printList('Changed files', changedFiles);
|
|
128
|
-
if (restoredCount > 0 || keptCount > 0) {
|
|
129
|
-
const totalFiles = restoredCount + keptCount;
|
|
130
|
-
const coverage = totalFiles > 0 ? Math.round((keptCount * 100) / totalFiles) : 0;
|
|
131
|
-
console.log(`Allowlist coverage: ${keptCount}/${totalFiles} files (${coverage}%)`);
|
|
132
|
-
console.log(`Files restored: ${restoredCount}`);
|
|
133
|
-
console.log(`Files kept (allowlist match): ${keptCount}`);
|
|
140
|
+
const entrypoint = process.argv[1] ? basename(process.argv[1]) : '';
|
|
141
|
+
if (entrypoint === 'kaseki-report.js' || entrypoint === 'kaseki-report.ts') {
|
|
142
|
+
main();
|
|
134
143
|
}
|
|
135
|
-
printList('Stage timings', stageTimings);
|
|
136
|
-
printList('Validation timings', timings);
|
|
137
|
-
printList('Dependency cache', dependencyCache);
|
|
138
|
-
console.log(`Secret scan bytes: ${secretScanBytes}`);
|
|
139
|
-
console.log(`Next diagnostic: ${nextDiagnostic}`);
|
|
140
144
|
//# sourceMappingURL=kaseki-report.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaseki-report.js","sourceRoot":"","sources":["../src/kaseki-report.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"kaseki-report.js","sourceRoot":"","sources":["../src/kaseki-report.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAiCzE,SAAS,QAAQ,CAAC,SAAiB,EAAE,IAAY;IAC/C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,SAAiB,EAAE,IAAY;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB,EAAE,KAAe;IAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACjE,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAU;IACnC,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAU;IACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CAAC,KAAe,EAAE,KAAa,EAAE,MAAgB;IAClE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACvD,CAAC;AASD,SAAS,uBAAuB,CAAC,SAAiB;IAChD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAClE,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAE9D,IAAI,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;YACnD,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;gBAAE,QAAQ,EAAE,CAAC;iBACvC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;gBAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,QAAQ,GAAa,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAChE,MAAM,OAAO,GAAc,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;SAC1D,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC;SAC1D,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;SAC1D,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;SAChE,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAClF,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACxF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,cAAc,GAClB,kBAAkB,KAAK,CAAC;QACtB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE;YACjC,cAAc;YACd,aAAa;YACb,iBAAiB;YACjB,eAAe;YACf,gBAAgB;YAChB,mBAAmB;YACnB,YAAY;SACb,CAAC,EAAE,IAAI,IAAI,eAAe,CAAC;IAChC,MAAM,KAAK,GAAG;QACZ,kBAAkB,UAAU,EAAE;QAC9B,WAAW,MAAM,EAAE;QACnB,mBAAmB,QAAQ,CAAC,cAAc,IAAI,MAAM,EAAE;QACtD,cAAc,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACrD,iBAAiB,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QAC3D,yBAAyB,iBAAiB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;QAC3E,8BAA8B,QAAQ,CAAC,yBAAyB,IAAI,MAAM,EAAE;KAC7E,CAAC;IAEF,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CACR,kDAAkD,QAAQ,CAAC,6BAA6B,IAAI,SAAS,uBAAuB,CAC7H,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CACR,sBAAsB,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,EACrE,0BAA0B,iBAAiB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAC7E,oBAAoB,QAAQ,CAAC,KAAK,IAAI,SAAS,EAAE,EACjD,iBAAiB,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,IAAI,SAAS,EAAE,EAC/E,eAAe,QAAQ,CAAC,UAAU,IAAI,SAAS,EAAE,EACjD,qBAAqB,QAAQ,CAAC,gBAAgB,IAAI,SAAS,EAAE,EAC7D,2BAA2B,QAAQ,CAAC,mBAAmB,IAAI,SAAS,EAAE,EACtE,mBAAmB,QAAQ,CAAC,aAAa,IAAI,SAAS,EAAE,CACzD,CAAC;IAEF,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,aAAa,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;QAC7C,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CACR,uBAAuB,SAAS,IAAI,UAAU,WAAW,QAAQ,IAAI,EACrE,mBAAmB,aAAa,EAAE,EAClC,iCAAiC,SAAS,EAAE,CAC7C,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IACjD,UAAU,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACjD,UAAU,CAAC,KAAK,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,sBAAsB,eAAe,EAAE,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,oBAAoB,cAAc,EAAE,CAAC,CAAC;IAEjD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,IAAI;IACX,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;IAEhD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpE,IAAI,UAAU,KAAK,kBAAkB,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;IAC3E,IAAI,EAAE,CAAC;AACT,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import readline from 'readline';
|
|
4
4
|
import { sanitizeToolName } from './progress-stream-utils.js';
|
|
5
|
-
import {
|
|
5
|
+
import { EventSampler, formatElapsed, truncate, extractTopic, } from './pi-progress-summarizer.js';
|
|
6
6
|
import { ANSI_COLORS, stripAnsi } from './ansi-colors.js';
|
|
7
7
|
const progressJsonlPath = process.argv[2] || '/results/progress.jsonl';
|
|
8
8
|
const progressLogPath = process.argv[3] || '/results/progress.log';
|
|
@@ -17,6 +17,44 @@ let streamOpen = true;
|
|
|
17
17
|
const startTime = Date.now();
|
|
18
18
|
// Sample 1 in every 15 message_update events
|
|
19
19
|
const messageSampler = new EventSampler(15);
|
|
20
|
+
/**
|
|
21
|
+
* ToolBatchAggregator: Batches tool calls by type and emits summaries
|
|
22
|
+
* Reduces noise by aggregating rapid tool sequences
|
|
23
|
+
*/
|
|
24
|
+
class ToolBatchAggregator {
|
|
25
|
+
toolBuffer = new Map(); // tool name -> count
|
|
26
|
+
lastFlushTime = Date.now();
|
|
27
|
+
coalesceWindow = 3000; // 3 seconds
|
|
28
|
+
recordTool(tool) {
|
|
29
|
+
const count = (this.toolBuffer.get(tool) || 0) + 1;
|
|
30
|
+
this.toolBuffer.set(tool, count);
|
|
31
|
+
this.lastFlushTime = Date.now();
|
|
32
|
+
}
|
|
33
|
+
shouldFlush() {
|
|
34
|
+
const elapsed = Date.now() - this.lastFlushTime;
|
|
35
|
+
// Flush if buffer is full or coalesce window elapsed
|
|
36
|
+
return this.toolBuffer.size > 0 && elapsed > this.coalesceWindow;
|
|
37
|
+
}
|
|
38
|
+
flush() {
|
|
39
|
+
if (this.toolBuffer.size === 0) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Build summary: "read_file (3x), write_file (1x), grep_search (2x)"
|
|
43
|
+
const summary = Array.from(this.toolBuffer.entries())
|
|
44
|
+
.map(([tool, count]) => `${tool} (${count}x)`)
|
|
45
|
+
.join(', ');
|
|
46
|
+
const elapsed = formatElapsed(startTime);
|
|
47
|
+
const message = `[tools] ${summary} (${elapsed})`;
|
|
48
|
+
emit('pi tool batch', stripAnsi(message), {
|
|
49
|
+
toolBatchSummary: Object.fromEntries(this.toolBuffer),
|
|
50
|
+
});
|
|
51
|
+
this.toolBuffer.clear();
|
|
52
|
+
}
|
|
53
|
+
clear() {
|
|
54
|
+
this.toolBuffer.clear();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const toolBatchAggregator = new ToolBatchAggregator();
|
|
20
58
|
function append(file, text) {
|
|
21
59
|
fs.appendFileSync(file, text);
|
|
22
60
|
}
|
|
@@ -64,42 +102,22 @@ function emit(stage, message, extra = {}) {
|
|
|
64
102
|
process.stdout.write(line);
|
|
65
103
|
}
|
|
66
104
|
}
|
|
67
|
-
function eventTotal() {
|
|
68
|
-
return Object.values(counts).reduce((sum, count) => sum + count, 0);
|
|
69
|
-
}
|
|
70
105
|
function maybeHeartbeat(force = false, reason = 'events') {
|
|
71
106
|
const now = Date.now();
|
|
72
107
|
if (!force && now - lastHeartbeat < 15000) {
|
|
73
108
|
return;
|
|
74
109
|
}
|
|
75
110
|
lastHeartbeat = now;
|
|
111
|
+
// Flush any pending tool batches
|
|
112
|
+
if (toolBatchAggregator.shouldFlush()) {
|
|
113
|
+
toolBatchAggregator.flush();
|
|
114
|
+
}
|
|
76
115
|
const elapsed = formatElapsed(startTime);
|
|
77
|
-
const
|
|
78
|
-
const message = `${workingMsg} | ${ANSI_COLORS.DIM}${elapsed} elapsed${ANSI_COLORS.RESET}`;
|
|
116
|
+
const message = `${ANSI_COLORS.DIM}⏱ ${elapsed} elapsed${ANSI_COLORS.RESET}`;
|
|
79
117
|
emit('pi coding agent', message, {
|
|
80
|
-
counts,
|
|
81
|
-
toolStartCount,
|
|
82
|
-
toolEndCount,
|
|
83
|
-
messageUpdateCount,
|
|
84
118
|
reason,
|
|
85
119
|
});
|
|
86
120
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Emit enhanced summary for tool execution
|
|
89
|
-
*/
|
|
90
|
-
function emitToolSummary(event, tool, isStart) {
|
|
91
|
-
if (!enableSummarization) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
const elapsed = formatElapsed(startTime);
|
|
95
|
-
const action = extractFilePath(tool) || tool;
|
|
96
|
-
const { hasError } = detectError(JSON.stringify(event).substring(0, 500));
|
|
97
|
-
const level = hasError ? 'error' : undefined;
|
|
98
|
-
const message = formatProgressMessage('pi tool', `${isStart ? 'start' : 'end'} ${action}`, undefined, level, elapsed);
|
|
99
|
-
if (message && message.length > 0) {
|
|
100
|
-
emit('pi tool', stripAnsi(message.substring(13)), { level });
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
121
|
/**
|
|
104
122
|
* Emit enhanced summary for message updates
|
|
105
123
|
*/
|
|
@@ -108,22 +126,27 @@ function emitMessageSummary(event) {
|
|
|
108
126
|
return;
|
|
109
127
|
}
|
|
110
128
|
const elapsed = formatElapsed(startTime);
|
|
111
|
-
// Try to extract a brief insight from the message
|
|
112
129
|
let detail;
|
|
113
130
|
if (event.message?.content) {
|
|
114
131
|
const content = event.message.content;
|
|
115
132
|
const contentText = Array.isArray(content)
|
|
116
133
|
? content.map((c) => (c.text || c.content || '').substring(0, 50)).join(' ')
|
|
117
|
-
: String(content).substring(0,
|
|
134
|
+
: String(content).substring(0, 200);
|
|
135
|
+
// Try to extract topic first (more concise)
|
|
118
136
|
if (contentText.length > 10) {
|
|
119
|
-
|
|
137
|
+
const topic = extractTopic(contentText);
|
|
138
|
+
if (topic) {
|
|
139
|
+
detail = topic;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Fallback to truncated content
|
|
143
|
+
detail = truncate(contentText, 60);
|
|
144
|
+
}
|
|
120
145
|
}
|
|
121
146
|
}
|
|
122
147
|
if (detail) {
|
|
123
|
-
const message =
|
|
124
|
-
|
|
125
|
-
emit('pi coding agent', stripAnsi(message.substring(13)), { type: 'message_update' });
|
|
126
|
-
}
|
|
148
|
+
const message = `pi coding agent: ${detail} (${elapsed})`;
|
|
149
|
+
emit('pi coding agent', stripAnsi(message), { type: 'message_update' });
|
|
127
150
|
}
|
|
128
151
|
}
|
|
129
152
|
emit('pi coding agent', 'started');
|
|
@@ -154,20 +177,14 @@ rl.on('line', (line) => {
|
|
|
154
177
|
if (type === 'tool_execution_start' || type === 'toolcall_start') {
|
|
155
178
|
const tool = toolName(event);
|
|
156
179
|
toolStartCount += 1;
|
|
157
|
-
|
|
158
|
-
emit('pi tool', startMsg, { type, toolStartCount });
|
|
180
|
+
// Aggregate tool calls instead of emitting individual start messages
|
|
159
181
|
if (enableSummarization) {
|
|
160
|
-
|
|
182
|
+
toolBatchAggregator.recordTool(tool);
|
|
161
183
|
}
|
|
162
184
|
}
|
|
163
185
|
else if (type === 'tool_execution_end' || type === 'toolcall_end') {
|
|
164
|
-
const tool = toolName(event);
|
|
165
186
|
toolEndCount += 1;
|
|
166
|
-
|
|
167
|
-
emit('pi tool', endMsg, { type, toolEndCount });
|
|
168
|
-
if (enableSummarization) {
|
|
169
|
-
emitToolSummary(event, tool, false);
|
|
170
|
-
}
|
|
187
|
+
// Tool end is batched; suppress individual emission
|
|
171
188
|
}
|
|
172
189
|
else if (type === 'message_update') {
|
|
173
190
|
messageUpdateCount += 1;
|
|
@@ -177,12 +194,17 @@ rl.on('line', (line) => {
|
|
|
177
194
|
}
|
|
178
195
|
else if (type === 'agent_start') {
|
|
179
196
|
messageSampler.reset();
|
|
197
|
+
toolBatchAggregator.clear();
|
|
180
198
|
emit('pi coding agent', 'agent started', { type });
|
|
181
199
|
}
|
|
182
200
|
else if (type === 'agent_end') {
|
|
201
|
+
// Flush any pending tool batches before agent ends
|
|
202
|
+
toolBatchAggregator.flush();
|
|
183
203
|
emit('pi coding agent', 'agent finished', { type });
|
|
184
204
|
}
|
|
185
205
|
else if (type === 'auto_retry_start') {
|
|
206
|
+
// Flush pending batches before retry
|
|
207
|
+
toolBatchAggregator.flush();
|
|
186
208
|
emit('pi coding agent', `${ANSI_COLORS.YELLOW}auto retry started${ANSI_COLORS.RESET}`, { type });
|
|
187
209
|
}
|
|
188
210
|
else if (type === 'auto_retry_end') {
|
|
@@ -193,6 +215,8 @@ rl.on('line', (line) => {
|
|
|
193
215
|
rl.on('close', () => {
|
|
194
216
|
streamOpen = false;
|
|
195
217
|
clearInterval(heartbeatTimer);
|
|
218
|
+
// Flush any pending tool batches
|
|
219
|
+
toolBatchAggregator.flush();
|
|
196
220
|
maybeHeartbeat(true, 'close');
|
|
197
221
|
const finalElapsed = formatElapsed(startTime);
|
|
198
222
|
emit('pi coding agent', `event stream ended | ${ANSI_COLORS.DIM}${finalElapsed} total${ANSI_COLORS.RESET}`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-progress-stream.js","sourceRoot":"","sources":["../src/pi-progress-stream.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"pi-progress-stream.js","sourceRoot":"","sources":["../src/pi-progress-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,11 @@ export declare function extractFilePath(toolName: string, content?: string): str
|
|
|
22
22
|
* Detect if content contains decision keywords
|
|
23
23
|
*/
|
|
24
24
|
export declare function extractDecision(content?: string): string | null;
|
|
25
|
+
/**
|
|
26
|
+
* Extract agent thinking topic from message content
|
|
27
|
+
* E.g., "Let me find and format the GitHub App Integration..." → "[thinking] formatting GitHub App Integration"
|
|
28
|
+
*/
|
|
29
|
+
export declare function extractTopic(content?: string): string | null;
|
|
25
30
|
/**
|
|
26
31
|
* Detect errors in tool output
|
|
27
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-progress-summarizer.d.ts","sourceRoot":"","sources":["../src/pi-progress-summarizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoCD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8CjF;AAqBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,YAAY,GAAG,IAAI,CAoCrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAE,MAAY,GAAG,MAAM,CAI/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACjC,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAoBR;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAa;gBAEhB,IAAI,GAAE,MAAW;IAI7B,UAAU,IAAI,OAAO;IAKrB,KAAK,IAAI,IAAI;CAGd"}
|
|
1
|
+
{"version":3,"file":"pi-progress-summarizer.d.ts","sourceRoot":"","sources":["../src/pi-progress-summarizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoCD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8CjF;AAqBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB/D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiD5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,YAAY,GAAG,IAAI,CAoCrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAE,MAAY,GAAG,MAAM,CAI/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EACjC,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAoBR;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAa;gBAEhB,IAAI,GAAE,MAAW;IAI7B,UAAU,IAAI,OAAO;IAKrB,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -129,6 +129,55 @@ export function extractDecision(content) {
|
|
|
129
129
|
}
|
|
130
130
|
return null;
|
|
131
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Extract agent thinking topic from message content
|
|
134
|
+
* E.g., "Let me find and format the GitHub App Integration..." → "[thinking] formatting GitHub App Integration"
|
|
135
|
+
*/
|
|
136
|
+
export function extractTopic(content) {
|
|
137
|
+
if (!content)
|
|
138
|
+
return null;
|
|
139
|
+
const lowerContent = content.toLowerCase();
|
|
140
|
+
// First, try to find a topic indicator + subject
|
|
141
|
+
// Check for variations of topic keywords (e.g., "format", "formatting", "formatted")
|
|
142
|
+
const topicPatterns = [
|
|
143
|
+
/\b(formatting?|format(?:ted|ing)?)/,
|
|
144
|
+
/\b(implement(?:ing)?|implement(?:ed)?)/,
|
|
145
|
+
/\b(check(?:ing)?|checked?)/,
|
|
146
|
+
/\b(find(?:ing)?|found)/,
|
|
147
|
+
/\b(analyz(?:ing|ed)?|analyzing|analyze)/,
|
|
148
|
+
/\b(review(?:ing)?|reviewed?)/,
|
|
149
|
+
/\b(fix(?:ing)?|fixed)/,
|
|
150
|
+
/\b(adding?|added)/,
|
|
151
|
+
/\b(updat(?:ing)?|updated)/,
|
|
152
|
+
/\b(organizing?|organized)/,
|
|
153
|
+
/\b(validat(?:ing)?|validated|validate)/,
|
|
154
|
+
/\b(test(?:ing)?|tested)/,
|
|
155
|
+
];
|
|
156
|
+
for (const pattern of topicPatterns) {
|
|
157
|
+
const match = lowerContent.match(pattern);
|
|
158
|
+
if (match) {
|
|
159
|
+
const idx = match.index || 0;
|
|
160
|
+
// Extract up to 50 chars after the match to capture the subject
|
|
161
|
+
const end = Math.min(content.length, idx + match[1].length + 70);
|
|
162
|
+
let snippet = content.substring(idx, end).trim();
|
|
163
|
+
// Stop at sentence boundaries or key phrases
|
|
164
|
+
const stopPoints = ['\n', '.', '?', ';', ' now ', ' so ', ' and then'];
|
|
165
|
+
for (const stopPoint of stopPoints) {
|
|
166
|
+
const stopIdx = snippet.indexOf(stopPoint);
|
|
167
|
+
if (stopIdx > 0 && stopIdx < snippet.length - 1) {
|
|
168
|
+
snippet = snippet.substring(0, stopIdx).trim();
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (snippet.length > 5 && snippet.length < 80) {
|
|
173
|
+
// Capitalize first letter
|
|
174
|
+
const formatted = snippet.charAt(0).toUpperCase() + snippet.slice(1);
|
|
175
|
+
return `[thinking] ${formatted}`;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
132
181
|
/**
|
|
133
182
|
* Detect errors in tool output
|
|
134
183
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-progress-summarizer.js","sourceRoot":"","sources":["../src/pi-progress-summarizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pi-progress-summarizer.js","sourceRoot":"","sources":["../src/pi-progress-summarizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
/**
|
|
2
3
|
* Validation Output Filter
|
|
3
4
|
*
|
|
@@ -10,9 +11,12 @@
|
|
|
10
11
|
* - Command boundaries (first and last lines)
|
|
11
12
|
*
|
|
12
13
|
* Usage:
|
|
13
|
-
* some_command 2>&1 |
|
|
14
|
+
* some_command 2>&1 | validation-output-filter | tee -a logfile.log
|
|
14
15
|
*
|
|
15
16
|
* Exit code: Always 0 (this filter does not affect command success/failure)
|
|
16
17
|
*/
|
|
17
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Filter validation output and return the visible lines.
|
|
20
|
+
*/
|
|
21
|
+
export declare function filterValidationOutput(input: string): string;
|
|
18
22
|
//# sourceMappingURL=validation-output-filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-output-filter.d.ts","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation-output-filter.d.ts","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AAgLH;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkB5D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
1
2
|
/**
|
|
2
3
|
* Validation Output Filter
|
|
3
4
|
*
|
|
@@ -10,17 +11,20 @@
|
|
|
10
11
|
* - Command boundaries (first and last lines)
|
|
11
12
|
*
|
|
12
13
|
* Usage:
|
|
13
|
-
* some_command 2>&1 |
|
|
14
|
+
* some_command 2>&1 | validation-output-filter | tee -a logfile.log
|
|
14
15
|
*
|
|
15
16
|
* Exit code: Always 0 (this filter does not affect command success/failure)
|
|
16
17
|
*/
|
|
17
18
|
import { createInterface } from 'readline';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
import { basename } from 'path';
|
|
20
|
+
function createInitialState() {
|
|
21
|
+
return {
|
|
22
|
+
inCommand: false,
|
|
23
|
+
commandNumber: 0,
|
|
24
|
+
firstLineOfCommand: null,
|
|
25
|
+
linesSinceCommandStart: 0,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
24
28
|
/**
|
|
25
29
|
* Patterns that always pass through (never filtered)
|
|
26
30
|
*/
|
|
@@ -129,59 +133,79 @@ function shouldShow(line) {
|
|
|
129
133
|
/**
|
|
130
134
|
* Process a line of input
|
|
131
135
|
*/
|
|
132
|
-
function processLine(line) {
|
|
136
|
+
function processLine(line, state) {
|
|
133
137
|
// Detect command start
|
|
134
138
|
if (line.match(/^==> /)) {
|
|
135
139
|
state.inCommand = true;
|
|
136
140
|
state.commandNumber++;
|
|
137
141
|
state.firstLineOfCommand = line;
|
|
138
142
|
state.linesSinceCommandStart = 0;
|
|
139
|
-
|
|
140
|
-
return;
|
|
143
|
+
return line; // Always show command start
|
|
141
144
|
}
|
|
142
145
|
// Detect command end
|
|
143
146
|
if (line.match(/^exit_code=/)) {
|
|
144
|
-
output(line); // Always show exit code
|
|
145
147
|
state.inCommand = false;
|
|
146
148
|
state.firstLineOfCommand = null;
|
|
147
149
|
state.linesSinceCommandStart = 0;
|
|
148
|
-
return;
|
|
150
|
+
return line; // Always show exit code
|
|
149
151
|
}
|
|
150
152
|
// If not in a command, show the line anyway (e.g., preamble, separators)
|
|
151
153
|
if (!state.inCommand) {
|
|
152
|
-
|
|
153
|
-
return;
|
|
154
|
+
return line;
|
|
154
155
|
}
|
|
155
156
|
// In a command: decide whether to show this line based on filter criteria
|
|
156
157
|
state.linesSinceCommandStart++;
|
|
157
158
|
// Show only lines that match filter criteria (errors, milestones, boundaries)
|
|
158
159
|
if (shouldShow(line)) {
|
|
159
|
-
|
|
160
|
+
return line;
|
|
160
161
|
}
|
|
162
|
+
return null;
|
|
161
163
|
}
|
|
162
164
|
/**
|
|
163
|
-
*
|
|
165
|
+
* Filter validation output and return the visible lines.
|
|
164
166
|
*/
|
|
165
|
-
function
|
|
166
|
-
|
|
167
|
+
export function filterValidationOutput(input) {
|
|
168
|
+
const state = createInitialState();
|
|
169
|
+
const outputLines = [];
|
|
170
|
+
const inputLines = input.split(/\r?\n/);
|
|
171
|
+
if (inputLines[inputLines.length - 1] === '') {
|
|
172
|
+
inputLines.pop();
|
|
173
|
+
}
|
|
174
|
+
for (const line of inputLines) {
|
|
175
|
+
const outputLine = processLine(line, state);
|
|
176
|
+
if (outputLine !== null) {
|
|
177
|
+
outputLines.push(outputLine);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return outputLines.length > 0 ? `${outputLines.join('\n')}\n` : '';
|
|
167
181
|
}
|
|
168
182
|
/**
|
|
169
183
|
* Main: read from stdin and process
|
|
170
184
|
*/
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
185
|
+
function main() {
|
|
186
|
+
const state = createInitialState();
|
|
187
|
+
const rl = createInterface({
|
|
188
|
+
input: process.stdin,
|
|
189
|
+
output: process.stdout,
|
|
190
|
+
terminal: false,
|
|
191
|
+
});
|
|
192
|
+
rl.on('line', (line) => {
|
|
193
|
+
const outputLine = processLine(line, state);
|
|
194
|
+
if (outputLine !== null) {
|
|
195
|
+
console.log(outputLine);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
rl.on('close', () => {
|
|
199
|
+
process.exitCode = 0;
|
|
200
|
+
});
|
|
201
|
+
}
|
|
182
202
|
// Handle errors gracefully
|
|
183
203
|
process.on('error', (err) => {
|
|
184
204
|
console.error(`[validation-output-filter] Error: ${err.message}`);
|
|
185
205
|
process.exit(1);
|
|
186
206
|
});
|
|
207
|
+
const entrypoint = process.argv[1] ? basename(process.argv[1]) : '';
|
|
208
|
+
if (entrypoint === 'validation-output-filter.js' || entrypoint === 'validation-output-filter.ts') {
|
|
209
|
+
main();
|
|
210
|
+
}
|
|
187
211
|
//# sourceMappingURL=validation-output-filter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-output-filter.js","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation-output-filter.js","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED