dsh-plugin-guide 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/README.es.md +1 -1
  2. package/README.hi.md +1 -1
  3. package/README.md +1 -1
  4. package/README.pt.md +1 -1
  5. package/README.zh.md +1 -1
  6. package/SKILL.md +1 -1
  7. package/dist/dsh-plugin-dev.js +5 -5
  8. package/guide/links.md +1 -1
  9. package/guide/plugin-dev-guide.md +1 -1
  10. package/guide/quick-reference.es.md +2 -2
  11. package/guide/quick-reference.hi.md +1 -1
  12. package/guide/quick-reference.md +2 -2
  13. package/guide/quick-reference.pt.md +2 -2
  14. package/guide/quick-reference.zh-CN.md +2 -2
  15. package/package.json +3 -3
  16. package/references/cordis-paper-and-community.md +1 -1
  17. package/references/official-docs/AGENTS.md +28 -23
  18. package/references/official-docs/README.i18n.yaml +2 -2
  19. package/references/official-docs/README.md +1 -1
  20. package/references/official-docs/README.zh.md +19 -9
  21. package/references/official-docs/SNAPSHOT.md +5 -5
  22. package/references/official-docs/THIRD_PARTY_NOTICES.md +36 -13
  23. package/references/official-docs/docs/AGENTS.md +4 -4
  24. package/references/official-docs/docs/agent-lifecycle.i18n.yaml +2 -2
  25. package/references/official-docs/docs/agent-lifecycle.md +1 -1
  26. package/references/official-docs/docs/agent-lifecycle.zh.md +2 -2
  27. package/references/official-docs/docs/api-gateway.i18n.yaml +2 -2
  28. package/references/official-docs/docs/api-gateway.md +8 -8
  29. package/references/official-docs/docs/api-gateway.zh.md +8 -8
  30. package/references/official-docs/docs/architecture.i18n.yaml +2 -2
  31. package/references/official-docs/docs/architecture.md +25 -8
  32. package/references/official-docs/docs/architecture.zh.md +38 -21
  33. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  34. package/references/official-docs/docs/capability-seams.md +134 -67
  35. package/references/official-docs/docs/capability-seams.zh.md +134 -67
  36. package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
  37. package/references/official-docs/docs/config-catalog.md +731 -403
  38. package/references/official-docs/docs/config-catalog.zh.md +747 -419
  39. package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +2 -2
  40. package/references/official-docs/docs/cookbook/adding-a-package.md +3 -4
  41. package/references/official-docs/docs/cookbook/adding-a-package.zh.md +9 -8
  42. package/references/official-docs/docs/cookbook/{adding-a-conversation-node.i18n.yaml → adding-a-remote-api.i18n.yaml} +3 -3
  43. package/references/official-docs/docs/cookbook/adding-a-remote-api.md +197 -0
  44. package/references/official-docs/docs/cookbook/adding-a-remote-api.zh.md +197 -0
  45. package/references/official-docs/docs/cookbook/adding-a-settings-card.i18n.yaml +6 -0
  46. package/references/official-docs/docs/cookbook/adding-a-settings-card.md +102 -0
  47. package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +102 -0
  48. package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +2 -2
  49. package/references/official-docs/docs/cookbook/adding-a-tool.md +11 -4
  50. package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +16 -9
  51. package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +2 -2
  52. package/references/official-docs/docs/cookbook/adding-a-vendored-package.md +2 -2
  53. package/references/official-docs/docs/cookbook/adding-a-vendored-package.zh.md +4 -4
  54. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.i18n.yaml +2 -2
  55. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.md +1 -1
  56. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.zh.md +3 -3
  57. package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +2 -2
  58. package/references/official-docs/docs/cookbook/extension-cookbook.md +9 -8
  59. package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +17 -14
  60. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.i18n.yaml +1 -1
  61. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.zh.md +1 -1
  62. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +1 -1
  63. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
  64. package/references/official-docs/docs/cordis-api/context.i18n.yaml +1 -1
  65. package/references/official-docs/docs/cordis-api/context.zh.md +1 -1
  66. package/references/official-docs/docs/cordis-api/events.i18n.yaml +1 -1
  67. package/references/official-docs/docs/cordis-api/events.zh.md +1 -1
  68. package/references/official-docs/docs/cordis-api/inherited.md +1 -1
  69. package/references/official-docs/docs/cordis-primer.i18n.yaml +2 -2
  70. package/references/official-docs/docs/cordis-primer.md +2 -1
  71. package/references/official-docs/docs/cordis-primer.zh.md +3 -2
  72. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.i18n.yaml +1 -1
  73. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.zh.md +4 -4
  74. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.i18n.yaml +1 -1
  75. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +4 -4
  76. package/references/official-docs/docs/cordis-tutorial/03-services.i18n.yaml +1 -1
  77. package/references/official-docs/docs/cordis-tutorial/03-services.zh.md +4 -4
  78. package/references/official-docs/docs/cordis-tutorial/04-events.i18n.yaml +1 -1
  79. package/references/official-docs/docs/cordis-tutorial/04-events.zh.md +4 -4
  80. package/references/official-docs/docs/cordis-tutorial/05-config.i18n.yaml +1 -1
  81. package/references/official-docs/docs/cordis-tutorial/05-config.zh.md +2 -2
  82. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +1 -1
  83. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.zh.md +3 -3
  84. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.i18n.yaml +2 -2
  85. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.md +5 -4
  86. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.zh.md +11 -10
  87. package/references/official-docs/docs/cordis-tutorial/index.i18n.yaml +1 -1
  88. package/references/official-docs/docs/cordis-tutorial/index.zh.md +10 -10
  89. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +6 -0
  90. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +159 -0
  91. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +159 -0
  92. package/references/official-docs/docs/defensive-patterns.i18n.yaml +1 -1
  93. package/references/official-docs/docs/defensive-patterns.zh.md +3 -1
  94. package/references/official-docs/docs/development.i18n.yaml +2 -2
  95. package/references/official-docs/docs/development.md +9 -13
  96. package/references/official-docs/docs/development.zh.md +23 -21
  97. package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
  98. package/references/official-docs/docs/event-producer-consumer.md +55 -46
  99. package/references/official-docs/docs/event-producer-consumer.zh.md +55 -46
  100. package/references/official-docs/docs/glossary.i18n.yaml +2 -2
  101. package/references/official-docs/docs/glossary.md +1 -1
  102. package/references/official-docs/docs/glossary.zh.md +1 -1
  103. package/references/official-docs/docs/graph-atlas.i18n.yaml +2 -2
  104. package/references/official-docs/docs/graph-atlas.md +0 -2
  105. package/references/official-docs/docs/graph-atlas.zh.md +7 -9
  106. package/references/official-docs/docs/i18n/README.i18n.yaml +2 -2
  107. package/references/official-docs/docs/i18n/README.md +7 -7
  108. package/references/official-docs/docs/i18n/README.zh.md +11 -9
  109. package/references/official-docs/docs/i18n/style-samples.md +3 -3
  110. package/references/official-docs/docs/i18n/translation-prompt.md +3 -3
  111. package/references/official-docs/docs/i18n/translation-rules.i18n.yaml +2 -2
  112. package/references/official-docs/docs/i18n/translation-rules.md +2 -2
  113. package/references/official-docs/docs/i18n/translation-rules.zh.md +3 -3
  114. package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
  115. package/references/official-docs/docs/module-graph.md +660 -909
  116. package/references/official-docs/docs/module-graph.zh.md +662 -911
  117. package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
  118. package/references/official-docs/docs/persistence-catalog.md +185 -53
  119. package/references/official-docs/docs/persistence-catalog.zh.md +193 -61
  120. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.i18n.yaml +2 -2
  121. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.md +2 -2
  122. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +3 -3
  123. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.i18n.yaml +2 -2
  124. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +2 -2
  125. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +2 -2
  126. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.i18n.yaml +2 -2
  127. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.md +2 -2
  128. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +2 -2
  129. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml +2 -2
  130. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +1 -1
  131. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +2 -2
  132. package/references/official-docs/docs/postmortem/README.i18n.yaml +1 -1
  133. package/references/official-docs/docs/postmortem/README.zh.md +5 -5
  134. package/references/official-docs/docs/rescope.i18n.yaml +2 -2
  135. package/references/official-docs/docs/rescope.md +2 -2
  136. package/references/official-docs/docs/rescope.zh.md +3 -3
  137. package/references/official-docs/docs/subsystems/README.i18n.yaml +2 -2
  138. package/references/official-docs/docs/subsystems/README.md +8 -2
  139. package/references/official-docs/docs/subsystems/README.zh.md +53 -47
  140. package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +6 -0
  141. package/references/official-docs/docs/subsystems/agent-team.md +207 -0
  142. package/references/official-docs/docs/subsystems/agent-team.zh.md +207 -0
  143. package/references/official-docs/docs/subsystems/approval.i18n.yaml +2 -2
  144. package/references/official-docs/docs/subsystems/approval.md +12 -12
  145. package/references/official-docs/docs/subsystems/approval.zh.md +13 -13
  146. package/references/official-docs/docs/subsystems/attachment.i18n.yaml +2 -2
  147. package/references/official-docs/docs/subsystems/attachment.md +90 -7
  148. package/references/official-docs/docs/subsystems/attachment.zh.md +90 -7
  149. package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +2 -2
  150. package/references/official-docs/docs/subsystems/client-modules.md +69 -19
  151. package/references/official-docs/docs/subsystems/client-modules.zh.md +69 -19
  152. package/references/official-docs/docs/subsystems/code-runtime.i18n.yaml +2 -2
  153. package/references/official-docs/docs/subsystems/code-runtime.md +12 -8
  154. package/references/official-docs/docs/subsystems/code-runtime.zh.md +13 -9
  155. package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
  156. package/references/official-docs/docs/subsystems/commands.md +30 -7
  157. package/references/official-docs/docs/subsystems/commands.zh.md +31 -8
  158. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
  159. package/references/official-docs/docs/subsystems/compaction.md +14 -14
  160. package/references/official-docs/docs/subsystems/compaction.zh.md +19 -19
  161. package/references/official-docs/docs/subsystems/conversation.i18n.yaml +6 -0
  162. package/references/official-docs/docs/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +49 -24
  163. package/references/official-docs/docs/{cookbook/adding-a-conversation-node.zh.md → subsystems/conversation.zh.md} +49 -24
  164. package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
  165. package/references/official-docs/docs/subsystems/core.md +114 -36
  166. package/references/official-docs/docs/subsystems/core.zh.md +145 -65
  167. package/references/official-docs/docs/subsystems/credentials.i18n.yaml +2 -2
  168. package/references/official-docs/docs/subsystems/credentials.md +207 -11
  169. package/references/official-docs/docs/subsystems/credentials.zh.md +207 -11
  170. package/references/official-docs/docs/subsystems/extensions.i18n.yaml +2 -2
  171. package/references/official-docs/docs/subsystems/extensions.md +27 -9
  172. package/references/official-docs/docs/subsystems/extensions.zh.md +30 -12
  173. package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
  174. package/references/official-docs/docs/subsystems/feedback.md +6 -6
  175. package/references/official-docs/docs/subsystems/feedback.zh.md +6 -6
  176. package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +2 -2
  177. package/references/official-docs/docs/subsystems/filesystem.md +17 -7
  178. package/references/official-docs/docs/subsystems/filesystem.zh.md +19 -9
  179. package/references/official-docs/docs/subsystems/goal.i18n.yaml +2 -2
  180. package/references/official-docs/docs/subsystems/goal.md +4 -4
  181. package/references/official-docs/docs/subsystems/goal.zh.md +8 -8
  182. package/references/official-docs/docs/subsystems/invariants.i18n.yaml +2 -2
  183. package/references/official-docs/docs/subsystems/invariants.md +2 -2
  184. package/references/official-docs/docs/subsystems/invariants.zh.md +5 -5
  185. package/references/official-docs/docs/subsystems/jobs.i18n.yaml +2 -2
  186. package/references/official-docs/docs/subsystems/jobs.md +3 -3
  187. package/references/official-docs/docs/subsystems/jobs.zh.md +6 -6
  188. package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
  189. package/references/official-docs/docs/subsystems/llm-streaming.md +193 -22
  190. package/references/official-docs/docs/subsystems/llm-streaming.zh.md +199 -28
  191. package/references/official-docs/docs/subsystems/lsp.i18n.yaml +2 -2
  192. package/references/official-docs/docs/subsystems/lsp.md +2 -2
  193. package/references/official-docs/docs/subsystems/lsp.zh.md +3 -3
  194. package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +2 -2
  195. package/references/official-docs/docs/subsystems/permission-presets.md +8 -8
  196. package/references/official-docs/docs/subsystems/permission-presets.zh.md +8 -8
  197. package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
  198. package/references/official-docs/docs/subsystems/persistence.md +183 -173
  199. package/references/official-docs/docs/subsystems/persistence.zh.md +182 -172
  200. package/references/official-docs/docs/subsystems/plan.i18n.yaml +2 -2
  201. package/references/official-docs/docs/subsystems/plan.md +4 -4
  202. package/references/official-docs/docs/subsystems/plan.zh.md +10 -10
  203. package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +2 -2
  204. package/references/official-docs/docs/subsystems/sandbox.md +5 -3
  205. package/references/official-docs/docs/subsystems/sandbox.zh.md +8 -6
  206. package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
  207. package/references/official-docs/docs/subsystems/schedule.md +9 -3
  208. package/references/official-docs/docs/subsystems/schedule.zh.md +11 -5
  209. package/references/official-docs/docs/subsystems/scope.i18n.yaml +1 -1
  210. package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
  211. package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +2 -2
  212. package/references/official-docs/docs/subsystems/session-projection.md +148 -75
  213. package/references/official-docs/docs/subsystems/session-projection.zh.md +148 -75
  214. package/references/official-docs/docs/subsystems/session-query.i18n.yaml +2 -2
  215. package/references/official-docs/docs/subsystems/session-query.md +30 -16
  216. package/references/official-docs/docs/subsystems/session-query.zh.md +31 -17
  217. package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +2 -2
  218. package/references/official-docs/docs/subsystems/session-reference.md +94 -7
  219. package/references/official-docs/docs/subsystems/session-reference.zh.md +95 -8
  220. package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +2 -2
  221. package/references/official-docs/docs/subsystems/session-telemetry.md +5 -6
  222. package/references/official-docs/docs/subsystems/session-telemetry.zh.md +9 -10
  223. package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
  224. package/references/official-docs/docs/subsystems/session-title.md +8 -8
  225. package/references/official-docs/docs/subsystems/session-title.zh.md +10 -10
  226. package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
  227. package/references/official-docs/docs/subsystems/session.md +376 -71
  228. package/references/official-docs/docs/subsystems/session.zh.md +392 -85
  229. package/references/official-docs/docs/subsystems/settings.i18n.yaml +2 -2
  230. package/references/official-docs/docs/subsystems/settings.md +105 -10
  231. package/references/official-docs/docs/subsystems/settings.zh.md +105 -10
  232. package/references/official-docs/docs/subsystems/shell.i18n.yaml +2 -2
  233. package/references/official-docs/docs/subsystems/shell.md +3 -3
  234. package/references/official-docs/docs/subsystems/shell.zh.md +11 -11
  235. package/references/official-docs/docs/subsystems/skills.i18n.yaml +2 -2
  236. package/references/official-docs/docs/subsystems/skills.md +26 -3
  237. package/references/official-docs/docs/subsystems/skills.zh.md +29 -6
  238. package/references/official-docs/docs/subsystems/slots.i18n.yaml +6 -0
  239. package/references/official-docs/docs/subsystems/slots.md +175 -0
  240. package/references/official-docs/docs/subsystems/slots.zh.md +175 -0
  241. package/references/official-docs/docs/subsystems/spill.i18n.yaml +2 -2
  242. package/references/official-docs/docs/subsystems/spill.md +4 -4
  243. package/references/official-docs/docs/subsystems/spill.zh.md +6 -6
  244. package/references/official-docs/docs/subsystems/storage.i18n.yaml +2 -2
  245. package/references/official-docs/docs/subsystems/storage.md +38 -7
  246. package/references/official-docs/docs/subsystems/storage.zh.md +41 -10
  247. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  248. package/references/official-docs/docs/subsystems/subagent.md +148 -116
  249. package/references/official-docs/docs/subsystems/subagent.zh.md +158 -124
  250. package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +2 -2
  251. package/references/official-docs/docs/subsystems/subprocess.md +3 -3
  252. package/references/official-docs/docs/subsystems/subprocess.zh.md +5 -5
  253. package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +2 -2
  254. package/references/official-docs/docs/subsystems/system-prompt.md +21 -8
  255. package/references/official-docs/docs/subsystems/system-prompt.zh.md +23 -10
  256. package/references/official-docs/docs/subsystems/terminal.i18n.yaml +2 -2
  257. package/references/official-docs/docs/subsystems/terminal.md +2 -2
  258. package/references/official-docs/docs/subsystems/terminal.zh.md +4 -4
  259. package/references/official-docs/docs/subsystems/todo.i18n.yaml +6 -0
  260. package/references/official-docs/docs/subsystems/todo.md +32 -0
  261. package/references/official-docs/docs/subsystems/todo.zh.md +32 -0
  262. package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
  263. package/references/official-docs/docs/subsystems/token-meter.md +29 -14
  264. package/references/official-docs/docs/subsystems/token-meter.zh.md +30 -15
  265. package/references/official-docs/docs/subsystems/tools.i18n.yaml +2 -2
  266. package/references/official-docs/docs/subsystems/tools.md +46 -46
  267. package/references/official-docs/docs/subsystems/tools.zh.md +54 -54
  268. package/references/official-docs/docs/subsystems/typert.i18n.yaml +2 -2
  269. package/references/official-docs/docs/subsystems/typert.md +65 -58
  270. package/references/official-docs/docs/subsystems/typert.zh.md +67 -60
  271. package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +2 -2
  272. package/references/official-docs/docs/subsystems/user-questions.md +35 -35
  273. package/references/official-docs/docs/subsystems/user-questions.zh.md +35 -35
  274. package/references/official-docs/docs/subsystems/web-client.i18n.yaml +6 -0
  275. package/references/official-docs/docs/subsystems/web-client.md +95 -0
  276. package/references/official-docs/docs/subsystems/web-client.zh.md +95 -0
  277. package/references/official-docs/docs/subsystems/web-server.i18n.yaml +2 -2
  278. package/references/official-docs/docs/subsystems/web-server.md +55 -9
  279. package/references/official-docs/docs/subsystems/web-server.zh.md +56 -10
  280. package/references/official-docs/docs/subsystems/web.i18n.yaml +2 -2
  281. package/references/official-docs/docs/subsystems/web.md +14 -7
  282. package/references/official-docs/docs/subsystems/web.zh.md +16 -9
  283. package/references/official-docs/docs/subsystems/webhook.i18n.yaml +6 -0
  284. package/references/official-docs/docs/subsystems/webhook.md +70 -0
  285. package/references/official-docs/docs/subsystems/webhook.zh.md +70 -0
  286. package/references/official-docs/docs/subsystems/workflow.i18n.yaml +2 -2
  287. package/references/official-docs/docs/subsystems/workflow.md +8 -8
  288. package/references/official-docs/docs/subsystems/workflow.zh.md +13 -13
  289. package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
  290. package/references/official-docs/docs/subsystems/workspace.md +98 -5
  291. package/references/official-docs/docs/subsystems/workspace.zh.md +102 -9
  292. package/references/official-docs/docs/testing.i18n.yaml +2 -2
  293. package/references/official-docs/docs/testing.md +15 -10
  294. package/references/official-docs/docs/testing.zh.md +15 -10
  295. package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
  296. package/references/official-docs/docs/tool-catalog.md +413 -61
  297. package/references/official-docs/docs/tool-catalog.zh.md +418 -63
  298. package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +2 -2
  299. package/references/official-docs/docs/tool-execution-pipeline.md +1 -1
  300. package/references/official-docs/docs/tool-execution-pipeline.zh.md +1 -1
  301. package/references/official-docs/docs/user/develop/basic/config.i18n.yaml +2 -2
  302. package/references/official-docs/docs/user/develop/basic/config.md +1 -1
  303. package/references/official-docs/docs/user/develop/basic/config.zh.md +4 -4
  304. package/references/official-docs/docs/user/develop/basic/index.i18n.yaml +1 -1
  305. package/references/official-docs/docs/user/develop/basic/index.zh.md +5 -5
  306. package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +2 -2
  307. package/references/official-docs/docs/user/develop/basic/publish.md +3 -3
  308. package/references/official-docs/docs/user/develop/basic/publish.zh.md +7 -7
  309. package/references/official-docs/docs/user/develop/basic/tool.i18n.yaml +2 -2
  310. package/references/official-docs/docs/user/develop/basic/tool.md +3 -3
  311. package/references/official-docs/docs/user/develop/basic/tool.zh.md +4 -4
  312. package/references/official-docs/docs/user/develop/framework/events.i18n.yaml +2 -2
  313. package/references/official-docs/docs/user/develop/framework/events.md +2 -2
  314. package/references/official-docs/docs/user/develop/framework/events.zh.md +3 -3
  315. package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +1 -1
  316. package/references/official-docs/docs/user/develop/framework/index.zh.md +3 -3
  317. package/references/official-docs/docs/user/develop/framework/service.i18n.yaml +2 -2
  318. package/references/official-docs/docs/user/develop/framework/service.md +1 -1
  319. package/references/official-docs/docs/user/develop/framework/service.zh.md +3 -3
  320. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +6 -0
  321. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.md +15 -0
  322. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
  323. package/references/official-docs/docs/user/develop/practice/index.i18n.yaml +2 -2
  324. package/references/official-docs/docs/user/develop/practice/index.md +1 -1
  325. package/references/official-docs/docs/user/develop/practice/index.zh.md +3 -3
  326. package/references/official-docs/docs/user/develop/practice/llm-adapter.i18n.yaml +2 -2
  327. package/references/official-docs/docs/user/develop/practice/llm-adapter.md +4 -3
  328. package/references/official-docs/docs/user/develop/practice/llm-adapter.zh.md +4 -3
  329. package/references/official-docs/docs/user/guide/github-review.i18n.yaml +6 -0
  330. package/references/official-docs/docs/user/guide/github-review.md +102 -0
  331. package/references/official-docs/docs/user/guide/github-review.zh.md +102 -0
  332. package/references/official-docs/docs/user/guide/index.i18n.yaml +2 -2
  333. package/references/official-docs/docs/user/guide/index.md +2 -2
  334. package/references/official-docs/docs/user/guide/index.zh.md +8 -8
  335. package/references/official-docs/docs/user/guide/mcp-memory.i18n.yaml +6 -0
  336. package/references/official-docs/docs/user/guide/mcp-memory.md +101 -0
  337. package/references/official-docs/docs/user/guide/mcp-memory.zh.md +101 -0
  338. package/references/official-docs/docs/user/guide/providers.i18n.yaml +2 -2
  339. package/references/official-docs/docs/user/guide/providers.md +40 -1
  340. package/references/official-docs/docs/user/guide/providers.zh.md +41 -2
  341. package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +2 -2
  342. package/references/official-docs/docs/user/guide/python-sdk.md +80 -34
  343. package/references/official-docs/docs/user/guide/python-sdk.zh.md +87 -41
  344. package/references/official-docs/docs/user/guide/schedule.i18n.yaml +6 -0
  345. package/references/official-docs/docs/user/guide/schedule.md +21 -0
  346. package/references/official-docs/docs/user/guide/schedule.zh.md +21 -0
  347. package/references/official-docs/docs/web-styling.i18n.yaml +2 -2
  348. package/references/official-docs/docs/web-styling.md +3 -0
  349. package/references/official-docs/docs/web-styling.zh.md +5 -2
  350. package/references/official-docs/packages/AGENTS.md +4 -3
  351. package/references/official-docs/packages/README.md +104 -59
  352. package/references/official-docs/vendor/README.md +1 -0
  353. package/references/official-docs/website-docs.ts +52 -11
  354. package/references/sources.md +2 -2
  355. package/references/website-pages.md +3 -3
  356. package/scripts/download-sources.ps1 +1 -1
  357. package/scripts/sync-official-docs.ps1 +19 -11
  358. package/scripts/verify-kit.ps1 +0 -4
  359. package/templates/js/README.es.md +1 -1
  360. package/templates/js/README.hi.md +1 -1
  361. package/templates/js/README.md +1 -1
  362. package/templates/js/README.pt.md +1 -1
  363. package/templates/js/README.zh.md +1 -1
  364. package/templates/js/package.json +4 -4
  365. package/templates/ts/README.es.md +1 -1
  366. package/templates/ts/README.hi.md +1 -1
  367. package/templates/ts/README.md +1 -1
  368. package/templates/ts/README.pt.md +1 -1
  369. package/templates/ts/README.zh.md +1 -1
  370. package/templates/ts/package.json +4 -4
  371. package/references/official-docs/examples/AGENTS.md +0 -20
