dsh-plugin-dev-kb 1.0.8 → 1.0.9

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 (169) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.en.md +6 -6
  3. package/README.md +6 -6
  4. package/kb/INDEX.md +19 -5
  5. package/kb/README.md +11 -10
  6. package/kb/extra/AGENTS.md +4 -4
  7. package/kb/extra/cookbook/adding-a-vendored-package.md +2 -2
  8. package/kb/extra/cookbook/adding-a-vendored-package.zh.md +2 -2
  9. package/kb/extra/deepseek-llm-api-wire-extensions.md +159 -0
  10. package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +159 -0
  11. package/kb/extra/development.md +8 -14
  12. package/kb/extra/development.zh.md +8 -14
  13. package/kb/extra/event-producer-consumer.md +47 -41
  14. package/kb/extra/event-producer-consumer.zh.md +47 -41
  15. package/kb/extra/glossary.md +1 -1
  16. package/kb/extra/glossary.zh.md +1 -1
  17. package/kb/extra/graph-atlas.md +0 -2
  18. package/kb/extra/graph-atlas.zh.md +0 -2
  19. package/kb/extra/i18n/README.md +4 -4
  20. package/kb/extra/i18n/README.zh.md +4 -4
  21. package/kb/extra/module-graph.md +680 -413
  22. package/kb/extra/module-graph.zh.md +681 -414
  23. package/kb/extra/postmortem/0001-acp-default-export-drops-inject.md +2 -2
  24. package/kb/extra/postmortem/0001-acp-default-export-drops-inject.zh.md +2 -2
  25. package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.md +2 -2
  26. package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +2 -2
  27. package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.md +2 -2
  28. package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.zh.md +2 -2
  29. package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +1 -1
  30. package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +1 -1
  31. package/kb/extra/rescope.md +2 -2
  32. package/kb/extra/rescope.zh.md +2 -2
  33. package/kb/extra/subsystems/agent-team.md +24 -1
  34. package/kb/extra/subsystems/agent-team.zh.md +24 -1
  35. package/kb/extra/subsystems/attachment.md +12 -4
  36. package/kb/extra/subsystems/attachment.zh.md +12 -4
  37. package/kb/extra/subsystems/extensions.md +18 -0
  38. package/kb/extra/subsystems/extensions.zh.md +18 -0
  39. package/kb/extra/subsystems/feedback.md +2 -2
  40. package/kb/extra/subsystems/feedback.zh.md +2 -2
  41. package/kb/extra/subsystems/todo.md +32 -0
  42. package/kb/extra/subsystems/todo.zh.md +32 -0
  43. package/kb/extra/subsystems/webhook.md +70 -0
  44. package/kb/extra/subsystems/webhook.zh.md +70 -0
  45. package/kb/extra/testing.md +11 -10
  46. package/kb/extra/testing.zh.md +8 -7
  47. package/kb/meta/search-index.json +269 -161
  48. package/kb/meta/site-pages.txt +182 -168
  49. package/kb/meta/source.json +5 -5
  50. package/kb/meta/topics.md +14 -6
  51. package/kb/site/develop/basic/publish.md +2 -2
  52. package/kb/site/develop/basic/tool.md +1 -1
  53. package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +4 -4
  54. package/kb/site/develop/framework/events.md +1 -1
  55. package/kb/site/develop/practice/dynamic-cordis.md +17 -0
  56. package/kb/site/develop/practice/llm-adapter.md +3 -3
  57. package/kb/site/en/develop/basic/publish.md +2 -2
  58. package/kb/site/en/develop/basic/tool.md +1 -1
  59. package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +4 -4
  60. package/kb/site/en/develop/framework/events.md +1 -1
  61. package/kb/site/en/develop/practice/dynamic-cordis.md +17 -0
  62. package/kb/site/en/develop/practice/llm-adapter.md +3 -3
  63. package/kb/site/en/guide/github-review.md +104 -0
  64. package/kb/site/en/guide/mcp-memory.md +103 -0
  65. package/kb/site/en/guide/python-sdk.md +80 -34
  66. package/kb/site/en/guide/schedule.md +21 -0
  67. package/kb/site/en/reference/agent-lifecycle.md +1 -1
  68. package/kb/{extra → site/en/reference}/api-gateway.md +11 -9
  69. package/kb/site/en/reference/capability-seams.md +115 -67
  70. package/kb/site/en/reference/config-catalog.md +358 -164
  71. package/kb/site/en/reference/cookbook/adding-a-package.md +2 -2
  72. package/kb/site/en/reference/cookbook/adding-a-settings-card.md +2 -2
  73. package/kb/site/en/reference/cookbook/adding-a-tool.md +11 -4
  74. package/kb/site/en/reference/cookbook/adding-an-llm-adapter.md +1 -1
  75. package/kb/site/en/reference/cookbook/extension-cookbook.md +6 -6
  76. package/kb/site/en/reference/cordis-api/inherited.md +1 -1
  77. package/kb/site/en/reference/cordis-primer.md +2 -1
  78. package/kb/site/en/reference/index.md +19 -7
  79. package/kb/site/en/reference/persistence-catalog.md +91 -44
  80. package/kb/site/en/reference/subsystems/approval.md +10 -10
  81. package/kb/site/en/reference/subsystems/client-modules.md +58 -16
  82. package/kb/site/en/reference/subsystems/code-runtime.md +3 -3
  83. package/kb/site/en/reference/subsystems/compaction.md +2 -2
  84. package/kb/site/en/reference/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +43 -24
  85. package/kb/site/en/reference/subsystems/core.md +70 -12
  86. package/kb/site/en/reference/subsystems/credentials.md +43 -3
  87. package/kb/site/en/reference/subsystems/filesystem.md +12 -2
  88. package/kb/site/en/reference/subsystems/index.md +6 -1
  89. package/kb/site/en/reference/subsystems/jobs.md +1 -1
  90. package/kb/site/en/reference/subsystems/llm-streaming.md +132 -11
  91. package/kb/site/en/reference/subsystems/permission-presets.md +1 -1
  92. package/kb/site/en/reference/subsystems/persistence.md +22 -3
  93. package/kb/site/en/reference/subsystems/plan.md +1 -1
  94. package/kb/site/en/reference/subsystems/session-projection.md +74 -33
  95. package/kb/site/en/reference/subsystems/session-query.md +9 -1
  96. package/kb/site/en/reference/subsystems/session-reference.md +28 -7
  97. package/kb/site/en/reference/subsystems/session-telemetry.md +2 -3
  98. package/kb/site/en/reference/subsystems/session.md +260 -41
  99. package/kb/site/en/reference/subsystems/settings.md +78 -1
  100. package/kb/site/en/reference/subsystems/skills.md +23 -0
  101. package/kb/site/en/reference/subsystems/slots.md +177 -0
  102. package/kb/site/en/reference/subsystems/spill.md +2 -2
  103. package/kb/site/en/reference/subsystems/storage.md +9 -1
  104. package/kb/site/en/reference/subsystems/subagent.md +90 -23
  105. package/kb/site/en/reference/subsystems/system-prompt.md +4 -4
  106. package/kb/site/en/reference/subsystems/token-meter.md +25 -10
  107. package/kb/site/en/reference/subsystems/tools.md +39 -39
  108. package/kb/site/en/reference/subsystems/typert.md +44 -37
  109. package/kb/site/en/reference/subsystems/user-questions.md +33 -33
  110. package/kb/site/en/reference/subsystems/web-client.md +98 -0
  111. package/kb/site/en/reference/subsystems/web-server.md +11 -5
  112. package/kb/site/en/reference/subsystems/web.md +7 -1
  113. package/kb/site/en/reference/subsystems/workspace.md +95 -2
  114. package/kb/site/en/reference/tool-catalog.md +76 -18
  115. package/kb/site/en/reference/tool-execution-pipeline.md +1 -1
  116. package/kb/site/guide/github-review.md +104 -0
  117. package/kb/site/guide/mcp-memory.md +103 -0
  118. package/kb/site/guide/python-sdk.md +87 -41
  119. package/kb/site/guide/schedule.md +21 -0
  120. package/kb/site/reference/agent-lifecycle.md +1 -1
  121. package/kb/{extra/api-gateway.zh.md → site/reference/api-gateway.md} +11 -9
  122. package/kb/site/reference/capability-seams.md +115 -67
  123. package/kb/site/reference/config-catalog.md +357 -163
  124. package/kb/site/reference/cookbook/adding-a-package.md +2 -2
  125. package/kb/site/reference/cookbook/adding-a-settings-card.md +2 -2
  126. package/kb/site/reference/cookbook/adding-a-tool.md +11 -4
  127. package/kb/site/reference/cookbook/adding-an-llm-adapter.md +1 -1
  128. package/kb/site/reference/cookbook/extension-cookbook.md +6 -6
  129. package/kb/site/reference/cordis-api/inherited.md +1 -1
  130. package/kb/site/reference/cordis-primer.md +2 -1
  131. package/kb/site/reference/index.md +19 -7
  132. package/kb/site/reference/persistence-catalog.md +87 -40
  133. package/kb/site/reference/subsystems/approval.md +10 -10
  134. package/kb/site/reference/subsystems/client-modules.md +58 -16
  135. package/kb/site/reference/subsystems/code-runtime.md +3 -3
  136. package/kb/site/reference/subsystems/compaction.md +2 -2
  137. package/kb/site/reference/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +43 -24
  138. package/kb/site/reference/subsystems/core.md +70 -12
  139. package/kb/site/reference/subsystems/credentials.md +43 -3
  140. package/kb/site/reference/subsystems/filesystem.md +12 -2
  141. package/kb/site/reference/subsystems/index.md +6 -1
  142. package/kb/site/reference/subsystems/jobs.md +1 -1
  143. package/kb/site/reference/subsystems/llm-streaming.md +132 -11
  144. package/kb/site/reference/subsystems/persistence.md +22 -3
  145. package/kb/site/reference/subsystems/plan.md +1 -1
  146. package/kb/site/reference/subsystems/session-projection.md +74 -33
  147. package/kb/site/reference/subsystems/session-query.md +9 -1
  148. package/kb/site/reference/subsystems/session-reference.md +28 -7
  149. package/kb/site/reference/subsystems/session-telemetry.md +2 -3
  150. package/kb/site/reference/subsystems/session.md +260 -41
  151. package/kb/site/reference/subsystems/settings.md +78 -1
  152. package/kb/site/reference/subsystems/skills.md +23 -0
  153. package/kb/site/reference/subsystems/slots.md +177 -0
  154. package/kb/site/reference/subsystems/spill.md +2 -2
  155. package/kb/site/reference/subsystems/storage.md +9 -1
  156. package/kb/site/reference/subsystems/subagent.md +90 -23
  157. package/kb/site/reference/subsystems/system-prompt.md +4 -4
  158. package/kb/site/reference/subsystems/token-meter.md +25 -10
  159. package/kb/site/reference/subsystems/tools.md +39 -39
  160. package/kb/site/reference/subsystems/typert.md +44 -37
  161. package/kb/site/reference/subsystems/user-questions.md +33 -33
  162. package/kb/site/reference/subsystems/web-client.md +98 -0
  163. package/kb/site/reference/subsystems/web-server.md +11 -5
  164. package/kb/site/reference/subsystems/web.md +7 -1
  165. package/kb/site/reference/subsystems/workspace.md +95 -2
  166. package/kb/site/reference/tool-catalog.md +76 -18
  167. package/kb/site/reference/tool-execution-pipeline.md +1 -1
  168. package/package.json +2 -2
  169. package/skills/dsh-plugin-dev-kb.md +8 -6
