dsh-plugin-guide 0.2.0 → 0.3.2

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 (373) hide show
  1. package/README.es.md +36 -18
  2. package/README.hi.md +36 -18
  3. package/README.md +38 -18
  4. package/README.pt.md +36 -18
  5. package/README.zh.md +38 -18
  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 +2 -2
  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 +3 -3
  15. package/package.json +13 -4
  16. package/references/cordis-paper-and-community.md +1 -1
  17. package/references/harness-repo.md +1 -1
  18. package/references/official-docs/AGENTS.md +27 -22
  19. package/references/official-docs/README.i18n.yaml +2 -2
  20. package/references/official-docs/README.md +1 -1
  21. package/references/official-docs/README.zh.md +19 -9
  22. package/references/official-docs/SNAPSHOT.md +5 -5
  23. package/references/official-docs/THIRD_PARTY_NOTICES.md +36 -13
  24. package/references/official-docs/docs/AGENTS.md +4 -4
  25. package/references/official-docs/docs/agent-lifecycle.i18n.yaml +2 -2
  26. package/references/official-docs/docs/agent-lifecycle.md +1 -1
  27. package/references/official-docs/docs/agent-lifecycle.zh.md +2 -2
  28. package/references/official-docs/docs/api-gateway.i18n.yaml +2 -2
  29. package/references/official-docs/docs/api-gateway.md +8 -8
  30. package/references/official-docs/docs/api-gateway.zh.md +8 -8
  31. package/references/official-docs/docs/architecture.i18n.yaml +2 -2
  32. package/references/official-docs/docs/architecture.md +23 -7
  33. package/references/official-docs/docs/architecture.zh.md +36 -20
  34. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  35. package/references/official-docs/docs/capability-seams.md +132 -67
  36. package/references/official-docs/docs/capability-seams.zh.md +132 -67
  37. package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
  38. package/references/official-docs/docs/config-catalog.md +659 -373
  39. package/references/official-docs/docs/config-catalog.zh.md +677 -391
  40. package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +2 -2
  41. package/references/official-docs/docs/cookbook/adding-a-package.md +2 -3
  42. package/references/official-docs/docs/cookbook/adding-a-package.zh.md +8 -7
  43. package/references/official-docs/docs/cookbook/{adding-a-conversation-node.i18n.yaml → adding-a-remote-api.i18n.yaml} +3 -3
  44. package/references/official-docs/docs/cookbook/adding-a-remote-api.md +197 -0
  45. package/references/official-docs/docs/cookbook/adding-a-remote-api.zh.md +197 -0
  46. package/references/official-docs/docs/cookbook/adding-a-settings-card.i18n.yaml +6 -0
  47. package/references/official-docs/docs/cookbook/adding-a-settings-card.md +102 -0
  48. package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +102 -0
  49. package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +2 -2
  50. package/references/official-docs/docs/cookbook/adding-a-tool.md +11 -4
  51. package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +16 -9
  52. package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +2 -2
  53. package/references/official-docs/docs/cookbook/adding-a-vendored-package.md +2 -2
  54. package/references/official-docs/docs/cookbook/adding-a-vendored-package.zh.md +4 -4
  55. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.i18n.yaml +2 -2
  56. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.md +1 -1
  57. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.zh.md +3 -3
  58. package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +2 -2
  59. package/references/official-docs/docs/cookbook/extension-cookbook.md +9 -8
  60. package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +17 -14
  61. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.i18n.yaml +1 -1
  62. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.zh.md +1 -1
  63. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +1 -1
  64. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
  65. package/references/official-docs/docs/cordis-api/context.i18n.yaml +1 -1
  66. package/references/official-docs/docs/cordis-api/context.zh.md +1 -1
  67. package/references/official-docs/docs/cordis-api/events.i18n.yaml +1 -1
  68. package/references/official-docs/docs/cordis-api/events.zh.md +1 -1
  69. package/references/official-docs/docs/cordis-api/inherited.md +1 -1
  70. package/references/official-docs/docs/cordis-primer.i18n.yaml +2 -2
  71. package/references/official-docs/docs/cordis-primer.md +2 -1
  72. package/references/official-docs/docs/cordis-primer.zh.md +3 -2
  73. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.i18n.yaml +1 -1
  74. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.zh.md +4 -4
  75. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.i18n.yaml +1 -1
  76. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +4 -4
  77. package/references/official-docs/docs/cordis-tutorial/03-services.i18n.yaml +1 -1
  78. package/references/official-docs/docs/cordis-tutorial/03-services.zh.md +4 -4
  79. package/references/official-docs/docs/cordis-tutorial/04-events.i18n.yaml +1 -1
  80. package/references/official-docs/docs/cordis-tutorial/04-events.zh.md +4 -4
  81. package/references/official-docs/docs/cordis-tutorial/05-config.i18n.yaml +1 -1
  82. package/references/official-docs/docs/cordis-tutorial/05-config.zh.md +2 -2
  83. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +1 -1
  84. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.zh.md +3 -3
  85. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.i18n.yaml +2 -2
  86. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.md +5 -4
  87. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.zh.md +11 -10
  88. package/references/official-docs/docs/cordis-tutorial/index.i18n.yaml +1 -1
  89. package/references/official-docs/docs/cordis-tutorial/index.zh.md +10 -10
  90. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +6 -0
  91. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +159 -0
  92. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +159 -0
  93. package/references/official-docs/docs/defensive-patterns.i18n.yaml +1 -1
  94. package/references/official-docs/docs/defensive-patterns.zh.md +3 -1
  95. package/references/official-docs/docs/development.i18n.yaml +2 -2
  96. package/references/official-docs/docs/development.md +9 -13
  97. package/references/official-docs/docs/development.zh.md +23 -21
  98. package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
  99. package/references/official-docs/docs/event-producer-consumer.md +55 -46
  100. package/references/official-docs/docs/event-producer-consumer.zh.md +55 -46
  101. package/references/official-docs/docs/glossary.i18n.yaml +2 -2
  102. package/references/official-docs/docs/glossary.md +1 -1
  103. package/references/official-docs/docs/glossary.zh.md +1 -1
  104. package/references/official-docs/docs/graph-atlas.i18n.yaml +2 -2
  105. package/references/official-docs/docs/graph-atlas.md +0 -2
  106. package/references/official-docs/docs/graph-atlas.zh.md +7 -9
  107. package/references/official-docs/docs/i18n/README.i18n.yaml +2 -2
  108. package/references/official-docs/docs/i18n/README.md +7 -7
  109. package/references/official-docs/docs/i18n/README.zh.md +11 -9
  110. package/references/official-docs/docs/i18n/style-samples.md +3 -3
  111. package/references/official-docs/docs/i18n/translation-prompt.md +3 -3
  112. package/references/official-docs/docs/i18n/translation-rules.i18n.yaml +2 -2
  113. package/references/official-docs/docs/i18n/translation-rules.md +2 -2
  114. package/references/official-docs/docs/i18n/translation-rules.zh.md +3 -3
  115. package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
  116. package/references/official-docs/docs/module-graph.md +666 -747
  117. package/references/official-docs/docs/module-graph.zh.md +668 -749
  118. package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
  119. package/references/official-docs/docs/persistence-catalog.md +160 -39
  120. package/references/official-docs/docs/persistence-catalog.zh.md +169 -48
  121. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.i18n.yaml +2 -2
  122. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.md +2 -2
  123. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +3 -3
  124. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.i18n.yaml +2 -2
  125. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +2 -2
  126. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +2 -2
  127. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.i18n.yaml +2 -2
  128. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.md +2 -2
  129. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +2 -2
  130. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml +2 -2
  131. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +1 -1
  132. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +2 -2
  133. package/references/official-docs/docs/postmortem/README.i18n.yaml +1 -1
  134. package/references/official-docs/docs/postmortem/README.zh.md +5 -5
  135. package/references/official-docs/docs/rescope.i18n.yaml +2 -2
  136. package/references/official-docs/docs/rescope.md +2 -2
  137. package/references/official-docs/docs/rescope.zh.md +3 -3
  138. package/references/official-docs/docs/subsystems/README.i18n.yaml +2 -2
  139. package/references/official-docs/docs/subsystems/README.md +8 -2
  140. package/references/official-docs/docs/subsystems/README.zh.md +53 -47
  141. package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +6 -0
  142. package/references/official-docs/docs/subsystems/agent-team.md +206 -0
  143. package/references/official-docs/docs/subsystems/agent-team.zh.md +206 -0
  144. package/references/official-docs/docs/subsystems/approval.i18n.yaml +2 -2
  145. package/references/official-docs/docs/subsystems/approval.md +12 -12
  146. package/references/official-docs/docs/subsystems/approval.zh.md +13 -13
  147. package/references/official-docs/docs/subsystems/attachment.i18n.yaml +2 -2
  148. package/references/official-docs/docs/subsystems/attachment.md +90 -7
  149. package/references/official-docs/docs/subsystems/attachment.zh.md +90 -7
  150. package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +2 -2
  151. package/references/official-docs/docs/subsystems/client-modules.md +69 -19
  152. package/references/official-docs/docs/subsystems/client-modules.zh.md +69 -19
  153. package/references/official-docs/docs/subsystems/code-runtime.i18n.yaml +2 -2
  154. package/references/official-docs/docs/subsystems/code-runtime.md +5 -5
  155. package/references/official-docs/docs/subsystems/code-runtime.zh.md +6 -6
  156. package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
  157. package/references/official-docs/docs/subsystems/commands.md +29 -6
  158. package/references/official-docs/docs/subsystems/commands.zh.md +30 -7
  159. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
  160. package/references/official-docs/docs/subsystems/compaction.md +5 -5
  161. package/references/official-docs/docs/subsystems/compaction.zh.md +11 -11
  162. package/references/official-docs/docs/subsystems/conversation.i18n.yaml +6 -0
  163. package/references/official-docs/docs/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +49 -24
  164. package/references/official-docs/docs/{cookbook/adding-a-conversation-node.zh.md → subsystems/conversation.zh.md} +49 -24
  165. package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
  166. package/references/official-docs/docs/subsystems/core.md +110 -33
  167. package/references/official-docs/docs/subsystems/core.zh.md +141 -62
  168. package/references/official-docs/docs/subsystems/credentials.i18n.yaml +2 -2
  169. package/references/official-docs/docs/subsystems/credentials.md +207 -11
  170. package/references/official-docs/docs/subsystems/credentials.zh.md +207 -11
  171. package/references/official-docs/docs/subsystems/extensions.i18n.yaml +2 -2
  172. package/references/official-docs/docs/subsystems/extensions.md +27 -9
  173. package/references/official-docs/docs/subsystems/extensions.zh.md +30 -12
  174. package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
  175. package/references/official-docs/docs/subsystems/feedback.md +4 -4
  176. package/references/official-docs/docs/subsystems/feedback.zh.md +4 -4
  177. package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +2 -2
  178. package/references/official-docs/docs/subsystems/filesystem.md +17 -7
  179. package/references/official-docs/docs/subsystems/filesystem.zh.md +19 -9
  180. package/references/official-docs/docs/subsystems/goal.i18n.yaml +2 -2
  181. package/references/official-docs/docs/subsystems/goal.md +4 -4
  182. package/references/official-docs/docs/subsystems/goal.zh.md +8 -8
  183. package/references/official-docs/docs/subsystems/invariants.i18n.yaml +2 -2
  184. package/references/official-docs/docs/subsystems/invariants.md +2 -2
  185. package/references/official-docs/docs/subsystems/invariants.zh.md +5 -5
  186. package/references/official-docs/docs/subsystems/jobs.i18n.yaml +2 -2
  187. package/references/official-docs/docs/subsystems/jobs.md +3 -3
  188. package/references/official-docs/docs/subsystems/jobs.zh.md +6 -6
  189. package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
  190. package/references/official-docs/docs/subsystems/llm-streaming.md +193 -22
  191. package/references/official-docs/docs/subsystems/llm-streaming.zh.md +199 -28
  192. package/references/official-docs/docs/subsystems/lsp.i18n.yaml +2 -2
  193. package/references/official-docs/docs/subsystems/lsp.md +2 -2
  194. package/references/official-docs/docs/subsystems/lsp.zh.md +3 -3
  195. package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +2 -2
  196. package/references/official-docs/docs/subsystems/permission-presets.md +8 -8
  197. package/references/official-docs/docs/subsystems/permission-presets.zh.md +8 -8
  198. package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
  199. package/references/official-docs/docs/subsystems/persistence.md +35 -17
  200. package/references/official-docs/docs/subsystems/persistence.zh.md +38 -20
  201. package/references/official-docs/docs/subsystems/plan.i18n.yaml +2 -2
  202. package/references/official-docs/docs/subsystems/plan.md +4 -4
  203. package/references/official-docs/docs/subsystems/plan.zh.md +10 -10
  204. package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +2 -2
  205. package/references/official-docs/docs/subsystems/sandbox.md +5 -3
  206. package/references/official-docs/docs/subsystems/sandbox.zh.md +8 -6
  207. package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
  208. package/references/official-docs/docs/subsystems/schedule.md +9 -3
  209. package/references/official-docs/docs/subsystems/schedule.zh.md +11 -5
  210. package/references/official-docs/docs/subsystems/scope.i18n.yaml +1 -1
  211. package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
  212. package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +2 -2
  213. package/references/official-docs/docs/subsystems/session-projection.md +136 -67
  214. package/references/official-docs/docs/subsystems/session-projection.zh.md +136 -67
  215. package/references/official-docs/docs/subsystems/session-query.i18n.yaml +2 -2
  216. package/references/official-docs/docs/subsystems/session-query.md +11 -3
  217. package/references/official-docs/docs/subsystems/session-query.zh.md +12 -4
  218. package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +2 -2
  219. package/references/official-docs/docs/subsystems/session-reference.md +94 -7
  220. package/references/official-docs/docs/subsystems/session-reference.zh.md +95 -8
  221. package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +2 -2
  222. package/references/official-docs/docs/subsystems/session-telemetry.md +5 -6
  223. package/references/official-docs/docs/subsystems/session-telemetry.zh.md +9 -10
  224. package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
  225. package/references/official-docs/docs/subsystems/session-title.md +3 -3
  226. package/references/official-docs/docs/subsystems/session-title.zh.md +5 -5
  227. package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
  228. package/references/official-docs/docs/subsystems/session.md +273 -39
  229. package/references/official-docs/docs/subsystems/session.zh.md +290 -54
  230. package/references/official-docs/docs/subsystems/settings.i18n.yaml +2 -2
  231. package/references/official-docs/docs/subsystems/settings.md +105 -10
  232. package/references/official-docs/docs/subsystems/settings.zh.md +105 -10
  233. package/references/official-docs/docs/subsystems/shell.i18n.yaml +2 -2
  234. package/references/official-docs/docs/subsystems/shell.md +3 -3
  235. package/references/official-docs/docs/subsystems/shell.zh.md +11 -11
  236. package/references/official-docs/docs/subsystems/skills.i18n.yaml +2 -2
  237. package/references/official-docs/docs/subsystems/skills.md +26 -3
  238. package/references/official-docs/docs/subsystems/skills.zh.md +29 -6
  239. package/references/official-docs/docs/subsystems/slots.i18n.yaml +6 -0
  240. package/references/official-docs/docs/subsystems/slots.md +174 -0
  241. package/references/official-docs/docs/subsystems/slots.zh.md +174 -0
  242. package/references/official-docs/docs/subsystems/spill.i18n.yaml +2 -2
  243. package/references/official-docs/docs/subsystems/spill.md +4 -4
  244. package/references/official-docs/docs/subsystems/spill.zh.md +6 -6
  245. package/references/official-docs/docs/subsystems/storage.i18n.yaml +2 -2
  246. package/references/official-docs/docs/subsystems/storage.md +13 -5
  247. package/references/official-docs/docs/subsystems/storage.zh.md +16 -8
  248. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  249. package/references/official-docs/docs/subsystems/subagent.md +120 -32
  250. package/references/official-docs/docs/subsystems/subagent.zh.md +131 -41
  251. package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +2 -2
  252. package/references/official-docs/docs/subsystems/subprocess.md +3 -3
  253. package/references/official-docs/docs/subsystems/subprocess.zh.md +5 -5
  254. package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +2 -2
  255. package/references/official-docs/docs/subsystems/system-prompt.md +21 -8
  256. package/references/official-docs/docs/subsystems/system-prompt.zh.md +23 -10
  257. package/references/official-docs/docs/subsystems/terminal.i18n.yaml +2 -2
  258. package/references/official-docs/docs/subsystems/terminal.md +2 -2
  259. package/references/official-docs/docs/subsystems/terminal.zh.md +4 -4
  260. package/references/official-docs/docs/subsystems/todo.i18n.yaml +6 -0
  261. package/references/official-docs/docs/subsystems/todo.md +32 -0
  262. package/references/official-docs/docs/subsystems/todo.zh.md +32 -0
  263. package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
  264. package/references/official-docs/docs/subsystems/token-meter.md +27 -12
  265. package/references/official-docs/docs/subsystems/token-meter.zh.md +28 -13
  266. package/references/official-docs/docs/subsystems/tools.i18n.yaml +2 -2
  267. package/references/official-docs/docs/subsystems/tools.md +46 -46
  268. package/references/official-docs/docs/subsystems/tools.zh.md +54 -54
  269. package/references/official-docs/docs/subsystems/typert.i18n.yaml +2 -2
  270. package/references/official-docs/docs/subsystems/typert.md +65 -58
  271. package/references/official-docs/docs/subsystems/typert.zh.md +67 -60
  272. package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +2 -2
  273. package/references/official-docs/docs/subsystems/user-questions.md +35 -35
  274. package/references/official-docs/docs/subsystems/user-questions.zh.md +35 -35
  275. package/references/official-docs/docs/subsystems/web-client.i18n.yaml +6 -0
  276. package/references/official-docs/docs/subsystems/web-client.md +95 -0
  277. package/references/official-docs/docs/subsystems/web-client.zh.md +95 -0
  278. package/references/official-docs/docs/subsystems/web-server.i18n.yaml +2 -2
  279. package/references/official-docs/docs/subsystems/web-server.md +55 -9
  280. package/references/official-docs/docs/subsystems/web-server.zh.md +56 -10
  281. package/references/official-docs/docs/subsystems/web.i18n.yaml +2 -2
  282. package/references/official-docs/docs/subsystems/web.md +14 -7
  283. package/references/official-docs/docs/subsystems/web.zh.md +16 -9
  284. package/references/official-docs/docs/subsystems/webhook.i18n.yaml +6 -0
  285. package/references/official-docs/docs/subsystems/webhook.md +70 -0
  286. package/references/official-docs/docs/subsystems/webhook.zh.md +70 -0
  287. package/references/official-docs/docs/subsystems/workflow.i18n.yaml +2 -2
  288. package/references/official-docs/docs/subsystems/workflow.md +8 -8
  289. package/references/official-docs/docs/subsystems/workflow.zh.md +13 -13
  290. package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
  291. package/references/official-docs/docs/subsystems/workspace.md +98 -5
  292. package/references/official-docs/docs/subsystems/workspace.zh.md +102 -9
  293. package/references/official-docs/docs/testing.i18n.yaml +2 -2
  294. package/references/official-docs/docs/testing.md +15 -10
  295. package/references/official-docs/docs/testing.zh.md +15 -10
  296. package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
  297. package/references/official-docs/docs/tool-catalog.md +433 -27
  298. package/references/official-docs/docs/tool-catalog.zh.md +438 -29
  299. package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +2 -2
  300. package/references/official-docs/docs/tool-execution-pipeline.md +1 -1
  301. package/references/official-docs/docs/tool-execution-pipeline.zh.md +1 -1
  302. package/references/official-docs/docs/user/develop/basic/config.i18n.yaml +2 -2
  303. package/references/official-docs/docs/user/develop/basic/config.md +1 -1
  304. package/references/official-docs/docs/user/develop/basic/config.zh.md +4 -4
  305. package/references/official-docs/docs/user/develop/basic/index.i18n.yaml +1 -1
  306. package/references/official-docs/docs/user/develop/basic/index.zh.md +5 -5
  307. package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +2 -2
  308. package/references/official-docs/docs/user/develop/basic/publish.md +3 -3
  309. package/references/official-docs/docs/user/develop/basic/publish.zh.md +7 -7
  310. package/references/official-docs/docs/user/develop/basic/tool.i18n.yaml +2 -2
  311. package/references/official-docs/docs/user/develop/basic/tool.md +3 -3
  312. package/references/official-docs/docs/user/develop/basic/tool.zh.md +4 -4
  313. package/references/official-docs/docs/user/develop/framework/events.i18n.yaml +2 -2
  314. package/references/official-docs/docs/user/develop/framework/events.md +2 -2
  315. package/references/official-docs/docs/user/develop/framework/events.zh.md +3 -3
  316. package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +1 -1
  317. package/references/official-docs/docs/user/develop/framework/index.zh.md +3 -3
  318. package/references/official-docs/docs/user/develop/framework/service.i18n.yaml +2 -2
  319. package/references/official-docs/docs/user/develop/framework/service.md +1 -1
  320. package/references/official-docs/docs/user/develop/framework/service.zh.md +3 -3
  321. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +6 -0
  322. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.md +15 -0
  323. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
  324. package/references/official-docs/docs/user/develop/practice/index.i18n.yaml +2 -2
  325. package/references/official-docs/docs/user/develop/practice/index.md +1 -1
  326. package/references/official-docs/docs/user/develop/practice/index.zh.md +3 -3
  327. package/references/official-docs/docs/user/develop/practice/llm-adapter.i18n.yaml +2 -2
  328. package/references/official-docs/docs/user/develop/practice/llm-adapter.md +4 -3
  329. package/references/official-docs/docs/user/develop/practice/llm-adapter.zh.md +4 -3
  330. package/references/official-docs/docs/user/guide/github-review.i18n.yaml +6 -0
  331. package/references/official-docs/docs/user/guide/github-review.md +102 -0
  332. package/references/official-docs/docs/user/guide/github-review.zh.md +102 -0
  333. package/references/official-docs/docs/user/guide/index.i18n.yaml +2 -2
  334. package/references/official-docs/docs/user/guide/index.md +2 -2
  335. package/references/official-docs/docs/user/guide/index.zh.md +8 -8
  336. package/references/official-docs/docs/user/guide/mcp-memory.i18n.yaml +6 -0
  337. package/references/official-docs/docs/user/guide/mcp-memory.md +101 -0
  338. package/references/official-docs/docs/user/guide/mcp-memory.zh.md +101 -0
  339. package/references/official-docs/docs/user/guide/providers.i18n.yaml +2 -2
  340. package/references/official-docs/docs/user/guide/providers.md +40 -1
  341. package/references/official-docs/docs/user/guide/providers.zh.md +41 -2
  342. package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +2 -2
  343. package/references/official-docs/docs/user/guide/python-sdk.md +80 -34
  344. package/references/official-docs/docs/user/guide/python-sdk.zh.md +87 -41
  345. package/references/official-docs/docs/user/guide/schedule.i18n.yaml +6 -0
  346. package/references/official-docs/docs/user/guide/schedule.md +21 -0
  347. package/references/official-docs/docs/user/guide/schedule.zh.md +21 -0
  348. package/references/official-docs/docs/web-styling.i18n.yaml +1 -1
  349. package/references/official-docs/docs/web-styling.zh.md +2 -2
  350. package/references/official-docs/packages/AGENTS.md +3 -2
  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/check-docs-drift.ps1 +55 -0
  357. package/scripts/check-readme-sync.mjs +91 -0
  358. package/scripts/download-sources.ps1 +1 -1
  359. package/scripts/sync-official-docs.ps1 +19 -11
  360. package/scripts/verify-kit.ps1 +0 -4
  361. package/templates/js/README.es.md +1 -1
  362. package/templates/js/README.hi.md +1 -1
  363. package/templates/js/README.md +1 -1
  364. package/templates/js/README.pt.md +1 -1
  365. package/templates/js/README.zh.md +1 -1
  366. package/templates/js/package.json +4 -4
  367. package/templates/ts/README.es.md +1 -1
  368. package/templates/ts/README.hi.md +1 -1
  369. package/templates/ts/README.md +1 -1
  370. package/templates/ts/README.pt.md +1 -1
  371. package/templates/ts/README.zh.md +1 -1
  372. package/templates/ts/package.json +4 -4
  373. package/references/official-docs/examples/AGENTS.md +0 -20
