test(wp7-02): enforce exact image dimensions
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 51s

This commit is contained in:
suyx
2026-08-04 16:28:31 +08:00
parent 470d243b5b
commit 84a845136e
4 changed files with 75 additions and 17 deletions
+31 -1
View File
@@ -192,6 +192,27 @@ export function normalizeProviderResponse(modelConfig, response) {
};
}
export function describeProviderResponseShape(value, depth = 0) {
if (depth >= 6) return { kind: "depth_limit" };
if (Array.isArray(value)) {
return {
item: value.length > 0 ? describeProviderResponseShape(value[0], depth + 1) : { kind: "empty" },
kind: "array",
length: value.length,
};
}
if (value && typeof value === "object") {
return {
fields: Object.keys(value).toSorted().map((name) => ({ name, shape: describeProviderResponseShape(value[name], depth + 1) })),
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" };
}
export function buildSanitizedResponseEvidence(normalized) {
const evidence = {
dimensions: structuredClone(normalized.dimensions),
@@ -237,7 +258,16 @@ export async function executeProviderRequest({ fetchImpl = fetch, modelConfig, p
});
const durationMs = Math.round(performance.now() - startedAt);
if (!response.ok) throw new Error(`WP7_02_UPSTREAM_HTTP_${response.status}`);
const normalized = normalizeProviderResponse(modelConfig, await response.json());
const providerResponse = await response.json();
let normalized;
try {
normalized = normalizeProviderResponse(modelConfig, providerResponse);
} catch (error) {
if (error instanceof Error && /^WP7_02_[A-Z0-9_]+$/.test(error.message)) {
error.safe_response_shape = describeProviderResponseShape(providerResponse);
}
throw error;
}
return {
duration_ms: durationMs,
http_status: response.status,