From 6c28cf2a2a1b64791189dbc7142334a379222c0a Mon Sep 17 00:00:00 2001 From: Ryan Hutto Date: Wed, 27 May 2026 19:15:46 -0500 Subject: [PATCH] fix: update node engine ranges, upgrade better-sqlite3, and sync model registry --- package-lock.json | 43 ++--- package.json | 2 +- packages/ai/src/models.generated.ts | 247 +++++++++++++--------------- packages/coding-agent/package.json | 6 +- 4 files changed, 129 insertions(+), 169 deletions(-) diff --git a/package-lock.json b/package-lock.json index aa39cea20..21f478105 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "typescript": "^5.9.2" }, "engines": { - "node": ">=20.0.0" + "node": "^20.0.0 || ^22.0.0 || ^24.0.0 || ^26.0.0" } }, "node_modules/@anthropic-ai/sandbox-runtime": { @@ -678,7 +678,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -695,7 +694,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -712,7 +710,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -729,7 +726,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -746,7 +742,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -763,7 +758,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -780,7 +774,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -797,7 +790,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -814,7 +806,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -831,7 +822,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -848,7 +838,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -865,7 +854,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -882,7 +870,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -899,7 +886,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -916,7 +902,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -933,7 +918,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -950,7 +934,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -967,7 +950,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -984,7 +966,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1001,7 +982,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1018,7 +998,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1035,7 +1014,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1052,7 +1030,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1069,7 +1046,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1086,7 +1062,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1103,7 +1078,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3833,14 +3807,17 @@ } }, "node_modules/better-sqlite3": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.10.0.tgz", - "integrity": "sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ==", + "version": "12.10.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.10.0.tgz", + "integrity": "sha512-CyzaZRQKyHkB2ZInfTTl2nvT33EbDpjkLEbE8/Zck3Ll6O0qqvuGdrJ45HgtH+HykRg88ITY3AdreBGN70aBSQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { "bindings": "^1.5.0", "prebuild-install": "^7.1.1" + }, + "engines": { + "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x" } }, "node_modules/bignumber.js": { @@ -8897,7 +8874,7 @@ "@silvia-odwyer/photon-node": "^0.3.4", "@sinclair/typebox": "^0.34.49", "ajv": "^8.17.1", - "better-sqlite3": "^11.7.0", + "better-sqlite3": "^12.10.0", "chalk": "^5.5.0", "cli-highlight": "^2.1.11", "diff": "^8.0.2", @@ -8919,7 +8896,7 @@ "caveman-code": "dist/cli.js" }, "devDependencies": { - "@types/better-sqlite3": "^7.6.12", + "@types/better-sqlite3": "^7.6.13", "@types/diff": "^7.0.2", "@types/hosted-git-info": "^3.0.5", "@types/ms": "^2.1.0", @@ -8931,7 +8908,7 @@ "vitest": "^3.2.4" }, "engines": { - "node": ">=20.6.0" + "node": "^20.6.0 || ^22.0.0 || ^24.0.0 || ^26.0.0" }, "optionalDependencies": { "@mariozechner/clipboard": "^0.3.2" diff --git a/package.json b/package.json index 8fb6bbca7..4fc67c300 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "shx": "^0.4.0" }, "engines": { - "node": ">=20.0.0" + "node": "^20.0.0 || ^22.0.0 || ^24.0.0 || ^26.0.0" }, "version": "0.0.3", "dependencies": { diff --git a/packages/ai/src/models.generated.ts b/packages/ai/src/models.generated.ts index ecd7241e4..b76262e10 100644 --- a/packages/ai/src/models.generated.ts +++ b/packages/ai/src/models.generated.ts @@ -1907,7 +1907,7 @@ export const MODELS = { cost: { input: 0.1, output: 0.4, - cacheRead: 0.03, + cacheRead: 0.025, cacheWrite: 0, }, contextWindow: 1047576, @@ -1992,7 +1992,7 @@ export const MODELS = { cost: { input: 0.15, output: 0.6, - cacheRead: 0.08, + cacheRead: 0.075, cacheWrite: 0, }, contextWindow: 128000, @@ -2111,7 +2111,7 @@ export const MODELS = { cost: { input: 1.25, output: 10, - cacheRead: 0.13, + cacheRead: 0.125, cacheWrite: 0, }, contextWindow: 400000, @@ -2519,7 +2519,7 @@ export const MODELS = { cost: { input: 1.1, output: 4.4, - cacheRead: 0.28, + cacheRead: 0.275, cacheWrite: 0, }, contextWindow: 200000, @@ -2578,23 +2578,6 @@ export const MODELS = { contextWindow: 32000, maxTokens: 8000, } satisfies Model<"openai-completions">, - "qwen-3-235b-a22b-instruct-2507": { - id: "qwen-3-235b-a22b-instruct-2507", - name: "Qwen 3 235B Instruct", - api: "openai-completions", - provider: "cerebras", - baseUrl: "https://api.cerebras.ai/v1", - reasoning: false, - input: ["text"], - cost: { - input: 0.6, - output: 1.2, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 131000, - maxTokens: 32000, - } satisfies Model<"openai-completions">, "zai-glm-4.7": { id: "zai-glm-4.7", name: "Z.AI GLM-4.7", @@ -3954,7 +3937,7 @@ export const MODELS = { cost: { input: 1, output: 3, - cacheRead: 0, + cacheRead: 0.5, cacheWrite: 0, }, contextWindow: 262144, @@ -3971,7 +3954,7 @@ export const MODELS = { cost: { input: 0.15, output: 0.6, - cacheRead: 0, + cacheRead: 0.075, cacheWrite: 0, }, contextWindow: 131072, @@ -3988,7 +3971,7 @@ export const MODELS = { cost: { input: 0.075, output: 0.3, - cacheRead: 0, + cacheRead: 0.0375, cacheWrite: 0, }, contextWindow: 131072, @@ -4273,9 +4256,9 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 1.74, - output: 3.48, - cacheRead: 0.145, + input: 0.435, + output: 0.87, + cacheRead: 0.003625, cacheWrite: 0, }, contextWindow: 1048576, @@ -5110,7 +5093,7 @@ export const MODELS = { cost: { input: 0.1, output: 0.4, - cacheRead: 0.03, + cacheRead: 0.025, cacheWrite: 0, }, contextWindow: 1047576, @@ -5195,7 +5178,7 @@ export const MODELS = { cost: { input: 0.15, output: 0.6, - cacheRead: 0.08, + cacheRead: 0.075, cacheWrite: 0, }, contextWindow: 128000, @@ -5314,7 +5297,7 @@ export const MODELS = { cost: { input: 1.25, output: 10, - cacheRead: 0.13, + cacheRead: 0.125, cacheWrite: 0, }, contextWindow: 400000, @@ -5722,7 +5705,7 @@ export const MODELS = { cost: { input: 1.1, output: 4.4, - cacheRead: 0.28, + cacheRead: 0.275, cacheWrite: 0, }, contextWindow: 200000, @@ -5934,7 +5917,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 200000, - maxTokens: 128000, + maxTokens: 32000, } satisfies Model<"openai-completions">, "claude-haiku-4-5": { id: "claude-haiku-4-5", @@ -6497,6 +6480,23 @@ export const MODELS = { contextWindow: 262144, maxTokens: 65536, } satisfies Model<"openai-completions">, + "mimo-v2.5-free": { + id: "mimo-v2.5-free", + name: "MiMo V2.5 Free", + api: "openai-completions", + provider: "opencode", + baseUrl: "https://opencode.ai/zen/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 0, + output: 0, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 1000000, + maxTokens: 128000, + } satisfies Model<"openai-completions">, "minimax-m2.5": { id: "minimax-m2.5", name: "MiniMax M2.5", @@ -6695,9 +6695,9 @@ export const MODELS = { reasoning: true, input: ["text", "image"], cost: { - input: 0.4, - output: 2, - cacheRead: 0.08, + input: 0.14, + output: 0.28, + cacheRead: 0.0028, cacheWrite: 0, }, contextWindow: 1000000, @@ -6712,9 +6712,9 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 1, - output: 3, - cacheRead: 0.2, + input: 1.74, + output: 3.48, + cacheRead: 0.0145, cacheWrite: 0, }, contextWindow: 1048576, @@ -6788,6 +6788,23 @@ export const MODELS = { contextWindow: 262144, maxTokens: 65536, } satisfies Model<"anthropic-messages">, + "qwen3.7-max": { + id: "qwen3.7-max", + name: "Qwen3.7 Max", + api: "anthropic-messages", + provider: "opencode-go", + baseUrl: "https://opencode.ai/zen/go", + reasoning: true, + input: ["text"], + cost: { + input: 2.5, + output: 7.5, + cacheRead: 0.5, + cacheWrite: 3.125, + }, + contextWindow: 1000000, + maxTokens: 65536, + } satisfies Model<"anthropic-messages">, }, "openrouter": { "ai21/jamba-large-1.7": { @@ -6807,23 +6824,6 @@ export const MODELS = { contextWindow: 256000, maxTokens: 4096, } satisfies Model<"openai-completions">, - "alibaba/tongyi-deepresearch-30b-a3b": { - id: "alibaba/tongyi-deepresearch-30b-a3b", - name: "Tongyi DeepResearch 30B A3B", - api: "openai-completions", - provider: "openrouter", - baseUrl: "https://openrouter.ai/api/v1", - reasoning: true, - input: ["text"], - cost: { - input: 0.09, - output: 0.44999999999999996, - cacheRead: 0.09, - cacheWrite: 0, - }, - contextWindow: 131072, - maxTokens: 131072, - } satisfies Model<"openai-completions">, "amazon/nova-2-lite-v1": { id: "amazon/nova-2-lite-v1", name: "Amazon: Nova 2 Lite", @@ -7147,23 +7147,6 @@ export const MODELS = { contextWindow: 262144, maxTokens: 262144, } satisfies Model<"openai-completions">, - "arcee-ai/trinity-large-thinking:free": { - id: "arcee-ai/trinity-large-thinking:free", - name: "Arcee AI: Trinity Large Thinking (free)", - api: "openai-completions", - provider: "openrouter", - baseUrl: "https://openrouter.ai/api/v1", - reasoning: true, - input: ["text"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 262144, - maxTokens: 80000, - } satisfies Model<"openai-completions">, "arcee-ai/trinity-mini": { id: "arcee-ai/trinity-mini", name: "Arcee AI: Trinity Mini", @@ -7215,23 +7198,6 @@ export const MODELS = { contextWindow: 2000000, maxTokens: 30000, } satisfies Model<"openai-completions">, - "baidu/cobuddy:free": { - id: "baidu/cobuddy:free", - name: "Baidu Qianfan: CoBuddy (free)", - api: "openai-completions", - provider: "openrouter", - baseUrl: "https://openrouter.ai/api/v1", - reasoning: true, - input: ["text"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 131072, - maxTokens: 65536, - } satisfies Model<"openai-completions">, "baidu/ernie-4.5-21b-a3b": { id: "baidu/ernie-4.5-21b-a3b", name: "Baidu: ERNIE 4.5 21B A3B", @@ -7377,13 +7343,13 @@ export const MODELS = { reasoning: false, input: ["text"], cost: { - input: 0.32, - output: 0.8899999999999999, + input: 0.2288, + output: 0.9144, cacheRead: 0, cacheWrite: 0, }, - contextWindow: 163840, - maxTokens: 16384, + contextWindow: 131072, + maxTokens: 16000, } satisfies Model<"openai-completions">, "deepseek/deepseek-chat-v3-0324": { id: "deepseek/deepseek-chat-v3-0324", @@ -8181,7 +8147,7 @@ export const MODELS = { cacheRead: 0, cacheWrite: 0, }, - contextWindow: 204800, + contextWindow: 262144, maxTokens: 8192, } satisfies Model<"openai-completions">, "minimax/minimax-m2.7": { @@ -8643,6 +8609,23 @@ export const MODELS = { contextWindow: 262144, maxTokens: 262142, } satisfies Model<"openai-completions">, + "moonshotai/kimi-k2.6:free": { + id: "moonshotai/kimi-k2.6:free", + name: "MoonshotAI: Kimi K2.6 (free)", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 0, + output: 0, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 262144, + maxTokens: 4096, + } satisfies Model<"openai-completions">, "nex-agi/deepseek-v3.1-nex-n1": { id: "nex-agi/deepseek-v3.1-nex-n1", name: "Nex AGI: DeepSeek V3.1 Nex N1", @@ -9232,11 +9215,11 @@ export const MODELS = { cost: { input: 1.25, output: 10, - cacheRead: 0.125, + cacheRead: 0.13, cacheWrite: 0, }, contextWindow: 128000, - maxTokens: 16384, + maxTokens: 32000, } satisfies Model<"openai-completions">, "openai/gpt-5.1-codex": { id: "openai/gpt-5.1-codex", @@ -9249,7 +9232,7 @@ export const MODELS = { cost: { input: 1.25, output: 10, - cacheRead: 0.125, + cacheRead: 0.13, cacheWrite: 0, }, contextWindow: 400000, @@ -9283,11 +9266,11 @@ export const MODELS = { cost: { input: 0.25, output: 2, - cacheRead: 0.03, + cacheRead: 0.024999999999999998, cacheWrite: 0, }, contextWindow: 400000, - maxTokens: 128000, + maxTokens: 100000, } satisfies Model<"openai-completions">, "openai/gpt-5.2": { id: "openai/gpt-5.2", @@ -9321,7 +9304,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 128000, - maxTokens: 32000, + maxTokens: 16384, } satisfies Model<"openai-completions">, "openai/gpt-5.2-codex": { id: "openai/gpt-5.2-codex", @@ -9847,8 +9830,8 @@ export const MODELS = { cacheRead: 0, cacheWrite: 0, }, - contextWindow: 131072, - maxTokens: 8192, + contextWindow: 262144, + maxTokens: 32768, } satisfies Model<"openai-completions">, "poolside/laguna-xs.2:free": { id: "poolside/laguna-xs.2:free", @@ -9864,8 +9847,8 @@ export const MODELS = { cacheRead: 0, cacheWrite: 0, }, - contextWindow: 131072, - maxTokens: 8192, + contextWindow: 262144, + maxTokens: 32768, } satisfies Model<"openai-completions">, "prime-intellect/intellect-3": { id: "prime-intellect/intellect-3", @@ -9947,7 +9930,7 @@ export const MODELS = { input: 0.26, output: 0.78, cacheRead: 0, - cacheWrite: 0.325, + cacheWrite: 0, }, contextWindow: 1000000, maxTokens: 32768, @@ -10525,7 +10508,7 @@ export const MODELS = { input: 0.065, output: 0.26, cacheRead: 0, - cacheWrite: 0.08125, + cacheWrite: 0, }, contextWindow: 1000000, maxTokens: 65536, @@ -10542,7 +10525,7 @@ export const MODELS = { input: 0.26, output: 1.56, cacheRead: 0, - cacheWrite: 0.325, + cacheWrite: 0, }, contextWindow: 1000000, maxTokens: 65536, @@ -10559,7 +10542,7 @@ export const MODELS = { input: 0.3, output: 1.7999999999999998, cacheRead: 0, - cacheWrite: 0, + cacheWrite: 0.375, }, contextWindow: 1000000, maxTokens: 65536, @@ -10573,13 +10556,13 @@ export const MODELS = { reasoning: true, input: ["text", "image"], cost: { - input: 0.3, + input: 0.29, output: 3.1999999999999997, cacheRead: 0, cacheWrite: 0, }, contextWindow: 262144, - maxTokens: 262144, + maxTokens: 262140, } satisfies Model<"openai-completions">, "qwen/qwen3.6-35b-a3b": { id: "qwen/qwen3.6-35b-a3b", @@ -10590,7 +10573,7 @@ export const MODELS = { reasoning: true, input: ["text", "image"], cost: { - input: 0.15, + input: 0.14, output: 1, cacheRead: 0, cacheWrite: 0, @@ -10658,10 +10641,10 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 2.5, - output: 7.5, - cacheRead: 0, - cacheWrite: 3.125, + input: 1.25, + output: 3.75, + cacheRead: 0.25, + cacheWrite: 1.5625, }, contextWindow: 1000000, maxTokens: 65536, @@ -10930,9 +10913,9 @@ export const MODELS = { reasoning: true, input: ["text", "image"], cost: { - input: 0.39999999999999997, - output: 2, - cacheRead: 0.08, + input: 0.14, + output: 0.28, + cacheRead: 0.0028, cacheWrite: 0, }, contextWindow: 1048576, @@ -10947,13 +10930,13 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 1, - output: 3, - cacheRead: 0.19999999999999998, + input: 0.435, + output: 0.87, + cacheRead: 0.0036, cacheWrite: 0, }, contextWindow: 1048576, - maxTokens: 16384, + maxTokens: 131072, } satisfies Model<"openai-completions">, "z-ai/glm-4-32b": { id: "z-ai/glm-4-32b", @@ -10998,13 +10981,13 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 0.13, - output: 0.85, - cacheRead: 0.024999999999999998, + input: 0.125, + output: 0.84, + cacheRead: 0, cacheWrite: 0, }, contextWindow: 131072, - maxTokens: 98304, + maxTokens: 131070, } satisfies Model<"openai-completions">, "z-ai/glm-4.5-air:free": { id: "z-ai/glm-4.5-air:free", @@ -13754,9 +13737,9 @@ export const MODELS = { reasoning: true, input: ["text", "image"], cost: { - input: 0.39999999999999997, - output: 2, - cacheRead: 0.08, + input: 0.14, + output: 0.28, + cacheRead: 0.0028, cacheWrite: 0, }, contextWindow: 1050000, @@ -13771,9 +13754,9 @@ export const MODELS = { reasoning: true, input: ["text", "image"], cost: { - input: 1, - output: 3, - cacheRead: 0.19999999999999998, + input: 0.435, + output: 0.87, + cacheRead: 0.0036, cacheWrite: 0, }, contextWindow: 1050000, diff --git a/packages/coding-agent/package.json b/packages/coding-agent/package.json index 0c89ced00..fa605a151 100644 --- a/packages/coding-agent/package.json +++ b/packages/coding-agent/package.json @@ -57,7 +57,7 @@ "@sinclair/typebox": "^0.34.49", "@silvia-odwyer/photon-node": "^0.3.4", "ajv": "^8.17.1", - "better-sqlite3": "^11.7.0", + "better-sqlite3": "^12.10.0", "chalk": "^5.5.0", "cli-highlight": "^2.1.11", "diff": "^8.0.2", @@ -84,7 +84,7 @@ "@mariozechner/clipboard": "^0.3.2" }, "devDependencies": { - "@types/better-sqlite3": "^7.6.12", + "@types/better-sqlite3": "^7.6.13", "@types/diff": "^7.0.2", "@types/hosted-git-info": "^3.0.5", "@types/ms": "^2.1.0", @@ -111,7 +111,7 @@ "directory": "packages/coding-agent" }, "engines": { - "node": ">=20.6.0" + "node": "^20.6.0 || ^22.0.0 || ^24.0.0 || ^26.0.0" }, "homepage": "https://github.com/JuliusBrussee/caveman-code#readme", "bugs": {