openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
29 lines (28 loc) • 1.14 kB
JavaScript
//#region src/agents/image-compression-policy.ts
/** Resolves the authoritative image limits for one selected provider/model. */
async function resolveImageCompressionModelPolicy(params) {
async function resolvePolicyWithHooks(skipProviderRuntimeHooks) {
try {
const { resolveModelAsync } = await import("./model-CdRhPJ4c.mjs");
return (await resolveModelAsync(params.provider, params.model, params.agentDir, params.cfg, {
abortSignal: params.abortSignal,
allowBundledStaticCatalogFallback: true,
skipProviderRuntimeHooks,
skipAgentDiscovery: true,
workspaceDir: params.workspaceDir,
...params.preparedModelRuntime ? { preparedModelRuntime: params.preparedModelRuntime } : {}
})).model?.mediaInput?.image ?? {};
} catch {
params.abortSignal?.throwIfAborted();
return {};
}
}
const staticPolicy = await resolvePolicyWithHooks(true);
if (typeof staticPolicy.maxSidePx === "number" || typeof staticPolicy.maxPixels === "number") return staticPolicy;
return {
...await resolvePolicyWithHooks(false),
...staticPolicy
};
}
//#endregion
export { resolveImageCompressionModelPolicy as t };