@mars-sea/dsh-commandcode-provider 0.10.1 → 0.10.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 +41 -1
- package/README.md +7 -3
- package/README.zh-CN.md +7 -3
- package/lib/client.js +530 -145
- package/lib/client.js.map +1 -1
- package/lib/index.d.ts +165 -51
- package/lib/index.js +848 -604
- package/lib/index.js.map +1 -1
- package/package.json +9 -1
package/lib/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { Context } from "@deepseek-ai/cordis";
|
|
|
7
7
|
import { AttachmentStore } from "@deepseek-ai/dsh-attachment";
|
|
8
8
|
import { CommandDefinition } from "@deepseek-ai/dsh-commands";
|
|
9
9
|
//#region src/adapter.d.ts
|
|
10
|
-
declare const COMMAND_CODE_CLI_VERSION = "1.
|
|
10
|
+
declare const COMMAND_CODE_CLI_VERSION = "1.53.0";
|
|
11
11
|
declare const DEFAULT_API_BASE = "https://api.commandcode.ai";
|
|
12
12
|
declare const DEFAULT_GENERATE_MAX_TOKENS = 64000;
|
|
13
13
|
declare const DEFAULT_MAX_OUTPUT_TOKENS = 65536;
|
|
@@ -24,7 +24,7 @@ declare function projectSlugFromPath(pathName: string): string;
|
|
|
24
24
|
declare function resolveAuthFileApiKey(): string | undefined;
|
|
25
25
|
/** Connection facts resolved fresh per request by the plugin entry. */
|
|
26
26
|
interface CommandCodeConnectionOptions {
|
|
27
|
-
/** API base; the Provider API lives under it (`/alpha/generate`, `/provider/v1/models`). */
|
|
27
|
+
/** API base; the Provider API lives under it (`/alpha/generate`, `/provider/v1/chat/completions`, `/provider/v1/models`). */
|
|
28
28
|
apiBase: string;
|
|
29
29
|
/** Working directory reported to the API (project slug, config block). */
|
|
30
30
|
workingDir: string;
|
|
@@ -46,10 +46,20 @@ interface CommandCodeConnectionOptions {
|
|
|
46
46
|
*/
|
|
47
47
|
filterModelsByPlan?: boolean;
|
|
48
48
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
49
|
+
* Visible-model allowlist: catalog model ids shown in pickers. Empty or
|
|
50
|
+
* unset means "show everything"; applies after the subscription-tier filter.
|
|
51
|
+
* The settings page persists it; the catalog endpoint serves the full
|
|
52
|
+
* catalog regardless so the page can always offer every model.
|
|
53
|
+
*/
|
|
54
|
+
visibleModels?: string[] | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Optional protocol hint. `'auto'` (default) uses billing/cache plus
|
|
57
|
+
* Provider API fallback; `'cli'` forces `/alpha/generate`; `'openai'`
|
|
58
|
+
* prefers `/provider/v1/chat/completions` but still falls back to the CLI
|
|
59
|
+
* transport on `upgrade_required` (Go-plan keys have no Provider API
|
|
60
|
+
* access — failing outright would strand them). This is a
|
|
61
|
+
* connection-level test/operator seam and is intentionally not part of
|
|
62
|
+
* the plugin's user settings schema.
|
|
53
63
|
*/
|
|
54
64
|
protocol?: 'auto' | CommandCodeProtocol;
|
|
55
65
|
}
|
|
@@ -193,10 +203,20 @@ declare class CommandCodeAdapter<C extends CommandCodeConnectionOptions = Comman
|
|
|
193
203
|
providerRetryPolicy(_provider: string): ResolvedRetryPolicy;
|
|
194
204
|
/** Refresh the catalog (live fetch, cache fallback) and return it. */
|
|
195
205
|
private loadCatalog;
|
|
196
|
-
listModels(provider: string
|
|
206
|
+
listModels(provider: string, opts?: {
|
|
207
|
+
unfiltered?: boolean;
|
|
208
|
+
}): Promise<readonly LlmModelInfo[]>;
|
|
197
209
|
resolveModel(provider: string, model: string, signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
|
|
198
210
|
/** The headers every authenticated account endpoint shares. */
|
|
199
211
|
private accountHeaders;
|
|
212
|
+
/**
|
|
213
|
+
* Fetch one account endpoint and parse its JSON body. Returns the HTTP
|
|
214
|
+
* status alongside the parsed record so each caller applies its own
|
|
215
|
+
* failure accounting: the billing probe fails open silently, the usage
|
|
216
|
+
* report books failures per endpoint. Non-2xx and non-record bodies come
|
|
217
|
+
* back without a record; only a transport throw propagates to the caller.
|
|
218
|
+
*/
|
|
219
|
+
private fetchEndpointJson;
|
|
200
220
|
/**
|
|
201
221
|
* The billing facts behind the picker's plan filter, cached for
|
|
202
222
|
* {@link BILLING_ACCESS_TTL_MS} and shared across concurrent callers.
|
|
@@ -467,7 +487,7 @@ declare const KNOWN_EFFORTS: Readonly<Record<string, readonly string[]>>;
|
|
|
467
487
|
*/
|
|
468
488
|
declare const KNOWN_IMAGE_MODELS: ReadonlySet<string>;
|
|
469
489
|
/**
|
|
470
|
-
* Models the official CLI's model table (command-code@1.
|
|
490
|
+
* Models the official CLI's model table (command-code@1.53.0) marks
|
|
471
491
|
* `reasoning:!0` but defines no selectable `reasoning_effort` levels — they
|
|
472
492
|
* think automatically, with Command Code driving the depth. This is the
|
|
473
493
|
* authoritative "thinks, effort not adjustable" set: `KNOWN_EFFORTS` (which
|
|
@@ -475,7 +495,7 @@ declare const KNOWN_IMAGE_MODELS: ReadonlySet<string>;
|
|
|
475
495
|
* effort levels, and this snapshot is not surfaced in the picker's compact
|
|
476
496
|
* description — it exists for programmatic consumers.
|
|
477
497
|
*
|
|
478
|
-
* Source: the command-code@1.
|
|
498
|
+
* Source: the command-code@1.53.0 bundled model table (dist/cli.mjs),
|
|
479
499
|
* cross-checked with https://commandcode.ai/docs/reference/cli/models.
|
|
480
500
|
* (`stealth/ox-alpha` left this set in command-code@1.32.1, which gave it
|
|
481
501
|
* selectable `['low', 'high', 'max']` efforts; the preview then ended in
|
|
@@ -488,7 +508,13 @@ declare const KNOWN_IMAGE_MODELS: ReadonlySet<string>;
|
|
|
488
508
|
* to `KNOWN_EFFORTS`. command-code@1.42.0 added `meituan/LongCat-2.0:free`
|
|
489
509
|
* (reasoning:!0, no efforts). command-code@1.45.0 gave the Muse Spark family
|
|
490
510
|
* (1.1, 1.2, 1.2-contributor, 1.3, 1.3-contributor) selectable
|
|
491
|
-
* `['low', 'medium', 'high', 'xhigh']` efforts — they moved to `KNOWN_EFFORTS`.
|
|
511
|
+
* `['low', 'medium', 'high', 'xhigh']` efforts — they moved to `KNOWN_EFFORTS`.
|
|
512
|
+
* command-code@1.51.3 gave `MiniMaxAI/MiniMax-M3` selectable
|
|
513
|
+
* `['low', 'medium', 'high']` efforts — it moved to `KNOWN_EFFORTS` too.
|
|
514
|
+
* command-code@1.52.0 added `inclusionai/ling-3.0-flash-sante:free`
|
|
515
|
+
* (reasoning:!0, no efforts).)
|
|
516
|
+
* command-code@1.53.0 added `deepseek/deepseek-v4.1-flash` with selectable
|
|
517
|
+
* ['low', 'high', 'max'] efforts, so it lives in `KNOWN_EFFORTS`, not here.)
|
|
492
518
|
* Keep in sync via the dsh-commandcode-upstream skill.
|
|
493
519
|
*/
|
|
494
520
|
declare const KNOWN_THINKING_MODELS: ReadonlySet<string>;
|
|
@@ -505,7 +531,9 @@ declare const KNOWN_THINKING_MODELS: ReadonlySet<string>;
|
|
|
505
531
|
* command-code@1.41.0 added `Qwen/Qwen3.8-Max-0902` (Go) and 1.42.0 added
|
|
506
532
|
* `meituan/LongCat-2.0:free` (Go, free promo); command-code@1.43.0 added
|
|
507
533
|
* `google/gemini-3.8-flash` (GOAT) and 1.44.0 added `meta/muse-spark-1.3`
|
|
508
|
-
* (GOAT) plus its Contributor sibling (Go).
|
|
534
|
+
* (GOAT) plus its Contributor sibling (Go); command-code@1.52.0 added the
|
|
535
|
+
* free `inclusionai/ling-3.0-flash-sante:free` (Go); command-code@1.53.0
|
|
536
|
+
* added `deepseek/deepseek-v4.1-flash` (Go).
|
|
509
537
|
*
|
|
510
538
|
* The Provider API exposes no plan metadata, so this snapshot is the source of
|
|
511
539
|
* truth for the picker's plan annotation — it answers "which plan do I need to
|
|
@@ -537,8 +565,8 @@ declare function compareByPlan(a: {
|
|
|
537
565
|
}): number;
|
|
538
566
|
/**
|
|
539
567
|
* Subscription plan table, synced from the official CLI bundle's plan maps
|
|
540
|
-
* (located by the `"individual-go"` key in command-code@1.
|
|
541
|
-
* re-verified unchanged through 1.
|
|
568
|
+
* (located by the `"individual-go"` key in command-code@1.53.0 `dist/cli.mjs`,
|
|
569
|
+
* re-verified unchanged through 1.53.0): subscription `planId`
|
|
542
570
|
* prefix → display name and the plan's monthly credit total. This is the
|
|
543
571
|
* account's own subscription (from `/alpha/billing/subscriptions`) — distinct
|
|
544
572
|
* from {@link KNOWN_PLANS}, which maps catalog models to their minimum tier.
|
|
@@ -582,8 +610,9 @@ interface CommandCodeBillingAccess {
|
|
|
582
610
|
/**
|
|
583
611
|
* Whether the picker lists `modelId` for an account with the given billing
|
|
584
612
|
* access. Fails open at every uncertainty: no billing data, an unknown plan,
|
|
585
|
-
*
|
|
586
|
-
*
|
|
613
|
+
* a non-finite weight (corrupt billing fact), or a model outside
|
|
614
|
+
* {@link KNOWN_PLANS} all keep the model visible — the server remains the
|
|
615
|
+
* final gate (`403 MODEL_NOT_IN_PLAN`).
|
|
587
616
|
*/
|
|
588
617
|
declare function modelVisibleInPlan(modelId: string, access: CommandCodeBillingAccess | undefined): boolean;
|
|
589
618
|
/**
|
|
@@ -614,29 +643,43 @@ declare const KNOWN_DEALS: Readonly<Record<string, KnownDeal>>;
|
|
|
614
643
|
/**
|
|
615
644
|
* Models with time-of-day (peak/off-peak) pricing, per the official pricing
|
|
616
645
|
* page (`/docs/resources/pricing-limits`). Since 2026-08-16 16:00 UTC, DeepSeek
|
|
617
|
-
* charges by the hour: peak hours are 01:00–04:00 and 06:00–10:00 UTC (7h
|
|
618
|
-
* full price)
|
|
619
|
-
*
|
|
620
|
-
*
|
|
621
|
-
*
|
|
646
|
+
* charges by the hour: peak hours are 01:00–04:00 and 06:00–10:00 UTC (7h per
|
|
647
|
+
* weekday, full price) **Monday to Friday only**; the other 17 hours of a
|
|
648
|
+
* weekday and every hour of Saturday/Sunday (UTC) are off-peak at half price.
|
|
649
|
+
* The V4 Flash Vision (exp) variant (command-code@1.32.0) shares the V4 Flash
|
|
650
|
+
* windows and peak prices ($0.44/$1.32) — each row's hover annotation states
|
|
651
|
+
* exactly 2× that row's displayed off-peak prices. The picker shows the
|
|
622
652
|
* *current* state as a compact
|
|
623
653
|
* label (`Peak`/`Half`) matching the English noun style of the other markers
|
|
624
654
|
* (`Image`, `FREE`), so a developer can tell at a glance whether calling the
|
|
625
655
|
* model right now is cheap or expensive.
|
|
626
656
|
*
|
|
627
|
-
*
|
|
628
|
-
*
|
|
629
|
-
*
|
|
630
|
-
*
|
|
631
|
-
*
|
|
657
|
+
* Authoritative extraction: the pricing page embeds a model JSON array whose
|
|
658
|
+
* hourly-priced entries carry a `timeOfDay` block
|
|
659
|
+
* (`{ windows: "01–04 & 06–10 UTC, Mon–Fri", peakHoursPerDay: 7,
|
|
660
|
+
* offPeakHoursPerDay: 17, peak: {...}, offPeak: {...} }`). Exactly four models
|
|
661
|
+
* carry it: V4 Pro, V4 Flash, V4 Flash Vision (exp), and V4.1 Flash (added in
|
|
662
|
+
* command-code@1.53.0 at $0.15/$0.60 off-peak, $0.30/$1.20 peak — the same
|
|
663
|
+
* schedule as the other three).
|
|
664
|
+
*
|
|
665
|
+
* Extraction caution: the rendered HTML rows are a trap. Each annotation div
|
|
666
|
+
* sits inside its OWN row's container, immediately before the NEXT row starts,
|
|
667
|
+
* so flattening the page to text makes every annotation look like it belongs
|
|
668
|
+
* to the model printed after it — that is how `deepseek/deepseek-v4-flash-fast`
|
|
669
|
+
* was wrongly added here (its row is flat-priced at $0.28/$0.56/$0.07 and has
|
|
670
|
+
* no `timeOfDay` block). Trust the embedded JSON's `timeOfDay` membership and
|
|
671
|
+
* the 2× price relation, never the flat-text neighbor.
|
|
632
672
|
*
|
|
633
|
-
* Keep in sync with the official pricing page when the model set
|
|
634
|
-
* windows change (see the dsh-commandcode-upstream skill).
|
|
673
|
+
* Keep in sync with the official pricing page when the model set, the peak
|
|
674
|
+
* windows, or the weekday rule change (see the dsh-commandcode-upstream skill).
|
|
635
675
|
*/
|
|
636
676
|
declare const KNOWN_PEAK_PRICING: ReadonlySet<string>;
|
|
637
677
|
/**
|
|
638
|
-
* Whether `now` (defaults to `Date.now()`) falls in a peak-pricing
|
|
639
|
-
* time-of-day-priced models.
|
|
678
|
+
* Whether `now` (defaults to `Date.now()`) falls in a peak-pricing window for
|
|
679
|
+
* time-of-day-priced models. Peak rates apply Monday–Friday (UTC) only: the
|
|
680
|
+
* official rule charges Saturday and Sunday completely off-peak for all 24
|
|
681
|
+
* hours, so a weekend timestamp is off-peak even inside `PEAK_HOUR_RANGES`.
|
|
682
|
+
* `undefined` for models outside the snapshot.
|
|
640
683
|
*/
|
|
641
684
|
declare function peakPricingState(modelId: string, now?: number): 'peak' | 'off-peak' | undefined;
|
|
642
685
|
/**
|
|
@@ -662,8 +705,8 @@ declare function planLabel(modelId: string): string | undefined;
|
|
|
662
705
|
declare function dealLabel(modelId: string, now?: number): string | undefined;
|
|
663
706
|
/**
|
|
664
707
|
* Compact human-readable context window, e.g. `1_000_000 -> "1M"`,
|
|
665
|
-
* `256_000 -> "256K"`, `262_144 -> "
|
|
666
|
-
* Returns undefined for unknown/absent sizes.
|
|
708
|
+
* `256_000 -> "256K"`, `262_144 -> "262K"` (floor to the nearest K).
|
|
709
|
+
* Returns undefined for unknown/absent sizes; values under 1K render raw.
|
|
667
710
|
*/
|
|
668
711
|
declare function formatContext(contextWindow: number | undefined): string | undefined;
|
|
669
712
|
/**
|
|
@@ -705,12 +748,20 @@ declare const USAGE_REPORT_ENDPOINT = "commandcode/report";
|
|
|
705
748
|
* deliberately minimal so one `parse` function satisfies it.
|
|
706
749
|
*/
|
|
707
750
|
declare const usageReportSchema: TypertSchema<CommandCodeAccountsReport>;
|
|
708
|
-
/** One catalog entry the settings page's
|
|
751
|
+
/** One catalog entry the settings page's model editors offer. */
|
|
709
752
|
interface CommandCodeCatalogModel {
|
|
710
753
|
/** Catalog model id (e.g. `deepseek/deepseek-v4-pro`). */
|
|
711
754
|
id: string;
|
|
712
755
|
/** Display name from the catalog. */
|
|
713
756
|
name: string;
|
|
757
|
+
/**
|
|
758
|
+
* Minimum plan-tier key for this model (a `KNOWN_PLANS` value: `go`,
|
|
759
|
+
* `goat`, `pro`, `provider`, `max`), or undefined for models outside the
|
|
760
|
+
* snapshot. The settings page groups the model-editor dropdowns under
|
|
761
|
+
* tier headings from this — the browser cannot import the Host's
|
|
762
|
+
* capability snapshot, so the Host stamps it per entry.
|
|
763
|
+
*/
|
|
764
|
+
tier?: string;
|
|
714
765
|
}
|
|
715
766
|
/** The model-catalog Remote result: the full catalog, sorted for picking. */
|
|
716
767
|
interface CommandCodeCatalog {
|
|
@@ -812,8 +863,9 @@ declare const loginStatusSchema: TypertSchema<CommandCodeLoginStatus>;
|
|
|
812
863
|
/**
|
|
813
864
|
* The browser-login face the usage service exposes (`commandcode/login*`).
|
|
814
865
|
* Backed by the Host-half {@link !CommandCodeLoginFlow} when the plugin entry
|
|
815
|
-
* wired one; absent,
|
|
816
|
-
*
|
|
866
|
+
* wired one; absent, `status`/`cancel` degrade to the idle status while
|
|
867
|
+
* `begin` rejects with a plain message (so the page's manual paste path
|
|
868
|
+
* stays the fallback instead of hanging).
|
|
817
869
|
*/
|
|
818
870
|
interface LoginFlowFacade {
|
|
819
871
|
/** Start (or rejoin) an attempt; rejects when it cannot start at all. */
|
|
@@ -834,9 +886,10 @@ interface CommandCodeUsageDeps<C extends CommandCodeConnectionOptions = CommandC
|
|
|
834
886
|
*/
|
|
835
887
|
reports?: () => Promise<CommandCodeAccountsReport>;
|
|
836
888
|
/**
|
|
837
|
-
* Model-catalog source for the
|
|
889
|
+
* Model-catalog source for the settings page's model editors (the
|
|
890
|
+
* routing-rule editor and the visible-models filter; wired by the plugin
|
|
838
891
|
* entry). Absent, the `models` endpoint answers an empty list — the page's
|
|
839
|
-
*
|
|
892
|
+
* editors degrade to the empty state.
|
|
840
893
|
*/
|
|
841
894
|
listModels?: () => Promise<CommandCodeCatalog>;
|
|
842
895
|
/**
|
|
@@ -866,10 +919,11 @@ declare class CommandCodeUsageService<C extends CommandCodeConnectionOptions = C
|
|
|
866
919
|
*/
|
|
867
920
|
report(): Promise<CommandCodeAccountsReport>;
|
|
868
921
|
/**
|
|
869
|
-
* The model catalog for the settings page's
|
|
870
|
-
*
|
|
871
|
-
*
|
|
872
|
-
*
|
|
922
|
+
* The full model catalog for the settings page's model editors (the
|
|
923
|
+
* routing-rule editor and the visible-models filter). The browser never
|
|
924
|
+
* calls the Command Code API directly — the Host serves the catalog
|
|
925
|
+
* (already fetched/cached by the adapter) so models can be picked from
|
|
926
|
+
* the live list instead of typed by hand.
|
|
873
927
|
*/
|
|
874
928
|
models(): Promise<CommandCodeCatalog>;
|
|
875
929
|
/**
|
|
@@ -1012,17 +1066,68 @@ declare class CommandCodeLoginFlow {
|
|
|
1012
1066
|
declare const COMMANDCODE_SEARCH_PROVIDER_ID = "commandcode";
|
|
1013
1067
|
/**
|
|
1014
1068
|
* The factory-declared search provider id dsh ships by default (from
|
|
1015
|
-
* `dsh-base`'s cordis patch `web.config.searchProvider`).
|
|
1016
|
-
*
|
|
1017
|
-
*
|
|
1069
|
+
* `dsh-base`'s cordis patch `web.config.searchProvider`). Kept as a
|
|
1070
|
+
* documented reference only: disabling this plugin's `webSearch` toggle
|
|
1071
|
+
* restores the previously selected backend (see
|
|
1072
|
+
* {@link applyCommandCodeSearchSelection}) — it never forces this default,
|
|
1073
|
+
* because forcing it is what used to silence sibling search plugins such as
|
|
1074
|
+
* modsearch even with Command Code search turned off (issue #26).
|
|
1018
1075
|
*/
|
|
1019
1076
|
declare const DEFAULT_WEB_SEARCH_PROVIDER_ID = "deepseek-official";
|
|
1020
1077
|
/**
|
|
1021
1078
|
* Point the web seam's search selection at this plugin's provider (`commandcode`).
|
|
1022
1079
|
* Sets the runtime field; the next search call honours it because `search()`
|
|
1023
1080
|
* re-reads `searchProviderId` each time. Returns the prior id (or undefined).
|
|
1081
|
+
* Never throws: a hardened/frozen runtime shape must not break the
|
|
1082
|
+
* settings-save path that calls this — the provider simply stays
|
|
1083
|
+
* registered-but-unselected (the boot-time `searchProvider: commandcode`
|
|
1084
|
+
* cordis patch is the durable alternative).
|
|
1085
|
+
*
|
|
1086
|
+
* @deprecated Prefer {@link applyCommandCodeSearchSelection}: this overload
|
|
1087
|
+
* always overwrites the displaced backend with the factory default on
|
|
1088
|
+
* disable, so turning Command Code search off silences whichever provider
|
|
1089
|
+
* was selected before (e.g. modsearch) instead of restoring it (issue #26).
|
|
1024
1090
|
*/
|
|
1025
1091
|
declare function selectCommandCodeSearchProvider(web: WebRuntime, enable: boolean): string | undefined;
|
|
1092
|
+
/**
|
|
1093
|
+
* Tracked web-search selection state for one mounted `WebRuntime`.
|
|
1094
|
+
*
|
|
1095
|
+
* `owner` marks whether this plugin currently owns the selection (i.e. it
|
|
1096
|
+
* wrote `commandcode` and has not given it back yet). `displaced` is the
|
|
1097
|
+
* backend id the plugin displaced when it took over — restored when the
|
|
1098
|
+
* toggle turns off or the plugin unloads. `undefined` means "nothing was
|
|
1099
|
+
* configured, leave auto-select" and must round-trip untouched: writing the
|
|
1100
|
+
* factory default instead would still override a sibling plugin's own
|
|
1101
|
+
* constructor-time pin.
|
|
1102
|
+
*/
|
|
1103
|
+
interface CommandCodeSearchSelection {
|
|
1104
|
+
owner: boolean;
|
|
1105
|
+
displaced: string | undefined;
|
|
1106
|
+
}
|
|
1107
|
+
/** Fresh selection state: the plugin starts out not owning the selection. */
|
|
1108
|
+
declare function commandCodeSearchSelection(): CommandCodeSearchSelection;
|
|
1109
|
+
/**
|
|
1110
|
+
* Reach one end of the `webSearch` toggle without trampling sibling search
|
|
1111
|
+
* providers (issue #26).
|
|
1112
|
+
*
|
|
1113
|
+
* - Enabling writes `commandcode` and remembers whatever it displaced. When
|
|
1114
|
+
* the plugin already owns the selection (e.g. a settings save while still
|
|
1115
|
+
* on), the original `displaced` value is kept — the field currently holds
|
|
1116
|
+
* our own id, which must never be mistaken for the user's backend.
|
|
1117
|
+
* - Disabling hands the selection back to the remembered backend. When the
|
|
1118
|
+
* state holds no memory (a fresh boot straight into `webSearch: false`),
|
|
1119
|
+
* the field is left alone: the runtime's current value — a sibling's
|
|
1120
|
+
* cordis pin such as `searchProvider: modsearch`, or unset for
|
|
1121
|
+
* auto-select — already says what the user wants.
|
|
1122
|
+
* - When the field already reads `commandcode` at first touch (e.g. a
|
|
1123
|
+
* surviving runtime the plugin did not set, or a manual
|
|
1124
|
+
* `searchProvider: commandcode` pin), `displaced` stays undefined so the
|
|
1125
|
+
* later disable is a no-op rather than a guess at the factory default.
|
|
1126
|
+
*
|
|
1127
|
+
* Never throws: like the low-level rewrite, a hardened runtime shape degrades
|
|
1128
|
+
* to registered-but-unselected.
|
|
1129
|
+
*/
|
|
1130
|
+
declare function applyCommandCodeSearchSelection(web: WebRuntime, state: CommandCodeSearchSelection, enable: boolean): void;
|
|
1026
1131
|
/** Per-request facts the provider needs, all injected so the class stays cordis-free and testable. */
|
|
1027
1132
|
interface CommandCodeSearchProviderDeps {
|
|
1028
1133
|
/** Resolve one usable Command Code key (credential seam → env → auth file), or undefined when none. */
|
|
@@ -1043,7 +1148,7 @@ declare class CommandCodeSearchProvider implements WebSearchProvider {
|
|
|
1043
1148
|
private readonly deps;
|
|
1044
1149
|
readonly id = "commandcode";
|
|
1045
1150
|
constructor(deps: CommandCodeSearchProviderDeps);
|
|
1046
|
-
/** Cheap local check; must not make network calls. Presence of a
|
|
1151
|
+
/** Cheap local check; must not make network calls. Presence of a parseable base is enough. */
|
|
1047
1152
|
available(): boolean;
|
|
1048
1153
|
search(request: WebSearchRequest, signal?: AbortSignal): Promise<WebSearchResult>;
|
|
1049
1154
|
private resolveKey;
|
|
@@ -1085,6 +1190,12 @@ interface Config {
|
|
|
1085
1190
|
* full catalog visible). Set false to always list every model.
|
|
1086
1191
|
*/
|
|
1087
1192
|
filterModelsByPlan?: boolean;
|
|
1193
|
+
/**
|
|
1194
|
+
* Visible-model allowlist: catalog model ids shown in pickers. Empty or
|
|
1195
|
+
* unset means "show everything". Persisted by the settings page's model
|
|
1196
|
+
* filter card; applies after the subscription-tier filter.
|
|
1197
|
+
*/
|
|
1198
|
+
visibleModels?: string[];
|
|
1088
1199
|
/**
|
|
1089
1200
|
* Extra accounts for multi-account rotation. The top-level
|
|
1090
1201
|
* `apiKey`/`apiKeyEnv` (plus the CLI auth file) always form the first
|
|
@@ -1116,12 +1227,15 @@ interface Config {
|
|
|
1116
1227
|
/**
|
|
1117
1228
|
* Whether to use Command Code as the backend for dsh's model-facing
|
|
1118
1229
|
* `web_search` tool. When enabled, the plugin registers a `commandcode`
|
|
1119
|
-
* search provider on `ctx.web` AND
|
|
1120
|
-
*
|
|
1121
|
-
*
|
|
1122
|
-
*
|
|
1123
|
-
*
|
|
1124
|
-
*
|
|
1230
|
+
* search provider on `ctx.web` AND selects `commandcode` in the web seam
|
|
1231
|
+
* (so it wins over the shipped `deepseek-official` or a sibling search
|
|
1232
|
+
* plugin's pin), using the SAME Command Code API key/base as chat. When
|
|
1233
|
+
* disabled, the selection is handed back to whichever backend was there
|
|
1234
|
+
* before — turning it off never forces the factory default, so a sibling
|
|
1235
|
+
* search plugin (e.g. modsearch) keeps working (issue #26). The rewrite
|
|
1236
|
+
* rides dsh's internal `searchProviderId`, which is read per search call,
|
|
1237
|
+
* so a setting change lands on the next search without a restart.
|
|
1238
|
+
* Defaults to true.
|
|
1125
1239
|
*/
|
|
1126
1240
|
webSearch?: boolean;
|
|
1127
1241
|
/**
|
|
@@ -1151,5 +1265,5 @@ interface ResolvedCommandCodeOptions extends CommandCodeConnectionOptions {
|
|
|
1151
1265
|
declare function resolveAdapterOptions(config: Config): ResolvedCommandCodeOptions;
|
|
1152
1266
|
declare function apply(ctx: Context, config: Config): void;
|
|
1153
1267
|
//#endregion
|
|
1154
|
-
export { type ApiKeyValidation, BILLING_ACCESS_TTL_MS, COMMANDCODE_SEARCH_PROVIDER_ID, COMMAND_CODE_CLI_VERSION, type CommandCodeAccountConfig, CommandCodeAccountPool, type CommandCodeAccountSlot, type CommandCodeAccountState, type CommandCodeAccountUsage, type CommandCodeAccountsReport, CommandCodeAdapter, type CommandCodeAdapterDeps, type CommandCodeBillingAccess, type CommandCodeCommandDeps, type CommandCodeConnectionOptions, type CommandCodeLoginCredentials, type CommandCodeLoginFailureReason, CommandCodeLoginFlow, type CommandCodeLoginFlowDeps, type CommandCodeLoginStatus, type CommandCodeModelAccountRule, CommandCodeSearchProvider, type CommandCodeSearchProviderDeps, type CommandCodeUsageDeps, type CommandCodeUsageReport, CommandCodeUsageService, Config, DEFAULT_API_BASE, DEFAULT_GENERATE_MAX_TOKENS, DEFAULT_MAX_OUTPUT_TOKENS, DEFAULT_MODELS_CACHE_PATH, DEFAULT_REQUEST_TIMEOUT_MS, DEFAULT_STREAM_IDLE_TIMEOUT_MS, DEFAULT_WEB_SEARCH_PROVIDER_ID, KNOWN_DEALS, KNOWN_EFFORTS, KNOWN_IMAGE_MODELS, KNOWN_PEAK_PRICING, KNOWN_PLANS, KNOWN_SUBSCRIPTION_PLANS, KNOWN_THINKING_MODELS, LOGIN_ALLOWED_ORIGINS, LOGIN_BEGIN_ENDPOINT, LOGIN_BODY_LIMIT_BYTES, LOGIN_CANCEL_ENDPOINT, LOGIN_MAX_PORT_ATTEMPTS, LOGIN_START_PORT, LOGIN_STATUS_ENDPOINT, LOGIN_TIMEOUT_MS, type LoginFlowFacade, PLAN_LABELS, PLAN_ORDER, PROVIDER, type ResolveAttachments, ResolvedCommandCodeOptions, USAGE_REPORT_ENDPOINT, accountUsable, apply, applyCommands, applyUsageRemote, buildCommandAuthUrl, capabilityDescription, commandDefinition, compareByPlan, dealLabel, formatContext, inject, loginStatusSchema, matchModelRule, modelVisibleInPlan, name, parseLoginStatus, peakPricingLabel, peakPricingState, planLabel, projectSlugFromPath, resolveAdapterOptions, resolveAuthFileApiKey, selectAccountForModel, selectActiveAccount, selectCommandCodeSearchProvider, studioBaseForApiBase, subscriptionPlanInfo, usageReportSchema, validateCommandApiKey };
|
|
1268
|
+
export { type ApiKeyValidation, BILLING_ACCESS_TTL_MS, COMMANDCODE_SEARCH_PROVIDER_ID, COMMAND_CODE_CLI_VERSION, type CommandCodeAccountConfig, CommandCodeAccountPool, type CommandCodeAccountSlot, type CommandCodeAccountState, type CommandCodeAccountUsage, type CommandCodeAccountsReport, CommandCodeAdapter, type CommandCodeAdapterDeps, type CommandCodeBillingAccess, type CommandCodeCommandDeps, type CommandCodeConnectionOptions, type CommandCodeLoginCredentials, type CommandCodeLoginFailureReason, CommandCodeLoginFlow, type CommandCodeLoginFlowDeps, type CommandCodeLoginStatus, type CommandCodeModelAccountRule, CommandCodeSearchProvider, type CommandCodeSearchProviderDeps, type CommandCodeSearchSelection, type CommandCodeUsageDeps, type CommandCodeUsageReport, CommandCodeUsageService, Config, DEFAULT_API_BASE, DEFAULT_GENERATE_MAX_TOKENS, DEFAULT_MAX_OUTPUT_TOKENS, DEFAULT_MODELS_CACHE_PATH, DEFAULT_REQUEST_TIMEOUT_MS, DEFAULT_STREAM_IDLE_TIMEOUT_MS, DEFAULT_WEB_SEARCH_PROVIDER_ID, KNOWN_DEALS, KNOWN_EFFORTS, KNOWN_IMAGE_MODELS, KNOWN_PEAK_PRICING, KNOWN_PLANS, KNOWN_SUBSCRIPTION_PLANS, KNOWN_THINKING_MODELS, LOGIN_ALLOWED_ORIGINS, LOGIN_BEGIN_ENDPOINT, LOGIN_BODY_LIMIT_BYTES, LOGIN_CANCEL_ENDPOINT, LOGIN_MAX_PORT_ATTEMPTS, LOGIN_START_PORT, LOGIN_STATUS_ENDPOINT, LOGIN_TIMEOUT_MS, type LoginFlowFacade, PLAN_LABELS, PLAN_ORDER, PROVIDER, type ResolveAttachments, ResolvedCommandCodeOptions, USAGE_REPORT_ENDPOINT, accountUsable, apply, applyCommandCodeSearchSelection, applyCommands, applyUsageRemote, buildCommandAuthUrl, capabilityDescription, commandCodeSearchSelection, commandDefinition, compareByPlan, dealLabel, formatContext, inject, loginStatusSchema, matchModelRule, modelVisibleInPlan, name, parseLoginStatus, peakPricingLabel, peakPricingState, planLabel, projectSlugFromPath, resolveAdapterOptions, resolveAuthFileApiKey, selectAccountForModel, selectActiveAccount, selectCommandCodeSearchProvider, studioBaseForApiBase, subscriptionPlanInfo, usageReportSchema, validateCommandApiKey };
|
|
1155
1269
|
//# sourceMappingURL=index.d.ts.map
|