@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.
Files changed (99) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_NOTICES.md +10 -10
  3. package/bootstrap.mjs +1 -1
  4. package/cordis.patch.yml +418 -45
  5. package/package.json +279 -245
  6. package/plugins/auto-review/index.mjs +8 -5
  7. package/plugins/code-review/index.mjs +1 -1
  8. package/plugins/computer-use/index.mjs +37 -0
  9. package/plugins/cordis-config/plain.mjs +31 -0
  10. package/plugins/exec/cli.mjs +1 -1
  11. package/plugins/grok/index.mjs +28 -24
  12. package/plugins/memory/index.mjs +1 -1
  13. package/plugins/message-source/kind.mjs +20 -0
  14. package/plugins/openrouter/adapter.mjs +29 -13
  15. package/plugins/openrouter/index.mjs +31 -28
  16. package/plugins/session-bridge/communication.mjs +6 -3
  17. package/plugins/session-bridge/server.mjs +3 -2
  18. package/plugins/session-bridge/tasks.mjs +3 -1
  19. package/plugins/session-cards/index.mjs +1 -1
  20. package/plugins/time-marks/index.mjs +3 -2
  21. package/plugins/time-marks/marks.mjs +6 -5
  22. package/plugins/triggers/config.mjs +1 -1
  23. package/plugins/triggers/tools.mjs +1 -1
  24. package/plugins/tui-tools/doctor.mjs +1 -1
  25. package/plugins/tui-tools/index.mjs +16 -4
  26. package/plugins/ultra/policy.mjs +16 -0
  27. package/vendor/bash/index.js +455 -186
  28. package/vendor/bash/types/background.d.ts +38 -7
  29. package/vendor/bash/types/index.d.ts +20 -4
  30. package/vendor/bash/types/render.d.ts +28 -9
  31. package/vendor/command-goal/index.js +3 -1
  32. package/vendor/deepseek/index.js +1378 -1246
  33. package/vendor/deepseek/types/adapter.d.ts +16 -155
  34. package/vendor/deepseek/types/config.d.ts +127 -0
  35. package/vendor/deepseek/types/defaults.d.ts +24 -0
  36. package/vendor/deepseek/types/file-store.d.ts +5 -3
  37. package/vendor/deepseek/types/files-api.d.ts +12 -9
  38. package/vendor/deepseek/types/image-tokens.d.ts +24 -9
  39. package/vendor/deepseek/types/images.d.ts +35 -0
  40. package/vendor/deepseek/types/index.d.ts +10 -94
  41. package/vendor/deepseek/types/messages-api.d.ts +10 -0
  42. package/vendor/deepseek/types/model-info.d.ts +16 -0
  43. package/vendor/deepseek/types/models.d.ts +4 -0
  44. package/vendor/deepseek/types/replay.d.ts +27 -0
  45. package/vendor/deepseek/types/request-extensions.d.ts +16 -0
  46. package/vendor/deepseek/types/request-files.d.ts +49 -0
  47. package/vendor/deepseek/types/request-pricing.d.ts +32 -20
  48. package/vendor/deepseek/types/serialize.d.ts +17 -82
  49. package/vendor/deepseek/types/sse.d.ts +6 -22
  50. package/vendor/deepseek/types/translate.d.ts +13 -36
  51. package/vendor/deepseek/types/transport.d.ts +15 -0
  52. package/vendor/deepseek/types/types.d.ts +106 -167
  53. package/vendor/deepseek/types/wire-types.d.ts +62 -0
  54. package/vendor/persistent/index.js +9 -3
  55. package/vendor/subagent/index.js +11 -8
  56. package/vendor/subagent/model-selection-settings.js +12 -38
  57. package/vendor/subagent/types/index.d.ts +4 -3
  58. package/vendor/subagent/types/model-selection-settings.d.ts +12 -10
  59. package/vendor/subagent-core/index.js +401 -264
  60. package/vendor/subagent-core/typert.host.js +103 -113
  61. package/vendor/subagent-core/typert.remote-client.d.ts +1 -3
  62. package/vendor/subagent-core/typert.remote-client.js +23 -69
  63. package/vendor/subagent-core/types/archive-admission.d.ts +16 -0
  64. package/vendor/subagent-core/types/archive-admission.js +151 -0
  65. package/vendor/subagent-core/types/assistant-output.d.ts +2 -2
  66. package/vendor/subagent-core/types/catalog.d.ts +17 -10
  67. package/vendor/subagent-core/types/catalog.js +12 -6
  68. package/vendor/subagent-core/types/child-agent.d.ts +8 -5
  69. package/vendor/subagent-core/types/child-agent.js +11 -5
  70. package/vendor/subagent-core/types/continuation-activation.d.ts +17 -1
  71. package/vendor/subagent-core/types/continuation-activation.js +41 -4
  72. package/vendor/subagent-core/types/continuation-messages.d.ts +1 -1
  73. package/vendor/subagent-core/types/continuation-messages.js +7 -3
  74. package/vendor/subagent-core/types/continuation.d.ts +1 -1
  75. package/vendor/subagent-core/types/continuation.js +2 -2
  76. package/vendor/subagent-core/types/control-types.d.ts +29 -36
  77. package/vendor/subagent-core/types/control-types.js +2 -3
  78. package/vendor/subagent-core/types/control.d.ts +2 -28
  79. package/vendor/subagent-core/types/control.js +3 -40
  80. package/vendor/subagent-core/types/index.d.ts +45 -41
  81. package/vendor/subagent-core/types/index.js +46 -82
  82. package/vendor/subagent-core/types/internal.d.ts +2 -2
  83. package/vendor/subagent-core/types/internal.js +2 -2
  84. package/vendor/subagent-core/types/lifecycle.d.ts +1 -1
  85. package/vendor/subagent-core/types/lifecycle.js +5 -3
  86. package/vendor/subagent-core/types/list-children.d.ts +15 -32
  87. package/vendor/subagent-core/types/list-children.js +45 -49
  88. package/vendor/subagent-core/types/out-of-process.d.ts +1 -1
  89. package/vendor/subagent-core/types/projection-types.d.ts +9 -1
  90. package/vendor/subagent-core/types/projection.d.ts +5 -0
  91. package/vendor/subagent-core/types/projection.js +10 -4
  92. package/vendor/subagent-core/types/run-settlement.js +1 -1
  93. package/vendor/subagent-core/types/types.d.ts +2 -2
  94. package/vendor/terminal/index.js +94 -30
  95. package/vendor/tui/lib/index.mjs +2 -1
  96. package/vendor/tui/lib/kernel-panels.mjs +1 -1
  97. package/vendor/tui/lib/render/projection.mjs +50 -36
  98. package/presets/dscode/agent.cordis.yml +0 -321
  99. 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, ImageAttachmentAccess, LlmModelInfo, LlmProviderInfo, PreparedAdapterCall, LlmResolvedModelInfo, ModelModality, ResolvedRetryPolicy, StreamChunk, SystemPromptUpdate } from '@deepseek-ai/dsh-llm';
