opencode-cmd-provider 1.6.0 → 1.6.1

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 CHANGED
@@ -1,5 +1,47 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.6.1 - 2026-08-29
4
+
5
+ Patch release. Catalog refresh to `command-code@1.38.1`, one catalog
6
+ classification re-pin, and two CI fixes for the daily catalog-refresh cron.
7
+
8
+ - **Catalog refresh** — snapshot + capability facts + RSC fixtures refreshed
9
+ to `command-code@1.38.1` (was 1.37.0). Net: 30 → 31 effort entries;
10
+ `tencent/hy4-preview` is the new row (Efforts column now lists
11
+ `low, medium, high`, was empty in 1.37.0). The 62 cost rows are unchanged.
12
+ The deals catalog is unaffected (the new model already had its RSC
13
+ availability + deal info in 1.37.0 fixtures). A follow-up 2026-08-29 cron
14
+ re-captured the RSC fixtures and refreshed `src/catalog/facts.ts` to
15
+ upstream's new values.
16
+ - **Catalog classification** — `tencent/hy4-preview` re-pinned to
17
+ `EFFORTS_MODELS` in `src/catalog/facts.ts`; the prior
18
+ `REASONING_MODELS` classification was a labelling error in 1.6.0 (upstream
19
+ advertises it as an effort-controlled model, not a reasoning model). The
20
+ matching unit-test pin was updated in lockstep.
21
+ - **CI: catalog-refresh heredoc** — `realpath` the relative `.ts` path
22
+ before the `npx tsx -e` heredoc in `.github/workflows/catalog-refresh.yml`.
23
+ The `after` loop passed a bare-relative path (e.g. `src/catalog/snapshot.ts`)
24
+ to the heredoc, which Node's ESM resolver parsed as a package name and
25
+ rejected with `ERR_MODULE_NOT_FOUND`. The `before` loop was unaffected
26
+ because it used `/tmp/...` absolute paths. Locked down with
27
+ `tests/catalog-refresh-extract.test.ts`.
28
+ - **CI: catalog-refresh push** — force-push the `catalog-refresh/${date}`
29
+ branch in `.github/workflows/catalog-refresh.yml`. Two consecutive cron
30
+ runs on the same day land sibling commits on `main`'s HEAD; `git push -u`
31
+ then rejects as non-fast-forward, leaving the cron stuck. `-fu` handles
32
+ both the partial-failure rerun and the fresh-branch case; the branch is
33
+ owned only by this workflow, so there's no clobber risk. The
34
+ `Open PR` step's `gh pr list --head X` already copes correctly with a
35
+ force-pushed tip. Locked down with
36
+ `tests/catalog-refresh-push.test.ts`.
37
+ - **Test fix for the push test** — `tests/catalog-refresh-push.test.ts`'s
38
+ verification `git ls-remote` previously ran from the outer project
39
+ CWD, so it resolved `origin` to GitHub rather than the test's local
40
+ bare remote. It passed only on the day the matching
41
+ `catalog-refresh/${date}` branch happened to exist on GitHub. Now
42
+ passes `-C repo.work` so the `origin` resolution is scoped to the
43
+ test fixture.
44
+
3
45
  ## 1.6.0 - 2026-08-28
4
46
 
5
47
  ### Deals pipeline: RSC-primary + daily catalog refresh cron
