@@ -23,6 +23,8 @@ interface PearAiModelsResponse {
2323
2424export class PearAiHandler extends BaseProvider implements SingleCompletionHandler {
2525 private handler ! : AnthropicHandler | PearAIGenericHandler
26+ private pearAiModelsResponse : PearAiModelsResponse | null = null
27+ private options : ApiHandlerOptions
2628
2729 constructor ( options : ApiHandlerOptions ) {
2830 super ( )
@@ -42,6 +44,7 @@ export class PearAiHandler extends BaseProvider implements SingleCompletionHandl
4244 } else {
4345 vscode . commands . executeCommand ( "pearai.checkPearAITokens" , undefined )
4446 }
47+ this . options = options
4548
4649 this . handler = new PearAIGenericHandler ( {
4750 ...options ,
@@ -66,6 +69,7 @@ export class PearAiHandler extends BaseProvider implements SingleCompletionHandl
6669 throw new Error ( `Failed to fetch models: ${ response . statusText } ` )
6770 }
6871 const data = ( await response . json ( ) ) as PearAiModelsResponse
72+ this . pearAiModelsResponse = data
6973 const underlyingModel = data . models [ modelId ] ?. underlyingModelUpdated || "claude-3-5-sonnet-20241022"
7074 if ( underlyingModel . startsWith ( "claude" ) || modelId . startsWith ( "anthropic/" ) ) {
7175 // Default to Claude
@@ -110,6 +114,23 @@ export class PearAiHandler extends BaseProvider implements SingleCompletionHandl
110114 }
111115
112116 getModel ( ) : { id : string ; info : ModelInfo } {
117+ if (
118+ this . pearAiModelsResponse &&
119+ this . options . apiModelId === "pearai-model" &&
120+ this . pearAiModelsResponse . models
121+ ) {
122+ const modelInfo = this . pearAiModelsResponse . models [ this . options . apiModelId ]
123+ if ( modelInfo ) {
124+ return {
125+ id : this . options . apiModelId ,
126+ info : {
127+ contextWindow : modelInfo . contextWindow || 4096 , // provide default or actual value
128+ supportsPromptCache : modelInfo . supportsPromptCaching || false , // provide default or actual value
129+ ...modelInfo ,
130+ } ,
131+ }
132+ }
133+ }
113134 const baseModel = this . handler . getModel ( )
114135 return baseModel
115136 }
0 commit comments