<?php
declare(strict_types=1);
// Read-only, redacted tail of this isolated store worker's error log.
$path = '/tmp/zhct-ai-http-20260929.3XDj3w/runtime/store/log/20261006_error.log';
if (!is_file($path) || filesize($path) > 3000000) {
    fwrite(STDERR, "HALT: expected bounded isolated error log unavailable\n");
    exit(3);
}
$lines = file($path, FILE_IGNORE_NEW_LINES);
if (!is_array($lines)) exit(3);
$tail = array_slice($lines, -120);
if (($argv[1] ?? '') === '--keys') {
    foreach ($tail as $i => $line) {
        if (strpos($line, 'CDXDLW683E6105E7') === false) continue;
        $row = json_decode($line, true);
        if (!is_array($row)) continue;
        $types = [];
        foreach ($row as $key => $value) {
            $types[$key] = is_array($value)
                ? ['array_keys' => array_keys($value)] : gettype($value);
        }
        echo json_encode(['tail_index' => $i, 'fields' => $types]), "\n";
    }
    exit(0);
}
if (($argv[1] ?? '') === '--errors') {
    foreach ($tail as $i => $line) {
        if (strpos($line, 'CDXDLW683E6105E7') === false) continue;
        $row = json_decode($line, true);
        if (!is_array($row)) continue;
        $message = (string)($row['messages'] ?? '');
        $message = preg_replace('/CDXDLW[0-9A-F]+/', 'CDXDLW*', $message);
        $message = preg_replace("/'[^']*'/", "'<value>'", $message);
        $message = preg_replace('/"[^"]*"/', '"<value>"', $message);
        echo json_encode(['tail_index' => $i,
            'message_redacted' => substr((string)$message, 0, 650),
            'file_basename' => basename((string)($row['file'] ?? '')),
            'line' => (int)($row['line'] ?? 0),
            'error_sql_present' => !empty($row['error_sql'])]), "\n";
    }
    exit(0);
}
if (($argv[1] ?? '') === '--sqlshape') {
    foreach ($tail as $i => $line) {
        if (strpos($line, 'CDXDLW683E6105E7') === false) continue;
        $row = json_decode($line, true);
        if (!is_array($row)) continue;
        $sql = (string)($row['error_sql'] ?? '');
        $sql = preg_replace('/CDXDLW[0-9A-F]+/', 'CDXDLW*', $sql);
        $sql = preg_replace("/'[^']*'/", "'<value>'", $sql);
        $sql = preg_replace('/"[^"]*"/', '"<value>"', $sql);
        $sql = preg_replace('/\b\d+(?:\.\d+)?\b/', '#', $sql);
        echo json_encode(['tail_index' => $i,
            'sql_shape' => substr((string)$sql, 0, 500)]), "\n";
    }
    exit(0);
}
foreach ($tail as $i => $line) {
    if (!preg_match('/delivery|PDO|SQLSTATE|Exception|error|CLOB|ValueError/i', $line)) continue;
    $line = preg_replace('/CDXDLW[0-9A-F]+/', 'CDXDLW*', $line);
    $line = preg_replace("/'[^']*'/", "'? '", $line);
    $line = preg_replace('/"[^"]*"/', '"?"', $line);
    $line = preg_replace('/\b\d{11,}\b/', '#', $line);
    echo sprintf('%03d ', $i), substr((string)$line, 0, 380), "\n";
}