@@ -1,7 +1,7 @@
1
- export declare const FACTS_SOURCE_URL = "https://unpkg.com/command-code@1.37.0/dist/bundled/command-code-knowledge/reference/models.md";
2
- export declare const MODALITIES_SOURCE_URL = "https://unpkg.com/command-code@1.37.0/dist/cli.mjs";
3
- export declare const FACTS_PACKAGE_VERSION = "1.37.0";
4
- export declare const FACTS_LAST_REFRESHED = "2026-08-28";
1
+ export declare const FACTS_SOURCE_URL = "https://unpkg.com/command-code@1.38.2/dist/bundled/command-code-knowledge/reference/models.md";
2
+ export declare const MODALITIES_SOURCE_URL = "https://unpkg.com/command-code@1.38.2/dist/cli.mjs";
3
+ export declare const FACTS_PACKAGE_VERSION = "1.38.2";
4
+ export declare const FACTS_LAST_REFRESHED = "2026-08-29";
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,10 +4,10 @@
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.37.0/dist/bundled/command-code-knowledge/reference/models.md";
8
- export const MODALITIES_SOURCE_URL = "https://unpkg.com/command-code@1.37.0/dist/cli.mjs";
9
- export const FACTS_PACKAGE_VERSION = "1.37.0";
10
- export const FACTS_LAST_REFRESHED = "2026-08-28";
7
+ export const FACTS_SOURCE_URL = "https://unpkg.com/command-code@1.38.2/dist/bundled/command-code-knowledge/reference/models.md";
8
+ export const MODALITIES_SOURCE_URL = "https://unpkg.com/command-code@1.38.2/dist/cli.mjs";
9
+ export const FACTS_PACKAGE_VERSION = "1.38.2";
10
+ export const FACTS_LAST_REFRESHED = "2026-08-29";
11
11
  export const MODEL_EFFORTS = {
12
12
  "deepseek/deepseek-v4-pro": ["high", "max"],
13
13
  "deepseek/deepseek-v4-flash": ["high", "max"],
@@ -18,6 +18,7 @@ export const MODEL_EFFORTS = {
18
18
  "Qwen/Qwen3.8-Max": ["low", "medium", "xhigh"],
19
19
  "Qwen/Qwen3.8-27B": ["low", "medium", "xhigh"],
20
20
  "Qwen/Qwen3.8-Flash": ["low", "medium", "xhigh"],
21
+ "tencent/hy4-preview": ["low", "medium", "high"],
21
22
  "claude-sonnet-5": ["low", "medium", "high", "xhigh", "max"],
22
23
  "claude-sonnet-4-6": ["low", "medium", "high", "xhigh", "max"],
23
24
  "claude-fable-5": ["low", "medium", "high", "xhigh", "max"],
@@ -92,7 +93,7 @@ export const MODEL_COSTS = {
92
93
  "gpt-5.4": { input: 2.5, output: 15, cacheRead: 0.25, cacheWrite: 0 },
93
94
  "gpt-5.3-codex": { input: 2, output: 8, cacheRead: 0.5, cacheWrite: 0 },
94
95
  "gpt-5.4-mini": { input: 0.75, output: 4.5, cacheRead: 0.075, cacheWrite: 0 },
95
- "google/gemini-3.7-flash": { input: 0.75, output: 3.75, cacheRead: 0.075, cacheWrite: 0.04167 },
96
+ "google/gemini-3.7-flash": { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0.08334 },
96
97
  "google/gemini-3.6-flash": { input: 1.5, output: 7.5, cacheRead: 0.15, cacheWrite: 0 },
97
98
  "google/gemini-3.5-flash": { input: 1.5, output: 9, cacheRead: 0.15, cacheWrite: 0 },
98
99
  "google/gemini-3.5-flash-lite": { input: 0.3, output: 2.5, cacheRead: 0.03, cacheWrite: 0 },
@@ -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-08-28";
54
+ export declare const DEAL_LAST_REFRESHED = "2026-08-29";
55
55
  export declare const DEAL_PACKAGE_VERSION = "docs";
@@ -78,5 +78,5 @@ export const PLAN_CATALOG = {
78
78
  provider: { price: 15, credits: 0, window5h: 0, windowWeek: 0, display: "Provider" },
79
79
  };
80
80
  export const DEAL_SOURCE_URL = "https://commandcode.ai/docs/resources/pricing-limits";
81
- export const DEAL_LAST_REFRESHED = "2026-08-28";
81
+ export const DEAL_LAST_REFRESHED = "2026-08-29";
82
82
  export const DEAL_PACKAGE_VERSION = "docs";
@@ -37,8 +37,13 @@ export const REASONING_MODELS = new Set([
37
37
  "poolside/laguna-s-2.1-free",
38
38
  "stepfun/Step-3.7-Flash",
39
39
  "tencent/hy3-paid",
40
- // Live RSC caps.reasoning=true, models.md has no Efforts entry (2026-08-28).
41
- "tencent/hy4-preview",
40
+ // tencent/hy4-preview is reasoning-capable with explicit efforts
41
+ // (models.md lists `low, medium, high` since command-code@1.38.0,
42
+ // 2026-08-28) — it belongs in MODEL_EFFORTS, not here. Keeping it here
43
+ // would leave a snapshot model classified in both REASONING_MODELS and
44
+ // MODEL_EFFORTS, which breaks the dedicated
45
+ // `tencent/hy4-preview is an efforts model` pin in
46
+ // tests/catalog-metadata.test.ts.
42
47
  "thinkingmachines/inkling",
43
48
  "thinkingmachines/inkling-small",
44
49
  ]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-cmd-provider",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "Command Code provider + plugin for opencode",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "refresh:deals": "node scripts/refresh-deals.mjs",
23
23
  "refresh": "npm run refresh:snapshot && npm run refresh:fixtures && npm run refresh:deals -- --fixtures",
24
24
  "test": "npm run typecheck && npm run test:unit && npm run test:integration && npm run test:contract && npm run format:check",
25
- "test:unit": "tsx tests/env.test.ts && tsx tests/auth-key.test.ts && tsx tests/converters.test.ts && tsx tests/stream.test.ts && tsx tests/provider-codecs.test.ts && tsx tests/provider-transport.test.ts && tsx tests/provider-parity.test.ts && tsx tests/provider-upgrade-fallback.test.ts && tsx tests/provider-zdr.test.ts && tsx tests/redact.test.ts && tsx tests/cost.test.ts && tsx tests/retry.test.ts && tsx tests/reasoning.test.ts && tsx tests/modalities.test.ts && tsx tests/snapshot.test.ts && tsx tests/refresh-snapshot.test.ts && tsx tests/oauth.test.ts && tsx tests/auth-mirror.test.ts && tsx tests/parse-facts.test.ts && tsx tests/parse-modalities.test.ts && tsx tests/catalog-metadata.test.ts && tsx tests/plugin-models.test.ts && tsx tests/vendor.test.ts && tsx tests/deals-enrichment.test.ts && tsx tests/deals-coverage.test.ts && tsx tests/plan-summary.test.ts && tsx tests/html-tables.test.ts && tsx tests/parse-docs.test.ts && tsx tests/parse-rsc.test.ts && tsx tests/mock-cc-rsc.test.ts && tsx tests/capture-rsc-fixtures.test.ts && tsx tests/refresh-deals.test.ts && tsx tests/refresh-deals-rsc.test.ts && tsx tests/tier-overrides.test.ts && tsx tests/tui-deals-panel.test.ts && tsx tests/diff-catalog.test.ts && tsx tests/plugin-install.test.ts",
25
+ "test:unit": "tsx tests/env.test.ts && tsx tests/auth-key.test.ts && tsx tests/converters.test.ts && tsx tests/stream.test.ts && tsx tests/provider-codecs.test.ts && tsx tests/provider-transport.test.ts && tsx tests/provider-parity.test.ts && tsx tests/provider-upgrade-fallback.test.ts && tsx tests/provider-zdr.test.ts && tsx tests/redact.test.ts && tsx tests/cost.test.ts && tsx tests/retry.test.ts && tsx tests/reasoning.test.ts && tsx tests/modalities.test.ts && tsx tests/snapshot.test.ts && tsx tests/refresh-snapshot.test.ts && tsx tests/oauth.test.ts && tsx tests/auth-mirror.test.ts && tsx tests/parse-facts.test.ts && tsx tests/parse-modalities.test.ts && tsx tests/catalog-metadata.test.ts && tsx tests/plugin-models.test.ts && tsx tests/vendor.test.ts && tsx tests/deals-enrichment.test.ts && tsx tests/deals-coverage.test.ts && tsx tests/plan-summary.test.ts && tsx tests/html-tables.test.ts && tsx tests/parse-docs.test.ts && tsx tests/parse-rsc.test.ts && tsx tests/mock-cc-rsc.test.ts && tsx tests/capture-rsc-fixtures.test.ts && tsx tests/refresh-deals.test.ts && tsx tests/refresh-deals-rsc.test.ts && tsx tests/tier-overrides.test.ts && tsx tests/tui-deals-panel.test.ts && tsx tests/diff-catalog.test.ts && tsx tests/catalog-refresh-extract.test.ts && tsx tests/catalog-refresh-push.test.ts && tsx tests/plugin-install.test.ts",
26
26
  "test:integration": "tsx tests/integration-do-stream.test.ts && tsx tests/integration-do-generate.test.ts",
27
27
  "test:contract": "tsx tests/contract.test.ts",
28
28
  "test:e2e": "node tests/e2e-opencode.mjs",