dsh-plugin-guide 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) 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 +27 -22
  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 +23 -7
  32. package/references/official-docs/docs/architecture.zh.md +36 -20
  33. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  34. package/references/official-docs/docs/capability-seams.md +132 -67
  35. package/references/official-docs/docs/capability-seams.zh.md +132 -67
  36. package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
  37. package/references/official-docs/docs/config-catalog.md +659 -373
  38. package/references/official-docs/docs/config-catalog.zh.md +677 -391
  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 +2 -3
  41. package/references/official-docs/docs/cookbook/adding-a-package.zh.md +8 -7
  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 +666 -747
  116. package/references/official-docs/docs/module-graph.zh.md +668 -749
  117. package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
  118. package/references/official-docs/docs/persistence-catalog.md +172 -40
  119. package/references/official-docs/docs/persistence-catalog.zh.md +180 -48
  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 +206 -0
  142. package/references/official-docs/docs/subsystems/agent-team.zh.md +206 -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 +5 -5
  154. package/references/official-docs/docs/subsystems/code-runtime.zh.md +6 -6
  155. package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
  156. package/references/official-docs/docs/subsystems/commands.md +29 -6
  157. package/references/official-docs/docs/subsystems/commands.zh.md +30 -7
  158. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
  159. package/references/official-docs/docs/subsystems/compaction.md +5 -5
  160. package/references/official-docs/docs/subsystems/compaction.zh.md +11 -11
  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 +110 -33
  166. package/references/official-docs/docs/subsystems/core.zh.md +141 -62
  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 +4 -4
  175. package/references/official-docs/docs/subsystems/feedback.zh.md +4 -4
  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 +35 -17
  199. package/references/official-docs/docs/subsystems/persistence.zh.md +38 -20
  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 +136 -67
  213. package/references/official-docs/docs/subsystems/session-projection.zh.md +136 -67
  214. package/references/official-docs/docs/subsystems/session-query.i18n.yaml +2 -2
  215. package/references/official-docs/docs/subsystems/session-query.md +11 -3
  216. package/references/official-docs/docs/subsystems/session-query.zh.md +12 -4
  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 +3 -3
  225. package/references/official-docs/docs/subsystems/session-title.zh.md +5 -5
  226. package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
  227. package/references/official-docs/docs/subsystems/session.md +284 -39
  228. package/references/official-docs/docs/subsystems/session.zh.md +301 -54
  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 +174 -0
  240. package/references/official-docs/docs/subsystems/slots.zh.md +174 -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 +13 -5
  246. package/references/official-docs/docs/subsystems/storage.zh.md +16 -8
  247. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  248. package/references/official-docs/docs/subsystems/subagent.md +120 -32
  249. package/references/official-docs/docs/subsystems/subagent.zh.md +131 -41
  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 +27 -12
  264. package/references/official-docs/docs/subsystems/token-meter.zh.md +28 -13
  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 +433 -27
  297. package/references/official-docs/docs/tool-catalog.zh.md +438 -29
  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 +1 -1
  348. package/references/official-docs/docs/web-styling.zh.md +2 -2
  349. package/references/official-docs/packages/AGENTS.md +3 -2
  350. package/references/official-docs/packages/README.md +104 -59
  351. package/references/official-docs/vendor/README.md +1 -0
  352. package/references/official-docs/website-docs.ts +52 -11
  353. package/references/sources.md +2 -2
  354. package/references/website-pages.md +3 -3
  355. package/scripts/download-sources.ps1 +1 -1
  356. package/scripts/sync-official-docs.ps1 +19 -11
  357. package/scripts/verify-kit.ps1 +0 -4
  358. package/templates/js/README.es.md +1 -1
  359. package/templates/js/README.hi.md +1 -1
  360. package/templates/js/README.md +1 -1
  361. package/templates/js/README.pt.md +1 -1
  362. package/templates/js/README.zh.md +1 -1
  363. package/templates/js/package.json +4 -4
  364. package/templates/ts/README.es.md +1 -1
  365. package/templates/ts/README.hi.md +1 -1
  366. package/templates/ts/README.md +1 -1
  367. package/templates/ts/README.pt.md +1 -1
  368. package/templates/ts/README.zh.md +1 -1
  369. package/templates/ts/package.json +4 -4
  370. package/references/official-docs/examples/AGENTS.md +0 -20
@@ -13,7 +13,7 @@ A `Requires:` line lists the service keys the plugin `inject`s: its `cordis.yml`
13
13
 
14
14
  ## `@deepseek-ai/dsh-acp`
15
15
 
16
- Requires: `agents`
16
+ Requires: `agents` · `llm` · `sessionPersistence` · `sessions`
17
17
 
18
18
  ```ts config-catalog
19
19
  /** Plugin config: the provider/model selection used for each ACP-created agent. */
@@ -22,6 +22,8 @@ export interface AcpConfig {
22
22
  provider?: string
23
23
  /** Model name for created agents. */
24
24
  model?: string
25
+ /** Maximum summaries returned by one session/list page. */
26
+ sessionListPageSize?: number
25
27
  /** Runtime-only transport override; production uses stdio. */
26
28
  stream?: Stream
27
29
  }
@@ -29,62 +31,7 @@ export interface AcpConfig {
29
31
 
30
32
  Depends on: `Stream` (`@agentclientprotocol/sdk`)
31
33
 
32
- Source: [`packages/acp/acp/src/index.ts:70`](../packages/acp/acp/src/index.ts)
33
-
34
- <a id="deepseek-aidsh-acp-demo"></a>
35
-
36
- ## `@deepseek-ai/dsh-acp-demo`
37
-
38
- ```ts config-catalog
39
- /**
40
- * App config: the swappable per-deployment values. `provider` and `model` configure
41
- * each agent the ACP bridge creates at `session/new`; `persona` is the
42
- * deployment persona (forwarded to the system-prompt plugin); `toolOrder` is
43
- * the explicit model-facing tool order (forwarded to the system-prompt plugin);
44
- * `tools` is the tool registry's config (its presentation `mode`, forwarded
45
- * through agent-spine-demo); `persistenceRoot` is the JSONL backend's directory.
46
- */
47
- export interface Config {
48
- /** Provider route for ACP-created agents. */
49
- provider: string
50
- /** Model name for ACP-created agents (must have a registered adapter). */
51
- model: string
52
- /** Bundled agent-loop concurrency cap; `1` is serial and omission uses its default. */
53
- maxParallelToolCalls?: number
54
- /** Deployment persona (the system-prompt plugin's `persona` config). */
55
- persona?: string
56
- /** Explicit model-facing tool order (the system-prompt plugin's `toolOrder` config; see dsh-system-prompt). */
57
- toolOrder?: string[]
58
- /** Tool-registry config — its presentation `mode` (forwarded through agent-spine-demo; see dsh-tools). */
59
- tools?: ToolsConfig
60
- /** DeepSeek Harness home directory exposed to bash and used for local skill discovery. */
61
- dshHome?: string
62
- /** Fallback session-title limits forwarded through agent-spine-demo. */
63
- sessionTitle?: NonNullable<agentCore.Config['sessionTitle']>
64
- /** Directory for JSONL sessions and the derived query index. Defaults to `./.sessions`. */
65
- persistenceRoot?: string
66
- /** Write delta-chunk runs as packed storage rows (the JSONL backend's `packChunks`). Defaults to `true`. */
67
- packChunks?: boolean
68
- /** JSONL artifact encoding; defaults to checksummed Zstandard frames. */
69
- persistenceCompression?: JsonlCompression
70
- /** Controls automatic AGENTS.md/CLAUDE.md loading; configure a byte budget or set `false`. */
71
- workspaceContext: agentCore.Config['workspaceContext']
72
- /** Skill registry, local-provider, and model-facing consumer config forwarded to agent-spine-demo. */
73
- skills?: agentCore.SkillConfig
74
- /** Model-facing bash tool config forwarded through agent-core. */
75
- toolBash?: NonNullable<agentCore.Config['toolBash']>
76
- /** Process-local background-job admission config forwarded through agent-core. */
77
- jobs?: NonNullable<agentCore.Config['jobs']>
78
- /** Generic background-job controls forwarded through agent-core; set false to omit their tools. */
79
- toolJobs?: NonNullable<agentCore.Config['toolJobs']>
80
- /** Persisted same-session goals; owner defaults enable them, or false disables the stack and tools. */
81
- goals?: agentCore.GoalConfig | false
82
- }
83
- ```
84
-
85
- Depends on: [`agentCore`](../packages/examples/agent-spine-demo/src/index.ts) · [`JsonlCompression`](../packages/session/session-persistence-jsonl/src/index.ts) · [`ToolsConfig`](#deepseek-aidsh-tools)
86
-
87
- Source: [`packages/examples/acp-demo/src/index.ts:39`](../packages/examples/acp-demo/src/index.ts)
34
+ Source: [`packages/acp/acp/src/index.ts:75`](../packages/acp/acp/src/index.ts)
88
35
 
89
36
  <a id="deepseek-aidsh-agent-default-model"></a>
90
37
 
@@ -106,6 +53,8 @@ Source: [`packages/core/agent-default-model/src/index.ts:41`](../packages/core/a
106
53
 
107
54
  ## `@deepseek-ai/dsh-agent-instructions`
108
55
 
56
+ Requires: `sessionProjections`
57
+
109
58
  ```ts config-catalog
110
59
  /** User-facing workspace instruction loader configuration. */
