@tencent-ai/codebuddy-code 2.67.0-next.ed1b89f.20260329 → 2.68.0

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 (458) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/codebuddy-headless.js +53 -53
  3. package/dist/codebuddy.js +93 -64
  4. package/dist/web-ui/assets/index-BoMlEqUE.js +439 -0
  5. package/dist/web-ui/assets/index-Dt1puyHn.css +32 -0
  6. package/dist/web-ui/docs/cn/cli/acp.md +152 -0
  7. package/dist/web-ui/docs/cn/cli/agent-teams.md +327 -0
  8. package/dist/web-ui/docs/cn/cli/bash-sandboxing.md +290 -0
  9. package/dist/web-ui/docs/cn/cli/best-practices.md +554 -0
  10. package/dist/web-ui/docs/cn/cli/channels-reference.md +293 -0
  11. package/dist/web-ui/docs/cn/cli/channels.md +215 -0
  12. package/dist/web-ui/docs/cn/cli/checkpointing.md +51 -0
  13. package/dist/web-ui/docs/cn/cli/cli-reference.md +187 -0
  14. package/dist/web-ui/docs/cn/cli/common-workflows.md +1013 -0
  15. package/dist/web-ui/docs/cn/cli/costs.md +174 -0
  16. package/dist/web-ui/docs/cn/cli/devcontainer.md +553 -0
  17. package/dist/web-ui/docs/cn/cli/env-vars.md +326 -0
  18. package/dist/web-ui/docs/cn/cli/gitlab-ci-cd.md +357 -0
  19. package/dist/web-ui/docs/cn/cli/headless.md +258 -0
  20. package/dist/web-ui/docs/cn/cli/hooks-guide.md +9 -0
  21. package/dist/web-ui/docs/cn/cli/hooks.md +805 -0
  22. package/dist/web-ui/docs/cn/cli/iam.md +530 -0
  23. package/dist/web-ui/docs/cn/cli/ide-integrations.md +92 -0
  24. package/dist/web-ui/docs/cn/cli/installation.md +291 -0
  25. package/dist/web-ui/docs/cn/cli/interactive-mode.md +233 -0
  26. package/dist/web-ui/docs/cn/cli/mcp.md +739 -0
  27. package/dist/web-ui/docs/cn/cli/memory.md +436 -0
  28. package/dist/web-ui/docs/cn/cli/models.md +356 -0
  29. package/dist/web-ui/docs/cn/cli/overview.md +100 -0
  30. package/dist/web-ui/docs/cn/cli/plugin-marketplaces.md +533 -0
  31. package/dist/web-ui/docs/cn/cli/plugins-reference.md +774 -0
  32. package/dist/web-ui/docs/cn/cli/plugins.md +689 -0
  33. package/dist/web-ui/docs/cn/cli/quickstart.md +249 -0
  34. package/dist/web-ui/docs/cn/cli/release-notes/README.md +199 -0
  35. package/dist/web-ui/docs/cn/cli/release-notes/v2.10.0.md +23 -0
  36. package/dist/web-ui/docs/cn/cli/release-notes/v2.10.1.md +5 -0
  37. package/dist/web-ui/docs/cn/cli/release-notes/v2.11.0.md +24 -0
  38. package/dist/web-ui/docs/cn/cli/release-notes/v2.12.0.md +21 -0
  39. package/dist/web-ui/docs/cn/cli/release-notes/v2.13.0.md +20 -0
  40. package/dist/web-ui/docs/cn/cli/release-notes/v2.14.0.md +22 -0
  41. package/dist/web-ui/docs/cn/cli/release-notes/v2.14.1.md +8 -0
  42. package/dist/web-ui/docs/cn/cli/release-notes/v2.15.0.md +18 -0
  43. package/dist/web-ui/docs/cn/cli/release-notes/v2.15.1.md +11 -0
  44. package/dist/web-ui/docs/cn/cli/release-notes/v2.16.0.md +20 -0
  45. package/dist/web-ui/docs/cn/cli/release-notes/v2.17.0.md +29 -0
  46. package/dist/web-ui/docs/cn/cli/release-notes/v2.18.0.md +17 -0
  47. package/dist/web-ui/docs/cn/cli/release-notes/v2.19.0.md +11 -0
  48. package/dist/web-ui/docs/cn/cli/release-notes/v2.19.1.md +14 -0
  49. package/dist/web-ui/docs/cn/cli/release-notes/v2.19.2.md +11 -0
  50. package/dist/web-ui/docs/cn/cli/release-notes/v2.20.0.md +23 -0
  51. package/dist/web-ui/docs/cn/cli/release-notes/v2.20.1.md +15 -0
  52. package/dist/web-ui/docs/cn/cli/release-notes/v2.21.0.md +13 -0
  53. package/dist/web-ui/docs/cn/cli/release-notes/v2.22.0.md +16 -0
  54. package/dist/web-ui/docs/cn/cli/release-notes/v2.23.0.md +20 -0
  55. package/dist/web-ui/docs/cn/cli/release-notes/v2.23.2.md +5 -0
  56. package/dist/web-ui/docs/cn/cli/release-notes/v2.23.3.md +5 -0
  57. package/dist/web-ui/docs/cn/cli/release-notes/v2.23.4.md +15 -0
  58. package/dist/web-ui/docs/cn/cli/release-notes/v2.23.5.md +11 -0
  59. package/dist/web-ui/docs/cn/cli/release-notes/v2.24.0.md +17 -0
  60. package/dist/web-ui/docs/cn/cli/release-notes/v2.25.0.md +18 -0
  61. package/dist/web-ui/docs/cn/cli/release-notes/v2.25.1.md +21 -0
  62. package/dist/web-ui/docs/cn/cli/release-notes/v2.26.0.md +18 -0
  63. package/dist/web-ui/docs/cn/cli/release-notes/v2.27.0.md +16 -0
  64. package/dist/web-ui/docs/cn/cli/release-notes/v2.27.1.md +16 -0
  65. package/dist/web-ui/docs/cn/cli/release-notes/v2.27.2.md +7 -0
  66. package/dist/web-ui/docs/cn/cli/release-notes/v2.27.3.md +15 -0
  67. package/dist/web-ui/docs/cn/cli/release-notes/v2.28.0.md +26 -0
  68. package/dist/web-ui/docs/cn/cli/release-notes/v2.28.1.md +5 -0
  69. package/dist/web-ui/docs/cn/cli/release-notes/v2.29.0.md +35 -0
  70. package/dist/web-ui/docs/cn/cli/release-notes/v2.3.1.md +16 -0
  71. package/dist/web-ui/docs/cn/cli/release-notes/v2.30.0.md +19 -0
  72. package/dist/web-ui/docs/cn/cli/release-notes/v2.30.1.md +5 -0
  73. package/dist/web-ui/docs/cn/cli/release-notes/v2.31.0.md +51 -0
  74. package/dist/web-ui/docs/cn/cli/release-notes/v2.31.1.md +11 -0
  75. package/dist/web-ui/docs/cn/cli/release-notes/v2.31.2.md +16 -0
  76. package/dist/web-ui/docs/cn/cli/release-notes/v2.32.0.md +19 -0
  77. package/dist/web-ui/docs/cn/cli/release-notes/v2.33.0.md +28 -0
  78. package/dist/web-ui/docs/cn/cli/release-notes/v2.33.1.md +7 -0
  79. package/dist/web-ui/docs/cn/cli/release-notes/v2.36.3.md +17 -0
  80. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.0.md +15 -0
  81. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.1.md +15 -0
  82. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.10.md +5 -0
  83. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.11.md +8 -0
  84. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.12.md +14 -0
  85. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.13.md +11 -0
  86. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.14.md +24 -0
  87. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.15.md +11 -0
  88. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.16.md +9 -0
  89. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.17.md +5 -0
  90. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.18.md +9 -0
  91. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.19.md +5 -0
  92. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.2.md +28 -0
  93. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.20.md +8 -0
  94. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.3.md +22 -0
  95. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.4.md +19 -0
  96. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.5.md +5 -0
  97. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.6.md +5 -0
  98. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.7.md +5 -0
  99. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.8.md +5 -0
  100. package/dist/web-ui/docs/cn/cli/release-notes/v2.37.9.md +8 -0
  101. package/dist/web-ui/docs/cn/cli/release-notes/v2.38.0.md +22 -0
  102. package/dist/web-ui/docs/cn/cli/release-notes/v2.38.1.md +6 -0
  103. package/dist/web-ui/docs/cn/cli/release-notes/v2.38.2.md +9 -0
  104. package/dist/web-ui/docs/cn/cli/release-notes/v2.39.0.md +18 -0
  105. package/dist/web-ui/docs/cn/cli/release-notes/v2.4.0.md +19 -0
  106. package/dist/web-ui/docs/cn/cli/release-notes/v2.40.0.md +20 -0
  107. package/dist/web-ui/docs/cn/cli/release-notes/v2.40.1.md +6 -0
  108. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.0.md +15 -0
  109. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.1.md +6 -0
  110. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.2.md +5 -0
  111. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.3.md +8 -0
  112. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.4.md +5 -0
  113. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.5.md +10 -0
  114. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.6.md +9 -0
  115. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.7.md +14 -0
  116. package/dist/web-ui/docs/cn/cli/release-notes/v2.41.8.md +18 -0
  117. package/dist/web-ui/docs/cn/cli/release-notes/v2.42.0.md +39 -0
  118. package/dist/web-ui/docs/cn/cli/release-notes/v2.42.1.md +8 -0
  119. package/dist/web-ui/docs/cn/cli/release-notes/v2.42.3.md +18 -0
  120. package/dist/web-ui/docs/cn/cli/release-notes/v2.43.0.md +27 -0
  121. package/dist/web-ui/docs/cn/cli/release-notes/v2.43.1.md +27 -0
  122. package/dist/web-ui/docs/cn/cli/release-notes/v2.44.0.md +11 -0
  123. package/dist/web-ui/docs/cn/cli/release-notes/v2.44.1.md +22 -0
  124. package/dist/web-ui/docs/cn/cli/release-notes/v2.45.0.md +34 -0
  125. package/dist/web-ui/docs/cn/cli/release-notes/v2.45.1.md +7 -0
  126. package/dist/web-ui/docs/cn/cli/release-notes/v2.46.0.md +12 -0
  127. package/dist/web-ui/docs/cn/cli/release-notes/v2.47.0.md +20 -0
  128. package/dist/web-ui/docs/cn/cli/release-notes/v2.48.0.md +32 -0
  129. package/dist/web-ui/docs/cn/cli/release-notes/v2.48.1.md +11 -0
  130. package/dist/web-ui/docs/cn/cli/release-notes/v2.49.0.md +26 -0
  131. package/dist/web-ui/docs/cn/cli/release-notes/v2.49.1.md +14 -0
  132. package/dist/web-ui/docs/cn/cli/release-notes/v2.49.2.md +39 -0
  133. package/dist/web-ui/docs/cn/cli/release-notes/v2.49.3.md +7 -0
  134. package/dist/web-ui/docs/cn/cli/release-notes/v2.49.5.md +11 -0
  135. package/dist/web-ui/docs/cn/cli/release-notes/v2.49.6.md +9 -0
  136. package/dist/web-ui/docs/cn/cli/release-notes/v2.49.7.md +7 -0
  137. package/dist/web-ui/docs/cn/cli/release-notes/v2.5.0.md +24 -0
  138. package/dist/web-ui/docs/cn/cli/release-notes/v2.50.0.md +25 -0
  139. package/dist/web-ui/docs/cn/cli/release-notes/v2.50.1.md +9 -0
  140. package/dist/web-ui/docs/cn/cli/release-notes/v2.50.2.md +11 -0
  141. package/dist/web-ui/docs/cn/cli/release-notes/v2.50.3.md +5 -0
  142. package/dist/web-ui/docs/cn/cli/release-notes/v2.50.4.md +17 -0
  143. package/dist/web-ui/docs/cn/cli/release-notes/v2.50.5.md +16 -0
  144. package/dist/web-ui/docs/cn/cli/release-notes/v2.50.6.md +15 -0
  145. package/dist/web-ui/docs/cn/cli/release-notes/v2.50.7.md +15 -0
  146. package/dist/web-ui/docs/cn/cli/release-notes/v2.51.0.md +24 -0
  147. package/dist/web-ui/docs/cn/cli/release-notes/v2.51.1.md +17 -0
  148. package/dist/web-ui/docs/cn/cli/release-notes/v2.51.2.md +5 -0
  149. package/dist/web-ui/docs/cn/cli/release-notes/v2.52.0.md +30 -0
  150. package/dist/web-ui/docs/cn/cli/release-notes/v2.52.1.md +28 -0
  151. package/dist/web-ui/docs/cn/cli/release-notes/v2.52.2.md +12 -0
  152. package/dist/web-ui/docs/cn/cli/release-notes/v2.52.3.md +13 -0
  153. package/dist/web-ui/docs/cn/cli/release-notes/v2.52.4.md +27 -0
  154. package/dist/web-ui/docs/cn/cli/release-notes/v2.52.5.md +21 -0
  155. package/dist/web-ui/docs/cn/cli/release-notes/v2.52.6.md +7 -0
  156. package/dist/web-ui/docs/cn/cli/release-notes/v2.53.0.md +29 -0
  157. package/dist/web-ui/docs/cn/cli/release-notes/v2.54.0.md +26 -0
  158. package/dist/web-ui/docs/cn/cli/release-notes/v2.55.0.md +21 -0
  159. package/dist/web-ui/docs/cn/cli/release-notes/v2.55.1.md +13 -0
  160. package/dist/web-ui/docs/cn/cli/release-notes/v2.56.0.md +20 -0
  161. package/dist/web-ui/docs/cn/cli/release-notes/v2.56.1.md +5 -0
  162. package/dist/web-ui/docs/cn/cli/release-notes/v2.57.0.md +32 -0
  163. package/dist/web-ui/docs/cn/cli/release-notes/v2.57.1.md +10 -0
  164. package/dist/web-ui/docs/cn/cli/release-notes/v2.58.0.md +34 -0
  165. package/dist/web-ui/docs/cn/cli/release-notes/v2.59.0.md +28 -0
  166. package/dist/web-ui/docs/cn/cli/release-notes/v2.6.0.md +5 -0
  167. package/dist/web-ui/docs/cn/cli/release-notes/v2.6.1.md +10 -0
  168. package/dist/web-ui/docs/cn/cli/release-notes/v2.60.0.md +20 -0
  169. package/dist/web-ui/docs/cn/cli/release-notes/v2.61.0.md +29 -0
  170. package/dist/web-ui/docs/cn/cli/release-notes/v2.61.1.md +5 -0
  171. package/dist/web-ui/docs/cn/cli/release-notes/v2.61.2.md +6 -0
  172. package/dist/web-ui/docs/cn/cli/release-notes/v2.61.3.md +13 -0
  173. package/dist/web-ui/docs/cn/cli/release-notes/v2.62.0.md +21 -0
  174. package/dist/web-ui/docs/cn/cli/release-notes/v2.62.1.md +11 -0
  175. package/dist/web-ui/docs/cn/cli/release-notes/v2.63.0.md +19 -0
  176. package/dist/web-ui/docs/cn/cli/release-notes/v2.63.1.md +5 -0
  177. package/dist/web-ui/docs/cn/cli/release-notes/v2.63.2.md +7 -0
  178. package/dist/web-ui/docs/cn/cli/release-notes/v2.63.3.md +6 -0
  179. package/dist/web-ui/docs/cn/cli/release-notes/v2.63.4.md +8 -0
  180. package/dist/web-ui/docs/cn/cli/release-notes/v2.63.5.md +6 -0
  181. package/dist/web-ui/docs/cn/cli/release-notes/v2.64.0.md +37 -0
  182. package/dist/web-ui/docs/cn/cli/release-notes/v2.64.1.md +6 -0
  183. package/dist/web-ui/docs/cn/cli/release-notes/v2.64.2.md +11 -0
  184. package/dist/web-ui/docs/cn/cli/release-notes/v2.65.0.md +19 -0
  185. package/dist/web-ui/docs/cn/cli/release-notes/v2.65.1.md +11 -0
  186. package/dist/web-ui/docs/cn/cli/release-notes/v2.66.0.md +15 -0
  187. package/dist/web-ui/docs/cn/cli/release-notes/v2.66.1.md +14 -0
  188. package/dist/web-ui/docs/cn/cli/release-notes/v2.66.2.md +5 -0
  189. package/dist/web-ui/docs/cn/cli/release-notes/v2.67.0.md +33 -0
  190. package/dist/web-ui/docs/cn/cli/release-notes/v2.7.0.md +16 -0
  191. package/dist/web-ui/docs/cn/cli/release-notes/v2.8.0.md +18 -0
  192. package/dist/web-ui/docs/cn/cli/release-notes/v2.8.1.md +17 -0
  193. package/dist/web-ui/docs/cn/cli/release-notes/v2.8.2.md +5 -0
  194. package/dist/web-ui/docs/cn/cli/release-notes/v2.8.3.md +14 -0
  195. package/dist/web-ui/docs/cn/cli/release-notes/v2.8.4.md +9 -0
  196. package/dist/web-ui/docs/cn/cli/release-notes/v2.8.5.md +5 -0
  197. package/dist/web-ui/docs/cn/cli/release-notes/v2.8.6.md +14 -0
  198. package/dist/web-ui/docs/cn/cli/release-notes/v2.9.0.md +5 -0
  199. package/dist/web-ui/docs/cn/cli/remote-control.md +247 -0
  200. package/dist/web-ui/docs/cn/cli/sandboxing.md +316 -0
  201. package/dist/web-ui/docs/cn/cli/scheduled-tasks.md +161 -0
  202. package/dist/web-ui/docs/cn/cli/sdk-custom-tools.md +1195 -0
  203. package/dist/web-ui/docs/cn/cli/sdk-demos.md +347 -0
  204. package/dist/web-ui/docs/cn/cli/sdk-hooks.md +803 -0
  205. package/dist/web-ui/docs/cn/cli/sdk-mcp.md +643 -0
  206. package/dist/web-ui/docs/cn/cli/sdk-permissions.md +501 -0
  207. package/dist/web-ui/docs/cn/cli/sdk-python.md +783 -0
  208. package/dist/web-ui/docs/cn/cli/sdk-sessions.md +332 -0
  209. package/dist/web-ui/docs/cn/cli/sdk-typescript.md +759 -0
  210. package/dist/web-ui/docs/cn/cli/sdk.md +1105 -0
  211. package/dist/web-ui/docs/cn/cli/security.md +387 -0
  212. package/dist/web-ui/docs/cn/cli/settings.md +602 -0
  213. package/dist/web-ui/docs/cn/cli/skills.md +448 -0
  214. package/dist/web-ui/docs/cn/cli/slash-commands.md +397 -0
  215. package/dist/web-ui/docs/cn/cli/statusline.md +525 -0
  216. package/dist/web-ui/docs/cn/cli/sub-agents.md +634 -0
  217. package/dist/web-ui/docs/cn/cli/terminal-config.md +77 -0
  218. package/dist/web-ui/docs/cn/cli/tools-reference.md +99 -0
  219. package/dist/web-ui/docs/cn/cli/troubleshooting.md +190 -0
  220. package/dist/web-ui/docs/cn/cli/web-ui.md +164 -0
  221. package/dist/web-ui/docs/cn/cli/wecom-bot-setup.md +274 -0
  222. package/dist/web-ui/docs/cn/cli/worktree.md +660 -0
  223. package/dist/web-ui/docs/en/cli/acp.md +126 -0
  224. package/dist/web-ui/docs/en/cli/agent-teams.md +327 -0
  225. package/dist/web-ui/docs/en/cli/bash-sandboxing.md +357 -0
  226. package/dist/web-ui/docs/en/cli/best-practices.md +554 -0
  227. package/dist/web-ui/docs/en/cli/channels-reference.md +293 -0
  228. package/dist/web-ui/docs/en/cli/channels.md +215 -0
  229. package/dist/web-ui/docs/en/cli/checkpointing.md +53 -0
  230. package/dist/web-ui/docs/en/cli/cli-reference.md +187 -0
  231. package/dist/web-ui/docs/en/cli/common-workflows.md +1011 -0
  232. package/dist/web-ui/docs/en/cli/costs.md +174 -0
  233. package/dist/web-ui/docs/en/cli/devcontainer.md +553 -0
  234. package/dist/web-ui/docs/en/cli/env-vars.md +326 -0
  235. package/dist/web-ui/docs/en/cli/gitlab-ci-cd.md +357 -0
  236. package/dist/web-ui/docs/en/cli/headless.md +258 -0
  237. package/dist/web-ui/docs/en/cli/hooks-guide.md +9 -0
  238. package/dist/web-ui/docs/en/cli/hooks.md +801 -0
  239. package/dist/web-ui/docs/en/cli/iam.md +526 -0
  240. package/dist/web-ui/docs/en/cli/ide-integrations.md +92 -0
  241. package/dist/web-ui/docs/en/cli/installation.md +266 -0
  242. package/dist/web-ui/docs/en/cli/interactive-mode.md +233 -0
  243. package/dist/web-ui/docs/en/cli/mcp.md +739 -0
  244. package/dist/web-ui/docs/en/cli/memory.md +436 -0
  245. package/dist/web-ui/docs/en/cli/models.md +355 -0
  246. package/dist/web-ui/docs/en/cli/overview.md +100 -0
  247. package/dist/web-ui/docs/en/cli/plugin-marketplaces.md +534 -0
  248. package/dist/web-ui/docs/en/cli/plugins-reference.md +774 -0
  249. package/dist/web-ui/docs/en/cli/plugins.md +688 -0
  250. package/dist/web-ui/docs/en/cli/quickstart.md +249 -0
  251. package/dist/web-ui/docs/en/cli/release-notes/README.md +193 -0
  252. package/dist/web-ui/docs/en/cli/release-notes/v2.10.0.md +23 -0
  253. package/dist/web-ui/docs/en/cli/release-notes/v2.10.1.md +5 -0
  254. package/dist/web-ui/docs/en/cli/release-notes/v2.11.0.md +24 -0
  255. package/dist/web-ui/docs/en/cli/release-notes/v2.12.0.md +21 -0
  256. package/dist/web-ui/docs/en/cli/release-notes/v2.13.0.md +20 -0
  257. package/dist/web-ui/docs/en/cli/release-notes/v2.14.0.md +22 -0
  258. package/dist/web-ui/docs/en/cli/release-notes/v2.14.1.md +8 -0
  259. package/dist/web-ui/docs/en/cli/release-notes/v2.15.0.md +18 -0
  260. package/dist/web-ui/docs/en/cli/release-notes/v2.15.1.md +11 -0
  261. package/dist/web-ui/docs/en/cli/release-notes/v2.16.0.md +20 -0
  262. package/dist/web-ui/docs/en/cli/release-notes/v2.17.0.md +29 -0
  263. package/dist/web-ui/docs/en/cli/release-notes/v2.18.0.md +17 -0
  264. package/dist/web-ui/docs/en/cli/release-notes/v2.19.0.md +11 -0
  265. package/dist/web-ui/docs/en/cli/release-notes/v2.19.1.md +14 -0
  266. package/dist/web-ui/docs/en/cli/release-notes/v2.19.2.md +11 -0
  267. package/dist/web-ui/docs/en/cli/release-notes/v2.20.0.md +23 -0
  268. package/dist/web-ui/docs/en/cli/release-notes/v2.20.1.md +15 -0
  269. package/dist/web-ui/docs/en/cli/release-notes/v2.21.0.md +13 -0
  270. package/dist/web-ui/docs/en/cli/release-notes/v2.22.0.md +16 -0
  271. package/dist/web-ui/docs/en/cli/release-notes/v2.23.0.md +41 -0
  272. package/dist/web-ui/docs/en/cli/release-notes/v2.23.2.md +5 -0
  273. package/dist/web-ui/docs/en/cli/release-notes/v2.23.3.md +5 -0
  274. package/dist/web-ui/docs/en/cli/release-notes/v2.23.4.md +15 -0
  275. package/dist/web-ui/docs/en/cli/release-notes/v2.23.5.md +11 -0
  276. package/dist/web-ui/docs/en/cli/release-notes/v2.24.0.md +17 -0
  277. package/dist/web-ui/docs/en/cli/release-notes/v2.25.0.md +18 -0
  278. package/dist/web-ui/docs/en/cli/release-notes/v2.25.1.md +21 -0
  279. package/dist/web-ui/docs/en/cli/release-notes/v2.26.0.md +18 -0
  280. package/dist/web-ui/docs/en/cli/release-notes/v2.27.0.md +16 -0
  281. package/dist/web-ui/docs/en/cli/release-notes/v2.27.1.md +16 -0
  282. package/dist/web-ui/docs/en/cli/release-notes/v2.27.2.md +7 -0
  283. package/dist/web-ui/docs/en/cli/release-notes/v2.27.3.md +15 -0
  284. package/dist/web-ui/docs/en/cli/release-notes/v2.28.0.md +26 -0
  285. package/dist/web-ui/docs/en/cli/release-notes/v2.28.1.md +5 -0
  286. package/dist/web-ui/docs/en/cli/release-notes/v2.29.0.md +35 -0
  287. package/dist/web-ui/docs/en/cli/release-notes/v2.3.1.md +16 -0
  288. package/dist/web-ui/docs/en/cli/release-notes/v2.30.0.md +19 -0
  289. package/dist/web-ui/docs/en/cli/release-notes/v2.30.1.md +5 -0
  290. package/dist/web-ui/docs/en/cli/release-notes/v2.31.0.md +51 -0
  291. package/dist/web-ui/docs/en/cli/release-notes/v2.31.1.md +11 -0
  292. package/dist/web-ui/docs/en/cli/release-notes/v2.31.2.md +16 -0
  293. package/dist/web-ui/docs/en/cli/release-notes/v2.32.0.md +19 -0
  294. package/dist/web-ui/docs/en/cli/release-notes/v2.33.0.md +28 -0
  295. package/dist/web-ui/docs/en/cli/release-notes/v2.33.1.md +7 -0
  296. package/dist/web-ui/docs/en/cli/release-notes/v2.34.0.md +27 -0
  297. package/dist/web-ui/docs/en/cli/release-notes/v2.34.1.md +7 -0
  298. package/dist/web-ui/docs/en/cli/release-notes/v2.35.0.md +22 -0
  299. package/dist/web-ui/docs/en/cli/release-notes/v2.36.0.md +23 -0
  300. package/dist/web-ui/docs/en/cli/release-notes/v2.36.1.md +5 -0
  301. package/dist/web-ui/docs/en/cli/release-notes/v2.36.2.md +22 -0
  302. package/dist/web-ui/docs/en/cli/release-notes/v2.36.3.md +17 -0
  303. package/dist/web-ui/docs/en/cli/release-notes/v2.37.0.md +15 -0
  304. package/dist/web-ui/docs/en/cli/release-notes/v2.37.1.md +15 -0
  305. package/dist/web-ui/docs/en/cli/release-notes/v2.37.10.md +5 -0
  306. package/dist/web-ui/docs/en/cli/release-notes/v2.37.11.md +8 -0
  307. package/dist/web-ui/docs/en/cli/release-notes/v2.37.12.md +14 -0
  308. package/dist/web-ui/docs/en/cli/release-notes/v2.37.13.md +11 -0
  309. package/dist/web-ui/docs/en/cli/release-notes/v2.37.14.md +24 -0
  310. package/dist/web-ui/docs/en/cli/release-notes/v2.37.15.md +11 -0
  311. package/dist/web-ui/docs/en/cli/release-notes/v2.37.16.md +9 -0
  312. package/dist/web-ui/docs/en/cli/release-notes/v2.37.17.md +5 -0
  313. package/dist/web-ui/docs/en/cli/release-notes/v2.37.18.md +9 -0
  314. package/dist/web-ui/docs/en/cli/release-notes/v2.37.19.md +5 -0
  315. package/dist/web-ui/docs/en/cli/release-notes/v2.37.2.md +28 -0
  316. package/dist/web-ui/docs/en/cli/release-notes/v2.37.20.md +8 -0
  317. package/dist/web-ui/docs/en/cli/release-notes/v2.37.3.md +22 -0
  318. package/dist/web-ui/docs/en/cli/release-notes/v2.37.4.md +19 -0
  319. package/dist/web-ui/docs/en/cli/release-notes/v2.37.5.md +5 -0
  320. package/dist/web-ui/docs/en/cli/release-notes/v2.37.6.md +5 -0
  321. package/dist/web-ui/docs/en/cli/release-notes/v2.37.7.md +5 -0
  322. package/dist/web-ui/docs/en/cli/release-notes/v2.37.8.md +5 -0
  323. package/dist/web-ui/docs/en/cli/release-notes/v2.37.9.md +8 -0
  324. package/dist/web-ui/docs/en/cli/release-notes/v2.38.0.md +22 -0
  325. package/dist/web-ui/docs/en/cli/release-notes/v2.38.1.md +6 -0
  326. package/dist/web-ui/docs/en/cli/release-notes/v2.38.2.md +9 -0
  327. package/dist/web-ui/docs/en/cli/release-notes/v2.39.0.md +18 -0
  328. package/dist/web-ui/docs/en/cli/release-notes/v2.4.0.md +19 -0
  329. package/dist/web-ui/docs/en/cli/release-notes/v2.40.0.md +20 -0
  330. package/dist/web-ui/docs/en/cli/release-notes/v2.40.1.md +6 -0
  331. package/dist/web-ui/docs/en/cli/release-notes/v2.41.0.md +15 -0
  332. package/dist/web-ui/docs/en/cli/release-notes/v2.41.1.md +6 -0
  333. package/dist/web-ui/docs/en/cli/release-notes/v2.41.2.md +5 -0
  334. package/dist/web-ui/docs/en/cli/release-notes/v2.41.3.md +8 -0
  335. package/dist/web-ui/docs/en/cli/release-notes/v2.41.4.md +5 -0
  336. package/dist/web-ui/docs/en/cli/release-notes/v2.41.5.md +10 -0
  337. package/dist/web-ui/docs/en/cli/release-notes/v2.41.6.md +9 -0
  338. package/dist/web-ui/docs/en/cli/release-notes/v2.41.7.md +14 -0
  339. package/dist/web-ui/docs/en/cli/release-notes/v2.41.8.md +18 -0
  340. package/dist/web-ui/docs/en/cli/release-notes/v2.42.0.md +39 -0
  341. package/dist/web-ui/docs/en/cli/release-notes/v2.42.1.md +8 -0
  342. package/dist/web-ui/docs/en/cli/release-notes/v2.42.3.md +18 -0
  343. package/dist/web-ui/docs/en/cli/release-notes/v2.43.0.md +27 -0
  344. package/dist/web-ui/docs/en/cli/release-notes/v2.43.1.md +27 -0
  345. package/dist/web-ui/docs/en/cli/release-notes/v2.44.0.md +11 -0
  346. package/dist/web-ui/docs/en/cli/release-notes/v2.44.1.md +22 -0
  347. package/dist/web-ui/docs/en/cli/release-notes/v2.45.0.md +34 -0
  348. package/dist/web-ui/docs/en/cli/release-notes/v2.45.1.md +7 -0
  349. package/dist/web-ui/docs/en/cli/release-notes/v2.46.0.md +12 -0
  350. package/dist/web-ui/docs/en/cli/release-notes/v2.47.0.md +20 -0
  351. package/dist/web-ui/docs/en/cli/release-notes/v2.48.0.md +32 -0
  352. package/dist/web-ui/docs/en/cli/release-notes/v2.48.1.md +11 -0
  353. package/dist/web-ui/docs/en/cli/release-notes/v2.49.0.md +26 -0
  354. package/dist/web-ui/docs/en/cli/release-notes/v2.49.1.md +14 -0
  355. package/dist/web-ui/docs/en/cli/release-notes/v2.49.2.md +39 -0
  356. package/dist/web-ui/docs/en/cli/release-notes/v2.49.3.md +7 -0
  357. package/dist/web-ui/docs/en/cli/release-notes/v2.49.5.md +11 -0
  358. package/dist/web-ui/docs/en/cli/release-notes/v2.49.6.md +9 -0
  359. package/dist/web-ui/docs/en/cli/release-notes/v2.49.7.md +7 -0
  360. package/dist/web-ui/docs/en/cli/release-notes/v2.5.0.md +24 -0
  361. package/dist/web-ui/docs/en/cli/release-notes/v2.50.0.md +25 -0
  362. package/dist/web-ui/docs/en/cli/release-notes/v2.50.1.md +9 -0
  363. package/dist/web-ui/docs/en/cli/release-notes/v2.50.2.md +11 -0
  364. package/dist/web-ui/docs/en/cli/release-notes/v2.50.3.md +5 -0
  365. package/dist/web-ui/docs/en/cli/release-notes/v2.50.4.md +17 -0
  366. package/dist/web-ui/docs/en/cli/release-notes/v2.50.5.md +16 -0
  367. package/dist/web-ui/docs/en/cli/release-notes/v2.50.6.md +15 -0
  368. package/dist/web-ui/docs/en/cli/release-notes/v2.50.7.md +15 -0
  369. package/dist/web-ui/docs/en/cli/release-notes/v2.51.0.md +24 -0
  370. package/dist/web-ui/docs/en/cli/release-notes/v2.51.1.md +17 -0
  371. package/dist/web-ui/docs/en/cli/release-notes/v2.51.2.md +5 -0
  372. package/dist/web-ui/docs/en/cli/release-notes/v2.52.0.md +30 -0
  373. package/dist/web-ui/docs/en/cli/release-notes/v2.52.1.md +28 -0
  374. package/dist/web-ui/docs/en/cli/release-notes/v2.52.2.md +12 -0
  375. package/dist/web-ui/docs/en/cli/release-notes/v2.52.3.md +13 -0
  376. package/dist/web-ui/docs/en/cli/release-notes/v2.52.4.md +27 -0
  377. package/dist/web-ui/docs/en/cli/release-notes/v2.52.5.md +21 -0
  378. package/dist/web-ui/docs/en/cli/release-notes/v2.52.6.md +7 -0
  379. package/dist/web-ui/docs/en/cli/release-notes/v2.53.0.md +29 -0
  380. package/dist/web-ui/docs/en/cli/release-notes/v2.54.0.md +26 -0
  381. package/dist/web-ui/docs/en/cli/release-notes/v2.55.0.md +21 -0
  382. package/dist/web-ui/docs/en/cli/release-notes/v2.55.1.md +13 -0
  383. package/dist/web-ui/docs/en/cli/release-notes/v2.56.0.md +20 -0
  384. package/dist/web-ui/docs/en/cli/release-notes/v2.56.1.md +5 -0
  385. package/dist/web-ui/docs/en/cli/release-notes/v2.57.0.md +32 -0
  386. package/dist/web-ui/docs/en/cli/release-notes/v2.57.1.md +10 -0
  387. package/dist/web-ui/docs/en/cli/release-notes/v2.58.0.md +34 -0
  388. package/dist/web-ui/docs/en/cli/release-notes/v2.59.0.md +28 -0
  389. package/dist/web-ui/docs/en/cli/release-notes/v2.6.0.md +5 -0
  390. package/dist/web-ui/docs/en/cli/release-notes/v2.6.1.md +10 -0
  391. package/dist/web-ui/docs/en/cli/release-notes/v2.60.0.md +20 -0
  392. package/dist/web-ui/docs/en/cli/release-notes/v2.61.0.md +29 -0
  393. package/dist/web-ui/docs/en/cli/release-notes/v2.61.1.md +5 -0
  394. package/dist/web-ui/docs/en/cli/release-notes/v2.61.2.md +6 -0
  395. package/dist/web-ui/docs/en/cli/release-notes/v2.61.3.md +13 -0
  396. package/dist/web-ui/docs/en/cli/release-notes/v2.62.0.md +21 -0
  397. package/dist/web-ui/docs/en/cli/release-notes/v2.62.1.md +11 -0
  398. package/dist/web-ui/docs/en/cli/release-notes/v2.63.0.md +19 -0
  399. package/dist/web-ui/docs/en/cli/release-notes/v2.63.1.md +5 -0
  400. package/dist/web-ui/docs/en/cli/release-notes/v2.63.2.md +7 -0
  401. package/dist/web-ui/docs/en/cli/release-notes/v2.63.3.md +6 -0
  402. package/dist/web-ui/docs/en/cli/release-notes/v2.63.4.md +8 -0
  403. package/dist/web-ui/docs/en/cli/release-notes/v2.63.5.md +6 -0
  404. package/dist/web-ui/docs/en/cli/release-notes/v2.64.0.md +37 -0
  405. package/dist/web-ui/docs/en/cli/release-notes/v2.64.1.md +6 -0
  406. package/dist/web-ui/docs/en/cli/release-notes/v2.64.2.md +11 -0
  407. package/dist/web-ui/docs/en/cli/release-notes/v2.65.0.md +19 -0
  408. package/dist/web-ui/docs/en/cli/release-notes/v2.65.1.md +11 -0
  409. package/dist/web-ui/docs/en/cli/release-notes/v2.66.0.md +15 -0
  410. package/dist/web-ui/docs/en/cli/release-notes/v2.66.1.md +14 -0
  411. package/dist/web-ui/docs/en/cli/release-notes/v2.66.2.md +5 -0
  412. package/dist/web-ui/docs/en/cli/release-notes/v2.67.0.md +33 -0
  413. package/dist/web-ui/docs/en/cli/release-notes/v2.7.0.md +16 -0
  414. package/dist/web-ui/docs/en/cli/release-notes/v2.8.0.md +18 -0
  415. package/dist/web-ui/docs/en/cli/release-notes/v2.8.1.md +17 -0
  416. package/dist/web-ui/docs/en/cli/release-notes/v2.8.2.md +5 -0
  417. package/dist/web-ui/docs/en/cli/release-notes/v2.8.3.md +14 -0
  418. package/dist/web-ui/docs/en/cli/release-notes/v2.8.4.md +9 -0
  419. package/dist/web-ui/docs/en/cli/release-notes/v2.8.5.md +5 -0
  420. package/dist/web-ui/docs/en/cli/release-notes/v2.8.6.md +14 -0
  421. package/dist/web-ui/docs/en/cli/release-notes/v2.9.0.md +5 -0
  422. package/dist/web-ui/docs/en/cli/remote-control.md +247 -0
  423. package/dist/web-ui/docs/en/cli/sandboxing.md +316 -0
  424. package/dist/web-ui/docs/en/cli/scheduled-tasks.md +160 -0
  425. package/dist/web-ui/docs/en/cli/sdk-custom-tools.md +1131 -0
  426. package/dist/web-ui/docs/en/cli/sdk-demos.md +347 -0
  427. package/dist/web-ui/docs/en/cli/sdk-hooks.md +813 -0
  428. package/dist/web-ui/docs/en/cli/sdk-mcp.md +645 -0
  429. package/dist/web-ui/docs/en/cli/sdk-permissions.md +461 -0
  430. package/dist/web-ui/docs/en/cli/sdk-python.md +797 -0
  431. package/dist/web-ui/docs/en/cli/sdk-sessions.md +340 -0
  432. package/dist/web-ui/docs/en/cli/sdk-typescript.md +770 -0
  433. package/dist/web-ui/docs/en/cli/sdk.md +1103 -0
  434. package/dist/web-ui/docs/en/cli/security.md +388 -0
  435. package/dist/web-ui/docs/en/cli/settings.md +602 -0
  436. package/dist/web-ui/docs/en/cli/skills.md +448 -0
  437. package/dist/web-ui/docs/en/cli/slash-commands.md +397 -0
  438. package/dist/web-ui/docs/en/cli/statusline.md +525 -0
  439. package/dist/web-ui/docs/en/cli/sub-agents.md +621 -0
  440. package/dist/web-ui/docs/en/cli/terminal-config.md +77 -0
  441. package/dist/web-ui/docs/en/cli/tools-reference.md +99 -0
  442. package/dist/web-ui/docs/en/cli/troubleshooting.md +190 -0
  443. package/dist/web-ui/docs/en/cli/web-ui.md +164 -0
  444. package/dist/web-ui/docs/en/cli/wecom-bot-setup.md +274 -0
  445. package/dist/web-ui/docs/en/cli/worktree.md +660 -0
  446. package/dist/web-ui/docs/search-index-en.json +1 -0
  447. package/dist/web-ui/docs/search-index-zh.json +1 -0
  448. package/dist/web-ui/docs/sidebar-en.json +1 -0
  449. package/dist/web-ui/docs/sidebar-zh.json +1 -0
  450. package/dist/web-ui/index.html +2 -2
  451. package/package.json +2 -3
  452. package/product.cloudhosted.json +2 -2
  453. package/product.internal.json +2 -2
  454. package/product.ioa.json +2 -2
  455. package/product.json +3 -3
  456. package/product.selfhosted.json +2 -2
  457. package/dist/web-ui/assets/index-BPT-qRRx.js +0 -411
  458. package/dist/web-ui/assets/index-f_ibHSHw.css +0 -32
