dsh-plugin-guide 0.3.1 → 0.3.3

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 (371) hide show
  1. package/README.es.md +1 -1
  2. package/README.hi.md +1 -1
  3. package/README.md +1 -1
  4. package/README.pt.md +1 -1
  5. package/README.zh.md +1 -1
  6. package/SKILL.md +1 -1
  7. package/dist/dsh-plugin-dev.js +5 -5
  8. package/guide/links.md +1 -1
  9. package/guide/plugin-dev-guide.md +1 -1
  10. package/guide/quick-reference.es.md +2 -2
  11. package/guide/quick-reference.hi.md +1 -1
  12. package/guide/quick-reference.md +2 -2
  13. package/guide/quick-reference.pt.md +2 -2
  14. package/guide/quick-reference.zh-CN.md +2 -2
  15. package/package.json +3 -3
  16. package/references/cordis-paper-and-community.md +1 -1
  17. package/references/official-docs/AGENTS.md +28 -23
  18. package/references/official-docs/README.i18n.yaml +2 -2
  19. package/references/official-docs/README.md +1 -1
  20. package/references/official-docs/README.zh.md +19 -9
  21. package/references/official-docs/SNAPSHOT.md +5 -5
  22. package/references/official-docs/THIRD_PARTY_NOTICES.md +36 -13
  23. package/references/official-docs/docs/AGENTS.md +4 -4
  24. package/references/official-docs/docs/agent-lifecycle.i18n.yaml +2 -2
  25. package/references/official-docs/docs/agent-lifecycle.md +1 -1
  26. package/references/official-docs/docs/agent-lifecycle.zh.md +2 -2
  27. package/references/official-docs/docs/api-gateway.i18n.yaml +2 -2
  28. package/references/official-docs/docs/api-gateway.md +8 -8
  29. package/references/official-docs/docs/api-gateway.zh.md +8 -8
  30. package/references/official-docs/docs/architecture.i18n.yaml +2 -2
  31. package/references/official-docs/docs/architecture.md +25 -8
  32. package/references/official-docs/docs/architecture.zh.md +38 -21
  33. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  34. package/references/official-docs/docs/capability-seams.md +134 -67
  35. package/references/official-docs/docs/capability-seams.zh.md +134 -67
  36. package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
  37. package/references/official-docs/docs/config-catalog.md +731 -403
  38. package/references/official-docs/docs/config-catalog.zh.md +747 -419
  39. package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +2 -2
  40. package/references/official-docs/docs/cookbook/adding-a-package.md +3 -4
  41. package/references/official-docs/docs/cookbook/adding-a-package.zh.md +9 -8
  42. package/references/official-docs/docs/cookbook/{adding-a-conversation-node.i18n.yaml → adding-a-remote-api.i18n.yaml} +3 -3
  43. package/references/official-docs/docs/cookbook/adding-a-remote-api.md +197 -0
  44. package/references/official-docs/docs/cookbook/adding-a-remote-api.zh.md +197 -0
  45. package/references/official-docs/docs/cookbook/adding-a-settings-card.i18n.yaml +6 -0
  46. package/references/official-docs/docs/cookbook/adding-a-settings-card.md +102 -0
  47. package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +102 -0
  48. package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +2 -2
  49. package/references/official-docs/docs/cookbook/adding-a-tool.md +11 -4
  50. package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +16 -9
  51. package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +2 -2
  52. package/references/official-docs/docs/cookbook/adding-a-vendored-package.md +2 -2
  53. package/references/official-docs/docs/cookbook/adding-a-vendored-package.zh.md +4 -4
  54. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.i18n.yaml +2 -2
  55. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.md +1 -1
  56. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.zh.md +3 -3
  57. package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +2 -2
  58. package/references/official-docs/docs/cookbook/extension-cookbook.md +9 -8
  59. package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +17 -14
  60. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.i18n.yaml +1 -1
  61. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.zh.md +1 -1
  62. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +1 -1
  63. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
  64. package/references/official-docs/docs/cordis-api/context.i18n.yaml +1 -1
  65. package/references/official-docs/docs/cordis-api/context.zh.md +1 -1
  66. package/references/official-docs/docs/cordis-api/events.i18n.yaml +1 -1
  67. package/references/official-docs/docs/cordis-api/events.zh.md +1 -1
  68. package/references/official-docs/docs/cordis-api/inherited.md +1 -1
  69. package/references/official-docs/docs/cordis-primer.i18n.yaml +2 -2
  70. package/references/official-docs/docs/cordis-primer.md +2 -1
  71. package/references/official-docs/docs/cordis-primer.zh.md +3 -2
  72. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.i18n.yaml +1 -1
  73. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.zh.md +4 -4
  74. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.i18n.yaml +1 -1
  75. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +4 -4
  76. package/references/official-docs/docs/cordis-tutorial/03-services.i18n.yaml +1 -1
  77. package/references/official-docs/docs/cordis-tutorial/03-services.zh.md +4 -4
  78. package/references/official-docs/docs/cordis-tutorial/04-events.i18n.yaml +1 -1
  79. package/references/official-docs/docs/cordis-tutorial/04-events.zh.md +4 -4
  80. package/references/official-docs/docs/cordis-tutorial/05-config.i18n.yaml +1 -1
  81. package/references/official-docs/docs/cordis-tutorial/05-config.zh.md +2 -2
  82. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +1 -1
  83. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.zh.md +3 -3
  84. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.i18n.yaml +2 -2
  85. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.md +5 -4
  86. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.zh.md +11 -10
  87. package/references/official-docs/docs/cordis-tutorial/index.i18n.yaml +1 -1
  88. package/references/official-docs/docs/cordis-tutorial/index.zh.md +10 -10
  89. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +6 -0
  90. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +159 -0
  91. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +159 -0
  92. package/references/official-docs/docs/defensive-patterns.i18n.yaml +1 -1
  93. package/references/official-docs/docs/defensive-patterns.zh.md +3 -1
  94. package/references/official-docs/docs/development.i18n.yaml +2 -2
  95. package/references/official-docs/docs/development.md +9 -13
  96. package/references/official-docs/docs/development.zh.md +23 -21
  97. package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
  98. package/references/official-docs/docs/event-producer-consumer.md +55 -46
  99. package/references/official-docs/docs/event-producer-consumer.zh.md +55 -46
  100. package/references/official-docs/docs/glossary.i18n.yaml +2 -2
  101. package/references/official-docs/docs/glossary.md +1 -1
  102. package/references/official-docs/docs/glossary.zh.md +1 -1
  103. package/references/official-docs/docs/graph-atlas.i18n.yaml +2 -2
  104. package/references/official-docs/docs/graph-atlas.md +0 -2
  105. package/references/official-docs/docs/graph-atlas.zh.md +7 -9
  106. package/references/official-docs/docs/i18n/README.i18n.yaml +2 -2
  107. package/references/official-docs/docs/i18n/README.md +7 -7
  108. package/references/official-docs/docs/i18n/README.zh.md +11 -9
  109. package/references/official-docs/docs/i18n/style-samples.md +3 -3
  110. package/references/official-docs/docs/i18n/translation-prompt.md +3 -3
  111. package/references/official-docs/docs/i18n/translation-rules.i18n.yaml +2 -2
  112. package/references/official-docs/docs/i18n/translation-rules.md +2 -2
  113. package/references/official-docs/docs/i18n/translation-rules.zh.md +3 -3
  114. package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
  115. package/references/official-docs/docs/module-graph.md +660 -909
  116. package/references/official-docs/docs/module-graph.zh.md +662 -911
  117. package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
  118. package/references/official-docs/docs/persistence-catalog.md +185 -53
  119. package/references/official-docs/docs/persistence-catalog.zh.md +193 -61
  120. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.i18n.yaml +2 -2
  121. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.md +2 -2
  122. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +3 -3
  123. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.i18n.yaml +2 -2
  124. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +2 -2
  125. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +2 -2
  126. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.i18n.yaml +2 -2
  127. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.md +2 -2
  128. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +2 -2
  129. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml +2 -2
  130. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +1 -1
  131. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +2 -2
  132. package/references/official-docs/docs/postmortem/README.i18n.yaml +1 -1
  133. package/references/official-docs/docs/postmortem/README.zh.md +5 -5
  134. package/references/official-docs/docs/rescope.i18n.yaml +2 -2
  135. package/references/official-docs/docs/rescope.md +2 -2
  136. package/references/official-docs/docs/rescope.zh.md +3 -3
  137. package/references/official-docs/docs/subsystems/README.i18n.yaml +2 -2
  138. package/references/official-docs/docs/subsystems/README.md +8 -2
  139. package/references/official-docs/docs/subsystems/README.zh.md +53 -47
  140. package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +6 -0
  141. package/references/official-docs/docs/subsystems/agent-team.md +207 -0
  142. package/references/official-docs/docs/subsystems/agent-team.zh.md +207 -0
  143. package/references/official-docs/docs/subsystems/approval.i18n.yaml +2 -2
  144. package/references/official-docs/docs/subsystems/approval.md +12 -12
  145. package/references/official-docs/docs/subsystems/approval.zh.md +13 -13
  146. package/references/official-docs/docs/subsystems/attachment.i18n.yaml +2 -2
  147. package/references/official-docs/docs/subsystems/attachment.md +90 -7
  148. package/references/official-docs/docs/subsystems/attachment.zh.md +90 -7
  149. package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +2 -2
  150. package/references/official-docs/docs/subsystems/client-modules.md +69 -19
  151. package/references/official-docs/docs/subsystems/client-modules.zh.md +69 -19
  152. package/references/official-docs/docs/subsystems/code-runtime.i18n.yaml +2 -2
  153. package/references/official-docs/docs/subsystems/code-runtime.md +12 -8
  154. package/references/official-docs/docs/subsystems/code-runtime.zh.md +13 -9
  155. package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
  156. package/references/official-docs/docs/subsystems/commands.md +30 -7
  157. package/references/official-docs/docs/subsystems/commands.zh.md +31 -8
  158. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
  159. package/references/official-docs/docs/subsystems/compaction.md +14 -14
  160. package/references/official-docs/docs/subsystems/compaction.zh.md +19 -19
  161. package/references/official-docs/docs/subsystems/conversation.i18n.yaml +6 -0
  162. package/references/official-docs/docs/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +49 -24
  163. package/references/official-docs/docs/{cookbook/adding-a-conversation-node.zh.md → subsystems/conversation.zh.md} +49 -24
  164. package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
  165. package/references/official-docs/docs/subsystems/core.md +114 -36
  166. package/references/official-docs/docs/subsystems/core.zh.md +145 -65
  167. package/references/official-docs/docs/subsystems/credentials.i18n.yaml +2 -2
  168. package/references/official-docs/docs/subsystems/credentials.md +207 -11
  169. package/references/official-docs/docs/subsystems/credentials.zh.md +207 -11
  170. package/references/official-docs/docs/subsystems/extensions.i18n.yaml +2 -2
  171. package/references/official-docs/docs/subsystems/extensions.md +27 -9
  172. package/references/official-docs/docs/subsystems/extensions.zh.md +30 -12
  173. package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
  174. package/references/official-docs/docs/subsystems/feedback.md +6 -6
  175. package/references/official-docs/docs/subsystems/feedback.zh.md +6 -6
  176. package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +2 -2
  177. package/references/official-docs/docs/subsystems/filesystem.md +17 -7
  178. package/references/official-docs/docs/subsystems/filesystem.zh.md +19 -9
  179. package/references/official-docs/docs/subsystems/goal.i18n.yaml +2 -2
  180. package/references/official-docs/docs/subsystems/goal.md +4 -4
  181. package/references/official-docs/docs/subsystems/goal.zh.md +8 -8
  182. package/references/official-docs/docs/subsystems/invariants.i18n.yaml +2 -2
  183. package/references/official-docs/docs/subsystems/invariants.md +2 -2
  184. package/references/official-docs/docs/subsystems/invariants.zh.md +5 -5
  185. package/references/official-docs/docs/subsystems/jobs.i18n.yaml +2 -2
  186. package/references/official-docs/docs/subsystems/jobs.md +3 -3
  187. package/references/official-docs/docs/subsystems/jobs.zh.md +6 -6
  188. package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
  189. package/references/official-docs/docs/subsystems/llm-streaming.md +193 -22
  190. package/references/official-docs/docs/subsystems/llm-streaming.zh.md +199 -28
  191. package/references/official-docs/docs/subsystems/lsp.i18n.yaml +2 -2
  192. package/references/official-docs/docs/subsystems/lsp.md +2 -2
  193. package/references/official-docs/docs/subsystems/lsp.zh.md +3 -3
  194. package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +2 -2
  195. package/references/official-docs/docs/subsystems/permission-presets.md +8 -8
  196. package/references/official-docs/docs/subsystems/permission-presets.zh.md +8 -8
  197. package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
  198. package/references/official-docs/docs/subsystems/persistence.md +183 -173
  199. package/references/official-docs/docs/subsystems/persistence.zh.md +182 -172
  200. package/references/official-docs/docs/subsystems/plan.i18n.yaml +2 -2
  201. package/references/official-docs/docs/subsystems/plan.md +4 -4
  202. package/references/official-docs/docs/subsystems/plan.zh.md +10 -10
  203. package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +2 -2
  204. package/references/official-docs/docs/subsystems/sandbox.md +5 -3
  205. package/references/official-docs/docs/subsystems/sandbox.zh.md +8 -6
  206. package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
  207. package/references/official-docs/docs/subsystems/schedule.md +9 -3
  208. package/references/official-docs/docs/subsystems/schedule.zh.md +11 -5
  209. package/references/official-docs/docs/subsystems/scope.i18n.yaml +1 -1
  210. package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
  211. package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +2 -2
  212. package/references/official-docs/docs/subsystems/session-projection.md +148 -75
  213. package/references/official-docs/docs/subsystems/session-projection.zh.md +148 -75
  214. package/references/official-docs/docs/subsystems/session-query.i18n.yaml +2 -2
  215. package/references/official-docs/docs/subsystems/session-query.md +30 -16
  216. package/references/official-docs/docs/subsystems/session-query.zh.md +31 -17
  217. package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +2 -2
  218. package/references/official-docs/docs/subsystems/session-reference.md +94 -7
  219. package/references/official-docs/docs/subsystems/session-reference.zh.md +95 -8
  220. package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +2 -2
  221. package/references/official-docs/docs/subsystems/session-telemetry.md +5 -6
  222. package/references/official-docs/docs/subsystems/session-telemetry.zh.md +9 -10
  223. package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
  224. package/references/official-docs/docs/subsystems/session-title.md +8 -8
  225. package/references/official-docs/docs/subsystems/session-title.zh.md +10 -10
  226. package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
  227. package/references/official-docs/docs/subsystems/session.md +376 -71
  228. package/references/official-docs/docs/subsystems/session.zh.md +392 -85
  229. package/references/official-docs/docs/subsystems/settings.i18n.yaml +2 -2
  230. package/references/official-docs/docs/subsystems/settings.md +105 -10
  231. package/references/official-docs/docs/subsystems/settings.zh.md +105 -10
  232. package/references/official-docs/docs/subsystems/shell.i18n.yaml +2 -2
  233. package/references/official-docs/docs/subsystems/shell.md +3 -3
  234. package/references/official-docs/docs/subsystems/shell.zh.md +11 -11
  235. package/references/official-docs/docs/subsystems/skills.i18n.yaml +2 -2
  236. package/references/official-docs/docs/subsystems/skills.md +26 -3
  237. package/references/official-docs/docs/subsystems/skills.zh.md +29 -6
  238. package/references/official-docs/docs/subsystems/slots.i18n.yaml +6 -0
  239. package/references/official-docs/docs/subsystems/slots.md +175 -0
  240. package/references/official-docs/docs/subsystems/slots.zh.md +175 -0
  241. package/references/official-docs/docs/subsystems/spill.i18n.yaml +2 -2
  242. package/references/official-docs/docs/subsystems/spill.md +4 -4
  243. package/references/official-docs/docs/subsystems/spill.zh.md +6 -6
  244. package/references/official-docs/docs/subsystems/storage.i18n.yaml +2 -2
  245. package/references/official-docs/docs/subsystems/storage.md +38 -7
  246. package/references/official-docs/docs/subsystems/storage.zh.md +41 -10
  247. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  248. package/references/official-docs/docs/subsystems/subagent.md +148 -116
  249. package/references/official-docs/docs/subsystems/subagent.zh.md +158 -124
  250. package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +2 -2
  251. package/references/official-docs/docs/subsystems/subprocess.md +3 -3
  252. package/references/official-docs/docs/subsystems/subprocess.zh.md +5 -5
  253. package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +2 -2
  254. package/references/official-docs/docs/subsystems/system-prompt.md +21 -8
  255. package/references/official-docs/docs/subsystems/system-prompt.zh.md +23 -10
  256. package/references/official-docs/docs/subsystems/terminal.i18n.yaml +2 -2
  257. package/references/official-docs/docs/subsystems/terminal.md +2 -2
  258. package/references/official-docs/docs/subsystems/terminal.zh.md +4 -4
  259. package/references/official-docs/docs/subsystems/todo.i18n.yaml +6 -0
  260. package/references/official-docs/docs/subsystems/todo.md +32 -0
  261. package/references/official-docs/docs/subsystems/todo.zh.md +32 -0
  262. package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
  263. package/references/official-docs/docs/subsystems/token-meter.md +29 -14
  264. package/references/official-docs/docs/subsystems/token-meter.zh.md +30 -15
  265. package/references/official-docs/docs/subsystems/tools.i18n.yaml +2 -2
  266. package/references/official-docs/docs/subsystems/tools.md +46 -46
  267. package/references/official-docs/docs/subsystems/tools.zh.md +54 -54
  268. package/references/official-docs/docs/subsystems/typert.i18n.yaml +2 -2
  269. package/references/official-docs/docs/subsystems/typert.md +65 -58
  270. package/references/official-docs/docs/subsystems/typert.zh.md +67 -60
  271. package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +2 -2
  272. package/references/official-docs/docs/subsystems/user-questions.md +35 -35
  273. package/references/official-docs/docs/subsystems/user-questions.zh.md +35 -35
  274. package/references/official-docs/docs/subsystems/web-client.i18n.yaml +6 -0
  275. package/references/official-docs/docs/subsystems/web-client.md +95 -0
  276. package/references/official-docs/docs/subsystems/web-client.zh.md +95 -0
  277. package/references/official-docs/docs/subsystems/web-server.i18n.yaml +2 -2
  278. package/references/official-docs/docs/subsystems/web-server.md +55 -9
  279. package/references/official-docs/docs/subsystems/web-server.zh.md +56 -10
  280. package/references/official-docs/docs/subsystems/web.i18n.yaml +2 -2
  281. package/references/official-docs/docs/subsystems/web.md +14 -7
  282. package/references/official-docs/docs/subsystems/web.zh.md +16 -9
  283. package/references/official-docs/docs/subsystems/webhook.i18n.yaml +6 -0
  284. package/references/official-docs/docs/subsystems/webhook.md +70 -0
  285. package/references/official-docs/docs/subsystems/webhook.zh.md +70 -0
  286. package/references/official-docs/docs/subsystems/workflow.i18n.yaml +2 -2
  287. package/references/official-docs/docs/subsystems/workflow.md +8 -8
  288. package/references/official-docs/docs/subsystems/workflow.zh.md +13 -13
  289. package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
  290. package/references/official-docs/docs/subsystems/workspace.md +98 -5
  291. package/references/official-docs/docs/subsystems/workspace.zh.md +102 -9
  292. package/references/official-docs/docs/testing.i18n.yaml +2 -2
  293. package/references/official-docs/docs/testing.md +15 -10
  294. package/references/official-docs/docs/testing.zh.md +15 -10
  295. package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
  296. package/references/official-docs/docs/tool-catalog.md +413 -61
  297. package/references/official-docs/docs/tool-catalog.zh.md +418 -63
  298. package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +2 -2
  299. package/references/official-docs/docs/tool-execution-pipeline.md +1 -1
  300. package/references/official-docs/docs/tool-execution-pipeline.zh.md +1 -1
  301. package/references/official-docs/docs/user/develop/basic/config.i18n.yaml +2 -2
  302. package/references/official-docs/docs/user/develop/basic/config.md +1 -1
  303. package/references/official-docs/docs/user/develop/basic/config.zh.md +4 -4
  304. package/references/official-docs/docs/user/develop/basic/index.i18n.yaml +1 -1
  305. package/references/official-docs/docs/user/develop/basic/index.zh.md +5 -5
  306. package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +2 -2
  307. package/references/official-docs/docs/user/develop/basic/publish.md +3 -3
  308. package/references/official-docs/docs/user/develop/basic/publish.zh.md +7 -7
  309. package/references/official-docs/docs/user/develop/basic/tool.i18n.yaml +2 -2
  310. package/references/official-docs/docs/user/develop/basic/tool.md +3 -3
  311. package/references/official-docs/docs/user/develop/basic/tool.zh.md +4 -4
  312. package/references/official-docs/docs/user/develop/framework/events.i18n.yaml +2 -2
  313. package/references/official-docs/docs/user/develop/framework/events.md +2 -2
  314. package/references/official-docs/docs/user/develop/framework/events.zh.md +3 -3
  315. package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +1 -1
  316. package/references/official-docs/docs/user/develop/framework/index.zh.md +3 -3
  317. package/references/official-docs/docs/user/develop/framework/service.i18n.yaml +2 -2
  318. package/references/official-docs/docs/user/develop/framework/service.md +1 -1
  319. package/references/official-docs/docs/user/develop/framework/service.zh.md +3 -3
  320. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +6 -0
  321. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.md +15 -0
  322. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
  323. package/references/official-docs/docs/user/develop/practice/index.i18n.yaml +2 -2
  324. package/references/official-docs/docs/user/develop/practice/index.md +1 -1
  325. package/references/official-docs/docs/user/develop/practice/index.zh.md +3 -3
  326. package/references/official-docs/docs/user/develop/practice/llm-adapter.i18n.yaml +2 -2
  327. package/references/official-docs/docs/user/develop/practice/llm-adapter.md +4 -3
  328. package/references/official-docs/docs/user/develop/practice/llm-adapter.zh.md +4 -3
  329. package/references/official-docs/docs/user/guide/github-review.i18n.yaml +6 -0
  330. package/references/official-docs/docs/user/guide/github-review.md +102 -0
  331. package/references/official-docs/docs/user/guide/github-review.zh.md +102 -0
  332. package/references/official-docs/docs/user/guide/index.i18n.yaml +2 -2
  333. package/references/official-docs/docs/user/guide/index.md +2 -2
  334. package/references/official-docs/docs/user/guide/index.zh.md +8 -8
  335. package/references/official-docs/docs/user/guide/mcp-memory.i18n.yaml +6 -0
  336. package/references/official-docs/docs/user/guide/mcp-memory.md +101 -0
  337. package/references/official-docs/docs/user/guide/mcp-memory.zh.md +101 -0
  338. package/references/official-docs/docs/user/guide/providers.i18n.yaml +2 -2
  339. package/references/official-docs/docs/user/guide/providers.md +40 -1
  340. package/references/official-docs/docs/user/guide/providers.zh.md +41 -2
  341. package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +2 -2
  342. package/references/official-docs/docs/user/guide/python-sdk.md +80 -34
  343. package/references/official-docs/docs/user/guide/python-sdk.zh.md +87 -41
  344. package/references/official-docs/docs/user/guide/schedule.i18n.yaml +6 -0
  345. package/references/official-docs/docs/user/guide/schedule.md +21 -0
  346. package/references/official-docs/docs/user/guide/schedule.zh.md +21 -0
  347. package/references/official-docs/docs/web-styling.i18n.yaml +2 -2
  348. package/references/official-docs/docs/web-styling.md +3 -0
  349. package/references/official-docs/docs/web-styling.zh.md +5 -2
  350. package/references/official-docs/packages/AGENTS.md +4 -3
  351. package/references/official-docs/packages/README.md +104 -59
  352. package/references/official-docs/vendor/README.md +1 -0
  353. package/references/official-docs/website-docs.ts +52 -11
  354. package/references/sources.md +2 -2
  355. package/references/website-pages.md +3 -3
  356. package/scripts/download-sources.ps1 +1 -1
  357. package/scripts/sync-official-docs.ps1 +19 -11
  358. package/scripts/verify-kit.ps1 +0 -4
  359. package/templates/js/README.es.md +1 -1
  360. package/templates/js/README.hi.md +1 -1
  361. package/templates/js/README.md +1 -1
  362. package/templates/js/README.pt.md +1 -1
  363. package/templates/js/README.zh.md +1 -1
  364. package/templates/js/package.json +4 -4
  365. package/templates/ts/README.es.md +1 -1
  366. package/templates/ts/README.hi.md +1 -1
  367. package/templates/ts/README.md +1 -1
  368. package/templates/ts/README.pt.md +1 -1
  369. package/templates/ts/README.zh.md +1 -1
  370. package/templates/ts/package.json +4 -4
  371. package/references/official-docs/examples/AGENTS.md +0 -20
