dsh-plugin-guide 0.3.10 → 0.3.16

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 (431) hide show
  1. package/README-es.md +13 -3
  2. package/README-hi.md +13 -3
  3. package/README-pt.md +13 -3
  4. package/README-zh.md +13 -3
  5. package/README.md +12 -3
  6. package/SKILL.md +1 -1
  7. package/guide/links.md +1 -0
  8. package/guide/unfixed-issues.md +111 -0
  9. package/package.json +1 -1
  10. package/references/official-docs/AGENTS.md +74 -49
  11. package/references/official-docs/README.i18n.yaml +2 -2
  12. package/references/official-docs/README.zh.md +12 -0
  13. package/references/official-docs/SNAPSHOT.md +4 -4
  14. package/references/official-docs/THIRD_PARTY_NOTICES.md +86 -30
  15. package/references/official-docs/docs/AGENTS.md +7 -6
  16. package/references/official-docs/docs/agent-lifecycle.i18n.yaml +2 -2
  17. package/references/official-docs/docs/agent-lifecycle.md +12 -5
  18. package/references/official-docs/docs/agent-lifecycle.zh.md +12 -5
  19. package/references/official-docs/docs/api-gateway.i18n.yaml +2 -2
  20. package/references/official-docs/docs/api-gateway.md +2 -2
  21. package/references/official-docs/docs/api-gateway.zh.md +2 -2
  22. package/references/official-docs/docs/architecture.i18n.yaml +2 -2
  23. package/references/official-docs/docs/architecture.md +26 -12
  24. package/references/official-docs/docs/architecture.zh.md +28 -14
  25. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  26. package/references/official-docs/docs/capability-seams.md +111 -31
  27. package/references/official-docs/docs/capability-seams.zh.md +111 -31
  28. package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
  29. package/references/official-docs/docs/config-catalog.md +674 -202
  30. package/references/official-docs/docs/config-catalog.zh.md +691 -219
  31. package/references/official-docs/docs/cookbook/adding-a-session-format-version.i18n.yaml +6 -0
  32. package/references/official-docs/docs/cookbook/adding-a-session-format-version.md +111 -0
  33. package/references/official-docs/docs/cookbook/adding-a-session-format-version.zh.md +111 -0
  34. package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +1 -1
  35. package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +2 -2
  36. package/references/official-docs/docs/cookbook/adding-a-tool.md +2 -2
  37. package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +4 -4
  38. package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +2 -2
  39. package/references/official-docs/docs/cookbook/adding-a-vendored-package.md +1 -1
  40. package/references/official-docs/docs/cookbook/adding-a-vendored-package.zh.md +1 -1
  41. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.zh.md +1 -1
  42. package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +2 -2
  43. package/references/official-docs/docs/cookbook/extension-cookbook.md +3 -3
  44. package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +5 -5
  45. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +2 -2
  46. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.md +1 -1
  47. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
  48. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.i18n.yaml +6 -0
  49. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.md +108 -0
  50. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.zh.md +108 -0
  51. package/references/official-docs/docs/cordis-api/fiber.i18n.yaml +2 -2
  52. package/references/official-docs/docs/cordis-api/fiber.md +3 -3
  53. package/references/official-docs/docs/cordis-api/fiber.zh.md +3 -3
  54. package/references/official-docs/docs/cordis-api/inherited.md +0 -3
  55. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +2 -2
  56. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.md +2 -2
  57. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.zh.md +2 -2
  58. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +2 -2
  59. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +14 -15
  60. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +15 -16
  61. package/references/official-docs/docs/dependency-catalog.json +7312 -0
  62. package/references/official-docs/docs/development.i18n.yaml +2 -2
  63. package/references/official-docs/docs/development.md +13 -3
  64. package/references/official-docs/docs/development.zh.md +16 -6
  65. package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
  66. package/references/official-docs/docs/event-producer-consumer.md +50 -39
  67. package/references/official-docs/docs/event-producer-consumer.zh.md +55 -44
  68. package/references/official-docs/docs/glossary.i18n.yaml +2 -2
  69. package/references/official-docs/docs/glossary.md +1 -1
  70. package/references/official-docs/docs/glossary.zh.md +1 -1
  71. package/references/official-docs/docs/i18n/README.i18n.yaml +2 -2
  72. package/references/official-docs/docs/i18n/README.md +8 -3
  73. package/references/official-docs/docs/i18n/README.zh.md +8 -3
  74. package/references/official-docs/docs/i18n/style-samples.md +1 -1
  75. package/references/official-docs/docs/i18n/translation-prompt.md +5 -5
  76. package/references/official-docs/docs/i18n/translation-rules.zh.md +2 -2
  77. package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
  78. package/references/official-docs/docs/module-graph.md +303 -120
  79. package/references/official-docs/docs/module-graph.zh.md +303 -120
  80. package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
  81. package/references/official-docs/docs/persistence-catalog.md +5699 -64
  82. package/references/official-docs/docs/persistence-catalog.zh.md +5708 -73
  83. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.i18n.yaml +6 -0
  84. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.md +280 -0
  85. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.schema.json +13557 -0
  86. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.zh.md +280 -0
  87. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.i18n.yaml +6 -0
  88. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.md +52 -0
  89. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.schema.json +910 -0
  90. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.zh.md +52 -0
  91. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.i18n.yaml +6 -0
  92. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.md +96 -0
  93. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.schema.json +8478 -0
  94. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.zh.md +96 -0
  95. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.i18n.yaml +6 -0
  96. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.md +48 -0
  97. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.schema.json +72 -0
  98. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.zh.md +48 -0
  99. package/references/official-docs/docs/persistence-changes/README.i18n.yaml +6 -0
  100. package/references/official-docs/docs/persistence-changes/README.md +74 -0
  101. package/references/official-docs/docs/persistence-changes/README.zh.md +74 -0
  102. package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml +6 -0
  103. package/references/official-docs/docs/persistence-changes/historical-formats/README.md +74 -0
  104. package/references/official-docs/docs/persistence-changes/historical-formats/README.zh.md +74 -0
  105. package/references/official-docs/docs/persistence-changes/historical-formats/v0.i18n.yaml +6 -0
  106. package/references/official-docs/docs/persistence-changes/historical-formats/v0.md +5105 -0
  107. package/references/official-docs/docs/persistence-changes/historical-formats/v0.schema.json +49308 -0
  108. package/references/official-docs/docs/persistence-changes/historical-formats/v0.zh.md +5105 -0
  109. package/references/official-docs/docs/persistence-changes/historical-formats/v1.i18n.yaml +6 -0
  110. package/references/official-docs/docs/persistence-changes/historical-formats/v1.md +5107 -0
  111. package/references/official-docs/docs/persistence-changes/historical-formats/v1.schema.json +49411 -0
  112. package/references/official-docs/docs/persistence-changes/historical-formats/v1.zh.md +5107 -0
  113. package/references/official-docs/docs/persistence-changes/historical-formats/v2.i18n.yaml +6 -0
  114. package/references/official-docs/docs/persistence-changes/historical-formats/v2.md +5362 -0
  115. package/references/official-docs/docs/persistence-changes/historical-formats/v2.schema.json +56466 -0
  116. package/references/official-docs/docs/persistence-changes/historical-formats/v2.zh.md +5362 -0
  117. package/references/official-docs/docs/persistence-changes/releases/README.i18n.yaml +6 -0
  118. package/references/official-docs/docs/persistence-changes/releases/README.md +103 -0
  119. package/references/official-docs/docs/persistence-changes/releases/README.zh.md +103 -0
  120. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.i18n.yaml +6 -0
  121. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.md +201 -0
  122. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.schema.json +39868 -0
  123. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.zh.md +201 -0
  124. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.i18n.yaml +6 -0
  125. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.md +261 -0
  126. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.schema.json +43342 -0
  127. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.zh.md +261 -0
  128. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.i18n.yaml +6 -0
  129. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.md +126 -0
  130. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.schema.json +19452 -0
  131. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.zh.md +126 -0
  132. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.i18n.yaml +6 -0
  133. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.md +75 -0
  134. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.schema.json +5 -0
  135. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.zh.md +75 -0
  136. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.i18n.yaml +6 -0
  137. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.md +75 -0
  138. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.schema.json +5 -0
  139. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.zh.md +75 -0
  140. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.i18n.yaml +6 -0
  141. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.md +75 -0
  142. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.schema.json +5 -0
  143. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.zh.md +75 -0
  144. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.i18n.yaml +6 -0
  145. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.md +75 -0
  146. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.schema.json +5 -0
  147. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.zh.md +75 -0
  148. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.i18n.yaml +6 -0
  149. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.md +75 -0
  150. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.schema.json +5 -0
  151. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.zh.md +75 -0
  152. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.i18n.yaml +6 -0
  153. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.md +75 -0
  154. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.schema.json +5 -0
  155. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.zh.md +75 -0
  156. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.i18n.yaml +6 -0
  157. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.md +75 -0
  158. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.schema.json +5 -0
  159. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.zh.md +75 -0
  160. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.i18n.yaml +6 -0
  161. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.md +82 -0
  162. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.schema.json +5320 -0
  163. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.zh.md +82 -0
  164. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.i18n.yaml +6 -0
  165. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.md +110 -0
  166. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.schema.json +21258 -0
  167. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.zh.md +110 -0
  168. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.i18n.yaml +6 -0
  169. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.md +82 -0
  170. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.schema.json +417 -0
  171. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.zh.md +82 -0
  172. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.i18n.yaml +6 -0
  173. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.md +119 -0
  174. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.schema.json +29672 -0
  175. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.zh.md +119 -0
  176. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.i18n.yaml +6 -0
  177. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.md +295 -0
  178. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.schema.json +48429 -0
  179. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.zh.md +295 -0
  180. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.i18n.yaml +6 -0
  181. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.md +286 -0
  182. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.schema.json +49347 -0
  183. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.zh.md +286 -0
  184. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.i18n.yaml +6 -0
  185. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.md +75 -0
  186. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.schema.json +5 -0
  187. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.zh.md +75 -0
  188. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.i18n.yaml +6 -0
  189. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.md +95 -0
  190. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.schema.json +17642 -0
  191. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.zh.md +95 -0
  192. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.i18n.yaml +6 -0
  193. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.md +75 -0
  194. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.schema.json +5 -0
  195. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.zh.md +75 -0
  196. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.i18n.yaml +6 -0
  197. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.md +75 -0
  198. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.schema.json +5 -0
  199. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.zh.md +75 -0
  200. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.i18n.yaml +6 -0
  201. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.md +154 -0
  202. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.schema.json +38678 -0
  203. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.zh.md +154 -0
  204. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.i18n.yaml +6 -0
  205. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.md +86 -0
  206. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.schema.json +783 -0
  207. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.zh.md +86 -0
  208. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.i18n.yaml +6 -0
  209. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.md +139 -0
  210. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.schema.json +24597 -0
  211. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.zh.md +139 -0
  212. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.i18n.yaml +6 -0
  213. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.md +95 -0
  214. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.schema.json +2132 -0
  215. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.zh.md +95 -0
  216. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.i18n.yaml +6 -0
  217. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.md +75 -0
  218. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.schema.json +5 -0
  219. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.zh.md +75 -0
  220. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.i18n.yaml +6 -0
  221. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.md +75 -0
  222. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.schema.json +5 -0
  223. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.zh.md +75 -0
  224. package/references/official-docs/docs/persistence-changes/releases/manifest.json +162 -0
  225. package/references/official-docs/docs/persistence-schema.json +61480 -0
  226. package/references/official-docs/docs/postmortem/README.i18n.yaml +1 -1
  227. package/references/official-docs/docs/postmortem/README.md +1 -1
  228. package/references/official-docs/docs/postmortem/README.zh.md +1 -1
  229. package/references/official-docs/docs/rescope.i18n.yaml +2 -2
  230. package/references/official-docs/docs/rescope.md +2 -2
  231. package/references/official-docs/docs/rescope.zh.md +2 -2
  232. package/references/official-docs/docs/session-format-status.i18n.yaml +6 -0
  233. package/references/official-docs/docs/session-format-status.md +49 -0
  234. package/references/official-docs/docs/session-format-status.zh.md +49 -0
  235. package/references/official-docs/docs/subsystems/README.i18n.yaml +2 -2
  236. package/references/official-docs/docs/subsystems/README.md +12 -3
  237. package/references/official-docs/docs/subsystems/README.zh.md +23 -14
  238. package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +2 -2
  239. package/references/official-docs/docs/subsystems/agent-team.md +1 -1
  240. package/references/official-docs/docs/subsystems/agent-team.zh.md +2 -2
  241. package/references/official-docs/docs/subsystems/approval.i18n.yaml +2 -2
  242. package/references/official-docs/docs/subsystems/approval.md +1 -1
  243. package/references/official-docs/docs/subsystems/approval.zh.md +1 -1
  244. package/references/official-docs/docs/subsystems/attachment.i18n.yaml +2 -2
  245. package/references/official-docs/docs/subsystems/attachment.md +17 -7
  246. package/references/official-docs/docs/subsystems/attachment.zh.md +17 -7
  247. package/references/official-docs/docs/subsystems/{code-runtime.i18n.yaml → boot.i18n.yaml} +3 -3
  248. package/references/official-docs/docs/subsystems/boot.md +223 -0
  249. package/references/official-docs/docs/subsystems/boot.zh.md +223 -0
  250. package/references/official-docs/docs/subsystems/browser-use.i18n.yaml +6 -0
  251. package/references/official-docs/docs/subsystems/browser-use.md +67 -0
  252. package/references/official-docs/docs/subsystems/browser-use.zh.md +67 -0
  253. package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +2 -2
  254. package/references/official-docs/docs/subsystems/client-modules.md +20 -10
  255. package/references/official-docs/docs/subsystems/client-modules.zh.md +21 -11
  256. package/references/official-docs/docs/subsystems/client-resources.i18n.yaml +6 -0
  257. package/references/official-docs/docs/subsystems/client-resources.md +92 -0
  258. package/references/official-docs/docs/subsystems/client-resources.zh.md +92 -0
  259. package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
  260. package/references/official-docs/docs/subsystems/commands.md +4 -0
  261. package/references/official-docs/docs/subsystems/commands.zh.md +5 -1
  262. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
  263. package/references/official-docs/docs/subsystems/compaction.md +48 -2
  264. package/references/official-docs/docs/subsystems/compaction.zh.md +50 -4
  265. package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +6 -0
  266. package/references/official-docs/docs/subsystems/computer-use.md +56 -0
  267. package/references/official-docs/docs/subsystems/computer-use.zh.md +56 -0
  268. package/references/official-docs/docs/subsystems/conversation.zh.md +1 -1
  269. package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
  270. package/references/official-docs/docs/subsystems/core.md +106 -60
  271. package/references/official-docs/docs/subsystems/core.zh.md +109 -63
  272. package/references/official-docs/docs/subsystems/deliverables.i18n.yaml +6 -0
  273. package/references/official-docs/docs/subsystems/deliverables.md +178 -0
  274. package/references/official-docs/docs/subsystems/deliverables.zh.md +178 -0
  275. package/references/official-docs/docs/subsystems/extensions.zh.md +1 -1
  276. package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
  277. package/references/official-docs/docs/subsystems/feedback.md +165 -31
  278. package/references/official-docs/docs/subsystems/feedback.zh.md +165 -31
  279. package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +2 -2
  280. package/references/official-docs/docs/subsystems/filesystem.md +15 -0
  281. package/references/official-docs/docs/subsystems/filesystem.zh.md +16 -1
  282. package/references/official-docs/docs/subsystems/goal.i18n.yaml +2 -2
  283. package/references/official-docs/docs/subsystems/goal.md +37 -1
  284. package/references/official-docs/docs/subsystems/goal.zh.md +38 -2
  285. package/references/official-docs/docs/subsystems/invariants.i18n.yaml +2 -2
  286. package/references/official-docs/docs/subsystems/invariants.md +1 -1
  287. package/references/official-docs/docs/subsystems/invariants.zh.md +3 -3
  288. package/references/official-docs/docs/subsystems/jobs.i18n.yaml +1 -1
  289. package/references/official-docs/docs/subsystems/jobs.md +1 -1
  290. package/references/official-docs/docs/subsystems/jobs.zh.md +1 -1
  291. package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
  292. package/references/official-docs/docs/subsystems/llm-streaming.md +35 -15
  293. package/references/official-docs/docs/subsystems/llm-streaming.zh.md +37 -17
  294. package/references/official-docs/docs/subsystems/lsp.i18n.yaml +2 -2
  295. package/references/official-docs/docs/subsystems/lsp.md +1 -1
  296. package/references/official-docs/docs/subsystems/lsp.zh.md +1 -1
  297. package/references/official-docs/docs/subsystems/mcp.i18n.yaml +6 -0
  298. package/references/official-docs/docs/subsystems/mcp.md +139 -0
  299. package/references/official-docs/docs/subsystems/mcp.zh.md +139 -0
  300. package/references/official-docs/docs/subsystems/office-to-pdf.i18n.yaml +6 -0
  301. package/references/official-docs/docs/subsystems/office-to-pdf.md +87 -0
  302. package/references/official-docs/docs/subsystems/office-to-pdf.zh.md +87 -0
  303. package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +2 -2
  304. package/references/official-docs/docs/subsystems/permission-presets.md +62 -27
  305. package/references/official-docs/docs/subsystems/permission-presets.zh.md +62 -27
  306. package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
  307. package/references/official-docs/docs/subsystems/persistence.md +36 -15
  308. package/references/official-docs/docs/subsystems/persistence.zh.md +36 -15
  309. package/references/official-docs/docs/subsystems/plan.zh.md +2 -2
  310. package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +6 -0
  311. package/references/official-docs/docs/subsystems/ptc-runtime.md +232 -0
  312. package/references/official-docs/docs/subsystems/ptc-runtime.zh.md +232 -0
  313. package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +2 -2
  314. package/references/official-docs/docs/subsystems/sandbox.md +5 -4
  315. package/references/official-docs/docs/subsystems/sandbox.zh.md +7 -6
  316. package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
  317. package/references/official-docs/docs/subsystems/schedule.md +2 -2
  318. package/references/official-docs/docs/subsystems/schedule.zh.md +3 -3
  319. package/references/official-docs/docs/subsystems/scope.i18n.yaml +2 -2
  320. package/references/official-docs/docs/subsystems/scope.md +1 -1
  321. package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
  322. package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +2 -2
  323. package/references/official-docs/docs/subsystems/session-projection.md +1 -1
  324. package/references/official-docs/docs/subsystems/session-projection.zh.md +2 -2
  325. package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +2 -2
  326. package/references/official-docs/docs/subsystems/session-reference.md +11 -6
  327. package/references/official-docs/docs/subsystems/session-reference.zh.md +11 -6
  328. package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +2 -2
  329. package/references/official-docs/docs/subsystems/session-telemetry.md +22 -6
  330. package/references/official-docs/docs/subsystems/session-telemetry.zh.md +23 -7
  331. package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
  332. package/references/official-docs/docs/subsystems/session-title.md +5 -5
  333. package/references/official-docs/docs/subsystems/session-title.zh.md +5 -5
  334. package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
  335. package/references/official-docs/docs/subsystems/session.md +149 -61
  336. package/references/official-docs/docs/subsystems/session.zh.md +150 -62
  337. package/references/official-docs/docs/subsystems/shell.i18n.yaml +2 -2
  338. package/references/official-docs/docs/subsystems/shell.md +19 -15
  339. package/references/official-docs/docs/subsystems/shell.zh.md +20 -16
  340. package/references/official-docs/docs/subsystems/sidebar-right.i18n.yaml +6 -0
  341. package/references/official-docs/docs/subsystems/sidebar-right.md +153 -0
  342. package/references/official-docs/docs/subsystems/sidebar-right.zh.md +153 -0
  343. package/references/official-docs/docs/subsystems/skills.i18n.yaml +2 -2
  344. package/references/official-docs/docs/subsystems/skills.md +4 -6
  345. package/references/official-docs/docs/subsystems/skills.zh.md +4 -6
  346. package/references/official-docs/docs/subsystems/slots.i18n.yaml +2 -2
  347. package/references/official-docs/docs/subsystems/slots.md +52 -38
  348. package/references/official-docs/docs/subsystems/slots.zh.md +53 -39
  349. package/references/official-docs/docs/subsystems/spill.i18n.yaml +2 -2
  350. package/references/official-docs/docs/subsystems/spill.md +13 -6
  351. package/references/official-docs/docs/subsystems/spill.zh.md +13 -6
  352. package/references/official-docs/docs/subsystems/ssh.i18n.yaml +6 -0
  353. package/references/official-docs/docs/subsystems/ssh.md +135 -0
  354. package/references/official-docs/docs/subsystems/ssh.zh.md +135 -0
  355. package/references/official-docs/docs/subsystems/storage.zh.md +2 -2
  356. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  357. package/references/official-docs/docs/subsystems/subagent.md +33 -16
  358. package/references/official-docs/docs/subsystems/subagent.zh.md +32 -15
  359. package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +2 -2
  360. package/references/official-docs/docs/subsystems/subprocess.md +41 -44
  361. package/references/official-docs/docs/subsystems/subprocess.zh.md +41 -44
  362. package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +2 -2
  363. package/references/official-docs/docs/subsystems/system-prompt.md +6 -2
  364. package/references/official-docs/docs/subsystems/system-prompt.zh.md +7 -3
  365. package/references/official-docs/docs/subsystems/todo.zh.md +1 -1
  366. package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
  367. package/references/official-docs/docs/subsystems/token-meter.md +2 -1
  368. package/references/official-docs/docs/subsystems/token-meter.zh.md +2 -1
  369. package/references/official-docs/docs/subsystems/tools.i18n.yaml +2 -2
  370. package/references/official-docs/docs/subsystems/tools.md +28 -12
  371. package/references/official-docs/docs/subsystems/tools.zh.md +28 -12
  372. package/references/official-docs/docs/subsystems/typert.i18n.yaml +2 -2
  373. package/references/official-docs/docs/subsystems/typert.md +6 -5
  374. package/references/official-docs/docs/subsystems/typert.zh.md +6 -5
  375. package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +2 -2
  376. package/references/official-docs/docs/subsystems/user-questions.md +2 -0
  377. package/references/official-docs/docs/subsystems/user-questions.zh.md +2 -0
  378. package/references/official-docs/docs/subsystems/web-client.i18n.yaml +2 -2
  379. package/references/official-docs/docs/subsystems/web-client.md +5 -5
  380. package/references/official-docs/docs/subsystems/web-client.zh.md +6 -6
  381. package/references/official-docs/docs/subsystems/web-server.i18n.yaml +2 -2
  382. package/references/official-docs/docs/subsystems/web-server.md +64 -0
  383. package/references/official-docs/docs/subsystems/web-server.zh.md +65 -1
  384. package/references/official-docs/docs/subsystems/webhook.i18n.yaml +1 -1
  385. package/references/official-docs/docs/subsystems/webhook.md +2 -2
  386. package/references/official-docs/docs/subsystems/workflow.i18n.yaml +2 -2
  387. package/references/official-docs/docs/subsystems/workflow.md +8 -8
  388. package/references/official-docs/docs/subsystems/workflow.zh.md +10 -10
  389. package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
  390. package/references/official-docs/docs/subsystems/workspace.md +199 -1
  391. package/references/official-docs/docs/subsystems/workspace.zh.md +199 -1
  392. package/references/official-docs/docs/testing.i18n.yaml +2 -2
  393. package/references/official-docs/docs/testing.md +5 -4
  394. package/references/official-docs/docs/testing.zh.md +5 -4
  395. package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
  396. package/references/official-docs/docs/tool-catalog.md +452 -187
  397. package/references/official-docs/docs/tool-catalog.zh.md +454 -189
  398. package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +2 -2
  399. package/references/official-docs/docs/tool-execution-pipeline.md +2 -2
  400. package/references/official-docs/docs/tool-execution-pipeline.zh.md +2 -2
  401. package/references/official-docs/docs/user/develop/basic/index.zh.md +1 -1
  402. package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +2 -2
  403. package/references/official-docs/docs/user/develop/basic/publish.md +2 -2
  404. package/references/official-docs/docs/user/develop/basic/publish.zh.md +5 -5
  405. package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +2 -2
  406. package/references/official-docs/docs/user/develop/framework/index.md +1 -1
  407. package/references/official-docs/docs/user/develop/framework/index.zh.md +1 -1
  408. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +2 -2
  409. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.md +8 -8
  410. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.zh.md +8 -8
  411. package/references/official-docs/docs/user/guide/index.zh.md +2 -2
  412. package/references/official-docs/docs/user/guide/mcp-memory.zh.md +1 -1
  413. package/references/official-docs/docs/user/guide/network-proxy.i18n.yaml +2 -2
  414. package/references/official-docs/docs/user/guide/network-proxy.md +1 -1
  415. package/references/official-docs/docs/user/guide/network-proxy.zh.md +1 -1
  416. package/references/official-docs/docs/user/guide/providers.i18n.yaml +2 -2
  417. package/references/official-docs/docs/user/guide/providers.md +12 -8
  418. package/references/official-docs/docs/user/guide/providers.zh.md +14 -10
  419. package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +2 -2
  420. package/references/official-docs/docs/user/guide/python-sdk.md +59 -23
  421. package/references/official-docs/docs/user/guide/python-sdk.zh.md +60 -24
  422. package/references/official-docs/docs/web-styling.i18n.yaml +2 -2
  423. package/references/official-docs/docs/web-styling.md +2 -1
  424. package/references/official-docs/docs/web-styling.zh.md +3 -2
  425. package/references/official-docs/packages/AGENTS.md +1 -1
  426. package/references/official-docs/packages/README.md +12 -7
  427. package/references/official-docs/vendor/README.md +15 -11
  428. package/references/official-docs/website-docs.ts +4 -2
  429. package/scripts/sync-official-docs.ps1 +5 -5
  430. package/references/official-docs/docs/subsystems/code-runtime.md +0 -195
  431. package/references/official-docs/docs/subsystems/code-runtime.zh.md +0 -195
