@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 +17 -0
- package/lib/client.js +1 -1
- package/lib/index.d.ts +21 -5
- package/lib/index.js +40 -5
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
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.
|
|
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.
|
|
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.
|
|
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)
|
|
159
|
+
* peak prices ($0.44/$1.32) — each row's hover annotation states exactly 2×
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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)
|
|
714
|
+
* peak prices ($0.44/$1.32) — each row's hover annotation states exactly 2×
|
|
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.
|
|
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`/
|