@@ -13,7 +13,7 @@ A `Requires:` line lists the service keys the plugin `inject`s: its `cordis.yml`
13
13
 
14
14
  ## `@deepseek-ai/dsh-acp`
15
15
 
16
- Requires: `agents`
16
+ Requires: `agents` · `llm` · `sessionPersistence` · `sessions`
17
17
 
18
18
  ```ts config-catalog
19
19
  /** Plugin config: the provider/model selection used for each ACP-created agent. */
@@ -22,6 +22,8 @@ export interface AcpConfig {
22
22
  provider?: string
23
23
  /** Model name for created agents. */
24
24
  model?: string
25
+ /** Maximum summaries returned by one session/list page. */
26
+ sessionListPageSize?: number
25
27
  /** Runtime-only transport override; production uses stdio. */
26
28
  stream?: Stream
27
29
  }
@@ -29,62 +31,7 @@ export interface AcpConfig {
29
31
 
30
32
  Depends on: `Stream` (`@agentclientprotocol/sdk`)
31
33
 
32
- Source: [`packages/acp/acp/src/index.ts:70`](../packages/acp/acp/src/index.ts)
33
-
34
- <a id="deepseek-aidsh-acp-demo"></a>
35
-
36
- ## `@deepseek-ai/dsh-acp-demo`
37
-
38
- ```ts config-catalog
39
- /**
40
- * App config: the swappable per-deployment values. `provider` and `model` configure
41
- * each agent the ACP bridge creates at `session/new`; `persona` is the
42
- * deployment persona (forwarded to the system-prompt plugin); `toolOrder` is
43
- * the explicit model-facing tool order (forwarded to the system-prompt plugin);
44
- * `tools` is the tool registry's config (its presentation `mode`, forwarded
45
- * through agent-spine-demo); `persistenceRoot` is the JSONL backend's directory.
46
- */
47
- export interface Config {
48
- /** Provider route for ACP-created agents. */
49
- provider: string
50
- /** Model name for ACP-created agents (must have a registered adapter). */
51
- model: string
52
- /** Bundled agent-loop concurrency cap; `1` is serial and omission uses its default. */
53
- maxParallelToolCalls?: number
54
- /** Deployment persona (the system-prompt plugin's `persona` config). */
55
- persona?: string
56
- /** Explicit model-facing tool order (the system-prompt plugin's `toolOrder` config; see dsh-system-prompt). */
57
- toolOrder?: string[]
58
- /** Tool-registry config — its presentation `mode` (forwarded through agent-spine-demo; see dsh-tools). */
59
- tools?: ToolsConfig
60
- /** DeepSeek Harness home directory exposed to bash and used for local skill discovery. */
61
- dshHome?: string
62
- /** Fallback session-title limits forwarded through agent-spine-demo. */
63
- sessionTitle?: NonNullable<agentCore.Config['sessionTitle']>
64
- /** Directory for JSONL sessions and the derived query index. Defaults to `./.sessions`. */
65
- persistenceRoot?: string
66
- /** Write delta-chunk runs as packed storage rows (the JSONL backend's `packChunks`). Defaults to `true`. */
67
- packChunks?: boolean
68
- /** JSONL artifact encoding; defaults to checksummed Zstandard frames. */
69
- persistenceCompression?: JsonlCompression
70
- /** Controls automatic AGENTS.md/CLAUDE.md loading; configure a byte budget or set `false`. */
71
- workspaceContext: agentCore.Config['workspaceContext']
72
- /** Skill registry, local-provider, and model-facing consumer config forwarded to agent-spine-demo. */
73
- skills?: agentCore.SkillConfig
74
- /** Model-facing bash tool config forwarded through agent-core. */
75
- toolBash?: NonNullable<agentCore.Config['toolBash']>
76
- /** Process-local background-job admission config forwarded through agent-core. */
77
- jobs?: NonNullable<agentCore.Config['jobs']>
78
- /** Generic background-job controls forwarded through agent-core; set false to omit their tools. */
79
- toolJobs?: NonNullable<agentCore.Config['toolJobs']>
80
- /** Persisted same-session goals; owner defaults enable them, or false disables the stack and tools. */
81
- goals?: agentCore.GoalConfig | false
82
- }
83
- ```
84
-
85
- Depends on: [`agentCore`](../packages/examples/agent-spine-demo/src/index.ts) · [`JsonlCompression`](../packages/session/session-persistence-jsonl/src/index.ts) · [`ToolsConfig`](#deepseek-aidsh-tools)
86
-
87
- Source: [`packages/examples/acp-demo/src/index.ts:39`](../packages/examples/acp-demo/src/index.ts)
34
+ Source: [`packages/acp/acp/src/index.ts:75`](../packages/acp/acp/src/index.ts)
88
35
 
89
36
  <a id="deepseek-aidsh-agent-default-model"></a>
90
37
 
@@ -106,6 +53,8 @@ Source: [`packages/core/agent-default-model/src/index.ts:41`](../packages/core/a
106
53
 
107
54
  ## `@deepseek-ai/dsh-agent-instructions`
108
55
 
56
+ Requires: `sessionProjections`
57
+
109
58
  ```ts config-catalog
110
59
  /** User-facing workspace instruction loader configuration. */
