@@ -1926,6 +1926,17 @@ export class ClineProvider implements vscode.WebviewViewProvider {
19261926 cacheReadsPrice : parsePrice ( rawModel . cached_price ) ,
19271927 }
19281928
1929+ switch ( rawModel . id ) {
1930+ case rawModel . id . startsWith ( "anthropic/claude-3-7-sonnet" ) :
1931+ modelInfo . maxTokens = 16384
1932+ break
1933+ case rawModel . id . startsWith ( "anthropic/" ) :
1934+ modelInfo . maxTokens = 8192
1935+ break
1936+ default :
1937+ break
1938+ }
1939+
19291940 models [ rawModel . id ] = modelInfo
19301941 }
19311942 } else {
@@ -2076,6 +2087,17 @@ export class ClineProvider implements vscode.WebviewViewProvider {
20762087 cacheReadsPrice : parsePrice ( rawModel . pricePerToken ?. cacheRead ) ,
20772088 }
20782089
2090+ switch ( rawModel . id ) {
2091+ case rawModel . id . startsWith ( "anthropic/claude-3-7-sonnet" ) :
2092+ modelInfo . maxTokens = 16384
2093+ break
2094+ case rawModel . id . startsWith ( "anthropic/" ) :
2095+ modelInfo . maxTokens = 8192
2096+ break
2097+ default :
2098+ break
2099+ }
2100+
20792101 models [ rawModel . id ] = modelInfo
20802102 }
20812103 } else {
@@ -2127,46 +2149,46 @@ export class ClineProvider implements vscode.WebviewViewProvider {
21272149 description : rawModel . description ,
21282150 }
21292151
2130- switch ( rawModel . id ) {
2131- case "anthropic/claude-3.7-sonnet" :
2132- case "anthropic/claude-3.7-sonnet:beta" :
2133- case "anthropic/claude-3.5-sonnet" :
2134- case "anthropic/claude-3.5-sonnet:beta" :
2135- // NOTE: this needs to be synced with api.ts/openrouter default model info.
2152+ // NOTE: this needs to be synced with api.ts/openrouter default model info.
2153+ switch ( true ) {
2154+ case rawModel . id . startsWith ( "anthropic/claude-3.7-sonnet" ) :
21362155 modelInfo . supportsComputerUse = true
21372156 modelInfo . supportsPromptCache = true
21382157 modelInfo . cacheWritesPrice = 3.75
21392158 modelInfo . cacheReadsPrice = 0.3
2159+ modelInfo . maxTokens = 16384
21402160 break
2141- case "anthropic/claude-3.5-sonnet-20240620" :
2142- case "anthropic/claude-3.5-sonnet-20240620:beta" :
2161+ case rawModel . id . startsWith ( "anthropic/claude-3.5-sonnet-20240620" ) :
21432162 modelInfo . supportsPromptCache = true
21442163 modelInfo . cacheWritesPrice = 3.75
21452164 modelInfo . cacheReadsPrice = 0.3
2165+ modelInfo . maxTokens = 8192
21462166 break
2147- case "anthropic/claude-3-5-haiku" :
2148- case "anthropic/claude-3-5-haiku:beta" :
2149- case "anthropic/claude-3-5-haiku-20241022" :
2150- case "anthropic/claude-3-5-haiku-20241022:beta" :
2151- case "anthropic/claude-3.5-haiku" :
2152- case "anthropic/claude-3.5-haiku:beta" :
2153- case "anthropic/claude-3.5-haiku-20241022" :
2154- case "anthropic/claude-3. 5-haiku-20241022:beta" :
2167+ case rawModel . id . startsWith ( "anthropic/claude-3.5-sonnet" ) :
2168+ modelInfo . supportsComputerUse = true
2169+ modelInfo . supportsPromptCache = true
2170+ modelInfo . cacheWritesPrice = 3.75
2171+ modelInfo . cacheReadsPrice = 0.3
2172+ modelInfo . maxTokens = 8192
2173+ break
2174+ case rawModel . id . startsWith ( "anthropic/claude-3- 5-haiku" ) :
21552175 modelInfo . supportsPromptCache = true
21562176 modelInfo . cacheWritesPrice = 1.25
21572177 modelInfo . cacheReadsPrice = 0.1
2178+ modelInfo . maxTokens = 8192
21582179 break
2159- case "anthropic/claude-3-opus" :
2160- case "anthropic/claude-3-opus:beta" :
2180+ case rawModel . id . startsWith ( "anthropic/claude-3-opus" ) :
21612181 modelInfo . supportsPromptCache = true
21622182 modelInfo . cacheWritesPrice = 18.75
21632183 modelInfo . cacheReadsPrice = 1.5
2184+ modelInfo . maxTokens = 8192
21642185 break
2165- case "anthropic/claude-3-haiku" :
2166- case "anthropic/claude-3-haiku:beta" :
2186+ case rawModel . id . startsWith ( "anthropic/claude-3-haiku" ) :
2187+ default :
21672188 modelInfo . supportsPromptCache = true
21682189 modelInfo . cacheWritesPrice = 0.3
21692190 modelInfo . cacheReadsPrice = 0.03
2191+ modelInfo . maxTokens = 8192
21702192 break
21712193 }
21722194
@@ -2200,7 +2222,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
22002222 if ( response . data ) {
22012223 const rawModels : Record < string , any > = response . data
22022224 for ( const [ modelId , model ] of Object . entries ( rawModels ) ) {
2203- models [ modelId ] = {
2225+ const modelInfo : ModelInfo = {
22042226 maxTokens : model ?. maxTokens ? parseInt ( model . maxTokens ) : undefined ,
22052227 contextWindow : model ?. contextWindow ? parseInt ( model . contextWindow ) : 0 ,
22062228 supportsImages : model ?. supportsImages ?? false ,
@@ -2211,6 +2233,19 @@ export class ClineProvider implements vscode.WebviewViewProvider {
22112233 cacheWritesPrice : model ?. cacheWritePrice ? parseFloat ( model . cacheWritePrice ) : undefined ,
22122234 cacheReadsPrice : model ?. cacheReadPrice ? parseFloat ( model . cacheReadPrice ) : undefined ,
22132235 }
2236+
2237+ switch ( true ) {
2238+ case modelId . startsWith ( "anthropic/claude-3-7-sonnet" ) :
2239+ modelInfo . maxTokens = 16384
2240+ break
2241+ case modelId . startsWith ( "anthropic/" ) :
2242+ modelInfo . maxTokens = 8192
2243+ break
2244+ default :
2245+ break
2246+ }
2247+
2248+ models [ modelId ] = modelInfo
22142249 }
22152250 }
22162251 await fs . writeFile ( unboundModelsFilePath , JSON . stringify ( models ) )
0 commit comments