@@ -544,19 +544,46 @@ describe("resolveModel", () => {
544544 maxTokens : 8192 ,
545545 } ) ;
546546
547+ const runtimeHooks = createRuntimeHooks ( ) ;
548+ const prepareProviderDynamicModel = vi . fn ( async ( ) => { } ) ;
549+ const reasoningEffortMap = {
550+ off : "none" ,
551+ minimal : "none" ,
552+ low : "high" ,
553+ medium : "high" ,
554+ high : "high" ,
555+ xhigh : "high" ,
556+ adaptive : "high" ,
557+ max : "high" ,
558+ } ;
559+ const normalizeProviderResolvedModelWithPlugin = vi . fn ( ( { context } ) => ( {
560+ ...context . model ,
561+ compat : {
562+ ...context . model . compat ,
563+ supportsStore : false ,
564+ supportsReasoningEffort : true ,
565+ maxTokensField : "max_tokens" ,
566+ reasoningEffortMap,
567+ } ,
568+ } ) ) ;
547569 const result = await resolveModelAsync (
548570 "mistral" ,
549571 "mistral-medium-3-5" ,
550572 "/tmp/agent" ,
551573 undefined ,
552574 {
553575 allowBundledStaticCatalogFallback : true ,
554- runtimeHooks : createRuntimeHooks ( ) ,
576+ runtimeHooks : {
577+ ...runtimeHooks ,
578+ normalizeProviderResolvedModelWithPlugin,
579+ prepareProviderDynamicModel,
580+ } ,
555581 skipAgentDiscovery : true ,
556582 } ,
557583 ) ;
558584
559- expectRecordFields ( expectResolvedModel ( result ) , {
585+ const model = expectResolvedModel ( result ) ;
586+ expectRecordFields ( model , {
560587 provider : "mistral" ,
561588 id : "mistral-medium-3-5" ,
562589 api : "openai-completions" ,
@@ -565,6 +592,22 @@ describe("resolveModel", () => {
565592 contextWindow : 262144 ,
566593 maxTokens : 8192 ,
567594 } ) ;
595+ expect ( model . compat ) . toMatchObject ( {
596+ supportsStore : false ,
597+ supportsReasoningEffort : true ,
598+ maxTokensField : "max_tokens" ,
599+ reasoningEffortMap,
600+ } ) ;
601+ expect ( normalizeProviderResolvedModelWithPlugin ) . toHaveBeenCalledWith (
602+ expect . objectContaining ( {
603+ provider : "mistral" ,
604+ context : expect . objectContaining ( {
605+ provider : "mistral" ,
606+ modelId : "mistral-medium-3-5" ,
607+ } ) ,
608+ } ) ,
609+ ) ;
610+ expect ( prepareProviderDynamicModel ) . not . toHaveBeenCalled ( ) ;
568611 expect ( resolveBundledStaticCatalogModelMock ) . toHaveBeenCalledWith ( {
569612 provider : "mistral" ,
570613 modelId : "mistral-medium-3-5" ,
@@ -627,7 +670,7 @@ describe("resolveModel", () => {
627670 expect ( discoverModels ) . not . toHaveBeenCalled ( ) ;
628671 } ) ;
629672
630- it ( "falls back to bundled static catalog rows without agent discovery" , async ( ) => {
673+ it ( "uses bundled static catalog rows before dynamic hooks without agent discovery" , async ( ) => {
631674 const cfg = {
632675 models : {
633676 providers : {
@@ -682,8 +725,8 @@ describe("resolveModel", () => {
682725 cfg,
683726 } ) ,
684727 ) ;
685- expect ( prepareProviderDynamicModel ) . toHaveBeenCalled ( ) ;
686- expect ( runProviderDynamicModel ) . toHaveBeenCalled ( ) ;
728+ expect ( prepareProviderDynamicModel ) . not . toHaveBeenCalled ( ) ;
729+ expect ( runProviderDynamicModel ) . not . toHaveBeenCalled ( ) ;
687730 expect ( discoverAuthStorage ) . not . toHaveBeenCalled ( ) ;
688731 expect ( discoverModels ) . not . toHaveBeenCalled ( ) ;
689732 } ) ;
0 commit comments