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) {
|
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 (depth >= 6) return { kind: "depth_limit" };
|
||||||
if (Array.isArray(value)) {
|
if (Array.isArray(value)) {
|
||||||
return {
|
return {
|
||||||
@@ -220,10 +238,7 @@ export function describeProviderResponseShape(value, depth = 0) {
|
|||||||
kind: "object",
|
kind: "object",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (typeof value === "string") return { kind: "string", size: value.length === 0 ? "empty" : value.length > 256 ? "large" : "small" };
|
return { kind: "undefined" };
|
||||||
if (typeof value === "number") return { kind: "number" };
|
|
||||||
if (typeof value === "boolean") return { kind: "boolean" };
|
|
||||||
return { kind: value === null ? "null" : "undefined" };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function buildSanitizedResponseEvidence(normalized) {
|
export function buildSanitizedResponseEvidence(normalized) {
|
||||||
|
|||||||
Reference in New Issue
Block a user