Spracherkennung für: .ts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
import { QA_PROVIDER_SECRET_ENV_VARS } from "./providers/env.js";
const QA_GATEWAY_DEBUG_SECRET_ENV_VARS = Object.freeze([
...QA_PROVIDER_SECRET_ENV_VARS,
"OPENCLAW_GATEWAY_TOKEN",
]);
const QA_GATEWAY_DEBUG_SECRET_VALUE_KEYS = Object.freeze([
"botToken",
"driverToken",
"sutToken",
"leaseToken",
]);
export function redactQaGatewayDebugText(text: string) {
let redacted = text;
for (const envVar of QA_GATEWAY_DEBUG_SECRET_ENV_VARS) {
const escapedEnvVar = envVar.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&");
redacted = redacted.replace(
new RegExp(`\\b(${escapedEnvVar})(\\s*[=:]\\s*)([^\\s"';,]+|"[^"]*"|'[^']*')`, "g"),
`$1$2<redacted>`,
);
redacted = redacted.replace(
new RegExp(`("${escapedEnvVar}"\\s*:\\s*)"[^"]*"`, "g"),
`$1"<redacted>"`,
);
}
for (const key of QA_GATEWAY_DEBUG_SECRET_VALUE_KEYS) {
const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&");
redacted = redacted.replace(
new RegExp(`\\b(${escapedKey})(\\s*[=:]\\s*)([^\\s"';,]+|"[^"]*"|'[^']*')`, "gi"),
`$1$2<redacted>`,
);
redacted = redacted.replace(
new RegExp(`("${escapedKey}"\\s*:\\s*)"[^"]*"`, "gi"),
`$1"<redacted>"`,
);
}
return redacted
.replaceAll(/\bsk-ant-oat01-[A-Za-z0-9_-]+\b/g, "<redacted>")
.replaceAll(/\bBearer\s+[^\s"'<>]{8,}/gi, "Bearer <redacted>")
.replaceAll(/([?#&]token=)[^&\s]+/gi, "$1<redacted>");
}
export function formatQaGatewayLogsForError(logs: string) {
const sanitized = redactQaGatewayDebugText(logs).trim();
return sanitized.length > 0 ? `\nGateway logs:\n${sanitized}` : "";
}
¤ Dauer der Verarbeitung: 0.22 Sekunden
(vorverarbeitet am 2026-04-27)
¤
*© Formatika GbR, Deutschland