deepseek-coordination 0.10.0 → 0.11.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/README.md +52 -25
- package/README.zh-CN.md +51 -24
- package/lib/client.js +207 -1524
- package/lib/index.d.mts +67 -1
- package/lib/index.mjs +860 -122
- package/package.json +11 -11
package/lib/index.d.mts
CHANGED
|
@@ -244,9 +244,75 @@ interface CoordinationConfig {
|
|
|
244
244
|
}
|
|
245
245
|
declare const Config: Schema<CoordinationConfig>;
|
|
246
246
|
//#endregion
|
|
247
|
+
//#region src/host/model-brand.d.ts
|
|
248
|
+
/**
|
|
249
|
+
* Brand cache profiles — built-in policy for the mainstream model families.
|
|
250
|
+
*
|
|
251
|
+
* The harness owns the model catalog (`ctx.llm.resolveModelInfo(provider, model)`
|
|
252
|
+
* returns `{ provider, id, name, description, reasoning }`), but it does not say
|
|
253
|
+
* how each family caches prompts. This module turns the host's identity fields
|
|
254
|
+
* into one of a small set of known cache behaviours, so the proxy can reason
|
|
255
|
+
* about a model instead of guessing from the provider route alone.
|
|
256
|
+
*
|
|
257
|
+
* What the profile means, and what it does not:
|
|
258
|
+
*
|
|
259
|
+
* - `automaticPrefixCache` — the provider caches a stable prompt prefix on its
|
|
260
|
+
* own, with no request marker. When true the only useful local lever is
|
|
261
|
+
* keeping that prefix byte-stable.
|
|
262
|
+
* - `explicitCacheBreakpoints` — the provider needs cache markers inside the
|
|
263
|
+
* request. This plugin cannot emit them (they are adapter/wire territory), so
|
|
264
|
+
* the profile says so instead of pretending an optimization exists.
|
|
265
|
+
* - `minPrefixTokens` — the documented (or conservatively assumed) prefix size
|
|
266
|
+
* below which the provider does not cache at all.
|
|
267
|
+
* - `effortBreaksCache` — whether changing `reasoningEffort` invalidates the
|
|
268
|
+
* cached prefix for this family.
|
|
269
|
+
* - `stripVolatileHelps` — whether removing volatile fragments (timestamps,
|
|
270
|
+
* UUIDs, long hex) from outbound text can improve reuse. False for explicit
|
|
271
|
+
* caching, where markers, not bytes, decide reuse.
|
|
272
|
+
*
|
|
273
|
+
* The numbers are policy defaults, never measurements: each profile carries the
|
|
274
|
+
* note the UI shows, and an unknown family gets the conservative row.
|
|
275
|
+
*/
|
|
276
|
+
/** Model family the cache policy knows about. */
|
|
277
|
+
type ModelBrand = 'deepseek' | 'openai' | 'anthropic' | 'google' | 'xai' | 'moonshot' | 'qwen' | 'zhipu' | 'mistral' | 'meta' | 'unknown';
|
|
278
|
+
//#endregion
|
|
247
279
|
//#region src/index.d.ts
|
|
248
280
|
declare const name = "deepseek-coordination";
|
|
249
281
|
declare const inject: string[];
|
|
282
|
+
/**
|
|
283
|
+
* Structural status of the proxy, exposed read-only to the host.
|
|
284
|
+
*
|
|
285
|
+
* Counts and identities only: no prompt, no answer, no tool payload, no
|
|
286
|
+
* credential ever reaches this object. It is the observability half of the
|
|
287
|
+
* proxy's security model — the host can see that it runs, not what it saw.
|
|
288
|
+
*/
|
|
289
|
+
interface CacheProxyStatus {
|
|
290
|
+
available: boolean;
|
|
291
|
+
enabled: boolean;
|
|
292
|
+
provider: string;
|
|
293
|
+
upstream?: {
|
|
294
|
+
provider: string;
|
|
295
|
+
model?: string;
|
|
296
|
+
};
|
|
297
|
+
/** Host-reported model identity mapped onto a built-in cache brand. */
|
|
298
|
+
model?: {
|
|
299
|
+
brand: ModelBrand;
|
|
300
|
+
label: string;
|
|
301
|
+
automaticPrefixCache: boolean;
|
|
302
|
+
explicitCacheBreakpoints: boolean;
|
|
303
|
+
minPrefixTokens: number;
|
|
304
|
+
effortBreaksCache: boolean;
|
|
305
|
+
stripVolatileHelps: boolean;
|
|
306
|
+
note: string;
|
|
307
|
+
};
|
|
308
|
+
forwards: number;
|
|
309
|
+
refusals: number;
|
|
310
|
+
lastForwardAt?: string;
|
|
311
|
+
/** True when the wiring supplies a content decorator (brand-gated per call). */
|
|
312
|
+
decorate: boolean;
|
|
313
|
+
}
|
|
314
|
+
/** The status snapshot handed to `GET /proxy/status`. */
|
|
315
|
+
declare function cacheProxyStatus(): Readonly<CacheProxyStatus>;
|
|
250
316
|
declare function apply(context: Context, configInput?: Partial<CoordinationConfig>): void;
|
|
251
317
|
//#endregion
|
|
252
|
-
export { Config, apply, inject, name };
|
|
318
|
+
export { Config, apply, cacheProxyStatus, inject, name };
|