mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 17:00:59 +00:00
- Add models script to download latest model information - Create models.ts module to query model capabilities - Include models.json in package distribution - Export utilities to check model features (reasoning, tools) - Update build process to copy models.json to dist
43 lines
No EOL
1.7 KiB
TypeScript
43 lines
No EOL
1.7 KiB
TypeScript
#!/usr/bin/env tsx
|
|
|
|
import { loadModels, getModelInfo, getProviderModels, getProviderInfo, getAllProviders, supportsThinking, supportsTools } from "../src/models.js";
|
|
|
|
// Test loading models
|
|
console.log("Loading models data...");
|
|
const data = loadModels();
|
|
const providers = getAllProviders();
|
|
console.log(`Loaded ${providers.length} providers\n`);
|
|
|
|
// Test getting provider info
|
|
console.log("OpenAI provider info:");
|
|
const openai = getProviderInfo("openai");
|
|
if (openai) {
|
|
console.log(` Name: ${openai.name}`);
|
|
console.log(` NPM: ${openai.npm}`);
|
|
console.log(` Models: ${Object.keys(openai.models).length}`);
|
|
}
|
|
|
|
// Test getting a specific model
|
|
console.log("\nGetting info for gpt-4o:");
|
|
const gpt4o = getModelInfo("gpt-4o");
|
|
if (gpt4o) {
|
|
console.log(` Name: ${gpt4o.name}`);
|
|
console.log(` Context: ${gpt4o.limit?.context}`);
|
|
console.log(` Max Output: ${gpt4o.limit?.output}`);
|
|
console.log(` Reasoning: ${gpt4o.reasoning}`);
|
|
console.log(` Tool Call: ${gpt4o.tool_call}`);
|
|
}
|
|
|
|
// Test getting provider models
|
|
console.log("\nOpenAI models:");
|
|
const openaiModels = getProviderModels("openai");
|
|
console.log(` Found ${openaiModels.length} OpenAI models`);
|
|
console.log(` First 5: ${openaiModels.slice(0, 5).map(m => m.id).join(", ")}`);
|
|
|
|
// Test checking capabilities
|
|
console.log("\nModel capabilities:");
|
|
console.log(` gpt-4o supports thinking: ${supportsThinking("gpt-4o")}`);
|
|
console.log(` gpt-4o supports tools: ${supportsTools("gpt-4o")}`);
|
|
console.log(` o1 supports thinking: ${supportsThinking("o1")}`);
|
|
console.log(` o1 supports tools: ${supportsTools("o1")}`);
|
|
console.log(` claude-3-5-sonnet-20241022 supports tools: ${supportsTools("claude-3-5-sonnet-20241022")}`); |