MCPcopy
hub / github.com/continuedev/continue / listModels

Method listModels

core/llm/llms/CometAPI.ts:266–316  ·  view source on GitHub ↗

* Override listModels method to apply model filtering with enhanced error handling

()

Source from the content-addressed store, hash-verified

264 * Override listModels method to apply model filtering with enhanced error handling
265 */
266 async listModels(): Promise<string[]> {
267 try {
268 const allModels = await super.listModels();
269 const filteredModels = this.filterChatModels(
270 allModels.map((id) => ({ id })),
271 );
272
273 // If filtered list is empty or very limited, return recommended models
274 if (filteredModels.length < 5) {
275 console.info(
276 "CometAPI: Limited models available, using recommended set",
277 );
278 return this.getRecommendedModels();
279 }
280
281 return filteredModels.map((model) => model.id);
282 } catch (error: any) {
283 // Enhanced error handling with specific error types
284 const errorMessage = error?.message || "Unknown error";
285 const statusCode = error?.status || error?.statusCode;
286
287 if (statusCode === 401) {
288 throw new CometAPIAuthenticationError(
289 "CometAPI authentication failed. Please check your API key.",
290 );
291 } else if (statusCode === 429) {
292 throw new CometAPIQuotaExceededError(
293 "CometAPI rate limit exceeded. Please try again later.",
294 );
295 } else if (statusCode >= 400 && statusCode < 500) {
296 throw new CometAPIError(
297 `CometAPI client error: ${errorMessage}`,
298 "CLIENT_ERROR",
299 statusCode,
300 );
301 } else if (statusCode >= 500) {
302 console.warn(
303 "CometAPI server error, falling back to recommended models:",
304 errorMessage,
305 );
306 return this.getRecommendedModels();
307 } else {
308 // Network or other errors - fallback gracefully
309 console.warn(
310 "CometAPI: Failed to fetch model list, using recommended models",
311 errorMessage,
312 );
313 return this.getRecommendedModels();
314 }
315 }
316 }
317
318 /**
319 * Override chat completion with enhanced error handling

Callers

nothing calls this directly

Calls 5

filterChatModelsMethod · 0.95
getRecommendedModelsMethod · 0.95
infoMethod · 0.80
warnMethod · 0.80
listModelsMethod · 0.65

Tested by

no test coverage detected