@@ -0,0 +1,774 @@
1
+ # CodeBuddy 插件参考文档
2
+
3
+ ## 概述
4
+
5
+ CodeBuddy 插件系统允许通过标准化的插件机制扩展 AI 助手的功能。插件可以提供自定义命令、代理、技能、钩子和 MCP 服务器等组件。
6
+
7
+ description:命令描述
8
+ allowed-tools: Read,Write,Bash
9
+ argument-hint:参数提示
10
+ model:使用的模型ID或名称
11
+ ---
12
+
13
+ 命令的提示词内容
14
+ ```
15
+
16
+ **命令文件组织**:
17
+ - 支持子目录嵌套组织
18
+ - 子目录路径会转换为命令名的一部分,使用冒号分隔
19
+ - 例如: `commands/deploy/production.md` → 命令名为 `deploy:production`
20
+
21
+ ### 2. Agents (代理)
22
+
23
+ **位置**:插件根目录的 `agents/` 目录
24
+ **格式**:带有 frontmatter 的 Markdown 文件
25
+
26
+ **Frontmatter 配置**:
27
+ ```markdown
28
+ ---
29
+ name:代理名称(可选,默认使用文件名)
30
+ description:代理描述
31
+ model:使用的模型ID或名称
32
+ tools: Read,Write,Bash(可用工具列表,逗号分隔)
33
+ color: #FF5733(代理显示颜色,可选)
34
+ ---
35
+
36
+ 代理的指令内容
37
+ ```
38
+
39
+ **特性**:
40
+ - 代理可以作为工具被主代理调用
41
+ - 支持自定义工具列表
42
+ - 自动生成源标签标识来源
43
+
44
+ ### 3. Skills (技能)
45
+
46
+ **位置**:插件根目录的 `skills/` 目录
47
+ **格式**:每个技能一个子目录,包含 `SKILL.md` 文件
48
+
49
+ **目录结构**:
50
+ ```
51
+ skills/
52
+ ├── pdf-processor/
53
+ │ ├── SKILL.md
54
+ │ ├── reference.md (可选)
55
+ │ └── scripts/ (可选)
56
+ └── code-reviewer/
57
+ └── SKILL.md
58
+ ```
59
+
60
+ **SKILL.md Frontmatter 配置**:
61
+ ```markdown
62
+ ---
63
+ name:技能名称(可选,默认使用目录名)
64
+ description:技能描述
65
+ allowed-tools: Read,Write,Bash(允许使用的工具列表)
66
+ ---
67
+
68
+ 技能的指令内容
69
+ ```
70
+
71
+ **特性**:
72
+ - 技能可以包含辅助文件和脚本
73
+ - 技能的 `baseDirectory` 指向技能目录,可访问同目录下的资源文件
74
+
75
+ ### 4. Hooks (钩子)
76
+
77
+ **位置**:插件根目录的 `hooks/hooks.json`,或在 `plugin.json` 中通过 PluginInfo 扩展字段配置
78
+ **格式**: JSON 配置,包含事件匹配器和操作
79
+
80
+ **配置示例**:
81
+ ```json
82
+ {
83
+ "PostToolUse": [
84
+ {
85
+ "matcher": "Write|Edit",
86
+ "hooks": [
87
+ {
88
+ "type": "command",
89
+ "command": "${CODEBUDDY_PLUGIN_ROOT}/scripts/format-code.sh",
90
+ "timeout": 30000
91
+ }
92
+ ]
93
+ }
94
+ ]
95
+ }
96
+ ```
97
+
98
+ **可用事件**:
99
+ - `PreToolUse`:在工具使用之前触发
100
+ - `PostToolUse`:在工具使用之后触发
101
+ - `UserPromptSubmit`:用户提交提示时触发
102
+ - `Notification`:发送通知时触发
103
+ - `Stop`:尝试停止时触发
104
+ - `SubagentStop`:子代理尝试停止时触发
105
+ - `SessionStart`:会话开始时触发
106
+ - `SessionEnd`:会话结束时触发
107
+ - `PreCompact`:对话历史压缩之前触发
108
+
109
+ **钩子类型**:
110
+ - `command`:执行 shell 命令或脚本
111
+
112
+ **Matcher 规则**:
113
+ - 支持正则表达式匹配工具名称
114
+ - 例如: `"Write|Edit"` 匹配 Write 或 Edit 工具
115
+
116
+ ### 5. MCP Servers (MCP 服务器)
117
+
118
+ **位置**:
119
+ - 插件根目录的 `.mcp.json` 配置文件
120
+ - 或在 `plugin.json` 中通过 PluginInfo 扩展字段配置
121
+
122
+ **配置示例** (.mcp.json):
123
+ ```json
124
+ {
125
+ "mcpServers": {
126
+ "plugin-database": {
127
+ "command": "${CODEBUDDY_PLUGIN_ROOT}/servers/db-server",
128
+ "args": ["--config", "${CODEBUDDY_PLUGIN_ROOT}/config.json"],
129
+ "env": {
130
+ "DB_PATH": "${CODEBUDDY_PLUGIN_ROOT}/data"
131
+ }
132
+ },
133
+ "plugin-api-client": {
134
+ "command": "npx",
135
+ "args": ["@company/mcp-server", "--plugin-mode"],
136
+ "cwd": "${CODEBUDDY_PLUGIN_ROOT}"
137
+ }
138
+ }
139
+ }
140
+ ```
141
+
142
+ **集成行为**:
143
+ - 插件启用时自动启动 MCP 服务器
144
+ - 服务器作为标准 MCP 工具出现在工具包中
145
+ - 服务器功能与现有工具无缝集成
146
+
147
+ ### 6. LSP Servers(LSP 服务器)
148
+
149
+ > **提示**: 需要使用 LSP 插件? 可从官方市场安装——在 `/plugin` Discover 标签中搜索 "lsp"。本节介绍如何为官方市场未涵盖的语言创建 LSP 插件。
150
+
151
+ 插件可以提供 [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP) 服务器,为 AI 助手在代码库上工作时提供实时代码智能支持。
152
+
153
+ LSP 集成提供:
154
+
155
+ * **即时诊断**: AI 助手在每次编辑后立即看到错误和警告
156
+ * **代码导航**: 跳转到定义、查找引用和悬停信息
157
+ * **语言感知**: 代码符号的类型信息和文档
158
+
159
+ **位置**: 插件根目录的 `.lsp.json` 文件,或在 `plugin.json` 中内联配置
160
+
161
+ **格式**: JSON 配置,将语言服务器名称映射到其配置
162
+
163
+ **`.lsp.json` 文件格式**:
164
+
165
+ ```json
166
+ {
167
+ "go": {
168
+ "command": "gopls",
169
+ "args": ["serve"],
170
+ "extensionToLanguage": {
171
+ ".go": "go"
172
+ }
173
+ }
174
+ }
175
+ ```
176
+
177
+ **在 `plugin.json` 中内联配置**:
178
+
179
+ ```json
180
+ {
181
+ "name": "my-plugin",
182
+ "lspServers": {
183
+ "go": {
184
+ "command": "gopls",
185
+ "args": ["serve"],
186
+ "extensionToLanguage": {
187
+ ".go": "go"
188
+ }
189
+ }
190
+ }
191
+ }
192
+ ```
193
+
194
+ **必需字段**:
195
+
196
+ | 字段 | 描述 |
197
+ | :--- | :--- |
198
+ | `command` | 要执行的 LSP 二进制文件(必须在 PATH 中) |
199
+ | `extensionToLanguage` | 将文件扩展名映射到语言标识符 |
200
+
201
+ **可选字段**:
202
+
203
+ | 字段 | 描述 |
204
+ | :--- | :--- |
205
+ | `args` | LSP 服务器的命令行参数 |
206
+ | `transport` | 通信传输方式: `stdio`(默认)或 `socket` |
207
+ | `env` | 启动服务器时设置的环境变量 |
208
+ | `initializationOptions` | 在初始化期间传递给服务器的选项 |
209
+ | `settings` | 通过 `workspace/didChangeConfiguration` 传递的设置 |
210
+ | `workspaceFolder` | 服务器的工作区文件夹路径 |
211
+ | `startupTimeout` | 等待服务器启动的最大时间(毫秒) |
212
+ | `shutdownTimeout` | 等待优雅关闭的最大时间(毫秒) |
213
+ | `restartOnCrash` | 服务器崩溃时是否自动重启 |
214
+ | `maxRestarts` | 放弃前的最大重启尝试次数 |
215
+ | `loggingConfig` | 调试日志配置(见下文) |
216
+
217
+ > **警告**: **您必须单独安装语言服务器二进制文件。** LSP 插件配置 CodeBuddy 如何连接到语言服务器,但不包含服务器本身。如果在 `/plugin` Errors 标签中看到 `Executable not found in $PATH` 错误,请为您的语言安装所需的二进制文件。
218
+
219
+ **可用的 LSP 插件**:
220
+
221
+ | 插件 | 语言服务器 | 安装命令 |
222
+ | :--- | :--- | :--- |
223
+ | `pyright-lsp` | Pyright (Python) | `pip install pyright` 或 `npm install -g pyright` |
224
+ | `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |
225
+ | `rust-lsp` | rust-analyzer | [参见 rust-analyzer 安装](https://rust-analyzer.github.io/manual.html#installation) |
226
+
227
+ 先安装语言服务器,然后从市场安装插件。
228
+
229
+ ---
230
+
231
+ ## 二、插件清单架构 (plugin.json)
232
+
233
+ ### 完整架构示例
234
+
235
+ ```json
236
+ {
237
+ "name": "plugin-name",
238
+ "version": "1.2.0",
239
+ "description": "插件简短描述",
240
+ "author": {
241
+ "name": "作者名称",
242
+ "email": "[email protected]",
243
+ "url": "https://github.com/author"
244
+ },
245
+ "homepage": "https://docs.example.com/plugin",
246
+ "repository": "https://github.com/author/plugin",
247
+ "license": "MIT",
248
+ "keywords": ["keyword1", "keyword2"],
249
+ "category": "开发工具",
250
+ "features": ["特性1", "特性2"],
251
+ "requirements": {
252
+ "node": ">=16.0.0"
253
+ },
254
+ "commands": ["./custom/commands/special.md"],
255
+ "agents": "./custom/agents/",
256
+ "hooks": "./config/hooks.json",
257
+ "mcpServers": [
258
+ {
259
+ "name": "custom-server",
260
+ "command": "node",
261
+ "args": ["./servers/custom.js"],
262
+ "env": {
263
+ "SERVER_PORT": "3000"
264
+ }
265
+ }
266
+ ],
267
+ "lspServers": "./.lsp.json"
268
+ }
269
+ ```
270
+
271
+ ### 必需字段
272
+
273
+ | 字段 | 类型 | 描述 | 示例 |
274
+ |------|------|------|------|
275
+ | name | string | 唯一标识符(kebab-case,无空格) | "deployment-tools" |
276
+ | description | string | 插件用途简述 | "部署自动化工具" |
277
+
278
+ ### 元数据字段
279
+
280
+ | 字段 | 类型 | 描述 | 示例 |
281
+ |------|------|------|------|
282
+ | version | string | 语义化版本 | "2.1.0" |
283
+ | author | object | 作者信息 | `{"name": "开发团队", "email": "[email protected]"}` |
284
+ | homepage | string | 文档 URL | "https://docs.example.com" |
285
+ | repository | string | 源代码 URL | "https://github.com/user/plugin" |
286
+ | license | string | 许可证标识符 | "MIT", "Apache-2.0" |
287
+ | keywords | array | 发现标签 | `["deployment", "ci-cd"]` |
288
+ | category | string | 插件分类 | "开发工具" |
289
+ | features | array | 功能列表 | `["自动部署", "日志分析"]` |
290
+
291
+ ### 组件路径字段(PluginManifest)
292
+
293
+ | 字段 | 类型 | 描述 | 示例 |
294
+ |------|------|------|------|
295
+ | commands | string / string[] | 额外的命令文件路径数组 | `["./custom/cmd.md"]` |
296
+ | agents | string / string[] | 额外 Agent 文件目录路径 | "./custom/agents/" |
297
+ | hooks | string / object | 额外 Hook 文件或配置 | "./custom/hooks.json" |
298
+ | mcpServers | string / `Record<string,MCPServerConfig>` | MCP服务器配置文件路径或配置对象 | 见下方 MCPServerConfig |
299
+ | lspServers | string / object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) 配置,用于代码智能(跳转定义、查找引用等) | `"./.lsp.json"` |
300
+
301
+ ### MCPServerConfig 结构
302
+
303
+ ```typescript
304
+ {
305
+ "name": "服务器名称",
306
+ "command": "执行命令",
307
+ "args": ["命令参数数组"],
308
+ "env": {
309
+ "环境变量名": "值"
310
+ }
311
+ }
312
+ ```
313
+
314
+ ### 运行时扩展字段(PluginInfo)
315
+
316
+ 插件在运行时会扩展以下字段,支持更灵活的配置方式:
317
+
318
+ | 字段 | 类型 | 描述 | 示例 |
319
+ |------|------|------|------|
320
+ | agents | string[] | Agent 文件或目录路径 | `["./custom/agents/"]` |
321
+ | commands | string[] | Command 文件或目录路径 | `["./custom/commands/"]` |
322
+ | skills | string[] | Skill 文件或目录路径 | `["./custom/skills/"]` |
323
+ | hooks | `Record<string, any>` \| string | Hook 配置对象或文件路径 | "./hooks/custom.json" |
324
+ | mcpServers | `Record<string, McpConfig>` \| string | MCP 配置对象或文件路径 | "./mcp-config.json" |
325
+ | lspServers | `Record<string, LspConfig>` \| string | LSP 配置对象或文件路径 | "./.lsp.json" |
326
+
327
+ **说明**:
328
+ - 这些扩展字段用于 marketplace.json 中配置插件的加载方式
329
+ - 支持直接配置对象或文件路径字符串
330
+ - 加载器会智能合并配置路径和默认目录扫描的结果
331
+
332
+ ### 路径行为规则
333
+
334
+ **重要**:自定义路径是对默认目录的**补充**,而不是替换。
335
+
336
+ - 如果 `commands/` 目录存在,它会与自定义命令路径一起加载
337
+ - 所有路径必须相对于插件根目录,并以 `./` 开头
338
+ - 可以将多个路径指定为数组以提高灵活性
339
+ - 路径可以指向单个文件或目录
340
+
341
+ **路径解析规则**:
342
+ - 文件路径: 必须以 `.md` 结尾(对于 commands/agents)或为 `SKILL.md`(对于 skills)
343
+ - 目录路径: 会递归扫描目录中的所有符合条件的文件
344
+
345
+ ### 环境变量
346
+
347
+ **`${CODEBUDDY_PLUGIN_ROOT}`**:包含插件目录的绝对路径。在钩子、MCP 服务器和脚本中使用此变量,以确保无论安装位置如何都能使用正确的路径。
348
+
349
+ **兼容性**:同时支持 `${CLAUDE_PLUGIN_ROOT}` 变量名以兼容 Claude Code 插件。
350
+
351
+ ```json
352
+ {
353
+ "hooks": {
354
+ "PostToolUse": [
355
+ {
356
+ "hooks": [
357
+ {
358
+ "type": "command",
359
+ "command": "${CODEBUDDY_PLUGIN_ROOT}/scripts/process.sh"
360
+ }
361
+ ]
362
+ }
363
+ ]
364
+ }
365
+ }
366
+ ```
367
+
368
+ ---
369
+
370
+ ## 三、插件目录结构
371
+
372
+ ### 标准插件布局
373
+
374
+ ```
375
+ enterprise-plugin/
376
+ ├── .codebuddy-plugin/ # 元数据目录
377
+ │ └── plugin.json # 必需:插件清单
378
+ ├── commands/ # 默认命令位置
379
+ │ ├── status.md
380
+ │ └── logs.md
381
+ ├── agents/ # 默认代理位置
382
+ │ ├── security-reviewer.md
383
+ │ ├── performance-tester.md
384
+ │ └── compliance-checker.md
385
+ ├── skills/ # 代理技能
386
+ │ ├── code-reviewer/
387
+ │ │ └── SKILL.md
388
+ │ └── pdf-processor/
389
+ │ ├── SKILL.md
390
+ │ └── scripts/
391
+ ├── hooks/ # 钩子配置
392
+ │ └── hooks.json # 钩子配置文件
393
+ ├── .mcp.json # MCP 服务器定义
394
+ ├── .lsp.json # LSP 服务器配置
395
+ ├── scripts/ # 钩子和实用脚本
396
+ │ ├── security-scan.sh
397
+ │ ├── format-code.py
398
+ │ └── deploy.js
399
+ ├── LICENSE # 许可证文件
400
+ └── README.md # 插件说明
401
+ ```
402
+
403
+ **重要**:
404
+ - `.codebuddy-plugin/` 或 `.claude-plugin/` 目录包含 `plugin.json` 文件
405
+ - 所有其他目录(`commands/`、`agents/`、`skills/`、`hooks/`)必须位于插件根目录
406
+ - 系统优先识别 `.codebuddy-plugin/`,同时兼容 `.claude-plugin/`
407
+
408
+ ### 文件位置参考
409
+
410
+ | 组件 | 默认位置 | 用途 |
411
+ |------|----------|------|
412
+ | Manifest | .codebuddy-plugin/plugin.json | 必需的元数据文件 |
413
+ | Commands | commands/ | 斜杠命令 markdown 文件 |
414
+ | Agents | agents/ | 子代理 markdown 文件 |
415
+ | Skills | skills/ | 带有 SKILL.md 文件的代理技能 |
416
+ | Hooks | hooks/hooks.json | 钩子配置 |
417
+ | MCP servers | .mcp.json | MCP 服务器定义 |
418
+ | LSP servers | .lsp.json | 语言服务器配置 |
419
+
420
+ ---
421
+
422
+ ## 四、市场清单架构 (marketplace.json)
423
+
424
+ ### 完整架构示例
425
+
426
+ ```json
427
+ {
428
+ "name": "企业插件市场",
429
+ "description": "企业内部插件集合",
430
+ "version": "1.0.0",
431
+ "owner": {
432
+ "name": "企业开发团队",
433
+ "email": "[email protected]"
434
+ },
435
+ "plugins": [
436
+ {
437
+ "name": "deployment-tool",
438
+ "description": "自动化部署工具",
439
+ "version": "1.0.0",
440
+ "source": "plugins/deployment-tool"
441
+ },
442
+ {
443
+ "name": "code-review-bot",
444
+ "description": "代码审查机器人",
445
+ "version": "2.1.0",
446
+ "source": {
447
+ "source": "github",
448
+ "repo": "company/code-review-bot"
449
+ }
450
+ },
451
+ {
452
+ "name": "security-scanner",
453
+ "description": "安全扫描工具",
454
+ "version": "1.5.0",
455
+ "source": {
456
+ "source": "url",
457
+ "url": "https://github.com/company/security-scanner.git"
458
+ }
459
+ }
460
+ ]
461
+ }
462
+ ```
463
+
464
+ ### 必需字段
465
+
466
+ | 字段 | 类型 | 描述 | 示例 |
467
+ |------|------|------|------|
468
+ | name | string | 市场名称 | "企业插件市场" |
469
+ | plugins | array | 插件列表 | 见下方 |
470
+
471
+ ### 元数据字段
472
+
473
+ | 字段 | 类型 | 描述 | 示例 |
474
+ |------|------|------|------|
475
+ | description | string | 市场描述 | "企业内部插件集合" |
476
+ | version | string | 市场版本 | "1.0.0" |
477
+ | owner | object | 所有者信息 | `{"name": "团队", "email": "..."}` |
478
+
479
+ ### 插件条目 (MarketplacePluginEntry)
480
+
481
+ 每个插件条目包含以下字段:
482
+
483
+ | 字段 | 类型 | 必需 | 描述 |
484
+ |------|------|------|------|
485
+ | name | string | ✓ | 插件唯一标识符 |
486
+ | description | string | ✓ | 插件描述 |
487
+ | version | string | | 插件版本号 |
488
+ | source | string \| PluginSource | ✓ | 插件源配置 |
489
+ | strict | boolean | | 严格模式(兼容 superpowers-marketplace) |
490
+
491
+ ### PluginSource 配置
492
+
493
+ 插件源支持三种类型:
494
+
495
+ #### 1. 本地相对路径(字符串)
496
+ ```json
497
+ {
498
+ "source": "plugins/my-plugin"
499
+ }
500
+ ```
501
+
502
+ #### 2. 本地路径(对象)
503
+ ```json
504
+ {
505
+ "source": {
506
+ "source": "local",
507
+ "path": "plugins/my-plugin"
508
+ }
509
+ }
510
+ ```
511
+
512
+ #### 3. GitHub 仓库
513
+ ```json
514
+ {
515
+ "source": {
516
+ "source": "github",
517
+ "repo": "owner/repo-name"
518
+ }
519
+ }
520
+ ```
521
+
522
+ #### 4. Git URL
523
+ ```json
524
+ {
525
+ "source": {
526
+ "source": "url",
527
+ "url": "https://github.com/owner/repo.git"
528
+ }
529
+ }
530
+ ```
531
+
532
+ ### 市场类型
533
+
534
+ CodeBuddy 支持四种市场类型:
535
+
536
+ | 类型 | 说明 | source 字段 |
537
+ |------|------|-------------|
538
+ | Directory | 本地文件系统目录 | path:本地目录绝对路径 |
539
+ | Github | GitHub 仓库 | repo: owner/repo 格式 |
540
+ | Git | Git 仓库 | url: Git 仓库 URL |
541
+ | URL | HTTP/HTTPS 远端 | url: marketplace.json 的 URL |
542
+
543
+ ---
544
+
545
+ ## 五、插件加载机制
546
+
547
+ ### 加载流程
548
+
549
+ 1. **市场安装**:
550
+ - 从配置的源安装市场
551
+ - 读取 `marketplace.json` 获取插件列表
552
+
553
+ 2. **插件安装**:
554
+ - 根据 `source` 配置选择合适的安装器(Local/Git)
555
+ - 将插件内容安装到目标位置
556
+
557
+ 3. **插件启用**:
558
+ - 读取插件的 `plugin.json` 清单
559
+ - 根据清单配置加载各类组件
560
+
561
+ 4. **组件加载**:
562
+ - 并发加载所有类型的扩展组件
563
+ - 合并配置路径和默认目录扫描的结果
564
+ - 缓存加载的组件以提高性能
565
+
566
+ ### 加载器智能合并
567
+
568
+ 每个扩展加载器都会智能合并两个来源的内容:
569
+
570
+ 1. **配置路径**:在 `plugin.json` 或运行时配置中指定的路径
571
+ 2. **默认扫描**:默认目录(如 `commands/`、`agents/`)中的文件
572
+
573
+ **示例**:
574
+ ```json
575
+ {
576
+ "commands": ["./custom/deploy.md"],
577
+ // 实际加载:
578
+ // - ./custom/deploy.md (配置路径)
579
+ // - commands/ 目录中的所有 .md 文件 (默认扫描)
580
+ }
581
+ ```
582
+
583
+ ### 命令名称生成规则
584
+
585
+ - 文件名: `command.md` → 命令名: `command`
586
+ - 子目录: `deploy/prod.md` → 命令名: `deploy:prod`
587
+ - 插件前缀: 自动添加插件名作为前缀,如 `plugin-name:command`
588
+
589
+ ### 代理和技能标签
590
+
591
+ 所有从插件加载的代理和技能都会自动添加以下标签:
592
+ - 来源标签: `(plugin-name@marketplace-name)`
593
+ - 类型标签: `plugin`
594
+ - 自定义标签: `custom-agent` 或 `custom-command`
595
+
596
+ ---
597
+
598
+ ## 六、调试和开发工具
599
+
600
+ ### 查看插件加载日志
601
+
602
+ 使用 `--verbose` 参数查看详细的插件加载信息:
603
+
604
+ ```bash
605
+ codebuddy --verbose
606
+ ```
607
+
608
+ **显示内容**:
609
+ - 正在加载哪些插件
610
+ - 插件清单中的任何错误
611
+ - 命令、代理和技能注册
612
+ - MCP 服务器初始化
613
+ - Hooks 配置加载
614
+
615
+ ### 常见问题排查
616
+
617
+ | 问题 | 原因 | 解决方案 |
618
+ |------|------|----------|
619
+ | 插件未加载 | 无效的 plugin.json | 验证 JSON 语法,检查必需字段 |
620
+ | 命令未出现 | 错误的目录结构 | 确保 commands/ 在插件根目录 |
621
+ | 钩子未触发 | 脚本不可执行 | 运行 `chmod +x script.sh` |
622
+ | MCP 服务器失败 | 缺少环境变量 | 使用 `${CODEBUDDY_PLUGIN_ROOT}` |
623
+ | 路径错误 | 使用了绝对路径 | 所有路径必须是相对路径并以 `./` 开头 |
624
+ | 元数据目录未识别 | 使用了错误的目录名 | 使用 `.codebuddy-plugin/` 或 `.claude-plugin/` |
625
+ | LSP `Executable not found in $PATH` | 语言服务器未安装 | 安装二进制文件(例如:`npm install -g typescript-language-server typescript`) |
626
+
627
+ ### 插件开发最佳实践
628
+
629
+ 1. **使用相对路径**:所有文件引用使用相对路径,确保跨环境兼容
630
+ 2. **环境变量**:在脚本中使用 `${CODEBUDDY_PLUGIN_ROOT}` 引用插件目录
631
+ 3. **错误处理**:为钩子脚本添加适当的错误处理和超时设置
632
+ 4. **文档完善**:在 README.md 中提供清晰的安装和使用说明
633
+ 5. **语义化版本**:遵循语义化版本规范管理插件版本
634
+ 6. **测试覆盖**:在不同环境下测试插件的安装和功能
635
+
636
+ ---
637
+
638
+ ## 七、版本管理参考
639
+
640
+ ### 语义化版本控制
641
+
642
+ 遵循语义化版本控制进行插件发布:
643
+
644
+ - **主版本号 (MAJOR)**:不兼容的 API 更改
645
+ - **次版本号 (MINOR)**:向后兼容的功能添加
646
+ - **修订号 (PATCH)**:向后兼容的错误修复
647
+
648
+ 示例: `1.2.0` → `1.2.1` (修复) → `1.3.0` (新功能) → `2.0.0` (破坏性更改)
649
+
650
+ ### 插件更新流程
651
+
652
+ 1. 修改插件代码和资源
653
+ 2. 更新 `plugin.json` 中的 version 字段
654
+ 3. 在 CHANGELOG.md 中记录变更
655
+ 4. 提交到版本控制系统
656
+ 5. 用户通过 marketplace 更新插件
657
+
658
+ ---
659
+
660
+ ## 八、CLI 命令参考
661
+
662
+ ### 市场管理
663
+
664
+ ```bash
665
+ # 添加市场
666
+ codebuddy plugin marketplace add <source> [--name <name>]
667
+
668
+ # 列出市场
669
+ codebuddy plugin marketplace list
670
+
671
+ # 更新市场
672
+ codebuddy plugin marketplace update <name>
673
+
674
+ # 删除市场
675
+ codebuddy plugin marketplace remove <name>
676
+ ```
677
+
678
+ ### 插件管理
679
+
680
+ ```bash
681
+ # 安装插件
682
+ codebuddy plugin install <plugin-name> <marketplace-name>
683
+
684
+ # 列出已安装插件
685
+ codebuddy plugin list [--marketplace <name>]
686
+
687
+ # 启用插件
688
+ codebuddy plugin enable <plugin-name> <marketplace-name>
689
+
690
+ # 禁用插件
691
+ codebuddy plugin disable <plugin-name> <marketplace-name>
692
+
693
+ # 卸载插件
694
+ codebuddy plugin uninstall <plugin-name> <marketplace-name>
695
+
696
+ # 更新插件
697
+ codebuddy plugin update <plugin-name> <marketplace-name>
698
+ ```
699
+
700
+ ### 市场源格式
701
+
702
+ 支持以下格式添加市场:
703
+
704
+ ```bash
705
+ # 本地目录
706
+ codebuddy plugin marketplace add /path/to/marketplace
707
+
708
+ # GitHub 简写
709
+ codebuddy plugin marketplace add owner/repo
710
+
711
+ # Git URL
712
+ codebuddy plugin marketplace add https://github.com/owner/repo.git
713
+
714
+ # HTTP URL (marketplace.json)
715
+ codebuddy plugin marketplace add https://example.com/marketplace.json
716
+ ```
717
+
718
+ ---
719
+
720
+ ## 九、与 Claude Code 的兼容性
721
+
722
+ CodeBuddy 插件系统在设计上兼容 Claude Code 插件规范,但存在以下差异:
723
+
724
+ ### 命名差异
725
+
726
+ | 概念 | Claude Code | CodeBuddy |
727
+ |------|-------------|-----------|
728
+ | 元数据目录 | `.claude-plugin/` | `.codebuddy-plugin/` (优先) 或 `.claude-plugin/` (兼容) |
729
+ | 环境变量 | `${CLAUDE_PLUGIN_ROOT}` | `${CODEBUDDY_PLUGIN_ROOT}` (优先) 或 `${CLAUDE_PLUGIN_ROOT}` (兼容) |
730
+
731
+ ### 扩展功能
732
+
733
+ CodeBuddy 在 Claude Code 基础上提供了以下扩展:
734
+
735
+ 1. **运行时配置**: PluginInfo 支持运行时扩展字段配置
736
+ 2. **多元数据目录**:同时支持 `.codebuddy-plugin/` 和 `.claude-plugin/`
737
+ 3. **灵活的配置**:支持配置对象和文件路径两种配置方式
738
+
739
+ ### 迁移指南
740
+
741
+ 从 Claude Code 迁移到 CodeBuddy:
742
+
743
+ 1. 可选择将 `.claude-plugin/` 重命名为 `.codebuddy-plugin/`
744
+ 2. 可选择将脚本中的 `${CLAUDE_PLUGIN_ROOT}` 替换为 `${CODEBUDDY_PLUGIN_ROOT}`
745
+ 3. 如果使用了 `mcpServers` 字段,需要重命名为 `mcpServers`
746
+
747
+ **注意**:保持原有命名也完全兼容,CodeBuddy 会自动识别。
748
+
749
+ ---
750
+
751
+ ## 相关资源
752
+
753
+ - **插件开发教程** - 如何创建自定义插件
754
+ - **市场创建指南** - 创建和管理插件市场
755
+ - **Hooks 深入指南** - 事件处理和自动化
756
+ - **MCP 集成文档** - 外部工具集成
757
+ - **Settings 配置** - 插件配置选项
758
+
759
+ ---
760
+
761
+ ## 总结
762
+
763
+ 本文档提供了 CodeBuddy 插件系统的完整技术规范,涵盖:
764
+
765
+ 1. 六种插件组件类型(Commands、Agents、Skills、Hooks、MCP Servers、LSP Servers)
766
+ 2. 完整的 plugin.json 清单架构和字段说明
767
+ 3. marketplace.json 市场清单架构
768
+ 4. 标准目录结构和文件位置
769
+ 5. 插件加载机制和智能合并规则
770
+ 6. CLI 命令和调试工具
771
+ 7. 版本管理最佳实践
772
+ 8. 与 Claude Code 的兼容性说明
773
+
774
+ 开发者可以使用此参考文档创建功能完整、结构规范的 CodeBuddy 插件。