@@ -190,6 +190,8 @@ interface ToolExecutionInput {
190
190
  */
191
191
  readonly rootCallId?: ToolCallId
192
192
  readonly name: string
193
+ /** Binding-time tool schema for a PTC inner call; frozen by its producer and never logged. */
194
+ readonly schema?: ToolSchema
193
195
  /** Losslessly JSON-serializable parsed arguments (tools validate their own schema). */
194
196
  readonly arguments: unknown
195
197
  /** The agent on whose behalf the call runs (set by the agent loop). */
@@ -252,7 +254,7 @@ type ToolExecutionMode =
252
254
  | { kind: 'exclusive' }
253
255
  ```
254
256
 
255
- PTC mode 的桥接层还会把每个已结算的子分派暴露给 `tools/ptc-dispatch-log` waterfall,该 waterfall 可以更改持久事件所存的内容副本(程序取得的值和模型可见结果均不受影响):
257
+ PTC 绑定在构造时冻结 ToolSchema,经由调度器传入 `ToolExecution.schema`;它只是临时执行元数据。每个实际开始的子分派在策略之前只记录配对 id、名称与规范化参数。开始和结算事件都不序列化描述、参数 schema 或 schema 字段。桥接层随后把已结算调用交给 `tools/ptc-dispatch-log` waterfall;它可以改变持久内容副本,但会保留程序取得的值、模型可见的外层结果和结构化失败身份:
256
258
 
257
259
  ```ts type-equiv
258
260
  /**
@@ -262,14 +264,14 @@ PTC mode 的桥接层还会把每个已结算的子分派暴露给 `tools/ptc-di
262
264
  * copy a listener may reshape. `content` is the RENDERED result projection
263
265
  * (what a native `tool/result` would carry) — the program itself received
264
266
  * the structured `value` (or just the error message on failure); only the
265
- * `tool/code-dispatch` event's copy changes.
267
+ * `tool/ptc-dispatch` event's copy changes.
266
268
  */
267
269
  interface PtcDispatchLog {
268
270
  /** The outer `run_code` execution. */
269
271
  readonly exec: ToolExecution
270
272
  /** The calling agent (the scope routing key and the spill owner), when the outer call has one. */
271
273
  readonly agent?: Agent
272
- /** Deterministic sub-call id (`<parent>:code:<n>`). */
274
+ /** Opaque sub-call id; new calls use `<parent>:ptc:<n>`. */
273
275
  readonly subCallId: ToolCallId
274
276
  /** The dispatched sub-tool name. */
275
277
  readonly name: string
@@ -367,7 +369,17 @@ interface ToolExecutionFailure {
367
369
  type ToolExecutionResult = ToolExecutionSuccess | ToolExecutionFailure
368
370
  ```
369
371
 
370
- 结果仅承载产出。调用身份保留在不可变的 `ToolExecution` 上,后者伴随结果经过每个钩子,并出现在持久化的 `tool/call` / `tool/result` 会话事件上,因此包装层无法创建第二个相互矛盾的身份。规范的 `value` 仅存在于执行期间:循环只持久化 `content`、`error` 和 `meta`,`tool/code-dispatch` 则原样存储子调用渲染后的 `content` 与 `isError`。回放可以重现展示,却无法重建规范的中间值。
372
+ ```ts type-equiv
373
+ /** Structured error metadata for a failed tool call (alongside the model-facing text). */
374
+ interface ToolErrorInfo {
375
+ name: string
376
+ code: string
377
+ /** Optional raw user-facing detail; durable projections preserve it but model-facing content does not include it. */
378
+ reason?: string
379
+ }
380
+ ```
381
+
382
+ 结果仅承载产出。调用身份保留在不可变的 `ToolExecution` 上,后者伴随结果经过每个钩子,并出现在持久化的 `tool/call` / `tool/result` 会话事件上,因此包装层无法创建第二个相互矛盾的身份。规范的 `value` 仅存在于执行期间:循环只持久化 `content`、`error` 和 `meta`,`tool/ptc-dispatch` 则存储子调用渲染后的 `content`、`isError` 与可选结构化 `error`。回放可以重现展示,却无法重建规范的中间值。可选的 `ToolErrorInfo.reason` 保留面向用户的原始详情,不将其加入模型可见内容。
371
383
 
372
384
  成功时,注册表会快照并校验函数体返回值,将其冻结,然后调用纯渲染器;对于直接的外层调用,还会调用可选的元数据投影器。注册表会在 `tools/result` 之前另行物化持久展示字段;无效值、渲染器/投影器失败或非 JSON 展示都会转为 JSON 安全的 `isError`。因此,最终实时观察者能看到精确的执行期值,以及可安全用于后续持久追加的字段。
373
385
 
@@ -377,14 +389,17 @@ type ToolExecutionResult = ToolExecutionSuccess | ToolExecutionFailure
377
389
 
378
390
  ```ts type-equiv
379
391
  /**
380
- * Pre-dispatch decision. `allow` runs the call; `deny` materializes an error;
381
- * `ask` runs only after an approval service returns `allowed-once` and otherwise
392
+ * Pre-dispatch decision. `allow` runs the call; `deny` materializes its
393
+ * model-facing reason and optional structured error identity; `cancel` selects
394
+ * the canonical cancellation result without presenting a policy denial; `ask`
395
+ * runs only after an approval service returns `allowed-once` and otherwise
382
396
  * denies. Input rewriting is excluded because arguments are already logged and
383
397
  * presented.
384
398
  */
385
399
  type PreToolDecision =
386
400
  | { kind: 'allow' }
387
- | { kind: 'deny'; reason: string }
401
+ | { kind: 'deny'; reason: string; info?: ToolErrorInfo }
402
+ | { kind: 'cancel' }
388
403
  | { kind: 'ask'; reason?: string }
389
404
  ```
390
405
 
@@ -399,7 +414,7 @@ type PostToolDecision =
399
414
  | { kind: 'block'; feedback: ContentBlock[]; additionalContexts?: UserMessage[] }
400
415
  ```
401
416
 
402
- 调用 `next()` 获取默认决策,或直接返回一个决策以短路。前置策略可以 deny 或 ask;只有 `allowed-once` 才继续执行,而未授权、缺少审批通道或服务、或无 agent 的请求都会变为拒绝。Guard 仍可施加最终拒绝。参数不可被改写,因为历史记录、审计、UI 和执行必须保持一致。
417
+ 调用 `next()` 获取默认决策,或直接返回一个决策以短路。前置策略可以 deny 或 ask;只有 `allowed-once` 才继续执行,而未授权、缺少审批通道或服务、或无 agent 的请求都会变为拒绝。拒绝可以附带结构化身份与用户可见详情,而不改变其模型可见原因。Guard 仍可施加最终拒绝。参数不可被改写,因为历史记录、审计、UI 和执行必须保持一致。
403
418
 
404
419
  后置策略可以替换内容或值,但不能同时替换两者。替换内容会保留规范值和现有元数据;替换值会重新校验并重新计算内容/元数据;阻止会移除值,并转为包含纠正反馈的 `isError`。内容替换是展示策略,而非保密策略;需要隐藏程序化值的监听器必须阻止或替换该值。`tools/result` 在归一化后接收冻结的执行和结果;观察者无法对其进行变换,观察者的失败也会被隔离。未知工具和抛出异常的工具都会变为结构化错误(`ToolNotFoundError` 映射为 `UNKNOWN_TOOL`),调用失败但不终止当前轮次。
405
420
 
@@ -651,11 +666,12 @@ Source: [`packages/core/tools/src/index.ts`](../../packages/core/tools/src/index
651
666
 
652
667
  #### `tools/pre-execute` — waterfall
653
668
 
654
- Allow, deny, or ask before dispatch. `next()` delegates to allow; missing approval support turns `ask` into denial. Async gates must observe `exec.signal`; the registry rechecks cancellation after they settle but never abandons their promise. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that agent's calls.
669
+ Allow, deny, cancel, or ask before dispatch. `next()` delegates to allow; `cancel` selects the canonical pre-dispatch cancellation result, and missing approval support turns `ask` into denial. Async gates must observe `exec.signal`; the registry rechecks cancellation after they settle but never abandons their promise. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that agent's calls.
655
670
 
656
671
  ```ts cordis-catalog
657
672
  /**
658
- * Allow, deny, or ask before dispatch. `next()` delegates to allow; missing
673
+ * Allow, deny, cancel, or ask before dispatch. `next()` delegates to allow;
674
+ * `cancel` selects the canonical pre-dispatch cancellation result, and missing
659
675
  * approval support turns `ask` into denial. Async gates must observe
660
676
  * `exec.signal`; the registry rechecks cancellation after they settle but
661
677
  * never abandons their promise.
@@ -674,13 +690,13 @@ Source: [`packages/core/tools/src/index.ts`](../../packages/core/tools/src/index
674
690
 
675
691
  #### `tools/ptc-dispatch-log` — waterfall
676
692
 
677
- Allow a listener to replace content in the DURABLE LOG COPY of one `run_code` sub-dispatch outcome before the bridge appends its `tool/code-dispatch` event. `next()` keeps the content unchanged; a listener may return replacement blocks (e.g. the spill policy's preview + locator for an oversized text result). Only the logged copy is affected — the program already received the complete value, and the model sees neither. A throwing listener is contained: the bridge falls back to logging the original settled content. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that agent's dispatches.
693
+ Allow a listener to replace content in the DURABLE LOG COPY of one `run_code` sub-dispatch outcome before the bridge appends its `tool/ptc-dispatch` event. `next()` keeps the content unchanged; a listener may return replacement blocks (e.g. the spill policy's preview + locator for an oversized text result). Only the logged copy is affected — the program already received the complete value, and the model sees neither. A throwing listener is contained: the bridge falls back to logging the original settled content. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that agent's dispatches.
678
694
 
679
695
  ```ts cordis-catalog
680
696
  /**
681
697
  * Allow a listener to replace content in the DURABLE LOG COPY of one
682
698
  * `run_code` sub-dispatch outcome before the bridge appends its
683
- * `tool/code-dispatch` event. `next()` keeps the
699
+ * `tool/ptc-dispatch` event. `next()` keeps the
684
700
  * content unchanged; a listener may return replacement blocks (e.g. the
685
701
  * spill policy's preview + locator for an oversized text result). Only the
686
702
  * logged copy is affected — the program already received the complete
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/subsystems/typert.md
5
- typert.md: 0f3d2b1afdc1b7713402abc5885dc9551e16ac14
6
- typert.zh.md: a3c06489707e18433ed9018363c57ec76732e606
5
+ typert.md: 954c3dfb7e66b100132c6d4604c28f06fba04916
6
+ typert.zh.md: dd2becdc43871ddbecdfb45909e076435ab5a447
@@ -38,7 +38,7 @@ interface TypertLookupDefinition {
38
38
 
39
39
  ## Invocation descriptors
40
40
 
41
- An `InvocationDescriptor` is local reflection, not a wire message. Host and consumer builds generate corresponding descriptors; the request sends only the endpoint and named `args`. Strict codecs carry generated schemas, while SRC codecs enforce JSON-safe values without structural type recovery. Cancellation is an out-of-band carrier signal injected after business parameters and never enters `args`.
41
+ An `InvocationDescriptor` is local reflection, not a wire message. Host and consumer builds generate corresponding descriptors; the request sends only the endpoint and named `args`. Strict codecs carry generated schema factories, while SRC codecs enforce JSON-safe values without structural type recovery. Cancellation is an out-of-band carrier signal injected after business parameters and never enters `args`.
42
42
 
43
43
  ```ts type-equiv
44
44
  /** Codec attached to one invocation parameter or result. */
@@ -46,7 +46,8 @@ type TypertCodec =
46
46
  | {
47
47
  readonly mode: 'strict'
48
48
  readonly typeSymbol: string
49
- readonly schema: TypertSchema
49
+ /** Materialize and return the process-realm schema on first boundary use. */
50
+ readonly create: () => TypertSchema
50
51
  }
51
52
  | {
52
53
  readonly mode: 'src-json'
@@ -261,14 +262,14 @@ register(contribution: TypertContribution): TypertDisposer
261
262
  /**
262
263
  * Look up one schema by `<package>#<name>`.
263
264
  * @param key - global schema key.
264
- * @returns the live schema record, or `undefined` when absent.
265
+ * @returns a record containing the cached schema, or `undefined` when absent.
265
266
  */
266
267
  get(key: string): TypertSchemaRecord | undefined
267
268
 
268
269
  /**
269
270
  * Resolve one required schema.
270
271
  * @param key - global schema key.
271
- * @returns the live schema record.
272
+ * @returns a record containing the cached schema.
272
273
  * @throws when the key is malformed, the package face is absent, or the schema is not contributed.
273
274
  */
274
275
  resolve(key: string): TypertSchemaRecord
@@ -276,7 +277,7 @@ resolve(key: string): TypertSchemaRecord
276
277
  /**
277
278
  * Enumerate live schemas in registration order.
278
279
  * @param filter - optional package and face restriction.
279
- * @returns matching schema records.
280
+ * @returns matching records containing the cached schemas.
280
281
  */
281
282
  list(filter: TypertSchemaFilter = {}): TypertSchemaRecord[]
282
283
 
@@ -38,7 +38,7 @@ interface TypertLookupDefinition {
38
38
 
39
39
  ## 调用 descriptor
40
40
 
41
- `InvocationDescriptor` 是本地反射信息,不是 wire message。Host 与消费方构建会生成彼此对应的 descriptor;请求只发送 endpoint 与具名 `args`。strict codec 携带生成的 schema,SRC codec 则在不恢复结构类型的前提下强制要求 JSON 安全值。取消通过带外 carrier signal 表达:它在业务参数之后注入,绝不进入 `args`。
41
+ `InvocationDescriptor` 是本地反射信息,不是 wire message。Host 与消费方构建会生成彼此对应的 descriptor;请求只发送 endpoint 与具名 `args`。strict codec 携带生成的 schema factory,SRC codec 则在不恢复结构类型的前提下强制要求 JSON 安全值。取消通过带外 carrier signal 表达:它在业务参数之后注入,绝不进入 `args`。
42
42
 
43
43
  ```ts type-equiv
44
44
  /** Codec attached to one invocation parameter or result. */
@@ -46,7 +46,8 @@ type TypertCodec =
46
46
  | {
47
47
  readonly mode: 'strict'
48
48
  readonly typeSymbol: string
49
- readonly schema: TypertSchema
49
+ /** Materialize and return the process-realm schema on first boundary use. */
50
+ readonly create: () => TypertSchema
50
51
  }
51
52
  | {
52
53
  readonly mode: 'src-json'
@@ -261,14 +262,14 @@ register(contribution: TypertContribution): TypertDisposer
261
262
  /**
262
263
  * Look up one schema by `<package>#<name>`.
263
264
  * @param key - global schema key.
264
- * @returns the live schema record, or `undefined` when absent.
265
+ * @returns a record containing the cached schema, or `undefined` when absent.
265
266
  */
266
267
  get(key: string): TypertSchemaRecord | undefined
267
268
 
268
269
  /**
269
270
  * Resolve one required schema.
270
271
  * @param key - global schema key.
271
- * @returns the live schema record.
272
+ * @returns a record containing the cached schema.
272
273
  * @throws when the key is malformed, the package face is absent, or the schema is not contributed.
273
274
  */
274
275
  resolve(key: string): TypertSchemaRecord
@@ -276,7 +277,7 @@ resolve(key: string): TypertSchemaRecord
276
277
  /**
277
278
  * Enumerate live schemas in registration order.
278
279
  * @param filter - optional package and face restriction.
279
- * @returns matching schema records.
280
+ * @returns matching records containing the cached schemas.
280
281
  */
281
282
  list(filter: TypertSchemaFilter = {}): TypertSchemaRecord[]
282
283
 
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/subsystems/user-questions.md
5
- user-questions.md: fbbfb1435586c7191e47a6eaa5b1783c9f172d48
6
- user-questions.zh.md: 054ca06cd3c8a85cb35d99658c325848ea780cb5
5
+ user-questions.md: d6515464e562eb5b3d505fd3ff1dcb118c2a7ee3
6
+ user-questions.zh.md: 87536c22ad717ee5c25f4846aee6bd6af6068e8d
@@ -41,6 +41,8 @@ type AskUserQuestionIntent = {
41
41
  * An `approve` naming no option of its own question is rejected at `ask()`.
42
42
  */
43
43
  approve: string
44
+ /** Logged tool invocation whose arguments contain the reviewed plan. */
45
+ callId?: ToolCallId
44
46
  }
45
47
  ```
46
48
 
@@ -41,6 +41,8 @@ type AskUserQuestionIntent = {
41
41
  * An `approve` naming no option of its own question is rejected at `ask()`.
42
42
  */
43
43
  approve: string
44
+ /** Logged tool invocation whose arguments contain the reviewed plan. */
45
+ callId?: ToolCallId
44
46
  }
45
47
  ```
46
48
 
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/subsystems/web-client.md
5
- web-client.md: 7e7f483131585dc66c45dbb147d40e848f40d6d1
6
- web-client.zh.md: 603af505dbd1fc6e2f9fd3bf9542ce19cb63732f
5
+ web-client.md: c1c3c70d68aedc63da0a6e7aebd0b48d56886853
6
+ web-client.zh.md: 42adffe958f9034f4d450d99dffcef85bcee19a2
@@ -11,7 +11,7 @@ The Web Client is a browser-side Cordis application assembled from independently
11
11
  | Host application | business services and `packages/api/*-controller` Host entries | Own authoritative state, persistence, mutation ordering, access policy, and stream production. |
12
12
  | Transport and API assembly | `client/connection`, `api/gateway`, `api/remotes` | Establish a Client generation, expose generated `ctx.remote` methods and streams, forward selected Cordis events, and carry cancellation and results. |
13
13
  | Client models | `api/session-controller/client`, `api/workspace-controller/client` | Maintain React-free mirrors of Host state, resolve stream/unary races, own object identities and subscriptions, and expose narrow command services. |
14
- | UI adapters | `client/ui-session`, `client/ui-workspace` | Convert model observables into root or Session-scoped standard Slot sources without taking ownership of business state. |
14
+ | UI adapters | `client/ui-session`, `client/ui-workspace` | Convert model observables into root or Provider-bound Session Slot sources and own view-level navigation and status policy. |
15
15
  | Conversation data | `client/ui-conversation`, target packages such as `ui-chat` and `ui-trajectory` | Assemble standard events and compact historical Assistant runs into independent target snapshots and own the shared conversation shell and input flow. |
16
16
  | Composition and rendering | `client/ui-slots`, `client/ui-renderer`, `client/ui-layout`, feature UI packages | Declare extension locations, derive component props, bind observables to React hooks, and mount the final tree. |
17
17
 
@@ -37,9 +37,9 @@ Each API controller package owns a paired Host and Client face. The Host side ow
37
37
 
38
38
  ### Sessions
39
39
 
40
- [`api/session-controller`](../../packages/api/session-controller/README.md) exposes Host commands for list, search, creation, selection data, prompt, queue, cancellation, pagination, and follow/control streams. Its Client side is organized as `ClientSessions → SessionManager → Session`:
40
+ [`api/session-controller`](../../packages/api/session-controller/README.md) exposes Host commands for list, search, creation, prompt, queue, cancellation, pagination, and follow/control streams. Its Client side is organized as `ClientSessions → SessionManager → Session`:
41
41
 
42
- - `ClientSessions` provides `ctx.sessions`, owns Session scopes and stable `SessionBinding` objects, and projects the selected list state.
42
+ - `ClientSessions` provides `ctx.sessions`, owns references, source counts, Session scopes, and stable `SessionBinding` objects, and projects catalog state without selecting a global current Session.
43
43
  - `SessionManager` owns the list baseline, live list/control updates, lazy Session instances, queues, projection stores, subagent catalogs, and conflict ordering between pulls and later updates.
44
44
  - Each `Session` owns one contiguous logical-event window represented by `SessionEventLikeEntry` values, paging, follow, prompt/control state, and the observable snapshot consumed by adapters.
45
45
 
@@ -47,13 +47,13 @@ The durable event path opens `follow()`, whose first frame contains the current
47
47
 
48
48
  ### Workspaces
49
49
 
50
- [`api/workspace-controller`](../../packages/api/workspace-controller/README.md) keeps Workspace mutation policy and the authoritative follow feed on the Host. `ClientWorkspaceModel` owns the browser rows, order, archived Session ids, command echoes, and stream/unary race resolution. Every stream generation starts with a complete baseline followed by `upsert`, `remove`, `order`, and `archived` increments; reconnect replaces the model from the new baseline. `WorkspaceController` exposes that model as `ctx.workspaces`, while `ui-workspace` contributes `useWorkspaces` and navigation callbacks to the UI.
50
+ [`api/workspace-controller`](../../packages/api/workspace-controller/README.md) keeps Workspace mutation policy and the authoritative follow feed on the Host. `ClientWorkspaceModel` owns the browser rows, order, archived Session ids, command echoes, and stream/unary race resolution. Every stream generation starts with a complete baseline followed by `upsert`, `remove`, `order`, and `archived` increments; reconnect replaces the model from the new baseline. `WorkspaceController` exposes that model as `ctx.workspaces`, while `ui-workspace` contributes `useWorkspaces` and navigation callbacks to the UI. The archived Session ids filter every grouping surface and feed the archived-sessions Settings page, which joins the set with the loaded Session summaries and offers one Unarchive action per row; a restore calls the `workspace.unarchiveSession` Remote, and the complete returned set reaches every Client through the `archived` increment.
51
51
 
52
52
  This pairing is not a second source of business truth. Host controllers decide durable state and mutation outcomes; Client models maintain the latest usable local projection, preserve object identity where useful to rendering, and encode how delayed responses and replacement baselines merge.
53
53
 
54
54
  ## Conversation and presentation
55
55
 
56
- `ui-session` installs the `session` scope adapter and publishes `useSessions`, `useSession`, `sessionId`, and `useProjection`. Domain adapters add further standard sources without putting React hooks on the model objects.
56
+ `ui-session` installs the Session scope adapter and publishes `useSessions`, `useSessionStatus`, `useSessionRetainInfo`, `useSession`, `sessionId`, and `useProjection`. `SessionProvider` inherits an outer binding or binds an explicit `SessionReference`, so concurrent subtrees can target different Sessions. Domain adapters add further standard sources without putting React hooks on the model objects.
57
57
 
58
58
  `ui-conversation` binds once to each `SessionBinding.eventSource`. Its event registry correlates durable Session events and Client-only `assistant/live-chunk` updates into stable business Contexts, and its view registry materializes target snapshots. Chat Assistant, Trajectory Assistant, and Turn Tail interpret both live chunks and the compact streams embedded in durable settlements, so reconnect and paged history reproduce the same Assistant state without durable token rows. `ui-chat` and `ui-trajectory` register separate Definitions and builders: they may interpret the same event family, but they do not import or share each other's final display model. The shell selects a registered view and passes its snapshot through standard hooks and Slots. [Conversation](conversation.md) defines Context identity, replay, Location data, target builders, and keyed renderers.
59
59
 
@@ -11,7 +11,7 @@ Web Client 是由独立加载插件组装而成的浏览器侧 Cordis 应用。
11
11
  | Host 应用 | 业务 service 与 `packages/api/*-controller` Host entry | 拥有权威状态、持久化、mutation 顺序、访问策略与 stream 生产。 |
12
12
  | 传输与 API assembly | `client/connection`、`api/gateway`、`api/remotes` | 建立 Client generation,公开生成的 `ctx.remote` method 与 stream,转发选定的 Cordis event,并承载取消和结果。 |
13
13
  | Client model | `api/session-controller/client`、`api/workspace-controller/client` | 维护不依赖 React 的 Host 状态镜像,处理 stream/unary 竞态,拥有对象 identity 与订阅,并公开收窄的 command service。 |
14
- | UI adapter | `client/ui-session`、`client/ui-workspace` | 把 model observable 转换为 root 或 Session scope 的标准 Slot source,不接管业务状态所有权。 |
14
+ | UI adapter | `client/ui-session`、`client/ui-workspace` | 把 model observable 转换为 root 或 Provider 绑定的 Session Slot source,并拥有视图级导航与状态策略。 |
15
15
  | Conversation 数据 | `client/ui-conversation`、`ui-chat` 与 `ui-trajectory` 等 target package | 把标准 event 与紧凑的 Assistant 历史批次组装成相互独立的 target snapshot,并拥有共享的 Conversation shell 与输入流程。 |
16
16
  | 组合与渲染 | `client/ui-slots`、`client/ui-renderer`、`client/ui-layout`、各 UI 功能包 | 声明扩展位置、推导组件 props、把 observable 绑定成 React hook,并挂载最终组件树。 |
17
17
 
@@ -27,7 +27,7 @@ Web boot kernel 创建模块系统、预取 `immediately` entry、挂载 vendore
27
27
 
28
28
  Host 业务 service 使用 Typert Remote decorator 标记可调用 method。Host generation 产出严格 descriptor、runtime codec、declaration merge 与 source map。Client 侧 `api-remotes` assembly 选择这些生成贡献,并把具体 method 挂到 `ctx.remote.<namespace>` 与 Session scope 的 `agentCtx.remote.<namespace>`。功能包依赖生成的 service face,而不依赖 Gateway 实现或 Host 包的运行时 entry。
29
29
 
30
- Connection 拥有 request correlation、`/api` carrier、trust check、精确 Fetch 路由与 connection generation。API Gateway 拥有 Remote dispatch、取消、logical stream 与选定 Host event 的转发。Controller 操作应进入生成的 Remote method 或显式 Remote stream;功能自有的下载则注册精确 Fetch 路由。[API Gateway 参考](../api-gateway.zh.md)定义 generation 与调用,[Connection README](../../packages/client/connection/README-zh.md)定义物理 carrier 与信任策略。
30
+ Connection 拥有 request correlation、`/api` carrier、trust check、精确 Fetch 路由与 connection generation。API Gateway 拥有 Remote dispatch、取消、logical stream 与选定 Host event 的转发。Controller 操作应进入生成的 Remote method 或显式 Remote stream;功能自有的下载则注册精确 Fetch 路由。[API Gateway 参考](../api-gateway.zh.md)定义 generation 与调用,[Connection README](../../packages/client/connection/README.zh.md)定义物理 carrier 与信任策略。
31
31
 
32
32
  内部 `$events` logical stream 是 Connection generation source。它的 opening `ready` frame 携带用于路径显示的 Host home,并在 Host listener 已挂载、任何 controller 开始 baseline read 之前建立 generation。`ctx.remote.$on()` 把 allowlist 内的普通 event 交付给 root Client Context,并把 scoped waterfall event 交付给已解析的 Session Context;waterfall listener 可以返回结果、调用 `next()` 或拒绝。
33
33
 
@@ -37,9 +37,9 @@ Connection 拥有 request correlation、`/api` carrier、trust check、精确 Fe
37
37
 
38
38
  ### Sessions
39
39
 
40
- [`api/session-controller`](../../packages/api/session-controller/README-zh.md)公开 Session list、search、creation、selection data、prompt、queue、cancellation、pagination 及 follow/control stream 等 Host command。其 Client 侧按 `ClientSessions → SessionManager → Session` 组织:
40
+ [`api/session-controller`](../../packages/api/session-controller/README.zh.md)公开 Session list、search、creation、prompt、queue、cancellation、pagination 及 follow/control stream 等 Host command。其 Client 侧按 `ClientSessions → SessionManager → Session` 组织:
41
41
 
42
- - `ClientSessions` 提供 `ctx.sessions`,拥有 Session scope 与稳定的 `SessionBinding` object,并投影选中的 list state。
42
+ - `ClientSessions` 提供 `ctx.sessions`,拥有 reference、source count、Session scope 与稳定的 `SessionBinding` object,并投影不含全局 current Session 选择的 catalog state。
43
43
  - `SessionManager` 拥有 list baseline、实时 list/control update、惰性 Session instance、queue、projection store、subagent catalog,以及 pull 与后到 update 之间的冲突顺序。
44
44
  - 每个 `Session` 拥有一段由 `SessionEventLikeEntry` value 表示的连续逻辑 event window、pagination、follow、prompt/control state 与供 adapter 消费的 observable snapshot。
45
45
 
@@ -47,13 +47,13 @@ Connection 拥有 request correlation、`/api` carrier、trust check、精确 Fe
47
47
 
48
48
  ### Workspaces
49
49
 
50
- [`api/workspace-controller`](../../packages/api/workspace-controller/README-zh.md)把 Workspace mutation policy 与权威 follow feed 留在 Host。`ClientWorkspaceModel` 拥有浏览器侧 row、order、archived Session id、command echo,以及 stream/unary 竞态合并。每代 stream 先给出完整 baseline,再给出 `upsert`、`remove`、`order` 和 `archived` increment;重连时以新 baseline 替换 model。`WorkspaceController` 把该 model 作为 `ctx.workspaces` 公开,而 `ui-workspace` 向 UI 提供 `useWorkspaces` 与 navigation callback。
50
+ [`api/workspace-controller`](../../packages/api/workspace-controller/README.zh.md)把 Workspace mutation policy 与权威 follow feed 留在 Host。`ClientWorkspaceModel` 拥有浏览器侧 row、order、archived Session id、command echo,以及 stream/unary 竞态合并。每代 stream 先给出完整 baseline,再给出 `upsert`、`remove`、`order` 和 `archived` increment;重连时以新 baseline 替换 model。`WorkspaceController` 把该 model 作为 `ctx.workspaces` 公开,而 `ui-workspace` 向 UI 提供 `useWorkspaces` 与 navigation callback。archived Session id 过滤每一个分组视图,并驱动「已归档会话」设置页;该页把该集合与已加载的 Session summary 合并,为每行提供一个取消归档操作。恢复会调用 `workspace.unarchiveSession` Remote,返回的完整集合则经 `archived` increment 到达每个 Client。
51
51
 
52
52
  这种配对不会产生第二份业务真相。Host controller 决定持久状态与 mutation outcome;Client model 维护最新可用的本地 projection,在有利于渲染时保持 object identity,并明确 delayed response 与 replacement baseline 的合并规则。
53
53
 
54
54
  ## Conversation 与 presentation
55
55
 
56
- `ui-session` 安装 `session` scope adapter,并提供 `useSessions`、`useSession`、`sessionId` 和 `useProjection`。领域 adapter 可以继续添加标准 source,但不会把 React hook 放进 model object。
56
+ `ui-session` 安装 Session scope adapter,并提供 `useSessions`、`useSessionStatus`、`useSessionRetainInfo`、`useSession`、`sessionId` 和 `useProjection`。`SessionProvider` 可以继承外围 binding,也可以绑定显式 `SessionReference`,因此并存子树可以指向不同 Session。领域 adapter 可以继续添加标准 source,但不会把 React hook 放进 model object。
57
57
 
58
58
  `ui-conversation` 对每个 `SessionBinding.eventSource` 只绑定一次。它的 event registry 把持久 Session event 与 Client-only `assistant/live-chunk` update 关联成稳定的业务 Context,view registry 则 materialize target snapshot。Chat Assistant、Trajectory Assistant 与 Turn Tail 同时解释 live chunk 和持久 settlement 中嵌入的紧凑 stream,因此重连与分页历史无需持久 token 行即可复现相同 Assistant 状态。`ui-chat` 与 `ui-trajectory` 分别注册自己的 Definition 和 builder:它们可以解释同一 event family,但不会导入或共享彼此的最终 display model。Shell 选择一个已注册 view,再通过标准 hook 与 Slot 交付其 snapshot。[Conversation](conversation.zh.md)定义 Context identity、replay、Location data、target builder 与 keyed renderer。
59
59
 
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/subsystems/web-server.md
5
- web-server.md: d9b1ec007bc73274bb0c8b5d58745da1c76e6cb6
6
- web-server.zh.md: 66375534a89e2c4674e748d4178cb7a31761e57e
5
+ web-server.md: 619dc8ed74ea8835aaa16b90b6e0aced5da41f3a
6
+ web-server.zh.md: c6f77099f3f8b00b07eaeefa1b1db1cb6f388546
@@ -60,6 +60,46 @@ A request whose handling throws (a malformed %-escape hitting `decodeURIComponen
60
60
 
61
61
  Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
62
62
 
63
+ <a id="ctxconnection--hostconnectionhandle"></a>
64
+
65
+ ### `ctx.connection` — `HostConnectionHandle`
66
+
67
+ Host `ctx.connection` shape consumed by transport-independent adapters.
68
+
69
+ ```ts cordis-catalog
70
+ /**
71
+ * Compose exact Fetch routes and the shared-channel RPC interceptor.
72
+ * @param channel - shared channel mounted by Connection.
73
+ * @returns Fetch handler for trusted, authenticated requests.
74
+ */
75
+ createSharedFetchHandler(channel: '/api'): ConnectionFetchHandler
76
+
77
+ /**
78
+ * Apply Connection's Host/Origin checks and browser authentication to
79
+ * another Web route.
80
+ * @param request - request headers from the HTTP or upgrade request.
81
+ * @returns rejection status, or undefined when the route may accept the request.
82
+ */
83
+ requestRejection(request: ConnectionTrustRequest): ConnectionRequestRejection
84
+
85
+ /**
86
+ * Authenticate one frontend index request, owning a token redirect or 401.
87
+ * @param request - root or configured-index HTTP request.
88
+ * @param response - response owned when the result is false.
89
+ * @returns true only when the frontend may serve index.html.
90
+ */
91
+ authorizeIndex(request: ConnectionIndexRequest, response: ConnectionIndexResponse): boolean
92
+
93
+ /**
94
+ * Add the fresh process token to an ordinary Web application URL.
95
+ * @param baseUrl - clean canonical browser origin.
96
+ * @returns root URL accepted by {@link authorizeIndex} for initial login.
97
+ */
98
+ authenticatedUrl(baseUrl: string): string
99
+ ```
100
+
101
+ Source: [`packages/client/connection/src/rpc.ts`](../../packages/client/connection/src/rpc.ts)
102
+
63
103
  <a id="ctxwebserver--webserver"></a>
64
104
 
65
105
  ### `ctx.webServer` — `WebServer`
@@ -129,6 +169,30 @@ renderIndex(html: string): string
129
169
 
130
170
  Source: [`packages/host/webserver/src/index.ts`](../../packages/host/webserver/src/index.ts)
131
171
 
172
+ <a id="connection-events"></a>
173
+
174
+ ### `connection/*` events
175
+
176
+ <a id="connectionrequest--waterfall"></a>
177
+
178
+ #### `connection/request` — waterfall
179
+
180
+ Admit or wrap an authenticated shared API request, including body transfer. Existing requests continue when a listener refuses subsequent requests.
181
+
182
+ ```ts cordis-catalog
183
+ /**
184
+ * Admit or wrap an authenticated shared API request, including body transfer.
185
+ * Existing requests continue when a listener refuses subsequent requests.
186
+ * @param request - Authenticated incoming HTTP request.
187
+ * @param response - Response owned until the delegated bridge settles.
188
+ * @param next - Delegate to the next listener or the shared API bridge.
189
+ * @mode waterfall
190
+ */
191
+ 'connection/request'(request: IncomingMessage, response: ServerResponse, next: () => Promise<void>): Promise<void>
192
+ ```
193
+
194
+ Source: [`packages/client/connection/src/index.ts`](../../packages/client/connection/src/index.ts)
195
+
132
196
  <a id="webserver-events"></a>
133
197
 
134
198
  ### `webserver/*` events
@@ -50,7 +50,7 @@ interface Config {
50
50
 
51
51
  `WebServer`(`ctx.webServer`)在激活时立即监听;监听失败(EADDRINUSE 等)会使初始化被拒绝,启动进程会报告失败的 fiber。`register(route)` 添加一条具名路由并返回其 disposer;重复的 `(kind, path)` 抛出异常,因为路由模式是组合层约定,冲突即配置错误。Gzip 在服务器内部包装符合条件且基于 socket 的响应,因此 route handler 继续直接持有 `ServerResponse`,服务也不新增响应写出 API。已有内容编码、`Cache-Control: no-transform`、范围响应、SSE、ZIP 与打包后的 `.gz` Worker 镜像均保持 identity 响应。`collectIndexInjections()` 经一次 `webserver/index-inject` emit 收集结构化 `IndexInjection` 行,`renderIndex(html)` 把它们渲染进成功的根路径和配置 index 响应,随后再按注册顺序应用原始的 `tapIndex(transform)` 逃生口转换;[dsh-client-modules](../../packages/client/modules) 以启动 manifest(元数据清单)行回应该事件。`port` 读取监听端口,包括 `config.port` 为 0 时操作系统分配的端口。
52
52
 
53
- 处理过程中抛出异常的请求(畸形的 % 转义撞上 `decodeURIComponent`、客户端在请求体中途断开)会记录为警告并应答 400(响应头已发出时则销毁 socket),绝不导致进程退出。dispose(资源释放)把 `close()` 与 `closeAllConnections()` 配对使用,因为处理器可能像 SSE(Server-Sent Events)那样保持响应打开,而这类连接永远不会自行结束;没有强制关闭,拆卸就会挂起。该包从不打印输出:URL 行归 shell 所有。逐包运维细节(含开发模式的 bundle 监视流水线)留在 [README](../../packages/host/webserver/README-zh.md) 中。
53
+ 处理过程中抛出异常的请求(畸形的 % 转义撞上 `decodeURIComponent`、客户端在请求体中途断开)会记录为警告并应答 400(响应头已发出时则销毁 socket),绝不导致进程退出。dispose(资源释放)把 `close()` 与 `closeAllConnections()` 配对使用,因为处理器可能像 SSE(Server-Sent Events)那样保持响应打开,而这类连接永远不会自行结束;没有强制关闭,拆卸就会挂起。该包从不打印输出:URL 行归 shell 所有。逐包运维细节(含开发模式的 bundle 监视流水线)留在 [README](../../packages/host/webserver/README.zh.md) 中。
54
54
 
55
55
  <!-- BEGIN GENERATED cordis-surface (gen-cordis-catalog.ts) — do not edit between markers -->
56
56
 
@@ -60,6 +60,46 @@ interface Config {
60
60
 
61
61
  Generated from source by `scripts/gen-cordis-catalog.ts` (verified fresh by `pnpm run verify-cordis-catalog` in doc-sync; regenerate with `pnpm run gen-cordis-catalog`) — the language sides differ only in locale-specific paired document paths. Signature blocks use a `ts cordis-catalog` fence and keep the original source JSDoc; dispatch modes are defined in the [primer](../cordis-primer.zh.md#dispatch-modes), and the framework-inherited `ctx` API lives in [cordis-api/inherited.md](../cordis-api/inherited.md).
62
62
 
63
+ <a id="ctxconnection--hostconnectionhandle"></a>
64
+
65
+ ### `ctx.connection` — `HostConnectionHandle`
66
+
67
+ Host `ctx.connection` shape consumed by transport-independent adapters.
68
+
69
+ ```ts cordis-catalog
70
+ /**
71
+ * Compose exact Fetch routes and the shared-channel RPC interceptor.
72
+ * @param channel - shared channel mounted by Connection.
73
+ * @returns Fetch handler for trusted, authenticated requests.
74
+ */
75
+ createSharedFetchHandler(channel: '/api'): ConnectionFetchHandler
76
+
77
+ /**
78
+ * Apply Connection's Host/Origin checks and browser authentication to
79
+ * another Web route.
80
+ * @param request - request headers from the HTTP or upgrade request.
81
+ * @returns rejection status, or undefined when the route may accept the request.
82
+ */
83
+ requestRejection(request: ConnectionTrustRequest): ConnectionRequestRejection
84
+
85
+ /**
86
+ * Authenticate one frontend index request, owning a token redirect or 401.
87
+ * @param request - root or configured-index HTTP request.
88
+ * @param response - response owned when the result is false.
89
+ * @returns true only when the frontend may serve index.html.
90
+ */
91
+ authorizeIndex(request: ConnectionIndexRequest, response: ConnectionIndexResponse): boolean
92
+
93
+ /**
94
+ * Add the fresh process token to an ordinary Web application URL.
95
+ * @param baseUrl - clean canonical browser origin.
96
+ * @returns root URL accepted by {@link authorizeIndex} for initial login.
97
+ */
98
+ authenticatedUrl(baseUrl: string): string
99
+ ```
100
+
101
+ Source: [`packages/client/connection/src/rpc.ts`](../../packages/client/connection/src/rpc.ts)
102
+
63
103
  <a id="ctxwebserver--webserver"></a>
64
104
 
65
105
  ### `ctx.webServer` — `WebServer`
@@ -129,6 +169,30 @@ renderIndex(html: string): string
129
169
 
130
170
  Source: [`packages/host/webserver/src/index.ts`](../../packages/host/webserver/src/index.ts)
131
171
 
172
+ <a id="connection-events"></a>
173
+
174
+ ### `connection/*` events
175
+
176
+ <a id="connectionrequest--waterfall"></a>
177
+
178
+ #### `connection/request` — waterfall
179
+
180
+ Admit or wrap an authenticated shared API request, including body transfer. Existing requests continue when a listener refuses subsequent requests.
181
+
182
+ ```ts cordis-catalog
183
+ /**
184
+ * Admit or wrap an authenticated shared API request, including body transfer.
185
+ * Existing requests continue when a listener refuses subsequent requests.
186
+ * @param request - Authenticated incoming HTTP request.
187
+ * @param response - Response owned until the delegated bridge settles.
188
+ * @param next - Delegate to the next listener or the shared API bridge.
189
+ * @mode waterfall
190
+ */
191
+ 'connection/request'(request: IncomingMessage, response: ServerResponse, next: () => Promise<void>): Promise<void>
192
+ ```
193
+
194
+ Source: [`packages/client/connection/src/index.ts`](../../packages/client/connection/src/index.ts)
195
+
132
196
  <a id="webserver-events"></a>
133
197
 
134
198
  ### `webserver/*` events
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/subsystems/webhook.md
5
- webhook.md: 5f04c99141c5630add46db3b55c3af78e2df2bdf
5
+ webhook.md: 5ca2b722e1e0201aa5fb618cdaae6e0dfb5783dd
6
6
  webhook.zh.md: 2eadf03aa5f32ae6f384e6b32a95e67bc0fdab7e
@@ -6,7 +6,7 @@ The Webhook subsystem turns authenticated external deliveries into optional ordi
6
6
 
7
7
  ## Shared values
8
8
 
9
- `WebhookRuleId`, `WebhookSourceId`, and `WebhookDeliveryId` are opaque strings. A delivery id is provenance only: the runtime neither stores nor deduplicates it.
9
+ `WebhookRuleId`, `WebhookSourceId`, and `WebhookDeliveryId` are opaque strings. A delivery id records the provider's identifier only: the runtime neither stores nor deduplicates it.
10
10
 
11
11
  `WebhookEventMap` is merge-extensible by provider kind. `WebhookEventOf<K>` selects a known provider event and otherwise admits generic lossless JSON, allowing an out-of-tree adapter without changing the runtime package.
12
12
 
@@ -26,7 +26,7 @@ The runtime has no queue, retry, deduplication, execution status, crash replay,
26
26
 
27
27
  A non-null result is snapshotted before asynchronous preflight. The runtime validates permission and agent presets, resolves or creates the canonical Workspace, creates an Agent whose Session cwd equals the Workspace path, mounts the selected agent preset before publication, and durably attaches the Session before applying permission, title, and the initial follow-up.
28
28
 
29
- The follow-up is a normal durable user-role message with `source.kind: "webhook"` and provider/source/delivery/rule provenance. Its accepted inbox insertion commits the webhook operation. The runtime does not specially flush or wait for the turn; ordinary Session persistence and Agent lifecycle apply afterward.
29
+ The follow-up is a normal durable user-role message with `source.kind: "webhook"` and the provider, source, delivery, and rule identifiers. Its accepted inbox insertion commits the webhook operation. The runtime does not specially flush or wait for the turn; ordinary Session persistence and Agent lifecycle apply afterward.
30
30
 
31
31
  Failed attachment disposes the new Agent before a prompt exists. A failure between attachment and prompt admission attempts Workspace detach and Agent disposal without replacing the original error. A Workspace automatically created during preflight remains because another concurrent caller may already use it.
32
32
 
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/subsystems/workflow.md
5
- workflow.md: b608efab2300b20b06a3aa09041c3419fbc2145b
6
- workflow.zh.md: 47186df724b10138f277302384b3e96a0667be46
5
+ workflow.md: 8f56774699eebd5f0a287aee3fcd08eef82ec045
6
+ workflow.zh.md: dd24f920f6e04ba9c8721235919962ce15f84a82