111
60
  export interface Config {
@@ -136,7 +85,7 @@ Source: [`packages/context/agent-instructions/src/config.ts:18`](../packages/con
136
85
 
137
86
  ## `@deepseek-ai/dsh-agent-loop`
138
87
 
139
- Requires: `agents` · `sessions` · `llm` · `tools` · `systemPrompt`
88
+ Requires: `agents` · `sessions` · `llm` · `tools` · `systemPrompt` · `sessionProjections`
140
89
 
141
90
  ```ts config-catalog
142
91
  /** Agent-loop plugin configuration. */
@@ -162,13 +111,13 @@ export interface Config {
162
111
 
163
112
  Depends on: [`AgentOptions`](subsystems/core.md) · [`SessionId`](subsystems/core.md)
164
113
 
165
- Source: [`packages/core/agent-loop/src/index.ts:255`](../packages/core/agent-loop/src/index.ts)
114
+ Source: [`packages/core/agent-loop/src/index.ts:318`](../packages/core/agent-loop/src/index.ts)
166
115
 
167
116
  <a id="deepseek-aidsh-agent-presets"></a>
168
117
 
169
118
  ## `@deepseek-ai/dsh-agent-presets`
170
119
 
171
- Requires: `loader`
120
+ Requires: `loader` · `sessionProjections`
172
121
 
173
122
  ```ts config-catalog
174
123
  /** Plugin config: which preset is the default, and where presets live. */
@@ -177,9 +126,17 @@ export interface Config {
177
126
  default: string
178
127
  /** Scanned roots in precedence order; an earlier root wins a duplicate id. */
179
128
  roots: PresetRoot[]
129
+ /**
130
+ * Prepend this package's bundled shipped presets as a `system` root, before
131
+ * every configured root, so the shipped set always mounts and wins a
132
+ * duplicate id. The default survives a whole-`config` patch replacement;
133
+ * only an explicit `false` — a deployment supplying purely its own presets,
134
+ * or an embedder using the roster as bare machinery — drops the set.
135
+ */
136
+ includeShippedRoot: boolean
180
137
  /**
181
138
  * Append the harness home's `USER_PRESET_DIR` as a `user` root, after every
182
- * configured root. False mounts a roster over `roots` alone.
139
+ * configured root. False mounts a roster without the derived writable root.
183
140
  */
184
141
  includeUserRoot: boolean
185
142
  }
@@ -202,98 +159,6 @@ export type PresetTrust = 'system' | 'user'
202
159
 
203
160
  Source: [`packages/preset/agent-presets/src/preset.ts:52`](../packages/preset/agent-presets/src/preset.ts)
204
161
 
205
- <a id="deepseek-aidsh-agent-spine-demo"></a>
206
-
207
- ## `@deepseek-ai/dsh-agent-spine-demo`
208
-
209
- ```ts config-catalog
210
- /**
211
- * Bundle config: each field forwarded verbatim to the child that owns it —
212
- * `agents` to the agent loop (an app that pre-creates no agents, like the ACP
213
- * bridge, simply omits it), `includeHarnessIdentity`, `includeRuntimeContext`,
214
- * `persona`, and `toolOrder` to the system-prompt plugin (the fixed opener,
215
- * dynamic-context policy, deployment persona, and explicit model-facing tool
216
- * order), the `tools` object to the tool registry (its presentation `mode`),
217
- * `dshHome` to bash environment and local skill discovery, `sessionTitle` to
218
- * the fallback title service, `skills` to the
219
- * skill registry/local provider/tool consumer, `workspaceContext` to the
220
- * agent-instructions loader, `jobs` to the process-local job provider, and
221
- * `toolBash`/`toolJobs` to the model-facing tool plugins this bundle owns.
222
- * Provider adapters own their `retryPolicy`; this bundle always mounts its
223
- * executor.
224
- * `goals` opts into and configures the persisted goal domain plus its model tool
225
- * and same-session driver; `invariants` configures global and package-filtered
226
- * relational checks. Owner schemas supply defaults for optional input;
227
- * workspace context instead requires an explicit byte budget or `false` because
228
- * it changes model-visible input. Producer opt-in stays producer-local:
229
- * `toolBash` configures bash only; independently composed producers keep their
230
- * own config. Set `toolBash: false` when another plugin owns the model-facing
231
- * `bash` name.
232
- */
233
- export interface Config {
234
- /** The agent-loop `agents` list (see dsh-agent-loop's `Config`). */
235
- agents?: AgentLoopConfig['agents']
236
- /** Agent-loop concurrency cap; `1` is serial. */
237
- maxParallelToolCalls?: AgentLoopConfig['maxParallelToolCalls']
238
- /** Whether the system prompt includes the fixed Harness identity (default true). */
239
- includeHarnessIdentity?: SystemPromptConfig['includeHarnessIdentity']
240
- /** Whether model history includes dynamic runtime-context snapshots (default true). */
241
- includeRuntimeContext?: SystemPromptConfig['includeRuntimeContext']
242
- /** The deployment persona (see dsh-system-prompt's `Config`). */
243
- persona?: SystemPromptConfig['persona']
244
- /** The explicit model-facing tool order (see dsh-system-prompt's `Config`). */
245
- toolOrder?: SystemPromptConfig['toolOrder']
246
- /** The tool registry's config — its presentation `mode` (see dsh-tools' `Config`). */
247
- tools?: ToolsConfig
248
- /** DeepSeek Harness home directory shared by shell context and local skill discovery. */
249
- dshHome?: string
250
- /** Deterministic fallback and accepted-title limits; omission uses the bundle's example policy. */
251
- sessionTitle?: SessionTitleConfig
252
- /** Workspace-context loader controls with an explicit byte budget; set `false` for hermetic prompts. */
253
- workspaceContext: workspaceContext.Config | false
254
- /**
255
- * Skill registry, local provider, and model-facing consumer config.
256
- * Skills use `enabled` because one nested config controls a provider stack;
257
- * single model-tool plugins use `Config | false` to disable that one consumer.
258
- */
259
- skills?: SkillConfig
260
- /** Model-facing bash tool config, or false when another plugin owns `bash`. */
261
- toolBash?: toolBash.Config | false
262
- /** Process-local background-job admission config. */
263
- jobs?: JobsConfig
264
- /** Generic background-job controls; set false to keep the job service without model-facing job tools. */
265
- toolJobs?: toolJobs.Config | false
266
- /** Global enablement and package-name filters for invariant companions. */
267
- invariants?: InvariantConfig
268
- /** Opt-in persisted same-session goal stack; set false or omit to leave it unmounted. */
269
- goals?: GoalConfig | false
270
- }
271
-
272
- /** Skill bundle config forwarded to the registry, local provider, and model-facing consumer. */
273
- export interface SkillConfig {
274
- /** Mount the bundled local skill provider and model-facing skill tool (default true). */
275
- enabled?: boolean
276
- /** Registry-level discovery cache settings. */
277
- registry?: SkillRegistryConfig
278
- /** Local filesystem skill provider settings. */
279
- filesystem?: SkillFileSystem.Config
280
- /** Model-facing skill catalog and tool settings. */
281
- tool?: toolSkill.Config
282
- }
283
-
284
- /** Persisted goal domain, model-tool policy, and same-session driver config. */
285
- export interface GoalConfig {
286
- /** Goal-domain creation defaults. */
287
- domain?: GoalDomainConfig
288
- /** Model-facing goal-tool authority policy. */
289
- tool?: toolGoal.Config
290
- }
291
- ```
292
-
293
- 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`](../packages/skill/skill-filesystem/src/index.ts) · [`SkillRegistryConfig`](#deepseek-aidsh-skill) · [`SystemPromptConfig`](#deepseek-aidsh-system-prompt) · [`toolBash`](../packages/shell/tool-bash/src/index.ts) · [`toolGoal`](../packages/goal/tool-goal/src/index.ts) · [`toolJobs`](../packages/jobs/tool-jobs/src/index.ts) · [`ToolsConfig`](#deepseek-aidsh-tools) · [`toolSkill`](../packages/skill/tool-skill/src/index.ts) · [`workspaceContext`](../packages/context/agent-instructions/src/index.ts)
294
-
295
- Source: [`packages/examples/agent-spine-demo/src/index.ts:92`](../packages/examples/agent-spine-demo/src/index.ts)
296
-
297
162
  <a id="deepseek-aidsh-agent-tool-presentation"></a>
298
163
 
299
164
  ## `@deepseek-ai/dsh-agent-tool-presentation`
@@ -305,7 +170,7 @@ Requires: `tools`
305
170
  export interface Config {
306
171
  /**
307
172
  * The form this agent's model sees. `native` sends every visible schema,
308
- * `code` sends only `run_code` plus a generated SDK, `both` sends both.
173
+ * `ptc` sends only `run_code` plus a generated SDK, `both` sends both.
309
174
  * Required rather than defaulted: the deployment default is what a preset
310
175
  * without this row already gets, so an omitted value would mean the row was
311
176
  * composed for nothing.
@@ -318,6 +183,56 @@ Depends on: [`ToolPresentationMode`](subsystems/tools.md)
318
183
 
319
184
  Source: [`packages/core/agent-tool-presentation/src/index.ts:38`](../packages/core/agent-tool-presentation/src/index.ts)
320
185
 
186
+ <a id="deepseek-aidsh-api-gateway"></a>
187
+
188
+ ## `@deepseek-ai/dsh-api-gateway`
189
+
190
+ Requires: `typert`
191
+
192
+ ```ts config-catalog
193
+ /** Gateway transport configuration. */
194
+ export interface Config {
195
+ /** WebSocket Ping interval from 1 through 2,147,483,647 milliseconds. @default 2000 */
196
+ readonly websocketHeartbeatIntervalMs?: number
197
+ }
198
+ ```
199
+
200
+ Source: [`packages/api/gateway/src/index.ts:119`](../packages/api/gateway/src/index.ts)
201
+
202
+ <a id="deepseek-aidsh-api-session-controller"></a>
203
+
204
+ ## `@deepseek-ai/dsh-api-session-controller`
205
+
206
+ Requires: `agentDefaultModel` · `agents` · `attachments` · `llm` · `sessions` · `sessionProjections` · `sessionQuery` · `typert` · `workspaceRegistry`
207
+
208
+ ```ts config-catalog
209
+ /** Session Controller deployment policy. */
210
+ export interface Config {
211
+ /** Maximum stat-reported event count eligible for one full cold projection observation; `0` disables the event-count gate. */
212
+ readonly coldBlankProbeMaxEvents?: number
213
+ /** Maximum stat-reported artifact byte size eligible for one full cold projection observation; `0` disables the byte-size gate. */
214
+ readonly coldBlankProbeMaxBytes?: number
215
+ /** Override platform desktop-opener detection. */
216
+ readonly nativeOpen?: boolean
217
+ }
218
+ ```
219
+
220
+ Source: [`packages/api/session-controller/src/index.ts:72`](../packages/api/session-controller/src/index.ts)
221
+
222
+ <a id="deepseek-aidsh-api-settings-controller"></a>
223
+
224
+ ## `@deepseek-ai/dsh-api-settings-controller`
225
+
226
+ ```ts config-catalog
227
+ /** Native document-opening policy. */
228
+ export interface Config {
229
+ /** Override platform desktop-opener detection. */
230
+ readonly nativeOpen?: boolean
231
+ }
232
+ ```
233
+
234
+ Source: [`packages/api/settings-controller/src/index.ts:36`](../packages/api/settings-controller/src/index.ts)
235
+
321
236
  <a id="deepseek-aidsh-attachment-local"></a>
322
237
 
323
238
  ## `@deepseek-ai/dsh-attachment-local`
@@ -327,18 +242,31 @@ Source: [`packages/core/agent-tool-presentation/src/index.ts:38`](../packages/co
327
242
  export interface Config {
328
243
  /** Explicit harness home; omitted follows `DSH_HOME`, then `~/.dsh`. */
329
244
  dshHome?: string
330
- /** Maximum encoded bytes accepted for one image. */
245
+ /** Maximum encoded bytes accepted for one submitted image. Default: 20 MiB. */
331
246
  maxImageBytes?: number
332
- /** Maximum image count accepted in one submitted message. */
247
+ /** Maximum image count accepted in one submitted message. Default: 20. */
333
248
  maxImagesPerMessage?: number
334
- /** Maximum aggregate encoded image bytes accepted in one submitted message. */
249
+ /** Maximum aggregate encoded image bytes accepted in one submitted message. Default: 200 MiB. */
335
250
  maxMessageImageBytes?: number
336
- /** Maximum intrinsic width multiplied by height accepted for one image. */
251
+ /** Maximum intrinsic width multiplied by height accepted for one submitted image. Default: 64,000,000. */
337
252
  maxImagePixels?: number
253
+ /** Maximum intrinsic width and maximum intrinsic height accepted for one submitted image. Default: 8192px. */
254
+ maxImageDimension?: number
255
+ /** Total-pixel budget of the stored provider-independent normalized image. */
256
+ normalizedImageMaxPixels?: number
257
+ /** Long-edge pixel cap of the stored provider-independent normalized image, applied after the total-pixel budget. */
258
+ normalizedImageMaxDimension?: number
259
+ /**
260
+ * Encoded-byte target of the stored provider-independent normalized image;
261
+ * the smallest quality-ladder output is kept when no quality fits.
262
+ */
263
+ normalizedImageMaxBytes?: number
264
+ /** Maximum simultaneous normalization or request-image transformations in this service instance. */
265
+ imageCompressionConcurrency?: number
338
266
  }
339
267
  ```
340
268
 
341
- Source: [`packages/attachment/attachment-local/src/index.ts:24`](../packages/attachment/attachment-local/src/index.ts)
269
+ Source: [`packages/attachment/attachment-local/src/index.ts:55`](../packages/attachment/attachment-local/src/index.ts)
342
270
 
343
271
  <a id="deepseek-aidsh-bash-local"></a>
344
272
 
@@ -391,7 +319,7 @@ Source: [`packages/shell/bash-sandbox/src/index.ts:35`](../packages/shell/bash-s
391
319
 
392
320
  ## `@deepseek-ai/dsh-client-connection`
393
321
 
394
- Requires: `webServer`
322
+ Requires: `webServer` · `credentials`
395
323
 
396
324
  ```ts config-catalog
397
325
  /** Plugin config: the deployment's non-loopback serving authorities. */
@@ -401,16 +329,18 @@ export interface ConnectionConfig {
401
329
  * port-less `host` matching any port. The /api trust fence refuses any
402
330
  * request whose Host is neither loopback nor listed here, so a
403
331
  * non-loopback (`0.0.0.0`) deployment must declare the names it is reached
404
- * by (the dsh CLI derives the machine's LAN IP literals itself). An entry
405
- * that is not a bare, canonical authority fails the plugin load.
332
+ * by; the Web runtime derives LAN IP literals from an active all-interface
333
+ * bind. An entry that is not a bare, canonical authority fails plugin load.
406
334
  */
407
335
  trustedHosts?: string[]
408
- /** Maximum buffered JSON body for every `/api` request. */
336
+ /** Absolute browser-session lifetime in days. Default: 30. */
337
+ cookieMaxAgeDays?: number
338
+ /** Maximum buffered JSON body for every `/api` request. Default: 300 MiB. */
409
339
  maxRequestBodyBytes?: number
410
340
  }
411
341
  ```
412
342
 
413
- Source: [`packages/client/connection/src/index.ts:50`](../packages/client/connection/src/index.ts)
343
+ Source: [`packages/client/connection/src/index.ts:70`](../packages/client/connection/src/index.ts)
414
344
 
415
345
  <a id="deepseek-aidsh-client-hmr"></a>
416
346
 
@@ -529,7 +459,7 @@ export interface ToolResultPruneConfig {
529
459
  }
530
460
  ```
531
461
 
532
- Source: [`packages/compaction/compaction-tool-result-pruner/src/types.ts:4`](../packages/compaction/compaction-tool-result-pruner/src/types.ts)
462
+ Source: [`packages/compaction/compaction-tool-result-pruner/src/types.ts:5`](../packages/compaction/compaction-tool-result-pruner/src/types.ts)
533
463
 
534
464
  <a id="deepseek-aidsh-cordis-host-runner"></a>
535
465
 
@@ -565,7 +495,7 @@ export interface Config {
565
495
  }
566
496
  ```
567
497
 
568
- Source: [`packages/credentials/credentials-local/src/index.ts:55`](../packages/credentials/credentials-local/src/index.ts)
498
+ Source: [`packages/credentials/credentials-local/src/index.ts:64`](../packages/credentials/credentials-local/src/index.ts)
569
499
 
570
500
  <a id="deepseek-aidsh-e2b"></a>
571
501
 
@@ -585,6 +515,203 @@ export interface Config {
585
515
 
586
516
  Source: [`packages/e2b/e2b/src/index.ts:43`](../packages/e2b/e2b/src/index.ts)
587
517
 
518
+ <a id="deepseek-aidsh-experimental-agent-team"></a>
519
+
520
+ ## `@deepseek-ai/dsh-experimental-agent-team`
521
+
522
+ Requires: `agents` · `sessions` · `sessionPersistence` · `sessionProjections` · `subagents`
523
+
524
+ ```ts config-catalog
525
+ /** Team-service deployment limits. */
526
+ export interface Config {
527
+ /** Maximum immutable teammate names retained by one Team. */
528
+ readonly maxMembers?: number
529
+ /** Maximum non-deleted tasks retained by one Team. */
530
+ readonly maxTasks?: number
531
+ /** Maximum queued-minus-delivered messages for one target member. */
532
+ readonly maxPendingMessagesPerMember?: number
533
+ /** Maximum UTF-8 bytes in one complete sender-framed delivery. */
534
+ readonly maxMessageBytes?: number
535
+ /** Maximum milliseconds allowed for Team-owned runtime disposal. */
536
+ readonly disposalTimeoutMs?: number
537
+ }
538
+ ```
539
+
540
+ Source: [`packages/experimental/agent-team/src/types.ts:130`](../packages/experimental/agent-team/src/types.ts)
541
+
542
+ <a id="deepseek-aidsh-experimental-code-runtime-python"></a>
543
+
544
+ ## `@deepseek-ai/dsh-experimental-code-runtime-python`
545
+
546
+ ```ts config-catalog
547
+ /** Plugin config: every cap, changeable from `cordis.yml` (no hardcoded tunables). */
548
+ export interface Config {
549
+ /**
550
+ * RLIMIT_CPU in whole seconds (a positive integer — `setrlimit` in the child
551
+ * rejects a float). The child sets the soft limit to `cpuSeconds` and the
552
+ * hard limit to `cpuSeconds + 1`: the kernel delivers SIGXCPU at the soft
553
+ * limit, which the host classifies as a `timeout`; the +1s hard limit is a
554
+ * SIGKILL backstop for a program that traps SIGXCPU. Granularity is seconds —
555
+ * a coarser counterpart to the worker backend's millisecond `computeMs`.
556
+ */
557
+ cpuSeconds?: number
558
+ /** Wall-clock ceiling in milliseconds; backstops CPU time for programs awaiting a promise nobody resolves. */
559
+ maxWallMs?: number
560
+ /**
561
+ * RLIMIT_AS in mebibytes; caps address space so a runaway allocation fails
562
+ * cleanly. Not applied on Darwin, where the dyld shared cache mapped into
563
+ * every process at exec exceeds any practical cap and the kernel rejects
564
+ * the call; `cpuSeconds` and `maxWallMs` still bound the run there. Bounds
565
+ * `maxLogBytes`/`maxValueBytes` at load on EVERY platform (this static check
566
+ * runs on Darwin too, where only the runtime `setrlimit` is skipped): each
567
+ * budget times a worst-case Unicode expansion must fit this byte count minus a
568
+ * fixed interpreter baseline, so a near-budget output cannot breach the address
569
+ * space during the child's build-and-encode.
570
+ */
571
+ addressSpaceMb?: number
572
+ /**
573
+ * Shared byte budget for captured log text (host-side ledger). Bounded at load
574
+ * against `addressSpaceMb`: the child builds and encodes a near-budget entry
575
+ * under RLIMIT_AS with several copies live at once, so this cap times the
576
+ * worst-case Unicode expansion must fit the address space left after the
577
+ * interpreter baseline (see `addressSpaceMb`) — a load-time rejection, not a
578
+ * runtime clamp. Also bounded at load by the host's configured heap like
579
+ * `maxValueBytes` (see its JSDoc): the effective frame cap minus the frame
580
+ * envelope.
581
+ */
582
+ maxLogBytes?: number
583
+ /**
584
+ * Byte cap for the completion value. Bounded at load against `addressSpaceMb`
585
+ * the same way `maxLogBytes` is: the child builds and encodes a near-budget
586
+ * value under RLIMIT_AS with several copies live at once, so this cap times the
587
+ * worst-case Unicode expansion must fit the address space left after the
588
+ * interpreter baseline. Both budgets are ALSO bounded at load by the host's
589
+ * configured heap: the effective frame cap (the protocol cap, or a lower
590
+ * heap-derived ceiling when the host heap cannot safely parse a near-cap
591
+ * frame — see `hostFrameParseCeiling`) minus the frame envelope, so a budget
592
+ * whose honest frame could OOM the host's own JSON.parse is rejected up
593
+ * front.
594
+ */
595
+ maxValueBytes?: number
596
+ /** SIGTERM→SIGKILL grace period on kill, matching bash-local's default. */
597
+ graceMs?: number
598
+ /**
599
+ * Absolute path, relative path, or basename of a CPython 3.10+ interpreter.
600
+ * Resolved and validated once at plugin load under a five-second force-kill
601
+ * deadline; a basename searches `PATH`.
602
+ */
603
+ pythonBin?: string
604
+ }
605
+ ```
606
+
607
+ Source: [`packages/experimental/code-runtime-python/src/index.ts:42`](../packages/experimental/code-runtime-python/src/index.ts)
608
+
609
+ <a id="deepseek-aidsh-experimental-inspector"></a>
610
+
611
+ ## `@deepseek-ai/dsh-experimental-inspector`
612
+
613
+ Requires: `webServer`
614
+
615
+ ```ts config-catalog
616
+ /** Host plugin configuration. Fetch capture is enabled by default. */
617
+ export interface Config extends Omit<InspectorOptions, 'clientOrigins'> {
618
+ /** Browser origins allowed to open the Client ingest WebSocket. */
619
+ clientOrigins?: string[]
620
+ }
621
+
622
+ /** User-facing Host options; every memory and lifecycle bound is configurable. */
623
+ export interface InspectorOptions {
624
+ /** Loopback address used by the Worker HTTP and WebSocket endpoint. */
625
+ readonly host?: '127.0.0.1'
626
+ /** First port to bind; occupied ports advance until one is available. */
627
+ readonly port?: number
628
+ /** Additional exact browser origins admitted to the Client ingest socket. */
629
+ readonly clientOrigins?: readonly string[]
630
+ /** Whether to observe calls made through the current global fetch function. */
631
+ readonly captureFetch?: boolean
632
+ /** Maximum request-body prefix retained for one fetch. */
633
+ readonly maxRequestBodyBytes?: number
634
+ /** Maximum response-body prefix retained for one fetch. */
635
+ readonly maxResponseBodyBytes?: number
636
+ /** Maximum raw bytes encoded into one body observation. */
637
+ readonly maxBodyChunkBytes?: number
638
+ /** Maximum total request and response body bytes retained by the Worker. */
639
+ readonly maxJournalBytes?: number
640
+ /** Maximum active and completed fetch requests retained by the Worker. */
641
+ readonly maxRetainedRequests?: number
642
+ /** Maximum encoded bytes accepted in one source transport frame. */
643
+ readonly maxSourceFrameBytes?: number
644
+ /** Maximum observation records accepted in one source batch. */
645
+ readonly maxSourceRecordsPerFrame?: number
646
+ /** Maximum records waiting in one producer queue. */
647
+ readonly maxQueuedRecords?: number
648
+ /** Maximum encoded bytes waiting in one producer queue. */
649
+ readonly maxQueuedBytes?: number
650
+ /** Maximum time allowed for the Worker to become ready. */
651
+ readonly startupTimeoutMs?: number
652
+ /** Grace period before a stopping Worker is terminated. */
653
+ readonly stopTimeoutMs?: number
654
+ /** Initial upper bound for randomized Client reconnect delay. */
655
+ readonly clientReconnectBaseMs?: number
656
+ /** Maximum upper bound for randomized Client reconnect delay. */
657
+ readonly clientReconnectMaxMs?: number
658
+ /** Deadline for one Worker-to-Client Runtime or Sources request. */
659
+ readonly clientRuntimeTimeoutMs?: number
660
+ /** Deadline for one non-CDP semantic query. */
661
+ readonly queryTimeoutMs?: number
662
+ /** Maximum live object handles retained per Client Runtime session. */
663
+ readonly maxClientRuntimeObjects?: number
664
+ /** Maximum descriptors returned by one Client property request. */
665
+ readonly maxClientRuntimeProperties?: number
666
+ /** Maximum encoded bytes read for one Client script or source map. */
667
+ readonly maxClientSourceBytes?: number
668
+ /** Maximum Context and Fiber nodes retained in one realm snapshot. */
669
+ readonly maxCordisNodes?: number
670
+ /** Disconnected Cordis snapshots retained after their live realm closes. */
671
+ readonly maxDisconnectedCordisTrees?: number
672
+ }
673
+ ```
674
+
675
+ Source: [`packages/experimental/inspector/src/index.ts:66`](../packages/experimental/inspector/src/index.ts)
676
+
677
+ <a id="deepseek-aidsh-experimental-tool-agent-team"></a>
678
+
679
+ ## `@deepseek-ai/dsh-experimental-tool-agent-team`
680
+
681
+ Requires: `agents` · `agentTeams` · `tools` · `systemPrompt`
682
+
683
+ ```ts config-catalog
684
+ /** Tool routing configuration. */
685
+ export interface Config {
686
+ /** Continuable-subagent provider used for fresh teammates. */
687
+ readonly freshProvider?: string
688
+ /** Continuable-subagent provider used for completed-prefix fork teammates. */
689
+ readonly forkProvider?: string
690
+ }
691
+ ```
692
+
693
+ Source: [`packages/experimental/tool-agent-team/src/index.ts:17`](../packages/experimental/tool-agent-team/src/index.ts)
694
+
695
+ <a id="deepseek-aidsh-file-reference-local"></a>
696
+
697
+ ## `@deepseek-ai/dsh-file-reference-local`
698
+
699
+ Requires: `agents`
700
+
701
+ ```ts config-catalog
702
+ /** Local file-reference discovery configuration. */
703
+ export interface Config {
704
+ /** Maximum ranked candidates returned for one query. */
705
+ maxResults?: number
706
+ /** Maximum indexed files and directories per agent workspace. */
707
+ maxEntries?: number
708
+ /** Directory basenames never traversed or offered. */
709
+ excludedDirectories?: string[]
710
+ }
711
+ ```
712
+
713
+ Source: [`packages/context/file-reference-local/src/index.ts:34`](../packages/context/file-reference-local/src/index.ts)
714
+
588
715
  <a id="deepseek-aidsh-fs-local"></a>
589
716
 
590
717
  ## `@deepseek-ai/dsh-fs-local`
@@ -622,13 +749,13 @@ export type Config = LocalConfig
622
749
 
623
750
  Depends on: [`LocalConfig`](#deepseek-aidsh-fs-local)
624
751
 
625
- Source: [`packages/fs/fs-sandbox/src/index.ts:49`](../packages/fs/fs-sandbox/src/index.ts)
752
+ Source: [`packages/fs/fs-sandbox/src/index.ts:45`](../packages/fs/fs-sandbox/src/index.ts)
626
753
 
627
754
  <a id="deepseek-aidsh-goal"></a>
628
755
 
629
756
  ## `@deepseek-ai/dsh-goal`
630
757
 
631
- Requires: `agents`
758
+ Requires: `agents` · `sessionProjections`
632
759
 
633
760
  ```ts config-catalog
634
761
  /** Deployment defaults for goal creation. */
@@ -638,7 +765,7 @@ export interface Config {
638
765
  }
639
766
  ```
640
767
 
641
- Source: [`packages/goal/goal/src/index.ts:116`](../packages/goal/goal/src/index.ts)
768
+ Source: [`packages/goal/goal/src/index.ts:172`](../packages/goal/goal/src/index.ts)
642
769
 
643
770
  <a id="deepseek-aidsh-headless"></a>
644
771
 
@@ -654,13 +781,13 @@ export interface Config {
654
781
  }
655
782
  ```
656
783
 
657
- Source: [`packages/bundle/headless/src/index.ts:31`](../packages/bundle/headless/src/index.ts)
784
+ Source: [`packages/bundle/headless/src/index.ts:34`](../packages/bundle/headless/src/index.ts)
658
785
 
659
786
  <a id="deepseek-aidsh-hooks-claude-code"></a>
660
787
 
661
788
  ## `@deepseek-ai/dsh-hooks-claude-code`
662
789
 
663
- Requires: `shell`
790
+ Requires: `shell` · `sessionProjections`
664
791
 
665
792
  ```ts config-catalog
666
793
  /** Plugin config: where the CC hook config lives + substitution roots. */
@@ -698,7 +825,7 @@ Source: [`packages/hooks/hooks-claude-code/src/index.ts:45`](../packages/hooks/h
698
825
 
699
826
  ## `@deepseek-ai/dsh-hooks-codex`
700
827
 
701
- Requires: `shell`
828
+ Requires: `shell` · `sessionProjections`
702
829
 
703
830
  ```ts config-catalog
704
831
  /** Plugin config: where the Codex hooks.json lives + the model name for payloads. */
@@ -721,40 +848,6 @@ export interface Config {
721
848
 
722
849
  Source: [`packages/hooks/hooks-codex/src/index.ts:44`](../packages/hooks/hooks-codex/src/index.ts)
723
850
 
724
- <a id="deepseek-aidsh-host-apiproxy"></a>
725
-
726
- ## `@deepseek-ai/dsh-host-apiproxy`
727
-
728
- Requires: `agentDefaultModel` · `agents` · `attachments` · `directoryPicker` · `llm` · `sessions` · `subagents` · `sessionQuery` · `tools` · `userQuestions` · `workspaceRegistry`
729
-
730
- ```ts config-catalog
731
- /** Gateway plugin configuration. */
732
- export interface Config {
733
- /**
734
- * Whether this deployment can hand paths to a native desktop opener —
735
- * the `hasDocument` capability the agent-preset roster reports. Absent,
736
- * the platform is asked (macOS/Windows/WSL yes; Linux only with a display
737
- * server); set it explicitly where detection misleads, e.g. `false` in a
738
- * container whose DISPLAY points nowhere a user can see.
739
- */
740
- nativeOpen?: boolean
741
- /**
742
- * DEFLATE level for every session-log ZIP entry: `0` stores without
743
- * compression, `1` favors CPU/latency, and `9` favors archive size.
744
- * @default 6
745
- */
746
- sessionExportCompressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
747
- /**
748
- * Maximum physical size of a cold Session artifact eligible for blankness
749
- * verification. Zero disables probes.
750
- * @default 1024
751
- */
752
- coldBlankProbeMaxBytes?: number
753
- }
754
- ```
755
-
756
- Source: [`packages/host/apiproxy/src/index.ts:41`](../packages/host/apiproxy/src/index.ts)
757
-
758
851
  <a id="deepseek-aidsh-host-directory-picker-browse"></a>
759
852
 
760
853
  ## `@deepseek-ai/dsh-host-directory-picker-browse`
@@ -773,7 +866,7 @@ Source: [`packages/host/directory-picker-browse/src/index.ts:181`](../packages/h
773
866
 
774
867
  ## `@deepseek-ai/dsh-host-frontend-static`
775
868
 
776
- Requires: `webServer`
869
+ Requires: `webServer` · `connection`
777
870
 
778
871
  ```ts config-catalog
779
872
  /** Plugin config: the dist anchor. */
@@ -783,23 +876,29 @@ export interface Config {
783
876
  }
784
877
  ```
785
878
 
786
- Source: [`packages/host/frontend-static/src/index.ts:28`](../packages/host/frontend-static/src/index.ts)
879
+ Source: [`packages/host/frontend-static/src/index.ts:30`](../packages/host/frontend-static/src/index.ts)
787
880
 
788
881
  <a id="deepseek-aidsh-host-webserver"></a>
789
882
 
790
883
  ## `@deepseek-ai/dsh-host-webserver`
791
884
 
792
885
  ```ts config-catalog
793
- /** Gateway config: the listen address. */
886
+ /** Web server listen and response-compression config. */
794
887
  export interface Config {
795
888
  /** Listen host; the two supported values are loopback and all-interfaces. */
796
889
  host: '127.0.0.1' | '0.0.0.0'
797
890
  /** Listen port; zero requests an OS-assigned port. */
798
891
  port: number
892
+ /** Response compression for socket-backed HTTP requests. @default 'none' */
893
+ compression?: 'none' | 'gzip'
894
+ /** Gzip DEFLATE level from 0 through 9. @default 1 */
895
+ compressionLevel?: number
896
+ /** Minimum known response length eligible for gzip; unknown-length streams are eligible. @default 1024 */
897
+ compressionThresholdBytes?: number
799
898
  }
800
899
  ```
801
900
 
802
- Source: [`packages/host/webserver/src/index.ts:45`](../packages/host/webserver/src/index.ts)
901
+ Source: [`packages/host/webserver/src/index.ts:59`](../packages/host/webserver/src/index.ts)
803
902
 
804
903
  <a id="deepseek-aidsh-invariants"></a>
805
904
 
@@ -859,16 +958,36 @@ export interface Config {
859
958
  /** Deployment thinking policy; `disabled` limits every conversation request to `off`. */
860
959
  thinking?: 'enabled' | 'disabled'
861
960
  /** Default thinking effort (default `high`); `off` disables thinking per request. */
862
- reasoningEffort?: 'off' | 'high' | 'max'
961
+ reasoningEffort?: 'off' | 'low' | 'high' | 'max'
863
962
  /** Default per-request output cap (default 256,000); a model's own cap and explicit request values win. */
864
963
  maxTokens?: number
865
964
  /** Positive context capacity used when the selected model has no exact value (default 1,000,000). */
866
965
  defaultContextWindow?: number
867
- /** Advisory models shown by discovery consumers; defaults to V4 Flash and V4 Pro. */
966
+ /** Advisory models shown by discovery consumers; defaults to V4 Flash, V4 Pro, and V4 Flash Vision Exp. */
868
967
  models?: DeepSeekCatalogModel[]
869
968
  /** Maximum provider idle time while one stream read is outstanding (default five minutes). */
870
969
  streamIdleTimeoutMs?: number
871
- /** Provider-owned model-request retry policy; omission uses normal defaults. */
970
+ /** Maximum accumulated file-referenced image bytes per chat request (default 128 MiB). */
971
+ maxRequestFilesBytes?: number
972
+ /** Maximum accumulated base64 image payload after Files API fallback (default 20 MiB). */
973
+ maxInlineRequestImageBytes?: number
974
+ /** Maximum number of represented images per chat request (default 600). */
975
+ maxImagesPerRequest?: number
976
+ /** Raw-byte removal step after the request exceeds its file bound (default 64 MiB). */
977
+ imageOffloadByteQuantum?: number
978
+ /** Base64-byte removal step after inline fallback exceeds its bound (default 10 MiB). */
979
+ inlineImageOffloadByteQuantum?: number
980
+ /** Image-count removal step after the request exceeds its count bound (default 20). */
981
+ imageOffloadCountQuantum?: number
982
+ /** Maximum duration of one request-image Files API resolution (default one minute). */
983
+ filesApiTimeoutMs?: number
984
+ /** Explicit lifetime assigned to each uploaded image (default seven days). */
985
+ fileExpiresAfterSeconds?: number
986
+ /** Remaining lifetime below which an indexed file is replaced (default one hour). */
987
+ fileRefreshMarginSeconds?: number
988
+ /** Oldest harness-owned files deleted before one quota-recovery upload retry (default 100). */
989
+ fileQuotaCleanupBatch?: number
990
+ /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
872
991
  retryPolicy?: RetryPolicyConfig
873
992
  }
874
993
 
@@ -884,12 +1003,18 @@ export interface DeepSeekCatalogModel {
884
1003
  contextWindow?: number
885
1004
  /** Per-request output cap for this model; omission falls back to the profile's {@link DeepSeekConnectionOptions.maxTokens}. */
886
1005
  maxTokens?: number
1006
+ /** Accepted request modalities; omission is text-only. */
1007
+ inputModalities?: ModelModality[]
1008
+ /** Total-pixel budget for one deterministic request preview, or the 512-by-512 `low` preset. */
1009
+ imagePixelBudget?: number | 'low'
1010
+ /** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
1011
+ imageMaxBytes?: number
887
1012
  }
888
1013
  ```
889
1014
 
890
- Depends on: [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
1015
+ Depends on: [`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
891
1016
 
892
- Source: [`packages/llm/llm-deepseek/src/index.ts:62`](../packages/llm/llm-deepseek/src/index.ts)
1017
+ Source: [`packages/llm/llm-deepseek/src/index.ts:125`](../packages/llm/llm-deepseek/src/index.ts)
893
1018
 
894
1019
  <a id="deepseek-aidsh-llm-pi-ai"></a>
895
1020
 
@@ -938,10 +1063,11 @@ export interface PiAiProviderProfile {
938
1063
  */
939
1064
  modelOverrides?: Record<string, PiAiModelOverride>
940
1065
  /**
941
- * Reasoning-dispatch switches for every `openai-completions` model on this
942
- * route; each model's own `compat` overrides per field. What neither sets
943
- * keeps the installed catalog entry's value, then pi-ai's baseURL-derived
944
- * detection.
1066
+ * pi-ai wire-compatibility switches defaulting every model on this route
1067
+ * whose protocol declares them; each model's own `compat` overrides per
1068
+ * field. What neither sets keeps the installed catalog entry's value, then
1069
+ * pi-ai's own detection. A switch no model on the route could read is
1070
+ * refused rather than left looking applied.
945
1071
  */
946
1072
  compat?: PiAiCompatProfile
947
1073
  /**
@@ -967,7 +1093,7 @@ export interface PiAiProviderProfile {
967
1093
  * to answer instead.
968
1094
  */
969
1095
  defaultInput?: PiAiModality[]
970
- /** Provider request headers; Harness attribution wins reserved names. */
1096
+ /** Provider request headers, validated against Fetch when the profile resolves; Harness attribution wins reserved names. */
971
1097
  headers?: Record<string, string>
972
1098
  /** Provider-neutral pi-ai reasoning level. */
973
1099
  reasoning?: ModelThinkingLevel
@@ -983,7 +1109,21 @@ export interface PiAiProviderProfile {
983
1109
  websocketConnectTimeoutMs?: number
984
1110
  /** Maximum provider idle time while one stream read is outstanding. */
985
1111
  streamIdleTimeoutMs?: number
986
- /** Provider-owned model-request retry policy; omission uses normal defaults. */
1112
+ /**
1113
+ * Maximum base64-encoded image payload per request. When a request's
1114
+ * accumulated images exceed it, the oldest images are replaced by text
1115
+ * placeholders until the request fits, so a long session keeps completing
1116
+ * requests instead of being rejected by a request-size cap.
1117
+ */
1118
+ maxRequestImageBytes?: number
1119
+ /** Total-pixel budget for each deterministic inline request version. */
1120
+ requestImagePixelBudget?: number
1121
+ /**
1122
+ * Raw encoded-byte target for each deterministic inline request version;
1123
+ * the smallest quality-ladder output is used when no quality fits.
1124
+ */
1125
+ requestImageMaxBytes?: number
1126
+ /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
987
1127
  retryPolicy?: RetryPolicyConfig
988
1128
  }
989
1129
 
@@ -1022,7 +1162,7 @@ export interface PiAiModelProfile {
1022
1162
  * declares the offered levels and their wire spellings.
1023
1163
  */
1024
1164
  reasoningEfforts?: false | PiAiReasoningEfforts
1025
- /** Reasoning-dispatch switches for this model, winning over the route's. */
1165
+ /** pi-ai wire-compatibility switches for this model, winning over the route's per field; one its protocol does not declare is refused. */
1026
1166
  compat?: PiAiCompatProfile
1027
1167
  }
1028
1168
 
@@ -1036,19 +1176,89 @@ export interface PiAiModelProfile {
1036
1176
  export type PiAiModelOverride = Omit<PiAiModelProfile, 'id'>
1037
1177
 
1038
1178
  /**
1039
- * Reasoning-dispatch compatibility switches, set on the route (its models'
1040
- * default) or per model (winning over the route). Only the switches pi-ai's
1041
- * reasoning dispatch reads are offered; the rest of pi-ai's compat surface
1042
- * keeps its baseURL-derived auto-detection. pi-ai types both fields only on
1043
- * `OpenAICompletionsCompat` the other wire protocols define their reasoning
1044
- * fields in the protocol itself so resolution rejects a model-level switch
1045
- * anywhere else, while a route-level default skips past models it cannot fit.
1179
+ * pi-ai wire-compatibility switches, set on the route (its models' default) or
1180
+ * per model (winning over the route, field by field).
1181
+ *
1182
+ * pi-ai decides each of these from the provider id and baseURL when no layer
1183
+ * sets it, and a private gateway's URL says nothing: for an endpoint it does
1184
+ * not recognize the detection answers as though it were OpenAI itself, which
1185
+ * is wrong for most OpenAI-compatible gateways. So every field here is one a
1186
+ * deployment must be able to state because nothing can infer it, while the
1187
+ * fields pi-ai's catalog sets for a named vendor stay withheld.
1188
+ *
1189
+ * A field belongs to the protocols whose upstream compat type declares it: a
1190
+ * model-level switch its protocol does not take fails resolution, and a
1191
+ * route-level one skips past models it cannot fit. "The three Responses
1192
+ * protocols" below means `openai-responses`, `azure-openai-responses`, and
1193
+ * `openai-codex-responses`, which pi-ai gives one shared compat type, so a
1194
+ * switch settable on one is settable on all three.
1046
1195
  */
1047
1196
  export interface PiAiCompatProfile {
1048
- /** Reasoning parameter format the endpoint expects; absent keeps the catalog entry's, then pi-ai's baseURL-derived guess. */
1049
- thinkingFormat?: PiAiThinkingFormat
1050
- /** Whether the endpoint accepts `reasoning_effort`; absent keeps the catalog entry's, then pi-ai's baseURL-derived guess. */
1197
+ /** Whether the endpoint accepts `store`; `openai-completions`. */
1198
+ supportsStore?: boolean
1199
+ /**
1200
+ * Whether the endpoint accepts the `developer` role for the system prompt,
1201
+ * which pi-ai sends only to a reasoning model; `false` keeps `system`.
1202
+ * `openai-completions` and the three Responses protocols.
1203
+ */
1204
+ supportsDeveloperRole?: boolean
1205
+ /** Whether the endpoint accepts `reasoning_effort`; `openai-completions`. */
1051
1206
  supportsReasoningEffort?: boolean
1207
+ /** Whether the endpoint accepts `stream_options: {include_usage: true}`; `openai-completions`. */
1208
+ supportsUsageInStreaming?: boolean
1209
+ /**
1210
+ * Whether streams include `finish_reason`; `false` lets pi-ai infer the
1211
+ * terminal reason when the stream ends; `openai-completions`.
1212
+ */
1213
+ supportsFinishReason?: boolean
1214
+ /** Which output-cap field the endpoint reads; `openai-completions`. */
1215
+ maxTokensField?: NonNullable<OpenAICompletionsCompat['maxTokensField']>
1216
+ /** Whether tool results must carry `name`; `openai-completions`. */
1217
+ requiresToolResultName?: boolean
1218
+ /** Whether a user message after tool results needs an assistant message between; `openai-completions`. */
1219
+ requiresAssistantAfterToolResult?: boolean
1220
+ /** Whether thinking blocks must travel as text in `<thinking>` delimiters; `openai-completions`. */
1221
+ requiresThinkingAsText?: boolean
1222
+ /** Whether replayed assistant messages need an empty `reasoning_content` while reasoning is on; `openai-completions`. */
1223
+ requiresReasoningContentOnAssistantMessages?: boolean
1224
+ /** Reasoning parameter format the endpoint expects; `openai-completions`. */
1225
+ thinkingFormat?: PiAiThinkingFormat
1226
+ /**
1227
+ * Kwargs sent as `chat_template_kwargs`, which pi-ai reads only under the
1228
+ * two `chat-template` thinking formats; `openai-completions`. Nothing checks
1229
+ * that pairing: the format in force may come from the installed catalog
1230
+ * entry or from pi-ai's own baseURL detection, neither of which resolution
1231
+ * can read, so kwargs set beside another format are sent nowhere.
1232
+ */
1233
+ chatTemplateKwargs?: NonNullable<OpenAICompletionsCompat['chatTemplateKwargs']>
1234
+ /** Arguments sent as `chat_template_args` under the `baseten` thinking format; `openai-completions`. */
1235
+ chatTemplateArgs?: NonNullable<OpenAICompletionsCompat['chatTemplateArgs']>
1236
+ /** Whether the endpoint accepts `thinking_token_budget` to cap vLLM reasoning; `openai-completions`. */
1237
+ supportsThinkingTokenBudget?: boolean
1238
+ /**
1239
+ * Whether the endpoint accepts `strict` in tool definitions;
1240
+ * `openai-completions`, the three Responses protocols, `bedrock-converse-stream`.
1241
+ */
1242
+ supportsStrictMode?: boolean
1243
+ /** Prompt-cache marker convention; `openai-completions`. */
1244
+ cacheControlFormat?: NonNullable<OpenAICompletionsCompat['cacheControlFormat']>
1245
+ /**
1246
+ * Whether the endpoint accepts long prompt-cache retention;
1247
+ * `openai-completions`, the three Responses protocols, `anthropic-messages`.
1248
+ */
1249
+ supportsLongCacheRetention?: boolean
1250
+ /** Whether the endpoint accepts per-tool `eager_input_streaming`; `anthropic-messages`. */
1251
+ supportsEagerToolInputStreaming?: boolean
1252
+ /** Whether the endpoint accepts `cache_control` on tool definitions; `anthropic-messages`. */
1253
+ supportsCacheControlOnTools?: boolean
1254
+ /** Whether the endpoint accepts the `temperature` request field; `anthropic-messages`. */
1255
+ supportsTemperature?: boolean
1256
+ /** Whether to force adaptive thinking regardless of model id; `anthropic-messages`. */
1257
+ forceAdaptiveThinking?: boolean
1258
+ /** Whether to replay an empty thinking signature instead of converting thinking to text; `anthropic-messages`. */
1259
+ allowEmptySignature?: boolean
1260
+ /** Whether the endpoint accepts Anthropic strict tool schemas; `anthropic-messages`. */
1261
+ supportsStrictTools?: boolean
1052
1262
  }
1053
1263
 
1054
1264
  /** One request modality a pi-ai model may accept. */
@@ -1065,21 +1275,12 @@ export type PiAiModality = Model<Api>['input'][number]
1065
1275
  export type PiAiReasoningEfforts = Partial<Record<ModelThinkingLevel, string | null>>
1066
1276
 
1067
1277
  /** One reasoning-dispatch wire format a profile may name. */
1068
- export type PiAiThinkingFormat = Exclude<PiThinkingFormat, WithheldThinkingFormat>
1069
-
1070
- /** The `compat.thinkingFormat` spellings pi-ai accepts on an `openai-completions` model. */
1071
- type PiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
1072
-
1073
- /**
1074
- * pi-ai thinking formats a profile cannot name: both drive the request through
1075
- * `chatTemplateKwargs`, which this configuration does not expose.
1076
- */
1077
- type WithheldThinkingFormat = 'chat-template' | 'qwen-chat-template'
1278
+ export type PiAiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
1078
1279
  ```
1079
1280
 
1080
1281
  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`](../packages/llm/llm/src/index.ts) · `ThinkingBudgets` (`@earendil-works/pi-ai`) · `Transport` (`@earendil-works/pi-ai`)
1081
1282
 
1082
- Source: [`packages/llm/llm-pi-ai/src/config.ts:172`](../packages/llm/llm-pi-ai/src/config.ts)
1283
+ Source: [`packages/llm/llm-pi-ai/src/config.ts:216`](../packages/llm/llm-pi-ai/src/config.ts)
1083
1284
 
1084
1285
  <a id="deepseek-aidsh-llm-replay"></a>
1085
1286
 
@@ -1135,6 +1336,15 @@ export interface ReplayModelConfig {
1135
1336
  * omit one, so replay reconstructs the request header a live catalog produced.
1136
1337
  */
1137
1338
  defaultMaxTokens?: number
1339
+ /**
1340
+ * Optional flat visual-token price the replay route declares for every
1341
+ * retained request image, so keyless scenarios exercise route-priced
1342
+ * request pressure; each occurrence is priced at this value plus its
1343
+ * request-preview handle text. Requires {@link inputModalities} to include
1344
+ * `image` — a text-only route never sends visual tokens. Absent declares
1345
+ * no image pricing.
1346
+ */
1347
+ imageRequestTokens?: number
1138
1348
  /** Optional reasoning-effort ids the replay route accepts, in display order. */
1139
1349
  reasoningEfforts?: string[]
1140
1350
  /**
@@ -1147,20 +1357,20 @@ export interface ReplayModelConfig {
1147
1357
 
1148
1358
  Depends on: [`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
1149
1359
 
1150
- Source: [`packages/test-support/llm-replay/src/index.ts:776`](../packages/test-support/llm-replay/src/index.ts)
1360
+ Source: [`packages/test-support/llm-replay/src/index.ts:924`](../packages/test-support/llm-replay/src/index.ts)
1151
1361
 
1152
1362
  <a id="deepseek-aidsh-llm-retry"></a>
1153
1363
 
1154
1364
  ## `@deepseek-ai/dsh-llm-retry`
1155
1365
 
1156
- Requires: `agents`
1366
+ Requires: `agents` · `sessionProjections`
1157
1367
 
1158
1368
  ```ts config-catalog
1159
1369
  /** This policy executor has no config; providers own `retryPolicy`. */
1160
1370
  export type Config = Readonly<Record<string, never>>
1161
1371
  ```
1162
1372
 
1163
- Source: [`packages/llm/llm-retry/src/index.ts:24`](../packages/llm/llm-retry/src/index.ts)
1373
+ Source: [`packages/llm/llm-retry/src/index.ts:25`](../packages/llm/llm-retry/src/index.ts)
1164
1374
 
1165
1375
  <a id="deepseek-aidsh-lsp-stdio"></a>
1166
1376
 
@@ -1291,13 +1501,13 @@ export interface Config {
1291
1501
  }
1292
1502
  ```
1293
1503
 
1294
- Source: [`packages/feedback/message-feedback/src/index.ts:49`](../packages/feedback/message-feedback/src/index.ts)
1504
+ Source: [`packages/feedback/message-feedback/src/index.ts:50`](../packages/feedback/message-feedback/src/index.ts)
1295
1505
 
1296
1506
  <a id="deepseek-aidsh-permission-presets"></a>
1297
1507
 
1298
1508
  ## `@deepseek-ai/dsh-permission-presets`
1299
1509
 
1300
- Requires: `shell` · `approval` · `sessions`
1510
+ Requires: `shell` · `approval` · `sessions` · `sessionProjections`
1301
1511
 
1302
1512
  ```ts config-catalog
1303
1513
  /** The {@link PermissionPresetService} config: preset table and composition default. */
@@ -1330,7 +1540,7 @@ export interface PresetSpec {
1330
1540
 
1331
1541
  Depends on: [`ApprovalPolicy`](subsystems/approval.md) · [`SandboxMode`](subsystems/sandbox.md)
1332
1542
 
1333
- Source: [`packages/interaction/permission-presets/src/index.ts:140`](../packages/interaction/permission-presets/src/index.ts)
1543
+ Source: [`packages/interaction/permission-presets/src/index.ts:143`](../packages/interaction/permission-presets/src/index.ts)
1334
1544
 
1335
1545
  <a id="deepseek-aidsh-persona"></a>
1336
1546
 
@@ -1354,13 +1564,13 @@ export interface Config {
1354
1564
  }
1355
1565
  ```
1356
1566
 
1357
- Source: [`packages/preset/persona/src/index.ts:34`](../packages/preset/persona/src/index.ts)
1567
+ Source: [`packages/preset/persona/src/index.ts:30`](../packages/preset/persona/src/index.ts)
1358
1568
 
1359
1569
  <a id="deepseek-aidsh-plan-mode"></a>
1360
1570
 
1361
1571
  ## `@deepseek-ai/dsh-plan-mode`
1362
1572
 
1363
- Requires: `tools` · `systemPrompt`
1573
+ Requires: `tools` · `systemPrompt` · `sessionProjections`
1364
1574
 
1365
1575
  ```ts config-catalog
1366
1576
  /** Deployment-owned plan guidance. */
@@ -1370,7 +1580,23 @@ export interface PlanModeConfig {
1370
1580
  }
1371
1581
  ```
1372
1582
 
1373
- Source: [`packages/plan/plan-mode/src/index.ts:70`](../packages/plan/plan-mode/src/index.ts)
1583
+ Source: [`packages/plan/plan-mode/src/index.ts:63`](../packages/plan/plan-mode/src/index.ts)
1584
+
1585
+ <a id="deepseek-aidsh-plugin-package-inventory-deepseek"></a>
1586
+
1587
+ ## `@deepseek-ai/dsh-plugin-package-inventory-deepseek`
1588
+
1589
+ Requires: `agents` · `deepseekLlmApiExtensions` · `loader`
1590
+
1591
+ ```ts config-catalog
1592
+ /** Plugin-package request contribution configuration. */
1593
+ export interface Config {
1594
+ /** Contribute `dsh_plugin_packages` to official DeepSeek requests. Defaults to `true`. */
1595
+ enabled?: boolean
1596
+ }
1597
+ ```
1598
+
1599
+ Source: [`packages/llm/plugin-package-inventory-deepseek/src/index.ts:31`](../packages/llm/plugin-package-inventory-deepseek/src/index.ts)
1374
1600
 
1375
1601
  <a id="deepseek-aidsh-pwsh-local"></a>
1376
1602
 
@@ -1497,6 +1723,8 @@ Source: [`packages/sandbox/sandbox-local/src/index.ts:44`](../packages/sandbox/s
1497
1723
 
1498
1724
  ## `@deepseek-ai/dsh-sandbox-policy`
1499
1725
 
1726
+ Requires: `sessionProjections`
1727
+
1500
1728
  ```ts config-catalog
1501
1729
  /**
1502
1730
  * Plugin config: the deployment's sandbox default. All optional — `Config`
@@ -1518,7 +1746,23 @@ export interface Config {
1518
1746
 
1519
1747
  Depends on: [`SandboxMode`](subsystems/sandbox.md)
1520
1748
 
1521
- Source: [`packages/sandbox/sandbox-policy/src/index.ts:67`](../packages/sandbox/sandbox-policy/src/index.ts)
1749
+ Source: [`packages/sandbox/sandbox-policy/src/index.ts:70`](../packages/sandbox/sandbox-policy/src/index.ts)
1750
+
1751
+ <a id="deepseek-aidsh-sdk-app"></a>
1752
+
1753
+ ## `@deepseek-ai/dsh-sdk-app`
1754
+
1755
+ Requires: `cmdlineArgs`
1756
+
1757
+ ```ts config-catalog
1758
+ /** SDK stdio startup configuration. */
1759
+ export interface Config {
1760
+ /** Profile name rendered in help and diagnostics (default `sdk`). */
1761
+ profile?: string
1762
+ }
1763
+ ```
1764
+
1765
+ Source: [`packages/bundle/sdk-app/src/index.ts:23`](../packages/bundle/sdk-app/src/index.ts)
1522
1766
 
1523
1767
  <a id="deepseek-aidsh-sdk-jsonrpc-server"></a>
1524
1768
 
@@ -1544,12 +1788,45 @@ Depends on: `Readable` (`node:stream`) · `Writable` (`node:stream`)
1544
1788
 
1545
1789
  Source: [`packages/sdk/server/src/index.ts:25`](../packages/sdk/server/src/index.ts)
1546
1790
 
1791
+ <a id="deepseek-aidsh-session-log-deepseek"></a>
1792
+
1793
+ ## `@deepseek-ai/dsh-session-log-deepseek`
1794
+
1795
+ Requires: `deepseekLlmApiExtensions` · `sessions`
1796
+
1797
+ ```ts config-catalog
1798
+ /** Session-log request contribution configuration. */
1799
+ export interface Config {
1800
+ /** Contribute `dsh_session_log` to official DeepSeek requests. Defaults to `false`. */
1801
+ enabled?: boolean
1802
+ }
1803
+ ```
1804
+
1805
+ Source: [`packages/session/session-log-deepseek/src/index.ts:36`](../packages/session/session-log-deepseek/src/index.ts)
1806
+
1807
+ <a id="deepseek-aidsh-session-log-export"></a>
1808
+
1809
+ ## `@deepseek-ai/dsh-session-log-export`
1810
+
1811
+ Requires: `commands` · `connection`
1812
+
1813
+ ```ts config-catalog
1814
+ /** Session-log archive policy. */
1815
+ export interface Config {
1816
+ /** DEFLATE level for each ZIP entry. @default 6 */
1817
+ readonly compressionLevel?: SessionLogCompressionLevel
1818
+ }
1819
+
1820
+ /** Valid fflate DEFLATE levels accepted by session-log export. */
1821
+ export type SessionLogCompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1822
+ ```
1823
+
1824
+ Source: [`packages/session-query/session-log-export/src/index.ts:45`](../packages/session-query/session-log-export/src/index.ts)
1825
+
1547
1826
  <a id="deepseek-aidsh-session-persistence-jsonl"></a>
1548
1827
 
1549
1828
  ## `@deepseek-ai/dsh-session-persistence-jsonl`
1550
1829
 
1551
- Requires: `sessions`
1552
-
1553
1830
  ```ts config-catalog
1554
1831
  /** Plugin config: where the JSONL backend keeps its session logs, and the packed-row write switch. */
1555
1832
  export interface Config {
@@ -1571,75 +1848,27 @@ export interface Config {
1571
1848
  packChunks?: boolean
1572
1849
  /** Physical encoding; defaults to checksummed Zstandard frames. */
1573
1850
  compression?: JsonlCompression
1574
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1575
- preparedSessionCacheSize?: number
1576
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1577
- writeBatchMaxDelayMs?: number
1578
1851
  }
1579
1852
 
1580
1853
  /** Physical encoding selected for JSONL session artifacts. */
1581
1854
  export type JsonlCompression = 'zstd' | 'none'
1582
1855
  ```
1583
1856
 
1584
- Source: [`packages/session/session-persistence-jsonl/src/index.ts:60`](../packages/session/session-persistence-jsonl/src/index.ts)
1585
-
1586
- <a id="deepseek-aidsh-session-persistence-sqlite"></a>
1587
-
1588
- ## `@deepseek-ai/dsh-session-persistence-sqlite`
1589
-
1590
- Requires: `sessions`
1591
-
1592
- ```ts config-catalog
1593
- /** Plugin configuration. */
1594
- export interface Config {
1595
- /**
1596
- * Filesystem path to the SQLite database file. The special value `:memory:`
1597
- * opens an in-process database (tests). On filesystems with POSIX modes,
1598
- * missing directories and databases are created owner-only; existing path
1599
- * modes are preserved. Filesystem setup errors other than an existing database
1600
- * fail initialization. The backend does not protect confidentiality or
1601
- * integrity when another principal can replace the database entry in its
1602
- * parent directory.
1603
- */
1604
- path: string
1605
- /**
1606
- * SQLite `journal_mode` pragma. `wal` (the default) is the recorded
1607
- * durability model; pick a rollback-journal mode (`delete`/`truncate`/
1608
- * `persist`) on filesystems where WAL's shared-memory files do not work
1609
- * (network mounts). See {@link JournalMode}.
1610
- */
1611
- journalMode?: JournalMode
1612
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1613
- preparedSessionCacheSize?: number
1614
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1615
- writeBatchMaxDelayMs?: number
1616
- }
1617
-
1618
- /**
1619
- * Journal modes the backend will run under. `wal` is the default and the
1620
- * durability model the persistence ADR records; the rollback-journal modes
1621
- * (`delete`/`truncate`/`persist`) exist for filesystems where WAL's
1622
- * shared-memory files do not work (network mounts). `memory`/`off` are
1623
- * excluded: dropping journal durability silently contradicts what this
1624
- * backend promises.
1625
- */
1626
- export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1627
- ```
1628
-
1629
- Source: [`packages/session/session-persistence-sqlite/src/index.ts:70`](../packages/session/session-persistence-sqlite/src/index.ts)
1857
+ Source: [`packages/session/session-persistence-jsonl/src/index.ts:73`](../packages/session/session-persistence-jsonl/src/index.ts)
1630
1858
 
1631
1859
  <a id="deepseek-aidsh-session-projection-cache"></a>
1632
1860
 
1633
1861
  ## `@deepseek-ai/dsh-session-projection-cache`
1634
1862
 
1635
- Requires: `storageDomain` · `sessionProjections` · `sessionPersistence` · `sessions`
1863
+ Requires: `storageDomain` · `sessionProjections` · `sessions`
1636
1864
 
1637
1865
  ```ts config-catalog
1638
1866
  /**
1639
1867
  * Plugin config. Both throttle triggers are deployment choices with no
1640
1868
  * universally correct value, so the composition states them explicitly
1641
- * (cordis.yml); the two mandatory write points (`turn/end` and session
1642
- * disposal) are policy, not tunables, and always fire.
1869
+ * (cordis.yml); the three mandatory write points (session creation,
1870
+ * `turn/end`, and session disposal) are policy, not tunables, and always
1871
+ * fire.
1643
1872
  */
1644
1873
  export interface Config {
1645
1874
  /** Committed events per session that force a durable checkpoint write between mandatory points. */
@@ -1649,7 +1878,7 @@ export interface Config {
1649
1878
  }
1650
1879
  ```
1651
1880
 
1652
- Source: [`packages/session/session-projection-cache/src/index.ts:42`](../packages/session/session-projection-cache/src/index.ts)
1881
+ Source: [`packages/session/session-projection-cache/src/index.ts:55`](../packages/session/session-projection-cache/src/index.ts)
1653
1882
 
1654
1883
  <a id="deepseek-aidsh-session-query-sqlite"></a>
1655
1884
 
@@ -1682,8 +1911,10 @@ export interface Config extends SessionQueryConfig {
1682
1911
  maxLimit?: number
1683
1912
  /** Maximum snippet length in Unicode code points. Defaults to 240. */
1684
1913
  snippetChars?: number
1685
- /** Maximum concurrent persisted-log inspections in one inherited batch read. Defaults to 4. */
1686
- persistedInspectConcurrency?: number
1914
+ /** Maximum concurrent persisted-log reads in one inherited batch read. Defaults to 4. */
1915
+ persistedReadConcurrency?: number
1916
+ /** Maximum cold prepared-Session observations the inherited reader retains for reuse. Defaults to 5. */
1917
+ preparedSessionCacheSize?: number
1687
1918
  }
1688
1919
 
1689
1920
  /** SQLite module/handle opening phase; `never` disables full-text search entirely. */
@@ -1695,7 +1926,7 @@ export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1695
1926
 
1696
1927
  Depends on: [`SessionQueryConfig`](../packages/session-query/session-query/src/index.ts)
1697
1928
 
1698
- Source: [`packages/session-query/session-query-sqlite/src/index.ts:89`](../packages/session-query/session-query-sqlite/src/index.ts)
1929
+ Source: [`packages/session-query/session-query-sqlite/src/index.ts:92`](../packages/session-query/session-query-sqlite/src/index.ts)
1699
1930
 
1700
1931
  <a id="deepseek-aidsh-session-reference"></a>
1701
1932
 
@@ -1767,7 +1998,7 @@ Source: [`packages/session/session-telemetry-otel/src/index.ts:91`](../packages/
1767
1998
 
1768
1999
  ## `@deepseek-ai/dsh-session-title`
1769
2000
 
1770
- Requires: `sessions`
2001
+ Requires: `sessions` · `sessionProjections`
1771
2002
 
1772
2003
  ```ts config-catalog
1773
2004
  /** Required deterministic fallback and accepted-title limits. */
@@ -1781,7 +2012,7 @@ export interface Config {
1781
2012
  }
1782
2013
  ```
1783
2014
 
1784
- Source: [`packages/session/session-title/src/index.ts:79`](../packages/session/session-title/src/index.ts)
2015
+ Source: [`packages/session/session-title/src/index.ts:56`](../packages/session/session-title/src/index.ts)
1785
2016
 
1786
2017
  <a id="deepseek-aidsh-session-title-all-prompts-llm"></a>
1787
2018
 
@@ -1831,7 +2062,7 @@ export interface Config {
1831
2062
  }
1832
2063
  ```
1833
2064
 
1834
- Source: [`packages/settings/settings-file/src/index.ts:21`](../packages/settings/settings-file/src/index.ts)
2065
+ Source: [`packages/settings/settings-file/src/index.ts:22`](../packages/settings/settings-file/src/index.ts)
1835
2066
 
1836
2067
  <a id="deepseek-aidsh-shell-env"></a>
1837
2068
 
@@ -1845,7 +2076,7 @@ export interface Config {
1845
2076
  }
1846
2077
  ```
1847
2078
 
1848
- Source: [`packages/shell/shell-env/src/index.ts:29`](../packages/shell/shell-env/src/index.ts)
2079
+ Source: [`packages/shell/shell-env/src/index.ts:28`](../packages/shell/shell-env/src/index.ts)
1849
2080
 
1850
2081
  <a id="deepseek-aidsh-skill"></a>
1851
2082
 
@@ -1859,7 +2090,7 @@ export interface Config {
1859
2090
  }
1860
2091
  ```
1861
2092
 
1862
- Source: [`packages/skill/skill/src/index.ts:279`](../packages/skill/skill/src/index.ts)
2093
+ Source: [`packages/skill/skill/src/index.ts:280`](../packages/skill/skill/src/index.ts)
1863
2094
 
1864
2095
  <a id="deepseek-aidsh-skill-filesystem"></a>
1865
2096
 
@@ -1870,7 +2101,7 @@ Requires: `skills`
1870
2101
  ```ts config-catalog
1871
2102
  /** Local filesystem skill provider configuration. */
1872
2103
  export interface Config {
1873
- /** Unique provider name. Defaults to `local`. */
2104
+ /** Unique provider name. Defaults to `filesystem`. */
1874
2105
  providerName?: string
1875
2106
  /** Whether project and user roots are included around custom roots. */
1876
2107
  includeDefaultRoots?: boolean
@@ -1912,10 +2143,21 @@ export interface Config {
1912
2143
  * a local deployment. Set it to keep spill files under a known location.
1913
2144
  */
1914
2145
  root?: string
2146
+ /**
2147
+ * Age in days after which a spill file is eligible for the one-shot startup
2148
+ * cleanup sweep. Defaults to `30`; `0` disables cleanup entirely. Files whose
2149
+ * `mtime` is strictly older than the cutoff are deleted and emptied
2150
+ * directories are pruned; fresh files, symlinks, and unrelated entries are
2151
+ * left untouched. On POSIX, cleanup skips roots and session directories that
2152
+ * another local user could modify or replace. Retention is deliberate — a
2153
+ * resumed or forked session may still reference an older locator until it
2154
+ * ages out.
2155
+ */
2156
+ cleanupPeriodDays?: number
1915
2157
  }
1916
2158
  ```
1917
2159
 
1918
- Source: [`packages/spill/spill-local/src/index.ts:22`](../packages/spill/spill-local/src/index.ts)
2160
+ Source: [`packages/spill/spill-local/src/index.ts:31`](../packages/spill/spill-local/src/index.ts)
1919
2161
 
1920
2162
  <a id="deepseek-aidsh-spill-policy"></a>
1921
2163
 
@@ -1974,12 +2216,12 @@ Requires: `storage`
1974
2216
  * location explicitly.
1975
2217
  */
1976
2218
  export interface Config {
1977
- /** Directory holding one `<unit>.json` file per unit. */
2219
+ /** Directory holding one `<unit>.json` file (or `<unit>/` tree) per unit. */
1978
2220
  root: string
1979
2221
  }
1980
2222
  ```
1981
2223
 
1982
- Source: [`packages/storage/storage-json/src/index.ts:27`](../packages/storage/storage-json/src/index.ts)
2224
+ Source: [`packages/storage/storage-json/src/index.ts:28`](../packages/storage/storage-json/src/index.ts)
1983
2225
 
1984
2226
  <a id="deepseek-aidsh-storage-sqlite"></a>
1985
2227
 
@@ -2064,7 +2306,7 @@ export interface Config {
2064
2306
  * `MAX_TIMER_DELAY_MS`.
2065
2307
  */
2066
2308
  disposeEofGraceMs?: number
2067
- /** Termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2309
+ /** Failure-observation and termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2068
2310
  disposeGraceMs?: number
2069
2311
  }
2070
2312
 
@@ -2081,19 +2323,33 @@ Source: [`packages/subagent/subagent-acp/src/index.ts:27`](../packages/subagent/
2081
2323
  Requires: `subagents` · `subprocess`
2082
2324
 
2083
2325
  ```ts config-catalog
2084
- /** Deployment-owned environment and process-release bound. */
2326
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2085
2327
  export interface Config {
2328
+ /** Provider name on `ctx.subagents` (default `claude-code`). */
2329
+ providerName?: string
2330
+ /** Native Claude model fixed for this instance; omitted to inherit Claude settings. */
2331
+ model?: string
2086
2332
  /**
2087
2333
  * Explicit environment entries layered over the subprocess seam's
2088
2334
  * credential-scrubbed parent environment.
2089
2335
  */
2090
2336
  env?: Record<string, string>
2337
+ /**
2338
+ * Native non-interactive mode fixed for this Provider instance. Defaults to
2339
+ * `dontAsk`; `acceptEdits` accepts edits, `auto` uses the native classifier,
2340
+ * `plan` returns a plan without approving execution, and
2341
+ * `bypassPermissions` explicitly skips permission checks.
2342
+ */
2343
+ permissionMode?: ClaudeCodePermissionMode
2091
2344
  /** Grace in milliseconds for Claude Code process-tree termination. */
2092
2345
  disposeGraceMs?: number
2093
2346
  }
2347
+
2348
+ /** Profile-selectable non-interactive Claude Code permission mode. */
2349
+ export type ClaudeCodePermissionMode = typeof CLAUDE_CODE_PERMISSION_MODES[number]
2094
2350
  ```
2095
2351
 
2096
- Source: [`packages/subagent/subagent-claude-code/src/index.ts:32`](../packages/subagent/subagent-claude-code/src/index.ts)
2352
+ Source: [`packages/subagent/subagent-claude-code/src/index.ts:38`](../packages/subagent/subagent-claude-code/src/index.ts)
2097
2353
 
2098
2354
  <a id="deepseek-aidsh-subagent-codex"></a>
2099
2355
 
@@ -2102,19 +2358,31 @@ Source: [`packages/subagent/subagent-claude-code/src/index.ts:32`](../packages/s
2102
2358
  Requires: `subagents` · `subprocess`
2103
2359
 
2104
2360
  ```ts config-catalog
2105
- /** Deployment-owned environment and process-release bound. */
2361
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2106
2362
  export interface Config {
2363
+ /** Provider name on `ctx.subagents` (default `codex`). */
2364
+ providerName?: string
2365
+ /** Native Codex model fixed for this instance; omitted to inherit Codex settings. */
2366
+ model?: string
2107
2367
  /**
2108
2368
  * Explicit environment entries layered over the subprocess seam's
2109
2369
  * credential-scrubbed parent environment.
2110
2370
  */
2111
2371
  env?: Record<string, string>
2372
+ /** Native non-interactive permission mode fixed for this Provider instance. */
2373
+ permissionMode?: CodexPermissionMode
2112
2374
  /** Grace in milliseconds for app-server process-tree termination. */
2113
2375
  disposeGraceMs?: number
2114
2376
  }
2377
+
2378
+ /** Profile-selectable non-interactive Codex permission mode. */
2379
+ export type CodexPermissionMode =
2380
+ | 'never'
2381
+ | 'approve-for-me'
2382
+ | 'dangerously-bypass-approvals-and-sandbox'
2115
2383
  ```
2116
2384
 
2117
- Source: [`packages/subagent/subagent-codex/src/index.ts:30`](../packages/subagent/subagent-codex/src/index.ts)
2385
+ Source: [`packages/subagent/subagent-codex/src/index.ts:36`](../packages/subagent/subagent-codex/src/index.ts)
2118
2386
 
2119
2387
  <a id="deepseek-aidsh-subagent-dsh-sdk"></a>
2120
2388
 
@@ -2127,10 +2395,14 @@ Requires: `subagents`
2127
2395
  export interface Config {
2128
2396
  /** Provider name on `ctx.subagents` (default `dsh-sdk`). */
2129
2397
  providerName: string
2130
- /** The executable to spawn for each run (the child runtime bin or packaged exe). */
2131
- command: string
2132
- /** Arguments passed to {@link command} (typically the child's `cordis.yml` path). */
2133
- args: string[]
2398
+ /** Explicit dsh CLI module, resolved and checked at plugin load; omission uses the SDK dependency. */
2399
+ dshBin?: string
2400
+ /** Named child profile (default `sdk`). */
2401
+ profile: string
2402
+ /** Ordered per-launch profile patch files, resolved and checked at plugin load. */
2403
+ patches: string[]
2404
+ /** Absolute isolated Harness home for every nested child process. */
2405
+ dshHome: string
2134
2406
  /**
2135
2407
  * Working directory override for the child process and its SDK session
2136
2408
  * workspace. Must be non-empty; a relative path resolves against the
@@ -2148,8 +2420,7 @@ export interface Config {
2148
2420
  maxTokens?: number
2149
2421
  /**
2150
2422
  * Extra environment variables for the child process — e.g. the child
2151
- * runtime's own `DEEPSEEK_API_KEY`, or `DSH_CORDIS_CONFIG` naming its
2152
- * config. Forwarded on top of a credential-scrubbed copy of the parent
2423
+ * runtime's own `DEEPSEEK_API_KEY`. Forwarded on top of a credential-scrubbed copy of the parent
2153
2424
  * env, so an explicit key here reaches the child while ambient secrets do
2154
2425
  * not leak implicitly.
2155
2426
  */
@@ -2167,7 +2438,7 @@ export interface Config {
2167
2438
  }
2168
2439
  ```
2169
2440
 
2170
- Source: [`packages/subagent/subagent-dsh-sdk/src/index.ts:29`](../packages/subagent/subagent-dsh-sdk/src/index.ts)
2441
+ Source: [`packages/subagent/subagent-dsh-sdk/src/index.ts:34`](../packages/subagent/subagent-dsh-sdk/src/index.ts)
2171
2442
 
2172
2443
  <a id="deepseek-aidsh-subagent-fork-in-process"></a>
2173
2444
 
@@ -2242,22 +2513,24 @@ export interface Config {
2242
2513
  }
2243
2514
  ```
2244
2515
 
2245
- Source: [`packages/core/system-prompt/src/index.ts:186`](../packages/core/system-prompt/src/index.ts)
2516
+ Source: [`packages/core/system-prompt/src/index.ts:237`](../packages/core/system-prompt/src/index.ts)
2246
2517
 
2247
2518
  <a id="deepseek-aidsh-terminal-bash"></a>
2248
2519
 
2249
2520
  ## `@deepseek-ai/dsh-terminal-bash`
2250
2521
 
2251
- Requires: `terminals` · `sandboxPolicy` · `subprocess`
2522
+ Requires: `terminals` · `sandboxPolicy` · `sessionProjections` · `subprocess`
2252
2523
 
2253
2524
  ```ts config-catalog
2254
2525
  /** Public plugin configuration. */
2255
2526
  export interface Config {
2256
2527
  /** Backend registry type (default: `shell`). */
2257
2528
  backendType?: string
2258
- /** Interactive shell executable (default: `/bin/bash`). */
2529
+ /** Interactive shell dialect (default: `bash`); selects the argv/env/startup defaults. */
2530
+ shellDialect?: ShellDialect
2531
+ /** Interactive shell executable (default per dialect: `/bin/bash`, or the resolved pwsh). */
2259
2532
  shellPath?: string
2260
- /** Shell arguments (default: `--noprofile --norc -i`). */
2533
+ /** Shell arguments (default per dialect: bash `--noprofile --norc -i`, pwsh `-NoLogo -NoProfile`). */
2261
2534
  shellArgs?: string[]
2262
2535
  /** Terminal rows. */
2263
2536
  rows?: number
@@ -2280,20 +2553,23 @@ export interface Config {
2280
2553
  * regain the foreground before `inferred_idle` settles; at least one `pollIntervalMs`.
2281
2554
  */
2282
2555
  handoffGraceMs?: number
2283
- /** Absolute send wait bound. */
2556
+ /** Absolute bound for one send and the complete pwsh startup sequence. */
2284
2557
  timeoutMs?: number
2285
2558
  /** Grace before teardown escalates to `SIGKILL`. */
2286
2559
  disposeGraceMs?: number
2287
2560
  }
2561
+
2562
+ /** One supported interactive shell dialect. */
2563
+ export type ShellDialect = 'bash' | 'pwsh'
2288
2564
  ```
2289
2565
 
2290
- Source: [`packages/terminal/terminal-bash/src/config.ts:6`](../packages/terminal/terminal-bash/src/config.ts)
2566
+ Source: [`packages/terminal/terminal-bash/src/config.ts:10`](../packages/terminal/terminal-bash/src/config.ts)
2291
2567
 
2292
2568
  <a id="deepseek-aidsh-time-context"></a>
2293
2569
 
2294
2570
  ## `@deepseek-ai/dsh-time-context`
2295
2571
 
2296
- Requires: `agents`
2572
+ Requires: `agents` · `sessionProjections`
2297
2573
 
2298
2574
  ```ts config-catalog
2299
2575
  /** Request-preparation clock formatting and append scheduling. Invalid values fail plugin load. */
@@ -2305,13 +2581,13 @@ export interface Config {
2305
2581
  }
2306
2582
  ```
2307
2583
 
2308
- Source: [`packages/context/time-context/src/index.ts:27`](../packages/context/time-context/src/index.ts)
2584
+ Source: [`packages/context/time-context/src/index.ts:49`](../packages/context/time-context/src/index.ts)
2309
2585
 
2310
2586
  <a id="deepseek-aidsh-tmux-context"></a>
2311
2587
 
2312
2588
  ## `@deepseek-ai/dsh-tmux-context`
2313
2589
 
2314
- Requires: `agents`
2590
+ Requires: `agents` · `sessionProjections`
2315
2591
 
2316
2592
  ```ts config-catalog
2317
2593
  /** Per-turn tmux-location scheduling. Invalid values fail plugin load. */
@@ -2321,18 +2597,20 @@ export interface Config {
2321
2597
  }
2322
2598
  ```
2323
2599
 
2324
- Source: [`packages/context/tmux-context/src/index.ts:34`](../packages/context/tmux-context/src/index.ts)
2600
+ Source: [`packages/context/tmux-context/src/index.ts:36`](../packages/context/tmux-context/src/index.ts)
2325
2601
 
2326
2602
  <a id="deepseek-aidsh-token-meter"></a>
2327
2603
 
2328
2604
  ## `@deepseek-ai/dsh-token-meter`
2329
2605
 
2606
+ Requires: `sessionProjections`
2607
+
2330
2608
  ```ts config-catalog
2331
2609
  /** Token-meter plugin configuration; the fixed estimator has no settings. */
2332
2610
  export type TokenMeterConfig = Record<string, never>
2333
2611
  ```
2334
2612
 
2335
- Source: [`packages/llm/token-meter/src/types.ts:12`](../packages/llm/token-meter/src/types.ts)
2613
+ Source: [`packages/llm/token-meter/src/types.ts:13`](../packages/llm/token-meter/src/types.ts)
2336
2614
 
2337
2615
  <a id="deepseek-aidsh-tool-bash"></a>
2338
2616
 
@@ -2348,7 +2626,7 @@ export interface Config {
2348
2626
  }
2349
2627
  ```
2350
2628
 
2351
- Source: [`packages/shell/tool-bash/src/index.ts:34`](../packages/shell/tool-bash/src/index.ts)
2629
+ Source: [`packages/shell/tool-bash/src/index.ts:33`](../packages/shell/tool-bash/src/index.ts)
2352
2630
 
2353
2631
  <a id="deepseek-aidsh-tool-bash-persistent"></a>
2354
2632
 
@@ -2370,7 +2648,7 @@ export interface Config {
2370
2648
  }
2371
2649
  ```
2372
2650
 
2373
- Source: [`packages/shell/tool-bash-persistent/src/index.ts:405`](../packages/shell/tool-bash-persistent/src/index.ts)
2651
+ Source: [`packages/shell/tool-bash-persistent/src/index.ts:432`](../packages/shell/tool-bash-persistent/src/index.ts)
2374
2652
 
2375
2653
  <a id="deepseek-aidsh-tool-fs"></a>
2376
2654
 
@@ -2433,7 +2711,7 @@ Source: [`packages/fs/tool-fs-search/src/index.ts:73`](../packages/fs/tool-fs-se
2433
2711
 
2434
2712
  ## `@deepseek-ai/dsh-tool-goal`
2435
2713
 
2436
- Requires: `agents` · `goals` · `tools` · `systemPrompt`
2714
+ Requires: `agents` · `goals` · `tools` · `systemPrompt` · `sessionProjections`
2437
2715
 
2438
2716
  ```ts config-catalog
2439
2717
  /** Model policy and hard lower bounds for goal-state updates. */
@@ -2443,7 +2721,7 @@ export interface Config {
2443
2721
  }
2444
2722
  ```
2445
2723
 
2446
- Source: [`packages/goal/tool-goal/src/index.ts:26`](../packages/goal/tool-goal/src/index.ts)
2724
+ Source: [`packages/goal/tool-goal/src/index.ts:25`](../packages/goal/tool-goal/src/index.ts)
2447
2725
 
2448
2726
  <a id="deepseek-aidsh-tool-jobs"></a>
2449
2727
 
@@ -2477,7 +2755,7 @@ export interface Config {
2477
2755
  export type CompletionDelivery = 'quiet' | 'wakeup'
2478
2756
  ```
2479
2757
 
2480
- Source: [`packages/jobs/tool-jobs/src/index.ts:32`](../packages/jobs/tool-jobs/src/index.ts)
2758
+ Source: [`packages/jobs/tool-jobs/src/index.ts:31`](../packages/jobs/tool-jobs/src/index.ts)
2481
2759
 
2482
2760
  <a id="deepseek-aidsh-tool-lsp"></a>
2483
2761
 
@@ -2497,7 +2775,7 @@ export interface Config {
2497
2775
  }
2498
2776
  ```
2499
2777
 
2500
- Source: [`packages/lsp/tool-lsp/src/index.ts:58`](../packages/lsp/tool-lsp/src/index.ts)
2778
+ Source: [`packages/lsp/tool-lsp/src/index.ts:57`](../packages/lsp/tool-lsp/src/index.ts)
2501
2779
 
2502
2780
  <a id="deepseek-aidsh-tool-pwsh"></a>
2503
2781
 
@@ -2513,7 +2791,29 @@ export interface Config {
2513
2791
  }
2514
2792
  ```
2515
2793
 
2516
- Source: [`packages/shell/tool-pwsh/src/index.ts:52`](../packages/shell/tool-pwsh/src/index.ts)
2794
+ Source: [`packages/shell/tool-pwsh/src/index.ts:51`](../packages/shell/tool-pwsh/src/index.ts)
2795
+
2796
+ <a id="deepseek-aidsh-tool-pwsh-persistent"></a>
2797
+
2798
+ ## `@deepseek-ai/dsh-tool-pwsh-persistent`
2799
+
2800
+ Requires: `tools` · `terminals`
2801
+
2802
+ ```ts config-catalog
2803
+ /** Configuration for the persistent pwsh tool. */
2804
+ export interface Config {
2805
+ /** PTY backend used for each owner-isolated persistent shell (default `shell`). */
2806
+ backendType?: string
2807
+ /** Wall-clock limit for one command (default 300000). */
2808
+ timeoutMs?: number
2809
+ /** Maximum returned command-output characters before clipping (default 16000). */
2810
+ maxOutputChars?: number
2811
+ /** Model-facing tool description; deployments may describe their environment. */
2812
+ description?: string
2813
+ }
2814
+ ```
2815
+
2816
+ Source: [`packages/shell/tool-pwsh-persistent/src/index.ts:472`](../packages/shell/tool-pwsh-persistent/src/index.ts)
2517
2817
 
2518
2818
  <a id="deepseek-aidsh-tool-ralph"></a>
2519
2819
 
@@ -2535,13 +2835,13 @@ export interface Config {
2535
2835
  }
2536
2836
  ```
2537
2837
 
2538
- Source: [`packages/workflow/tool-ralph/src/index.ts:23`](../packages/workflow/tool-ralph/src/index.ts)
2838
+ Source: [`packages/workflow/tool-ralph/src/index.ts:21`](../packages/workflow/tool-ralph/src/index.ts)
2539
2839
 
2540
2840
  <a id="deepseek-aidsh-tool-session-query"></a>
2541
2841
 
2542
2842
  ## `@deepseek-ai/dsh-tool-session-query`
2543
2843
 
2544
- Requires: `tools` · `systemPrompt` · `sessionQuery`
2844
+ Requires: `tools` · `systemPrompt` · `sessionQuery` · `sessionProjections`
2545
2845
 
2546
2846
  ```ts config-catalog
2547
2847
  /** Deployment-owned search count and timeout bounds. */
@@ -2553,7 +2853,7 @@ export interface Config {
2553
2853
  }
2554
2854
  ```
2555
2855
 
2556
- Source: [`packages/session-query/tool-session-query/src/index.ts:29`](../packages/session-query/tool-session-query/src/index.ts)
2856
+ Source: [`packages/session-query/tool-session-query/src/index.ts:28`](../packages/session-query/tool-session-query/src/index.ts)
2557
2857
 
2558
2858
  <a id="deepseek-aidsh-tool-skill"></a>
2559
2859
 
@@ -2587,13 +2887,13 @@ export interface Config {
2587
2887
  }
2588
2888
  ```
2589
2889
 
2590
- Source: [`packages/fs/tool-str-replace-editor/src/index.ts:497`](../packages/fs/tool-str-replace-editor/src/index.ts)
2890
+ Source: [`packages/fs/tool-str-replace-editor/src/index.ts:505`](../packages/fs/tool-str-replace-editor/src/index.ts)
2591
2891
 
2592
2892
  <a id="deepseek-aidsh-tool-subagent"></a>
2593
2893
 
2594
2894
  ## `@deepseek-ai/dsh-tool-subagent`
2595
2895
 
2596
- Requires: `tools` · `subagents` · `systemPrompt`
2896
+ Requires: `tools` · `subagents` · `systemPrompt` · `sessionProjections`
2597
2897
 
2598
2898
  ```ts config-catalog
2599
2899
  /** Config: which registered provider this tool delegates to, plus child defaults. */
@@ -2605,6 +2905,11 @@ export interface Config {
2605
2905
  * a distinct name.
2606
2906
  */
2607
2907
  toolName?: string
2908
+ /**
2909
+ * Sample the Host `subagent-model-selection` user setting for each new
2910
+ * top-level session and inherit that decision in its child sessions.
2911
+ */
2912
+ modelSelectionSettings?: boolean
2608
2913
  /**
2609
2914
  * Expose `run_in_background` (default true). Disabled instances omit the
2610
2915
  * parameter and reject forced background calls.
@@ -2652,29 +2957,7 @@ export interface Config {
2652
2957
 
2653
2958
  Depends on: [`AgentOptions`](subsystems/core.md)
2654
2959
 
2655
- Source: [`packages/subagent/tool-subagent/src/index.ts:29`](../packages/subagent/tool-subagent/src/index.ts)
2656
-
2657
- <a id="deepseek-aidsh-tool-subagent-report"></a>
2658
-
2659
- ## `@deepseek-ai/dsh-tool-subagent-report`
2660
-
2661
- Requires: `subagents` · `tools` · `systemPrompt`
2662
-
2663
- ```ts config-catalog
2664
- /** Config: how accepted reports are scheduled on the parent. */
2665
- export interface Config {
2666
- /**
2667
- * Parent scheduling (default `wakeup`). `wakeup` creates one ordinary later
2668
- * parent turn; `quiet` adds context without waking, so a parked parent learns
2669
- * of the report only when something else wakes it.
2670
- */
2671
- reportDelivery?: SubagentReportDelivery
2672
- }
2673
- ```
2674
-
2675
- Depends on: [`SubagentReportDelivery`](subsystems/subagent.md)
2676
-
2677
- Source: [`packages/subagent/tool-subagent-report/src/index.ts:27`](../packages/subagent/tool-subagent-report/src/index.ts)
2960
+ Source: [`packages/subagent/tool-subagent/src/index.ts:47`](../packages/subagent/tool-subagent/src/index.ts)
2678
2961
 
2679
2962
  <a id="deepseek-aidsh-tool-terminal"></a>
2680
2963
 
@@ -2698,7 +2981,7 @@ Source: [`packages/terminal/tool-terminal/src/index.ts:35`](../packages/terminal
2698
2981
 
2699
2982
  ## `@deepseek-ai/dsh-tool-todo`
2700
2983
 
2701
- Requires: `tools`
2984
+ Requires: `tools` · `sessionProjections`
2702
2985
 
2703
2986
  ```ts config-catalog
2704
2987
  /** Model-facing todo tool configuration. */
@@ -2723,7 +3006,7 @@ Source: [`packages/todo/tool-todo/src/index.ts:29`](../packages/todo/tool-todo/s
2723
3006
  Requires: `tools` · `web` · `systemPrompt`
2724
3007
 
2725
3008
  ```ts config-catalog
2726
- /** Plugin config: which web tools to register, the source cap, per-tool budgets, and the fetch output cap. */
3009
+ /** Plugin config: which web tools to register, search bounds, per-tool budgets, and the fetch output cap. */
2727
3010
  export interface Config {
2728
3011
  /** Register `web_search`. Defaults to true. */
2729
3012
  search?: boolean
@@ -2731,6 +3014,8 @@ export interface Config {
2731
3014
  fetch?: boolean
2732
3015
  /** Upper bound on sources returned by one `web_search` call. */
2733
3016
  searchMaxResults?: number
3017
+ /** Upper bound on queries accepted by one `web_search` call. */
3018
+ searchMaxQueries?: number
2734
3019
  /** Cooperative timeout budget (ms) for `web_fetch`. Defaults to 30000. */
2735
3020
  fetchTimeoutMs?: number
2736
3021
  /** Cooperative timeout budget (ms) for `web_search`. Defaults to 30000. */
@@ -2758,7 +3043,7 @@ export interface Config {
2758
3043
  }
2759
3044
  ```
2760
3045
 
2761
- Source: [`packages/workflow/tool-workflow/src/index.ts:33`](../packages/workflow/tool-workflow/src/index.ts)
3046
+ Source: [`packages/workflow/tool-workflow/src/index.ts:32`](../packages/workflow/tool-workflow/src/index.ts)
2762
3047
 
2763
3048
  <a id="deepseek-aidsh-tools"></a>
2764
3049
 
@@ -2770,13 +3055,13 @@ Requires: `systemPrompt`
2770
3055
  /** Plugin config: how the registered tools are presented to the model. */
2771
3056
  export interface Config {
2772
3057
  /**
2773
- * Model presentation. `native` (default) sends every visible schema; `code`
3058
+ * Model presentation. `native` (default) sends every visible schema; `ptc`
2774
3059
  * sends only `run_code` plus a generated SDK prompt and collapses the
2775
3060
  * executor to the same surface (a model-direct call may only name
2776
3061
  * `run_code`; `run_code` SDK sub-dispatches keep every visible tool); `both`
2777
- * sends both forms. Code modes require a `ctx.codeRuntime` whose `language`
3062
+ * sends both forms. PTC mode requires a `ctx.codeRuntime` whose `language`
2778
3063
  * has a registered SDK renderer (TypeScript or Python) and fail prompt
2779
- * assembly when it is absent or has no renderer. Under `code`, native names
3064
+ * assembly when it is absent or has no renderer. Under `ptc`, native names
2780
3065
  * in `toolOrder` are invalid.
2781
3066
  */
2782
3067
  mode?: ToolPresentationMode
@@ -2791,10 +3076,10 @@ export interface Config {
2791
3076
  }
2792
3077
 
2793
3078
  /** How the registry presents its tools to the model (see {@link Config.mode}). */
2794
- export type ToolPresentationMode = 'native' | 'code' | 'both'
3079
+ export type ToolPresentationMode = 'native' | 'ptc' | 'both'
2795
3080
  ```
2796
3081
 
2797
- Source: [`packages/core/tools/src/index.ts:654`](../packages/core/tools/src/index.ts)
3082
+ Source: [`packages/core/tools/src/index.ts:647`](../packages/core/tools/src/index.ts)
2798
3083
 
2799
3084
  <a id="deepseek-aidsh-typert-loader"></a>
2800
3085
 
@@ -2841,7 +3126,7 @@ export interface Config {
2841
3126
  export type ApprovalPolicy = 'ask' | 'never'
2842
3127
  ```
2843
3128
 
2844
- Source: [`packages/interaction/user-approval/src/index.ts:177`](../packages/interaction/user-approval/src/index.ts)
3129
+ Source: [`packages/interaction/user-approval/src/index.ts:127`](../packages/interaction/user-approval/src/index.ts)
2845
3130
 
2846
3131
  <a id="deepseek-aidsh-web"></a>
2847
3132
 
@@ -2873,6 +3158,8 @@ Requires: `webServer`
2873
3158
  ```ts config-catalog
2874
3159
  /** Plugin config: composed deployment settings plus per-invocation command-line values. */
2875
3160
  export interface Config {
3161
+ /** Permit default-browser handoff after the Loader tree settles; an SSH launch suppresses it. */
3162
+ openBrowser: boolean
2876
3163
  /** Print the URL line on activation; a non-interactive layer can turn it off. */
2877
3164
  printUrl: boolean
2878
3165
  /**
@@ -2887,7 +3174,7 @@ export interface Config {
2887
3174
  }
2888
3175
  ```
2889
3176
 
2890
- Source: [`packages/bundle/web-app/src/index.ts:38`](../packages/bundle/web-app/src/index.ts)
3177
+ Source: [`packages/bundle/web-app/src/index.ts:44`](../packages/bundle/web-app/src/index.ts)
2891
3178
 
2892
3179
  <a id="deepseek-aidsh-web-fetch-http"></a>
2893
3180
 
@@ -2898,8 +3185,6 @@ Requires: `web`
2898
3185
  ```ts config-catalog
2899
3186
  /** Plugin config: the provider's transport and size limits plus its `User-Agent` (all defaulted). */
2900
3187
  export interface Config {
2901
- /** Maximum accepted request URL length. */
2902
- maxUrlLength?: number
2903
3188
  /** Maximum response body size in bytes. */
2904
3189
  maxResponseBytes?: number
2905
3190
  /** Maximum decoded body length in characters. */
@@ -2913,7 +3198,7 @@ export interface Config {
2913
3198
  }
2914
3199
  ```
2915
3200
 
2916
- Source: [`packages/web/web-fetch-http/src/index.ts:34`](../packages/web/web-fetch-http/src/index.ts)
3201
+ Source: [`packages/web/web-fetch-http/src/index.ts:32`](../packages/web/web-fetch-http/src/index.ts)
2917
3202
 
2918
3203
  <a id="deepseek-aidsh-web-search-deepseek"></a>
2919
3204
 
@@ -2965,7 +3250,7 @@ export interface Config {
2965
3250
  }
2966
3251
  ```
2967
3252
 
2968
- Source: [`packages/web/web-search-exa/src/index.ts:38`](../packages/web/web-search-exa/src/index.ts)
3253
+ Source: [`packages/web/web-search-exa/src/index.ts:35`](../packages/web/web-search-exa/src/index.ts)
2969
3254
 
2970
3255
  <a id="deepseek-aidsh-web-search-perplexity"></a>
2971
3256
 
@@ -2989,7 +3274,29 @@ export interface Config {
2989
3274
  }
2990
3275
  ```
2991
3276
 
2992
- Source: [`packages/web/web-search-perplexity/src/index.ts:32`](../packages/web/web-search-perplexity/src/index.ts)
3277
+ Source: [`packages/web/web-search-perplexity/src/index.ts:30`](../packages/web/web-search-perplexity/src/index.ts)
3278
+
3279
+ <a id="deepseek-aidsh-webhook-github"></a>
3280
+
3281
+ ## `@deepseek-ai/dsh-webhook-github`
3282
+
3283
+ Requires: `webServer` · `webhookRuntime` · `credentials`
3284
+
3285
+ ```ts config-catalog
3286
+ /** Required GitHub ingress configuration. */
3287
+ export interface Config {
3288
+ /** Adapter instance name carried to rules. */
3289
+ readonly source: string
3290
+ /** Exact absolute route path. */
3291
+ readonly path: string
3292
+ /** Credential reference containing the shared webhook secret. */
3293
+ readonly secretEnv: string
3294
+ /** Positive raw body ceiling in bytes. */
3295
+ readonly maxBodyBytes: number
3296
+ }
3297
+ ```
3298
+
3299
+ Source: [`packages/webhook/webhook-github/src/index.ts:17`](../packages/webhook/webhook-github/src/index.ts)
2993
3300
 
2994
3301
  <a id="deepseek-aidsh-workflow-worker-thread"></a>
2995
3302
 
@@ -3025,13 +3332,18 @@ Source: [`packages/workflow/workflow-worker-thread/src/index.ts:32`](../packages
3025
3332
 
3026
3333
  These load from a `cordis.yml` entry with no `config:` block; they declare no configuration API.
3027
3334
 
3335
+ - `@deepseek-ai/dsh-acp-app` — requires `cmdlineArgs` ([`packages/bundle/acp-app/src/index.ts`](../packages/bundle/acp-app/src/index.ts))
3028
3336
  - `@deepseek-ai/dsh-agent` ([`packages/core/agent/src/index.ts`](../packages/core/agent/src/index.ts))
3029
- - `@deepseek-ai/dsh-api-gateway` — requires `typert` ([`packages/api/gateway/src/index.ts`](../packages/api/gateway/src/index.ts))
3030
- - `@deepseek-ai/dsh-api-remotes` ([`packages/api/remotes/src/index.ts`](../packages/api/remotes/src/index.ts))
3337
+ - `@deepseek-ai/dsh-api-remotes` — requires `typertGateway` ([`packages/api/remotes/src/index.ts`](../packages/api/remotes/src/index.ts))
3338
+ - `@deepseek-ai/dsh-api-workspace-controller` — requires `typert` · `workspaceRegistry` ([`packages/api/workspace-controller/src/index.ts`](../packages/api/workspace-controller/src/index.ts))
3339
+ - `@deepseek-ai/dsh-authorization` — requires `credentials` ([`packages/credentials/authorization/src/index.ts`](../packages/credentials/authorization/src/index.ts))
3031
3340
  - `@deepseek-ai/dsh-client-locale` ([`packages/client/locale/src/index.ts`](../packages/client/locale/src/index.ts))
3032
3341
  - `@deepseek-ai/dsh-client-modules` — requires `webServer` · `loader` ([`packages/client/modules/src/index.ts`](../packages/client/modules/src/index.ts))
3033
- - `@deepseek-ai/dsh-client-runtime` ([`packages/client/runtime/src/index.ts`](../packages/client/runtime/src/index.ts))
3034
3342
  - `@deepseek-ai/dsh-client-ui-agent-preset` ([`packages/client/ui-agent-preset/src/index.ts`](../packages/client/ui-agent-preset/src/index.ts))
3343
+ - `@deepseek-ai/dsh-client-ui-approval` ([`packages/client/ui-approval/src/index.ts`](../packages/client/ui-approval/src/index.ts))
3344
+ - `@deepseek-ai/dsh-client-ui-attachment` ([`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts))
3345
+ - `@deepseek-ai/dsh-client-ui-brand-official` ([`packages/client/ui-brand-official/src/index.ts`](../packages/client/ui-brand-official/src/index.ts))
3346
+ - `@deepseek-ai/dsh-client-ui-chat` ([`packages/client/ui-chat/src/index.ts`](../packages/client/ui-chat/src/index.ts))
3035
3347
  - `@deepseek-ai/dsh-client-ui-commands` ([`packages/client/ui-commands/src/index.ts`](../packages/client/ui-commands/src/index.ts))
3036
3348
  - `@deepseek-ai/dsh-client-ui-conversation` ([`packages/client/ui-conversation/src/index.ts`](../packages/client/ui-conversation/src/index.ts))
3037
3349
  - `@deepseek-ai/dsh-client-ui-cordis` ([`packages/extensions/ui-cordis/src/index.ts`](../packages/extensions/ui-cordis/src/index.ts))
@@ -3046,6 +3358,10 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3046
3358
  - `@deepseek-ai/dsh-client-ui-model-selection` ([`packages/client/ui-model-selection/src/index.ts`](../packages/client/ui-model-selection/src/index.ts))
3047
3359
  - `@deepseek-ai/dsh-client-ui-permission-presets` ([`packages/client/ui-permission-presets/src/index.ts`](../packages/client/ui-permission-presets/src/index.ts))
3048
3360
  - `@deepseek-ai/dsh-client-ui-plan` ([`packages/client/ui-plan/src/index.ts`](../packages/client/ui-plan/src/index.ts))
3361
+ - `@deepseek-ai/dsh-client-ui-reference` ([`packages/client/ui-reference/src/index.ts`](../packages/client/ui-reference/src/index.ts))
3362
+ - `@deepseek-ai/dsh-client-ui-renderer` ([`packages/client/ui-renderer/src/index.ts`](../packages/client/ui-renderer/src/index.ts))
3363
+ - `@deepseek-ai/dsh-client-ui-schedule` ([`packages/client/ui-schedule/src/index.ts`](../packages/client/ui-schedule/src/index.ts))
3364
+ - `@deepseek-ai/dsh-client-ui-session` ([`packages/client/ui-session/src/index.ts`](../packages/client/ui-session/src/index.ts))
3049
3365
  - `@deepseek-ai/dsh-client-ui-settings` ([`packages/client/ui-settings/src/index.ts`](../packages/client/ui-settings/src/index.ts))
3050
3366
  - `@deepseek-ai/dsh-client-ui-settings-general` ([`packages/client/ui-settings-general/src/index.ts`](../packages/client/ui-settings-general/src/index.ts))
3051
3367
  - `@deepseek-ai/dsh-client-ui-settings-models` ([`packages/client/ui-settings-models/src/index.ts`](../packages/client/ui-settings-models/src/index.ts))
@@ -3065,6 +3381,8 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3065
3381
  - `@deepseek-ai/dsh-command-goal` — requires `commands` · `goals` ([`packages/goal/command-goal/src/index.ts`](../packages/goal/command-goal/src/index.ts))
3066
3382
  - `@deepseek-ai/dsh-commands` ([`packages/interaction/commands/src/index.ts`](../packages/interaction/commands/src/index.ts))
3067
3383
  - `@deepseek-ai/dsh-cordis-client-runner` ([`packages/extensions/cordis-client-runner/src/index.ts`](../packages/extensions/cordis-client-runner/src/index.ts))
3384
+ - `@deepseek-ai/dsh-deepseek-llm-api-extensions` ([`packages/llm/deepseek-llm-api-extensions/src/index.ts`](../packages/llm/deepseek-llm-api-extensions/src/index.ts))
3385
+ - `@deepseek-ai/dsh-experimental-client-ui-agent-team` ([`packages/experimental/client-ui-agent-team/src/index.ts`](../packages/experimental/client-ui-agent-team/src/index.ts))
3068
3386
  - `@deepseek-ai/dsh-fs-e2b` — requires `e2b` ([`packages/e2b/fs-e2b/src/index.ts`](../packages/e2b/fs-e2b/src/index.ts))
3069
3387
  - `@deepseek-ai/dsh-fs-observation-policy` ([`packages/fs/fs-observation-policy/src/index.ts`](../packages/fs/fs-observation-policy/src/index.ts))
3070
3388
  - `@deepseek-ai/dsh-goal-round-driver` — requires `agents` · `goals` · `sessions` ([`packages/goal/goal-round-driver/src/index.ts`](../packages/goal/goal-round-driver/src/index.ts))
@@ -3076,9 +3394,9 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3076
3394
  - `@deepseek-ai/dsh-schedule` — requires `agents` · `sessions` · `tools` · `sessionPersistence` ([`packages/schedule/schedule/src/index.ts`](../packages/schedule/schedule/src/index.ts))
3077
3395
  - `@deepseek-ai/dsh-session` ([`packages/core/session/src/index.ts`](../packages/core/session/src/index.ts))
3078
3396
  - `@deepseek-ai/dsh-session-checkpoint-policy` — requires `llm` · `sessionPersistence` · `sessions` · `tools` ([`packages/session/session-checkpoint-policy/src/index.ts`](../packages/session/session-checkpoint-policy/src/index.ts))
3079
- - `@deepseek-ai/dsh-session-log-export` — requires `commands` ([`packages/session-query/session-log-export/src/index.ts`](../packages/session-query/session-log-export/src/index.ts))
3080
3397
  - `@deepseek-ai/dsh-session-projection` ([`packages/session/session-projection/src/index.ts`](../packages/session/session-projection/src/index.ts))
3081
3398
  - `@deepseek-ai/dsh-session-stats` — requires `sessionProjections` ([`packages/session/session-stats/src/index.ts`](../packages/session/session-stats/src/index.ts))
3399
+ - `@deepseek-ai/dsh-session-turn-outline` — requires `sessionProjections` ([`packages/session/session-turn-outline/src/index.ts`](../packages/session/session-turn-outline/src/index.ts))
3082
3400
  - `@deepseek-ai/dsh-skill-badge` — requires `skills` ([`packages/skill/skill-badge/src/index.ts`](../packages/skill/skill-badge/src/index.ts))
3083
3401
  - `@deepseek-ai/dsh-storage` ([`packages/storage/storage/src/index.ts`](../packages/storage/storage/src/index.ts))
3084
3402
  - `@deepseek-ai/dsh-subagent` ([`packages/subagent/subagent/src/index.ts`](../packages/subagent/subagent/src/index.ts))
@@ -3089,6 +3407,7 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3089
3407
  - `@deepseek-ai/dsh-tool-cordis` — requires `tools` · `systemPrompt` · `dynamicCordisRunner` · `cordisInspect` ([`packages/extensions/tool-cordis/src/index.ts`](../packages/extensions/tool-cordis/src/index.ts))
3090
3408
  - `@deepseek-ai/dsh-tool-subagent-control` — requires `tools` · `subagents` ([`packages/subagent/tool-subagent-control/src/index.ts`](../packages/subagent/tool-subagent-control/src/index.ts))
3091
3409
  - `@deepseek-ai/dsh-user-questions` ([`packages/interaction/user-questions/src/index.ts`](../packages/interaction/user-questions/src/index.ts))
3410
+ - `@deepseek-ai/dsh-webhook` — requires `agents` · `agentDefaultModel` · `agentPresets` · `permissionPresets` · `sessionTitle` · `workspaceRegistry` ([`packages/webhook/webhook/src/index.ts`](../packages/webhook/webhook/src/index.ts))
3092
3411
  - `@deepseek-ai/dsh-workspace` — requires `storageDomain` · `sessionPersistence` ([`packages/workspace/workspace/src/index.ts`](../packages/workspace/workspace/src/index.ts))
3093
3412
 
3094
3413
  ## Seam packages (not directly loadable)
@@ -3099,6 +3418,7 @@ Abstract service classes — a deployment loads a concrete implementation packag
3099
3418
  - `@deepseek-ai/dsh-code-runtime` — abstract `CodeRuntime` ([`packages/code-runtime/code-runtime/src/index.ts`](../packages/code-runtime/code-runtime/src/index.ts))
3100
3419
  - `@deepseek-ai/dsh-compaction` — abstract `CompactionEngine` ([`packages/compaction/compaction/src/index.ts`](../packages/compaction/compaction/src/index.ts))
3101
3420
  - `@deepseek-ai/dsh-credentials` — abstract `CredentialProvider` ([`packages/credentials/credentials/src/index.ts`](../packages/credentials/credentials/src/index.ts))
3421
+ - `@deepseek-ai/dsh-file-reference` — abstract `FileReferenceService` ([`packages/context/file-reference/src/index.ts`](../packages/context/file-reference/src/index.ts))
3102
3422
  - `@deepseek-ai/dsh-fs` — abstract `FileSystem` ([`packages/fs/fs/src/index.ts`](../packages/fs/fs/src/index.ts))
3103
3423
  - `@deepseek-ai/dsh-host-directory-picker` — abstract `DirectoryPicker` ([`packages/host/directory-picker/src/index.ts`](../packages/host/directory-picker/src/index.ts))
3104
3424
  - `@deepseek-ai/dsh-jobs` — abstract `JobRegistry` ([`packages/jobs/jobs/src/index.ts`](../packages/jobs/jobs/src/index.ts))
@@ -3115,21 +3435,23 @@ Abstract service classes — a deployment loads a concrete implementation packag
3115
3435
 
3116
3436
  Imported as libraries by other packages; a `cordis.yml` cannot load them.
3117
3437
 
3118
- - `@deepseek-ai/dsh-acp-snapshot` ([`packages/test-support/acp-snapshot/src/index.ts`](../packages/test-support/acp-snapshot/src/index.ts))
3119
3438
  - `@deepseek-ai/dsh-agent-loop-testkit` ([`packages/test-support/agent-loop-testkit/src/index.ts`](../packages/test-support/agent-loop-testkit/src/index.ts))
3120
3439
  - `@deepseek-ai/dsh-anonymous-user-id` ([`packages/identity/anonymous-user-id/src/index.ts`](../packages/identity/anonymous-user-id/src/index.ts))
3121
3440
  - `@deepseek-ai/dsh-app-boot` ([`packages/boot/app-boot/src/index.ts`](../packages/boot/app-boot/src/index.ts))
3122
3441
  - `@deepseek-ai/dsh-atomic-write` ([`packages/util/atomic-write/src/index.ts`](../packages/util/atomic-write/src/index.ts))
3123
3442
  - `@deepseek-ai/dsh-base` ([`packages/bundle/base/src/index.ts`](../packages/bundle/base/src/index.ts))
3124
3443
  - `@deepseek-ai/dsh-brand` ([`packages/util/brand/src/index.ts`](../packages/util/brand/src/index.ts))
3125
- - `@deepseek-ai/dsh-client-schema-form` ([`packages/client/schema-form/src/index.ts`](../packages/client/schema-form/src/index.ts))
3444
+ - `@deepseek-ai/dsh-client-store` ([`packages/client/store/src/index.ts`](../packages/client/store/src/index.ts))
3126
3445
  - `@deepseek-ai/dsh-client-test-runtime` ([`packages/test-support/client-runtime/src/index.ts`](../packages/test-support/client-runtime/src/index.ts))
3127
- - `@deepseek-ai/dsh-client-ui-attachment` ([`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts))
3128
3446
  - `@deepseek-ai/dsh-client-ui-primitives` ([`packages/client/ui-primitives/src/index.ts`](../packages/client/ui-primitives/src/index.ts))
3129
3447
  - `@deepseek-ai/dsh-client-ui-slots` ([`packages/client/ui-slots/src/index.ts`](../packages/client/ui-slots/src/index.ts))
3130
3448
  - `@deepseek-ai/dsh-client-web` ([`packages/client/web/src/index.ts`](../packages/client/web/src/index.ts))
3131
- - `@deepseek-ai/dsh-client-web-react` ([`packages/client/web-react/src/index.ts`](../packages/client/web-react/src/index.ts))
3132
3449
  - `@deepseek-ai/dsh-cmdline` ([`packages/boot/cmdline/src/index.ts`](../packages/boot/cmdline/src/index.ts))
3450
+ - `@deepseek-ai/dsh-deque` ([`packages/util/deque/src/index.ts`](../packages/util/deque/src/index.ts))
3451
+ - `@deepseek-ai/dsh-experimental-agent-team-profile` ([`packages/experimental/agent-team-profile/src/index.ts`](../packages/experimental/agent-team-profile/src/index.ts))
3452
+ - `@deepseek-ai/dsh-experimental-agent-team-web-profile` ([`packages/experimental/agent-team-web-profile/src/index.ts`](../packages/experimental/agent-team-web-profile/src/index.ts))
3453
+ - `@deepseek-ai/dsh-experimental-webworker-packer` ([`packages/experimental/webworker-packer/src/index.ts`](../packages/experimental/webworker-packer/src/index.ts))
3454
+ - `@deepseek-ai/dsh-experimental-webworker-runtime` ([`packages/experimental/webworker-runtime/src/index.ts`](../packages/experimental/webworker-runtime/src/index.ts))
3133
3455
  - `@deepseek-ai/dsh-home-paths` ([`packages/util/home-paths/src/index.ts`](../packages/util/home-paths/src/index.ts))
3134
3456
  - `@deepseek-ai/dsh-hook-protocol` ([`packages/hooks/hook-protocol/src/index.ts`](../packages/hooks/hook-protocol/src/index.ts))
3135
3457
  - `@deepseek-ai/dsh-launch-environment` ([`packages/util/launch-environment/src/index.ts`](../packages/util/launch-environment/src/index.ts))
@@ -3140,8 +3462,9 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3140
3462
  - `@deepseek-ai/dsh-sandbox-windows-acl` ([`packages/sandbox/sandbox-windows-acl/src/index.ts`](../packages/sandbox/sandbox-windows-acl/src/index.ts))
3141
3463
  - `@deepseek-ai/dsh-scope` ([`packages/core/scope/src/index.ts`](../packages/core/scope/src/index.ts))
3142
3464
  - `@deepseek-ai/dsh-sdk-client` ([`packages/sdk/client/src/index.ts`](../packages/sdk/client/src/index.ts))
3143
- - `@deepseek-ai/dsh-sdk-jsonrpc-demo` ([`packages/examples/jsonrpc-demo/src/index.ts`](../packages/examples/jsonrpc-demo/src/index.ts))
3465
+ - `@deepseek-ai/dsh-sdk-minimal` ([`packages/bundle/sdk-minimal/src/index.ts`](../packages/bundle/sdk-minimal/src/index.ts))
3144
3466
  - `@deepseek-ai/dsh-sdk-protocol` ([`packages/sdk/protocol/src/index.ts`](../packages/sdk/protocol/src/index.ts))
3467
+ - `@deepseek-ai/dsh-session-snapshot` ([`packages/test-support/session-snapshot/src/index.ts`](../packages/test-support/session-snapshot/src/index.ts))
3145
3468
  - `@deepseek-ai/dsh-session-telemetry` ([`packages/session/session-telemetry/src/index.ts`](../packages/session/session-telemetry/src/index.ts))
3146
3469
  - `@deepseek-ai/dsh-session-title-llm` ([`packages/session/session-title-llm/src/index.ts`](../packages/session/session-title-llm/src/index.ts))
3147
3470
  - `@deepseek-ai/dsh-subagent-in-process-driver` ([`packages/subagent/subagent-in-process-driver/src/index.ts`](../packages/subagent/subagent-in-process-driver/src/index.ts))
@@ -3149,3 +3472,8 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3149
3472
  - `@deepseek-ai/dsh-typert-generator` ([`packages/typert/generator/src/index.ts`](../packages/typert/generator/src/index.ts))
3150
3473
  - `@deepseek-ai/dsh-typert-protocol` ([`packages/typert/protocol/src/index.ts`](../packages/typert/protocol/src/index.ts))
3151
3474
  - `@deepseek-ai/dsh-typert-registry` ([`packages/typert/registry/src/index.ts`](../packages/typert/registry/src/index.ts))
3475
+ - `@deepseek-ai/dsh-util-crypto` ([`packages/util/crypto/src/index.ts`](../packages/util/crypto/src/index.ts))
3476
+ - `@deepseek-ai/dsh-util-time` ([`packages/util/time/src/index.ts`](../packages/util/time/src/index.ts))
3477
+ - `@deepseek-ai/dsh-util-values` ([`packages/util/values/src/index.ts`](../packages/util/values/src/index.ts))
3478
+ - `@deepseek-ai/dsh-util-workspace-path` ([`packages/util/workspace-path/src/index.ts`](../packages/util/workspace-path/src/index.ts))
3479
+ - `@deepseek-ai/dsh-win32-process` ([`packages/subprocess/win32-process/src/index.ts`](../packages/subprocess/win32-process/src/index.ts))