@mars-sea/dsh-commandcode-provider 0.8.1 → 0.8.3

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
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.8.3] - 2026-08-26
8
+
9
+ ### Fixed
10
+
11
+ - **Qwen 3.8 Max no longer shows the hourly-pricing (`Peak`/`Half`) marker.** The official pricing page's hover annotation for the three hourly-billed DeepSeek models had been misattributed to this neighboring row; Qwen 3.8 Max is not billed by the hour. Everything else is identical to 0.8.2.
12
+
13
+ ## [0.8.2] - 2026-08-26
14
+
15
+ ### Added
16
+
17
+ - **New free models: MiniMax M3 Free (`minimax/minimax-m3-free`) and MiniMax M2.7 Free (`minimax/minimax-m2.7-free`, command-code@1.33.0).** Command Code's own free variants of the paid M3/M2.7, free through September 5, 2026 — they appear at the top of the picker with `FREE` markers and drop the badge automatically once the promo ends. M3 Free is a Go-tier 1M-context model with image input (it reasons automatically); M2.7 Free is a text-only 197K model.
18
+
19
+ ### Changed
20
+
21
+ - **The model picker's group header now reads "Command Code"** instead of the lowercase route id (`commandcode`), matching the name shown on the settings page.
22
+ - **Synced with the official command-code@1.33.0 CLI** (upstream's only change was adding the two free models above). `COMMAND_CODE_CLI_VERSION` is now `1.33.0`. Re-verified against the official sources with no other changes: wire protocol, endpoints, auth flow, reasoning-effort maps, subscription plans, and peak windows are all identical; plan tiers gained only the two new Go-tier variants.
23
+
7
24
  ## [0.8.1] - 2026-08-25
8
25
 
9
26
  ### Changed
package/lib/client.js CHANGED
@@ -1197,7 +1197,7 @@ window.__ModuleLoader__.load({
1197
1197
  };
1198
1198
  //#endregion
1199
1199
  //#region package.json
1200
- var version = "0.8.1";
1200
+ var version = "0.8.3";
1201
1201
  var repository = {
1202
1202
  "type": "git",
1203
1203
  "url": "git+https://github.com/Mars-Sea/dsh-commandcode-provider.git"
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import z from "@deepseek-ai/schemastery";
2
- import { GenerateOptions, LlmAdapter, LlmModelInfo, LlmResolvedModelInfo, ResolvedRetryPolicy, StreamChunk } from "@deepseek-ai/dsh-llm";
2
+ import { GenerateOptions, LlmAdapter, LlmModelInfo, LlmProviderInfo, LlmResolvedModelInfo, ResolvedRetryPolicy, StreamChunk } from "@deepseek-ai/dsh-llm";
3
3
  import { CredentialRef } from "@deepseek-ai/dsh-credentials";
4
4
  import { TypertRemoteService, TypertSchema } from "@deepseek-ai/dsh-typert-protocol";
5
5
  import { Context } from "@deepseek-ai/cordis";
@@ -24,7 +24,7 @@ declare const KNOWN_EFFORTS: Readonly<Record<string, readonly string[]>>;
24
24
  */
25
25
  declare const KNOWN_IMAGE_MODELS: ReadonlySet<string>;
26
26
  /**
27
- * Models the official CLI's model table (command-code@1.32.2) marks
27
+ * Models the official CLI's model table (command-code@1.33.0) marks
28
28
  * `reasoning:!0` but defines no selectable `reasoning_effort` levels — they
29
29
  * think automatically, with Command Code driving the depth. This is the
30
30
  * authoritative "thinks, effort not adjustable" set: `KNOWN_EFFORTS` (which
@@ -32,7 +32,7 @@ declare const KNOWN_IMAGE_MODELS: ReadonlySet<string>;
32
32
  * effort levels, and this snapshot is not surfaced in the picker's compact
33
33
  * description — it exists for programmatic consumers.
34
34
  *
35
- * Source: the command-code@1.32.2 bundled model table (dist/cli.mjs),
35
+ * Source: the command-code@1.33.0 bundled model table (dist/cli.mjs),
36
36
  * cross-checked with https://commandcode.ai/docs/reference/cli/models.
37
37
  * (`stealth/ox-alpha` left this set in command-code@1.32.1, which gave it
38
38
  * selectable `['low', 'high', 'max']` efforts.)
@@ -156,11 +156,19 @@ declare const KNOWN_DEALS: Readonly<Record<string, KnownDeal>>;
156
156
  * charges by the hour: peak hours are 01:00–04:00 and 06:00–10:00 UTC (7h/day,
157
157
  * full price); the other 17 hours are off-peak at half price. The V4 Flash
158
158
  * Vision (exp) variant (command-code@1.32.0) shares the V4 Flash windows and
159
- * peak prices ($0.44/$1.32). The picker shows the *current* state as a compact
159
+ * peak prices ($0.44/$1.32) each row's hover annotation states exactly
160
+ * that row's displayed off-peak prices. The picker shows the
161
+ * *current* state as a compact
160
162
  * label (`Peak`/`Half`) matching the English noun style of the other markers
161
163
  * (`Image`, `FREE`), so a developer can tell at a glance whether calling the
162
164
  * model right now is cheap or expensive.
163
165
  *
166
+ * Extraction caution: in the page's HTML each annotation div sits inside its
167
+ * OWN row's container, immediately before the NEXT row starts — flattening
168
+ * the page to text makes every annotation look like it belongs to the model
169
+ * printed after it. Verify membership against the enclosing row and the 2×
170
+ * price relation, not the flat-text neighbor.
171
+ *
164
172
  * Keep in sync with the official pricing page when the model set or the peak
165
173
  * windows change (see the dsh-commandcode-upstream skill).
166
174
  */
@@ -178,7 +186,7 @@ declare function peakPricingState(modelId: string, now?: number): 'peak' | 'off-
178
186
  * for models without time-of-day pricing.
179
187
  */
180
188
  declare function peakPricingLabel(modelId: string, now?: number): string | undefined;
181
- declare const COMMAND_CODE_CLI_VERSION = "1.32.2";
189
+ declare const COMMAND_CODE_CLI_VERSION = "1.33.0";
182
190
  declare const DEFAULT_API_BASE = "https://api.commandcode.ai";
183
191
  declare const DEFAULT_GENERATE_MAX_TOKENS = 64000;
184
192
  declare const DEFAULT_MAX_OUTPUT_TOKENS = 65536;
@@ -349,6 +357,14 @@ declare class CommandCodeAdapter<C extends CommandCodeConnectionOptions = Comman
349
357
  private readonly billingAccess;
350
358
  private readonly billingAccessInflight;
351
359
  constructor(deps: CommandCodeAdapterDeps<C>);
360
+ /**
361
+ * Display metadata for the picker's provider group header. The base class
362
+ * returns the raw route id (`commandcode`, all lowercase) as the name, which
363
+ * is what the model selector shows as this group's sticky title; return the
364
+ * proper display name instead, matching the Models settings page card (the
365
+ * configurable-provider `displayName`). The id must stay equal to the route.
366
+ */
367
+ providerInfo(provider: string): LlmProviderInfo;
352
368
  /**
353
369
  * Near-unbounded retry for transient failures only (`mode: 'normal'` with
354
370
  * an explicit 1000-attempt cap — opencode-style persistence without the
package/lib/index.js CHANGED
@@ -216,7 +216,7 @@ var CommandCodeAccountPool = class {
216
216
  * and API key or subscription, and Command Code's terms apply.
217
217
  *
218
218
  * Wire protocol (reverse-engineered by the pi plugin, command-code@1.28.4;
219
- * re-verified against command-code@1.32.2 — endpoints, request shape, and
219
+ * re-verified against command-code@1.33.0 — endpoints, request shape, and
220
220
  * stream events unchanged):
221
221
  * POST {apiBase}/alpha/generate
222
222
  * body: { config, memory, taste, skills, params: { model, messages, tools,
@@ -423,6 +423,7 @@ const KNOWN_IMAGE_MODELS = /* @__PURE__ */ new Set([
423
423
  "meta/muse-spark-1.1",
424
424
  "meta/muse-spark-1.2",
425
425
  "meta/muse-spark-1.2-contributor",
426
+ "minimax/minimax-m3-free",
426
427
  "moonshotai/Kimi-K2.5",
427
428
  "moonshotai/Kimi-K2.6",
428
429
  "moonshotai/Kimi-K2.7-Code",
@@ -437,7 +438,7 @@ const KNOWN_IMAGE_MODELS = /* @__PURE__ */ new Set([
437
438
  "xiaomi/mimo-v2.5"
438
439
  ]);
439
440
  /**
440
- * Models the official CLI's model table (command-code@1.32.2) marks
441
+ * Models the official CLI's model table (command-code@1.33.0) marks
441
442
  * `reasoning:!0` but defines no selectable `reasoning_effort` levels — they
442
443
  * think automatically, with Command Code driving the depth. This is the
443
444
  * authoritative "thinks, effort not adjustable" set: `KNOWN_EFFORTS` (which
@@ -445,7 +446,7 @@ const KNOWN_IMAGE_MODELS = /* @__PURE__ */ new Set([
445
446
  * effort levels, and this snapshot is not surfaced in the picker's compact
446
447
  * description — it exists for programmatic consumers.
447
448
  *
448
- * Source: the command-code@1.32.2 bundled model table (dist/cli.mjs),
449
+ * Source: the command-code@1.33.0 bundled model table (dist/cli.mjs),
449
450
  * cross-checked with https://commandcode.ai/docs/reference/cli/models.
450
451
  * (`stealth/ox-alpha` left this set in command-code@1.32.1, which gave it
451
452
  * selectable `['low', 'high', 'max']` efforts.)
@@ -458,6 +459,7 @@ const KNOWN_THINKING_MODELS = /* @__PURE__ */ new Set([
458
459
  "Qwen/Qwen3.7-Flash",
459
460
  "Qwen/Qwen3.7-Max",
460
461
  "Qwen/Qwen3.7-Plus",
462
+ "minimax/minimax-m3-free",
461
463
  "moonshotai/Kimi-K3",
462
464
  "moonshotai/Kimi-K2.7-Code",
463
465
  "moonshotai/Kimi-K2.7-Code-Highspeed",
@@ -503,6 +505,8 @@ const KNOWN_PLANS = {
503
505
  "deepseek/deepseek-v4-pro": "go",
504
506
  "gpt-5.6-luna": "go",
505
507
  "meta/muse-spark-1.2-contributor": "go",
508
+ "minimax/minimax-m2.7-free": "go",
509
+ "minimax/minimax-m3-free": "go",
506
510
  "moonshotai/Kimi-K2.5": "go",
507
511
  "moonshotai/Kimi-K2.6": "go",
508
512
  "moonshotai/Kimi-K2.7-Code": "go",
@@ -682,6 +686,16 @@ const KNOWN_DEALS = {
682
686
  "MiniMaxAI/MiniMax-M3": { label: "50% off" },
683
687
  "xiaomi/mimo-v2.5-pro": { label: "99% off" },
684
688
  "xiaomi/mimo-v2.5": { label: "98% off" },
689
+ "minimax/minimax-m3-free": {
690
+ label: "FREE",
691
+ free: true,
692
+ expiresAt: "2026-09-05T23:59:59Z"
693
+ },
694
+ "minimax/minimax-m2.7-free": {
695
+ label: "FREE",
696
+ free: true,
697
+ expiresAt: "2026-09-05T23:59:59Z"
698
+ },
685
699
  "poolside/laguna-s-2.1-free": {
686
700
  label: "FREE",
687
701
  free: true
@@ -697,11 +711,19 @@ const KNOWN_DEALS = {
697
711
  * charges by the hour: peak hours are 01:00–04:00 and 06:00–10:00 UTC (7h/day,
698
712
  * full price); the other 17 hours are off-peak at half price. The V4 Flash
699
713
  * Vision (exp) variant (command-code@1.32.0) shares the V4 Flash windows and
700
- * peak prices ($0.44/$1.32). The picker shows the *current* state as a compact
714
+ * peak prices ($0.44/$1.32) each row's hover annotation states exactly
715
+ * that row's displayed off-peak prices. The picker shows the
716
+ * *current* state as a compact
701
717
  * label (`Peak`/`Half`) matching the English noun style of the other markers
702
718
  * (`Image`, `FREE`), so a developer can tell at a glance whether calling the
703
719
  * model right now is cheap or expensive.
704
720
  *
721
+ * Extraction caution: in the page's HTML each annotation div sits inside its
722
+ * OWN row's container, immediately before the NEXT row starts — flattening
723
+ * the page to text makes every annotation look like it belongs to the model
724
+ * printed after it. Verify membership against the enclosing row and the 2×
725
+ * price relation, not the flat-text neighbor.
726
+ *
705
727
  * Keep in sync with the official pricing page when the model set or the peak
706
728
  * windows change (see the dsh-commandcode-upstream skill).
707
729
  */
@@ -733,7 +755,7 @@ function peakPricingLabel(modelId, now = Date.now()) {
733
755
  if (state === void 0) return void 0;
734
756
  return state === "peak" ? "Peak" : "Half";
735
757
  }
736
- const COMMAND_CODE_CLI_VERSION = "1.32.2";
758
+ const COMMAND_CODE_CLI_VERSION = "1.33.0";
737
759
  const DEFAULT_API_BASE = "https://api.commandcode.ai";
738
760
  const DEFAULT_GENERATE_MAX_TOKENS = 64e3;
739
761
  const DEFAULT_MAX_OUTPUT_TOKENS = 65536;
@@ -1055,6 +1077,19 @@ var CommandCodeAdapter = class extends LlmAdapter {
1055
1077
  this.resolveAttachments = deps.resolveAttachments;
1056
1078
  }
1057
1079
  /**
1080
+ * Display metadata for the picker's provider group header. The base class
1081
+ * returns the raw route id (`commandcode`, all lowercase) as the name, which
1082
+ * is what the model selector shows as this group's sticky title; return the
1083
+ * proper display name instead, matching the Models settings page card (the
1084
+ * configurable-provider `displayName`). The id must stay equal to the route.
1085
+ */
1086
+ providerInfo(provider) {
1087
+ return {
1088
+ id: provider,
1089
+ name: "Command Code"
1090
+ };
1091
+ }
1092
+ /**
1058
1093
  * Near-unbounded retry for transient failures only (`mode: 'normal'` with
1059
1094
  * an explicit 1000-attempt cap — opencode-style persistence without the
1060
1095
  * unbounded loop): `RATE_LIMIT`/`SERVER`/`TIMEOUT`/`TRANSPORT`/