111
60
  export interface Config {
@@ -136,7 +85,7 @@ Source: [`packages/context/agent-instructions/src/config.ts:18`](../packages/con
136
85
 
137
86
  ## `@deepseek-ai/dsh-agent-loop`
138
87
 
139
- Requires: `agents` · `sessions` · `llm` · `tools` · `systemPrompt`
88
+ Requires: `agents` · `sessions` · `llm` · `tools` · `systemPrompt` · `sessionProjections`
140
89
 
141
90
  ```ts config-catalog
142
91
  /** Agent-loop plugin configuration. */
@@ -162,13 +111,13 @@ export interface Config {
162
111
 
163
112
  Depends on: [`AgentOptions`](subsystems/core.md) · [`SessionId`](subsystems/core.md)
164
113
 
165
- Source: [`packages/core/agent-loop/src/index.ts:255`](../packages/core/agent-loop/src/index.ts)
114
+ Source: [`packages/core/agent-loop/src/index.ts:311`](../packages/core/agent-loop/src/index.ts)
166
115
 
167
116
  <a id="deepseek-aidsh-agent-presets"></a>
168
117
 
169
118
  ## `@deepseek-ai/dsh-agent-presets`
170
119
 
171
- Requires: `loader`
120
+ Requires: `loader` · `sessionProjections`
172
121
 
173
122
  ```ts config-catalog
174
123
  /** Plugin config: which preset is the default, and where presets live. */
@@ -177,9 +126,17 @@ export interface Config {
177
126
  default: string
178
127
  /** Scanned roots in precedence order; an earlier root wins a duplicate id. */
179
128
  roots: PresetRoot[]
129
+ /**
130
+ * Prepend this package's bundled shipped presets as a `system` root, before
131
+ * every configured root, so the shipped set always mounts and wins a
132
+ * duplicate id. The default survives a whole-`config` patch replacement;
133
+ * only an explicit `false` — a deployment supplying purely its own presets,
134
+ * or an embedder using the roster as bare machinery — drops the set.
135
+ */
136
+ includeShippedRoot: boolean
180
137
  /**
181
138
  * Append the harness home's `USER_PRESET_DIR` as a `user` root, after every
182
- * configured root. False mounts a roster over `roots` alone.
139
+ * configured root. False mounts a roster without the derived writable root.
183
140
  */
184
141
  includeUserRoot: boolean
185
142
  }
@@ -202,98 +159,6 @@ export type PresetTrust = 'system' | 'user'
202
159
 
203
160
  Source: [`packages/preset/agent-presets/src/preset.ts:52`](../packages/preset/agent-presets/src/preset.ts)
204
161
 
205
- <a id="deepseek-aidsh-agent-spine-demo"></a>
206
-
207
- ## `@deepseek-ai/dsh-agent-spine-demo`
208
-
209
- ```ts config-catalog
210
- /**
211
- * Bundle config: each field forwarded verbatim to the child that owns it —
212
- * `agents` to the agent loop (an app that pre-creates no agents, like the ACP
213
- * bridge, simply omits it), `includeHarnessIdentity`, `includeRuntimeContext`,
214
- * `persona`, and `toolOrder` to the system-prompt plugin (the fixed opener,
215
- * dynamic-context policy, deployment persona, and explicit model-facing tool
216
- * order), the `tools` object to the tool registry (its presentation `mode`),
217
- * `dshHome` to bash environment and local skill discovery, `sessionTitle` to
218
- * the fallback title service, `skills` to the
219
- * skill registry/local provider/tool consumer, `workspaceContext` to the
220
- * agent-instructions loader, `jobs` to the process-local job provider, and
221
- * `toolBash`/`toolJobs` to the model-facing tool plugins this bundle owns.
222
- * Provider adapters own their `retryPolicy`; this bundle always mounts its
223
- * executor.
224
- * `goals` opts into and configures the persisted goal domain plus its model tool
225
- * and same-session driver; `invariants` configures global and package-filtered
226
- * relational checks. Owner schemas supply defaults for optional input;
227
- * workspace context instead requires an explicit byte budget or `false` because
228
- * it changes model-visible input. Producer opt-in stays producer-local:
229
- * `toolBash` configures bash only; independently composed producers keep their
230
- * own config. Set `toolBash: false` when another plugin owns the model-facing
231
- * `bash` name.
232
- */
233
- export interface Config {
234
- /** The agent-loop `agents` list (see dsh-agent-loop's `Config`). */
235
- agents?: AgentLoopConfig['agents']
236
- /** Agent-loop concurrency cap; `1` is serial. */
237
- maxParallelToolCalls?: AgentLoopConfig['maxParallelToolCalls']
238
- /** Whether the system prompt includes the fixed Harness identity (default true). */
239
- includeHarnessIdentity?: SystemPromptConfig['includeHarnessIdentity']
240
- /** Whether model history includes dynamic runtime-context snapshots (default true). */
241
- includeRuntimeContext?: SystemPromptConfig['includeRuntimeContext']
242
- /** The deployment persona (see dsh-system-prompt's `Config`). */
243
- persona?: SystemPromptConfig['persona']
244
- /** The explicit model-facing tool order (see dsh-system-prompt's `Config`). */
245
- toolOrder?: SystemPromptConfig['toolOrder']
246
- /** The tool registry's config — its presentation `mode` (see dsh-tools' `Config`). */
247
- tools?: ToolsConfig
248
- /** DeepSeek Harness home directory shared by shell context and local skill discovery. */
249
- dshHome?: string
250
- /** Deterministic fallback and accepted-title limits; omission uses the bundle's example policy. */
251
- sessionTitle?: SessionTitleConfig
252
- /** Workspace-context loader controls with an explicit byte budget; set `false` for hermetic prompts. */
253
- workspaceContext: workspaceContext.Config | false
254
- /**
255
- * Skill registry, local provider, and model-facing consumer config.
256
- * Skills use `enabled` because one nested config controls a provider stack;
257
- * single model-tool plugins use `Config | false` to disable that one consumer.
258
- */
259
- skills?: SkillConfig
260
- /** Model-facing bash tool config, or false when another plugin owns `bash`. */
261
- toolBash?: toolBash.Config | false
262
- /** Process-local background-job admission config. */
263
- jobs?: JobsConfig
264
- /** Generic background-job controls; set false to keep the job service without model-facing job tools. */
265
- toolJobs?: toolJobs.Config | false
266
- /** Global enablement and package-name filters for invariant companions. */
267
- invariants?: InvariantConfig
268
- /** Opt-in persisted same-session goal stack; set false or omit to leave it unmounted. */
269
- goals?: GoalConfig | false
270
- }
271
-
272
- /** Skill bundle config forwarded to the registry, local provider, and model-facing consumer. */
273
- export interface SkillConfig {
274
- /** Mount the bundled local skill provider and model-facing skill tool (default true). */
275
- enabled?: boolean
276
- /** Registry-level discovery cache settings. */
277
- registry?: SkillRegistryConfig
278
- /** Local filesystem skill provider settings. */
279
- filesystem?: SkillFileSystem.Config
280
- /** Model-facing skill catalog and tool settings. */
281
- tool?: toolSkill.Config
282
- }
283
-
284
- /** Persisted goal domain, model-tool policy, and same-session driver config. */
285
- export interface GoalConfig {
286
- /** Goal-domain creation defaults. */
287
- domain?: GoalDomainConfig
288
- /** Model-facing goal-tool authority policy. */
289
- tool?: toolGoal.Config
290
- }
291
- ```
292
-
293
- Depends on: [`AgentLoopConfig`](#deepseek-aidsh-agent-loop) · [`GoalDomainConfig`](#deepseek-aidsh-goal) · [`InvariantConfig`](#deepseek-aidsh-invariants) · [`JobsConfig`](#deepseek-aidsh-jobs-local) · [`SessionTitleConfig`](#deepseek-aidsh-session-title) · [`SkillFileSystem`](../packages/skill/skill-filesystem/src/index.ts) · [`SkillRegistryConfig`](#deepseek-aidsh-skill) · [`SystemPromptConfig`](#deepseek-aidsh-system-prompt) · [`toolBash`](../packages/shell/tool-bash/src/index.ts) · [`toolGoal`](../packages/goal/tool-goal/src/index.ts) · [`toolJobs`](../packages/jobs/tool-jobs/src/index.ts) · [`ToolsConfig`](#deepseek-aidsh-tools) · [`toolSkill`](../packages/skill/tool-skill/src/index.ts) · [`workspaceContext`](../packages/context/agent-instructions/src/index.ts)
294
-
295
- Source: [`packages/examples/agent-spine-demo/src/index.ts:92`](../packages/examples/agent-spine-demo/src/index.ts)
296
-
297
162
  <a id="deepseek-aidsh-agent-tool-presentation"></a>
298
163
 
299
164
  ## `@deepseek-ai/dsh-agent-tool-presentation`
@@ -305,7 +170,7 @@ Requires: `tools`
305
170
  export interface Config {
306
171
  /**
307
172
  * The form this agent's model sees. `native` sends every visible schema,
308
- * `code` sends only `run_code` plus a generated SDK, `both` sends both.
173
+ * `ptc` sends only `run_code` plus a generated SDK, `both` sends both.
309
174
  * Required rather than defaulted: the deployment default is what a preset
310
175
  * without this row already gets, so an omitted value would mean the row was
311
176
  * composed for nothing.
@@ -318,6 +183,54 @@ Depends on: [`ToolPresentationMode`](subsystems/tools.md)
318
183
 
319
184
  Source: [`packages/core/agent-tool-presentation/src/index.ts:38`](../packages/core/agent-tool-presentation/src/index.ts)
320
185
 
186
+ <a id="deepseek-aidsh-api-gateway"></a>
187
+
188
+ ## `@deepseek-ai/dsh-api-gateway`
189
+
190
+ Requires: `typert`
191
+
192
+ ```ts config-catalog
193
+ /** Gateway transport configuration. */
194
+ export interface Config {
195
+ /** WebSocket Ping interval from 1 through 2,147,483,647 milliseconds. @default 2000 */
196
+ readonly websocketHeartbeatIntervalMs?: number
197
+ }
198
+ ```
199
+
200
+ Source: [`packages/api/gateway/src/index.ts:119`](../packages/api/gateway/src/index.ts)
201
+
202
+ <a id="deepseek-aidsh-api-session-controller"></a>
203
+
204
+ ## `@deepseek-ai/dsh-api-session-controller`
205
+
206
+ Requires: `agentDefaultModel` · `agents` · `attachments` · `llm` · `sessions` · `sessionProjections` · `sessionQuery` · `typert` · `workspaceRegistry`
207
+
208
+ ```ts config-catalog
209
+ /** Session Controller deployment policy. */
210
+ export interface Config {
211
+ /** Maximum cold Session artifact size eligible for one full projection observation. */
212
+ readonly coldBlankProbeMaxBytes?: number
213
+ /** Override platform desktop-opener detection. */
214
+ readonly nativeOpen?: boolean
215
+ }
216
+ ```
217
+
218
+ Source: [`packages/api/session-controller/src/index.ts:67`](../packages/api/session-controller/src/index.ts)
219
+
220
+ <a id="deepseek-aidsh-api-settings-controller"></a>
221
+
222
+ ## `@deepseek-ai/dsh-api-settings-controller`
223
+
224
+ ```ts config-catalog
225
+ /** Native document-opening policy. */
226
+ export interface Config {
227
+ /** Override platform desktop-opener detection. */
228
+ readonly nativeOpen?: boolean
229
+ }
230
+ ```
231
+
232
+ Source: [`packages/api/settings-controller/src/index.ts:36`](../packages/api/settings-controller/src/index.ts)
233
+
321
234
  <a id="deepseek-aidsh-attachment-local"></a>
322
235
 
323
236
  ## `@deepseek-ai/dsh-attachment-local`
@@ -327,18 +240,31 @@ Source: [`packages/core/agent-tool-presentation/src/index.ts:38`](../packages/co
327
240
  export interface Config {
328
241
  /** Explicit harness home; omitted follows `DSH_HOME`, then `~/.dsh`. */
329
242
  dshHome?: string
330
- /** Maximum encoded bytes accepted for one image. */
243
+ /** Maximum encoded bytes accepted for one submitted image. Default: 20 MiB. */
331
244
  maxImageBytes?: number
332
- /** Maximum image count accepted in one submitted message. */
245
+ /** Maximum image count accepted in one submitted message. Default: 20. */
333
246
  maxImagesPerMessage?: number
334
- /** Maximum aggregate encoded image bytes accepted in one submitted message. */
247
+ /** Maximum aggregate encoded image bytes accepted in one submitted message. Default: 200 MiB. */
335
248
  maxMessageImageBytes?: number
336
- /** Maximum intrinsic width multiplied by height accepted for one image. */
249
+ /** Maximum intrinsic width multiplied by height accepted for one submitted image. Default: 64,000,000. */
337
250
  maxImagePixels?: number
251
+ /** Maximum intrinsic width and maximum intrinsic height accepted for one submitted image. Default: 8192px. */
252
+ maxImageDimension?: number
253
+ /** Total-pixel budget of the stored provider-independent normalized image. */
254
+ normalizedImageMaxPixels?: number
255
+ /** Long-edge pixel cap of the stored provider-independent normalized image, applied after the total-pixel budget. */
256
+ normalizedImageMaxDimension?: number
257
+ /**
258
+ * Encoded-byte target of the stored provider-independent normalized image;
259
+ * the smallest quality-ladder output is kept when no quality fits.
260
+ */
261
+ normalizedImageMaxBytes?: number
262
+ /** Maximum simultaneous normalization or request-image transformations in this service instance. */
263
+ imageCompressionConcurrency?: number
338
264
  }
339
265
  ```
340
266
 
341
- Source: [`packages/attachment/attachment-local/src/index.ts:24`](../packages/attachment/attachment-local/src/index.ts)
267
+ Source: [`packages/attachment/attachment-local/src/index.ts:55`](../packages/attachment/attachment-local/src/index.ts)
342
268
 
343
269
  <a id="deepseek-aidsh-bash-local"></a>
344
270
 
@@ -391,7 +317,7 @@ Source: [`packages/shell/bash-sandbox/src/index.ts:35`](../packages/shell/bash-s
391
317
 
392
318
  ## `@deepseek-ai/dsh-client-connection`
393
319
 
394
- Requires: `webServer`
320
+ Requires: `webServer` · `credentials`
395
321
 
396
322
  ```ts config-catalog
397
323
  /** Plugin config: the deployment's non-loopback serving authorities. */
@@ -401,16 +327,18 @@ export interface ConnectionConfig {
401
327
  * port-less `host` matching any port. The /api trust fence refuses any
402
328
  * request whose Host is neither loopback nor listed here, so a
403
329
  * non-loopback (`0.0.0.0`) deployment must declare the names it is reached
404
- * by (the dsh CLI derives the machine's LAN IP literals itself). An entry
405
- * that is not a bare, canonical authority fails the plugin load.
330
+ * by; the Web runtime derives LAN IP literals from an active all-interface
331
+ * bind. An entry that is not a bare, canonical authority fails plugin load.
406
332
  */
407
333
  trustedHosts?: string[]
408
- /** Maximum buffered JSON body for every `/api` request. */
334
+ /** Absolute browser-session lifetime in days. Default: 30. */
335
+ cookieMaxAgeDays?: number
336
+ /** Maximum buffered JSON body for every `/api` request. Default: 300 MiB. */
409
337
  maxRequestBodyBytes?: number
410
338
  }
411
339
  ```
412
340
 
413
- Source: [`packages/client/connection/src/index.ts:50`](../packages/client/connection/src/index.ts)
341
+ Source: [`packages/client/connection/src/index.ts:70`](../packages/client/connection/src/index.ts)
414
342
 
415
343
  <a id="deepseek-aidsh-client-hmr"></a>
416
344
 
@@ -565,7 +493,7 @@ export interface Config {
565
493
  }
566
494
  ```
567
495
 
568
- Source: [`packages/credentials/credentials-local/src/index.ts:55`](../packages/credentials/credentials-local/src/index.ts)
496
+ Source: [`packages/credentials/credentials-local/src/index.ts:64`](../packages/credentials/credentials-local/src/index.ts)
569
497
 
570
498
  <a id="deepseek-aidsh-e2b"></a>
571
499
 
@@ -585,6 +513,136 @@ export interface Config {
585
513
 
586
514
  Source: [`packages/e2b/e2b/src/index.ts:43`](../packages/e2b/e2b/src/index.ts)
587
515
 
516
+ <a id="deepseek-aidsh-experimental-agent-team"></a>
517
+
518
+ ## `@deepseek-ai/dsh-experimental-agent-team`
519
+
520
+ Requires: `agents` · `sessions` · `sessionPersistence` · `sessionProjections` · `subagents`
521
+
522
+ ```ts config-catalog
523
+ /** Team-service deployment limits. */
524
+ export interface Config {
525
+ /** Maximum immutable teammate names retained by one Team. */
526
+ readonly maxMembers?: number
527
+ /** Maximum non-deleted tasks retained by one Team. */
528
+ readonly maxTasks?: number
529
+ /** Maximum queued-minus-delivered messages for one target member. */
530
+ readonly maxPendingMessagesPerMember?: number
531
+ /** Maximum UTF-8 bytes in one complete sender-framed delivery. */
532
+ readonly maxMessageBytes?: number
533
+ /** Maximum milliseconds allowed for Team-owned runtime disposal. */
534
+ readonly disposalTimeoutMs?: number
535
+ }
536
+ ```
537
+
538
+ Source: [`packages/experimental/agent-team/src/types.ts:131`](../packages/experimental/agent-team/src/types.ts)
539
+
540
+ <a id="deepseek-aidsh-experimental-inspector"></a>
541
+
542
+ ## `@deepseek-ai/dsh-experimental-inspector`
543
+
544
+ Requires: `webServer`
545
+
546
+ ```ts config-catalog
547
+ /** Host plugin configuration. Fetch capture is enabled by default. */
548
+ export interface Config extends Omit<InspectorOptions, 'clientOrigins'> {
549
+ /** Browser origins allowed to open the Client ingest WebSocket. */
550
+ clientOrigins?: string[]
551
+ }
552
+
553
+ /** User-facing Host options; every memory and lifecycle bound is configurable. */
554
+ export interface InspectorOptions {
555
+ /** Loopback address used by the Worker HTTP and WebSocket endpoint. */
556
+ readonly host?: '127.0.0.1'
557
+ /** First port to bind; occupied ports advance until one is available. */
558
+ readonly port?: number
559
+ /** Additional exact browser origins admitted to the Client ingest socket. */
560
+ readonly clientOrigins?: readonly string[]
561
+ /** Whether to observe calls made through the current global fetch function. */
562
+ readonly captureFetch?: boolean
563
+ /** Maximum request-body prefix retained for one fetch. */
564
+ readonly maxRequestBodyBytes?: number
565
+ /** Maximum response-body prefix retained for one fetch. */
566
+ readonly maxResponseBodyBytes?: number
567
+ /** Maximum raw bytes encoded into one body observation. */
568
+ readonly maxBodyChunkBytes?: number
569
+ /** Maximum total request and response body bytes retained by the Worker. */
570
+ readonly maxJournalBytes?: number
571
+ /** Maximum active and completed fetch requests retained by the Worker. */
572
+ readonly maxRetainedRequests?: number
573
+ /** Maximum encoded bytes accepted in one source transport frame. */
574
+ readonly maxSourceFrameBytes?: number
575
+ /** Maximum observation records accepted in one source batch. */
576
+ readonly maxSourceRecordsPerFrame?: number
577
+ /** Maximum records waiting in one producer queue. */
578
+ readonly maxQueuedRecords?: number
579
+ /** Maximum encoded bytes waiting in one producer queue. */
580
+ readonly maxQueuedBytes?: number
581
+ /** Maximum time allowed for the Worker to become ready. */
582
+ readonly startupTimeoutMs?: number
583
+ /** Grace period before a stopping Worker is terminated. */
584
+ readonly stopTimeoutMs?: number
585
+ /** Initial upper bound for randomized Client reconnect delay. */
586
+ readonly clientReconnectBaseMs?: number
587
+ /** Maximum upper bound for randomized Client reconnect delay. */
588
+ readonly clientReconnectMaxMs?: number
589
+ /** Deadline for one Worker-to-Client Runtime or Sources request. */
590
+ readonly clientRuntimeTimeoutMs?: number
591
+ /** Deadline for one non-CDP semantic query. */
592
+ readonly queryTimeoutMs?: number
593
+ /** Maximum live object handles retained per Client Runtime session. */
594
+ readonly maxClientRuntimeObjects?: number
595
+ /** Maximum descriptors returned by one Client property request. */
596
+ readonly maxClientRuntimeProperties?: number
597
+ /** Maximum encoded bytes read for one Client script or source map. */
598
+ readonly maxClientSourceBytes?: number
599
+ /** Maximum Context and Fiber nodes retained in one realm snapshot. */
600
+ readonly maxCordisNodes?: number
601
+ /** Disconnected Cordis snapshots retained after their live realm closes. */
602
+ readonly maxDisconnectedCordisTrees?: number
603
+ }
604
+ ```
605
+
606
+ Source: [`packages/experimental/inspector/src/index.ts:66`](../packages/experimental/inspector/src/index.ts)
607
+
608
+ <a id="deepseek-aidsh-experimental-tool-agent-team"></a>
609
+
610
+ ## `@deepseek-ai/dsh-experimental-tool-agent-team`
611
+
612
+ Requires: `agents` · `agentTeams` · `tools` · `systemPrompt`
613
+
614
+ ```ts config-catalog
615
+ /** Tool routing configuration. */
616
+ export interface Config {
617
+ /** Continuable-subagent provider used for fresh teammates. */
618
+ readonly freshProvider?: string
619
+ /** Continuable-subagent provider used for completed-prefix fork teammates. */
620
+ readonly forkProvider?: string
621
+ }
622
+ ```
623
+
624
+ Source: [`packages/experimental/tool-agent-team/src/index.ts:17`](../packages/experimental/tool-agent-team/src/index.ts)
625
+
626
+ <a id="deepseek-aidsh-file-reference-local"></a>
627
+
628
+ ## `@deepseek-ai/dsh-file-reference-local`
629
+
630
+ Requires: `agents`
631
+
632
+ ```ts config-catalog
633
+ /** Local file-reference discovery configuration. */
634
+ export interface Config {
635
+ /** Maximum ranked candidates returned for one query. */
636
+ maxResults?: number
637
+ /** Maximum indexed files and directories per agent workspace. */
638
+ maxEntries?: number
639
+ /** Directory basenames never traversed or offered. */
640
+ excludedDirectories?: string[]
641
+ }
642
+ ```
643
+
644
+ Source: [`packages/context/file-reference-local/src/index.ts:34`](../packages/context/file-reference-local/src/index.ts)
645
+
588
646
  <a id="deepseek-aidsh-fs-local"></a>
589
647
 
590
648
  ## `@deepseek-ai/dsh-fs-local`
@@ -622,13 +680,13 @@ export type Config = LocalConfig
622
680
 
623
681
  Depends on: [`LocalConfig`](#deepseek-aidsh-fs-local)
624
682
 
625
- Source: [`packages/fs/fs-sandbox/src/index.ts:49`](../packages/fs/fs-sandbox/src/index.ts)
683
+ Source: [`packages/fs/fs-sandbox/src/index.ts:45`](../packages/fs/fs-sandbox/src/index.ts)
626
684
 
627
685
  <a id="deepseek-aidsh-goal"></a>
628
686
 
629
687
  ## `@deepseek-ai/dsh-goal`
630
688
 
631
- Requires: `agents`
689
+ Requires: `agents` · `sessionProjections`
632
690
 
633
691
  ```ts config-catalog
634
692
  /** Deployment defaults for goal creation. */
@@ -638,7 +696,7 @@ export interface Config {
638
696
  }
639
697
  ```
640
698
 
641
- Source: [`packages/goal/goal/src/index.ts:116`](../packages/goal/goal/src/index.ts)
699
+ Source: [`packages/goal/goal/src/index.ts:171`](../packages/goal/goal/src/index.ts)
642
700
 
643
701
  <a id="deepseek-aidsh-headless"></a>
644
702
 
@@ -654,13 +712,13 @@ export interface Config {
654
712
  }
655
713
  ```
656
714
 
657
- Source: [`packages/bundle/headless/src/index.ts:31`](../packages/bundle/headless/src/index.ts)
715
+ Source: [`packages/bundle/headless/src/index.ts:33`](../packages/bundle/headless/src/index.ts)
658
716
 
659
717
  <a id="deepseek-aidsh-hooks-claude-code"></a>
660
718
 
661
719
  ## `@deepseek-ai/dsh-hooks-claude-code`
662
720
 
663
- Requires: `shell`
721
+ Requires: `shell` · `sessionProjections`
664
722
 
665
723
  ```ts config-catalog
666
724
  /** Plugin config: where the CC hook config lives + substitution roots. */
@@ -692,13 +750,13 @@ export interface Config {
692
750
  }
693
751
  ```
694
752
 
695
- Source: [`packages/hooks/hooks-claude-code/src/index.ts:45`](../packages/hooks/hooks-claude-code/src/index.ts)
753
+ Source: [`packages/hooks/hooks-claude-code/src/index.ts:46`](../packages/hooks/hooks-claude-code/src/index.ts)
696
754
 
697
755
  <a id="deepseek-aidsh-hooks-codex"></a>
698
756
 
699
757
  ## `@deepseek-ai/dsh-hooks-codex`
700
758
 
701
- Requires: `shell`
759
+ Requires: `shell` · `sessionProjections`
702
760
 
703
761
  ```ts config-catalog
704
762
  /** Plugin config: where the Codex hooks.json lives + the model name for payloads. */
@@ -719,41 +777,7 @@ export interface Config {
719
777
  }
720
778
  ```
721
779
 
722
- Source: [`packages/hooks/hooks-codex/src/index.ts:44`](../packages/hooks/hooks-codex/src/index.ts)
723
-
724
- <a id="deepseek-aidsh-host-apiproxy"></a>
725
-
726
- ## `@deepseek-ai/dsh-host-apiproxy`
727
-
728
- Requires: `agentDefaultModel` · `agents` · `attachments` · `directoryPicker` · `llm` · `sessions` · `subagents` · `sessionQuery` · `tools` · `userQuestions` · `workspaceRegistry`
729
-
730
- ```ts config-catalog
731
- /** Gateway plugin configuration. */
732
- export interface Config {
733
- /**
734
- * Whether this deployment can hand paths to a native desktop opener —
735
- * the `hasDocument` capability the agent-preset roster reports. Absent,
736
- * the platform is asked (macOS/Windows/WSL yes; Linux only with a display
737
- * server); set it explicitly where detection misleads, e.g. `false` in a
738
- * container whose DISPLAY points nowhere a user can see.
739
- */
740
- nativeOpen?: boolean
741
- /**
742
- * DEFLATE level for every session-log ZIP entry: `0` stores without
743
- * compression, `1` favors CPU/latency, and `9` favors archive size.
744
- * @default 6
745
- */
746
- sessionExportCompressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
747
- /**
748
- * Maximum physical size of a cold Session artifact eligible for blankness
749
- * verification. Zero disables probes.
750
- * @default 1024
751
- */
752
- coldBlankProbeMaxBytes?: number
753
- }
754
- ```
755
-
756
- Source: [`packages/host/apiproxy/src/index.ts:41`](../packages/host/apiproxy/src/index.ts)
780
+ Source: [`packages/hooks/hooks-codex/src/index.ts:45`](../packages/hooks/hooks-codex/src/index.ts)
757
781
 
758
782
  <a id="deepseek-aidsh-host-directory-picker-browse"></a>
759
783
 
@@ -773,7 +797,7 @@ Source: [`packages/host/directory-picker-browse/src/index.ts:181`](../packages/h
773
797
 
774
798
  ## `@deepseek-ai/dsh-host-frontend-static`
775
799
 
776
- Requires: `webServer`
800
+ Requires: `webServer` · `connection`
777
801
 
778
802
  ```ts config-catalog
779
803
  /** Plugin config: the dist anchor. */
@@ -783,23 +807,29 @@ export interface Config {
783
807
  }
784
808
  ```
785
809
 
786
- Source: [`packages/host/frontend-static/src/index.ts:28`](../packages/host/frontend-static/src/index.ts)
810
+ Source: [`packages/host/frontend-static/src/index.ts:30`](../packages/host/frontend-static/src/index.ts)
787
811
 
788
812
  <a id="deepseek-aidsh-host-webserver"></a>
789
813
 
790
814
  ## `@deepseek-ai/dsh-host-webserver`
791
815
 
792
816
  ```ts config-catalog
793
- /** Gateway config: the listen address. */
817
+ /** Web server listen and response-compression config. */
794
818
  export interface Config {
795
819
  /** Listen host; the two supported values are loopback and all-interfaces. */
796
820
  host: '127.0.0.1' | '0.0.0.0'
797
821
  /** Listen port; zero requests an OS-assigned port. */
798
822
  port: number
823
+ /** Response compression for socket-backed HTTP requests. @default 'none' */
824
+ compression?: 'none' | 'gzip'
825
+ /** Gzip DEFLATE level from 0 through 9. @default 1 */
826
+ compressionLevel?: number
827
+ /** Minimum known response length eligible for gzip; unknown-length streams are eligible. @default 1024 */
828
+ compressionThresholdBytes?: number
799
829
  }
800
830
  ```
801
831
 
802
- Source: [`packages/host/webserver/src/index.ts:45`](../packages/host/webserver/src/index.ts)
832
+ Source: [`packages/host/webserver/src/index.ts:59`](../packages/host/webserver/src/index.ts)
803
833
 
804
834
  <a id="deepseek-aidsh-invariants"></a>
805
835
 
@@ -859,16 +889,36 @@ export interface Config {
859
889
  /** Deployment thinking policy; `disabled` limits every conversation request to `off`. */
860
890
  thinking?: 'enabled' | 'disabled'
861
891
  /** Default thinking effort (default `high`); `off` disables thinking per request. */
862
- reasoningEffort?: 'off' | 'high' | 'max'
892
+ reasoningEffort?: 'off' | 'low' | 'high' | 'max'
863
893
  /** Default per-request output cap (default 256,000); a model's own cap and explicit request values win. */
864
894
  maxTokens?: number
865
895
  /** Positive context capacity used when the selected model has no exact value (default 1,000,000). */
866
896
  defaultContextWindow?: number
867
- /** Advisory models shown by discovery consumers; defaults to V4 Flash and V4 Pro. */
897
+ /** Advisory models shown by discovery consumers; defaults to V4 Flash, V4 Pro, and V4 Flash Vision Exp. */
868
898
  models?: DeepSeekCatalogModel[]
869
899
  /** Maximum provider idle time while one stream read is outstanding (default five minutes). */
870
900
  streamIdleTimeoutMs?: number
871
- /** Provider-owned model-request retry policy; omission uses normal defaults. */
901
+ /** Maximum accumulated file-referenced image bytes per chat request (default 128 MiB). */
902
+ maxRequestFilesBytes?: number
903
+ /** Maximum accumulated base64 image payload after Files API fallback (default 20 MiB). */
904
+ maxInlineRequestImageBytes?: number
905
+ /** Maximum number of represented images per chat request (default 600). */
906
+ maxImagesPerRequest?: number
907
+ /** Raw-byte removal step after the request exceeds its file bound (default 64 MiB). */
908
+ imageOffloadByteQuantum?: number
909
+ /** Base64-byte removal step after inline fallback exceeds its bound (default 10 MiB). */
910
+ inlineImageOffloadByteQuantum?: number
911
+ /** Image-count removal step after the request exceeds its count bound (default 20). */
912
+ imageOffloadCountQuantum?: number
913
+ /** Maximum duration of one request-image Files API resolution (default one minute). */
914
+ filesApiTimeoutMs?: number
915
+ /** Explicit lifetime assigned to each uploaded image (default seven days). */
916
+ fileExpiresAfterSeconds?: number
917
+ /** Remaining lifetime below which an indexed file is replaced (default one hour). */
918
+ fileRefreshMarginSeconds?: number
919
+ /** Oldest harness-owned files deleted before one quota-recovery upload retry (default 100). */
920
+ fileQuotaCleanupBatch?: number
921
+ /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
872
922
  retryPolicy?: RetryPolicyConfig
873
923
  }
874
924
 
@@ -884,12 +934,18 @@ export interface DeepSeekCatalogModel {
884
934
  contextWindow?: number
885
935
  /** Per-request output cap for this model; omission falls back to the profile's {@link DeepSeekConnectionOptions.maxTokens}. */
886
936
  maxTokens?: number
937
+ /** Accepted request modalities; omission is text-only. */
938
+ inputModalities?: ModelModality[]
939
+ /** Total-pixel budget for one deterministic request preview, or the 512-by-512 `low` preset. */
940
+ imagePixelBudget?: number | 'low'
941
+ /** Encoded-byte target for one deterministic request preview; the smallest quality-ladder output is used when no quality fits. */
942
+ imageMaxBytes?: number
887
943
  }
888
944
  ```
889
945
 
890
- Depends on: [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
946
+ Depends on: [`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
891
947
 
892
- Source: [`packages/llm/llm-deepseek/src/index.ts:62`](../packages/llm/llm-deepseek/src/index.ts)
948
+ Source: [`packages/llm/llm-deepseek/src/index.ts:125`](../packages/llm/llm-deepseek/src/index.ts)
893
949
 
894
950
  <a id="deepseek-aidsh-llm-pi-ai"></a>
895
951
 
@@ -938,10 +994,11 @@ export interface PiAiProviderProfile {
938
994
  */
939
995
  modelOverrides?: Record<string, PiAiModelOverride>
940
996
  /**
941
- * Reasoning-dispatch switches for every `openai-completions` model on this
942
- * route; each model's own `compat` overrides per field. What neither sets
943
- * keeps the installed catalog entry's value, then pi-ai's baseURL-derived
944
- * detection.
997
+ * pi-ai wire-compatibility switches defaulting every model on this route
998
+ * whose protocol declares them; each model's own `compat` overrides per
999
+ * field. What neither sets keeps the installed catalog entry's value, then
1000
+ * pi-ai's own detection. A switch no model on the route could read is
1001
+ * refused rather than left looking applied.
945
1002
  */
946
1003
  compat?: PiAiCompatProfile
947
1004
  /**
@@ -983,7 +1040,21 @@ export interface PiAiProviderProfile {
983
1040
  websocketConnectTimeoutMs?: number
984
1041
  /** Maximum provider idle time while one stream read is outstanding. */
985
1042
  streamIdleTimeoutMs?: number
986
- /** Provider-owned model-request retry policy; omission uses normal defaults. */
1043
+ /**
1044
+ * Maximum base64-encoded image payload per request. When a request's
1045
+ * accumulated images exceed it, the oldest images are replaced by text
1046
+ * placeholders until the request fits, so a long session keeps completing
1047
+ * requests instead of being rejected by a request-size cap.
1048
+ */
1049
+ maxRequestImageBytes?: number
1050
+ /** Total-pixel budget for each deterministic inline request version. */
1051
+ requestImagePixelBudget?: number
1052
+ /**
1053
+ * Raw encoded-byte target for each deterministic inline request version;
1054
+ * the smallest quality-ladder output is used when no quality fits.
1055
+ */
1056
+ requestImageMaxBytes?: number
1057
+ /** Provider-owned model-request retry policy; omission uses normal mode with five retries. */
987
1058
  retryPolicy?: RetryPolicyConfig
988
1059
  }
989
1060
 
@@ -1022,7 +1093,7 @@ export interface PiAiModelProfile {
1022
1093
  * declares the offered levels and their wire spellings.
1023
1094
  */
1024
1095
  reasoningEfforts?: false | PiAiReasoningEfforts
1025
- /** Reasoning-dispatch switches for this model, winning over the route's. */
1096
+ /** pi-ai wire-compatibility switches for this model, winning over the route's per field; one its protocol does not declare is refused. */
1026
1097
  compat?: PiAiCompatProfile
1027
1098
  }
1028
1099
 
@@ -1036,19 +1107,89 @@ export interface PiAiModelProfile {
1036
1107
  export type PiAiModelOverride = Omit<PiAiModelProfile, 'id'>
1037
1108
 
1038
1109
  /**
1039
- * Reasoning-dispatch compatibility switches, set on the route (its models'
1040
- * default) or per model (winning over the route). Only the switches pi-ai's
1041
- * reasoning dispatch reads are offered; the rest of pi-ai's compat surface
1042
- * keeps its baseURL-derived auto-detection. pi-ai types both fields only on
1043
- * `OpenAICompletionsCompat` the other wire protocols define their reasoning
1044
- * fields in the protocol itself so resolution rejects a model-level switch
1045
- * anywhere else, while a route-level default skips past models it cannot fit.
1110
+ * pi-ai wire-compatibility switches, set on the route (its models' default) or
1111
+ * per model (winning over the route, field by field).
1112
+ *
1113
+ * pi-ai decides each of these from the provider id and baseURL when no layer
1114
+ * sets it, and a private gateway's URL says nothing: for an endpoint it does
1115
+ * not recognize the detection answers as though it were OpenAI itself, which
1116
+ * is wrong for most OpenAI-compatible gateways. So every field here is one a
1117
+ * deployment must be able to state because nothing can infer it, while the
1118
+ * fields pi-ai's catalog sets for a named vendor stay withheld.
1119
+ *
1120
+ * A field belongs to the protocols whose upstream compat type declares it: a
1121
+ * model-level switch its protocol does not take fails resolution, and a
1122
+ * route-level one skips past models it cannot fit. "The three Responses
1123
+ * protocols" below means `openai-responses`, `azure-openai-responses`, and
1124
+ * `openai-codex-responses`, which pi-ai gives one shared compat type, so a
1125
+ * switch settable on one is settable on all three.
1046
1126
  */
1047
1127
  export interface PiAiCompatProfile {
1048
- /** Reasoning parameter format the endpoint expects; absent keeps the catalog entry's, then pi-ai's baseURL-derived guess. */
1049
- thinkingFormat?: PiAiThinkingFormat
1050
- /** Whether the endpoint accepts `reasoning_effort`; absent keeps the catalog entry's, then pi-ai's baseURL-derived guess. */
1128
+ /** Whether the endpoint accepts `store`; `openai-completions`. */
1129
+ supportsStore?: boolean
1130
+ /**
1131
+ * Whether the endpoint accepts the `developer` role for the system prompt,
1132
+ * which pi-ai sends only to a reasoning model; `false` keeps `system`.
1133
+ * `openai-completions` and the three Responses protocols.
1134
+ */
1135
+ supportsDeveloperRole?: boolean
1136
+ /** Whether the endpoint accepts `reasoning_effort`; `openai-completions`. */
1051
1137
  supportsReasoningEffort?: boolean
1138
+ /** Whether the endpoint accepts `stream_options: {include_usage: true}`; `openai-completions`. */
1139
+ supportsUsageInStreaming?: boolean
1140
+ /**
1141
+ * Whether streams include `finish_reason`; `false` lets pi-ai infer the
1142
+ * terminal reason when the stream ends; `openai-completions`.
1143
+ */
1144
+ supportsFinishReason?: boolean
1145
+ /** Which output-cap field the endpoint reads; `openai-completions`. */
1146
+ maxTokensField?: NonNullable<OpenAICompletionsCompat['maxTokensField']>
1147
+ /** Whether tool results must carry `name`; `openai-completions`. */
1148
+ requiresToolResultName?: boolean
1149
+ /** Whether a user message after tool results needs an assistant message between; `openai-completions`. */
1150
+ requiresAssistantAfterToolResult?: boolean
1151
+ /** Whether thinking blocks must travel as text in `<thinking>` delimiters; `openai-completions`. */
1152
+ requiresThinkingAsText?: boolean
1153
+ /** Whether replayed assistant messages need an empty `reasoning_content` while reasoning is on; `openai-completions`. */
1154
+ requiresReasoningContentOnAssistantMessages?: boolean
1155
+ /** Reasoning parameter format the endpoint expects; `openai-completions`. */
1156
+ thinkingFormat?: PiAiThinkingFormat
1157
+ /**
1158
+ * Kwargs sent as `chat_template_kwargs`, which pi-ai reads only under the
1159
+ * two `chat-template` thinking formats; `openai-completions`. Nothing checks
1160
+ * that pairing: the format in force may come from the installed catalog
1161
+ * entry or from pi-ai's own baseURL detection, neither of which resolution
1162
+ * can read, so kwargs set beside another format are sent nowhere.
1163
+ */
1164
+ chatTemplateKwargs?: NonNullable<OpenAICompletionsCompat['chatTemplateKwargs']>
1165
+ /** Arguments sent as `chat_template_args` under the `baseten` thinking format; `openai-completions`. */
1166
+ chatTemplateArgs?: NonNullable<OpenAICompletionsCompat['chatTemplateArgs']>
1167
+ /** Whether the endpoint accepts `thinking_token_budget` to cap vLLM reasoning; `openai-completions`. */
1168
+ supportsThinkingTokenBudget?: boolean
1169
+ /**
1170
+ * Whether the endpoint accepts `strict` in tool definitions;
1171
+ * `openai-completions`, the three Responses protocols, `bedrock-converse-stream`.
1172
+ */
1173
+ supportsStrictMode?: boolean
1174
+ /** Prompt-cache marker convention; `openai-completions`. */
1175
+ cacheControlFormat?: NonNullable<OpenAICompletionsCompat['cacheControlFormat']>
1176
+ /**
1177
+ * Whether the endpoint accepts long prompt-cache retention;
1178
+ * `openai-completions`, the three Responses protocols, `anthropic-messages`.
1179
+ */
1180
+ supportsLongCacheRetention?: boolean
1181
+ /** Whether the endpoint accepts per-tool `eager_input_streaming`; `anthropic-messages`. */
1182
+ supportsEagerToolInputStreaming?: boolean
1183
+ /** Whether the endpoint accepts `cache_control` on tool definitions; `anthropic-messages`. */
1184
+ supportsCacheControlOnTools?: boolean
1185
+ /** Whether the endpoint accepts the `temperature` request field; `anthropic-messages`. */
1186
+ supportsTemperature?: boolean
1187
+ /** Whether to force adaptive thinking regardless of model id; `anthropic-messages`. */
1188
+ forceAdaptiveThinking?: boolean
1189
+ /** Whether to replay an empty thinking signature instead of converting thinking to text; `anthropic-messages`. */
1190
+ allowEmptySignature?: boolean
1191
+ /** Whether the endpoint accepts Anthropic strict tool schemas; `anthropic-messages`. */
1192
+ supportsStrictTools?: boolean
1052
1193
  }
1053
1194
 
1054
1195
  /** One request modality a pi-ai model may accept. */
@@ -1065,21 +1206,12 @@ export type PiAiModality = Model<Api>['input'][number]
1065
1206
  export type PiAiReasoningEfforts = Partial<Record<ModelThinkingLevel, string | null>>
1066
1207
 
1067
1208
  /** One reasoning-dispatch wire format a profile may name. */
1068
- export type PiAiThinkingFormat = Exclude<PiThinkingFormat, WithheldThinkingFormat>
1069
-
1070
- /** The `compat.thinkingFormat` spellings pi-ai accepts on an `openai-completions` model. */
1071
- type PiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
1072
-
1073
- /**
1074
- * pi-ai thinking formats a profile cannot name: both drive the request through
1075
- * `chatTemplateKwargs`, which this configuration does not expose.
1076
- */
1077
- type WithheldThinkingFormat = 'chat-template' | 'qwen-chat-template'
1209
+ export type PiAiThinkingFormat = NonNullable<OpenAICompletionsCompat['thinkingFormat']>
1078
1210
  ```
1079
1211
 
1080
1212
  Depends on: `Api` (`@earendil-works/pi-ai`) · `CacheRetention` (`@earendil-works/pi-ai`) · `Model` (`@earendil-works/pi-ai`) · `ModelThinkingLevel` (`@earendil-works/pi-ai`) · `OpenAICompletionsCompat` (`@earendil-works/pi-ai`) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts) · `ThinkingBudgets` (`@earendil-works/pi-ai`) · `Transport` (`@earendil-works/pi-ai`)
1081
1213
 
1082
- Source: [`packages/llm/llm-pi-ai/src/config.ts:172`](../packages/llm/llm-pi-ai/src/config.ts)
1214
+ Source: [`packages/llm/llm-pi-ai/src/config.ts:216`](../packages/llm/llm-pi-ai/src/config.ts)
1083
1215
 
1084
1216
  <a id="deepseek-aidsh-llm-replay"></a>
1085
1217
 
@@ -1135,6 +1267,15 @@ export interface ReplayModelConfig {
1135
1267
  * omit one, so replay reconstructs the request header a live catalog produced.
1136
1268
  */
1137
1269
  defaultMaxTokens?: number
1270
+ /**
1271
+ * Optional flat visual-token price the replay route declares for every
1272
+ * retained request image, so keyless scenarios exercise route-priced
1273
+ * request pressure; each occurrence is priced at this value plus its
1274
+ * request-preview handle text. Requires {@link inputModalities} to include
1275
+ * `image` — a text-only route never sends visual tokens. Absent declares
1276
+ * no image pricing.
1277
+ */
1278
+ imageRequestTokens?: number
1138
1279
  /** Optional reasoning-effort ids the replay route accepts, in display order. */
1139
1280
  reasoningEfforts?: string[]
1140
1281
  /**
@@ -1147,20 +1288,20 @@ export interface ReplayModelConfig {
1147
1288
 
1148
1289
  Depends on: [`ModelModality`](../packages/llm/llm/src/index.ts) · [`RetryPolicyConfig`](../packages/llm/llm/src/index.ts)
1149
1290
 
1150
- Source: [`packages/test-support/llm-replay/src/index.ts:776`](../packages/test-support/llm-replay/src/index.ts)
1291
+ Source: [`packages/test-support/llm-replay/src/index.ts:919`](../packages/test-support/llm-replay/src/index.ts)
1151
1292
 
1152
1293
  <a id="deepseek-aidsh-llm-retry"></a>
1153
1294
 
1154
1295
  ## `@deepseek-ai/dsh-llm-retry`
1155
1296
 
1156
- Requires: `agents`
1297
+ Requires: `agents` · `sessionProjections`
1157
1298
 
1158
1299
  ```ts config-catalog
1159
1300
  /** This policy executor has no config; providers own `retryPolicy`. */
1160
1301
  export type Config = Readonly<Record<string, never>>
1161
1302
  ```
1162
1303
 
1163
- Source: [`packages/llm/llm-retry/src/index.ts:24`](../packages/llm/llm-retry/src/index.ts)
1304
+ Source: [`packages/llm/llm-retry/src/index.ts:25`](../packages/llm/llm-retry/src/index.ts)
1164
1305
 
1165
1306
  <a id="deepseek-aidsh-lsp-stdio"></a>
1166
1307
 
@@ -1297,7 +1438,7 @@ Source: [`packages/feedback/message-feedback/src/index.ts:49`](../packages/feedb
1297
1438
 
1298
1439
  ## `@deepseek-ai/dsh-permission-presets`
1299
1440
 
1300
- Requires: `shell` · `approval` · `sessions`
1441
+ Requires: `shell` · `approval` · `sessions` · `sessionProjections`
1301
1442
 
1302
1443
  ```ts config-catalog
1303
1444
  /** The {@link PermissionPresetService} config: preset table and composition default. */
@@ -1330,7 +1471,7 @@ export interface PresetSpec {
1330
1471
 
1331
1472
  Depends on: [`ApprovalPolicy`](subsystems/approval.md) · [`SandboxMode`](subsystems/sandbox.md)
1332
1473
 
1333
- Source: [`packages/interaction/permission-presets/src/index.ts:140`](../packages/interaction/permission-presets/src/index.ts)
1474
+ Source: [`packages/interaction/permission-presets/src/index.ts:143`](../packages/interaction/permission-presets/src/index.ts)
1334
1475
 
1335
1476
  <a id="deepseek-aidsh-persona"></a>
1336
1477
 
@@ -1354,13 +1495,13 @@ export interface Config {
1354
1495
  }
1355
1496
  ```
1356
1497
 
1357
- Source: [`packages/preset/persona/src/index.ts:34`](../packages/preset/persona/src/index.ts)
1498
+ Source: [`packages/preset/persona/src/index.ts:30`](../packages/preset/persona/src/index.ts)
1358
1499
 
1359
1500
  <a id="deepseek-aidsh-plan-mode"></a>
1360
1501
 
1361
1502
  ## `@deepseek-ai/dsh-plan-mode`
1362
1503
 
1363
- Requires: `tools` · `systemPrompt`
1504
+ Requires: `tools` · `systemPrompt` · `sessionProjections`
1364
1505
 
1365
1506
  ```ts config-catalog
1366
1507
  /** Deployment-owned plan guidance. */
@@ -1370,7 +1511,23 @@ export interface PlanModeConfig {
1370
1511
  }
1371
1512
  ```
1372
1513
 
1373
- Source: [`packages/plan/plan-mode/src/index.ts:70`](../packages/plan/plan-mode/src/index.ts)
1514
+ Source: [`packages/plan/plan-mode/src/index.ts:63`](../packages/plan/plan-mode/src/index.ts)
1515
+
1516
+ <a id="deepseek-aidsh-plugin-package-inventory-deepseek"></a>
1517
+
1518
+ ## `@deepseek-ai/dsh-plugin-package-inventory-deepseek`
1519
+
1520
+ Requires: `agents` · `deepseekLlmApiExtensions` · `loader`
1521
+
1522
+ ```ts config-catalog
1523
+ /** Plugin-package request contribution configuration. */
1524
+ export interface Config {
1525
+ /** Contribute `dsh_plugin_packages` to official DeepSeek requests. Defaults to `true`. */
1526
+ enabled?: boolean
1527
+ }
1528
+ ```
1529
+
1530
+ Source: [`packages/llm/plugin-package-inventory-deepseek/src/index.ts:31`](../packages/llm/plugin-package-inventory-deepseek/src/index.ts)
1374
1531
 
1375
1532
  <a id="deepseek-aidsh-pwsh-local"></a>
1376
1533
 
@@ -1497,6 +1654,8 @@ Source: [`packages/sandbox/sandbox-local/src/index.ts:44`](../packages/sandbox/s
1497
1654
 
1498
1655
  ## `@deepseek-ai/dsh-sandbox-policy`
1499
1656
 
1657
+ Requires: `sessionProjections`
1658
+
1500
1659
  ```ts config-catalog
1501
1660
  /**
1502
1661
  * Plugin config: the deployment's sandbox default. All optional — `Config`
@@ -1518,7 +1677,23 @@ export interface Config {
1518
1677
 
1519
1678
  Depends on: [`SandboxMode`](subsystems/sandbox.md)
1520
1679
 
1521
- Source: [`packages/sandbox/sandbox-policy/src/index.ts:67`](../packages/sandbox/sandbox-policy/src/index.ts)
1680
+ Source: [`packages/sandbox/sandbox-policy/src/index.ts:70`](../packages/sandbox/sandbox-policy/src/index.ts)
1681
+
1682
+ <a id="deepseek-aidsh-sdk-app"></a>
1683
+
1684
+ ## `@deepseek-ai/dsh-sdk-app`
1685
+
1686
+ Requires: `cmdlineArgs`
1687
+
1688
+ ```ts config-catalog
1689
+ /** SDK stdio startup configuration. */
1690
+ export interface Config {
1691
+ /** Profile name rendered in help and diagnostics (default `sdk`). */
1692
+ profile?: string
1693
+ }
1694
+ ```
1695
+
1696
+ Source: [`packages/bundle/sdk-app/src/index.ts:23`](../packages/bundle/sdk-app/src/index.ts)
1522
1697
 
1523
1698
  <a id="deepseek-aidsh-sdk-jsonrpc-server"></a>
1524
1699
 
@@ -1544,6 +1719,41 @@ Depends on: `Readable` (`node:stream`) · `Writable` (`node:stream`)
1544
1719
 
1545
1720
  Source: [`packages/sdk/server/src/index.ts:25`](../packages/sdk/server/src/index.ts)
1546
1721
 
1722
+ <a id="deepseek-aidsh-session-log-deepseek"></a>
1723
+
1724
+ ## `@deepseek-ai/dsh-session-log-deepseek`
1725
+
1726
+ Requires: `deepseekLlmApiExtensions` · `sessions`
1727
+
1728
+ ```ts config-catalog
1729
+ /** Session-log request contribution configuration. */
1730
+ export interface Config {
1731
+ /** Contribute `dsh_session_log` to official DeepSeek requests. Defaults to `false`. */
1732
+ enabled?: boolean
1733
+ }
1734
+ ```
1735
+
1736
+ Source: [`packages/session/session-log-deepseek/src/index.ts:23`](../packages/session/session-log-deepseek/src/index.ts)
1737
+
1738
+ <a id="deepseek-aidsh-session-log-export"></a>
1739
+
1740
+ ## `@deepseek-ai/dsh-session-log-export`
1741
+
1742
+ Requires: `commands` · `connection`
1743
+
1744
+ ```ts config-catalog
1745
+ /** Session-log archive policy. */
1746
+ export interface Config {
1747
+ /** DEFLATE level for each ZIP entry. @default 6 */
1748
+ readonly compressionLevel?: SessionLogCompressionLevel
1749
+ }
1750
+
1751
+ /** Valid fflate DEFLATE levels accepted by session-log export. */
1752
+ export type SessionLogCompressionLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
1753
+ ```
1754
+
1755
+ Source: [`packages/session-query/session-log-export/src/index.ts:42`](../packages/session-query/session-log-export/src/index.ts)
1756
+
1547
1757
  <a id="deepseek-aidsh-session-persistence-jsonl"></a>
1548
1758
 
1549
1759
  ## `@deepseek-ai/dsh-session-persistence-jsonl`
@@ -1581,65 +1791,21 @@ export interface Config {
1581
1791
  export type JsonlCompression = 'zstd' | 'none'
1582
1792
  ```
1583
1793
 
1584
- Source: [`packages/session/session-persistence-jsonl/src/index.ts:60`](../packages/session/session-persistence-jsonl/src/index.ts)
1585
-
1586
- <a id="deepseek-aidsh-session-persistence-sqlite"></a>
1587
-
1588
- ## `@deepseek-ai/dsh-session-persistence-sqlite`
1589
-
1590
- Requires: `sessions`
1591
-
1592
- ```ts config-catalog
1593
- /** Plugin configuration. */
1594
- export interface Config {
1595
- /**
1596
- * Filesystem path to the SQLite database file. The special value `:memory:`
1597
- * opens an in-process database (tests). On filesystems with POSIX modes,
1598
- * missing directories and databases are created owner-only; existing path
1599
- * modes are preserved. Filesystem setup errors other than an existing database
1600
- * fail initialization. The backend does not protect confidentiality or
1601
- * integrity when another principal can replace the database entry in its
1602
- * parent directory.
1603
- */
1604
- path: string
1605
- /**
1606
- * SQLite `journal_mode` pragma. `wal` (the default) is the recorded
1607
- * durability model; pick a rollback-journal mode (`delete`/`truncate`/
1608
- * `persist`) on filesystems where WAL's shared-memory files do not work
1609
- * (network mounts). See {@link JournalMode}.
1610
- */
1611
- journalMode?: JournalMode
1612
- /** Maximum cold Session preparations retained for history-to-resume reuse. */
1613
- preparedSessionCacheSize?: number
1614
- /** Fixed live-event coalescing window; not a backend completion deadline. */
1615
- writeBatchMaxDelayMs?: number
1616
- }
1617
-
1618
- /**
1619
- * Journal modes the backend will run under. `wal` is the default and the
1620
- * durability model the persistence ADR records; the rollback-journal modes
1621
- * (`delete`/`truncate`/`persist`) exist for filesystems where WAL's
1622
- * shared-memory files do not work (network mounts). `memory`/`off` are
1623
- * excluded: dropping journal durability silently contradicts what this
1624
- * backend promises.
1625
- */
1626
- export type JournalMode = 'wal' | 'delete' | 'truncate' | 'persist'
1627
- ```
1628
-
1629
- Source: [`packages/session/session-persistence-sqlite/src/index.ts:70`](../packages/session/session-persistence-sqlite/src/index.ts)
1794
+ Source: [`packages/session/session-persistence-jsonl/src/index.ts:62`](../packages/session/session-persistence-jsonl/src/index.ts)
1630
1795
 
1631
1796
  <a id="deepseek-aidsh-session-projection-cache"></a>
1632
1797
 
1633
1798
  ## `@deepseek-ai/dsh-session-projection-cache`
1634
1799
 
1635
- Requires: `storageDomain` · `sessionProjections` · `sessionPersistence` · `sessions`
1800
+ Requires: `storageDomain` · `sessionProjections` · `sessions`
1636
1801
 
1637
1802
  ```ts config-catalog
1638
1803
  /**
1639
1804
  * Plugin config. Both throttle triggers are deployment choices with no
1640
1805
  * universally correct value, so the composition states them explicitly
1641
- * (cordis.yml); the two mandatory write points (`turn/end` and session
1642
- * disposal) are policy, not tunables, and always fire.
1806
+ * (cordis.yml); the three mandatory write points (session creation,
1807
+ * `turn/end`, and session disposal) are policy, not tunables, and always
1808
+ * fire.
1643
1809
  */
1644
1810
  export interface Config {
1645
1811
  /** Committed events per session that force a durable checkpoint write between mandatory points. */
@@ -1649,7 +1815,7 @@ export interface Config {
1649
1815
  }
1650
1816
  ```
1651
1817
 
1652
- Source: [`packages/session/session-projection-cache/src/index.ts:42`](../packages/session/session-projection-cache/src/index.ts)
1818
+ Source: [`packages/session/session-projection-cache/src/index.ts:48`](../packages/session/session-projection-cache/src/index.ts)
1653
1819
 
1654
1820
  <a id="deepseek-aidsh-session-query-sqlite"></a>
1655
1821
 
@@ -1767,7 +1933,7 @@ Source: [`packages/session/session-telemetry-otel/src/index.ts:91`](../packages/
1767
1933
 
1768
1934
  ## `@deepseek-ai/dsh-session-title`
1769
1935
 
1770
- Requires: `sessions`
1936
+ Requires: `sessions` · `sessionProjections`
1771
1937
 
1772
1938
  ```ts config-catalog
1773
1939
  /** Required deterministic fallback and accepted-title limits. */
@@ -1781,7 +1947,7 @@ export interface Config {
1781
1947
  }
1782
1948
  ```
1783
1949
 
1784
- Source: [`packages/session/session-title/src/index.ts:79`](../packages/session/session-title/src/index.ts)
1950
+ Source: [`packages/session/session-title/src/index.ts:55`](../packages/session/session-title/src/index.ts)
1785
1951
 
1786
1952
  <a id="deepseek-aidsh-session-title-all-prompts-llm"></a>
1787
1953
 
@@ -1831,7 +1997,7 @@ export interface Config {
1831
1997
  }
1832
1998
  ```
1833
1999
 
1834
- Source: [`packages/settings/settings-file/src/index.ts:21`](../packages/settings/settings-file/src/index.ts)
2000
+ Source: [`packages/settings/settings-file/src/index.ts:22`](../packages/settings/settings-file/src/index.ts)
1835
2001
 
1836
2002
  <a id="deepseek-aidsh-shell-env"></a>
1837
2003
 
@@ -1859,7 +2025,7 @@ export interface Config {
1859
2025
  }
1860
2026
  ```
1861
2027
 
1862
- Source: [`packages/skill/skill/src/index.ts:279`](../packages/skill/skill/src/index.ts)
2028
+ Source: [`packages/skill/skill/src/index.ts:280`](../packages/skill/skill/src/index.ts)
1863
2029
 
1864
2030
  <a id="deepseek-aidsh-skill-filesystem"></a>
1865
2031
 
@@ -1870,7 +2036,7 @@ Requires: `skills`
1870
2036
  ```ts config-catalog
1871
2037
  /** Local filesystem skill provider configuration. */
1872
2038
  export interface Config {
1873
- /** Unique provider name. Defaults to `local`. */
2039
+ /** Unique provider name. Defaults to `filesystem`. */
1874
2040
  providerName?: string
1875
2041
  /** Whether project and user roots are included around custom roots. */
1876
2042
  includeDefaultRoots?: boolean
@@ -1912,10 +2078,21 @@ export interface Config {
1912
2078
  * a local deployment. Set it to keep spill files under a known location.
1913
2079
  */
1914
2080
  root?: string
2081
+ /**
2082
+ * Age in days after which a spill file is eligible for the one-shot startup
2083
+ * cleanup sweep. Defaults to `30`; `0` disables cleanup entirely. Files whose
2084
+ * `mtime` is strictly older than the cutoff are deleted and emptied
2085
+ * directories are pruned; fresh files, symlinks, and unrelated entries are
2086
+ * left untouched. On POSIX, cleanup skips roots and session directories that
2087
+ * another local user could modify or replace. Retention is deliberate — a
2088
+ * resumed or forked session may still reference an older locator until it
2089
+ * ages out.
2090
+ */
2091
+ cleanupPeriodDays?: number
1915
2092
  }
1916
2093
  ```
1917
2094
 
1918
- Source: [`packages/spill/spill-local/src/index.ts:22`](../packages/spill/spill-local/src/index.ts)
2095
+ Source: [`packages/spill/spill-local/src/index.ts:31`](../packages/spill/spill-local/src/index.ts)
1919
2096
 
1920
2097
  <a id="deepseek-aidsh-spill-policy"></a>
1921
2098
 
@@ -1974,12 +2151,12 @@ Requires: `storage`
1974
2151
  * location explicitly.
1975
2152
  */
1976
2153
  export interface Config {
1977
- /** Directory holding one `<unit>.json` file per unit. */
2154
+ /** Directory holding one `<unit>.json` file (or `<unit>/` tree) per unit. */
1978
2155
  root: string
1979
2156
  }
1980
2157
  ```
1981
2158
 
1982
- Source: [`packages/storage/storage-json/src/index.ts:27`](../packages/storage/storage-json/src/index.ts)
2159
+ Source: [`packages/storage/storage-json/src/index.ts:28`](../packages/storage/storage-json/src/index.ts)
1983
2160
 
1984
2161
  <a id="deepseek-aidsh-storage-sqlite"></a>
1985
2162
 
@@ -2064,7 +2241,7 @@ export interface Config {
2064
2241
  * `MAX_TIMER_DELAY_MS`.
2065
2242
  */
2066
2243
  disposeEofGraceMs?: number
2067
- /** Termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2244
+ /** Failure-observation and termination-escalation grace (ms); must not exceed `MAX_TIMER_DELAY_MS`. */
2068
2245
  disposeGraceMs?: number
2069
2246
  }
2070
2247
 
@@ -2081,19 +2258,33 @@ Source: [`packages/subagent/subagent-acp/src/index.ts:27`](../packages/subagent/
2081
2258
  Requires: `subagents` · `subprocess`
2082
2259
 
2083
2260
  ```ts config-catalog
2084
- /** Deployment-owned environment and process-release bound. */
2261
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2085
2262
  export interface Config {
2263
+ /** Provider name on `ctx.subagents` (default `claude-code`). */
2264
+ providerName?: string
2265
+ /** Native Claude model fixed for this instance; omitted to inherit Claude settings. */
2266
+ model?: string
2086
2267
  /**
2087
2268
  * Explicit environment entries layered over the subprocess seam's
2088
2269
  * credential-scrubbed parent environment.
2089
2270
  */
2090
2271
  env?: Record<string, string>
2272
+ /**
2273
+ * Native non-interactive mode fixed for this Provider instance. Defaults to
2274
+ * `dontAsk`; `acceptEdits` accepts edits, `auto` uses the native classifier,
2275
+ * `plan` returns a plan without approving execution, and
2276
+ * `bypassPermissions` explicitly skips permission checks.
2277
+ */
2278
+ permissionMode?: ClaudeCodePermissionMode
2091
2279
  /** Grace in milliseconds for Claude Code process-tree termination. */
2092
2280
  disposeGraceMs?: number
2093
2281
  }
2282
+
2283
+ /** Profile-selectable non-interactive Claude Code permission mode. */
2284
+ export type ClaudeCodePermissionMode = typeof CLAUDE_CODE_PERMISSION_MODES[number]
2094
2285
  ```
2095
2286
 
2096
- Source: [`packages/subagent/subagent-claude-code/src/index.ts:32`](../packages/subagent/subagent-claude-code/src/index.ts)
2287
+ Source: [`packages/subagent/subagent-claude-code/src/index.ts:38`](../packages/subagent/subagent-claude-code/src/index.ts)
2097
2288
 
2098
2289
  <a id="deepseek-aidsh-subagent-codex"></a>
2099
2290
 
@@ -2102,19 +2293,31 @@ Source: [`packages/subagent/subagent-claude-code/src/index.ts:32`](../packages/s
2102
2293
  Requires: `subagents` · `subprocess`
2103
2294
 
2104
2295
  ```ts config-catalog
2105
- /** Deployment-owned environment and process-release bound. */
2296
+ /** Deployment-owned model, permission, environment, and process-release settings. */
2106
2297
  export interface Config {
2298
+ /** Provider name on `ctx.subagents` (default `codex`). */
2299
+ providerName?: string
2300
+ /** Native Codex model fixed for this instance; omitted to inherit Codex settings. */
2301
+ model?: string
2107
2302
  /**
2108
2303
  * Explicit environment entries layered over the subprocess seam's
2109
2304
  * credential-scrubbed parent environment.
2110
2305
  */
2111
2306
  env?: Record<string, string>
2307
+ /** Native non-interactive permission mode fixed for this Provider instance. */
2308
+ permissionMode?: CodexPermissionMode
2112
2309
  /** Grace in milliseconds for app-server process-tree termination. */
2113
2310
  disposeGraceMs?: number
2114
2311
  }
2312
+
2313
+ /** Profile-selectable non-interactive Codex permission mode. */
2314
+ export type CodexPermissionMode =
2315
+ | 'never'
2316
+ | 'approve-for-me'
2317
+ | 'dangerously-bypass-approvals-and-sandbox'
2115
2318
  ```
2116
2319
 
2117
- Source: [`packages/subagent/subagent-codex/src/index.ts:30`](../packages/subagent/subagent-codex/src/index.ts)
2320
+ Source: [`packages/subagent/subagent-codex/src/index.ts:36`](../packages/subagent/subagent-codex/src/index.ts)
2118
2321
 
2119
2322
  <a id="deepseek-aidsh-subagent-dsh-sdk"></a>
2120
2323
 
@@ -2127,10 +2330,14 @@ Requires: `subagents`
2127
2330
  export interface Config {
2128
2331
  /** Provider name on `ctx.subagents` (default `dsh-sdk`). */
2129
2332
  providerName: string
2130
- /** The executable to spawn for each run (the child runtime bin or packaged exe). */
2131
- command: string
2132
- /** Arguments passed to {@link command} (typically the child's `cordis.yml` path). */
2133
- args: string[]
2333
+ /** Explicit dsh CLI module, resolved and checked at plugin load; omission uses the SDK dependency. */
2334
+ dshBin?: string
2335
+ /** Named child profile (default `sdk`). */
2336
+ profile: string
2337
+ /** Ordered per-launch profile patch files, resolved and checked at plugin load. */
2338
+ patches: string[]
2339
+ /** Absolute isolated Harness home for every nested child process. */
2340
+ dshHome: string
2134
2341
  /**
2135
2342
  * Working directory override for the child process and its SDK session
2136
2343
  * workspace. Must be non-empty; a relative path resolves against the
@@ -2148,8 +2355,7 @@ export interface Config {
2148
2355
  maxTokens?: number
2149
2356
  /**
2150
2357
  * Extra environment variables for the child process — e.g. the child
2151
- * runtime's own `DEEPSEEK_API_KEY`, or `DSH_CORDIS_CONFIG` naming its
2152
- * config. Forwarded on top of a credential-scrubbed copy of the parent
2358
+ * runtime's own `DEEPSEEK_API_KEY`. Forwarded on top of a credential-scrubbed copy of the parent
2153
2359
  * env, so an explicit key here reaches the child while ambient secrets do
2154
2360
  * not leak implicitly.
2155
2361
  */
@@ -2167,7 +2373,7 @@ export interface Config {
2167
2373
  }
2168
2374
  ```
2169
2375
 
2170
- Source: [`packages/subagent/subagent-dsh-sdk/src/index.ts:29`](../packages/subagent/subagent-dsh-sdk/src/index.ts)
2376
+ Source: [`packages/subagent/subagent-dsh-sdk/src/index.ts:34`](../packages/subagent/subagent-dsh-sdk/src/index.ts)
2171
2377
 
2172
2378
  <a id="deepseek-aidsh-subagent-fork-in-process"></a>
2173
2379
 
@@ -2242,22 +2448,24 @@ export interface Config {
2242
2448
  }
2243
2449
  ```
2244
2450
 
2245
- Source: [`packages/core/system-prompt/src/index.ts:186`](../packages/core/system-prompt/src/index.ts)
2451
+ Source: [`packages/core/system-prompt/src/index.ts:237`](../packages/core/system-prompt/src/index.ts)
2246
2452
 
2247
2453
  <a id="deepseek-aidsh-terminal-bash"></a>
2248
2454
 
2249
2455
  ## `@deepseek-ai/dsh-terminal-bash`
2250
2456
 
2251
- Requires: `terminals` · `sandboxPolicy` · `subprocess`
2457
+ Requires: `terminals` · `sandboxPolicy` · `sessionProjections` · `subprocess`
2252
2458
 
2253
2459
  ```ts config-catalog
2254
2460
  /** Public plugin configuration. */
2255
2461
  export interface Config {
2256
2462
  /** Backend registry type (default: `shell`). */
2257
2463
  backendType?: string
2258
- /** Interactive shell executable (default: `/bin/bash`). */
2464
+ /** Interactive shell dialect (default: `bash`); selects the argv/env/startup defaults. */
2465
+ shellDialect?: ShellDialect
2466
+ /** Interactive shell executable (default per dialect: `/bin/bash`, or the resolved pwsh). */
2259
2467
  shellPath?: string
2260
- /** Shell arguments (default: `--noprofile --norc -i`). */
2468
+ /** Shell arguments (default per dialect: bash `--noprofile --norc -i`, pwsh `-NoLogo -NoProfile`). */
2261
2469
  shellArgs?: string[]
2262
2470
  /** Terminal rows. */
2263
2471
  rows?: number
@@ -2280,20 +2488,23 @@ export interface Config {
2280
2488
  * regain the foreground before `inferred_idle` settles; at least one `pollIntervalMs`.
2281
2489
  */
2282
2490
  handoffGraceMs?: number
2283
- /** Absolute send wait bound. */
2491
+ /** Absolute bound for one send and the complete pwsh startup sequence. */
2284
2492
  timeoutMs?: number
2285
2493
  /** Grace before teardown escalates to `SIGKILL`. */
2286
2494
  disposeGraceMs?: number
2287
2495
  }
2496
+
2497
+ /** One supported interactive shell dialect. */
2498
+ export type ShellDialect = 'bash' | 'pwsh'
2288
2499
  ```
2289
2500
 
2290
- Source: [`packages/terminal/terminal-bash/src/config.ts:6`](../packages/terminal/terminal-bash/src/config.ts)
2501
+ Source: [`packages/terminal/terminal-bash/src/config.ts:10`](../packages/terminal/terminal-bash/src/config.ts)
2291
2502
 
2292
2503
  <a id="deepseek-aidsh-time-context"></a>
2293
2504
 
2294
2505
  ## `@deepseek-ai/dsh-time-context`
2295
2506
 
2296
- Requires: `agents`
2507
+ Requires: `agents` · `sessionProjections`
2297
2508
 
2298
2509
  ```ts config-catalog
2299
2510
  /** Request-preparation clock formatting and append scheduling. Invalid values fail plugin load. */
@@ -2305,13 +2516,13 @@ export interface Config {
2305
2516
  }
2306
2517
  ```
2307
2518
 
2308
- Source: [`packages/context/time-context/src/index.ts:27`](../packages/context/time-context/src/index.ts)
2519
+ Source: [`packages/context/time-context/src/index.ts:48`](../packages/context/time-context/src/index.ts)
2309
2520
 
2310
2521
  <a id="deepseek-aidsh-tmux-context"></a>
2311
2522
 
2312
2523
  ## `@deepseek-ai/dsh-tmux-context`
2313
2524
 
2314
- Requires: `agents`
2525
+ Requires: `agents` · `sessionProjections`
2315
2526
 
2316
2527
  ```ts config-catalog
2317
2528
  /** Per-turn tmux-location scheduling. Invalid values fail plugin load. */
@@ -2321,12 +2532,14 @@ export interface Config {
2321
2532
  }
2322
2533
  ```
2323
2534
 
2324
- Source: [`packages/context/tmux-context/src/index.ts:34`](../packages/context/tmux-context/src/index.ts)
2535
+ Source: [`packages/context/tmux-context/src/index.ts:36`](../packages/context/tmux-context/src/index.ts)
2325
2536
 
2326
2537
  <a id="deepseek-aidsh-token-meter"></a>
2327
2538
 
2328
2539
  ## `@deepseek-ai/dsh-token-meter`
2329
2540
 
2541
+ Requires: `sessionProjections`
2542
+
2330
2543
  ```ts config-catalog
2331
2544
  /** Token-meter plugin configuration; the fixed estimator has no settings. */
2332
2545
  export type TokenMeterConfig = Record<string, never>
@@ -2348,7 +2561,7 @@ export interface Config {
2348
2561
  }
2349
2562
  ```
2350
2563
 
2351
- Source: [`packages/shell/tool-bash/src/index.ts:34`](../packages/shell/tool-bash/src/index.ts)
2564
+ Source: [`packages/shell/tool-bash/src/index.ts:33`](../packages/shell/tool-bash/src/index.ts)
2352
2565
 
2353
2566
  <a id="deepseek-aidsh-tool-bash-persistent"></a>
2354
2567
 
@@ -2370,7 +2583,7 @@ export interface Config {
2370
2583
  }
2371
2584
  ```
2372
2585
 
2373
- Source: [`packages/shell/tool-bash-persistent/src/index.ts:405`](../packages/shell/tool-bash-persistent/src/index.ts)
2586
+ Source: [`packages/shell/tool-bash-persistent/src/index.ts:432`](../packages/shell/tool-bash-persistent/src/index.ts)
2374
2587
 
2375
2588
  <a id="deepseek-aidsh-tool-fs"></a>
2376
2589
 
@@ -2433,7 +2646,7 @@ Source: [`packages/fs/tool-fs-search/src/index.ts:73`](../packages/fs/tool-fs-se
2433
2646
 
2434
2647
  ## `@deepseek-ai/dsh-tool-goal`
2435
2648
 
2436
- Requires: `agents` · `goals` · `tools` · `systemPrompt`
2649
+ Requires: `agents` · `goals` · `tools` · `systemPrompt` · `sessionProjections`
2437
2650
 
2438
2651
  ```ts config-catalog
2439
2652
  /** Model policy and hard lower bounds for goal-state updates. */
@@ -2443,7 +2656,7 @@ export interface Config {
2443
2656
  }
2444
2657
  ```
2445
2658
 
2446
- Source: [`packages/goal/tool-goal/src/index.ts:26`](../packages/goal/tool-goal/src/index.ts)
2659
+ Source: [`packages/goal/tool-goal/src/index.ts:25`](../packages/goal/tool-goal/src/index.ts)
2447
2660
 
2448
2661
  <a id="deepseek-aidsh-tool-jobs"></a>
2449
2662
 
@@ -2477,7 +2690,7 @@ export interface Config {
2477
2690
  export type CompletionDelivery = 'quiet' | 'wakeup'
2478
2691
  ```
2479
2692
 
2480
- Source: [`packages/jobs/tool-jobs/src/index.ts:32`](../packages/jobs/tool-jobs/src/index.ts)
2693
+ Source: [`packages/jobs/tool-jobs/src/index.ts:31`](../packages/jobs/tool-jobs/src/index.ts)
2481
2694
 
2482
2695
  <a id="deepseek-aidsh-tool-lsp"></a>
2483
2696
 
@@ -2497,7 +2710,7 @@ export interface Config {
2497
2710
  }
2498
2711
  ```
2499
2712
 
2500
- Source: [`packages/lsp/tool-lsp/src/index.ts:58`](../packages/lsp/tool-lsp/src/index.ts)
2713
+ Source: [`packages/lsp/tool-lsp/src/index.ts:57`](../packages/lsp/tool-lsp/src/index.ts)
2501
2714
 
2502
2715
  <a id="deepseek-aidsh-tool-pwsh"></a>
2503
2716
 
@@ -2513,7 +2726,29 @@ export interface Config {
2513
2726
  }
2514
2727
  ```
2515
2728
 
2516
- Source: [`packages/shell/tool-pwsh/src/index.ts:52`](../packages/shell/tool-pwsh/src/index.ts)
2729
+ Source: [`packages/shell/tool-pwsh/src/index.ts:51`](../packages/shell/tool-pwsh/src/index.ts)
2730
+
2731
+ <a id="deepseek-aidsh-tool-pwsh-persistent"></a>
2732
+
2733
+ ## `@deepseek-ai/dsh-tool-pwsh-persistent`
2734
+
2735
+ Requires: `tools` · `terminals`
2736
+
2737
+ ```ts config-catalog
2738
+ /** Configuration for the persistent pwsh tool. */
2739
+ export interface Config {
2740
+ /** PTY backend used for each owner-isolated persistent shell (default `shell`). */
2741
+ backendType?: string
2742
+ /** Wall-clock limit for one command (default 300000). */
2743
+ timeoutMs?: number
2744
+ /** Maximum returned command-output characters before clipping (default 16000). */
2745
+ maxOutputChars?: number
2746
+ /** Model-facing tool description; deployments may describe their environment. */
2747
+ description?: string
2748
+ }
2749
+ ```
2750
+
2751
+ Source: [`packages/shell/tool-pwsh-persistent/src/index.ts:472`](../packages/shell/tool-pwsh-persistent/src/index.ts)
2517
2752
 
2518
2753
  <a id="deepseek-aidsh-tool-ralph"></a>
2519
2754
 
@@ -2535,13 +2770,13 @@ export interface Config {
2535
2770
  }
2536
2771
  ```
2537
2772
 
2538
- Source: [`packages/workflow/tool-ralph/src/index.ts:23`](../packages/workflow/tool-ralph/src/index.ts)
2773
+ Source: [`packages/workflow/tool-ralph/src/index.ts:21`](../packages/workflow/tool-ralph/src/index.ts)
2539
2774
 
2540
2775
  <a id="deepseek-aidsh-tool-session-query"></a>
2541
2776
 
2542
2777
  ## `@deepseek-ai/dsh-tool-session-query`
2543
2778
 
2544
- Requires: `tools` · `systemPrompt` · `sessionQuery`
2779
+ Requires: `tools` · `systemPrompt` · `sessionQuery` · `sessionProjections`
2545
2780
 
2546
2781
  ```ts config-catalog
2547
2782
  /** Deployment-owned search count and timeout bounds. */
@@ -2553,7 +2788,7 @@ export interface Config {
2553
2788
  }
2554
2789
  ```
2555
2790
 
2556
- Source: [`packages/session-query/tool-session-query/src/index.ts:29`](../packages/session-query/tool-session-query/src/index.ts)
2791
+ Source: [`packages/session-query/tool-session-query/src/index.ts:28`](../packages/session-query/tool-session-query/src/index.ts)
2557
2792
 
2558
2793
  <a id="deepseek-aidsh-tool-skill"></a>
2559
2794
 
@@ -2587,13 +2822,13 @@ export interface Config {
2587
2822
  }
2588
2823
  ```
2589
2824
 
2590
- Source: [`packages/fs/tool-str-replace-editor/src/index.ts:497`](../packages/fs/tool-str-replace-editor/src/index.ts)
2825
+ Source: [`packages/fs/tool-str-replace-editor/src/index.ts:505`](../packages/fs/tool-str-replace-editor/src/index.ts)
2591
2826
 
2592
2827
  <a id="deepseek-aidsh-tool-subagent"></a>
2593
2828
 
2594
2829
  ## `@deepseek-ai/dsh-tool-subagent`
2595
2830
 
2596
- Requires: `tools` · `subagents` · `systemPrompt`
2831
+ Requires: `tools` · `subagents` · `systemPrompt` · `sessionProjections`
2597
2832
 
2598
2833
  ```ts config-catalog
2599
2834
  /** Config: which registered provider this tool delegates to, plus child defaults. */
@@ -2605,6 +2840,11 @@ export interface Config {
2605
2840
  * a distinct name.
2606
2841
  */
2607
2842
  toolName?: string
2843
+ /**
2844
+ * Sample the Host `subagent-model-selection` user setting for each new
2845
+ * top-level session and inherit that decision in its child sessions.
2846
+ */
2847
+ modelSelectionSettings?: boolean
2608
2848
  /**
2609
2849
  * Expose `run_in_background` (default true). Disabled instances omit the
2610
2850
  * parameter and reject forced background calls.
@@ -2652,7 +2892,7 @@ export interface Config {
2652
2892
 
2653
2893
  Depends on: [`AgentOptions`](subsystems/core.md)
2654
2894
 
2655
- Source: [`packages/subagent/tool-subagent/src/index.ts:29`](../packages/subagent/tool-subagent/src/index.ts)
2895
+ Source: [`packages/subagent/tool-subagent/src/index.ts:48`](../packages/subagent/tool-subagent/src/index.ts)
2656
2896
 
2657
2897
  <a id="deepseek-aidsh-tool-subagent-report"></a>
2658
2898
 
@@ -2664,9 +2904,9 @@ Requires: `subagents` · `tools` · `systemPrompt`
2664
2904
  /** Config: how accepted reports are scheduled on the parent. */
2665
2905
  export interface Config {
2666
2906
  /**
2667
- * Parent scheduling (default `wakeup`). `wakeup` creates one ordinary later
2668
- * parent turn; `quiet` adds context without waking, so a parked parent learns
2669
- * of the report only when something else wakes it.
2907
+ * Parent scheduling (default `next-step`). `next-step` wakes the parent and
2908
+ * enters at its nearest step boundary; `quiet` adds the same context without
2909
+ * waking, so a parked parent waits for another waking input.
2670
2910
  */
2671
2911
  reportDelivery?: SubagentReportDelivery
2672
2912
  }
@@ -2674,7 +2914,7 @@ export interface Config {
2674
2914
 
2675
2915
  Depends on: [`SubagentReportDelivery`](subsystems/subagent.md)
2676
2916
 
2677
- Source: [`packages/subagent/tool-subagent-report/src/index.ts:27`](../packages/subagent/tool-subagent-report/src/index.ts)
2917
+ Source: [`packages/subagent/tool-subagent-report/src/index.ts:25`](../packages/subagent/tool-subagent-report/src/index.ts)
2678
2918
 
2679
2919
  <a id="deepseek-aidsh-tool-terminal"></a>
2680
2920
 
@@ -2698,7 +2938,7 @@ Source: [`packages/terminal/tool-terminal/src/index.ts:35`](../packages/terminal
2698
2938
 
2699
2939
  ## `@deepseek-ai/dsh-tool-todo`
2700
2940
 
2701
- Requires: `tools`
2941
+ Requires: `tools` · `sessionProjections`
2702
2942
 
2703
2943
  ```ts config-catalog
2704
2944
  /** Model-facing todo tool configuration. */
@@ -2723,7 +2963,7 @@ Source: [`packages/todo/tool-todo/src/index.ts:29`](../packages/todo/tool-todo/s
2723
2963
  Requires: `tools` · `web` · `systemPrompt`
2724
2964
 
2725
2965
  ```ts config-catalog
2726
- /** Plugin config: which web tools to register, the source cap, per-tool budgets, and the fetch output cap. */
2966
+ /** Plugin config: which web tools to register, search bounds, per-tool budgets, and the fetch output cap. */
2727
2967
  export interface Config {
2728
2968
  /** Register `web_search`. Defaults to true. */
2729
2969
  search?: boolean
@@ -2731,6 +2971,8 @@ export interface Config {
2731
2971
  fetch?: boolean
2732
2972
  /** Upper bound on sources returned by one `web_search` call. */
2733
2973
  searchMaxResults?: number
2974
+ /** Upper bound on queries accepted by one `web_search` call. */
2975
+ searchMaxQueries?: number
2734
2976
  /** Cooperative timeout budget (ms) for `web_fetch`. Defaults to 30000. */
2735
2977
  fetchTimeoutMs?: number
2736
2978
  /** Cooperative timeout budget (ms) for `web_search`. Defaults to 30000. */
@@ -2758,7 +3000,7 @@ export interface Config {
2758
3000
  }
2759
3001
  ```
2760
3002
 
2761
- Source: [`packages/workflow/tool-workflow/src/index.ts:33`](../packages/workflow/tool-workflow/src/index.ts)
3003
+ Source: [`packages/workflow/tool-workflow/src/index.ts:32`](../packages/workflow/tool-workflow/src/index.ts)
2762
3004
 
2763
3005
  <a id="deepseek-aidsh-tools"></a>
2764
3006
 
@@ -2770,13 +3012,13 @@ Requires: `systemPrompt`
2770
3012
  /** Plugin config: how the registered tools are presented to the model. */
2771
3013
  export interface Config {
2772
3014
  /**
2773
- * Model presentation. `native` (default) sends every visible schema; `code`
3015
+ * Model presentation. `native` (default) sends every visible schema; `ptc`
2774
3016
  * sends only `run_code` plus a generated SDK prompt and collapses the
2775
3017
  * executor to the same surface (a model-direct call may only name
2776
3018
  * `run_code`; `run_code` SDK sub-dispatches keep every visible tool); `both`
2777
- * sends both forms. Code modes require a `ctx.codeRuntime` whose `language`
3019
+ * sends both forms. PTC mode requires a `ctx.codeRuntime` whose `language`
2778
3020
  * has a registered SDK renderer (TypeScript or Python) and fail prompt
2779
- * assembly when it is absent or has no renderer. Under `code`, native names
3021
+ * assembly when it is absent or has no renderer. Under `ptc`, native names
2780
3022
  * in `toolOrder` are invalid.
2781
3023
  */
2782
3024
  mode?: ToolPresentationMode
@@ -2791,10 +3033,10 @@ export interface Config {
2791
3033
  }
2792
3034
 
2793
3035
  /** How the registry presents its tools to the model (see {@link Config.mode}). */
2794
- export type ToolPresentationMode = 'native' | 'code' | 'both'
3036
+ export type ToolPresentationMode = 'native' | 'ptc' | 'both'
2795
3037
  ```
2796
3038
 
2797
- Source: [`packages/core/tools/src/index.ts:654`](../packages/core/tools/src/index.ts)
3039
+ Source: [`packages/core/tools/src/index.ts:647`](../packages/core/tools/src/index.ts)
2798
3040
 
2799
3041
  <a id="deepseek-aidsh-typert-loader"></a>
2800
3042
 
@@ -2841,7 +3083,7 @@ export interface Config {
2841
3083
  export type ApprovalPolicy = 'ask' | 'never'
2842
3084
  ```
2843
3085
 
2844
- Source: [`packages/interaction/user-approval/src/index.ts:177`](../packages/interaction/user-approval/src/index.ts)
3086
+ Source: [`packages/interaction/user-approval/src/index.ts:142`](../packages/interaction/user-approval/src/index.ts)
2845
3087
 
2846
3088
  <a id="deepseek-aidsh-web"></a>
2847
3089
 
@@ -2873,6 +3115,8 @@ Requires: `webServer`
2873
3115
  ```ts config-catalog
2874
3116
  /** Plugin config: composed deployment settings plus per-invocation command-line values. */
2875
3117
  export interface Config {
3118
+ /** Permit default-browser handoff after the Loader tree settles; an SSH launch suppresses it. */
3119
+ openBrowser: boolean
2876
3120
  /** Print the URL line on activation; a non-interactive layer can turn it off. */
2877
3121
  printUrl: boolean
2878
3122
  /**
@@ -2887,7 +3131,7 @@ export interface Config {
2887
3131
  }
2888
3132
  ```
2889
3133
 
2890
- Source: [`packages/bundle/web-app/src/index.ts:38`](../packages/bundle/web-app/src/index.ts)
3134
+ Source: [`packages/bundle/web-app/src/index.ts:44`](../packages/bundle/web-app/src/index.ts)
2891
3135
 
2892
3136
  <a id="deepseek-aidsh-web-fetch-http"></a>
2893
3137
 
@@ -2898,8 +3142,6 @@ Requires: `web`
2898
3142
  ```ts config-catalog
2899
3143
  /** Plugin config: the provider's transport and size limits plus its `User-Agent` (all defaulted). */
2900
3144
  export interface Config {
2901
- /** Maximum accepted request URL length. */
2902
- maxUrlLength?: number
2903
3145
  /** Maximum response body size in bytes. */
2904
3146
  maxResponseBytes?: number
2905
3147
  /** Maximum decoded body length in characters. */
@@ -2913,7 +3155,7 @@ export interface Config {
2913
3155
  }
2914
3156
  ```
2915
3157
 
2916
- Source: [`packages/web/web-fetch-http/src/index.ts:34`](../packages/web/web-fetch-http/src/index.ts)
3158
+ Source: [`packages/web/web-fetch-http/src/index.ts:32`](../packages/web/web-fetch-http/src/index.ts)
2917
3159
 
2918
3160
  <a id="deepseek-aidsh-web-search-deepseek"></a>
2919
3161
 
@@ -2965,7 +3207,7 @@ export interface Config {
2965
3207
  }
2966
3208
  ```
2967
3209
 
2968
- Source: [`packages/web/web-search-exa/src/index.ts:38`](../packages/web/web-search-exa/src/index.ts)
3210
+ Source: [`packages/web/web-search-exa/src/index.ts:35`](../packages/web/web-search-exa/src/index.ts)
2969
3211
 
2970
3212
  <a id="deepseek-aidsh-web-search-perplexity"></a>
2971
3213
 
@@ -2989,7 +3231,29 @@ export interface Config {
2989
3231
  }
2990
3232
  ```
2991
3233
 
2992
- Source: [`packages/web/web-search-perplexity/src/index.ts:32`](../packages/web/web-search-perplexity/src/index.ts)
3234
+ Source: [`packages/web/web-search-perplexity/src/index.ts:30`](../packages/web/web-search-perplexity/src/index.ts)
3235
+
3236
+ <a id="deepseek-aidsh-webhook-github"></a>
3237
+
3238
+ ## `@deepseek-ai/dsh-webhook-github`
3239
+
3240
+ Requires: `webServer` · `webhookRuntime` · `credentials`
3241
+
3242
+ ```ts config-catalog
3243
+ /** Required GitHub ingress configuration. */
3244
+ export interface Config {
3245
+ /** Adapter instance name carried to rules. */
3246
+ readonly source: string
3247
+ /** Exact absolute route path. */
3248
+ readonly path: string
3249
+ /** Credential reference containing the shared webhook secret. */
3250
+ readonly secretEnv: string
3251
+ /** Positive raw body ceiling in bytes. */
3252
+ readonly maxBodyBytes: number
3253
+ }
3254
+ ```
3255
+
3256
+ Source: [`packages/webhook/webhook-github/src/index.ts:17`](../packages/webhook/webhook-github/src/index.ts)
2993
3257
 
2994
3258
  <a id="deepseek-aidsh-workflow-worker-thread"></a>
2995
3259
 
@@ -3025,13 +3289,18 @@ Source: [`packages/workflow/workflow-worker-thread/src/index.ts:32`](../packages
3025
3289
 
3026
3290
  These load from a `cordis.yml` entry with no `config:` block; they declare no configuration API.
3027
3291
 
3292
+ - `@deepseek-ai/dsh-acp-app` — requires `cmdlineArgs` ([`packages/bundle/acp-app/src/index.ts`](../packages/bundle/acp-app/src/index.ts))
3028
3293
  - `@deepseek-ai/dsh-agent` ([`packages/core/agent/src/index.ts`](../packages/core/agent/src/index.ts))
3029
- - `@deepseek-ai/dsh-api-gateway` — requires `typert` ([`packages/api/gateway/src/index.ts`](../packages/api/gateway/src/index.ts))
3030
- - `@deepseek-ai/dsh-api-remotes` ([`packages/api/remotes/src/index.ts`](../packages/api/remotes/src/index.ts))
3294
+ - `@deepseek-ai/dsh-api-remotes` — requires `typertGateway` ([`packages/api/remotes/src/index.ts`](../packages/api/remotes/src/index.ts))
3295
+ - `@deepseek-ai/dsh-api-workspace-controller` — requires `typert` · `workspaceRegistry` ([`packages/api/workspace-controller/src/index.ts`](../packages/api/workspace-controller/src/index.ts))
3296
+ - `@deepseek-ai/dsh-authorization` — requires `credentials` ([`packages/credentials/authorization/src/index.ts`](../packages/credentials/authorization/src/index.ts))
3031
3297
  - `@deepseek-ai/dsh-client-locale` ([`packages/client/locale/src/index.ts`](../packages/client/locale/src/index.ts))
3032
3298
  - `@deepseek-ai/dsh-client-modules` — requires `webServer` · `loader` ([`packages/client/modules/src/index.ts`](../packages/client/modules/src/index.ts))
3033
- - `@deepseek-ai/dsh-client-runtime` ([`packages/client/runtime/src/index.ts`](../packages/client/runtime/src/index.ts))
3034
3299
  - `@deepseek-ai/dsh-client-ui-agent-preset` ([`packages/client/ui-agent-preset/src/index.ts`](../packages/client/ui-agent-preset/src/index.ts))
3300
+ - `@deepseek-ai/dsh-client-ui-approval` ([`packages/client/ui-approval/src/index.ts`](../packages/client/ui-approval/src/index.ts))
3301
+ - `@deepseek-ai/dsh-client-ui-attachment` ([`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts))
3302
+ - `@deepseek-ai/dsh-client-ui-brand-official` ([`packages/client/ui-brand-official/src/index.ts`](../packages/client/ui-brand-official/src/index.ts))
3303
+ - `@deepseek-ai/dsh-client-ui-chat` ([`packages/client/ui-chat/src/index.ts`](../packages/client/ui-chat/src/index.ts))
3035
3304
  - `@deepseek-ai/dsh-client-ui-commands` ([`packages/client/ui-commands/src/index.ts`](../packages/client/ui-commands/src/index.ts))
3036
3305
  - `@deepseek-ai/dsh-client-ui-conversation` ([`packages/client/ui-conversation/src/index.ts`](../packages/client/ui-conversation/src/index.ts))
3037
3306
  - `@deepseek-ai/dsh-client-ui-cordis` ([`packages/extensions/ui-cordis/src/index.ts`](../packages/extensions/ui-cordis/src/index.ts))
@@ -3046,6 +3315,10 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3046
3315
  - `@deepseek-ai/dsh-client-ui-model-selection` ([`packages/client/ui-model-selection/src/index.ts`](../packages/client/ui-model-selection/src/index.ts))
3047
3316
  - `@deepseek-ai/dsh-client-ui-permission-presets` ([`packages/client/ui-permission-presets/src/index.ts`](../packages/client/ui-permission-presets/src/index.ts))
3048
3317
  - `@deepseek-ai/dsh-client-ui-plan` ([`packages/client/ui-plan/src/index.ts`](../packages/client/ui-plan/src/index.ts))
3318
+ - `@deepseek-ai/dsh-client-ui-reference` ([`packages/client/ui-reference/src/index.ts`](../packages/client/ui-reference/src/index.ts))
3319
+ - `@deepseek-ai/dsh-client-ui-renderer` ([`packages/client/ui-renderer/src/index.ts`](../packages/client/ui-renderer/src/index.ts))
3320
+ - `@deepseek-ai/dsh-client-ui-schedule` ([`packages/client/ui-schedule/src/index.ts`](../packages/client/ui-schedule/src/index.ts))
3321
+ - `@deepseek-ai/dsh-client-ui-session` ([`packages/client/ui-session/src/index.ts`](../packages/client/ui-session/src/index.ts))
3049
3322
  - `@deepseek-ai/dsh-client-ui-settings` ([`packages/client/ui-settings/src/index.ts`](../packages/client/ui-settings/src/index.ts))
3050
3323
  - `@deepseek-ai/dsh-client-ui-settings-general` ([`packages/client/ui-settings-general/src/index.ts`](../packages/client/ui-settings-general/src/index.ts))
3051
3324
  - `@deepseek-ai/dsh-client-ui-settings-models` ([`packages/client/ui-settings-models/src/index.ts`](../packages/client/ui-settings-models/src/index.ts))
@@ -3065,6 +3338,8 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3065
3338
  - `@deepseek-ai/dsh-command-goal` — requires `commands` · `goals` ([`packages/goal/command-goal/src/index.ts`](../packages/goal/command-goal/src/index.ts))
3066
3339
  - `@deepseek-ai/dsh-commands` ([`packages/interaction/commands/src/index.ts`](../packages/interaction/commands/src/index.ts))
3067
3340
  - `@deepseek-ai/dsh-cordis-client-runner` ([`packages/extensions/cordis-client-runner/src/index.ts`](../packages/extensions/cordis-client-runner/src/index.ts))
3341
+ - `@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))
3342
+ - `@deepseek-ai/dsh-experimental-client-ui-agent-team` ([`packages/experimental/client-ui-agent-team/src/index.ts`](../packages/experimental/client-ui-agent-team/src/index.ts))
3068
3343
  - `@deepseek-ai/dsh-fs-e2b` — requires `e2b` ([`packages/e2b/fs-e2b/src/index.ts`](../packages/e2b/fs-e2b/src/index.ts))
3069
3344
  - `@deepseek-ai/dsh-fs-observation-policy` ([`packages/fs/fs-observation-policy/src/index.ts`](../packages/fs/fs-observation-policy/src/index.ts))
3070
3345
  - `@deepseek-ai/dsh-goal-round-driver` — requires `agents` · `goals` · `sessions` ([`packages/goal/goal-round-driver/src/index.ts`](../packages/goal/goal-round-driver/src/index.ts))
@@ -3076,9 +3351,9 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3076
3351
  - `@deepseek-ai/dsh-schedule` — requires `agents` · `sessions` · `tools` · `sessionPersistence` ([`packages/schedule/schedule/src/index.ts`](../packages/schedule/schedule/src/index.ts))
3077
3352
  - `@deepseek-ai/dsh-session` ([`packages/core/session/src/index.ts`](../packages/core/session/src/index.ts))
3078
3353
  - `@deepseek-ai/dsh-session-checkpoint-policy` — requires `llm` · `sessionPersistence` · `sessions` · `tools` ([`packages/session/session-checkpoint-policy/src/index.ts`](../packages/session/session-checkpoint-policy/src/index.ts))
3079
- - `@deepseek-ai/dsh-session-log-export` — requires `commands` ([`packages/session-query/session-log-export/src/index.ts`](../packages/session-query/session-log-export/src/index.ts))
3080
3354
  - `@deepseek-ai/dsh-session-projection` ([`packages/session/session-projection/src/index.ts`](../packages/session/session-projection/src/index.ts))
3081
3355
  - `@deepseek-ai/dsh-session-stats` — requires `sessionProjections` ([`packages/session/session-stats/src/index.ts`](../packages/session/session-stats/src/index.ts))
3356
+ - `@deepseek-ai/dsh-session-turn-outline` — requires `sessionProjections` ([`packages/session/session-turn-outline/src/index.ts`](../packages/session/session-turn-outline/src/index.ts))
3082
3357
  - `@deepseek-ai/dsh-skill-badge` — requires `skills` ([`packages/skill/skill-badge/src/index.ts`](../packages/skill/skill-badge/src/index.ts))
3083
3358
  - `@deepseek-ai/dsh-storage` ([`packages/storage/storage/src/index.ts`](../packages/storage/storage/src/index.ts))
3084
3359
  - `@deepseek-ai/dsh-subagent` ([`packages/subagent/subagent/src/index.ts`](../packages/subagent/subagent/src/index.ts))
@@ -3089,6 +3364,7 @@ These load from a `cordis.yml` entry with no `config:` block; they declare no co
3089
3364
  - `@deepseek-ai/dsh-tool-cordis` — requires `tools` · `systemPrompt` · `dynamicCordisRunner` · `cordisInspect` ([`packages/extensions/tool-cordis/src/index.ts`](../packages/extensions/tool-cordis/src/index.ts))
3090
3365
  - `@deepseek-ai/dsh-tool-subagent-control` — requires `tools` · `subagents` ([`packages/subagent/tool-subagent-control/src/index.ts`](../packages/subagent/tool-subagent-control/src/index.ts))
3091
3366
  - `@deepseek-ai/dsh-user-questions` ([`packages/interaction/user-questions/src/index.ts`](../packages/interaction/user-questions/src/index.ts))
3367
+ - `@deepseek-ai/dsh-webhook` — requires `agents` · `agentDefaultModel` · `agentPresets` · `permissionPresets` · `sessionTitle` · `workspaceRegistry` ([`packages/webhook/webhook/src/index.ts`](../packages/webhook/webhook/src/index.ts))
3092
3368
  - `@deepseek-ai/dsh-workspace` — requires `storageDomain` · `sessionPersistence` ([`packages/workspace/workspace/src/index.ts`](../packages/workspace/workspace/src/index.ts))
3093
3369
 
3094
3370
  ## Seam packages (not directly loadable)
@@ -3099,6 +3375,7 @@ Abstract service classes — a deployment loads a concrete implementation packag
3099
3375
  - `@deepseek-ai/dsh-code-runtime` — abstract `CodeRuntime` ([`packages/code-runtime/code-runtime/src/index.ts`](../packages/code-runtime/code-runtime/src/index.ts))
3100
3376
  - `@deepseek-ai/dsh-compaction` — abstract `CompactionEngine` ([`packages/compaction/compaction/src/index.ts`](../packages/compaction/compaction/src/index.ts))
3101
3377
  - `@deepseek-ai/dsh-credentials` — abstract `CredentialProvider` ([`packages/credentials/credentials/src/index.ts`](../packages/credentials/credentials/src/index.ts))
3378
+ - `@deepseek-ai/dsh-file-reference` — abstract `FileReferenceService` ([`packages/context/file-reference/src/index.ts`](../packages/context/file-reference/src/index.ts))
3102
3379
  - `@deepseek-ai/dsh-fs` — abstract `FileSystem` ([`packages/fs/fs/src/index.ts`](../packages/fs/fs/src/index.ts))
3103
3380
  - `@deepseek-ai/dsh-host-directory-picker` — abstract `DirectoryPicker` ([`packages/host/directory-picker/src/index.ts`](../packages/host/directory-picker/src/index.ts))
3104
3381
  - `@deepseek-ai/dsh-jobs` — abstract `JobRegistry` ([`packages/jobs/jobs/src/index.ts`](../packages/jobs/jobs/src/index.ts))
@@ -3115,21 +3392,24 @@ Abstract service classes — a deployment loads a concrete implementation packag
3115
3392
 
3116
3393
  Imported as libraries by other packages; a `cordis.yml` cannot load them.
3117
3394
 
3118
- - `@deepseek-ai/dsh-acp-snapshot` ([`packages/test-support/acp-snapshot/src/index.ts`](../packages/test-support/acp-snapshot/src/index.ts))
3119
3395
  - `@deepseek-ai/dsh-agent-loop-testkit` ([`packages/test-support/agent-loop-testkit/src/index.ts`](../packages/test-support/agent-loop-testkit/src/index.ts))
3120
3396
  - `@deepseek-ai/dsh-anonymous-user-id` ([`packages/identity/anonymous-user-id/src/index.ts`](../packages/identity/anonymous-user-id/src/index.ts))
3121
3397
  - `@deepseek-ai/dsh-app-boot` ([`packages/boot/app-boot/src/index.ts`](../packages/boot/app-boot/src/index.ts))
3122
3398
  - `@deepseek-ai/dsh-atomic-write` ([`packages/util/atomic-write/src/index.ts`](../packages/util/atomic-write/src/index.ts))
3123
3399
  - `@deepseek-ai/dsh-base` ([`packages/bundle/base/src/index.ts`](../packages/bundle/base/src/index.ts))
3124
3400
  - `@deepseek-ai/dsh-brand` ([`packages/util/brand/src/index.ts`](../packages/util/brand/src/index.ts))
3125
- - `@deepseek-ai/dsh-client-schema-form` ([`packages/client/schema-form/src/index.ts`](../packages/client/schema-form/src/index.ts))
3401
+ - `@deepseek-ai/dsh-client-store` ([`packages/client/store/src/index.ts`](../packages/client/store/src/index.ts))
3126
3402
  - `@deepseek-ai/dsh-client-test-runtime` ([`packages/test-support/client-runtime/src/index.ts`](../packages/test-support/client-runtime/src/index.ts))
3127
- - `@deepseek-ai/dsh-client-ui-attachment` ([`packages/client/ui-attachment/src/index.ts`](../packages/client/ui-attachment/src/index.ts))
3128
3403
  - `@deepseek-ai/dsh-client-ui-primitives` ([`packages/client/ui-primitives/src/index.ts`](../packages/client/ui-primitives/src/index.ts))
3129
3404
  - `@deepseek-ai/dsh-client-ui-slots` ([`packages/client/ui-slots/src/index.ts`](../packages/client/ui-slots/src/index.ts))
3130
3405
  - `@deepseek-ai/dsh-client-web` ([`packages/client/web/src/index.ts`](../packages/client/web/src/index.ts))
3131
- - `@deepseek-ai/dsh-client-web-react` ([`packages/client/web-react/src/index.ts`](../packages/client/web-react/src/index.ts))
3132
3406
  - `@deepseek-ai/dsh-cmdline` ([`packages/boot/cmdline/src/index.ts`](../packages/boot/cmdline/src/index.ts))
3407
+ - `@deepseek-ai/dsh-code-runtime-python` ([`packages/code-runtime/code-runtime-python/src/index.ts`](../packages/code-runtime/code-runtime-python/src/index.ts))
3408
+ - `@deepseek-ai/dsh-deque` ([`packages/util/deque/src/index.ts`](../packages/util/deque/src/index.ts))
3409
+ - `@deepseek-ai/dsh-experimental-agent-team-profile` ([`packages/experimental/agent-team-profile/src/index.ts`](../packages/experimental/agent-team-profile/src/index.ts))
3410
+ - `@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))
3411
+ - `@deepseek-ai/dsh-experimental-webworker-packer` ([`packages/experimental/webworker-packer/src/index.ts`](../packages/experimental/webworker-packer/src/index.ts))
3412
+ - `@deepseek-ai/dsh-experimental-webworker-runtime` ([`packages/experimental/webworker-runtime/src/index.ts`](../packages/experimental/webworker-runtime/src/index.ts))
3133
3413
  - `@deepseek-ai/dsh-home-paths` ([`packages/util/home-paths/src/index.ts`](../packages/util/home-paths/src/index.ts))
3134
3414
  - `@deepseek-ai/dsh-hook-protocol` ([`packages/hooks/hook-protocol/src/index.ts`](../packages/hooks/hook-protocol/src/index.ts))
3135
3415
  - `@deepseek-ai/dsh-launch-environment` ([`packages/util/launch-environment/src/index.ts`](../packages/util/launch-environment/src/index.ts))
@@ -3140,8 +3420,9 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3140
3420
  - `@deepseek-ai/dsh-sandbox-windows-acl` ([`packages/sandbox/sandbox-windows-acl/src/index.ts`](../packages/sandbox/sandbox-windows-acl/src/index.ts))
3141
3421
  - `@deepseek-ai/dsh-scope` ([`packages/core/scope/src/index.ts`](../packages/core/scope/src/index.ts))
3142
3422
  - `@deepseek-ai/dsh-sdk-client` ([`packages/sdk/client/src/index.ts`](../packages/sdk/client/src/index.ts))
3143
- - `@deepseek-ai/dsh-sdk-jsonrpc-demo` ([`packages/examples/jsonrpc-demo/src/index.ts`](../packages/examples/jsonrpc-demo/src/index.ts))
3423
+ - `@deepseek-ai/dsh-sdk-minimal` ([`packages/bundle/sdk-minimal/src/index.ts`](../packages/bundle/sdk-minimal/src/index.ts))
3144
3424
  - `@deepseek-ai/dsh-sdk-protocol` ([`packages/sdk/protocol/src/index.ts`](../packages/sdk/protocol/src/index.ts))
3425
+ - `@deepseek-ai/dsh-session-snapshot` ([`packages/test-support/session-snapshot/src/index.ts`](../packages/test-support/session-snapshot/src/index.ts))
3145
3426
  - `@deepseek-ai/dsh-session-telemetry` ([`packages/session/session-telemetry/src/index.ts`](../packages/session/session-telemetry/src/index.ts))
3146
3427
  - `@deepseek-ai/dsh-session-title-llm` ([`packages/session/session-title-llm/src/index.ts`](../packages/session/session-title-llm/src/index.ts))
3147
3428
  - `@deepseek-ai/dsh-subagent-in-process-driver` ([`packages/subagent/subagent-in-process-driver/src/index.ts`](../packages/subagent/subagent-in-process-driver/src/index.ts))
@@ -3149,3 +3430,8 @@ Imported as libraries by other packages; a `cordis.yml` cannot load them.
3149
3430
  - `@deepseek-ai/dsh-typert-generator` ([`packages/typert/generator/src/index.ts`](../packages/typert/generator/src/index.ts))
3150
3431
  - `@deepseek-ai/dsh-typert-protocol` ([`packages/typert/protocol/src/index.ts`](../packages/typert/protocol/src/index.ts))
3151
3432
  - `@deepseek-ai/dsh-typert-registry` ([`packages/typert/registry/src/index.ts`](../packages/typert/registry/src/index.ts))
3433
+ - `@deepseek-ai/dsh-util-crypto` ([`packages/util/crypto/src/index.ts`](../packages/util/crypto/src/index.ts))
3434
+ - `@deepseek-ai/dsh-util-time` ([`packages/util/time/src/index.ts`](../packages/util/time/src/index.ts))
3435
+ - `@deepseek-ai/dsh-util-values` ([`packages/util/values/src/index.ts`](../packages/util/values/src/index.ts))
3436
+ - `@deepseek-ai/dsh-util-workspace-path` ([`packages/util/workspace-path/src/index.ts`](../packages/util/workspace-path/src/index.ts))
3437
+ - `@deepseek-ai/dsh-win32-process` ([`packages/subprocess/win32-process/src/index.ts`](../packages/subprocess/win32-process/src/index.ts))