dsh-plugin-dev-kb 1.0.9 → 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.
Files changed (169) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.en.md +14 -8
  3. package/README.md +14 -8
  4. package/docs/banner.svg +25 -0
  5. package/kb/INDEX.md +8 -2
  6. package/kb/README.md +4 -4
  7. package/kb/extra/AGENTS.md +3 -3
  8. package/kb/extra/cookbook/adding-a-remote-api.md +197 -0
  9. package/kb/extra/cookbook/adding-a-remote-api.zh.md +197 -0
  10. package/kb/extra/cookbook/adding-a-session-format-version.md +109 -0
  11. package/kb/extra/cookbook/adding-a-session-format-version.zh.md +109 -0
  12. package/kb/extra/cookbook/adding-a-vendored-package.md +1 -1
  13. package/kb/extra/cookbook/adding-a-vendored-package.zh.md +1 -1
  14. package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.md +1 -1
  15. package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
  16. package/kb/extra/deepseek-llm-api-wire-extensions.md +19 -15
  17. package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +19 -15
  18. package/kb/extra/development.md +13 -3
  19. package/kb/extra/development.zh.md +13 -3
  20. package/kb/extra/event-producer-consumer.md +49 -46
  21. package/kb/extra/event-producer-consumer.zh.md +52 -49
  22. package/kb/extra/i18n/README.md +2 -1
  23. package/kb/extra/i18n/README.zh.md +3 -2
  24. package/kb/extra/i18n/style-samples.md +2 -2
  25. package/kb/extra/i18n/translation-prompt.md +1 -1
  26. package/kb/extra/module-graph.md +493 -1002
  27. package/kb/extra/module-graph.zh.md +495 -1004
  28. package/kb/extra/rescope.md +1 -1
  29. package/kb/extra/rescope.zh.md +1 -1
  30. package/kb/extra/session-format-status.md +47 -0
  31. package/kb/extra/session-format-status.zh.md +47 -0
  32. package/kb/extra/subsystems/agent-team.md +3 -2
  33. package/kb/extra/subsystems/agent-team.zh.md +3 -2
  34. package/kb/extra/subsystems/attachment.md +157 -4
  35. package/kb/extra/subsystems/attachment.zh.md +157 -4
  36. package/kb/extra/subsystems/feedback.md +164 -30
  37. package/kb/extra/subsystems/feedback.zh.md +164 -30
  38. package/kb/extra/testing.md +9 -4
  39. package/kb/extra/testing.zh.md +9 -4
  40. package/kb/extra/web-styling.md +5 -0
  41. package/kb/extra/web-styling.zh.md +5 -0
  42. package/kb/meta/search-index.json +223 -151
  43. package/kb/meta/site-pages.txt +187 -181
  44. package/kb/meta/source.json +5 -5
  45. package/kb/meta/topics.md +5 -5
  46. package/kb/site/develop/basic/publish.md +1 -1
  47. package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +3 -2
  48. package/kb/site/develop/practice/llm-adapter.md +4 -3
  49. package/kb/site/en/develop/basic/publish.md +1 -1
  50. package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +3 -2
  51. package/kb/site/en/develop/practice/llm-adapter.md +4 -3
  52. package/kb/site/en/guide/network-proxy.md +87 -0
  53. package/kb/site/en/guide/providers.md +70 -17
  54. package/kb/site/en/guide/python-sdk.md +19 -3
  55. package/kb/site/en/guide/schedule.md +2 -0
  56. package/kb/site/en/reference/agent-lifecycle.md +17 -8
  57. package/kb/site/en/reference/api-gateway.md +2 -2
  58. package/kb/site/en/reference/capability-seams.md +24 -10
  59. package/kb/site/en/reference/config-catalog.md +322 -264
  60. package/kb/site/en/reference/cookbook/adding-a-package.md +1 -2
  61. package/kb/site/en/reference/cookbook/adding-a-settings-card.md +10 -8
  62. package/kb/site/en/reference/cookbook/adding-a-tool.md +1 -1
  63. package/kb/site/en/reference/cookbook/extension-cookbook.md +16 -13
  64. package/kb/site/en/reference/index.md +26 -9
  65. package/kb/site/en/reference/persistence-catalog.md +189 -95
  66. package/kb/site/en/reference/subsystems/approval.md +1 -1
  67. package/kb/site/en/reference/subsystems/client-modules.md +9 -0
  68. package/kb/site/en/reference/subsystems/client-resources.md +94 -0
  69. package/kb/site/en/reference/subsystems/code-runtime.md +7 -3
  70. package/kb/site/en/reference/subsystems/commands.md +25 -16
  71. package/kb/site/en/reference/subsystems/compaction.md +10 -10
  72. package/kb/site/en/reference/subsystems/conversation.md +11 -4
  73. package/kb/site/en/reference/subsystems/core.md +173 -29
  74. package/kb/site/en/reference/subsystems/credentials.md +5 -4
  75. package/kb/site/en/reference/subsystems/filesystem.md +15 -0
  76. package/kb/site/en/reference/subsystems/goal.md +38 -2
  77. package/kb/site/en/reference/subsystems/index.md +3 -1
  78. package/kb/site/en/reference/subsystems/invariants.md +1 -1
  79. package/kb/site/en/reference/subsystems/llm-streaming.md +43 -12
  80. package/kb/site/en/reference/subsystems/lsp.md +1 -1
  81. package/kb/site/en/reference/subsystems/permission-presets.md +5 -5
  82. package/kb/site/en/reference/subsystems/persistence.md +211 -199
  83. package/kb/site/en/reference/subsystems/plan.md +3 -3
  84. package/kb/site/en/reference/subsystems/sandbox.md +2 -0
  85. package/kb/site/en/reference/subsystems/schedule.md +9 -3
  86. package/kb/site/en/reference/subsystems/scope.md +1 -1
  87. package/kb/site/en/reference/subsystems/session-projection.md +50 -24
  88. package/kb/site/en/reference/subsystems/session-query.md +19 -13
  89. package/kb/site/en/reference/subsystems/session-reference.md +29 -1
  90. package/kb/site/en/reference/subsystems/session-telemetry.md +27 -10
  91. package/kb/site/en/reference/subsystems/session-title.md +6 -6
  92. package/kb/site/en/reference/subsystems/session.md +208 -103
  93. package/kb/site/en/reference/subsystems/settings.md +30 -12
  94. package/kb/site/en/reference/subsystems/shell.md +9 -6
  95. package/kb/site/en/reference/subsystems/sidebar-right.md +151 -0
  96. package/kb/site/en/reference/subsystems/skills.md +1 -1
  97. package/kb/site/en/reference/subsystems/slots.md +41 -32
  98. package/kb/site/en/reference/subsystems/spill.md +13 -6
  99. package/kb/site/en/reference/subsystems/storage.md +28 -5
  100. package/kb/site/en/reference/subsystems/subagent.md +58 -105
  101. package/kb/site/en/reference/subsystems/subprocess.md +25 -26
  102. package/kb/site/en/reference/subsystems/system-prompt.md +18 -3
  103. package/kb/site/en/reference/subsystems/token-meter.md +4 -3
  104. package/kb/site/en/reference/subsystems/tools.md +5 -5
  105. package/kb/site/en/reference/subsystems/typert.md +18 -18
  106. package/kb/site/en/reference/subsystems/web-client.md +1 -1
  107. package/kb/site/en/reference/subsystems/workspace.md +88 -9
  108. package/kb/site/en/reference/tool-catalog.md +56 -66
  109. package/kb/site/en/reference/tool-execution-pipeline.md +2 -2
  110. package/kb/site/guide/network-proxy.md +87 -0
  111. package/kb/site/guide/providers.md +70 -17
  112. package/kb/site/guide/python-sdk.md +19 -3
  113. package/kb/site/guide/schedule.md +2 -0
  114. package/kb/site/reference/agent-lifecycle.md +17 -8
  115. package/kb/site/reference/api-gateway.md +2 -2
  116. package/kb/site/reference/capability-seams.md +24 -10
  117. package/kb/site/reference/config-catalog.md +321 -263
  118. package/kb/site/reference/cookbook/adding-a-package.md +1 -2
  119. package/kb/site/reference/cookbook/adding-a-settings-card.md +10 -8
  120. package/kb/site/reference/cookbook/adding-a-tool.md +1 -1
  121. package/kb/site/reference/cookbook/extension-cookbook.md +16 -13
  122. package/kb/site/reference/index.md +26 -9
  123. package/kb/site/reference/persistence-catalog.md +190 -96
  124. package/kb/site/reference/subsystems/approval.md +1 -1
  125. package/kb/site/reference/subsystems/client-modules.md +9 -0
  126. package/kb/site/reference/subsystems/client-resources.md +94 -0
  127. package/kb/site/reference/subsystems/code-runtime.md +7 -3
  128. package/kb/site/reference/subsystems/commands.md +25 -16
  129. package/kb/site/reference/subsystems/compaction.md +10 -10
  130. package/kb/site/reference/subsystems/conversation.md +11 -4
  131. package/kb/site/reference/subsystems/core.md +173 -29
  132. package/kb/site/reference/subsystems/credentials.md +5 -4
  133. package/kb/site/reference/subsystems/filesystem.md +15 -0
  134. package/kb/site/reference/subsystems/goal.md +38 -2
  135. package/kb/site/reference/subsystems/index.md +14 -12
  136. package/kb/site/reference/subsystems/invariants.md +1 -1
  137. package/kb/site/reference/subsystems/llm-streaming.md +43 -12
  138. package/kb/site/reference/subsystems/lsp.md +1 -1
  139. package/kb/site/reference/subsystems/permission-presets.md +5 -5
  140. package/kb/site/reference/subsystems/persistence.md +210 -198
  141. package/kb/site/reference/subsystems/plan.md +3 -3
  142. package/kb/site/reference/subsystems/schedule.md +9 -3
  143. package/kb/site/reference/subsystems/scope.md +1 -1
  144. package/kb/site/reference/subsystems/session-projection.md +50 -24
  145. package/kb/site/reference/subsystems/session-query.md +19 -13
  146. package/kb/site/reference/subsystems/session-reference.md +29 -1
  147. package/kb/site/reference/subsystems/session-telemetry.md +27 -10
  148. package/kb/site/reference/subsystems/session-title.md +6 -6
  149. package/kb/site/reference/subsystems/session.md +208 -103
  150. package/kb/site/reference/subsystems/settings.md +30 -12
  151. package/kb/site/reference/subsystems/shell.md +9 -6
  152. package/kb/site/reference/subsystems/sidebar-right.md +151 -0
  153. package/kb/site/reference/subsystems/skills.md +1 -1
  154. package/kb/site/reference/subsystems/slots.md +41 -32
  155. package/kb/site/reference/subsystems/spill.md +13 -6
  156. package/kb/site/reference/subsystems/storage.md +28 -5
  157. package/kb/site/reference/subsystems/subagent.md +58 -105
  158. package/kb/site/reference/subsystems/subprocess.md +25 -26
  159. package/kb/site/reference/subsystems/system-prompt.md +18 -3
  160. package/kb/site/reference/subsystems/token-meter.md +4 -3
  161. package/kb/site/reference/subsystems/tools.md +5 -5
  162. package/kb/site/reference/subsystems/typert.md +18 -18
  163. package/kb/site/reference/subsystems/web-client.md +1 -1
  164. package/kb/site/reference/subsystems/workspace.md +88 -9
  165. package/kb/site/reference/tool-catalog.md +55 -65
  166. package/kb/site/reference/tool-execution-pipeline.md +2 -2
  167. package/lib/index.js +25 -44
  168. package/package.json +3 -2
  169. package/skills/dsh-plugin-dev-kb.md +4 -4
