@@ -22,6 +22,12 @@ const modelConfigSchema = z.object({
2222 reasoningSupport : z . boolean ( ) ,
2323 toolChoiceSupport : z . array ( z . enum ( [ 'any' , 'auto' , 'tool' ] ) ) ,
2424 isHidden : z . boolean ( ) . optional ( ) ,
25+ pricing : z . object ( {
26+ input : z . number ( ) ,
27+ output : z . number ( ) ,
28+ cacheRead : z . number ( ) ,
29+ cacheWrite : z . number ( ) ,
30+ } ) ,
2531} ) ;
2632
2733export const modelConfigs : Record < ModelType , z . infer < typeof modelConfigSchema > > = {
@@ -34,6 +40,7 @@ export const modelConfigs: Record<ModelType, z.infer<typeof modelConfigSchema>>
3440 reasoningSupport : false ,
3541 toolChoiceSupport : [ 'any' , 'auto' , 'tool' ] ,
3642 isHidden : true ,
43+ pricing : { input : 0.003 , output : 0.015 , cacheRead : 0.0003 , cacheWrite : 0.00375 } ,
3744 } ,
3845 'sonnet3.5' : {
3946 name : 'Claude 3.5 Sonnet v2' ,
@@ -43,6 +50,7 @@ export const modelConfigs: Record<ModelType, z.infer<typeof modelConfigSchema>>
4350 cacheSupport : [ ] ,
4451 reasoningSupport : false ,
4552 toolChoiceSupport : [ 'any' , 'auto' , 'tool' ] ,
53+ pricing : { input : 0.003 , output : 0.015 , cacheRead : 0.0003 , cacheWrite : 0.00375 } ,
4654 } ,
4755 'sonnet3.7' : {
4856 name : 'Claude 3.7 Sonnet' ,
@@ -52,6 +60,7 @@ export const modelConfigs: Record<ModelType, z.infer<typeof modelConfigSchema>>
5260 cacheSupport : [ 'system' , 'message' , 'tool' ] ,
5361 reasoningSupport : true ,
5462 toolChoiceSupport : [ 'any' , 'auto' , 'tool' ] ,
63+ pricing : { input : 0.003 , output : 0.015 , cacheRead : 0.0003 , cacheWrite : 0.00375 } ,
5564 } ,
5665 'haiku3.5' : {
5766 name : 'Claude 3.5 Haiku' ,
@@ -62,6 +71,7 @@ export const modelConfigs: Record<ModelType, z.infer<typeof modelConfigSchema>>
6271 reasoningSupport : false ,
6372 toolChoiceSupport : [ 'any' , 'auto' , 'tool' ] ,
6473 isHidden : true ,
74+ pricing : { input : 0.0008 , output : 0.004 , cacheRead : 0.00008 , cacheWrite : 0.001 } ,
6575 } ,
6676 'nova-pro' : {
6777 name : 'Amazon Nova Pro' ,
@@ -71,6 +81,7 @@ export const modelConfigs: Record<ModelType, z.infer<typeof modelConfigSchema>>
7181 reasoningSupport : false ,
7282 cacheSupport : [ 'system' ] ,
7383 toolChoiceSupport : [ 'auto' ] ,
84+ pricing : { input : 0.0008 , output : 0.0032 , cacheRead : 0.0002 , cacheWrite : 0.0008 } ,
7485 } ,
7586 opus4 : {
7687 name : 'Claude 4 Opus' ,
@@ -81,6 +92,7 @@ export const modelConfigs: Record<ModelType, z.infer<typeof modelConfigSchema>>
8192 reasoningSupport : true ,
8293 toolChoiceSupport : [ 'any' , 'auto' , 'tool' ] ,
8394 isHidden : true ,
95+ pricing : { input : 0.015 , output : 0.075 , cacheRead : 0.0015 , cacheWrite : 0.01875 } ,
8496 } ,
8597 'opus4.1' : {
8698 name : 'Claude 4.1 Opus' ,
@@ -90,6 +102,7 @@ export const modelConfigs: Record<ModelType, z.infer<typeof modelConfigSchema>>
90102 cacheSupport : [ 'system' , 'message' , 'tool' ] ,
91103 reasoningSupport : true ,
92104 toolChoiceSupport : [ 'any' , 'auto' , 'tool' ] ,
105+ pricing : { input : 0.015 , output : 0.075 , cacheRead : 0.0015 , cacheWrite : 0.01875 } ,
93106 } ,
94107 sonnet4 : {
95108 name : 'Claude 4 Sonnet' ,
@@ -99,5 +112,6 @@ export const modelConfigs: Record<ModelType, z.infer<typeof modelConfigSchema>>
99112 cacheSupport : [ 'system' , 'message' , 'tool' ] ,
100113 reasoningSupport : true ,
101114 toolChoiceSupport : [ 'any' , 'auto' , 'tool' ] ,
115+ pricing : { input : 0.003 , output : 0.015 , cacheRead : 0.0003 , cacheWrite : 0.00375 } ,
102116 } ,
103117} ;
0 commit comments