@toddzheng024/dscode-bundle 0.7.26 → 0.7.28
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 +1 -1
- package/THIRD_PARTY_NOTICES.md +10 -10
- package/bootstrap.mjs +1 -1
- package/cordis.patch.yml +418 -45
- package/package.json +279 -245
- package/plugins/auto-review/index.mjs +8 -5
- package/plugins/code-review/index.mjs +1 -1
- package/plugins/computer-use/index.mjs +37 -0
- package/plugins/cordis-config/plain.mjs +31 -0
- package/plugins/exec/cli.mjs +1 -1
- package/plugins/grok/index.mjs +28 -24
- package/plugins/memory/index.mjs +1 -1
- package/plugins/message-source/kind.mjs +20 -0
- package/plugins/openrouter/adapter.mjs +29 -13
- package/plugins/openrouter/index.mjs +31 -28
- package/plugins/session-bridge/communication.mjs +6 -3
- package/plugins/session-bridge/server.mjs +3 -2
- package/plugins/session-bridge/tasks.mjs +3 -1
- package/plugins/session-cards/index.mjs +1 -1
- package/plugins/time-marks/index.mjs +3 -2
- package/plugins/time-marks/marks.mjs +6 -5
- package/plugins/triggers/config.mjs +1 -1
- package/plugins/triggers/tools.mjs +1 -1
- package/plugins/tui-tools/doctor.mjs +1 -1
- package/plugins/tui-tools/index.mjs +16 -4
- package/plugins/ultra/policy.mjs +16 -0
- package/vendor/bash/index.js +455 -186
- package/vendor/bash/types/background.d.ts +38 -7
- package/vendor/bash/types/index.d.ts +20 -4
- package/vendor/bash/types/render.d.ts +28 -9
- package/vendor/command-goal/index.js +3 -1
- package/vendor/deepseek/index.js +1378 -1246
- package/vendor/deepseek/types/adapter.d.ts +16 -155
- package/vendor/deepseek/types/config.d.ts +127 -0
- package/vendor/deepseek/types/defaults.d.ts +24 -0
- package/vendor/deepseek/types/file-store.d.ts +5 -3
- package/vendor/deepseek/types/files-api.d.ts +12 -9
- package/vendor/deepseek/types/image-tokens.d.ts +24 -9
- package/vendor/deepseek/types/images.d.ts +35 -0
- package/vendor/deepseek/types/index.d.ts +10 -94
- package/vendor/deepseek/types/messages-api.d.ts +10 -0
- package/vendor/deepseek/types/model-info.d.ts +16 -0
- package/vendor/deepseek/types/models.d.ts +4 -0
- package/vendor/deepseek/types/replay.d.ts +27 -0
- package/vendor/deepseek/types/request-extensions.d.ts +16 -0
- package/vendor/deepseek/types/request-files.d.ts +49 -0
- package/vendor/deepseek/types/request-pricing.d.ts +32 -20
- package/vendor/deepseek/types/serialize.d.ts +17 -82
- package/vendor/deepseek/types/sse.d.ts +6 -22
- package/vendor/deepseek/types/translate.d.ts +13 -36
- package/vendor/deepseek/types/transport.d.ts +15 -0
- package/vendor/deepseek/types/types.d.ts +106 -167
- package/vendor/deepseek/types/wire-types.d.ts +62 -0
- package/vendor/persistent/index.js +9 -3
- package/vendor/subagent/index.js +11 -8
- package/vendor/subagent/model-selection-settings.js +12 -38
- package/vendor/subagent/types/index.d.ts +4 -3
- package/vendor/subagent/types/model-selection-settings.d.ts +12 -10
- package/vendor/subagent-core/index.js +401 -264
- package/vendor/subagent-core/typert.host.js +103 -113
- package/vendor/subagent-core/typert.remote-client.d.ts +1 -3
- package/vendor/subagent-core/typert.remote-client.js +23 -69
- package/vendor/subagent-core/types/archive-admission.d.ts +16 -0
- package/vendor/subagent-core/types/archive-admission.js +151 -0
- package/vendor/subagent-core/types/assistant-output.d.ts +2 -2
- package/vendor/subagent-core/types/catalog.d.ts +17 -10
- package/vendor/subagent-core/types/catalog.js +12 -6
- package/vendor/subagent-core/types/child-agent.d.ts +8 -5
- package/vendor/subagent-core/types/child-agent.js +11 -5
- package/vendor/subagent-core/types/continuation-activation.d.ts +17 -1
- package/vendor/subagent-core/types/continuation-activation.js +41 -4
- package/vendor/subagent-core/types/continuation-messages.d.ts +1 -1
- package/vendor/subagent-core/types/continuation-messages.js +7 -3
- package/vendor/subagent-core/types/continuation.d.ts +1 -1
- package/vendor/subagent-core/types/continuation.js +2 -2
- package/vendor/subagent-core/types/control-types.d.ts +29 -36
- package/vendor/subagent-core/types/control-types.js +2 -3
- package/vendor/subagent-core/types/control.d.ts +2 -28
- package/vendor/subagent-core/types/control.js +3 -40
- package/vendor/subagent-core/types/index.d.ts +45 -41
- package/vendor/subagent-core/types/index.js +46 -82
- package/vendor/subagent-core/types/internal.d.ts +2 -2
- package/vendor/subagent-core/types/internal.js +2 -2
- package/vendor/subagent-core/types/lifecycle.d.ts +1 -1
- package/vendor/subagent-core/types/lifecycle.js +5 -3
- package/vendor/subagent-core/types/list-children.d.ts +15 -32
- package/vendor/subagent-core/types/list-children.js +45 -49
- package/vendor/subagent-core/types/out-of-process.d.ts +1 -1
- package/vendor/subagent-core/types/projection-types.d.ts +9 -1
- package/vendor/subagent-core/types/projection.d.ts +5 -0
- package/vendor/subagent-core/types/projection.js +10 -4
- package/vendor/subagent-core/types/run-settlement.js +1 -1
- package/vendor/subagent-core/types/types.d.ts +2 -2
- package/vendor/terminal/index.js +94 -30
- package/vendor/tui/lib/index.mjs +2 -1
- package/vendor/tui/lib/kernel-panels.mjs +1 -1
- package/vendor/tui/lib/render/projection.mjs +50 -36
- package/presets/dscode/agent.cordis.yml +0 -321
- package/presets/dscode/preset.yml +0 -3
|
@@ -1,163 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `DeepSeekAdapter`: fetch + SSE against a DeepSeek (OpenAI-compatible)
|
|
3
|
-
* chat-completions endpoint, emitting harness StreamChunks. The adapter is
|
|
4
|
-
* transport-only: connection facts arrive through a thunk resolved once per
|
|
5
|
-
* operation and the bearer token through a per-request resolver, so the
|
|
6
|
-
* registering plugin owns validation, layering, and credential policy.
|
|
7
|
-
*
|
|
8
|
-
* @module dsh-llm-deepseek/adapter
|
|
9
|
-
*/
|
|
1
|
+
/** Direct Messages transport with one cancellable lifecycle per model request. */
|
|
10
2
|
import { LlmAdapter } from '@deepseek-ai/dsh-llm';
|
|
11
|
-
import type { GenerateOptions,
|
|
12
|
-
import type {
|
|
13
|
-
|
|
14
|
-
import type { AnonymousUserId } from '@deepseek-ai/dsh-anonymous-user-id';
|
|
15
|
-
import type { DeepSeekLlmApiExtensionRequest, PreparedDeepSeekLlmApiExtensions } from '@deepseek-ai/dsh-deepseek-llm-api-extensions';
|
|
16
|
-
import type { RequestDefaults } from './serialize.ts';
|
|
17
|
-
import { DeepSeekFileStore } from './file-store.ts';
|
|
18
|
-
import type { DeepSeekFilePolicy } from './file-store.ts';
|
|
19
|
-
import type { WireError } from './types.ts';
|
|
20
|
-
/** One optional model entry advertised by the direct-fetch adapter. */
|
|
21
|
-
export interface DeepSeekCatalogModel {
|
|
22
|
-
/** Wire model id accepted by the configured endpoint. */
|
|
23
|
-
id: string;
|
|
24
|
-
/** Selector label; defaults to {@link id}. */
|
|
25
|
-
name?: string;
|
|
26
|
-
/** Optional selector detail for deployments with similar model variants. */
|
|
27
|
-
description?: string;
|
|
28
|
-
/** Known combined request/response context capacity; omitted when deployment metadata is unavailable. */
|
|
29
|
-
contextWindow?: number;
|
|
30
|
-
/** Per-request output cap for this model; omission falls back to the profile's {@link DeepSeekConnectionOptions.maxTokens}. */
|
|
31
|
-
maxTokens?: number;
|
|
32
|
-
/** Accepted request modalities; omission is text-only. */
|
|
33
|
-
inputModalities?: ModelModality[];
|
|
34
|
-
/** Total-pixel budget for one deterministic request preview, or the 512-by-512 `low` preset. */
|
|
35
|
-
imagePixelBudget?: number | 'low';
|
|
36
|
-
/** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
|
|
37
|
-
imageMaxBytes?: number;
|
|
38
|
-
/**
|
|
39
|
-
* `'in-history'` declares that the endpoint reads the latest `system`
|
|
40
|
-
* message at any position of the conversation as the complete effective
|
|
41
|
-
* system prompt; omission means only a leading system message is read.
|
|
42
|
-
*/
|
|
43
|
-
systemPromptUpdate?: SystemPromptUpdate;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Validated connection facts for one operation. The plugin's
|
|
47
|
-
* `resolveAdapterOptions` is the one explicit resolve step producing this
|
|
48
|
-
* shape; the adapter trusts it and re-reads it per operation, which is what
|
|
49
|
-
* makes a configuration change reach the next request without re-registration.
|
|
50
|
-
*/
|
|
51
|
-
export interface DeepSeekConnectionOptions {
|
|
52
|
-
/** Endpoint base; `/chat/completions` is appended. */
|
|
53
|
-
baseURL: string;
|
|
54
|
-
/**
|
|
55
|
-
* Credential reference of this same resolution, resolved per request.
|
|
56
|
-
* Travelling with the endpoint is the point: a request can never pair one
|
|
57
|
-
* generation's URL with another generation's secret. Configuration carries
|
|
58
|
-
* only this name — a literal key is not a configuration value.
|
|
59
|
-
*/
|
|
60
|
-
apiKeyEnv: CredentialRef;
|
|
61
|
-
/** Request defaults applied to every call (thinking mode, effort). */
|
|
62
|
-
defaults: RequestDefaults;
|
|
63
|
-
/** Default per-request output cap; explicit request values win. */
|
|
64
|
-
maxTokens: number;
|
|
65
|
-
/** Positive context capacity used when the selected model has no exact value. */
|
|
66
|
-
defaultContextWindow: number;
|
|
67
|
-
/** Advisory models exposed to discovery consumers; requests remain unrestricted. */
|
|
68
|
-
models: readonly DeepSeekCatalogModel[];
|
|
69
|
-
/** Maximum provider idle time while one stream read is outstanding. */
|
|
70
|
-
streamIdleTimeoutMs: number;
|
|
71
|
-
/** Maximum accumulated file-referenced image bytes in one request. */
|
|
72
|
-
maxRequestFilesBytes: number;
|
|
73
|
-
/** Maximum accumulated base64 image payload after Files API fallback. */
|
|
74
|
-
maxInlineRequestImageBytes: number;
|
|
75
|
-
/** Maximum number of represented images in one request. */
|
|
76
|
-
maxImagesPerRequest: number;
|
|
77
|
-
/** Raw-byte removal step after the file-reference bound is exceeded. */
|
|
78
|
-
imageOffloadByteQuantum: number;
|
|
79
|
-
/** Base64-byte removal step after the inline fallback bound is exceeded. */
|
|
80
|
-
inlineImageOffloadByteQuantum: number;
|
|
81
|
-
/** Image-count removal step after the count bound is exceeded. */
|
|
82
|
-
imageOffloadCountQuantum: number;
|
|
83
|
-
/** Maximum duration of one request-image Files API resolution. */
|
|
84
|
-
filesApiTimeoutMs: number;
|
|
85
|
-
/** Upload expiry, refresh, and quota-recovery policy. */
|
|
86
|
-
filePolicy: DeepSeekFilePolicy;
|
|
87
|
-
/** Provider-owned model-request retry policy, already resolved. */
|
|
88
|
-
retryPolicy: ResolvedRetryPolicy;
|
|
89
|
-
}
|
|
90
|
-
/** Constructor options for {@link DeepSeekAdapter}: the operation-local resolution hooks the plugin owns. */
|
|
91
|
-
export interface DeepSeekAdapterOptions {
|
|
92
|
-
/** Current validated connection facts; called once per operation. */
|
|
93
|
-
options: () => DeepSeekConnectionOptions;
|
|
94
|
-
/**
|
|
95
|
-
* Resolve the bearer token for the connection facts of one request. The
|
|
96
|
-
* snapshot is passed in — never re-read — so the key can only ever come
|
|
97
|
-
* from the same resolution as the endpoint it is sent to. Throws `LlmError`
|
|
98
|
-
* `MISSING_CREDENTIAL` when no key is available anywhere.
|
|
99
|
-
*/
|
|
100
|
-
resolveApiKey: (connection: DeepSeekConnectionOptions) => Promise<string>;
|
|
101
|
-
/** Resolve the harness-home anonymous id shared with telemetry and feedback. */
|
|
102
|
-
resolveUserId: () => AnonymousUserId;
|
|
103
|
-
/** Resolve the current durable attachment service; absence rejects image input. */
|
|
104
|
-
resolveAttachments?: () => AttachmentStore | undefined;
|
|
105
|
-
/** Bridge one attachment reference into the current model-tool execution world. */
|
|
106
|
-
resolveImageAccess?: (attachments: AttachmentStore, ref: ImageAttachmentRef) => ImageAttachmentAccess | undefined;
|
|
107
|
-
/** Resolve the process-wide upload reuse store. */
|
|
108
|
-
resolveFiles?: () => DeepSeekFileStore;
|
|
109
|
-
/** Prepare the official API's plugin-contributed top-level fields for one exact wire request. */
|
|
110
|
-
prepareExtensions: (request: DeepSeekLlmApiExtensionRequest) => Promise<PreparedDeepSeekLlmApiExtensions>;
|
|
111
|
-
}
|
|
112
|
-
/** Default maximum idle interval while an adapter stream read is outstanding. */
|
|
113
|
-
export declare const DEFAULT_STREAM_IDLE_TIMEOUT_MS = 300000;
|
|
114
|
-
/** Default combined request/response context capacity. */
|
|
115
|
-
export declare const DEFAULT_CONTEXT_WINDOW = 1000000;
|
|
116
|
-
/** Default per-request output-token cap. */
|
|
117
|
-
export declare const DEFAULT_MAX_TOKENS = 256000;
|
|
118
|
-
/** Default bound on accumulated base64 image payload after Files API fallback. */
|
|
119
|
-
export declare const DEFAULT_MAX_INLINE_REQUEST_IMAGE_BYTES: number;
|
|
120
|
-
/** Deterministic raw-byte removal step. */
|
|
121
|
-
export declare const DEFAULT_IMAGE_OFFLOAD_BYTE_QUANTUM: number;
|
|
122
|
-
/** Deterministic base64-byte removal step after Files API fallback. */
|
|
123
|
-
export declare const DEFAULT_INLINE_IMAGE_OFFLOAD_BYTE_QUANTUM: number;
|
|
124
|
-
/** Deterministic image-count removal step. */
|
|
125
|
-
export declare const DEFAULT_IMAGE_OFFLOAD_COUNT_QUANTUM = 20;
|
|
126
|
-
/** Default explicit lifetime for uploaded images. */
|
|
127
|
-
export declare const DEFAULT_FILE_EXPIRY_SECONDS: number;
|
|
128
|
-
/** Default proactive refresh window for indexed file ids. */
|
|
129
|
-
export declare const DEFAULT_FILE_REFRESH_MARGIN_SECONDS: number;
|
|
130
|
-
/** Default number of oldest harness-owned files removed on quota recovery. */
|
|
131
|
-
export declare const DEFAULT_FILE_QUOTA_CLEANUP_BATCH = 100;
|
|
132
|
-
/** Default deadline for resolving one request image through the Files API. */
|
|
133
|
-
export declare const DEFAULT_FILES_API_TIMEOUT_MS = 60000;
|
|
134
|
-
/**
|
|
135
|
-
* Map an HTTP status to a stable LlmError code.
|
|
136
|
-
* @param status - status of a non-2xx provider response.
|
|
137
|
-
* @param error - parsed provider error body, when available.
|
|
138
|
-
* @returns the normalized harness error code.
|
|
139
|
-
*/
|
|
140
|
-
export declare function httpErrorCode(status: number, error?: WireError['error']): string;
|
|
141
|
-
/**
|
|
142
|
-
* The first real `LlmAdapter`. One instance serves every model name it was
|
|
143
|
-
* registered under (the harness model name IS the wire model name).
|
|
144
|
-
*
|
|
145
|
-
* One stable signal reaches both initial fetch and body reads. Caller aborts
|
|
146
|
-
* map to `ABORTED`; the configured per-read idle watchdog maps to `TIMEOUT`.
|
|
147
|
-
*/
|
|
3
|
+
import type { GenerateOptions, PreparedAdapterCall, StreamChunk } from '@deepseek-ai/dsh-llm';
|
|
4
|
+
import type { DeepSeekAdapterOptions } from './types.ts';
|
|
5
|
+
/** DeepSeek provider using Messages content and native thinking replay. */
|
|
148
6
|
export declare class DeepSeekAdapter extends LlmAdapter {
|
|
149
|
-
private readonly
|
|
7
|
+
private readonly dependencies;
|
|
150
8
|
private readonly files;
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
9
|
+
private readonly imageAccess;
|
|
10
|
+
constructor(dependencies: DeepSeekAdapterOptions);
|
|
11
|
+
providerInfo(provider: string): {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
};
|
|
15
|
+
providerRetryPolicy(_provider: string): import("@deepseek-ai/dsh-llm").ResolvedRetryPolicy;
|
|
16
|
+
listModels(provider: string): Promise<import("@deepseek-ai/dsh-llm").LlmModelInfo[]>;
|
|
17
|
+
resolveModel(provider: string, model: string, _signal?: AbortSignal): Promise<import("@deepseek-ai/dsh-llm").LlmResolvedModelInfo>;
|
|
18
|
+
imageRequestPricing(_provider: string, model: string): import("@deepseek-ai/dsh-llm").LlmImageRequestPricing;
|
|
158
19
|
prepareCall(provider: string, model: string, _signal?: AbortSignal): Promise<PreparedAdapterCall>;
|
|
159
20
|
stream(options: GenerateOptions): AsyncIterable<StreamChunk>;
|
|
160
|
-
private
|
|
21
|
+
private generate;
|
|
161
22
|
private request;
|
|
162
23
|
}
|
|
163
24
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/** Plugin configuration and complete request-local resolution for DeepSeek. */
|
|
2
|
+
import type { Volatile } from '@deepseek-ai/cordis';
|
|
3
|
+
import z from '@deepseek-ai/schemastery';
|
|
4
|
+
import type { RetryPolicyConfig } from '@deepseek-ai/dsh-llm';
|
|
5
|
+
import type { LaunchEnvironmentSnapshot } from '@deepseek-ai/dsh-launch-environment';
|
|
6
|
+
import type { DeepSeekCatalogModel, DeepSeekConnectionOptions } from './types.ts';
|
|
7
|
+
/**
|
|
8
|
+
* Plugin config, validated by the same-named schemastery schema and doubling
|
|
9
|
+
* as the `llm-deepseek` settings-section shape. Every field is optional in
|
|
10
|
+
* yml: a missing API key resolves through {@link Config.apiKeyEnv} at each
|
|
11
|
+
* request (a request without any key fails with `MISSING_CREDENTIAL`, not at
|
|
12
|
+
* plugin load), omitted thinking mode uses the provider default, and omitted
|
|
13
|
+
* reasoning effort resolves to `high`.
|
|
14
|
+
*/
|
|
15
|
+
export interface Config {
|
|
16
|
+
/** Credential reference (environment-variable name) resolved per request; defaults to `DEEPSEEK_API_KEY`. */
|
|
17
|
+
apiKeyEnv: Volatile<string>;
|
|
18
|
+
/** Endpoint base; falls back to $DEEPSEEK_BASE_URL from a trusted environment layer, then the public API. */
|
|
19
|
+
baseURL: Volatile<string | undefined>;
|
|
20
|
+
/** Deployment thinking policy; `disabled` limits every conversation request to `off`. */
|
|
21
|
+
thinking: Volatile<'enabled' | 'disabled' | undefined>;
|
|
22
|
+
/** Default thinking effort (default `high`); `off` disables thinking per request. */
|
|
23
|
+
reasoningEffort: Volatile<'off' | 'low' | 'high' | 'max' | undefined>;
|
|
24
|
+
/** Default per-request output cap (default 256,000); a model's own cap and explicit request values win. */
|
|
25
|
+
maxTokens: Volatile<number>;
|
|
26
|
+
/** Positive context capacity used when the selected model has no exact value (default 1,000,000). */
|
|
27
|
+
defaultContextWindow: Volatile<number>;
|
|
28
|
+
/** Advisory models shown by discovery consumers; defaults to V41 Flash and V4 Pro. */
|
|
29
|
+
models: Volatile<DeepSeekCatalogModel[]>;
|
|
30
|
+
/** Maximum provider idle time while one stream read is outstanding (default five minutes). */
|
|
31
|
+
streamIdleTimeoutMs: Volatile<number>;
|
|
32
|
+
/** Maximum accumulated file-referenced image bytes per chat request (default 128 MiB). */
|
|
33
|
+
maxRequestFilesBytes: Volatile<number>;
|
|
34
|
+
/** Maximum accumulated base64 image payload after Files API fallback (default 20 MiB). */
|
|
35
|
+
maxInlineRequestImageBytes: Volatile<number>;
|
|
36
|
+
/** Maximum number of represented images per chat request (default 600). */
|
|
37
|
+
maxImagesPerRequest: Volatile<number>;
|
|
38
|
+
/** Raw-byte removal step after the request exceeds its file bound (default 64 MiB). */
|
|
39
|
+
imageOffloadByteQuantum: Volatile<number>;
|
|
40
|
+
/** Base64-byte removal step after inline fallback exceeds its bound (default 10 MiB). */
|
|
41
|
+
inlineImageOffloadByteQuantum: Volatile<number>;
|
|
42
|
+
/** Image-count removal step after the request exceeds its count bound (default 20). */
|
|
43
|
+
imageOffloadCountQuantum: Volatile<number>;
|
|
44
|
+
/** Maximum duration of one request-image Files API resolution (default one minute). */
|
|
45
|
+
filesApiTimeoutMs: Volatile<number>;
|
|
46
|
+
/** Explicit lifetime assigned to each uploaded image (default seven days). */
|
|
47
|
+
fileExpiresAfterSeconds: Volatile<number>;
|
|
48
|
+
/** Remaining lifetime below which an indexed file is replaced (default one hour). */
|
|
49
|
+
fileRefreshMarginSeconds: Volatile<number>;
|
|
50
|
+
/** Oldest harness-owned files deleted before one quota-recovery upload retry (default 100). */
|
|
51
|
+
fileQuotaCleanupBatch: Volatile<number>;
|
|
52
|
+
/** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
|
|
53
|
+
retryPolicy: Volatile<RetryPolicyConfig | undefined>;
|
|
54
|
+
}
|
|
55
|
+
/** Plain options accepted by the provider resolver. */
|
|
56
|
+
export type Options = {
|
|
57
|
+
[K in keyof Config]?: Config[K] extends Volatile<infer T> ? Exclude<T, undefined> : never;
|
|
58
|
+
};
|
|
59
|
+
/** Read the current value behind every reference of a validated Config.
|
|
60
|
+
* @param config Parsed plugin Config.
|
|
61
|
+
* @returns Plain options for the resolver.
|
|
62
|
+
*/
|
|
63
|
+
export declare function plainOptions(config: Config): Options;
|
|
64
|
+
export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
65
|
+
apiKeyEnv: z<string, string, "volatile-defined">;
|
|
66
|
+
baseURL: z<string, string, "volatile">;
|
|
67
|
+
thinking: z<"enabled" | "disabled", "enabled" | "disabled", "volatile">;
|
|
68
|
+
reasoningEffort: z<"low" | "off" | "high" | "max", "low" | "off" | "high" | "max", "volatile">;
|
|
69
|
+
maxTokens: z<number, number, "volatile-defined">;
|
|
70
|
+
defaultContextWindow: z<number, number, "volatile-defined">;
|
|
71
|
+
models: z<NoInfer<DeepSeekCatalogModel[]>, NoInfer<DeepSeekCatalogModel[]>, "volatile-defined">;
|
|
72
|
+
streamIdleTimeoutMs: z<number, number, "volatile-defined">;
|
|
73
|
+
maxRequestFilesBytes: z<number, number, "volatile-defined">;
|
|
74
|
+
maxInlineRequestImageBytes: z<number, number, "volatile-defined">;
|
|
75
|
+
maxImagesPerRequest: z<number, number, "volatile-defined">;
|
|
76
|
+
imageOffloadByteQuantum: z<number, number, "volatile-defined">;
|
|
77
|
+
inlineImageOffloadByteQuantum: z<number, number, "volatile-defined">;
|
|
78
|
+
imageOffloadCountQuantum: z<number, number, "volatile-defined">;
|
|
79
|
+
filesApiTimeoutMs: z<number, number, "volatile-defined">;
|
|
80
|
+
fileExpiresAfterSeconds: z<number, number, "volatile-defined">;
|
|
81
|
+
fileRefreshMarginSeconds: z<number, number, "volatile-defined">;
|
|
82
|
+
fileQuotaCleanupBatch: z<number, number, "volatile-defined">;
|
|
83
|
+
retryPolicy: z<NoInfer<RetryPolicyConfig>, NoInfer<RetryPolicyConfig>, "volatile">;
|
|
84
|
+
}>>, Schemastery.ObjectT<NoInfer<{
|
|
85
|
+
apiKeyEnv: z<string, string, "volatile-defined">;
|
|
86
|
+
baseURL: z<string, string, "volatile">;
|
|
87
|
+
thinking: z<"enabled" | "disabled", "enabled" | "disabled", "volatile">;
|
|
88
|
+
reasoningEffort: z<"low" | "off" | "high" | "max", "low" | "off" | "high" | "max", "volatile">;
|
|
89
|
+
maxTokens: z<number, number, "volatile-defined">;
|
|
90
|
+
defaultContextWindow: z<number, number, "volatile-defined">;
|
|
91
|
+
models: z<NoInfer<DeepSeekCatalogModel[]>, NoInfer<DeepSeekCatalogModel[]>, "volatile-defined">;
|
|
92
|
+
streamIdleTimeoutMs: z<number, number, "volatile-defined">;
|
|
93
|
+
maxRequestFilesBytes: z<number, number, "volatile-defined">;
|
|
94
|
+
maxInlineRequestImageBytes: z<number, number, "volatile-defined">;
|
|
95
|
+
maxImagesPerRequest: z<number, number, "volatile-defined">;
|
|
96
|
+
imageOffloadByteQuantum: z<number, number, "volatile-defined">;
|
|
97
|
+
inlineImageOffloadByteQuantum: z<number, number, "volatile-defined">;
|
|
98
|
+
imageOffloadCountQuantum: z<number, number, "volatile-defined">;
|
|
99
|
+
filesApiTimeoutMs: z<number, number, "volatile-defined">;
|
|
100
|
+
fileExpiresAfterSeconds: z<number, number, "volatile-defined">;
|
|
101
|
+
fileRefreshMarginSeconds: z<number, number, "volatile-defined">;
|
|
102
|
+
fileQuotaCleanupBatch: z<number, number, "volatile-defined">;
|
|
103
|
+
retryPolicy: z<NoInfer<RetryPolicyConfig>, NoInfer<RetryPolicyConfig>, "volatile">;
|
|
104
|
+
}>>, "plain">;
|
|
105
|
+
/** Public API default; the internal endpoint comes from $DEEPSEEK_BASE_URL. */
|
|
106
|
+
export declare const PUBLIC_BASE_URL = "https://api.deepseek.com/anthropic";
|
|
107
|
+
/**
|
|
108
|
+
* One resolution's complete request facts. Connection and credential facts
|
|
109
|
+
* are one value on purpose: a snapshot the resolver rejects keeps the whole
|
|
110
|
+
* previous generation, so a request can never pair a stale endpoint with a
|
|
111
|
+
* newer key.
|
|
112
|
+
*/
|
|
113
|
+
export type ResolvedDeepSeekOptions = DeepSeekConnectionOptions;
|
|
114
|
+
/**
|
|
115
|
+
* The one explicit resolve step from raw config to validated connection
|
|
116
|
+
* facts. Programmatic construction may bypass Schemastery normalization, so
|
|
117
|
+
* every default and bound is re-judged here — for the composition entry at
|
|
118
|
+
* load (fail loud) and for each settings snapshot at its first use.
|
|
119
|
+
* @param config - raw plugin config or resolved settings snapshot.
|
|
120
|
+
* @param environment - this run's environment layers, or `undefined` outside
|
|
121
|
+
* the product CLI. Every layer may supply an endpoint: the product trusts the
|
|
122
|
+
* project it is launched in, so a checkout can point its own agent at the
|
|
123
|
+
* gateway that checkout is meant to use.
|
|
124
|
+
* @returns validated connection facts plus the credential reference.
|
|
125
|
+
*/
|
|
126
|
+
export declare function resolveAdapterOptions(config: Options, environment?: LaunchEnvironmentSnapshot): ResolvedDeepSeekOptions;
|
|
127
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Shared provider limits and Chat Files API defaults. */
|
|
2
|
+
/** Default maximum idle interval while an adapter stream read is outstanding. */
|
|
3
|
+
export declare const DEFAULT_STREAM_IDLE_TIMEOUT_MS = 300000;
|
|
4
|
+
/** Default combined request/response context capacity. */
|
|
5
|
+
export declare const DEFAULT_CONTEXT_WINDOW = 1000000;
|
|
6
|
+
/** Default per-request output-token cap. */
|
|
7
|
+
export declare const DEFAULT_MAX_TOKENS = 256000;
|
|
8
|
+
/** Default bound on accumulated base64 image payload after Files API fallback. */
|
|
9
|
+
export declare const DEFAULT_MAX_INLINE_REQUEST_IMAGE_BYTES: number;
|
|
10
|
+
/** Deterministic raw-byte removal step. */
|
|
11
|
+
export declare const DEFAULT_IMAGE_OFFLOAD_BYTE_QUANTUM: number;
|
|
12
|
+
/** Deterministic base64-byte removal step after Files API fallback. */
|
|
13
|
+
export declare const DEFAULT_INLINE_IMAGE_OFFLOAD_BYTE_QUANTUM: number;
|
|
14
|
+
/** Deterministic image-count removal step. */
|
|
15
|
+
export declare const DEFAULT_IMAGE_OFFLOAD_COUNT_QUANTUM = 20;
|
|
16
|
+
/** Default explicit lifetime for uploaded images. */
|
|
17
|
+
export declare const DEFAULT_FILE_EXPIRY_SECONDS: number;
|
|
18
|
+
/** Default proactive refresh window for indexed file ids. */
|
|
19
|
+
export declare const DEFAULT_FILE_REFRESH_MARGIN_SECONDS: number;
|
|
20
|
+
/** Default number of oldest harness-owned files removed on quota recovery. */
|
|
21
|
+
export declare const DEFAULT_FILE_QUOTA_CLEANUP_BATCH = 100;
|
|
22
|
+
/** Default deadline for resolving one request image through the Files API. */
|
|
23
|
+
export declare const DEFAULT_FILES_API_TIMEOUT_MS = 60000;
|
|
24
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -3,8 +3,8 @@ import type { RequestImageAttachment } from '@deepseek-ai/dsh-attachment';
|
|
|
3
3
|
import type { DeepSeekFileId } from './file-id.ts';
|
|
4
4
|
import { DeepSeekUploadIndex } from './upload-index.ts';
|
|
5
5
|
import type { DeepSeekUploadRecord } from './upload-index.ts';
|
|
6
|
-
/**
|
|
7
|
-
export declare const
|
|
6
|
+
/** Shared Files-store limit for each request image, including file-id references. */
|
|
7
|
+
export declare const MAX_IMAGE_BYTES: number;
|
|
8
8
|
/** Resolved file-store policy from the plugin configuration. */
|
|
9
9
|
export interface DeepSeekFilePolicy {
|
|
10
10
|
expiresAfterSeconds: number;
|
|
@@ -15,6 +15,8 @@ export interface DeepSeekFilePolicy {
|
|
|
15
15
|
export interface DeepSeekFileConnection {
|
|
16
16
|
baseURL: string;
|
|
17
17
|
apiKey: string;
|
|
18
|
+
/** Use the DSH account header; omitted for ordinary API keys. */
|
|
19
|
+
accountCredential?: boolean;
|
|
18
20
|
}
|
|
19
21
|
/** Result of one file-id resolution. */
|
|
20
22
|
export interface DeepSeekFileReference {
|
|
@@ -48,7 +50,7 @@ export declare class DeepSeekFileStore {
|
|
|
48
50
|
ensureUploaded(version: RequestImageAttachment, connection: DeepSeekFileConnection, policy: DeepSeekFilePolicy, signal?: AbortSignal): Promise<DeepSeekFileReference>;
|
|
49
51
|
private ensureUploadedOnce;
|
|
50
52
|
/**
|
|
51
|
-
* Invalidate one exact local mapping after
|
|
53
|
+
* Invalidate one exact local mapping after a model request rejects its remote id.
|
|
52
54
|
* @param version - request-image version whose remote generation failed.
|
|
53
55
|
* @param fileId - exact rejected file id.
|
|
54
56
|
* @param connection - endpoint and API-key snapshot.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** DeepSeek Files API transport. @module dsh-llm-deepseek/files-api */
|
|
2
2
|
import { LlmError } from '@deepseek-ai/dsh-llm';
|
|
3
3
|
import type { ImageMediaType } from '@deepseek-ai/dsh-attachment';
|
|
4
4
|
import type { DeepSeekFileId as DeepSeekFileIdType } from './file-id.ts';
|
|
@@ -12,13 +12,13 @@ export declare const MAX_FILE_UPLOAD_BYTES: number;
|
|
|
12
12
|
export declare const MAX_STORED_FILE_COUNT = 10000;
|
|
13
13
|
/** Current per-key storage quota. */
|
|
14
14
|
export declare const MAX_STORED_FILE_BYTES: number;
|
|
15
|
-
/** Validated file
|
|
15
|
+
/** Validated provider file metadata. */
|
|
16
16
|
export interface DeepSeekFileObject {
|
|
17
17
|
id: DeepSeekFileIdType;
|
|
18
18
|
bytes: number;
|
|
19
19
|
createdAt: number;
|
|
20
20
|
filename: string;
|
|
21
|
-
|
|
21
|
+
/** Upload-time reuse deadline; list and retrieve responses omit this field. */
|
|
22
22
|
expiresAt?: number;
|
|
23
23
|
}
|
|
24
24
|
/** One page returned by `GET /files`. */
|
|
@@ -48,11 +48,14 @@ export declare function isFilesQuotaError(error: unknown): error is DeepSeekFile
|
|
|
48
48
|
interface FilesApiOptions {
|
|
49
49
|
baseURL: string;
|
|
50
50
|
apiKey: string;
|
|
51
|
+
/** Use the DSH account header; omitted for ordinary API keys. */
|
|
52
|
+
accountCredential?: boolean;
|
|
51
53
|
fetch?: typeof fetch;
|
|
52
54
|
}
|
|
53
|
-
/** Direct client
|
|
55
|
+
/** Direct Files client retaining the configured URL root and refusing redirects before credentials can leave its origin. */
|
|
54
56
|
export declare class DeepSeekFilesClient {
|
|
55
57
|
private readonly baseURL;
|
|
58
|
+
private readonly accountCredential;
|
|
56
59
|
private readonly apiKey;
|
|
57
60
|
private readonly fetchImpl;
|
|
58
61
|
/**
|
|
@@ -63,7 +66,8 @@ export declare class DeepSeekFilesClient {
|
|
|
63
66
|
/**
|
|
64
67
|
* Upload one image with an explicit expiry.
|
|
65
68
|
* @param input - deterministic request-version bytes, media type, filename, lifetime, and cancellation.
|
|
66
|
-
* @returns the validated
|
|
69
|
+
* @returns the validated file and reuse deadline. Messages omits expiry metadata;
|
|
70
|
+
* its deadline uses upload creation plus the requested lifetime.
|
|
67
71
|
*/
|
|
68
72
|
upload(input: {
|
|
69
73
|
data: Uint8Array;
|
|
@@ -75,14 +79,13 @@ export declare class DeepSeekFilesClient {
|
|
|
75
79
|
expiresAt: number;
|
|
76
80
|
}>;
|
|
77
81
|
/**
|
|
78
|
-
* List one
|
|
79
|
-
* @param options - pagination
|
|
80
|
-
* @returns the validated page.
|
|
82
|
+
* List one provider-ordered page of files.
|
|
83
|
+
* @param options - pagination and cancellation.
|
|
84
|
+
* @returns the validated page with null cursors omitted.
|
|
81
85
|
*/
|
|
82
86
|
list(options?: {
|
|
83
87
|
after?: DeepSeekFileIdType;
|
|
84
88
|
limit?: number;
|
|
85
|
-
order?: 'asc' | 'desc';
|
|
86
89
|
signal?: AbortSignal;
|
|
87
90
|
}): Promise<DeepSeekFilePage>;
|
|
88
91
|
/**
|
|
@@ -1,19 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* DeepSeek
|
|
3
|
-
* calculator (api-docs.deepseek.com, Token & Token Usage) ported verbatim
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
2
|
+
* DeepSeek vision-token accounting: the provider's published image-token
|
|
3
|
+
* calculator (api-docs.deepseek.com, Token & Token Usage) ported verbatim in
|
|
4
|
+
* its current `v41` configuration. The provider scales an image below
|
|
5
|
+
* 544×544 total pixels up, aligns it to a 14px-patch grid, downsamples 3:1
|
|
6
|
+
* per axis into token cells, and caps one image at 1024 tokens by solving the
|
|
7
|
+
* largest aspect-preserving grid inside that budget. The count is exact: this
|
|
8
|
+
* configuration has no alignment pad and no aspect-ratio clamp. Actual usage
|
|
9
|
+
* remains authoritative.
|
|
8
10
|
*
|
|
9
11
|
* @module dsh-llm-deepseek/image-tokens
|
|
10
12
|
*/
|
|
13
|
+
import type { ProjectedDimensions } from '@deepseek-ai/dsh-attachment';
|
|
11
14
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
15
|
+
* Dimensions the harness sends so the provider keeps the whole image: the
|
|
16
|
+
* source itself when its patch-padded grid fits the token cap, otherwise the
|
|
17
|
+
* source aspect ratio at the solved grid's long edge. The provider pads the
|
|
18
|
+
* short edge to whole patches on its side. Rounding the aspect-preserving
|
|
19
|
+
* short edge can change the token count from the source's solved grid;
|
|
20
|
+
* request pricing uses the sent dimensions. Small images are never enlarged.
|
|
21
|
+
* @param width - positive integer source width in pixels.
|
|
22
|
+
* @param height - positive integer source height in pixels.
|
|
23
|
+
* @returns the request dimensions to encode.
|
|
24
|
+
*/
|
|
25
|
+
export declare function deepSeekRequestImageDimensions(width: number, height: number): ProjectedDimensions;
|
|
26
|
+
/**
|
|
27
|
+
* Vision tokens DeepSeek charges for one request image of the given
|
|
28
|
+
* dimensions.
|
|
14
29
|
* @param width - positive integer request-image width in pixels.
|
|
15
30
|
* @param height - positive integer request-image height in pixels.
|
|
16
|
-
* @returns the provider vision-token price, at most
|
|
31
|
+
* @returns the provider vision-token price, at most 1024.
|
|
17
32
|
*/
|
|
18
33
|
export declare function deepSeekImageTokens(width: number, height: number): number;
|
|
19
34
|
//# sourceMappingURL=image-tokens.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Deterministic Messages image preparation for Files references and bounded inline fallback. */
|
|
2
|
+
import type { AttachmentStore, ImageAttachmentRef, RequestImageAttachment } from '@deepseek-ai/dsh-attachment';
|
|
3
|
+
import type { ImageAttachmentAccessResolver, RequestMessage } from '@deepseek-ai/dsh-llm';
|
|
4
|
+
import type { DeepSeekConnectionOptions as Connection } from './types.ts';
|
|
5
|
+
import type { DeepSeekFileId } from './file-id.ts';
|
|
6
|
+
import type { RequestFiles } from './request-files.ts';
|
|
7
|
+
export { deepSeekImageRequestPricing as imagePricing } from './request-pricing.ts';
|
|
8
|
+
/** Normalize retained image references before converting Messages content.
|
|
9
|
+
* @param history - durable history; never mutated.
|
|
10
|
+
* @param connection - request-local image budgets.
|
|
11
|
+
* @param modelId - target model id.
|
|
12
|
+
* @param attachments - mounted attachment store, required only for image requests.
|
|
13
|
+
* @param access - current execution-world path resolver.
|
|
14
|
+
* @param signal - request cancellation.
|
|
15
|
+
* @returns projected history and prepared image bytes keyed by attachment id.
|
|
16
|
+
*/
|
|
17
|
+
export declare function prepareImages(history: readonly RequestMessage[], connection: Connection, modelId: string, attachments: AttachmentStore | undefined, access: ImageAttachmentAccessResolver, signal: AbortSignal): Promise<{
|
|
18
|
+
messages: readonly RequestMessage[];
|
|
19
|
+
versions: Map<ImageAttachmentRef['attachmentId'], RequestImageAttachment>;
|
|
20
|
+
}>;
|
|
21
|
+
/** Require logged offload before retrying images that exceed the inline budget.
|
|
22
|
+
* @param messages - history already within the Files budget.
|
|
23
|
+
* @param versions - normalized versions prepared for retained references.
|
|
24
|
+
* @param connection - resolved inline bounds.
|
|
25
|
+
* @returns unchanged history within both byte and image-count limits.
|
|
26
|
+
*/
|
|
27
|
+
export declare function inlineImages(messages: readonly RequestMessage[], versions: ReadonlyMap<ImageAttachmentRef['attachmentId'], RequestImageAttachment>, connection: Connection): readonly RequestMessage[];
|
|
28
|
+
/** Resolve retained images to Files ids, recording every occurrence for failure diagnostics.
|
|
29
|
+
* @param messages - history within the Files byte/count budget.
|
|
30
|
+
* @param versions - normalized versions for every retained reference.
|
|
31
|
+
* @param files - request-owned Files resolution and recovery.
|
|
32
|
+
* @returns ids keyed by durable attachment identity.
|
|
33
|
+
*/
|
|
34
|
+
export declare function prepareFileIds(messages: readonly RequestMessage[], versions: ReadonlyMap<ImageAttachmentRef['attachmentId'], RequestImageAttachment>, files: RequestFiles): Promise<Map<ImageAttachmentRef['attachmentId'], DeepSeekFileId>>;
|
|
35
|
+
//# sourceMappingURL=images.d.ts.map
|
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Register a {@link DeepSeekAdapter} for the `deepseek-official` provider route on
|
|
3
|
-
* `ctx.llm`, with connection facts resolved per request instead of frozen at
|
|
4
|
-
* load: the plugin layers its `cordis.yml` entry config under the optional
|
|
5
|
-
* `llm-deepseek` user-settings section (`ctx.settings`) and resolves the API
|
|
6
|
-
* key through the optional credential seam (`ctx.credentials`), so a changed
|
|
7
|
-
* base URL, catalog, or key reaches the very next request without restarting
|
|
8
|
-
* anything, while an in-flight stream keeps the facts it started with. The
|
|
9
|
-
* one registration-captured fact — the retry policy — re-registers the route
|
|
10
|
-
* in place when it changes.
|
|
11
|
-
* @module @deepseek-ai/dsh-llm-deepseek
|
|
12
|
-
*/
|
|
13
1
|
import type { Context } from '@deepseek-ai/cordis';
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export {
|
|
19
|
-
export type { DeepSeekAdapterOptions, DeepSeekCatalogModel, DeepSeekConnectionOptions } from './
|
|
20
|
-
export { DEFAULT_LOW_DETAIL_IMAGE_PIXEL_BUDGET, DEFAULT_MAX_IMAGES_PER_REQUEST, DEFAULT_MAX_REQUEST_FILES_BYTES, DEFAULT_REQUEST_IMAGE_MAX_BYTES,
|
|
21
|
-
export { deepSeekImageTokens } from './image-tokens.ts';
|
|
22
|
-
export { DeepSeekFileStore,
|
|
2
|
+
import { Config } from './config.ts';
|
|
3
|
+
export { Config, plainOptions, resolveAdapterOptions, PUBLIC_BASE_URL } from './config.ts';
|
|
4
|
+
export type { Options, ResolvedDeepSeekOptions } from './config.ts';
|
|
5
|
+
export { DEFAULT_CONTEXT_WINDOW, DEFAULT_FILE_EXPIRY_SECONDS, DEFAULT_FILE_QUOTA_CLEANUP_BATCH, DEFAULT_FILE_REFRESH_MARGIN_SECONDS, DEFAULT_FILES_API_TIMEOUT_MS, DEFAULT_IMAGE_OFFLOAD_BYTE_QUANTUM, DEFAULT_IMAGE_OFFLOAD_COUNT_QUANTUM, DEFAULT_INLINE_IMAGE_OFFLOAD_BYTE_QUANTUM, DEFAULT_MAX_INLINE_REQUEST_IMAGE_BYTES, DEFAULT_MAX_TOKENS, DEFAULT_STREAM_IDLE_TIMEOUT_MS, } from './defaults.ts';
|
|
6
|
+
export { DeepSeekAdapter } from './adapter.ts';
|
|
7
|
+
export type { DeepSeekAdapterOptions, DeepSeekCatalogModel, DeepSeekConnectionOptions } from './types.ts';
|
|
8
|
+
export { DEFAULT_LOW_DETAIL_IMAGE_PIXEL_BUDGET, DEFAULT_MAX_IMAGES_PER_REQUEST, DEFAULT_MAX_REQUEST_FILES_BYTES, DEFAULT_REQUEST_IMAGE_MAX_BYTES, REQUEST_IMAGE_MAX_DIMENSION, deepSeekImageRequestPricing, resolveRequestImageMaxBytes, resolveRequestImageTarget, } from './request-pricing.ts';
|
|
9
|
+
export { deepSeekImageTokens, deepSeekRequestImageDimensions } from './image-tokens.ts';
|
|
10
|
+
export { DeepSeekFileStore, MAX_IMAGE_BYTES } from './file-store.ts';
|
|
23
11
|
export type { DeepSeekFileConnection, DeepSeekFilePolicy, DeepSeekFileReference } from './file-store.ts';
|
|
24
12
|
export { DeepSeekFilesClient, MAX_FILE_EXPIRY_SECONDS, MAX_FILE_UPLOAD_BYTES, MAX_STORED_FILE_BYTES, MAX_STORED_FILE_COUNT, MIN_FILE_EXPIRY_SECONDS } from './files-api.ts';
|
|
25
13
|
export type { DeepSeekFileObject, DeepSeekFilePage } from './files-api.ts';
|
|
@@ -27,80 +15,8 @@ export { DeepSeekFileId } from './file-id.ts';
|
|
|
27
15
|
export type { DeepSeekFileId as DeepSeekFileIdType } from './file-id.ts';
|
|
28
16
|
export { DeepSeekUploadIndex, deepSeekFileScope } from './upload-index.ts';
|
|
29
17
|
export type { DeepSeekUploadRecord } from './upload-index.ts';
|
|
30
|
-
export type { RequestDefaults } from './
|
|
31
|
-
export type * from './types.ts';
|
|
18
|
+
export type { RequestDefaults } from './types.ts';
|
|
32
19
|
export declare const name = "llm-deepseek";
|
|
33
20
|
export declare const inject: string[];
|
|
34
|
-
/**
|
|
35
|
-
* Plugin config, validated by the same-named schemastery schema and doubling
|
|
36
|
-
* as the `llm-deepseek` settings-section shape. Every field is optional in
|
|
37
|
-
* yml: a missing API key resolves through {@link Config.apiKeyEnv} at each
|
|
38
|
-
* request (a request without any key fails with `MISSING_CREDENTIAL`, not at
|
|
39
|
-
* plugin load), omitted thinking mode uses the provider default, and omitted
|
|
40
|
-
* reasoning effort resolves to `high`.
|
|
41
|
-
*/
|
|
42
|
-
export interface Config {
|
|
43
|
-
/** Credential reference (environment-variable name) resolved per request; defaults to `DEEPSEEK_API_KEY`. */
|
|
44
|
-
apiKeyEnv?: string;
|
|
45
|
-
/** Endpoint base; falls back to $DEEPSEEK_BASE_URL from a trusted environment layer, then the public API. */
|
|
46
|
-
baseURL?: string;
|
|
47
|
-
/** Deployment thinking policy; `disabled` limits every conversation request to `off`. */
|
|
48
|
-
thinking?: 'enabled' | 'disabled';
|
|
49
|
-
/** Default thinking effort (default `high`); `off` disables thinking per request. */
|
|
50
|
-
reasoningEffort?: 'off' | 'low' | 'high' | 'max';
|
|
51
|
-
/** Default per-request output cap (default 256,000); a model's own cap and explicit request values win. */
|
|
52
|
-
maxTokens?: number;
|
|
53
|
-
/** Positive context capacity used when the selected model has no exact value (default 1,000,000). */
|
|
54
|
-
defaultContextWindow?: number;
|
|
55
|
-
/** Advisory models shown by discovery consumers; defaults to V41 Flash, V4 Flash, V4 Pro, and V4 Flash Vision Exp. */
|
|
56
|
-
models?: DeepSeekCatalogModel[];
|
|
57
|
-
/** Maximum provider idle time while one stream read is outstanding (default five minutes). */
|
|
58
|
-
streamIdleTimeoutMs?: number;
|
|
59
|
-
/** Maximum accumulated file-referenced image bytes per chat request (default 128 MiB). */
|
|
60
|
-
maxRequestFilesBytes?: number;
|
|
61
|
-
/** Maximum accumulated base64 image payload after Files API fallback (default 20 MiB). */
|
|
62
|
-
maxInlineRequestImageBytes?: number;
|
|
63
|
-
/** Maximum number of represented images per chat request (default 600). */
|
|
64
|
-
maxImagesPerRequest?: number;
|
|
65
|
-
/** Raw-byte removal step after the request exceeds its file bound (default 64 MiB). */
|
|
66
|
-
imageOffloadByteQuantum?: number;
|
|
67
|
-
/** Base64-byte removal step after inline fallback exceeds its bound (default 10 MiB). */
|
|
68
|
-
inlineImageOffloadByteQuantum?: number;
|
|
69
|
-
/** Image-count removal step after the request exceeds its count bound (default 20). */
|
|
70
|
-
imageOffloadCountQuantum?: number;
|
|
71
|
-
/** Maximum duration of one request-image Files API resolution (default one minute). */
|
|
72
|
-
filesApiTimeoutMs?: number;
|
|
73
|
-
/** Explicit lifetime assigned to each uploaded image (default seven days). */
|
|
74
|
-
fileExpiresAfterSeconds?: number;
|
|
75
|
-
/** Remaining lifetime below which an indexed file is replaced (default one hour). */
|
|
76
|
-
fileRefreshMarginSeconds?: number;
|
|
77
|
-
/** Oldest harness-owned files deleted before one quota-recovery upload retry (default 100). */
|
|
78
|
-
fileQuotaCleanupBatch?: number;
|
|
79
|
-
/** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
|
|
80
|
-
retryPolicy?: RetryPolicyConfig;
|
|
81
|
-
}
|
|
82
|
-
export declare const Config: z<Config>;
|
|
83
|
-
/** Public API default; the internal endpoint comes from $DEEPSEEK_BASE_URL. */
|
|
84
|
-
export declare const PUBLIC_BASE_URL = "https://api.deepseek.com";
|
|
85
|
-
/**
|
|
86
|
-
* One resolution's complete request facts. Connection and credential facts
|
|
87
|
-
* are one value on purpose: a snapshot the resolver rejects keeps the whole
|
|
88
|
-
* previous generation, so a request can never pair a stale endpoint with a
|
|
89
|
-
* newer key.
|
|
90
|
-
*/
|
|
91
|
-
export type ResolvedDeepSeekOptions = DeepSeekConnectionOptions;
|
|
92
|
-
/**
|
|
93
|
-
* The one explicit resolve step from raw config to validated connection
|
|
94
|
-
* facts. Programmatic construction may bypass Schemastery normalization, so
|
|
95
|
-
* every default and bound is re-judged here — for the composition entry at
|
|
96
|
-
* load (fail loud) and for each settings snapshot at its first use.
|
|
97
|
-
* @param config - raw plugin config or resolved settings snapshot.
|
|
98
|
-
* @param environment - this run's environment layers, or `undefined` outside
|
|
99
|
-
* the product CLI. Every layer may supply an endpoint: the product trusts the
|
|
100
|
-
* project it is launched in, so a checkout can point its own agent at the
|
|
101
|
-
* gateway that checkout is meant to use.
|
|
102
|
-
* @returns validated connection facts plus the credential reference.
|
|
103
|
-
*/
|
|
104
|
-
export declare function resolveAdapterOptions(config: Config, environment?: LaunchEnvironmentSnapshot): ResolvedDeepSeekOptions;
|
|
105
21
|
export declare function apply(ctx: Context, config: Config): void;
|
|
106
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Shared DeepSeek Messages API endpoint and header policy. @module dsh-llm-deepseek/messages-api */
|
|
2
|
+
/** Required opt-in for Messages file operations and file-referenced image requests. */
|
|
3
|
+
export declare const MESSAGES_FILES_BETA = "files-api-2025-04-14";
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the API root without duplicating an explicit provider version path.
|
|
6
|
+
* @param baseURL - validated configured endpoint root.
|
|
7
|
+
* @returns the root beneath which Messages resources are exposed.
|
|
8
|
+
*/
|
|
9
|
+
export declare function messagesApiRoot(baseURL: string): string;
|
|
10
|
+
//# sourceMappingURL=messages-api.d.ts.map
|