@@ -5,7 +5,7 @@
5
5
 
6
6
  [English](config-catalog.md) | 中文
7
7
 
8
- 每个 `config:` 块均可由 `cordis.yml` 条目设置:针对每个可加载的 harness 包,原样列出其 `apply` 函数或服务构造函数接收的配置声明(包括 JSDoc),并附上所有引用类型——包内类型直接粘贴,其他类型则提供链接。粘贴的内容是插件声明的完整配置类型——运行时 schema 有意排除的字段是仅供运行时使用的 seam(其自身的 JSDoc 会如此说明),不能通过 `cordis.yml` 设置。这是以**部署**为轴的参考文档——插件作者所依据的连接方式请参阅各[子系统页面](subsystems/core.md)中的生成 `cordis-surface` 区域,面向模型的工具 schema 请参阅[工具目录](tool-catalog.md),而 [subsystems/](subsystems/core.md) 则记录了这些声明所引用的类型。
8
+ 每个 `config:` 块均可由 `cordis.yml` 条目设置:针对每个可加载的 harness 包,原样列出其 `apply` 函数或服务构造函数接收的配置声明(包括 JSDoc),并附上所有引用类型——包内类型直接粘贴,其他类型则提供链接。粘贴的内容是插件声明的完整配置类型——运行时 schema 有意排除的字段是仅供运行时使用的 seam(其自身的 JSDoc 会如此说明),不能通过 `cordis.yml` 设置。这是以**部署**为轴的参考文档——插件作者所依据的连接方式请参阅各[子系统页面](subsystems/core.zh.md)中的生成 `cordis-surface` 区域,面向模型的工具 schema 请参阅[工具目录](tool-catalog.zh.md),而 [subsystems/](subsystems/core.zh.md) 则记录了这些声明所引用的类型。
9
9
 
10
10
  英文源文件由源代码(`scripts/gen-config-catalog.ts`)生成,并通过 `pnpm run verify-config-catalog`(`doc-sync` 的一部分)验证新鲜度;本中文文件作为经评审对侧通过双语配对维护。声明块使用 `ts config-catalog` 围栏(doc-typecheck 会跳过它,因为单独引用导入项的声明无法独立编译)。英文生成器还会将运行时 schemastery schema 与粘贴的声明进行交叉核对——每个经 schema 验证的键(包括嵌套键)都必须能在声明的配置类型中找到——因此,粘贴内容无法隐藏加载器接受的字段。
11
11
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## `@deepseek-ai/dsh-acp`
17
17
 
18
- 需要:`agents`
18
+ 需要:`agents` · `llm` · `sessionPersistence` · `sessions`
19
19
 
20
20
  ```ts config-catalog
21
21
  /** Plugin config: the provider/model selection used for each ACP-created agent. */
@@ -24,6 +24,8 @@ export interface AcpConfig {
24
24
  provider?: string
25
25
  /** Model name for created agents. */
26
26
  model?: string
27
+ /** Maximum summaries returned by one session/list page. */
28
+ sessionListPageSize?: number
27
29
  /** Runtime-only transport override; production uses stdio. */
28
30
  stream?: Stream
29
31
  }
@@ -31,62 +33,7 @@ export interface AcpConfig {
31
33
 
32
34
  依赖:`Stream`(`@agentclientprotocol/sdk`)
33
35
 
34
- 来源:[`packages/acp/acp/src/index.ts:70`](../packages/acp/acp/src/index.ts)
35
-
36
- <a id="deepseek-aidsh-acp-demo"></a>
37
-
38
- ## `@deepseek-ai/dsh-acp-demo`
39
-
40
- ```ts config-catalog
41
- /**
42
- * App config: the swappable per-deployment values. `provider` and `model` configure
43
- * each agent the ACP bridge creates at `session/new`; `persona` is the
44
- * deployment persona (forwarded to the system-prompt plugin); `toolOrder` is
45
- * the explicit model-facing tool order (forwarded to the system-prompt plugin);
46
- * `tools` is the tool registry's config (its presentation `mode`, forwarded
47
- * through agent-spine-demo); `persistenceRoot` is the JSONL backend's directory.
48
- */
49
- export interface Config {
50
- /** Provider route for ACP-created agents. */
51
- provider: string
52
- /** Model name for ACP-created agents (must have a registered adapter). */
53
- model: string
54
- /** Bundled agent-loop concurrency cap; `1` is serial and omission uses its default. */
55
- maxParallelToolCalls?: number
56
- /** Deployment persona (the system-prompt plugin's `persona` config). */
57
- persona?: string
58
- /** Explicit model-facing tool order (the system-prompt plugin's `toolOrder` config; see dsh-system-prompt). */
59
- toolOrder?: string[]
60
- /** Tool-registry config — its presentation `mode` (forwarded through agent-spine-demo; see dsh-tools). */
61
- tools?: ToolsConfig
62
- /** DeepSeek Harness home directory exposed to bash and used for local skill discovery. */
63
- dshHome?: string
64
- /** Fallback session-title limits forwarded through agent-spine-demo. */
65
- sessionTitle?: NonNullable<agentCore.Config['sessionTitle']>
66
- /** Directory for JSONL sessions and the derived query index. Defaults to `./.sessions`. */
67
- persistenceRoot?: string
68
- /** Write delta-chunk runs as packed storage rows (the JSONL backend's `packChunks`). Defaults to `true`. */
69
- packChunks?: boolean
70
- /** JSONL artifact encoding; defaults to checksummed Zstandard frames. */
71
- persistenceCompression?: JsonlCompression
72
- /** Controls automatic AGENTS.md/CLAUDE.md loading; configure a byte budget or set `false`. */
73
- workspaceContext: agentCore.Config['workspaceContext']
74
- /** Skill registry, local-provider, and model-facing consumer config forwarded to agent-spine-demo. */
75
- skills?: agentCore.SkillConfig
76
- /** Model-facing bash tool config forwarded through agent-core. */
77
- toolBash?: NonNullable<agentCore.Config['toolBash']>
78
- /** Process-local background-job admission config forwarded through agent-core. */
79
- jobs?: NonNullable<agentCore.Config['jobs']>
80
- /** Generic background-job controls forwarded through agent-core; set false to omit their tools. */
81
- toolJobs?: NonNullable<agentCore.Config['toolJobs']>
82
- /** Persisted same-session goals; owner defaults enable them, or false disables the stack and tools. */
83
- goals?: agentCore.GoalConfig | false
84
- }
85
- ```
86
-
87
- 依赖:[`agentCore`](../packages/examples/agent-spine-demo/src/index.ts) · [`JsonlCompression`](../packages/session/session-persistence-jsonl/src/index.ts) · [`ToolsConfig`](#deepseek-aidsh-tools)
88
-
89
- 来源:[`packages/examples/acp-demo/src/index.ts:39`](../packages/examples/acp-demo/src/index.ts)
36
+ 来源:[`packages/acp/acp/src/index.ts:75`](../packages/acp/acp/src/index.ts)
90
37
 
91
38
  <a id="deepseek-aidsh-agent-default-model"></a>
92
39
 
@@ -108,6 +55,8 @@ export interface Config {
108
55
 
109
56
  ## `@deepseek-ai/dsh-agent-instructions`
110
57
 
58
+ 需要:`sessionProjections`
59
+
111
60
  ```ts config-catalog
112
61
  /** User-facing workspace instruction loader configuration. */