@@ -35,7 +35,7 @@ export interface AcpConfig {
35
35
 
36
36
  Depends on: `Stream` (`@agentclientprotocol/sdk`)
37
37
 
38
- Source: [`packages/acp/acp/src/index.ts:74`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/acp/acp/src/index.ts)
38
+ Source: [`packages/acp/acp/src/index.ts:75`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/acp/acp/src/index.ts)
39
39
 
40
40
  <a id="deepseek-aidsh-agent-default-model"></a>
41
41
 
@@ -57,6 +57,8 @@ Source: [`packages/core/agent-default-model/src/index.ts:41`](https://github.com
57
57
 
58
58
  ## `@deepseek-ai/dsh-agent-instructions`
59
59
 
60
+ Requires: `sessionProjections`
61
+
60
62
  ```ts config-catalog
61
63
  /** User-facing workspace instruction loader configuration. */
62
64
  export interface Config {
@@ -87,7 +89,7 @@ Source: [`packages/context/agent-instructions/src/config.ts:18`](https://github.
87
89
 
88
90
  ## `@deepseek-ai/dsh-agent-loop`
89
91
 
90
- Requires: `agents` · `sessions` · `llm` · `tools` · `systemPrompt`
92
+ Requires: `agents` · `sessions` · `llm` · `tools` · `systemPrompt` · `sessionProjections`
91
93
 
92
94
  ```ts config-catalog
93
95
  /** Agent-loop plugin configuration. */
@@ -113,13 +115,13 @@ export interface Config {
113
115
 
114
116
  Depends on: [`AgentOptions`](./subsystems/core.md) · [`SessionId`](./subsystems/core.md)
115
117
 
116
- Source: [`packages/core/agent-loop/src/index.ts:255`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/agent-loop/src/index.ts)
118
+ Source: [`packages/core/agent-loop/src/index.ts:318`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/agent-loop/src/index.ts)
117
119
 
118
120
  <a id="deepseek-aidsh-agent-presets"></a>
119
121
 
120
122
  ## `@deepseek-ai/dsh-agent-presets`
121
123
 
122
- Requires: `loader`
124
+ Requires: `loader` · `sessionProjections`
123
125
 
124
126
  ```ts config-catalog
125
127
  /** Plugin config: which preset is the default, and where presets live. */
@@ -159,100 +161,7 @@ export interface PresetRoot {
159
161
  export type PresetTrust = 'system' | 'user'
160
162
  ```
161
163
 
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)
163
-
164
- <a id="deepseek-aidsh-agent-spine-demo"></a>
165
-
166
- ## `@deepseek-ai/dsh-agent-spine-demo`
167
-
168
- ```ts config-catalog
169
- /**
170
- * Bundle config: each field forwarded verbatim to the child that owns it —
171
- * `agents` to the agent loop (an app that pre-creates no agents, like the ACP
172
- * bridge, simply omits it), `includeHarnessIdentity`, `includeRuntimeContext`,
173
- * `persona`, and `toolOrder` to the system-prompt plugin (the fixed opener,
174
- * dynamic-context policy, deployment persona, and explicit model-facing tool
175
- * order), the `tools` object to the tool
176
- * registry (its presentation `mode`),
177
- * `dshHome` to bash environment and local skill discovery, `sessionTitle` to
178
- * the fallback title service, `skills` to the
179
- * skill registry/local provider/tool consumer, `workspaceContext` to the
180
- * agent-instructions loader, `jobs` to the process-local job provider, and
181
- * `toolBash`/`toolJobs` to the model-facing tool plugins this bundle owns.
182
- * Provider adapters own their `retryPolicy`; this bundle always mounts its
183
- * executor.
184
- * `goals` opts into and configures the persisted goal domain plus its model tool
185
- * and same-session driver; `invariants` configures global and package-filtered
186
- * relational checks. Owner schemas supply defaults for optional input;
187
- * workspace context instead requires an explicit byte budget or `false` because
188
- * it changes model-visible input. Producer opt-in stays producer-local:
189
- * `toolBash` configures bash only; independently composed producers keep their
190
- * own config. Set `toolBash: false` when another plugin owns the model-facing
191
- * `bash` name.
192
- */
193
- export interface Config {
194
- /** The agent-loop `agents` list (see dsh-agent-loop's `Config`). */
195
- agents?: AgentLoopConfig['agents']
196
- /** Agent-loop concurrency cap; `1` is serial. */
197
- maxParallelToolCalls?: AgentLoopConfig['maxParallelToolCalls']
198
- /** Whether the system prompt includes the fixed Harness identity (default true). */
199
- includeHarnessIdentity?: SystemPromptConfig['includeHarnessIdentity']
200
- /** Whether model history includes dynamic runtime-context snapshots (default true). */
201
- includeRuntimeContext?: SystemPromptConfig['includeRuntimeContext']
202
- /** The deployment persona (see dsh-system-prompt's `Config`). */
203
- persona?: SystemPromptConfig['persona']
204
- /** The explicit model-facing tool order (see dsh-system-prompt's `Config`). */
205
- toolOrder?: SystemPromptConfig['toolOrder']
206
- /** The tool registry's config — its presentation `mode` (see dsh-tools' `Config`). */
207
- tools?: ToolsConfig
208
- /** DeepSeek Harness home directory shared by shell context and local skill discovery. */
209
- dshHome?: string
210
- /** Deterministic fallback and accepted-title limits; omission uses the bundle's example policy. */
211
- sessionTitle?: SessionTitleConfig
212
- /** Workspace-context loader controls with an explicit byte budget; set `false` for hermetic prompts. */
213
- workspaceContext: workspaceContext.Config | false
214
- /**
215
- * Skill registry, local provider, and model-facing consumer config.
216
- * Skills use `enabled` because one nested config controls a provider stack;
217
- * single model-tool plugins use `Config | false` to disable that one consumer.
218
- */
219
- skills?: SkillConfig
220
- /** Model-facing bash tool config, or false when another plugin owns `bash`. */
221
- toolBash?: toolBash.Config | false
222
- /** Process-local background-job admission config. */
223
- jobs?: JobsConfig
224
- /** Generic background-job controls; set false to keep the job service without model-facing job tools. */
225
- toolJobs?: toolJobs.Config | false
226
- /** Global enablement and package-name filters for invariant companions. */
227
- invariants?: InvariantConfig
228
- /** Opt-in persisted same-session goal stack; set false or omit to leave it unmounted. */
229
- goals?: GoalConfig | false
230
- }
231
-
232
- /** Skill bundle config forwarded to the registry, local provider, and model-facing consumer. */
233
- export interface SkillConfig {
234
- /** Mount the bundled local skill provider and model-facing skill tool (default true). */
235
- enabled?: boolean
236
- /** Registry-level discovery cache settings. */
237
- registry?: SkillRegistryConfig
238
- /** Local filesystem skill provider settings. */
239
- filesystem?: SkillFileSystem.Config
240
- /** Model-facing skill catalog and tool settings. */
241
- tool?: toolSkill.Config
242
- }
243
-
244
- /** Persisted goal domain, model-tool policy, and same-session driver config. */
245
- export interface GoalConfig {
246
- /** Goal-domain creation defaults. */
247
- domain?: GoalDomainConfig
248
- /** Model-facing goal-tool authority policy. */
249
- tool?: toolGoal.Config
250
- }
251
- ```
252
-
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)
254
-
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)
164
+ 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)
256
165
 