@@ -17,7 +17,7 @@ A `Requires:` line lists the service keys the plugin `inject`s: its `cordis.yml`
17
17
 
18
18
  ## `@deepseek-ai/dsh-acp`
19
19
 
20
- Requires: `agents`
20
+ Requires: `agents` · `llm` · `sessionPersistence` · `sessions`
21
21
 
22
22
  ```ts config-catalog
23
23
  /** Plugin config: the provider/model selection used for each ACP-created agent. */
@@ -26,6 +26,8 @@ export interface AcpConfig {
26
26
  provider?: string
27
27
  /** Model name for created agents. */
28
28
  model?: string
29
+ /** Maximum summaries returned by one session/list page. */
30
+ sessionListPageSize?: number
29
31
  /** Runtime-only transport override; production uses stdio. */
30
32
  stream?: Stream
31
33
  }
@@ -33,62 +35,7 @@ export interface AcpConfig {
33
35
 
34
36
  Depends on: `Stream` (`@agentclientprotocol/sdk`)
35
37
 
36
- Source: [`packages/acp/acp/src/index.ts:71`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/acp/acp/src/index.ts)
37
-
38
- <a id="deepseek-aidsh-acp-demo"></a>
39
-
40
- ## `@deepseek-ai/dsh-acp-demo`
41
-
42
- ```ts config-catalog
43
- /**
44
- * App config: the swappable per-deployment values. `provider` and `model` configure
45
- * each agent the ACP bridge creates at `session/new`; `persona` is the
46
- * deployment persona (forwarded to the system-prompt plugin); `toolOrder` is
47
- * the explicit model-facing tool order (forwarded to the system-prompt plugin);
48
- * `tools` is the tool registry's config (its presentation `mode`, forwarded
49
- * through agent-spine-demo); `persistenceRoot` is the JSONL backend's directory.
50
- */
51
- export interface Config {
52
- /** Provider route for ACP-created agents. */
53
- provider: string
54
- /** Model name for ACP-created agents (must have a registered adapter). */
55
- model: string
56
- /** Bundled agent-loop concurrency cap; `1` is serial and omission uses its default. */
57
- maxParallelToolCalls?: number
58
- /** Deployment persona (the system-prompt plugin's `persona` config). */
59
- persona?: string
60
- /** Explicit model-facing tool order (the system-prompt plugin's `toolOrder` config; see dsh-system-prompt). */
61
- toolOrder?: string[]
62
- /** Tool-registry config — its presentation `mode` (forwarded through agent-spine-demo; see dsh-tools). */
63
- tools?: ToolsConfig
64
- /** DeepSeek Harness home directory exposed to bash and used for local skill discovery. */
65
- dshHome?: string
66
- /** Fallback session-title limits forwarded through agent-spine-demo. */
67
- sessionTitle?: NonNullable<agentCore.Config['sessionTitle']>
68
- /** Directory for JSONL sessions and the derived query index. Defaults to `./.sessions`. */
69
- persistenceRoot?: string
70
- /** Write delta-chunk runs as packed storage rows (the JSONL backend's `packChunks`). Defaults to `true`. */
71
- packChunks?: boolean
72
- /** JSONL artifact encoding; defaults to checksummed Zstandard frames. */
73
- persistenceCompression?: JsonlCompression
74
- /** Controls automatic AGENTS.md/CLAUDE.md loading; configure a byte budget or set `false`. */
75
- workspaceContext: agentCore.Config['workspaceContext']
76
- /** Skill registry, local-provider, and model-facing consumer config forwarded to agent-spine-demo. */
77
- skills?: agentCore.SkillConfig
78
- /** Model-facing bash tool config forwarded through agent-core. */
79
- toolBash?: NonNullable<agentCore.Config['toolBash']>
80
- /** Process-local background-job admission config forwarded through agent-core. */
81
- jobs?: NonNullable<agentCore.Config['jobs']>
82
- /** Generic background-job controls forwarded through agent-core; set false to omit their tools. */
83
- toolJobs?: NonNullable<agentCore.Config['toolJobs']>
84
- /** Persisted same-session goals; owner defaults enable them, or false disables the stack and tools. */
85
- goals?: agentCore.GoalConfig | false
86
- }
87
- ```
88
-
89
- Depends on: [`agentCore`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/examples/agent-spine-demo/src/index.ts) · [`JsonlCompression`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-persistence-jsonl/src/index.ts) · [`ToolsConfig`](#deepseek-aidsh-tools)
90
-
91
- Source: [`packages/examples/acp-demo/src/index.ts:39`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/examples/acp-demo/src/index.ts)
38
+ Source: [`packages/acp/acp/src/index.ts:74`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/acp/acp/src/index.ts)
92
39
 
93
40
  <a id="deepseek-aidsh-agent-default-model"></a>
94
41
 
@@ -181,9 +128,17 @@ export interface Config {
181
128
  default: string
182
129
  /** Scanned roots in precedence order; an earlier root wins a duplicate id. */
183
130
  roots: PresetRoot[]
131
+ /**
132
+ * Prepend this package's bundled shipped presets as a `system` root, before
133
+ * every configured root, so the shipped set always mounts and wins a
134
+ * duplicate id. The default survives a whole-`config` patch replacement;
135
+ * only an explicit `false` — a deployment supplying purely its own presets,
136
+ * or an embedder using the roster as bare machinery — drops the set.
137
+ */
138
+ includeShippedRoot: boolean
184
139
  /**
185
140
  * Append the harness home's `USER_PRESET_DIR` as a `user` root, after every
186
- * configured root. False mounts a roster over `roots` alone.
141
+ * configured root. False mounts a roster without the derived writable root.
187
142
  */
188
143
  includeUserRoot: boolean
189
144
  }
@@ -204,7 +159,7 @@ export interface PresetRoot {
204
159
  export type PresetTrust = 'system' | 'user'
205
160
  ```
206
161
 
207
- Source: [`packages/preset/agent-presets/src/preset.ts:52`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/preset/agent-presets/src/preset.ts)
162
+ Source: [`packages/preset/agent-presets/src/preset.ts:54`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/preset/agent-presets/src/preset.ts)
208
163
 
209
164
  <a id="deepseek-aidsh-agent-spine-demo"></a>
210
165
 
@@ -217,7 +172,8 @@ Source: [`packages/preset/agent-presets/src/preset.ts:52`](https://github.com/de
217
172
  * bridge, simply omits it), `includeHarnessIdentity`, `includeRuntimeContext`,
218
173
  * `persona`, and `toolOrder` to the system-prompt plugin (the fixed opener,
219
174
  * dynamic-context policy, deployment persona, and explicit model-facing tool
220
- * order), the `tools` object to the tool registry (its presentation `mode`),
175
+ * order), the `tools` object to the tool
176
+ * registry (its presentation `mode`),
221
177
  * `dshHome` to bash environment and local skill discovery, `sessionTitle` to
222
178
  * the fallback title service, `skills` to the
223
179
  * skill registry/local provider/tool consumer, `workspaceContext` to the
