ccman 2.1.3 → 2.1.5

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 (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +201 -301
  3. package/README_en.md +294 -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/dist/core/ClaudeConfigManager.d.ts +1 -1
  13. package/dist/core/ClaudeConfigManager.d.ts.map +1 -1
  14. package/dist/core/ClaudeConfigManager.js +2 -4
  15. package/dist/core/ClaudeConfigManager.js.map +1 -1
  16. package/package.json +24 -3
  17. package/.editorconfig +0 -15
  18. package/.env.development +0 -3
  19. package/.env.production +0 -3
  20. package/.eslintrc.js +0 -28
  21. package/.github/workflows/release.yml +0 -99
  22. package/.prettierrc +0 -10
  23. package/CLAUDE.md +0 -279
  24. package/README_zh.md +0 -394
  25. package/dev-test.sh +0 -40
  26. package/docs/npm-publish-guide.md +0 -71
  27. package/docs/release-guide.md +0 -144
  28. package/docs/scripts-guide.md +0 -221
  29. package/docs/version-management.md +0 -64
  30. package/jest.config.js +0 -22
  31. package/release-temp/README.md +0 -394
  32. package/release-temp/package.json +0 -61
  33. package/scripts/build-env.js +0 -75
  34. package/scripts/modules/check-uncommitted.sh +0 -109
  35. package/scripts/modules/create-tag.sh +0 -279
  36. package/scripts/modules/monitor-release.sh +0 -296
  37. package/scripts/modules/version-bump.sh +0 -262
  38. package/scripts/publish-local.sh +0 -91
  39. package/scripts/quick-release.sh +0 -100
  40. package/scripts/release.sh +0 -430
  41. package/scripts/smart-release-v3.sh +0 -283
  42. package/scripts/smart-release.sh +0 -322
  43. package/src/cli.ts +0 -598
  44. package/src/commands/lang.ts +0 -105
  45. package/src/core/CCMConfigManager.ts +0 -259
  46. package/src/core/ClaudeConfigManager.ts +0 -141
  47. package/src/i18n/LanguageManager.ts +0 -169
  48. package/src/i18n/messages.ts +0 -233
  49. package/src/index.ts +0 -4
  50. package/src/providers/ProviderManager.ts +0 -412
  51. package/src/types/index.ts +0 -101
  52. package/src/utils/env-config.ts +0 -53
  53. package/src/utils/version.ts +0 -16
  54. package/tsconfig.json +0 -25
@@ -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
- - [ ] 版本号正确
@@ -1,221 +0,0 @@
1
- # Scripts 使用指南
2
-
3
- 项目提供了多个发布和管理脚本,位于 `./scripts/` 目录下。现已升级为**模块化架构**,提供更灵活、专业的发布体验。
4
-
5
- ## 📂 Scripts 目录结构
6
-
7
- ### 🆕 模块化架构 (v3.0)
8
-
9
- ```
10
- scripts/
11
- ├── modules/ # 独立功能模块
12
- │ ├── check-uncommitted.sh # 智能未提交代码处理
13
- │ ├── version-bump.sh # 智能版本提升选择
14
- │ ├── create-tag.sh # 创建tag和提交
15
- │ └── monitor-release.sh # 发布状态监控
16
- ├── smart-release-v3.sh # 🌟 主控智能发布脚本
17
- ├── release.sh # 完整发布流程(经典版本)
18
- ├── quick-release.sh # 快速发布流程(经典版本)
19
- └── publish-local.sh # 本地发布脚本(调试用)
20
- ```
21
-
22
- ## 🌟 模块化智能发布脚本(推荐)
23
-
24
- ### `smart-release-v3.sh` - 主控智能发布脚本
25
-
26
- **🎯 完全按照专业发布流程设计**,实现四个独立步骤的完美组合:
27
-
28
- #### 📋 发布流程
29
- 1. **检查工作目录状态** - 智能处理未提交代码
30
- 2. **版本管理** - 可选择版本升级或使用现有版本
31
- 3. **创建tag和提交** - 纯tag操作,触发GitHub Actions
32
- 4. **监控发布状态** - 5分钟实时监控,自动确认成功
33
-
34
- #### 🚀 使用方法
35
-
36
- ```bash
37
- # 完整智能发布流程
38
- ./scripts/smart-release-v3.sh
39
-
40
- # 跳过版本升级,使用当前版本
41
- ./scripts/smart-release-v3.sh --skip-version
42
-
43
- # 直接指定版本类型
44
- ./scripts/smart-release-v3.sh --version-type minor
45
-
46
- # 不监控发布状态
47
- ./scripts/smart-release-v3.sh --no-monitor
48
-
49
- # 查看帮助
50
- ./scripts/smart-release-v3.sh --help
51
- ```
52
-
53
- #### ✨ 智能特性
54
-
55
- - **智能未提交代码处理**: 3种处理选项(提交/暂存/取消)
56
- - **智能版本推荐**: 基于git提交历史分析推荐合适版本
57
- - **实时发布监控**: 监控GitHub Actions、NPM包、GitHub Release状态
58
- - **完整链接输出**: 自动生成所有相关监控和访问链接
59
- - **专业错误处理**: 每步都有错误检查和恢复提示
60
-
61
- ## 🔧 独立模块脚本
62
-
63
- 每个模块都可以独立运行,便于测试和调试:
64
-
65
- ### 1. `modules/check-uncommitted.sh` - 代码状态检查
66
-
67
- ```bash
68
- # 检查工作目录状态
69
- ./scripts/modules/check-uncommitted.sh
70
- ```
71
-
72
- **功能**:
73
- - 检测未提交的更改
74
- - 提供3种智能处理选项:提交、暂存、取消
75
- - 给出清晰的操作指导
76
-
77
- ### 2. `modules/version-bump.sh` - 版本管理
78
-
79
- ```bash
80
- # 交互式版本选择
81
- ./scripts/modules/version-bump.sh
82
-
83
- # 直接指定版本类型
84
- ./scripts/modules/version-bump.sh patch
85
- ./scripts/modules/version-bump.sh minor
86
- ./scripts/modules/version-bump.sh major
87
-
88
- # 测试模式(不执行实际升级)
89
- ./scripts/modules/version-bump.sh test
90
- ```
91
-
92
- **功能**:
93
- - 基于git提交历史的智能版本推荐
94
- - 5种版本选择:patch、minor、major、prerelease、custom
95
- - 版本预览和确认机制
96
-
97
- ### 3. `modules/create-tag.sh` - Tag创建
98
-
99
- ```bash
100
- # 根据当前package.json版本创建tag
101
- ./scripts/modules/create-tag.sh
102
- ```
103
-
104
- **功能**:
105
- - 根据package.json版本号创建tag
106
- - 不进行版本升级,纯tag操作
107
- - 自动提交和推送,触发GitHub Actions
108
-
109
- ### 4. `modules/monitor-release.sh` - 发布监控
110
-
111
- ```bash
112
- # 监控当前版本的发布状态
113
- ./scripts/modules/monitor-release.sh
114
- ```
115
-
116
- **功能**:
117
- - 5分钟超时的实时监控
118
- - 并行检查GitHub Actions、NPM包、GitHub Release
119
- - 输出完整的监控链接
120
- - 生成发布状态总结报告
121
-
122
- ## 📊 经典发布脚本
123
-
124
- ### 1. `quick-release.sh` - 快速发布
125
-
126
- **适用场景**: 日常开发中的小版本发布
127
-
128
- ```bash
129
- # 交互式选择版本类型
130
- ./scripts/quick-release.sh
131
-
132
- # 直接指定版本类型
133
- ./scripts/quick-release.sh patch # 修订版本
134
- ./scripts/quick-release.sh minor # 次版本
135
- ./scripts/quick-release.sh major # 主版本
136
- ```
137
-
138
- ### 2. `release.sh` - 完整发布流程
139
-
140
- **适用场景**: 重要版本发布,需要分支管理
141
-
142
- ```bash
143
- # 启动完整发布流程
144
- ./scripts/release.sh
145
- ```
146
-
147
- **特点**:
148
- - 创建专用的release分支
149
- - 智能版本建议和详细changelog
150
- - 支持prerelease和自定义版本
151
-
152
- ## 🆚 版本对比
153
-
154
- | 特性 | smart-release-v3.sh | 经典脚本 | 独立模块 |
155
- |------|---------------------|----------|----------|
156
- | **模块化设计** | ✅ | ❌ | ✅ |
157
- | **发布监控** | ✅ 5分钟实时监控 | ❌ 仅提供链接 | ✅ |
158
- | **智能代码处理** | ✅ 3种选项 | ❌ 直接拒绝 | ✅ |
159
- | **参数支持** | ✅ 丰富的选项 | 🟡 基本支持 | ✅ |
160
- | **错误恢复** | ✅ 专业级 | 🟡 基本 | ✅ |
161
- | **可测试性** | ✅ 高 | 🟡 中等 | ✅ |
162
-
163
- ## 💡 使用建议
164
-
165
- ### 🎯 推荐使用场景
166
-
167
- 1. **日常发布**: 使用 `smart-release-v3.sh` - 最完整的智能体验
168
- 2. **快速测试**: 使用 `smart-release-v3.sh --no-monitor` - 跳过监控
169
- 3. **仅升级版本**: 使用 `modules/version-bump.sh` - 独立版本管理
170
- 4. **调试监控**: 使用 `modules/monitor-release.sh` - 独立测试监控功能
171
- 5. **传统发布**: 使用经典脚本作为备用方案
172
-
173
- ### 🚀 最佳实践
174
-
175
- 1. **首次使用**: 先运行 `smart-release-v3.sh --help` 了解选项
176
- 2. **测试环境**: 使用 `--no-monitor` 跳过监控,节省时间
177
- 3. **版本规划**: 遵循[语义化版本](https://semver.org/lang/zh-CN/)规范
178
- 4. **提交规范**: 使用[约定式提交](https://www.conventionalcommits.org/zh-hans/),获得智能版本推荐
179
- 5. **模块测试**: 单独测试各模块功能,确保环境正确
180
-
181
- ## 🔗 NPM Scripts 快捷方式
182
-
183
- 在package.json中的快捷方式:
184
-
185
- ```bash
186
- # 智能发布(推荐)
187
- pnpm run release:smart # = ./scripts/smart-release-v3.sh
188
-
189
- # 经典发布
190
- pnpm run release # = ./scripts/release.sh
191
- pnpm run release:patch # = ./scripts/quick-release.sh patch
192
- pnpm run release:minor # = ./scripts/quick-release.sh minor
193
- pnpm run release:major # = ./scripts/quick-release.sh major
194
-
195
- # 本地发布
196
- pnpm run publish:local # = ./scripts/publish-local.sh
197
- ```
198
-
199
- ## ⚠️ 注意事项
200
-
201
- ### 1. 环境要求
202
- - ✅ Node.js 和 pnpm 已安装
203
- - ✅ Git 仓库,工作目录相对干净
204
- - ✅ NPM_TOKEN 已在 GitHub Secrets 中配置
205
- - ✅ curl 已安装(用于发布状态监控)
206
-
207
- ### 2. 权限设置
208
- ```bash
209
- # 给脚本添加执行权限(首次使用)
210
- chmod +x scripts/**/*.sh
211
- ```
212
-
213
- ### 3. 故障排查
214
- - **模块未找到**: 检查 `scripts/modules/` 目录是否存在
215
- - **权限错误**: 运行 `chmod +x scripts/**/*.sh`
216
- - **监控超时**: 5分钟后超时是正常的,请手动检查链接
217
- - **版本冲突**: 检查 package.json 版本号是否正确
218
-
219
- ---
220
-
221
- 🎉 **推荐**: 立即体验 `./scripts/smart-release-v3.sh` 获得最佳的智能发布体验!
@@ -1,64 +0,0 @@
1
- # 版本管理
2
-
3
- ## 🎯 版本工具
4
-
5
- 项目使用独立的版本工具模块 `src/utils/version.ts`:
6
-
7
- ```typescript
8
- import { getCurrentVersion } from './utils/version';
9
-
10
- // CLI 自动获取版本
11
- program.version(getCurrentVersion());
12
- ```
13
-
14
- ## 📦 发布脚本功能
15
-
16
- ### 智能版本推荐
17
- 脚本会分析最近的 git 提交,自动推荐合适的版本类型:
18
- - `feat`, `feature` → minor 版本
19
- - `breaking`, `major` → major 版本
20
- - 其他 → patch 版本
21
-
22
- ### 交互式界面
23
- ```bash
24
- 📦 版本升级选项:
25
-
26
- ✨ [推荐] 1) 🔧 patch (修订版本) 0.0.1 → 0.0.2
27
- 2) ✨ minor (次版本) 0.0.1 → 0.1.0
28
- 3) 🚀 major (主版本) 0.0.1 → 1.0.0
29
-
30
- 请选择版本类型 (1-3, 回车默认选择推荐项):
31
- ```
32
-
33
- ## 🚀 使用方式
34
-
35
- ### 快速发布
36
- ```bash
37
- pnpm run release:patch # 直接发布 patch 版本
38
- pnpm run release:minor # 直接发布 minor 版本
39
- pnpm run release:major # 直接发布 major 版本
40
- ```
41
-
42
- ### 交互式发布
43
- ```bash
44
- pnpm run release:interactive # 交互选择版本类型
45
- pnpm run release # 完整发布流程
46
- ```
47
-
48
- ### 本地发布
49
- ```bash
50
- pnpm run publish:local # 绕过 GitHub Actions
51
- ```
52
-
53
- ## 🎯 版本管理最佳实践
54
-
55
- ### 语义化版本
56
- - **patch (0.0.x)**: Bug 修复、小改进
57
- - **minor (0.x.0)**: 新功能、向后兼容
58
- - **major (x.0.0)**: 破坏性更改、重大重构
59
-
60
- ### 工具特性
61
- - ✅ 版本号统一管理(package.json)
62
- - ✅ 智能推荐基于 git 提交分析
63
- - ✅ 交互式界面友好
64
- - ✅ 支持多种发布模式
package/jest.config.js DELETED
@@ -1,22 +0,0 @@
1
- module.exports = {
2
- preset: 'ts-jest',
3
- testEnvironment: 'node',
4
- roots: ['<rootDir>/src'],
5
- testMatch: [
6
- '**/__tests__/**/*.ts',
7
- '**/?(*.)+(spec|test).ts'
8
- ],
9
- transform: {
10
- '^.+\\.ts$': 'ts-jest'
11
- },
12
- collectCoverageFrom: [
13
- 'src/**/*.ts',
14
- '!src/**/*.d.ts',
15
- '!src/index.ts', // 简单的导出文件
16
- '!src/cli.ts' // CLI入口文件,主要是命令定义
17
- ],
18
- coverageDirectory: 'coverage',
19
- coverageReporters: ['text', 'lcov', 'html'],
20
- moduleFileExtensions: ['ts', 'js', 'json'],
21
- testTimeout: 10000
22
- };