@cyanautomation/kaseki-agent 1.24.5 → 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;AAgLH;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkB5D"}
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,30 @@ 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}`);
207
+ // Set exit code to 0 IMMEDIATELY as default.
208
+ // This ensures we always exit with 0, even if something crashes before 'close' fires.
209
+ // This is critical for avoiding SIGPIPE failures in pipelines.
210
+ process.exitCode = 0;
186
211
  const state = createInitialState();
187
212
  const rl = createInterface({
188
213
  input: process.stdin,
@@ -191,19 +216,34 @@ function main() {
191
216
  });
192
217
  // Handle readline errors (e.g., stdin closed prematurely, encoding issues)
193
218
  rl.on('error', (err) => {
219
+ const msg = `readline_error: ${err.message}`;
194
220
  // Log to stderr but don't crash - allow graceful shutdown
195
- console.error(`[validation-output-filter] readline error: ${err.message}`);
221
+ console.error(`[validation-output-filter] ${msg}`);
222
+ logDiagnostic(`filter-error: ${msg}`);
223
+ errorsEncountered.push(msg);
224
+ // Ensure exit code stays at 0
225
+ process.exitCode = 0;
196
226
  });
197
227
  // Handle stdin close event
198
228
  rl.on('close', () => {
199
- // Always exit with 0 (filter is diagnostic tool, not part of command logic).
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}`);
237
+ // Confirm exit with 0 (filter is diagnostic tool, not part of command logic).
200
238
  // Internal errors are logged to stderr but don't block the pipeline.
201
239
  process.exitCode = 0;
202
240
  });
203
241
  rl.on('line', (line) => {
242
+ linesProcessed++;
204
243
  try {
205
244
  const outputLine = processLine(line, state);
206
245
  if (outputLine !== null) {
246
+ linesOutput++;
207
247
  // Catch any write errors to stdout (e.g., broken pipe from downstream process)
208
248
  try {
209
249
  console.log(outputLine);
@@ -215,7 +255,10 @@ function main() {
215
255
  }
216
256
  }
217
257
  catch (lineErr) {
218
- console.error(`[validation-output-filter] Error processing line: ${lineErr instanceof Error ? lineErr.message : String(lineErr)}`);
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}`);
219
262
  }
220
263
  });
221
264
  // Handle stdout/stderr errors (e.g., broken pipe from downstream process)
@@ -225,8 +268,14 @@ function main() {
225
268
  stdout.on('error', (err) => {
226
269
  // EPIPE is expected when downstream closes; don't treat as error
227
270
  if (err.code !== 'EPIPE') {
271
+ const errMsg = `stdout_error: ${err.message}`;
228
272
  // Log error but continue; we always exit 0 anyway
229
- console.error(`[validation-output-filter] stdout error: ${err.message}`);
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`);
230
279
  }
231
280
  });
232
281
  }
@@ -234,24 +283,56 @@ function main() {
234
283
  stderr.on('error', (err) => {
235
284
  // Ignore stderr errors; we're already reporting issues
236
285
  if (err.code !== 'EPIPE') {
237
- // Silent handling
286
+ const errMsg = `stderr_error: ${err.message}`;
287
+ logDiagnostic(`filter-error: ${errMsg}`);
288
+ errorsEncountered.push(errMsg);
238
289
  }
239
290
  });
240
291
  }
241
292
  // Handle process-level errors (uncaught exceptions, unhandled rejections)
242
293
  process.on('error', (err) => {
243
- console.error(`[validation-output-filter] process error: ${err.message}`);
244
- // Don't call process.exit() - let graceful shutdown via stdin close
294
+ const errMsg = `process_error: ${err.message}`;
295
+ console.error(`[validation-output-filter] ${errMsg}`);
296
+ logDiagnostic(`filter-error: ${errMsg}`);
297
+ errorsEncountered.push(errMsg);
298
+ // Ensure we exit with 0 (filter is diagnostic, errors don't block pipeline)
299
+ process.exitCode = 0;
245
300
  });
246
301
  process.on('uncaughtException', (err) => {
247
- console.error(`[validation-output-filter] uncaught exception: ${err instanceof Error ? err.message : String(err)}`);
248
- // Don't call process.exit() - let graceful shutdown via stdin close
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);
306
+ // Ensure we exit with 0
307
+ process.exitCode = 0;
249
308
  });
250
309
  // Handle unhandled promise rejections
251
310
  process.on('unhandledRejection', (reason) => {
252
- console.error(`[validation-output-filter] unhandled rejection: ${reason instanceof Error ? reason.message : String(reason)}`);
253
- // Don't call process.exit() - let graceful shutdown via stdin close
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);
315
+ // Ensure we exit with 0
316
+ process.exitCode = 0;
254
317
  });
318
+ // Fallback timeout: ensure we exit with 0 after 30 seconds even if something hangs
319
+ // This prevents the filter from hanging indefinitely in edge cases
320
+ const fallbackTimeout = setTimeout(() => {
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}`);
326
+ process.exitCode = 0;
327
+ process.exit(0);
328
+ }, 30000);
329
+ // Clear fallback timeout once readline closes (normal path)
330
+ const originalClose = rl.close.bind(rl);
331
+ rl.close = function () {
332
+ logDiagnostic(`filter-event: closing_readline`);
333
+ clearTimeout(fallbackTimeout);
334
+ return originalClose();
335
+ };
255
336
  }
256
337
  const entrypoint = process.argv[1] ? basename(process.argv[1]) : '';
257
338
  if (entrypoint === 'validation-output-filter.js' || entrypoint === 'validation-output-filter.ts') {
@@ -1 +1 @@
1
- {"version":3,"file":"validation-output-filter.js","sourceRoot":"","sources":["../src/validation-output-filter.ts"],"names":[],"mappings":"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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanautomation/kaseki-agent",
3
- "version": "1.24.5",
3
+ "version": "1.25.0",
4
4
  "description": "Ephemeral coding-agent runner: orchestrates Pi CLI via Docker for automated code modifications with validation",
5
5
  "type": "module",
6
6
  "license": "MIT",