@@ -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:318`](../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,60 @@ 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 stat-reported event count eligible for one full cold projection observation; `0` disables the event-count gate. */
214
+ readonly coldBlankProbeMaxEvents?: number
215
+ /** Maximum stat-reported artifact byte size eligible for one full cold projection observation; `0` disables the byte-size gate. */
216
+ readonly coldBlankProbeMaxBytes?: number
217
+ /** Override platform desktop-opener detection. */
218
+ readonly nativeOpen?: boolean
219
+ }
220
+ ```
221
+
222
+ 来源:[`packages/api/session-controller/src/index.ts:72`](../packages/api/session-controller/src/index.ts)
223
+
224
+ <a id="deepseek-aidsh-api-settings-controller"></a>
225
+
226
+ ## `@deepseek-ai/dsh-api-settings-controller`
227
+
228
+ ```ts config-catalog
229
+ /** Native document-opening policy. */
230
+ export interface Config {
231
+ /** Override platform desktop-opener detection. */
232
+ readonly nativeOpen?: boolean
233
+ }
234
+ ```
235
+
236
+ 来源:[`packages/api/settings-controller/src/index.ts:36`](../packages/api/settings-controller/src/index.ts)
237
+
323
238
  <a id="deepseek-aidsh-attachment-local"></a>
324
239
 
325
240
  ## `@deepseek-ai/dsh-attachment-local`
