fix(wp7-02): classify Gemini response text safely
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 1m33s

This commit is contained in:
suyx
2026-08-04 18:04:40 +08:00
parent 3093c4470a
commit f931c04853
+19 -4
View File
@@ -206,6 +206,24 @@ export function normalizeProviderResponse(modelConfig, response) {
}
export function describeProviderResponseShape(value, depth = 0) {
if (typeof value === "string") {
const trimmed = value.trim();
const representation = /^data:image\/(?:jpeg|png|webp);base64,/i.test(trimmed)
? "inline_media"
: /!\[[^\]]*\]\(\s*https?:\/\/[^)\s]+\s*\)/i.test(trimmed)
? "markdown_uri"
: /^https?:\/\/\S+$/i.test(trimmed)
? "uri"
: "plain_text";
return {
kind: "string",
representation,
size: value.length === 0 ? "empty" : value.length > 256 ? "large" : "small",
};
}
if (typeof value === "number") return { kind: "number" };
if (typeof value === "boolean") return { kind: "boolean" };
if (value === null || value === undefined) return { kind: value === null ? "null" : "undefined" };
if (depth >= 6) return { kind: "depth_limit" };
if (Array.isArray(value)) {
return {
@@ -220,10 +238,7 @@ export function describeProviderResponseShape(value, depth = 0) {
kind: "object",
};
}
if (typeof value === "string") return { kind: "string", size: value.length === 0 ? "empty" : value.length > 256 ? "large" : "small" };
if (typeof value === "number") return { kind: "number" };
if (typeof value === "boolean") return { kind: "boolean" };
return { kind: value === null ? "null" : "undefined" };
return { kind: "undefined" };
}
export function buildSanitizedResponseEvidence(normalized) {