opencode-cmd-provider 1.6.1 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/dist/src/catalog/facts.d.ts +4 -4
- package/dist/src/catalog/facts.js +6 -7
- package/dist/src/catalog/snapshot.js +1 -2
- package/dist/src/deals/catalog.d.ts +1 -1
- package/dist/src/deals/catalog.js +3 -4
- package/dist/src/provider/reasoning.js +0 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.6.2 - 2026-09-01
|
|
4
|
+
|
|
5
|
+
Patch release. Make the daily catalog-refresh cron self-sustainable against
|
|
6
|
+
upstream data changes (refs issue #89) and ship the 2026-09-01 catalog
|
|
7
|
+
refresh.
|
|
8
|
+
|
|
9
|
+
- **Self-sustainable cron tests** — the daily catalog-refresh cron has been
|
|
10
|
+
failing every day since 2026-08-28 because its shape-pinning tests pinned
|
|
11
|
+
upstream-managed data (deal pcts, benchmark throughput, plan allowances,
|
|
12
|
+
effort-classification lists). Any legitimate upstream change — a deal
|
|
13
|
+
expiring, a benchmark value moving, a free variant being retired — failed
|
|
14
|
+
`npm test` and blocked the refresh PR until a human updated the pins.
|
|
15
|
+
This release separates **shape** from **value** in those tests, so the
|
|
16
|
+
cron can land upstream changes without manual intervention:
|
|
17
|
+
- `tests/refresh-deals.test.ts`: the five real-RSC `modelDealEntry`
|
|
18
|
+
value pins (Gemini 3.7 Flash, Qwen 3.6 Plus, MiniMax M3, DeepSeek V4
|
|
19
|
+
Flash, Laguna) are replaced with nine synthetic-record tests that own
|
|
20
|
+
every value they assert. A companion test exercises the "deal ended"
|
|
21
|
+
case the cron hit on 2026-08-31. The end-to-end real-RSC smoke test
|
|
22
|
+
still runs the parser over every per-plan slug record to catch
|
|
23
|
+
shape/contract regressions, but no longer pins values.
|
|
24
|
+
- `tests/refresh-deals-rsc.test.ts`: the "emitted catalog has parity
|
|
25
|
+
with the shipped catalog" test asserts structural fields (discount
|
|
26
|
+
exists, benchmark exists, allowance has both goat/pro keys,
|
|
27
|
+
peakOffPeak exists) instead of exact MiniMax / Kimi values. Value
|
|
28
|
+
semantics now live in the synthetic `modelDealEntry` tests.
|
|
29
|
+
- `tests/catalog-metadata.test.ts`: `EFFORTS_MODELS` is now derived
|
|
30
|
+
from the auto-generated `MODEL_EFFORTS` (the npm package's
|
|
31
|
+
`models.md` is the source of truth for which models expose effort
|
|
32
|
+
levels), so a new efforts model — like `deepseek/deepseek-v4-flash-fast`
|
|
33
|
+
added 2026-08-31 — lands in `MODEL_EFFORTS` on the next refresh and
|
|
34
|
+
the reasoning-classification test follows automatically. The
|
|
35
|
+
"exactly once" gate becomes a "no model is in both `MODEL_EFFORTS`
|
|
36
|
+
and `REASONING_MODELS`" invariant (a real misclassification signal)
|
|
37
|
+
plus an advisory check that `isReasoningModel` agrees with the
|
|
38
|
+
union and respects `NON_REASONING_MODELS`.
|
|
39
|
+
- `tests/plugin-models.test.ts`: the "free variants get a `(free)`
|
|
40
|
+
suffix" test pins on `poolside/laguna-s-2.1-free` (still in the
|
|
41
|
+
snapshot) instead of the MiniMax name-collision pair retired
|
|
42
|
+
from upstream.
|
|
43
|
+
- `src/provider/reasoning.ts`: drop `minimax/minimax-m3-free` from
|
|
44
|
+
`REASONING_MODELS` — the variant was retired from upstream's
|
|
45
|
+
`models.md` alongside the free model itself, so the entry was stale.
|
|
46
|
+
- **Catalog refresh — 2026-09-01** — snapshot + capability facts +
|
|
47
|
+
RSC fixtures refreshed to current upstream values (see PR #105).
|
|
48
|
+
- **Issue #89** — the broader question of how to lock down shape-pinning
|
|
49
|
+
value pins remains open; this release is the cron-side half of that
|
|
50
|
+
fix. The deals-value-pin half is still tracked in #89.
|
|
51
|
+
|
|
3
52
|
## 1.6.1 - 2026-08-29
|
|
4
53
|
|
|
5
54
|
Patch release. Catalog refresh to `command-code@1.38.1`, one catalog
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const FACTS_SOURCE_URL = "https://unpkg.com/command-code@1.
|
|
2
|
-
export declare const MODALITIES_SOURCE_URL = "https://unpkg.com/command-code@1.
|
|
3
|
-
export declare const FACTS_PACKAGE_VERSION = "1.
|
|
4
|
-
export declare const FACTS_LAST_REFRESHED = "2026-
|
|
1
|
+
export declare const FACTS_SOURCE_URL = "https://unpkg.com/command-code@1.39.2/dist/bundled/command-code-knowledge/reference/models.md";
|
|
2
|
+
export declare const MODALITIES_SOURCE_URL = "https://unpkg.com/command-code@1.39.2/dist/cli.mjs";
|
|
3
|
+
export declare const FACTS_PACKAGE_VERSION = "1.39.2";
|
|
4
|
+
export declare const FACTS_LAST_REFRESHED = "2026-09-01";
|
|
5
5
|
export declare const MODEL_EFFORTS: Readonly<Record<string, readonly string[]>>;
|
|
6
6
|
export declare const MODEL_COSTS: Readonly<Record<string, {
|
|
7
7
|
input: number;
|
|
@@ -4,14 +4,15 @@
|
|
|
4
4
|
// command-code npm package's bundled model catalog (models.md), plus input
|
|
5
5
|
// modalities parsed from its CLI bundle (dist/cli.mjs). Regenerate
|
|
6
6
|
// with `npm run refresh:snapshot`.
|
|
7
|
-
export const FACTS_SOURCE_URL = "https://unpkg.com/command-code@1.
|
|
8
|
-
export const MODALITIES_SOURCE_URL = "https://unpkg.com/command-code@1.
|
|
9
|
-
export const FACTS_PACKAGE_VERSION = "1.
|
|
10
|
-
export const FACTS_LAST_REFRESHED = "2026-
|
|
7
|
+
export const FACTS_SOURCE_URL = "https://unpkg.com/command-code@1.39.2/dist/bundled/command-code-knowledge/reference/models.md";
|
|
8
|
+
export const MODALITIES_SOURCE_URL = "https://unpkg.com/command-code@1.39.2/dist/cli.mjs";
|
|
9
|
+
export const FACTS_PACKAGE_VERSION = "1.39.2";
|
|
10
|
+
export const FACTS_LAST_REFRESHED = "2026-09-01";
|
|
11
11
|
export const MODEL_EFFORTS = {
|
|
12
12
|
"deepseek/deepseek-v4-pro": ["high", "max"],
|
|
13
13
|
"deepseek/deepseek-v4-flash": ["high", "max"],
|
|
14
14
|
"deepseek/deepseek-v4-flash-vision-exp": ["high", "max"],
|
|
15
|
+
"deepseek/deepseek-v4-flash-fast": ["low", "high", "max"],
|
|
15
16
|
"z-ai/glm-5.3-flash": ["low", "high", "max"],
|
|
16
17
|
"zai-org/GLM-5.3": ["low", "high", "max"],
|
|
17
18
|
"zai-org/GLM-5.2": ["high", "max"],
|
|
@@ -45,6 +46,7 @@ export const MODEL_COSTS = {
|
|
|
45
46
|
"deepseek/deepseek-v4-pro": { input: 0.66, output: 1.98, cacheRead: 0.022, cacheWrite: 0 },
|
|
46
47
|
"deepseek/deepseek-v4-flash": { input: 0.22, output: 0.66, cacheRead: 0.007, cacheWrite: 0 },
|
|
47
48
|
"deepseek/deepseek-v4-flash-vision-exp": { input: 0.22, output: 0.66, cacheRead: 0.007, cacheWrite: 0 },
|
|
49
|
+
"deepseek/deepseek-v4-flash-fast": { input: 0.28, output: 0.56, cacheRead: 0.07, cacheWrite: 0 },
|
|
48
50
|
"moonshotai/Kimi-K3": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 },
|
|
49
51
|
"moonshotai/Kimi-K2.7-Code": { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 },
|
|
50
52
|
"moonshotai/Kimi-K2.7-Code-Highspeed": { input: 1.9, output: 8, cacheRead: 0.38, cacheWrite: 0 },
|
|
@@ -58,8 +60,6 @@ export const MODEL_COSTS = {
|
|
|
58
60
|
"zai-org/GLM-5": { input: 1, output: 3.2, cacheRead: 0.2, cacheWrite: 0 },
|
|
59
61
|
"MiniMaxAI/MiniMax-M3": { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 },
|
|
60
62
|
"MiniMaxAI/MiniMax-M2.7": { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0 },
|
|
61
|
-
"minimax/minimax-m3-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
62
|
-
"minimax/minimax-m2.7-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
63
63
|
"MiniMaxAI/MiniMax-M2.5": { input: 0.3, output: 1.2, cacheRead: 0.03, cacheWrite: 0 },
|
|
64
64
|
"xiaomi/mimo-v2.5-pro": { input: 0.435, output: 0.87, cacheRead: 0.0036, cacheWrite: 0 },
|
|
65
65
|
"xiaomi/mimo-v2.5": { input: 0.14, output: 0.28, cacheRead: 0.0028, cacheWrite: 0 },
|
|
@@ -136,7 +136,6 @@ export const MODEL_INPUT_MODALITIES = {
|
|
|
136
136
|
"meta/muse-spark-1.1": ["text", "image"],
|
|
137
137
|
"meta/muse-spark-1.2": ["text", "image"],
|
|
138
138
|
"meta/muse-spark-1.2-contributor": ["text", "image"],
|
|
139
|
-
"minimax/minimax-m3-free": ["text", "image"],
|
|
140
139
|
"moonshotai/Kimi-K2.5": ["text", "image"],
|
|
141
140
|
"moonshotai/Kimi-K2.6": ["text", "image"],
|
|
142
141
|
"moonshotai/Kimi-K2.7-Code": ["text", "image"],
|
|
@@ -21,6 +21,7 @@ export const MODEL_SNAPSHOT = [
|
|
|
21
21
|
{ id: "deepseek/deepseek-v4-pro", name: "DeepSeek V4 Pro (latest)", contextLength: 1000000 },
|
|
22
22
|
{ id: "deepseek/deepseek-v4-flash", name: "DeepSeek V4 Flash (latest)", contextLength: 1000000 },
|
|
23
23
|
{ id: "deepseek/deepseek-v4-flash-vision-exp", name: "DeepSeek V4 Flash Vision (exp)", contextLength: 1000000 },
|
|
24
|
+
{ id: "deepseek/deepseek-v4-flash-fast", name: "DeepSeek V4 Flash Fast", contextLength: 1000000 },
|
|
24
25
|
{ id: "moonshotai/Kimi-K3", name: "Kimi K3", contextLength: 1000000 },
|
|
25
26
|
{ id: "moonshotai/Kimi-K2.7-Code", name: "Kimi K2.7 Code", contextLength: 256000 },
|
|
26
27
|
{ id: "moonshotai/Kimi-K2.7-Code-Highspeed", name: "Kimi K2.7 Code HighSpeed", contextLength: 262000 },
|
|
@@ -34,8 +35,6 @@ export const MODEL_SNAPSHOT = [
|
|
|
34
35
|
{ id: "zai-org/GLM-5", name: "GLM-5", contextLength: 200000 },
|
|
35
36
|
{ id: "MiniMaxAI/MiniMax-M3", name: "MiniMax M3", contextLength: 1000000 },
|
|
36
37
|
{ id: "MiniMaxAI/MiniMax-M2.7", name: "MiniMax M2.7", contextLength: 200000 },
|
|
37
|
-
{ id: "minimax/minimax-m3-free", name: "MiniMax M3", contextLength: 1000000 },
|
|
38
|
-
{ id: "minimax/minimax-m2.7-free", name: "MiniMax M2.7", contextLength: 197000 },
|
|
39
38
|
{ id: "MiniMaxAI/MiniMax-M2.5", name: "MiniMax M2.5", contextLength: 200000 },
|
|
40
39
|
{ id: "xiaomi/mimo-v2.5-pro", name: "MiMo V2.5 Pro", contextLength: 1000000 },
|
|
41
40
|
{ id: "xiaomi/mimo-v2.5", name: "MiMo V2.5", contextLength: 1000000 },
|
|
@@ -51,5 +51,5 @@ export interface ModelDeals {
|
|
|
51
51
|
export declare const MODEL_DEALS: Readonly<Record<string, ModelDeals>>;
|
|
52
52
|
export declare const PLAN_CATALOG: Readonly<Record<PlanId, PlanInfo>>;
|
|
53
53
|
export declare const DEAL_SOURCE_URL = "https://commandcode.ai/docs/resources/pricing-limits";
|
|
54
|
-
export declare const DEAL_LAST_REFRESHED = "2026-
|
|
54
|
+
export declare const DEAL_LAST_REFRESHED = "2026-09-01";
|
|
55
55
|
export declare const DEAL_PACKAGE_VERSION = "docs";
|
|
@@ -13,13 +13,14 @@ export const MODEL_DEALS = {
|
|
|
13
13
|
"claude-sonnet-4-6": { tier: "premium", benchmark: { "intelligence": 48.4 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
14
14
|
"claude-sonnet-5": { tier: "premium", benchmark: { "intelligence": 55.3, "tokPerSec": 89.6 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
15
15
|
"deepseek/deepseek-v4-flash": { tier: "opensource", benchmark: { "intelligence": 51.8, "tokPerSec": 129 }, peakOffPeak: { "peak": { "input": 0.44, "output": 1.32, "cacheRead": 0.014, "cacheWrite": 0 }, "offPeak": { "input": 0.22, "output": 0.66, "cacheRead": 0.007, "cacheWrite": 0 }, "windows": "01–04 & 06–10 UTC" }, free: false, allowance: { "goat": 60, "pro": 70 } },
|
|
16
|
+
"deepseek/deepseek-v4-flash-fast": { tier: "opensource", free: false, allowance: { "goat": 20, "pro": 30 } },
|
|
16
17
|
"deepseek/deepseek-v4-flash-vision-exp": { tier: "opensource", peakOffPeak: { "peak": { "input": 0.44, "output": 1.32, "cacheRead": 0.014, "cacheWrite": 0 }, "offPeak": { "input": 0.22, "output": 0.66, "cacheRead": 0.007, "cacheWrite": 0 }, "windows": "01–04 & 06–10 UTC" }, free: false, allowance: { "goat": 20, "pro": 30 } },
|
|
17
18
|
"deepseek/deepseek-v4-pro": { tier: "opensource", benchmark: { "intelligence": 53.2, "tokPerSec": 61 }, peakOffPeak: { "peak": { "input": 1.32, "output": 3.96, "cacheRead": 0.044, "cacheWrite": 0 }, "offPeak": { "input": 0.66, "output": 1.98, "cacheRead": 0.022, "cacheWrite": 0 }, "windows": "01–04 & 06–10 UTC" }, free: false, allowance: { "goat": 20, "pro": 30 } },
|
|
18
19
|
"google/gemini-3.1-flash-lite": { tier: "premium", benchmark: { "intelligence": 25.6 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
19
20
|
"google/gemini-3.5-flash": { tier: "premium", benchmark: { "intelligence": 52 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
20
21
|
"google/gemini-3.5-flash-lite": { tier: "premium", benchmark: { "intelligence": 37.4, "tokPerSec": 368.8 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
21
22
|
"google/gemini-3.6-flash": { tier: "premium", benchmark: { "intelligence": 51.6, "tokPerSec": 197.3 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
22
|
-
"google/gemini-3.7-flash": { tier: "opensource",
|
|
23
|
+
"google/gemini-3.7-flash": { tier: "opensource", benchmark: { "intelligence": 56, "tokPerSec": 365.9 }, free: false, allowance: { "goat": 40, "pro": 50 } },
|
|
23
24
|
"gpt-5.3-codex": { tier: "premium", benchmark: { "intelligence": 45.5, "tokPerSec": 121.4 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
24
25
|
"gpt-5.4": { tier: "premium", benchmark: { "intelligence": 53.1 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
25
26
|
"gpt-5.4-mini": { tier: "premium", benchmark: { "intelligence": 40.9 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
@@ -30,8 +31,6 @@ export const MODEL_DEALS = {
|
|
|
30
31
|
"meta/muse-spark-1.1": { tier: "premium", benchmark: { "intelligence": 53.2 }, free: false, allowance: { "goat": 20, "pro": 20 } },
|
|
31
32
|
"meta/muse-spark-1.2": { tier: "opensource", benchmark: { "intelligence": 56.8 }, free: false, allowance: { "goat": 20, "pro": 30 } },
|
|
32
33
|
"meta/muse-spark-1.2-contributor": { tier: "opensource", benchmark: { "intelligence": 56.8 }, free: false, allowance: { "goat": 20, "pro": 30 } },
|
|
33
|
-
"minimax/minimax-m2.7-free": { tier: "opensource", free: true, benchmark: { "intelligence": 38.9 } },
|
|
34
|
-
"minimax/minimax-m3-free": { tier: "opensource", free: true, benchmark: { "intelligence": 45.4 } },
|
|
35
34
|
"MiniMaxAI/MiniMax-M2.5": { tier: "opensource", benchmark: { "intelligence": 34.5 }, free: false, allowance: { "goat": 20, "pro": 30 } },
|
|
36
35
|
"MiniMaxAI/MiniMax-M2.7": { tier: "opensource", benchmark: { "intelligence": 38.9 }, free: false, allowance: { "goat": 20, "pro": 30 } },
|
|
37
36
|
"MiniMaxAI/MiniMax-M3": { tier: "opensource", discount: { "pct": 50 }, was: { "input": 0.6, "output": 2.4, "cacheRead": 0.12 }, now: { "input": 0.3, "output": 1.2, "cacheRead": 0.06 }, benchmark: { "intelligence": 45.4, "tokPerSec": 111.3 }, free: false, allowance: { "goat": 47, "pro": 57 } },
|
|
@@ -78,5 +77,5 @@ export const PLAN_CATALOG = {
|
|
|
78
77
|
provider: { price: 15, credits: 0, window5h: 0, windowWeek: 0, display: "Provider" },
|
|
79
78
|
};
|
|
80
79
|
export const DEAL_SOURCE_URL = "https://commandcode.ai/docs/resources/pricing-limits";
|
|
81
|
-
export const DEAL_LAST_REFRESHED = "2026-
|
|
80
|
+
export const DEAL_LAST_REFRESHED = "2026-09-01";
|
|
82
81
|
export const DEAL_PACKAGE_VERSION = "docs";
|