dsh-plugin-guide 0.3.35 → 0.3.36

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 (886) hide show
  1. package/LICENSE +0 -0
  2. package/NOTICE.md +0 -0
  3. package/README-es.md +114 -50
  4. package/README-hi.md +115 -51
  5. package/README-pt.md +114 -50
  6. package/README-zh.md +115 -51
  7. package/README.md +114 -50
  8. package/SKILL.md +0 -0
  9. package/bin/dsh-plugin-dev.js +0 -0
  10. package/cordis.patch.yml +0 -0
  11. package/data/facts.json +0 -0
  12. package/data/seams/index.json +0 -0
  13. package/dist/dsh-plugin-dev.js +0 -0
  14. package/guide/choosing-a-plugin.md +0 -0
  15. package/guide/choosing-a-plugin.zh-CN.md +0 -0
  16. package/guide/family-toolchain.md +0 -0
  17. package/guide/links.md +0 -0
  18. package/guide/migration-0.2.md +0 -0
  19. package/guide/plugin-dev-guide.md +0 -0
  20. package/guide/quick-reference.es.md +0 -0
  21. package/guide/quick-reference.hi.md +0 -0
  22. package/guide/quick-reference.md +0 -0
  23. package/guide/quick-reference.pt.md +0 -0
  24. package/guide/quick-reference.zh-CN.md +0 -0
  25. package/guide/release-engineering.md +0 -0
  26. package/guide/release-engineering.zh-CN.md +0 -0
  27. package/guide/unfixed-issues.md +0 -0
  28. package/guide/version-matrix.md +0 -0
  29. package/guide/when-to-retire-a-plugin.md +0 -0
  30. package/guide/when-to-retire-a-plugin.zh-CN.md +0 -0
  31. package/icon.svg +5 -5
  32. package/index.d.ts +0 -0
  33. package/index.js +0 -0
  34. package/locale/en.json +6 -6
  35. package/locale/zh.json +6 -6
  36. package/package.json +1 -1
  37. package/references/cli-positioning-decision.md +0 -0
  38. package/references/community-ecosystem.md +0 -0
  39. package/references/community-repo-deep-dive.md +0 -0
  40. package/references/cordis-paper-and-community.md +0 -0
  41. package/references/dev-resource-landscape.md +0 -0
  42. package/references/harness-repo.md +0 -0
  43. package/references/mirror-scope-decision.md +0 -0
  44. package/references/official-docs/AGENTS.md +8 -4
  45. package/references/official-docs/BENCHMARK.md +0 -0
  46. package/references/official-docs/CLAUDE.md +1 -1
  47. package/references/official-docs/CONTRIBUTING.i18n.yaml +0 -0
  48. package/references/official-docs/CONTRIBUTING.md +0 -0
  49. package/references/official-docs/CONTRIBUTING.zh.md +0 -0
  50. package/references/official-docs/LICENSE +0 -0
  51. package/references/official-docs/README.i18n.yaml +0 -0
  52. package/references/official-docs/README.md +0 -0
  53. package/references/official-docs/README.zh.md +0 -0
  54. package/references/official-docs/SNAPSHOT.md +8 -10
  55. package/references/official-docs/THIRD_PARTY_NOTICES.md +9 -3
  56. package/references/official-docs/docs/AGENTS.md +3 -2
  57. package/references/official-docs/docs/agent-lifecycle.i18n.yaml +0 -0
  58. package/references/official-docs/docs/agent-lifecycle.md +0 -0
  59. package/references/official-docs/docs/agent-lifecycle.zh.md +0 -0
  60. package/references/official-docs/docs/api-gateway.i18n.yaml +15 -12
  61. package/references/official-docs/docs/api-gateway.md +10 -3
  62. package/references/official-docs/docs/api-gateway.zh.md +16 -3
  63. package/references/official-docs/docs/architecture.i18n.yaml +0 -0
  64. package/references/official-docs/docs/architecture.md +0 -0
  65. package/references/official-docs/docs/architecture.zh.md +0 -0
  66. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  67. package/references/official-docs/docs/capability-seams.md +23 -1
  68. package/references/official-docs/docs/capability-seams.zh.md +23 -1
  69. package/references/official-docs/docs/cli-help.i18n.yaml +0 -0
  70. package/references/official-docs/docs/cli-help.md +4 -4
  71. package/references/official-docs/docs/cli-help.zh.md +4 -4
  72. package/references/official-docs/docs/config-catalog.i18n.yaml +0 -0
  73. package/references/official-docs/docs/config-catalog.md +154 -53
  74. package/references/official-docs/docs/config-catalog.zh.md +154 -53
  75. package/references/official-docs/docs/cookbook/adding-a-package.i18n.yaml +0 -0
  76. package/references/official-docs/docs/cookbook/adding-a-package.md +0 -0
  77. package/references/official-docs/docs/cookbook/adding-a-package.zh.md +0 -0
  78. package/references/official-docs/docs/cookbook/adding-a-plugin-preview.i18n.yaml +22 -0
  79. package/references/official-docs/docs/cookbook/adding-a-plugin-preview.md +52 -0
  80. package/references/official-docs/docs/cookbook/adding-a-plugin-preview.zh.md +52 -0
  81. package/references/official-docs/docs/cookbook/adding-a-remote-api.i18n.yaml +0 -0
  82. package/references/official-docs/docs/cookbook/adding-a-remote-api.md +0 -0
  83. package/references/official-docs/docs/cookbook/adding-a-remote-api.zh.md +0 -0
  84. package/references/official-docs/docs/cookbook/adding-a-session-format-version.i18n.yaml +0 -0
  85. package/references/official-docs/docs/cookbook/adding-a-session-format-version.md +0 -0
  86. package/references/official-docs/docs/cookbook/adding-a-session-format-version.zh.md +0 -0
  87. package/references/official-docs/docs/cookbook/adding-a-settings-card.i18n.yaml +0 -0
  88. package/references/official-docs/docs/cookbook/adding-a-settings-card.md +0 -0
  89. package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +0 -0
  90. package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +0 -0
  91. package/references/official-docs/docs/cookbook/adding-a-tool.md +0 -0
  92. package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +0 -0
  93. package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +0 -0
  94. package/references/official-docs/docs/cookbook/adding-a-vendored-package.md +0 -0
  95. package/references/official-docs/docs/cookbook/adding-a-vendored-package.zh.md +0 -0
  96. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.i18n.yaml +0 -0
  97. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.md +0 -0
  98. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.zh.md +0 -0
  99. package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +0 -0
  100. package/references/official-docs/docs/cookbook/extension-cookbook.md +0 -0
  101. package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +0 -0
  102. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.i18n.yaml +0 -0
  103. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.md +0 -0
  104. package/references/official-docs/docs/cookbook/maintaining-dsh-code-review.zh.md +0 -0
  105. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +0 -0
  106. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.md +0 -0
  107. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +0 -0
  108. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.i18n.yaml +0 -0
  109. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.md +0 -0
  110. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.zh.md +0 -0
  111. package/references/official-docs/docs/cordis-api/context.i18n.yaml +0 -0
  112. package/references/official-docs/docs/cordis-api/context.md +0 -0
  113. package/references/official-docs/docs/cordis-api/context.zh.md +0 -0
  114. package/references/official-docs/docs/cordis-api/events.i18n.yaml +0 -0
  115. package/references/official-docs/docs/cordis-api/events.md +0 -0
  116. package/references/official-docs/docs/cordis-api/events.zh.md +0 -0
  117. package/references/official-docs/docs/cordis-api/fiber.i18n.yaml +0 -0
  118. package/references/official-docs/docs/cordis-api/fiber.md +0 -0
  119. package/references/official-docs/docs/cordis-api/fiber.zh.md +0 -0
  120. package/references/official-docs/docs/cordis-api/inherited.md +0 -0
  121. package/references/official-docs/docs/cordis-api/registry.i18n.yaml +0 -0
  122. package/references/official-docs/docs/cordis-api/registry.md +0 -0
  123. package/references/official-docs/docs/cordis-api/registry.zh.md +0 -0
  124. package/references/official-docs/docs/cordis-api/service.i18n.yaml +0 -0
  125. package/references/official-docs/docs/cordis-api/service.md +0 -0
  126. package/references/official-docs/docs/cordis-api/service.zh.md +0 -0
  127. package/references/official-docs/docs/cordis-primer.i18n.yaml +0 -0
  128. package/references/official-docs/docs/cordis-primer.md +0 -0
  129. package/references/official-docs/docs/cordis-primer.zh.md +0 -0
  130. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.i18n.yaml +0 -0
  131. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.md +0 -0
  132. package/references/official-docs/docs/cordis-tutorial/01-first-plugin.zh.md +0 -0
  133. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.i18n.yaml +0 -0
  134. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.md +0 -0
  135. package/references/official-docs/docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +0 -0
  136. package/references/official-docs/docs/cordis-tutorial/03-services.i18n.yaml +0 -0
  137. package/references/official-docs/docs/cordis-tutorial/03-services.md +0 -0
  138. package/references/official-docs/docs/cordis-tutorial/03-services.zh.md +0 -0
  139. package/references/official-docs/docs/cordis-tutorial/04-events.i18n.yaml +0 -0
  140. package/references/official-docs/docs/cordis-tutorial/04-events.md +0 -0
  141. package/references/official-docs/docs/cordis-tutorial/04-events.zh.md +0 -0
  142. package/references/official-docs/docs/cordis-tutorial/05-config.i18n.yaml +0 -0
  143. package/references/official-docs/docs/cordis-tutorial/05-config.md +0 -0
  144. package/references/official-docs/docs/cordis-tutorial/05-config.zh.md +0 -0
  145. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +0 -0
  146. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.md +0 -0
  147. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.zh.md +0 -0
  148. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.i18n.yaml +0 -0
  149. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.md +0 -0
  150. package/references/official-docs/docs/cordis-tutorial/07-into-the-harness.zh.md +0 -0
  151. package/references/official-docs/docs/cordis-tutorial/index.i18n.yaml +0 -0
  152. package/references/official-docs/docs/cordis-tutorial/index.md +0 -0
  153. package/references/official-docs/docs/cordis-tutorial/index.zh.md +0 -0
  154. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +0 -0
  155. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +0 -0
  156. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +0 -0
  157. package/references/official-docs/docs/defensive-patterns/README.i18n.yaml +10 -0
  158. package/references/official-docs/docs/defensive-patterns/README.md +25 -0
  159. package/references/official-docs/docs/defensive-patterns/README.zh.md +27 -0
  160. package/references/official-docs/docs/defensive-patterns/client-components.i18n.yaml +46 -0
  161. package/references/official-docs/docs/defensive-patterns/client-components.md +493 -0
  162. package/references/official-docs/docs/defensive-patterns/client-components.zh.md +495 -0
  163. package/references/official-docs/docs/defensive-patterns/conversation-and-session.i18n.yaml +31 -0
  164. package/references/official-docs/docs/defensive-patterns/conversation-and-session.md +316 -0
  165. package/references/official-docs/docs/defensive-patterns/conversation-and-session.zh.md +316 -0
  166. package/references/official-docs/docs/defensive-patterns/general.i18n.yaml +52 -0
  167. package/references/official-docs/docs/defensive-patterns/general.md +222 -0
  168. package/references/official-docs/docs/defensive-patterns/general.zh.md +252 -0
  169. package/references/official-docs/docs/defensive-patterns/package-surface.i18n.yaml +28 -0
  170. package/references/official-docs/docs/defensive-patterns/package-surface.md +231 -0
  171. package/references/official-docs/docs/defensive-patterns/package-surface.zh.md +231 -0
  172. package/references/official-docs/docs/defensive-patterns/remote-and-api.i18n.yaml +16 -0
  173. package/references/official-docs/docs/defensive-patterns/remote-and-api.md +115 -0
  174. package/references/official-docs/docs/defensive-patterns/remote-and-api.zh.md +115 -0
  175. package/references/official-docs/docs/dependency-catalog.json +0 -0
  176. package/references/official-docs/docs/development.i18n.yaml +6 -6
  177. package/references/official-docs/docs/development.md +28 -10
  178. package/references/official-docs/docs/development.zh.md +29 -10
  179. package/references/official-docs/docs/event-producer-consumer.i18n.yaml +0 -0
  180. package/references/official-docs/docs/event-producer-consumer.md +18 -17
  181. package/references/official-docs/docs/event-producer-consumer.zh.md +18 -17
  182. package/references/official-docs/docs/experimental-persistence-catalog.i18n.yaml +0 -0
  183. package/references/official-docs/docs/experimental-persistence-catalog.md +0 -0
  184. package/references/official-docs/docs/experimental-persistence-catalog.zh.md +0 -0
  185. package/references/official-docs/docs/glossary.i18n.yaml +2 -2
  186. package/references/official-docs/docs/glossary.md +1 -0
  187. package/references/official-docs/docs/glossary.zh.md +1 -0
  188. package/references/official-docs/docs/graph-atlas.i18n.yaml +0 -0
  189. package/references/official-docs/docs/graph-atlas.md +0 -0
  190. package/references/official-docs/docs/graph-atlas.zh.md +0 -0
  191. package/references/official-docs/docs/i18n/README.i18n.yaml +0 -0
  192. package/references/official-docs/docs/i18n/README.md +0 -0
  193. package/references/official-docs/docs/i18n/README.zh.md +0 -0
  194. package/references/official-docs/docs/i18n/style-samples.md +2 -2
  195. package/references/official-docs/docs/i18n/terminology.md +1 -0
  196. package/references/official-docs/docs/i18n/translation-prompt.md +0 -0
  197. package/references/official-docs/docs/i18n/translation-rules.i18n.yaml +0 -0
  198. package/references/official-docs/docs/i18n/translation-rules.md +0 -0
  199. package/references/official-docs/docs/i18n/translation-rules.zh.md +0 -0
  200. package/references/official-docs/docs/module-graph.i18n.yaml +0 -0
  201. package/references/official-docs/docs/module-graph.md +79 -71
  202. package/references/official-docs/docs/module-graph.zh.md +79 -71
  203. package/references/official-docs/docs/persistence-catalog.i18n.yaml +267 -207
  204. package/references/official-docs/docs/persistence-catalog.md +385 -126
  205. package/references/official-docs/docs/persistence-catalog.zh.md +385 -126
  206. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.i18n.yaml +0 -0
  207. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.md +0 -0
  208. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.schema.json +0 -0
  209. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.zh.md +0 -0
  210. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.i18n.yaml +0 -0
  211. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.md +0 -0
  212. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.schema.json +0 -0
  213. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.zh.md +0 -0
  214. package/references/official-docs/docs/persistence-changes/2026-09-13-working-directory.i18n.yaml +0 -0
  215. package/references/official-docs/docs/persistence-changes/2026-09-13-working-directory.md +0 -0
  216. package/references/official-docs/docs/persistence-changes/2026-09-13-working-directory.schema.json +0 -0
  217. package/references/official-docs/docs/persistence-changes/2026-09-13-working-directory.zh.md +0 -0
  218. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.i18n.yaml +0 -0
  219. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.md +0 -0
  220. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.schema.json +0 -0
  221. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.zh.md +0 -0
  222. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.i18n.yaml +0 -0
  223. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.md +0 -0
  224. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.schema.json +0 -0
  225. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.zh.md +0 -0
  226. package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.i18n.yaml +0 -0
  227. package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.md +0 -0
  228. package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.schema.json +0 -0
  229. package/references/official-docs/docs/persistence-changes/2026-09-16-session-format-v4.zh.md +0 -0
  230. package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.i18n.yaml +0 -0
  231. package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.md +0 -0
  232. package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.schema.json +0 -0
  233. package/references/official-docs/docs/persistence-changes/2026-09-18-schedule-optional-title.zh.md +0 -0
  234. package/references/official-docs/docs/persistence-changes/2026-09-19-external-subagent-catalog.i18n.yaml +0 -0
  235. package/references/official-docs/docs/persistence-changes/2026-09-19-external-subagent-catalog.md +0 -0
  236. package/references/official-docs/docs/persistence-changes/2026-09-19-external-subagent-catalog.schema.json +0 -0
  237. package/references/official-docs/docs/persistence-changes/2026-09-19-external-subagent-catalog.zh.md +0 -0
  238. package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.i18n.yaml +0 -0
  239. package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.md +0 -0
  240. package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.schema.json +0 -0
  241. package/references/official-docs/docs/persistence-changes/2026-09-20-unknown-child-catalog.zh.md +0 -0
  242. package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.i18n.yaml +0 -0
  243. package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.md +0 -0
  244. package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.schema.json +0 -0
  245. package/references/official-docs/docs/persistence-changes/2026-09-21-user-question-reply.zh.md +0 -0
  246. package/references/official-docs/docs/persistence-changes/2026-09-30-job-session-lifecycle.i18n.yaml +28 -0
  247. package/references/official-docs/docs/persistence-changes/2026-09-30-job-session-lifecycle.md +52 -0
  248. package/references/official-docs/docs/persistence-changes/2026-09-30-job-session-lifecycle.schema.json +297 -0
  249. package/references/official-docs/docs/persistence-changes/2026-09-30-job-session-lifecycle.zh.md +52 -0
  250. package/references/official-docs/docs/persistence-changes/2026-10-05-ptc-operation-metadata.i18n.yaml +0 -0
  251. package/references/official-docs/docs/persistence-changes/2026-10-05-ptc-operation-metadata.md +0 -0
  252. package/references/official-docs/docs/persistence-changes/2026-10-05-ptc-operation-metadata.schema.json +0 -0
  253. package/references/official-docs/docs/persistence-changes/2026-10-05-ptc-operation-metadata.zh.md +0 -0
  254. package/references/official-docs/docs/persistence-changes/2026-10-05-working-directory-attribution.i18n.yaml +0 -0
  255. package/references/official-docs/docs/persistence-changes/2026-10-05-working-directory-attribution.md +0 -0
  256. package/references/official-docs/docs/persistence-changes/2026-10-05-working-directory-attribution.schema.json +0 -0
  257. package/references/official-docs/docs/persistence-changes/2026-10-05-working-directory-attribution.zh.md +0 -0
  258. package/references/official-docs/docs/persistence-changes/2026-10-07-title-reasoning-effort.i18n.yaml +0 -0
  259. package/references/official-docs/docs/persistence-changes/2026-10-07-title-reasoning-effort.md +0 -0
  260. package/references/official-docs/docs/persistence-changes/2026-10-07-title-reasoning-effort.schema.json +0 -0
  261. package/references/official-docs/docs/persistence-changes/2026-10-07-title-reasoning-effort.zh.md +0 -0
  262. package/references/official-docs/docs/persistence-changes/2026-10-13-deepseek-search-thinking.i18n.yaml +28 -0
  263. package/references/official-docs/docs/persistence-changes/2026-10-13-deepseek-search-thinking.md +48 -0
  264. package/references/official-docs/docs/persistence-changes/2026-10-13-deepseek-search-thinking.schema.json +231 -0
  265. package/references/official-docs/docs/persistence-changes/2026-10-13-deepseek-search-thinking.zh.md +48 -0
  266. package/references/official-docs/docs/persistence-changes/2026-10-13-user-rpc-principal.i18n.yaml +28 -0
  267. package/references/official-docs/docs/persistence-changes/2026-10-13-user-rpc-principal.md +60 -0
  268. package/references/official-docs/docs/persistence-changes/2026-10-13-user-rpc-principal.schema.json +11559 -0
  269. package/references/official-docs/docs/persistence-changes/2026-10-13-user-rpc-principal.zh.md +60 -0
  270. package/references/official-docs/docs/persistence-changes/README.i18n.yaml +0 -0
  271. package/references/official-docs/docs/persistence-changes/README.md +0 -0
  272. package/references/official-docs/docs/persistence-changes/README.zh.md +0 -0
  273. package/references/official-docs/docs/persistence-changes/finalized/v4.json +0 -0
  274. package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml +2 -2
  275. package/references/official-docs/docs/persistence-changes/historical-formats/README.md +1 -1
  276. package/references/official-docs/docs/persistence-changes/historical-formats/README.zh.md +1 -1
  277. package/references/official-docs/docs/persistence-changes/historical-formats/v0.i18n.yaml +0 -0
  278. package/references/official-docs/docs/persistence-changes/historical-formats/v0.md +0 -0
  279. package/references/official-docs/docs/persistence-changes/historical-formats/v0.schema.json +0 -0
  280. package/references/official-docs/docs/persistence-changes/historical-formats/v0.zh.md +0 -0
  281. package/references/official-docs/docs/persistence-changes/historical-formats/v1.i18n.yaml +0 -0
  282. package/references/official-docs/docs/persistence-changes/historical-formats/v1.md +0 -0
  283. package/references/official-docs/docs/persistence-changes/historical-formats/v1.schema.json +0 -0
  284. package/references/official-docs/docs/persistence-changes/historical-formats/v1.zh.md +0 -0
  285. package/references/official-docs/docs/persistence-changes/historical-formats/v2.i18n.yaml +0 -0
  286. package/references/official-docs/docs/persistence-changes/historical-formats/v2.md +0 -0
  287. package/references/official-docs/docs/persistence-changes/historical-formats/v2.schema.json +0 -0
  288. package/references/official-docs/docs/persistence-changes/historical-formats/v2.zh.md +0 -0
  289. package/references/official-docs/docs/persistence-changes/historical-formats/v3.i18n.yaml +0 -0
  290. package/references/official-docs/docs/persistence-changes/historical-formats/v3.md +0 -0
  291. package/references/official-docs/docs/persistence-changes/historical-formats/v3.schema.json +0 -0
  292. package/references/official-docs/docs/persistence-changes/historical-formats/v3.zh.md +0 -0
  293. package/references/official-docs/docs/persistence-changes/releases/README.i18n.yaml +0 -0
  294. package/references/official-docs/docs/persistence-changes/releases/README.md +0 -0
  295. package/references/official-docs/docs/persistence-changes/releases/README.zh.md +0 -0
  296. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.i18n.yaml +0 -0
  297. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.md +0 -0
  298. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.schema.json +0 -0
  299. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.zh.md +0 -0
  300. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.i18n.yaml +0 -0
  301. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.md +0 -0
  302. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.schema.json +0 -0
  303. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.zh.md +0 -0
  304. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.i18n.yaml +0 -0
  305. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.md +0 -0
  306. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.schema.json +0 -0
  307. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.zh.md +0 -0
  308. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.i18n.yaml +0 -0
  309. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.md +0 -0
  310. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.schema.json +0 -0
  311. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.zh.md +0 -0
  312. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.i18n.yaml +0 -0
  313. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.md +0 -0
  314. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.schema.json +0 -0
  315. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.zh.md +0 -0
  316. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.i18n.yaml +0 -0
  317. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.md +0 -0
  318. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.schema.json +0 -0
  319. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.zh.md +0 -0
  320. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.i18n.yaml +0 -0
  321. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.md +0 -0
  322. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.schema.json +0 -0
  323. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.zh.md +0 -0
  324. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.i18n.yaml +0 -0
  325. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.md +0 -0
  326. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.schema.json +0 -0
  327. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.zh.md +0 -0
  328. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.i18n.yaml +0 -0
  329. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.md +0 -0
  330. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.schema.json +0 -0
  331. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.zh.md +0 -0
  332. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.i18n.yaml +0 -0
  333. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.md +0 -0
  334. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.schema.json +0 -0
  335. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.zh.md +0 -0
  336. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.i18n.yaml +0 -0
  337. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.md +0 -0
  338. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.schema.json +0 -0
  339. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.zh.md +0 -0
  340. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.i18n.yaml +0 -0
  341. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.md +0 -0
  342. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.schema.json +0 -0
  343. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.zh.md +0 -0
  344. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.i18n.yaml +0 -0
  345. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.md +0 -0
  346. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.schema.json +0 -0
  347. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.zh.md +0 -0
  348. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.i18n.yaml +0 -0
  349. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.md +0 -0
  350. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.schema.json +0 -0
  351. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.zh.md +0 -0
  352. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.i18n.yaml +0 -0
  353. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.md +0 -0
  354. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.schema.json +0 -0
  355. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.zh.md +0 -0
  356. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.i18n.yaml +0 -0
  357. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.md +0 -0
  358. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.schema.json +0 -0
  359. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.zh.md +0 -0
  360. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.i18n.yaml +0 -0
  361. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.md +0 -0
  362. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.schema.json +0 -0
  363. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.zh.md +0 -0
  364. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.i18n.yaml +0 -0
  365. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.md +0 -0
  366. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.schema.json +0 -0
  367. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.zh.md +0 -0
  368. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.i18n.yaml +0 -0
  369. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.md +0 -0
  370. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.schema.json +0 -0
  371. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.zh.md +0 -0
  372. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.i18n.yaml +0 -0
  373. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.md +0 -0
  374. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.schema.json +0 -0
  375. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.zh.md +0 -0
  376. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.i18n.yaml +0 -0
  377. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.md +0 -0
  378. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.schema.json +0 -0
  379. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.zh.md +0 -0
  380. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.i18n.yaml +0 -0
  381. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.md +0 -0
  382. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.schema.json +0 -0
  383. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.zh.md +0 -0
  384. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.i18n.yaml +0 -0
  385. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.md +0 -0
  386. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.schema.json +0 -0
  387. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.zh.md +0 -0
  388. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.i18n.yaml +0 -0
  389. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.md +0 -0
  390. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.schema.json +0 -0
  391. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.zh.md +0 -0
  392. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.i18n.yaml +0 -0
  393. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.md +0 -0
  394. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.schema.json +0 -0
  395. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.zh.md +0 -0
  396. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.i18n.yaml +0 -0
  397. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.md +0 -0
  398. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.schema.json +0 -0
  399. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.zh.md +0 -0
  400. package/references/official-docs/docs/persistence-changes/releases/manifest.json +0 -0
  401. package/references/official-docs/docs/persistence-schema.json +1834 -1333
  402. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.i18n.yaml +0 -0
  403. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.md +0 -0
  404. package/references/official-docs/docs/postmortem/0001-acp-default-export-drops-inject.zh.md +0 -0
  405. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.i18n.yaml +0 -0
  406. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +0 -0
  407. package/references/official-docs/docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +0 -0
  408. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.i18n.yaml +0 -0
  409. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.md +0 -0
  410. package/references/official-docs/docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +0 -0
  411. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.i18n.yaml +0 -0
  412. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +0 -0
  413. package/references/official-docs/docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +0 -0
  414. package/references/official-docs/docs/postmortem/README.i18n.yaml +0 -0
  415. package/references/official-docs/docs/postmortem/README.md +0 -0
  416. package/references/official-docs/docs/postmortem/README.zh.md +0 -0
  417. package/references/official-docs/docs/rescope.i18n.yaml +0 -0
  418. package/references/official-docs/docs/rescope.md +0 -0
  419. package/references/official-docs/docs/rescope.zh.md +0 -0
  420. package/references/official-docs/docs/session-format-status.i18n.yaml +0 -0
  421. package/references/official-docs/docs/session-format-status.md +0 -0
  422. package/references/official-docs/docs/session-format-status.zh.md +0 -0
  423. package/references/official-docs/docs/subsystems/README.i18n.yaml +0 -0
  424. package/references/official-docs/docs/subsystems/README.md +0 -0
  425. package/references/official-docs/docs/subsystems/README.zh.md +0 -0
  426. package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +0 -0
  427. package/references/official-docs/docs/subsystems/agent-team.md +0 -0
  428. package/references/official-docs/docs/subsystems/agent-team.zh.md +0 -0
  429. package/references/official-docs/docs/subsystems/approval.i18n.yaml +0 -0
  430. package/references/official-docs/docs/subsystems/approval.md +0 -0
  431. package/references/official-docs/docs/subsystems/approval.zh.md +0 -0
  432. package/references/official-docs/docs/subsystems/attachment.i18n.yaml +0 -0
  433. package/references/official-docs/docs/subsystems/attachment.md +0 -0
  434. package/references/official-docs/docs/subsystems/attachment.zh.md +0 -0
  435. package/references/official-docs/docs/subsystems/boot.i18n.yaml +6 -0
  436. package/references/official-docs/docs/subsystems/boot.md +124 -0
  437. package/references/official-docs/docs/subsystems/boot.zh.md +124 -0
  438. package/references/official-docs/docs/subsystems/browser-use.i18n.yaml +0 -0
  439. package/references/official-docs/docs/subsystems/browser-use.md +0 -0
  440. package/references/official-docs/docs/subsystems/browser-use.zh.md +0 -0
  441. package/references/official-docs/docs/subsystems/claude-code-mods.i18n.yaml +0 -0
  442. package/references/official-docs/docs/subsystems/claude-code-mods.md +0 -0
  443. package/references/official-docs/docs/subsystems/claude-code-mods.zh.md +0 -0
  444. package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +2 -2
  445. package/references/official-docs/docs/subsystems/client-modules.md +14 -0
  446. package/references/official-docs/docs/subsystems/client-modules.zh.md +14 -0
  447. package/references/official-docs/docs/subsystems/client-resources.i18n.yaml +0 -0
  448. package/references/official-docs/docs/subsystems/client-resources.md +0 -0
  449. package/references/official-docs/docs/subsystems/client-resources.zh.md +0 -0
  450. package/references/official-docs/docs/subsystems/commands.i18n.yaml +0 -0
  451. package/references/official-docs/docs/subsystems/commands.md +0 -0
  452. package/references/official-docs/docs/subsystems/commands.zh.md +0 -0
  453. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +0 -0
  454. package/references/official-docs/docs/subsystems/compaction.md +0 -0
  455. package/references/official-docs/docs/subsystems/compaction.zh.md +0 -0
  456. package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +2 -2
  457. package/references/official-docs/docs/subsystems/computer-use.md +3 -0
  458. package/references/official-docs/docs/subsystems/computer-use.zh.md +3 -0
  459. package/references/official-docs/docs/subsystems/conversation.i18n.yaml +3 -3
  460. package/references/official-docs/docs/subsystems/conversation.md +14 -0
  461. package/references/official-docs/docs/subsystems/conversation.zh.md +16 -0
  462. package/references/official-docs/docs/subsystems/core.i18n.yaml +1 -1
  463. package/references/official-docs/docs/subsystems/core.md +3 -1
  464. package/references/official-docs/docs/subsystems/core.zh.md +5 -1
  465. package/references/official-docs/docs/subsystems/credentials.i18n.yaml +6 -6
  466. package/references/official-docs/docs/subsystems/credentials.md +13 -12
  467. package/references/official-docs/docs/subsystems/credentials.zh.md +13 -12
  468. package/references/official-docs/docs/subsystems/deliverables.i18n.yaml +0 -0
  469. package/references/official-docs/docs/subsystems/deliverables.md +0 -0
  470. package/references/official-docs/docs/subsystems/deliverables.zh.md +0 -0
  471. package/references/official-docs/docs/subsystems/extensions.i18n.yaml +0 -0
  472. package/references/official-docs/docs/subsystems/extensions.md +0 -0
  473. package/references/official-docs/docs/subsystems/extensions.zh.md +0 -0
  474. package/references/official-docs/docs/subsystems/feedback.i18n.yaml +0 -0
  475. package/references/official-docs/docs/subsystems/feedback.md +0 -0
  476. package/references/official-docs/docs/subsystems/feedback.zh.md +0 -0
  477. package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +0 -0
  478. package/references/official-docs/docs/subsystems/filesystem.md +0 -0
  479. package/references/official-docs/docs/subsystems/filesystem.zh.md +0 -0
  480. package/references/official-docs/docs/subsystems/goal.i18n.yaml +0 -0
  481. package/references/official-docs/docs/subsystems/goal.md +0 -0
  482. package/references/official-docs/docs/subsystems/goal.zh.md +0 -0
  483. package/references/official-docs/docs/subsystems/jobs.i18n.yaml +5 -2
  484. package/references/official-docs/docs/subsystems/jobs.md +60 -4
  485. package/references/official-docs/docs/subsystems/jobs.zh.md +60 -4
  486. package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
  487. package/references/official-docs/docs/subsystems/llm-streaming.md +41 -1
  488. package/references/official-docs/docs/subsystems/llm-streaming.zh.md +41 -1
  489. package/references/official-docs/docs/subsystems/lsp.i18n.yaml +0 -0
  490. package/references/official-docs/docs/subsystems/lsp.md +0 -0
  491. package/references/official-docs/docs/subsystems/lsp.zh.md +0 -0
  492. package/references/official-docs/docs/subsystems/mcp.i18n.yaml +0 -0
  493. package/references/official-docs/docs/subsystems/mcp.md +0 -0
  494. package/references/official-docs/docs/subsystems/mcp.zh.md +0 -0
  495. package/references/official-docs/docs/subsystems/office-to-pdf.i18n.yaml +0 -0
  496. package/references/official-docs/docs/subsystems/office-to-pdf.md +0 -0
  497. package/references/official-docs/docs/subsystems/office-to-pdf.zh.md +0 -0
  498. package/references/official-docs/docs/subsystems/otel.i18n.yaml +0 -0
  499. package/references/official-docs/docs/subsystems/otel.md +0 -0
  500. package/references/official-docs/docs/subsystems/otel.zh.md +0 -0
  501. package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +0 -0
  502. package/references/official-docs/docs/subsystems/permission-presets.md +0 -0
  503. package/references/official-docs/docs/subsystems/permission-presets.zh.md +0 -0
  504. package/references/official-docs/docs/subsystems/persistence.i18n.yaml +0 -0
  505. package/references/official-docs/docs/subsystems/persistence.md +0 -0
  506. package/references/official-docs/docs/subsystems/persistence.zh.md +0 -0
  507. package/references/official-docs/docs/subsystems/plan.i18n.yaml +0 -0
  508. package/references/official-docs/docs/subsystems/plan.md +0 -0
  509. package/references/official-docs/docs/subsystems/plan.zh.md +0 -0
  510. package/references/official-docs/docs/subsystems/product-telemetry.i18n.yaml +2 -2
  511. package/references/official-docs/docs/subsystems/product-telemetry.md +4 -2
  512. package/references/official-docs/docs/subsystems/product-telemetry.zh.md +4 -2
  513. package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +4 -4
  514. package/references/official-docs/docs/subsystems/ptc-runtime.md +24 -6
  515. package/references/official-docs/docs/subsystems/ptc-runtime.zh.md +24 -6
  516. package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +0 -0
  517. package/references/official-docs/docs/subsystems/sandbox.md +0 -0
  518. package/references/official-docs/docs/subsystems/sandbox.zh.md +0 -0
  519. package/references/official-docs/docs/subsystems/schedule.i18n.yaml +0 -0
  520. package/references/official-docs/docs/subsystems/schedule.md +0 -0
  521. package/references/official-docs/docs/subsystems/schedule.zh.md +0 -0
  522. package/references/official-docs/docs/subsystems/scope.i18n.yaml +1 -1
  523. package/references/official-docs/docs/subsystems/scope.md +0 -0
  524. package/references/official-docs/docs/subsystems/scope.zh.md +2 -0
  525. package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +0 -0
  526. package/references/official-docs/docs/subsystems/session-projection.md +0 -0
  527. package/references/official-docs/docs/subsystems/session-projection.zh.md +0 -0
  528. package/references/official-docs/docs/subsystems/session-query.i18n.yaml +0 -0
  529. package/references/official-docs/docs/subsystems/session-query.md +0 -0
  530. package/references/official-docs/docs/subsystems/session-query.zh.md +0 -0
  531. package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +0 -0
  532. package/references/official-docs/docs/subsystems/session-reference.md +0 -0
  533. package/references/official-docs/docs/subsystems/session-reference.zh.md +0 -0
  534. package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +0 -0
  535. package/references/official-docs/docs/subsystems/session-telemetry.md +0 -0
  536. package/references/official-docs/docs/subsystems/session-telemetry.zh.md +0 -0
  537. package/references/official-docs/docs/subsystems/session-title.i18n.yaml +0 -0
  538. package/references/official-docs/docs/subsystems/session-title.md +0 -0
  539. package/references/official-docs/docs/subsystems/session-title.zh.md +0 -0
  540. package/references/official-docs/docs/subsystems/session.i18n.yaml +0 -0
  541. package/references/official-docs/docs/subsystems/session.md +11 -9
  542. package/references/official-docs/docs/subsystems/session.zh.md +11 -9
  543. package/references/official-docs/docs/subsystems/settings.i18n.yaml +0 -0
  544. package/references/official-docs/docs/subsystems/settings.md +0 -0
  545. package/references/official-docs/docs/subsystems/settings.zh.md +0 -0
  546. package/references/official-docs/docs/subsystems/shell.i18n.yaml +0 -0
  547. package/references/official-docs/docs/subsystems/shell.md +0 -0
  548. package/references/official-docs/docs/subsystems/shell.zh.md +0 -0
  549. package/references/official-docs/docs/subsystems/sidebar-right.i18n.yaml +2 -2
  550. package/references/official-docs/docs/subsystems/sidebar-right.md +2 -0
  551. package/references/official-docs/docs/subsystems/sidebar-right.zh.md +2 -0
  552. package/references/official-docs/docs/subsystems/skills.i18n.yaml +0 -0
  553. package/references/official-docs/docs/subsystems/skills.md +0 -0
  554. package/references/official-docs/docs/subsystems/skills.zh.md +0 -0
  555. package/references/official-docs/docs/subsystems/slots.i18n.yaml +8 -8
  556. package/references/official-docs/docs/subsystems/slots.md +80 -85
  557. package/references/official-docs/docs/subsystems/slots.zh.md +84 -85
  558. package/references/official-docs/docs/subsystems/spill.i18n.yaml +0 -0
  559. package/references/official-docs/docs/subsystems/spill.md +0 -0
  560. package/references/official-docs/docs/subsystems/spill.zh.md +0 -0
  561. package/references/official-docs/docs/subsystems/ssh.i18n.yaml +0 -0
  562. package/references/official-docs/docs/subsystems/ssh.md +0 -0
  563. package/references/official-docs/docs/subsystems/ssh.zh.md +0 -0
  564. package/references/official-docs/docs/subsystems/storage.i18n.yaml +0 -0
  565. package/references/official-docs/docs/subsystems/storage.md +0 -0
  566. package/references/official-docs/docs/subsystems/storage.zh.md +0 -0
  567. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  568. package/references/official-docs/docs/subsystems/subagent.md +10 -18
  569. package/references/official-docs/docs/subsystems/subagent.zh.md +10 -18
  570. package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +0 -0
  571. package/references/official-docs/docs/subsystems/subprocess.md +0 -0
  572. package/references/official-docs/docs/subsystems/subprocess.zh.md +0 -0
  573. package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +0 -0
  574. package/references/official-docs/docs/subsystems/system-prompt.md +0 -0
  575. package/references/official-docs/docs/subsystems/system-prompt.zh.md +0 -0
  576. package/references/official-docs/docs/subsystems/terminal.i18n.yaml +0 -0
  577. package/references/official-docs/docs/subsystems/terminal.md +0 -0
  578. package/references/official-docs/docs/subsystems/terminal.zh.md +0 -0
  579. package/references/official-docs/docs/subsystems/todo.i18n.yaml +0 -0
  580. package/references/official-docs/docs/subsystems/todo.md +0 -0
  581. package/references/official-docs/docs/subsystems/todo.zh.md +0 -0
  582. package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +0 -0
  583. package/references/official-docs/docs/subsystems/token-meter.md +0 -0
  584. package/references/official-docs/docs/subsystems/token-meter.zh.md +0 -0
  585. package/references/official-docs/docs/subsystems/tools.i18n.yaml +0 -0
  586. package/references/official-docs/docs/subsystems/tools.md +0 -0
  587. package/references/official-docs/docs/subsystems/tools.zh.md +0 -0
  588. package/references/official-docs/docs/subsystems/translation.i18n.yaml +2 -2
  589. package/references/official-docs/docs/subsystems/translation.md +1 -1
  590. package/references/official-docs/docs/subsystems/translation.zh.md +1 -1
  591. package/references/official-docs/docs/subsystems/typert.i18n.yaml +11 -8
  592. package/references/official-docs/docs/subsystems/typert.md +222 -17
  593. package/references/official-docs/docs/subsystems/typert.zh.md +222 -17
  594. package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +0 -0
  595. package/references/official-docs/docs/subsystems/user-questions.md +0 -0
  596. package/references/official-docs/docs/subsystems/user-questions.zh.md +0 -0
  597. package/references/official-docs/docs/subsystems/voice-input.i18n.yaml +0 -0
  598. package/references/official-docs/docs/subsystems/voice-input.md +0 -0
  599. package/references/official-docs/docs/subsystems/voice-input.zh.md +0 -0
  600. package/references/official-docs/docs/subsystems/web-client.i18n.yaml +2 -2
  601. package/references/official-docs/docs/subsystems/web-client.md +1 -1
  602. package/references/official-docs/docs/subsystems/web-client.zh.md +1 -1
  603. package/references/official-docs/docs/subsystems/web-server.i18n.yaml +0 -0
  604. package/references/official-docs/docs/subsystems/web-server.md +44 -3
  605. package/references/official-docs/docs/subsystems/web-server.zh.md +44 -3
  606. package/references/official-docs/docs/subsystems/web.i18n.yaml +4 -4
  607. package/references/official-docs/docs/subsystems/web.md +2 -2
  608. package/references/official-docs/docs/subsystems/web.zh.md +2 -2
  609. package/references/official-docs/docs/subsystems/webhook.i18n.yaml +0 -0
  610. package/references/official-docs/docs/subsystems/webhook.md +0 -0
  611. package/references/official-docs/docs/subsystems/webhook.zh.md +0 -0
  612. package/references/official-docs/docs/subsystems/workflow.i18n.yaml +0 -0
  613. package/references/official-docs/docs/subsystems/workflow.md +0 -0
  614. package/references/official-docs/docs/subsystems/workflow.zh.md +0 -0
  615. package/references/official-docs/docs/subsystems/working-directory.i18n.yaml +0 -0
  616. package/references/official-docs/docs/subsystems/working-directory.md +0 -0
  617. package/references/official-docs/docs/subsystems/working-directory.zh.md +0 -0
  618. package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
  619. package/references/official-docs/docs/subsystems/workspace.md +23 -35
  620. package/references/official-docs/docs/subsystems/workspace.zh.md +23 -35
  621. package/references/official-docs/docs/subsystems/worktrees.i18n.yaml +0 -0
  622. package/references/official-docs/docs/subsystems/worktrees.md +0 -0
  623. package/references/official-docs/docs/subsystems/worktrees.zh.md +0 -0
  624. package/references/official-docs/docs/testing.i18n.yaml +2 -2
  625. package/references/official-docs/docs/testing.md +1 -1
  626. package/references/official-docs/docs/testing.zh.md +1 -1
  627. package/references/official-docs/docs/tool-catalog.i18n.yaml +12 -6
  628. package/references/official-docs/docs/tool-catalog.md +61 -10
  629. package/references/official-docs/docs/tool-catalog.zh.md +61 -10
  630. package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +0 -0
  631. package/references/official-docs/docs/tool-execution-pipeline.md +0 -0
  632. package/references/official-docs/docs/tool-execution-pipeline.zh.md +0 -0
  633. package/references/official-docs/docs/ui-radius.i18n.yaml +4 -4
  634. package/references/official-docs/docs/ui-radius.md +6 -4
  635. package/references/official-docs/docs/ui-radius.zh.md +6 -4
  636. package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.i18n.yaml +0 -0
  637. package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.md +0 -0
  638. package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/schedule-optional-bundle/guide.zh.md +0 -0
  639. package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.i18n.yaml +0 -0
  640. package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.md +0 -0
  641. package/references/official-docs/docs/upgrade-guide/v0.1.7-rc.2/transcript-view-legacy-normal/guide.zh.md +0 -0
  642. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.i18n.yaml +0 -0
  643. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.md +0 -0
  644. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/account-sign-in-errors/guide.zh.md +0 -0
  645. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/bundled-python-tests/guide.i18n.yaml +0 -0
  646. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/bundled-python-tests/guide.md +0 -0
  647. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/bundled-python-tests/guide.zh.md +0 -0
  648. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/primary-runtime-python-aliases/guide.i18n.yaml +16 -0
  649. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/primary-runtime-python-aliases/guide.md +18 -0
  650. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/primary-runtime-python-aliases/guide.zh.md +18 -0
  651. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.i18n.yaml +0 -0
  652. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.md +0 -0
  653. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/remove-runtime-invariants/guide.zh.md +0 -0
  654. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.i18n.yaml +0 -0
  655. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.md +0 -0
  656. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired/guide.zh.md +0 -0
  657. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.i18n.yaml +0 -0
  658. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.md +0 -0
  659. package/references/official-docs/docs/upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest/guide.zh.md +0 -0
  660. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/deepseek-model-discovery/guide.i18n.yaml +0 -0
  661. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/deepseek-model-discovery/guide.md +0 -0
  662. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/deepseek-model-discovery/guide.zh.md +0 -0
  663. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/desktop-test-auth-popup/guide.i18n.yaml +0 -0
  664. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/desktop-test-auth-popup/guide.md +0 -0
  665. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/desktop-test-auth-popup/guide.zh.md +0 -0
  666. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-composition/guide.i18n.yaml +0 -0
  667. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-composition/guide.md +0 -0
  668. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-composition/guide.zh.md +0 -0
  669. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/instruction-home-override/guide.i18n.yaml +0 -0
  670. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/instruction-home-override/guide.md +0 -0
  671. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/instruction-home-override/guide.zh.md +0 -0
  672. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/job-id-identity/guide.i18n.yaml +16 -0
  673. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/job-id-identity/guide.md +18 -0
  674. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/job-id-identity/guide.zh.md +18 -0
  675. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/jsonl-persistence-plugin/guide.i18n.yaml +16 -0
  676. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/jsonl-persistence-plugin/guide.md +18 -0
  677. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/jsonl-persistence-plugin/guide.zh.md +18 -0
  678. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/mock-messages-events/guide.i18n.yaml +0 -0
  679. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/mock-messages-events/guide.md +0 -0
  680. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/mock-messages-events/guide.zh.md +0 -0
  681. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/native-subagent-bundle-tools/guide.i18n.yaml +0 -0
  682. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/native-subagent-bundle-tools/guide.md +0 -0
  683. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/native-subagent-bundle-tools/guide.zh.md +0 -0
  684. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/new-session-generations/guide.i18n.yaml +0 -0
  685. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/new-session-generations/guide.md +0 -0
  686. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/new-session-generations/guide.zh.md +0 -0
  687. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/plugin-option-placement/guide.i18n.yaml +0 -0
  688. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/plugin-option-placement/guide.md +0 -0
  689. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/plugin-option-placement/guide.zh.md +0 -0
  690. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-optional-resources/guide.i18n.yaml +0 -0
  691. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-optional-resources/guide.md +0 -0
  692. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-optional-resources/guide.zh.md +0 -0
  693. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.i18n.yaml +0 -0
  694. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.md +0 -0
  695. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/python-ptc-sandbox/guide.zh.md +0 -0
  696. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-adapters/guide.i18n.yaml +0 -0
  697. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-adapters/guide.md +0 -0
  698. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-adapters/guide.zh.md +0 -0
  699. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-provider-strategy/guide.i18n.yaml +0 -0
  700. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-provider-strategy/guide.md +0 -0
  701. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/session-title-provider-strategy/guide.zh.md +0 -0
  702. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/ssh-helper-launch/guide.i18n.yaml +0 -0
  703. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/ssh-helper-launch/guide.md +0 -0
  704. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/ssh-helper-launch/guide.zh.md +0 -0
  705. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-activations/guide.i18n.yaml +0 -0
  706. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-activations/guide.md +0 -0
  707. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-activations/guide.zh.md +0 -0
  708. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-preset-composition/guide.i18n.yaml +16 -0
  709. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-preset-composition/guide.md +21 -0
  710. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/subagent-preset-composition/guide.zh.md +21 -0
  711. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.i18n.yaml +0 -0
  712. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.md +0 -0
  713. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/team-direct-inbox/guide.zh.md +0 -0
  714. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/terminal-command-labels/guide.i18n.yaml +0 -0
  715. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/terminal-command-labels/guide.md +0 -0
  716. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/terminal-command-labels/guide.zh.md +0 -0
  717. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/tool-presentation-mode/guide.i18n.yaml +0 -0
  718. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/tool-presentation-mode/guide.md +0 -0
  719. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/tool-presentation-mode/guide.zh.md +0 -0
  720. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/web-listener-trust-config/guide.i18n.yaml +0 -0
  721. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/web-listener-trust-config/guide.md +0 -0
  722. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/web-listener-trust-config/guide.zh.md +0 -0
  723. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/working-directory/guide.i18n.yaml +0 -0
  724. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/working-directory/guide.md +0 -0
  725. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.1/working-directory/guide.zh.md +0 -0
  726. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/deepseek-account-identity-watch/guide.i18n.yaml +16 -0
  727. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/deepseek-account-identity-watch/guide.md +18 -0
  728. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/deepseek-account-identity-watch/guide.zh.md +18 -0
  729. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/deepseek-account-model-catalog/guide.i18n.yaml +16 -0
  730. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/deepseek-account-model-catalog/guide.md +27 -0
  731. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/deepseek-account-model-catalog/guide.zh.md +27 -0
  732. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/desktop-font-size-shortcuts/guide.i18n.yaml +16 -0
  733. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/desktop-font-size-shortcuts/guide.md +18 -0
  734. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/desktop-font-size-shortcuts/guide.zh.md +18 -0
  735. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/from-default-profile-replaces-target/guide.i18n.yaml +16 -0
  736. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/from-default-profile-replaces-target/guide.md +20 -0
  737. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/from-default-profile-replaces-target/guide.zh.md +20 -0
  738. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/operator-connect/guide.i18n.yaml +16 -0
  739. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/operator-connect/guide.md +18 -0
  740. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/operator-connect/guide.zh.md +18 -0
  741. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/pi-ai-azure-provider/guide.i18n.yaml +16 -0
  742. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/pi-ai-azure-provider/guide.md +19 -0
  743. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/pi-ai-azure-provider/guide.zh.md +19 -0
  744. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/pi-ai-model-discovery/guide.i18n.yaml +16 -0
  745. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/pi-ai-model-discovery/guide.md +17 -0
  746. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/pi-ai-model-discovery/guide.zh.md +17 -0
  747. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/plugin-install-over-installed/guide.i18n.yaml +16 -0
  748. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/plugin-install-over-installed/guide.md +20 -0
  749. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/plugin-install-over-installed/guide.zh.md +20 -0
  750. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/sdk-minimal-image-compaction/guide.i18n.yaml +16 -0
  751. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/sdk-minimal-image-compaction/guide.md +32 -0
  752. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/sdk-minimal-image-compaction/guide.zh.md +32 -0
  753. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/stored-credentials-precedence/guide.i18n.yaml +16 -0
  754. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/stored-credentials-precedence/guide.md +25 -0
  755. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.2/stored-credentials-precedence/guide.zh.md +25 -0
  756. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.3/plugin-engines-dsh/guide.i18n.yaml +16 -0
  757. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.3/plugin-engines-dsh/guide.md +21 -0
  758. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.3/plugin-engines-dsh/guide.zh.md +21 -0
  759. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.4/account-notification-fields/guide.i18n.yaml +16 -0
  760. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.4/account-notification-fields/guide.md +18 -0
  761. package/references/official-docs/docs/upgrade-guide/v0.2.1-alpha.4/account-notification-fields/guide.zh.md +18 -0
  762. package/references/official-docs/docs/user/develop/basic/config.i18n.yaml +0 -0
  763. package/references/official-docs/docs/user/develop/basic/config.md +0 -0
  764. package/references/official-docs/docs/user/develop/basic/config.zh.md +0 -0
  765. package/references/official-docs/docs/user/develop/basic/index.i18n.yaml +0 -0
  766. package/references/official-docs/docs/user/develop/basic/index.md +0 -0
  767. package/references/official-docs/docs/user/develop/basic/index.zh.md +0 -0
  768. package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +4 -4
  769. package/references/official-docs/docs/user/develop/basic/publish.md +3 -1
  770. package/references/official-docs/docs/user/develop/basic/publish.zh.md +3 -1
  771. package/references/official-docs/docs/user/develop/basic/tool.i18n.yaml +0 -0
  772. package/references/official-docs/docs/user/develop/basic/tool.md +0 -0
  773. package/references/official-docs/docs/user/develop/basic/tool.zh.md +0 -0
  774. package/references/official-docs/docs/user/develop/framework/events.i18n.yaml +0 -0
  775. package/references/official-docs/docs/user/develop/framework/events.md +0 -0
  776. package/references/official-docs/docs/user/develop/framework/events.zh.md +0 -0
  777. package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +0 -0
  778. package/references/official-docs/docs/user/develop/framework/index.md +0 -0
  779. package/references/official-docs/docs/user/develop/framework/index.zh.md +0 -0
  780. package/references/official-docs/docs/user/develop/framework/service.i18n.yaml +0 -0
  781. package/references/official-docs/docs/user/develop/framework/service.md +0 -0
  782. package/references/official-docs/docs/user/develop/framework/service.zh.md +0 -0
  783. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +0 -0
  784. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.md +0 -0
  785. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.zh.md +0 -0
  786. package/references/official-docs/docs/user/develop/practice/index.i18n.yaml +0 -0
  787. package/references/official-docs/docs/user/develop/practice/index.md +0 -0
  788. package/references/official-docs/docs/user/develop/practice/index.zh.md +0 -0
  789. package/references/official-docs/docs/user/develop/practice/llm-adapter.i18n.yaml +0 -0
  790. package/references/official-docs/docs/user/develop/practice/llm-adapter.md +0 -0
  791. package/references/official-docs/docs/user/develop/practice/llm-adapter.zh.md +0 -0
  792. package/references/official-docs/docs/user/guide/github-review.i18n.yaml +0 -0
  793. package/references/official-docs/docs/user/guide/github-review.md +0 -0
  794. package/references/official-docs/docs/user/guide/github-review.zh.md +0 -0
  795. package/references/official-docs/docs/user/guide/index.i18n.yaml +0 -0
  796. package/references/official-docs/docs/user/guide/index.md +0 -0
  797. package/references/official-docs/docs/user/guide/index.zh.md +0 -0
  798. package/references/official-docs/docs/user/guide/mcp-memory.i18n.yaml +0 -0
  799. package/references/official-docs/docs/user/guide/mcp-memory.md +0 -0
  800. package/references/official-docs/docs/user/guide/mcp-memory.zh.md +0 -0
  801. package/references/official-docs/docs/user/guide/network-proxy.i18n.yaml +0 -0
  802. package/references/official-docs/docs/user/guide/network-proxy.md +0 -0
  803. package/references/official-docs/docs/user/guide/network-proxy.zh.md +0 -0
  804. package/references/official-docs/docs/user/guide/plugin-market.i18n.yaml +34 -0
  805. package/references/official-docs/docs/user/guide/plugin-market.md +148 -0
  806. package/references/official-docs/docs/user/guide/plugin-market.zh.md +148 -0
  807. package/references/official-docs/docs/user/guide/providers-custom-form.png +0 -0
  808. package/references/official-docs/docs/user/guide/providers-custom-form.zh.png +0 -0
  809. package/references/official-docs/docs/user/guide/providers-models-page.png +0 -0
  810. package/references/official-docs/docs/user/guide/providers-models-page.zh.png +0 -0
  811. package/references/official-docs/docs/user/guide/providers.i18n.yaml +11 -8
  812. package/references/official-docs/docs/user/guide/providers.md +27 -4
  813. package/references/official-docs/docs/user/guide/providers.zh.md +27 -4
  814. package/references/official-docs/docs/user/guide/public-deployments.i18n.yaml +2 -2
  815. package/references/official-docs/docs/user/guide/public-deployments.md +1 -1
  816. package/references/official-docs/docs/user/guide/public-deployments.zh.md +1 -1
  817. package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +4 -4
  818. package/references/official-docs/docs/user/guide/python-sdk.md +8 -9
  819. package/references/official-docs/docs/user/guide/python-sdk.zh.md +8 -9
  820. package/references/official-docs/docs/user/guide/schedule.i18n.yaml +0 -0
  821. package/references/official-docs/docs/user/guide/schedule.md +0 -0
  822. package/references/official-docs/docs/user/guide/schedule.zh.md +0 -0
  823. package/references/official-docs/docs/user/index.i18n.yaml +0 -0
  824. package/references/official-docs/docs/user/index.md +0 -0
  825. package/references/official-docs/docs/user/index.zh.md +0 -0
  826. package/references/official-docs/docs/web-styling.i18n.yaml +0 -0
  827. package/references/official-docs/docs/web-styling.md +0 -0
  828. package/references/official-docs/docs/web-styling.zh.md +0 -0
  829. package/references/official-docs/packages/AGENTS.md +2 -0
  830. package/references/official-docs/packages/README.md +0 -0
  831. package/references/official-docs/vendor/README.md +4 -0
  832. package/references/official-docs/website-docs.ts +8 -0
  833. package/references/official-plugin-dev-skill.md +0 -0
  834. package/references/sources.md +0 -0
  835. package/references/upstream-cordis.md +0 -0
  836. package/references/website-pages.md +0 -0
  837. package/scripts/archive-discussions.ps1 +0 -0
  838. package/scripts/build-llms-full.mjs +0 -0
  839. package/scripts/check-docs-drift-detail.mjs +0 -0
  840. package/scripts/check-docs-drift.ps1 +0 -0
  841. package/scripts/check-facts.mjs +0 -0
  842. package/scripts/check-ps1-bom.mjs +0 -0
  843. package/scripts/check-readme-parity.mjs +0 -0
  844. package/scripts/check-readme-sync.mjs +0 -0
  845. package/scripts/download-community-articles.ps1 +188 -188
  846. package/scripts/download-community-repos.ps1 +232 -232
  847. package/scripts/download-sources.ps1 +195 -195
  848. package/scripts/gen-topic-snapshot.ps1 +91 -91
  849. package/scripts/install-skill.ps1 +63 -63
  850. package/scripts/measure-mirror-references.mjs +0 -0
  851. package/scripts/sync-official-docs.ps1 +0 -0
  852. package/scripts/verify-artifacts.mjs +0 -0
  853. package/scripts/verify-kit.ps1 +0 -0
  854. package/templates/js/LICENSE +0 -0
  855. package/templates/js/README-es.md +0 -0
  856. package/templates/js/README-hi.md +0 -0
  857. package/templates/js/README-pt.md +0 -0
  858. package/templates/js/README-zh.md +0 -0
  859. package/templates/js/README.md +0 -0
  860. package/templates/js/cordis.patch.yml +0 -0
  861. package/templates/js/icon.svg +4 -4
  862. package/templates/js/index.js +0 -0
  863. package/templates/js/locale/en.json +6 -6
  864. package/templates/js/locale/zh.json +6 -6
  865. package/templates/js/package.json +43 -43
  866. package/templates/js/tests/index.test.js +0 -0
  867. package/templates/ts/LICENSE +0 -0
  868. package/templates/ts/README-es.md +0 -0
  869. package/templates/ts/README-hi.md +0 -0
  870. package/templates/ts/README-pt.md +0 -0
  871. package/templates/ts/README-zh.md +0 -0
  872. package/templates/ts/README.md +0 -0
  873. package/templates/ts/cordis.patch.yml +0 -0
  874. package/templates/ts/icon.svg +4 -4
  875. package/templates/ts/locale/en.json +6 -6
  876. package/templates/ts/locale/zh.json +6 -6
  877. package/templates/ts/package.json +52 -52
  878. package/templates/ts/src/config.ts +0 -0
  879. package/templates/ts/src/index.ts +0 -0
  880. package/templates/ts/tests/index.test.ts +0 -0
  881. package/templates/ts/tsconfig.json +0 -0
  882. package/templates/ts/tsdown.config.mjs +21 -21
  883. package/templates/ts/vitest.config.ts +0 -0
  884. package/references/official-docs/docs/defensive-patterns.i18n.yaml +0 -28
  885. package/references/official-docs/docs/defensive-patterns.md +0 -33
  886. package/references/official-docs/docs/defensive-patterns.zh.md +0 -35
