dsh-plugin-guide 0.3.35 → 0.3.37

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 +5 -5
  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,231 @@
1
+ # Package surface rules
2
+
3
+ English | [中文](package-surface.zh.md)
4
+
5
+ Rules for what a package exports, how it is built, and how it declares dependencies. [development.md](../development.md#typescript-project-layout) describes the layout itself; [packages/AGENTS.md](../../packages/AGENTS.md) carries the standing orders.
6
+
7
+ ## A plugin package exports what the Loader loads
8
+
9
+ A plugin package's entry point takes one of two forms, and they are not mixed. A **function plugin** named-exports `name`, `inject`, `Config`, and `apply`: `name`, `inject`, and `apply` are lower-case, while `Config` is upper-case and appears both as an `interface` and as its Schemastery schema value. A **service plugin** default-exports its service class, which is how the Loader loads it; a default export beside the four makes the Loader discard the function plugin's namespace. Beyond those, a Host entry may export the Service Definition classes and error types that other packages extend or throw — the capability seam consumes exactly those — and never a test-convenience value. The `/client` entry of a UI plugin package is stricter, and [packages/client/AGENTS.md](../../packages/client/AGENTS.md) owns that discipline: a same-package test reaches internals through a relative `../src/...` path or the `./src/*` subpath, so a test-only need never becomes a permanent export. The rule stops a test convenience from freezing into published API.
10
+
11
+ - The Loader four and its exact form are defined in [cordis-primer.md](../cordis-primer.md#loader-configuration).
12
+ - Judged condition: a function plugin's entry (`src/index.ts`) exports an entity beyond the four; a default export is added beside the four, or the two forms are mixed; a `/client` entry exports an implementation value or lets another feature plugin import one; a fixture reaches another package by relative path.
13
+ - Boundary: only Loader plugin entry points are constrained. Internal modules, helper functions, and hooks keep exporting values; a Host entry's Service Definition classes and error types are expected exports; and a test fixture stays inside its own package — a relative path into another package's `src` bypasses the `exports` map and the package-boundary checks.
14
+ - Exception: none by default; an exception that is genuinely needed requires the domain owner's confirmation.
15
+
16
+ The compliant entry — the four exports, with the same-package test path recorded as a comment rather than as a fifth export.
17
+
18
+ ```ts
19
+ import type { Context } from '@deepseek-ai/cordis'
20
+ import z from '@deepseek-ai/schemastery'
21
+
22
+ // The plugin entry: the Loader four, and no fifth value
23
+ export const name = 'web-app'
24
+ export const inject = ['webServer']
25
+ export interface Config { /* … */ }
26
+ export const Config = z.object({ /* … */ })
27
+ export function apply(ctx: Context, config: Config): void { /* … */ }
28
+
29
+ // A same-package test imports '../src/internal/header.ts' instead of this entry
30
+ ```
31
+
32
+ Three ways the entry gains an export it must not have; all three are visible in the diff.
33
+
34
+ ```ts ignore-check
35
+ // The entry widened so a test could reach one helper
36
+ export { isHeaderLine } from './internal/header.ts'
37
+
38
+ // Both plugin forms on one entry: the Loader discards the four
39
+ export default class WebApp {}
40
+
41
+ // A fixture reaching into another package by relative path
42
+ import { isSurfaceEligibleType } from '../../core/session/src/surface.ts'
43
+ ```
44
+
45
+ ## Two package shapes, and both are dynamic plugin packages
46
+
47
+ A new package is either a Host package or a Host + Client package, and both are dynamic plugin packages; no third form is available and there is no exception. The static client libraries the shell seeds through `PLATFORM_MODULES` in [packages/client/web/src/platform.ts](../../packages/client/web/src/platform.ts) — `client-store`, `ui-slots`, `ui-primitives`, `ui-dockkit` — and the zero-dependency libraries under [packages/util/](../../packages/util/) predate this rule and are closed: they keep working as they are, and a new package never joins them. Only a genuine both-face package splits its compiler faces, build output goes to `lib`, and the `include`, `external`, and roster lists are derived by scanning the workspace rather than hand-written. A hand-written list or an invented compiler face makes build output and the manifest disagree, and every later package would have to maintain its own list.
48
+
49
+ - Judged condition: a new package built as anything but a dynamic plugin package (static-link bundling, a hand-written all-external list); a third `tsconfig` variant; a hand-written `include`, `external`, or roster list.
50
+ - Recompute the shapes instead of trusting a number here: list the `tsconfig.json` files under `packages/*/*`, then the packages that also carry `tsconfig.client.json` and `tsconfig.host.json`, then those declaring `dsh.client`.
51
+ - Boundary: a both-face package may appear in `include` or `exclude`.
52
+ - Exception: none; there is no approval path. A change to a package's shape or compiler faces starts with the owning documents and needs the domain owner's confirmation.
53
+ - Owners: [development.md](../development.md#typescript-project-layout) for the compiler faces, [packages/README.md](../../packages/README.md) for the package groups, and [adding-a-package.md](../cookbook/adding-a-package.md) for the steps.
54
+
55
+ A package in one of the two shapes, with the standard manifest fields and no hand-written external list.
56
+
57
+ ```json
58
+ {
59
+ "name": "@deepseek-ai/dsh-example",
60
+ "type": "module",
61
+ "main": "lib/index.js",
62
+ "types": "lib/types/index.d.ts",
63
+ "exports": {
64
+ ".": { "types": "./lib/types/index.d.ts", "default": "./lib/index.js" }
65
+ }
66
+ }
67
+ ```
68
+
69
+ A hand-written `external` list — and a `tsconfig.foo.json` invented beside it for one package — leaves the scans nothing to derive, so build output and manifest stop agreeing.
70
+
71
+ ```json
72
+ { "name": "@deepseek-ai/dsh-example", "external": ["@deepseek-ai/*"] }
73
+ ```
74
+
75
+ ## `package.json` `exports` uses the standard key set
76
+
77
+ A `package.json` `exports` map uses only the standard key set, in which every key already has one meaning across the repository, and a package never opens a key for its own local purpose. A key that only a handful of packages use without a documenting owner is not a precedent: formalizing a key, including one of the undocumented keys below, means changing the owning document and the check in the same change. The small shared key set is what lets a consumer infer a key's purpose from its name and lets a scan judge the export map at all.
78
+
79
+ - Standard keys, each with one meaning repo-wide, across `packages/*/*/package.json` and `apps/*/package.json`: `.` (the package entry), `./package.json` (toolchain access, not a semantic export), `./src/*` (source passthrough for tests and tools, whose documented status is still open), `./client` (the browser entry, paired with the `dsh.client` declaration), `./types` (the type entry), `./typert` (the typert type runtime), `./remote` (the `@Remote` call surface), `./locale/*.json` (locale resources), `./cordis.patch.yml` (the bundle patch layer declared by `dsh.bundle`). Counts are not listed here because they rot on the next package; the recompute command below prints them.
80
+ - Keys outside that set (`./brand` in 5 packages, `./worker` in 4, `./startup`, `./runner`, and `./protocol` in 2 each, plus many one-off keys) have no documented meaning; they are pending review, not a pattern to copy.
81
+ - Judged condition: does a change add an export key outside the standard set?
82
+ - Exception: none by default; a new key changes the owning document and the check first, with the domain owner's confirmation.
83
+ - Recompute the distribution:
84
+
85
+ ```sh
86
+ python3 -c "import json,glob,collections; c=collections.Counter(); [c.update(json.load(open(p)).get('exports',{}).keys()) for p in glob.glob('packages/*/*/package.json')+glob.glob('apps/*/package.json') if isinstance(json.load(open(p)).get('exports'),dict)]; print(c.most_common())"
87
+ ```
88
+
89
+ The compliant map — three standard keys used with their repo-wide meanings, in a package that also declares its client entry.
90
+
91
+ ```json
92
+ {
93
+ "exports": {
94
+ ".": { "types": "./lib/types/index.d.ts", "default": "./lib/index.js" },
95
+ "./client": { "types": "./lib/types/client/index.d.ts", "default": "./lib/client.js" },
96
+ "./types": { "types": "./lib/types/types.d.ts", "default": "./lib/types/types.js" },
97
+ "./src/*": "./src/*",
98
+ "./package.json": "./package.json"
99
+ }
100
+ }
101
+ ```
102
+
103
+ Keys opened for one package's local purposes — here `./brand` and `./worker`, whose documented status is pending — turn the export map into a per-package convention that neither a consumer nor a scan can read.
104
+
105
+ ```json
106
+ {
107
+ "exports": {
108
+ ".": "./lib/index.js",
109
+ "./brand": "./lib/brand.js",
110
+ "./worker": "./lib/worker.js"
111
+ }
112
+ }
113
+ ```
114
+
115
+ ## Dependency declarations and version consistency are enforced by the dependency scan
116
+
117
+ Dependency declarations and version consistency are guaranteed mechanically by the dependency scan; this page repeats neither the `devDependencies` and `peerDependencies` field rules nor a package admission list of its own. When the scan fails, reproduce it locally and fix the manifest it names, because the scan and its policy file own the rules. Editing the scan or relaxing its policy so that a change can land is not a normal edit and needs the domain owner's confirmation.
118
+
119
+ - Entry point: [verify-package-dependencies.ts](../../scripts/verify-package-dependencies.ts), run as `pnpm run verify-package-dependencies`, by `scripts/run-gates.ts` as the `package-dependencies` gate, and directly by `.github/workflows/release.yml`.
120
+ - Policy owner: [package-dependency-policy.ts](../../scripts/package-dependency-policy.ts) exports `PACKAGE_DEPENDENCY_POLICY`; the declaration sections, version forms, and exemptions are defined there, with package-level context in [packages/README.md](../../packages/README.md).
121
+ - Boundary: this page lists no packages, field rules, or thresholds; it points at the owning file instead.
122
+ - Find the wiring: `grep -rn "verify-package-dependencies" package.json .github/workflows scripts/run-gates.ts`.
123
+ - Exception: a change to the scan or to the policy requires the domain owner's confirmation and the reason recorded on the change.
124
+
125
+ The repeatable procedure: reproduce, read the diagnostic, and fix the manifest it names.
126
+
127
+ ```sh
128
+ # 1. Reproduce what CI reports
129
+ pnpm run verify-package-dependencies
130
+
131
+ # 2. The diagnostic names the manifest, the section, the dependency, and the expected range
132
+ # packages/example/package.json: dependencies.@deepseek-ai/dsh-base must use workspace:*, found workspace:~
133
+
134
+ # 3. The fix goes into the manifest, never into the policy file or the scan
135
+ # "dependencies": { "@deepseek-ai/dsh-base": "workspace:*" }
136
+
137
+ # 4. Re-run the scan until every package matches the published policy
138
+ pnpm run verify-package-dependencies
139
+ ```
140
+
141
+ Two ways to lose the mechanical guarantee: change the check instead of the manifest, or restate the rule here so that it drifts from its owner.
142
+
143
+ ```text
144
+ Relaxing PACKAGE_DEPENDENCY_POLICY, or dropping the scanned section that fails, to go green
145
+ Restating a required-devDependency package list or the field rules on this page instead of linking the policy file
146
+ ```
147
+
148
+ ## Internal dependency syntax follows the package family
149
+
150
+ Internal dependency syntax follows the package family: `@deepseek-ai/dsh` and `@deepseek-ai/dsh-*` use `workspace:*`, every other internal package uses `workspace:~`, and `workspace:^` has retired. The same dependency name is written the same way in every workspace, and a mismatch is a hard scan failure rather than a warning a reviewer can waive. The uniform syntax keeps one resolution path and prevents duplicate instances of a dependency and the resolution differences that follow them.
151
+
152
+ - Judged by `workspaceRange()` in [verify-package-dependencies.ts](../../scripts/verify-package-dependencies.ts): the `@deepseek-ai/dsh` and `@deepseek-ai/dsh-*` families get `workspace:*`, every other internal package gets `workspace:~`; the scan walks the managed manifests and compares every declaration of the same dependency name.
153
+ - Boundary: a same-namespace package that is not a workspace member declares an ordinary third-party range and is outside the family rule — `@deepseek-ai/libreoffice-kit` is declared `^0.1.5` in `apps/desktop-host/package.json` (dependencies), `packages/bundle/web-app/package.json` (devDependencies), `packages/document/office-to-pdf/package.json` (dependencies), and `packages/skill/skill-office/package.json` (dependencies).
154
+ - Distribution is not restated here; the recompute command below prints the current counts of `workspace:*`, `workspace:~`, `workspace:^`, and any exact-range declaration outside the family rule.
155
+ - Exception: the scan decides mechanically; a genuine exception means changing the scan and the policy file with the domain owner's confirmation and the reason on the change.
156
+ - Recompute:
157
+
158
+ ```sh
159
+ python3 -c "import json,glob,collections; c=collections.Counter(); [c.update([r]) for p in glob.glob('apps/*/package.json')+glob.glob('packages/*/*/package.json')+glob.glob('vendor/*/package.json') for s in ('dependencies','devDependencies','optionalDependencies','peerDependencies') for n,r in (json.load(open(p)).get(s) or {}).items() if n.startswith('@deepseek-ai/')]; print(c.most_common())"
160
+ ```
161
+
162
+ Each family in its form, with the non-member exception left as an ordinary version range.
163
+
164
+ ```json
165
+ {
166
+ "dependencies": {
167
+ "@deepseek-ai/dsh-base": "workspace:*",
168
+ "@deepseek-ai/cordis": "workspace:~",
169
+ "@deepseek-ai/libreoffice-kit": "^0.1.5"
170
+ },
171
+ "devDependencies": {
172
+ "@deepseek-ai/dsh-typert-registry": "workspace:*"
173
+ }
174
+ }
175
+ ```
176
+
177
+ A `dsh-*` package on `workspace:~` and a workspace member pinned to an external range — each is a hard scan failure, and the retired rule of pinning exact versions is not available as an alternative.
178
+
179
+ ```json
180
+ {
181
+ "dependencies": {
182
+ "@deepseek-ai/dsh-base": "workspace:~",
183
+ "@deepseek-ai/cordis": "^4.0.0"
184
+ }
185
+ }
186
+ ```
187
+
188
+ ## A new resolve hook is refused outright
189
+
190
+ A new `resolve` hook is refused by default — a definite prohibition, not a preference to avoid one. A genuine need has two preconditions together: re-auditing the resolve strategy as a whole rather than patching the specifier that motivated the change, and the domain owner's confirmation before anything lands. An author's own judgment that this case is special is not a confirmation.
191
+
192
+ - Judged condition: does the change add a `resolve` hook, including a wrapper around an existing hook that rewrites the same specifiers?
193
+ - Boundary: this rule decides whether a hook may be added at all; the separation of resolution, hot reload, and plugin management responsibilities is governed separately and does not permit a new hook.
194
+ - The one resolution path is the tsx ESM hook registered by the `dsh` source launch, whose rationale is in the [source-launch Agent Note](../../.agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.md).
195
+ - Exception: only the two preconditions above, both recorded on the change.
196
+
197
+ The compliant path when new resolution behavior is genuinely needed, in order.
198
+
199
+ ```text
200
+ A new resolve hook is allowed only after both preconditions hold:
201
+
202
+ 1. Re-audit the resolve strategy as a whole — resolution, hot reload, and plugin
203
+ management responsibilities together, not only the specifier at hand.
204
+ 2. Record the domain owner's confirmation on the change.
205
+ 3. Only then add the hook, linking both records from the change.
206
+
207
+ Until both hold, the answer is no; "this case is special" is the author's judgment,
208
+ not a confirmation.
209
+ ```
210
+
211
+ A hook added so that one specifier lands where this package expects it, or the equivalent wrapper around the existing hook — the resolution path gains a branch, and what the resolver returns no longer matches `node_modules`.
212
+
213
+ ```ts ignore-check
214
+ // Added so one specifier resolves to the local source copy
215
+ export async function resolve(specifier: string, parentURL: string, importAttributes: object) {
216
+ if (specifier === '@deepseek-ai/dsh-example') return { url: localSourceUrl, shortCircuit: true }
217
+ return defaultResolve(specifier, parentURL, importAttributes)
218
+ }
219
+
220
+ // The equivalent shape: wrapping the hook that already exists
221
+ const previous = hooks.resolve
222
+ hooks.resolve = (specifier, context, next) =>
223
+ pinned.has(specifier) ? pinned.get(specifier) : previous(specifier, context, next)
224
+ ```
225
+
226
+ ## Package modules do not await at module scope
227
+
228
+ A package source module starts its asynchronous work inside a function it calls, such as an explicit `main()` that handles its own rejection, and never uses `await`, `for await`, or `await using` at module scope: a module-scope wait makes every importer's evaluation wait, turns a rejection into a module-evaluation failure, and cannot be lowered to the synchronous CommonJS wrapper of the browser-worker image.
229
+
230
+ - Judged by [verify-no-top-level-await.ts](../../scripts/verify-no-top-level-await.ts), run as `pnpm run verify-no-top-level-await` and by `scripts/run-gates.ts` as the `no-top-level-await` gate; it parses every `packages/*/*/src/**/*.{ts,tsx}` file and excludes executables by declaration only: a source that starts with `#!`, or the source of a `lib/` output that the package's `bin` field names.
231
+ - Exception: none.
@@ -0,0 +1,231 @@
1
+ # 包面规则
2
+
3
+ [English](package-surface.md) | 中文
4
+
5
+ 关于包导出什么、怎么构建、如何声明依赖的规则。布局本身见 [development.zh.md](../development.zh.md#typescript-project-layout);常设条款见 [packages/AGENTS.md](../../packages/AGENTS.md)。
6
+
7
+ ## 插件包导出 Loader 所需的东西
8
+
9
+ 插件包的入口取两种形态之一,两者不得混用。**函数插件**具名导出 `name`、`inject`、`Config`、`apply`:`name`、`inject`、`apply` 全小写,`Config` 首字母大写,且同时以 `interface` 与 Schemastery schema 值两种形态出现。**服务插件**默认导出它的服务类,Loader 就是这么加载它的;在四件套旁边再加一个默认导出,会让 Loader 丢弃函数插件的命名空间。除这两者之外,Host 入口可以导出供其他包 `extends` 或 `throw` 的 Service Definition 类与错误类型——能力接缝消费的正是这些——但绝不导出测试便利值。UI 插件包的 `/client` 入口更严,[packages/client/AGENTS.md](../../packages/client/AGENTS.md) 是那条纪律的正家:同包测试用相对 `../src/...` 路径或 `./src/*` 子路径触达内部,测试专用的需要因此永远不会变成常驻导出。
10
+
11
+ - Loader 四件套及其准确形态见 [cordis-primer.zh.md](../cordis-primer.zh.md#loader-configuration)。
12
+ - 判定条件:函数插件的入口(`src/index.ts`)导出了四件套以外的实体;在四件套旁边加了默认导出,或两种形态被混用;`/client` 入口导出了实现值、或让另一个功能插件导入了实现值;fixture 用相对路径引用其他包。
13
+ - 边界:只约束 Loader 插件入口。内部模块、工具函数与 hooks 照常导出值;Host 入口的 Service Definition 类与错误类型是应有的导出;测试 fixture 也留在本包内——用相对路径伸进别的包的 `src` 会绕过 `exports` 映射与包边界检查。
14
+ - 例外:无默认例外;确需破例须经对应领域专家确认。
15
+
16
+ 合规的入口——四件套,同包测试路径以注释记录,而不是加出第五个导出。
17
+
18
+ ```ts
19
+ import type { Context } from '@deepseek-ai/cordis'
20
+ import z from '@deepseek-ai/schemastery'
21
+
22
+ // The plugin entry: the Loader four, and no fifth value
23
+ export const name = 'web-app'
24
+ export const inject = ['webServer']
25
+ export interface Config { /* … */ }
26
+ export const Config = z.object({ /* … */ })
27
+ export function apply(ctx: Context, config: Config): void { /* … */ }
28
+
29
+ // A same-package test imports '../src/internal/header.ts' instead of this entry
30
+ ```
31
+
32
+ 三种写法都会让入口多出不该有的导出;三种都能在 diff 里看到。
33
+
34
+ ```ts ignore-check
35
+ // The entry widened so a test could reach one helper
36
+ export { isHeaderLine } from './internal/header.ts'
37
+
38
+ // Both plugin forms on one entry: the Loader discards the four
39
+ export default class WebApp {}
40
+
41
+ // A fixture reaching into another package by relative path
42
+ import { isSurfaceEligibleType } from '../../core/session/src/surface.ts'
43
+ ```
44
+
45
+ ## 包只有两类,且两类都是动态插件包
46
+
47
+ 新增包要么是 Host 包,要么是 Host + Client 包,两类都是动态插件包;没有第三种形态可选,也没有例外。shell 经 [packages/client/web/src/platform.ts](../../packages/client/web/src/platform.ts) 的 `PLATFORM_MODULES` 播种的静态客户端库——`client-store`、`ui-slots`、`ui-primitives`、`ui-dockkit`——以及 [packages/util/](../../packages/util/) 下的零依赖库先于本条规则存在,且**已关闭**:它们照原样继续工作,新增包永不加入其中。只有真正的双面包才拆编译面,生成物进 `lib`,`include`、`external` 与 roster 清单由扫描 workspace 得出,不手写。手写清单或新造编译面会让构建产物与清单不再一致,此后每个新增包都得各自维护清单。
48
+
49
+ - 判定条件:新增包未按动态插件包形态构建(static link 打包、手写的全 external 清单);出现第三种 `tsconfig` 变体;手写 `include`、`external` 或 roster 清单。
50
+ - 形态不要照抄数字,就地复算:先列 `packages/*/*` 下的 `tsconfig.json`,再列同时带 `tsconfig.client.json` 与 `tsconfig.host.json` 的包,最后列声明 `dsh.client` 的包。
51
+ - 边界:双面包允许被 `include` 或 `exclude`。
52
+ - 例外:无;没有审批通道。包的形态或编译面变更须先改正家文档,并须经对应领域专家确认。
53
+ - 正家:[development.zh.md](../development.zh.md#typescript-project-layout) 管编译面,[packages/README.zh.md](../../packages/README.zh.md) 管包分组,[adding-a-package.zh.md](../cookbook/adding-a-package.zh.md) 管步骤。
54
+
55
+ 属于两类之一的包:使用标准清单字段,没有手写 external 清单。
56
+
57
+ ```json
58
+ {
59
+ "name": "@deepseek-ai/dsh-example",
60
+ "type": "module",
61
+ "main": "lib/index.js",
62
+ "types": "lib/types/index.d.ts",
63
+ "exports": {
64
+ ".": { "types": "./lib/types/index.d.ts", "default": "./lib/index.js" }
65
+ }
66
+ }
67
+ ```
68
+
69
+ 手写的 `external` 清单——以及在它旁边为单个包新造的 `tsconfig.foo.json`——让扫描无从推导,构建产物与清单随之不再一致。
70
+
71
+ ```json
72
+ { "name": "@deepseek-ai/dsh-example", "external": ["@deepseek-ai/*"] }
73
+ ```
74
+
75
+ ## `package.json` `exports` 使用标准键集合
76
+
77
+ `package.json` 的 `exports` 只使用标准键集合,集合中每个键在全仓已经只有一个含义,包不得为自己的局部用途开键。只有少数几个包在用、又没有文档正家的键不构成先例:把某个键正式化(包括下面那些未记录在案的键)意味着在同一次改动里改正家文档与检查。键集合小且共享,消费者才能从键名推断用途,扫描也才有可能判定导出映射。
78
+
79
+ - 标准键,每个键在全仓只有一个含义,统计口径是 `packages/*/*/package.json` 与 `apps/*/package.json`:`.`(包主入口)、`./package.json`(工具链访问,不是语义导出)、`./src/*`(测试与工具的源码透传,文档状态仍待定)、`./client`(浏览器入口,与 `dsh.client` 声明配对)、`./types`(类型入口)、`./typert`(typert 类型运行时)、`./remote`(`@Remote` 调用面)、`./locale/*.json`(本地化资源)、`./cordis.patch.yml`(`dsh.bundle` 声明的 bundle 补丁层)。这里不列各键的包数,因为下一个包就会让它过期;下面的复算命令会打印当前数字。
80
+ - 集合之外的键(`./brand` 5 个包、`./worker` 4 个、`./startup`、`./runner`、`./protocol` 各 2 个,另有大量一次性键)没有文档含义,属待核项,不是可照抄的先例。
81
+ - 判定条件:改动是否新增了标准集合以外的 export 键?
82
+ - 例外:无默认例外;新增键须先改正家文档与检查,并取得对应领域专家确认。
83
+ - 复算分布:
84
+
85
+ ```sh
86
+ python3 -c "import json,glob,collections; c=collections.Counter(); [c.update(json.load(open(p)).get('exports',{}).keys()) for p in glob.glob('packages/*/*/package.json')+glob.glob('apps/*/package.json') if isinstance(json.load(open(p)).get('exports'),dict)]; print(c.most_common())"
87
+ ```
88
+
89
+ 合规的映射——三个标准键各按全仓含义使用,该包同时声明了 client 入口。
90
+
91
+ ```json
92
+ {
93
+ "exports": {
94
+ ".": { "types": "./lib/types/index.d.ts", "default": "./lib/index.js" },
95
+ "./client": { "types": "./lib/types/client/index.d.ts", "default": "./lib/client.js" },
96
+ "./types": { "types": "./lib/types/types.d.ts", "default": "./lib/types/types.js" },
97
+ "./src/*": "./src/*",
98
+ "./package.json": "./package.json"
99
+ }
100
+ }
101
+ ```
102
+
103
+ 为单个包的局部用途开的键——这里是文档地位待核的 `./brand` 与 `./worker`——让导出映射退化为各包自便的约定,消费者与扫描都读不懂。
104
+
105
+ ```json
106
+ {
107
+ "exports": {
108
+ ".": "./lib/index.js",
109
+ "./brand": "./lib/brand.js",
110
+ "./worker": "./lib/worker.js"
111
+ }
112
+ }
113
+ ```
114
+
115
+ ## 依赖声明与版本一致性由依赖扫描门禁保证
116
+
117
+ 依赖声明与版本一致性由依赖扫描机械保证;本页既不复述 `devDependencies` 与 `peerDependencies` 的字段规则,也不另立包准入清单。扫描失败时,在本地复现并修正它指名的清单,因为规则的正家是扫描与其策略文件。为了让改动落地而修改扫描或放宽策略不属于常规改动,须经对应领域专家确认。
118
+
119
+ - 入口:[verify-package-dependencies.ts](../../scripts/verify-package-dependencies.ts),以 `pnpm run verify-package-dependencies` 运行,被 `scripts/run-gates.ts` 作为 `package-dependencies` 门禁调用,`.github/workflows/release.yml` 也直接运行它。
120
+ - 策略正家:[package-dependency-policy.ts](../../scripts/package-dependency-policy.ts) 导出 `PACKAGE_DEPENDENCY_POLICY`;声明面、版本形态与豁免都在该文件定义,包级背景见 [packages/README.zh.md](../../packages/README.zh.md)。
121
+ - 边界:本页不列包清单、字段规则或阈值,只指向正家文件。
122
+ - 查接线:`grep -rn "verify-package-dependencies" package.json .github/workflows scripts/run-gates.ts`。
123
+ - 例外:修改扫描或策略须经对应领域专家确认,并在改动上记录理由。
124
+
125
+ 可重复的流程:复现、读诊断、修正它指名的清单。
126
+
127
+ ```sh
128
+ # 1. Reproduce what CI reports
129
+ pnpm run verify-package-dependencies
130
+
131
+ # 2. The diagnostic names the manifest, the section, the dependency, and the expected range
132
+ # packages/example/package.json: dependencies.@deepseek-ai/dsh-base must use workspace:*, found workspace:~
133
+
134
+ # 3. The fix goes into the manifest, never into the policy file or the scan
135
+ # "dependencies": { "@deepseek-ai/dsh-base": "workspace:*" }
136
+
137
+ # 4. Re-run the scan until every package matches the published policy
138
+ pnpm run verify-package-dependencies
139
+ ```
140
+
141
+ 失去机械保证的两种做法:改检查而不改清单,或者把规则复述到本页、从此与正家漂移。
142
+
143
+ ```text
144
+ Relaxing PACKAGE_DEPENDENCY_POLICY, or dropping the scanned section that fails, to go green
145
+ Restating a required-devDependency package list or the field rules on this page instead of linking the policy file
146
+ ```
147
+
148
+ ## 内部依赖写法按包族保证
149
+
150
+ 内部依赖写法按包族决定:`@deepseek-ai/dsh` 与 `@deepseek-ai/dsh-*` 用 `workspace:*`,其余内部包用 `workspace:~`,`workspace:^` 已退出。同一个依赖名在所有 workspace 内写法一致,不一致是扫描硬失败,不是评审可以放行的警告。写法统一才能保持一条解析路径,避免同一个依赖出现重复实例以及随之而来的解析差异。
151
+
152
+ - 判定在 [verify-package-dependencies.ts](../../scripts/verify-package-dependencies.ts) 的 `workspaceRange()`:`@deepseek-ai/dsh` 与 `@deepseek-ai/dsh-*` 包族取 `workspace:*`,其余内部包取 `workspace:~`;扫描遍历受管清单,比对同一依赖名的每一处声明。
153
+ - 边界:同命名空间但不是 workspace 成员的包按普通第三方版本范围声明,不受包族规则约束——`@deepseek-ai/libreoffice-kit` 在 `apps/desktop-host/package.json`(dependencies)、`packages/bundle/web-app/package.json`(devDependencies)、`packages/document/office-to-pdf/package.json`(dependencies)、`packages/skill/skill-office/package.json`(dependencies)中声明为 `^0.1.5`。
154
+ - 分布不在此复述;下面的复算命令会打印 `workspace:*`、`workspace:~`、`workspace:^` 的当前数量,以及族规则之外的精确版本声明。
155
+ - 例外:门禁机械判定;确需例外意味着修改扫描与策略文件,并须经对应领域专家确认、在改动上说明理由。
156
+ - 复算:
157
+
158
+ ```sh
159
+ python3 -c "import json,glob,collections; c=collections.Counter(); [c.update([r]) for p in glob.glob('apps/*/package.json')+glob.glob('packages/*/*/package.json')+glob.glob('vendor/*/package.json') for s in ('dependencies','devDependencies','optionalDependencies','peerDependencies') for n,r in (json.load(open(p)).get(s) or {}).items() if n.startswith('@deepseek-ai/')]; print(c.most_common())"
160
+ ```
161
+
162
+ 每个包族各用其写法,非成员的例外保持普通版本范围。
163
+
164
+ ```json
165
+ {
166
+ "dependencies": {
167
+ "@deepseek-ai/dsh-base": "workspace:*",
168
+ "@deepseek-ai/cordis": "workspace:~",
169
+ "@deepseek-ai/libreoffice-kit": "^0.1.5"
170
+ },
171
+ "devDependencies": {
172
+ "@deepseek-ai/dsh-typert-registry": "workspace:*"
173
+ }
174
+ }
175
+ ```
176
+
177
+ `dsh-*` 包写成 `workspace:~`,以及把 workspace 成员钉到外部版本范围——两者都是扫描硬失败,已退出的「一律钉精确版本」旧口径不能作为替代写法。
178
+
179
+ ```json
180
+ {
181
+ "dependencies": {
182
+ "@deepseek-ai/dsh-base": "workspace:~",
183
+ "@deepseek-ai/cordis": "^4.0.0"
184
+ }
185
+ }
186
+ ```
187
+
188
+ ## 新增 resolve 钩子直接禁止
189
+
190
+ 新增 `resolve` 钩子默认被拒——这是确定性禁止,不是「尽量不」。确有需要时,两个前置条件必须同时成立:整体重审 resolve 策略,而不是给触发本次改动的那个 specifier 打补丁;以及在任何内容落地之前取得对应领域专家的确认。开发者自行判断「这次特殊」不构成确认。
191
+
192
+ - 判定条件:改动是否新增 `resolve` 钩子,包括包装既有钩子、改写同一批 specifier 的等价写法?
193
+ - 边界:本条只管能否新增钩子;解析、热更新与插件管理三者的职责划分另行治理,并不因此允许新增钩子。
194
+ - 唯一的解析路径是 `dsh` 源码启动注册的 tsx ESM 钩子,其理由见[源码启动 Agent Note](../../.agents/notes/implemented/architecture/2026-07-29-dsh-source-launch-tsx-esm.zh.md)。
195
+ - 例外:只有上述两个前置条件,且都要记录在改动上。
196
+
197
+ 确有新的解析需求时的合规路径,按顺序。
198
+
199
+ ```text
200
+ A new resolve hook is allowed only after both preconditions hold:
201
+
202
+ 1. Re-audit the resolve strategy as a whole — resolution, hot reload, and plugin
203
+ management responsibilities together, not only the specifier at hand.
204
+ 2. Record the domain owner's confirmation on the change.
205
+ 3. Only then add the hook, linking both records from the change.
206
+
207
+ Until both hold, the answer is no; "this case is special" is the author's judgment,
208
+ not a confirmation.
209
+ ```
210
+
211
+ 为了让某个 specifier 落到本包期望的位置而加的钩子,或包装既有钩子达到同样效果的等价写法——解析路径多出一个分支,resolver 的返回与 `node_modules` 实况不再对应。
212
+
213
+ ```ts ignore-check
214
+ // Added so one specifier resolves to the local source copy
215
+ export async function resolve(specifier: string, parentURL: string, importAttributes: object) {
216
+ if (specifier === '@deepseek-ai/dsh-example') return { url: localSourceUrl, shortCircuit: true }
217
+ return defaultResolve(specifier, parentURL, importAttributes)
218
+ }
219
+
220
+ // The equivalent shape: wrapping the hook that already exists
221
+ const previous = hooks.resolve
222
+ hooks.resolve = (specifier, context, next) =>
223
+ pinned.has(specifier) ? pinned.get(specifier) : previous(specifier, context, next)
224
+ ```
225
+
226
+ ## 包模块不在模块顶层 await
227
+
228
+ 包源码模块的异步工作在它调用的函数里启动(例如自己处理 rejection 的显式 `main()`),模块顶层不使用 `await`、`for await` 或 `await using`:模块顶层的等待会让每个导入方的求值跟着等待,把 rejection 变成模块求值失败,而且无法降级成浏览器 Worker 镜像使用的同步 CommonJS 包装。
229
+
230
+ - 判定依据:[verify-no-top-level-await.ts](../../scripts/verify-no-top-level-await.ts),以 `pnpm run verify-no-top-level-await` 运行,也由 `scripts/run-gates.ts` 作为 `no-top-level-await` 门禁运行;它解析每个 `packages/*/*/src/**/*.{ts,tsx}` 文件,只按声明排除可执行入口:以 `#!` 开头的源码,或包的 `bin` 字段指向的 `lib/` 产物所对应的源码。
231
+ - 例外:无。
@@ -0,0 +1,16 @@
1
+ # Bilingual-pair consistency record for remote-and-api.md (docs/i18n/README.md): per heading
2
+ # section, a hash of its English and Chinese blocks outside code blocks and generated regions.
3
+ # After editing either side, bring the other along and re-record with:
4
+ # pnpm run verify-translation-pairing --write docs/defensive-patterns/remote-and-api.md
5
+ /remote-and-api-rules:
6
+ en: 26fb6e92d16925b0
7
+ zh: 72d13c0481fc61e9
8
+ /remote-and-api-rules/a-new-remote-capability-gets-its-own-service:
9
+ en: 5759a7b0f96ea4bc
10
+ zh: 62465fbe91a4d2af
11
+ /remote-and-api-rules/remote-marks-capability-methods:
12
+ en: 86422ee69c63f339
13
+ zh: 4a5e8d6f5d9a6ae3
14
+ /remote-and-api-rules/packages-api-carries-generic-orchestration-only:
15
+ en: 12a964b9c04fccf9
16
+ zh: cf804f8044535727
@@ -0,0 +1,115 @@
1
+ # Remote and API rules
2
+
3
+ English | [中文](remote-and-api.zh.md)
4
+
5
+ Rules for the `packages/api` layer and the remote methods it exposes. [api-gateway.md](../api-gateway.md) describes the call model itself. Each section below states the requirement, how a reviewer judges it, what it does not cover, which exception applies and who approves it, and a correct and a wrong example.
6
+
7
+ ## A new remote capability gets its own service
8
+
9
+ A new remote business capability is a new service — its own package or its own object — and `@Remote` marks that service's concrete methods. Growing an existing large service one method at a time leaves one object answering for auth, Session, workspace, and event carriage at once, mixes per-domain activation policy with history pagination, and makes every later change to one capability touch all of them. Split by business boundary, not by caller count: a capability with a single caller today still gets its own service, and an endpoint that changes owners moves to its new owner instead of joining the object it is leaving.
10
+
11
+ - Judged by: which object holds the new remote method. A method for a new business line added to a service that already owns another line is the defect; the fix is a service named for the new capability, with `@Remote` on its concrete methods. A migration is judged the same way — the moved method appears on its new owner, as `SubagentRuntime` does in `packages/subagent/subagent`, not on the object it left.
12
+ - Not covered: a service whose methods all serve one business boundary stays whole, and a new private helper of that capability belongs on it. Data that needs its own protocol does not become a Remote method on the new service either; session event streams, pagination, incremental reduce, projection, and entity substreams keep their separate registration model ([gateway boundaries](../api-gateway.md#boundaries)).
13
+ - Exception: none recorded; a single caller is not a reason to merge. Where the business boundary itself is contested, the domain owner settles it as an architecture question before the change lands.
14
+ - Fix: create the capability's own service object or package, put `@Remote` on its concrete methods, and let callers reach it through `ctx.remote.<namespace>`.
15
+
16
+ The subagent capability owns its own service, and every remote method is a concrete method of that service:
17
+
18
+ ```ts ignore-check
19
+ import { Remote, TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol'
20
+
21
+ interface SubagentList { ids: string[] }
22
+ interface PromptRequest { text: string }
23
+ interface PromptResult { accepted: boolean }
24
+
25
+ class SubagentRuntime extends TypertRemoteService {
26
+ @Remote list(): SubagentList { return { ids: [] } }
27
+ @Remote prompt(request: PromptRequest): PromptResult {
28
+ return { accepted: request.text !== '' }
29
+ }
30
+ @Remote interruptByParent(id: string): void { }
31
+ }
32
+ ```
33
+
34
+ The wrong version adds the same capability to the object that already carries other domains:
35
+
36
+ ```text
37
+ class ApiProxy {
38
+ @Remote goalList(): GoalList // goal domain
39
+ @Remote subagentPrompt(request): ... // subagent domain
40
+ }
41
+ ```
42
+
43
+ One object then answers for both domains, so a change to either capability's activation policy, pagination, or event handling lands in the same place, and neither capability can move without the other.
44
+
45
+ ## `@Remote` marks capability methods
46
+
47
+ `@Remote` carries five disciplines that a reviewer checks separately: it marks the concrete method that performs a capability; client-facing types come from the existing definitions through the generator instead of a hand-written copy; the payload is JSON and the remote method performs no output-side decode; existing method and field names are additive; and a method names every resource it touches and reads its caller only from the invocation. Each discipline removes a different failure — a wrapper hides which operation is exposed, a second hand-written type set drifts from the generated one, an output-side decode adds a second result path beside the codec the Gateway already runs, a rename breaks every caller in the same change, and an unnamed resource, an unfiltered aggregate, or an argument-supplied caller lets a non-owner reach what no binding grants it.
48
+
49
+ - **Capability methods.** The annotation goes on the concrete method that performs the operation (`list`, `prompt`, `interruptByParent`), never on a wrapper that forwards to the real implementation. Judged by the decorated method's body: a body that only delegates means the annotation is on the wrong method.
50
+ - **Types from inference.** Client-facing types are aliased from what the generator produces — `type SessionRemote = TypertClientRemote['session']` — instead of being written a second time. Judged by a hand-written declaration whose fields repeat a generated Client type; [typert.md](../subsystems/typert.md) owns the generated maps and their declaration merges.
51
+ - **JSON on the wire, no output-side decode.** The **wire payload** of a Remote method is JSON, with binary content expressed field-level. The Host signature keeps what the Gateway already supports — lookup arguments resolved to Host objects, a trailing `AbortSignal`, a stream declared with `@Remote({ mode: 'stream' })` — and `@Remote` performs no decode on the way out; the generated codec and the Gateway validate the result. Judged by a decode, a stream reassembly, or a whole non-JSON value in the payload of a method carrying the decorator; [programming model](../api-gateway.md#programming-model) owns what may cross a Remote method.
52
+ - **Existing names are additive.** A migration does not rename a remote method or field that a Client already calls; a new semantic gets a new entry, and a rename is its own change with its own review. Judged by a diff that renames or removes a name already exposed through `ctx.remote.<namespace>`.
53
+ - **Caller identity and access.** Every Remote method is under access control: the `@Remote({ resources })` / `@RemoteScope(key, { resources })` readers and automatic resolution must name every resource the method touches, because access control never checks a resource they omit, and a method returning several resources filters each item through `this.ctx.remoteAccess.allows(resource)`. The caller is read only from `this.ctx.invocation.peer.principal`, never from arguments; a Remote method that builds a user-message source records it through `principalOf(this.ctx.invocation)` and passes the built source down instead of passing the principal as a function argument. Every call path names its Peer explicitly. Judged by a method whose resolved resources omit one it touches, an unfiltered aggregate, a principal read from wire data or threaded through helper parameters, or a user-message source built in a Remote method without `principalOf`; the [Peer principals Agent Note](../../.agents/notes/implemented/architecture/2026-10-12-peer-principal-and-remote-access.md) owns the design.
54
+ - **Not covered.** A method without the decorator stays an ordinary service method with in-process callers; the five disciplines govern what becomes a Remote method, not what a service may implement.
55
+ - **Exception.** A rename or a new decode path states its benefit and the impact on existing callers first and needs the domain owner's confirmation; the author never self-approves.
56
+
57
+ The generated map is the only source for Client-facing types, the decorator sits on the concrete method, and the payload stays JSON:
58
+
59
+ ```ts ignore-check
60
+ import { Remote, TypertRemoteService, type TypertClientRemote } from '@deepseek-ai/dsh-typert-protocol'
61
+
62
+ // Client-facing types come from the generated map, never from a second hand-written set.
63
+ type SessionRemote = TypertClientRemote['session']
64
+
65
+ class SessionController extends TypertRemoteService {
66
+ @Remote('search')
67
+ search(query: string): SessionSearchValue {
68
+ return this.runSearch(query)
69
+ }
70
+ }
71
+ ```
72
+
73
+ A hand-written second type set, a rename of a shipped name, and an output-side decode each break a different discipline:
74
+
75
+ ```text
76
+ type SessionRemote = { list(): ...; rename(id: string): ... } // hand-written copy
77
+ @Remote('renameSession') rename(...) // shipped name changed
78
+ @Remote decode(payload: Uint8Array): Result // output-side decode
79
+ ```
80
+
81
+ The hand-written copy drifts from the generated type without failing a build, the rename breaks every existing Client call at once, and the decode replaces the generated codec with a second, unchecked result path.
82
+
83
+ ## `packages/api` carries generic orchestration only
84
+
85
+ The packages under `packages/api` — the controllers, `gateway`, and `remotes` — carry transport, call shape, Session lifecycle, and other generic orchestration. A business branch never aggregates there: a decision that depends on concrete business state, handling bound to one feature, or a per-feature filter belongs in its own package or module and reaches this layer as projected data or through a registration surface. The criterion is where the logic belongs, not where the file sits, so a branch that only makes sense for one feature is a defect even when the file holding it is generic.
86
+
87
+ - Judged by: where the branch reads its condition. An `if` or `switch` over feature state, a per-feature filter, or a helper named for one feature inside `packages/api` is the defect; the same decision taken in the owning package and consumed here as projected data or a registered entry is not. The package census shows the impact: `packages/api` holds nine packages — `account-controller`, `gateway`, `job-controller`, `remotes`, `session-controller`, `settings-controller`, `terminal-controller`, `workspace-controller`, `workspace-files` — and `session-controller` is the largest at 34 `src` files (terminal-controller 12, gateway 11, workspace-controller 10, workspace-files 8, job-controller 8, remotes 4, settings-controller 3, account-controller 2).
88
+ - Not covered: generic Session lifecycle, transport, and storage abstraction stay — `gateway` dispatch, `remotes` selection, and shared session-list and catalog reads are infrastructure, not business logic. [Business ownership](../api-gateway.md#business-ownership) states the same split from the Gateway side.
89
+ - Exception: none by default. Adding a business branch here needs an independent-package review, and that review answers why the logic cannot live in the package that owns the feature.
90
+ - Fix: move the decision into the owning package, publish its result as projected data or register it on a registry this layer already injects, and leave only the orchestration that reads it.
91
+
92
+ The owning package decides and registers its unit, and the controller only reads the projected value:
93
+
94
+ ```ts ignore-check
95
+ // packages/workspace/<feature>/src/index.ts: the rule lives with the feature it serves.
96
+ ctx.sessionProjections.register({
97
+ key: 'durablePage',
98
+ stateSchema: durablePageState,
99
+ init: () => ({ durable: false }),
100
+ apply: applyDurablePage,
101
+ stateVersion: 1,
102
+ })
103
+
104
+ // packages/api/session-controller: generic orchestration reads the projected value.
105
+ const { durable } = ctx.sessionProjections.stateOf(session, 'durablePage')
106
+ ```
107
+
108
+ The wrong version decides the rule inside the shared layer:
109
+
110
+ ```text
111
+ // packages/api/session-controller: a feature branch inside the shared layer
112
+ if (session.page.transport === 'durable') { /* durable-transport handling */ }
113
+ ```
114
+
115
+ The rule then has a second home, and every later change to it has to find both while the shared layer keeps carrying one feature's semantics.