test(wp7-02): enforce exact image dimensions
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 51s
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 51s
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user