diff --git a/package-lock.json b/package-lock.json index 3a16b7a..2b0d0a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,8 @@ "packages/*" ], "dependencies": { - "@mariozechner/jiti": "^2.6.5", "@mariozechner/companion-coding-agent": "^0.30.2", + "@mariozechner/jiti": "^2.6.5", "get-east-asian-width": "^1.4.0" }, "devDependencies": { @@ -1613,19 +1613,6 @@ "node": ">= 10" } }, - "node_modules/@mariozechner/jiti": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@mariozechner/jiti/-/jiti-2.6.5.tgz", - "integrity": "sha512-faGUlTcXka5l7rv0lP3K3vGW/ejRuOS24RR2aSFWREUQqzjgdsuWNo/IiPqL3kWRGt6Ahl2+qcDAwtdeWeuGUw==", - "license": "MIT", - "dependencies": { - "std-env": "^3.10.0", - "yoctocolors": "^2.1.2" - }, - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, "node_modules/@mariozechner/companion-agent-core": { "resolved": "packages/agent", "link": true @@ -1642,6 +1629,19 @@ "resolved": "packages/tui", "link": true }, + "node_modules/@mariozechner/jiti": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@mariozechner/jiti/-/jiti-2.6.5.tgz", + "integrity": "sha512-faGUlTcXka5l7rv0lP3K3vGW/ejRuOS24RR2aSFWREUQqzjgdsuWNo/IiPqL3kWRGt6Ahl2+qcDAwtdeWeuGUw==", + "license": "MIT", + "dependencies": { + "std-env": "^3.10.0", + "yoctocolors": "^2.1.2" + }, + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/@mistralai/mistralai": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@mistralai/mistralai/-/mistralai-1.14.1.tgz", @@ -3709,6 +3709,14 @@ "node": ">= 0.8" } }, + "node_modules/companion-grind": { + "resolved": "packages/companion-grind", + "link": true + }, + "node_modules/companion-teams": { + "resolved": "packages/companion-teams", + "link": true + }, "node_modules/concurrently": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", @@ -5819,14 +5827,6 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "license": "MIT" }, - "node_modules/companion-grind": { - "resolved": "packages/companion-grind", - "link": true - }, - "node_modules/companion-teams": { - "resolved": "packages/companion-teams", - "link": true - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -7466,10 +7466,10 @@ "version": "0.56.2", "license": "MIT", "dependencies": { - "@mariozechner/jiti": "^2.6.2", "@mariozechner/companion-agent-core": "^0.56.2", "@mariozechner/companion-ai": "^0.56.2", "@mariozechner/companion-tui": "^0.56.2", + "@mariozechner/jiti": "^2.6.2", "@silvia-odwyer/photon-node": "^0.3.4", "chalk": "^5.5.0", "cli-highlight": "^2.1.11", @@ -7552,35 +7552,6 @@ "dev": true, "license": "MIT" }, - "packages/mom": { - "name": "@mariozechner/companion-mom", - "version": "0.56.2", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@anthropic-ai/sandbox-runtime": "^0.0.16", - "@mariozechner/companion-agent-core": "^0.56.2", - "@mariozechner/companion-ai": "^0.56.2", - "@mariozechner/companion-coding-agent": "^0.56.2", - "@sinclair/typebox": "^0.34.0", - "@slack/socket-mode": "^2.0.0", - "@slack/web-api": "^7.0.0", - "chalk": "^5.6.2", - "croner": "^9.1.0", - "diff": "^8.0.2" - }, - "bin": { - "mom": "dist/main.js" - }, - "devDependencies": { - "@types/diff": "^7.0.2", - "@types/node": "^24.3.0", - "typescript": "^5.7.3" - }, - "engines": { - "node": ">=20.0.0" - } - }, "packages/companion-channels": { "name": "@e9n/companion-channels", "version": "0.1.0", @@ -7907,6 +7878,35 @@ } } }, + "packages/mom": { + "name": "@mariozechner/companion-mom", + "version": "0.56.2", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@anthropic-ai/sandbox-runtime": "^0.0.16", + "@mariozechner/companion-agent-core": "^0.56.2", + "@mariozechner/companion-ai": "^0.56.2", + "@mariozechner/companion-coding-agent": "^0.56.2", + "@sinclair/typebox": "^0.34.0", + "@slack/socket-mode": "^2.0.0", + "@slack/web-api": "^7.0.0", + "chalk": "^5.6.2", + "croner": "^9.1.0", + "diff": "^8.0.2" + }, + "bin": { + "mom": "dist/main.js" + }, + "devDependencies": { + "@types/diff": "^7.0.2", + "@types/node": "^24.3.0", + "typescript": "^5.7.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, "packages/pods": { "name": "@mariozechner/companion", "version": "0.56.2", diff --git a/packages/ai/src/models.generated.ts b/packages/ai/src/models.generated.ts index 2fed7c0..4b7ac4a 100644 --- a/packages/ai/src/models.generated.ts +++ b/packages/ai/src/models.generated.ts @@ -889,6 +889,23 @@ export const MODELS = { contextWindow: 204800, maxTokens: 131072, } satisfies Model<"bedrock-converse-stream">, + "mistral.devstral-2-123b": { + id: "mistral.devstral-2-123b", + name: "Devstral 2 135B", + api: "bedrock-converse-stream", + provider: "amazon-bedrock", + baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", + reasoning: false, + input: ["text"], + cost: { + input: 0.4, + output: 2, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 256000, + maxTokens: 8192, + } satisfies Model<"bedrock-converse-stream">, "mistral.ministral-3-14b-instruct": { id: "mistral.ministral-3-14b-instruct", name: "Ministral 14B 3.0", @@ -3393,9 +3410,9 @@ export const MODELS = { reasoning: true, input: ["text", "image"], cost: { - input: 0, - output: 0, - cacheRead: 0, + input: 0.5, + output: 3, + cacheRead: 0.05, cacheWrite: 0, }, contextWindow: 1048576, @@ -4714,7 +4731,7 @@ export const MODELS = { mistral: { "codestral-latest": { id: "codestral-latest", - name: "Codestral", + name: "Codestral (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -4765,7 +4782,7 @@ export const MODELS = { } satisfies Model<"mistral-conversations">, "devstral-medium-latest": { id: "devstral-medium-latest", - name: "Devstral 2", + name: "Devstral 2 (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -4833,7 +4850,7 @@ export const MODELS = { } satisfies Model<"mistral-conversations">, "magistral-medium-latest": { id: "magistral-medium-latest", - name: "Magistral Medium", + name: "Magistral Medium (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -4867,7 +4884,7 @@ export const MODELS = { } satisfies Model<"mistral-conversations">, "ministral-3b-latest": { id: "ministral-3b-latest", - name: "Ministral 3B", + name: "Ministral 3B (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -4884,7 +4901,7 @@ export const MODELS = { } satisfies Model<"mistral-conversations">, "ministral-8b-latest": { id: "ministral-8b-latest", - name: "Ministral 8B", + name: "Ministral 8B (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -4935,7 +4952,7 @@ export const MODELS = { } satisfies Model<"mistral-conversations">, "mistral-large-latest": { id: "mistral-large-latest", - name: "Mistral Large", + name: "Mistral Large (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -4986,7 +5003,7 @@ export const MODELS = { } satisfies Model<"mistral-conversations">, "mistral-medium-latest": { id: "mistral-medium-latest", - name: "Mistral Medium", + name: "Mistral Medium (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -5037,7 +5054,7 @@ export const MODELS = { } satisfies Model<"mistral-conversations">, "mistral-small-latest": { id: "mistral-small-latest", - name: "Mistral Small", + name: "Mistral Small (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -5122,7 +5139,7 @@ export const MODELS = { } satisfies Model<"mistral-conversations">, "pixtral-large-latest": { id: "pixtral-large-latest", - name: "Pixtral Large", + name: "Pixtral Large (latest)", api: "mistral-conversations", provider: "mistral", baseUrl: "https://api.mistral.ai", @@ -6401,6 +6418,23 @@ export const MODELS = { contextWindow: 262144, maxTokens: 65536, } satisfies Model<"openai-completions">, + "mimo-v2-flash-free": { + id: "mimo-v2-flash-free", + name: "MiMo V2 Flash Free", + api: "openai-completions", + provider: "opencode", + baseUrl: "https://opencode.ai/zen/v1", + reasoning: true, + input: ["text"], + cost: { + input: 0, + output: 0, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 262144, + maxTokens: 65536, + } satisfies Model<"openai-completions">, "minimax-m2.1": { id: "minimax-m2.1", name: "MiniMax M2.1", @@ -7017,6 +7051,23 @@ export const MODELS = { contextWindow: 262144, maxTokens: 32768, } satisfies Model<"openai-completions">, + "bytedance-seed/seed-2.0-lite": { + id: "bytedance-seed/seed-2.0-lite", + name: "ByteDance Seed: Seed-2.0-Lite", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 0.25, + output: 2, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 262144, + maxTokens: 131072, + } satisfies Model<"openai-completions">, "bytedance-seed/seed-2.0-mini": { id: "bytedance-seed/seed-2.0-mini", name: "ByteDance Seed: Seed-2.0-Mini", @@ -7096,11 +7147,11 @@ export const MODELS = { cost: { input: 0.19999999999999998, output: 0.77, - cacheRead: 0.13, + cacheRead: 0.135, cacheWrite: 0, }, contextWindow: 163840, - maxTokens: 163840, + maxTokens: 4096, } satisfies Model<"openai-completions">, "deepseek/deepseek-chat-v3.1": { id: "deepseek/deepseek-chat-v3.1", @@ -7468,9 +7519,9 @@ export const MODELS = { reasoning: false, input: ["text", "image"], cost: { - input: 0.04, - output: 0.15, - cacheRead: 0.02, + input: 0.03, + output: 0.11, + cacheRead: 0.015, cacheWrite: 0, }, contextWindow: 128000, @@ -7774,13 +7825,13 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 0.295, - output: 1.2, - cacheRead: 0.03, + input: 0.27, + output: 0.95, + cacheRead: 0.0299999997, cacheWrite: 0, }, contextWindow: 196608, - maxTokens: 196608, + maxTokens: 4096, } satisfies Model<"openai-completions">, "mistralai/codestral-2508": { id: "mistralai/codestral-2508", @@ -9836,7 +9887,7 @@ export const MODELS = { cacheRead: 0, cacheWrite: 0, }, - contextWindow: 262144, + contextWindow: 131072, maxTokens: 4096, } satisfies Model<"openai-completions">, "qwen/qwen3-next-80b-a3b-instruct:free": { @@ -10060,6 +10111,23 @@ export const MODELS = { contextWindow: 262144, maxTokens: 65536, } satisfies Model<"openai-completions">, + "qwen/qwen3.5-9b": { + id: "qwen/qwen3.5-9b", + name: "Qwen: Qwen3.5-9B", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 0.09999999999999999, + output: 0.15, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 262144, + maxTokens: 4096, + } satisfies Model<"openai-completions">, "qwen/qwen3.5-flash-02-23": { id: "qwen/qwen3.5-flash-02-23", name: "Qwen: Qwen3.5-Flash", @@ -10154,13 +10222,13 @@ export const MODELS = { reasoning: false, input: ["text"], cost: { - input: 0.65, - output: 0.75, + input: 0.85, + output: 0.85, cacheRead: 0, cacheWrite: 0, }, - contextWindow: 32768, - maxTokens: 32768, + contextWindow: 131072, + maxTokens: 16384, } satisfies Model<"openai-completions">, "stepfun/step-3.5-flash": { id: "stepfun/step-3.5-flash", @@ -10731,7 +10799,7 @@ export const MODELS = { api: "anthropic-messages", provider: "vercel-ai-gateway", baseUrl: "https://ai-gateway.vercel.sh", - reasoning: true, + reasoning: false, input: ["text"], cost: { input: 0.5, @@ -11915,23 +11983,6 @@ export const MODELS = { contextWindow: 131072, maxTokens: 131072, } satisfies Model<"anthropic-messages">, - "openai/codex-mini": { - id: "openai/codex-mini", - name: "Codex Mini", - api: "anthropic-messages", - provider: "vercel-ai-gateway", - baseUrl: "https://ai-gateway.vercel.sh", - reasoning: true, - input: ["text", "image"], - cost: { - input: 1.5, - output: 6, - cacheRead: 0.375, - cacheWrite: 0, - }, - contextWindow: 200000, - maxTokens: 100000, - } satisfies Model<"anthropic-messages">, "openai/gpt-4-turbo": { id: "openai/gpt-4-turbo", name: "GPT-4 Turbo", @@ -12337,7 +12388,7 @@ export const MODELS = { cacheRead: 0.25, cacheWrite: 0, }, - contextWindow: 1050000, + contextWindow: 200000, maxTokens: 128000, } satisfies Model<"anthropic-messages">, "openai/gpt-5.4-pro": { @@ -12354,7 +12405,7 @@ export const MODELS = { cacheRead: 0, cacheWrite: 0, }, - contextWindow: 1050000, + contextWindow: 200000, maxTokens: 128000, } satisfies Model<"anthropic-messages">, "openai/gpt-oss-120b": { @@ -12918,6 +12969,23 @@ export const MODELS = { contextWindow: 202752, maxTokens: 120000, } satisfies Model<"anthropic-messages">, + "zai/glm-4.7-flash": { + id: "zai/glm-4.7-flash", + name: "GLM 4.7 Flash", + api: "anthropic-messages", + provider: "vercel-ai-gateway", + baseUrl: "https://ai-gateway.vercel.sh", + reasoning: true, + input: ["text"], + cost: { + input: 0.07, + output: 0.39999999999999997, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 200000, + maxTokens: 131000, + } satisfies Model<"anthropic-messages">, "zai/glm-4.7-flashx": { id: "zai/glm-4.7-flashx", name: "GLM 4.7 FlashX", @@ -12937,20 +13005,20 @@ export const MODELS = { } satisfies Model<"anthropic-messages">, "zai/glm-5": { id: "zai/glm-5", - name: "GLM-5", + name: "GLM 5", api: "anthropic-messages", provider: "vercel-ai-gateway", baseUrl: "https://ai-gateway.vercel.sh", reasoning: true, input: ["text"], cost: { - input: 1, - output: 3.1999999999999997, - cacheRead: 0.19999999999999998, + input: 0.7999999999999999, + output: 2.56, + cacheRead: 0.16, cacheWrite: 0, }, contextWindow: 202800, - maxTokens: 131072, + maxTokens: 131100, } satisfies Model<"anthropic-messages">, }, xai: { @@ -13277,6 +13345,57 @@ export const MODELS = { contextWindow: 2000000, maxTokens: 30000, } satisfies Model<"openai-completions">, + "grok-4.20-experimental-beta-0304-non-reasoning": { + id: "grok-4.20-experimental-beta-0304-non-reasoning", + name: "Grok 4.20 (Experimental, Non-Reasoning)", + api: "openai-completions", + provider: "xai", + baseUrl: "https://api.x.ai/v1", + reasoning: false, + input: ["text", "image"], + cost: { + input: 2, + output: 6, + cacheRead: 0.2, + cacheWrite: 0, + }, + contextWindow: 2000000, + maxTokens: 30000, + } satisfies Model<"openai-completions">, + "grok-4.20-experimental-beta-0304-reasoning": { + id: "grok-4.20-experimental-beta-0304-reasoning", + name: "Grok 4.20 (Experimental, Reasoning)", + api: "openai-completions", + provider: "xai", + baseUrl: "https://api.x.ai/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 2, + output: 6, + cacheRead: 0.2, + cacheWrite: 0, + }, + contextWindow: 2000000, + maxTokens: 30000, + } satisfies Model<"openai-completions">, + "grok-4.20-multi-agent-experimental-beta-0304": { + id: "grok-4.20-multi-agent-experimental-beta-0304", + name: "Grok 4.20 Multi-Agent (Experimental)", + api: "openai-completions", + provider: "xai", + baseUrl: "https://api.x.ai/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 2, + output: 6, + cacheRead: 0.2, + cacheWrite: 0, + }, + contextWindow: 2000000, + maxTokens: 30000, + } satisfies Model<"openai-completions">, "grok-beta": { id: "grok-beta", name: "Grok Beta",