@@ -0,0 +1,316 @@
1
+ # Conversation and Session rules
2
+
3
+ English | [中文](conversation-and-session.zh.md)
4
+
5
+ Rules for reading a Session, holding one, computing conversation nodes, and rendering them. The data model and per-type semantics live in [session-projection.md](../subsystems/session-projection.md) and [conversation.md](../subsystems/conversation.md).
6
+
7
+ ## Projection is the only read and compute path
8
+
9
+ Session data is read and computed through Projection. A client reads a projection value instead of pulling the Session log, and a computation that belongs to the Session runs as a registered projection unit that publishes its result instead of being recomputed on demand. Two answers to the same question — one pulled, one pushed — drift apart, so a render can show a value the Session log no longer supports.
10
+
11
+ - Judged condition: every Session-derived value a client renders arrives through a projection read at the render position, and every new in-Session computation is registered as a unit whose result reaches clients as a published value. A component that fetches Session data itself, or a computation a reader triggers on demand, is the violation.
12
+ - State and View: a unit folds host-side State and declares the client-visible View over it, and the registration states that division. The `ProjectionDefinition` fields and the registry that drives them belong to [session-projection.md](../subsystems/session-projection.md#ctxsessionprojections--sessionprojectionregistry).
13
+ - Version: `stateVersion` starts at 1 and is bumped whenever the serialized state fields or the fold semantics change, compatible or not. Prefer a compatible change where one exists, but still bump; registering one key twice with different `stateVersion` values throws instead of merging.
14
+ - Compute strategy: units compute in full by default. Narrowing what a unit computes needs the owning domain expert's confirmation, never the implementer's own decision.
15
+ - Boundary: a partial projection view may serve interface availability for individual keys, such as a cached block drawn before the connected Session answers. It never decides an externally visible result, which waits for the standard projection value.
16
+
17
+ A component that reads at its render position, and a computation that registers instead of being pulled, both comply:
18
+
19
+ ```tsx
20
+ // The client reads the published value; it never fetches Session data itself.
21
+ function PlanChip({ useProjection }: PlanChipProps) {
22
+ const plan = useProjection('plan')
23
+ return plan === undefined ? null : <Chip label={plan.label} />
24
+ }
25
+
26
+ // The computation is a registered unit; the registry drives it and publishes changes.
27
+ const planDefinition: ProjectionDefinition<'plan'> = {
28
+ key: 'plan',
29
+ stateVersion: 1,
30
+ init: () => emptyPlan,
31
+ apply: (state, event) => foldPlan(state, event),
32
+ wire: { viewSchema: planSchema, view: planView },
33
+ }
34
+ ```
35
+
36
+ A component that pulls the same value over its own request breaks the single read path:
37
+
38
+ ```tsx
39
+ function PlanChip() {
40
+ const [plan, setPlan] = useState<Plan>()
41
+ useEffect(() => {
42
+ void fetchSessionPlan(sessionId).then(setPlan) // a second read path beside Projection
43
+ }, [sessionId])
44
+ return plan === undefined ? null : <Chip label={plan.label} />
45
+ }
46
+ ```
47
+
48
+ The pulled copy and the pushed value disagree, and no version check can tell which one the Session currently holds.
49
+
50
+ ## Cold reads are the last resort
51
+
52
+ Read an available cache before the original log, and reach for a cold read only when no projection covers the data. The "small Session may be read in full" exception is removed and is not reconsidered. When cached and official data are not equivalent, a missing or stale row produces an explicit outcome instead of silently switching onto the slow path.
53
+
54
+ - Judged condition: a Session read consults the projection cache first, and an absent row leaves an explicit state for the caller; a cache test whose `else` branch opens the complete log is the violation.
55
+ - Fallback semantics: the caller decides what a miss means and states it in the returned value. There is no cache-size or Session-size exception, and no approver for one.
56
+ - Boundary: this restriction is the client's. An absolute "never fork a cold read" on the host is not required, because the host may need to open a log the client cannot.
57
+
58
+ The stored projection rows are read first, and a miss stays a state the caller renders:
59
+
60
+ ```ts ignore-check
61
+ // The listing reads stored projection rows; a miss remains an explicit state.
62
+ type ListingView =
63
+ | { kind: 'cached'; snapshot: ProjectionSnapshot }
64
+ | { kind: 'unknown' }
65
+
66
+ function readListing(header: SessionHeader, keys: readonly ProjectionKey[]): ListingView {
67
+ const cached = ctx.sessionProjectionCache.cachedSnapshot(header, keys)
68
+ return cached === undefined ? { kind: 'unknown' } : { kind: 'cached', snapshot: cached }
69
+ }
70
+ // Opening the complete log is a separate operation the caller names, never this fallback.
71
+ ```
72
+
73
+ A cache test that falls through to the complete log turns the slow path into the ordinary one:
74
+
75
+ ```ts ignore-check
76
+ function readListing(header: SessionHeader, session: Session): ListingView {
77
+ const cached = ctx.sessionProjectionCache.cachedSnapshot(header)
78
+ if (cached !== undefined) return { kind: 'cached', snapshot: cached }
79
+ return coldReadCompleteLog(session) // every miss pays the full-log read
80
+ }
81
+ ```
82
+
83
+ Every miss now reads the whole log in the foreground, so a slow Session is slow on every listing rather than only on the path that asks for it.
84
+
85
+ ## Retention follows one lifecycle rule
86
+
87
+ A client holds a Session through an explicit reference (`SessionReference`), and the reference count reaching zero releases it. Idle reclamation follows the one lifecycle rule — no references and nothing in flight — and never enumerates which Sessions may be reclaimed from business state, because that list has to be maintained by every feature that adds one. An implicit holder is invisible, so reclamation cannot tell who still uses the Session.
88
+
89
+ - Judged condition: the predicate is `refCount == 0 && inflight == 0`. Does the code hold the Session across its acquire → use window through a reference that retain and release can be audited against? A module-level Session object or a global current id is the violation.
90
+ - Boundary: the enforced parts are the unified predicate and the absence of business-state enumeration; the release trigger itself is checked by hand, so hand-checking alone is not a rejection reason.
91
+ - Ownership: `retain`, `release`, `ready`, and teardown ordering belong to [the Session Controller's client references](../../packages/api/session-controller/README.md#client-references). A source-session mention carried in a message is a different type, owned by [session-reference.md](../subsystems/session-reference.md).
92
+
93
+ A view that retains through an explicit reference and releases it on teardown complies:
94
+
95
+ ```ts ignore-check
96
+ class SidebarSessionView implements Disposable {
97
+ private readonly reference: SessionReference
98
+
99
+ constructor(readonly id: SessionId, sessions: ISessions) {
100
+ this.reference = sessions.retain(id, { source: 'sidebarView' })
101
+ void this.reference.ready.catch((error: unknown) => { console.error('opening failed:', error) })
102
+ }
103
+
104
+ [Symbol.dispose](): void {
105
+ this.reference.release() // the last reference releases the Session
106
+ }
107
+ }
108
+ ```
109
+
110
+ Module state that keeps the Session object hides every holder from the reclaimer:
111
+
112
+ ```ts ignore-check
113
+ let currentSessionId: SessionId | undefined
114
+ const sessionCache = new Map<SessionId, Session>()
115
+
116
+ export function remember(session: Session): void {
117
+ currentSessionId = session.id
118
+ sessionCache.set(session.id, session)
119
+ }
120
+
121
+ export function reclaimIdle(): void {
122
+ if (state === 'idle' || state === 'closed') reclaim() // a newly added state is missed
123
+ }
124
+ ```
125
+
126
+ Nobody can count who still uses the Session, and the next state added to the Session escapes the enumeration and is never reclaimed.
127
+
128
+ ## Node computation is incremental and streaming publication is batched
129
+
130
+ A new node computation states its complexity, and high-frequency streaming chunks never publish immediately and never recompute in full. A per-chunk full rebuild published at once puts the whole node collection on the frame budget, and the transcript stalls behind the stream. The append-path cost — with `D` registered Definitions, `D` matches and one constant-time Context-key lookup — and the publication vocabulary (`none`, `animation-frame`, `immediate`) are owned by [conversation.md](../subsystems/conversation.md#definition-and-typed-chat-payload).
131
+
132
+ - Judged condition: how much one chunk computes — the increment on the affected subtree, not the event window — and when its result is published — a batching policy, not one publication per chunk.
133
+ - Boundary: this rule binds the implementation; cadence alone is not a rejection reason, so a change is judged on the cadence it states and the published path it uses.
134
+ - Forbidden on the high-frequency path: `immediate` publication, and a full recomputation per chunk.
135
+ - Boundary: a structural or terminal change may publish `immediate`, because the cadence is chosen per publication. Only the high-frequency delta path is bound to batching.
136
+
137
+ A chunk that updates one Context and asks for a coalesced publication complies:
138
+
139
+ ```ts ignore-check
140
+ const assistantDefinition: ConversationNodeDefinition<AssistantState> = {
141
+ kind: 'assistant-step',
142
+ target: 'chat',
143
+ match: event => matchAssistant(event),
144
+ start: (_context, match) => initialState(match),
145
+ update: (context, match) => appendChunk(context.state, match.event), // increment, not the window
146
+ publication: () => 'animation-frame', // high-frequency deltas coalesce; never immediate
147
+ buildViewNode: context => assistantNode(context),
148
+ }
149
+ ```
150
+
151
+ Rebuilding the whole node collection for every chunk and publishing it immediately:
152
+
153
+ ```ts ignore-check
154
+ function onChunk(chunk: AssistantLiveChunk): void {
155
+ const nodes = buildNodesFromCompleteWindow(session) // full recompute per chunk
156
+ target.publish(nodes, { publication: 'immediate' }) // and an immediate publish
157
+ }
158
+ ```
159
+
160
+ Each chunk costs a full-window rebuild inside the frame budget, so grouping and rendering stall behind the stream.
161
+
162
+ ## The node build and grouping engine carries no business rule
163
+
164
+ Business rules never enter the grouping engine, and a business requirement never reshapes the built payload. `ProcessState`, the group product hierarchy, and the set of group semantics in `conversation-nodes/process-groups.ts` are infrastructure: the engine understands enum placement values such as grouped, standalone, and reply, and the caller computes which one applies. A special case inside the engine changes the produced structure for every consumer and puts a business condition on the group computation path.
165
+
166
+ - Judged condition: does the engine contain a business condition? A diff that adds a `ProcessState` field, adds or removes a group level, or changes group semantics for one business fails; the placement decision belongs to the caller that computes the enum value.
167
+ - Boundary: the layering, its cost, and existing business expectations are the reason a business does not rework the grouping design.
168
+ - Boundary: a new enum value carrying a new placement meaning is the supported extension, wherever the caller computes it.
169
+ - Exception and approver: none by default. A change to this infrastructure needs the corresponding domain expert's confirmation. [conversation.md](../subsystems/conversation.md#group-definitions) owns the group Definition types.
170
+
171
+ The caller decides the business meaning and passes the placement enum the engine places by:
172
+
173
+ ```ts ignore-check
174
+ // Business judgment stays in the caller.
175
+ function placementOf(command: CommandView): NodePlacement {
176
+ return isHandoff(command) ? 'reply' : 'grouped'
177
+ }
178
+
179
+ // The engine consumes the enum as data; it reads no business condition.
180
+ function groupEntries(commands: readonly CommandView[]): readonly NodePlacement[] {
181
+ return commands.map(placementOf)
182
+ }
183
+ ```
184
+
185
+ A business condition inside the engine's own computation:
186
+
187
+ ```ts ignore-check
188
+ // The grouping engine asks what a node means, not where it goes.
189
+ function placeProcessNode(node: ChatConversationViewNode): GroupPlacement {
190
+ if (node.kind === 'command' && isRagMessage(node)) return 'rag' // business special case
191
+ return 'grouped'
192
+ }
193
+ ```
194
+
195
+ The produced structure now carries one business's meaning, so every consumer and the group computation follow that feature.
196
+
197
+ ## The node list and seat components carry no business branch
198
+
199
+ `ChatNodeList`, `ChatNodeSeat`, and `ChatGroupSeat` are infrastructure. They carry no business condition and no business-specific field, and a single business never changes the list traversal or the seat selection. A new node shape contributes its kind to `ChatNodeDataMap` and its renderer through the kind registration surface, so the list keeps dispatching on kind while business semantics stay in the business module. A branch added for one feature makes every node's rendering depend on that feature.
200
+
201
+ - Judged condition: a business branch in a list or seat component, a business-only field on its props, or a traversal or seat-selection change that serves one business.
202
+ - Correct outlet: the business package merges its own key into `ChatNodeDataMap` and registers a renderer for the node kind; the seat renders the registered component for the node's kind. The registration discipline is owned by [slots.md](../subsystems/slots.md#extension-rules).
203
+ - Boundary: a rendering change that applies to every business — ordering, virtualization, accessibility — is not a business modification.
204
+ - Exception and approver: none by default; the corresponding domain expert confirms any exception.
205
+
206
+ A business package that declares its kind and registers its renderer leaves the shared list untouched:
207
+
208
+ ```tsx
209
+ // The business declares its kind and registers its renderer; the shared list is untouched.
210
+ declare module '@deepseek-ai/dsh-client-ui-chat/client' {
211
+ interface ChatNodeDataMap { handoff: HandoffData }
212
+ }
213
+
214
+ const HandoffNodeView = memo(function HandoffNodeView({ node, t }: ChatNodeOwnerProps<'handoff'>) {
215
+ return <HandoffCard data={node.data} t={t} />
216
+ })
217
+
218
+ ctx.slots.inject('conversation.chat.node', () => ctx.slots.register(
219
+ { name: 'conversation.chat.node', key: 'handoff', locale: NS }, HandoffNodeView))
220
+ ```
221
+
222
+ A business branch and a business field inside the shared seat:
223
+
224
+ ```tsx
225
+ export const ChatNodeSeat = memo(function ChatNodeSeat({ node, handoffFlag }: ChatNodeSeatProps) {
226
+ if (node.kind === 'user' && handoffFlag) return <HandoffSeat node={node} /> // business dispatch
227
+ return <div data-handoff={handoffFlag}>{renderByKind(node)}</div>
228
+ })
229
+ ```
230
+
231
+ One feature's condition now decides how every node renders, and the shared seat must change again for the next feature.
232
+
233
+ ## The Markdown pipeline carries no business branch
234
+
235
+ `AssistantMarkdown` and its rendering pipeline are infrastructure: no business condition enters the Markdown render path, and no business rewrites the node mapping or the style injection rules. A presentation need registers a renderer on the existing chain or expresses itself in the data, and the official default content participates in that same registration surface rather than existing as an optional renderer with a host-side inline fallback. A pipeline that hosts business special cases can no longer be reviewed or optimized on its own.
236
+
237
+ - Judged condition: a business branch inside `AssistantMarkdown` or its block mapping — for example `if (isXxxBusiness) renderXxx()` — or a style injection rule keyed on one business.
238
+ - Correct outlet: a renderer registered on the existing chain, or a semantic field in the data that the generic renderer reads. The Component Factory registration is owned by the [ui-renderer README](../../packages/client/ui-renderer/README.md).
239
+ - Wrapping: a wrapper that needs the standard rendering calls the official entry and keeps its fallback; it never re-renders the slot and never imports the private React component across packages.
240
+ - Responsibility: the host owns position and invocation; the plugin owns its own state, cleanup, and controls, and the official host carries no business action for a contribution.
241
+ - `labels`: an optional complete `MarkdownLabels` object is used whole, with no field-level merge against the default; omitting it uses the official default. `variant="compact"` is fixed by the Factory.
242
+ - Boundary: generic Markdown capability — syntax support, performance — is not a business modification.
243
+ - Exception and approver: none by default; the corresponding domain expert confirms any exception.
244
+
245
+ A contribution that registers into the existing single seat, and reuses the published Factory instead of re-rendering the standard content:
246
+
247
+ ```tsx
248
+ // The business contributes its own body into the seat the host already renders.
249
+ ctx.slots.inject('conversation.chat.reasoning.body', () => ctx.slots.register(
250
+ { name: 'conversation.chat.reasoning.body', scope: 'session', locale: NS },
251
+ TranslatedReasoningBody,
252
+ ))
253
+
254
+ // The contribution keeps the standard rendering by calling the published Factory.
255
+ function TranslatedReasoningBody({ text, running, renderFactorySlot, t }: ReasoningBodyProps) {
256
+ return (
257
+ <>
258
+ <p>{t('reasoning.translated')}</p>
259
+ {renderFactorySlot('conversation.chat.reasoning.content', { text, running })}
260
+ </>
261
+ )
262
+ }
263
+ ```
264
+
265
+ A business branch inside the shared Markdown pipeline:
266
+
267
+ ```tsx
268
+ export const AssistantMarkdown = memo(function AssistantMarkdown({ blocks, ...props }: AssistantMarkdownProps) {
269
+ return <>{blocks.map(block => (
270
+ isHandoffBlock(block)
271
+ ? <HandoffBlock block={block} /> // a business special case in the pipeline
272
+ : renderBlock(block, props)
273
+ ))}</>
274
+ })
275
+ ```
276
+
277
+ Every business special case lands in one shared pipeline, and Markdown rendering can no longer change or be measured without the businesses it now carries.
278
+
279
+ ## The user message model and rendering carry no business field
280
+
281
+ `UserMessage` and the UI's `user` kind rendering are infrastructure: no business-only field on the message model, and no business branch in the user message renderer. A business difference travels in the message payload — its own merge-extensible source kind or a content field — or through a registered renderer. A field added for one business is handled by every consumer of the model, and the next business adds another branch to the same shared renderer.
282
+
283
+ - Judged condition: a business-named field on `UserMessage`, or a business condition in the rendering of the `user` kind.
284
+ - Correct outlet: expression in the payload. `MessageSourceMap` is declaration-merge extensible, so a producer declares its own source kind instead of widening `UserMessage`; the message model is documented in [session.md](../subsystems/session.md).
285
+ - Boundary: a generic message capability — attachments, quotes, edit state — is not a business modification.
286
+ - Exception and approver: none by default; the corresponding domain expert confirms any exception.
287
+
288
+ A producer that declares its own source kind keeps the business difference in the payload:
289
+
290
+ ```ts ignore-check
291
+ declare module '@deepseek-ai/dsh-llm' {
292
+ interface MessageSourceMap {
293
+ handoff: { kind: 'handoff'; sessionId: SessionId }
294
+ }
295
+ }
296
+
297
+ const message = createUserMessage({
298
+ role: 'user',
299
+ content: [{ type: 'text', text: prompt }],
300
+ source: { kind: 'handoff', sessionId: source.id },
301
+ })
302
+ ```
303
+
304
+ A business field on the shared model, and the branch it forces into the shared renderer:
305
+
306
+ ```ts ignore-check
307
+ interface UserMessage extends MessageBase {
308
+ readonly role: 'user'
309
+ readonly handoffKind?: 'handoff' | 'rag' // one business's field on the shared model
310
+ }
311
+
312
+ // ...and the renderer branches on it.
313
+ if (message.handoffKind === 'handoff') return <HandoffBubble message={message} />
314
+ ```
315
+
316
+ Every consumer of the message model handles one business's field, and the shared renderer grows a branch for each business that follows.
@@ -0,0 +1,316 @@
1
+ # 会话与 Session 规则
2
+
3
+ [English](conversation-and-session.md) | 中文
4
+
5
+ 关于读取 Session、持有 Session、计算会话节点与渲染它们的规则。数据模型与各类型语义见 [session-projection.zh.md](../subsystems/session-projection.zh.md) 与 [conversation.zh.md](../subsystems/conversation.zh.md)。
6
+
7
+ ## Projection 是唯一的读取与计算路径
8
+
9
+ Session 数据一律经 Projection 读取与计算。客户端读投影值,而不是拉 Session 日志;属于该会话的计算以注册单元的形式运行并**推送**结果,而不是按需重算。同一个问题若有两个答案——一个拉取、一个推送——两者就会分叉,渲染可能显示出 Session 日志已不再支持的值。
10
+
11
+ - 判定条件:客户端渲染的每个 Session 派生值都在渲染位置经投影读取取得,每个新增的会话内计算都注册为单元、其结果以已发布值的形式到达客户端。组件自己拉取 Session 数据、或读者按需触发一次计算,都属违规。
12
+ - State 与 View:单元折叠 host 侧 State,并在其上声明客户端可见的 View,二者分工写在注册里。`ProjectionDefinition` 的字段与驱动它们的注册表归 [session-projection.zh.md](../subsystems/session-projection.zh.md#ctxsessionprojections--sessionprojectionregistry)。
13
+ - 版本:`stateVersion` 从 1 起,只要序列化 state 字段或折叠语义变化就自增,兼容与否都一样。存在兼容改法时优先兼容,但版本仍要自增;同一 key 以不同 `stateVersion` 注册两次会抛错,而不是合并。
14
+ - 计算策略:单元默认全量计算。收窄某个单元的计算范围需要对应领域专家确认,绝不能由实现者自行决定。
15
+ - 边界:非完全 projection 渲染可用于某些 key 的界面可用性展示,例如在连接中的 Session 应答之前先画缓存块。它绝不参与对外可见结果的判定,那些结果等标准 projection 值。
16
+
17
+ 在渲染位置读取、并以注册代替拉取,两者都合规:
18
+
19
+ ```tsx
20
+ // The client reads the published value; it never fetches Session data itself.
21
+ function PlanChip({ useProjection }: PlanChipProps) {
22
+ const plan = useProjection('plan')
23
+ return plan === undefined ? null : <Chip label={plan.label} />
24
+ }
25
+
26
+ // The computation is a registered unit; the registry drives it and publishes changes.
27
+ const planDefinition: ProjectionDefinition<'plan'> = {
28
+ key: 'plan',
29
+ stateVersion: 1,
30
+ init: () => emptyPlan,
31
+ apply: (state, event) => foldPlan(state, event),
32
+ wire: { viewSchema: planSchema, view: planView },
33
+ }
34
+ ```
35
+
36
+ 自行发请求拉取同一个值,就破坏了唯一读面:
37
+
38
+ ```tsx
39
+ function PlanChip() {
40
+ const [plan, setPlan] = useState<Plan>()
41
+ useEffect(() => {
42
+ void fetchSessionPlan(sessionId).then(setPlan) // a second read path beside Projection
43
+ }, [sessionId])
44
+ return plan === undefined ? null : <Chip label={plan.label} />
45
+ }
46
+ ```
47
+
48
+ 拉取到的副本与推送值互相矛盾,版本检查也无法说明 Session 当前持有的是哪一个。
49
+
50
+ ## 冷读是最后手段
51
+
52
+ 可用的缓存要先于原始日志被读取;只有没有任何投影覆盖该数据时才走冷读。「小会话可以全读」这一例外已移除、不再考虑。当缓存与正式数据不完全对等时,缺失或过期要产出显式结果,而不是静默改走重路径。
53
+
54
+ - 判定条件:Session 读取先查 projection 缓存,行缺失时为调用方留下显式状态;缓存判断的 `else` 分支直接打开完整日志,即属违规。
55
+ - 回退语义:缺失意味着什么由调用方决定,并写进返回值。不存在按缓存大小或 Session 大小开出的例外,也没有对应的批准人。
56
+ - 边界:这条限制是前端的。host 侧「禁止 fork 冷读」的绝对化表述不成立,因为 host 可能需要打开前端打不开的日志。
57
+
58
+ 先读已存储的投影行,缺失仍是一个由调用方渲染的状态:
59
+
60
+ ```ts ignore-check
61
+ // The listing reads stored projection rows; a miss remains an explicit state.
62
+ type ListingView =
63
+ | { kind: 'cached'; snapshot: ProjectionSnapshot }
64
+ | { kind: 'unknown' }
65
+
66
+ function readListing(header: SessionHeader, keys: readonly ProjectionKey[]): ListingView {
67
+ const cached = ctx.sessionProjectionCache.cachedSnapshot(header, keys)
68
+ return cached === undefined ? { kind: 'unknown' } : { kind: 'cached', snapshot: cached }
69
+ }
70
+ // Opening the complete log is a separate operation the caller names, never this fallback.
71
+ ```
72
+
73
+ 缓存判断落回完整日志,就等于把慢路径变成常规路径:
74
+
75
+ ```ts ignore-check
76
+ function readListing(header: SessionHeader, session: Session): ListingView {
77
+ const cached = ctx.sessionProjectionCache.cachedSnapshot(header)
78
+ if (cached !== undefined) return { kind: 'cached', snapshot: cached }
79
+ return coldReadCompleteLog(session) // every miss pays the full-log read
80
+ }
81
+ ```
82
+
83
+ 现在每次缺失都在前台读完整日志,于是慢会话在每次列表读取时都慢,而不只是在那条主动请求它的路径上慢。
84
+
85
+ ## 持有与回收遵循同一条生命周期判据
86
+
87
+ 客户端经显式引用(`SessionReference`)持有 Session,引用计数归零即释放。闲置回收只看那一条生命周期判据——零引用且无在途——绝不按业务状态枚举「哪些 Session 可以回收」,因为那份清单要靠每个新增状态的业务功能自己去维护。隐式持有者不可见,回收便判断不了谁还在使用该 Session。
88
+
89
+ - 判定条件:判据 = `refCount == 0 && inflight == 0`。代码是否在「获取 → 使用」的时间窗口内通过一份可审计 retain / release 的引用来持有 Session?模块级 Session 对象或全局 current id 都属违规。
90
+ - 边界:强制的是统一判据与不做业务状态枚举这两点;释放触发本身靠人工核对,因此仅凭人工核对不构成打回理由。
91
+ - 归口:`retain`、`release`、`ready` 与 teardown 顺序归 [Session Controller 的 client references](../../packages/api/session-controller/README.zh.md#client-references)。消息里携带的 source session mention 是另一种类型,归 [session-reference.zh.md](../subsystems/session-reference.zh.md)。
92
+
93
+ 经显式引用持有并在 teardown 释放的视图合规:
94
+
95
+ ```ts ignore-check
96
+ class SidebarSessionView implements Disposable {
97
+ private readonly reference: SessionReference
98
+
99
+ constructor(readonly id: SessionId, sessions: ISessions) {
100
+ this.reference = sessions.retain(id, { source: 'sidebarView' })
101
+ void this.reference.ready.catch((error: unknown) => { console.error('opening failed:', error) })
102
+ }
103
+
104
+ [Symbol.dispose](): void {
105
+ this.reference.release() // the last reference releases the Session
106
+ }
107
+ }
108
+ ```
109
+
110
+ 模块状态缓存 Session 对象,会把所有持有者对回收器隐藏:
111
+
112
+ ```ts ignore-check
113
+ let currentSessionId: SessionId | undefined
114
+ const sessionCache = new Map<SessionId, Session>()
115
+
116
+ export function remember(session: Session): void {
117
+ currentSessionId = session.id
118
+ sessionCache.set(session.id, session)
119
+ }
120
+
121
+ export function reclaimIdle(): void {
122
+ if (state === 'idle' || state === 'closed') reclaim() // a newly added state is missed
123
+ }
124
+ ```
125
+
126
+ 没有人能数清谁仍在使用该 Session,下一个新增的 Session 状态也会漏出枚举、永远不被回收。
127
+
128
+ ## 节点计算是增量的,流式发布是合批的
129
+
130
+ 新增节点计算要说明其复杂度;高频流式 chunk 绝不立即发布、也不做全量计算。每个 chunk 全量重算并立即发布,等于把整个节点集合压进帧预算,转写区便会堵在流后面。追加速路径的开销——在 `D` 个已注册 Definition 下执行 `D` 次匹配与一次常量级 Context key 查找——以及发布节拍取值(`none`、`animation-frame`、`immediate`)归 [conversation.zh.md](../subsystems/conversation.zh.md#definition-and-typed-chat-payload)。
131
+
132
+ - 判定条件:单个 chunk 计算了多少——受影响子树的增量,而不是事件窗口——以及结果何时发布——合批策略,而不是每个 chunk 发布一次。
133
+ - 边界:本条约束实现;节拍本身不构成打回理由,改动按它声明的节拍与所用的已发布路径评判。
134
+ - 高频路径上禁止:`immediate` 发布,以及每个 chunk 做一次全量重算。
135
+ - 边界:结构性或终态变化可以 `immediate` 发布,因为节拍是按单次发布选择的。只有高频 delta 路径受合批约束。
136
+
137
+ 只更新一个 Context 并请求合批发布的 chunk 合规:
138
+
139
+ ```ts ignore-check
140
+ const assistantDefinition: ConversationNodeDefinition<AssistantState> = {
141
+ kind: 'assistant-step',
142
+ target: 'chat',
143
+ match: event => matchAssistant(event),
144
+ start: (_context, match) => initialState(match),
145
+ update: (context, match) => appendChunk(context.state, match.event), // increment, not the window
146
+ publication: () => 'animation-frame', // high-frequency deltas coalesce; never immediate
147
+ buildViewNode: context => assistantNode(context),
148
+ }
149
+ ```
150
+
151
+ 每个 chunk 重建整个节点集合并立即发布:
152
+
153
+ ```ts ignore-check
154
+ function onChunk(chunk: AssistantLiveChunk): void {
155
+ const nodes = buildNodesFromCompleteWindow(session) // full recompute per chunk
156
+ target.publish(nodes, { publication: 'immediate' }) // and an immediate publish
157
+ }
158
+ ```
159
+
160
+ 每个 chunk 都要在帧预算内做一次全窗口重建,于是分组与渲染都堵在流后面。
161
+
162
+ ## 节点构建与分组引擎不承载业务规则
163
+
164
+ 业务规则绝不进入分组引擎,业务诉求也绝不改变构建产物的形态。`ProcessState`、分组产物层级,以及 `conversation-nodes/process-groups.ts` 里的分组语义集合都属基础设施:引擎只认枚举化的落位语义(如成组 / 独立 / 回复),由调用方算出该用哪一个。引擎内的业务特判会改变所有使用方共享的产物结构,并把业务条件带上分组计算路径。
165
+
166
+ - 判定条件:引擎内部是否存在业务条件?新增 `ProcessState` 字段、增删分组产物层级、为某个业务改变分组语义,都属违规;落位判定归算出枚举值的调用方。
167
+ - 边界:架构分层、其开销与既有业务预期,就是业务不得重做分组设计的原因。
168
+ - 边界:携带新落位含义的新枚举值才是受支持的扩展,无论调用方在哪里算出它。
169
+ - 例外与批准人:无默认例外。改动该基础设施须经对应领域专家确认。分组 Definition 类型归 [conversation.zh.md](../subsystems/conversation.zh.md#group-definitions)。
170
+
171
+ 调用方决定业务含义,并把引擎据以落位的枚举值传进去:
172
+
173
+ ```ts ignore-check
174
+ // Business judgment stays in the caller.
175
+ function placementOf(command: CommandView): NodePlacement {
176
+ return isHandoff(command) ? 'reply' : 'grouped'
177
+ }
178
+
179
+ // The engine consumes the enum as data; it reads no business condition.
180
+ function groupEntries(commands: readonly CommandView[]): readonly NodePlacement[] {
181
+ return commands.map(placementOf)
182
+ }
183
+ ```
184
+
185
+ 业务条件写进引擎自己的计算过程:
186
+
187
+ ```ts ignore-check
188
+ // The grouping engine asks what a node means, not where it goes.
189
+ function placeProcessNode(node: ChatConversationViewNode): GroupPlacement {
190
+ if (node.kind === 'command' && isRagMessage(node)) return 'rag' // business special case
191
+ return 'grouped'
192
+ }
193
+ ```
194
+
195
+ 产物从此承载某一个业务的含义,所有使用方与分组计算都要跟着该功能走。
196
+
197
+ ## 节点列表与席位组件不承载业务分支
198
+
199
+ `ChatNodeList`、`ChatNodeSeat` 与 `ChatGroupSeat` 属基础设施。它们不承载业务判断,也不承载业务专用字段;单一业务绝不改变列表遍历或席位选择。新的节点形态把自己的 kind 贡献给 `ChatNodeDataMap`,并经 kind 注册面注册 renderer,于是列表继续按 kind 分发,业务语义留在业务模块内。为某个功能加的分支,会让每个节点的渲染都依赖该功能。
200
+
201
+ - 判定条件:在列表或席位组件里加业务分支、给其 props 加业务专用字段,或为单一业务改变列表遍历与席位选择。
202
+ - 正确出路:业务包把自己的 key merge 进 `ChatNodeDataMap`,并为该节点 kind 注册 renderer;席位渲染该 kind 已注册的组件。注册纪律归 [slots.zh.md](../subsystems/slots.zh.md#extension-rules)。
203
+ - 边界:对所有业务生效的渲染增强——排序、虚拟化、可访问性——不属于为业务诉求修改。
204
+ - 例外与批准人:无默认例外;任何例外须经对应领域专家确认。
205
+
206
+ 声明自己的 kind 并注册 renderer 的业务包,不改动共享列表:
207
+
208
+ ```tsx
209
+ // The business declares its kind and registers its renderer; the shared list is untouched.
210
+ declare module '@deepseek-ai/dsh-client-ui-chat/client' {
211
+ interface ChatNodeDataMap { handoff: HandoffData }
212
+ }
213
+
214
+ const HandoffNodeView = memo(function HandoffNodeView({ node, t }: ChatNodeOwnerProps<'handoff'>) {
215
+ return <HandoffCard data={node.data} t={t} />
216
+ })
217
+
218
+ ctx.slots.inject('conversation.chat.node', () => ctx.slots.register(
219
+ { name: 'conversation.chat.node', key: 'handoff', locale: NS }, HandoffNodeView))
220
+ ```
221
+
222
+ 把业务分支与业务字段写进共享席位:
223
+
224
+ ```tsx
225
+ export const ChatNodeSeat = memo(function ChatNodeSeat({ node, handoffFlag }: ChatNodeSeatProps) {
226
+ if (node.kind === 'user' && handoffFlag) return <HandoffSeat node={node} /> // business dispatch
227
+ return <div data-handoff={handoffFlag}>{renderByKind(node)}</div>
228
+ })
229
+ ```
230
+
231
+ 某个功能的条件从此决定每个节点怎么渲染,下一个功能还得再改一次共享席位。
232
+
233
+ ## Markdown 管线不承载业务分支
234
+
235
+ `AssistantMarkdown` 及其渲染管线属基础设施:Markdown 渲染路径里不得出现业务条件,也不得按业务改写节点映射或样式注入规则。展示需求要么在既有链上注册 renderer,要么在数据里表达;官方默认内容也参与同一个注册面,而不是做成「可选 renderer + 宿主内联 fallback」。承载业务特判的管线,再也无法单独评审或单独优化。
236
+
237
+ - 判定条件:`AssistantMarkdown` 或其 block 映射里出现业务分支——例如 `if (isXxxBusiness) renderXxx()`——或按某个业务注入样式规则。
238
+ - 正确出路:在既有链上注册 renderer,或在数据里带上语义字段、由通用 renderer 读取。Component Factory 的注册归 [ui-renderer README](../../packages/client/ui-renderer/README.zh.md)。
239
+ - 包装展示:需要标准渲染的包装组件调用官方入口并保留其 fallback;绝不重复渲染 Slot,也绝不跨包导入官方私有 React 组件。
240
+ - 权责边界:宿主只负责位置与调用;插件的状态、清理、控件归插件自己,官方宿主不为某个 contribution 承载业务动作。
241
+ - `labels`:可选传入完整 `MarkdownLabels`,**传入即整体使用**、不与默认值做字段级合并;省略则用官方默认。`variant="compact"` 由 Factory 固定。
242
+ - 边界:通用 Markdown 能力——语法支持、性能优化——不属于为业务诉求修改。
243
+ - 例外与批准人:无默认例外;任何例外须经对应领域专家确认。
244
+
245
+ 注册进既有单席位、并复用已发布 Factory(而不是自己重渲标准内容)的 contribution:
246
+
247
+ ```tsx
248
+ // The business contributes its own body into the seat the host already renders.
249
+ ctx.slots.inject('conversation.chat.reasoning.body', () => ctx.slots.register(
250
+ { name: 'conversation.chat.reasoning.body', scope: 'session', locale: NS },
251
+ TranslatedReasoningBody,
252
+ ))
253
+
254
+ // The contribution keeps the standard rendering by calling the published Factory.
255
+ function TranslatedReasoningBody({ text, running, renderFactorySlot, t }: ReasoningBodyProps) {
256
+ return (
257
+ <>
258
+ <p>{t('reasoning.translated')}</p>
259
+ {renderFactorySlot('conversation.chat.reasoning.content', { text, running })}
260
+ </>
261
+ )
262
+ }
263
+ ```
264
+
265
+ 业务分支写进共享 Markdown 管线:
266
+
267
+ ```tsx
268
+ export const AssistantMarkdown = memo(function AssistantMarkdown({ blocks, ...props }: AssistantMarkdownProps) {
269
+ return <>{blocks.map(block => (
270
+ isHandoffBlock(block)
271
+ ? <HandoffBlock block={block} /> // a business special case in the pipeline
272
+ : renderBlock(block, props)
273
+ ))}</>
274
+ })
275
+ ```
276
+
277
+ 每个业务特判都落进同一条共享管线,Markdown 渲染再也无法脱离它如今承载的这些业务去改动或度量。
278
+
279
+ ## 用户消息模型与渲染不承载业务字段
280
+
281
+ `UserMessage` 与 UI 侧 `user` kind 渲染属基础设施:消息模型上不得有业务专用字段,用户消息渲染里不得有业务分支。业务差异经消息 payload 传递——自己可 merge 扩展的 source kind 或某个 content 字段——或经注册的 renderer 表达。为某个业务加的字段,所有消息模型使用方都要处理;下一个业务还会往同一个共享 renderer 里再加一条分支。
282
+
283
+ - 判定条件:`UserMessage` 上出现业务命名字段,或 `user` kind 的渲染里出现业务条件。
284
+ - 正确出路:在 payload 里表达。`MessageSourceMap` 可经 declaration merging 扩展,因此生产者声明自己的 source kind,而不是加宽 `UserMessage`;消息模型见 [session.zh.md](../subsystems/session.zh.md)。
285
+ - 边界:通用消息能力——附件、引用、编辑态——不属于为业务诉求修改。
286
+ - 例外与批准人:无默认例外;任何例外须经对应领域专家确认。
287
+
288
+ 声明自己的 source kind 的生产者,把业务差异留在 payload 里:
289
+
290
+ ```ts ignore-check
291
+ declare module '@deepseek-ai/dsh-llm' {
292
+ interface MessageSourceMap {
293
+ handoff: { kind: 'handoff'; sessionId: SessionId }
294
+ }
295
+ }
296
+
297
+ const message = createUserMessage({
298
+ role: 'user',
299
+ content: [{ type: 'text', text: prompt }],
300
+ source: { kind: 'handoff', sessionId: source.id },
301
+ })
302
+ ```
303
+
304
+ 共享模型上的业务字段,以及它逼进共享 renderer 的分支:
305
+
306
+ ```ts ignore-check
307
+ interface UserMessage extends MessageBase {
308
+ readonly role: 'user'
309
+ readonly handoffKind?: 'handoff' | 'rag' // one business's field on the shared model
310
+ }
311
+
312
+ // ...and the renderer branches on it.
313
+ if (message.handoffKind === 'handoff') return <HandoffBubble message={message} />
314
+ ```
315
+
316
+ 消息模型的每个使用方都要处理某一个业务的字段,共享 renderer 则随每个后续业务再长一条分支。