dsh-provider-qoder 0.2.0 → 0.3.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
@@ -1,6 +1,7 @@
1
1
  import z from "@deepseek-ai/schemastery";
2
+ import { GenerateOptions, StreamChunk } from "@deepseek-ai/dsh-llm";
3
+ import { WebSearchProvider, WebSearchRequest, WebSearchResult } from "@deepseek-ai/dsh-web";
2
4
  import { Context } from "@deepseek-ai/cordis";
3
-
4
5
  //#region src/qoder/catalog.d.ts
5
6
  /** Browser-safe Qoder model catalog types and built-in fallback entries. */
6
7
  interface QoderCatalogModel {
@@ -38,12 +39,16 @@ interface QoderModelsByRegion {
38
39
  global?: QoderCatalogModel[];
39
40
  china?: QoderCatalogModel[];
40
41
  }
42
+ type QoderWebSearchMode = 'auto' | 'always' | 'disabled';
41
43
  interface Config {
42
44
  region?: QoderRegion;
43
45
  modelsByRegion?: QoderModelsByRegion;
44
46
  /** @deprecated Migrated to modelsByRegion for the selected region. */
45
47
  models?: QoderCatalogModel[];
46
48
  streamIdleTimeoutMs?: number;
49
+ responseHeaderTimeoutMs?: number;
50
+ preserveThinking?: boolean;
51
+ webSearchMode?: QoderWebSearchMode;
47
52
  }
48
53
  declare const Config: z<Config>;
49
54
  //#endregion
@@ -66,9 +71,37 @@ interface QoderQuota {
66
71
  percentage: number;
67
72
  unit: string;
68
73
  }
74
+ /**
75
+ * Provider copy carried verbatim across the host/client seam.
76
+ *
77
+ * The host has no browser language, so it never picks one: the language map
78
+ * travels intact and the client resolves it against the active UI locale.
79
+ */
80
+ interface QoderLocalizedText {
81
+ /** Language tag (e.g. 'zh-CN', 'en-US') to copy. */
82
+ values: Readonly<Record<string, string>>;
83
+ /** Provider copy that carries no language tag; empty when absent. */
84
+ fallback: string;
85
+ }
86
+ /** One dedicated (entitlement-scoped) resource package carved out of the plan. */
87
+ interface QoderResourcePackage {
88
+ id?: string;
89
+ title?: QoderLocalizedText;
90
+ description?: QoderLocalizedText;
91
+ total: number;
92
+ used: number;
93
+ remaining: number;
94
+ percentage: number;
95
+ unit: string;
96
+ /** Package expiry, distinct from the usage-level subscription expiry. */
97
+ expiresAt?: string;
98
+ available?: boolean;
99
+ status?: string;
100
+ }
69
101
  interface QoderQuotaUsage {
70
102
  userQuota?: QoderQuota;
71
103
  orgResourcePackage?: QoderQuota;
104
+ dedicatedResourcePackages?: QoderResourcePackage[];
72
105
  totalUsagePercentage?: number;
73
106
  isQuotaExceeded?: boolean;
74
107
  expiresAt?: string;
@@ -114,4 +147,82 @@ interface QoderAccountInfo {
114
147
  updatedAt: string;
115
148
  }
116
149
  //#endregion
117
- export { Config, type QoderAccountInfo, type QoderCatalogModel, type QoderModelsByRegion, type QoderRegion, apply, inject, name };
150
+ //#region src/qoder/transport/logging.d.ts
151
+ /** Bounded, redacted diagnostics internal to the Qoder transport. */
152
+ interface QoderLogger {
153
+ debug?(message: string, ...details: unknown[]): void;
154
+ warn?(message: string, ...details: unknown[]): void;
155
+ error?(message: string, ...details: unknown[]): void;
156
+ }
157
+ //#endregion
158
+ //#region src/qoder/transport/endpoints.d.ts
159
+ /** Path of the center web search route. */
160
+ declare const qoderWebSearchPath = "/api/v1/webSearch/oneSearch";
161
+ declare function getQoderWebSearchUrl(region?: QoderRegion): string;
162
+ //#endregion
163
+ //#region src/qoder/transport/wire/cosy.d.ts
164
+ interface CosyCredentials {
165
+ userID: string;
166
+ authToken: string;
167
+ name: string;
168
+ email: string;
169
+ machineID?: string;
170
+ }
171
+ //#endregion
172
+ //#region src/qoder/transport/search.d.ts
173
+ interface QoderSearchClientOptions {
174
+ fetch?: typeof fetch;
175
+ region?: QoderRegion;
176
+ logger?: QoderLogger;
177
+ timeoutMs?: number;
178
+ resolveCredentials: (signal?: AbortSignal) => Promise<CosyCredentials>;
179
+ refreshCredentials?: (signal?: AbortSignal) => Promise<CosyCredentials>;
180
+ now?: () => number;
181
+ }
182
+ declare class QoderSearchClient {
183
+ private readonly fetchImpl;
184
+ private readonly region;
185
+ private readonly logger?;
186
+ private readonly timeoutMs;
187
+ private readonly resolveCredentials;
188
+ private readonly refreshCredentials?;
189
+ private readonly now;
190
+ constructor(options: QoderSearchClientOptions);
191
+ search(request: WebSearchRequest, signal?: AbortSignal): Promise<WebSearchResult>;
192
+ private attempt;
193
+ }
194
+ //#endregion
195
+ //#region src/qoder/transport/index.d.ts
196
+ interface QoderTransport {
197
+ stream(options: GenerateOptions, model?: QoderCatalogModel): AsyncIterable<StreamChunk>;
198
+ discoverModels(signal?: AbortSignal): Promise<readonly QoderCatalogModel[]>;
199
+ readAccount(options?: {
200
+ force?: boolean;
201
+ signal?: AbortSignal;
202
+ }): Promise<QoderAccountInfo>;
203
+ searchWeb(request: WebSearchRequest, signal?: AbortSignal): Promise<WebSearchResult>;
204
+ }
205
+ //#endregion
206
+ //#region src/dsh/search-provider.d.ts
207
+ declare const QODER_SEARCH_PROVIDER_ID = "qoder";
208
+ interface QoderSearchProviderOptions {
209
+ ctx: Context;
210
+ resolveTransport?: () => QoderTransport;
211
+ searchClient?: QoderSearchClient;
212
+ getWebSearchMode: () => QoderWebSearchMode;
213
+ fallbackProvider?: WebSearchProvider;
214
+ }
215
+ declare class QoderSearchProvider implements WebSearchProvider {
216
+ readonly id = "qoder";
217
+ private readonly ctx;
218
+ private readonly resolveTransport?;
219
+ private readonly searchClient?;
220
+ private readonly getWebSearchMode;
221
+ private readonly fallbackProvider?;
222
+ constructor(options: QoderSearchProviderOptions);
223
+ available(): boolean;
224
+ search(request: WebSearchRequest, signal?: AbortSignal): Promise<WebSearchResult>;
225
+ private resolveFallback;
226
+ }
227
+ //#endregion
228
+ export { Config, QODER_SEARCH_PROVIDER_ID, type QoderAccountInfo, type QoderCatalogModel, type QoderModelsByRegion, type QoderRegion, QoderSearchClient, type QoderSearchClientOptions, QoderSearchProvider, type QoderSearchProviderOptions, type QoderWebSearchMode, apply, getQoderWebSearchUrl, inject, name, qoderWebSearchPath };