dsh-connect-trae 1.0.0 → 1.1.0

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/lib/index.d.ts CHANGED
@@ -34,24 +34,88 @@ interface TraeDiscoveredModel {
34
34
  declare function parseTraeRemoteModel(value: unknown): TraeDiscoveredModel | undefined;
35
35
  //#endregion
36
36
  //#region src/catalog.d.ts
37
+ type TraeInputModality = 'text' | 'image';
38
+ /**
39
+ * One model the adapter exposes. `contextWindow` is the effective DSH context
40
+ * after the user's budget; `maxContextWindow` is the native Max window Trae
41
+ * advertises (capability display only — never a second model entry).
42
+ */
37
43
  interface TraeModelInfo {
38
44
  id: string;
39
45
  name: string;
40
46
  contextWindow?: number;
41
47
  maxTokens?: number;
42
- input?: ('text' | 'image')[];
48
+ input?: TraeInputModality[];
43
49
  creditMultiplier?: number;
44
50
  reasoningSupported?: boolean;
45
51
  reasoning?: TraeDiscoveredReasoning;
46
52
  reasoningEfforts?: Partial<Record<TraeReasoningEffort, string | null>>;
47
- baseModelId?: string;
48
- maxContext?: boolean;
49
53
  maxContextWindow?: number;
54
+ /** The `config_name` `llm_utils_chat` accepts; absent means `id` is already the wire id. */
55
+ wireConfigName?: string;
50
56
  }
51
57
  /** Bootstrap catalog: identity only where current Trae metadata has not been fetched yet. */
52
58
  declare const FALLBACK_TRAE_MODELS: readonly TraeModelInfo[];
53
- /** Convert verified Trae API metadata into normal models and optional 1M variants. */
54
- declare function discoveredCatalog(models: readonly TraeDiscoveredModel[], enabled1m?: ReadonlySet<string>): TraeModelInfo[];
59
+ /** Exact DSH modalities for one catalog entry; absent metadata is text-only. */
60
+ declare function traeInputModalities(model: Pick<TraeModelInfo, 'input'>): TraeInputModality[];
61
+ /** Apply the user's explicit image opt-ins; upstream and saved row hints are ignored. */
62
+ declare function applyImageSelection(models: readonly TraeModelInfo[], selected: ReadonlySet<string>): TraeModelInfo[];
63
+ /** One row from `get_detail_param`: the authoritative llm_utils_chat wire id + display name. */
64
+ interface TraeWireModel {
65
+ id: string;
66
+ name: string;
67
+ contextWindow?: number;
68
+ maxTokens?: number;
69
+ reasoning?: TraeReasoningCapability;
70
+ }
71
+ /**
72
+ * Merge the two Trae model sources into one authoritative catalog.
73
+ *
74
+ * `remote` (the solo.trae.cn `/models` directory) is the authoritative model
75
+ * skeleton: it supplies the display id, display name, context windows, credit
76
+ * multiplier, reasoning and multimodal flags. `wire` (from `get_detail_param`)
77
+ * supplies the real `llm_utils_chat` `config_name` — the only id the chat
78
+ * endpoint actually accepts. A remote row is only callable when it maps to a
79
+ * wire `config_name`, so a remote row with no wire match is DROPPED (it would
80
+ * otherwise be sent as an invalid `config_name` and rejected with 4001
81
+ * "param is invalid"). Verified 2026-08-30: the Remote directory advertises
82
+ * `Doubao-Seed-Code` and `glm-5.3`, neither of which is a current `config_name`;
83
+ * both fail every request, so they must not be exposed.
84
+ *
85
+ * Joining is two-tier, in priority order:
86
+ * 1. `wire.id` (the `config_name`) equals the remote id — the model's display
87
+ * id is already its wire id (the common case: glm-5.2, DeepSeek-V4-Flash,
88
+ * kimi-k3, …).
89
+ * 2. `wire.name` (the `display_name`) equals the remote display name — for
90
+ * models whose display id differs from the wire id across Trae versions.
91
+ * When the matched wire `config_name` differs from the remote id it is recorded
92
+ * as `wireConfigName`; otherwise it is left undefined (id is already the wire id).
93
+ */
94
+ declare function mergeTraeModelSources(remote: readonly TraeDiscoveredModel[], wire: readonly TraeWireModel[]): TraeModelInfo[];
95
+ /** Local DSH context budget per model; a value may only select an advertised window. */
96
+ type TraeContextBudget = number;
97
+ /**
98
+ * Apply the saved local budget. Trae advertises two windows per model (dev and
99
+ * Max), so the budget may only switch a model to its own advertised Max value —
100
+ * never to a fabricated number. Everything else keeps the dev window.
101
+ */
102
+ declare function applyContextBudgets(catalog: readonly TraeModelInfo[], budgets?: Readonly<Record<string, TraeContextBudget | undefined>>): TraeModelInfo[];
103
+ /** Convert Trae metadata into text-only model rows; image support is user-owned configuration. */
104
+ declare function discoveredCatalog(models: readonly TraeDiscoveredModel[]): TraeModelInfo[];
105
+ /**
106
+ * Drop rows saved by older releases that generated `@1m` variant models, so a
107
+ * stale configuration cannot resurrect a variant the runtime no longer builds.
108
+ */
109
+ declare function sanitizeCatalog(catalog: readonly TraeModelInfo[]): TraeModelInfo[];
110
+ /**
111
+ * Derive the runtime catalog from the last refreshed Trae directory plus the
112
+ * user's explicit selection and context budgets. An empty selection falls back
113
+ * to the whole directory: a plugin that has never been configured must still
114
+ * serve models rather than nothing. This is the single source of truth for
115
+ * what DSH actually exposes, so saving only the selection and budgets is
116
+ * enough to rebuild it after a restart.
117
+ */
118
+ declare function deriveCatalog(catalog: readonly TraeModelInfo[], enabled: ReadonlySet<string>, budgets?: Readonly<Record<string, TraeContextBudget | undefined>>): TraeModelInfo[];
55
119
  declare class TraeCatalog {
56
120
  private models;
57
121
  current(): readonly TraeModelInfo[];
@@ -161,7 +225,6 @@ declare class TraeCredentialStore {
161
225
  private storagePathOverride;
162
226
  private edition;
163
227
  private accountId;
164
- private preferIds;
165
228
  private readonly ownPath;
166
229
  private readonly refresh;
167
230
  private readonly refreshMarginMs;
@@ -169,15 +232,13 @@ declare class TraeCredentialStore {
169
232
  constructor(options: TraeCredentialStoreOptions);
170
233
  setSource(storagePath: string | undefined, edition?: TraeEdition | 'auto', accountId?: string): void;
171
234
  selectAccount(accountId: string | undefined): void;
235
+ candidates(): TraeStorageCandidate[];
172
236
  /**
173
- * Preferred account ordering used when no account is explicitly selected.
174
- * The connector can only bill the `llm_utils_chat` channel against general
175
- * credits, so accounts with zero general credits should not become the
176
- * default or they fail with 4008 / empty responses.
237
+ * Deterministic default when no account is explicitly selected: the first
238
+ * discovered account. This is NOT credit-seeking — it never reorders accounts
239
+ * to find one with general credits. The plugin bills exactly the account the
240
+ * user selected, or the first account when nothing has been selected yet.
177
241
  */
178
- setPreferAccountIds(ids: readonly string[]): void;
179
- candidates(): TraeStorageCandidate[];
180
- /** First credential matching the preferred ordering, else the first live one. */
181
242
  private preferred;
182
243
  accounts(): Promise<TraeAccountChoice[]>;
183
244
  current(): Promise<TraeCredential | undefined>;
@@ -213,8 +274,16 @@ interface TraeIdentity {
213
274
  osVersion?: string;
214
275
  platform: NodeJS.Platform;
215
276
  }
277
+ interface TraeIdentityReadOptions {
278
+ /** Platform override for testing; defaults to process.platform. */
279
+ platform?: NodeJS.Platform;
280
+ /** Home-directory override for testing; defaults to homedir(). */
281
+ home?: string;
282
+ /** Environment override for testing; defaults to process.env. */
283
+ env?: NodeJS.ProcessEnv;
284
+ }
216
285
  /** Read stable identity from Trae-owned files without generating impersonated IDs. */
217
- declare function readTraeIdentity(candidate: TraeStorageCandidate): Promise<TraeIdentity>;
286
+ declare function readTraeIdentity(candidate: TraeStorageCandidate, options?: TraeIdentityReadOptions): Promise<TraeIdentity>;
218
287
  /** Headers derived from actual persisted identity, never a new random identity per request. */
219
288
  declare function identityHeaders(identity: TraeIdentity): Record<string, string>;
220
289
  //#endregion
@@ -244,8 +313,20 @@ interface TraeCachedModelConfig {
244
313
  }
245
314
  /** Parse a safe subset of one cached model entry; credentials and endpoints are intentionally omitted. */
246
315
  declare function parseTraeCachedModel(value: unknown): TraeCachedModelConfig | undefined;
247
- /** Read Trae's own current user's model map via sqlite3 without exposing secrets. */
248
- declare function readTraeCachedModel(functionName: string, modelName: string, userId: string): Promise<TraeCachedModelConfig | undefined>;
316
+ interface TraeCachedModelReadOptions {
317
+ /** Platform override for testing; defaults to process.platform. */
318
+ platform?: NodeJS.Platform;
319
+ /** Home-directory override for testing; defaults to homedir(). */
320
+ home?: string;
321
+ /** Environment override for testing; defaults to process.env. */
322
+ env?: NodeJS.ProcessEnv;
323
+ }
324
+ /**
325
+ * Read Trae's own current user's model map via sqlite3 without exposing
326
+ * secrets. The sqlite3 command line is a macOS prerequisite; on Windows it is
327
+ * typically absent, so the call fails and callers fall back gracefully.
328
+ */
329
+ declare function readTraeCachedModel(functionName: string, modelName: string, userId: string, options?: TraeCachedModelReadOptions): Promise<TraeCachedModelConfig | undefined>;
249
330
  //#endregion
250
331
  //#region src/model-extra-config.d.ts
251
332
  interface TraeRawChatBehaviorConfig {
@@ -591,7 +672,7 @@ interface TraeFallbackUpstreamOptions {
591
672
  }>) => void;
592
673
  }
593
674
  /**
594
- * Raw Chat first, SOLO Remote second. Fallback is intentionally narrow:
675
+ * Optional primary route first, native SOLO tool-call route second. Fallback is intentionally narrow:
595
676
  * only definitive pre-stream schema/route incompatibilities may retry the same
596
677
  * user request. Authentication, credit, rate, cancellation, transport/server
597
678
  * failures, and every successful Response are never replayed.
@@ -686,6 +767,7 @@ interface TraeSoloClientOptions {
686
767
  identity(): Promise<TraeIdentity>;
687
768
  baseUrl?: string;
688
769
  fetchImpl?: typeof fetch;
770
+ log?: (message: string, detail?: unknown) => void;
689
771
  }
690
772
  declare class TraeSoloUpstreamClient {
691
773
  private readonly options;
@@ -698,58 +780,39 @@ declare class TraeSoloUpstreamClient {
698
780
  //#region src/solo-bridge.d.ts
699
781
  /** Convert Trae's named SSE events into OpenAI chat-completion SSE chunks. */
700
782
  declare function bridgeTraeSoloStream(response: Response, model: string): Response;
783
+ /** Resolves a display model id to the real llm_utils_chat config_name. */
784
+ type TraeWireResolver = (displayId: string) => string | undefined;
701
785
  /** Native SOLO client wrapper used by the loopback OpenAI adapter. */
702
786
  declare class TraeSoloBridge implements TraeUpstreamClient {
703
787
  private readonly upstream;
704
- constructor(upstream: TraeUpstreamClient);
788
+ private readonly catalog?;
789
+ private readonly wireResolver?;
790
+ constructor(upstream: TraeUpstreamClient, catalog?: Pick<TraeCatalog, "current"> | undefined, wireResolver?: TraeWireResolver | undefined);
705
791
  chatStream(bodyJson: string, signal?: AbortSignal): Promise<TraeChatResult>;
706
792
  }
707
793
  //#endregion
708
794
  //#region src/solo-remote.d.ts
709
795
  declare const TRAE_SOLO_REMOTE_BASE = "https://solo.trae.cn/api/remote/v1";
710
- declare const TRAE_SOLO_REMOTE_MODELS: readonly {
711
- name: string;
712
- displayName: string;
713
- multimodal: boolean;
714
- }[];
715
- interface TraeSoloRemoteOptions {
796
+ interface TraeSoloRemoteCatalogOptions {
716
797
  credential(): Promise<TraeCredential>;
717
798
  fetchImpl?: typeof fetch;
718
799
  baseUrl?: string;
719
- pollIntervalMs?: number;
720
- timeoutMs?: number;
721
- }
722
- interface TraeRemoteInputMessage {
723
- role: string;
724
- content: string;
725
800
  }
726
- declare class TraeSoloRemoteClient {
801
+ /**
802
+ * Read-only model catalog client for the SOLO Web API.
803
+ *
804
+ * This deliberately has no chat/session method: the Remote session protocol
805
+ * only exposes a final answer and cannot preserve DSH's structured tool loop.
806
+ */
807
+ declare class TraeSoloRemoteCatalogClient {
727
808
  private readonly options;
728
809
  private readonly fetchImpl;
729
810
  private readonly baseUrl;
730
- private readonly pollIntervalMs;
731
- private readonly timeoutMs;
732
- constructor(options: TraeSoloRemoteOptions);
811
+ constructor(options: TraeSoloRemoteCatalogOptions);
733
812
  private headers;
734
- chat(messages: readonly TraeRemoteInputMessage[], model: string, signal?: AbortSignal): Promise<{
735
- content: string;
736
- sessionId: string;
737
- }>;
738
813
  fetchModels(signal?: AbortSignal): Promise<TraeDiscoveredModel[]>;
739
814
  }
740
815
  //#endregion
741
- //#region src/solo-remote-bridge.d.ts
742
- /**
743
- * Bridges the SOLO remote polling-based API into the shim's stream interface.
744
- * The remote API uses create-session + poll-messages rather than raw SSE,
745
- * so this bridge converts the final result into a synthetic OpenAI SSE stream.
746
- */
747
- declare class TraeSoloRemoteBridge implements TraeUpstreamClient {
748
- private readonly remote;
749
- constructor(remote: TraeSoloRemoteClient);
750
- chatStream(bodyJson: string, signal?: AbortSignal): Promise<TraeChatResult>;
751
- }
752
- //#endregion
753
816
  //#region src/delegating-upstream.d.ts
754
817
  /** Stable shim dependency whose delegate can be replaced after async setup. */
755
818
  declare class TraeDelegatingUpstreamClient implements TraeUpstreamClient {
@@ -877,10 +940,7 @@ interface TraeWebModel {
877
940
  supported: string[];
878
941
  defaultEffort?: string;
879
942
  };
880
- baseModelId?: string;
881
- maxContext?: boolean;
882
943
  maxContextWindow?: number;
883
- maxContextEnabled?: boolean;
884
944
  }
885
945
  /** Daily check-in status rendered by the card. */
886
946
  interface TraeWebCheckin {
@@ -915,7 +975,6 @@ type TraeWebUsage = {
915
975
  accounts: readonly TraeWebAccount[];
916
976
  models: readonly TraeWebModel[];
917
977
  enabledModelIds: readonly string[];
918
- enabled1mModelIds: readonly string[];
919
978
  rawChat?: {
920
979
  state: 'disabled' | 'unchecked' | 'available' | 'protocol-gated' | 'authentication' | 'credit' | 'rate' | 'transport' | 'server';
921
980
  checkedAtMs?: number;
@@ -933,12 +992,10 @@ type TraeWebUsage = {
933
992
  interface TraeUsageRouteOptions {
934
993
  store: TraeCredentialStore;
935
994
  client: TraeUsageClient;
936
- /** The last-refreshed Trae raw directory (no generated @1m variants) for card display. */
995
+ /** The last-refreshed Trae raw directory (one entry per upstream model) for card display. */
937
996
  displayModels(): readonly TraeModelInfo[];
938
- /** The user's ordinary-model selection stored as model id (= Trae name). */
997
+ /** The user's model selection stored as model id (= Trae name). */
939
998
  enabledModelIds(): readonly string[];
940
- /** The user's 1M selection stored as base-model id. */
941
- enabled1mModelIds(): readonly string[];
942
999
  discoverModels?(signal?: AbortSignal): Promise<readonly TraeModelInfo[]>;
943
1000
  rawDiagnostic?(): TraeRawDiagnostic;
944
1001
  }
@@ -952,7 +1009,7 @@ declare function traeWebUsage(deps: TraeUsageRouteOptions): Promise<TraeWebUsage
952
1009
  declare function registerTraeUsageRoute(ctx: Context, deps: TraeUsageRouteOptions): void;
953
1010
  //#endregion
954
1011
  //#region src/index.d.ts
955
- declare const name = "llm-trae";
1012
+ declare const name = "dsh-connect-trae";
956
1013
  declare const inject: string[];
957
1014
  declare const TRAE_SETTINGS_NS: import("@deepseek-ai/dsh-settings").SettingsNamespace;
958
1015
  interface Config {
@@ -964,12 +1021,14 @@ interface Config {
964
1021
  lastCatalog?: TraeModelInfo[];
965
1022
  /** The user's ordinary-model selection, as model id (= Trae name). */
966
1023
  enabledModelIds?: string[];
967
- /** The user's 1M selection, as base-model id. */
968
- enabled1mModels?: string[];
1024
+ /** Local DSH context budget per model; a value may only select an advertised window. */
1025
+ contextBudgets?: Record<string, number>;
1026
+ /** Models the user explicitly enabled for image input; text is always enabled. */
1027
+ imageModelIds?: string[];
969
1028
  /** Legacy generated runtime catalog; kept for backwards compatibility. */
970
1029
  models?: TraeModelInfo[];
971
1030
  }
972
1031
  declare const Config: z<Config>;
973
1032
  declare function apply(ctx: Context, config: Config): void;
974
1033
  //#endregion
975
- export { Config, FALLBACK_TRAE_MODELS, type RawChatDelta, type RawChatMessage, type RawChatTool, SseDecoder, type SseEvent, TRAE_CN_AGENT_TASK_PATH, TRAE_CN_TITLE_PATH, TRAE_MODEL_DETAIL_FUNCTIONS, TRAE_MODEL_DETAIL_PATH, TRAE_PAY_BASE, TRAE_PROVIDER, TRAE_RAW_CHAT_V1_PATH, TRAE_RAW_CHAT_V2_PATH, TRAE_REASONING_EFFORTS, TRAE_SETTINGS_NS, TRAE_SOLO_CHAT_PATH, TRAE_SOLO_FUNCTION, TRAE_SOLO_MODELS_PATH, TRAE_SOLO_REMOTE_BASE, TRAE_SOLO_REMOTE_MODELS, TRAE_STREAM_IDLE_TIMEOUT_MS, TRAE_USAGE_PATH, TRAE_VERSION_CODE_FALLBACK, type TraeActivityRule, type TraeCachedModelConfig, TraeCatalog, type TraeChatResult, type TraeCheckinStatus, type TraeCredential, TraeCredentialStore, TraeDelegatingUpstreamClient, type TraeDiscoveredModel, type TraeDiscoveredReasoning, type TraeEdition, TraeFallbackUpstreamClient, type TraeFallbackUpstreamOptions, type TraeFusionRawChatEnvelope, TraeGatedUpstreamClient, type TraeGatedUpstreamOptions, type TraeIdentity, type TraeModelDetailRequest, type TraeModelInfo, type TraeObservedModelConfig, TraeRawCapabilityController, type TraeRawCapabilityControllerOptions, type TraeRawCapabilitySnapshot, TraeRawCapabilityState, type TraeRawChatBehaviorConfig, type TraeRawChatCapability, type TraeRawChatClientOptions, type TraeRawChatConfig, type TraeRawChatFailureReason, type TraeRawChatRuntimeConfig, TraeRawChatUpstreamClient, type TraeRawDiagnostic, type TraeRawDiagnosticState, type TraeRawGateway, type TraeRawGatewayOptions, type TraeRawResolverResult, type TraeReasoningCapability, type TraeReasoningEffort, type TraeShim, TraeSoloBridge, type TraeSoloClientOptions, TraeSoloRemoteBridge, TraeSoloRemoteClient, type TraeSoloRemoteOptions, TraeSoloUpstreamClient, type TraeStorageCandidate, type TraeStreamEvent, type TraeUpstreamClient, TraeUsageClient, type TraeUsageOptions, type TraeUsagePack, type TraeUsageRouteOptions, type TraeUsageSnapshot, type TraeUsageSummary, type TraeUsageView, type TraeWebActivity, type TraeWebCheckin, type TraeWebCredits, type TraeWebUsage, UnconfiguredTraeUpstreamClient, apply, applyReasoningEffort, bridgeTraeSoloStream, buildTraeAgentTaskBody, buildTraeCnHeaders, buildTraeFusionRawChatEnvelope, buildTraeModelDetailRequest, buildTraeRawChatDraft, buildTraeRawChatRuntimeConfig, classifyTraeRawChatFailure, createTraeAdapter, createTraeRawGateway, createTraeShim, decodeRawChatChunk, decodeTraeEvent, decryptTraeStorageValue, discoveredCatalog, hashTraeRawChatArg, identityHeaders, inject, name, normalizeTraeCredential, normalizeTraeVersionCode, parseObservedModelConfig, parseReasoningCapability, parseTraeAuthValue, parseTraeCachedModel, parseTraeModelExtraConfigLogLine, parseTraeRawChatBehaviorConfig, parseTraeRemoteModel, parseTraeStorageDocument, prepareSoloBody, probeTraeRawChatCapability, rawCapabilityDiagnostic, rawCapabilityFingerprint, readTraeCachedModel, readTraeIdentity, refreshTraeCredential, registerTraeUsageRoute, resolveTraeRawRuntime, traeEndpoint, traeOwnAuthPath, traeRawChatExtraInfo, traeStorageCandidates, traeWebUsage };
1034
+ export { Config, FALLBACK_TRAE_MODELS, type RawChatDelta, type RawChatMessage, type RawChatTool, SseDecoder, type SseEvent, TRAE_CN_AGENT_TASK_PATH, TRAE_CN_TITLE_PATH, TRAE_MODEL_DETAIL_FUNCTIONS, TRAE_MODEL_DETAIL_PATH, TRAE_PAY_BASE, TRAE_PROVIDER, TRAE_RAW_CHAT_V1_PATH, TRAE_RAW_CHAT_V2_PATH, TRAE_REASONING_EFFORTS, TRAE_SETTINGS_NS, TRAE_SOLO_CHAT_PATH, TRAE_SOLO_FUNCTION, TRAE_SOLO_MODELS_PATH, TRAE_SOLO_REMOTE_BASE, TRAE_STREAM_IDLE_TIMEOUT_MS, TRAE_USAGE_PATH, TRAE_VERSION_CODE_FALLBACK, type TraeActivityRule, type TraeCachedModelConfig, TraeCatalog, type TraeChatResult, type TraeCheckinStatus, type TraeContextBudget, type TraeCredential, TraeCredentialStore, TraeDelegatingUpstreamClient, type TraeDiscoveredModel, type TraeDiscoveredReasoning, type TraeEdition, TraeFallbackUpstreamClient, type TraeFallbackUpstreamOptions, type TraeFusionRawChatEnvelope, TraeGatedUpstreamClient, type TraeGatedUpstreamOptions, type TraeIdentity, type TraeInputModality, type TraeModelDetailRequest, type TraeModelInfo, type TraeObservedModelConfig, TraeRawCapabilityController, type TraeRawCapabilityControllerOptions, type TraeRawCapabilitySnapshot, TraeRawCapabilityState, type TraeRawChatBehaviorConfig, type TraeRawChatCapability, type TraeRawChatClientOptions, type TraeRawChatConfig, type TraeRawChatFailureReason, type TraeRawChatRuntimeConfig, TraeRawChatUpstreamClient, type TraeRawDiagnostic, type TraeRawDiagnosticState, type TraeRawGateway, type TraeRawGatewayOptions, type TraeRawResolverResult, type TraeReasoningCapability, type TraeReasoningEffort, type TraeShim, TraeSoloBridge, type TraeSoloClientOptions, TraeSoloRemoteCatalogClient, type TraeSoloRemoteCatalogOptions, TraeSoloUpstreamClient, type TraeStorageCandidate, type TraeStreamEvent, type TraeUpstreamClient, TraeUsageClient, type TraeUsageOptions, type TraeUsagePack, type TraeUsageRouteOptions, type TraeUsageSnapshot, type TraeUsageSummary, type TraeUsageView, type TraeWebActivity, type TraeWebCheckin, type TraeWebCredits, type TraeWebUsage, type TraeWireModel, UnconfiguredTraeUpstreamClient, apply, applyContextBudgets, applyImageSelection, applyReasoningEffort, bridgeTraeSoloStream, buildTraeAgentTaskBody, buildTraeCnHeaders, buildTraeFusionRawChatEnvelope, buildTraeModelDetailRequest, buildTraeRawChatDraft, buildTraeRawChatRuntimeConfig, classifyTraeRawChatFailure, createTraeAdapter, createTraeRawGateway, createTraeShim, decodeRawChatChunk, decodeTraeEvent, decryptTraeStorageValue, deriveCatalog, discoveredCatalog, hashTraeRawChatArg, identityHeaders, inject, mergeTraeModelSources, name, normalizeTraeCredential, normalizeTraeVersionCode, parseObservedModelConfig, parseReasoningCapability, parseTraeAuthValue, parseTraeCachedModel, parseTraeModelExtraConfigLogLine, parseTraeRawChatBehaviorConfig, parseTraeRemoteModel, parseTraeStorageDocument, prepareSoloBody, probeTraeRawChatCapability, rawCapabilityDiagnostic, rawCapabilityFingerprint, readTraeCachedModel, readTraeIdentity, refreshTraeCredential, registerTraeUsageRoute, resolveTraeRawRuntime, sanitizeCatalog, traeEndpoint, traeInputModalities, traeOwnAuthPath, traeRawChatExtraInfo, traeStorageCandidates, traeWebUsage };