257
166
  <a id="deepseek-aidsh-agent-tool-presentation"></a>
258
167
 
@@ -287,30 +196,28 @@ Requires: `typert`
287
196
  ```ts config-catalog
288
197
  /** Gateway transport configuration. */
289
198
  export interface Config {
290
- /** WebSocket Ping interval from 1 through 2,147,483,647 milliseconds. @default 30000 */
199
+ /** WebSocket Ping interval from 1 through 2,147,483,647 milliseconds. @default 2000 */
291
200
  readonly websocketHeartbeatIntervalMs?: number
292
201
  }
293
202
  ```
294
203
 
295
- Source: [`packages/api/gateway/src/index.ts:117`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/gateway/src/index.ts)
204
+ Source: [`packages/api/gateway/src/index.ts:119`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/api/gateway/src/index.ts)
296
205
 
297
206
  <a id="deepseek-aidsh-api-session-controller"></a>
298
207
 
299
208
  ## `@deepseek-ai/dsh-api-session-controller`
300
209
 
301
- Requires: `agentDefaultModel` · `agents` · `attachments` · `llm` · `sessions` · `sessionProjections` · `sessionQuery` · `typert` · `workspaceRegistry`
210
+ Requires: `agentDefaultModel` · `agents` · `attachments` · `fileUploads` · `llm` · `sessions` · `sessionProjections` · `sessionQuery` · `typert` · `workspaceRegistry`
302
211
 
303
212
  ```ts config-catalog
304
213
  /** Session Controller deployment policy. */
305
214
  export interface Config {
306
- /** Maximum cold Session artifact size eligible for one full projection observation. */
307
- readonly coldBlankProbeMaxBytes?: number
308
215
  /** Override platform desktop-opener detection. */
309
216
  readonly nativeOpen?: boolean
310
217
  }
311
218
  ```
312
219
 
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)
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)
314
221
 
315
222
  <a id="deepseek-aidsh-api-settings-controller"></a>
316
223
 
@@ -324,7 +231,35 @@ export interface Config {
324
231
  }
325
232
  ```
326
233
 
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)
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
+
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)
328
263
 
329
264
  <a id="deepseek-aidsh-attachment-local"></a>
330
265
 
@@ -359,7 +294,7 @@ export interface Config {
359
294
  }
360
295
  ```
361
296
 
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)
297
+ Source: [`packages/attachment/attachment-local/src/index.ts:61`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/attachment/attachment-local/src/index.ts)
363
298
 
364
299
  <a id="deepseek-aidsh-bash-local"></a>
365
300
 
@@ -406,17 +341,19 @@ export type Config = LocalConfig
406
341
 