@@ -329,18 +244,31 @@ export interface Config {
329
244
  export interface Config {
330
245
  /** Explicit harness home; omitted follows `DSH_HOME`, then `~/.dsh`. */
331
246
  dshHome?: string
332
- /** Maximum encoded bytes accepted for one image. */
247
+ /** Maximum encoded bytes accepted for one submitted image. Default: 20 MiB. */
333
248
  maxImageBytes?: number
334
- /** Maximum image count accepted in one submitted message. */
249
+ /** Maximum image count accepted in one submitted message. Default: 20. */
335
250
  maxImagesPerMessage?: number
336
- /** Maximum aggregate encoded image bytes accepted in one submitted message. */
251
+ /** Maximum aggregate encoded image bytes accepted in one submitted message. Default: 200 MiB. */
337
252
  maxMessageImageBytes?: number
338
- /** Maximum intrinsic width multiplied by height accepted for one image. */
253
+ /** Maximum intrinsic width multiplied by height accepted for one submitted image. Default: 64,000,000. */
339
254
  maxImagePixels?: number
255
+ /** Maximum intrinsic width and maximum intrinsic height accepted for one submitted image. Default: 8192px. */
256
+ maxImageDimension?: number
257
+ /** Total-pixel budget of the stored provider-independent normalized image. */
258
+ normalizedImageMaxPixels?: number
259
+ /** Long-edge pixel cap of the stored provider-independent normalized image, applied after the total-pixel budget. */
260
+ normalizedImageMaxDimension?: number
261
+ /**
262
+ * Encoded-byte target of the stored provider-independent normalized image;
263
+ * the smallest quality-ladder output is kept when no quality fits.
264
+ */
265
+ normalizedImageMaxBytes?: number
266
+ /** Maximum simultaneous normalization or request-image transformations in this service instance. */
267
+ imageCompressionConcurrency?: number
340
268
  }
341
269
  ```
342
270
 
343
- 来源:[`packages/attachment/attachment-local/src/index.ts:24`](../packages/attachment/attachment-local/src/index.ts)
271
+ 来源:[`packages/attachment/attachment-local/src/index.ts:55`](../packages/attachment/attachment-local/src/index.ts)
344
272
 
345
273
  <a id="deepseek-aidsh-bash-local"></a>
346
274
 
@@ -393,7 +321,7 @@ export type Config = LocalConfig
393
321
 
394
322
  ## `@deepseek-ai/dsh-client-connection`
395
323
 
396
- 需要:`webServer`
324
+ 需要:`webServer` · `credentials`
397
325
 
398
326
  ```ts config-catalog
399
327
  /** Plugin config: the deployment's non-loopback serving authorities. */
@@ -403,22 +331,24 @@ export interface ConnectionConfig {
403
331
  * port-less `host` matching any port. The /api trust fence refuses any
404
332
  * request whose Host is neither loopback nor listed here, so a
405
333
  * 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.
334
+ * by; the Web runtime derives LAN IP literals from an active all-interface
335
+ * bind. An entry that is not a bare, canonical authority fails plugin load.
408
336
  */
409
337
  trustedHosts?: string[]
410
- /** Maximum buffered JSON body for every `/api` request. */
338
+ /** Absolute browser-session lifetime in days. Default: 30. */
339
+ cookieMaxAgeDays?: number
340
+ /** Maximum buffered JSON body for every `/api` request. Default: 300 MiB. */
411
341
  maxRequestBodyBytes?: number
412
342
  }
413
343
  ```
414
344
 
415
- 来源:[`packages/client/connection/src/index.ts:50`](../packages/client/connection/src/index.ts)
345
+ 来源:[`packages/client/connection/src/index.ts:55`](../packages/client/connection/src/index.ts)
416
346
 
417
347
  <a id="deepseek-aidsh-client-hmr"></a>
418
348
 
419
349
  ## `@deepseek-ai/dsh-client-hmr`
420
350
 
421
- 需要:`clientModuleHost` · `webServer`
351
+ 需要:`clientModules` · `webServer`
422
352
 
423
353
  ```ts config-catalog
424
354
  /** Plugin config, validated by the same-named schemastery schema. */
@@ -531,7 +461,7 @@ export interface ToolResultPruneConfig {
531
461
  }
532
462
  ```
533
463
 
534
- 来源:[`packages/compaction/compaction-tool-result-pruner/src/types.ts:4`](../packages/compaction/compaction-tool-result-pruner/src/types.ts)
464
+ 来源:[`packages/compaction/compaction-tool-result-pruner/src/types.ts:5`](../packages/compaction/compaction-tool-result-pruner/src/types.ts)
535
465
 
536
466
  <a id="deepseek-aidsh-cordis-host-runner"></a>
537
467
 
@@ -567,7 +497,7 @@ export interface Config {
567
497
  }
568
498
  ```
569
499
 
570
- 来源:[`packages/credentials/credentials-local/src/index.ts:55`](../packages/credentials/credentials-local/src/index.ts)
500
+ 来源:[`packages/credentials/credentials-local/src/index.ts:64`](../packages/credentials/credentials-local/src/index.ts)
571
501
 
572
502
  <a id="deepseek-aidsh-e2b"></a>
573
503
 
@@ -587,6 +517,203 @@ export interface Config {
587
517
 
588
518
  来源:[`packages/e2b/e2b/src/index.ts:43`](../packages/e2b/e2b/src/index.ts)
589
519
 
520
+ <a id="deepseek-aidsh-experimental-agent-team"></a>
521
+
522
+ ## `@deepseek-ai/dsh-experimental-agent-team`
523
+
524
+ 需要:`agents` · `sessions` · `sessionPersistence` · `sessionProjections` · `subagents`
525
+
526
+ ```ts config-catalog
527
+ /** Team-service deployment limits. */
528
+ export interface Config {
529
+ /** Maximum immutable teammate names retained by one Team. */
530
+ readonly maxMembers?: number
531
+ /** Maximum non-deleted tasks retained by one Team. */
532
+ readonly maxTasks?: number
533
+ /** Maximum queued-minus-delivered messages for one target member. */
534
+ readonly maxPendingMessagesPerMember?: number
535
+ /** Maximum UTF-8 bytes in one complete sender-framed delivery. */
536
+ readonly maxMessageBytes?: number
537
+ /** Maximum milliseconds allowed for Team-owned runtime disposal. */
538
+ readonly disposalTimeoutMs?: number
539
+ }
540
+ ```
541
+
542
+ 来源:[`packages/experimental/agent-team/src/types.ts:124`](../packages/experimental/agent-team/src/types.ts)
543
+
544
+ <a id="deepseek-aidsh-experimental-code-runtime-python"></a>
545
+
546
+ ## `@deepseek-ai/dsh-experimental-code-runtime-python`
547
+
548
+ ```ts config-catalog
549
+ /** Plugin config: every cap, changeable from `cordis.yml` (no hardcoded tunables). */
550
+ export interface Config {
551
+ /**
552
+ * RLIMIT_CPU in whole seconds (a positive integer — `setrlimit` in the child
553
+ * rejects a float). The child sets the soft limit to `cpuSeconds` and the
554
+ * hard limit to `cpuSeconds + 1`: the kernel delivers SIGXCPU at the soft
555
+ * limit, which the host classifies as a `timeout`; the +1s hard limit is a
556
+ * SIGKILL backstop for a program that traps SIGXCPU. Granularity is seconds —
557
+ * a coarser counterpart to the worker backend's millisecond `computeMs`.
558
+ */
559
+ cpuSeconds?: number
560
+ /** Wall-clock ceiling in milliseconds; backstops CPU time for programs awaiting a promise nobody resolves. */
561
+ maxWallMs?: number
562
+ /**
563
+ * RLIMIT_AS in mebibytes; caps address space so a runaway allocation fails
564
+ * cleanly. Not applied on Darwin, where the dyld shared cache mapped into
565
+ * every process at exec exceeds any practical cap and the kernel rejects
566
+ * the call; `cpuSeconds` and `maxWallMs` still bound the run there. Bounds
567
+ * `maxLogBytes`/`maxValueBytes` at load on EVERY platform (this static check
568
+ * runs on Darwin too, where only the runtime `setrlimit` is skipped): each
569
+ * budget times a worst-case Unicode expansion must fit this byte count minus a
570
+ * fixed interpreter baseline, so a near-budget output cannot breach the address
571
+ * space during the child's build-and-encode.
572
+ */
573
+ addressSpaceMb?: number
574
+ /**
575
+ * Shared byte budget for captured log text (host-side ledger). Bounded at load
576
+ * against `addressSpaceMb`: the child builds and encodes a near-budget entry
577
+ * under RLIMIT_AS with several copies live at once, so this cap times the
578
+ * worst-case Unicode expansion must fit the address space left after the
579
+ * interpreter baseline (see `addressSpaceMb`) — a load-time rejection, not a
580
+ * runtime clamp. Also bounded at load by the host's configured heap like
581
+ * `maxValueBytes` (see its JSDoc): the effective frame cap minus the frame
582
+ * envelope.
583
+ */
584
+ maxLogBytes?: number
585
+ /**
586
+ * Byte cap for the completion value. Bounded at load against `addressSpaceMb`
587
+ * the same way `maxLogBytes` is: the child builds and encodes a near-budget
588
+ * value under RLIMIT_AS with several copies live at once, so this cap times the
589
+ * worst-case Unicode expansion must fit the address space left after the
590
+ * interpreter baseline. Both budgets are ALSO bounded at load by the host's
591
+ * configured heap: the effective frame cap (the protocol cap, or a lower
592
+ * heap-derived ceiling when the host heap cannot safely parse a near-cap
593
+ * frame — see `hostFrameParseCeiling`) minus the frame envelope, so a budget
594
+ * whose honest frame could OOM the host's own JSON.parse is rejected up
595
+ * front.
596
+ */
597
+ maxValueBytes?: number
598
+ /** SIGTERM→SIGKILL grace period on kill, matching bash-local's default. */
599
+ graceMs?: number
600
+ /**
601
+ * Absolute path, relative path, or basename of a CPython 3.10+ interpreter.
602
+ * Resolved and validated once at plugin load under a five-second force-kill
603
+ * deadline; a basename searches `PATH`.
604
+ */
605
+ pythonBin?: string
606
+ }
607
+ ```
608
+
609
+ 来源:[`packages/experimental/code-runtime-python/src/index.ts:42`](../packages/experimental/code-runtime-python/src/index.ts)
610
+
611
+ <a id="deepseek-aidsh-experimental-inspector"></a>
612
+
613
+ ## `@deepseek-ai/dsh-experimental-inspector`
614
+
615
+ 需要:`webServer`
616
+
617
+ ```ts config-catalog
618
+ /** Host plugin configuration. Fetch capture is enabled by default. */
619
+ export interface Config extends Omit<InspectorOptions, 'clientOrigins'> {
620
+ /** Browser origins allowed to open the Client ingest WebSocket. */
621
+ clientOrigins?: string[]
622
+ }
623
+
624
+ /** User-facing Host options; every memory and lifecycle bound is configurable. */
625
+ export interface InspectorOptions {
626
+ /** Loopback address used by the Worker HTTP and WebSocket endpoint. */
627
+ readonly host?: '127.0.0.1'
628
+ /** First port to bind; occupied ports advance until one is available. */
629
+ readonly port?: number
630
+ /** Additional exact browser origins admitted to the Client ingest socket. */
631
+ readonly clientOrigins?: readonly string[]
632
+ /** Whether to observe calls made through the current global fetch function. */
633
+ readonly captureFetch?: boolean
634
+ /** Maximum request-body prefix retained for one fetch. */
635
+ readonly maxRequestBodyBytes?: number
636
+ /** Maximum response-body prefix retained for one fetch. */
637
+ readonly maxResponseBodyBytes?: number
638
+ /** Maximum raw bytes encoded into one body observation. */
639
+ readonly maxBodyChunkBytes?: number
640
+ /** Maximum total request and response body bytes retained by the Worker. */
641
+ readonly maxJournalBytes?: number
642
+ /** Maximum active and completed fetch requests retained by the Worker. */
643
+ readonly maxRetainedRequests?: number
644
+ /** Maximum encoded bytes accepted in one source transport frame. */
645
+ readonly maxSourceFrameBytes?: number
646
+ /** Maximum observation records accepted in one source batch. */
647
+ readonly maxSourceRecordsPerFrame?: number
648
+ /** Maximum records waiting in one producer queue. */
649
+ readonly maxQueuedRecords?: number
650
+ /** Maximum encoded bytes waiting in one producer queue. */
651
+ readonly maxQueuedBytes?: number
652
+ /** Maximum time allowed for the Worker to become ready. */
653
+ readonly startupTimeoutMs?: number
654
+ /** Grace period before a stopping Worker is terminated. */
655
+ readonly stopTimeoutMs?: number
656
+ /** Initial upper bound for randomized Client reconnect delay. */
657
+ readonly clientReconnectBaseMs?: number
658
+ /** Maximum upper bound for randomized Client reconnect delay. */
659
+ readonly clientReconnectMaxMs?: number
660
+ /** Deadline for one Worker-to-Client Runtime or Sources request. */
661
+ readonly clientRuntimeTimeoutMs?: number
662
+ /** Deadline for one non-CDP semantic query. */
663
+ readonly queryTimeoutMs?: number
664
+ /** Maximum live object handles retained per Client Runtime session. */
665
+ readonly maxClientRuntimeObjects?: number
666
+ /** Maximum descriptors returned by one Client property request. */
667
+ readonly maxClientRuntimeProperties?: number
668
+ /** Maximum encoded bytes read for one Client script or source map. */
669
+ readonly maxClientSourceBytes?: number
670
+ /** Maximum Context and Fiber nodes retained in one realm snapshot. */
671
+ readonly maxCordisNodes?: number
672
+ /** Disconnected Cordis snapshots retained after their live realm closes. */
673
+ readonly maxDisconnectedCordisTrees?: number
674
+ }
675
+ ```
676
+
677
+ 来源:[`packages/experimental/inspector/src/index.ts:66`](../packages/experimental/inspector/src/index.ts)
678
+
679
+ <a id="deepseek-aidsh-experimental-tool-agent-team"></a>
680
+
681
+ ## `@deepseek-ai/dsh-experimental-tool-agent-team`
682
+
683
+ 需要:`agents` · `agentTeams` · `tools` · `systemPrompt`
684
+
685
+ ```ts config-catalog
686
+ /** Tool routing configuration. */
687
+ export interface Config {
688
+ /** Continuable-subagent provider used for fresh teammates. */
689
+ readonly freshProvider?: string
690
+ /** Continuable-subagent provider used for completed-prefix fork teammates. */
691
+ readonly forkProvider?: string
692
+ }
693
+ ```
694
+
695
+ 来源:[`packages/experimental/tool-agent-team/src/index.ts:17`](../packages/experimental/tool-agent-team/src/index.ts)
696
+
697
+ <a id="deepseek-aidsh-file-reference-local"></a>
698
+
699
+ ## `@deepseek-ai/dsh-file-reference-local`
700
+
701
+ 需要:`agents` · `sessionProjections`
702
+
703
+ ```ts config-catalog
704
+ /** Local file-reference discovery configuration. */
705
+ export interface Config {
706
+ /** Maximum ranked candidates returned for one query. */
707
+ maxResults?: number
708
+ /** Maximum indexed files and directories per agent workspace. */
709
+ maxEntries?: number
710
+ /** Directory basenames never traversed or offered. */
711
+ excludedDirectories?: string[]
712
+ }
713
+ ```
714
+
715
+ 来源:[`packages/context/file-reference-local/src/index.ts:34`](../packages/context/file-reference-local/src/index.ts)
716
+
590
717
  <a id="deepseek-aidsh-fs-local"></a>
591
718
 
592
719
  ## `@deepseek-ai/dsh-fs-local`
@@ -624,13 +751,13 @@ export type Config = LocalConfig
624
751
 
625
752
  依赖:[`LocalConfig`](#deepseek-aidsh-fs-local)
626
753
 
627
- 来源:[`packages/fs/fs-sandbox/src/index.ts:49`](../packages/fs/fs-sandbox/src/index.ts)
754
+ 来源:[`packages/fs/fs-sandbox/src/index.ts:45`](../packages/fs/fs-sandbox/src/index.ts)
628
755
 
629
756
  <a id="deepseek-aidsh-goal"></a>
630
757
 
631
758
  ## `@deepseek-ai/dsh-goal`
632
759
 
633
- 需要:`agents`
760
+ 需要:`agents` · `sessionProjections`
634
761
 
635
762
  ```ts config-catalog
636
763
  /** Deployment defaults for goal creation. */
@@ -640,7 +767,7 @@ export interface Config {
640
767
  }
641
768
  ```
642
769
 
643
- 来源:[`packages/goal/goal/src/index.ts:116`](../packages/goal/goal/src/index.ts)
770
+ 来源:[`packages/goal/goal/src/index.ts:172`](../packages/goal/goal/src/index.ts)
644
771
 
645
772
  <a id="deepseek-aidsh-headless"></a>
646
773
 
@@ -656,13 +783,13 @@ export interface Config {
656
783
  }
657
784
  ```
658
785
 
659
- 来源:[`packages/bundle/headless/src/index.ts:31`](../packages/bundle/headless/src/index.ts)
786
+ 来源:[`packages/bundle/headless/src/index.ts:33`](../packages/bundle/headless/src/index.ts)
660
787
 
661
788
  <a id="deepseek-aidsh-hooks-claude-code"></a>
662
789
 
663
790
  ## `@deepseek-ai/dsh-hooks-claude-code`
664
791
 
665
- 需要:`bash`
792
+ 需要:`shell` · `sessionProjections`
666
793
 
667
794
  ```ts config-catalog
668
795
  /** Plugin config: where the CC hook config lives + substitution roots. */
@@ -700,7 +827,7 @@ export interface Config {
700
827
 
701
828
  ## `@deepseek-ai/dsh-hooks-codex`
702
829
 
703
- 需要:`bash`
830
+ 需要:`shell` · `sessionProjections`
704
831
 
705
832
  ```ts config-catalog
706
833
  /** Plugin config: where the Codex hooks.json lives + the model name for payloads. */
@@ -723,40 +850,6 @@ export interface Config {
723
850
 
724
851
  来源:[`packages/hooks/hooks-codex/src/index.ts:44`](../packages/hooks/hooks-codex/src/index.ts)
725
852
 
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)
759
-
760
853
  <a id="deepseek-aidsh-host-directory-picker-browse"></a>
761
854
 
762
855
  ## `@deepseek-ai/dsh-host-directory-picker-browse`
@@ -775,7 +868,7 @@ export interface Config {
775
868
 
776
869
  ## `@deepseek-ai/dsh-host-frontend-static`
777
870
 
778
- 需要:`webServer`
871
+ 需要:`webServer` · `connection`
779
872
 
780
873
  ```ts config-catalog
781
874
  /** Plugin config: the dist anchor. */
@@ -785,23 +878,29 @@ export interface Config {
785
878
  }
786
879
  ```
787
880
 
788
- 来源:[`packages/host/frontend-static/src/index.ts:28`](../packages/host/frontend-static/src/index.ts)
881
+ 来源:[`packages/host/frontend-static/src/index.ts:30`](../packages/host/frontend-static/src/index.ts)
789
882
 
790
883
  <a id="deepseek-aidsh-host-webserver"></a>
791
884
 
792
885
  ## `@deepseek-ai/dsh-host-webserver`
793
886
 
794
887
  ```ts config-catalog
795
- /** Gateway config: the listen address. */
888
+ /** Web server listen and response-compression config. */
796
889
  export interface Config {
797
890
  /** Listen host; the two supported values are loopback and all-interfaces. */
798
891
  host: '127.0.0.1' | '0.0.0.0'
799
892
  /** Listen port; zero requests an OS-assigned port. */
800
893
  port: number
894
+ /** Response compression for socket-backed HTTP requests. @default 'none' */
895
+ compression?: 'none' | 'gzip'
896
+ /** Gzip DEFLATE level from 0 through 9. @default 1 */
897
+ compressionLevel?: number
898
+ /** Minimum known response length eligible for gzip; unknown-length streams are eligible. @default 1024 */
899
+ compressionThresholdBytes?: number
801
900
  }
802
901
  ```
803
902
 
804
- 来源:[`packages/host/webserver/src/index.ts:45`](../packages/host/webserver/src/index.ts)
903
+ 来源:[`packages/host/webserver/src/index.ts:59`](../packages/host/webserver/src/index.ts)
805
904
 
806
905
  <a id="deepseek-aidsh-invariants"></a>
807
906
 
@@ -861,16 +960,36 @@ export interface Config {
861
960
  /** Deployment thinking policy; `disabled` limits every conversation request to `off`. */
862
961
  thinking?: 'enabled' | 'disabled'
863
962
  /** Default thinking effort (default `high`); `off` disables thinking per request. */
864
- reasoningEffort?: 'off' | 'high' | 'max'
963
+ reasoningEffort?: 'off' | 'low' | 'high' | 'max'
865
964
  /** Default per-request output cap (default 256,000); a model's own cap and explicit request values win. */
866
965
  maxTokens?: number
867
966
  /** Positive context capacity used when the selected model has no exact value (default 1,000,000). */
868
967
  defaultContextWindow?: number
869
- /** Advisory models shown by discovery consumers; defaults to V4 Flash and V4 Pro. */
968
+ /** Advisory models shown by discovery consumers; defaults to V4 Flash, V4 Pro, and V4 Flash Vision Exp. */
870
969
  models?: DeepSeekCatalogModel[]
871
970
  /** Maximum provider idle time while one stream read is outstanding (default five minutes). */
872
971
  streamIdleTimeoutMs?: number
873
- /** Provider-owned model-request retry policy; omission uses normal defaults. */
972
+ /** Maximum accumulated file-referenced image bytes per chat request (default 128 MiB). */
973
+ maxRequestFilesBytes?: number
974
+ /** Maximum accumulated base64 image payload after Files API fallback (default 20 MiB). */
975
+ maxInlineRequestImageBytes?: number
976
+ /** Maximum number of represented images per chat request (default 600). */
977
+ maxImagesPerRequest?: number
978
+ /** Raw-byte removal step after the request exceeds its file bound (default 64 MiB). */
979
+ imageOffloadByteQuantum?: number
980
+ /** Base64-byte removal step after inline fallback exceeds its bound (default 10 MiB). */
981
+ inlineImageOffloadByteQuantum?: number
982
+ /** Image-count removal step after the request exceeds its count bound (default 20). */
983
+ imageOffloadCountQuantum?: number
984
+ /** Maximum duration of one request-image Files API resolution (default one minute). */
985
+ filesApiTimeoutMs?: number
986
+ /** Explicit lifetime assigned to each uploaded image (default seven days). */
987
+ fileExpiresAfterSeconds?: number
988
+ /** Remaining lifetime below which an indexed file is replaced (default one hour). */
989
+ fileRefreshMarginSeconds?: number
990
+ /** Oldest harness-owned files deleted before one quota-recovery upload retry (default 100). */
991
+ fileQuotaCleanupBatch?: number
992
+ /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
874
993
  retryPolicy?: RetryPolicyConfig
875
994
  }
876
995
 
@@ -886,12 +1005,18 @@ export interface DeepSeekCatalogModel {
886
1005
  contextWindow?: number
887
1006
  /** Per-request output cap for this model; omission falls back to the profile's {@link DeepSeekConnectionOptions.maxTokens}. */
888
1007
  maxTokens?: number
1008
+ /** Accepted request modalities; omission is text-only. */
1009
+ inputModalities?: ModelModality[]
1010
+ /** Total-pixel budget for one deterministic request preview, or the 512-by-512 `low` preset. */
1011
+ imagePixelBudget?: number | 'low'
1012
+ /** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
1013
+ imageMaxBytes?: number
889
1014
  }
890
1015
  ```
891
1016
 
892
- 依赖:[`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
1017
+ 依赖:[`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
893
1018
 
894
- 来源:[`packages/llm/llm-deepseek/src/index.ts:62`](../packages/llm/llm-deepseek/src/index.ts)
1019
+ 来源:[`packages/llm/llm-deepseek/src/index.ts:125`](../packages/llm/llm-deepseek/src/index.ts)
895
1020
 
896
1021
  <a id="deepseek-aidsh-llm-pi-ai"></a>
897
1022
 
@@ -940,10 +1065,11 @@ export interface PiAiProviderProfile {
940
1065
  */
941
1066
  modelOverrides?: Record<string, PiAiModelOverride>
942
1067
  /**
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.
1068
+ * pi-ai wire-compatibility switches defaulting every model on this route
1069
+ * whose protocol declares them; each model's own `compat` overrides per
1070
+ * field. What neither sets keeps the installed catalog entry's value, then
1071
+ * pi-ai's own detection. A switch no model on the route could read is
1072
+ * refused rather than left looking applied.
947
1073
  */
948
1074
  compat?: PiAiCompatProfile
949
1075
  /**
@@ -969,7 +1095,7 @@ export interface PiAiProviderProfile {
969
1095
  * to answer instead.
970
1096
  */
971
1097
  defaultInput?: PiAiModality[]
972
- /** Provider request headers; Harness attribution wins reserved names. */
1098
+ /** Provider request headers, validated against Fetch when the profile resolves; Harness attribution wins reserved names. */
973
1099
  headers?: Record<string, string>
974
1100
  /** Provider-neutral pi-ai reasoning level. */
975
1101
  reasoning?: ModelThinkingLevel
@@ -985,7 +1111,21 @@ export interface PiAiProviderProfile {
985
1111
  websocketConnectTimeoutMs?: number
986
1112
  /** Maximum provider idle time while one stream read is outstanding. */
987
1113
  streamIdleTimeoutMs?: number
988
- /** Provider-owned model-request retry policy; omission uses normal defaults. */
1114
+ /**
1115
+ * Maximum base64-encoded image payload per request. When a request's
1116
+ * accumulated images exceed it, the oldest images are replaced by text
1117
+ * placeholders until the request fits, so a long session keeps completing
1118
+ * requests instead of being rejected by a request-size cap.
1119
+ */
1120
+ maxRequestImageBytes?: number
1121
+ /** Total-pixel budget for each deterministic inline request version. */
1122
+ requestImagePixelBudget?: number
1123
+ /**
1124
+ * Raw encoded-byte target for each deterministic inline request version;
1125
+ * the smallest quality-ladder output is used when no quality fits.
1126
+ */
1127
+ requestImageMaxBytes?: number
1128
+ /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
989
1129
  retryPolicy?: RetryPolicyConfig
990
1130
  }
991
1131
 
@@ -1024,7 +1164,7 @@ export interface PiAiModelProfile {
1024
1164
  * declares the offered levels and their wire spellings.
1025
1165
  */
1026
1166
  reasoningEfforts?: false | PiAiReasoningEfforts
1027
- /** Reasoning-dispatch switches for this model, winning over the route's. */
1167
+ /** pi-ai wire-compatibility switches for this model, winning over the route's per field; one its protocol does not declare is refused. */
1028
1168
  compat?: PiAiCompatProfile
1029
1169
  }
1030
1170
 
@@ -1038,19 +1178,89 @@ export interface PiAiModelProfile {
1038
1178
  export type PiAiModelOverride = Omit<PiAiModelProfile, 'id'>
1039
1179
 
1040
1180
  /**
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.
1181
+ * pi-ai wire-compatibility switches, set on the route (its models' default) or
1182
+ * per model (winning over the route, field by field).
1183
+ *
1184
+ * pi-ai decides each of these from the provider id and baseURL when no layer
1185
+ * sets it, and a private gateway's URL says nothing: for an endpoint it does
1186
+ * not recognize the detection answers as though it were OpenAI itself, which
1187
+ * is wrong for most OpenAI-compatible gateways. So every field here is one a
1188
+ * deployment must be able to state because nothing can infer it, while the
1189
+ * fields pi-ai's catalog sets for a named vendor stay withheld.
1190
+ *
1191
+ * A field belongs to the protocols whose upstream compat type declares it: a
1192
+ * model-level switch its protocol does not take fails resolution, and a
1193
+ * route-level one skips past models it cannot fit. "The three Responses
1194
+ * protocols" below means `openai-responses`, `azure-openai-responses`, and
1195
+ * `openai-codex-responses`, which pi-ai gives one shared compat type, so a
1196
+ * switch settable on one is settable on all three.
1048
1197
  */
1049
1198
  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. */
1199
+ /** Whether the endpoint accepts `store`; `openai-completions`. */
1200
+ supportsStore?: boolean
1201
+ /**
1202
+ * Whether the endpoint accepts the `developer` role for the system prompt,
1203
+ * which pi-ai sends only to a reasoning model; `false` keeps `system`.
1204
+ * `openai-completions` and the three Responses protocols.
1205
+ */
1206
+ supportsDeveloperRole?: boolean
1207
+ /** Whether the endpoint accepts `reasoning_effort`; `openai-completions`. */
1053
1208
  supportsReasoningEffort?: boolean
1209
+ /** Whether the endpoint accepts `stream_options: {include_usage: true}`; `openai-completions`. */
1210
+ supportsUsageInStreaming?: boolean
1211
+ /**
1212
+ * Whether streams include `finish_reason`; `false` lets pi-ai infer the
1213
+ * terminal reason when the stream ends; `openai-completions`.
1214
+ */
1215
+ supportsFinishReason?: boolean
1216
+ /** Which output-cap field the endpoint reads; `openai-completions`. */
1217
+ maxTokensField?: NonNullable<OpenAICompletionsCompat['maxTokensField']>
1218
+ /** Whether tool results must carry `name`; `openai-completions`. */
1219
+ requiresToolResultName?: boolean
1220
+ /** Whether a user message after tool results needs an assistant message between; `openai-completions`. */
1221
+ requiresAssistantAfterToolResult?: boolean
1222
+ /** Whether thinking blocks must travel as text in `<thinking>` delimiters; `openai-completions`. */
1223
+ requiresThinkingAsText?: boolean
1224
+ /** Whether replayed assistant messages need an empty `reasoning_content` while reasoning is on; `openai-completions`. */
1225
+ requiresReasoningContentOnAssistantMessages?: boolean
1226
+ /** Reasoning parameter format the endpoint expects; `openai-completions`. */
1227
+ thinkingFormat?: PiAiThinkingFormat
1228
+ /**
1229
+ * Kwargs sent as `chat_template_kwargs`, which pi-ai reads only under the
1230
+ * two `chat-template` thinking formats; `openai-completions`. Nothing checks
1231
+ * that pairing: the format in force may come from the installed catalog
1232
+ * entry or from pi-ai's own baseURL detection, neither of which resolution
1233
+ * can read, so kwargs set beside another format are sent nowhere.
1234
+ */
1235
+ chatTemplateKwargs?: NonNullable<OpenAICompletionsCompat['chatTemplateKwargs']>
1236
+ /** Arguments sent as `chat_template_args` under the `baseten` thinking format; `openai-completions`. */
1237
+ chatTemplateArgs?: NonNullable<OpenAICompletionsCompat['chatTemplateArgs']>
1238
+ /** Whether the endpoint accepts `thinking_token_budget` to cap vLLM reasoning; `openai-completions`. */
1239
+ supportsThinkingTokenBudget?: boolean
1240
+ /**
1241
+ * Whether the endpoint accepts `strict` in tool definitions;
1242
+ * `openai-completions`, the three Responses protocols, `bedrock-converse-stream`.
1243
+ */
1244
+ supportsStrictMode?: boolean
1245
+ /** Prompt-cache marker convention; `openai-completions`. */
1246
+ cacheControlFormat?: NonNullable<OpenAICompletionsCompat['cacheControlFormat']>
1247
+ /**
1248
+ * Whether the endpoint accepts long prompt-cache retention;
1249
+ * `openai-completions`, the three Responses protocols, `anthropic-messages`.
1250
+ */
1251
+ supportsLongCacheRetention?: boolean
1252
+ /** Whether the endpoint accepts per-tool `eager_input_streaming`; `anthropic-messages`. */
1253
+ supportsEagerToolInputStreaming?: boolean
1254
+ /** Whether the endpoint accepts `cache_control` on tool definitions; `anthropic-messages`. */
1255
+ supportsCacheControlOnTools?: boolean
1256
+ /** Whether the endpoint accepts the `temperature` request field; `anthropic-messages`. */
1257
+ supportsTemperature?: boolean
1258
+ /** Whether to force adaptive thinking regardless of model id; `anthropic-messages`. */
1259
+ forceAdaptiveThinking?: boolean
1260
+ /** Whether to replay an empty thinking signature instead of converting thinking to text; `anthropic-messages`. */
1261
+ allowEmptySignature?: boolean
1262
+ /** Whether the endpoint accepts Anthropic strict tool schemas; `anthropic-messages`. */
1263
+ supportsStrictTools?: boolean
1054
1264
  }
1055
1265
 
1056
1266
  /** One request modality a pi-ai model may accept. */
@@ -1067,21 +1277,12 @@ export type PiAiModality = Model<Api>['input'][number]
1067
1277
  export type PiAiReasoningEfforts = Partial<Record<ModelThinkingLevel, string | null>>
1068
1278
 
1069
1279
  /** 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'
1280
+ export type PiAiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
1080
1281
  ```
1081
1282
 
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`)
1283
+ 依赖:`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
1284
 
1084
- 来源:[`packages/llm/llm-pi-ai/src/config.ts:172`](../packages/llm/llm-pi-ai/src/config.ts)
1285
+ 来源:[`packages/llm/llm-pi-ai/src/config.ts:213`](../packages/llm/llm-pi-ai/src/config.ts)
1085
1286
 
1086
1287
  <a id="deepseek-aidsh-llm-replay"></a>
1087
1288
 
@@ -1137,6 +1338,15 @@ export interface ReplayModelConfig {
1137
1338
  * omit one, so replay reconstructs the request header a live catalog produced.
1138
1339
  */
1139
1340
  defaultMaxTokens?: number
1341
+ /**
1342
+ * Optional flat visual-token price the replay route declares for every
1343
+ * retained request image, so keyless scenarios exercise route-priced
1344
+ * request pressure; each occurrence is priced at this value plus its
1345
+ * request-preview handle text. Requires {@link inputModalities} to include
1346
+ * `image` — a text-only route never sends visual tokens. Absent declares
1347
+ * no image pricing.
1348
+ */
1349
+ imageRequestTokens?: number
1140
1350
  /** Optional reasoning-effort ids the replay route accepts, in display order. */
1141
1351
  reasoningEfforts?: string[]
1142
1352
  /**
@@ -1149,20 +1359,20 @@ export interface ReplayModelConfig {
1149
1359
 
1150
1360
  依赖:[`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
1151
1361
 
1152
- 来源:[`packages/test-support/llm-replay/src/index.ts:776`](../packages/test-support/llm-replay/src/index.ts)
1362
+ 来源:[`packages/test-support/llm-replay/src/index.ts:924`](../packages/test-support/llm-replay/src/index.ts)
1153
1363
 
1154
1364
  <a id="deepseek-aidsh-llm-retry"></a>
1155
1365
 
1156
1366
  ## `@deepseek-ai/dsh-llm-retry`
1157
1367
 
1158
- 需要:`agents`
1368
+ 需要:`agents` · `sessionProjections`
1159
1369
 
1160
1370
  ```ts config-catalog
1161
1371
  /** This policy executor has no config; providers own `retryPolicy`. */
1162
1372
  export type Config = Readonly<Record<string, never>>
1163
1373
  ```
1164
1374
 
1165
- 来源:[`packages/llm/llm-retry/src/index.ts:24`](../packages/llm/llm-retry/src/index.ts)
1375
+ 来源:[`packages/llm/llm-retry/src/index.ts:25`](../packages/llm/llm-retry/src/index.ts)
1166
1376
 
1167
1377
  <a id="deepseek-aidsh-lsp-stdio"></a>
1168
1378
 
@@ -1293,13 +1503,13 @@ export interface Config {
1293
1503
  }
1294
1504
  ```
1295
1505
 
1296
- 来源:[`packages/feedback/message-feedback/src/index.ts:49`](../packages/feedback/message-feedback/src/index.ts)
1506
+ 来源:[`packages/feedback/message-feedback/src/index.ts:50`](../packages/feedback/message-feedback/src/index.ts)
1297
1507
 
1298
1508
  <a id="deepseek-aidsh-permission-presets"></a>
1299
1509
 
1300
1510
  ## `@deepseek-ai/dsh-permission-presets`
1301
1511
 
1302
- 需要:`bash` · `approval` · `sessions`
1512
+ 需要:`shell` · `approval` · `sessions` · `sessionProjections`
1303
1513
 
1304
1514
  ```ts config-catalog
1305
1515
  /** The {@link PermissionPresetService} config: preset table and composition default. */
@@ -1330,9 +1540,9 @@ export interface PresetSpec {
1330
1540
  }
1331
1541
  ```
1332
1542
 
1333
- 依赖:[`ApprovalPolicy`](subsystems/approval.md) · [`SandboxMode`](subsystems/sandbox.md)
1543
+ 依赖:[`ApprovalPolicy`](subsystems/approval.zh.md) · [`SandboxMode`](subsystems/sandbox.zh.md)
1334
1544
 
1335
- 来源:[`packages/interaction/permission-presets/src/index.ts:140`](../packages/interaction/permission-presets/src/index.ts)
1545
+ 来源:[`packages/interaction/permission-presets/src/index.ts:143`](../packages/interaction/permission-presets/src/index.ts)
1336
1546
 
1337
1547
  <a id="deepseek-aidsh-persona"></a>
1338
1548
 
@@ -1356,13 +1566,13 @@ export interface Config {
1356
1566
  }
1357
1567
  ```
1358
1568
 
1359
- 来源:[`packages/preset/persona/src/index.ts:34`](../packages/preset/persona/src/index.ts)
1569
+ 来源:[`packages/preset/persona/src/index.ts:30`](../packages/preset/persona/src/index.ts)
1360
1570
 
1361
1571
  <a id="deepseek-aidsh-plan-mode"></a>
1362
1572
 
1363
1573
  ## `@deepseek-ai/dsh-plan-mode`
1364
1574
 
1365
- 需要:`tools` · `systemPrompt`
1575
+ 需要:`tools` · `systemPrompt` · `sessionProjections`
1366
1576
 
1367
1577
  ```ts config-catalog
1368
1578
  /** Deployment-owned plan guidance. */
@@ -1372,7 +1582,23 @@ export interface PlanModeConfig {
1372
1582
  }
1373
1583
  ```
1374
1584
 
1375
- 来源:[`packages/plan/plan-mode/src/index.ts:70`](../packages/plan/plan-mode/src/index.ts)
1585
+ 来源:[`packages/plan/plan-mode/src/index.ts:63`](../packages/plan/plan-mode/src/index.ts)
1586
+
1587
+ <a id="deepseek-aidsh-plugin-package-inventory-deepseek"></a>
1588
+
1589
+ ## `@deepseek-ai/dsh-plugin-package-inventory-deepseek`
1590
+
1591
+ 需要:`agents` · `deepseekLlmApiExtensions` · `loader`
1592
+
1593
+ ```ts config-catalog
1594
+ /** Plugin-package request contribution configuration. */
1595
+ export interface Config {
1596
+ /** Contribute `dsh_plugin_packages` to official DeepSeek requests. Defaults to `true`. */
1597
+ enabled?: boolean
1598
+ }
1599
+ ```
1600
+
1601
+ 来源:[`packages/llm/plugin-package-inventory-deepseek/src/index.ts:31`](../packages/llm/plugin-package-inventory-deepseek/src/index.ts)
1376
1602
 
1377
1603
  <a id="deepseek-aidsh-pwsh-local"></a>
1378
1604
 
@@ -1499,6 +1725,8 @@ export interface Config {
1499
1725
 
1500
1726
  ## `@deepseek-ai/dsh-sandbox-policy`
1501
1727
 
1728
+ 需要:`sessionProjections`
1729
+
1502
1730
  ```ts config-catalog
1503
1731
  /**
1504
1732
  * Plugin config: the deployment's sandbox default. All optional — `Config`
@@ -1518,9 +1746,25 @@ export interface Config {
1518
1746
  }
1519
1747
  ```
1520
1748
 
1521
- 依赖:[`SandboxMode`](subsystems/sandbox.md)
1749
+ 依赖:[`SandboxMode`](subsystems/sandbox.zh.md)
1750
+
1751
+ 来源:[`packages/sandbox/sandbox-policy/src/index.ts:70`](../packages/sandbox/sandbox-policy/src/index.ts)
1752
+
1753
+ <a id="deepseek-aidsh-sdk-app"></a>
1754
+
1755
+ ## `@deepseek-ai/dsh-sdk-app`
1756
+
1757
+ 需要:`cmdlineArgs`
1522
1758
 
1523
- 来源:[`packages/sandbox/sandbox-policy/src/index.ts:67`](../packages/sandbox/sandbox-policy/src/index.ts)
1759
+ ```ts config-catalog
1760
+ /** SDK stdio startup configuration. */
1761
+ export interface Config {
1762
+ /** Profile name rendered in help and diagnostics (default `sdk`). */
1763
+ profile?: string
1764
+ }
1765
+ ```
1766
+
1767
+ 来源:[`packages/bundle/sdk-app/src/index.ts:23`](../packages/bundle/sdk-app/src/index.ts)
1524
1768
 
1525
1769
  <a id="deepseek-aidsh-sdk-jsonrpc-server"></a>
1526
1770
 
@@ -1544,14 +1788,47 @@ export interface JsonRpcConfig {
1544
1788
 
1545
1789
  依赖:`Readable`(`node:stream`)· `Writable`(`node:stream`)
1546
1790
 
1547
- 来源:[`packages/sdk/server/src/index.ts:29`](../packages/sdk/server/src/index.ts)
1791
+ 来源:[`packages/sdk/server/src/index.ts:25`](../packages/sdk/server/src/index.ts)
1792
+
1793
+ <a id="deepseek-aidsh-session-log-deepseek"></a>
1794
+
1795
+ ## `@deepseek-ai/dsh-session-log-deepseek`
1796
+
1797
+ 需要:`deepseekLlmApiExtensions` · `sessions`
1798
+
1799
+ ```ts config-catalog
1800
+ /** Session-log request contribution configuration. */
1801
+ export interface Config {
1802
+ /** Contribute `dsh_session_log` to official DeepSeek requests. Defaults to `false`. */
1803
+ enabled?: boolean
1804
+ }
1805
+ ```
1806
+
1807
+ 来源:[`packages/session/session-log-deepseek/src/index.ts:36`](../packages/session/session-log-deepseek/src/index.ts)
1808
+
1809
+ <a id="deepseek-aidsh-session-log-export"></a>
1810
+
1811
+ ## `@deepseek-ai/dsh-session-log-export`
1812
+
1813
+ 需要:`commands` · `connection`
1814
+
1815
+ ```ts config-catalog
1816
+ /** Session-log archive policy. */
1817
+ export interface Config {
1818
+ /** DEFLATE level for each ZIP entry. @default 6 */
1819
+ readonly compressionLevel?: SessionLogCompressionLevel
1820
+ }
1821
+
1822
+ /** Valid fflate DEFLATE levels accepted by session-log export. */
1823
+ export type SessionLogCompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1824
+ ```
1825
+
1826
+ 来源:[`packages/session-query/session-log-export/src/index.ts:45`](../packages/session-query/session-log-export/src/index.ts)
1548
1827
 
1549
1828
  <a id="deepseek-aidsh-session-persistence-jsonl"></a>
1550
1829
 
1551
1830
  ## `@deepseek-ai/dsh-session-persistence-jsonl`
1552
1831
 
1553
- 需要:`sessions`
1554
-
1555
1832
  ```ts config-catalog
1556
1833
  /** Plugin config: where the JSONL backend keeps its session logs, and the packed-row write switch. */
1557
1834
  export interface Config {
@@ -1573,75 +1850,27 @@ export interface Config {
1573
1850
  packChunks?: boolean
1574
1851
  /** Physical encoding; defaults to checksummed Zstandard frames. */
1575
1852
  compression?: JsonlCompression
1576
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1577
- preparedSessionCacheSize?: number
1578
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1579
- writeBatchMaxDelayMs?: number
1580
1853
  }
1581
1854
 
1582
1855
  /** Physical encoding selected for JSONL session artifacts. */
1583
1856
  export type JsonlCompression = 'zstd' | 'none'
1584
1857
  ```
1585
1858
 
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)
1859
+ 来源:[`packages/session/session-persistence-jsonl/src/index.ts:73`](../packages/session/session-persistence-jsonl/src/index.ts)
1632
1860
 
1633
1861
  <a id="deepseek-aidsh-session-projection-cache"></a>
1634
1862
 
1635
1863
  ## `@deepseek-ai/dsh-session-projection-cache`
1636
1864
 
1637
- 需要:`storageDomain` · `sessionProjections` · `sessionPersistence` · `sessions`
1865
+ 需要:`storageDomain` · `sessionProjections` · `sessions`
1638
1866
 
1639
1867
  ```ts config-catalog
1640
1868
  /**
1641
1869
  * Plugin config. Both throttle triggers are deployment choices with no
1642
1870
  * 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.
1871
+ * (cordis.yml); the three mandatory write points (session creation,
1872
+ * `turn/end`, and session disposal) are policy, not tunables, and always
1873
+ * fire.
1645
1874
  */
1646
1875
  export interface Config {
1647
1876
  /** Committed events per session that force a durable checkpoint write between mandatory points. */
@@ -1651,7 +1880,7 @@ export interface Config {
1651
1880
  }
1652
1881
  ```
1653
1882
 
1654
- 来源:[`packages/session/session-projection-cache/src/index.ts:42`](../packages/session/session-projection-cache/src/index.ts)
1883
+ 来源:[`packages/session/session-projection-cache/src/index.ts:55`](../packages/session/session-projection-cache/src/index.ts)
1655
1884
 
1656
1885
  <a id="deepseek-aidsh-session-query-sqlite"></a>
1657
1886
 
@@ -1684,8 +1913,10 @@ export interface Config extends SessionQueryConfig {
1684
1913
  maxLimit?: number
1685
1914
  /** Maximum snippet length in Unicode code points. Defaults to 240. */
1686
1915
  snippetChars?: number
1687
- /** Maximum concurrent persisted-log inspections in one inherited batch read. Defaults to 4. */
1688
- persistedInspectConcurrency?: number
1916
+ /** Maximum concurrent persisted-log reads in one inherited batch read. Defaults to 4. */
1917
+ persistedReadConcurrency?: number
1918
+ /** Maximum cold prepared-Session observations the inherited reader retains for reuse. Defaults to 5. */
1919
+ preparedSessionCacheSize?: number
1689
1920
  }
1690
1921
 
1691
1922
  /** SQLite module/handle opening phase; `never` disables full-text search entirely. */
@@ -1697,7 +1928,7 @@ export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1697
1928
 
1698
1929
  依赖:[`SessionQueryConfig`](../packages/session-query/session-query/src/index.ts)
1699
1930
 
1700
- 来源:[`packages/session-query/session-query-sqlite/src/index.ts:89`](../packages/session-query/session-query-sqlite/src/index.ts)
1931
+ 来源:[`packages/session-query/session-query-sqlite/src/index.ts:92`](../packages/session-query/session-query-sqlite/src/index.ts)
1701
1932
 
1702
1933
  <a id="deepseek-aidsh-session-reference"></a>
1703
1934
 
@@ -1783,7 +2014,7 @@ export interface Config {
1783
2014
  }
1784
2015
  ```
1785
2016
 
1786
- 来源:[`packages/session/session-title/src/index.ts:79`](../packages/session/session-title/src/index.ts)
2017
+ 来源:[`packages/session/session-title/src/index.ts:56`](../packages/session/session-title/src/index.ts)
1787
2018
 
1788
2019
  <a id="deepseek-aidsh-session-title-all-prompts-llm"></a>
1789
2020
 
@@ -1833,7 +2064,7 @@ export interface Config {
1833
2064
  }
1834
2065
  ```
1835
2066
 
1836
- 来源:[`packages/settings/settings-file/src/index.ts:21`](../packages/settings/settings-file/src/index.ts)
2067
+ 来源:[`packages/settings/settings-file/src/index.ts:22`](../packages/settings/settings-file/src/index.ts)
1837
2068
 
1838
2069
  <a id="deepseek-aidsh-shell-env"></a>
1839
2070
 
@@ -1847,7 +2078,7 @@ export interface Config {
1847
2078
  }
1848
2079
  ```
1849
2080
 
1850
- 来源:[`packages/shell/shell-env/src/index.ts:29`](../packages/shell/shell-env/src/index.ts)
2081
+ 来源:[`packages/shell/shell-env/src/index.ts:28`](../packages/shell/shell-env/src/index.ts)
1851
2082
 
1852
2083
  <a id="deepseek-aidsh-skill"></a>
1853
2084
 
@@ -1861,7 +2092,7 @@ export interface Config {
1861
2092
  }
1862
2093
  ```
1863
2094
 
1864
- 来源:[`packages/skill/skill/src/index.ts:279`](../packages/skill/skill/src/index.ts)
2095
+ 来源:[`packages/skill/skill/src/index.ts:280`](../packages/skill/skill/src/index.ts)
1865
2096
 
1866
2097
  <a id="deepseek-aidsh-skill-filesystem"></a>
1867
2098
 
@@ -1872,7 +2103,7 @@ export interface Config {
1872
2103
  ```ts config-catalog
1873
2104
  /** Local filesystem skill provider configuration. */
1874
2105
  export interface Config {
1875
- /** Unique provider name. Defaults to `local`. */
2106
+ /** Unique provider name. Defaults to `filesystem`. */
1876
2107
  providerName?: string
1877
2108
  /** Whether project and user roots are included around custom roots. */
1878
2109
  includeDefaultRoots?: boolean
@@ -1914,16 +2145,27 @@ export interface Config {
1914
2145
  * a local deployment. Set it to keep spill files under a known location.
1915
2146
  */
1916
2147
  root?: string
2148
+ /**
2149
+ * Age in days after which a spill file is eligible for the one-shot startup
2150
+ * cleanup sweep. Defaults to `30`; `0` disables cleanup entirely. Files whose
2151
+ * `mtime` is strictly older than the cutoff are deleted and emptied
2152
+ * directories are pruned; fresh files, symlinks, and unrelated entries are
2153
+ * left untouched. On POSIX, cleanup skips roots and session directories that
2154
+ * another local user could modify or replace. Retention is deliberate — a
2155
+ * resumed or forked session may still reference an older locator until it
2156
+ * ages out.
2157
+ */
2158
+ cleanupPeriodDays?: number
1917
2159
  }
1918
2160
  ```
1919
2161
 
1920
- 来源:[`packages/spill/spill-local/src/index.ts:22`](../packages/spill/spill-local/src/index.ts)
2162
+ 来源:[`packages/spill/spill-local/src/index.ts:31`](../packages/spill/spill-local/src/index.ts)
1921
2163
 
1922
2164
  <a id="deepseek-aidsh-spill-policy"></a>
1923
2165
 
1924
2166
  ## `@deepseek-ai/dsh-spill-policy`
1925
2167
 
1926
- 需要:`tools`
2168
+ 需要:`tools` · `sessionProjections`
1927
2169
 
1928
2170
  ```ts config-catalog
1929
2171
  /** Plugin config. */
@@ -1976,12 +2218,12 @@ export interface Config {
1976
2218
  * location explicitly.
1977
2219
  */
1978
2220
  export interface Config {
1979
- /** Directory holding one `<unit>.json` file per unit. */
2221
+ /** Directory holding one `<unit>.json` file (or `<unit>/` tree) per unit. */
1980
2222
  root: string
1981
2223
  }
1982
2224
  ```
1983
2225
 
1984
- 来源:[`packages/storage/storage-json/src/index.ts:27`](../packages/storage/storage-json/src/index.ts)
2226
+ 来源:[`packages/storage/storage-json/src/index.ts:28`](../packages/storage/storage-json/src/index.ts)
1985
2227
 
1986
2228
  <a id="deepseek-aidsh-storage-sqlite"></a>
1987
2229
 
@@ -2066,7 +2308,7 @@ export interface Config {
2066
2308
  * `MAX_TIMER_DELAY_MS`.
2067
2309
  */
2068
2310
  disposeEofGraceMs?: number
2069
- /** Termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2311
+ /** Failure-observation and termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2070
2312
  disposeGraceMs?: number
2071
2313
  }
2072
2314
 
@@ -2083,19 +2325,33 @@ export type PermissionPolicy = 'allow' | 'reject'
2083
2325
  需要:`subagents` · `subprocess`
2084
2326
 
2085
2327
  ```ts config-catalog
2086
- /** Deployment-owned environment and process-release bound. */
2328
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2087
2329
  export interface Config {
2330
+ /** Provider name on `ctx.subagents` (default `claude-code`). */
2331
+ providerName?: string
2332
+ /** Native Claude model fixed for this instance; omitted to inherit Claude settings. */
2333
+ model?: string
2088
2334
  /**
2089
2335
  * Explicit environment entries layered over the subprocess seam's
2090
2336
  * credential-scrubbed parent environment.
2091
2337
  */
2092
2338
  env?: Record<string, string>
2339
+ /**
2340
+ * Native non-interactive mode fixed for this Provider instance. Defaults to
2341
+ * `dontAsk`; `acceptEdits` accepts edits, `auto` uses the native classifier,
2342
+ * `plan` returns a plan without approving execution, and
2343
+ * `bypassPermissions` explicitly skips permission checks.
2344
+ */
2345
+ permissionMode?: ClaudeCodePermissionMode
2093
2346
  /** Grace in milliseconds for Claude Code process-tree termination. */
2094
2347
  disposeGraceMs?: number
2095
2348
  }
2349
+
2350
+ /** Profile-selectable non-interactive Claude Code permission mode. */
2351
+ export type ClaudeCodePermissionMode = typeof CLAUDE_CODE_PERMISSION_MODES[number]
2096
2352
  ```
2097
2353
 
2098
- 来源:[`packages/subagent/subagent-claude-code/src/index.ts:32`](../packages/subagent/subagent-claude-code/src/index.ts)
2354
+ 来源:[`packages/subagent/subagent-claude-code/src/index.ts:38`](../packages/subagent/subagent-claude-code/src/index.ts)
2099
2355
 
2100
2356
  <a id="deepseek-aidsh-subagent-codex"></a>
2101
2357
 
@@ -2104,19 +2360,31 @@ export interface Config {
2104
2360
  需要:`subagents` · `subprocess`
2105
2361
 
2106
2362
  ```ts config-catalog
2107
- /** Deployment-owned environment and process-release bound. */
2363
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2108
2364
  export interface Config {
2365
+ /** Provider name on `ctx.subagents` (default `codex`). */
2366
+ providerName?: string
2367
+ /** Native Codex model fixed for this instance; omitted to inherit Codex settings. */
2368
+ model?: string
2109
2369
  /**
2110
2370
  * Explicit environment entries layered over the subprocess seam's
2111
2371
  * credential-scrubbed parent environment.
2112
2372
  */
2113
2373
  env?: Record<string, string>
2374
+ /** Native non-interactive permission mode fixed for this Provider instance. */
2375
+ permissionMode?: CodexPermissionMode
2114
2376
  /** Grace in milliseconds for app-server process-tree termination. */
2115
2377
  disposeGraceMs?: number
2116
2378
  }
2379
+
2380
+ /** Profile-selectable non-interactive Codex permission mode. */
2381
+ export type CodexPermissionMode =
2382
+ | 'never'
2383
+ | 'approve-for-me'
2384
+ | 'dangerously-bypass-approvals-and-sandbox'
2117
2385
  ```
2118
2386
 
2119
- 来源:[`packages/subagent/subagent-codex/src/index.ts:30`](../packages/subagent/subagent-codex/src/index.ts)
2387
+ 来源:[`packages/subagent/subagent-codex/src/index.ts:36`](../packages/subagent/subagent-codex/src/index.ts)
2120
2388
 
2121
2389
  <a id="deepseek-aidsh-subagent-dsh-sdk"></a>
2122
2390
 
@@ -2129,10 +2397,14 @@ export interface Config {
2129
2397
  export interface Config {
2130
2398
  /** Provider name on `ctx.subagents` (default `dsh-sdk`). */
2131
2399
  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[]
2400
+ /** Explicit dsh CLI module, resolved and checked at plugin load; omission uses the SDK dependency. */
2401
+ dshBin?: string
2402
+ /** Named child profile (default `sdk`). */
2403
+ profile: string
2404
+ /** Ordered per-launch profile patch files, resolved and checked at plugin load. */
2405
+ patches: string[]
2406
+ /** Absolute isolated Harness home for every nested child process. */
2407
+ dshHome: string
2136
2408
  /**
2137
2409
  * Working directory override for the child process and its SDK session
2138
2410
  * workspace. Must be non-empty; a relative path resolves against the
@@ -2150,8 +2422,7 @@ export interface Config {
2150
2422
  maxTokens?: number
2151
2423
  /**
2152
2424
  * 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
2425
+ * runtime's own `DEEPSEEK_API_KEY`. Forwarded on top of a credential-scrubbed copy of the parent
2155
2426
  * env, so an explicit key here reaches the child while ambient secrets do
2156
2427
  * not leak implicitly.
2157
2428
  */
@@ -2169,7 +2440,7 @@ export interface Config {
2169
2440
  }
2170
2441
  ```
2171
2442
 
2172
- 来源:[`packages/subagent/subagent-dsh-sdk/src/index.ts:29`](../packages/subagent/subagent-dsh-sdk/src/index.ts)
2443
+ 来源:[`packages/subagent/subagent-dsh-sdk/src/index.ts:34`](../packages/subagent/subagent-dsh-sdk/src/index.ts)
2173
2444
 
2174
2445
  <a id="deepseek-aidsh-subagent-fork-in-process"></a>
2175
2446
 
@@ -2244,22 +2515,24 @@ export interface Config {
2244
2515
  }
2245
2516
  ```
2246
2517
 
2247
- 来源:[`packages/core/system-prompt/src/index.ts:186`](../packages/core/system-prompt/src/index.ts)
2518
+ 来源:[`packages/core/system-prompt/src/index.ts:237`](../packages/core/system-prompt/src/index.ts)
2248
2519
 
2249
2520
  <a id="deepseek-aidsh-terminal-bash"></a>
2250
2521
 
2251
2522
  ## `@deepseek-ai/dsh-terminal-bash`
2252
2523
 
2253
- 需要:`pty` · `sandboxPolicy` · `subprocess`
2524
+ 需要:`terminals` · `sandboxPolicy` · `sessionProjections` · `subprocess`
2254
2525
 
2255
2526
  ```ts config-catalog
2256
2527
  /** Public plugin configuration. */
2257
2528
  export interface Config {
2258
2529
  /** Backend registry type (default: `shell`). */
2259
2530
  backendType?: string
2260
- /** Interactive shell executable (default: `/bin/bash`). */
2531
+ /** Interactive shell dialect (default: `bash`); selects the argv/env/startup defaults. */
2532
+ shellDialect?: ShellDialect
2533
+ /** Interactive shell executable (default per dialect: `/bin/bash`, or the resolved pwsh). */
2261
2534
  shellPath?: string
2262
- /** Shell arguments (default: `--noprofile --norc -i`). */
2535
+ /** Shell arguments (default per dialect: bash `--noprofile --norc -i`, pwsh `-NoLogo -NoProfile`). */
2263
2536
  shellArgs?: string[]
2264
2537
  /** Terminal rows. */
2265
2538
  rows?: number
@@ -2282,20 +2555,23 @@ export interface Config {
2282
2555
  * regain the foreground before `inferred_idle` settles; at least one `pollIntervalMs`.
2283
2556
  */
2284
2557
  handoffGraceMs?: number
2285
- /** Absolute send wait bound. */
2558
+ /** Absolute bound for one send and the complete pwsh startup sequence. */
2286
2559
  timeoutMs?: number
2287
2560
  /** Grace before teardown escalates to `SIGKILL`. */
2288
2561
  disposeGraceMs?: number
2289
2562
  }
2563
+
2564
+ /** One supported interactive shell dialect. */
2565
+ export type ShellDialect = 'bash' | 'pwsh'
2290
2566
  ```
2291
2567
 
2292
- 来源:[`packages/terminal/terminal-bash/src/config.ts:6`](../packages/terminal/terminal-bash/src/config.ts)
2568
+ 来源:[`packages/terminal/terminal-bash/src/config.ts:10`](../packages/terminal/terminal-bash/src/config.ts)
2293
2569
 
2294
2570
  <a id="deepseek-aidsh-time-context"></a>
2295
2571
 
2296
2572
  ## `@deepseek-ai/dsh-time-context`
2297
2573
 
2298
- 需要:`agents`
2574
+ 需要:`agents` · `sessionProjections`
2299
2575
 
2300
2576
  ```ts config-catalog
2301
2577
  /** Request-preparation clock formatting and append scheduling. Invalid values fail plugin load. */
@@ -2307,13 +2583,13 @@ export interface Config {
2307
2583
  }
2308
2584
  ```
2309
2585
 
2310
- 来源:[`packages/context/time-context/src/index.ts:27`](../packages/context/time-context/src/index.ts)
2586
+ 来源:[`packages/context/time-context/src/index.ts:48`](../packages/context/time-context/src/index.ts)
2311
2587
 
2312
2588
  <a id="deepseek-aidsh-tmux-context"></a>
2313
2589
 
2314
2590
  ## `@deepseek-ai/dsh-tmux-context`
2315
2591
 
2316
- 需要:`agents`
2592
+ 需要:`agents` · `sessionProjections`
2317
2593
 
2318
2594
  ```ts config-catalog
2319
2595
  /** Per-turn tmux-location scheduling. Invalid values fail plugin load. */
@@ -2323,24 +2599,26 @@ export interface Config {
2323
2599
  }
2324
2600
  ```
2325
2601
 
2326
- 来源:[`packages/context/tmux-context/src/index.ts:34`](../packages/context/tmux-context/src/index.ts)
2602
+ 来源:[`packages/context/tmux-context/src/index.ts:36`](../packages/context/tmux-context/src/index.ts)
2327
2603
 
2328
2604
  <a id="deepseek-aidsh-token-meter"></a>
2329
2605
 
2330
2606
  ## `@deepseek-ai/dsh-token-meter`
2331
2607
 
2608
+ 需要:`sessionProjections`
2609
+
2332
2610
  ```ts config-catalog
2333
2611
  /** Token-meter plugin configuration; the fixed estimator has no settings. */
2334
2612
  export type TokenMeterConfig = Record<string, never>
2335
2613
  ```
2336
2614
 
2337
- 来源:[`packages/llm/token-meter/src/types.ts:12`](../packages/llm/token-meter/src/types.ts)
2615
+ 来源:[`packages/llm/token-meter/src/types.ts:13`](../packages/llm/token-meter/src/types.ts)
2338
2616
 
2339
2617
  <a id="deepseek-aidsh-tool-bash"></a>
2340
2618
 
2341
2619
  ## `@deepseek-ai/dsh-tool-bash`
2342
2620
 
2343
- 需要:`tools` · `bash` · `systemPrompt` · `bashEnv`
2621
+ 需要:`tools` · `shell` · `systemPrompt` · `shellEnv`
2344
2622
 
2345
2623
  ```ts config-catalog
2346
2624
  /** Configuration for the bash tool. */
@@ -2350,13 +2628,13 @@ export interface Config {
2350
2628
  }
2351
2629
  ```
2352
2630
 
2353
- 来源:[`packages/shell/tool-bash/src/index.ts:34`](../packages/shell/tool-bash/src/index.ts)
2631
+ 来源:[`packages/shell/tool-bash/src/index.ts:33`](../packages/shell/tool-bash/src/index.ts)
2354
2632
 
2355
2633
  <a id="deepseek-aidsh-tool-bash-persistent"></a>
2356
2634
 
2357
2635
  ## `@deepseek-ai/dsh-tool-bash-persistent`
2358
2636
 
2359
- 需要:`tools` · `pty`
2637
+ 需要:`tools` · `terminals`
2360
2638
 
2361
2639
  ```ts config-catalog
2362
2640
  /** Configuration for the persistent Bash tool. */
@@ -2372,7 +2650,7 @@ export interface Config {
2372
2650
  }
2373
2651
  ```
2374
2652
 
2375
- 来源:[`packages/shell/tool-bash-persistent/src/index.ts:405`](../packages/shell/tool-bash-persistent/src/index.ts)
2653
+ 来源:[`packages/shell/tool-bash-persistent/src/index.ts:432`](../packages/shell/tool-bash-persistent/src/index.ts)
2376
2654
 
2377
2655
  <a id="deepseek-aidsh-tool-fs"></a>
2378
2656
 
@@ -2435,7 +2713,7 @@ export interface Config {
2435
2713
 
2436
2714
  ## `@deepseek-ai/dsh-tool-goal`
2437
2715
 
2438
- 需要:`agents` · `goals` · `tools` · `systemPrompt`
2716
+ 需要:`agents` · `goals` · `tools` · `systemPrompt` · `sessionProjections`
2439
2717
 
2440
2718
  ```ts config-catalog
2441
2719
  /** Model policy and hard lower bounds for goal-state updates. */
@@ -2445,13 +2723,13 @@ export interface Config {
2445
2723
  }
2446
2724
  ```
2447
2725
 
2448
- 来源:[`packages/goal/tool-goal/src/index.ts:26`](../packages/goal/tool-goal/src/index.ts)
2726
+ 来源:[`packages/goal/tool-goal/src/index.ts:25`](../packages/goal/tool-goal/src/index.ts)
2449
2727
 
2450
2728
  <a id="deepseek-aidsh-tool-jobs"></a>
2451
2729
 
2452
2730
  ## `@deepseek-ai/dsh-tool-jobs`
2453
2731
 
2454
- 需要:`tools` · `tasks` · `systemPrompt`
2732
+ 需要:`tools` · `jobs` · `systemPrompt`
2455
2733
 
2456
2734
  ```ts config-catalog
2457
2735
  /** Configures bounded `job_output` waits and completion-notice delivery. */
@@ -2479,7 +2757,7 @@ export interface Config {
2479
2757
  export type CompletionDelivery = 'quiet' | 'wakeup'
2480
2758
  ```
2481
2759
 
2482
- 来源:[`packages/jobs/tool-jobs/src/index.ts:32`](../packages/jobs/tool-jobs/src/index.ts)
2760
+ 来源:[`packages/jobs/tool-jobs/src/index.ts:31`](../packages/jobs/tool-jobs/src/index.ts)
2483
2761
 
2484
2762
  <a id="deepseek-aidsh-tool-lsp"></a>
2485
2763
 
@@ -2499,13 +2777,13 @@ export interface Config {
2499
2777
  }
2500
2778
  ```
2501
2779
 
2502
- 来源:[`packages/lsp/tool-lsp/src/index.ts:58`](../packages/lsp/tool-lsp/src/index.ts)
2780
+ 来源:[`packages/lsp/tool-lsp/src/index.ts:57`](../packages/lsp/tool-lsp/src/index.ts)
2503
2781
 
2504
2782
  <a id="deepseek-aidsh-tool-pwsh"></a>
2505
2783
 
2506
2784
  ## `@deepseek-ai/dsh-tool-pwsh`
2507
2785
 
2508
- 需要:`tools` · `bash` · `systemPrompt` · `bashEnv`
2786
+ 需要:`tools` · `shell` · `systemPrompt` · `shellEnv`
2509
2787
 
2510
2788
  ```ts config-catalog
2511
2789
  /** Configuration for the pwsh tool. */
@@ -2515,13 +2793,35 @@ export interface Config {
2515
2793
  }
2516
2794
  ```
2517
2795
 
2518
- 来源:[`packages/shell/tool-pwsh/src/index.ts:52`](../packages/shell/tool-pwsh/src/index.ts)
2796
+ 来源:[`packages/shell/tool-pwsh/src/index.ts:51`](../packages/shell/tool-pwsh/src/index.ts)
2797
+
2798
+ <a id="deepseek-aidsh-tool-pwsh-persistent"></a>
2799
+
2800
+ ## `@deepseek-ai/dsh-tool-pwsh-persistent`
2801
+
2802
+ 需要:`tools` · `terminals`
2803
+
2804
+ ```ts config-catalog
2805
+ /** Configuration for the persistent pwsh tool. */
2806
+ export interface Config {
2807
+ /** PTY backend used for each owner-isolated persistent shell (default `shell`). */
2808
+ backendType?: string
2809
+ /** Wall-clock limit for one command (default 300000). */
2810
+ timeoutMs?: number
2811
+ /** Maximum returned command-output characters before clipping (default 16000). */
2812
+ maxOutputChars?: number
2813
+ /** Model-facing tool description; deployments may describe their environment. */
2814
+ description?: string
2815
+ }
2816
+ ```
2817
+
2818
+ 来源:[`packages/shell/tool-pwsh-persistent/src/index.ts:472`](../packages/shell/tool-pwsh-persistent/src/index.ts)
2519
2819
 
2520
2820
  <a id="deepseek-aidsh-tool-ralph"></a>
2521
2821
 
2522
2822
  ## `@deepseek-ai/dsh-tool-ralph`
2523
2823
 
2524
- 需要:`tools` · `workflows` · `subagents` · `systemPrompt`
2824
+ 需要:`tools` · `workflowEngine` · `subagents` · `systemPrompt`
2525
2825
 
2526
2826
  ```ts config-catalog
2527
2827
  /** Deployment policy for the fixed Ralph workflow. */
@@ -2537,13 +2837,13 @@ export interface Config {
2537
2837
  }
2538
2838
  ```
2539
2839
 
2540
- 来源:[`packages/workflow/tool-ralph/src/index.ts:23`](../packages/workflow/tool-ralph/src/index.ts)
2840
+ 来源:[`packages/workflow/tool-ralph/src/index.ts:21`](../packages/workflow/tool-ralph/src/index.ts)
2541
2841
 
2542
2842
  <a id="deepseek-aidsh-tool-session-query"></a>
2543
2843
 
2544
2844
  ## `@deepseek-ai/dsh-tool-session-query`
2545
2845
 
2546
- 需要:`tools` · `systemPrompt` · `sessionQuery`
2846
+ 需要:`tools` · `systemPrompt` · `sessionQuery` · `sessionProjections`
2547
2847
 
2548
2848
  ```ts config-catalog
2549
2849
  /** Deployment-owned search count and timeout bounds. */
@@ -2555,7 +2855,7 @@ export interface Config {
2555
2855
  }
2556
2856
  ```
2557
2857
 
2558
- 来源:[`packages/session-query/tool-session-query/src/index.ts:29`](../packages/session-query/tool-session-query/src/index.ts)
2858
+ 来源:[`packages/session-query/tool-session-query/src/index.ts:28`](../packages/session-query/tool-session-query/src/index.ts)
2559
2859
 
2560
2860
  <a id="deepseek-aidsh-tool-skill"></a>
2561
2861
 
@@ -2589,13 +2889,13 @@ export interface Config {
2589
2889
  }
2590
2890
  ```
2591
2891
 
2592
- 来源:[`packages/fs/tool-str-replace-editor/src/index.ts:497`](../packages/fs/tool-str-replace-editor/src/index.ts)
2892
+ 来源:[`packages/fs/tool-str-replace-editor/src/index.ts:505`](../packages/fs/tool-str-replace-editor/src/index.ts)
2593
2893
 
2594
2894
  <a id="deepseek-aidsh-tool-subagent"></a>
2595
2895
 
2596
2896
  ## `@deepseek-ai/dsh-tool-subagent`
2597
2897
 
2598
- 需要:`tools` · `subagents` · `systemPrompt`
2898
+ 需要:`tools` · `subagents` · `systemPrompt` · `sessionProjections`
2599
2899
 
2600
2900
  ```ts config-catalog
2601
2901
  /** Config: which registered provider this tool delegates to, plus child defaults. */
@@ -2607,6 +2907,11 @@ export interface Config {
2607
2907
  * a distinct name.
2608
2908
  */
2609
2909
  toolName?: string
2910
+ /**
2911
+ * Sample the Host `subagent-model-selection` user setting for each new
2912
+ * top-level session and inherit that decision in its child sessions.
2913
+ */
2914
+ modelSelectionSettings?: boolean
2610
2915
  /**
2611
2916
  * Expose `run_in_background` (default true). Disabled instances omit the
2612
2917
  * parameter and reject forced background calls.
@@ -2652,37 +2957,15 @@ export interface Config {
2652
2957
  }
2653
2958
  ```
2654
2959
 
2655
- 依赖:[`AgentOptions`](subsystems/core.md)
2656
-
2657
- 来源:[`packages/subagent/tool-subagent/src/index.ts:29`](../packages/subagent/tool-subagent/src/index.ts)
2658
-
2659
- <a id="deepseek-aidsh-tool-subagent-report"></a>
2960
+ 依赖:[`AgentOptions`](subsystems/core.zh.md)
2660
2961
 
2661
- ## `@deepseek-ai/dsh-tool-subagent-report`
2662
-
2663
- 需要:`subagents` · `tools` · `systemPrompt`
2664
-
2665
- ```ts config-catalog
2666
- /** Config: how accepted reports are scheduled on the parent. */
2667
- export interface Config {
2668
- /**
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.
2672
- */
2673
- reportDelivery?: SubagentReportDelivery
2674
- }
2675
- ```
2676
-
2677
- 依赖:[`SubagentReportDelivery`](subsystems/subagent.md)
2678
-
2679
- 来源:[`packages/subagent/tool-subagent-report/src/index.ts:27`](../packages/subagent/tool-subagent-report/src/index.ts)
2962
+ 来源:[`packages/subagent/tool-subagent/src/index.ts:48`](../packages/subagent/tool-subagent/src/index.ts)
2680
2963
 
2681
2964
  <a id="deepseek-aidsh-tool-terminal"></a>
2682
2965
 
2683
2966
  ## `@deepseek-ai/dsh-tool-terminal`
2684
2967
 
2685
- 需要:`pty` · `tools` · `systemPrompt`
2968
+ 需要:`terminals` · `tools` · `systemPrompt`
2686
2969
 
2687
2970
  ```ts config-catalog
2688
2971
  /** Model-facing terminal tool configuration. */
@@ -2725,7 +3008,7 @@ export interface Config {
2725
3008
  需要:`tools` · `web` · `systemPrompt`
2726
3009
 
2727
3010
  ```ts config-catalog
2728
- /** Plugin config: which web tools to register, the source cap, per-tool budgets, and the fetch output cap. */
3011
+ /** Plugin config: which web tools to register, search bounds, per-tool budgets, and the fetch output cap. */
2729
3012
  export interface Config {
2730
3013
  /** Register `web_search`. Defaults to true. */
2731
3014
  search?: boolean
@@ -2733,6 +3016,8 @@ export interface Config {
2733
3016
  fetch?: boolean
2734
3017
  /** Upper bound on sources returned by one `web_search` call. */
2735
3018
  searchMaxResults?: number
3019
+ /** Upper bound on queries accepted by one `web_search` call. */
3020
+ searchMaxQueries?: number
2736
3021
  /** Cooperative timeout budget (ms) for `web_fetch`. Defaults to 30000. */
2737
3022
  fetchTimeoutMs?: number
2738
3023
  /** Cooperative timeout budget (ms) for `web_search`. Defaults to 30000. */
@@ -2748,7 +3033,7 @@ export interface Config {
2748
3033
 
2749
3034
  ## `@deepseek-ai/dsh-tool-workflow`
2750
3035
 
2751
- 需要:`tools` · `workflows` · `systemPrompt`
3036
+ 需要:`tools` · `workflowEngine` · `systemPrompt`
2752
3037
 
2753
3038
  ```ts config-catalog
2754
3039
  /** Config: the model-facing tool name plus result rendering caps. */
@@ -2760,7 +3045,7 @@ export interface Config {
2760
3045
  }
2761
3046
  ```
2762
3047
 
2763
- 来源:[`packages/workflow/tool-workflow/src/index.ts:33`](../packages/workflow/tool-workflow/src/index.ts)
3048
+ 来源:[`packages/workflow/tool-workflow/src/index.ts:32`](../packages/workflow/tool-workflow/src/index.ts)
2764
3049
 
2765
3050
  <a id="deepseek-aidsh-tools"></a>
2766
3051
 
@@ -2772,13 +3057,13 @@ export interface Config {
2772
3057
  /** Plugin config: how the registered tools are presented to the model. */
2773
3058
  export interface Config {
2774
3059
  /**
2775
- * Model presentation. `native` (default) sends every visible schema; `code`
3060
+ * Model presentation. `native` (default) sends every visible schema; `ptc`
2776
3061
  * sends only `run_code` plus a generated SDK prompt and collapses the
2777
3062
  * executor to the same surface (a model-direct call may only name
2778
3063
  * `run_code`; `run_code` SDK sub-dispatches keep every visible tool); `both`
2779
- * sends both forms. Code modes require a `ctx.codeRuntime` whose `language`
3064
+ * sends both forms. PTC mode requires a `ctx.codeRuntime` whose `language`
2780
3065
  * 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
3066
+ * assembly when it is absent or has no renderer. Under `ptc`, native names
2782
3067
  * in `toolOrder` are invalid.
2783
3068
  */
2784
3069
  mode?: ToolPresentationMode
@@ -2793,10 +3078,10 @@ export interface Config {
2793
3078
  }
2794
3079
 
2795
3080
  /** How the registry presents its tools to the model (see {@link Config.mode}). */
2796
- export type ToolPresentationMode = 'native' | 'code' | 'both'
3081
+ export type ToolPresentationMode = 'native' | 'ptc' | 'both'
2797
3082
  ```
2798
3083
 
2799
- 来源:[`packages/core/tools/src/index.ts:654`](../packages/core/tools/src/index.ts)
3084
+ 来源:[`packages/core/tools/src/index.ts:647`](../packages/core/tools/src/index.ts)
2800
3085
 
2801
3086
  <a id="deepseek-aidsh-typert-loader"></a>
2802
3087
 
@@ -2843,7 +3128,7 @@ export interface Config {
2843
3128
  export type ApprovalPolicy = 'ask' | 'never'
2844
3129
  ```
2845
3130
 
2846
- 来源:[`packages/interaction/user-approval/src/index.ts:177`](../packages/interaction/user-approval/src/index.ts)
3131
+ 来源:[`packages/interaction/user-approval/src/index.ts:126`](../packages/interaction/user-approval/src/index.ts)
2847
3132
 
2848
3133
  <a id="deepseek-aidsh-web"></a>
2849
3134
 
@@ -2875,6 +3160,8 @@ export interface WebRuntimeConfig {
2875
3160
  ```ts config-catalog
2876
3161
  /** Plugin config: composed deployment settings plus per-invocation command-line values. */
2877
3162
  export interface Config {
3163
+ /** Permit default-browser handoff after the Loader tree settles; an SSH launch suppresses it. */
3164
+ openBrowser: boolean
2878
3165
  /** Print the URL line on activation; a non-interactive layer can turn it off. */
2879
3166
  printUrl: boolean
2880
3167
  /**
@@ -2889,7 +3176,7 @@ export interface Config {
2889
3176
  }
2890
3177
  ```
2891
3178
 
2892
- 来源:[`packages/bundle/web-app/src/index.ts:38`](../packages/bundle/web-app/src/index.ts)
3179
+ 来源:[`packages/bundle/web-app/src/index.ts:44`](../packages/bundle/web-app/src/index.ts)
2893
3180
 
2894
3181
  <a id="deepseek-aidsh-web-fetch-http"></a>
2895
3182
 
@@ -2900,8 +3187,6 @@ export interface Config {
2900
3187
  ```ts config-catalog
2901
3188
  /** Plugin config: the provider's transport and size limits plus its `User-Agent` (all defaulted). */
2902
3189
  export interface Config {
2903
- /** Maximum accepted request URL length. */
2904
- maxUrlLength?: number
2905
3190
  /** Maximum response body size in bytes. */
2906
3191
  maxResponseBytes?: number
2907
3192
  /** Maximum decoded body length in characters. */
@@ -2915,7 +3200,7 @@ export interface Config {
2915
3200
  }
2916
3201
  ```
2917
3202
 
2918
- 来源:[`packages/web/web-fetch-http/src/index.ts:34`](../packages/web/web-fetch-http/src/index.ts)
3203
+ 来源:[`packages/web/web-fetch-http/src/index.ts:32`](../packages/web/web-fetch-http/src/index.ts)
2919
3204
 
2920
3205
  <a id="deepseek-aidsh-web-search-deepseek"></a>
2921
3206
 
@@ -2967,7 +3252,7 @@ export interface Config {
2967
3252
  }
2968
3253
  ```
2969
3254
 
2970
- 来源:[`packages/web/web-search-exa/src/index.ts:38`](../packages/web/web-search-exa/src/index.ts)
3255
+ 来源:[`packages/web/web-search-exa/src/index.ts:35`](../packages/web/web-search-exa/src/index.ts)
2971
3256
 
2972
3257
  <a id="deepseek-aidsh-web-search-perplexity"></a>
2973
3258
 
@@ -2991,7 +3276,29 @@ export interface Config {
2991
3276
  }
2992
3277
  ```
2993
3278
 
2994
- 来源:[`packages/web/web-search-perplexity/src/index.ts:32`](../packages/web/web-search-perplexity/src/index.ts)
3279
+ 来源:[`packages/web/web-search-perplexity/src/index.ts:30`](../packages/web/web-search-perplexity/src/index.ts)
3280
+
3281
+ <a id="deepseek-aidsh-webhook-github"></a>
3282
+
3283
+ ## `@deepseek-ai/dsh-webhook-github`
3284
+
3285
+ 需要:`webServer` · `webhookRuntime` · `credentials`
3286
+
3287
+ ```ts config-catalog
3288
+ /** Required GitHub ingress configuration. */
3289
+ export interface Config {
3290
+ /** Adapter instance name carried to rules. */
3291
+ readonly source: string
3292
+ /** Exact absolute route path. */
3293
+ readonly path: string
3294
+ /** Credential reference containing the shared webhook secret. */
3295
+ readonly secretEnv: string
3296
+ /** Positive raw body ceiling in bytes. */
3297
+ readonly maxBodyBytes: number
3298
+ }
3299
+ ```
3300
+
3301
+ 来源:[`packages/webhook/webhook-github/src/index.ts:17`](../packages/webhook/webhook-github/src/index.ts)
2995
3302
 
2996
3303
  <a id="deepseek-aidsh-workflow-worker-thread"></a>
2997
3304
 
@@ -3027,13 +3334,18 @@ export interface Config {
3027
3334
 
3028
3335
  这些插件通过 `cordis.yml` 中不含 `config:` 块的条目加载;它们未声明任何配置接口。
3029
3336
 
3337
+ - `@deepseek-ai/dsh-acp-app` — 需要 `cmdlineArgs`([`packages/bundle/acp-app/src/index.ts`](../packages/bundle/acp-app/src/index.ts))
3030
3338
  - `@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))
3339
+ - `@deepseek-ai/dsh-api-remotes` — 需要 `typertGateway`([`packages/api/remotes/src/index.ts`](../packages/api/remotes/src/index.ts))
3340
+ - `@deepseek-ai/dsh-api-workspace-controller` — 需要 `typert` · `workspaceRegistry`([`packages/api/workspace-controller/src/index.ts`](../packages/api/workspace-controller/src/index.ts))
3341
+ - `@deepseek-ai/dsh-authorization` — 需要 `credentials`([`packages/credentials/authorization/src/index.ts`](../packages/credentials/authorization/src/index.ts))
3033
3342
  - `@deepseek-ai/dsh-client-locale`([`packages/client/locale/src/index.ts`](../packages/client/locale/src/index.ts))
3034
3343
  - `@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
3344
  - `@deepseek-ai/dsh-client-ui-agent-preset`([`packages/client/ui-agent-preset/src/index.ts`](../packages/client/ui-agent-preset/src/index.ts))
3345
+ - `@deepseek-ai/dsh-client-ui-approval`([`packages/client/ui-approval/src/index.ts`](../packages/client/ui-approval/src/index.ts))
3346
+ - `@deepseek-ai/dsh-client-ui-attachment`([`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts))
3347
+ - `@deepseek-ai/dsh-client-ui-brand-official`([`packages/client/ui-brand-official/src/index.ts`](../packages/client/ui-brand-official/src/index.ts))
3348
+ - `@deepseek-ai/dsh-client-ui-chat`([`packages/client/ui-chat/src/index.ts`](../packages/client/ui-chat/src/index.ts))
3037
3349
  - `@deepseek-ai/dsh-client-ui-commands`([`packages/client/ui-commands/src/index.ts`](../packages/client/ui-commands/src/index.ts))
3038
3350
  - `@deepseek-ai/dsh-client-ui-conversation`([`packages/client/ui-conversation/src/index.ts`](../packages/client/ui-conversation/src/index.ts))
3039
3351
  - `@deepseek-ai/dsh-client-ui-cordis`([`packages/extensions/ui-cordis/src/index.ts`](../packages/extensions/ui-cordis/src/index.ts))
@@ -3048,6 +3360,10 @@ export interface Config {
3048
3360
  - `@deepseek-ai/dsh-client-ui-model-selection`([`packages/client/ui-model-selection/src/index.ts`](../packages/client/ui-model-selection/src/index.ts))
3049
3361
  - `@deepseek-ai/dsh-client-ui-permission-presets`([`packages/client/ui-permission-presets/src/index.ts`](../packages/client/ui-permission-presets/src/index.ts))
3050
3362
  - `@deepseek-ai/dsh-client-ui-plan`([`packages/client/ui-plan/src/index.ts`](../packages/client/ui-plan/src/index.ts))
3363
+ - `@deepseek-ai/dsh-client-ui-reference`([`packages/client/ui-reference/src/index.ts`](../packages/client/ui-reference/src/index.ts))
3364
+ - `@deepseek-ai/dsh-client-ui-renderer`([`packages/client/ui-renderer/src/index.ts`](../packages/client/ui-renderer/src/index.ts))
3365
+ - `@deepseek-ai/dsh-client-ui-schedule`([`packages/client/ui-schedule/src/index.ts`](../packages/client/ui-schedule/src/index.ts))
3366
+ - `@deepseek-ai/dsh-client-ui-session`([`packages/client/ui-session/src/index.ts`](../packages/client/ui-session/src/index.ts))
3051
3367
  - `@deepseek-ai/dsh-client-ui-settings`([`packages/client/ui-settings/src/index.ts`](../packages/client/ui-settings/src/index.ts))
3052
3368
  - `@deepseek-ai/dsh-client-ui-settings-general`([`packages/client/ui-settings-general/src/index.ts`](../packages/client/ui-settings-general/src/index.ts))
3053
3369
  - `@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 +3383,8 @@ export interface Config {
3067
3383
  - `@deepseek-ai/dsh-command-goal` — 需要 `commands` · `goals`([`packages/goal/command-goal/src/index.ts`](../packages/goal/command-goal/src/index.ts))
3068
3384
  - `@deepseek-ai/dsh-commands`([`packages/interaction/commands/src/index.ts`](../packages/interaction/commands/src/index.ts))
3069
3385
  - `@deepseek-ai/dsh-cordis-client-runner`([`packages/extensions/cordis-client-runner/src/index.ts`](../packages/extensions/cordis-client-runner/src/index.ts))
3386
+ - `@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))
3387
+ - `@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
3388
  - `@deepseek-ai/dsh-fs-e2b` — 需要 `e2b`([`packages/e2b/fs-e2b/src/index.ts`](../packages/e2b/fs-e2b/src/index.ts))
3071
3389
  - `@deepseek-ai/dsh-fs-observation-policy`([`packages/fs/fs-observation-policy/src/index.ts`](../packages/fs/fs-observation-policy/src/index.ts))
3072
3390
  - `@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 +3396,9 @@ export interface Config {
3078
3396
  - `@deepseek-ai/dsh-schedule` — 需要 `agents` · `sessions` · `tools` · `sessionPersistence`([`packages/schedule/schedule/src/index.ts`](../packages/schedule/schedule/src/index.ts))
3079
3397
  - `@deepseek-ai/dsh-session`([`packages/core/session/src/index.ts`](../packages/core/session/src/index.ts))
3080
3398
  - `@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
3399
  - `@deepseek-ai/dsh-session-projection`([`packages/session/session-projection/src/index.ts`](../packages/session/session-projection/src/index.ts))
3083
3400
  - `@deepseek-ai/dsh-session-stats` — 需要 `sessionProjections`([`packages/session/session-stats/src/index.ts`](../packages/session/session-stats/src/index.ts))
3401
+ - `@deepseek-ai/dsh-session-turn-outline` — 需要 `sessionProjections`([`packages/session/session-turn-outline/src/index.ts`](../packages/session/session-turn-outline/src/index.ts))
3084
3402
  - `@deepseek-ai/dsh-skill-badge` — 需要 `skills`([`packages/skill/skill-badge/src/index.ts`](../packages/skill/skill-badge/src/index.ts))
3085
3403
  - `@deepseek-ai/dsh-storage`([`packages/storage/storage/src/index.ts`](../packages/storage/storage/src/index.ts))
3086
3404
  - `@deepseek-ai/dsh-subagent`([`packages/subagent/subagent/src/index.ts`](../packages/subagent/subagent/src/index.ts))
@@ -3091,16 +3409,18 @@ export interface Config {
3091
3409
  - `@deepseek-ai/dsh-tool-cordis` — 需要 `tools` · `systemPrompt` · `dynamicCordisRunner` · `cordisInspect`([`packages/extensions/tool-cordis/src/index.ts`](../packages/extensions/tool-cordis/src/index.ts))
3092
3410
  - `@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
3411
  - `@deepseek-ai/dsh-user-questions`([`packages/interaction/user-questions/src/index.ts`](../packages/interaction/user-questions/src/index.ts))
3412
+ - `@deepseek-ai/dsh-webhook` — 需要 `agents` · `agentDefaultModel` · `agentPresets` · `permissionPresets` · `sessionTitle` · `workspaceRegistry`([`packages/webhook/webhook/src/index.ts`](../packages/webhook/webhook/src/index.ts))
3094
3413
  - `@deepseek-ai/dsh-workspace` — 需要 `storageDomain` · `sessionPersistence`([`packages/workspace/workspace/src/index.ts`](../packages/workspace/workspace/src/index.ts))
3095
3414
 
3096
3415
  ## Seam 包(不可直接加载)
3097
3416
 
3098
- 抽象服务类——部署时应改为加载具体的实现包(参见[能力 seam](../.agents/notes/implemented/architecture/2026-06-13-capability-seams.md))。
3417
+ 抽象服务类——部署时应改为加载具体的实现包(参见[能力 seam](../.agents/notes/implemented/architecture/2026-06-13-capability-seams.zh.md))。
3099
3418
 
3100
3419
  - `@deepseek-ai/dsh-attachment` — 抽象 `AttachmentStore`([`packages/attachment/attachment/src/index.ts`](../packages/attachment/attachment/src/index.ts))
3101
3420
  - `@deepseek-ai/dsh-code-runtime` — 抽象 `CodeRuntime`([`packages/code-runtime/code-runtime/src/index.ts`](../packages/code-runtime/code-runtime/src/index.ts))
3102
3421
  - `@deepseek-ai/dsh-compaction` — 抽象 `CompactionEngine`([`packages/compaction/compaction/src/index.ts`](../packages/compaction/compaction/src/index.ts))
3103
3422
  - `@deepseek-ai/dsh-credentials` — 抽象 `Credentials`([`packages/credentials/credentials/src/index.ts`](../packages/credentials/credentials/src/index.ts))
3423
+ - `@deepseek-ai/dsh-file-reference` — 抽象 `FileReferenceService`([`packages/context/file-reference/src/index.ts`](../packages/context/file-reference/src/index.ts))
3104
3424
  - `@deepseek-ai/dsh-fs` — 抽象 `FileSystem`([`packages/fs/fs/src/index.ts`](../packages/fs/fs/src/index.ts))
3105
3425
  - `@deepseek-ai/dsh-host-directory-picker` — 抽象 `DirectoryPicker`([`packages/host/directory-picker/src/index.ts`](../packages/host/directory-picker/src/index.ts))
3106
3426
  - `@deepseek-ai/dsh-jobs` — 抽象 `JobRegistry`([`packages/jobs/jobs/src/index.ts`](../packages/jobs/jobs/src/index.ts))
@@ -3116,21 +3436,23 @@ export interface Config {
3116
3436
 
3117
3437
  由其他包作为库导入;`cordis.yml` 无法加载它们。
3118
3438
 
3119
- - `@deepseek-ai/dsh-acp-snapshot`([`packages/test-support/acp-snapshot/src/index.ts`](../packages/test-support/acp-snapshot/src/index.ts))
3120
3439
  - `@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
3440
  - `@deepseek-ai/dsh-anonymous-user-id`([`packages/identity/anonymous-user-id/src/index.ts`](../packages/identity/anonymous-user-id/src/index.ts))
3122
3441
  - `@deepseek-ai/dsh-app-boot`([`packages/boot/app-boot/src/index.ts`](../packages/boot/app-boot/src/index.ts))
3123
3442
  - `@deepseek-ai/dsh-atomic-write`([`packages/util/atomic-write/src/index.ts`](../packages/util/atomic-write/src/index.ts))
3124
3443
  - `@deepseek-ai/dsh-base`([`packages/bundle/base/src/index.ts`](../packages/bundle/base/src/index.ts))
3125
3444
  - `@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))
3445
+ - `@deepseek-ai/dsh-client-store`([`packages/client/store/src/index.ts`](../packages/client/store/src/index.ts))
3127
3446
  - `@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
3447
  - `@deepseek-ai/dsh-client-ui-primitives`([`packages/client/ui-primitives/src/index.ts`](../packages/client/ui-primitives/src/index.ts))
3130
3448
  - `@deepseek-ai/dsh-client-ui-slots`([`packages/client/ui-slots/src/index.ts`](../packages/client/ui-slots/src/index.ts))
3131
3449
  - `@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
3450
  - `@deepseek-ai/dsh-cmdline`([`packages/boot/cmdline/src/index.ts`](../packages/boot/cmdline/src/index.ts))
3451
+ - `@deepseek-ai/dsh-deque`([`packages/util/deque/src/index.ts`](../packages/util/deque/src/index.ts))
3452
+ - `@deepseek-ai/dsh-experimental-agent-team-profile`([`packages/experimental/agent-team-profile/src/index.ts`](../packages/experimental/agent-team-profile/src/index.ts))
3453
+ - `@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))
3454
+ - `@deepseek-ai/dsh-experimental-webworker-packer`([`packages/experimental/webworker-packer/src/index.ts`](../packages/experimental/webworker-packer/src/index.ts))
3455
+ - `@deepseek-ai/dsh-experimental-webworker-runtime`([`packages/experimental/webworker-runtime/src/index.ts`](../packages/experimental/webworker-runtime/src/index.ts))
3134
3456
  - `@deepseek-ai/dsh-home-paths`([`packages/util/home-paths/src/index.ts`](../packages/util/home-paths/src/index.ts))
3135
3457
  - `@deepseek-ai/dsh-hook-protocol`([`packages/hooks/hook-protocol/src/index.ts`](../packages/hooks/hook-protocol/src/index.ts))
3136
3458
  - `@deepseek-ai/dsh-launch-environment`([`packages/util/launch-environment/src/index.ts`](../packages/util/launch-environment/src/index.ts))
@@ -3141,8 +3463,9 @@ export interface Config {
3141
3463
  - `@deepseek-ai/dsh-sandbox-windows-acl`([`packages/sandbox/sandbox-windows-acl/src/index.ts`](../packages/sandbox/sandbox-windows-acl/src/index.ts))
3142
3464
  - `@deepseek-ai/dsh-scope`([`packages/core/scope/src/index.ts`](../packages/core/scope/src/index.ts))
3143
3465
  - `@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))
3466
+ - `@deepseek-ai/dsh-sdk-minimal`([`packages/bundle/sdk-minimal/src/index.ts`](../packages/bundle/sdk-minimal/src/index.ts))
3145
3467
  - `@deepseek-ai/dsh-sdk-protocol`([`packages/sdk/protocol/src/index.ts`](../packages/sdk/protocol/src/index.ts))
3468
+ - `@deepseek-ai/dsh-session-snapshot`([`packages/test-support/session-snapshot/src/index.ts`](../packages/test-support/session-snapshot/src/index.ts))
3146
3469
  - `@deepseek-ai/dsh-session-telemetry`([`packages/session/session-telemetry/src/index.ts`](../packages/session/session-telemetry/src/index.ts))
3147
3470
  - `@deepseek-ai/dsh-session-title-llm`([`packages/session/session-title-llm/src/index.ts`](../packages/session/session-title-llm/src/index.ts))
3148
3471
  - `@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 +3473,8 @@ export interface Config {
3150
3473
  - `@deepseek-ai/dsh-typert-generator`([`packages/typert/generator/src/index.ts`](../packages/typert/generator/src/index.ts))
3151
3474
  - `@deepseek-ai/dsh-typert-protocol`([`packages/typert/protocol/src/index.ts`](../packages/typert/protocol/src/index.ts))
3152
3475
  - `@deepseek-ai/dsh-typert-registry`([`packages/typert/registry/src/index.ts`](../packages/typert/registry/src/index.ts))
3476
+ - `@deepseek-ai/dsh-util-crypto`([`packages/util/crypto/src/index.ts`](../packages/util/crypto/src/index.ts))
3477
+ - `@deepseek-ai/dsh-util-time`([`packages/util/time/src/index.ts`](../packages/util/time/src/index.ts))
3478
+ - `@deepseek-ai/dsh-util-values`([`packages/util/values/src/index.ts`](../packages/util/values/src/index.ts))
3479
+ - `@deepseek-ai/dsh-util-workspace-path`([`packages/util/workspace-path/src/index.ts`](../packages/util/workspace-path/src/index.ts))
3480
+ - `@deepseek-ai/dsh-win32-process`([`packages/subprocess/win32-process/src/index.ts`](../packages/subprocess/win32-process/src/index.ts))