feat(ai): Add gpt-5-chat-latest model to generated models

- Added hardcoded gpt-5-chat-latest model since it's not in models.dev yet
- Model has image input support and proper pricing configuration
This commit is contained in:
Mario Zechner 2025-09-02 01:32:26 +02:00
parent efaa5cdb39
commit 0fbb0921bb
10 changed files with 52 additions and 18 deletions

8
package-lock.json generated
View file

@ -2716,7 +2716,7 @@
},
"packages/agent": {
"name": "@mariozechner/pi-agent",
"version": "0.5.25",
"version": "0.5.26",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-tui": "^0.5.19",
@ -3098,7 +3098,7 @@
},
"packages/ai": {
"name": "@mariozechner/pi-ai",
"version": "0.5.25",
"version": "0.5.26",
"license": "MIT",
"dependencies": {
"@anthropic-ai/sdk": "^0.60.0",
@ -3134,7 +3134,7 @@
},
"packages/pods": {
"name": "@mariozechner/pi",
"version": "0.5.25",
"version": "0.5.26",
"license": "MIT",
"dependencies": {
"@mariozechner/pi-agent": "^0.5.19",
@ -3150,7 +3150,7 @@
},
"packages/tui": {
"name": "@mariozechner/pi-tui",
"version": "0.5.25",
"version": "0.5.26",
"license": "MIT",
"dependencies": {
"@types/mime-types": "^2.1.4",

View file

@ -1,12 +1,12 @@
{
"name": "@mariozechner/pi-agent",
"version": "0.5.25",
"version": "0.5.26",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@mariozechner/pi-agent",
"version": "0.5.25",
"version": "0.5.26",
"license": "MIT",
"dependencies": {
"@mariozechner/tui": "^0.1.1",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-agent",
"version": "0.5.25",
"version": "0.5.26",
"description": "General-purpose agent with tool calling and session persistence",
"type": "module",
"bin": {
@ -18,7 +18,7 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@mariozechner/pi-tui": "^0.5.19",
"@mariozechner/pi-tui": "^0.5.26",
"@types/glob": "^8.1.0",
"chalk": "^5.5.0",
"glob": "^11.0.3",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-ai",
"version": "0.5.25",
"version": "0.5.26",
"description": "Unified LLM API with automatic model discovery and provider configuration",
"type": "module",
"main": "./dist/index.js",

View file

@ -63,8 +63,8 @@ async function fetchOpenRouterModels(): Promise<NormalizedModel[]> {
let modelKey = model.id;
// Skip models that we get from models.dev (Anthropic, Google, OpenAI)
if (model.id.startsWith("google/") ||
model.id.startsWith("openai/") ||
if (model.id.startsWith("google/") ||
model.id.startsWith("openai/") ||
model.id.startsWith("anthropic/")) {
continue;
} else if (model.id.startsWith("x-ai/")) {
@ -275,6 +275,25 @@ async function generateModels() {
// Combine models (models.dev has priority)
const allModels = [...modelsDevModels, ...openRouterModels];
// Add missing gpt models
if (!allModels.some(m => m.provider === "openai" && m.id === "gpt-5-chat-latest")) {
allModels.push({
id: "gpt-5-chat-latest",
name: "GPT-5 Chat Latest",
provider: "openai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
});
}
// Group by provider and deduplicate by model ID
const providers: Record<string, Record<string, NormalizedModel>> = {};
for (const model of allModels) {

View file

@ -629,6 +629,21 @@ export const PROVIDERS = {
contextWindow: 200000,
maxTokens: 100000,
} satisfies Model,
"gpt-5-chat-latest": {
id: "gpt-5-chat-latest",
name: "GPT-5 Chat Latest",
provider: "openai",
reasoning: false,
input: ["text", "image"],
cost: {
input: 1.25,
output: 10,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 16384,
} satisfies Model,
},
},
groq: {

View file

@ -1,12 +1,12 @@
{
"name": "@mariozechner/pi",
"version": "0.5.25",
"version": "0.5.26",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@mariozechner/pi",
"version": "0.5.25",
"version": "0.5.26",
"license": "MIT",
"dependencies": {
"@ai-sdk/openai": "^2.0.5",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi",
"version": "0.5.25",
"version": "0.5.26",
"description": "CLI tool for managing vLLM deployments on GPU pods",
"type": "module",
"bin": {
@ -34,7 +34,7 @@
"node": ">=20.0.0"
},
"dependencies": {
"@mariozechner/pi-agent": "^0.5.19",
"@mariozechner/pi-agent": "^0.5.26",
"chalk": "^5.5.0"
},
"devDependencies": {}

View file

@ -1,12 +1,12 @@
{
"name": "@mariozechner/tui",
"version": "0.5.25",
"version": "0.5.26",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@mariozechner/tui",
"version": "0.5.25",
"version": "0.5.26",
"license": "MIT",
"dependencies": {
"@types/mime-types": "^2.1.4",

View file

@ -1,6 +1,6 @@
{
"name": "@mariozechner/pi-tui",
"version": "0.5.25",
"version": "0.5.26",
"description": "Terminal User Interface library with differential rendering for efficient text-based applications",
"type": "module",
"main": "dist/index.js",