@@ -10,7 +10,11 @@ import {
1010} from "../agents/agent-scope.js" ;
1111import { lookupContextTokens , resolveContextTokensForModel } from "../agents/context.js" ;
1212import { DEFAULT_CONTEXT_TOKENS , DEFAULT_MODEL , DEFAULT_PROVIDER } from "../agents/defaults.js" ;
13- import { findModelInCatalog , type ModelCatalogEntry } from "../agents/model-catalog.js" ;
13+ import {
14+ findModelCatalogEntry ,
15+ modelSupportsInput ,
16+ type ModelCatalogEntry ,
17+ } from "../agents/model-catalog.js" ;
1418import {
1519 inferUniqueProviderFromConfiguredModels ,
1620 normalizeStoredOverrideModel ,
@@ -68,8 +72,8 @@ import {
6872} from "../shared/avatar-policy.js" ;
6973import {
7074 normalizeLowercaseStringOrEmpty ,
71- normalizeOptionalLowercaseString ,
7275 normalizeOptionalString ,
76+ normalizeOptionalLowercaseString ,
7377} from "../shared/string-coerce.js" ;
7478import { normalizeSessionDeliveryFields } from "../utils/delivery-context.shared.js" ;
7579import { estimateUsageCost , resolveModelCostConfig } from "../utils/usage-format.js" ;
@@ -1115,23 +1119,6 @@ export function resolveSessionModelRef(
11151119 return resolved ;
11161120}
11171121
1118- function findGatewayImageSupportCatalogEntry ( params : {
1119- catalog : ModelCatalogEntry [ ] ;
1120- provider ?: string ;
1121- model : string ;
1122- } ) : ModelCatalogEntry | undefined {
1123- const provider = normalizeOptionalString ( params . provider ) ;
1124- if ( provider ) {
1125- return findModelInCatalog ( params . catalog , provider , params . model ) ;
1126- }
1127-
1128- const normalizedModel = normalizeLowercaseStringOrEmpty ( params . model ) ;
1129- const matches = params . catalog . filter (
1130- ( entry ) => normalizeLowercaseStringOrEmpty ( entry . id ) === normalizedModel ,
1131- ) ;
1132- return matches . length === 1 ? matches [ 0 ] : undefined ;
1133- }
1134-
11351122export async function resolveGatewayModelSupportsImages ( params : {
11361123 loadGatewayModelCatalog : ( ) => Promise < ModelCatalogEntry [ ] > ;
11371124 provider ?: string ;
@@ -1143,10 +1130,9 @@ export async function resolveGatewayModelSupportsImages(params: {
11431130
11441131 try {
11451132 const catalog = await params . loadGatewayModelCatalog ( ) ;
1146- const modelEntry = findGatewayImageSupportCatalogEntry ( {
1147- catalog,
1133+ const modelEntry = findModelCatalogEntry ( catalog , {
11481134 provider : params . provider ,
1149- model : params . model ,
1135+ modelId : params . model ,
11501136 } ) ;
11511137 const normalizedProvider = normalizeOptionalLowercaseString (
11521138 params . provider ?? modelEntry ?. provider ,
@@ -1156,7 +1142,7 @@ export async function resolveGatewayModelSupportsImages(params: {
11561142 normalizeLowercaseStringOrEmpty ( modelEntry ?. name ) ,
11571143 ] . filter ( Boolean ) ;
11581144 if ( modelEntry ) {
1159- if ( modelEntry . input ?. includes ( "image" ) ) {
1145+ if ( modelSupportsInput ( modelEntry , "image" ) ) {
11601146 return true ;
11611147 }
11621148 // Legacy safety shim for stale persisted Foundry rows that predate
0 commit comments