@@ -296,7 +252,7 @@ export interface GoalConfig {
296
252
 
297
253
  Depends on: [`AgentLoopConfig`](#deepseek-aidsh-agent-loop) · [`GoalDomainConfig`](#deepseek-aidsh-goal) · [`InvariantConfig`](#deepseek-aidsh-invariants) · [`JobsConfig`](#deepseek-aidsh-jobs-local) · [`SessionTitleConfig`](#deepseek-aidsh-session-title) · [`SkillFileSystem`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill-filesystem/src/index.ts) · [`SkillRegistryConfig`](#deepseek-aidsh-skill) · [`SystemPromptConfig`](#deepseek-aidsh-system-prompt) · [`toolBash`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/tool-bash/src/index.ts) · [`toolGoal`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/goal/tool-goal/src/index.ts) · [`toolJobs`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/jobs/tool-jobs/src/index.ts) · [`ToolsConfig`](#deepseek-aidsh-tools) · [`toolSkill`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/tool-skill/src/index.ts) · [`workspaceContext`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/agent-instructions/src/index.ts)
298
254
 
299
- Source: [`packages/examples/agent-spine-demo/src/index.ts:92`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/examples/agent-spine-demo/src/index.ts)
255
+ Source: [`packages/examples/agent-spine-demo/src/index.ts:93`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/examples/agent-spine-demo/src/index.ts)
300
256
 
301
257
  <a id="deepseek-aidsh-agent-tool-presentation"></a>
302
258
 
@@ -309,7 +265,7 @@ Requires: `tools`
309
265
  export interface Config {
310
266
  /**
311
267
  * The form this agent's model sees. `native` sends every visible schema,
312
- * `code` sends only `run_code` plus a generated SDK, `both` sends both.
268
+ * `ptc` sends only `run_code` plus a generated SDK, `both` sends both.
313
269
  * Required rather than defaulted: the deployment default is what a preset
314
270
  * without this row already gets, so an omitted value would mean the row was
315
271
  * composed for nothing.
@@ -322,6 +278,54 @@ Depends on: [`ToolPresentationMode`](./subsystems/tools.md)
322
278
 
323
279
  Source: [`packages/core/agent-tool-presentation/src/index.ts:38`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/agent-tool-presentation/src/index.ts)
324
280
 
281
+ <a id="deepseek-aidsh-api-gateway"></a>
282
+
283
+ ## `@deepseek-ai/dsh-api-gateway`
284
+
285
+ Requires: `typert`
286
+
287
+ ```ts config-catalog
288
+ /** Gateway transport configuration. */
289
+ export interface Config {
290
+ /** WebSocket Ping interval from 1 through 2,147,483,647 milliseconds. @default 30000 */
291
+ readonly websocketHeartbeatIntervalMs?: number
292
+ }
293
+ ```
294
+
295
+ Source: [`packages/api/gateway/src/index.ts:117`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/gateway/src/index.ts)
296
+
297
+ <a id="deepseek-aidsh-api-session-controller"></a>
298
+
299
+ ## `@deepseek-ai/dsh-api-session-controller`
300
+
301
+ Requires: `agentDefaultModel` · `agents` · `attachments` · `llm` · `sessions` · `sessionProjections` · `sessionQuery` · `typert` · `workspaceRegistry`
302
+
303
+ ```ts config-catalog
304
+ /** Session Controller deployment policy. */
305
+ export interface Config {
306
+ /** Maximum cold Session artifact size eligible for one full projection observation. */
307
+ readonly coldBlankProbeMaxBytes?: number
308
+ /** Override platform desktop-opener detection. */
309
+ readonly nativeOpen?: boolean
310
+ }
311
+ ```
312
+
313
+ Source: [`packages/api/session-controller/src/index.ts:67`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/session-controller/src/index.ts)
314
+
315
+ <a id="deepseek-aidsh-api-settings-controller"></a>
316
+
317
+ ## `@deepseek-ai/dsh-api-settings-controller`
318
+
319
+ ```ts config-catalog
320
+ /** Native document-opening policy. */
321
+ export interface Config {
322
+ /** Override platform desktop-opener detection. */
323
+ readonly nativeOpen?: boolean
324
+ }
325
+ ```
326
+
327
+ Source: [`packages/api/settings-controller/src/index.ts:41`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/settings-controller/src/index.ts)
328
+
325
329
  <a id="deepseek-aidsh-attachment-local"></a>
326
330
 
327
331
  ## `@deepseek-ai/dsh-attachment-local`
@@ -341,16 +345,21 @@ export interface Config {
341
345
  maxImagePixels?: number
342
346
  /** Maximum intrinsic width and maximum intrinsic height accepted for one submitted image. Default: 8192px. */
343
347
  maxImageDimension?: number
344
- /** Long-edge pixel cap of the stored provider-independent normalized image. */
348
+ /** Total-pixel budget of the stored provider-independent normalized image. */
349
+ normalizedImageMaxPixels?: number
350
+ /** Long-edge pixel cap of the stored provider-independent normalized image, applied after the total-pixel budget. */
345
351
  normalizedImageMaxDimension?: number
346
- /** Encoded-byte safety cap of the stored provider-independent normalized image. */
352
+ /**
353
+ * Encoded-byte target of the stored provider-independent normalized image;
354
+ * the smallest quality-ladder output is kept when no quality fits.
355
+ */
347
356
  normalizedImageMaxBytes?: number
348
357
  /** Maximum simultaneous normalization or request-image transformations in this service instance. */
349
358
  imageCompressionConcurrency?: number
350
359
  }
351
360
  ```
352
361
 
353
- Source: [`packages/attachment/attachment-local/src/index.ts:51`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/attachment/attachment-local/src/index.ts)
362
+ Source: [`packages/attachment/attachment-local/src/index.ts:55`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/attachment/attachment-local/src/index.ts)
354
363
 
355
364
  <a id="deepseek-aidsh-bash-local"></a>
356
365
 
@@ -403,7 +412,7 @@ Source: [`packages/shell/bash-sandbox/src/index.ts:35`](https://github.com/deeps
403
412
 
404
413
  ## `@deepseek-ai/dsh-client-connection`
405
414
 
406
- Requires: `webServer`
415
+ Requires: `webServer` · `credentials`
407
416
 
408
417
  ```ts config-catalog
409
418
  /** Plugin config: the deployment's non-loopback serving authorities. */
@@ -413,16 +422,18 @@ export interface ConnectionConfig {
413
422
  * port-less `host` matching any port. The /api trust fence refuses any
414
423
  * request whose Host is neither loopback nor listed here, so a
415
424
  * non-loopback (`0.0.0.0`) deployment must declare the names it is reached
416
- * by (the dsh CLI derives the machine's LAN IP literals itself). An entry
417
- * that is not a bare, canonical authority fails the plugin load.
425
+ * by; the Web runtime derives LAN IP literals from an active all-interface
426
+ * bind. An entry that is not a bare, canonical authority fails plugin load.
418
427
  */
419
428
  trustedHosts?: string[]
429
+ /** Absolute browser-session lifetime in days. Default: 30. */
430
+ cookieMaxAgeDays?: number
420
431
  /** Maximum buffered JSON body for every `/api` request. Default: 300 MiB. */
421
432
  maxRequestBodyBytes?: number
422
433
  }
423
434
  ```
424
435
 
425
- Source: [`packages/client/connection/src/index.ts:50`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/connection/src/index.ts)
436
+ Source: [`packages/client/connection/src/index.ts:70`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/connection/src/index.ts)
426
437
 
427
438
  <a id="deepseek-aidsh-client-hmr"></a>
428
439
 
@@ -619,7 +630,75 @@ export interface Config {
619
630
  }
620
631
  ```
621
632
 
622
- Source: [`packages/experimental/agent-team/src/types.ts:125`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team/src/types.ts)
633
+ Source: [`packages/experimental/agent-team/src/types.ts:131`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team/src/types.ts)
634
+
635
+ <a id="deepseek-aidsh-experimental-inspector"></a>
636
+
637
+ ## `@deepseek-ai/dsh-experimental-inspector`
638
+
639
+ Requires: `webServer`
640
+
641
+ ```ts config-catalog
642
+ /** Host plugin configuration. Fetch capture is enabled by default. */
643
+ export interface Config extends Omit<InspectorOptions, 'clientOrigins'> {
644
+ /** Browser origins allowed to open the Client ingest WebSocket. */
645
+ clientOrigins?: string[]
646
+ }
647
+
648
+ /** User-facing Host options; every memory and lifecycle bound is configurable. */
649
+ export interface InspectorOptions {
650
+ /** Loopback address used by the Worker HTTP and WebSocket endpoint. */
651
+ readonly host?: '127.0.0.1'
652
+ /** First port to bind; occupied ports advance until one is available. */
653
+ readonly port?: number
654
+ /** Additional exact browser origins admitted to the Client ingest socket. */
655
+ readonly clientOrigins?: readonly string[]
656
+ /** Whether to observe calls made through the current global fetch function. */
657
+ readonly captureFetch?: boolean
658
+ /** Maximum request-body prefix retained for one fetch. */
659
+ readonly maxRequestBodyBytes?: number
660
+ /** Maximum response-body prefix retained for one fetch. */
661
+ readonly maxResponseBodyBytes?: number
662
+ /** Maximum raw bytes encoded into one body observation. */
663
+ readonly maxBodyChunkBytes?: number
664
+ /** Maximum total request and response body bytes retained by the Worker. */
665
+ readonly maxJournalBytes?: number
666
+ /** Maximum active and completed fetch requests retained by the Worker. */
667
+ readonly maxRetainedRequests?: number
668
+ /** Maximum encoded bytes accepted in one source transport frame. */
669
+ readonly maxSourceFrameBytes?: number
670
+ /** Maximum observation records accepted in one source batch. */
671
+ readonly maxSourceRecordsPerFrame?: number
672
+ /** Maximum records waiting in one producer queue. */
673
+ readonly maxQueuedRecords?: number
674
+ /** Maximum encoded bytes waiting in one producer queue. */
675
+ readonly maxQueuedBytes?: number
676
+ /** Maximum time allowed for the Worker to become ready. */
677
+ readonly startupTimeoutMs?: number
678
+ /** Grace period before a stopping Worker is terminated. */
679
+ readonly stopTimeoutMs?: number
680
+ /** Initial upper bound for randomized Client reconnect delay. */
681
+ readonly clientReconnectBaseMs?: number
682
+ /** Maximum upper bound for randomized Client reconnect delay. */
683
+ readonly clientReconnectMaxMs?: number
684
+ /** Deadline for one Worker-to-Client Runtime or Sources request. */
685
+ readonly clientRuntimeTimeoutMs?: number
686
+ /** Deadline for one non-CDP semantic query. */
687
+ readonly queryTimeoutMs?: number
688
+ /** Maximum live object handles retained per Client Runtime session. */
689
+ readonly maxClientRuntimeObjects?: number
690
+ /** Maximum descriptors returned by one Client property request. */
691
+ readonly maxClientRuntimeProperties?: number
692
+ /** Maximum encoded bytes read for one Client script or source map. */
693
+ readonly maxClientSourceBytes?: number
694
+ /** Maximum Context and Fiber nodes retained in one realm snapshot. */
695
+ readonly maxCordisNodes?: number
696
+ /** Disconnected Cordis snapshots retained after their live realm closes. */
697
+ readonly maxDisconnectedCordisTrees?: number
698
+ }
699
+ ```
700
+
701
+ Source: [`packages/experimental/inspector/src/index.ts:66`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/inspector/src/index.ts)
623
702
 
624
703
  <a id="deepseek-aidsh-experimental-tool-agent-team"></a>
625
704
 
@@ -637,7 +716,7 @@ export interface Config {
637
716
  }
638
717
  ```
639
718
 
640
- Source: [`packages/experimental/tool-agent-team/src/index.ts:17`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/tool-agent-team/src/index.ts)
719
+ Source: [`packages/experimental/tool-agent-team/src/index.ts:18`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/tool-agent-team/src/index.ts)
641
720
 
642
721
  <a id="deepseek-aidsh-file-reference-local"></a>
643
722
 
@@ -696,7 +775,7 @@ export type Config = LocalConfig
696
775
 
697
776
  Depends on: [`LocalConfig`](#deepseek-aidsh-fs-local)
698
777
 
699
- Source: [`packages/fs/fs-sandbox/src/index.ts:49`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/fs/fs-sandbox/src/index.ts)
778
+ Source: [`packages/fs/fs-sandbox/src/index.ts:45`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/fs/fs-sandbox/src/index.ts)
700
779
 
701
780
  <a id="deepseek-aidsh-goal"></a>
702
781
 
@@ -728,7 +807,7 @@ export interface Config {
728
807
  }
729
808
  ```
730
809
 
731
- Source: [`packages/bundle/headless/src/index.ts:31`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/headless/src/index.ts)
810
+ Source: [`packages/bundle/headless/src/index.ts:32`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/headless/src/index.ts)
732
811
 
733
812
  <a id="deepseek-aidsh-hooks-claude-code"></a>
734
813
 
@@ -795,40 +874,6 @@ export interface Config {
795
874
 
796
875
  Source: [`packages/hooks/hooks-codex/src/index.ts:44`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/hooks/hooks-codex/src/index.ts)
797
876
 
798
- <a id="deepseek-aidsh-host-apiproxy"></a>
799
-
800
- ## `@deepseek-ai/dsh-host-apiproxy`
801
-
802
- Requires: `agentDefaultModel` · `agents` · `attachments` · `directoryPicker` · `llm` · `sessions` · `subagents` · `sessionQuery` · `tools` · `userQuestions` · `workspaceRegistry`
803
-
804
- ```ts config-catalog
805
- /** Gateway plugin configuration. */
806
- export interface Config {
807
- /**
808
- * Whether this deployment can hand paths to a native desktop opener —
809
- * the `hasDocument` capability the agent-preset roster reports. Absent,
810
- * the platform is asked (macOS/Windows/WSL yes; Linux only with a display
811
- * server); set it explicitly where detection misleads, e.g. `false` in a
812
- * container whose DISPLAY points nowhere a user can see.
813
- */
814
- nativeOpen?: boolean
815
- /**
816
- * DEFLATE level for every session-log ZIP entry: `0` stores without
817
- * compression, `1` favors CPU/latency, and `9` favors archive size.
818
- * @default 6
819
- */
820
- sessionExportCompressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
821
- /**
822
- * Maximum physical size of a cold Session artifact eligible for blankness
823
- * verification. Zero disables probes.
824
- * @default 1024
825
- */
826
- coldBlankProbeMaxBytes?: number
827
- }
828
- ```
829
-
830
- Source: [`packages/host/apiproxy/src/index.ts:41`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/host/apiproxy/src/index.ts)
831
-
832
877
  <a id="deepseek-aidsh-host-directory-picker-browse"></a>
833
878
 
834
879
  ## `@deepseek-ai/dsh-host-directory-picker-browse`
@@ -847,7 +892,7 @@ Source: [`packages/host/directory-picker-browse/src/index.ts:181`](https://githu
847
892
 
848
893
  ## `@deepseek-ai/dsh-host-frontend-static`
849
894
 
850
- Requires: `webServer`
895
+ Requires: `webServer` · `connection`
851
896
 
852
897
  ```ts config-catalog
853
898
  /** Plugin config: the dist anchor. */
@@ -857,19 +902,25 @@ export interface Config {
857
902
  }
858
903
  ```
859
904
 
860
- Source: [`packages/host/frontend-static/src/index.ts:28`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/host/frontend-static/src/index.ts)
905
+ 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)
861
906
 
862
907
  <a id="deepseek-aidsh-host-webserver"></a>
863
908
 
864
909
  ## `@deepseek-ai/dsh-host-webserver`
865
910
 
866
911
  ```ts config-catalog
867
- /** Gateway config: the listen address. */
912
+ /** Web server listen and response-compression config. */
868
913
  export interface Config {
869
914
  /** Listen host; the two supported values are loopback and all-interfaces. */
870
915
  host: '127.0.0.1' | '0.0.0.0'
871
916
  /** Listen port; zero requests an OS-assigned port. */
872
917
  port: number
918
+ /** Response compression for socket-backed HTTP requests. @default 'none' */
919
+ compression?: 'none' | 'gzip'
920
+ /** Gzip DEFLATE level from 0 through 9. @default 1 */
921
+ compressionLevel?: number
922
+ /** Minimum known response length eligible for gzip; unknown-length streams are eligible. @default 1024 */
923
+ compressionThresholdBytes?: number
873
924
  }
874
925
  ```
875
926
 
@@ -980,18 +1031,16 @@ export interface DeepSeekCatalogModel {
980
1031
  maxTokens?: number
981
1032
  /** Accepted request modalities; omission is text-only. */
982
1033
  inputModalities?: ModelModality[]
983
- /** Total-pixel budget for one deterministic request preview. */
984
- imagePixelBudget?: number
985
- /** Encoded-byte cap for one deterministic request preview. */
1034
+ /** Total-pixel budget for one deterministic request preview, or the 512-by-512 `low` preset. */
1035
+ imagePixelBudget?: number | 'low'
1036
+ /** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
986
1037
  imageMaxBytes?: number
987
- /** Provider detail tier; `low` uses the 512-by-512 total-pixel default. */
988
- imageDetail?: 'auto' | 'low'
989
1038
  }
990
1039
  ```
991
1040
 
992
1041
  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)
993
1042
 
994
- Source: [`packages/llm/llm-deepseek/src/index.ts:106`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-deepseek/src/index.ts)
1043
+ Source: [`packages/llm/llm-deepseek/src/index.ts:124`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-deepseek/src/index.ts)
995
1044
 
996
1045
  <a id="deepseek-aidsh-llm-pi-ai"></a>
997
1046
 
@@ -1095,7 +1144,10 @@ export interface PiAiProviderProfile {
1095
1144
  maxRequestImageBytes?: number
1096
1145
  /** Total-pixel budget for each deterministic inline request version. */
1097
1146
  requestImagePixelBudget?: number
1098
- /** Raw encoded-byte cap for each deterministic inline request version. */
1147
+ /**
1148
+ * Raw encoded-byte target for each deterministic inline request version;
1149
+ * the smallest quality-ladder output is used when no quality fits.
1150
+ */
1099
1151
  requestImageMaxBytes?: number
1100
1152
  /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
1101
1153
  retryPolicy?: RetryPolicyConfig
@@ -1180,6 +1232,11 @@ export interface PiAiCompatProfile {
1180
1232
  supportsReasoningEffort?: boolean
1181
1233
  /** Whether the endpoint accepts `stream_options: {include_usage: true}`; `openai-completions`. */
1182
1234
  supportsUsageInStreaming?: boolean
1235
+ /**
1236
+ * Whether streams include `finish_reason`; `false` lets pi-ai infer the
1237
+ * terminal reason when the stream ends; `openai-completions`.
1238
+ */
1239
+ supportsFinishReason?: boolean
1183
1240
  /** Which output-cap field the endpoint reads; `openai-completions`. */
1184
1241
  maxTokensField?: NonNullable<OpenAICompletionsCompat['maxTokensField']>
1185
1242
  /** Whether tool results must carry `name`; `openai-completions`. */
@@ -1200,6 +1257,10 @@ export interface PiAiCompatProfile {
1200
1257
  * can read, so kwargs set beside another format are sent nowhere.
1201
1258
  */
1202
1259
  chatTemplateKwargs?: NonNullable<OpenAICompletionsCompat['chatTemplateKwargs']>
1260
+ /** Arguments sent as `chat_template_args` under the `baseten` thinking format; `openai-completions`. */
1261
+ chatTemplateArgs?: NonNullable<OpenAICompletionsCompat['chatTemplateArgs']>
1262
+ /** Whether the endpoint accepts `thinking_token_budget` to cap vLLM reasoning; `openai-completions`. */
1263
+ supportsThinkingTokenBudget?: boolean
1203
1264
  /**
1204
1265
  * Whether the endpoint accepts `strict` in tool definitions;
1205
1266
  * `openai-completions`, the three Responses protocols, `bedrock-converse-stream`.
@@ -1245,7 +1306,7 @@ export type PiAiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFo
1245
1306
 
1246
1307
  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`)
1247
1308
 
1248
- Source: [`packages/llm/llm-pi-ai/src/config.ts:213`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-pi-ai/src/config.ts)
1309
+ Source: [`packages/llm/llm-pi-ai/src/config.ts:216`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-pi-ai/src/config.ts)
1249
1310
 
1250
1311
  <a id="deepseek-aidsh-llm-replay"></a>
1251
1312
 
@@ -1301,6 +1362,15 @@ export interface ReplayModelConfig {
1301
1362
  * omit one, so replay reconstructs the request header a live catalog produced.
1302
1363
  */
1303
1364
  defaultMaxTokens?: number
1365
+ /**
1366
+ * Optional flat visual-token price the replay route declares for every
1367
+ * retained request image, so keyless scenarios exercise route-priced
1368
+ * request pressure; each occurrence is priced at this value plus its
1369
+ * request-preview handle text. Requires {@link inputModalities} to include
1370
+ * `image` — a text-only route never sends visual tokens. Absent declares
1371
+ * no image pricing.
1372
+ */
1373
+ imageRequestTokens?: number
1304
1374
  /** Optional reasoning-effort ids the replay route accepts, in display order. */
1305
1375
  reasoningEfforts?: string[]
1306
1376
  /**
@@ -1313,7 +1383,7 @@ export interface ReplayModelConfig {
1313
1383
 
1314
1384
  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)
1315
1385
 
1316
- Source: [`packages/test-support/llm-replay/src/index.ts:809`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/llm-replay/src/index.ts)
1386
+ Source: [`packages/test-support/llm-replay/src/index.ts:918`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/llm-replay/src/index.ts)
1317
1387
 
1318
1388
  <a id="deepseek-aidsh-llm-retry"></a>
1319
1389
 
@@ -1538,6 +1608,22 @@ export interface PlanModeConfig {
1538
1608
 
1539
1609
  Source: [`packages/plan/plan-mode/src/index.ts:70`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/plan/plan-mode/src/index.ts)
1540
1610
 
1611
+ <a id="deepseek-aidsh-plugin-package-inventory-deepseek"></a>
1612
+
1613
+ ## `@deepseek-ai/dsh-plugin-package-inventory-deepseek`
1614
+
1615
+ Requires: `agents` · `deepseekLlmApiExtensions` · `loader`
1616
+
1617
+ ```ts config-catalog
1618
+ /** Plugin-package request contribution configuration. */
1619
+ export interface Config {
1620
+ /** Contribute `dsh_plugin_packages` to official DeepSeek requests. Defaults to `true`. */
1621
+ enabled?: boolean
1622
+ }
1623
+ ```
1624
+
1625
+ Source: [`packages/llm/plugin-package-inventory-deepseek/src/index.ts:30`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/plugin-package-inventory-deepseek/src/index.ts)
1626
+
1541
1627
  <a id="deepseek-aidsh-pwsh-local"></a>
1542
1628
 
1543
1629
  ## `@deepseek-ai/dsh-pwsh-local`
@@ -1686,6 +1772,22 @@ Depends on: [`SandboxMode`](./subsystems/sandbox.md)
1686
1772
 
1687
1773
  Source: [`packages/sandbox/sandbox-policy/src/index.ts:67`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/sandbox/sandbox-policy/src/index.ts)
1688
1774
 
1775
+ <a id="deepseek-aidsh-sdk-app"></a>
1776
+
1777
+ ## `@deepseek-ai/dsh-sdk-app`
1778
+
1779
+ Requires: `cmdlineArgs`
1780
+
1781
+ ```ts config-catalog
1782
+ /** SDK stdio startup configuration. */
1783
+ export interface Config {
1784
+ /** Profile name rendered in help and diagnostics (default `sdk`). */
1785
+ profile?: string
1786
+ }
1787
+ ```
1788
+
1789
+ Source: [`packages/bundle/sdk-app/src/index.ts:23`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/sdk-app/src/index.ts)
1790
+
1689
1791
  <a id="deepseek-aidsh-sdk-jsonrpc-server"></a>
1690
1792
 
1691
1793
  ## `@deepseek-ai/dsh-sdk-jsonrpc-server`
@@ -1710,6 +1812,41 @@ Depends on: `Readable` (`node:stream`) · `Writable` (`node:stream`)
1710
1812
 
1711
1813
  Source: [`packages/sdk/server/src/index.ts:25`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/sdk/server/src/index.ts)
1712
1814
 
1815
+ <a id="deepseek-aidsh-session-log-deepseek"></a>
1816
+
1817
+ ## `@deepseek-ai/dsh-session-log-deepseek`
1818
+
1819
+ Requires: `deepseekLlmApiExtensions` · `sessions`
1820
+
1821
+ ```ts config-catalog
1822
+ /** Session-log request contribution configuration. */
1823
+ export interface Config {
1824
+ /** Contribute `dsh_session_log` to official DeepSeek requests. Defaults to `false`. */
1825
+ enabled?: boolean
1826
+ }
1827
+ ```
1828
+
1829
+ Source: [`packages/session/session-log-deepseek/src/index.ts:22`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-log-deepseek/src/index.ts)
1830
+
1831
+ <a id="deepseek-aidsh-session-log-export"></a>
1832
+
1833
+ ## `@deepseek-ai/dsh-session-log-export`
1834
+
1835
+ Requires: `commands` · `connection`
1836
+
1837
+ ```ts config-catalog
1838
+ /** Session-log archive policy. */
1839
+ export interface Config {
1840
+ /** DEFLATE level for each ZIP entry. @default 6 */
1841
+ readonly compressionLevel?: SessionLogCompressionLevel
1842
+ }
1843
+
1844
+ /** Valid fflate DEFLATE levels accepted by session-log export. */
1845
+ export type SessionLogCompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1846
+ ```
1847
+
1848
+ Source: [`packages/session-query/session-log-export/src/index.ts:41`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session-query/session-log-export/src/index.ts)
1849
+
1713
1850
  <a id="deepseek-aidsh-session-persistence-jsonl"></a>
1714
1851
 
1715
1852
  ## `@deepseek-ai/dsh-session-persistence-jsonl`
@@ -1747,7 +1884,7 @@ export interface Config {
1747
1884
  export type JsonlCompression = 'zstd' | 'none'
1748
1885
  ```
1749
1886
 
1750
- Source: [`packages/session/session-persistence-jsonl/src/index.ts:60`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-persistence-jsonl/src/index.ts)
1887
+ Source: [`packages/session/session-persistence-jsonl/src/index.ts:62`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-persistence-jsonl/src/index.ts)
1751
1888
 
1752
1889
  <a id="deepseek-aidsh-session-persistence-sqlite"></a>
1753
1890
 
@@ -1774,20 +1911,21 @@ export interface Config {
1774
1911
  export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1775
1912
  ```
1776
1913
 
1777
- Source: [`packages/session/session-persistence-sqlite/src/index.ts:36`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-persistence-sqlite/src/index.ts)
1914
+ Source: [`packages/session/session-persistence-sqlite/src/index.ts:38`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-persistence-sqlite/src/index.ts)
1778
1915
 
1779
1916
  <a id="deepseek-aidsh-session-projection-cache"></a>
1780
1917
 
1781
1918
  ## `@deepseek-ai/dsh-session-projection-cache`
1782
1919
 
1783
- Requires: `storageDomain` · `sessionProjections` · `sessionPersistence` · `sessions`
1920
+ Requires: `storageDomain` · `sessionProjections` · `sessions`
1784
1921
 
1785
1922
  ```ts config-catalog
1786
1923
  /**
1787
1924
  * Plugin config. Both throttle triggers are deployment choices with no
1788
1925
  * universally correct value, so the composition states them explicitly
1789
- * (cordis.yml); the two mandatory write points (`turn/end` and session
1790
- * disposal) are policy, not tunables, and always fire.
1926
+ * (cordis.yml); the three mandatory write points (session creation,
1927
+ * `turn/end`, and session disposal) are policy, not tunables, and always
1928
+ * fire.
1791
1929
  */
1792
1930
  export interface Config {
1793
1931
  /** Committed events per session that force a durable checkpoint write between mandatory points. */
@@ -1797,7 +1935,7 @@ export interface Config {
1797
1935
  }
1798
1936
  ```
1799
1937
 
1800
- Source: [`packages/session/session-projection-cache/src/index.ts:42`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-projection-cache/src/index.ts)
1938
+ Source: [`packages/session/session-projection-cache/src/index.ts:48`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-projection-cache/src/index.ts)
1801
1939
 
1802
1940
  <a id="deepseek-aidsh-session-query-sqlite"></a>
1803
1941
 
@@ -2018,7 +2156,7 @@ Requires: `skills`
2018
2156
  ```ts config-catalog
2019
2157
  /** Local filesystem skill provider configuration. */
2020
2158
  export interface Config {
2021
- /** Unique provider name. Defaults to `local`. */
2159
+ /** Unique provider name. Defaults to `filesystem`. */
2022
2160
  providerName?: string
2023
2161
  /** Whether project and user roots are included around custom roots. */
2024
2162
  includeDefaultRoots?: boolean
@@ -2060,10 +2198,21 @@ export interface Config {
2060
2198
  * a local deployment. Set it to keep spill files under a known location.
2061
2199
  */
2062
2200
  root?: string
2201
+ /**
2202
+ * Age in days after which a spill file is eligible for the one-shot startup
2203
+ * cleanup sweep. Defaults to `30`; `0` disables cleanup entirely. Files whose
2204
+ * `mtime` is strictly older than the cutoff are deleted and emptied
2205
+ * directories are pruned; fresh files, symlinks, and unrelated entries are
2206
+ * left untouched. On POSIX, cleanup skips roots and session directories that
2207
+ * another local user could modify or replace. Retention is deliberate — a
2208
+ * resumed or forked session may still reference an older locator until it
2209
+ * ages out.
2210
+ */
2211
+ cleanupPeriodDays?: number
2063
2212
  }
2064
2213
  ```
2065
2214
 
2066
- Source: [`packages/spill/spill-local/src/index.ts:22`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/spill/spill-local/src/index.ts)
2215
+ Source: [`packages/spill/spill-local/src/index.ts:31`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/spill/spill-local/src/index.ts)
2067
2216
 
2068
2217
  <a id="deepseek-aidsh-spill-policy"></a>
2069
2218
 
@@ -2122,12 +2271,12 @@ Requires: `storage`
2122
2271
  * location explicitly.
2123
2272
  */
2124
2273
  export interface Config {
2125
- /** Directory holding one `<unit>.json` file per unit. */
2274
+ /** Directory holding one `<unit>.json` file (or `<unit>/` tree) per unit. */
2126
2275
  root: string
2127
2276
  }
2128
2277
  ```
2129
2278
 
2130
- Source: [`packages/storage/storage-json/src/index.ts:27`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/storage/storage-json/src/index.ts)
2279
+ Source: [`packages/storage/storage-json/src/index.ts:28`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/storage/storage-json/src/index.ts)
2131
2280
 
2132
2281
  <a id="deepseek-aidsh-storage-sqlite"></a>
2133
2282
 
@@ -2212,7 +2361,7 @@ export interface Config {
2212
2361
  * `MAX_TIMER_DELAY_MS`.
2213
2362
  */
2214
2363
  disposeEofGraceMs?: number
2215
- /** Termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2364
+ /** Failure-observation and termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2216
2365
  disposeGraceMs?: number
2217
2366
  }
2218
2367
 
@@ -2229,10 +2378,12 @@ Source: [`packages/subagent/subagent-acp/src/index.ts:27`](https://github.com/de
2229
2378
  Requires: `subagents` · `subprocess`
2230
2379
 
2231
2380
  ```ts config-catalog
2232
- /** Deployment-owned permission, environment, and process-release settings. */
2381
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2233
2382
  export interface Config {
2234
2383
  /** Provider name on `ctx.subagents` (default `claude-code`). */
2235
2384
  providerName?: string
2385
+ /** Native Claude model fixed for this instance; omitted to inherit Claude settings. */
2386
+ model?: string
2236
2387
  /**
2237
2388
  * Explicit environment entries layered over the subprocess seam's
2238
2389
  * credential-scrubbed parent environment.
@@ -2262,10 +2413,12 @@ Source: [`packages/subagent/subagent-claude-code/src/index.ts:38`](https://githu
2262
2413
  Requires: `subagents` · `subprocess`
2263
2414
 
2264
2415
  ```ts config-catalog
2265
- /** Deployment-owned permission, environment, and process-release settings. */
2416
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2266
2417
  export interface Config {
2267
2418
  /** Provider name on `ctx.subagents` (default `codex`). */
2268
2419
  providerName?: string
2420
+ /** Native Codex model fixed for this instance; omitted to inherit Codex settings. */
2421
+ model?: string
2269
2422
  /**
2270
2423
  * Explicit environment entries layered over the subprocess seam's
2271
2424
  * credential-scrubbed parent environment.
@@ -2297,10 +2450,14 @@ Requires: `subagents`
2297
2450
  export interface Config {
2298
2451
  /** Provider name on `ctx.subagents` (default `dsh-sdk`). */
2299
2452
  providerName: string
2300
- /** The executable to spawn for each run (the child runtime bin or packaged exe). */
2301
- command: string
2302
- /** Arguments passed to {@link command} (typically the child's `cordis.yml` path). */
2303
- args: string[]
2453
+ /** Explicit dsh CLI module, resolved and checked at plugin load; omission uses the SDK dependency. */
2454
+ dshBin?: string
2455
+ /** Named child profile (default `sdk`). */
2456
+ profile: string
2457
+ /** Ordered per-launch profile patch files, resolved and checked at plugin load. */
2458
+ patches: string[]
2459
+ /** Absolute isolated Harness home for every nested child process. */
2460
+ dshHome: string
2304
2461
  /**
2305
2462
  * Working directory override for the child process and its SDK session
2306
2463
  * workspace. Must be non-empty; a relative path resolves against the
@@ -2318,8 +2475,7 @@ export interface Config {
2318
2475
  maxTokens?: number
2319
2476
  /**
2320
2477
  * Extra environment variables for the child process — e.g. the child
2321
- * runtime's own `DEEPSEEK_API_KEY`, or `DSH_CORDIS_CONFIG` naming its
2322
- * config. Forwarded on top of a credential-scrubbed copy of the parent
2478
+ * runtime's own `DEEPSEEK_API_KEY`. Forwarded on top of a credential-scrubbed copy of the parent
2323
2479
  * env, so an explicit key here reaches the child while ambient secrets do
2324
2480
  * not leak implicitly.
2325
2481
  */
@@ -2337,7 +2493,7 @@ export interface Config {
2337
2493
  }
2338
2494
  ```
2339
2495
 
2340
- Source: [`packages/subagent/subagent-dsh-sdk/src/index.ts:29`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent-dsh-sdk/src/index.ts)
2496
+ Source: [`packages/subagent/subagent-dsh-sdk/src/index.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent-dsh-sdk/src/index.ts)
2341
2497
 
2342
2498
  <a id="deepseek-aidsh-subagent-fork-in-process"></a>
2343
2499
 
@@ -2412,7 +2568,7 @@ export interface Config {
2412
2568
  }
2413
2569
  ```
2414
2570
 
2415
- Source: [`packages/core/system-prompt/src/index.ts:186`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/system-prompt/src/index.ts)
2571
+ Source: [`packages/core/system-prompt/src/index.ts:237`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/system-prompt/src/index.ts)
2416
2572
 
2417
2573
  <a id="deepseek-aidsh-terminal-bash"></a>
2418
2574
 
@@ -2452,7 +2608,7 @@ export interface Config {
2452
2608
  * regain the foreground before `inferred_idle` settles; at least one `pollIntervalMs`.
2453
2609
  */
2454
2610
  handoffGraceMs?: number
2455
- /** Absolute send wait bound. */
2611
+ /** Absolute bound for one send and the complete pwsh startup sequence. */
2456
2612
  timeoutMs?: number
2457
2613
  /** Grace before teardown escalates to `SIGKILL`. */
2458
2614
  disposeGraceMs?: number
@@ -2732,7 +2888,7 @@ export interface Config {
2732
2888
  }
2733
2889
  ```
2734
2890
 
2735
- Source: [`packages/workflow/tool-ralph/src/index.ts:23`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/workflow/tool-ralph/src/index.ts)
2891
+ Source: [`packages/workflow/tool-ralph/src/index.ts:22`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/workflow/tool-ralph/src/index.ts)
2736
2892
 
2737
2893
  <a id="deepseek-aidsh-tool-session-query"></a>
2738
2894
 
@@ -2784,7 +2940,7 @@ export interface Config {
2784
2940
  }
2785
2941
  ```
2786
2942
 
2787
- Source: [`packages/fs/tool-str-replace-editor/src/index.ts:497`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/fs/tool-str-replace-editor/src/index.ts)
2943
+ Source: [`packages/fs/tool-str-replace-editor/src/index.ts:505`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/fs/tool-str-replace-editor/src/index.ts)
2788
2944
 
2789
2945
  <a id="deepseek-aidsh-tool-subagent"></a>
2790
2946
 
@@ -2802,6 +2958,11 @@ export interface Config {
2802
2958
  * a distinct name.
2803
2959
  */
2804
2960
  toolName?: string
2961
+ /**
2962
+ * Sample the Host `subagent-model-selection` user setting for each new
2963
+ * top-level session and inherit that decision in its child sessions.
2964
+ */
2965
+ modelSelectionSettings?: boolean
2805
2966
  /**
2806
2967
  * Expose `run_in_background` (default true). Disabled instances omit the
2807
2968
  * parameter and reject forced background calls.
@@ -2849,7 +3010,7 @@ export interface Config {
2849
3010
 
2850
3011
  Depends on: [`AgentOptions`](./subsystems/core.md)
2851
3012
 
2852
- Source: [`packages/subagent/tool-subagent/src/index.ts:29`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/tool-subagent/src/index.ts)
3013
+ Source: [`packages/subagent/tool-subagent/src/index.ts:49`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/tool-subagent/src/index.ts)
2853
3014
 
2854
3015
  <a id="deepseek-aidsh-tool-subagent-report"></a>
2855
3016
 
@@ -2889,7 +3050,7 @@ export interface Config {
2889
3050
  }
2890
3051
  ```
2891
3052
 
2892
- Source: [`packages/terminal/tool-terminal/src/index.ts:35`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/terminal/tool-terminal/src/index.ts)
3053
+ Source: [`packages/terminal/tool-terminal/src/index.ts:36`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/terminal/tool-terminal/src/index.ts)
2893
3054
 
2894
3055
  <a id="deepseek-aidsh-tool-todo"></a>
2895
3056
 
@@ -2957,7 +3118,7 @@ export interface Config {
2957
3118
  }
2958
3119
  ```
2959
3120
 
2960
- Source: [`packages/workflow/tool-workflow/src/index.ts:33`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/workflow/tool-workflow/src/index.ts)
3121
+ Source: [`packages/workflow/tool-workflow/src/index.ts:32`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/workflow/tool-workflow/src/index.ts)
2961
3122
 
2962
3123
  <a id="deepseek-aidsh-tools"></a>
2963
3124
 
@@ -2969,13 +3130,13 @@ Requires: `systemPrompt`
2969
3130
  /** Plugin config: how the registered tools are presented to the model. */
2970
3131
  export interface Config {
2971
3132
  /**
2972
- * Model presentation. `native` (default) sends every visible schema; `code`
3133
+ * Model presentation. `native` (default) sends every visible schema; `ptc`
2973
3134
  * sends only `run_code` plus a generated SDK prompt and collapses the
2974
3135
  * executor to the same surface (a model-direct call may only name
2975
3136
  * `run_code`; `run_code` SDK sub-dispatches keep every visible tool); `both`
2976
- * sends both forms. Code modes require a `ctx.codeRuntime` whose `language`
3137
+ * sends both forms. PTC mode requires a `ctx.codeRuntime` whose `language`
2977
3138
  * has a registered SDK renderer (TypeScript or Python) and fail prompt
2978
- * assembly when it is absent or has no renderer. Under `code`, native names
3139
+ * assembly when it is absent or has no renderer. Under `ptc`, native names
2979
3140
  * in `toolOrder` are invalid.
2980
3141
  */
2981
3142
  mode?: ToolPresentationMode
@@ -2990,10 +3151,10 @@ export interface Config {
2990
3151
  }
2991
3152
 
2992
3153
  /** How the registry presents its tools to the model (see {@link Config.mode}). */
2993
- export type ToolPresentationMode = 'native' | 'code' | 'both'
3154
+ export type ToolPresentationMode = 'native' | 'ptc' | 'both'
2994
3155
  ```
2995
3156
 
2996
- Source: [`packages/core/tools/src/index.ts:654`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/tools/src/index.ts)
3157
+ Source: [`packages/core/tools/src/index.ts:655`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/tools/src/index.ts)
2997
3158
 
2998
3159
  <a id="deepseek-aidsh-typert-loader"></a>
2999
3160
 
@@ -3040,7 +3201,7 @@ export interface Config {
3040
3201
  export type ApprovalPolicy = 'ask' | 'never'
3041
3202
  ```
3042
3203
 
3043
- Source: [`packages/interaction/user-approval/src/index.ts:177`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/user-approval/src/index.ts)
3204
+ Source: [`packages/interaction/user-approval/src/index.ts:142`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/user-approval/src/index.ts)
3044
3205
 
3045
3206
  <a id="deepseek-aidsh-web"></a>
3046
3207
 
@@ -3088,7 +3249,7 @@ export interface Config {
3088
3249
  }
3089
3250
  ```
3090
3251
 
3091
- Source: [`packages/bundle/web-app/src/index.ts:42`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/web-app/src/index.ts)
3252
+ Source: [`packages/bundle/web-app/src/index.ts:45`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/web-app/src/index.ts)
3092
3253
 
3093
3254
  <a id="deepseek-aidsh-web-fetch-http"></a>
3094
3255
 
@@ -3099,8 +3260,6 @@ Requires: `web`
3099
3260
  ```ts config-catalog
3100
3261
  /** Plugin config: the provider's transport and size limits plus its `User-Agent` (all defaulted). */
3101
3262
  export interface Config {
3102
- /** Maximum accepted request URL length. */
3103
- maxUrlLength?: number
3104
3263
  /** Maximum response body size in bytes. */
3105
3264
  maxResponseBytes?: number
3106
3265
  /** Maximum decoded body length in characters. */
@@ -3114,7 +3273,7 @@ export interface Config {
3114
3273
  }
3115
3274
  ```
3116
3275
 
3117
- Source: [`packages/web/web-fetch-http/src/index.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/web/web-fetch-http/src/index.ts)
3276
+ Source: [`packages/web/web-fetch-http/src/index.ts:32`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/web/web-fetch-http/src/index.ts)
3118
3277
 
3119
3278
  <a id="deepseek-aidsh-web-search-deepseek"></a>
3120
3279
 
@@ -3166,7 +3325,7 @@ export interface Config {
3166
3325
  }
3167
3326
  ```
3168
3327
 
3169
- Source: [`packages/web/web-search-exa/src/index.ts:38`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/web/web-search-exa/src/index.ts)
3328
+ Source: [`packages/web/web-search-exa/src/index.ts:35`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/web/web-search-exa/src/index.ts)
3170
3329
 
3171
3330
  <a id="deepseek-aidsh-web-search-perplexity"></a>
3172
3331
 
@@ -3190,7 +3349,29 @@ export interface Config {
3190
3349
  }
3191
3350
  ```
3192
3351
 
3193
- Source: [`packages/web/web-search-perplexity/src/index.ts:32`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/web/web-search-perplexity/src/index.ts)
3352
+ Source: [`packages/web/web-search-perplexity/src/index.ts:30`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/web/web-search-perplexity/src/index.ts)
3353
+
3354
+ <a id="deepseek-aidsh-webhook-github"></a>
3355
+
3356
+ ## `@deepseek-ai/dsh-webhook-github`
3357
+
3358
+ Requires: `webServer` · `webhookRuntime` · `credentials`
3359
+
3360
+ ```ts config-catalog
3361
+ /** Required GitHub ingress configuration. */
3362
+ export interface Config {
3363
+ /** Adapter instance name carried to rules. */
3364
+ readonly source: string
3365
+ /** Exact absolute route path. */
3366
+ readonly path: string
3367
+ /** Credential reference containing the shared webhook secret. */
3368
+ readonly secretEnv: string
3369
+ /** Positive raw body ceiling in bytes. */
3370
+ readonly maxBodyBytes: number
3371
+ }
3372
+ ```
3373
+
3374
+ Source: [`packages/webhook/webhook-github/src/index.ts:17`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/webhook/webhook-github/src/index.ts)
3194
3375
 
3195
3376
  <a id="deepseek-aidsh-workflow-worker-thread"></a>
3196
3377
 
@@ -3226,16 +3407,18 @@ Source: [`packages/workflow/workflow-worker-thread/src/index.ts:32`](https://git
3226
3407
 
3227
3408
  These load from a `cordis.yml` entry with no `config:` block; they declare no configuration API.
3228
3409
 
3410
+ - `@deepseek-ai/dsh-acp-app` — requires `cmdlineArgs` ([`packages/bundle/acp-app/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/acp-app/src/index.ts))
3229
3411
  - `@deepseek-ai/dsh-agent` ([`packages/core/agent/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/agent/src/index.ts))
3230
- - `@deepseek-ai/dsh-api-gateway` — requires `typert` ([`packages/api/gateway/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/gateway/src/index.ts))
3231
- - `@deepseek-ai/dsh-api-remotes` ([`packages/api/remotes/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/remotes/src/index.ts))
3412
+ - `@deepseek-ai/dsh-api-remotes` — requires `typertGateway` ([`packages/api/remotes/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/remotes/src/index.ts))
3413
+ - `@deepseek-ai/dsh-api-workspace-controller` — requires `typert` · `workspaceRegistry` ([`packages/api/workspace-controller/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/workspace-controller/src/index.ts))
3232
3414
  - `@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))
3233
3415
  - `@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))
3234
3416
  - `@deepseek-ai/dsh-client-modules` — requires `webServer` · `loader` ([`packages/client/modules/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/modules/src/index.ts))
3235
- - `@deepseek-ai/dsh-client-runtime` ([`packages/client/runtime/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/runtime/src/index.ts))
3236
3417
  - `@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))
3418
+ - `@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))
3237
3419
  - `@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))
3238
3420
  - `@deepseek-ai/dsh-client-ui-brand-official` ([`packages/client/ui-brand-official/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-brand-official/src/index.ts))
3421
+ - `@deepseek-ai/dsh-client-ui-chat` ([`packages/client/ui-chat/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-chat/src/index.ts))
3239
3422
  - `@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))
3240
3423
  - `@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))
3241
3424
  - `@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))
@@ -3252,6 +3435,7 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3252
3435
  - `@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))
3253
3436
  - `@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))
3254
3437
  - `@deepseek-ai/dsh-client-ui-renderer` ([`packages/client/ui-renderer/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-renderer/src/index.ts))
3438
+ - `@deepseek-ai/dsh-client-ui-session` ([`packages/client/ui-session/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-session/src/index.ts))
3255
3439
  - `@deepseek-ai/dsh-client-ui-settings` ([`packages/client/ui-settings/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-settings/src/index.ts))
3256
3440
  - `@deepseek-ai/dsh-client-ui-settings-general` ([`packages/client/ui-settings-general/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-settings-general/src/index.ts))
3257
3441
  - `@deepseek-ai/dsh-client-ui-settings-models` ([`packages/client/ui-settings-models/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-settings-models/src/index.ts))
@@ -3271,6 +3455,8 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3271
3455
  - `@deepseek-ai/dsh-command-goal` — requires `commands` · `goals` ([`packages/goal/command-goal/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/goal/command-goal/src/index.ts))
3272
3456
  - `@deepseek-ai/dsh-commands` ([`packages/interaction/commands/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/commands/src/index.ts))
3273
3457
  - `@deepseek-ai/dsh-cordis-client-runner` ([`packages/extensions/cordis-client-runner/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/extensions/cordis-client-runner/src/index.ts))
3458
+ - `@deepseek-ai/dsh-deepseek-llm-api-extensions` ([`packages/llm/deepseek-llm-api-extensions/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/deepseek-llm-api-extensions/src/index.ts))
3459
+ - `@deepseek-ai/dsh-experimental-client-ui-agent-team` ([`packages/experimental/client-ui-agent-team/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/client-ui-agent-team/src/index.ts))
3274
3460
  - `@deepseek-ai/dsh-fs-e2b` — requires `e2b` ([`packages/e2b/fs-e2b/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/e2b/fs-e2b/src/index.ts))
3275
3461
  - `@deepseek-ai/dsh-fs-observation-policy` ([`packages/fs/fs-observation-policy/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/fs/fs-observation-policy/src/index.ts))
3276
3462
  - `@deepseek-ai/dsh-goal-round-driver` — requires `agents` · `goals` · `sessions` ([`packages/goal/goal-round-driver/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/goal/goal-round-driver/src/index.ts))
@@ -3282,7 +3468,6 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3282
3468
  - `@deepseek-ai/dsh-schedule` — requires `agents` · `sessions` · `tools` · `sessionPersistence` ([`packages/schedule/schedule/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/schedule/schedule/src/index.ts))
3283
3469
  - `@deepseek-ai/dsh-session` ([`packages/core/session/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/session/src/index.ts))
3284
3470
  - `@deepseek-ai/dsh-session-checkpoint-policy` — requires `llm` · `sessionPersistence` · `sessions` · `tools` ([`packages/session/session-checkpoint-policy/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-checkpoint-policy/src/index.ts))
3285
- - `@deepseek-ai/dsh-session-log-export` — requires `commands` ([`packages/session-query/session-log-export/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session-query/session-log-export/src/index.ts))
3286
3471
  - `@deepseek-ai/dsh-session-projection` ([`packages/session/session-projection/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-projection/src/index.ts))
3287
3472
  - `@deepseek-ai/dsh-session-stats` — requires `sessionProjections` ([`packages/session/session-stats/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-stats/src/index.ts))
3288
3473
  - `@deepseek-ai/dsh-skill-badge` — requires `skills` ([`packages/skill/skill-badge/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill-badge/src/index.ts))
@@ -3295,6 +3480,7 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3295
3480
  - `@deepseek-ai/dsh-tool-cordis` — requires `tools` · `systemPrompt` · `dynamicCordisRunner` · `cordisInspect` ([`packages/extensions/tool-cordis/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/extensions/tool-cordis/src/index.ts))
3296
3481
  - `@deepseek-ai/dsh-tool-subagent-control` — requires `tools` · `subagents` ([`packages/subagent/tool-subagent-control/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/tool-subagent-control/src/index.ts))
3297
3482
  - `@deepseek-ai/dsh-user-questions` ([`packages/interaction/user-questions/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/user-questions/src/index.ts))
3483
+ - `@deepseek-ai/dsh-webhook` — requires `agents` · `agentDefaultModel` · `agentPresets` · `permissionPresets` · `sessionTitle` · `workspaceRegistry` ([`packages/webhook/webhook/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/webhook/webhook/src/index.ts))
3298
3484
  - `@deepseek-ai/dsh-workspace` — requires `storageDomain` · `sessionPersistence` ([`packages/workspace/workspace/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/workspace/workspace/src/index.ts))
3299
3485
 
3300
3486
  ## Seam packages (not directly loadable)
@@ -3322,19 +3508,23 @@ Abstract service classes — a deployment loads a concrete implementation packag
3322
3508
 
3323
3509
  Imported as libraries by other packages; a `cordis.yml` cannot load them.
3324
3510
 
3325
- - `@deepseek-ai/dsh-acp-snapshot` ([`packages/test-support/acp-snapshot/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/acp-snapshot/src/index.ts))
3326
3511
  - `@deepseek-ai/dsh-agent-loop-testkit` ([`packages/test-support/agent-loop-testkit/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/agent-loop-testkit/src/index.ts))
3327
3512
  - `@deepseek-ai/dsh-anonymous-user-id` ([`packages/identity/anonymous-user-id/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/identity/anonymous-user-id/src/index.ts))
3328
3513
  - `@deepseek-ai/dsh-app-boot` ([`packages/boot/app-boot/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/boot/app-boot/src/index.ts))
3329
3514
  - `@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))
3330
3515
  - `@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))