407
342
  Depends on: [`LocalConfig`](#deepseek-aidsh-bash-local)
408
343
 
409
- Source: [`packages/shell/bash-sandbox/src/index.ts:35`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
410
345
 
411
346
  <a id="deepseek-aidsh-client-connection"></a>
412
347
 
413
348
  ## `@deepseek-ai/dsh-client-connection`
414
349
 
415
- Requires: `webServer` · `credentials`
350
+ Requires: `credentials`
416
351
 
417
352
  ```ts config-catalog
418
- /** Plugin config: the deployment's non-loopback serving authorities. */
353
+ /** Browser authentication, request limits, and connection recovery configuration. */
419
354
  export interface ConnectionConfig {
355
+ /** Browser recovery timing, injected into each served page. */
356
+ recovery?: ConnectionRecoveryConfig
420
357
  /**
421
358
  * Authorities this deployment serves beyond loopback: exact `host:port`, or
422
359
  * port-less `host` matching any port. The /api trust fence refuses any
@@ -431,9 +368,26 @@ export interface ConnectionConfig {
431
368
  /** Maximum buffered JSON body for every `/api` request. Default: 300 MiB. */
432
369
  maxRequestBodyBytes?: number
433
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
+ }
434
388
  ```
435
389
 
436
- Source: [`packages/client/connection/src/index.ts:70`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
437
391
 
438
392
  <a id="deepseek-aidsh-client-hmr"></a>
439
393
 
@@ -552,7 +506,7 @@ export interface ToolResultPruneConfig {
552
506
  }
553
507
  ```
554
508
 
555
- Source: [`packages/compaction/compaction-tool-result-pruner/src/types.ts:4`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/compaction/compaction-tool-result-pruner/src/types.ts)
509
+ Source: [`packages/compaction/compaction-tool-result-pruner/src/types.ts:5`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/compaction/compaction-tool-result-pruner/src/types.ts)
556
510
 
557
511
  <a id="deepseek-aidsh-cordis-host-runner"></a>
558
512
 
@@ -606,13 +560,13 @@ export interface Config {
606
560
  }
607
561
  ```
608
562
 
609
- Source: [`packages/e2b/e2b/src/index.ts:43`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/e2b/e2b/src/index.ts)
563
+ Source: [`packages/e2b/e2b/src/index.ts:45`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/e2b/e2b/src/index.ts)
610
564
 
611
565
  <a id="deepseek-aidsh-experimental-agent-team"></a>
612
566
 
613
567
  ## `@deepseek-ai/dsh-experimental-agent-team`
614
568
 
615
- Requires: `agents` · `sessions` · `sessionPersistence` · `subagents`
569
+ Requires: `agents` · `sessions` · `sessionPersistence` · `sessionProjections` · `subagents`
616
570
 
617
571
  ```ts config-catalog
618
572
  /** Team-service deployment limits. */
@@ -630,7 +584,74 @@ export interface Config {
630
584
  }
631
585
  ```
632
586
 
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)
587
+ Source: [`packages/experimental/agent-team/src/types.ts:130`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/agent-team/src/types.ts)
588
+
589
+ <a id="deepseek-aidsh-experimental-code-runtime-python"></a>
590
+
591
+ ## `@deepseek-ai/dsh-experimental-code-runtime-python`
592
+
593
+ ```ts config-catalog
594
+ /** Plugin config: every cap, changeable from `cordis.yml` (no hardcoded tunables). */
595
+ export interface Config {
596
+ /**
597
+ * RLIMIT_CPU in whole seconds (a positive integer — `setrlimit` in the child
598
+ * rejects a float). The child sets the soft limit to `cpuSeconds` and the
599
+ * hard limit to `cpuSeconds + 1`: the kernel delivers SIGXCPU at the soft
600
+ * limit, which the host classifies as a `timeout`; the +1s hard limit is a
601
+ * SIGKILL backstop for a program that traps SIGXCPU. Granularity is seconds —
602
+ * a coarser counterpart to the worker backend's millisecond `computeMs`.
603
+ */
604
+ cpuSeconds?: number
605
+ /** Wall-clock ceiling in milliseconds; backstops CPU time for programs awaiting a promise nobody resolves. */
606
+ maxWallMs?: number
607
+ /**
608
+ * RLIMIT_AS in mebibytes; caps address space so a runaway allocation fails
609
+ * cleanly. Not applied on Darwin, where the dyld shared cache mapped into
610
+ * every process at exec exceeds any practical cap and the kernel rejects
611
+ * the call; `cpuSeconds` and `maxWallMs` still bound the run there. Bounds
612
+ * `maxLogBytes`/`maxValueBytes` at load on EVERY platform (this static check
613
+ * runs on Darwin too, where only the runtime `setrlimit` is skipped): each
614
+ * budget times a worst-case Unicode expansion must fit this byte count minus a
615
+ * fixed interpreter baseline, so a near-budget output cannot breach the address
616
+ * space during the child's build-and-encode.
617
+ */
618
+ addressSpaceMb?: number
619
+ /**
620
+ * Shared byte budget for captured log text (host-side ledger). Bounded at load
621
+ * against `addressSpaceMb`: the child builds and encodes a near-budget entry
622
+ * under RLIMIT_AS with several copies live at once, so this cap times the
623
+ * worst-case Unicode expansion must fit the address space left after the
624
+ * interpreter baseline (see `addressSpaceMb`) — a load-time rejection, not a
625
+ * runtime clamp. Also bounded at load by the host's configured heap like
626
+ * `maxValueBytes` (see its JSDoc): the effective frame cap minus the frame
627
+ * envelope.
628
+ */
629
+ maxLogBytes?: number
630
+ /**
631
+ * Byte cap for the completion value. Bounded at load against `addressSpaceMb`
632
+ * the same way `maxLogBytes` is: the child builds and encodes a near-budget
633
+ * value under RLIMIT_AS with several copies live at once, so this cap times the
634
+ * worst-case Unicode expansion must fit the address space left after the
635
+ * interpreter baseline. Both budgets are ALSO bounded at load by the host's
636
+ * configured heap: the effective frame cap (the protocol cap, or a lower
637
+ * heap-derived ceiling when the host heap cannot safely parse a near-cap
638
+ * frame — see `hostFrameParseCeiling`) minus the frame envelope, so a budget
639
+ * whose honest frame could OOM the host's own JSON.parse is rejected up
640
+ * front.
641
+ */
642
+ maxValueBytes?: number
643
+ /** SIGTERM→SIGKILL grace period on kill, matching bash-local's default. */
644
+ graceMs?: number
645
+ /**
646
+ * Absolute path, relative path, or basename of a CPython 3.10+ interpreter.
647
+ * Resolved and validated once at plugin load under a five-second force-kill
648
+ * deadline; a basename searches `PATH`.
649
+ */
650
+ pythonBin?: string
651
+ }
652
+ ```
653
+
654
+ Source: [`packages/experimental/code-runtime-python/src/index.ts:42`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/experimental/code-runtime-python/src/index.ts)
634
655
 
635
656
  <a id="deepseek-aidsh-experimental-inspector"></a>
636
657
 
@@ -716,7 +737,7 @@ export interface Config {
716
737
  }
717
738
  ```
718
739
 
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)
740
+ 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)
720
741
 
721
742
  <a id="deepseek-aidsh-file-reference-local"></a>
722
743
 
@@ -736,7 +757,7 @@ export interface Config {
736
757
  }
737
758
  ```
738
759
 
739
- Source: [`packages/context/file-reference-local/src/index.ts:35`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/file-reference-local/src/index.ts)
760
+ Source: [`packages/context/file-reference-local/src/index.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/file-reference-local/src/index.ts)
740
761
 
741
762
  <a id="deepseek-aidsh-fs-local"></a>
742
763
 
@@ -755,7 +776,7 @@ export interface Config {
755
776
  }
756
777
  ```
757
778
 
758
- Source: [`packages/fs/fs-local/src/index.ts:41`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
759
780
 
760
781
  <a id="deepseek-aidsh-fs-sandbox"></a>
761
782
 
@@ -781,7 +802,7 @@ Source: [`packages/fs/fs-sandbox/src/index.ts:45`](https://github.com/deepseek-a
781
802
 
782
803
  ## `@deepseek-ai/dsh-goal`
783
804
 
784
- Requires: `agents`
805
+ Requires: `agents` · `sessionProjections`
785
806
 
786
807
  ```ts config-catalog
787
808
  /** Deployment defaults for goal creation. */
@@ -791,7 +812,7 @@ export interface Config {
791
812
  }
792
813
  ```
793
814
 
794
- Source: [`packages/goal/goal/src/index.ts:116`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/goal/goal/src/index.ts)
815
+ Source: [`packages/goal/goal/src/index.ts:172`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/goal/goal/src/index.ts)
795
816
 
796
817
  <a id="deepseek-aidsh-headless"></a>
797
818
 
@@ -807,13 +828,13 @@ export interface Config {
807
828
  }
808
829
  ```
809
830
 
810
- Source: [`packages/bundle/headless/src/index.ts:32`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/headless/src/index.ts)
831
+ Source: [`packages/bundle/headless/src/index.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/headless/src/index.ts)
811
832
 
812
833
  <a id="deepseek-aidsh-hooks-claude-code"></a>
813
834
 
814
835
  ## `@deepseek-ai/dsh-hooks-claude-code`
815
836
 
816
- Requires: `shell`
837
+ Requires: `shell` · `sessionProjections`
817
838
 
818
839
  ```ts config-catalog
819
840
  /** Plugin config: where the CC hook config lives + substitution roots. */
@@ -845,13 +866,13 @@ export interface Config {
845
866
  }
846
867
  ```
847
868
 
848
- Source: [`packages/hooks/hooks-claude-code/src/index.ts:45`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
849
870
 
850
871
  <a id="deepseek-aidsh-hooks-codex"></a>
851
872
 
852
873
  ## `@deepseek-ai/dsh-hooks-codex`
853
874
 
854
- Requires: `shell`
875
+ Requires: `shell` · `sessionProjections`
855
876
 
856
877
  ```ts config-catalog
857
878
  /** Plugin config: where the Codex hooks.json lives + the model name for payloads. */
@@ -872,7 +893,7 @@ export interface Config {
872
893
  }
873
894
  ```
874
895
 
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)
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)
876
897
 
877
898
  <a id="deepseek-aidsh-host-directory-picker-browse"></a>
878
899
 
@@ -904,6 +925,37 @@ export interface Config {
904
925
 
905
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)
906
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
+
907
959
  <a id="deepseek-aidsh-host-webserver"></a>
908
960
 
909
961
  ## `@deepseek-ai/dsh-host-webserver`
@@ -989,7 +1041,7 @@ export interface Config {
989
1041
  maxTokens?: number
990
1042
  /** Positive context capacity used when the selected model has no exact value (default 1,000,000). */
991
1043
  defaultContextWindow?: number
992
- /** 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. */
993
1045
  models?: DeepSeekCatalogModel[]
994
1046
  /** Maximum provider idle time while one stream read is outstanding (default five minutes). */
995
1047
  streamIdleTimeoutMs?: number
@@ -1035,12 +1087,18 @@ export interface DeepSeekCatalogModel {
1035
1087
  imagePixelBudget?: number | 'low'
1036
1088
  /** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
1037
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
1038
1096
  }
1039
1097
  ```
1040
1098
 
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)
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)
1042
1100
 
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)
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)
1044
1102
 
1045
1103
  <a id="deepseek-aidsh-llm-pi-ai"></a>
1046
1104
 
@@ -1119,7 +1177,7 @@ export interface PiAiProviderProfile {
1119
1177
  * to answer instead.
1120
1178
  */
1121
1179
  defaultInput?: PiAiModality[]
1122
- /** Provider request headers; Harness attribution wins reserved names. */
1180
+ /** Provider request headers, validated against Fetch when the profile resolves; Harness attribution wins reserved names. */
1123
1181
  headers?: Record<string, string>
1124
1182
  /** Provider-neutral pi-ai reasoning level. */
1125
1183
  reasoning?: ModelThinkingLevel
@@ -1259,8 +1317,14 @@ export interface PiAiCompatProfile {
1259
1317
  chatTemplateKwargs?: NonNullable<OpenAICompletionsCompat['chatTemplateKwargs']>
1260
1318
  /** Arguments sent as `chat_template_args` under the `baseten` thinking format; `openai-completions`. */
1261
1319
  chatTemplateArgs?: NonNullable<OpenAICompletionsCompat['chatTemplateArgs']>
1262
- /** Whether the endpoint accepts `thinking_token_budget` to cap vLLM reasoning; `openai-completions`. */
1320
+ /** Alias for `thinkingTokenBudgetField: "thinking_token_budget"`; an explicit field wins. `openai-completions`. */
1263
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
1264
1328
  /**
1265
1329
  * Whether the endpoint accepts `strict` in tool definitions;
1266
1330
  * `openai-completions`, the three Responses protocols, `bedrock-converse-stream`.
@@ -1302,11 +1366,14 @@ export type PiAiReasoningEfforts = Partial<Record<ModelThinkingLevel, string | n
1302
1366
 
1303
1367
  /** One reasoning-dispatch wire format a profile may name. */
1304
1368
  export type PiAiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
1369
+
1370
+ /** The reasoning-budget field spellings pi-ai accepts. */
1371
+ export type PiAiThinkingTokenBudgetField = NonNullable<OpenAICompletionsCompat['thinkingTokenBudgetField']>
1305
1372
  ```
1306
1373
 
1307
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`)
1308
1375
 
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)
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)
1310
1377
 
1311
1378
  <a id="deepseek-aidsh-llm-replay"></a>
1312
1379
 
@@ -1378,25 +1445,27 @@ export interface ReplayModelConfig {
1378
1445
  * {@link reasoningEfforts} or call resolution rejects the route.
1379
1446
  */
1380
1447
  defaultReasoningEffort?: string
1448
+ /** Optional in-history system prompt replacement for a keyless replay route. */
1449
+ systemPromptUpdate?: SystemPromptUpdate
1381
1450
  }
1382
1451
  ```
1383
1452
 
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)
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)
1385
1454
 
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)
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)
1387
1456
 
1388
1457
  <a id="deepseek-aidsh-llm-retry"></a>
1389
1458
 
1390
1459
  ## `@deepseek-ai/dsh-llm-retry`
1391
1460
 
1392
- Requires: `agents`
1461
+ Requires: `agents` · `sessionProjections`
1393
1462
 
1394
1463
  ```ts config-catalog
1395
1464
  /** This policy executor has no config; providers own `retryPolicy`. */
1396
1465
  export type Config = Readonly<Record<string, never>>
1397
1466
  ```
1398
1467
 
1399
- Source: [`packages/llm/llm-retry/src/index.ts:24`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-retry/src/index.ts)
1468
+ Source: [`packages/llm/llm-retry/src/index.ts:25`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/llm-retry/src/index.ts)
1400
1469
 
1401
1470
  <a id="deepseek-aidsh-lsp-stdio"></a>
1402
1471
 
@@ -1517,7 +1586,7 @@ Source: [`packages/mcp/mcp-client/src/index.ts:98`](https://github.com/deepseek-
1517
1586
 
1518
1587
  ## `@deepseek-ai/dsh-message-feedback`
1519
1588
 
1520
- Requires: `storageDomain` · `sessionPersistence` · `sessions`
1589
+ Requires: `sessionPersistence` · `sessions`
1521
1590
 
1522
1591
  ```ts config-catalog
1523
1592
  /** Required deployment policy for optional notes. */
@@ -1527,13 +1596,13 @@ export interface Config {
1527
1596
  }
1528
1597
  ```
1529
1598
 
1530
- Source: [`packages/feedback/message-feedback/src/index.ts:49`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
1531
1600
 
1532
1601
  <a id="deepseek-aidsh-permission-presets"></a>
1533
1602
 
1534
1603
  ## `@deepseek-ai/dsh-permission-presets`
1535
1604
 
1536
- Requires: `shell` · `approval` · `sessions`
1605
+ Requires: `shell` · `approval` · `sessions` · `sessionProjections`
1537
1606
 
1538
1607
  ```ts config-catalog
1539
1608
  /** The {@link PermissionPresetService} config: preset table and composition default. */
@@ -1566,7 +1635,7 @@ export interface PresetSpec {
1566
1635
 
1567
1636
  Depends on: [`ApprovalPolicy`](./subsystems/approval.md) · [`SandboxMode`](./subsystems/sandbox.md)
1568
1637
 
1569
- Source: [`packages/interaction/permission-presets/src/index.ts:156`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/permission-presets/src/index.ts)
1638
+ Source: [`packages/interaction/permission-presets/src/index.ts:143`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/permission-presets/src/index.ts)
1570
1639
 
1571
1640
  <a id="deepseek-aidsh-persona"></a>
1572
1641
 
@@ -1578,25 +1647,30 @@ Requires: `systemPrompt`
1578
1647
  /** Plugin config: the persona text this composition contributes. */
1579
1648
  export interface Config {
1580
1649
  /**
1581
- * Persona prose rendered as the `deployment:persona` section. A template:
1650
+ * Persona prose rendered as the `deployment:persona-prefix` section. A template:
1582
1651
  * complete `{{…}}` groups interpolate strictly against registered prompt
1583
1652
  * variables. Empty text drops the section at render, matching the registry.
1584
1653
  */
1585
- text: string
1586
- /** Make this persona the complete system prompt, suppressing every other section. */
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. */
1587
1661
  complete?: boolean
1588
1662
  /** Suppress dynamic runtime-context snapshots for this persona's agent scope. */
1589
1663
  includeRuntimeContext?: boolean
1590
1664
  }
1591
1665
  ```
1592
1666
 
1593
- Source: [`packages/preset/persona/src/index.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/preset/persona/src/index.ts)
1667
+ Source: [`packages/preset/persona/src/index.ts:30`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/preset/persona/src/index.ts)
1594
1668
 
1595
1669
  <a id="deepseek-aidsh-plan-mode"></a>
1596
1670
 
1597
1671
  ## `@deepseek-ai/dsh-plan-mode`
1598
1672
 
1599
- Requires: `tools` · `systemPrompt`
1673
+ Requires: `tools` · `systemPrompt` · `sessionProjections`
1600
1674
 
1601
1675
  ```ts config-catalog
1602
1676
  /** Deployment-owned plan guidance. */
@@ -1606,7 +1680,7 @@ export interface PlanModeConfig {
1606
1680
  }
1607
1681
  ```
1608
1682
 
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)
1683
+ Source: [`packages/plan/plan-mode/src/index.ts:63`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/plan/plan-mode/src/index.ts)
1610
1684
 
1611
1685
  <a id="deepseek-aidsh-plugin-package-inventory-deepseek"></a>
1612
1686
 
@@ -1622,7 +1696,7 @@ export interface Config {
1622
1696
  }
1623
1697
  ```
1624
1698
 
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)
1699
+ Source: [`packages/llm/plugin-package-inventory-deepseek/src/index.ts:31`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/plugin-package-inventory-deepseek/src/index.ts)
1626
1700
 
1627
1701
  <a id="deepseek-aidsh-pwsh-local"></a>
1628
1702
 
@@ -1749,6 +1823,8 @@ Source: [`packages/sandbox/sandbox-local/src/index.ts:44`](https://github.com/de
1749
1823
 
1750
1824
  ## `@deepseek-ai/dsh-sandbox-policy`
1751
1825
 
1826
+ Requires: `sessionProjections`
1827
+
1752
1828
  ```ts config-catalog
1753
1829
  /**
1754
1830
  * Plugin config: the deployment's sandbox default. All optional — `Config`
@@ -1770,7 +1846,7 @@ export interface Config {
1770
1846
 
1771
1847
  Depends on: [`SandboxMode`](./subsystems/sandbox.md)
1772
1848
 
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)
1849
+ Source: [`packages/sandbox/sandbox-policy/src/index.ts:70`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/sandbox/sandbox-policy/src/index.ts)
1774
1850
 
1775
1851
  <a id="deepseek-aidsh-sdk-app"></a>
1776
1852
 
@@ -1826,7 +1902,7 @@ export interface Config {
1826
1902
  }
1827
1903
  ```
1828
1904
 
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)
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)
1830
1906
 
1831
1907
  <a id="deepseek-aidsh-session-log-export"></a>
1832
1908
 
@@ -1845,16 +1921,14 @@ export interface Config {
1845
1921
  export type SessionLogCompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1846
1922
  ```
1847
1923
 
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)
1924
+ Source: [`packages/session-query/session-log-export/src/index.ts:45`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session-query/session-log-export/src/index.ts)
1849
1925
 
1850
1926
  <a id="deepseek-aidsh-session-persistence-jsonl"></a>
1851
1927
 
1852
1928
  ## `@deepseek-ai/dsh-session-persistence-jsonl`
1853
1929
 
1854
- Requires: `sessions`
1855
-
1856
1930
  ```ts config-catalog
1857
- /** Plugin config: where the JSONL backend keeps its session logs, and the packed-row write switch. */
1931
+ /** Plugin config for the JSONL backend's root and physical encoding. */
1858
1932
  export interface Config {
1859
1933
  /**
1860
1934
  * Root directory for all session files. Required (no default): a default of
@@ -1864,54 +1938,15 @@ export interface Config {
1864
1938
  * readable directory; an absent root is created on first materialization.
1865
1939
  */
1866
1940
  root: string
1867
- /**
1868
- * Write runs of consecutive `assistant/chunk` delta events as packed
1869
- * `text-chunks`/`reasoning-chunks`/`tool-call-chunks` rows (lossless,
1870
- * ~60% smaller logs measured on a real session). Defaults to true; false
1871
- * keeps one `SessionEvent` per line for diagnostics. Reading packed rows is
1872
- * unconditional: a log's layout never depends on this switch.
1873
- */
1874
- packChunks?: boolean
1875
1941
  /** Physical encoding; defaults to checksummed Zstandard frames. */
1876
1942
  compression?: JsonlCompression
1877
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1878
- preparedSessionCacheSize?: number
1879
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1880
- writeBatchMaxDelayMs?: number
1881
1943
  }
1882
1944
 
1883
1945
  /** Physical encoding selected for JSONL session artifacts. */
1884
1946
  export type JsonlCompression = 'zstd' | 'none'
1885
1947
  ```
1886
1948
 
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)
1888
-
1889
- <a id="deepseek-aidsh-session-persistence-sqlite"></a>
1890
-
1891
- ## `@deepseek-ai/dsh-session-persistence-sqlite`
1892
-
1893
- Requires: `sessions`
1894
-
1895
- ```ts config-catalog
1896
- /** Plugin configuration. */
1897
- export interface Config {
1898
- /** SQLite database path, or `:memory:` for an in-process database. */
1899
- path: string
1900
- /** Durable SQLite journal mode; defaults to `wal`. */
1901
- journalMode?: JournalMode
1902
- /** Maximum wait for another SQLite connection's lock; defaults to 5,000 ms. */
1903
- busyTimeoutMs?: number
1904
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1905
- preparedSessionCacheSize?: number
1906
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1907
- writeBatchMaxDelayMs?: number
1908
- }
1909
-
1910
- /** Durable journal modes accepted by the backend. */
1911
- export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1912
- ```
1913
-
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)
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)
1915
1950
 
1916
1951
  <a id="deepseek-aidsh-session-projection-cache"></a>
1917
1952
 
@@ -1935,7 +1970,7 @@ export interface Config {
1935
1970
  }
1936
1971
  ```
1937
1972
 
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)
1973
+ Source: [`packages/session/session-projection-cache/src/index.ts:63`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-projection-cache/src/index.ts)
1939
1974
 
1940
1975
  <a id="deepseek-aidsh-session-query-sqlite"></a>
1941
1976
 
@@ -1968,8 +2003,10 @@ export interface Config extends SessionQueryConfig {
1968
2003
  maxLimit?: number
1969
2004
  /** Maximum snippet length in Unicode code points. Defaults to 240. */
1970
2005
  snippetChars?: number
1971
- /** Maximum concurrent persisted-log inspections in one inherited batch read. Defaults to 4. */
1972
- persistedInspectConcurrency?: number
2006
+ /** Maximum concurrent persisted-log reads in one inherited batch read. Defaults to 4. */
2007
+ persistedReadConcurrency?: number
2008
+ /** Maximum cold prepared-Session observations the inherited reader retains for reuse. Defaults to 5. */
2009
+ preparedSessionCacheSize?: number
1973
2010
  }
1974
2011
 
1975
2012
  /** SQLite module/handle opening phase; `never` disables full-text search entirely. */
@@ -1981,7 +2018,7 @@ export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1981
2018
 
1982
2019
  Depends on: [`SessionQueryConfig`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session-query/session-query/src/index.ts)
1983
2020
 
1984
- Source: [`packages/session-query/session-query-sqlite/src/index.ts:89`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session-query/session-query-sqlite/src/index.ts)
2021
+ Source: [`packages/session-query/session-query-sqlite/src/index.ts:92`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session-query/session-query-sqlite/src/index.ts)
1985
2022
 
1986
2023
  <a id="deepseek-aidsh-session-reference"></a>
1987
2024
 
@@ -1996,8 +2033,10 @@ export interface Config {
1996
2033
  maxReferences?: number
1997
2034
  /** Default host candidate-list limit. */
1998
2035
  candidateLimit?: number
1999
- /** Maximum rendered UTF-8 bytes for one source snapshot. */
2036
+ /** Explicit maximum rendered UTF-8 bytes per source; absent uses the model-relative budget with a 64 KiB floor. */
2000
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
2001
2040
  }
2002
2041
  ```
2003
2042
 
@@ -2016,7 +2055,7 @@ Requires: `sessions`
2016
2055
  * and shutdown deadline at plugin load; `DISABLED` reads neither.
2017
2056
  */
2018
2057
  export interface Config {
2019
- /** Sharing policy; defaults to local-only `DISABLED` behavior. */
2058
+ /** Defaults to `FEEDBACK_ONLY`: capture session history only when feedback is explicitly submitted. */
2020
2059
  mode?: SessionTelemetryMode
2021
2060
  /**
2022
2061
  * Passed verbatim to the SDK's OTLP/HTTP log exporter — the complete
@@ -2039,7 +2078,6 @@ export interface Config {
2039
2078
 
2040
2079
  /** Session-sharing policy selected by {@link Config.mode}. */
2041
2080
  export enum SessionTelemetryMode {
2042
- FULL = 'FULL',
2043
2081
  FEEDBACK_ONLY = 'FEEDBACK_ONLY',
2044
2082
  DISABLED = 'DISABLED',
2045
2083
  }
@@ -2047,13 +2085,13 @@ export enum SessionTelemetryMode {
2047
2085
 
2048
2086
  Depends on: `BatchLogRecordProcessorOptions` (`@opentelemetry/sdk-logs`) · `OTLPExporterNodeConfigBase` (`@opentelemetry/otlp-exporter-base`)
2049
2087
 
2050
- Source: [`packages/session/session-telemetry-otel/src/index.ts:91`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
2051
2089
 
2052
2090
  <a id="deepseek-aidsh-session-title"></a>
2053
2091
 
2054
2092
  ## `@deepseek-ai/dsh-session-title`
2055
2093
 
2056
- Requires: `sessions`
2094
+ Requires: `sessions` · `sessionProjections`
2057
2095
 
2058
2096
  ```ts config-catalog
2059
2097
  /** Required deterministic fallback and accepted-title limits. */
@@ -2067,7 +2105,7 @@ export interface Config {
2067
2105
  }
2068
2106
  ```
2069
2107
 
2070
- Source: [`packages/session/session-title/src/index.ts:79`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-title/src/index.ts)
2108
+ Source: [`packages/session/session-title/src/index.ts:56`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-title/src/index.ts)
2071
2109
 
2072
2110
  <a id="deepseek-aidsh-session-title-all-prompts-llm"></a>
2073
2111
 
@@ -2117,7 +2155,7 @@ export interface Config {
2117
2155
  }
2118
2156
  ```
2119
2157
 
2120
- Source: [`packages/settings/settings-file/src/index.ts:21`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/settings/settings-file/src/index.ts)
2158
+ Source: [`packages/settings/settings-file/src/index.ts:22`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/settings/settings-file/src/index.ts)
2121
2159
 
2122
2160
  <a id="deepseek-aidsh-shell-env"></a>
2123
2161
 
@@ -2131,7 +2169,7 @@ export interface Config {
2131
2169
  }
2132
2170
  ```
2133
2171
 
2134
- Source: [`packages/shell/shell-env/src/index.ts:29`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/shell-env/src/index.ts)
2172
+ Source: [`packages/shell/shell-env/src/index.ts:28`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/shell-env/src/index.ts)
2135
2173
 
2136
2174
  <a id="deepseek-aidsh-skill"></a>
2137
2175
 
@@ -2145,7 +2183,7 @@ export interface Config {
2145
2183
  }
2146
2184
  ```
2147
2185
 
2148
- Source: [`packages/skill/skill/src/index.ts:279`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill/src/index.ts)
2186
+ Source: [`packages/skill/skill/src/index.ts:280`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/skill/skill/src/index.ts)
2149
2187
 
2150
2188
  <a id="deepseek-aidsh-skill-filesystem"></a>
2151
2189
 
@@ -2232,7 +2270,7 @@ export interface Config {
2232
2270
  }
2233
2271
  ```
2234
2272
 
2235
- Source: [`packages/spill/spill-policy/src/index.ts:60`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
2236
2274
 
2237
2275
  <a id="deepseek-aidsh-storage-domain"></a>
2238
2276
 
@@ -2396,7 +2434,7 @@ export interface Config {
2396
2434
  * `bypassPermissions` explicitly skips permission checks.
2397
2435
  */
2398
2436
  permissionMode?: ClaudeCodePermissionMode
2399
- /** Grace in milliseconds for Claude Code process-tree termination. */
2437
+ /** Grace in milliseconds between Claude Code managed-range termination tiers. */
2400
2438
  disposeGraceMs?: number
2401
2439
  }
2402
2440
 
@@ -2426,7 +2464,7 @@ export interface Config {
2426
2464
  env?: Record<string, string>
2427
2465
  /** Native non-interactive permission mode fixed for this Provider instance. */
2428
2466
  permissionMode?: CodexPermissionMode
2429
- /** Grace in milliseconds for app-server process-tree termination. */
2467
+ /** Grace in milliseconds between app-server managed-range termination tiers. */
2430
2468
  disposeGraceMs?: number
2431
2469
  }
2432
2470
 
@@ -2541,24 +2579,29 @@ export interface Config {
2541
2579
  }
2542
2580
  ```
2543
2581
 
2544
- Source: [`packages/e2b/subprocess-e2b/src/index.ts:25`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
2545
2583
 
2546
2584
  <a id="deepseek-aidsh-system-prompt"></a>
2547
2585
 
2548
2586
  ## `@deepseek-ai/dsh-system-prompt`
2549
2587
 
2550
2588
  ```ts config-catalog
2551
- /** Plugin config: the deployment-authored fragment of the system prompt (see {@link Config.persona} for its contract). */
2589
+ /** Plugin config: the deployment-authored fragment of the system prompt (see {@link Config.personaPrefix} for its contract). */
2552
2590
  export interface Config {
2553
2591
  /** Include the fixed DeepSeek Harness identity before the deployment persona (default true). */
2554
2592
  includeHarnessIdentity?: boolean
2555
2593
  /** Include dynamic runtime-context snapshots in model history (default true). */
2556
2594
  includeRuntimeContext?: boolean
2557
2595
  /**
2558
- * Deployment-wide order-0 persona template. A scoped section named
2559
- * `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.
2560
2598
  */
2561
- persona?: string
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
2562
2605
  /**
2563
2606
  * Model-facing tool names in order, with {@link TOOL_ORDER_REST} exactly once.
2564
2607
  * Invalid fields fail at load and unknown names fail at assembly; known names
@@ -2568,13 +2611,13 @@ export interface Config {
2568
2611
  }
2569
2612
  ```
2570
2613
 
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)
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)
2572
2615
 
2573
2616
  <a id="deepseek-aidsh-terminal-bash"></a>
2574
2617
 
2575
2618
  ## `@deepseek-ai/dsh-terminal-bash`
2576
2619
 
2577
- Requires: `terminals` · `sandboxPolicy` · `subprocess`
2620
+ Requires: `terminals` · `sandboxPolicy` · `sessionProjections` · `subprocess`
2578
2621
 
2579
2622
  ```ts config-catalog
2580
2623
  /** Public plugin configuration. */
@@ -2624,7 +2667,7 @@ Source: [`packages/terminal/terminal-bash/src/config.ts:10`](https://github.com/
2624
2667
 
2625
2668
  ## `@deepseek-ai/dsh-time-context`
2626
2669
 
2627
- Requires: `agents`
2670
+ Requires: `agents` · `sessionProjections`
2628
2671
 
2629
2672
  ```ts config-catalog
2630
2673
  /** Request-preparation clock formatting and append scheduling. Invalid values fail plugin load. */
@@ -2636,13 +2679,13 @@ export interface Config {
2636
2679
  }
2637
2680
  ```
2638
2681
 
2639
- Source: [`packages/context/time-context/src/index.ts:27`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/time-context/src/index.ts)
2682
+ Source: [`packages/context/time-context/src/index.ts:49`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/time-context/src/index.ts)
2640
2683
 
2641
2684
  <a id="deepseek-aidsh-tmux-context"></a>
2642
2685
 
2643
2686
  ## `@deepseek-ai/dsh-tmux-context`
2644
2687
 
2645
- Requires: `agents`
2688
+ Requires: `agents` · `sessionProjections`
2646
2689
 
2647
2690
  ```ts config-catalog
2648
2691
  /** Per-turn tmux-location scheduling. Invalid values fail plugin load. */
@@ -2652,18 +2695,20 @@ export interface Config {
2652
2695
  }
2653
2696
  ```
2654
2697
 
2655
- Source: [`packages/context/tmux-context/src/index.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/tmux-context/src/index.ts)
2698
+ Source: [`packages/context/tmux-context/src/index.ts:36`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/context/tmux-context/src/index.ts)
2656
2699
 
2657
2700
  <a id="deepseek-aidsh-token-meter"></a>
2658
2701
 
2659
2702
  ## `@deepseek-ai/dsh-token-meter`
2660
2703
 
2704
+ Requires: `sessionProjections`
2705
+
2661
2706
  ```ts config-catalog
2662
2707
  /** Token-meter plugin configuration; the fixed estimator has no settings. */
2663
2708
  export type TokenMeterConfig = Record<string, never>
2664
2709
  ```
2665
2710
 
2666
- Source: [`packages/llm/token-meter/src/types.ts:12`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/token-meter/src/types.ts)
2711
+ Source: [`packages/llm/token-meter/src/types.ts:13`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/llm/token-meter/src/types.ts)
2667
2712
 
2668
2713
  <a id="deepseek-aidsh-tool-bash"></a>
2669
2714
 
@@ -2679,7 +2724,7 @@ export interface Config {
2679
2724
  }
2680
2725
  ```
2681
2726
 
2682
- Source: [`packages/shell/tool-bash/src/index.ts:34`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/tool-bash/src/index.ts)
2727
+ Source: [`packages/shell/tool-bash/src/index.ts:33`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/tool-bash/src/index.ts)
2683
2728
 
2684
2729
  <a id="deepseek-aidsh-tool-bash-persistent"></a>
2685
2730
 
@@ -2701,7 +2746,7 @@ export interface Config {
2701
2746
  }
2702
2747
  ```
2703
2748
 
2704
- Source: [`packages/shell/tool-bash-persistent/src/index.ts:432`](https://github.com/deepseek-ai/deepseek-harness/blob/master/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)
2705
2750
 
2706
2751
  <a id="deepseek-aidsh-tool-fs"></a>
2707
2752
 
@@ -2764,7 +2809,7 @@ Source: [`packages/fs/tool-fs-search/src/index.ts:73`](https://github.com/deepse
2764
2809
 
2765
2810
  ## `@deepseek-ai/dsh-tool-goal`
2766
2811
 
2767
- Requires: `agents` · `goals` · `tools` · `systemPrompt`
2812
+ Requires: `agents` · `goals` · `tools` · `systemPrompt` · `sessionProjections`
2768
2813
 
2769
2814
  ```ts config-catalog
2770
2815
  /** Model policy and hard lower bounds for goal-state updates. */
@@ -2774,7 +2819,7 @@ export interface Config {
2774
2819
  }
2775
2820
  ```
2776
2821
 
2777
- Source: [`packages/goal/tool-goal/src/index.ts:26`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/goal/tool-goal/src/index.ts)
2822
+ Source: [`packages/goal/tool-goal/src/index.ts:25`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/goal/tool-goal/src/index.ts)
2778
2823
 
2779
2824
  <a id="deepseek-aidsh-tool-jobs"></a>
2780
2825
 
@@ -2808,7 +2853,7 @@ export interface Config {
2808
2853
  export type CompletionDelivery = 'quiet' | 'wakeup'
2809
2854
  ```
2810
2855
 
2811
- Source: [`packages/jobs/tool-jobs/src/index.ts:32`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/jobs/tool-jobs/src/index.ts)
2856
+ Source: [`packages/jobs/tool-jobs/src/index.ts:31`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/jobs/tool-jobs/src/index.ts)
2812
2857
 
2813
2858
  <a id="deepseek-aidsh-tool-lsp"></a>
2814
2859
 
@@ -2828,7 +2873,23 @@ export interface Config {
2828
2873
  }
2829
2874
  ```
2830
2875
 
2831
- Source: [`packages/lsp/tool-lsp/src/index.ts:58`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/lsp/tool-lsp/src/index.ts)
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)
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)
2832
2893
 
2833
2894
  <a id="deepseek-aidsh-tool-pwsh"></a>
2834
2895
 
@@ -2844,7 +2905,7 @@ export interface Config {
2844
2905
  }
2845
2906
  ```
2846
2907
 
2847
- Source: [`packages/shell/tool-pwsh/src/index.ts:52`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/tool-pwsh/src/index.ts)
2908
+ Source: [`packages/shell/tool-pwsh/src/index.ts:51`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/shell/tool-pwsh/src/index.ts)
2848
2909
 
2849
2910
  <a id="deepseek-aidsh-tool-pwsh-persistent"></a>
2850
2911
 
@@ -2888,13 +2949,13 @@ export interface Config {
2888
2949
  }
2889
2950
  ```
2890
2951
 
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)
2952
+ Source: [`packages/workflow/tool-ralph/src/index.ts:21`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/workflow/tool-ralph/src/index.ts)
2892
2953
 
2893
2954
  <a id="deepseek-aidsh-tool-session-query"></a>
2894
2955
 
2895
2956
  ## `@deepseek-ai/dsh-tool-session-query`
2896
2957
 
2897
- Requires: `tools` · `systemPrompt` · `sessionQuery`
2958
+ Requires: `tools` · `systemPrompt` · `sessionQuery` · `sessionProjections`
2898
2959
 
2899
2960
  ```ts config-catalog
2900
2961
  /** Deployment-owned search count and timeout bounds. */
@@ -2906,7 +2967,7 @@ export interface Config {
2906
2967
  }
2907
2968
  ```
2908
2969
 
2909
- Source: [`packages/session-query/tool-session-query/src/index.ts:29`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session-query/tool-session-query/src/index.ts)
2970
+ Source: [`packages/session-query/tool-session-query/src/index.ts:28`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session-query/tool-session-query/src/index.ts)
2910
2971
 
2911
2972
  <a id="deepseek-aidsh-tool-skill"></a>
2912
2973
 
@@ -2946,7 +3007,7 @@ Source: [`packages/fs/tool-str-replace-editor/src/index.ts:505`](https://github.
2946
3007
 
2947
3008
  ## `@deepseek-ai/dsh-tool-subagent`
2948
3009
 
2949
- Requires: `tools` · `subagents` · `systemPrompt`
3010
+ Requires: `tools` · `subagents` · `systemPrompt` · `sessionProjections`
2950
3011
 
2951
3012
  ```ts config-catalog
2952
3013
  /** Config: which registered provider this tool delegates to, plus child defaults. */
@@ -2959,8 +3020,8 @@ export interface Config {
2959
3020
  */
2960
3021
  toolName?: string
2961
3022
  /**
2962
- * Sample the Host `subagent-model-selection` user setting for each new
2963
- * top-level session and inherit that decision in its child sessions.
3023
+ * Sample the Host `subagent-model-selection` setting for each new top-level
3024
+ * Session and inherit that decision in its child Sessions.
2964
3025
  */
2965
3026
  modelSelectionSettings?: boolean
2966
3027
  /**
@@ -2980,7 +3041,7 @@ export interface Config {
2980
3041
  */
2981
3042
  agentOptions?: AgentOptions
2982
3043
  /**
2983
- * Per-child persona that shadows `deployment:persona`. Requires the
3044
+ * Per-child persona that shadows `deployment:persona-prefix`. Requires the
2984
3045
  * provider's `persona` capability; omission preserves the deployment persona.
2985
3046
  */
2986
3047
  persona?: string
@@ -3010,29 +3071,7 @@ export interface Config {
3010
3071
 
3011
3072
  Depends on: [`AgentOptions`](./subsystems/core.md)
3012
3073
 
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)
3014
-
3015
- <a id="deepseek-aidsh-tool-subagent-report"></a>
3016
-
3017
- ## `@deepseek-ai/dsh-tool-subagent-report`
3018
-
3019
- Requires: `subagents` · `tools` · `systemPrompt`
3020
-
3021
- ```ts config-catalog
3022
- /** Config: how accepted reports are scheduled on the parent. */
3023
- export interface Config {
3024
- /**
3025
- * Parent scheduling (default `next-step`). `next-step` wakes the parent and
3026
- * enters at its nearest step boundary; `quiet` adds the same context without
3027
- * waking, so a parked parent waits for another waking input.
3028
- */
3029
- reportDelivery?: SubagentReportDelivery
3030
- }
3031
- ```
3032
-
3033
- Depends on: [`SubagentReportDelivery`](./subsystems/subagent.md)
3034
-
3035
- Source: [`packages/subagent/tool-subagent-report/src/index.ts:27`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/tool-subagent-report/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)
3036
3075
 
3037
3076
  <a id="deepseek-aidsh-tool-terminal"></a>
3038
3077
 
@@ -3050,13 +3089,13 @@ export interface Config {
3050
3089
  }
3051
3090
  ```
3052
3091
 
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)
3092
+ 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)
3054
3093
 
3055
3094
  <a id="deepseek-aidsh-tool-todo"></a>
3056
3095
 
3057
3096
  ## `@deepseek-ai/dsh-tool-todo`
3058
3097
 
3059
- Requires: `tools`
3098
+ Requires: `tools` · `sessionProjections`
3060
3099
 
3061
3100
  ```ts config-catalog
3062
3101
  /** Model-facing todo tool configuration. */
@@ -3154,7 +3193,7 @@ export interface Config {
3154
3193
  export type ToolPresentationMode = 'native' | 'ptc' | 'both'
3155
3194
  ```
3156
3195
 
3157
- Source: [`packages/core/tools/src/index.ts:655`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/tools/src/index.ts)
3196
+ Source: [`packages/core/tools/src/index.ts:647`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/core/tools/src/index.ts)
3158
3197
 
3159
3198
  <a id="deepseek-aidsh-typert-loader"></a>
3160
3199
 
@@ -3201,7 +3240,7 @@ export interface Config {
3201
3240
  export type ApprovalPolicy = 'ask' | 'never'
3202
3241
  ```
3203
3242
 
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)
3243
+ Source: [`packages/interaction/user-approval/src/index.ts:127`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/interaction/user-approval/src/index.ts)
3205
3244
 
3206
3245
  <a id="deepseek-aidsh-web"></a>
3207
3246
 
@@ -3249,7 +3288,7 @@ export interface Config {
3249
3288
  }
3250
3289
  ```
3251
3290
 
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)
3291
+ Source: [`packages/bundle/web-app/src/index.ts:44`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/bundle/web-app/src/index.ts)
3253
3292
 
3254
3293
  <a id="deepseek-aidsh-web-fetch-http"></a>
3255
3294
 
@@ -3412,8 +3451,10 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3412
3451
  - `@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
3452
  - `@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))
3414
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))
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))
3415
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))
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))
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))
3417
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))
3418
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))
3419
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))
@@ -3422,7 +3463,7 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3422
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))
3423
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))
3424
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))
3425
- - `@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))
3426
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))
3427
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))
3428
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))
@@ -3431,10 +3472,12 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3431
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))
3432
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))
3433
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))
3434
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))
3435
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))
3436
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))
3437
3479
  - `@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))
3480
+ - `@deepseek-ai/dsh-client-ui-schedule` ([`packages/client/ui-schedule/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-schedule/src/index.ts))
3438
3481
  - `@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))
3439
3482
  - `@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))
