fix(wp7-02): classify Gemini response text safely
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 1m33s
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 1m33s
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user