3331
3516
  - `@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))
3517
+ - `@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))
3332
3518
  - `@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))
3333
3519
  - `@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))
3334
3520
  - `@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))
3335
3521
  - `@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))
3336
3522
  - `@deepseek-ai/dsh-cmdline` ([`packages/boot/cmdline/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/boot/cmdline/src/index.ts))
3337
3523
  - `@deepseek-ai/dsh-code-runtime-python` ([`packages/code-runtime/code-runtime-python/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/code-runtime/code-runtime-python/src/index.ts))
3524
+ - `@deepseek-ai/dsh-experimental-agent-team-profile` ([`packages/experimental/agent-team-profile/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team-profile/src/index.ts))
3525
+ - `@deepseek-ai/dsh-experimental-agent-team-web-profile` ([`packages/experimental/agent-team-web-profile/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team-web-profile/src/index.ts))
3526
+ - `@deepseek-ai/dsh-experimental-webworker-packer` ([`packages/experimental/webworker-packer/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/webworker-packer/src/index.ts))
3527
+ - `@deepseek-ai/dsh-experimental-webworker-runtime` ([`packages/experimental/webworker-runtime/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/webworker-runtime/src/index.ts))
3338
3528
  - `@deepseek-ai/dsh-home-paths` ([`packages/util/home-paths/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/home-paths/src/index.ts))
3339
3529
  - `@deepseek-ai/dsh-hook-protocol` ([`packages/hooks/hook-protocol/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/hooks/hook-protocol/src/index.ts))
