@cyanautomation/kaseki-agent 1.24.6 → 1.25.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-output-filter.d.ts","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"validation-output-filter.d.ts","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AAiLH;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkB5D"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { createInterface } from 'readline';
|
|
19
19
|
import { basename } from 'path';
|
|
20
|
+
import { appendFileSync } from 'fs';
|
|
20
21
|
function createInitialState() {
|
|
21
22
|
return {
|
|
22
23
|
inCommand: false,
|
|
@@ -183,6 +184,26 @@ export function filterValidationOutput(input) {
|
|
|
183
184
|
* Main: read from stdin and process
|
|
184
185
|
*/
|
|
185
186
|
function main() {
|
|
187
|
+
// Get diagnostics log file from environment
|
|
188
|
+
const diagnosticsLogFile = process.env.FILTER_DIAGNOSTICS_LOG || '/dev/null';
|
|
189
|
+
let linesProcessed = 0;
|
|
190
|
+
let linesOutput = 0;
|
|
191
|
+
let errorsEncountered = [];
|
|
192
|
+
function logDiagnostic(message) {
|
|
193
|
+
try {
|
|
194
|
+
appendFileSync(diagnosticsLogFile, `[${new Date().toISOString()}] ${message}\n`);
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
// Silent fail if diagnostics log is unavailable
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Log startup
|
|
201
|
+
logDiagnostic('filter-startup: process started');
|
|
202
|
+
logDiagnostic(`filter-startup: pid=${process.pid}`);
|
|
203
|
+
logDiagnostic(`filter-startup: node_version=${process.version}`);
|
|
204
|
+
logDiagnostic(`filter-startup: argv=${process.argv.join(' ')}`);
|
|
205
|
+
logDiagnostic(`filter-startup: diagnostics_log_file=${diagnosticsLogFile}`);
|
|
206
|
+
logDiagnostic(`filter-startup: stdin_is_tty=${process.stdin.isTTY || false}`);
|
|
186
207
|
// Set exit code to 0 IMMEDIATELY as default.
|
|
187
208
|
// This ensures we always exit with 0, even if something crashes before 'close' fires.
|
|
188
209
|
// This is critical for avoiding SIGPIPE failures in pipelines.
|
|
@@ -195,21 +216,34 @@ function main() {
|
|
|
195
216
|
});
|
|
196
217
|
// Handle readline errors (e.g., stdin closed prematurely, encoding issues)
|
|
197
218
|
rl.on('error', (err) => {
|
|
219
|
+
const msg = `readline_error: ${err.message}`;
|
|
198
220
|
// Log to stderr but don't crash - allow graceful shutdown
|
|
199
|
-
console.error(`[validation-output-filter]
|
|
221
|
+
console.error(`[validation-output-filter] ${msg}`);
|
|
222
|
+
logDiagnostic(`filter-error: ${msg}`);
|
|
223
|
+
errorsEncountered.push(msg);
|
|
200
224
|
// Ensure exit code stays at 0
|
|
201
225
|
process.exitCode = 0;
|
|
202
226
|
});
|
|
203
227
|
// Handle stdin close event
|
|
204
228
|
rl.on('close', () => {
|
|
229
|
+
logDiagnostic(`filter-close: stdin_closed`);
|
|
230
|
+
logDiagnostic(`filter-close: lines_processed=${linesProcessed}`);
|
|
231
|
+
logDiagnostic(`filter-close: lines_output=${linesOutput}`);
|
|
232
|
+
logDiagnostic(`filter-close: errors_encountered=${errorsEncountered.length}`);
|
|
233
|
+
if (errorsEncountered.length > 0) {
|
|
234
|
+
logDiagnostic(`filter-close: errors=${errorsEncountered.join('; ')}`);
|
|
235
|
+
}
|
|
236
|
+
logDiagnostic(`filter-close: exit_code=${process.exitCode}`);
|
|
205
237
|
// Confirm exit with 0 (filter is diagnostic tool, not part of command logic).
|
|
206
238
|
// Internal errors are logged to stderr but don't block the pipeline.
|
|
207
239
|
process.exitCode = 0;
|
|
208
240
|
});
|
|
209
241
|
rl.on('line', (line) => {
|
|
242
|
+
linesProcessed++;
|
|
210
243
|
try {
|
|
211
244
|
const outputLine = processLine(line, state);
|
|
212
245
|
if (outputLine !== null) {
|
|
246
|
+
linesOutput++;
|
|
213
247
|
// Catch any write errors to stdout (e.g., broken pipe from downstream process)
|
|
214
248
|
try {
|
|
215
249
|
console.log(outputLine);
|
|
@@ -221,7 +255,10 @@ function main() {
|
|
|
221
255
|
}
|
|
222
256
|
}
|
|
223
257
|
catch (lineErr) {
|
|
224
|
-
|
|
258
|
+
const errMsg = lineErr instanceof Error ? lineErr.message : String(lineErr);
|
|
259
|
+
console.error(`[validation-output-filter] Error processing line: ${errMsg}`);
|
|
260
|
+
logDiagnostic(`filter-error: line_processing_error: ${errMsg}`);
|
|
261
|
+
errorsEncountered.push(`line_processing_error: ${errMsg}`);
|
|
225
262
|
}
|
|
226
263
|
});
|
|
227
264
|
// Handle stdout/stderr errors (e.g., broken pipe from downstream process)
|
|
@@ -231,8 +268,14 @@ function main() {
|
|
|
231
268
|
stdout.on('error', (err) => {
|
|
232
269
|
// EPIPE is expected when downstream closes; don't treat as error
|
|
233
270
|
if (err.code !== 'EPIPE') {
|
|
271
|
+
const errMsg = `stdout_error: ${err.message}`;
|
|
234
272
|
// Log error but continue; we always exit 0 anyway
|
|
235
|
-
console.error(`[validation-output-filter]
|
|
273
|
+
console.error(`[validation-output-filter] ${errMsg}`);
|
|
274
|
+
logDiagnostic(`filter-error: ${errMsg}`);
|
|
275
|
+
errorsEncountered.push(errMsg);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
logDiagnostic(`filter-event: stdout_epipe`);
|
|
236
279
|
}
|
|
237
280
|
});
|
|
238
281
|
}
|
|
@@ -240,37 +283,53 @@ function main() {
|
|
|
240
283
|
stderr.on('error', (err) => {
|
|
241
284
|
// Ignore stderr errors; we're already reporting issues
|
|
242
285
|
if (err.code !== 'EPIPE') {
|
|
243
|
-
|
|
286
|
+
const errMsg = `stderr_error: ${err.message}`;
|
|
287
|
+
logDiagnostic(`filter-error: ${errMsg}`);
|
|
288
|
+
errorsEncountered.push(errMsg);
|
|
244
289
|
}
|
|
245
290
|
});
|
|
246
291
|
}
|
|
247
292
|
// Handle process-level errors (uncaught exceptions, unhandled rejections)
|
|
248
293
|
process.on('error', (err) => {
|
|
249
|
-
|
|
294
|
+
const errMsg = `process_error: ${err.message}`;
|
|
295
|
+
console.error(`[validation-output-filter] ${errMsg}`);
|
|
296
|
+
logDiagnostic(`filter-error: ${errMsg}`);
|
|
297
|
+
errorsEncountered.push(errMsg);
|
|
250
298
|
// Ensure we exit with 0 (filter is diagnostic, errors don't block pipeline)
|
|
251
299
|
process.exitCode = 0;
|
|
252
300
|
});
|
|
253
301
|
process.on('uncaughtException', (err) => {
|
|
254
|
-
|
|
302
|
+
const errMsg = `uncaught_exception: ${err instanceof Error ? err.message : String(err)}`;
|
|
303
|
+
console.error(`[validation-output-filter] ${errMsg}`);
|
|
304
|
+
logDiagnostic(`filter-error: ${errMsg}`);
|
|
305
|
+
errorsEncountered.push(errMsg);
|
|
255
306
|
// Ensure we exit with 0
|
|
256
307
|
process.exitCode = 0;
|
|
257
308
|
});
|
|
258
309
|
// Handle unhandled promise rejections
|
|
259
310
|
process.on('unhandledRejection', (reason) => {
|
|
260
|
-
|
|
311
|
+
const errMsg = `unhandled_rejection: ${reason instanceof Error ? reason.message : String(reason)}`;
|
|
312
|
+
console.error(`[validation-output-filter] ${errMsg}`);
|
|
313
|
+
logDiagnostic(`filter-error: ${errMsg}`);
|
|
314
|
+
errorsEncountered.push(errMsg);
|
|
261
315
|
// Ensure we exit with 0
|
|
262
316
|
process.exitCode = 0;
|
|
263
317
|
});
|
|
264
318
|
// Fallback timeout: ensure we exit with 0 after 30 seconds even if something hangs
|
|
265
319
|
// This prevents the filter from hanging indefinitely in edge cases
|
|
266
320
|
const fallbackTimeout = setTimeout(() => {
|
|
267
|
-
|
|
321
|
+
const msg = 'fallback_timeout_triggered (30s), forcing exit with code 0';
|
|
322
|
+
console.error(`[validation-output-filter] WARNING: ${msg}`);
|
|
323
|
+
logDiagnostic(`filter-warning: ${msg}`);
|
|
324
|
+
logDiagnostic(`filter-warning: lines_processed_at_timeout=${linesProcessed}`);
|
|
325
|
+
logDiagnostic(`filter-warning: lines_output_at_timeout=${linesOutput}`);
|
|
268
326
|
process.exitCode = 0;
|
|
269
327
|
process.exit(0);
|
|
270
328
|
}, 30000);
|
|
271
329
|
// Clear fallback timeout once readline closes (normal path)
|
|
272
330
|
const originalClose = rl.close.bind(rl);
|
|
273
331
|
rl.close = function () {
|
|
332
|
+
logDiagnostic(`filter-event: closing_readline`);
|
|
274
333
|
clearTimeout(fallbackTimeout);
|
|
275
334
|
return originalClose();
|
|
276
335
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-output-filter.js","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-output-filter.js","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":"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"}
|
package/kaseki-agent.sh
CHANGED
|
@@ -49,6 +49,9 @@ VALIDATION_STOPPED_EARLY=false
|
|
|
49
49
|
VALIDATION_COMMANDS_ATTEMPTED=0
|
|
50
50
|
FILTER_STDERR_TAIL=""
|
|
51
51
|
FILTER_STDERR_FILE="/tmp/kaseki-filter-stderr.log"
|
|
52
|
+
VALIDATION_RAW_LOG="/results/validation-raw.log"
|
|
53
|
+
FILTER_DIAGNOSTICS_LOG="/results/filter-diagnostics.log"
|
|
54
|
+
VALIDATION_ENV_LOG="/results/validation-env.log"
|
|
52
55
|
DIFF_NONEMPTY=false
|
|
53
56
|
QUALITY_EXIT=0
|
|
54
57
|
QUALITY_FAILURE_REASON=""
|
|
@@ -2206,6 +2209,24 @@ if [ -f package.json ] && node -e "const p=require('./package.json'); process.ex
|
|
|
2206
2209
|
fi
|
|
2207
2210
|
record_stage_timing "quality checks" "$QUALITY_EXIT" "$(($(date +%s) - stage_start))" "diff_size_bytes=$diff_size"
|
|
2208
2211
|
|
|
2212
|
+
printf '\n==> validation environment\n'
|
|
2213
|
+
log_validation_environment() {
|
|
2214
|
+
{
|
|
2215
|
+
printf '[validation environment] timestamp=%s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
2216
|
+
printf '[validation environment] working_directory=%s\n' "$(pwd 2>&1 || echo '<pwd failed>')"
|
|
2217
|
+
printf '[validation environment] node_version=%s\n' "$(node --version 2>&1 || echo '<node not found>')"
|
|
2218
|
+
printf '[validation environment] npm_version=%s\n' "$(npm --version 2>&1 || echo '<npm not found>')"
|
|
2219
|
+
printf '[validation environment] npm_config_registry=%s\n' "$(npm config get registry 2>/dev/null || echo '<not set>')"
|
|
2220
|
+
printf '[validation environment] npm_config_cache=%s\n' "$(npm config get cache 2>/dev/null || echo '<not set>')"
|
|
2221
|
+
printf '[validation environment] PATH=%s\n' "$PATH"
|
|
2222
|
+
printf '[validation environment] NODE_OPTIONS=%s\n' "${NODE_OPTIONS:-<not set>}"
|
|
2223
|
+
printf '[validation environment] NODE_PATH=%s\n' "${NODE_PATH:-<not set>}"
|
|
2224
|
+
printf '[validation environment] disk_space_available=%s\n' "$(df -h /results 2>/dev/null | tail -1 | awk '{print $4}' || echo '<df failed>')"
|
|
2225
|
+
printf '[validation environment] disk_space_used=%s\n' "$(du -sh /results 2>/dev/null | cut -f1 || echo '<du failed>')"
|
|
2226
|
+
} | tee -a /results/validation.log /results/validation-env.log
|
|
2227
|
+
}
|
|
2228
|
+
log_validation_environment
|
|
2229
|
+
|
|
2209
2230
|
printf '\n==> validation\n'
|
|
2210
2231
|
set_current_stage "validation"
|
|
2211
2232
|
emit_progress "validation" "started"
|
|
@@ -2259,6 +2280,14 @@ else
|
|
|
2259
2280
|
fi
|
|
2260
2281
|
((VALIDATION_COMMANDS_ATTEMPTED++))
|
|
2261
2282
|
emit_event "validation_command_started" "command=$trimmed"
|
|
2283
|
+
# Log command environment state before execution
|
|
2284
|
+
{
|
|
2285
|
+
printf '[validation command] command=%s\n' "$trimmed"
|
|
2286
|
+
printf '[validation command] working_directory=%s\n' "$(pwd 2>&1 || echo '<pwd failed>')"
|
|
2287
|
+
printf '[validation command] node_version=%s\n' "$(node --version 2>&1 || echo '<node not found>')"
|
|
2288
|
+
printf '[validation command] npm_version=%s\n' "$(npm --version 2>&1 || echo '<npm not found>')"
|
|
2289
|
+
printf '[validation command] disk_available=%s\n' "$(df -h /results 2>/dev/null | tail -1 | awk '{print $4}' || echo '<df failed>')"
|
|
2290
|
+
} | tee -a /results/validation-env.log
|
|
2262
2291
|
# Use pipefail to catch errors in any stage of the pipe
|
|
2263
2292
|
set -o pipefail
|
|
2264
2293
|
{
|
|
@@ -2271,7 +2300,7 @@ else
|
|
|
2271
2300
|
command_exit=$?
|
|
2272
2301
|
printf 'exit_code=%s\n' "$command_exit"
|
|
2273
2302
|
exit "$command_exit"
|
|
2274
|
-
} 2>&1 | tee -a /results/validation.log | validation-output-filter 2>>"$FILTER_STDERR_FILE"
|
|
2303
|
+
} 2>&1 | tee -a /results/validation.log /results/validation-raw.log | FILTER_DIAGNOSTICS_LOG="$FILTER_DIAGNOSTICS_LOG" validation-output-filter 2>>"$FILTER_STDERR_FILE"
|
|
2275
2304
|
pipe_statuses=("${PIPESTATUS[@]}")
|
|
2276
2305
|
set +o pipefail
|
|
2277
2306
|
# pipe_statuses[0] = bash command exit code
|
package/package.json
CHANGED