@@ -35,7 +35,8 @@ export const PROVIDER_TOOL_SUPPORT: Record<
35
35
if (
36
36
model . toLowerCase ( ) . startsWith ( "gpt-4" ) ||
37
37
model . toLowerCase ( ) . startsWith ( "o3" )
38
- ) return true ;
38
+ )
39
+ return true ;
39
40
return false ;
40
41
} ,
41
42
openai : ( model ) => {
@@ -66,7 +67,10 @@ export const PROVIDER_TOOL_SUPPORT: Record<
66
67
} ,
67
68
vertexai : ( model ) => {
68
69
// All gemini models except flash 2.0 lite support function calling
69
- return model . toLowerCase ( ) . includes ( "gemini" ) && ! model . toLowerCase ( ) . includes ( "lite" ) ; ;
70
+ return (
71
+ model . toLowerCase ( ) . includes ( "gemini" ) &&
72
+ ! model . toLowerCase ( ) . includes ( "lite" )
73
+ ) ;
70
74
} ,
71
75
bedrock : ( model ) => {
72
76
// For Bedrock, only support Claude Sonnet models with versions 3.5/3-5 and 3.7/3-7
@@ -81,22 +85,24 @@ export const PROVIDER_TOOL_SUPPORT: Record<
81
85
} ,
82
86
mistral : ( model ) => {
83
87
// https://docs.mistral.ai/capabilities/function_calling/
84
- return ! model . toLowerCase ( ) . includes ( "mamba" ) &&
85
- [
86
- "codestral" ,
87
- "mistral-large" ,
88
- "mistral-small" ,
89
- "pixtral" ,
90
- "ministral" ,
91
- "mistral-nemo"
92
- ] . some ( ( part ) => model . toLowerCase ( ) . includes ( part ) ) ;
88
+ return (
89
+ ! model . toLowerCase ( ) . includes ( "mamba" ) &&
90
+ [
91
+ "codestral" ,
92
+ "mistral-large" ,
93
+ "mistral-small" ,
94
+ "pixtral" ,
95
+ "ministral" ,
96
+ "mistral-nemo" ,
97
+ ] . some ( ( part ) => model . toLowerCase ( ) . includes ( part ) )
98
+ ) ;
93
99
} ,
94
100
// https://ollama.com/search?c=tools
95
101
ollama : ( model ) => {
96
102
let modelName = "" ;
97
103
// Extract the model name after the last slash to support other registries
98
- if ( model . includes ( "/" ) ) {
99
- let parts = model . split ( '/' ) ;
104
+ if ( model . includes ( "/" ) ) {
105
+ let parts = model . split ( "/" ) ;
100
106
modelName = parts [ parts . length - 1 ] ;
101
107
} else {
102
108
modelName = model ;
@@ -117,6 +123,7 @@ export const PROVIDER_TOOL_SUPPORT: Record<
117
123
"llama3.2" ,
118
124
"llama3.1" ,
119
125
"qwen2" ,
126
+ "qwen3" ,
120
127
"mixtral" ,
121
128
"command-r" ,
122
129
"smollm2" ,
@@ -145,19 +152,17 @@ export const PROVIDER_TOOL_SUPPORT: Record<
145
152
}
146
153
} ,
147
154
deepseek : ( model ) => {
148
- if ( model !== "deepseek-reasoner" ) {
155
+ if ( model !== "deepseek-reasoner" ) {
149
156
return true ;
150
157
}
151
158
} ,
152
159
watsonx : ( model ) => {
153
- if ( model . toLowerCase ( ) . includes ( "guard" ) ) return false ;
154
- if ( [
155
- "llama-3" ,
156
- "llama-4" ,
157
- "mistral" ,
158
- "codestral" ,
159
- "granite-3"
160
- ] . some ( ( part ) => model . toLowerCase ( ) . includes ( part ) ) )
161
- return true ;
162
- }
160
+ if ( model . toLowerCase ( ) . includes ( "guard" ) ) return false ;
161
+ if (
162
+ [ "llama-3" , "llama-4" , "mistral" , "codestral" , "granite-3" ] . some ( ( part ) =>
163
+ model . toLowerCase ( ) . includes ( part ) ,
164
+ )
165
+ )
166
+ return true ;
167
+ } ,
163
168
} ;
0 commit comments