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