ccman 2.1.3 → 2.1.4

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 (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +308 -258
  3. package/README_en.md +444 -0
  4. package/dist/cli.js +213 -33
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config/default-providers.d.ts +34 -0
  7. package/dist/config/default-providers.d.ts.map +1 -0
  8. package/dist/config/default-providers.js +96 -0
  9. package/dist/config/default-providers.js.map +1 -0
  10. package/dist/config/static-env.d.ts +1 -1
  11. package/dist/config/static-env.js +1 -1
  12. package/package.json +24 -3
  13. package/.editorconfig +0 -15
  14. package/.env.development +0 -3
  15. package/.env.production +0 -3
  16. package/.eslintrc.js +0 -28
  17. package/.github/workflows/release.yml +0 -99
  18. package/.prettierrc +0 -10
  19. package/CLAUDE.md +0 -279
  20. package/README_zh.md +0 -394
  21. package/dev-test.sh +0 -40
  22. package/docs/npm-publish-guide.md +0 -71
  23. package/docs/release-guide.md +0 -144
  24. package/docs/scripts-guide.md +0 -221
  25. package/docs/version-management.md +0 -64
  26. package/jest.config.js +0 -22
  27. package/release-temp/README.md +0 -394
  28. package/release-temp/package.json +0 -61
  29. package/scripts/build-env.js +0 -75
  30. package/scripts/modules/check-uncommitted.sh +0 -109
  31. package/scripts/modules/create-tag.sh +0 -279
  32. package/scripts/modules/monitor-release.sh +0 -296
  33. package/scripts/modules/version-bump.sh +0 -262
  34. package/scripts/publish-local.sh +0 -91
  35. package/scripts/quick-release.sh +0 -100
  36. package/scripts/release.sh +0 -430
  37. package/scripts/smart-release-v3.sh +0 -283
  38. package/scripts/smart-release.sh +0 -322
  39. package/src/cli.ts +0 -598
  40. package/src/commands/lang.ts +0 -105
  41. package/src/core/CCMConfigManager.ts +0 -259
  42. package/src/core/ClaudeConfigManager.ts +0 -141
  43. package/src/i18n/LanguageManager.ts +0 -169
  44. package/src/i18n/messages.ts +0 -233
  45. package/src/index.ts +0 -4
  46. package/src/providers/ProviderManager.ts +0 -412
  47. package/src/types/index.ts +0 -101
  48. package/src/utils/env-config.ts +0 -53
  49. package/src/utils/version.ts +0 -16
  50. package/tsconfig.json +0 -25
package/README_zh.md DELETED
@@ -1,394 +0,0 @@
1
- # CCM - Claude Code Manager v2.0
2
-
3
- 基于 TypeScript 的命令行工具,通过**直接 settings.json 集成**和**智能语言支持**管理多个 Claude Code API 供应商配置。
4
-
5
- > [English Documentation](./README.md) | **中文文档**
6
-
7
- ## ✨ v2.0 新特性
8
-
9
- 🌍 **智能语言支持** - 自动检测系统语言或引导首次运行设置
10
- 🔧 **直接 Claude 集成** - 直接修改 `~/.claude/settings.json`,无需 shell 变量
11
- 📁 **供应商管理** - 存储和切换多个 API 供应商配置
12
- 🎯 **交互式菜单系统** - 支持连续操作的导航选项
13
- ⚡ **零配置体验** - 开箱即用的智能默认设置
14
-
15
- ## 🚀 快速开始
16
-
17
- ### 安装
18
-
19
- ```bash
20
- # 从 NPM 安装
21
- npm install -g ccman
22
-
23
- # 或者开发环境安装依赖
24
- npm install && npm run build
25
- ```
26
-
27
- ### 首次运行体验
28
-
29
- ```bash
30
- # 启动 CCM(首次运行)
31
- ccman
32
-
33
- 🌍 Welcome to CCM! / 欢迎使用 CCM!
34
-
35
- This is your first time running CCM.
36
- 这是您首次运行 CCM。
37
-
38
- ? Please choose your preferred language:
39
- ? 请选择您偏好的语言:
40
- ❯ 🇨🇳 中文 (Chinese)
41
- 🇺🇸 English
42
- 🌐 基于系统自动检测 (Auto-detect based on system)
43
-
44
- ✓ 语言已设置为中文
45
- ✓ 您可以稍后使用以下命令更改:ccman lang set <zh|en|auto>
46
- ```
47
-
48
- ### 基本用法
49
-
50
- ```bash
51
- # 交互式主菜单(推荐)
52
- ccman
53
-
54
- # 列出所有供应商
55
- ccman ls
56
-
57
- # 直接添加供应商
58
- ccman add <id> <name> <baseUrl> [apiKey]
59
-
60
- # 切换供应商
61
- ccman use <id>
62
-
63
- # 删除供应商
64
- ccman rm <id>
65
- ```
66
-
67
- ## 🌐 语言管理
68
-
69
- ### 语言命令
70
- ```bash
71
- ccman lang # 显示当前语言设置
72
- ccman lang set zh # 设置为中文
73
- ccman lang set en # 设置为英文
74
- ccman lang set auto # 基于系统自动检测
75
- ccman lang reset # 重置为首次运行状态
76
- ```
77
-
78
- ### 支持的语言
79
- - **中文 (zh)** - 完整中文界面
80
- - **英文 (en)** - Full English interface
81
- - **自动检测** - 基于系统 `LANG` 环境变量
82
-
83
- ### 语言检测逻辑
84
- - 英文环境 (`en-*`) → 英文界面
85
- - 其他环境(包括 `zh-*`、未设置等)→ 中文界面
86
- - 随时可手动覆盖
87
-
88
- ## 📖 命令参考
89
-
90
- ### 核心供应商管理
91
- ```bash
92
- ccman # 交互式菜单(默认)
93
- ccman add <id> <name> <url> [key] # 添加新供应商
94
- ccman use <id> # 切换到供应商
95
- ccman ls # 列出所有供应商
96
- ccman ls --current # 显示当前供应商详情
97
- ccman ls --brief # 简洁供应商列表
98
- ccman rm <id> # 删除供应商
99
- ccman clear # 删除所有供应商(危险操作)
100
- ```
101
-
102
- ### 语言管理
103
- ```bash
104
- ccman lang # 显示当前语言
105
- ccman lang set <zh|en|auto> # 设置语言偏好
106
- ccman lang reset # 重置为首次运行状态
107
- ```
108
-
109
- ## 🎯 交互式体验
110
-
111
- ### 主菜单导航
112
- ```bash
113
- $ ccman
114
-
115
- ? 您想要执行什么操作?
116
- ❯ 切换供应商
117
- 添加新供应商
118
- 更新供应商
119
- 删除供应商
120
- 显示详细状态
121
- 退出
122
-
123
- # 每次操作后:
124
- ? 是否要执行其他操作? (Y/n)
125
- ```
126
-
127
- ### 供应商添加流程
128
- ```bash
129
- $ ccman add
130
-
131
- ? 供应商ID(唯一标识符): my-provider
132
- ? 供应商名称: 我的自定义API
133
- ? 描述: 我的自定义Claude API
134
- ? 基础URL: https://api.mycustom.com
135
- ? API密钥: ****************
136
-
137
- ✓ 供应商添加成功
138
- ? 将"我的自定义API"设为当前供应商? (Y/n)
139
- ✓ 供应商切换成功
140
- Claude Code 配置已成功更新!
141
- ```
142
-
143
- ## 🔧 架构概览
144
-
145
- ### 直接 Claude 集成
146
- CCM v2.0 直接修改您的 Claude Code 设置文件:
147
-
148
- **修改前(CCM 管理)**:
149
- ```json
150
- {
151
- "env": {
152
- "ANTHROPIC_AUTH_TOKEN": "old-token",
153
- "ANTHROPIC_BASE_URL": "https://old-api.com"
154
- }
155
- }
156
- ```
157
-
158
- **修改后(CCM 更新)**:
159
- ```json
160
- {
161
- "env": {
162
- "ANTHROPIC_AUTH_TOKEN": "new-token",
163
- "ANTHROPIC_BASE_URL": "https://new-api.com",
164
- "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1
165
- },
166
- "permissions": {
167
- "allow": [],
168
- "deny": []
169
- },
170
- "apiKeyHelper": "echo 'new-token'"
171
- }
172
- ```
173
-
174
- ### 供应商存储结构
175
- 供应商存储在 `~/.ccman/providers/`:
176
-
177
- ```
178
- ~/.ccman/
179
- ├── config.json # CCM 主配置
180
- ├── providers/ # 单独的供应商配置
181
- │ ├── anthropic.json
182
- │ ├── my-provider.json
183
- │ └── staging.json
184
- ```
185
-
186
- ### 配置合并
187
- CCM 只更新 Claude 相关的键,保留您的现有设置:
188
- - ✅ 保留:`mcpServers`、`model`、`customUserConfig` 等
189
- - 🔄 更新:`env.ANTHROPIC_*`、`permissions`、`apiKeyHelper`
190
-
191
- ## 📊 供应商配置
192
-
193
- ### 供应商结构
194
- ```json
195
- {
196
- "name": "Anthropic Official",
197
- "description": "Anthropic 官方 API 配置",
198
- "config": {
199
- "env": {
200
- "ANTHROPIC_AUTH_TOKEN": "your-token",
201
- "ANTHROPIC_BASE_URL": "https://api.anthropic.com",
202
- "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1
203
- },
204
- "permissions": { "allow": [], "deny": [] },
205
- "apiKeyHelper": "echo 'your-token'"
206
- },
207
- "metadata": {
208
- "createdAt": "2025-01-15T10:30:00.000Z",
209
- "updatedAt": "2025-01-15T10:30:00.000Z",
210
- "usageCount": 5
211
- }
212
- }
213
- ```
214
-
215
- ### 主配置
216
- ```json
217
- {
218
- "currentProvider": "anthropic",
219
- "claudeConfigPath": "/Users/user/.claude/settings.json",
220
- "providers": {
221
- "anthropic": {
222
- "name": "Anthropic Official",
223
- "configFile": "anthropic.json",
224
- "lastUsed": "2025-01-15T10:30:00.000Z"
225
- }
226
- },
227
- "settings": {
228
- "language": "zh",
229
- "firstRun": false
230
- },
231
- "metadata": {
232
- "version": "2.0.0",
233
- "createdAt": "2025-01-15T10:00:00.000Z",
234
- "updatedAt": "2025-01-15T10:30:00.000Z"
235
- }
236
- }
237
- ```
238
-
239
- ## 💡 使用示例
240
-
241
- ### 完整首次设置
242
- ```bash
243
- # 首次运行 - 语言选择
244
- ccman
245
- # → 语言选择向导
246
- # → 未找到供应商,引导创建
247
- # → 自动更新 Claude 设置
248
-
249
- # 添加其他供应商
250
- ccman add staging "测试API" https://staging-api.com
251
- ccman add dev "开发环境" https://dev-api.com
252
-
253
- # 在供应商间切换
254
- ccman use staging
255
- ccman use dev
256
- ccman use anthropic
257
- ```
258
-
259
- ### 多供应商工作流
260
- ```bash
261
- # 列出所有供应商的详情
262
- ccman ls
263
- # * Anthropic Official (anthropic) - https://api.anthropic.com
264
- # 测试API (staging) - https://staging-api.com
265
- # 开发环境 (dev) - https://dev-api.com
266
-
267
- # 切换到测试环境
268
- ccman use staging
269
- # ✓ 供应商切换成功
270
- # ✓ Claude Code 配置已成功更新!
271
-
272
- # 检查当前供应商
273
- ccman ls --current
274
- # 当前供应商: 测试API (staging)
275
- # 基础URL: https://staging-api.com
276
- # 使用次数: 3 次
277
- # 最后更新: 2025-01-15 10:30:15
278
- ```
279
-
280
- ### 语言切换
281
- ```bash
282
- # 检查当前语言
283
- ccman lang
284
- # 当前语言: 中文 (Chinese)
285
-
286
- # 切换到英文
287
- ccman lang set en
288
- # ✓ 语言切换成功
289
- # Current language: English
290
-
291
- # 设置自动检测
292
- ccman lang set auto
293
- # ✓ 语言切换成功
294
- # 当前语言: 自动检测 (Auto-detect)
295
- # 自动检测结果: English
296
- ```
297
-
298
- ## 🛠️ 开发设置
299
-
300
- ### 开发环境
301
- CCM 支持隔离的开发环境:
302
-
303
- ```bash
304
- # 设置开发路径
305
- export CCM_CONFIG_DIR=".ccman-dev"
306
- export CLAUDE_CONFIG_PATH="$HOME/.claude/settings-dev.json"
307
-
308
- # 使用开发模式
309
- npm run dev
310
-
311
- # 生产环境构建
312
- npm run build
313
-
314
- # 测试构建版本
315
- npm start
316
- ```
317
-
318
- ### 开发命令
319
- ```bash
320
- npm run dev # 使用 tsx 的开发模式
321
- npm run build # TypeScript 编译
322
- npm run start # 运行构建后的 CLI
323
- npm run clean # 删除 dist/ 目录
324
- npm run lint # ESLint TypeScript 文件检查
325
- npm test # 运行测试(passWithNoTests)
326
- ```
327
-
328
- ## 🔍 故障排除
329
-
330
- ### 供应商问题
331
- ```bash
332
- # 供应商不工作?
333
- ccman ls --current # 检查当前供应商详情
334
- ccman use <供应商id> # 重新应用供应商配置
335
-
336
- # 设置未应用?
337
- # 检查 ~/.claude/settings.json 的更新
338
- cat ~/.claude/settings.json | grep ANTHROPIC
339
- ```
340
-
341
- ### 语言问题
342
- ```bash
343
- # 语言未切换?
344
- ccman lang # 检查当前设置
345
- ccman lang set zh # 强制中文
346
- ccman lang set en # 强制英文
347
-
348
- # 首次运行问题?
349
- ccman lang reset # 重置为首次运行状态
350
- ccman # 重新启动进行语言选择
351
- ```
352
-
353
- ### 配置问题
354
- ```bash
355
- # 配置损坏?
356
- ccman clear # 删除所有(需确认)
357
- ccman # 重新开始
358
-
359
- # 开发环境隔离
360
- export CCM_CONFIG_DIR=".ccman-dev" # 独立开发配置
361
- ```
362
-
363
- ## 📋 要求
364
-
365
- - **Node.js** >= 16.0.0
366
- - **Claude Code** 已安装且支持 settings.json
367
- - **操作系统**: Linux, macOS, Windows (WSL)
368
-
369
- ## 📄 许可证
370
-
371
- MIT 许可证 - 详见 LICENSE 文件。
372
-
373
- ---
374
-
375
- ## 🚀 从 v1.x 迁移
376
-
377
- CCM v2.0 使用完全不同的架构:
378
-
379
- ### v1.x(Shell 集成)
380
- - 修改 shell 配置文件
381
- - 使用环境变量
382
- - 复杂的 shell 集成
383
-
384
- ### v2.0(直接集成)
385
- - 直接修改 `~/.claude/settings.json`
386
- - 基于供应商的配置
387
- - 语言支持
388
- - 简化、更安全的方法
389
-
390
- **迁移**:v1.x 和 v2.x 不兼容。如果升级,请使用 `ccman clear` 重新开始。
391
-
392
- ---
393
-
394
- *CCM v2.0 - 智能、多语言、无缝的 Claude Code 供应商管理。*
package/dev-test.sh DELETED
@@ -1,40 +0,0 @@
1
- #!/bin/bash
2
-
3
- # CCM 开发测试脚本
4
- # 设置开发环境变量,避免影响生产配置
5
-
6
- echo "🔧 Setting up CCM development environment..."
7
-
8
- # 设置开发环境变量
9
- export CCM_CONFIG_DIR=".ccman-dev"
10
- export CLAUDE_CONFIG_PATH="$HOME/.claude/settings-dev.json"
11
-
12
- echo " CCM Config Directory: $HOME/$CCM_CONFIG_DIR"
13
- echo " Claude Config Path: $CLAUDE_CONFIG_PATH"
14
- echo
15
-
16
- # 创建开发用的 Claude 配置文件(如果不存在)
17
- if [ ! -f "$CLAUDE_CONFIG_PATH" ]; then
18
- echo "📝 Creating development Claude settings file..."
19
- mkdir -p "$(dirname "$CLAUDE_CONFIG_PATH")"
20
- cat > "$CLAUDE_CONFIG_PATH" << 'EOF'
21
- {
22
- "env": {
23
- "ANTHROPIC_AUTH_TOKEN": "",
24
- "ANTHROPIC_BASE_URL": "https://api.anthropic.com"
25
- },
26
- "permissions": {
27
- "allow": [],
28
- "deny": []
29
- },
30
- "apiKeyHelper": "echo ''"
31
- }
32
- EOF
33
- echo " Created: $CLAUDE_CONFIG_PATH"
34
- echo
35
- fi
36
-
37
- # 执行 CCM 命令
38
- echo "🚀 Running CCM command: $@"
39
- echo
40
- npm run dev -- "$@"
@@ -1,71 +0,0 @@
1
- # NPM 发布配置指南
2
-
3
- ## 🔐 步骤一:获取 NPM Token
4
-
5
- ```bash
6
- # 1. 登录 NPM
7
- npm login
8
-
9
- # 2. 创建发布权限的 token
10
- npm token create --read-only=false
11
- ```
12
-
13
- 复制生成的 token(格式:`npm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`)
14
-
15
- ## 🔧 步骤二:设置 GitHub Secrets
16
-
17
- 1. 访问:`https://github.com/2ue/ccm/settings/secrets/actions`
18
- 2. 点击 **"New repository secret"**
19
- 3. 设置:
20
- - **Name**: `NPM_TOKEN`
21
- - **Secret**: 粘贴你的 NPM token
22
- 4. 点击 **"Add secret"**
23
-
24
- ### 验证设置
25
- 设置完成后,应看到:
26
- ```
27
- Repository secrets:
28
- • NPM_TOKEN ••••••••••••••••••••••••••••••••••••••••
29
- ```
30
-
31
- ### 关于 GITHUB_TOKEN
32
- **无需手动设置** - GitHub Actions 自动提供此 token
33
-
34
- ## 🚀 步骤三:发布
35
-
36
- ### 自动发布(推荐)
37
- ```bash
38
- # 交互式选择版本
39
- pnpm run release:interactive
40
-
41
- # 或指定版本类型
42
- pnpm run release:patch
43
- pnpm run release:minor
44
- pnpm run release:major
45
- ```
46
-
47
- ### 本地发布(备用)
48
- ```bash
49
- pnpm run publish:local
50
- ```
51
-
52
- ## 🔍 故障排查
53
-
54
- ### 401 Unauthorized
55
- - 检查 NPM token 是否正确设置
56
- - 重新生成 token: `npm token create --read-only=false`
57
-
58
- ### 403 Forbidden
59
- - 包名已存在:修改 package.json 中的 name
60
- - 检查发布权限:`npm owner ls ccman`
61
-
62
- ### 测试发布权限
63
- ```bash
64
- npm publish --dry-run
65
- ```
66
-
67
- ## 🛡️ 安全提醒
68
-
69
- - NPM token 只存储在 GitHub Secrets 中
70
- - 定期轮换 token(建议 90 天)
71
- - Token 泄露时立即删除并重新创建
@@ -1,144 +0,0 @@
1
- # 发布指南
2
-
3
- ## 📋 发布前准备
4
-
5
- 1. **设置 NPM Token**:参见 [npm-publish-guide.md](./npm-publish-guide.md)
6
- 2. **确保工作目录干净**:`git status`
7
- 3. **确保在主分支**:`git checkout main`
8
-
9
- ## 🚀 发布方式
10
-
11
- > 💡 **强烈推荐**: 使用新的模块化智能发布脚本,详见 [Scripts使用指南](./scripts-guide.md)
12
-
13
- ### 🌟 方式一:智能发布脚本(强烈推荐)
14
-
15
- #### 使用 smart-release-v3.sh
16
- ```bash
17
- # 完整智能发布流程(推荐)
18
- ./scripts/smart-release-v3.sh
19
- # 或使用 npm script
20
- pnpm run release:smart
21
-
22
- # 跳过版本升级,使用当前版本
23
- ./scripts/smart-release-v3.sh --skip-version
24
-
25
- # 直接指定版本类型
26
- ./scripts/smart-release-v3.sh --version-type minor
27
-
28
- # 不监控发布状态(快速完成)
29
- ./scripts/smart-release-v3.sh --no-monitor
30
-
31
- # 查看帮助
32
- ./scripts/smart-release-v3.sh --help
33
- ```
34
-
35
- #### ✨ 智能发布特性
36
- - **智能未提交代码处理**: 3种处理选项(提交/暂存/取消)
37
- - **智能版本推荐**: 基于git提交历史分析
38
- - **实时发布监控**: 5分钟监控GitHub Actions、NPM、Release
39
- - **完整链接输出**: 自动生成所有相关链接
40
- - **模块化架构**: 每个步骤可独立测试和调试
41
-
42
- ### 方式二:经典发布脚本
43
-
44
- #### Scripts发布
45
- ```bash
46
- # 快速发布(日常推荐)
47
- ./scripts/quick-release.sh patch # 修订版本
48
- ./scripts/quick-release.sh minor # 次版本
49
- ./scripts/quick-release.sh major # 主版本
50
-
51
- # 完整发布流程(重要版本)
52
- ./scripts/release.sh # 交互式完整流程
53
- ```
54
-
55
- #### NPM Scripts发布
56
- ```bash
57
- # 交互选择版本类型
58
- pnpm run release:interactive
59
-
60
- # 指定版本类型
61
- pnpm run release:patch # 0.0.1 → 0.0.2
62
- pnpm run release:minor # 0.0.1 → 0.1.0
63
- pnpm run release:major # 0.0.1 → 1.0.0
64
-
65
- # 完整发布流程
66
- pnpm run release
67
- ```
68
-
69
- ### 方式三:本地发布(备用)
70
- ```bash
71
- # 直接发布到 NPM(跳过 GitHub Actions)
72
- pnpm run publish:local
73
- # 或
74
- ./scripts/publish-local.sh
75
- ```
76
-
77
- ## 🔧 独立模块使用
78
-
79
- 模块化脚本支持独立使用,便于测试和调试:
80
-
81
- ```bash
82
- # 仅检查代码状态
83
- ./scripts/modules/check-uncommitted.sh
84
-
85
- # 仅进行版本升级
86
- ./scripts/modules/version-bump.sh minor
87
-
88
- # 仅创建tag并推送
89
- ./scripts/modules/create-tag.sh
90
-
91
- # 仅监控发布状态
92
- ./scripts/modules/monitor-release.sh
93
- ```
94
-
95
- ## 📊 发布后验证
96
-
97
- ### 1. 检查 GitHub Actions
98
- 访问:https://github.com/2ue/ccm/actions
99
- - 等待构建完成(约 2-3 分钟)
100
- - 确认状态为 ✅ 成功
101
-
102
- ### 2. 验证结果
103
- - **NPM 包**:https://www.npmjs.com/package/ccman
104
- - **GitHub Release**:https://github.com/2ue/ccm/releases
105
- - **测试安装**:`npm install -g ccman`
106
-
107
- ## 🔧 故障排查
108
-
109
- ### GitHub Actions 失败
110
- 1. 检查 `NPM_TOKEN` 设置是否正确
111
- 2. 查看 Actions 日志获取详细错误信息
112
- 3. 确认包名未被占用
113
-
114
- ### 版本冲突
115
- ```bash
116
- # 检查已存在的版本
117
- npm view ccman versions --json
118
-
119
- # 使用新版本号重新发布
120
- pnpm run release:patch
121
- ```
122
-
123
- ### 手动创建标签(高级)
124
- ```bash
125
- # 如果脚本失败,可手动操作
126
- pnpm version patch --no-git-tag-version
127
- git add . && git commit -m "chore: 发布版本 v0.0.2"
128
- git tag -a v0.0.2 -m "Release v0.0.2"
129
- git push origin main && git push origin v0.0.2
130
- ```
131
-
132
- ## ✅ 发布检查清单
133
-
134
- ### 发布前
135
- - [ ] NPM token 已设置
136
- - [ ] 工作目录干净
137
- - [ ] 在主分支
138
- - [ ] 构建和测试通过
139
-
140
- ### 发布后
141
- - [ ] GitHub Actions 成功
142
- - [ ] NPM 包可安装
143
- - [ ] GitHub Release 创建
144
- - [ ] 版本号正确