3440
3483
  - `@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))
@@ -3442,6 +3485,9 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3442
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))
3443
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))
3444
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))
3445
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))
3446
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))
3447
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))
@@ -3470,6 +3516,7 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3470
3516
  - `@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))
3471
3517
  - `@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))
3472
3518
  - `@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))
3519
+ - `@deepseek-ai/dsh-session-turn-outline` — requires `sessionProjections` ([`packages/session/session-turn-outline/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-turn-outline/src/index.ts))
3473
3520
  - `@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))
3474
3521
  - `@deepseek-ai/dsh-storage` ([`packages/storage/storage/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/storage/storage/src/index.ts))
3475
3522
  - `@deepseek-ai/dsh-subagent` ([`packages/subagent/subagent/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/subagent/subagent/src/index.ts))
@@ -3514,29 +3561,38 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3514
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))
3515
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))
3516
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))
3517
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))
3518
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))
3519
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))
3520
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))
3521
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))
3522
3571
  - `@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))
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))
3572
+ - `@deepseek-ai/dsh-deque` ([`packages/util/deque/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/deque/src/index.ts))
3524
3573
  - `@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
3574
  - `@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
3575
  - `@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
3576
  - `@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))
3528
3577
  - `@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))
3529
3578
  - `@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))
3579
+ - `@deepseek-ai/dsh-http-proxy` ([`packages/util/http-proxy/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/http-proxy/src/index.ts))
3530
3580
  - `@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))
3531
3581
  - `@deepseek-ai/dsh-llm-mock-server` ([`packages/test-support/llm-mock-server/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/test-support/llm-mock-server/src/index.ts))
3532
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))
3533
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))
3534
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))
3535
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))
3536
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))
3537
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))
3538
3589
  - `@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))
3539
3590
  - `@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))
3591
+ - `@deepseek-ai/dsh-session-format` ([`packages/session/session-format/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/session/session-format/src/index.ts))
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))
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))
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))
3540
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))
3541
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))
3542
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))
@@ -3546,5 +3602,7 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3546
3602
  - `@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))
3547
3603
  - `@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
3604
  - `@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))
3605
+ - `@deepseek-ai/dsh-util-time` ([`packages/util/time/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/time/src/index.ts))
3606
+ - `@deepseek-ai/dsh-util-values` ([`packages/util/values/src/index.ts`](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/util/values/src/index.ts))
3549
3607
  - `@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
3608
  - `@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))