@serviceme/devtools-shared 0.4.7 → 0.4.9
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/dist/index.d.mts +271 -8
- package/dist/index.d.ts +271 -8
- package/dist/index.js +528 -85
- package/dist/index.mjs +519 -84
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
* pre-fill baseUrl / displayName / default model list without
|
|
41
41
|
* requiring the user to look up endpoint docs.
|
|
42
42
|
*/
|
|
43
|
-
type ProviderType = "openai-compatible" | "anthropic-compatible" | "minimax" | "deepseek" | "kimi" | "zhipu" | "stepfun" | "siliconflow" | "openrouter" | "novita" | "agnes" | "vscode-builtin";
|
|
43
|
+
type ProviderType = "openai-compatible" | "anthropic-compatible" | "minimax" | "deepseek" | "kimi" | "zhipu" | "stepfun" | "siliconflow" | "openrouter" | "novita" | "agnes" | "medalsoft" | "vscode-builtin";
|
|
44
44
|
/**
|
|
45
45
|
* Curated metadata for named, well-known models. Used as a
|
|
46
46
|
* **fallback** when a `ProviderModel` entry omits one of the
|
|
@@ -87,6 +87,17 @@ interface CuratedModelMetadata {
|
|
|
87
87
|
priceCategory: ModelPriceCategory;
|
|
88
88
|
/** Thinking-dropdown schema (omit = no thinking dropdown). */
|
|
89
89
|
thinkingSchema?: Exclude<ModelThinkingSchema, "none">;
|
|
90
|
+
/**
|
|
91
|
+
* Whether the endpoint additionally accepts the `reasoning_effort`
|
|
92
|
+
* field (Zhipu official OpenAPI: "仅 GLM-5.2 及其以上模型支持",
|
|
93
|
+
* fetched 2026-08-19). Distinct from {@link thinkingSchema}: the
|
|
94
|
+
* 3-level dropdown rides every GLM-4.5+ model (thinking switch
|
|
95
|
+
* on/off), while the effort field is a 5.2+ extra that older
|
|
96
|
+
* endpoints may reject. Consumed by the OpenAI adapter to gate the
|
|
97
|
+
* `reasoning_effort` wire field (mirrors `supportsReasoningEffort`
|
|
98
|
+
* in `docs/references/GLM-for-copilot-main/src/consts.ts`).
|
|
99
|
+
*/
|
|
100
|
+
supportsReasoningEffort?: boolean;
|
|
90
101
|
/**
|
|
91
102
|
* Context-window token caps. Centralized here (rather than as
|
|
92
103
|
* magic numbers scattered across `BUILTIN_PROVIDER_PRESETS` call
|
|
@@ -330,6 +341,12 @@ interface ProviderMutationPayload {
|
|
|
330
341
|
enabled?: boolean;
|
|
331
342
|
/** See {@link ProviderConfig.minimaxBillingType}. */
|
|
332
343
|
minimaxBillingType?: "token_plan" | "pay_as_you_go";
|
|
344
|
+
/**
|
|
345
|
+
* See {@link ProviderConfig.visionMode} (2026-08-20 — surfaced in
|
|
346
|
+
* the ProvidersTab form). Omit to leave unchanged on update /
|
|
347
|
+
* default to `"native"` on add.
|
|
348
|
+
*/
|
|
349
|
+
visionMode?: ProviderVisionMode;
|
|
333
350
|
}
|
|
334
351
|
/** Which vendor API to call for usage data. */
|
|
335
352
|
type ProviderUsageKind = "minimax" | "deepseek" | "kimi" | "zhipu" | "stepfun" | "siliconflow" | "openrouter" | "novita";
|
|
@@ -527,6 +544,20 @@ declare const PROVIDER_CACHE_CONTROL_METADATA: Readonly<Record<ProviderType, Pro
|
|
|
527
544
|
*/
|
|
528
545
|
declare function isProviderCacheControlAware(type: ProviderType): boolean;
|
|
529
546
|
|
|
547
|
+
/**
|
|
548
|
+
* Map of namespaced model ids (used by aggregator platforms like
|
|
549
|
+
* SiliconFlow and Novita) to their primary entry. **Exported** so
|
|
550
|
+
* downstream code (e.g. the "Pick from preset" dropdown in
|
|
551
|
+
* ProvidersTab) can identify which entries in `MODEL_METADATA` are
|
|
552
|
+
* aliases vs primary curated ids — listing aliases would
|
|
553
|
+
* duplicate primaries in the UI.
|
|
554
|
+
*
|
|
555
|
+
* **Read-only by design.** Don't mutate; if you need to add a new
|
|
556
|
+
* aggregator alias, do it here so the merged `MODEL_METADATA`
|
|
557
|
+
* auto-tracks the primary.
|
|
558
|
+
*/
|
|
559
|
+
declare const NAMESPACE_ALIASES: Readonly<Record<string, string>>;
|
|
560
|
+
declare const NAMESPACE_ALIAS_FAMILY: Readonly<Record<string, string>>;
|
|
530
561
|
declare const MODEL_METADATA: Readonly<Record<string, CuratedModelMetadata>>;
|
|
531
562
|
/**
|
|
532
563
|
* Look up curated metadata for a model by its un-qualified id
|
|
@@ -541,19 +572,249 @@ declare function lookupModelMetadata(modelId: string): CuratedModelMetadata | un
|
|
|
541
572
|
* Resolve the currency for a baseUrl. Strict hostname match —
|
|
542
573
|
* `api.minimaxi.com` and `api.minimaxi.cn` map to CNY (the China
|
|
543
574
|
* platform), `api.minimax.io` maps to USD (the global platform),
|
|
544
|
-
*
|
|
545
|
-
*
|
|
546
|
-
*
|
|
547
|
-
*
|
|
548
|
-
*
|
|
575
|
+
* everything else falls back to USD (the global default). The
|
|
576
|
+
* match is exact-host so a typo in the hostname never silently
|
|
577
|
+
* flips currency.
|
|
578
|
+
*
|
|
579
|
+
* `api.deepseek.com` maps to CNY (2026-08-20 product decision —
|
|
580
|
+
* user request). History: the 8/18 draft put it in CNY by mistake
|
|
581
|
+
* (per the $ block on the English pricing page), 8/19 moved it to
|
|
582
|
+
* the USD catch-all, and 8/20 moved it BACK to CNY deliberately —
|
|
583
|
+
* our user base bills in ¥ on this endpoint (the official zh-cn
|
|
584
|
+
* page publishes the ¥ table for it), and the picker should show
|
|
585
|
+
* the price those users actually pay. The DeepSeek entries pin the
|
|
586
|
+
* PEAK tier (conservative worst-case; off-peak is exactly half).
|
|
549
587
|
*/
|
|
550
588
|
declare function currencyForBaseUrl(baseUrl: string): "USD" | "CNY";
|
|
551
589
|
|
|
552
|
-
|
|
590
|
+
/**
|
|
591
|
+
* Default configuration snippets shipped with named vendor types.
|
|
592
|
+
*
|
|
593
|
+
* When the user picks `minimax` / `deepseek` / `agnes` in the
|
|
594
|
+
* ProvidersTab, the form pre-fills `displayName` + `baseUrl` + a
|
|
595
|
+
* starter `models` list from this table. The user still has to
|
|
596
|
+
* paste their own `apiKey` (always empty by default — secrets
|
|
597
|
+
* never ship with the extension).
|
|
598
|
+
*
|
|
599
|
+
* Keep `baseUrl` here in sync with the upstream vendor docs.
|
|
600
|
+
*
|
|
601
|
+
* Adapter routing (see `apps/extension/src/services/providers/adapters/index.ts`):
|
|
602
|
+
* - minimax: Anthropic-compatible at `https://api.minimaxi.com/anthropic`
|
|
603
|
+
* → routed to AnthropicAdapter
|
|
604
|
+
* - deepseek: OpenAI-compatible at `https://api.deepseek.com/v1`
|
|
605
|
+
* → routed to OpenAIAdapter (the /anthropic surface v3 exposed
|
|
606
|
+
* is no longer documented for v4)
|
|
607
|
+
* - agnes: OpenAI-compatible at `https://apihub.agnes-ai.com/v1`
|
|
608
|
+
* → routed to OpenAIAdapter
|
|
609
|
+
* - medalsoft: OpenAI-compatible internal gateway at
|
|
610
|
+
* `https://llm.proxy.alio.wang/v1` → routed to OpenAIAdapter
|
|
611
|
+
* (empty starter model list — populate via "Fetch from API")
|
|
612
|
+
*
|
|
613
|
+
* Earlier iterations of the minimax default 401'd on the team; do
|
|
614
|
+
* NOT swap minimax back to one of these without checking with the
|
|
615
|
+
* user first:
|
|
616
|
+
* - `https://agent.minimaxi.com/mavis/api/v1/llm/v1` (opencode.json
|
|
617
|
+
* proxy URL — AnthropicAdapter would double-prefix /v1 to it)
|
|
618
|
+
* - `https://agent.minimaxi.com/v1` (OpenAI-compat
|
|
619
|
+
* variant — user tried this in commit 8bd867c then asked to
|
|
620
|
+
* revert in 71faf6e-era because it 401'd as well)
|
|
621
|
+
*/
|
|
622
|
+
/**
|
|
623
|
+
* Build a `ProviderModel` preset entry by joining the static
|
|
624
|
+
* context-window numbers (token caps are user-visible and depend
|
|
625
|
+
* on the wire-protocol spec, not the curated metadata) with the
|
|
626
|
+
* curated metadata in `MODEL_METADATA` (detail / capabilities /
|
|
627
|
+
* pricing / thinking). The user can override any field in the
|
|
628
|
+
* ProvidersTab form; the curated values are just the starter
|
|
629
|
+
* defaults so the picker shows the cost column + thinking
|
|
630
|
+
* dropdown out of the box for the named vendors.
|
|
631
|
+
*
|
|
632
|
+
* Pricing block is selected to match `baseUrl`'s currency (via
|
|
633
|
+
* `currencyForBaseUrl`): CNY for `open.bigmodel.cn` /
|
|
634
|
+
* `api.moonshot.cn` / etc., USD for `api.z.ai` / `openrouter.ai` /
|
|
635
|
+
* etc. Falls back to USD for unrecognised hosts. The caller is
|
|
636
|
+
* expected to pass a real `baseUrl` — when adding a brand-new
|
|
637
|
+
* provider the host is already known (came from the
|
|
638
|
+
* `PROVIDER_BASE_URL_PRESETS` dropdown or user-typed); the empty
|
|
639
|
+
* `""` default picks USD as a safe fallback.
|
|
640
|
+
*/
|
|
641
|
+
declare function buildPresetModel(id: string, displayName: string, baseUrl?: string): ProviderModel;
|
|
642
|
+
/**
|
|
643
|
+
* Union a model row returned by the "Fetch from API" flow with its
|
|
644
|
+
* curated preset metadata, when the id matches an entry in
|
|
645
|
+
* `MODEL_METADATA`. The API typically returns just `id` (sometimes
|
|
646
|
+
* `displayName`); the user expects the picker's `detail` / `pricing`
|
|
647
|
+
* / `capabilities` / `maxInputTokens` columns to be filled in for
|
|
648
|
+
* any model we curate, not blank.
|
|
649
|
+
*
|
|
650
|
+
* Precedence (TDD-pinned 2026-08-19, see
|
|
651
|
+
* `test/unionProviderModelWithPreset.test.mjs`):
|
|
652
|
+
*
|
|
653
|
+
* • **Preset wins** for the curated fields: `detail`,
|
|
654
|
+
* `capabilities`, `pricing`, `priceCategory`, `thinkingSchema`,
|
|
655
|
+
* `maxInputTokens`, `maxOutputTokens`. These are the values we
|
|
656
|
+
* maintain by hand and trust more than what the API publishes,
|
|
657
|
+
* which is often missing or stale (e.g. the OpenAI `/v1/models`
|
|
658
|
+
* endpoint does not return pricing or token caps; DeepSeek's
|
|
659
|
+
* `GET /models` likewise returns id + owned_by only).
|
|
660
|
+
* • **Fetched wins** for `id` (the API is the source of truth for
|
|
661
|
+
* what the endpoint actually exposes — a stale preset could list
|
|
662
|
+
* a model the user no longer has access to).
|
|
663
|
+
* • **`displayName`** — the 2026-08-19 follow-up: fetched wins
|
|
664
|
+
* when set, the preset's curated `displayName` (from
|
|
665
|
+
* `BUILTIN_PROVIDER_PRESETS`, see
|
|
666
|
+
* `getPresetModelDisplayName`) fills in when fetched omits it
|
|
667
|
+
* or sends an empty string. Without this fallback, the picker
|
|
668
|
+
* would render the bare id (`deepseek-v4-flash`) as the model
|
|
669
|
+
* name right after the fetch result lands — the user picked
|
|
670
|
+
* "Fetch from API" because they wanted the live catalog, but
|
|
671
|
+
* the friendly label they would have seen if they'd picked
|
|
672
|
+
* the vendor from the named-vendor `<select>` should also
|
|
673
|
+
* surface here. Empty string is treated the same as missing
|
|
674
|
+
* (a blank label in the picker is strictly worse than the
|
|
675
|
+
* curated friendly name).
|
|
676
|
+
* • **No preset match** → returns the fetched model unchanged
|
|
677
|
+
* (custom / aggregator-only models stay bare; the user fills
|
|
678
|
+
* in detail / pricing by hand).
|
|
679
|
+
*
|
|
680
|
+
* `baseUrl` is consulted to pick the right currency for `pricing`
|
|
681
|
+
* (CNY for `open.bigmodel.cn` / `api.moonshot.cn` / etc., USD
|
|
682
|
+
* otherwise — see `currencyForBaseUrl`). Pass the form's current
|
|
683
|
+
* `editing.baseUrl`; that is the same baseUrl the row was just
|
|
684
|
+
* fetched from, so the resolved currency matches what the user
|
|
685
|
+
* will see in the picker. Empty / unset baseUrl → USD fallback.
|
|
686
|
+
*
|
|
687
|
+
* Namespaced ids (e.g. `deepseek-ai/DeepSeek-V4-Pro` on
|
|
688
|
+
* SiliconFlow) resolve transparently — `MODEL_METADATA` aliases
|
|
689
|
+
* the primary entry's metadata reference under every namespace key,
|
|
690
|
+
* so `lookupModelMetadata("deepseek-ai/DeepSeek-V4-Pro")` returns
|
|
691
|
+
* the same object as `lookupModelMetadata("deepseek-v4-pro")`.
|
|
692
|
+
*/
|
|
693
|
+
declare function unionProviderModelWithPreset(fetched: ProviderModel, baseUrl: string): ProviderModel;
|
|
694
|
+
/**
|
|
695
|
+
* One entry in the "Pick from preset" dropdown shown next to the
|
|
696
|
+
* "+ Add model" button in ProvidersTab.
|
|
697
|
+
*/
|
|
698
|
+
interface PresetModelListing {
|
|
699
|
+
/** Canonical (primary, non-alias) model id; safe to feed to {@link buildPresetModel}. */
|
|
700
|
+
id: string;
|
|
701
|
+
/** Short human label; the dropdown option text. */
|
|
702
|
+
displayName: string;
|
|
703
|
+
/** Vendor family bucket — drives the `<optgroup>` grouping. */
|
|
704
|
+
vendorFamily: string;
|
|
705
|
+
}
|
|
706
|
+
/**
|
|
707
|
+
* The list of vendor family groups shown in the preset dropdown.
|
|
708
|
+
* Order is intentional (most common presets first):
|
|
709
|
+
* 1. GLM (Zhipu / 智谱) — the user explicitly asked us to
|
|
710
|
+
* support 4-channel endpoints; GLM has the richest preset
|
|
711
|
+
* list (15+ models) so it gets the top slot.
|
|
712
|
+
* 2. DeepSeek / Kimi / StepFun / MiniMax — the other named
|
|
713
|
+
* vendors with curated presets.
|
|
714
|
+
* 3. Agnes / Qwen — the smaller curated lists.
|
|
715
|
+
* 4. Aggregators (SiliconFlow / Novita / OpenRouter) — listed
|
|
716
|
+
* last because users on aggregators usually type the namespaced
|
|
717
|
+
* id by hand rather than reach for a curated dropdown.
|
|
718
|
+
*/
|
|
719
|
+
declare const PRESET_MODEL_FAMILIES: readonly string[];
|
|
720
|
+
/**
|
|
721
|
+
* The "Pick from preset" dropdown options — every curated primary
|
|
722
|
+
* entry in `MODEL_METADATA` PLUS every alias tagged with an
|
|
723
|
+
* aggregator family in `NAMESPACE_ALIAS_FAMILY`. Grouped by
|
|
724
|
+
* vendor family. Sorted alphabetically within each family so the
|
|
725
|
+
* dropdown order is stable across runs.
|
|
726
|
+
*
|
|
727
|
+
* Two alias flavours exist in `NAMESPACE_ALIASES`:
|
|
728
|
+
* - **Aggregator aliases** (SiliconFlow `deepseek-ai/…`,
|
|
729
|
+
* Novita `zai/…` / `deepseek/…`, etc.) — KEPT in the list so
|
|
730
|
+
* the dropdown surfaces the namespaced ids aggregator users
|
|
731
|
+
* actually need to type. They are routed to the matching
|
|
732
|
+
* aggregator <optgroup> via `NAMESPACE_ALIAS_FAMILY`.
|
|
733
|
+
* - **Historical / naming aliases** (e.g. the Zhipu
|
|
734
|
+
* `glm-4-flashx-250414` rebrand of `glm-4-flashx`) — DROPPED
|
|
735
|
+
* because they're duplicates of an existing primary entry
|
|
736
|
+
* that already appears in the dropdown. Users with the
|
|
737
|
+
* historical id already in their settings.json keep
|
|
738
|
+
* working at the chat-registration layer
|
|
739
|
+
* (see `MODEL_METADATA`'s alias merge) — the dropdown just
|
|
740
|
+
* doesn't surface a redundant second option.
|
|
741
|
+
*
|
|
742
|
+
* The filter rule is the inverse of the aggregator tag presence:
|
|
743
|
+
* any alias with a `NAMESPACE_ALIAS_FAMILY` entry is kept, every
|
|
744
|
+
* other alias is filtered. The pinning test
|
|
745
|
+
* `test/listPresetModelGroups.test.mjs` asserts this 1:1 mapping
|
|
746
|
+
* between the two structures.
|
|
747
|
+
*
|
|
748
|
+
* Used by `ProvidersTab.tsx` to render the `<select>` next to the
|
|
749
|
+
* "+ Add model" button. Selecting an option calls
|
|
750
|
+
* `buildPresetModel(id, displayName, baseUrl)` and appends the
|
|
751
|
+
* resulting `ProviderModel` to the editing list. The `displayName`
|
|
752
|
+
* mirrors the model id verbatim (the canonical form is what users
|
|
753
|
+
* see in /v1/models, what VSCode's chat picker surfaces, and what
|
|
754
|
+
* the existing `BUILTIN_PROVIDER_PRESETS` pre-fills); the user can
|
|
755
|
+
* still rename the field after picking — this is just a starter
|
|
756
|
+
* label.
|
|
757
|
+
*/
|
|
758
|
+
declare const LISTABLE_PRESET_MODELS: readonly PresetModelListing[];
|
|
759
|
+
/**
|
|
760
|
+
* Group {@link LISTABLE_PRESET_MODELS} by `vendorFamily`, preserving
|
|
761
|
+
* the order declared in {@link PRESET_MODEL_FAMILIES} (most-common
|
|
762
|
+
* first). Empty families are dropped so the dropdown only shows
|
|
763
|
+
* groups that actually have entries.
|
|
764
|
+
*
|
|
765
|
+
* Returns: array of `{ family, entries }` — the shape a UI
|
|
766
|
+
* `<select>` renderer expects when building `<optgroup>`s.
|
|
767
|
+
*/
|
|
768
|
+
interface PresetModelFamilyGroup {
|
|
769
|
+
family: string;
|
|
770
|
+
entries: readonly PresetModelListing[];
|
|
771
|
+
}
|
|
772
|
+
declare function listPresetModelGroups(): readonly PresetModelFamilyGroup[];
|
|
773
|
+
declare const BUILTIN_PROVIDER_PRESETS: Readonly<Record<"minimax" | "deepseek" | "kimi" | "zhipu" | "stepfun" | "siliconflow" | "openrouter" | "novita" | "agnes" | "medalsoft", {
|
|
553
774
|
displayName: string;
|
|
554
775
|
baseUrl: string;
|
|
555
776
|
models: ProviderModel[];
|
|
556
777
|
}>>;
|
|
778
|
+
/**
|
|
779
|
+
* Look up the curated friendly displayName for a model id. Two
|
|
780
|
+
* sources, in priority order:
|
|
781
|
+
*
|
|
782
|
+
* 1. **Explicit map** (`PRESET_MODEL_DISPLAY_NAMES`, derived from
|
|
783
|
+
* `BUILTIN_PROVIDER_PRESETS` at module load). Curated by hand;
|
|
784
|
+
* wins when present so a curated prettier name
|
|
785
|
+
* (e.g. "DeepSeek V4 Flash" for `deepseek-v4-flash`) is
|
|
786
|
+
* always preferred over whatever the detail's prefix would
|
|
787
|
+
* produce.
|
|
788
|
+
* 2. **`MODEL_METADATA.detail` fallback** (2026-08-19 follow-up).
|
|
789
|
+
* For ids that are in `MODEL_METADATA` (have curated pricing
|
|
790
|
+
* / capabilities) but NOT in any vendor preset — e.g.
|
|
791
|
+
* `glm-4.7-flash`, `glm-4.5v`, `glm-5v-turbo`, `glm-4.6v` —
|
|
792
|
+
* derive the display name from the `detail` field by
|
|
793
|
+
* splitting on the first ` — ` and keeping the left half.
|
|
794
|
+
* This restores friendly labels for models the v1 lookup
|
|
795
|
+
* missed (the user-reported case: `glm-4.7-flash` came
|
|
796
|
+
* back from "Fetch from API" without a display name
|
|
797
|
+
* because it was excluded from the Zhipu preset on
|
|
798
|
+
* 2026-08-18, but its detail field already said
|
|
799
|
+
* "GLM-4.7 Flash — 完全免费(200K 上下文)").
|
|
800
|
+
*
|
|
801
|
+
* Returns `undefined` for:
|
|
802
|
+
* • ids that aren't in `BUILTIN_PROVIDER_PRESETS` AND aren't in
|
|
803
|
+
* `MODEL_METADATA` (genuinely custom / aggregator-only
|
|
804
|
+
* models the user added by hand — the consumer falls back
|
|
805
|
+
* to the literal fetched id)
|
|
806
|
+
* • ids in `MODEL_METADATA` whose `detail` is empty /
|
|
807
|
+
* whitespace, or whose detail has no ` — ` boundary and the
|
|
808
|
+
* whole string is the qualifier (defensive — every entry
|
|
809
|
+
* today has a usable detail).
|
|
810
|
+
*
|
|
811
|
+
* Used by `unionProviderModelWithPreset` to fill in the
|
|
812
|
+
* `displayName` field when the API payload omits it — the
|
|
813
|
+
* picker's model name column then renders "DeepSeek V4 Flash"
|
|
814
|
+
* or "GLM-4.7 Flash" instead of the bare id right after the
|
|
815
|
+
* fetch result lands.
|
|
816
|
+
*/
|
|
817
|
+
declare function getPresetModelDisplayName(id: string): string | undefined;
|
|
557
818
|
/**
|
|
558
819
|
* Look up the default config (displayName / baseUrl / models) for a
|
|
559
820
|
* named vendor type. Returns `null` for the `-compatible` family —
|
|
@@ -1107,6 +1368,8 @@ declare enum WebviewMessageType {
|
|
|
1107
1368
|
SetProviderOrder = "setProviderOrder",
|
|
1108
1369
|
TestProvider = "testProvider",
|
|
1109
1370
|
ProviderTestResultMessage = "providerTestResult",
|
|
1371
|
+
TestProviderModel = "testProviderModel",
|
|
1372
|
+
ProviderTestModelResultMessage = "providerTestModelResult",
|
|
1110
1373
|
DefaultProviderChanged = "defaultProviderChanged",
|
|
1111
1374
|
FetchProviderModels = "fetchProviderModels",
|
|
1112
1375
|
FetchProviderModelsResult = "fetchProviderModelsResult",
|
|
@@ -1481,4 +1744,4 @@ declare function asAbortSignal(input: unknown): AbortSignal | undefined;
|
|
|
1481
1744
|
*/
|
|
1482
1745
|
declare function safeJson<T>(text: string, fallback: T): T;
|
|
1483
1746
|
|
|
1484
|
-
export { type AIModelConfig, type AIModelInfo, type AgentPermissionSummary, type AgentToolPermission, type AgentToolRiskLevel, BUILTIN_PROVIDER_PRESETS, type BalanceEntry, type BridgeLinkMode, type BridgeLinkedSkill, type BridgeRepoEntry, type BridgeRepoSyncPull, type BridgeSkillKind, type BridgeSkillRepoEntry, type BridgeSkillRepoFile, type ByomProviderToggles, ByomSettingsResponse, type ByomSettingsSnapshot, type ByomTogglePayload, CERTIFICATE_BUNDLE_FORMATS, CachedServerUrlResponse, type CachedServerUrlSnapshot, type CertificateBundleEnvironmentSupport, type CertificateBundleFormat, type CertificateBundleFormatDescriptor, type CodingPlanUsage, type CommandPayload, type CuratedModelMetadata, type DeepseekBalanceEntry, type DeepseekUsage, type DownloadCertificateBundleRequest, type DownloadCertificateBundleResponse, GIT_REMOTE_HOST_ALIASES, type GenericBalanceUsage, GetByomSettings, GetCachedServerUrl, GetServerProxyState, GetUtilityModels, type GitHubOrgMembershipCheckResult, type GitHubOrgMembershipStatus, type GitHubUser, type GithubCopilotCliPayload, type HttpRequestPayload, type ILogger, type LinkedSkillPayloadEntry, LogLevel, MODEL_METADATA, type MinimaxUsage, type ModelDetail, type ModelPriceCategory, type ModelPricing, type ModelThinkingSchema, PROVIDER_BASE_URL_PRESETS, PROVIDER_CACHE_CONTROL_METADATA, type ProviderBaseUrlPreset, type ProviderCacheControlMetadata, type ProviderConfig, type ProviderModel, type ProviderMutationPayload, type ProviderTestResult, type ProviderType, type ProviderUsageData, type ProviderUsageKind, type ProviderUsageResult, type ProviderVisionMode, type ProviderWireProtocol, type ProvidersResponsePayload, type PublicProvider, type ScheduledTask, type ScheduledTaskType, type ScheduledTaskV1, type ScheduledTasksConfig, type ScheduledTasksLogFile, type ServerProxyAllowOverridePayload, type ServerProxySnapshot, ServerProxyStateResponse, type ServerProxySupportMode, type ServerProxyTogglePayload, SetCacheControlEnabled, SetServerProxyAllowOverride, SetServerProxyEnabled, type ShellPayload, type TaskExecutionLog, type TaskExecutionState, type TaskExecutionStatus, type TaskPayload, type TaskRunStatus, type TaskWorkspaceRef, UpdateUtilityModels, type UpdateUtilityModelsPayload, type UsageWindow, type UtilityModelScope, type UtilityModelsEffective, UtilityModelsResponse, type UtilityModelsSnapshot, type UtilityModelsSource, type WebviewInboundMessage, WebviewMessageType, __internal, asAbortSignal, buildGitHubLocalEmail, checkGitHubOrgMembership, createConsoleLogger, currencyForBaseUrl, effectiveAdapterType, fetchGitHubUser, getBuiltinProviderPreset, getGitHubOrgMembership, getProviderBaseUrlPresets, isGitHubLocalEmail, isProviderCacheControlAware, isValidCanonicalSlug, lookupModelMetadata, normalizeCanonicalSlug, normalizeErrorForLog, normalizeGitUrl, parsePayload, protocolForBaseUrl, resolvePrimaryEmail, safeJson };
|
|
1747
|
+
export { type AIModelConfig, type AIModelInfo, type AgentPermissionSummary, type AgentToolPermission, type AgentToolRiskLevel, BUILTIN_PROVIDER_PRESETS, type BalanceEntry, type BridgeLinkMode, type BridgeLinkedSkill, type BridgeRepoEntry, type BridgeRepoSyncPull, type BridgeSkillKind, type BridgeSkillRepoEntry, type BridgeSkillRepoFile, type ByomProviderToggles, ByomSettingsResponse, type ByomSettingsSnapshot, type ByomTogglePayload, CERTIFICATE_BUNDLE_FORMATS, CachedServerUrlResponse, type CachedServerUrlSnapshot, type CertificateBundleEnvironmentSupport, type CertificateBundleFormat, type CertificateBundleFormatDescriptor, type CodingPlanUsage, type CommandPayload, type CuratedModelMetadata, type DeepseekBalanceEntry, type DeepseekUsage, type DownloadCertificateBundleRequest, type DownloadCertificateBundleResponse, GIT_REMOTE_HOST_ALIASES, type GenericBalanceUsage, GetByomSettings, GetCachedServerUrl, GetServerProxyState, GetUtilityModels, type GitHubOrgMembershipCheckResult, type GitHubOrgMembershipStatus, type GitHubUser, type GithubCopilotCliPayload, type HttpRequestPayload, type ILogger, LISTABLE_PRESET_MODELS, type LinkedSkillPayloadEntry, LogLevel, MODEL_METADATA, type MinimaxUsage, type ModelDetail, type ModelPriceCategory, type ModelPricing, type ModelThinkingSchema, NAMESPACE_ALIASES, NAMESPACE_ALIAS_FAMILY, PRESET_MODEL_FAMILIES, PROVIDER_BASE_URL_PRESETS, PROVIDER_CACHE_CONTROL_METADATA, type PresetModelFamilyGroup, type PresetModelListing, type ProviderBaseUrlPreset, type ProviderCacheControlMetadata, type ProviderConfig, type ProviderModel, type ProviderMutationPayload, type ProviderTestResult, type ProviderType, type ProviderUsageData, type ProviderUsageKind, type ProviderUsageResult, type ProviderVisionMode, type ProviderWireProtocol, type ProvidersResponsePayload, type PublicProvider, type ScheduledTask, type ScheduledTaskType, type ScheduledTaskV1, type ScheduledTasksConfig, type ScheduledTasksLogFile, type ServerProxyAllowOverridePayload, type ServerProxySnapshot, ServerProxyStateResponse, type ServerProxySupportMode, type ServerProxyTogglePayload, SetCacheControlEnabled, SetServerProxyAllowOverride, SetServerProxyEnabled, type ShellPayload, type TaskExecutionLog, type TaskExecutionState, type TaskExecutionStatus, type TaskPayload, type TaskRunStatus, type TaskWorkspaceRef, UpdateUtilityModels, type UpdateUtilityModelsPayload, type UsageWindow, type UtilityModelScope, type UtilityModelsEffective, UtilityModelsResponse, type UtilityModelsSnapshot, type UtilityModelsSource, type WebviewInboundMessage, WebviewMessageType, __internal, asAbortSignal, buildGitHubLocalEmail, buildPresetModel, checkGitHubOrgMembership, createConsoleLogger, currencyForBaseUrl, effectiveAdapterType, fetchGitHubUser, getBuiltinProviderPreset, getGitHubOrgMembership, getPresetModelDisplayName, getProviderBaseUrlPresets, isGitHubLocalEmail, isProviderCacheControlAware, isValidCanonicalSlug, listPresetModelGroups, lookupModelMetadata, normalizeCanonicalSlug, normalizeErrorForLog, normalizeGitUrl, parsePayload, protocolForBaseUrl, resolvePrimaryEmail, safeJson, unionProviderModelWithPreset };
|