dsh-connect-trae 3.9.2 → 3.10.1

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
@@ -507,6 +507,27 @@ interface TraeWebPool {
507
507
  * only outcome is a refusal.
508
508
  */
509
509
  checkinSupported: boolean;
510
+ /**
511
+ * Whether this panel offers the destructive per-row Delete at all.
512
+ *
513
+ * The client bundle updates on REFRESH but the Host only on RESTART, so a card
514
+ * shipping before the Host gains `deleteAccountOf` must hide the button rather
515
+ * than render one whose only outcome is a 503. Absent means the legacy Host
516
+ * predates the feature, and the destructive Delete is not offered.
517
+ */
518
+ deleteSupported?: boolean;
519
+ /**
520
+ * Where this panel's credential copies live, and how many the plugin holds.
521
+ *
522
+ * The user's recurring doubt is "there is no real copy file, it just follows
523
+ * the app" — which no amount of prose answers. Reporting the path and the count
524
+ * lets the card show the actual file, so "a copy exists" is something the user
525
+ * can verify on disk. Absent means a Host that predates this report.
526
+ */
527
+ copies?: {
528
+ path: string;
529
+ count: number;
530
+ };
510
531
  /** The model a test would use right now; absent when none can be resolved. */
511
532
  targetModelId?: string;
512
533
  /**
@@ -1474,6 +1495,10 @@ interface TraeAdapter {
1474
1495
  }
1475
1496
  declare function createTraeAdapter(options: TraeAdapterOptions): TraeAdapter;
1476
1497
  //#endregion
1498
+ //#region src/trae-process.d.ts
1499
+ /** Which editions' Electron apps are currently running, best effort. */
1500
+ type RunningProbe = () => Promise<ReadonlySet<TraeEdition>>;
1501
+ //#endregion
1477
1502
  //#region src/auth.d.ts
1478
1503
  interface TraeCredential {
1479
1504
  accessToken: string;
@@ -1548,6 +1573,11 @@ interface TraeCredentialStoreOptions {
1548
1573
  legacyOwnPath?: string;
1549
1574
  refresh: (credential: TraeCredential) => Promise<TraeRefreshOutcome>;
1550
1575
  refreshMarginMs?: number;
1576
+ /**
1577
+ * Which Trae desktop apps are running right now. Injectable so the deletion
1578
+ * tests never depend on the machine they run on; defaults to the real probe.
1579
+ */
1580
+ runningApps?: RunningProbe;
1551
1581
  }
1552
1582
  interface TraeAccountChoice {
1553
1583
  id: string;
@@ -1622,6 +1652,7 @@ declare class TraeCredentialStore {
1622
1652
  private readonly legacyOwnPathExplicit;
1623
1653
  private readonly refresh;
1624
1654
  private readonly refreshMarginMs;
1655
+ private readonly runningApps;
1625
1656
  private inflight;
1626
1657
  /**
1627
1658
  * In-flight refreshes of individual accounts, one per account id.
@@ -1674,6 +1705,39 @@ declare class TraeCredentialStore {
1674
1705
  * the real machine's legacy copy.
1675
1706
  */
1676
1707
  private ownCandidates;
1708
+ /**
1709
+ * Where the "deleted copy" tombstones live for this store.
1710
+ *
1711
+ * Derived from the store's own copy path, so a test that pins `ownPath` also
1712
+ * pins the tombstones and can never touch the real `~/.dsh` file.
1713
+ */
1714
+ deletedPath(): string;
1715
+ /**
1716
+ * The account ids whose copy the user deleted on purpose.
1717
+ *
1718
+ * Read defensively: a missing, unreadable, or hand-edited file means "no
1719
+ * tombstones", never a failing store — losing the list only re-mirrors an
1720
+ * account, it never locks the user out.
1721
+ */
1722
+ private readTombstones;
1723
+ private writeTombstones;
1724
+ /**
1725
+ * Copy every local Trae sign-in into this store's own file, once.
1726
+ *
1727
+ * The plugin presents COPIES, not the app's live login: the app has a single
1728
+ * sign-in slot that the next Trae login overwrites, so an account could only
1729
+ * ever be billed until the user switched apps. Keeping a copy per account is
1730
+ * what makes a multi-account pool survive those switches.
1731
+ *
1732
+ * This runs on every `accounts()` read — the card's refresh, the pool's member
1733
+ * read, the "detect accounts" press — and is additive:
1734
+ * - an account that already has a copy is left exactly as it is (the copy
1735
+ * may hold a token this plugin refreshed, which is fresher than the app's);
1736
+ * - an account the user DELETED stays deleted while it is still signed in to
1737
+ * the app, via a tombstone that is dropped once the app no longer holds it
1738
+ * (so a later sign-in is mirrored again).
1739
+ */
1740
+ private mirrorLocalLogins;
1677
1741
  setSource(storagePath: string | undefined, edition?: TraeEdition | 'auto', accountId?: string): void;
1678
1742
  selectAccount(accountId: string | undefined): void;
1679
1743
  candidates(): TraeStorageCandidate[];
@@ -1798,6 +1862,18 @@ declare class TraeCredentialStore {
1798
1862
  * fallback, for the same reason {@link current} refuses to fall back.
1799
1863
  */
1800
1864
  credentialOf(accountId: string): Promise<TraeCredential | undefined>;
1865
+ /**
1866
+ * The PLUGIN'S OWN COPY of one account — never the Trae app's credential.
1867
+ *
1868
+ * {@link credentialOf} answers from the merged view (copies plus the app's
1869
+ * logins) and prefers whichever is fresher. That is right for placing a
1870
+ * request, but wrong for HANDING CREDENTIALS OUT: an export must carry the
1871
+ * copies this plugin owns and refreshes, not whatever the app happens to have
1872
+ * on disk. The two are normally identical — the copy is mirrored from the app
1873
+ * — but only the copy is ours, and an account with no copy is not ours to
1874
+ * export at all (undefined, no fallback to the app's login).
1875
+ */
1876
+ copyOf(accountId: string): Promise<TraeCredential | undefined>;
1801
1877
  /**
1802
1878
  * A SPECIFIC account's credential, refreshed when its access token is due.
1803
1879
  *
@@ -1846,6 +1922,78 @@ declare class TraeCredentialStore {
1846
1922
  * plugin stored" action, not a per-account toggle.
1847
1923
  */
1848
1924
  logout(): Promise<void>;
1925
+ /**
1926
+ * Remove ONE account from the plugin-owned copy (per-region file, legacy
1927
+ * single file), where this store can rewrite the shape it wrote.
1928
+ *
1929
+ * The desktop storage files are deliberately untouched: their credential is
1930
+ * a Trae app login that only Trae can rewrite, so a plugin removing it would
1931
+ * corrupt an application state it does not own. `deleteAccount` therefore
1932
+ * only ever commits what this plugin persisted — the refreshed copy the
1933
+ * store owns — and reports what it did.
1934
+ *
1935
+ * `stillSignedIn` is true when the SAME account id still resolves to a
1936
+ * desktop storage copy, i.e. the account will keep appearing (from Trae's own
1937
+ * login) even after the plugin's copy is gone. The card then shows the user
1938
+ * where the account really lives instead of implying a deletion that did not
1939
+ * take: the account is still signed in Trae, and Trae is the only writer that
1940
+ * can remove it.
1941
+ *
1942
+ * @returns `{ deleted: boolean; stillSignedIn: boolean }` — `deleted` is
1943
+ * whether a plugin-owned copy of this account was actually removed;
1944
+ * `stillSignedIn` reports a TRAE-owned login that survives it.
1945
+ */
1946
+ /**
1947
+ * Erases this account's login from Trae's OWN storage files.
1948
+ *
1949
+ * Deleting only the plugin's copy of an account the app itself is signed in to
1950
+ * changes nothing the user can see: the app keeps reporting the account, the
1951
+ * row comes back on the next poll, and "delete" looks broken. The only real
1952
+ * deletion therefore has to rewrite the app's `storage.json`, which means
1953
+ * (a) re-encrypting the values that stay, with Trae's own scheme, and (b)
1954
+ * refusing while that app runs — its in-memory state would be flushed back
1955
+ * over the file and undo the edit.
1956
+ *
1957
+ * A backup of every rewritten file is left beside it (`.dsh-backup-<stamp>`),
1958
+ * because signing a user's editor out is not something to do without a way back.
1959
+ */
1960
+ deleteDesktopLogins(accountId: string): Promise<{
1961
+ signedOut: TraeEdition[];
1962
+ blocked: TraeEdition[];
1963
+ }>;
1964
+ /**
1965
+ * Delete this store's COPY of one account.
1966
+ *
1967
+ * What the plugin shows and bills is the copy, so that is the first thing
1968
+ * "delete" removes. The copy alone is not enough: the same login usually also
1969
+ * lives in the app's own `storage.json`, and the app keeps reporting it, so
1970
+ * the delete then erases that login too (see `deleteDesktopLogins`, which
1971
+ * refuses while the app runs and leaves a backup beside every file it
1972
+ * rewrites).
1973
+ *
1974
+ * The catch is the mirror: `accounts()` recreates a copy from any local login
1975
+ * that lacks one, so deleting the copy of an account still signed in to Trae
1976
+ * would resurrect it on the next poll. A TOMBSTONE records the deletion for
1977
+ * exactly that id; the mirror skips it while the app still holds the login and
1978
+ * drops the tombstone once it does not, so signing in again later mirrors it
1979
+ * again. That is why `stillSignedIn` is reported: it explains that the account
1980
+ * still lives in Trae even though the plugin no longer shows it.
1981
+ *
1982
+ * @returns `{ deleted, stillSignedIn, hadCopy, signedOutApps, blockedApps }` —
1983
+ * `deleted` is "this machine no longer carries the account anywhere" (true
1984
+ * even when there was never a copy, so a ghost member can be cleared);
1985
+ * `stillSignedIn` answers "is it still a live Trae login here?"; `hadCopy` is
1986
+ * "did a file actually change?"; `signedOutApps` names the apps whose login
1987
+ * was erased; `blockedApps` names the apps that were running, in which case
1988
+ * nothing was erased and `deleted` is false.
1989
+ */
1990
+ deleteAccount(accountId: string): Promise<{
1991
+ deleted: boolean;
1992
+ stillSignedIn: boolean;
1993
+ hadCopy: boolean;
1994
+ signedOutApps: TraeEdition[];
1995
+ blockedApps: TraeEdition[];
1996
+ }>;
1849
1997
  /**
1850
1998
  * Every local credential of this store's region, deduplicated by account id.
1851
1999
  * A region-scoped store sees only its own region's credentials: the other
@@ -2673,6 +2821,31 @@ interface TraeWireTarget {
2673
2821
  }
2674
2822
  /** Resolves a display model id to its wire target (config_name + function). */
2675
2823
  type TraeWireResolver = (displayId: string) => TraeWireTarget | undefined;
2824
+ /**
2825
+ * The startup wire map for one region's merged directory.
2826
+ *
2827
+ * EVERY row is registered, not only the ones whose wire config_name differs
2828
+ * from the display id. The runtime catalog is filtered by `enabledModelIds`, so
2829
+ * a pool that targets a model the user never enabled for chat would otherwise
2830
+ * reach the bridge with no catalog row AND no mapping — and the request would
2831
+ * carry the raw id under the DEFAULT function, which answers `4001 config_name
2832
+ * rejected` (Doubao-Seed-Code is served only by `solo_agent_remote`;
2833
+ * `solo_work_lite` rejects it). The identity mapping is what keeps the
2834
+ * discovered function alive for those ids.
2835
+ *
2836
+ * First row wins a display name: two directory ids can share one (`Seed-Code`),
2837
+ * and overwriting would answer with the later row's config_name. Ids are
2838
+ * unique, so `byId` needs no such guard.
2839
+ */
2840
+ declare function wireTargetsOf(models: readonly {
2841
+ id: string;
2842
+ name: string;
2843
+ wireConfigName?: string;
2844
+ wireFunction?: string;
2845
+ }[]): {
2846
+ byId: Map<string, TraeWireTarget>;
2847
+ byName: Map<string, TraeWireTarget>;
2848
+ };
2676
2849
  /** Native SOLO client wrapper used by the loopback OpenAI adapter. */
2677
2850
  declare class TraeSoloBridge implements TraeUpstreamClient {
2678
2851
  private readonly upstream;
@@ -3187,6 +3360,28 @@ interface TraeUsageRouteOptions {
3187
3360
  * exhausted-account hint is simply not offered.
3188
3361
  */
3189
3362
  creditsOfAccount?(panel: TraePanel, accountId: string): Promise<TraeWebCredits | undefined>;
3363
+ /**
3364
+ * Remove ONE account's plugin-owned credential copy, leaving Trae's own login
3365
+ * untouched, and report whether the account still signed in to Trae (which the
3366
+ * card must echo as "sign out in Trae", not as a deletion that failed).
3367
+ * Optional: absent means the pool table's destructive action is not offered.
3368
+ */
3369
+ deleteAccountOf?(panel: TraePanel, accountId: string): Promise<{
3370
+ deleted: boolean;
3371
+ stillSignedIn: boolean;
3372
+ hadCopy?: boolean;
3373
+ signedOutApps?: readonly string[];
3374
+ blockedApps?: readonly string[];
3375
+ }>;
3376
+ /**
3377
+ * Where the panel's credential copies live and how many there are, so the card
3378
+ * can name the file instead of asserting "a copy exists". Optional: absent
3379
+ * means the card says nothing about the file.
3380
+ */
3381
+ copiesOf?(panel: TraePanel): Promise<{
3382
+ path: string;
3383
+ count: number;
3384
+ } | undefined>;
3190
3385
  /**
3191
3386
  * Per-account status for one row of the card's account table: CN → check-in
3192
3387
  * + balances, ai → subscription. Read without changing which account is
@@ -3531,4 +3726,4 @@ declare function asVolatile<S>(schema: S): S;
3531
3726
  declare const Config: z<Config>;
3532
3727
  declare function apply(ctx: Context$1, config: Config): void;
3533
3728
  //#endregion
3534
- export { Config, FALLBACK_TRAE_MODELS, FALLBACK_TRAE_MODELS_AI, MAX_PROBE_INPUT_TOKENS, type PiAiGeneration, type PiAiRuntimeInfo, REGION_GATEWAYS, type RawChatDelta, type RawChatMessage, type RawChatTool, SseDecoder, type SseEvent, TRAE_ACCOUNT_STATUS_PATH, TRAE_AI_PROVIDER, TRAE_CHECKIN_PATH, TRAE_CN_AGENT_TASK_PATH, TRAE_CN_TITLE_PATH, TRAE_ENTERPRISE_PROVIDER, TRAE_MODELS_TEST_PATH, TRAE_MODEL_DETAIL_FUNCTIONS, TRAE_MODEL_DETAIL_PATH, TRAE_PANELS, TRAE_PAY_BASE, TRAE_PROBE_TIMEOUT_MS, TRAE_PROVIDER, TRAE_PROVIDERS, TRAE_PROVIDER_DISPLAY_NAMES, TRAE_PROVIDER_IDS, TRAE_PROVIDER_ID_DISPLAY_NAMES, TRAE_PROVIDER_ROUTES, TRAE_RAW_CHAT_V1_PATH, TRAE_RAW_CHAT_V2_PATH, TRAE_REASONING_EFFORTS, TRAE_REGIONS, TRAE_REGION_PARAM, TRAE_SETTINGS_NS, TRAE_SOLO_CHAT_PATH, TRAE_SOLO_FUNCTION, TRAE_SOLO_MODELS_PATH, TRAE_SOLO_REMOTE_BASE, TRAE_STATE_DB_FILENAME, TRAE_STREAM_IDLE_TIMEOUT_MS, TRAE_USAGE_PATH, TRAE_VERSION_CODE_FALLBACK, type TraeActivityRule, type TraeAdapter, type TraeCachedModelConfig, TraeCatalog, type TraeChatResult, type TraeCheckinClaim, type TraeCheckinStatus, type TraeContextBudget, type TraeCredential, TraeCredentialStore, TraeDelegatingUpstreamClient, type TraeDiscoveredModel, type TraeDiscoveredReasoning, type TraeEdition, type TraeFailure, TraeFallbackUpstreamClient, type TraeFallbackUpstreamOptions, type TraeFusionRawChatEnvelope, TraeGatedUpstreamClient, type TraeGatedUpstreamOptions, type TraeIdentity, type TraeInputModality, type TraeModelDetailRequest, type TraeModelInfo, type TraeModelProbeVerdict, type TraeModelsTestResponse, type TraeObservedModelConfig, type TraePanel, type TraeProbeResult, type TraeProbeVerdict, type TraeProviderRoute, 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 TraeRefreshDevice, type TraeRegion, type TraeRegionGateways, TraeRegionState, 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 TraeWebAccountState, type TraeWebActivity, type TraeWebAppLogin, type TraeWebCheckin, type TraeWebCheckinClaim, type TraeWebCredits, type TraeWebUsage, type TraeWireModel, UnconfiguredTraeUpstreamClient, adaptLegacyPiAiContext, adaptModernPiAiContext, apply, applyContextBudgets, applyImageSelection, applyReasoningEffort, asVolatile, bridgeTraeSoloStream, buildTraeAgentTaskBody, buildTraeCnHeaders, buildTraeFusionRawChatEnvelope, buildTraeModelDetailRequest, buildTraeRawChatDraft, buildTraeRawChatRuntimeConfig, classifyProbeError, classifyProbeResult, classifyTraeRawChatFailure, configuredAccountsOf, createTraeAdapter, createTraeRawGateway, createTraeShim, creditPosition, decidePiAiGeneration, decodeRawChatChunk, decodeTraeEvent, decryptTraeStorageValue, deriveCatalog, describeIdShape, describeNameShape, describeTraeFailure, discoveredCatalog, displayNameOfTraeProvider, fallbackModelsFor, followAppLoginEnabled, generationOf, hashTraeRawChatArg, identityHeaders, inject, isEnterpriseAccount, legacyTraeOwnAuthPath, maskUserPath, mergeTraeModelSources, name, nextRegionCreditPosition, nextRegionEnabled, nextRegionSlots, normalizeTraeCredential, normalizeTraeVersionCode, panelOfKey, panelOfProvider, parseObservedModelConfig, parseReasoningCapability, parseTraeAuthValue, parseTraeCachedModel, parseTraeModelExtraConfigLogLine, parseTraeRawChatBehaviorConfig, parseTraeRemoteModel, parseTraeStorageDocument, piAiRuntimeInfo, pickTraeStorageIdentity, prepareSoloBody, probeBody, probeModelsSequentially, probeOneModel, probeTraeRawChatCapability, providerOfPanel, rawCapabilityDiagnostic, rawCapabilityFingerprint, readTraeCachedModel, readTraeCliIdentity, readTraeIdentity, refreshTraeCredential, regionCreditPositionOf, regionEnabled, regionEnabledOf, regionOfCredential, regionOfEdition, regionOfHost, regionOfPanel, regionOfTraeProvider, regionOfTraeStatusUrl, regionOfUserRegion, regionStateOf, registerTraeUsageRoute, resolveTraeIdentity, resolveTraeRawRuntime, routeOfTraeProvider, sanitizeCatalog, settingsNamespaceOf, traeEndpoint, traeInputModalities, traeModelDisplayName, traeOwnAuthPath, traeRawChatExtraInfo, traeStateDatabaseCandidates, traeStorageCandidates, traeWebUsage, traeWindowsAppNames, unwrapVolatile, unwrapVolatileDeep, withContextAdaptation, withTraeRegion };
3729
+ export { Config, FALLBACK_TRAE_MODELS, FALLBACK_TRAE_MODELS_AI, MAX_PROBE_INPUT_TOKENS, type PiAiGeneration, type PiAiRuntimeInfo, REGION_GATEWAYS, type RawChatDelta, type RawChatMessage, type RawChatTool, SseDecoder, type SseEvent, TRAE_ACCOUNT_STATUS_PATH, TRAE_AI_PROVIDER, TRAE_CHECKIN_PATH, TRAE_CN_AGENT_TASK_PATH, TRAE_CN_TITLE_PATH, TRAE_ENTERPRISE_PROVIDER, TRAE_MODELS_TEST_PATH, TRAE_MODEL_DETAIL_FUNCTIONS, TRAE_MODEL_DETAIL_PATH, TRAE_PANELS, TRAE_PAY_BASE, TRAE_PROBE_TIMEOUT_MS, TRAE_PROVIDER, TRAE_PROVIDERS, TRAE_PROVIDER_DISPLAY_NAMES, TRAE_PROVIDER_IDS, TRAE_PROVIDER_ID_DISPLAY_NAMES, TRAE_PROVIDER_ROUTES, TRAE_RAW_CHAT_V1_PATH, TRAE_RAW_CHAT_V2_PATH, TRAE_REASONING_EFFORTS, TRAE_REGIONS, TRAE_REGION_PARAM, TRAE_SETTINGS_NS, TRAE_SOLO_CHAT_PATH, TRAE_SOLO_FUNCTION, TRAE_SOLO_MODELS_PATH, TRAE_SOLO_REMOTE_BASE, TRAE_STATE_DB_FILENAME, TRAE_STREAM_IDLE_TIMEOUT_MS, TRAE_USAGE_PATH, TRAE_VERSION_CODE_FALLBACK, type TraeActivityRule, type TraeAdapter, type TraeCachedModelConfig, TraeCatalog, type TraeChatResult, type TraeCheckinClaim, type TraeCheckinStatus, type TraeContextBudget, type TraeCredential, TraeCredentialStore, TraeDelegatingUpstreamClient, type TraeDiscoveredModel, type TraeDiscoveredReasoning, type TraeEdition, type TraeFailure, TraeFallbackUpstreamClient, type TraeFallbackUpstreamOptions, type TraeFusionRawChatEnvelope, TraeGatedUpstreamClient, type TraeGatedUpstreamOptions, type TraeIdentity, type TraeInputModality, type TraeModelDetailRequest, type TraeModelInfo, type TraeModelProbeVerdict, type TraeModelsTestResponse, type TraeObservedModelConfig, type TraePanel, type TraeProbeResult, type TraeProbeVerdict, type TraeProviderRoute, 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 TraeRefreshDevice, type TraeRegion, type TraeRegionGateways, TraeRegionState, 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 TraeWebAccountState, type TraeWebActivity, type TraeWebAppLogin, type TraeWebCheckin, type TraeWebCheckinClaim, type TraeWebCredits, type TraeWebUsage, type TraeWireModel, type TraeWireTarget, UnconfiguredTraeUpstreamClient, adaptLegacyPiAiContext, adaptModernPiAiContext, apply, applyContextBudgets, applyImageSelection, applyReasoningEffort, asVolatile, bridgeTraeSoloStream, buildTraeAgentTaskBody, buildTraeCnHeaders, buildTraeFusionRawChatEnvelope, buildTraeModelDetailRequest, buildTraeRawChatDraft, buildTraeRawChatRuntimeConfig, classifyProbeError, classifyProbeResult, classifyTraeRawChatFailure, configuredAccountsOf, createTraeAdapter, createTraeRawGateway, createTraeShim, creditPosition, decidePiAiGeneration, decodeRawChatChunk, decodeTraeEvent, decryptTraeStorageValue, deriveCatalog, describeIdShape, describeNameShape, describeTraeFailure, discoveredCatalog, displayNameOfTraeProvider, fallbackModelsFor, followAppLoginEnabled, generationOf, hashTraeRawChatArg, identityHeaders, inject, isEnterpriseAccount, legacyTraeOwnAuthPath, maskUserPath, mergeTraeModelSources, name, nextRegionCreditPosition, nextRegionEnabled, nextRegionSlots, normalizeTraeCredential, normalizeTraeVersionCode, panelOfKey, panelOfProvider, parseObservedModelConfig, parseReasoningCapability, parseTraeAuthValue, parseTraeCachedModel, parseTraeModelExtraConfigLogLine, parseTraeRawChatBehaviorConfig, parseTraeRemoteModel, parseTraeStorageDocument, piAiRuntimeInfo, pickTraeStorageIdentity, prepareSoloBody, probeBody, probeModelsSequentially, probeOneModel, probeTraeRawChatCapability, providerOfPanel, rawCapabilityDiagnostic, rawCapabilityFingerprint, readTraeCachedModel, readTraeCliIdentity, readTraeIdentity, refreshTraeCredential, regionCreditPositionOf, regionEnabled, regionEnabledOf, regionOfCredential, regionOfEdition, regionOfHost, regionOfPanel, regionOfTraeProvider, regionOfTraeStatusUrl, regionOfUserRegion, regionStateOf, registerTraeUsageRoute, resolveTraeIdentity, resolveTraeRawRuntime, routeOfTraeProvider, sanitizeCatalog, settingsNamespaceOf, traeEndpoint, traeInputModalities, traeModelDisplayName, traeOwnAuthPath, traeRawChatExtraInfo, traeStateDatabaseCandidates, traeStorageCandidates, traeWebUsage, traeWindowsAppNames, unwrapVolatile, unwrapVolatileDeep, wireTargetsOf, withContextAdaptation, withTraeRegion };