3340
3530
  - `@deepseek-ai/dsh-launch-environment` ([`packages/util/launch-environment/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/launch-environment/src/index.ts))
@@ -3345,8 +3535,9 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3345
3535
  - `@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))
3346
3536
  - `@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))
3347
3537
  - `@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))
3348
- - `@deepseek-ai/dsh-sdk-jsonrpc-demo` ([`packages/examples/jsonrpc-demo/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/examples/jsonrpc-demo/src/index.ts))
3538
+ - `@deepseek-ai/dsh-sdk-minimal` ([`packages/bundle/sdk-minimal/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/sdk-minimal/src/index.ts))
3349
3539
  - `@deepseek-ai/dsh-sdk-protocol` ([`packages/sdk/protocol/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/sdk/protocol/src/index.ts))
3540
+ - `@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))
3350
3541
  - `@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))
3351
3542
  - `@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))
3352
3543
  - `@deepseek-ai/dsh-subagent-in-process-driver` ([`packages/subagent/subagent-in-process-driver/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent-in-process-driver/src/index.ts))
@@ -3354,3 +3545,6 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3354
3545
  - `@deepseek-ai/dsh-typert-generator` ([`packages/typert/generator/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/typert/generator/src/index.ts))
3355
3546
  - `@deepseek-ai/dsh-typert-protocol` ([`packages/typert/protocol/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/typert/protocol/src/index.ts))
3356
3547
  - `@deepseek-ai/dsh-typert-registry` ([`packages/typert/registry/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/typert/registry/src/index.ts))
3548
+ - `@deepseek-ai/dsh-util-crypto` ([`packages/util/crypto/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/crypto/src/index.ts))
3549
+ - `@deepseek-ai/dsh-util-workspace-path` ([`packages/util/workspace-path/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/workspace-path/src/index.ts))
3550
+ - `@deepseek-ai/dsh-win32-process` ([`packages/subprocess/win32-process/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subprocess/win32-process/src/index.ts))