dsh-plugin-dev-kb 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.en.md +14 -8
- package/README.md +14 -8
- package/docs/banner.svg +25 -0
- package/kb/INDEX.md +6 -2
- package/kb/README.md +4 -4
- package/kb/extra/AGENTS.md +2 -2
- package/kb/extra/cookbook/adding-a-session-format-version.md +109 -0
- package/kb/extra/cookbook/adding-a-session-format-version.zh.md +109 -0
- package/kb/extra/cookbook/adding-a-vendored-package.md +1 -1
- package/kb/extra/cookbook/adding-a-vendored-package.zh.md +1 -1
- package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.md +1 -1
- package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
- package/kb/extra/deepseek-llm-api-wire-extensions.md +2 -2
- package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +2 -2
- package/kb/extra/development.md +13 -3
- package/kb/extra/development.zh.md +13 -3
- package/kb/extra/event-producer-consumer.md +33 -31
- package/kb/extra/event-producer-consumer.zh.md +34 -32
- package/kb/extra/i18n/README.md +2 -1
- package/kb/extra/i18n/README.zh.md +3 -2
- package/kb/extra/i18n/translation-prompt.md +1 -1
- package/kb/extra/module-graph.md +62 -24
- package/kb/extra/module-graph.zh.md +62 -24
- package/kb/extra/rescope.md +1 -1
- package/kb/extra/rescope.zh.md +1 -1
- package/kb/extra/session-format-status.md +47 -0
- package/kb/extra/session-format-status.zh.md +47 -0
- package/kb/extra/subsystems/agent-team.md +1 -1
- package/kb/extra/subsystems/agent-team.zh.md +1 -1
- package/kb/extra/subsystems/feedback.md +164 -30
- package/kb/extra/subsystems/feedback.zh.md +164 -30
- package/kb/extra/testing.md +4 -3
- package/kb/extra/testing.zh.md +4 -3
- package/kb/extra/web-styling.md +1 -0
- package/kb/extra/web-styling.zh.md +1 -0
- package/kb/meta/search-index.json +151 -103
- package/kb/meta/site-pages.txt +188 -184
- package/kb/meta/source.json +5 -5
- package/kb/meta/topics.md +2 -2
- package/kb/site/develop/basic/publish.md +1 -1
- package/kb/site/en/develop/basic/publish.md +1 -1
- package/kb/site/en/guide/providers.md +1 -1
- package/kb/site/en/guide/python-sdk.md +19 -3
- package/kb/site/en/reference/agent-lifecycle.md +12 -5
- package/kb/site/en/reference/capability-seams.md +10 -3
- package/kb/site/en/reference/config-catalog.md +173 -42
- package/kb/site/en/reference/cookbook/adding-a-tool.md +1 -1
- package/kb/site/en/reference/cookbook/extension-cookbook.md +1 -1
- package/kb/site/en/reference/index.md +18 -8
- package/kb/site/en/reference/persistence-catalog.md +121 -48
- package/kb/site/en/reference/subsystems/approval.md +1 -1
- package/kb/site/en/reference/subsystems/client-modules.md +9 -0
- package/kb/site/en/reference/subsystems/client-resources.md +94 -0
- package/kb/site/en/reference/subsystems/compaction.md +1 -1
- package/kb/site/en/reference/subsystems/core.md +79 -16
- package/kb/site/en/reference/subsystems/filesystem.md +15 -0
- package/kb/site/en/reference/subsystems/goal.md +37 -1
- package/kb/site/en/reference/subsystems/index.md +2 -0
- package/kb/site/en/reference/subsystems/invariants.md +1 -1
- package/kb/site/en/reference/subsystems/llm-streaming.md +20 -10
- package/kb/site/en/reference/subsystems/lsp.md +1 -1
- package/kb/site/en/reference/subsystems/persistence.md +36 -15
- package/kb/site/en/reference/subsystems/schedule.md +1 -1
- package/kb/site/en/reference/subsystems/scope.md +1 -1
- package/kb/site/en/reference/subsystems/session-reference.md +4 -0
- package/kb/site/en/reference/subsystems/session-telemetry.md +22 -6
- package/kb/site/en/reference/subsystems/session.md +64 -42
- package/kb/site/en/reference/subsystems/shell.md +9 -6
- package/kb/site/en/reference/subsystems/sidebar-right.md +151 -0
- package/kb/site/en/reference/subsystems/slots.md +41 -33
- package/kb/site/en/reference/subsystems/spill.md +13 -6
- package/kb/site/en/reference/subsystems/subagent.md +20 -13
- package/kb/site/en/reference/subsystems/subprocess.md +25 -26
- package/kb/site/en/reference/subsystems/system-prompt.md +3 -1
- package/kb/site/en/reference/subsystems/token-meter.md +2 -1
- package/kb/site/en/reference/subsystems/tools.md +5 -5
- package/kb/site/en/reference/subsystems/workspace.md +80 -1
- package/kb/site/en/reference/tool-catalog.md +46 -2
- package/kb/site/en/reference/tool-execution-pipeline.md +2 -2
- package/kb/site/guide/providers.md +1 -1
- package/kb/site/guide/python-sdk.md +19 -3
- package/kb/site/reference/agent-lifecycle.md +12 -5
- package/kb/site/reference/capability-seams.md +10 -3
- package/kb/site/reference/config-catalog.md +173 -42
- package/kb/site/reference/cookbook/adding-a-tool.md +1 -1
- package/kb/site/reference/cookbook/extension-cookbook.md +1 -1
- package/kb/site/reference/index.md +18 -8
- package/kb/site/reference/persistence-catalog.md +127 -54
- package/kb/site/reference/subsystems/approval.md +1 -1
- package/kb/site/reference/subsystems/client-modules.md +9 -0
- package/kb/site/reference/subsystems/client-resources.md +94 -0
- package/kb/site/reference/subsystems/compaction.md +1 -1
- package/kb/site/reference/subsystems/core.md +79 -16
- package/kb/site/reference/subsystems/filesystem.md +15 -0
- package/kb/site/reference/subsystems/goal.md +37 -1
- package/kb/site/reference/subsystems/index.md +14 -12
- package/kb/site/reference/subsystems/invariants.md +1 -1
- package/kb/site/reference/subsystems/llm-streaming.md +20 -10
- package/kb/site/reference/subsystems/lsp.md +1 -1
- package/kb/site/reference/subsystems/persistence.md +36 -15
- package/kb/site/reference/subsystems/schedule.md +1 -1
- package/kb/site/reference/subsystems/scope.md +1 -1
- package/kb/site/reference/subsystems/session-reference.md +4 -0
- package/kb/site/reference/subsystems/session-telemetry.md +22 -6
- package/kb/site/reference/subsystems/session.md +64 -42
- package/kb/site/reference/subsystems/shell.md +9 -6
- package/kb/site/reference/subsystems/sidebar-right.md +151 -0
- package/kb/site/reference/subsystems/slots.md +41 -33
- package/kb/site/reference/subsystems/spill.md +13 -6
- package/kb/site/reference/subsystems/subagent.md +20 -13
- package/kb/site/reference/subsystems/subprocess.md +25 -26
- package/kb/site/reference/subsystems/system-prompt.md +3 -1
- package/kb/site/reference/subsystems/token-meter.md +2 -1
- package/kb/site/reference/subsystems/tools.md +5 -5
- package/kb/site/reference/subsystems/workspace.md +80 -1
- package/kb/site/reference/tool-catalog.md +46 -2
- package/kb/site/reference/tool-execution-pipeline.md +2 -2
- package/lib/index.js +25 -44
- package/package.json +3 -2
- package/skills/dsh-plugin-dev-kb.md +3 -3
|
@@ -217,7 +217,7 @@ export interface Config {
|
|
|
217
217
|
}
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
-
Source: [`packages/api/session-controller/src/index.ts:
|
|
220
|
+
Source: [`packages/api/session-controller/src/index.ts:71`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/session-controller/src/index.ts)
|
|
221
221
|
|
|
222
222
|
<a id="deepseek-aidsh-api-settings-controller"></a>
|
|
223
223
|
|
|
@@ -233,6 +233,34 @@ export interface Config {
|
|
|
233
233
|
|
|
234
234
|
Source: [`packages/api/settings-controller/src/index.ts:36`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/settings-controller/src/index.ts)
|
|
235
235
|
|
|
236
|
+
<a id="deepseek-aidsh-api-workspace-files"></a>
|
|
237
|
+
|
|
238
|
+
## `@deepseek-ai/dsh-api-workspace-files`
|
|
239
|
+
|
|
240
|
+
Requires: `fs` · `sandboxPolicy` · `sessions` · `typert`
|
|
241
|
+
|
|
242
|
+
```ts config-catalog
|
|
243
|
+
/** Deployment caps on one page or one listing. */
|
|
244
|
+
export interface Config {
|
|
245
|
+
/**
|
|
246
|
+
* Inclusive byte cap on one page's text and on one byte window.
|
|
247
|
+
*
|
|
248
|
+
* A page above this fails; it is not shortened, because a silently cut page
|
|
249
|
+
* reads as the whole page. A byte window asking for more is refused the same
|
|
250
|
+
* way. The file itself has no size cap: a caller pages through it.
|
|
251
|
+
*/
|
|
252
|
+
readonly maxBytes: number
|
|
253
|
+
/** Inclusive byte cap on a complete-file read; larger files are refused, never truncated. */
|
|
254
|
+
readonly maxFileBytes: number
|
|
255
|
+
/** Default and largest page size in lines; a request asking for more is refused. */
|
|
256
|
+
readonly maxLines: number
|
|
257
|
+
/** Cap on returned directory entries; the rest is dropped and reported cut. */
|
|
258
|
+
readonly maxEntries: number
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Source: [`packages/api/workspace-files/src/index.ts:69`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/workspace-files/src/index.ts)
|
|
263
|
+
|
|
236
264
|
<a id="deepseek-aidsh-attachment-local"></a>
|
|
237
265
|
|
|
238
266
|
## `@deepseek-ai/dsh-attachment-local`
|
|
@@ -313,17 +341,19 @@ export type Config = LocalConfig
|
|
|
313
341
|
|
|
314
342
|
Depends on: [`LocalConfig`](#deepseek-aidsh-bash-local)
|
|
315
343
|
|
|
316
|
-
Source: [`packages/shell/bash-sandbox/src/index.ts:
|
|
344
|
+
Source: [`packages/shell/bash-sandbox/src/index.ts:36`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/bash-sandbox/src/index.ts)
|
|
317
345
|
|
|
318
346
|
<a id="deepseek-aidsh-client-connection"></a>
|
|
319
347
|
|
|
320
348
|
## `@deepseek-ai/dsh-client-connection`
|
|
321
349
|
|
|
322
|
-
Requires: `
|
|
350
|
+
Requires: `credentials`
|
|
323
351
|
|
|
324
352
|
```ts config-catalog
|
|
325
|
-
/**
|
|
353
|
+
/** Browser authentication, request limits, and connection recovery configuration. */
|
|
326
354
|
export interface ConnectionConfig {
|
|
355
|
+
/** Browser recovery timing, injected into each served page. */
|
|
356
|
+
recovery?: ConnectionRecoveryConfig
|
|
327
357
|
/**
|
|
328
358
|
* Authorities this deployment serves beyond loopback: exact `host:port`, or
|
|
329
359
|
* port-less `host` matching any port. The /api trust fence refuses any
|
|
@@ -338,9 +368,26 @@ export interface ConnectionConfig {
|
|
|
338
368
|
/** Maximum buffered JSON body for every `/api` request. Default: 300 MiB. */
|
|
339
369
|
maxRequestBodyBytes?: number
|
|
340
370
|
}
|
|
371
|
+
|
|
372
|
+
/** Timing for generation readiness and automatic reconnection. */
|
|
373
|
+
export interface ConnectionRecoveryConfig {
|
|
374
|
+
/** First-retry delay cap in ms; actual delay is 50–100% of the cap. Default: 500. */
|
|
375
|
+
backoffBaseMs?: number
|
|
376
|
+
/** Finite growth factor of at least 1 per failed attempt; 1 keeps a fixed cap. Default: 2. */
|
|
377
|
+
backoffFactor?: number
|
|
378
|
+
/** Maximum retry delay cap in ms; retries continue at this cap. Default: 10000. */
|
|
379
|
+
backoffMaxMs?: number
|
|
380
|
+
/**
|
|
381
|
+
* Delay before reporting a slow handshake, without cancelling it. Default: 3000.
|
|
382
|
+
* Omitted when readiness, failure, cancellation, or the hard deadline occurs first.
|
|
383
|
+
*/
|
|
384
|
+
generationReadyWarnMs?: number
|
|
385
|
+
/** Deadline in ms for readiness, including physical connection setup. Default: 15000. */
|
|
386
|
+
generationReadyTimeoutMs?: number
|
|
387
|
+
}
|
|
341
388
|
```
|
|
342
389
|
|
|
343
|
-
Source: [`packages/client/connection/src/index.ts:
|
|
390
|
+
Source: [`packages/client/connection/src/index.ts:72`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/connection/src/index.ts)
|
|
344
391
|
|
|
345
392
|
<a id="deepseek-aidsh-client-hmr"></a>
|
|
346
393
|
|
|
@@ -729,7 +776,7 @@ export interface Config {
|
|
|
729
776
|
}
|
|
730
777
|
```
|
|
731
778
|
|
|
732
|
-
Source: [`packages/fs/fs-local/src/index.ts:
|
|
779
|
+
Source: [`packages/fs/fs-local/src/index.ts:42`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/fs/fs-local/src/index.ts)
|
|
733
780
|
|
|
734
781
|
<a id="deepseek-aidsh-fs-sandbox"></a>
|
|
735
782
|
|
|
@@ -819,7 +866,7 @@ export interface Config {
|
|
|
819
866
|
}
|
|
820
867
|
```
|
|
821
868
|
|
|
822
|
-
Source: [`packages/hooks/hooks-claude-code/src/index.ts:
|
|
869
|
+
Source: [`packages/hooks/hooks-claude-code/src/index.ts:44`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/hooks/hooks-claude-code/src/index.ts)
|
|
823
870
|
|
|
824
871
|
<a id="deepseek-aidsh-hooks-codex"></a>
|
|
825
872
|
|
|
@@ -846,7 +893,7 @@ export interface Config {
|
|
|
846
893
|
}
|
|
847
894
|
```
|
|
848
895
|
|
|
849
|
-
Source: [`packages/hooks/hooks-codex/src/index.ts:
|
|
896
|
+
Source: [`packages/hooks/hooks-codex/src/index.ts:43`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/hooks/hooks-codex/src/index.ts)
|
|
850
897
|
|
|
851
898
|
<a id="deepseek-aidsh-host-directory-picker-browse"></a>
|
|
852
899
|
|
|
@@ -878,6 +925,37 @@ export interface Config {
|
|
|
878
925
|
|
|
879
926
|
Source: [`packages/host/frontend-static/src/index.ts:30`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/host/frontend-static/src/index.ts)
|
|
880
927
|
|
|
928
|
+
<a id="deepseek-aidsh-host-open-in-app"></a>
|
|
929
|
+
|
|
930
|
+
## `@deepseek-ai/dsh-host-open-in-app`
|
|
931
|
+
|
|
932
|
+
Requires: `webServer` · `connection` · `subprocess`
|
|
933
|
+
|
|
934
|
+
```ts config-catalog
|
|
935
|
+
/** Open-in-app host configuration. */
|
|
936
|
+
export interface Config {
|
|
937
|
+
/**
|
|
938
|
+
* Per-command deadline in milliseconds for catalog-resolution host
|
|
939
|
+
* commands (`xcode-select`, the Windows registry reads).
|
|
940
|
+
*/
|
|
941
|
+
readonly probeTimeoutMs: number
|
|
942
|
+
/**
|
|
943
|
+
* Per-command deadline in milliseconds for icon-extraction host commands
|
|
944
|
+
* (`plutil`/`sips` on macOS, the PowerShell extraction on Windows).
|
|
945
|
+
*/
|
|
946
|
+
readonly iconTimeoutMs: number
|
|
947
|
+
/**
|
|
948
|
+
* Early-failure watch window per launch, in milliseconds: a launcher still
|
|
949
|
+
* running when the window closes counts as launched and keeps running, so
|
|
950
|
+
* this bounds how long the open route holds a successful launch, not how
|
|
951
|
+
* long an application may live.
|
|
952
|
+
*/
|
|
953
|
+
readonly launchWatchMs: number
|
|
954
|
+
}
|
|
955
|
+
```
|
|
956
|
+
|
|
957
|
+
Source: [`packages/host/open-in-app/src/index.ts:50`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/host/open-in-app/src/index.ts)
|
|
958
|
+
|
|
881
959
|
<a id="deepseek-aidsh-host-webserver"></a>
|
|
882
960
|
|
|
883
961
|
## `@deepseek-ai/dsh-host-webserver`
|
|
@@ -963,7 +1041,7 @@ export interface Config {
|
|
|
963
1041
|
maxTokens?: number
|
|
964
1042
|
/** Positive context capacity used when the selected model has no exact value (default 1,000,000). */
|
|
965
1043
|
defaultContextWindow?: number
|
|
966
|
-
/** Advisory models shown by discovery consumers; defaults to V4 Flash, V4 Pro, and V4 Flash Vision Exp. */
|
|
1044
|
+
/** Advisory models shown by discovery consumers; defaults to V41 Flash, V4 Flash, V4 Pro, and V4 Flash Vision Exp. */
|
|
967
1045
|
models?: DeepSeekCatalogModel[]
|
|
968
1046
|
/** Maximum provider idle time while one stream read is outstanding (default five minutes). */
|
|
969
1047
|
streamIdleTimeoutMs?: number
|
|
@@ -1009,12 +1087,18 @@ export interface DeepSeekCatalogModel {
|
|
|
1009
1087
|
imagePixelBudget?: number | 'low'
|
|
1010
1088
|
/** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
|
|
1011
1089
|
imageMaxBytes?: number
|
|
1090
|
+
/**
|
|
1091
|
+
* `'in-history'` declares that the endpoint reads the latest `system`
|
|
1092
|
+
* message at any position of the conversation as the complete effective
|
|
1093
|
+
* system prompt; omission means only a leading system message is read.
|
|
1094
|
+
*/
|
|
1095
|
+
systemPromptUpdate?: SystemPromptUpdate
|
|
1012
1096
|
}
|
|
1013
1097
|
```
|
|
1014
1098
|
|
|
1015
|
-
Depends on: [`ModelModality`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts)
|
|
1099
|
+
Depends on: [`ModelModality`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts) · [`SystemPromptUpdate`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts)
|
|
1016
1100
|
|
|
1017
|
-
Source: [`packages/llm/llm-deepseek/src/index.ts:
|
|
1101
|
+
Source: [`packages/llm/llm-deepseek/src/index.ts:134`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-deepseek/src/index.ts)
|
|
1018
1102
|
|
|
1019
1103
|
<a id="deepseek-aidsh-llm-pi-ai"></a>
|
|
1020
1104
|
|
|
@@ -1233,8 +1317,14 @@ export interface PiAiCompatProfile {
|
|
|
1233
1317
|
chatTemplateKwargs?: NonNullable<OpenAICompletionsCompat['chatTemplateKwargs']>
|
|
1234
1318
|
/** Arguments sent as `chat_template_args` under the `baseten` thinking format; `openai-completions`. */
|
|
1235
1319
|
chatTemplateArgs?: NonNullable<OpenAICompletionsCompat['chatTemplateArgs']>
|
|
1236
|
-
/**
|
|
1320
|
+
/** Alias for `thinkingTokenBudgetField: "thinking_token_budget"`; an explicit field wins. `openai-completions`. */
|
|
1237
1321
|
supportsThinkingTokenBudget?: boolean
|
|
1322
|
+
/** Request field carrying the reasoning budget from `thinkingBudgets`; omitted unless configured. `openai-completions`. */
|
|
1323
|
+
thinkingTokenBudgetField?: PiAiThinkingTokenBudgetField
|
|
1324
|
+
/** vLLM scheduler `priority`; lower runs earlier, and the server must enable priority scheduling. Omitted unless configured. */
|
|
1325
|
+
vllmPriority?: number
|
|
1326
|
+
/** Whether `openai-responses` accepts `max_output_tokens`; `false` omits it. Azure and Codex ignore this shared compat field. */
|
|
1327
|
+
supportsMaxOutputTokens?: boolean
|
|
1238
1328
|
/**
|
|
1239
1329
|
* Whether the endpoint accepts `strict` in tool definitions;
|
|
1240
1330
|
* `openai-completions`, the three Responses protocols, `bedrock-converse-stream`.
|
|
@@ -1276,11 +1366,14 @@ export type PiAiReasoningEfforts = Partial<Record<ModelThinkingLevel, string | n
|
|
|
1276
1366
|
|
|
1277
1367
|
/** One reasoning-dispatch wire format a profile may name. */
|
|
1278
1368
|
export type PiAiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
|
|
1369
|
+
|
|
1370
|
+
/** The reasoning-budget field spellings pi-ai accepts. */
|
|
1371
|
+
export type PiAiThinkingTokenBudgetField = NonNullable<OpenAICompletionsCompat['thinkingTokenBudgetField']>
|
|
1279
1372
|
```
|
|
1280
1373
|
|
|
1281
1374
|
Depends on: `Api` (`@earendil-works/pi-ai`) · `CacheRetention` (`@earendil-works/pi-ai`) · `Model` (`@earendil-works/pi-ai`) · `ModelThinkingLevel` (`@earendil-works/pi-ai`) · `OpenAICompletionsCompat` (`@earendil-works/pi-ai`) · [`RetryPolicyConfig`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts) · `ThinkingBudgets` (`@earendil-works/pi-ai`) · `Transport` (`@earendil-works/pi-ai`)
|
|
1282
1375
|
|
|
1283
|
-
Source: [`packages/llm/llm-pi-ai/src/config.ts:
|
|
1376
|
+
Source: [`packages/llm/llm-pi-ai/src/config.ts:221`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-pi-ai/src/config.ts)
|
|
1284
1377
|
|
|
1285
1378
|
<a id="deepseek-aidsh-llm-replay"></a>
|
|
1286
1379
|
|
|
@@ -1352,12 +1445,14 @@ export interface ReplayModelConfig {
|
|
|
1352
1445
|
* {@link reasoningEfforts} or call resolution rejects the route.
|
|
1353
1446
|
*/
|
|
1354
1447
|
defaultReasoningEffort?: string
|
|
1448
|
+
/** Optional in-history system prompt replacement for a keyless replay route. */
|
|
1449
|
+
systemPromptUpdate?: SystemPromptUpdate
|
|
1355
1450
|
}
|
|
1356
1451
|
```
|
|
1357
1452
|
|
|
1358
|
-
Depends on: [`ModelModality`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts)
|
|
1453
|
+
Depends on: [`ModelModality`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts) · [`SystemPromptUpdate`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm/src/index.ts)
|
|
1359
1454
|
|
|
1360
|
-
Source: [`packages/test-support/llm-replay/src/index.ts:
|
|
1455
|
+
Source: [`packages/test-support/llm-replay/src/index.ts:1123`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/llm-replay/src/index.ts)
|
|
1361
1456
|
|
|
1362
1457
|
<a id="deepseek-aidsh-llm-retry"></a>
|
|
1363
1458
|
|
|
@@ -1491,7 +1586,7 @@ Source: [`packages/mcp/mcp-client/src/index.ts:98`](https://github.com/deepseek-
|
|
|
1491
1586
|
|
|
1492
1587
|
## `@deepseek-ai/dsh-message-feedback`
|
|
1493
1588
|
|
|
1494
|
-
Requires: `
|
|
1589
|
+
Requires: `sessionPersistence` · `sessions`
|
|
1495
1590
|
|
|
1496
1591
|
```ts config-catalog
|
|
1497
1592
|
/** Required deployment policy for optional notes. */
|
|
@@ -1501,7 +1596,7 @@ export interface Config {
|
|
|
1501
1596
|
}
|
|
1502
1597
|
```
|
|
1503
1598
|
|
|
1504
|
-
Source: [`packages/feedback/message-feedback/src/index.ts:
|
|
1599
|
+
Source: [`packages/feedback/message-feedback/src/index.ts:40`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/feedback/message-feedback/src/index.ts)
|
|
1505
1600
|
|
|
1506
1601
|
<a id="deepseek-aidsh-permission-presets"></a>
|
|
1507
1602
|
|
|
@@ -1552,12 +1647,17 @@ Requires: `systemPrompt`
|
|
|
1552
1647
|
/** Plugin config: the persona text this composition contributes. */
|
|
1553
1648
|
export interface Config {
|
|
1554
1649
|
/**
|
|
1555
|
-
* Persona prose rendered as the `deployment:persona` section. A template:
|
|
1650
|
+
* Persona prose rendered as the `deployment:persona-prefix` section. A template:
|
|
1556
1651
|
* complete `{{…}}` groups interpolate strictly against registered prompt
|
|
1557
1652
|
* variables. Empty text drops the section at render, matching the registry.
|
|
1558
1653
|
*/
|
|
1559
|
-
|
|
1560
|
-
/**
|
|
1654
|
+
prefix: string
|
|
1655
|
+
/**
|
|
1656
|
+
* Persona suffix template rendered after first-party guidance. Omitted or empty
|
|
1657
|
+
* text shadows the deployment suffix away; interpolation is strict.
|
|
1658
|
+
*/
|
|
1659
|
+
suffix?: string
|
|
1660
|
+
/** Make the prefix the complete system prompt, suppressing the suffix and every other section. */
|
|
1561
1661
|
complete?: boolean
|
|
1562
1662
|
/** Suppress dynamic runtime-context snapshots for this persona's agent scope. */
|
|
1563
1663
|
includeRuntimeContext?: boolean
|
|
@@ -1802,7 +1902,7 @@ export interface Config {
|
|
|
1802
1902
|
}
|
|
1803
1903
|
```
|
|
1804
1904
|
|
|
1805
|
-
Source: [`packages/session/session-log-deepseek/src/index.ts:
|
|
1905
|
+
Source: [`packages/session/session-log-deepseek/src/index.ts:38`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-log-deepseek/src/index.ts)
|
|
1806
1906
|
|
|
1807
1907
|
<a id="deepseek-aidsh-session-log-export"></a>
|
|
1808
1908
|
|
|
@@ -1846,7 +1946,7 @@ export interface Config {
|
|
|
1846
1946
|
export type JsonlCompression = 'zstd' | 'none'
|
|
1847
1947
|
```
|
|
1848
1948
|
|
|
1849
|
-
Source: [`packages/session/session-persistence-jsonl/src/index.ts:
|
|
1949
|
+
Source: [`packages/session/session-persistence-jsonl/src/index.ts:88`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-persistence-jsonl/src/index.ts)
|
|
1850
1950
|
|
|
1851
1951
|
<a id="deepseek-aidsh-session-projection-cache"></a>
|
|
1852
1952
|
|
|
@@ -1933,8 +2033,10 @@ export interface Config {
|
|
|
1933
2033
|
maxReferences?: number
|
|
1934
2034
|
/** Default host candidate-list limit. */
|
|
1935
2035
|
candidateLimit?: number
|
|
1936
|
-
/**
|
|
2036
|
+
/** Explicit maximum rendered UTF-8 bytes per source; absent uses the model-relative budget with a 64 KiB floor. */
|
|
1937
2037
|
maxReferenceBytes?: number
|
|
2038
|
+
/** Fraction of the model context window per source, estimated at four bytes per token; between zero and one. */
|
|
2039
|
+
referenceContextFraction?: number
|
|
1938
2040
|
}
|
|
1939
2041
|
```
|
|
1940
2042
|
|
|
@@ -1953,7 +2055,7 @@ Requires: `sessions`
|
|
|
1953
2055
|
* and shutdown deadline at plugin load; `DISABLED` reads neither.
|
|
1954
2056
|
*/
|
|
1955
2057
|
export interface Config {
|
|
1956
|
-
/**
|
|
2058
|
+
/** Defaults to `FEEDBACK_ONLY`: capture session history only when feedback is explicitly submitted. */
|
|
1957
2059
|
mode?: SessionTelemetryMode
|
|
1958
2060
|
/**
|
|
1959
2061
|
* Passed verbatim to the SDK's OTLP/HTTP log exporter — the complete
|
|
@@ -1976,7 +2078,6 @@ export interface Config {
|
|
|
1976
2078
|
|
|
1977
2079
|
/** Session-sharing policy selected by {@link Config.mode}. */
|
|
1978
2080
|
export enum SessionTelemetryMode {
|
|
1979
|
-
FULL = 'FULL',
|
|
1980
2081
|
FEEDBACK_ONLY = 'FEEDBACK_ONLY',
|
|
1981
2082
|
DISABLED = 'DISABLED',
|
|
1982
2083
|
}
|
|
@@ -1984,7 +2085,7 @@ export enum SessionTelemetryMode {
|
|
|
1984
2085
|
|
|
1985
2086
|
Depends on: `BatchLogRecordProcessorOptions` (`@opentelemetry/sdk-logs`) · `OTLPExporterNodeConfigBase` (`@opentelemetry/otlp-exporter-base`)
|
|
1986
2087
|
|
|
1987
|
-
Source: [`packages/session/session-telemetry-otel/src/index.ts:
|
|
2088
|
+
Source: [`packages/session/session-telemetry-otel/src/index.ts:100`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-telemetry-otel/src/index.ts)
|
|
1988
2089
|
|
|
1989
2090
|
<a id="deepseek-aidsh-session-title"></a>
|
|
1990
2091
|
|
|
@@ -2169,7 +2270,7 @@ export interface Config {
|
|
|
2169
2270
|
}
|
|
2170
2271
|
```
|
|
2171
2272
|
|
|
2172
|
-
Source: [`packages/spill/spill-policy/src/index.ts:
|
|
2273
|
+
Source: [`packages/spill/spill-policy/src/index.ts:61`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/spill/spill-policy/src/index.ts)
|
|
2173
2274
|
|
|
2174
2275
|
<a id="deepseek-aidsh-storage-domain"></a>
|
|
2175
2276
|
|
|
@@ -2333,7 +2434,7 @@ export interface Config {
|
|
|
2333
2434
|
* `bypassPermissions` explicitly skips permission checks.
|
|
2334
2435
|
*/
|
|
2335
2436
|
permissionMode?: ClaudeCodePermissionMode
|
|
2336
|
-
/** Grace in milliseconds
|
|
2437
|
+
/** Grace in milliseconds between Claude Code managed-range termination tiers. */
|
|
2337
2438
|
disposeGraceMs?: number
|
|
2338
2439
|
}
|
|
2339
2440
|
|
|
@@ -2363,7 +2464,7 @@ export interface Config {
|
|
|
2363
2464
|
env?: Record<string, string>
|
|
2364
2465
|
/** Native non-interactive permission mode fixed for this Provider instance. */
|
|
2365
2466
|
permissionMode?: CodexPermissionMode
|
|
2366
|
-
/** Grace in milliseconds
|
|
2467
|
+
/** Grace in milliseconds between app-server managed-range termination tiers. */
|
|
2367
2468
|
disposeGraceMs?: number
|
|
2368
2469
|
}
|
|
2369
2470
|
|
|
@@ -2478,24 +2579,29 @@ export interface Config {
|
|
|
2478
2579
|
}
|
|
2479
2580
|
```
|
|
2480
2581
|
|
|
2481
|
-
Source: [`packages/e2b/subprocess-e2b/src/index.ts:
|
|
2582
|
+
Source: [`packages/e2b/subprocess-e2b/src/index.ts:26`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/e2b/subprocess-e2b/src/index.ts)
|
|
2482
2583
|
|
|
2483
2584
|
<a id="deepseek-aidsh-system-prompt"></a>
|
|
2484
2585
|
|
|
2485
2586
|
## `@deepseek-ai/dsh-system-prompt`
|
|
2486
2587
|
|
|
2487
2588
|
```ts config-catalog
|
|
2488
|
-
/** Plugin config: the deployment-authored fragment of the system prompt (see {@link Config.
|
|
2589
|
+
/** Plugin config: the deployment-authored fragment of the system prompt (see {@link Config.personaPrefix} for its contract). */
|
|
2489
2590
|
export interface Config {
|
|
2490
2591
|
/** Include the fixed DeepSeek Harness identity before the deployment persona (default true). */
|
|
2491
2592
|
includeHarnessIdentity?: boolean
|
|
2492
2593
|
/** Include dynamic runtime-context snapshots in model history (default true). */
|
|
2493
2594
|
includeRuntimeContext?: boolean
|
|
2494
2595
|
/**
|
|
2495
|
-
* Deployment-wide
|
|
2496
|
-
* `deployment:persona` shadows it; `{{variable}}` references are strict.
|
|
2596
|
+
* Deployment-wide persona prefix template before first-party guidance. A scoped section named
|
|
2597
|
+
* `deployment:persona-prefix` shadows it; `{{variable}}` references are strict.
|
|
2497
2598
|
*/
|
|
2498
|
-
|
|
2599
|
+
personaPrefix?: string
|
|
2600
|
+
/**
|
|
2601
|
+
* Persona suffix template after first-party guidance. A scoped `deployment:persona-suffix`
|
|
2602
|
+
* section shadows it; `{{variable}}` references are strict. Defaults to empty.
|
|
2603
|
+
*/
|
|
2604
|
+
personaSuffix?: string
|
|
2499
2605
|
/**
|
|
2500
2606
|
* Model-facing tool names in order, with {@link TOOL_ORDER_REST} exactly once.
|
|
2501
2607
|
* Invalid fields fail at load and unknown names fail at assembly; known names
|
|
@@ -2505,7 +2611,7 @@ export interface Config {
|
|
|
2505
2611
|
}
|
|
2506
2612
|
```
|
|
2507
2613
|
|
|
2508
|
-
Source: [`packages/core/system-prompt/src/index.ts:
|
|
2614
|
+
Source: [`packages/core/system-prompt/src/index.ts:242`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/system-prompt/src/index.ts)
|
|
2509
2615
|
|
|
2510
2616
|
<a id="deepseek-aidsh-terminal-bash"></a>
|
|
2511
2617
|
|
|
@@ -2640,7 +2746,7 @@ export interface Config {
|
|
|
2640
2746
|
}
|
|
2641
2747
|
```
|
|
2642
2748
|
|
|
2643
|
-
Source: [`packages/shell/tool-bash-persistent/src/index.ts:
|
|
2749
|
+
Source: [`packages/shell/tool-bash-persistent/src/index.ts:435`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/tool-bash-persistent/src/index.ts)
|
|
2644
2750
|
|
|
2645
2751
|
<a id="deepseek-aidsh-tool-fs"></a>
|
|
2646
2752
|
|
|
@@ -2769,6 +2875,22 @@ export interface Config {
|
|
|
2769
2875
|
|
|
2770
2876
|
Source: [`packages/lsp/tool-lsp/src/index.ts:57`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/lsp/tool-lsp/src/index.ts)
|
|
2771
2877
|
|
|
2878
|
+
<a id="deepseek-aidsh-tool-present"></a>
|
|
2879
|
+
|
|
2880
|
+
## `@deepseek-ai/dsh-tool-present`
|
|
2881
|
+
|
|
2882
|
+
Requires: `tools` · `fs` · `sessionProjections`
|
|
2883
|
+
|
|
2884
|
+
```ts config-catalog
|
|
2885
|
+
/** Per-call delivery limit. */
|
|
2886
|
+
export interface Config {
|
|
2887
|
+
/** Maximum number of files in one call. */
|
|
2888
|
+
maxFiles: number
|
|
2889
|
+
}
|
|
2890
|
+
```
|
|
2891
|
+
|
|
2892
|
+
Source: [`packages/fs/tool-present/src/index.ts:15`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/fs/tool-present/src/index.ts)
|
|
2893
|
+
|
|
2772
2894
|
<a id="deepseek-aidsh-tool-pwsh"></a>
|
|
2773
2895
|
|
|
2774
2896
|
## `@deepseek-ai/dsh-tool-pwsh`
|
|
@@ -2898,8 +3020,8 @@ export interface Config {
|
|
|
2898
3020
|
*/
|
|
2899
3021
|
toolName?: string
|
|
2900
3022
|
/**
|
|
2901
|
-
* Sample the Host `subagent-model-selection`
|
|
2902
|
-
*
|
|
3023
|
+
* Sample the Host `subagent-model-selection` setting for each new top-level
|
|
3024
|
+
* Session and inherit that decision in its child Sessions.
|
|
2903
3025
|
*/
|
|
2904
3026
|
modelSelectionSettings?: boolean
|
|
2905
3027
|
/**
|
|
@@ -2919,7 +3041,7 @@ export interface Config {
|
|
|
2919
3041
|
*/
|
|
2920
3042
|
agentOptions?: AgentOptions
|
|
2921
3043
|
/**
|
|
2922
|
-
* Per-child persona that shadows `deployment:persona`. Requires the
|
|
3044
|
+
* Per-child persona that shadows `deployment:persona-prefix`. Requires the
|
|
2923
3045
|
* provider's `persona` capability; omission preserves the deployment persona.
|
|
2924
3046
|
*/
|
|
2925
3047
|
persona?: string
|
|
@@ -2949,7 +3071,7 @@ export interface Config {
|
|
|
2949
3071
|
|
|
2950
3072
|
Depends on: [`AgentOptions`](./subsystems/core.md)
|
|
2951
3073
|
|
|
2952
|
-
Source: [`packages/subagent/tool-subagent/src/index.ts:
|
|
3074
|
+
Source: [`packages/subagent/tool-subagent/src/index.ts:48`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/tool-subagent/src/index.ts)
|
|
2953
3075
|
|
|
2954
3076
|
<a id="deepseek-aidsh-tool-terminal"></a>
|
|
2955
3077
|
|
|
@@ -3331,7 +3453,8 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
|
|
|
3331
3453
|
- `@deepseek-ai/dsh-authorization` — requires `credentials` ([`packages/credentials/authorization/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/credentials/authorization/src/index.ts))
|
|
3332
3454
|
- `@deepseek-ai/dsh-client-file-upload` — requires `agents` · `attachments` · `commands` · `connection` ([`packages/client/file-upload/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/file-upload/src/index.ts))
|
|
3333
3455
|
- `@deepseek-ai/dsh-client-locale` ([`packages/client/locale/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/locale/src/index.ts))
|
|
3334
|
-
- `@deepseek-ai/dsh-client-modules` — requires `
|
|
3456
|
+
- `@deepseek-ai/dsh-client-modules` — requires `loader` ([`packages/client/modules/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/modules/src/index.ts))
|
|
3457
|
+
- `@deepseek-ai/dsh-client-resources` ([`packages/client/resources/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/resources/src/index.ts))
|
|
3335
3458
|
- `@deepseek-ai/dsh-client-ui-agent-preset` ([`packages/client/ui-agent-preset/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-agent-preset/src/index.ts))
|
|
3336
3459
|
- `@deepseek-ai/dsh-client-ui-approval` ([`packages/client/ui-approval/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-approval/src/index.ts))
|
|
3337
3460
|
- `@deepseek-ai/dsh-client-ui-attachment` ([`packages/client/ui-attachment/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-attachment/src/index.ts))
|
|
@@ -3340,7 +3463,7 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
|
|
|
3340
3463
|
- `@deepseek-ai/dsh-client-ui-commands` ([`packages/client/ui-commands/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-commands/src/index.ts))
|
|
3341
3464
|
- `@deepseek-ai/dsh-client-ui-conversation` ([`packages/client/ui-conversation/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-conversation/src/index.ts))
|
|
3342
3465
|
- `@deepseek-ai/dsh-client-ui-cordis` ([`packages/extensions/ui-cordis/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/extensions/ui-cordis/src/index.ts))
|
|
3343
|
-
- `@deepseek-ai/dsh-client-ui-deliverables` — requires `systemPrompt` ([`packages/client/ui-deliverables/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-deliverables/src/index.ts))
|
|
3466
|
+
- `@deepseek-ai/dsh-client-ui-deliverables` — requires `systemPrompt` · `connection` · `sessionQuery` · `sessionController` · `workspaceFiles` · `fs` · `sandboxPolicy` ([`packages/client/ui-deliverables/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-deliverables/src/index.ts))
|
|
3344
3467
|
- `@deepseek-ai/dsh-client-ui-directory-picker-browse` ([`packages/client/ui-directory-picker-browse/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-directory-picker-browse/src/index.ts))
|
|
3345
3468
|
- `@deepseek-ai/dsh-client-ui-directory-picker-native` ([`packages/client/ui-directory-picker-native/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-directory-picker-native/src/index.ts))
|
|
3346
3469
|
- `@deepseek-ai/dsh-client-ui-goal` ([`packages/client/ui-goal/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-goal/src/index.ts))
|
|
@@ -3349,6 +3472,7 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
|
|
|
3349
3472
|
- `@deepseek-ai/dsh-client-ui-layout` ([`packages/client/ui-layout/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-layout/src/index.ts))
|
|
3350
3473
|
- `@deepseek-ai/dsh-client-ui-message-feedback` ([`packages/client/ui-message-feedback/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-message-feedback/src/index.ts))
|
|
3351
3474
|
- `@deepseek-ai/dsh-client-ui-model-selection` ([`packages/client/ui-model-selection/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-model-selection/src/index.ts))
|
|
3475
|
+
- `@deepseek-ai/dsh-client-ui-open-in-app` ([`packages/client/ui-open-in-app/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-open-in-app/src/index.ts))
|
|
3352
3476
|
- `@deepseek-ai/dsh-client-ui-permission-presets` ([`packages/client/ui-permission-presets/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-permission-presets/src/index.ts))
|
|
3353
3477
|
- `@deepseek-ai/dsh-client-ui-plan` ([`packages/client/ui-plan/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-plan/src/index.ts))
|
|
3354
3478
|
- `@deepseek-ai/dsh-client-ui-reference` ([`packages/client/ui-reference/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-reference/src/index.ts))
|
|
@@ -3361,6 +3485,9 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
|
|
|
3361
3485
|
- `@deepseek-ai/dsh-client-ui-settings-plugin-inventory` ([`packages/client/ui-settings-plugin-inventory/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-settings-plugin-inventory/src/index.ts))
|
|
3362
3486
|
- `@deepseek-ai/dsh-client-ui-settings-plugins` ([`packages/client/ui-settings-plugins/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-settings-plugins/src/index.ts))
|
|
3363
3487
|
- `@deepseek-ai/dsh-client-ui-sidebar` ([`packages/client/ui-sidebar/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-sidebar/src/index.ts))
|
|
3488
|
+
- `@deepseek-ai/dsh-client-ui-sidebar-documentpreview` ([`packages/client/ui-sidebar-documentpreview/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-sidebar-documentpreview/src/index.ts))
|
|
3489
|
+
- `@deepseek-ai/dsh-client-ui-sidebar-files` ([`packages/client/ui-sidebar-files/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-sidebar-files/src/index.ts))
|
|
3490
|
+
- `@deepseek-ai/dsh-client-ui-sidebar-right` ([`packages/client/ui-sidebar-right/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-sidebar-right/src/index.ts))
|
|
3364
3491
|
- `@deepseek-ai/dsh-client-ui-skill` ([`packages/client/ui-skill/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-skill/src/index.ts))
|
|
3365
3492
|
- `@deepseek-ai/dsh-client-ui-subagent` ([`packages/client/ui-subagent/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-subagent/src/index.ts))
|
|
3366
3493
|
- `@deepseek-ai/dsh-client-ui-theme` ([`packages/client/ui-theme/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-theme/src/index.ts))
|
|
@@ -3434,8 +3561,10 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
|
|
|
3434
3561
|
- `@deepseek-ai/dsh-atomic-write` ([`packages/util/atomic-write/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/atomic-write/src/index.ts))
|
|
3435
3562
|
- `@deepseek-ai/dsh-base` ([`packages/bundle/base/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/base/src/index.ts))
|
|
3436
3563
|
- `@deepseek-ai/dsh-brand` ([`packages/util/brand/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/brand/src/index.ts))
|
|
3564
|
+
- `@deepseek-ai/dsh-chunked-list` ([`packages/util/chunked-list/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/chunked-list/src/index.ts))
|
|
3437
3565
|
- `@deepseek-ai/dsh-client-store` ([`packages/client/store/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/store/src/index.ts))
|
|
3438
3566
|
- `@deepseek-ai/dsh-client-test-runtime` ([`packages/test-support/client-runtime/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/client-runtime/src/index.ts))
|
|
3567
|
+
- `@deepseek-ai/dsh-client-ui-dockkit` ([`packages/client/ui-dockkit/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-dockkit/src/index.ts))
|
|
3439
3568
|
- `@deepseek-ai/dsh-client-ui-primitives` ([`packages/client/ui-primitives/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-primitives/src/index.ts))
|
|
3440
3569
|
- `@deepseek-ai/dsh-client-ui-slots` ([`packages/client/ui-slots/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-slots/src/index.ts))
|
|
3441
3570
|
- `@deepseek-ai/dsh-client-web` ([`packages/client/web/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/web/src/index.ts))
|
|
@@ -3453,6 +3582,7 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
|
|
|
3453
3582
|
- `@deepseek-ai/dsh-loader-smoke` ([`packages/test-support/loader-smoke/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/loader-smoke/src/index.ts))
|
|
3454
3583
|
- `@deepseek-ai/dsh-native-command` ([`packages/util/native-command/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/native-command/src/index.ts))
|
|
3455
3584
|
- `@deepseek-ai/dsh-output-retention` ([`packages/util/output-retention/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/output-retention/src/index.ts))
|
|
3585
|
+
- `@deepseek-ai/dsh-package-manifest` ([`packages/util/package-manifest/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/package-manifest/src/index.ts))
|
|
3456
3586
|
- `@deepseek-ai/dsh-sandbox-windows-acl` ([`packages/sandbox/sandbox-windows-acl/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/sandbox/sandbox-windows-acl/src/index.ts))
|
|
3457
3587
|
- `@deepseek-ai/dsh-scope` ([`packages/core/scope/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/scope/src/index.ts))
|
|
3458
3588
|
- `@deepseek-ai/dsh-sdk-client` ([`packages/sdk/client/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/sdk/client/src/index.ts))
|
|
@@ -3462,6 +3592,7 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
|
|
|
3462
3592
|
- `@deepseek-ai/dsh-session-format-catalog` ([`packages/session/session-format-catalog/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-format-catalog/src/index.ts))
|
|
3463
3593
|
- `@deepseek-ai/dsh-session-format-v0-to-v1` ([`packages/session/session-format-v0-to-v1/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-format-v0-to-v1/src/index.ts))
|
|
3464
3594
|
- `@deepseek-ai/dsh-session-format-v1-to-v2` ([`packages/session/session-format-v1-to-v2/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-format-v1-to-v2/src/index.ts))
|
|
3595
|
+
- `@deepseek-ai/dsh-session-format-v2-to-v3` ([`packages/session/session-format-v2-to-v3/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-format-v2-to-v3/src/index.ts))
|
|
3465
3596
|
- `@deepseek-ai/dsh-session-snapshot` ([`packages/test-support/session-snapshot/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/session-snapshot/src/index.ts))
|
|
3466
3597
|
- `@deepseek-ai/dsh-session-telemetry` ([`packages/session/session-telemetry/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-telemetry/src/index.ts))
|
|
3467
3598
|
- `@deepseek-ai/dsh-session-title-llm` ([`packages/session/session-title-llm/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-title-llm/src/index.ts))
|
|
@@ -41,7 +41,7 @@ Registration is effect-based: disposing the plugin fiber unregisters the tool. S
|
|
|
41
41
|
|
|
42
42
|
## Rules of the execute() contract
|
|
43
43
|
|
|
44
|
-
- **Args are validated for you.** `defineTool` validates model-generated `arguments` against the unified `ParameterSchemaSpec` before `execute` runs (types, required keys, literal constraints, exact-one unions, and nested values
|
|
44
|
+
- **Args are validated for you.** `defineTool` validates model-generated `arguments` against the unified `ParameterSchemaSpec` before `execute` runs (types, required keys, literal constraints, exact-one unions, and nested values), so inside `execute` the args match `InferArgs`. Explicit object nodes declare `additionalProperties: true | false`; the implicit parameter root stays open. You still hand-check constraints the DSL does not express, such as non-empty strings, positive numbers, or cross-field rules. Raw JSON-Schema tools registered directly own their input validation.
|
|
45
45
|
- **Registration borrows your readonly definition.** A typed same-process contribution is not a serialization boundary; do not mutate its schema or replace callbacks after registration. `schemas()` materializes only the explicit model-facing projection. To hot-swap a tool, dispose its owning effect and register the replacement; mutable state inside the callback's closure remains ordinary plugin state.
|
|
46
46
|
- **Execution identity is protected.** The registry materializes `arguments` as detached lossless JSON in one recursive pass, freezes that value before policy starts, and assigns an opaque `exec.token`; `callId`, `name`, `arguments`, `agent`, `token`, the required caller-owned `signal`, and an optional enclosing-transport `parent` token stay immutable through dispatch. `parent` is identity-only and exposes no live outer execution. Treat `args` as readonly input. Only an around-dispatch wrapper receives a mutable view, and it may replace and restore the required `exec.signal` to impose a deadline but cannot remove it.
|
|
47
47
|
- **Declare and return one canonical JSON value.** `output.schema` uses `ValueSchemaSpec` and may have an object, array, scalar, or null root. `execute` returns only the inferred value; the registry snapshots it as lossless JSON, validates it, freezes it, and passes it to `output.render(args, value)`. Do not return content blocks from the body or make callers parse prose for ids and fields.
|
|
@@ -4,7 +4,7 @@ editSource: "docs/cookbook/extension-cookbook.md"
|
|
|
4
4
|
|
|
5
5
|
# Cookbook: extension plugin shapes
|
|
6
6
|
|
|
7
|
-
Reference patterns for harness extensions. The snippets omit imports and helper implementations and are not copy-paste-complete. For concrete authoring paths, see the [package checklist](./adding-a-package.md), [first-tool tutorial](../../develop/basic/tool.md), [tool reference](./adding-a-tool.md),
|
|
7
|
+
Reference patterns for harness extensions. The snippets omit imports and helper implementations and are not copy-paste-complete. For concrete authoring paths, see the [package checklist](./adding-a-package.md), [first-tool tutorial](../../develop/basic/tool.md), [tool reference](./adding-a-tool.md), [LLM adapter guide](./adding-an-llm-adapter.md), and [Session format version tutorial](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/cookbook/adding-a-session-format-version.md); the [architecture](../index.md) owns the system and extension-point map.
|
|
8
8
|
|
|
9
9
|
## A tool plugin
|
|
10
10
|
|