113
62
  export interface Config {
@@ -138,7 +87,7 @@ export interface Config {
138
87
 
139
88
  ## `@deepseek-ai/dsh-agent-loop`
140
89
 
141
- 需要:`agents` · `sessions` · `llm` · `tools` · `systemPrompt`
90
+ 需要:`agents` · `sessions` · `llm` · `tools` · `systemPrompt` · `sessionProjections`
142
91
 
143
92
  ```ts config-catalog
144
93
  /** Agent-loop plugin configuration. */
@@ -162,15 +111,15 @@ export interface Config {
162
111
  }
163
112
  ```
164
113
 
165
- 依赖:[`AgentOptions`](subsystems/core.md) · [`SessionId`](subsystems/core.md)
114
+ 依赖:[`AgentOptions`](subsystems/core.zh.md) · [`SessionId`](subsystems/core.zh.md)
166
115
 
167
- 来源:[`packages/core/agent-loop/src/index.ts:255`](../packages/core/agent-loop/src/index.ts)
116
+ 来源:[`packages/core/agent-loop/src/index.ts:311`](../packages/core/agent-loop/src/index.ts)
168
117
 
169
118
  <a id="deepseek-aidsh-agent-presets"></a>
170
119
 
171
120
  ## `@deepseek-ai/dsh-agent-presets`
172
121
 
173
- 需要:`loader`
122
+ 需要:`loader` · `sessionProjections`
174
123
 
175
124
  ```ts config-catalog
176
125
  /** Plugin config: which preset is the default, and where presets live. */
@@ -179,9 +128,17 @@ export interface Config {
179
128
  default: string
180
129
  /** Scanned roots in precedence order; an earlier root wins a duplicate id. */
181
130
  roots: PresetRoot[]
131
+ /**
132
+ * Prepend this package's bundled shipped presets as a `system` root, before
133
+ * every configured root, so the shipped set always mounts and wins a
134
+ * duplicate id. The default survives a whole-`config` patch replacement;
135
+ * only an explicit `false` — a deployment supplying purely its own presets,
136
+ * or an embedder using the roster as bare machinery — drops the set.
137
+ */
138
+ includeShippedRoot: boolean
182
139
  /**
183
140
  * Append the harness home's `USER_PRESET_DIR` as a `user` root, after every
184
- * configured root. False mounts a roster over `roots` alone.
141
+ * configured root. False mounts a roster without the derived writable root.
185
142
  */
186
143
  includeUserRoot: boolean
187
144
  }
@@ -204,98 +161,6 @@ export type PresetTrust = 'system' | 'user'
204
161
 
205
162
  来源:[`packages/preset/agent-presets/src/preset.ts:52`](../packages/preset/agent-presets/src/preset.ts)
206
163
 
207
- <a id="deepseek-aidsh-agent-spine-demo"></a>
208
-
209
- ## `@deepseek-ai/dsh-agent-spine-demo`
210
-
211
- ```ts config-catalog
212
- /**
213
- * Bundle config: each field forwarded verbatim to the child that owns it —
214
- * `agents` to the agent loop (an app that pre-creates no agents, like the ACP
215
- * bridge, simply omits it), `includeHarnessIdentity`, `includeRuntimeContext`,
216
- * `persona`, and `toolOrder` to the system-prompt plugin (the fixed opener,
217
- * dynamic-context policy, deployment persona, and explicit model-facing tool
218
- * order), the `tools` object to the tool registry (its presentation `mode`),
219
- * `dshHome` to bash environment and local skill discovery, `sessionTitle` to
220
- * the fallback title service, `skills` to the
221
- * skill registry/local provider/tool consumer, `workspaceContext` to the
222
- * agent-instructions loader, `jobs` to the process-local job provider, and
223
- * `toolBash`/`toolJobs` to the model-facing tool plugins this bundle owns.
224
- * Provider adapters own their `retryPolicy`; this bundle always mounts its
225
- * executor.
226
- * `goals` opts into and configures the persisted goal domain plus its model tool
227
- * and same-session driver; `invariants` configures global and package-filtered
228
- * relational checks. Owner schemas supply defaults for optional input;
229
- * workspace context instead requires an explicit byte budget or `false` because
230
- * it changes model-visible input. Producer opt-in stays producer-local:
231
- * `toolBash` configures bash only; independently composed producers keep their
232
- * own config. Set `toolBash: false` when another plugin owns the model-facing
233
- * `bash` name.
234
- */
235
- export interface Config {
236
- /** The agent-loop `agents` list (see dsh-agent-loop's `Config`). */
237
- agents?: AgentLoopConfig['agents']
238
- /** Agent-loop concurrency cap; `1` is serial. */
239
- maxParallelToolCalls?: AgentLoopConfig['maxParallelToolCalls']
240
- /** Whether the system prompt includes the fixed Harness identity (default true). */
241
- includeHarnessIdentity?: SystemPromptConfig['includeHarnessIdentity']
242
- /** Whether model history includes dynamic runtime-context snapshots (default true). */
243
- includeRuntimeContext?: SystemPromptConfig['includeRuntimeContext']
244
- /** The deployment persona (see dsh-system-prompt's `Config`). */
245
- persona?: SystemPromptConfig['persona']
246
- /** The explicit model-facing tool order (see dsh-system-prompt's `Config`). */
247
- toolOrder?: SystemPromptConfig['toolOrder']
248
- /** The tool registry's config — its presentation `mode` (see dsh-tools' `Config`). */
249
- tools?: ToolsConfig
250
- /** DeepSeek Harness home directory shared by shell context and local skill discovery. */
251
- dshHome?: string
252
- /** Deterministic fallback and accepted-title limits; omission uses the bundle's example policy. */
253
- sessionTitle?: SessionTitleConfig
254
- /** Workspace-context loader controls with an explicit byte budget; set `false` for hermetic prompts. */
255
- workspaceContext: workspaceContext.Config | false
256
- /**
257
- * Skill registry, local provider, and model-facing consumer config.
258
- * Skills use `enabled` because one nested config controls a provider stack;
259
- * single model-tool plugins use `Config | false` to disable that one consumer.
260
- */
261
- skills?: SkillConfig
262
- /** Model-facing bash tool config, or false when another plugin owns `bash`. */
263
- toolBash?: toolBash.Config | false
264
- /** Process-local background-job admission config. */
265
- jobs?: JobsConfig
266
- /** Generic background-job controls; set false to keep the job service without model-facing job tools. */
267
- toolJobs?: toolJobs.Config | false
268
- /** Global enablement and package-name filters for invariant companions. */
269
- invariants?: InvariantConfig
270
- /** Opt-in persisted same-session goal stack; set false or omit to leave it unmounted. */
271
- goals?: GoalConfig | false
272
- }
273
-
274
- /** Skill bundle config forwarded to the registry, local provider, and model-facing consumer. */
275
- export interface SkillConfig {
276
- /** Mount the bundled local skill provider and model-facing skill tool (default true). */
277
- enabled?: boolean
278
- /** Registry-level discovery cache settings. */
279
- registry?: SkillRegistryConfig
280
- /** Local filesystem skill provider settings. */
281
- filesystem?: SkillFileSystem.Config
282
- /** Model-facing skill catalog and tool settings. */
283
- tool?: toolSkill.Config
284
- }
285
-
286
- /** Persisted goal domain, model-tool policy, and same-session driver config. */
287
- export interface GoalConfig {
288
- /** Goal-domain creation defaults. */
289
- domain?: GoalDomainConfig
290
- /** Model-facing goal-tool authority policy. */
291
- tool?: toolGoal.Config
292
- }
293
- ```
294
-
295
- 依赖:[`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)
296
-
297
- 来源:[`packages/examples/agent-spine-demo/src/index.ts:92`](../packages/examples/agent-spine-demo/src/index.ts)
298
-
299
164
  <a id="deepseek-aidsh-agent-tool-presentation"></a>
300
165
 
301
166
  ## `@deepseek-ai/dsh-agent-tool-presentation`
@@ -307,7 +172,7 @@ export interface GoalConfig {
307
172
  export interface Config {
308
173
  /**
309
174
  * The form this agent's model sees. `native` sends every visible schema,
310
- * `code` sends only `run_code` plus a generated SDK, `both` sends both.
175
+ * `ptc` sends only `run_code` plus a generated SDK, `both` sends both.
311
176
  * Required rather than defaulted: the deployment default is what a preset
312
177
  * without this row already gets, so an omitted value would mean the row was
313
178
  * composed for nothing.
@@ -316,10 +181,58 @@ export interface Config {
316
181
  }
317
182
  ```
318
183
 
319
- 依赖:[`ToolPresentationMode`](subsystems/tools.md)
184
+ 依赖:[`ToolPresentationMode`](subsystems/tools.zh.md)
320
185
 
321
186
  来源:[`packages/core/agent-tool-presentation/src/index.ts:38`](../packages/core/agent-tool-presentation/src/index.ts)
322
187
 
188
+ <a id="deepseek-aidsh-api-gateway"></a>
189
+
190
+ ## `@deepseek-ai/dsh-api-gateway`
191
+
192
+ 需要:`typert`
193
+
194
+ ```ts config-catalog
195
+ /** Gateway transport configuration. */
196
+ export interface Config {
197
+ /** WebSocket Ping interval from 1 through 2,147,483,647 milliseconds. @default 2000 */
198
+ readonly websocketHeartbeatIntervalMs?: number
199
+ }
200
+ ```
201
+
202
+ 来源:[`packages/api/gateway/src/index.ts:119`](../packages/api/gateway/src/index.ts)
203
+
204
+ <a id="deepseek-aidsh-api-session-controller"></a>
205
+
206
+ ## `@deepseek-ai/dsh-api-session-controller`
207
+
208
+ 需要:`agentDefaultModel` · `agents` · `attachments` · `llm` · `sessions` · `sessionProjections` · `sessionQuery` · `typert` · `workspaceRegistry`
209
+
210
+ ```ts config-catalog
211
+ /** Session Controller deployment policy. */
212
+ export interface Config {
213
+ /** Maximum cold Session artifact size eligible for one full projection observation. */
214
+ readonly coldBlankProbeMaxBytes?: number
215
+ /** Override platform desktop-opener detection. */
216
+ readonly nativeOpen?: boolean
217
+ }
218
+ ```
219
+
220
+ 来源:[`packages/api/session-controller/src/index.ts:67`](../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
+ 来源:[`packages/api/settings-controller/src/index.ts:36`](../packages/api/settings-controller/src/index.ts)
235
+
323
236
  <a id="deepseek-aidsh-attachment-local"></a>
324
237
 
325
238
  ## `@deepseek-ai/dsh-attachment-local`
@@ -329,18 +242,31 @@ export interface Config {
329
242
  export interface Config {
330
243
  /** Explicit harness home; omitted follows `DSH_HOME`, then `~/.dsh`. */
331
244
  dshHome?: string
332
- /** Maximum encoded bytes accepted for one image. */
245
+ /** Maximum encoded bytes accepted for one submitted image. Default: 20 MiB. */
333
246
  maxImageBytes?: number
334
- /** Maximum image count accepted in one submitted message. */
247
+ /** Maximum image count accepted in one submitted message. Default: 20. */
335
248
  maxImagesPerMessage?: number
336
- /** Maximum aggregate encoded image bytes accepted in one submitted message. */
249
+ /** Maximum aggregate encoded image bytes accepted in one submitted message. Default: 200 MiB. */
337
250
  maxMessageImageBytes?: number
338
- /** 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. */
339
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
340
266
  }
341
267
  ```
342
268
 
343
- 来源:[`packages/attachment/attachment-local/src/index.ts:24`](../packages/attachment/attachment-local/src/index.ts)
269
+ 来源:[`packages/attachment/attachment-local/src/index.ts:55`](../packages/attachment/attachment-local/src/index.ts)
344
270
 
345
271
  <a id="deepseek-aidsh-bash-local"></a>
346
272
 
@@ -393,7 +319,7 @@ export type Config = LocalConfig
393
319
 
394
320
  ## `@deepseek-ai/dsh-client-connection`
395
321
 
396
- 需要:`webServer`
322
+ 需要:`webServer` · `credentials`
397
323
 
398
324
  ```ts config-catalog
399
325
  /** Plugin config: the deployment's non-loopback serving authorities. */
@@ -403,22 +329,24 @@ export interface ConnectionConfig {
403
329
  * port-less `host` matching any port. The /api trust fence refuses any
404
330
  * request whose Host is neither loopback nor listed here, so a
405
331
  * non-loopback (`0.0.0.0`) deployment must declare the names it is reached
406
- * by (the dsh CLI derives the machine's LAN IP literals itself). An entry
407
- * 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.
408
334
  */
409
335
  trustedHosts?: string[]
410
- /** 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. */
411
339
  maxRequestBodyBytes?: number
412
340
  }
413
341
  ```
414
342
 
415
- 来源:[`packages/client/connection/src/index.ts:50`](../packages/client/connection/src/index.ts)
343
+ 来源:[`packages/client/connection/src/index.ts:55`](../packages/client/connection/src/index.ts)
416
344
 
417
345
  <a id="deepseek-aidsh-client-hmr"></a>
418
346
 
419
347
  ## `@deepseek-ai/dsh-client-hmr`
420
348
 
421
- 需要:`clientModuleHost` · `webServer`
349
+ 需要:`clientModules` · `webServer`
422
350
 
423
351
  ```ts config-catalog
424
352
  /** Plugin config, validated by the same-named schemastery schema. */
@@ -567,7 +495,7 @@ export interface Config {
567
495
  }
568
496
  ```
569
497
 
570
- 来源:[`packages/credentials/credentials-local/src/index.ts:55`](../packages/credentials/credentials-local/src/index.ts)
498
+ 来源:[`packages/credentials/credentials-local/src/index.ts:64`](../packages/credentials/credentials-local/src/index.ts)
571
499
 
572
500
  <a id="deepseek-aidsh-e2b"></a>
573
501
 
@@ -587,6 +515,136 @@ export interface Config {
587
515
 
588
516
  来源:[`packages/e2b/e2b/src/index.ts:43`](../packages/e2b/e2b/src/index.ts)
589
517
 
518
+ <a id="deepseek-aidsh-experimental-agent-team"></a>
519
+
520
+ ## `@deepseek-ai/dsh-experimental-agent-team`
521
+
522
+ 需要:`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
+ 来源:[`packages/experimental/agent-team/src/types.ts:125`](../packages/experimental/agent-team/src/types.ts)
541
+
542
+ <a id="deepseek-aidsh-experimental-inspector"></a>
543
+
544
+ ## `@deepseek-ai/dsh-experimental-inspector`
545
+
546
+ 需要:`webServer`
547
+
548
+ ```ts config-catalog
549
+ /** Host plugin configuration. Fetch capture is enabled by default. */
550
+ export interface Config extends Omit<InspectorOptions, 'clientOrigins'> {
551
+ /** Browser origins allowed to open the Client ingest WebSocket. */
552
+ clientOrigins?: string[]
553
+ }
554
+
555
+ /** User-facing Host options; every memory and lifecycle bound is configurable. */
556
+ export interface InspectorOptions {
557
+ /** Loopback address used by the Worker HTTP and WebSocket endpoint. */
558
+ readonly host?: '127.0.0.1'
559
+ /** First port to bind; occupied ports advance until one is available. */
560
+ readonly port?: number
561
+ /** Additional exact browser origins admitted to the Client ingest socket. */
562
+ readonly clientOrigins?: readonly string[]
563
+ /** Whether to observe calls made through the current global fetch function. */
564
+ readonly captureFetch?: boolean
565
+ /** Maximum request-body prefix retained for one fetch. */
566
+ readonly maxRequestBodyBytes?: number
567
+ /** Maximum response-body prefix retained for one fetch. */
568
+ readonly maxResponseBodyBytes?: number
569
+ /** Maximum raw bytes encoded into one body observation. */
570
+ readonly maxBodyChunkBytes?: number
571
+ /** Maximum total request and response body bytes retained by the Worker. */
572
+ readonly maxJournalBytes?: number
573
+ /** Maximum active and completed fetch requests retained by the Worker. */
574
+ readonly maxRetainedRequests?: number
575
+ /** Maximum encoded bytes accepted in one source transport frame. */
576
+ readonly maxSourceFrameBytes?: number
577
+ /** Maximum observation records accepted in one source batch. */
578
+ readonly maxSourceRecordsPerFrame?: number
579
+ /** Maximum records waiting in one producer queue. */
580
+ readonly maxQueuedRecords?: number
581
+ /** Maximum encoded bytes waiting in one producer queue. */
582
+ readonly maxQueuedBytes?: number
583
+ /** Maximum time allowed for the Worker to become ready. */
584
+ readonly startupTimeoutMs?: number
585
+ /** Grace period before a stopping Worker is terminated. */
586
+ readonly stopTimeoutMs?: number
587
+ /** Initial upper bound for randomized Client reconnect delay. */
588
+ readonly clientReconnectBaseMs?: number
589
+ /** Maximum upper bound for randomized Client reconnect delay. */
590
+ readonly clientReconnectMaxMs?: number
591
+ /** Deadline for one Worker-to-Client Runtime or Sources request. */
592
+ readonly clientRuntimeTimeoutMs?: number
593
+ /** Deadline for one non-CDP semantic query. */
594
+ readonly queryTimeoutMs?: number
595
+ /** Maximum live object handles retained per Client Runtime session. */
596
+ readonly maxClientRuntimeObjects?: number
597
+ /** Maximum descriptors returned by one Client property request. */
598
+ readonly maxClientRuntimeProperties?: number
599
+ /** Maximum encoded bytes read for one Client script or source map. */
600
+ readonly maxClientSourceBytes?: number
601
+ /** Maximum Context and Fiber nodes retained in one realm snapshot. */
602
+ readonly maxCordisNodes?: number
603
+ /** Disconnected Cordis snapshots retained after their live realm closes. */
604
+ readonly maxDisconnectedCordisTrees?: number
605
+ }
606
+ ```
607
+
608
+ 来源:[`packages/experimental/inspector/src/index.ts:66`](../packages/experimental/inspector/src/index.ts)
609
+
610
+ <a id="deepseek-aidsh-experimental-tool-agent-team"></a>
611
+
612
+ ## `@deepseek-ai/dsh-experimental-tool-agent-team`
613
+
614
+ 需要:`agents` · `agentTeams` · `tools` · `systemPrompt`
615
+
616
+ ```ts config-catalog
617
+ /** Tool routing configuration. */
618
+ export interface Config {
619
+ /** Continuable-subagent provider used for fresh teammates. */
620
+ readonly freshProvider?: string
621
+ /** Continuable-subagent provider used for completed-prefix fork teammates. */
622
+ readonly forkProvider?: string
623
+ }
624
+ ```
625
+
626
+ 来源:[`packages/experimental/tool-agent-team/src/index.ts:17`](../packages/experimental/tool-agent-team/src/index.ts)
627
+
628
+ <a id="deepseek-aidsh-file-reference-local"></a>
629
+
630
+ ## `@deepseek-ai/dsh-file-reference-local`
631
+
632
+ 需要:`agents` · `sessionProjections`
633
+
634
+ ```ts config-catalog
635
+ /** Local file-reference discovery configuration. */
636
+ export interface Config {
637
+ /** Maximum ranked candidates returned for one query. */
638
+ maxResults?: number
639
+ /** Maximum indexed files and directories per agent workspace. */
640
+ maxEntries?: number
641
+ /** Directory basenames never traversed or offered. */
642
+ excludedDirectories?: string[]
643
+ }
644
+ ```
645
+
646
+ 来源:[`packages/context/file-reference-local/src/index.ts:34`](../packages/context/file-reference-local/src/index.ts)
647
+
590
648
  <a id="deepseek-aidsh-fs-local"></a>
591
649
 
592
650
  ## `@deepseek-ai/dsh-fs-local`
@@ -624,13 +682,13 @@ export type Config = LocalConfig
624
682
 
625
683
  依赖:[`LocalConfig`](#deepseek-aidsh-fs-local)
626
684
 
627
- 来源:[`packages/fs/fs-sandbox/src/index.ts:49`](../packages/fs/fs-sandbox/src/index.ts)
685
+ 来源:[`packages/fs/fs-sandbox/src/index.ts:45`](../packages/fs/fs-sandbox/src/index.ts)
628
686
 
629
687
  <a id="deepseek-aidsh-goal"></a>
630
688
 
631
689
  ## `@deepseek-ai/dsh-goal`
632
690
 
633
- 需要:`agents`
691
+ 需要:`agents` · `sessionProjections`
634
692
 
635
693
  ```ts config-catalog
636
694
  /** Deployment defaults for goal creation. */
@@ -640,7 +698,7 @@ export interface Config {
640
698
  }
641
699
  ```
642
700
 
643
- 来源:[`packages/goal/goal/src/index.ts:116`](../packages/goal/goal/src/index.ts)
701
+ 来源:[`packages/goal/goal/src/index.ts:171`](../packages/goal/goal/src/index.ts)
644
702
 
645
703
  <a id="deepseek-aidsh-headless"></a>
646
704
 
@@ -656,13 +714,13 @@ export interface Config {
656
714
  }
657
715
  ```
658
716
 
659
- 来源:[`packages/bundle/headless/src/index.ts:31`](../packages/bundle/headless/src/index.ts)
717
+ 来源:[`packages/bundle/headless/src/index.ts:33`](../packages/bundle/headless/src/index.ts)
660
718
 
661
719
  <a id="deepseek-aidsh-hooks-claude-code"></a>
662
720
 
663
721
  ## `@deepseek-ai/dsh-hooks-claude-code`
664
722
 
665
- 需要:`bash`
723
+ 需要:`shell` · `sessionProjections`
666
724
 
667
725
  ```ts config-catalog
668
726
  /** Plugin config: where the CC hook config lives + substitution roots. */
@@ -694,13 +752,13 @@ export interface Config {
694
752
  }
695
753
  ```
696
754
 
697
- 来源:[`packages/hooks/hooks-claude-code/src/index.ts:45`](../packages/hooks/hooks-claude-code/src/index.ts)
755
+ 来源:[`packages/hooks/hooks-claude-code/src/index.ts:46`](../packages/hooks/hooks-claude-code/src/index.ts)
698
756
 
699
757
  <a id="deepseek-aidsh-hooks-codex"></a>
700
758
 
701
759
  ## `@deepseek-ai/dsh-hooks-codex`
702
760
 
703
- 需要:`bash`
761
+ 需要:`shell` · `sessionProjections`
704
762
 
705
763
  ```ts config-catalog
706
764
  /** Plugin config: where the Codex hooks.json lives + the model name for payloads. */
@@ -721,41 +779,7 @@ export interface Config {
721
779
  }
722
780
  ```
723
781
 
724
- 来源:[`packages/hooks/hooks-codex/src/index.ts:44`](../packages/hooks/hooks-codex/src/index.ts)
725
-
726
- <a id="deepseek-aidsh-host-apiproxy"></a>
727
-
728
- ## `@deepseek-ai/dsh-host-apiproxy`
729
-
730
- 需要:`agentDefaultModel` · `agents` · `attachments` · `directoryPicker` · `llm` · `sessions` · `subagents` · `sessionQuery` · `tools` · `userInteraction` · `workspace`
731
-
732
- ```ts config-catalog
733
- /** Gateway plugin configuration. */
734
- export interface Config {
735
- /**
736
- * Whether this deployment can hand paths to a native desktop opener —
737
- * the `hasDocument` capability the agent-preset roster reports. Absent,
738
- * the platform is asked (macOS/Windows/WSL yes; Linux only with a display
739
- * server); set it explicitly where detection misleads, e.g. `false` in a
740
- * container whose DISPLAY points nowhere a user can see.
741
- */
742
- nativeOpen?: boolean
743
- /**
744
- * DEFLATE level for every session-log ZIP entry: `0` stores without
745
- * compression, `1` favors CPU/latency, and `9` favors archive size.
746
- * @default 6
747
- */
748
- sessionExportCompressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
749
- /**
750
- * Maximum physical size of a cold Session artifact eligible for blankness
751
- * verification. Zero disables probes.
752
- * @default 1024
753
- */
754
- coldBlankProbeMaxBytes?: number
755
- }
756
- ```
757
-
758
- 来源:[`packages/host/apiproxy/src/index.ts:41`](../packages/host/apiproxy/src/index.ts)
782
+ 来源:[`packages/hooks/hooks-codex/src/index.ts:45`](../packages/hooks/hooks-codex/src/index.ts)
759
783
 
760
784
  <a id="deepseek-aidsh-host-directory-picker-browse"></a>
761
785
 
@@ -775,7 +799,7 @@ export interface Config {
775
799
 
776
800
  ## `@deepseek-ai/dsh-host-frontend-static`
777
801
 
778
- 需要:`webServer`
802
+ 需要:`webServer` · `connection`
779
803
 
780
804
  ```ts config-catalog
781
805
  /** Plugin config: the dist anchor. */
@@ -785,23 +809,29 @@ export interface Config {
785
809
  }
786
810
  ```
787
811
 
788
- 来源:[`packages/host/frontend-static/src/index.ts:28`](../packages/host/frontend-static/src/index.ts)
812
+ 来源:[`packages/host/frontend-static/src/index.ts:30`](../packages/host/frontend-static/src/index.ts)
789
813
 
790
814
  <a id="deepseek-aidsh-host-webserver"></a>
791
815
 
792
816
  ## `@deepseek-ai/dsh-host-webserver`
793
817
 
794
818
  ```ts config-catalog
795
- /** Gateway config: the listen address. */
819
+ /** Web server listen and response-compression config. */
796
820
  export interface Config {
797
821
  /** Listen host; the two supported values are loopback and all-interfaces. */
798
822
  host: '127.0.0.1' | '0.0.0.0'
799
823
  /** Listen port; zero requests an OS-assigned port. */
800
824
  port: number
825
+ /** Response compression for socket-backed HTTP requests. @default 'none' */
826
+ compression?: 'none' | 'gzip'
827
+ /** Gzip DEFLATE level from 0 through 9. @default 1 */
828
+ compressionLevel?: number
829
+ /** Minimum known response length eligible for gzip; unknown-length streams are eligible. @default 1024 */
830
+ compressionThresholdBytes?: number
801
831
  }
802
832
  ```
803
833
 
804
- 来源:[`packages/host/webserver/src/index.ts:45`](../packages/host/webserver/src/index.ts)
834
+ 来源:[`packages/host/webserver/src/index.ts:59`](../packages/host/webserver/src/index.ts)
805
835
 
806
836
  <a id="deepseek-aidsh-invariants"></a>
807
837
 
@@ -861,16 +891,36 @@ export interface Config {
861
891
  /** Deployment thinking policy; `disabled` limits every conversation request to `off`. */
862
892
  thinking?: 'enabled' | 'disabled'
863
893
  /** Default thinking effort (default `high`); `off` disables thinking per request. */
864
- reasoningEffort?: 'off' | 'high' | 'max'
894
+ reasoningEffort?: 'off' | 'low' | 'high' | 'max'
865
895
  /** Default per-request output cap (default 256,000); a model's own cap and explicit request values win. */
866
896
  maxTokens?: number
867
897
  /** Positive context capacity used when the selected model has no exact value (default 1,000,000). */
868
898
  defaultContextWindow?: number
869
- /** Advisory models shown by discovery consumers; defaults to V4 Flash and V4 Pro. */
899
+ /** Advisory models shown by discovery consumers; defaults to V4 Flash, V4 Pro, and V4 Flash Vision Exp. */
870
900
  models?: DeepSeekCatalogModel[]
871
901
  /** Maximum provider idle time while one stream read is outstanding (default five minutes). */
872
902
  streamIdleTimeoutMs?: number
873
- /** Provider-owned model-request retry policy; omission uses normal defaults. */
903
+ /** Maximum accumulated file-referenced image bytes per chat request (default 128 MiB). */
904
+ maxRequestFilesBytes?: number
905
+ /** Maximum accumulated base64 image payload after Files API fallback (default 20 MiB). */
906
+ maxInlineRequestImageBytes?: number
907
+ /** Maximum number of represented images per chat request (default 600). */
908
+ maxImagesPerRequest?: number
909
+ /** Raw-byte removal step after the request exceeds its file bound (default 64 MiB). */
910
+ imageOffloadByteQuantum?: number
911
+ /** Base64-byte removal step after inline fallback exceeds its bound (default 10 MiB). */
912
+ inlineImageOffloadByteQuantum?: number
913
+ /** Image-count removal step after the request exceeds its count bound (default 20). */
914
+ imageOffloadCountQuantum?: number
915
+ /** Maximum duration of one request-image Files API resolution (default one minute). */
916
+ filesApiTimeoutMs?: number
917
+ /** Explicit lifetime assigned to each uploaded image (default seven days). */
918
+ fileExpiresAfterSeconds?: number
919
+ /** Remaining lifetime below which an indexed file is replaced (default one hour). */
920
+ fileRefreshMarginSeconds?: number
921
+ /** Oldest harness-owned files deleted before one quota-recovery upload retry (default 100). */
922
+ fileQuotaCleanupBatch?: number
923
+ /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
874
924
  retryPolicy?: RetryPolicyConfig
875
925
  }
876
926
 
@@ -886,12 +936,18 @@ export interface DeepSeekCatalogModel {
886
936
  contextWindow?: number
887
937
  /** Per-request output cap for this model; omission falls back to the profile's {@link DeepSeekConnectionOptions.maxTokens}. */
888
938
  maxTokens?: number
939
+ /** Accepted request modalities; omission is text-only. */
940
+ inputModalities?: ModelModality[]
941
+ /** Total-pixel budget for one deterministic request preview, or the 512-by-512 `low` preset. */
942
+ imagePixelBudget?: number | 'low'
943
+ /** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
944
+ imageMaxBytes?: number
889
945
  }
890
946
  ```
891
947
 
892
- 依赖:[`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
948
+ 依赖:[`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
893
949
 
894
- 来源:[`packages/llm/llm-deepseek/src/index.ts:62`](../packages/llm/llm-deepseek/src/index.ts)
950
+ 来源:[`packages/llm/llm-deepseek/src/index.ts:125`](../packages/llm/llm-deepseek/src/index.ts)
895
951
 
896
952
  <a id="deepseek-aidsh-llm-pi-ai"></a>
897
953
 
@@ -940,10 +996,11 @@ export interface PiAiProviderProfile {
940
996
  */
941
997
  modelOverrides?: Record<string, PiAiModelOverride>
942
998
  /**
943
- * Reasoning-dispatch switches for every `openai-completions` model on this
944
- * route; each model's own `compat` overrides per field. What neither sets
945
- * keeps the installed catalog entry's value, then pi-ai's baseURL-derived
946
- * detection.
999
+ * pi-ai wire-compatibility switches defaulting every model on this route
1000
+ * whose protocol declares them; each model's own `compat` overrides per
1001
+ * field. What neither sets keeps the installed catalog entry's value, then
1002
+ * pi-ai's own detection. A switch no model on the route could read is
1003
+ * refused rather than left looking applied.
947
1004
  */
948
1005
  compat?: PiAiCompatProfile
949
1006
  /**
@@ -985,7 +1042,21 @@ export interface PiAiProviderProfile {
985
1042
  websocketConnectTimeoutMs?: number
986
1043
  /** Maximum provider idle time while one stream read is outstanding. */
987
1044
  streamIdleTimeoutMs?: number
988
- /** Provider-owned model-request retry policy; omission uses normal defaults. */
1045
+ /**
1046
+ * Maximum base64-encoded image payload per request. When a request's
1047
+ * accumulated images exceed it, the oldest images are replaced by text
1048
+ * placeholders until the request fits, so a long session keeps completing
1049
+ * requests instead of being rejected by a request-size cap.
1050
+ */
1051
+ maxRequestImageBytes?: number
1052
+ /** Total-pixel budget for each deterministic inline request version. */
1053
+ requestImagePixelBudget?: number
1054
+ /**
1055
+ * Raw encoded-byte target for each deterministic inline request version;
1056
+ * the smallest quality-ladder output is used when no quality fits.
1057
+ */
1058
+ requestImageMaxBytes?: number
1059
+ /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
989
1060
  retryPolicy?: RetryPolicyConfig
990
1061
  }
991
1062
 
@@ -1024,7 +1095,7 @@ export interface PiAiModelProfile {
1024
1095
  * declares the offered levels and their wire spellings.
1025
1096
  */
1026
1097
  reasoningEfforts?: false | PiAiReasoningEfforts
1027
- /** Reasoning-dispatch switches for this model, winning over the route's. */
1098
+ /** pi-ai wire-compatibility switches for this model, winning over the route's per field; one its protocol does not declare is refused. */
1028
1099
  compat?: PiAiCompatProfile
1029
1100
  }
1030
1101
 
@@ -1038,19 +1109,89 @@ export interface PiAiModelProfile {
1038
1109
  export type PiAiModelOverride = Omit<PiAiModelProfile, 'id'>
1039
1110
 
1040
1111
  /**
1041
- * Reasoning-dispatch compatibility switches, set on the route (its models'
1042
- * default) or per model (winning over the route). Only the switches pi-ai's
1043
- * reasoning dispatch reads are offered; the rest of pi-ai's compat surface
1044
- * keeps its baseURL-derived auto-detection. pi-ai types both fields only on
1045
- * `OpenAICompletionsCompat` the other wire protocols define their reasoning
1046
- * fields in the protocol itself so resolution rejects a model-level switch
1047
- * anywhere else, while a route-level default skips past models it cannot fit.
1112
+ * pi-ai wire-compatibility switches, set on the route (its models' default) or
1113
+ * per model (winning over the route, field by field).
1114
+ *
1115
+ * pi-ai decides each of these from the provider id and baseURL when no layer
1116
+ * sets it, and a private gateway's URL says nothing: for an endpoint it does
1117
+ * not recognize the detection answers as though it were OpenAI itself, which
1118
+ * is wrong for most OpenAI-compatible gateways. So every field here is one a
1119
+ * deployment must be able to state because nothing can infer it, while the
1120
+ * fields pi-ai's catalog sets for a named vendor stay withheld.
1121
+ *
1122
+ * A field belongs to the protocols whose upstream compat type declares it: a
1123
+ * model-level switch its protocol does not take fails resolution, and a
1124
+ * route-level one skips past models it cannot fit. "The three Responses
1125
+ * protocols" below means `openai-responses`, `azure-openai-responses`, and
1126
+ * `openai-codex-responses`, which pi-ai gives one shared compat type, so a
1127
+ * switch settable on one is settable on all three.
1048
1128
  */
1049
1129
  export interface PiAiCompatProfile {
1050
- /** Reasoning parameter format the endpoint expects; absent keeps the catalog entry's, then pi-ai's baseURL-derived guess. */
1051
- thinkingFormat?: PiAiThinkingFormat
1052
- /** Whether the endpoint accepts `reasoning_effort`; absent keeps the catalog entry's, then pi-ai's baseURL-derived guess. */
1130
+ /** Whether the endpoint accepts `store`; `openai-completions`. */
1131
+ supportsStore?: boolean
1132
+ /**
1133
+ * Whether the endpoint accepts the `developer` role for the system prompt,
1134
+ * which pi-ai sends only to a reasoning model; `false` keeps `system`.
1135
+ * `openai-completions` and the three Responses protocols.
1136
+ */
1137
+ supportsDeveloperRole?: boolean
1138
+ /** Whether the endpoint accepts `reasoning_effort`; `openai-completions`. */
1053
1139
  supportsReasoningEffort?: boolean
1140
+ /** Whether the endpoint accepts `stream_options: {include_usage: true}`; `openai-completions`. */
1141
+ supportsUsageInStreaming?: boolean
1142
+ /**
1143
+ * Whether streams include `finish_reason`; `false` lets pi-ai infer the
1144
+ * terminal reason when the stream ends; `openai-completions`.
1145
+ */
1146
+ supportsFinishReason?: boolean
1147
+ /** Which output-cap field the endpoint reads; `openai-completions`. */
1148
+ maxTokensField?: NonNullable<OpenAICompletionsCompat['maxTokensField']>
1149
+ /** Whether tool results must carry `name`; `openai-completions`. */
1150
+ requiresToolResultName?: boolean
1151
+ /** Whether a user message after tool results needs an assistant message between; `openai-completions`. */
1152
+ requiresAssistantAfterToolResult?: boolean
1153
+ /** Whether thinking blocks must travel as text in `<thinking>` delimiters; `openai-completions`. */
1154
+ requiresThinkingAsText?: boolean
1155
+ /** Whether replayed assistant messages need an empty `reasoning_content` while reasoning is on; `openai-completions`. */
1156
+ requiresReasoningContentOnAssistantMessages?: boolean
1157
+ /** Reasoning parameter format the endpoint expects; `openai-completions`. */
1158
+ thinkingFormat?: PiAiThinkingFormat
1159
+ /**
1160
+ * Kwargs sent as `chat_template_kwargs`, which pi-ai reads only under the
1161
+ * two `chat-template` thinking formats; `openai-completions`. Nothing checks
1162
+ * that pairing: the format in force may come from the installed catalog
1163
+ * entry or from pi-ai's own baseURL detection, neither of which resolution
1164
+ * can read, so kwargs set beside another format are sent nowhere.
1165
+ */
1166
+ chatTemplateKwargs?: NonNullable<OpenAICompletionsCompat['chatTemplateKwargs']>
1167
+ /** Arguments sent as `chat_template_args` under the `baseten` thinking format; `openai-completions`. */
1168
+ chatTemplateArgs?: NonNullable<OpenAICompletionsCompat['chatTemplateArgs']>
1169
+ /** Whether the endpoint accepts `thinking_token_budget` to cap vLLM reasoning; `openai-completions`. */
1170
+ supportsThinkingTokenBudget?: boolean
1171
+ /**
1172
+ * Whether the endpoint accepts `strict` in tool definitions;
1173
+ * `openai-completions`, the three Responses protocols, `bedrock-converse-stream`.
1174
+ */
1175
+ supportsStrictMode?: boolean
1176
+ /** Prompt-cache marker convention; `openai-completions`. */
1177
+ cacheControlFormat?: NonNullable<OpenAICompletionsCompat['cacheControlFormat']>
1178
+ /**
1179
+ * Whether the endpoint accepts long prompt-cache retention;
1180
+ * `openai-completions`, the three Responses protocols, `anthropic-messages`.
1181
+ */
1182
+ supportsLongCacheRetention?: boolean
1183
+ /** Whether the endpoint accepts per-tool `eager_input_streaming`; `anthropic-messages`. */
1184
+ supportsEagerToolInputStreaming?: boolean
1185
+ /** Whether the endpoint accepts `cache_control` on tool definitions; `anthropic-messages`. */
1186
+ supportsCacheControlOnTools?: boolean
1187
+ /** Whether the endpoint accepts the `temperature` request field; `anthropic-messages`. */
1188
+ supportsTemperature?: boolean
1189
+ /** Whether to force adaptive thinking regardless of model id; `anthropic-messages`. */
1190
+ forceAdaptiveThinking?: boolean
1191
+ /** Whether to replay an empty thinking signature instead of converting thinking to text; `anthropic-messages`. */
1192
+ allowEmptySignature?: boolean
1193
+ /** Whether the endpoint accepts Anthropic strict tool schemas; `anthropic-messages`. */
1194
+ supportsStrictTools?: boolean
1054
1195
  }
1055
1196
 
1056
1197
  /** One request modality a pi-ai model may accept. */
@@ -1067,21 +1208,12 @@ export type PiAiModality = Model<Api>['input'][number]
1067
1208
  export type PiAiReasoningEfforts = Partial<Record<ModelThinkingLevel, string | null>>
1068
1209
 
1069
1210
  /** One reasoning-dispatch wire format a profile may name. */
1070
- export type PiAiThinkingFormat = Exclude<PiThinkingFormat, WithheldThinkingFormat>
1071
-
1072
- /** The `compat.thinkingFormat` spellings pi-ai accepts on an `openai-completions` model. */
1073
- type PiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
1074
-
1075
- /**
1076
- * pi-ai thinking formats a profile cannot name: both drive the request through
1077
- * `chatTemplateKwargs`, which this configuration does not expose.
1078
- */
1079
- type WithheldThinkingFormat = 'chat-template' | 'qwen-chat-template'
1211
+ export type PiAiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
1080
1212
  ```
1081
1213
 
1082
- 依赖:`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`)
1214
+ 依赖:`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`)
1083
1215
 
1084
- 来源:[`packages/llm/llm-pi-ai/src/config.ts:172`](../packages/llm/llm-pi-ai/src/config.ts)
1216
+ 来源:[`packages/llm/llm-pi-ai/src/config.ts:213`](../packages/llm/llm-pi-ai/src/config.ts)
1085
1217
 
1086
1218
  <a id="deepseek-aidsh-llm-replay"></a>
1087
1219
 
@@ -1137,6 +1269,15 @@ export interface ReplayModelConfig {
1137
1269
  * omit one, so replay reconstructs the request header a live catalog produced.
1138
1270
  */
1139
1271
  defaultMaxTokens?: number
1272
+ /**
1273
+ * Optional flat visual-token price the replay route declares for every
1274
+ * retained request image, so keyless scenarios exercise route-priced
1275
+ * request pressure; each occurrence is priced at this value plus its
1276
+ * request-preview handle text. Requires {@link inputModalities} to include
1277
+ * `image` — a text-only route never sends visual tokens. Absent declares
1278
+ * no image pricing.
1279
+ */
1280
+ imageRequestTokens?: number
1140
1281
  /** Optional reasoning-effort ids the replay route accepts, in display order. */
1141
1282
  reasoningEfforts?: string[]
1142
1283
  /**
@@ -1149,20 +1290,20 @@ export interface ReplayModelConfig {
1149
1290
 
1150
1291
  依赖:[`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
1151
1292
 
1152
- 来源:[`packages/test-support/llm-replay/src/index.ts:776`](../packages/test-support/llm-replay/src/index.ts)
1293
+ 来源:[`packages/test-support/llm-replay/src/index.ts:919`](../packages/test-support/llm-replay/src/index.ts)
1153
1294
 
1154
1295
  <a id="deepseek-aidsh-llm-retry"></a>
1155
1296
 
1156
1297
  ## `@deepseek-ai/dsh-llm-retry`
1157
1298
 
1158
- 需要:`agents`
1299
+ 需要:`agents` · `sessionProjections`
1159
1300
 
1160
1301
  ```ts config-catalog
1161
1302
  /** This policy executor has no config; providers own `retryPolicy`. */
1162
1303
  export type Config = Readonly<Record<string, never>>
1163
1304
  ```
1164
1305
 
1165
- 来源:[`packages/llm/llm-retry/src/index.ts:24`](../packages/llm/llm-retry/src/index.ts)
1306
+ 来源:[`packages/llm/llm-retry/src/index.ts:25`](../packages/llm/llm-retry/src/index.ts)
1166
1307
 
1167
1308
  <a id="deepseek-aidsh-lsp-stdio"></a>
1168
1309
 
@@ -1299,7 +1440,7 @@ export interface Config {
1299
1440
 
1300
1441
  ## `@deepseek-ai/dsh-permission-presets`
1301
1442
 
1302
- 需要:`bash` · `approval` · `sessions`
1443
+ 需要:`shell` · `approval` · `sessions` · `sessionProjections`
1303
1444
 
1304
1445
  ```ts config-catalog
1305
1446
  /** The {@link PermissionPresetService} config: preset table and composition default. */
@@ -1330,9 +1471,9 @@ export interface PresetSpec {
1330
1471
  }
1331
1472
  ```
1332
1473
 
1333
- 依赖:[`ApprovalPolicy`](subsystems/approval.md) · [`SandboxMode`](subsystems/sandbox.md)
1474
+ 依赖:[`ApprovalPolicy`](subsystems/approval.zh.md) · [`SandboxMode`](subsystems/sandbox.zh.md)
1334
1475
 
1335
- 来源:[`packages/interaction/permission-presets/src/index.ts:140`](../packages/interaction/permission-presets/src/index.ts)
1476
+ 来源:[`packages/interaction/permission-presets/src/index.ts:143`](../packages/interaction/permission-presets/src/index.ts)
1336
1477
 
1337
1478
  <a id="deepseek-aidsh-persona"></a>
1338
1479
 
@@ -1356,13 +1497,13 @@ export interface Config {
1356
1497
  }
1357
1498
  ```
1358
1499
 
1359
- 来源:[`packages/preset/persona/src/index.ts:34`](../packages/preset/persona/src/index.ts)
1500
+ 来源:[`packages/preset/persona/src/index.ts:30`](../packages/preset/persona/src/index.ts)
1360
1501
 
1361
1502
  <a id="deepseek-aidsh-plan-mode"></a>
1362
1503
 
1363
1504
  ## `@deepseek-ai/dsh-plan-mode`
1364
1505
 
1365
- 需要:`tools` · `systemPrompt`
1506
+ 需要:`tools` · `systemPrompt` · `sessionProjections`
1366
1507
 
1367
1508
  ```ts config-catalog
1368
1509
  /** Deployment-owned plan guidance. */
@@ -1372,7 +1513,23 @@ export interface PlanModeConfig {
1372
1513
  }
1373
1514
  ```
1374
1515
 
1375
- 来源:[`packages/plan/plan-mode/src/index.ts:70`](../packages/plan/plan-mode/src/index.ts)
1516
+ 来源:[`packages/plan/plan-mode/src/index.ts:63`](../packages/plan/plan-mode/src/index.ts)
1517
+
1518
+ <a id="deepseek-aidsh-plugin-package-inventory-deepseek"></a>
1519
+
1520
+ ## `@deepseek-ai/dsh-plugin-package-inventory-deepseek`
1521
+
1522
+ 需要:`agents` · `deepseekLlmApiExtensions` · `loader`
1523
+
1524
+ ```ts config-catalog
1525
+ /** Plugin-package request contribution configuration. */
1526
+ export interface Config {
1527
+ /** Contribute `dsh_plugin_packages` to official DeepSeek requests. Defaults to `true`. */
1528
+ enabled?: boolean
1529
+ }
1530
+ ```
1531
+
1532
+ 来源:[`packages/llm/plugin-package-inventory-deepseek/src/index.ts:31`](../packages/llm/plugin-package-inventory-deepseek/src/index.ts)
1376
1533
 
1377
1534
  <a id="deepseek-aidsh-pwsh-local"></a>
1378
1535
 
@@ -1499,6 +1656,8 @@ export interface Config {
1499
1656
 
1500
1657
  ## `@deepseek-ai/dsh-sandbox-policy`
1501
1658
 
1659
+ 需要:`sessionProjections`
1660
+
1502
1661
  ```ts config-catalog
1503
1662
  /**
1504
1663
  * Plugin config: the deployment's sandbox default. All optional — `Config`
@@ -1518,9 +1677,25 @@ export interface Config {
1518
1677
  }
1519
1678
  ```
1520
1679
 
1521
- 依赖:[`SandboxMode`](subsystems/sandbox.md)
1680
+ 依赖:[`SandboxMode`](subsystems/sandbox.zh.md)
1681
+
1682
+ 来源:[`packages/sandbox/sandbox-policy/src/index.ts:70`](../packages/sandbox/sandbox-policy/src/index.ts)
1683
+
1684
+ <a id="deepseek-aidsh-sdk-app"></a>
1685
+
1686
+ ## `@deepseek-ai/dsh-sdk-app`
1522
1687
 
1523
- 来源:[`packages/sandbox/sandbox-policy/src/index.ts:67`](../packages/sandbox/sandbox-policy/src/index.ts)
1688
+ 需要:`cmdlineArgs`
1689
+
1690
+ ```ts config-catalog
1691
+ /** SDK stdio startup configuration. */
1692
+ export interface Config {
1693
+ /** Profile name rendered in help and diagnostics (default `sdk`). */
1694
+ profile?: string
1695
+ }
1696
+ ```
1697
+
1698
+ 来源:[`packages/bundle/sdk-app/src/index.ts:23`](../packages/bundle/sdk-app/src/index.ts)
1524
1699
 
1525
1700
  <a id="deepseek-aidsh-sdk-jsonrpc-server"></a>
1526
1701
 
@@ -1544,13 +1719,48 @@ export interface JsonRpcConfig {
1544
1719
 
1545
1720
  依赖:`Readable`(`node:stream`)· `Writable`(`node:stream`)
1546
1721
 
1547
- 来源:[`packages/sdk/server/src/index.ts:29`](../packages/sdk/server/src/index.ts)
1722
+ 来源:[`packages/sdk/server/src/index.ts:25`](../packages/sdk/server/src/index.ts)
1723
+
1724
+ <a id="deepseek-aidsh-session-log-deepseek"></a>
1725
+
1726
+ ## `@deepseek-ai/dsh-session-log-deepseek`
1727
+
1728
+ 需要:`deepseekLlmApiExtensions` · `sessions`
1729
+
1730
+ ```ts config-catalog
1731
+ /** Session-log request contribution configuration. */
1732
+ export interface Config {
1733
+ /** Contribute `dsh_session_log` to official DeepSeek requests. Defaults to `false`. */
1734
+ enabled?: boolean
1735
+ }
1736
+ ```
1737
+
1738
+ 来源:[`packages/session/session-log-deepseek/src/index.ts:23`](../packages/session/session-log-deepseek/src/index.ts)
1739
+
1740
+ <a id="deepseek-aidsh-session-log-export"></a>
1741
+
1742
+ ## `@deepseek-ai/dsh-session-log-export`
1743
+
1744
+ 需要:`commands` · `connection`
1745
+
1746
+ ```ts config-catalog
1747
+ /** Session-log archive policy. */
1748
+ export interface Config {
1749
+ /** DEFLATE level for each ZIP entry. @default 6 */
1750
+ readonly compressionLevel?: SessionLogCompressionLevel
1751
+ }
1752
+
1753
+ /** Valid fflate DEFLATE levels accepted by session-log export. */
1754
+ export type SessionLogCompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1755
+ ```
1756
+
1757
+ 来源:[`packages/session-query/session-log-export/src/index.ts:42`](../packages/session-query/session-log-export/src/index.ts)
1548
1758
 
1549
1759
  <a id="deepseek-aidsh-session-persistence-jsonl"></a>
1550
1760
 
1551
1761
  ## `@deepseek-ai/dsh-session-persistence-jsonl`
1552
1762
 
1553
- 需要:`sessions`
1763
+ 需要:`sessions` · `sessionProjections`
1554
1764
 
1555
1765
  ```ts config-catalog
1556
1766
  /** Plugin config: where the JSONL backend keeps its session logs, and the packed-row write switch. */
@@ -1583,65 +1793,21 @@ export interface Config {
1583
1793
  export type JsonlCompression = 'zstd' | 'none'
1584
1794
  ```
1585
1795
 
1586
- 来源:[`packages/session/session-persistence-jsonl/src/index.ts:60`](../packages/session/session-persistence-jsonl/src/index.ts)
1587
-
1588
- <a id="deepseek-aidsh-session-persistence-sqlite"></a>
1589
-
1590
- ## `@deepseek-ai/dsh-session-persistence-sqlite`
1591
-
1592
- 需要:`sessions`
1593
-
1594
- ```ts config-catalog
1595
- /** Plugin configuration. */
1596
- export interface Config {
1597
- /**
1598
- * Filesystem path to the SQLite database file. The special value `:memory:`
1599
- * opens an in-process database (tests). On filesystems with POSIX modes,
1600
- * missing directories and databases are created owner-only; existing path
1601
- * modes are preserved. Filesystem setup errors other than an existing database
1602
- * fail initialization. The backend does not protect confidentiality or
1603
- * integrity when another principal can replace the database entry in its
1604
- * parent directory.
1605
- */
1606
- path: string
1607
- /**
1608
- * SQLite `journal_mode` pragma. `wal` (the default) is the recorded
1609
- * durability model; pick a rollback-journal mode (`delete`/`truncate`/
1610
- * `persist`) on filesystems where WAL's shared-memory files do not work
1611
- * (network mounts). See {@link JournalMode}.
1612
- */
1613
- journalMode?: JournalMode
1614
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1615
- preparedSessionCacheSize?: number
1616
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1617
- writeBatchMaxDelayMs?: number
1618
- }
1619
-
1620
- /**
1621
- * Journal modes the backend will run under. `wal` is the default and the
1622
- * durability model the persistence ADR records; the rollback-journal modes
1623
- * (`delete`/`truncate`/`persist`) exist for filesystems where WAL's
1624
- * shared-memory files do not work (network mounts). `memory`/`off` are
1625
- * excluded: dropping journal durability silently contradicts what this
1626
- * backend promises.
1627
- */
1628
- export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1629
- ```
1630
-
1631
- 来源:[`packages/session/session-persistence-sqlite/src/index.ts:70`](../packages/session/session-persistence-sqlite/src/index.ts)
1796
+ 来源:[`packages/session/session-persistence-jsonl/src/index.ts:62`](../packages/session/session-persistence-jsonl/src/index.ts)
1632
1797
 
1633
1798
  <a id="deepseek-aidsh-session-projection-cache"></a>
1634
1799
 
1635
1800
  ## `@deepseek-ai/dsh-session-projection-cache`
1636
1801
 
1637
- 需要:`storageDomain` · `sessionProjections` · `sessionPersistence` · `sessions`
1802
+ 需要:`storageDomain` · `sessionProjections` · `sessions`
1638
1803
 
1639
1804
  ```ts config-catalog
1640
1805
  /**
1641
1806
  * Plugin config. Both throttle triggers are deployment choices with no
1642
1807
  * universally correct value, so the composition states them explicitly
1643
- * (cordis.yml); the two mandatory write points (`turn/end` and session
1644
- * disposal) are policy, not tunables, and always fire.
1808
+ * (cordis.yml); the three mandatory write points (session creation,
1809
+ * `turn/end`, and session disposal) are policy, not tunables, and always
1810
+ * fire.
1645
1811
  */
1646
1812
  export interface Config {
1647
1813
  /** Committed events per session that force a durable checkpoint write between mandatory points. */
@@ -1651,7 +1817,7 @@ export interface Config {
1651
1817
  }
1652
1818
  ```
1653
1819
 
1654
- 来源:[`packages/session/session-projection-cache/src/index.ts:42`](../packages/session/session-projection-cache/src/index.ts)
1820
+ 来源:[`packages/session/session-projection-cache/src/index.ts:48`](../packages/session/session-projection-cache/src/index.ts)
1655
1821
 
1656
1822
  <a id="deepseek-aidsh-session-query-sqlite"></a>
1657
1823
 
@@ -1783,7 +1949,7 @@ export interface Config {
1783
1949
  }
1784
1950
  ```
1785
1951
 
1786
- 来源:[`packages/session/session-title/src/index.ts:79`](../packages/session/session-title/src/index.ts)
1952
+ 来源:[`packages/session/session-title/src/index.ts:55`](../packages/session/session-title/src/index.ts)
1787
1953
 
1788
1954
  <a id="deepseek-aidsh-session-title-all-prompts-llm"></a>
1789
1955
 
@@ -1833,7 +1999,7 @@ export interface Config {
1833
1999
  }
1834
2000
  ```
1835
2001
 
1836
- 来源:[`packages/settings/settings-file/src/index.ts:21`](../packages/settings/settings-file/src/index.ts)
2002
+ 来源:[`packages/settings/settings-file/src/index.ts:22`](../packages/settings/settings-file/src/index.ts)
1837
2003
 
1838
2004
  <a id="deepseek-aidsh-shell-env"></a>
1839
2005
 
@@ -1861,7 +2027,7 @@ export interface Config {
1861
2027
  }
1862
2028
  ```
1863
2029
 
1864
- 来源:[`packages/skill/skill/src/index.ts:279`](../packages/skill/skill/src/index.ts)
2030
+ 来源:[`packages/skill/skill/src/index.ts:280`](../packages/skill/skill/src/index.ts)
1865
2031
 
1866
2032
  <a id="deepseek-aidsh-skill-filesystem"></a>
1867
2033
 
@@ -1872,7 +2038,7 @@ export interface Config {
1872
2038
  ```ts config-catalog
1873
2039
  /** Local filesystem skill provider configuration. */
1874
2040
  export interface Config {
1875
- /** Unique provider name. Defaults to `local`. */
2041
+ /** Unique provider name. Defaults to `filesystem`. */
1876
2042
  providerName?: string
1877
2043
  /** Whether project and user roots are included around custom roots. */
1878
2044
  includeDefaultRoots?: boolean
@@ -1914,16 +2080,27 @@ export interface Config {
1914
2080
  * a local deployment. Set it to keep spill files under a known location.
1915
2081
  */
1916
2082
  root?: string
2083
+ /**
2084
+ * Age in days after which a spill file is eligible for the one-shot startup
2085
+ * cleanup sweep. Defaults to `30`; `0` disables cleanup entirely. Files whose
2086
+ * `mtime` is strictly older than the cutoff are deleted and emptied
2087
+ * directories are pruned; fresh files, symlinks, and unrelated entries are
2088
+ * left untouched. On POSIX, cleanup skips roots and session directories that
2089
+ * another local user could modify or replace. Retention is deliberate — a
2090
+ * resumed or forked session may still reference an older locator until it
2091
+ * ages out.
2092
+ */
2093
+ cleanupPeriodDays?: number
1917
2094
  }
1918
2095
  ```
1919
2096
 
1920
- 来源:[`packages/spill/spill-local/src/index.ts:22`](../packages/spill/spill-local/src/index.ts)
2097
+ 来源:[`packages/spill/spill-local/src/index.ts:31`](../packages/spill/spill-local/src/index.ts)
1921
2098
 
1922
2099
  <a id="deepseek-aidsh-spill-policy"></a>
1923
2100
 
1924
2101
  ## `@deepseek-ai/dsh-spill-policy`
1925
2102
 
1926
- 需要:`tools`
2103
+ 需要:`tools` · `sessionProjections`
1927
2104
 
1928
2105
  ```ts config-catalog
1929
2106
  /** Plugin config. */
@@ -1976,12 +2153,12 @@ export interface Config {
1976
2153
  * location explicitly.
1977
2154
  */
1978
2155
  export interface Config {
1979
- /** Directory holding one `<unit>.json` file per unit. */
2156
+ /** Directory holding one `<unit>.json` file (or `<unit>/` tree) per unit. */
1980
2157
  root: string
1981
2158
  }
1982
2159
  ```
1983
2160
 
1984
- 来源:[`packages/storage/storage-json/src/index.ts:27`](../packages/storage/storage-json/src/index.ts)
2161
+ 来源:[`packages/storage/storage-json/src/index.ts:28`](../packages/storage/storage-json/src/index.ts)
1985
2162
 
1986
2163
  <a id="deepseek-aidsh-storage-sqlite"></a>
1987
2164
 
@@ -2066,7 +2243,7 @@ export interface Config {
2066
2243
  * `MAX_TIMER_DELAY_MS`.
2067
2244
  */
2068
2245
  disposeEofGraceMs?: number
2069
- /** Termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2246
+ /** Failure-observation and termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2070
2247
  disposeGraceMs?: number
2071
2248
  }
2072
2249
 
@@ -2083,19 +2260,33 @@ export type PermissionPolicy = 'allow' | 'reject'
2083
2260
  需要:`subagents` · `subprocess`
2084
2261
 
2085
2262
  ```ts config-catalog
2086
- /** Deployment-owned environment and process-release bound. */
2263
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2087
2264
  export interface Config {
2265
+ /** Provider name on `ctx.subagents` (default `claude-code`). */
2266
+ providerName?: string
2267
+ /** Native Claude model fixed for this instance; omitted to inherit Claude settings. */
2268
+ model?: string
2088
2269
  /**
2089
2270
  * Explicit environment entries layered over the subprocess seam's
2090
2271
  * credential-scrubbed parent environment.
2091
2272
  */
2092
2273
  env?: Record<string, string>
2274
+ /**
2275
+ * Native non-interactive mode fixed for this Provider instance. Defaults to
2276
+ * `dontAsk`; `acceptEdits` accepts edits, `auto` uses the native classifier,
2277
+ * `plan` returns a plan without approving execution, and
2278
+ * `bypassPermissions` explicitly skips permission checks.
2279
+ */
2280
+ permissionMode?: ClaudeCodePermissionMode
2093
2281
  /** Grace in milliseconds for Claude Code process-tree termination. */
2094
2282
  disposeGraceMs?: number
2095
2283
  }
2284
+
2285
+ /** Profile-selectable non-interactive Claude Code permission mode. */
2286
+ export type ClaudeCodePermissionMode = typeof CLAUDE_CODE_PERMISSION_MODES[number]
2096
2287
  ```
2097
2288
 
2098
- 来源:[`packages/subagent/subagent-claude-code/src/index.ts:32`](../packages/subagent/subagent-claude-code/src/index.ts)
2289
+ 来源:[`packages/subagent/subagent-claude-code/src/index.ts:38`](../packages/subagent/subagent-claude-code/src/index.ts)
2099
2290
 
2100
2291
  <a id="deepseek-aidsh-subagent-codex"></a>
2101
2292
 
@@ -2104,19 +2295,31 @@ export interface Config {
2104
2295
  需要:`subagents` · `subprocess`
2105
2296
 
2106
2297
  ```ts config-catalog
2107
- /** Deployment-owned environment and process-release bound. */
2298
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2108
2299
  export interface Config {
2300
+ /** Provider name on `ctx.subagents` (default `codex`). */
2301
+ providerName?: string
2302
+ /** Native Codex model fixed for this instance; omitted to inherit Codex settings. */
2303
+ model?: string
2109
2304
  /**
2110
2305
  * Explicit environment entries layered over the subprocess seam's
2111
2306
  * credential-scrubbed parent environment.
2112
2307
  */
2113
2308
  env?: Record<string, string>
2309
+ /** Native non-interactive permission mode fixed for this Provider instance. */
2310
+ permissionMode?: CodexPermissionMode
2114
2311
  /** Grace in milliseconds for app-server process-tree termination. */
2115
2312
  disposeGraceMs?: number
2116
2313
  }
2314
+
2315
+ /** Profile-selectable non-interactive Codex permission mode. */
2316
+ export type CodexPermissionMode =
2317
+ | 'never'
2318
+ | 'approve-for-me'
2319
+ | 'dangerously-bypass-approvals-and-sandbox'
2117
2320
  ```
2118
2321
 
2119
- 来源:[`packages/subagent/subagent-codex/src/index.ts:30`](../packages/subagent/subagent-codex/src/index.ts)
2322
+ 来源:[`packages/subagent/subagent-codex/src/index.ts:36`](../packages/subagent/subagent-codex/src/index.ts)
2120
2323
 
2121
2324
  <a id="deepseek-aidsh-subagent-dsh-sdk"></a>
2122
2325
 
@@ -2129,10 +2332,14 @@ export interface Config {
2129
2332
  export interface Config {
2130
2333
  /** Provider name on `ctx.subagents` (default `dsh-sdk`). */
2131
2334
  providerName: string
2132
- /** The executable to spawn for each run (the child runtime bin or packaged exe). */
2133
- command: string
2134
- /** Arguments passed to {@link command} (typically the child's `cordis.yml` path). */
2135
- args: string[]
2335
+ /** Explicit dsh CLI module, resolved and checked at plugin load; omission uses the SDK dependency. */
2336
+ dshBin?: string
2337
+ /** Named child profile (default `sdk`). */
2338
+ profile: string
2339
+ /** Ordered per-launch profile patch files, resolved and checked at plugin load. */
2340
+ patches: string[]
2341
+ /** Absolute isolated Harness home for every nested child process. */
2342
+ dshHome: string
2136
2343
  /**
2137
2344
  * Working directory override for the child process and its SDK session
2138
2345
  * workspace. Must be non-empty; a relative path resolves against the
@@ -2150,8 +2357,7 @@ export interface Config {
2150
2357
  maxTokens?: number
2151
2358
  /**
2152
2359
  * Extra environment variables for the child process — e.g. the child
2153
- * runtime's own `DEEPSEEK_API_KEY`, or `DSH_CORDIS_CONFIG` naming its
2154
- * config. Forwarded on top of a credential-scrubbed copy of the parent
2360
+ * runtime's own `DEEPSEEK_API_KEY`. Forwarded on top of a credential-scrubbed copy of the parent
2155
2361
  * env, so an explicit key here reaches the child while ambient secrets do
2156
2362
  * not leak implicitly.
2157
2363
  */
@@ -2169,7 +2375,7 @@ export interface Config {
2169
2375
  }
2170
2376
  ```
2171
2377
 
2172
- 来源:[`packages/subagent/subagent-dsh-sdk/src/index.ts:29`](../packages/subagent/subagent-dsh-sdk/src/index.ts)
2378
+ 来源:[`packages/subagent/subagent-dsh-sdk/src/index.ts:34`](../packages/subagent/subagent-dsh-sdk/src/index.ts)
2173
2379
 
2174
2380
  <a id="deepseek-aidsh-subagent-fork-in-process"></a>
2175
2381
 
@@ -2244,22 +2450,24 @@ export interface Config {
2244
2450
  }
2245
2451
  ```
2246
2452
 
2247
- 来源:[`packages/core/system-prompt/src/index.ts:186`](../packages/core/system-prompt/src/index.ts)
2453
+ 来源:[`packages/core/system-prompt/src/index.ts:237`](../packages/core/system-prompt/src/index.ts)
2248
2454
 
2249
2455
  <a id="deepseek-aidsh-terminal-bash"></a>
2250
2456
 
2251
2457
  ## `@deepseek-ai/dsh-terminal-bash`
2252
2458
 
2253
- 需要:`pty` · `sandboxPolicy` · `subprocess`
2459
+ 需要:`terminals` · `sandboxPolicy` · `sessionProjections` · `subprocess`
2254
2460
 
2255
2461
  ```ts config-catalog
2256
2462
  /** Public plugin configuration. */
2257
2463
  export interface Config {
2258
2464
  /** Backend registry type (default: `shell`). */
2259
2465
  backendType?: string
2260
- /** Interactive shell executable (default: `/bin/bash`). */
2466
+ /** Interactive shell dialect (default: `bash`); selects the argv/env/startup defaults. */
2467
+ shellDialect?: ShellDialect
2468
+ /** Interactive shell executable (default per dialect: `/bin/bash`, or the resolved pwsh). */
2261
2469
  shellPath?: string
2262
- /** Shell arguments (default: `--noprofile --norc -i`). */
2470
+ /** Shell arguments (default per dialect: bash `--noprofile --norc -i`, pwsh `-NoLogo -NoProfile`). */
2263
2471
  shellArgs?: string[]
2264
2472
  /** Terminal rows. */
2265
2473
  rows?: number
@@ -2282,20 +2490,23 @@ export interface Config {
2282
2490
  * regain the foreground before `inferred_idle` settles; at least one `pollIntervalMs`.
2283
2491
  */
2284
2492
  handoffGraceMs?: number
2285
- /** Absolute send wait bound. */
2493
+ /** Absolute bound for one send and the complete pwsh startup sequence. */
2286
2494
  timeoutMs?: number
2287
2495
  /** Grace before teardown escalates to `SIGKILL`. */
2288
2496
  disposeGraceMs?: number
2289
2497
  }
2498
+
2499
+ /** One supported interactive shell dialect. */
2500
+ export type ShellDialect = 'bash' | 'pwsh'
2290
2501
  ```
2291
2502
 
2292
- 来源:[`packages/terminal/terminal-bash/src/config.ts:6`](../packages/terminal/terminal-bash/src/config.ts)
2503
+ 来源:[`packages/terminal/terminal-bash/src/config.ts:10`](../packages/terminal/terminal-bash/src/config.ts)
2293
2504
 
2294
2505
  <a id="deepseek-aidsh-time-context"></a>
2295
2506
 
2296
2507
  ## `@deepseek-ai/dsh-time-context`
2297
2508
 
2298
- 需要:`agents`
2509
+ 需要:`agents` · `sessionProjections`
2299
2510
 
2300
2511
  ```ts config-catalog
2301
2512
  /** Request-preparation clock formatting and append scheduling. Invalid values fail plugin load. */
@@ -2307,13 +2518,13 @@ export interface Config {
2307
2518
  }
2308
2519
  ```
2309
2520
 
2310
- 来源:[`packages/context/time-context/src/index.ts:27`](../packages/context/time-context/src/index.ts)
2521
+ 来源:[`packages/context/time-context/src/index.ts:48`](../packages/context/time-context/src/index.ts)
2311
2522
 
2312
2523
  <a id="deepseek-aidsh-tmux-context"></a>
2313
2524
 
2314
2525
  ## `@deepseek-ai/dsh-tmux-context`
2315
2526
 
2316
- 需要:`agents`
2527
+ 需要:`agents` · `sessionProjections`
2317
2528
 
2318
2529
  ```ts config-catalog
2319
2530
  /** Per-turn tmux-location scheduling. Invalid values fail plugin load. */
@@ -2323,12 +2534,14 @@ export interface Config {
2323
2534
  }
2324
2535
  ```
2325
2536
 
2326
- 来源:[`packages/context/tmux-context/src/index.ts:34`](../packages/context/tmux-context/src/index.ts)
2537
+ 来源:[`packages/context/tmux-context/src/index.ts:36`](../packages/context/tmux-context/src/index.ts)
2327
2538
 
2328
2539
  <a id="deepseek-aidsh-token-meter"></a>
2329
2540
 
2330
2541
  ## `@deepseek-ai/dsh-token-meter`
2331
2542
 
2543
+ 需要:`sessionProjections`
2544
+
2332
2545
  ```ts config-catalog
2333
2546
  /** Token-meter plugin configuration; the fixed estimator has no settings. */
2334
2547
  export type TokenMeterConfig = Record<string, never>
@@ -2340,7 +2553,7 @@ export type TokenMeterConfig = Record<string, never>
2340
2553
 
2341
2554
  ## `@deepseek-ai/dsh-tool-bash`
2342
2555
 
2343
- 需要:`tools` · `bash` · `systemPrompt` · `bashEnv`
2556
+ 需要:`tools` · `shell` · `systemPrompt` · `shellEnv`
2344
2557
 
2345
2558
  ```ts config-catalog
2346
2559
  /** Configuration for the bash tool. */
@@ -2350,13 +2563,13 @@ export interface Config {
2350
2563
  }
2351
2564
  ```
2352
2565
 
2353
- 来源:[`packages/shell/tool-bash/src/index.ts:34`](../packages/shell/tool-bash/src/index.ts)
2566
+ 来源:[`packages/shell/tool-bash/src/index.ts:33`](../packages/shell/tool-bash/src/index.ts)
2354
2567
 
2355
2568
  <a id="deepseek-aidsh-tool-bash-persistent"></a>
2356
2569
 
2357
2570
  ## `@deepseek-ai/dsh-tool-bash-persistent`
2358
2571
 
2359
- 需要:`tools` · `pty`
2572
+ 需要:`tools` · `terminals`
2360
2573
 
2361
2574
  ```ts config-catalog
2362
2575
  /** Configuration for the persistent Bash tool. */
@@ -2372,7 +2585,7 @@ export interface Config {
2372
2585
  }
2373
2586
  ```
2374
2587
 
2375
- 来源:[`packages/shell/tool-bash-persistent/src/index.ts:405`](../packages/shell/tool-bash-persistent/src/index.ts)
2588
+ 来源:[`packages/shell/tool-bash-persistent/src/index.ts:432`](../packages/shell/tool-bash-persistent/src/index.ts)
2376
2589
 
2377
2590
  <a id="deepseek-aidsh-tool-fs"></a>
2378
2591
 
@@ -2435,7 +2648,7 @@ export interface Config {
2435
2648
 
2436
2649
  ## `@deepseek-ai/dsh-tool-goal`
2437
2650
 
2438
- 需要:`agents` · `goals` · `tools` · `systemPrompt`
2651
+ 需要:`agents` · `goals` · `tools` · `systemPrompt` · `sessionProjections`
2439
2652
 
2440
2653
  ```ts config-catalog
2441
2654
  /** Model policy and hard lower bounds for goal-state updates. */
@@ -2445,13 +2658,13 @@ export interface Config {
2445
2658
  }
2446
2659
  ```
2447
2660
 
2448
- 来源:[`packages/goal/tool-goal/src/index.ts:26`](../packages/goal/tool-goal/src/index.ts)
2661
+ 来源:[`packages/goal/tool-goal/src/index.ts:25`](../packages/goal/tool-goal/src/index.ts)
2449
2662
 
2450
2663
  <a id="deepseek-aidsh-tool-jobs"></a>
2451
2664
 
2452
2665
  ## `@deepseek-ai/dsh-tool-jobs`
2453
2666
 
2454
- 需要:`tools` · `tasks` · `systemPrompt`
2667
+ 需要:`tools` · `jobs` · `systemPrompt`
2455
2668
 
2456
2669
  ```ts config-catalog
2457
2670
  /** Configures bounded `job_output` waits and completion-notice delivery. */
@@ -2479,7 +2692,7 @@ export interface Config {
2479
2692
  export type CompletionDelivery = 'quiet' | 'wakeup'
2480
2693
  ```
2481
2694
 
2482
- 来源:[`packages/jobs/tool-jobs/src/index.ts:32`](../packages/jobs/tool-jobs/src/index.ts)
2695
+ 来源:[`packages/jobs/tool-jobs/src/index.ts:31`](../packages/jobs/tool-jobs/src/index.ts)
2483
2696
 
2484
2697
  <a id="deepseek-aidsh-tool-lsp"></a>
2485
2698
 
@@ -2499,13 +2712,13 @@ export interface Config {
2499
2712
  }
2500
2713
  ```
2501
2714
 
2502
- 来源:[`packages/lsp/tool-lsp/src/index.ts:58`](../packages/lsp/tool-lsp/src/index.ts)
2715
+ 来源:[`packages/lsp/tool-lsp/src/index.ts:57`](../packages/lsp/tool-lsp/src/index.ts)
2503
2716
 
2504
2717
  <a id="deepseek-aidsh-tool-pwsh"></a>
2505
2718
 
2506
2719
  ## `@deepseek-ai/dsh-tool-pwsh`
2507
2720
 
2508
- 需要:`tools` · `bash` · `systemPrompt` · `bashEnv`
2721
+ 需要:`tools` · `shell` · `systemPrompt` · `shellEnv`
2509
2722
 
2510
2723
  ```ts config-catalog
2511
2724
  /** Configuration for the pwsh tool. */
@@ -2515,13 +2728,35 @@ export interface Config {
2515
2728
  }
2516
2729
  ```
2517
2730
 
2518
- 来源:[`packages/shell/tool-pwsh/src/index.ts:52`](../packages/shell/tool-pwsh/src/index.ts)
2731
+ 来源:[`packages/shell/tool-pwsh/src/index.ts:51`](../packages/shell/tool-pwsh/src/index.ts)
2732
+
2733
+ <a id="deepseek-aidsh-tool-pwsh-persistent"></a>
2734
+
2735
+ ## `@deepseek-ai/dsh-tool-pwsh-persistent`
2736
+
2737
+ 需要:`tools` · `terminals`
2738
+
2739
+ ```ts config-catalog
2740
+ /** Configuration for the persistent pwsh tool. */
2741
+ export interface Config {
2742
+ /** PTY backend used for each owner-isolated persistent shell (default `shell`). */
2743
+ backendType?: string
2744
+ /** Wall-clock limit for one command (default 300000). */
2745
+ timeoutMs?: number
2746
+ /** Maximum returned command-output characters before clipping (default 16000). */
2747
+ maxOutputChars?: number
2748
+ /** Model-facing tool description; deployments may describe their environment. */
2749
+ description?: string
2750
+ }
2751
+ ```
2752
+
2753
+ 来源:[`packages/shell/tool-pwsh-persistent/src/index.ts:472`](../packages/shell/tool-pwsh-persistent/src/index.ts)
2519
2754
 
2520
2755
  <a id="deepseek-aidsh-tool-ralph"></a>
2521
2756
 
2522
2757
  ## `@deepseek-ai/dsh-tool-ralph`
2523
2758
 
2524
- 需要:`tools` · `workflows` · `subagents` · `systemPrompt`
2759
+ 需要:`tools` · `workflowEngine` · `subagents` · `systemPrompt`
2525
2760
 
2526
2761
  ```ts config-catalog
2527
2762
  /** Deployment policy for the fixed Ralph workflow. */
@@ -2537,13 +2772,13 @@ export interface Config {
2537
2772
  }
2538
2773
  ```
2539
2774
 
2540
- 来源:[`packages/workflow/tool-ralph/src/index.ts:23`](../packages/workflow/tool-ralph/src/index.ts)
2775
+ 来源:[`packages/workflow/tool-ralph/src/index.ts:21`](../packages/workflow/tool-ralph/src/index.ts)
2541
2776
 
2542
2777
  <a id="deepseek-aidsh-tool-session-query"></a>
2543
2778
 
2544
2779
  ## `@deepseek-ai/dsh-tool-session-query`
2545
2780
 
2546
- 需要:`tools` · `systemPrompt` · `sessionQuery`
2781
+ 需要:`tools` · `systemPrompt` · `sessionQuery` · `sessionProjections`
2547
2782
 
2548
2783
  ```ts config-catalog
2549
2784
  /** Deployment-owned search count and timeout bounds. */
@@ -2555,7 +2790,7 @@ export interface Config {
2555
2790
  }
2556
2791
  ```
2557
2792
 
2558
- 来源:[`packages/session-query/tool-session-query/src/index.ts:29`](../packages/session-query/tool-session-query/src/index.ts)
2793
+ 来源:[`packages/session-query/tool-session-query/src/index.ts:28`](../packages/session-query/tool-session-query/src/index.ts)
2559
2794
 
2560
2795
  <a id="deepseek-aidsh-tool-skill"></a>
2561
2796
 
@@ -2589,13 +2824,13 @@ export interface Config {
2589
2824
  }
2590
2825
  ```
2591
2826
 
2592
- 来源:[`packages/fs/tool-str-replace-editor/src/index.ts:497`](../packages/fs/tool-str-replace-editor/src/index.ts)
2827
+ 来源:[`packages/fs/tool-str-replace-editor/src/index.ts:505`](../packages/fs/tool-str-replace-editor/src/index.ts)
2593
2828
 
2594
2829
  <a id="deepseek-aidsh-tool-subagent"></a>
2595
2830
 
2596
2831
  ## `@deepseek-ai/dsh-tool-subagent`
2597
2832
 
2598
- 需要:`tools` · `subagents` · `systemPrompt`
2833
+ 需要:`tools` · `subagents` · `systemPrompt` · `sessionProjections`
2599
2834
 
2600
2835
  ```ts config-catalog
2601
2836
  /** Config: which registered provider this tool delegates to, plus child defaults. */
@@ -2607,6 +2842,11 @@ export interface Config {
2607
2842
  * a distinct name.
2608
2843
  */
2609
2844
  toolName?: string
2845
+ /**
2846
+ * Sample the Host `subagent-model-selection` user setting for each new
2847
+ * top-level session and inherit that decision in its child sessions.
2848
+ */
2849
+ modelSelectionSettings?: boolean
2610
2850
  /**
2611
2851
  * Expose `run_in_background` (default true). Disabled instances omit the
2612
2852
  * parameter and reject forced background calls.
@@ -2652,9 +2892,9 @@ export interface Config {
2652
2892
  }
2653
2893
  ```
2654
2894
 
2655
- 依赖:[`AgentOptions`](subsystems/core.md)
2895
+ 依赖:[`AgentOptions`](subsystems/core.zh.md)
2656
2896
 
2657
- 来源:[`packages/subagent/tool-subagent/src/index.ts:29`](../packages/subagent/tool-subagent/src/index.ts)
2897
+ 来源:[`packages/subagent/tool-subagent/src/index.ts:48`](../packages/subagent/tool-subagent/src/index.ts)
2658
2898
 
2659
2899
  <a id="deepseek-aidsh-tool-subagent-report"></a>
2660
2900
 
@@ -2666,23 +2906,23 @@ export interface Config {
2666
2906
  /** Config: how accepted reports are scheduled on the parent. */
2667
2907
  export interface Config {
2668
2908
  /**
2669
- * Parent scheduling (default `wakeup`). `wakeup` creates one ordinary later
2670
- * parent turn; `quiet` adds context without waking, so a parked parent learns
2671
- * of the report only when something else wakes it.
2909
+ * Parent scheduling (default `next-step`). `next-step` wakes the parent and
2910
+ * enters at its nearest step boundary; `quiet` adds the same context without
2911
+ * waking, so a parked parent waits for another waking input.
2672
2912
  */
2673
2913
  reportDelivery?: SubagentReportDelivery
2674
2914
  }
2675
2915
  ```
2676
2916
 
2677
- 依赖:[`SubagentReportDelivery`](subsystems/subagent.md)
2917
+ 依赖:[`SubagentReportDelivery`](subsystems/subagent.zh.md)
2678
2918
 
2679
- 来源:[`packages/subagent/tool-subagent-report/src/index.ts:27`](../packages/subagent/tool-subagent-report/src/index.ts)
2919
+ 来源:[`packages/subagent/tool-subagent-report/src/index.ts:25`](../packages/subagent/tool-subagent-report/src/index.ts)
2680
2920
 
2681
2921
  <a id="deepseek-aidsh-tool-terminal"></a>
2682
2922
 
2683
2923
  ## `@deepseek-ai/dsh-tool-terminal`
2684
2924
 
2685
- 需要:`pty` · `tools` · `systemPrompt`
2925
+ 需要:`terminals` · `tools` · `systemPrompt`
2686
2926
 
2687
2927
  ```ts config-catalog
2688
2928
  /** Model-facing terminal tool configuration. */
@@ -2725,7 +2965,7 @@ export interface Config {
2725
2965
  需要:`tools` · `web` · `systemPrompt`
2726
2966
 
2727
2967
  ```ts config-catalog
2728
- /** Plugin config: which web tools to register, the source cap, per-tool budgets, and the fetch output cap. */
2968
+ /** Plugin config: which web tools to register, search bounds, per-tool budgets, and the fetch output cap. */
2729
2969
  export interface Config {
2730
2970
  /** Register `web_search`. Defaults to true. */
2731
2971
  search?: boolean
@@ -2733,6 +2973,8 @@ export interface Config {
2733
2973
  fetch?: boolean
2734
2974
  /** Upper bound on sources returned by one `web_search` call. */
2735
2975
  searchMaxResults?: number
2976
+ /** Upper bound on queries accepted by one `web_search` call. */
2977
+ searchMaxQueries?: number
2736
2978
  /** Cooperative timeout budget (ms) for `web_fetch`. Defaults to 30000. */
2737
2979
  fetchTimeoutMs?: number
2738
2980
  /** Cooperative timeout budget (ms) for `web_search`. Defaults to 30000. */
@@ -2748,7 +2990,7 @@ export interface Config {
2748
2990
 
2749
2991
  ## `@deepseek-ai/dsh-tool-workflow`
2750
2992
 
2751
- 需要:`tools` · `workflows` · `systemPrompt`
2993
+ 需要:`tools` · `workflowEngine` · `systemPrompt`
2752
2994
 
2753
2995
  ```ts config-catalog
2754
2996
  /** Config: the model-facing tool name plus result rendering caps. */
@@ -2760,7 +3002,7 @@ export interface Config {
2760
3002
  }
2761
3003
  ```
2762
3004
 
2763
- 来源:[`packages/workflow/tool-workflow/src/index.ts:33`](../packages/workflow/tool-workflow/src/index.ts)
3005
+ 来源:[`packages/workflow/tool-workflow/src/index.ts:32`](../packages/workflow/tool-workflow/src/index.ts)
2764
3006
 
2765
3007
  <a id="deepseek-aidsh-tools"></a>
2766
3008
 
@@ -2772,13 +3014,13 @@ export interface Config {
2772
3014
  /** Plugin config: how the registered tools are presented to the model. */
2773
3015
  export interface Config {
2774
3016
  /**
2775
- * Model presentation. `native` (default) sends every visible schema; `code`
3017
+ * Model presentation. `native` (default) sends every visible schema; `ptc`
2776
3018
  * sends only `run_code` plus a generated SDK prompt and collapses the
2777
3019
  * executor to the same surface (a model-direct call may only name
2778
3020
  * `run_code`; `run_code` SDK sub-dispatches keep every visible tool); `both`
2779
- * sends both forms. Code modes require a `ctx.codeRuntime` whose `language`
3021
+ * sends both forms. PTC mode requires a `ctx.codeRuntime` whose `language`
2780
3022
  * has a registered SDK renderer (TypeScript or Python) and fail prompt
2781
- * assembly when it is absent or has no renderer. Under `code`, native names
3023
+ * assembly when it is absent or has no renderer. Under `ptc`, native names
2782
3024
  * in `toolOrder` are invalid.
2783
3025
  */
2784
3026
  mode?: ToolPresentationMode
@@ -2793,10 +3035,10 @@ export interface Config {
2793
3035
  }
2794
3036
 
2795
3037
  /** How the registry presents its tools to the model (see {@link Config.mode}). */
2796
- export type ToolPresentationMode = 'native' | 'code' | 'both'
3038
+ export type ToolPresentationMode = 'native' | 'ptc' | 'both'
2797
3039
  ```
2798
3040
 
2799
- 来源:[`packages/core/tools/src/index.ts:654`](../packages/core/tools/src/index.ts)
3041
+ 来源:[`packages/core/tools/src/index.ts:647`](../packages/core/tools/src/index.ts)
2800
3042
 
2801
3043
  <a id="deepseek-aidsh-typert-loader"></a>
2802
3044
 
@@ -2843,7 +3085,7 @@ export interface Config {
2843
3085
  export type ApprovalPolicy = 'ask' | 'never'
2844
3086
  ```
2845
3087
 
2846
- 来源:[`packages/interaction/user-approval/src/index.ts:177`](../packages/interaction/user-approval/src/index.ts)
3088
+ 来源:[`packages/interaction/user-approval/src/index.ts:142`](../packages/interaction/user-approval/src/index.ts)
2847
3089
 
2848
3090
  <a id="deepseek-aidsh-web"></a>
2849
3091
 
@@ -2875,6 +3117,8 @@ export interface WebRuntimeConfig {
2875
3117
  ```ts config-catalog
2876
3118
  /** Plugin config: composed deployment settings plus per-invocation command-line values. */
2877
3119
  export interface Config {
3120
+ /** Permit default-browser handoff after the Loader tree settles; an SSH launch suppresses it. */
3121
+ openBrowser: boolean
2878
3122
  /** Print the URL line on activation; a non-interactive layer can turn it off. */
2879
3123
  printUrl: boolean
2880
3124
  /**
@@ -2889,7 +3133,7 @@ export interface Config {
2889
3133
  }
2890
3134
  ```
2891
3135
 
2892
- 来源:[`packages/bundle/web-app/src/index.ts:38`](../packages/bundle/web-app/src/index.ts)
3136
+ 来源:[`packages/bundle/web-app/src/index.ts:44`](../packages/bundle/web-app/src/index.ts)
2893
3137
 
2894
3138
  <a id="deepseek-aidsh-web-fetch-http"></a>
2895
3139
 
@@ -2900,8 +3144,6 @@ export interface Config {
2900
3144
  ```ts config-catalog
2901
3145
  /** Plugin config: the provider's transport and size limits plus its `User-Agent` (all defaulted). */
2902
3146
  export interface Config {
2903
- /** Maximum accepted request URL length. */
2904
- maxUrlLength?: number
2905
3147
  /** Maximum response body size in bytes. */
2906
3148
  maxResponseBytes?: number
2907
3149
  /** Maximum decoded body length in characters. */
@@ -2915,7 +3157,7 @@ export interface Config {
2915
3157
  }
2916
3158
  ```
2917
3159
 
2918
- 来源:[`packages/web/web-fetch-http/src/index.ts:34`](../packages/web/web-fetch-http/src/index.ts)
3160
+ 来源:[`packages/web/web-fetch-http/src/index.ts:32`](../packages/web/web-fetch-http/src/index.ts)
2919
3161
 
2920
3162
  <a id="deepseek-aidsh-web-search-deepseek"></a>
2921
3163
 
@@ -2967,7 +3209,7 @@ export interface Config {
2967
3209
  }
2968
3210
  ```
2969
3211
 
2970
- 来源:[`packages/web/web-search-exa/src/index.ts:38`](../packages/web/web-search-exa/src/index.ts)
3212
+ 来源:[`packages/web/web-search-exa/src/index.ts:35`](../packages/web/web-search-exa/src/index.ts)
2971
3213
 
2972
3214
  <a id="deepseek-aidsh-web-search-perplexity"></a>
2973
3215
 
@@ -2991,7 +3233,29 @@ export interface Config {
2991
3233
  }
2992
3234
  ```
2993
3235
 
2994
- 来源:[`packages/web/web-search-perplexity/src/index.ts:32`](../packages/web/web-search-perplexity/src/index.ts)
3236
+ 来源:[`packages/web/web-search-perplexity/src/index.ts:30`](../packages/web/web-search-perplexity/src/index.ts)
3237
+
3238
+ <a id="deepseek-aidsh-webhook-github"></a>
3239
+
3240
+ ## `@deepseek-ai/dsh-webhook-github`
3241
+
3242
+ 需要:`webServer` · `webhookRuntime` · `credentials`
3243
+
3244
+ ```ts config-catalog
3245
+ /** Required GitHub ingress configuration. */
3246
+ export interface Config {
3247
+ /** Adapter instance name carried to rules. */
3248
+ readonly source: string
3249
+ /** Exact absolute route path. */
3250
+ readonly path: string
3251
+ /** Credential reference containing the shared webhook secret. */
3252
+ readonly secretEnv: string
3253
+ /** Positive raw body ceiling in bytes. */
3254
+ readonly maxBodyBytes: number
3255
+ }
3256
+ ```
3257
+
3258
+ 来源:[`packages/webhook/webhook-github/src/index.ts:17`](../packages/webhook/webhook-github/src/index.ts)
2995
3259
 
2996
3260
  <a id="deepseek-aidsh-workflow-worker-thread"></a>
2997
3261
 
@@ -3027,13 +3291,18 @@ export interface Config {
3027
3291
 
3028
3292
  这些插件通过 `cordis.yml` 中不含 `config:` 块的条目加载;它们未声明任何配置接口。
3029
3293
 
3294
+ - `@deepseek-ai/dsh-acp-app` — 需要 `cmdlineArgs`([`packages/bundle/acp-app/src/index.ts`](../packages/bundle/acp-app/src/index.ts))
3030
3295
  - `@deepseek-ai/dsh-agent`([`packages/core/agent/src/index.ts`](../packages/core/agent/src/index.ts))
3031
- - `@deepseek-ai/dsh-api-gateway` — 需要 `typert`([`packages/api/gateway/src/index.ts`](../packages/api/gateway/src/index.ts))
3032
- - `@deepseek-ai/dsh-api-remotes`([`packages/api/remotes/src/index.ts`](../packages/api/remotes/src/index.ts))
3296
+ - `@deepseek-ai/dsh-api-remotes` — 需要 `typertGateway`([`packages/api/remotes/src/index.ts`](../packages/api/remotes/src/index.ts))
3297
+ - `@deepseek-ai/dsh-api-workspace-controller` — 需要 `typert` · `workspaceRegistry`([`packages/api/workspace-controller/src/index.ts`](../packages/api/workspace-controller/src/index.ts))
3298
+ - `@deepseek-ai/dsh-authorization` — 需要 `credentials`([`packages/credentials/authorization/src/index.ts`](../packages/credentials/authorization/src/index.ts))
3033
3299
  - `@deepseek-ai/dsh-client-locale`([`packages/client/locale/src/index.ts`](../packages/client/locale/src/index.ts))
3034
3300
  - `@deepseek-ai/dsh-client-modules` — 需要 `webServer` · `loader`([`packages/client/modules/src/index.ts`](../packages/client/modules/src/index.ts))
3035
- - `@deepseek-ai/dsh-client-runtime`([`packages/client/runtime/src/index.ts`](../packages/client/runtime/src/index.ts))
3036
3301
  - `@deepseek-ai/dsh-client-ui-agent-preset`([`packages/client/ui-agent-preset/src/index.ts`](../packages/client/ui-agent-preset/src/index.ts))
3302
+ - `@deepseek-ai/dsh-client-ui-approval`([`packages/client/ui-approval/src/index.ts`](../packages/client/ui-approval/src/index.ts))
3303
+ - `@deepseek-ai/dsh-client-ui-attachment`([`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts))
3304
+ - `@deepseek-ai/dsh-client-ui-brand-official`([`packages/client/ui-brand-official/src/index.ts`](../packages/client/ui-brand-official/src/index.ts))
3305
+ - `@deepseek-ai/dsh-client-ui-chat`([`packages/client/ui-chat/src/index.ts`](../packages/client/ui-chat/src/index.ts))
3037
3306
  - `@deepseek-ai/dsh-client-ui-commands`([`packages/client/ui-commands/src/index.ts`](../packages/client/ui-commands/src/index.ts))
3038
3307
  - `@deepseek-ai/dsh-client-ui-conversation`([`packages/client/ui-conversation/src/index.ts`](../packages/client/ui-conversation/src/index.ts))
3039
3308
  - `@deepseek-ai/dsh-client-ui-cordis`([`packages/extensions/ui-cordis/src/index.ts`](../packages/extensions/ui-cordis/src/index.ts))
@@ -3048,6 +3317,10 @@ export interface Config {
3048
3317
  - `@deepseek-ai/dsh-client-ui-model-selection`([`packages/client/ui-model-selection/src/index.ts`](../packages/client/ui-model-selection/src/index.ts))
3049
3318
  - `@deepseek-ai/dsh-client-ui-permission-presets`([`packages/client/ui-permission-presets/src/index.ts`](../packages/client/ui-permission-presets/src/index.ts))
3050
3319
  - `@deepseek-ai/dsh-client-ui-plan`([`packages/client/ui-plan/src/index.ts`](../packages/client/ui-plan/src/index.ts))
3320
+ - `@deepseek-ai/dsh-client-ui-reference`([`packages/client/ui-reference/src/index.ts`](../packages/client/ui-reference/src/index.ts))
3321
+ - `@deepseek-ai/dsh-client-ui-renderer`([`packages/client/ui-renderer/src/index.ts`](../packages/client/ui-renderer/src/index.ts))
3322
+ - `@deepseek-ai/dsh-client-ui-schedule`([`packages/client/ui-schedule/src/index.ts`](../packages/client/ui-schedule/src/index.ts))
3323
+ - `@deepseek-ai/dsh-client-ui-session`([`packages/client/ui-session/src/index.ts`](../packages/client/ui-session/src/index.ts))
3051
3324
  - `@deepseek-ai/dsh-client-ui-settings`([`packages/client/ui-settings/src/index.ts`](../packages/client/ui-settings/src/index.ts))
3052
3325
  - `@deepseek-ai/dsh-client-ui-settings-general`([`packages/client/ui-settings-general/src/index.ts`](../packages/client/ui-settings-general/src/index.ts))
3053
3326
  - `@deepseek-ai/dsh-client-ui-settings-models`([`packages/client/ui-settings-models/src/index.ts`](../packages/client/ui-settings-models/src/index.ts))
@@ -3067,6 +3340,8 @@ export interface Config {
3067
3340
  - `@deepseek-ai/dsh-command-goal` — 需要 `commands` · `goals`([`packages/goal/command-goal/src/index.ts`](../packages/goal/command-goal/src/index.ts))
3068
3341
  - `@deepseek-ai/dsh-commands`([`packages/interaction/commands/src/index.ts`](../packages/interaction/commands/src/index.ts))
3069
3342
  - `@deepseek-ai/dsh-cordis-client-runner`([`packages/extensions/cordis-client-runner/src/index.ts`](../packages/extensions/cordis-client-runner/src/index.ts))
3343
+ - `@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))
3344
+ - `@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))
3070
3345
  - `@deepseek-ai/dsh-fs-e2b` — 需要 `e2b`([`packages/e2b/fs-e2b/src/index.ts`](../packages/e2b/fs-e2b/src/index.ts))
3071
3346
  - `@deepseek-ai/dsh-fs-observation-policy`([`packages/fs/fs-observation-policy/src/index.ts`](../packages/fs/fs-observation-policy/src/index.ts))
3072
3347
  - `@deepseek-ai/dsh-goal-round-driver` — 需要 `agents` · `goals` · `sessions`([`packages/goal/goal-round-driver/src/index.ts`](../packages/goal/goal-round-driver/src/index.ts))
@@ -3078,9 +3353,9 @@ export interface Config {
3078
3353
  - `@deepseek-ai/dsh-schedule` — 需要 `agents` · `sessions` · `tools` · `sessionPersistence`([`packages/schedule/schedule/src/index.ts`](../packages/schedule/schedule/src/index.ts))
3079
3354
  - `@deepseek-ai/dsh-session`([`packages/core/session/src/index.ts`](../packages/core/session/src/index.ts))
3080
3355
  - `@deepseek-ai/dsh-session-checkpoint-policy` — 需要 `llm` · `sessionPersistence` · `sessions` · `tools`([`packages/session/session-checkpoint-policy/src/index.ts`](../packages/session/session-checkpoint-policy/src/index.ts))
3081
- - `@deepseek-ai/dsh-session-log-export` — 需要 `commands`([`packages/session-query/session-log-export/src/index.ts`](../packages/session-query/session-log-export/src/index.ts))
3082
3356
  - `@deepseek-ai/dsh-session-projection`([`packages/session/session-projection/src/index.ts`](../packages/session/session-projection/src/index.ts))
3083
3357
  - `@deepseek-ai/dsh-session-stats` — 需要 `sessionProjections`([`packages/session/session-stats/src/index.ts`](../packages/session/session-stats/src/index.ts))
3358
+ - `@deepseek-ai/dsh-session-turn-outline` — 需要 `sessionProjections`([`packages/session/session-turn-outline/src/index.ts`](../packages/session/session-turn-outline/src/index.ts))
3084
3359
  - `@deepseek-ai/dsh-skill-badge` — 需要 `skills`([`packages/skill/skill-badge/src/index.ts`](../packages/skill/skill-badge/src/index.ts))
3085
3360
  - `@deepseek-ai/dsh-storage`([`packages/storage/storage/src/index.ts`](../packages/storage/storage/src/index.ts))
3086
3361
  - `@deepseek-ai/dsh-subagent`([`packages/subagent/subagent/src/index.ts`](../packages/subagent/subagent/src/index.ts))
@@ -3091,16 +3366,18 @@ export interface Config {
3091
3366
  - `@deepseek-ai/dsh-tool-cordis` — 需要 `tools` · `systemPrompt` · `dynamicCordisRunner` · `cordisInspect`([`packages/extensions/tool-cordis/src/index.ts`](../packages/extensions/tool-cordis/src/index.ts))
3092
3367
  - `@deepseek-ai/dsh-tool-subagent-control` — 需要 `tools` · `subagents`([`packages/subagent/tool-subagent-control/src/index.ts`](../packages/subagent/tool-subagent-control/src/index.ts))
3093
3368
  - `@deepseek-ai/dsh-user-questions`([`packages/interaction/user-questions/src/index.ts`](../packages/interaction/user-questions/src/index.ts))
3369
+ - `@deepseek-ai/dsh-webhook` — 需要 `agents` · `agentDefaultModel` · `agentPresets` · `permissionPresets` · `sessionTitle` · `workspaceRegistry`([`packages/webhook/webhook/src/index.ts`](../packages/webhook/webhook/src/index.ts))
3094
3370
  - `@deepseek-ai/dsh-workspace` — 需要 `storageDomain` · `sessionPersistence`([`packages/workspace/workspace/src/index.ts`](../packages/workspace/workspace/src/index.ts))
3095
3371
 
3096
3372
  ## Seam 包(不可直接加载)
3097
3373
 
3098
- 抽象服务类——部署时应改为加载具体的实现包(参见[能力 seam](../.agents/notes/implemented/architecture/2026-06-13-capability-seams.md))。
3374
+ 抽象服务类——部署时应改为加载具体的实现包(参见[能力 seam](../.agents/notes/implemented/architecture/2026-06-13-capability-seams.zh.md))。
3099
3375
 
3100
3376
  - `@deepseek-ai/dsh-attachment` — 抽象 `AttachmentStore`([`packages/attachment/attachment/src/index.ts`](../packages/attachment/attachment/src/index.ts))
3101
3377
  - `@deepseek-ai/dsh-code-runtime` — 抽象 `CodeRuntime`([`packages/code-runtime/code-runtime/src/index.ts`](../packages/code-runtime/code-runtime/src/index.ts))
3102
3378
  - `@deepseek-ai/dsh-compaction` — 抽象 `CompactionEngine`([`packages/compaction/compaction/src/index.ts`](../packages/compaction/compaction/src/index.ts))
3103
3379
  - `@deepseek-ai/dsh-credentials` — 抽象 `Credentials`([`packages/credentials/credentials/src/index.ts`](../packages/credentials/credentials/src/index.ts))
3380
+ - `@deepseek-ai/dsh-file-reference` — 抽象 `FileReferenceService`([`packages/context/file-reference/src/index.ts`](../packages/context/file-reference/src/index.ts))
3104
3381
  - `@deepseek-ai/dsh-fs` — 抽象 `FileSystem`([`packages/fs/fs/src/index.ts`](../packages/fs/fs/src/index.ts))
3105
3382
  - `@deepseek-ai/dsh-host-directory-picker` — 抽象 `DirectoryPicker`([`packages/host/directory-picker/src/index.ts`](../packages/host/directory-picker/src/index.ts))
3106
3383
  - `@deepseek-ai/dsh-jobs` — 抽象 `JobRegistry`([`packages/jobs/jobs/src/index.ts`](../packages/jobs/jobs/src/index.ts))
@@ -3116,21 +3393,24 @@ export interface Config {
3116
3393
 
3117
3394
  由其他包作为库导入;`cordis.yml` 无法加载它们。
3118
3395
 
3119
- - `@deepseek-ai/dsh-acp-snapshot`([`packages/test-support/acp-snapshot/src/index.ts`](../packages/test-support/acp-snapshot/src/index.ts))
3120
3396
  - `@deepseek-ai/dsh-agent-loop-testkit`([`packages/test-support/agent-loop-testkit/src/index.ts`](../packages/test-support/agent-loop-testkit/src/index.ts))
3121
3397
  - `@deepseek-ai/dsh-anonymous-user-id`([`packages/identity/anonymous-user-id/src/index.ts`](../packages/identity/anonymous-user-id/src/index.ts))
3122
3398
  - `@deepseek-ai/dsh-app-boot`([`packages/boot/app-boot/src/index.ts`](../packages/boot/app-boot/src/index.ts))
3123
3399
  - `@deepseek-ai/dsh-atomic-write`([`packages/util/atomic-write/src/index.ts`](../packages/util/atomic-write/src/index.ts))
3124
3400
  - `@deepseek-ai/dsh-base`([`packages/bundle/base/src/index.ts`](../packages/bundle/base/src/index.ts))
3125
3401
  - `@deepseek-ai/dsh-brand`([`packages/util/brand/src/index.ts`](../packages/util/brand/src/index.ts))
3126
- - `@deepseek-ai/dsh-client-schema-form`([`packages/client/schema-form/src/index.ts`](../packages/client/schema-form/src/index.ts))
3402
+ - `@deepseek-ai/dsh-client-store`([`packages/client/store/src/index.ts`](../packages/client/store/src/index.ts))
3127
3403
  - `@deepseek-ai/dsh-client-test-runtime`([`packages/test-support/client-runtime/src/index.ts`](../packages/test-support/client-runtime/src/index.ts))
3128
- - `@deepseek-ai/dsh-client-ui-attachment`([`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts))
3129
3404
  - `@deepseek-ai/dsh-client-ui-primitives`([`packages/client/ui-primitives/src/index.ts`](../packages/client/ui-primitives/src/index.ts))
3130
3405
  - `@deepseek-ai/dsh-client-ui-slots`([`packages/client/ui-slots/src/index.ts`](../packages/client/ui-slots/src/index.ts))
3131
3406
  - `@deepseek-ai/dsh-client-web`([`packages/client/web/src/index.ts`](../packages/client/web/src/index.ts))
3132
- - `@deepseek-ai/dsh-client-web-react`([`packages/client/web-react/src/index.ts`](../packages/client/web-react/src/index.ts))
3133
3407
  - `@deepseek-ai/dsh-cmdline`([`packages/boot/cmdline/src/index.ts`](../packages/boot/cmdline/src/index.ts))
3408
+ - `@deepseek-ai/dsh-code-runtime-python`([`packages/code-runtime/code-runtime-python/src/index.ts`](../packages/code-runtime/code-runtime-python/src/index.ts))
3409
+ - `@deepseek-ai/dsh-deque`([`packages/util/deque/src/index.ts`](../packages/util/deque/src/index.ts))
3410
+ - `@deepseek-ai/dsh-experimental-agent-team-profile`([`packages/experimental/agent-team-profile/src/index.ts`](../packages/experimental/agent-team-profile/src/index.ts))
3411
+ - `@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))
3412
+ - `@deepseek-ai/dsh-experimental-webworker-packer`([`packages/experimental/webworker-packer/src/index.ts`](../packages/experimental/webworker-packer/src/index.ts))
3413
+ - `@deepseek-ai/dsh-experimental-webworker-runtime`([`packages/experimental/webworker-runtime/src/index.ts`](../packages/experimental/webworker-runtime/src/index.ts))
3134
3414
  - `@deepseek-ai/dsh-home-paths`([`packages/util/home-paths/src/index.ts`](../packages/util/home-paths/src/index.ts))
3135
3415
  - `@deepseek-ai/dsh-hook-protocol`([`packages/hooks/hook-protocol/src/index.ts`](../packages/hooks/hook-protocol/src/index.ts))
3136
3416
  - `@deepseek-ai/dsh-launch-environment`([`packages/util/launch-environment/src/index.ts`](../packages/util/launch-environment/src/index.ts))
@@ -3141,8 +3421,9 @@ export interface Config {
3141
3421
  - `@deepseek-ai/dsh-sandbox-windows-acl`([`packages/sandbox/sandbox-windows-acl/src/index.ts`](../packages/sandbox/sandbox-windows-acl/src/index.ts))
3142
3422
  - `@deepseek-ai/dsh-scope`([`packages/core/scope/src/index.ts`](../packages/core/scope/src/index.ts))
3143
3423
  - `@deepseek-ai/dsh-sdk-client`([`packages/sdk/client/src/index.ts`](../packages/sdk/client/src/index.ts))
3144
- - `@deepseek-ai/dsh-sdk-jsonrpc-demo`([`packages/examples/jsonrpc-demo/src/index.ts`](../packages/examples/jsonrpc-demo/src/index.ts))
3424
+ - `@deepseek-ai/dsh-sdk-minimal`([`packages/bundle/sdk-minimal/src/index.ts`](../packages/bundle/sdk-minimal/src/index.ts))
3145
3425
  - `@deepseek-ai/dsh-sdk-protocol`([`packages/sdk/protocol/src/index.ts`](../packages/sdk/protocol/src/index.ts))
3426
+ - `@deepseek-ai/dsh-session-snapshot`([`packages/test-support/session-snapshot/src/index.ts`](../packages/test-support/session-snapshot/src/index.ts))
3146
3427
  - `@deepseek-ai/dsh-session-telemetry`([`packages/session/session-telemetry/src/index.ts`](../packages/session/session-telemetry/src/index.ts))
3147
3428
  - `@deepseek-ai/dsh-session-title-llm`([`packages/session/session-title-llm/src/index.ts`](../packages/session/session-title-llm/src/index.ts))
3148
3429
  - `@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))
@@ -3150,3 +3431,8 @@ export interface Config {
3150
3431
  - `@deepseek-ai/dsh-typert-generator`([`packages/typert/generator/src/index.ts`](../packages/typert/generator/src/index.ts))
3151
3432
  - `@deepseek-ai/dsh-typert-protocol`([`packages/typert/protocol/src/index.ts`](../packages/typert/protocol/src/index.ts))
3152
3433
  - `@deepseek-ai/dsh-typert-registry`([`packages/typert/registry/src/index.ts`](../packages/typert/registry/src/index.ts))
3434
+ - `@deepseek-ai/dsh-util-crypto`([`packages/util/crypto/src/index.ts`](../packages/util/crypto/src/index.ts))
3435
+ - `@deepseek-ai/dsh-util-time`([`packages/util/time/src/index.ts`](../packages/util/time/src/index.ts))
3436
+ - `@deepseek-ai/dsh-util-values`([`packages/util/values/src/index.ts`](../packages/util/values/src/index.ts))
3437
+ - `@deepseek-ai/dsh-util-workspace-path`([`packages/util/workspace-path/src/index.ts`](../packages/util/workspace-path/src/index.ts))
3438
+ - `@deepseek-ai/dsh-win32-process`([`packages/subprocess/win32-process/src/index.ts`](../packages/subprocess/win32-process/src/index.ts))