12
- import type { AttachmentStore, ImageAttachmentRef } from '@deepseek-ai/dsh-attachment';
13
- import type { CredentialRef } from '@deepseek-ai/dsh-credentials';
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 config;
7
+ private readonly dependencies;
150
8
  private readonly files;
151
- constructor(config: DeepSeekAdapterOptions);
152
- providerInfo(provider: string): LlmProviderInfo;
153
- providerRetryPolicy(_provider: string): ResolvedRetryPolicy;
154
- imageRequestPricing(_provider: string, model: string): ReturnType<LlmAdapter['imageRequestPricing']>;
155
- listModels(provider: string): Promise<readonly LlmModelInfo[]>;
156
- resolveModel(provider: string, model: string, _signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
157
- private modelInfoFor;
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 streamWithConnection;
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
- /** DeepSeek chat accepts at most 32 MiB per image even when it is referenced by file id. */
7
- export declare const MAX_CHAT_IMAGE_BYTES: number;
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 the chat endpoint rejects its remote id.
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
- /** OpenAI-compatible DeepSeek Files API transport. @module dsh-llm-deepseek/files-api */
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 object returned by the OpenAI-compatible endpoint. */
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
- purpose: 'user_data';
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 for the OpenAI-compatible `/files` endpoints. */
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 provider file object, including `expires_at`.
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 ascending or descending page of user-data files.
79
- * @param options - pagination, ordering, and cancellation.
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 v4 vision-token accounting: the provider's published image-token
3
- * calculator (api-docs.deepseek.com, Token & Token Usage) ported verbatim.
4
- * The provider resizes every request image onto a 14px-patch grid, downsamples
5
- * 3:1 per axis, and caps one image at 384 tokens; the port prices the
6
- * pad-to-4 alignment at its 3-token upper bound because request pricing has
7
- * no preceding-token position. Actual usage remains authoritative.
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
- * Vision tokens DeepSeek v4 charges for one request image of the given
13
- * dimensions, at the worst-case alignment pad.
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 384.
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 z from '@deepseek-ai/schemastery';
15
- import type { RetryPolicyConfig } from '@deepseek-ai/dsh-llm';
16
- import { type LaunchEnvironmentSnapshot } from '@deepseek-ai/dsh-launch-environment';
17
- import type { DeepSeekCatalogModel, DeepSeekConnectionOptions } from './adapter.ts';
18
- 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, DeepSeekAdapter, } from './adapter.ts';
19
- export type { DeepSeekAdapterOptions, DeepSeekCatalogModel, DeepSeekConnectionOptions } from './adapter.ts';
20
- export { DEFAULT_LOW_DETAIL_IMAGE_PIXEL_BUDGET, DEFAULT_MAX_IMAGES_PER_REQUEST, DEFAULT_MAX_REQUEST_FILES_BYTES, DEFAULT_REQUEST_IMAGE_MAX_BYTES, DEFAULT_REQUEST_IMAGE_PIXEL_BUDGET, deepSeekImageRequestPricing, resolveRequestImagePolicy, } from './request-pricing.ts';
21
- export { deepSeekImageTokens } from './image-tokens.ts';
22
- export { DeepSeekFileStore, MAX_CHAT_IMAGE_BYTES } from './file-store.ts';
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 './serialize.ts';
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