@tencent-ai/codebuddy-code 2.76.0-next.949c0a4.20260403 → 2.77.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.
- package/CHANGELOG.md +27 -0
- package/dist/codebuddy-headless.js +88 -88
- package/dist/codebuddy.js +95 -95
- package/dist/web-ui/assets/{index-BC_Bh2yt.js → index-C25QEkQn.js} +107 -107
- package/dist/web-ui/docs/cn/cli/cli-reference.md +1 -0
- package/dist/web-ui/docs/cn/cli/env-vars.md +2 -0
- package/dist/web-ui/docs/cn/cli/http-api.md +117 -2
- package/dist/web-ui/docs/cn/cli/plugin-marketplaces.md +338 -61
- package/dist/web-ui/docs/cn/cli/plugins-reference.md +484 -420
- package/dist/web-ui/docs/cn/cli/plugins.md +333 -458
- package/dist/web-ui/docs/cn/cli/release-notes/README.md +5 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.72.0.md +26 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.73.0.md +21 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.74.0.md +15 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.75.0.md +6 -0
- package/dist/web-ui/docs/cn/cli/release-notes/v2.76.0.md +9 -0
- package/dist/web-ui/docs/cn/cli/slash-commands.md +3 -0
- package/dist/web-ui/docs/en/cli/cli-reference.md +1 -0
- package/dist/web-ui/docs/en/cli/release-notes/README.md +5 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.72.0.md +26 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.73.0.md +21 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.74.0.md +15 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.75.0.md +6 -0
- package/dist/web-ui/docs/en/cli/release-notes/v2.76.0.md +9 -0
- package/dist/web-ui/docs/en/cli/slash-commands.md +3 -0
- package/dist/web-ui/docs/search-index-en.json +1 -1
- package/dist/web-ui/docs/search-index-zh.json +1 -1
- package/dist/web-ui/docs/sidebar-en.json +1 -1
- package/dist/web-ui/docs/sidebar-zh.json +1 -1
- package/dist/web-ui/index.html +1 -1
- package/package.json +2 -3
- package/product.cloudhosted.json +2 -2
- package/product.internal.json +2 -2
- package/product.ioa.json +2 -2
- package/product.json +3 -2
- package/product.selfhosted.json +2 -2
|
@@ -1,427 +1,269 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 创建插件
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
插件让你可以通过自定义技能、代理、钩子和 MCP 服务器来扩展 CodeBuddy Code 的功能。本指南涵盖如何创建你自己的插件。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
要安装已有的插件,请参阅[插件市场](plugin-marketplaces.md)。完整的技术规范请参考[插件参考文档](plugins-reference.md)。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## 何时使用插件 vs 独立配置
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
CodeBuddy Code 支持两种添加自定义技能、代理和钩子的方式:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
| 方式 | 技能名称 | 适用场景 |
|
|
12
|
+
|------|----------|----------|
|
|
13
|
+
| **独立配置**(`.codebuddy/` 目录) | `/hello` | 个人工作流、项目特定定制、快速实验 |
|
|
14
|
+
| **插件**(含 `.codebuddy-plugin/plugin.json` 的目录) | `/plugin-name:hello` | 团队共享、社区分发、版本化发布、跨项目复用 |
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
**使用独立配置的场景**:
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
- 为单个项目定制 CodeBuddy Code
|
|
19
|
+
- 配置是个人的,不需要共享
|
|
20
|
+
- 在打包为插件之前实验技能或钩子
|
|
21
|
+
- 需要简短的技能名称,如 `/hello` 或 `/deploy`
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
- **GitHub 仓库市场**:从 GitHub 仓库获取插件
|
|
21
|
-
- **HTTP/HTTPS 市场**:从 HTTP(S) 服务器获取插件清单和插件包
|
|
23
|
+
**使用插件的场景**:
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
团队可以通过在项目的 `.codebuddy/settings.json` 中配置 `extraKnownMarketplaces` 和 `enabledPlugins`,实现插件的自动安装和启用。当团队成员启动 CodeBuddy 时,系统会自动安装配置中指定的插件市场和插件。
|
|
25
|
+
- 需要与团队或社区共享功能
|
|
26
|
+
- 需要在多个项目中使用相同的技能/代理
|
|
27
|
+
- 需要版本控制和便捷的更新机制
|
|
28
|
+
- 通过市场分发
|
|
29
|
+
- 可以接受命名空间化的技能名称如 `/my-plugin:hello`(命名空间防止插件间冲突)
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
> **提示**:先在 `.codebuddy/` 中使用独立配置快速迭代,准备共享时再[转换为插件](#将现有配置转换为插件)。
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
```json
|
|
36
|
-
{
|
|
37
|
-
"extraKnownMarketplaces": {
|
|
38
|
-
"team-marketplace": {
|
|
39
|
-
"source": {
|
|
40
|
-
"source": "github",
|
|
41
|
-
"repo": "your-org/team-plugins-marketplace"
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
"custom-marketplace": {
|
|
45
|
-
"source": {
|
|
46
|
-
"source": "git",
|
|
47
|
-
"url": "https://git.example.com/plugins-marketplace"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
"enabledPlugins": {
|
|
52
|
-
"team-plugin-a@team-marketplace": true,
|
|
53
|
-
"team-plugin-b@team-marketplace": true
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
#### 配置说明
|
|
59
|
-
|
|
60
|
-
- **`extraKnownMarketplaces`**:定义额外的插件市场
|
|
61
|
-
- 键名为市场名称(如 `team-marketplace`)
|
|
62
|
-
- `source.source`:市场类型,支持 `github`、`git` 和 `url`
|
|
63
|
-
- `source.repo`: GitHub 仓库路径(格式:`owner/repo`,仅当 source 为 `github` 时)
|
|
64
|
-
- `source.url`: Git 仓库 URL 或 HTTP(S) marketplace.json URL(仅当 source 为 `git` 或 `url` 时)
|
|
65
|
-
|
|
66
|
-
- **`enabledPlugins`**:指定要启用的插件
|
|
67
|
-
- 键名格式:`插件名@市场名`
|
|
68
|
-
- 值为 `true` 表示启用,`false` 表示禁用
|
|
69
|
-
|
|
70
|
-
#### 自动安装流程
|
|
71
|
-
|
|
72
|
-
1. **启动检测**: CodeBuddy 启动时会自动检测配置文件
|
|
73
|
-
2. **市场安装**:自动安装 `extraKnownMarketplaces` 中未安装的市场
|
|
74
|
-
3. **插件安装**:自动安装 `enabledPlugins` 中已启用但未安装的插件
|
|
75
|
-
4. **后台执行**:安装过程在后台异步执行,不阻塞启动流程
|
|
76
|
-
5. **日志记录**:安装过程会记录详细日志,可通过 `--debug` 查看
|
|
77
|
-
|
|
78
|
-
#### 优势
|
|
79
|
-
|
|
80
|
-
- **团队统一**:确保团队成员使用相同的插件配置
|
|
81
|
-
- **自动化**:无需手动安装,提升开发效率
|
|
82
|
-
- **版本控制**:配置文件可提交到 Git,便于团队协作
|
|
83
|
-
- **灵活覆盖**:个人可在本地配置中覆盖团队配置
|
|
84
|
-
|
|
85
|
-
### 方式二:交互式界面
|
|
86
|
-
|
|
87
|
-
在 CodeBuddy 对话中输入 `/plugin`,会打开交互式插件管理界面。
|
|
88
|
-
|
|
89
|
-
#### 打开管理界面
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
/plugin
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
#### 界面功能
|
|
96
|
-
|
|
97
|
-
交互式界面包含以下 6 个 tab:
|
|
33
|
+
## 快速开始
|
|
98
34
|
|
|
99
|
-
|
|
100
|
-
- 实时搜索插件
|
|
101
|
-
- 显示插件安装统计
|
|
102
|
-
- 快速安装插件
|
|
35
|
+
本快速开始将引导你创建一个包含自定义技能的插件。你将创建一个清单文件(定义插件的配置文件)、添加一个技能,并使用 `--plugin-dir` 参数在本地测试。
|
|
103
36
|
|
|
104
|
-
|
|
105
|
-
- 按市场分类浏览
|
|
106
|
-
- 查看插件详情
|
|
107
|
-
- 安装插件
|
|
37
|
+
### 前提条件
|
|
108
38
|
|
|
109
|
-
|
|
110
|
-
- 查看已安装插件列表和状态
|
|
111
|
-
- 启用/禁用插件
|
|
112
|
-
- 卸载插件
|
|
113
|
-
- 查看插件详细信息
|
|
39
|
+
- 已[安装并认证](quickstart.md) CodeBuddy Code
|
|
114
40
|
|
|
115
|
-
|
|
116
|
-
- 查看已配置的市场列表
|
|
117
|
-
- 更新市场信息
|
|
118
|
-
- 移除市场
|
|
41
|
+
> 如果看不到 `/plugin` 命令,请将 CodeBuddy Code 更新到最新版本。参见[故障排除](troubleshooting.md)获取升级说明。
|
|
119
42
|
|
|
120
|
-
|
|
121
|
-
- 支持本地路径、GitHub 仓库、Git URL 和 HTTP URL
|
|
122
|
-
- 自动识别市场源类型
|
|
123
|
-
- 设置市场显示名称
|
|
43
|
+
### 创建你的第一个插件
|
|
124
44
|
|
|
125
|
-
|
|
126
|
-
- 详细的错误信息和错误类型
|
|
127
|
-
- 错误发生时间和相关上下文
|
|
128
|
-
- 帮助诊断和解决问题
|
|
45
|
+
#### 第 1 步:创建插件目录
|
|
129
46
|
|
|
130
|
-
|
|
47
|
+
每个插件都有自己的目录,包含清单文件和你的技能、代理或钩子。现在创建一个:
|
|
131
48
|
|
|
132
49
|
```bash
|
|
133
|
-
|
|
134
|
-
/plugin install my-plugin # 安装插件
|
|
135
|
-
/plugin install my-plugin@marketplace # 从指定市场安装
|
|
136
|
-
/plugin enable my-plugin # 启用禁用的插件
|
|
137
|
-
/plugin disable my-plugin # 禁用启用的插件
|
|
138
|
-
/plugin uninstall my-plugin # 卸载插件
|
|
139
|
-
/plugin marketplace add <source> # 添加市场
|
|
140
|
-
/plugin marketplace list # 列出市场
|
|
141
|
-
/plugin marketplace update <name> # 更新市场
|
|
142
|
-
/plugin marketplace remove <name> # 移除市场
|
|
50
|
+
mkdir my-first-plugin
|
|
143
51
|
```
|
|
144
52
|
|
|
145
|
-
|
|
53
|
+
#### 第 2 步:创建插件清单
|
|
146
54
|
|
|
147
|
-
|
|
55
|
+
清单文件位于 `.codebuddy-plugin/plugin.json`,定义插件的身份信息:名称、描述和版本。CodeBuddy Code 使用这些元数据在插件管理器中展示你的插件。
|
|
148
56
|
|
|
149
|
-
|
|
57
|
+
在插件目录内创建 `.codebuddy-plugin` 目录:
|
|
150
58
|
|
|
151
59
|
```bash
|
|
152
|
-
|
|
153
|
-
codebuddy plugin install <plugin> # 从默认市场安装
|
|
154
|
-
codebuddy plugin install <plugin>@<marketplace> # 从指定市场安装
|
|
155
|
-
codebuddy plugin i <plugin> # 简写形式
|
|
156
|
-
|
|
157
|
-
# 启用和禁用插件
|
|
158
|
-
codebuddy plugin enable <plugin> # 启用插件
|
|
159
|
-
codebuddy plugin disable <plugin> # 禁用插件
|
|
160
|
-
|
|
161
|
-
# 卸载插件
|
|
162
|
-
codebuddy plugin uninstall <plugin> # 卸载插件
|
|
163
|
-
codebuddy plugin remove <plugin> # 别名形式
|
|
164
|
-
|
|
165
|
-
# 验证插件或市场清单
|
|
166
|
-
codebuddy plugin validate <path> # 验证本地插件或市场
|
|
60
|
+
mkdir my-first-plugin/.codebuddy-plugin
|
|
167
61
|
```
|
|
168
62
|
|
|
169
|
-
|
|
63
|
+
然后创建 `my-first-plugin/.codebuddy-plugin/plugin.json`,内容如下:
|
|
170
64
|
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
codebuddy plugin marketplace update <name>
|
|
181
|
-
|
|
182
|
-
# 移除市场
|
|
183
|
-
codebuddy plugin marketplace remove <name>
|
|
184
|
-
codebuddy plugin marketplace rm <name> # 别名形式
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"name": "my-first-plugin",
|
|
68
|
+
"description": "A greeting plugin to learn the basics",
|
|
69
|
+
"version": "1.0.0",
|
|
70
|
+
"author": {
|
|
71
|
+
"name": "Your Name"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
185
74
|
```
|
|
186
75
|
|
|
187
|
-
|
|
76
|
+
| 字段 | 用途 |
|
|
77
|
+
|------|------|
|
|
78
|
+
| `name` | 唯一标识符和技能命名空间。技能以此为前缀(如 `/my-first-plugin:hello`) |
|
|
79
|
+
| `description` | 在插件管理器中浏览或安装插件时显示 |
|
|
80
|
+
| `version` | 使用[语义化版本](plugins-reference.md#版本管理)跟踪发布 |
|
|
81
|
+
| `author` | 可选。用于归属标注 |
|
|
188
82
|
|
|
189
|
-
|
|
83
|
+
更多字段如 `homepage`、`repository` 和 `license`,参见[完整清单 Schema](plugins-reference.md)。
|
|
190
84
|
|
|
191
|
-
####
|
|
85
|
+
#### 第 3 步:添加技能
|
|
192
86
|
|
|
193
|
-
|
|
194
|
-
2. 选择 "3. Add marketplace"
|
|
195
|
-
3. 输入市场源地址
|
|
196
|
-
4. 等待自动识别市场类型和加载插件清单
|
|
87
|
+
技能放在 `skills/` 目录中。每个技能是一个包含 `SKILL.md` 文件的文件夹。文件夹名称成为技能名称,并以插件命名空间为前缀(在名为 `my-first-plugin` 的插件中,`hello/` 创建 `/my-first-plugin:hello`)。
|
|
197
88
|
|
|
198
|
-
|
|
89
|
+
在插件目录中创建技能目录:
|
|
199
90
|
|
|
200
91
|
```bash
|
|
201
|
-
|
|
202
|
-
codebuddy plugin marketplace add https://github.com/username/plugin-repo
|
|
203
|
-
|
|
204
|
-
# 添加市场并指定显示名称
|
|
205
|
-
codebuddy plugin marketplace add https://github.com/username/plugin-repo -n my-marketplace
|
|
206
|
-
|
|
207
|
-
# 添加本地目录市场
|
|
208
|
-
codebuddy plugin marketplace add /path/to/local/plugins
|
|
209
|
-
|
|
210
|
-
# 添加 HTTP 市场
|
|
211
|
-
codebuddy plugin marketplace add https://example.com/plugins
|
|
92
|
+
mkdir -p my-first-plugin/skills/hello
|
|
212
93
|
```
|
|
213
94
|
|
|
214
|
-
|
|
215
|
-
- `<source>`:市场源地址(本地路径、GitHub URL 或 HTTP(S) URL)
|
|
216
|
-
- `-n, --name <name>`:可选,为市场指定显示名称
|
|
217
|
-
|
|
218
|
-
### 安装插件
|
|
95
|
+
然后创建 `my-first-plugin/skills/hello/SKILL.md`,内容如下:
|
|
219
96
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
1. 输入 `/plugin`
|
|
223
|
-
2. 选择 "1. Browse and install plugins"
|
|
224
|
-
3. 选择插件市场
|
|
225
|
-
4. 浏览可用插件并选择安装
|
|
226
|
-
|
|
227
|
-
#### 使用子命令
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
# 从默认市场安装
|
|
231
|
-
codebuddy plugin install my-plugin
|
|
232
|
-
|
|
233
|
-
# 从指定市场安装
|
|
234
|
-
codebuddy plugin install my-plugin@marketplace-name
|
|
97
|
+
```markdown
|
|
235
98
|
|
|
236
|
-
|
|
237
|
-
codebuddy plugin i my-plugin
|
|
99
|
+
Greet the user warmly and ask how you can help them today.
|
|
238
100
|
```
|
|
239
101
|
|
|
240
|
-
|
|
102
|
+
#### 第 4 步:测试你的插件
|
|
241
103
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
1. 输入 `/plugin`
|
|
245
|
-
2. 选择 "2. Manage plugins"
|
|
246
|
-
3. 选择要启用或禁用的插件
|
|
247
|
-
|
|
248
|
-
#### 使用子命令
|
|
104
|
+
使用 `--plugin-dir` 参数运行 CodeBuddy Code 以加载你的插件:
|
|
249
105
|
|
|
250
106
|
```bash
|
|
251
|
-
|
|
252
|
-
codebuddy plugin enable my-plugin
|
|
253
|
-
|
|
254
|
-
# 禁用插件
|
|
255
|
-
codebuddy plugin disable my-plugin
|
|
107
|
+
codebuddy --plugin-dir ./my-first-plugin
|
|
256
108
|
```
|
|
257
109
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
### 卸载插件
|
|
110
|
+
启动后,尝试你的新技能:
|
|
261
111
|
|
|
262
|
-
|
|
112
|
+
```
|
|
113
|
+
/my-first-plugin:hello
|
|
114
|
+
```
|
|
263
115
|
|
|
264
|
-
|
|
265
|
-
2. 选择 "2. Manage plugins"
|
|
266
|
-
3. 选择要卸载的插件,确认卸载
|
|
116
|
+
你会看到 CodeBuddy 回复一个问候语。运行 `/help` 可以看到你的技能列在插件命名空间下。
|
|
267
117
|
|
|
268
|
-
|
|
118
|
+
> **为什么要命名空间?** 插件技能始终带有命名空间(如 `/my-first-plugin:hello`),以防止多个插件中同名技能产生冲突。要更改命名空间前缀,请更新 `plugin.json` 中的 `name` 字段。
|
|
269
119
|
|
|
270
|
-
|
|
271
|
-
# 卸载插件
|
|
272
|
-
codebuddy plugin uninstall my-plugin
|
|
120
|
+
#### 第 5 步:添加技能参数
|
|
273
121
|
|
|
274
|
-
|
|
275
|
-
codebuddy plugin remove my-plugin
|
|
276
|
-
```
|
|
122
|
+
通过接受用户输入使技能更加动态。`$ARGUMENTS` 占位符捕获用户在技能名称后提供的任何文本。
|
|
277
123
|
|
|
278
|
-
|
|
124
|
+
更新你的 `SKILL.md` 文件:
|
|
279
125
|
|
|
280
|
-
|
|
126
|
+
```markdown
|
|
127
|
+
---
|
|
128
|
+
description: Greet the user with a personalized message
|
|
129
|
+
---
|
|
281
130
|
|
|
282
|
-
|
|
283
|
-
1. 输入 `/plugin`
|
|
284
|
-
2. 选择 "4. Manage marketplaces"
|
|
131
|
+
# Hello Skill
|
|
285
132
|
|
|
286
|
-
|
|
287
|
-
```bash
|
|
288
|
-
codebuddy plugin marketplace list
|
|
133
|
+
Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
|
|
289
134
|
```
|
|
290
135
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
使用交互式界面:
|
|
294
|
-
1. 输入 `/plugin`
|
|
295
|
-
2. 选择 "4. Manage marketplaces"
|
|
296
|
-
3. 选择要更新的市场
|
|
136
|
+
运行 `/reload-plugins` 以获取更改,然后用你的名字尝试技能:
|
|
297
137
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
codebuddy plugin marketplace update my-marketplace
|
|
138
|
+
```
|
|
139
|
+
/my-first-plugin:hello Alex
|
|
301
140
|
```
|
|
302
141
|
|
|
303
|
-
|
|
142
|
+
CodeBuddy 会按名字问候你。更多关于向技能传递参数的信息,参见 [Skills 文档](skills.md)。
|
|
304
143
|
|
|
305
|
-
|
|
306
|
-
1. 输入 `/plugin`
|
|
307
|
-
2. 选择 "4. Manage marketplaces"
|
|
308
|
-
3. 选择要移除的市场,确认移除
|
|
144
|
+
---
|
|
309
145
|
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
codebuddy plugin marketplace remove my-marketplace
|
|
313
|
-
codebuddy plugin marketplace rm my-marketplace
|
|
314
|
-
```
|
|
146
|
+
你已成功创建并测试了一个包含以下关键组件的插件:
|
|
315
147
|
|
|
316
|
-
|
|
148
|
+
- **插件清单**(`.codebuddy-plugin/plugin.json`):描述插件的元数据
|
|
149
|
+
- **技能目录**(`skills/`):包含你的自定义技能
|
|
150
|
+
- **技能参数**(`$ARGUMENTS`):捕获用户输入实现动态行为
|
|
317
151
|
|
|
318
|
-
|
|
319
|
-
# 验证插件清单格式
|
|
320
|
-
codebuddy plugin validate /path/to/plugin
|
|
152
|
+
> `--plugin-dir` 参数适用于开发和测试。当你准备与他人共享插件时,参见[插件市场](plugin-marketplaces.md)。
|
|
321
153
|
|
|
322
|
-
|
|
323
|
-
codebuddy plugin validate /path/to/marketplace
|
|
154
|
+
## 插件结构概述
|
|
324
155
|
|
|
325
|
-
|
|
326
|
-
codebuddy plugin validate https://github.com/username/plugin-repo
|
|
327
|
-
```
|
|
156
|
+
你已经创建了一个包含技能的插件,但插件还可以包含更多内容:自定义代理、钩子、MCP 服务器和 LSP 服务器。
|
|
328
157
|
|
|
329
|
-
|
|
158
|
+
> **常见错误**:不要将 `commands/`、`agents/`、`skills/` 或 `hooks/` 放在 `.codebuddy-plugin/` 目录内。只有 `plugin.json` 放在 `.codebuddy-plugin/` 内。所有其他目录必须在插件根目录层级。
|
|
330
159
|
|
|
331
|
-
|
|
160
|
+
| 目录 | 位置 | 用途 |
|
|
161
|
+
|------|------|------|
|
|
162
|
+
| `.codebuddy-plugin/` | 插件根目录 | 包含 `plugin.json` 清单 |
|
|
163
|
+
| `commands/` | 插件根目录 | Markdown 格式的斜杠命令 |
|
|
164
|
+
| `agents/` | 插件根目录 | 自定义代理定义 |
|
|
165
|
+
| `skills/` | 插件根目录 | 包含 `SKILL.md` 文件的代理技能 |
|
|
166
|
+
| `hooks/` | 插件根目录 | `hooks.json` 事件处理器 |
|
|
167
|
+
| `.mcp.json` | 插件根目录 | MCP 服务器配置 |
|
|
168
|
+
| `.lsp.json` | 插件根目录 | LSP 服务器配置(代码智能) |
|
|
169
|
+
| `bin/` | 插件根目录 | 插件启用时添加到 Bash 工具 `PATH` 的可执行文件 |
|
|
170
|
+
| `settings.json` | 插件根目录 | 插件启用时应用的默认[设置](settings.md) |
|
|
332
171
|
|
|
333
|
-
|
|
172
|
+
**示例完整结构**:
|
|
334
173
|
|
|
335
174
|
```
|
|
336
175
|
my-plugin/
|
|
337
|
-
├── .codebuddy-plugin/
|
|
338
|
-
│ └── plugin.json
|
|
339
|
-
├── commands/
|
|
176
|
+
├── .codebuddy-plugin/ # 元数据目录(必需)
|
|
177
|
+
│ └── plugin.json # 插件清单文件
|
|
178
|
+
├── commands/ # 命令目录(可选)
|
|
340
179
|
│ └── example.md
|
|
341
|
-
├── agents/
|
|
180
|
+
├── agents/ # 代理目录(可选)
|
|
342
181
|
│ └── example.md
|
|
343
|
-
├── skills/
|
|
344
|
-
│ └──
|
|
182
|
+
├── skills/ # 技能目录(可选)
|
|
183
|
+
│ └── code-review/
|
|
345
184
|
│ └── SKILL.md
|
|
346
|
-
├── hooks/
|
|
185
|
+
├── hooks/ # Hooks 目录(可选)
|
|
347
186
|
│ └── hooks.json
|
|
348
|
-
├──
|
|
349
|
-
└──
|
|
187
|
+
├── bin/ # 可执行文件目录(可选)
|
|
188
|
+
│ └── my-tool
|
|
189
|
+
├── .mcp.json # MCP 配置文件(可选)
|
|
190
|
+
├── .lsp.json # LSP 配置文件(可选)
|
|
191
|
+
└── settings.json # 默认设置文件(可选)
|
|
350
192
|
```
|
|
351
193
|
|
|
352
|
-
|
|
194
|
+
## 开发更复杂的插件
|
|
353
195
|
|
|
354
|
-
|
|
196
|
+
掌握了基础插件后,你可以创建更复杂的扩展。
|
|
355
197
|
|
|
356
|
-
|
|
357
|
-
{
|
|
358
|
-
"name": "my-plugin",
|
|
359
|
-
"version": "1.0.0",
|
|
360
|
-
"description": "插件描述",
|
|
361
|
-
"author": {
|
|
362
|
-
"name": "作者名称",
|
|
363
|
-
"email": "author@example.com"
|
|
364
|
-
},
|
|
365
|
-
"homepage": "https://github.com/username/my-plugin",
|
|
366
|
-
"repository": "https://github.com/username/my-plugin",
|
|
367
|
-
"keywords": ["example"],
|
|
368
|
-
"category": "开发工具",
|
|
369
|
-
"commands": [],
|
|
370
|
-
"agents": [],
|
|
371
|
-
"skills": [],
|
|
372
|
-
"hooks": "./hooks/hooks.json"
|
|
373
|
-
}
|
|
374
|
-
```
|
|
198
|
+
### 添加技能
|
|
375
199
|
|
|
376
|
-
|
|
200
|
+
插件可以包含[代理技能](skills.md)来扩展 CodeBuddy 的能力。技能是模型调用的:CodeBuddy 会根据任务上下文自动使用它们。
|
|
377
201
|
|
|
378
|
-
|
|
202
|
+
在插件根目录添加 `skills/` 目录,其中包含带有 `SKILL.md` 文件的技能文件夹:
|
|
379
203
|
|
|
380
|
-
|
|
204
|
+
```
|
|
205
|
+
my-plugin/
|
|
206
|
+
├── .codebuddy-plugin/
|
|
207
|
+
│ └── plugin.json
|
|
208
|
+
└── skills/
|
|
209
|
+
└── code-review/
|
|
210
|
+
└── SKILL.md
|
|
211
|
+
```
|
|
381
212
|
|
|
382
|
-
|
|
213
|
+
每个 `SKILL.md` 需要包含 `name` 和 `description` 字段的 frontmatter,后跟指令:
|
|
383
214
|
|
|
384
|
-
|
|
215
|
+
```markdown
|
|
216
|
+
---
|
|
217
|
+
name: code-review
|
|
218
|
+
description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
|
|
219
|
+
---
|
|
385
220
|
|
|
386
|
-
|
|
221
|
+
When reviewing code, check for:
|
|
222
|
+
1. Code organization and structure
|
|
223
|
+
2. Error handling
|
|
224
|
+
3. Security concerns
|
|
225
|
+
4. Test coverage
|
|
387
226
|
```
|
|
388
227
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
详细说明请参考: [Slash Commands 文档](slash-commands.md)
|
|
228
|
+
安装插件后,运行 `/reload-plugins` 加载技能。完整的技能编写指南,包括渐进式披露和工具限制,参见[代理技能](skills.md)。
|
|
392
229
|
|
|
393
|
-
###
|
|
230
|
+
### 添加命令
|
|
394
231
|
|
|
395
|
-
|
|
232
|
+
插件可以提供自定义斜杠命令,用户可以手动触发。命令定义为 Markdown 文件。
|
|
396
233
|
|
|
397
|
-
|
|
234
|
+
**示例**:`commands/example.md`
|
|
398
235
|
|
|
399
236
|
```markdown
|
|
400
237
|
---
|
|
401
|
-
description: "
|
|
238
|
+
description: "示例命令描述"
|
|
239
|
+
argument-hint: "[参数]"
|
|
402
240
|
---
|
|
403
241
|
|
|
404
|
-
|
|
242
|
+
这是一个示例命令。当用户输入 /my-plugin:example 时会执行此命令。
|
|
243
|
+
|
|
244
|
+
参数:$ARGUMENTS
|
|
405
245
|
```
|
|
406
246
|
|
|
407
|
-
|
|
247
|
+
命令会以 `/plugin-name:command-name` 的格式注册。
|
|
408
248
|
|
|
409
|
-
|
|
249
|
+
详细说明请参考 [Slash Commands 文档](slash-commands.md)。
|
|
410
250
|
|
|
411
|
-
Hooks
|
|
251
|
+
### 添加 Hooks
|
|
412
252
|
|
|
413
|
-
|
|
253
|
+
Hooks 允许在特定事件发生时自动执行操作。命令通过标准输入接收 hook 输入的 JSON 数据,可以使用 `jq` 提取字段。
|
|
254
|
+
|
|
255
|
+
**示例**:`hooks/hooks.json`
|
|
414
256
|
|
|
415
257
|
```json
|
|
416
258
|
{
|
|
417
259
|
"hooks": {
|
|
418
|
-
"
|
|
260
|
+
"PostToolUse": [
|
|
419
261
|
{
|
|
262
|
+
"matcher": "Write|Edit",
|
|
420
263
|
"hooks": [
|
|
421
264
|
{
|
|
422
265
|
"type": "command",
|
|
423
|
-
"command": "
|
|
424
|
-
"timeout": 5000
|
|
266
|
+
"command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix"
|
|
425
267
|
}
|
|
426
268
|
]
|
|
427
269
|
}
|
|
@@ -430,21 +272,13 @@ Hooks 允许在特定事件发生时自动执行操作。
|
|
|
430
272
|
}
|
|
431
273
|
```
|
|
432
274
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
### LSP(Language Server Protocol)
|
|
436
|
-
|
|
437
|
-
LSP 插件为 AI 提供实时代码智能功能,使其能够理解代码结构、类型定义、函数签名等信息。
|
|
275
|
+
详细说明请参考 [Hooks 文档](hooks.md)。
|
|
438
276
|
|
|
439
|
-
|
|
277
|
+
### 添加 LSP 服务器
|
|
440
278
|
|
|
441
|
-
|
|
279
|
+
> 对于常见语言如 TypeScript、Python 和 Rust,建议直接从官方插件市场安装预构建的 LSP 插件。仅当需要支持尚未覆盖的语言时才创建自定义 LSP 插件。
|
|
442
280
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
通过在插件根目录添加 `.lsp.json` 文件来配置 LSP 服务器:
|
|
446
|
-
|
|
447
|
-
**示例**: `.lsp.json`
|
|
281
|
+
LSP(Language Server Protocol)插件为 CodeBuddy 提供实时代码智能。如果需要支持没有官方 LSP 插件的语言,可以在插件中添加 `.lsp.json` 文件:
|
|
448
282
|
|
|
449
283
|
```json
|
|
450
284
|
{
|
|
@@ -458,12 +292,7 @@ LSP 插件为 AI 提供实时代码智能功能,使其能够理解代码结构
|
|
|
458
292
|
}
|
|
459
293
|
```
|
|
460
294
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
- **语言标识符** (如 `"go"`):定义 LSP 服务器支持的语言
|
|
464
|
-
- `command`:LSP 服务器可执行文件的命令名称
|
|
465
|
-
- `args`:传递给命令的参数数组
|
|
466
|
-
- `extensionToLanguage`:文件扩展名到语言标识符的映射
|
|
295
|
+
安装插件的用户必须在其机器上预装语言服务器二进制文件。
|
|
467
296
|
|
|
468
297
|
#### 多语言配置示例
|
|
469
298
|
|
|
@@ -488,105 +317,190 @@ LSP 插件为 AI 提供实时代码智能功能,使其能够理解代码结构
|
|
|
488
317
|
|
|
489
318
|
#### 安装要求
|
|
490
319
|
|
|
491
|
-
用户在安装包含 LSP
|
|
320
|
+
用户在安装包含 LSP 配置的插件时,必须在其系统上预先安装相应的语言服务器二进制文件:
|
|
492
321
|
|
|
493
|
-
- **Go**:
|
|
494
|
-
- **Python**:
|
|
495
|
-
- **Rust**:
|
|
322
|
+
- **Go**: `go install golang.org/x/tools/gopls@latest`
|
|
323
|
+
- **Python**: `pip install python-lsp-server`
|
|
324
|
+
- **Rust**: `rustup component add rust-analyzer`
|
|
496
325
|
|
|
497
|
-
|
|
326
|
+
### 携带默认设置
|
|
498
327
|
|
|
499
|
-
|
|
500
|
-
2. 根据文件扩展名自动启动对应的 LSP 服务器
|
|
501
|
-
3. AI 通过 LSP 协议获取代码智能信息
|
|
502
|
-
4. 提供更准确的代码建议和修改
|
|
328
|
+
插件可以在根目录包含 `settings.json` 文件,在插件启用时应用默认配置。目前仅支持 `agent` 键。
|
|
503
329
|
|
|
504
|
-
|
|
330
|
+
设置 `agent` 会将插件的一个[自定义代理](sub-agents.md)激活为主线程,应用其系统提示词、工具限制和模型。这让插件在启用时可以改变 CodeBuddy Code 的默认行为。
|
|
505
331
|
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
332
|
+
```json
|
|
333
|
+
{
|
|
334
|
+
"agent": "security-reviewer"
|
|
335
|
+
}
|
|
336
|
+
```
|
|
510
337
|
|
|
511
|
-
|
|
338
|
+
此示例激活插件 `agents/` 目录中定义的 `security-reviewer` 代理。`settings.json` 中的设置优先于 `plugin.json` 中声明的 `settings`。未知键会被静默忽略。
|
|
512
339
|
|
|
513
|
-
###
|
|
340
|
+
### 本地测试插件
|
|
514
341
|
|
|
515
|
-
|
|
342
|
+
使用 `--plugin-dir` 参数在开发过程中测试插件。这会直接加载你的插件,无需安装。
|
|
516
343
|
|
|
517
|
-
|
|
344
|
+
```bash
|
|
345
|
+
codebuddy --plugin-dir ./my-plugin
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
当 `--plugin-dir` 插件与已安装的市场插件同名时,本地副本在该会话中优先使用。这让你可以测试已安装插件的改动而无需卸载它。通过托管设置强制启用的市场插件是唯一的例外,不能被覆盖。
|
|
349
|
+
|
|
350
|
+
在修改插件时,运行 `/reload-plugins` 无需重启即可获取更新。这会重新加载插件、技能、代理、钩子、插件 MCP 服务器和插件 LSP 服务器。测试你的插件组件:
|
|
351
|
+
|
|
352
|
+
- 使用 `/plugin-name:skill-name` 尝试技能
|
|
353
|
+
- 在 `/agents` 中检查代理是否出现
|
|
354
|
+
- 验证钩子是否按预期工作
|
|
355
|
+
|
|
356
|
+
> 可以通过多次指定参数同时加载多个插件:
|
|
357
|
+
>
|
|
358
|
+
> ```bash
|
|
359
|
+
> codebuddy --plugin-dir ./plugin-one --plugin-dir ./plugin-two
|
|
360
|
+
> ```
|
|
361
|
+
|
|
362
|
+
### 调试插件问题
|
|
518
363
|
|
|
364
|
+
如果插件没有按预期工作:
|
|
365
|
+
|
|
366
|
+
1. **检查结构**:确保目录在插件根目录,而不是在 `.codebuddy-plugin/` 内
|
|
367
|
+
2. **单独测试组件**:分别检查每个命令、代理和钩子
|
|
368
|
+
3. **使用调试模式**:用 `--debug` 参数启动 CodeBuddy 查看详细日志
|
|
369
|
+
|
|
370
|
+
## plugin.json 清单格式
|
|
371
|
+
|
|
372
|
+
插件清单文件定义插件的元数据和包含的组件,位于 `.codebuddy-plugin/plugin.json`:
|
|
373
|
+
|
|
374
|
+
```json
|
|
375
|
+
{
|
|
376
|
+
"name": "my-plugin",
|
|
377
|
+
"version": "1.0.0",
|
|
378
|
+
"description": "插件描述",
|
|
379
|
+
"author": {
|
|
380
|
+
"name": "作者名称",
|
|
381
|
+
"email": "author@example.com"
|
|
382
|
+
},
|
|
383
|
+
"homepage": "https://github.com/username/my-plugin",
|
|
384
|
+
"repository": "https://github.com/username/my-plugin",
|
|
385
|
+
"keywords": ["example"],
|
|
386
|
+
"category": "开发工具",
|
|
387
|
+
"commands": [],
|
|
388
|
+
"agents": [],
|
|
389
|
+
"skills": [],
|
|
390
|
+
"hooks": "./hooks/hooks.json"
|
|
391
|
+
}
|
|
519
392
|
```
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
393
|
+
|
|
394
|
+
完整的清单 Schema 说明参见[插件参考文档](plugins-reference.md)。
|
|
395
|
+
|
|
396
|
+
## 共享你的插件
|
|
397
|
+
|
|
398
|
+
当插件准备好共享时:
|
|
399
|
+
|
|
400
|
+
1. **添加文档**:包含一个 `README.md`,说明安装和使用方式
|
|
401
|
+
2. **版本管理**:在 `plugin.json` 中使用[语义化版本](plugins-reference.md#版本管理)
|
|
402
|
+
3. **创建或使用市场**:通过[插件市场](plugin-marketplaces.md)分发
|
|
403
|
+
4. **与他人测试**:在更广泛分发之前,让团队成员测试插件
|
|
404
|
+
|
|
405
|
+
插件上线到市场后,其他人可以按照[插件市场](plugin-marketplaces.md)中的说明安装使用。
|
|
406
|
+
|
|
407
|
+
## 将现有配置转换为插件
|
|
408
|
+
|
|
409
|
+
如果你已经在 `.codebuddy/` 目录中有技能或钩子,可以将它们转换为插件以便于共享和分发。
|
|
410
|
+
|
|
411
|
+
### 迁移步骤
|
|
412
|
+
|
|
413
|
+
#### 第 1 步:创建插件结构
|
|
414
|
+
|
|
415
|
+
创建新的插件目录:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
mkdir -p my-plugin/.codebuddy-plugin
|
|
532
419
|
```
|
|
533
420
|
|
|
534
|
-
|
|
421
|
+
创建清单文件 `my-plugin/.codebuddy-plugin/plugin.json`:
|
|
535
422
|
|
|
536
423
|
```json
|
|
537
424
|
{
|
|
538
|
-
"name": "
|
|
539
|
-
"
|
|
540
|
-
|
|
541
|
-
"name": "plugin1",
|
|
542
|
-
"source": "plugins/plugin1",
|
|
543
|
-
"description": "Plugin 1 description"
|
|
544
|
-
},
|
|
545
|
-
{
|
|
546
|
-
"name": "plugin2",
|
|
547
|
-
"source": "plugins/plugin2",
|
|
548
|
-
"description": "Plugin 2 description"
|
|
549
|
-
}
|
|
550
|
-
]
|
|
425
|
+
"name": "my-plugin",
|
|
426
|
+
"description": "Migrated from standalone configuration",
|
|
427
|
+
"version": "1.0.0"
|
|
551
428
|
}
|
|
552
429
|
```
|
|
553
430
|
|
|
554
|
-
|
|
431
|
+
#### 第 2 步:复制现有文件
|
|
555
432
|
|
|
556
|
-
|
|
433
|
+
将现有配置复制到插件目录:
|
|
557
434
|
|
|
558
|
-
|
|
435
|
+
```bash
|
|
436
|
+
# 复制命令
|
|
437
|
+
cp -r .codebuddy/commands my-plugin/
|
|
559
438
|
|
|
560
|
-
|
|
561
|
-
-
|
|
562
|
-
- 提供插件文件下载
|
|
439
|
+
# 复制代理(如有)
|
|
440
|
+
cp -r .codebuddy/agents my-plugin/
|
|
563
441
|
|
|
564
|
-
|
|
442
|
+
# 复制技能(如有)
|
|
443
|
+
cp -r .codebuddy/skills my-plugin/
|
|
444
|
+
```
|
|
565
445
|
|
|
566
|
-
|
|
446
|
+
#### 第 3 步:迁移 Hooks
|
|
567
447
|
|
|
568
|
-
|
|
448
|
+
如果你的设置中有 hooks,创建 hooks 目录:
|
|
569
449
|
|
|
450
|
+
```bash
|
|
451
|
+
mkdir my-plugin/hooks
|
|
570
452
|
```
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
453
|
+
|
|
454
|
+
创建 `my-plugin/hooks/hooks.json`,将 hooks 配置放入其中。从 `.codebuddy/settings.json` 或 `settings.local.json` 中复制 `hooks` 对象,格式是一样的。命令通过标准输入接收 hook 输入的 JSON 数据,可以使用 `jq` 提取字段:
|
|
455
|
+
|
|
456
|
+
```json
|
|
457
|
+
{
|
|
458
|
+
"hooks": {
|
|
459
|
+
"PostToolUse": [
|
|
460
|
+
{
|
|
461
|
+
"matcher": "Write|Edit",
|
|
462
|
+
"hooks": [
|
|
463
|
+
{
|
|
464
|
+
"type": "command",
|
|
465
|
+
"command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix"
|
|
466
|
+
}
|
|
467
|
+
]
|
|
468
|
+
}
|
|
469
|
+
]
|
|
470
|
+
}
|
|
471
|
+
}
|
|
579
472
|
```
|
|
580
473
|
|
|
474
|
+
#### 第 4 步:测试迁移后的插件
|
|
475
|
+
|
|
476
|
+
加载插件验证一切正常:
|
|
477
|
+
|
|
478
|
+
```bash
|
|
479
|
+
codebuddy --plugin-dir ./my-plugin
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
测试每个组件:运行你的命令、在 `/agents` 中检查代理、验证钩子正确触发。
|
|
483
|
+
|
|
484
|
+
### 迁移前后对比
|
|
485
|
+
|
|
486
|
+
| 独立配置(`.codebuddy/`) | 插件 |
|
|
487
|
+
|---------------------------|------|
|
|
488
|
+
| 仅在一个项目中可用 | 可通过市场共享 |
|
|
489
|
+
| 文件在 `.codebuddy/commands/` | 文件在 `plugin-name/commands/` |
|
|
490
|
+
| Hooks 在 `settings.json` 中 | Hooks 在 `hooks/hooks.json` 中 |
|
|
491
|
+
| 需要手动复制来共享 | 使用 `/plugin install` 安装 |
|
|
492
|
+
|
|
493
|
+
> 迁移后,可以删除 `.codebuddy/` 中的原始文件以避免重复。加载时插件版本会优先使用。
|
|
494
|
+
|
|
581
495
|
## 最佳实践
|
|
582
496
|
|
|
583
497
|
### 插件开发建议
|
|
584
498
|
|
|
585
|
-
1.
|
|
499
|
+
1. **遵循命名规范**:使用清晰、描述性的插件名称(kebab-case,无空格)
|
|
586
500
|
2. **提供完整元数据**:在 `plugin.json` 中提供详细的描述和作者信息
|
|
587
501
|
3. **版本管理**:使用语义化版本号(Semantic Versioning)
|
|
588
502
|
4. **文档完善**:为每个命令和技能提供清晰的描述
|
|
589
|
-
5.
|
|
503
|
+
5. **测试充分**:使用 `--plugin-dir` 在本地测试插件后再发布
|
|
590
504
|
|
|
591
505
|
### 安全注意事项
|
|
592
506
|
|
|
@@ -594,49 +508,18 @@ local-plugins/
|
|
|
594
508
|
2. **审查插件代码**:安装前检查插件的命令和 Hooks
|
|
595
509
|
3. **使用权限控制**:通过 CodeBuddy 的权限系统限制插件访问
|
|
596
510
|
|
|
597
|
-
### 插件发布流程
|
|
598
|
-
|
|
599
|
-
1. 创建插件目录和文件
|
|
600
|
-
2. 编写 `plugin.json`
|
|
601
|
-
3. 在本地市场测试插件
|
|
602
|
-
4. 创建 GitHub 仓库或 HTTP 服务器
|
|
603
|
-
5. 添加 `marketplace.json`
|
|
604
|
-
6. 分享市场地址给用户
|
|
605
|
-
|
|
606
511
|
## 故障排除
|
|
607
512
|
|
|
608
|
-
### 市场未加载
|
|
609
|
-
|
|
610
|
-
**问题**:无法添加市场或看不到来自它的插件
|
|
611
|
-
|
|
612
|
-
**解决方案**:
|
|
613
|
-
|
|
614
|
-
* 验证市场 URL 是否可访问
|
|
615
|
-
* 检查 `.codebuddy-plugin/marketplace.json` 是否存在于指定路径
|
|
616
|
-
* 使用 `codebuddy plugin validate` 确保 JSON 语法有效
|
|
617
|
-
* 对于私有存储库,确认您有访问权限
|
|
618
|
-
|
|
619
|
-
#### 插件安装失败
|
|
620
|
-
|
|
621
|
-
**问题**:市场出现但插件安装失败
|
|
622
|
-
|
|
623
|
-
**解决方案**:
|
|
624
|
-
|
|
625
|
-
* 验证插件源 URL 是否可访问
|
|
626
|
-
* 检查插件目录是否包含所需文件
|
|
627
|
-
* 对于 GitHub 来源,确保存储库是公开的或您有访问权限
|
|
628
|
-
* 通过手动克隆/下载来测试插件来源
|
|
629
|
-
|
|
630
513
|
### 插件未加载
|
|
631
514
|
|
|
632
515
|
**问题**:插件已安装但不工作
|
|
633
516
|
|
|
634
517
|
**解决方案**:
|
|
635
518
|
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
519
|
+
- 确认插件已启用:运行 `/plugin` 进入 "Installed" 标签页查看
|
|
520
|
+
- 检查 `plugin.json` 格式是否正确
|
|
521
|
+
- 运行 `/reload-plugins` 重新加载插件
|
|
522
|
+
- 使用 `--debug` 模式查看加载日志
|
|
640
523
|
|
|
641
524
|
### 命令不可用
|
|
642
525
|
|
|
@@ -644,46 +527,38 @@ local-plugins/
|
|
|
644
527
|
|
|
645
528
|
**解决方案**:
|
|
646
529
|
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
### 市场连接失败
|
|
652
|
-
|
|
653
|
-
**问题**:无法连接到市场或获取插件列表
|
|
654
|
-
|
|
655
|
-
**解决方案**:
|
|
656
|
-
|
|
657
|
-
* **GitHub 市场**:检查网络连接和仓库访问权限
|
|
658
|
-
* **HTTP 市场**:确认服务器可访问
|
|
659
|
-
* **本地市场**:验证目录路径和权限
|
|
530
|
+
- 确认命令文件放在插件根目录的 `commands/` 中,而不是 `.codebuddy-plugin/` 内
|
|
531
|
+
- 检查命令文件是否存在且格式正确
|
|
532
|
+
- 运行 `/reload-plugins` 刷新
|
|
660
533
|
|
|
661
534
|
### 验证和测试
|
|
662
535
|
|
|
663
|
-
|
|
536
|
+
在共享前测试你的插件:
|
|
664
537
|
|
|
665
538
|
```bash
|
|
666
|
-
#
|
|
667
|
-
codebuddy plugin validate .
|
|
668
|
-
|
|
669
|
-
# 验证特定插件
|
|
539
|
+
# 验证插件格式
|
|
670
540
|
codebuddy plugin validate /path/to/plugin
|
|
671
541
|
|
|
672
|
-
#
|
|
673
|
-
codebuddy plugin
|
|
542
|
+
# 使用 --plugin-dir 本地测试
|
|
543
|
+
codebuddy --plugin-dir ./my-plugin
|
|
674
544
|
|
|
675
|
-
#
|
|
676
|
-
|
|
545
|
+
# 测试插件的技能
|
|
546
|
+
/my-plugin:skill-name
|
|
677
547
|
```
|
|
678
548
|
|
|
679
|
-
##
|
|
549
|
+
## 后续步骤
|
|
680
550
|
|
|
681
|
-
|
|
682
|
-
- **[Slash Commands](slash-commands.md)** - 了解命令系统
|
|
683
|
-
- **[Skills](skills.md)** - 学习技能系统
|
|
684
|
-
- **[Hooks](hooks.md)** - 掌握 Hooks 机制
|
|
551
|
+
### 对于插件用户
|
|
685
552
|
|
|
686
|
-
|
|
553
|
+
- [插件市场](plugin-marketplaces.md) - 浏览市场并安装插件
|
|
554
|
+
- [设置](settings.md) - 了解插件配置选项
|
|
687
555
|
|
|
688
|
-
|
|
556
|
+
### 对于插件开发者
|
|
689
557
|
|
|
558
|
+
- [插件市场](plugin-marketplaces.md) - 打包和共享你的插件
|
|
559
|
+
- [插件参考文档](plugins-reference.md) - 完整技术规范
|
|
560
|
+
- 深入了解具体的插件组件:
|
|
561
|
+
- [Skills](skills.md) - 技能开发详情
|
|
562
|
+
- [子代理](sub-agents.md) - 代理配置和能力
|
|
563
|
+
- [Hooks](hooks.md) - 事件处理和自动化
|
|
564
|
+
- [MCP](mcp.md) - 外部工具集成
|