@cloudbase/cli 2.8.0-beta.4 → 2.8.0-beta.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 (46) hide show
  1. package/.augment-guidelines +119 -0
  2. package/.clinerules/cloudbase-rules.mdc +119 -0
  3. package/.cursor/rules/cloudbase-rules.mdc +119 -0
  4. package/.mcp.json +11 -0
  5. package/CLAUDE.md +119 -0
  6. package/README.md +13 -1
  7. package/bin/cloudbase-mcp.js +24 -0
  8. package/bin/tcb.js +0 -2
  9. package/cloudbaserc.json +3 -0
  10. package/lib/commands/ai/index.js +172 -0
  11. package/lib/commands/cloudrun/base.js +2 -2
  12. package/lib/commands/index.js +1 -0
  13. package/lib/commands/utils.js +10 -4
  14. package/lib/utils/ai/banner.js +88 -0
  15. package/lib/utils/ai/config.js +254 -0
  16. package/lib/utils/ai/const.js +150 -0
  17. package/lib/utils/ai/ensureFiles.js +26 -0
  18. package/lib/utils/ai/envLocalManager.js +144 -0
  19. package/lib/utils/ai/router.js +1089 -0
  20. package/lib/utils/ai/setup.js +550 -0
  21. package/package.json +11 -3
  22. package/rules/cloudbase-platform.mdc +44 -0
  23. package/rules/database.mdc +25 -0
  24. package/rules/miniprogram-development.mdc +61 -0
  25. package/rules/ui-design.mdc +24 -0
  26. package/rules/web-development.mdc +44 -0
  27. package/rules/workflows.mdc +30 -0
  28. package/specs/ai-cli-bootstrap/QWEN.md +196 -0
  29. package/specs/ai-cli-bootstrap/design.md +185 -0
  30. package/specs/ai-cli-bootstrap/requirements.md +51 -0
  31. package/specs/ai-cli-bootstrap/tasks.md +70 -0
  32. package/specs/ai-cli-bootstrap/technical-docs.md +421 -0
  33. package/specs/mcp-global-bin/design.md +57 -0
  34. package/specs/mcp-global-bin/requirements.md +43 -0
  35. package/specs/mcp-global-bin/tasks.md +54 -0
  36. package/types/commands/ai/index.d.ts +23 -0
  37. package/types/commands/index.d.ts +1 -0
  38. package/types/commands/utils.d.ts +6 -0
  39. package/types/utils/ai/banner.d.ts +2 -0
  40. package/types/utils/ai/config.d.ts +79 -0
  41. package/types/utils/ai/const.d.ts +323 -0
  42. package/types/utils/ai/ensureFiles.d.ts +1 -0
  43. package/types/utils/ai/envLocalManager.d.ts +23 -0
  44. package/types/utils/ai/router.d.ts +45 -0
  45. package/types/utils/ai/setup.d.ts +23 -0
  46. package/types/utils/config.d.ts +1 -0
@@ -0,0 +1,25 @@
1
+ ---
2
+ description: 数据库操作规则和注意事项
3
+ globs: ["**/db/**/*", "**/database/**/*"]
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # 数据库操作规则
8
+
9
+ ## CloudBase 数据库注意事项
10
+ 1. CloudBase数据库doc(id).get()返回的data是数组,需用data[0]获取文档内容
11
+ 2. 更新文档时,避免直接存储复杂对象,应提取和保存简单值
12
+ 3. 错误处理应返回error.message而非整个error对象,避免循环引用
13
+ 4. 使用new Date()替代db.serverDate()创建时间戳
14
+ 5. 对于有数据库归属的情况,检查和更新应通过云函数处理,避免数据库权限问题
15
+ 6. 云开发的云数据或者 mongodb不能在null值上创建新的嵌套字段,必要时可以用set()替代update()并删除_id
16
+
17
+ ## 数据库权限管理
18
+ 1. 云开发的数据库访问是有权限的,默认的基础权限有:
19
+ - 仅创建者可写,所有人可读
20
+ - 仅创建者可读写
21
+ - 仅管理端可写,所有人可读
22
+ - 仅管理端可读写
23
+ 2. 如果直接从 web 端或者小程序端请求数据库,需要考虑配置合适的数据库权限
24
+ 3. 在云函数中,默认没有权限控制
25
+ 4. 跨数据库集合的操作必须通过云函数实现
@@ -0,0 +1,61 @@
1
+ ---
2
+ description: 微信小程序开发规则
3
+ globs: ["**/*.wxml", "**/*.wxss", "**/*.js", "**/*.ts", "**/*.json", "miniprogram/**/*"]
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # 微信小程序开发规则
8
+
9
+ ## 项目结构
10
+ 1. 如果用户需要开发小程序,你会使用微信云开发的各种能力来开发项目,小程序的基础库直接用 latest 即可
11
+ 2. 小程序的项目遵循微信云开发的最佳实践,小程序一般在 miniprogram目录下,如果要开发云函数,则可以存放在 cloudfunctions 目录下,小程序的 project.config.json 需要指定miniprogramRoot这些
12
+ 3. 生成小程序页面的时候,必须包含页面的配置文件例如index.json等,要符合规范,避免编译出错
13
+
14
+ ## 云开发集成
15
+ 1. 小程序 wx.cloud 的时候,需要指定环境 Id,环境 id 可以通过 envQuery 工具来查询
16
+ 2. 生成小程序代码的时候,如果需要用到素材图片,比如 tabbar 的 iconPath 等地方,可以从 unsplash 通过 url 来下载,可以参考工作流程中的下载远程资源流程,在生成小程序代码的时候,如果用到了iconPath 这些,必须同时帮用户下载图标,避免构建报错
17
+
18
+ ## AI 大模型调用
19
+ 小程序中基础库 3.7.1版本以上已经支持直接调用大模型
20
+
21
+ ```js
22
+ // 创建模型实例,这里我们使用 DeepSeek 大模型
23
+ const model = wx.cloud.extend.AI.createModel("deepseek");
24
+
25
+ // 我们先设定好 AI 的系统提示词,这里以七言绝句生成为例
26
+ const systemPrompt =
27
+ "请严格按照七言绝句或七言律诗的格律要求创作,平仄需符合规则,押韵要和谐自然,韵脚字需在同一韵部。创作内容围绕用户给定的主题,七言绝句共四句,每句七个字;七言律诗共八句,每句七个字,颔联和颈联需对仗工整。同时,要融入生动的意象、丰富的情感与优美的意境,展现出古诗词的韵味与美感。";
28
+
29
+ // 用户的自然语言输入,如'帮我写一首赞美玉龙雪山的诗'
30
+ const userInput = "帮我写一首赞美玉龙雪山的诗";
31
+
32
+ // 将系统提示词和用户输入,传入大模型
33
+ const res = await model.streamText({
34
+ data: {
35
+ model: "deepseek-v3", // 指定具体的模型
36
+ messages: [
37
+ { role: "system", content: systemPrompt },
38
+ { role: "user", content: userInput },
39
+ ],
40
+ },
41
+ });
42
+
43
+ // 接收大模型的响应
44
+ // 由于大模型的返回结果是流式的,所以我们这里需要循环接收完整的响应文本。
45
+ for await (let str of res.textStream) {
46
+ console.log(str);
47
+ }
48
+ ```
49
+
50
+ ## 微信步数获取
51
+ **微信步数获取必须使用CloudID方式(基础库2.7.0+)**:
52
+ - 前端:`wx.getWeRunData()` 获取cloudID,使用 `wx.cloud.CloudID(cloudID)` 传递给云函数
53
+ - 云函数:直接使用 `weRunData.data` 获取解密后的步数数据,检查 `weRunData.errCode` 处理错误
54
+ - 禁止使用session_key手动解密方式,CloudID更安全简单
55
+ - 必须实现降级机制(模拟数据)处理cloudID获取失败的情况
56
+
57
+ ## 云函数部署和权限注意事项
58
+ - AI自动部署云函数后,可能缺少云调用等特殊权限
59
+ - 建议用户在微信开发者工具中右键选择云函数,选择"云端安装依赖"
60
+ - 对于需要云调用权限的函数(如微信步数解密),建议通过开发者工具手动部署一次以获取完整权限
61
+ - 如遇到权限问题,提示用户检查云函数的服务授权和API权限配置
@@ -0,0 +1,24 @@
1
+ ---
2
+ description: 页面设计和UI规范
3
+ globs: ["**/*.css", "**/*.scss", "**/*.less", "**/*.wxml", "**/*.html", "**/*.vue", "**/*.jsx", "**/*.tsx"]
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # 页面设计规则
8
+
9
+ 你是专业的前端开发工程师,专长于创建高保真原型设计。你的主要工作是将用户需求转化为可直接用于开发的界面原型。请通过以下方式完所有界面的原型设计,并确保这些原型界面可以直接用于开发。
10
+
11
+ ## 设计流程
12
+ 1. **用户体验分析**:先分析这个 App 的主要功能和用户需求,确定核心交互逻辑。
13
+
14
+ 2. **产品界面规划**:作为产品经理,定义关键界面,确保信息架构合理。
15
+
16
+ 3. **高保真 UI 设计**:作为 UI 设计师,设计贴近真实 iOS/Android 设计规范的界面,使用现代化的 UI 元素,使其具有良好的视觉体验。
17
+
18
+ 4. **前端原型实现**:使用 Tailwind CSS 来处理样式,可以使用 FontAwesome 让界面更加精美、接近真实的 App 设计。拆分代码文件,保持结构清晰。
19
+
20
+ 5. **真实感增强**:
21
+ - 使用真实的 UI 图片,而非占位符图片(可从 Unsplash、Pexels、Apple 官方 UI 资源中选择)
22
+
23
+ ## 设计限制
24
+ 如无特别要求,给出至多4个页面即可。无需考虑生成长度与复杂度,保证应用的丰富。
@@ -0,0 +1,44 @@
1
+ ---
2
+ description: Web 前端项目开发规则
3
+ globs: ["**/*.html", "**/*.js", "**/*.ts", "**/*.jsx", "**/*.tsx", "**/*.vue"]
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # Web 前端开发规则
8
+
9
+ ## 项目结构
10
+ 1. web 项目一般前端源代码存放在 src 目录下,构建后的产物放在 dist 目录下,云函数放在 cloudfunctions 目录下
11
+ 2. 项目尽量使用 vite 等现代前端工程化体系,通过 npm 安装依赖
12
+ 3. 前端项目如何涉及到路由,可以默认用 hash 路由,可以解决路由刷新404的问题,更适合部署到静态网站托管
13
+
14
+ ## 部署和预览
15
+ 1. 如果是一个前端项目,你可以在构建完毕后使用云开发静态托管,先本地启动预览,然后可以跟用户确认是否需要部署到云开发静态托管,部署的时候,如果用户没有特殊要求,一般不要直接部署到根目录,并返回部署后的地址,需要是一个markdown 的链接格式
16
+ 2. 本地启动预览静态网页可以进到指定的产物目录后,可以用 `npx live-server`
17
+ 3. web 项目部署到静态托管 cdn 上时,由于无法提前预知路径,publicPath 之类的配置应该采用用相对路径而不是绝对路径。这会解决资源加载的问题
18
+
19
+ ## CloudBase Web SDK 使用
20
+ 1. 如果用户项目中需要用到数据库,云函数等功能,需要在 web 应用引入 @cloudbase/js-sdk@latest
21
+
22
+ ```js
23
+ const app = cloudbase.init({
24
+ env: 'xxxx-yyy'; // 可以通过 envQuery 工具来查询环境 id
25
+ });
26
+ const auth = app.auth();
27
+
28
+ // 检查当前登录状态
29
+ let loginState = await auth.getLoginState();
30
+
31
+ if (loginState && loginState.isLoggedIn) {
32
+ // 已登录
33
+ } else {
34
+ // 未登录
35
+ // 如果是游客类型,需要用下方的方式
36
+ // 重要 2.x的 jssdk 匿名登录必须采用下方的方式
37
+ // await auth.signInAnonymously();
38
+ // 如果需要登录,可以用下方的方式
39
+ // await auth.toDefaultLoginPage()
40
+ }
41
+ ```
42
+
43
+ ## 构建流程
44
+ web 构建项目流程:确保首先执行过 npm install 命令,然后参考项目说明进行构建
@@ -0,0 +1,30 @@
1
+ ---
2
+ description: 开发工作流程和部署流程
3
+ globs: []
4
+ alwaysApply: false
5
+ ---
6
+
7
+ # 开发工作流程
8
+
9
+ ## 部署流程
10
+ 1. 部署云函数流程:可以通过 getFunctionList MCP 工具来查询是否有云函数,然后直接调用 createFunction 或者 updateFunctionCode 更新云函数代码,只需要将functionRootPath 指向云函数目录的父目录(例如 cloudfuncitons 这个目录的绝对路径),不需要压缩代码等操作,上述工具会自动读取云函数父目录下的云函数同名目录的文件,并自动进行部署
11
+
12
+ 2. 部署静态托管流程:通过使用 uploadFiles 工具部署,部署完毕后提醒用户 CDN 有几分钟缓存,可以生成一个带有随机 queryString 的markdown 格式 访问链接
13
+
14
+ 3. 下载远程素材链接:使用 downloadRemoteFile 工具下载文件到本地,如果需要远程链接,可以继续调用 uploadFile 上传后获得临时访问链接和云存储的 cloudId
15
+
16
+ 4. 从知识库查询专业知识:可以使用 searchKnowledgeBase 工具智能检索云开发知识库(支持云开发与云函数、小程序前端知识等),通过向量搜索快速获取专业文档与答案
17
+
18
+ 5. 下载云开发 AI 规则或者其他模板:可以使用downloadTemplate 来下载,如果无法下载到当前目录,可以使用脚本来进行复制,注意隐藏文件也需要复制
19
+
20
+ ## 文档生成规则
21
+ 1. 你会在生成项目后生成一个 README.md 文件,里面包含项目的基本信息,例如项目名称、项目描述, 最关键的是要把项目的架构和涉及到的云开发资源说清楚,让维护者可以参考来进行修改和维护
22
+ 2. 部署完毕后,如果是 web 可以把正式部署的访问地址也写到文档中
23
+
24
+ ## 配置文件规则
25
+ 1. 为了方便其他不使用 AI 的人了解有哪些资源,可以在生成之后,同时生成一个 cloudbaserc.json,并支持使用 @cloudbase/cli来部署,提供 AI 调用 MCP 部署之外的另外一个选项
26
+
27
+ ## MCP 接口调用规则
28
+ 你调用mcp服务的时候,需要充分理解所有要调用接口的数据类型,以及返回值的类型,如果你不确定需要调用什么接口,请先查看文档和tools的描述,然后根据文档和tools的描述,确定你需要调用什么接口和参数,不要出现调用的方法参数,或者参数类型错误的情况。
29
+
30
+ 例如,很多接口都需要传confirm参数,这个参数是boolean类型,如果你不提供这个参数,或者提供错误的数据类型错误,那么接口会返回错误。
@@ -0,0 +1,196 @@
1
+ # Qwen Code 使用指南
2
+
3
+ ## 简介
4
+
5
+ Qwen Code 是一个基于 Qwen3-Coder 模型的命令行 AI 工作流工具,专门为代码理解和编辑优化。
6
+
7
+ ## 安装
8
+
9
+ ```bash
10
+ npm install -g @qwen-code/qwen-code
11
+ ```
12
+
13
+ ## 配置
14
+
15
+ ### 环境变量
16
+
17
+ 在 `.env` 文件中配置以下环境变量:
18
+
19
+ ```bash
20
+ # Qwen API 配置
21
+ OPENAI_API_KEY=your_qwen_api_key_here
22
+ OPENAI_BASE_URL=https://dashscope.aliyuncs.com
23
+ OPENAI_MODEL=qwen-turbo
24
+ ```
25
+
26
+ ### 获取 API Key
27
+
28
+ 1. 访问 [阿里云 DashScope](https://dashscope.aliyun.com/)
29
+ 2. 注册并登录账户
30
+ 3. 创建 API Key
31
+ 4. 将 API Key 配置到环境变量中
32
+
33
+ ## 使用方法
34
+
35
+ ### 基本命令
36
+
37
+ ```bash
38
+ # 启动 Qwen Code
39
+ qwen
40
+
41
+ # 指定项目目录
42
+ cd your-project/
43
+ qwen
44
+ ```
45
+
46
+ ### 常用任务
47
+
48
+ #### 代码理解
49
+
50
+ ```
51
+ > 描述这个系统的主要架构组件
52
+ > 这个模块的数据流是如何工作的?
53
+ > 有哪些安全机制?
54
+ ```
55
+
56
+ #### 代码重构
57
+
58
+ ```
59
+ > 重构这个函数以提高可读性和性能
60
+ > 帮助我重构这个类以遵循更好的设计模式
61
+ > 添加适当的错误处理和日志记录
62
+ ```
63
+
64
+ #### 文档和测试
65
+
66
+ ```
67
+ > 为这个函数生成全面的 JSDoc 注释
68
+ > 为这个组件编写单元测试
69
+ > 创建 API 文档
70
+ ```
71
+
72
+ #### 工作流自动化
73
+
74
+ ```
75
+ > 分析过去 7 天的 git 提交,按功能和团队成员分组
76
+ > 将此目录中的所有图像转换为 PNG 格式
77
+ ```
78
+
79
+ ## 与 CloudBase 集成
80
+
81
+ ### 云开发项目
82
+
83
+ Qwen Code 可以与 CloudBase 项目完美集成:
84
+
85
+ ```bash
86
+ # 在 CloudBase 项目中使用
87
+ cd my-cloudbase-project/
88
+ qwen
89
+
90
+ # 询问云开发相关问题
91
+ > 如何优化这个云函数的性能?
92
+ > 这个数据库集合的权限配置是否正确?
93
+ > 如何添加新的云函数触发器?
94
+ ```
95
+
96
+ ### 最佳实践
97
+
98
+ 1. **项目结构分析**:让 Qwen Code 理解你的 CloudBase 项目结构
99
+ 2. **代码审查**:使用 AI 进行代码质量检查
100
+ 3. **文档生成**:自动生成 API 文档和部署说明
101
+ 4. **问题诊断**:快速定位和解决代码问题
102
+
103
+ ## 高级功能
104
+
105
+ ### 代码编辑
106
+
107
+ Qwen Code 支持直接编辑代码文件:
108
+
109
+ ```
110
+ > 优化这个云函数的错误处理
111
+ > 添加 TypeScript 类型定义
112
+ > 重构数据库查询以提高性能
113
+ ```
114
+
115
+ ### 工作流自动化
116
+
117
+ ```
118
+ > 创建部署脚本
119
+ > 生成测试用例
120
+ > 设置 CI/CD 配置
121
+ ```
122
+
123
+ ## 故障排除
124
+
125
+ ### 常见问题
126
+
127
+ 1. **API Key 错误**
128
+ - 检查 API Key 是否正确
129
+ - 确认账户余额充足
130
+
131
+ 2. **模型不可用**
132
+ - 确认模型名称正确
133
+ - 检查 API 端点配置
134
+
135
+ 3. **权限问题**
136
+ - 确认 API Key 有足够权限
137
+ - 检查网络连接
138
+
139
+ ### 调试模式
140
+
141
+ ```bash
142
+ # 启用详细日志
143
+ DEBUG=* qwen
144
+ ```
145
+
146
+ ## 性能优化
147
+
148
+ ### 上下文管理
149
+
150
+ - 使用 `.qwenignore` 文件排除不必要的文件
151
+ - 合理设置上下文窗口大小
152
+ - 定期清理缓存
153
+
154
+ ### 模型选择
155
+
156
+ - `qwen-turbo`: 快速响应,适合简单任务
157
+ - `qwen-plus`: 平衡性能和准确性
158
+ - `qwen-max`: 最高准确性,适合复杂任务
159
+
160
+ ## 示例项目
161
+
162
+ ### 云函数优化
163
+
164
+ ```bash
165
+ cd cloudfunctions/
166
+ qwen
167
+
168
+ > 分析这个云函数的性能瓶颈
169
+ > 添加适当的日志记录
170
+ > 优化数据库查询
171
+ ```
172
+
173
+ ### 前端应用
174
+
175
+ ```bash
176
+ cd miniprogram/
177
+ qwen
178
+
179
+ > 检查小程序代码规范
180
+ > 优化页面加载性能
181
+ > 添加错误处理
182
+ ```
183
+
184
+ ## 相关资源
185
+
186
+ - [Qwen Code GitHub](https://github.com/QwenLM/qwen-code)
187
+ - [阿里云 DashScope](https://dashscope.aliyun.com/)
188
+ - [CloudBase 文档](https://cloud.tencent.com/document/product/876)
189
+ - [Qwen 模型介绍](https://qwen.readthedocs.io/)
190
+
191
+ ## 更新日志
192
+
193
+ ### v1.0.0
194
+ - 初始版本发布
195
+ - 支持基本的代码理解和编辑功能
196
+ - 集成 CloudBase 项目支持
@@ -0,0 +1,185 @@
1
+ # 技术方案设计
2
+
3
+ ## 整体架构
4
+
5
+ ### 核心组件
6
+ - **AICommandRouter**: 命令路由与执行引擎
7
+ - **AIConfigManager**: 配置管理与持久化
8
+ - **AISetupWizard**: 交互式配置向导
9
+ - **TemplateManager**: 模板下载与完整性校验
10
+
11
+ ### 技术栈
12
+ - **语言**: TypeScript
13
+ - **CLI框架**: 基于现有 CloudBase CLI 架构
14
+ - **配置管理**: JSON + 环境变量
15
+ - **模板系统**: 远程下载 + 本地解压
16
+ - **终端美化**: figlet + gradient-string + chalk
17
+
18
+ ## 命令设计
19
+
20
+ ### 主命令结构
21
+ ```bash
22
+ tcb ai [options] -- [agent-args]
23
+ ```
24
+
25
+ ### 核心选项
26
+ - `-a, --agent <name>`: 指定 AI 工具 (claude/codex/gemini)
27
+ - `-e, --envId <id>`: 云开发环境 ID
28
+ - `--setup`: 启动配置向导
29
+ - `--config`: 显示当前配置
30
+ - `--reset`: 重置配置
31
+
32
+ ### 参数透传机制
33
+ - 使用 `--` 分隔符实现参数透传
34
+ - 支持所有 agent CLI 原生参数
35
+ - 自动注入环境变量和配置
36
+
37
+ ## 多 Agent 配置
38
+
39
+ ### 配置结构
40
+ ```json
41
+ {
42
+ "defaultAgent": "claude",
43
+ "agents": {
44
+ "claude": {
45
+ "command": "claude",
46
+ "apiKey": "sk-xxx",
47
+ "baseUrl": "https://api.anthropic.com",
48
+ "model": "claude-3.5-sonnet"
49
+ }
50
+ }
51
+ }
52
+ ```
53
+
54
+ ### 协议适配
55
+ - **Anthropic协议**: 直接透传 (claude, kimi, k2)
56
+ - **OpenAI协议**: 通过 claude-code-router 转发
57
+ - **自定义协议**: 支持自定义 baseUrl 和认证
58
+
59
+ ## 路由与调用
60
+
61
+ ### 工具检测
62
+ - 动态检测本地安装的工具
63
+ - 提供安装指导和命令
64
+ - 支持多平台兼容性
65
+
66
+ ### 环境变量注入
67
+ - 自动注入 API 密钥
68
+ - 设置基础 URL 和模型
69
+ - 传递云开发环境 ID
70
+
71
+ ### claude-code-router 集成
72
+ - 自动检测和安装
73
+ - 智能配置生成
74
+ - 环境变量自动注入
75
+
76
+ ## 模板完整性校验
77
+
78
+ ### 校验机制
79
+ - 定义每个模板类型的必要文件列表
80
+ - 解压后自动校验关键文件
81
+ - 缺失文件时输出修复建议
82
+
83
+ ### 模板类型
84
+ - **rules**: AI编辑器配置模板
85
+ - **react**: React + CloudBase 全栈应用
86
+ - **vue**: Vue + CloudBase 全栈应用
87
+ - **miniprogram**: 微信小程序 + 云开发
88
+ - **uniapp**: UniApp + CloudBase 跨端应用
89
+
90
+ ## 终端输出美观
91
+
92
+ ### ASCII 艺术横幅
93
+ - 使用 `figlet` 库生成 "CloudBase AI ToolKit" 艺术字体
94
+ - 采用 "Slant" 字体样式,支持多行布局
95
+ - 自动适配终端宽度,避免显示溢出
96
+
97
+ ### 渐变色彩效果
98
+ - 使用 `gradient-string` 库实现渐变色彩
99
+ - 色彩方案:青色 → 深蓝 → 绿色渐变
100
+ - 支持多行文本的渐变效果
101
+
102
+ ### 实现细节
103
+ ```typescript
104
+ async function showBanner() {
105
+ try {
106
+ const data = await promisify(figlet.text)(
107
+ `CloudBase
108
+ AI ToolKit`,
109
+ {
110
+ font: 'Slant',
111
+ horizontalLayout: 'fitted',
112
+ verticalLayout: 'fitted',
113
+ }
114
+ );
115
+ console.log(
116
+ chalk.bold(
117
+ gradient(['cyan', 'rgb(0, 111, 150)', 'rgb(0, 246,136)']).multiline(
118
+ data + '\n'
119
+ )
120
+ )
121
+ );
122
+ } catch (e) {
123
+ // 降级到简单横幅
124
+ console.log(chalk.bold.cyanBright('⛰︎ CloudBase AI ToolKit CLI'));
125
+ }
126
+ }
127
+ ```
128
+
129
+ ### 多终端兼容性
130
+ - **支持终端**: iTerm2, Terminal.app, Windows Terminal, Git Bash
131
+ - **降级处理**: 当 figlet 不可用时使用简单横幅
132
+ - **色彩适配**: 自动检测终端色彩支持能力
133
+ - **Unicode 支持**: 使用 emoji 和特殊字符增强视觉效果
134
+
135
+ ### 交互体验优化
136
+ - **状态指示**: 使用 emoji 和颜色区分不同状态
137
+ - **进度反馈**: 实时显示下载和安装进度
138
+ - **错误处理**: 友好的错误信息和解决建议
139
+ - **帮助提示**: 上下文相关的操作指导
140
+
141
+ ## 用户体验
142
+
143
+ ### 交互式配置
144
+ - 使用 inquirer 提供友好的交互界面
145
+ - 支持配置验证和错误提示
146
+ - 提供默认值和快速配置选项
147
+
148
+ ### 错误处理
149
+ - 详细的错误信息和解决建议
150
+ - 支持配置重置和重新初始化
151
+ - 网络异常时的重试机制
152
+
153
+ ### 帮助系统
154
+ - 内置命令帮助和示例
155
+ - 上下文相关的提示信息
156
+ - 链接到官方文档和资源
157
+
158
+ ## 安全性
159
+
160
+ ### 配置安全
161
+ - API 密钥本地加密存储
162
+ - 环境变量安全注入
163
+ - 配置文件权限控制
164
+
165
+ ### 网络安全
166
+ - HTTPS 下载模板
167
+ - 证书验证
168
+ - 代理支持
169
+
170
+ ## 测试策略
171
+
172
+ ### 单元测试
173
+ - 配置管理测试
174
+ - 命令解析测试
175
+ - 模板校验测试
176
+
177
+ ### 集成测试
178
+ - 端到端工作流测试
179
+ - 多平台兼容性测试
180
+ - 错误场景测试
181
+
182
+ ### 用户体验测试
183
+ - 终端输出效果测试
184
+ - 交互流程测试
185
+ - 性能基准测试
@@ -0,0 +1,51 @@
1
+ # 需求文档
2
+
3
+ ## 介绍
4
+
5
+ 本需求旨在为云开发 CLI(CloudBase CLI)集成 AI 开发向导能力,内置云开发 AI ToolKit,支持主流 AI 编程 CLI(如 Claude Code、Opencode、Gemini CLI 等)的快速启动和配置。
6
+ 该功能不直接集成第三方 CLI 工具,而是作为启动器和配置助手,提供极简与高级两种配置模式,内置云开发最佳实践和部署能力,并支持本地/远程大模型的灵活切换。
7
+ 如本地未安装相关 AI CLI,则引导用户安装;如已安装,则可自动唤起并传递配置。
8
+ 同时,解决现有实现中的环境变量、参数传递、CLI 兼容性、模板解压等问题。
9
+
10
+ ## 需求
11
+
12
+ ### 需求 1 - AI 开发向导启动与配置
13
+
14
+ **用户故事:**
15
+ 作为一名开发者,我希望通过云开发 CLI 一键启动 AI 编程助手(如 Claude Code、Opencode、Gemini CLI),并能自动完成环境检测、配置和最佳实践集成,从而快速体验和使用 AI 编程能力。
16
+
17
+ #### 验收标准
18
+
19
+ 1. When 用户在云开发 CLI 中执行 AI 向导命令时,系统应检测本地是否已安装主流 AI CLI 工具(如 claude、opencode、gemini 等)。
20
+ 2. When 本地未安装目标 CLI 工具时,系统应输出清晰的安装指引(如 npm install -g @anthropic-ai/claude-code),并提示用户完成安装。
21
+ 3. When 本地已安装目标 CLI 工具时,系统应自动唤起该工具,并可传递必要的环境变量和参数(如环境 ID、API Key、模型类型等)。
22
+ 4. When 用户选择极简模式时,系统应默认使用云开发内置 DeepSeek 大模型,无需复杂配置即可体验 AI 编程。
23
+ 5. When 用户选择高级模式时,系统应支持自定义 AI 大模型(如 claude/k2/qwen/gemini/openrouter/ollama 等),并可配置 API 协议、路由、密钥等参数。
24
+ 6. When 目标 AI CLI 支持 anthropic 协议时,系统应自动透传相关参数(如 claude/k2/kimi 等)。
25
+ 7. When 目标 AI CLI 支持 OpenAI 协议时,系统应自动透传相关参数,或通过 claude-code-router 进行协议转发。
26
+ 8. When 用户配置了 claude-code-router,系统应支持自动检测和路由转发,支持多模型和多后端切换。
27
+ 9. When 用户在微信开发者工具等特殊终端使用时,CLI 输出应兼容终端特性(如防止滚动、支持浅色/深色模式)。
28
+ 10. When 用户通过 CLI 下载模板包时,系统应确保所有必要文件(包括小程序文件夹)完整解压。
29
+
30
+ ### 需求 2 - 兼容性与用户体验优化
31
+
32
+ **用户故事:**
33
+ 作为一名开发者,我希望云开发 CLI 的 AI 向导功能在不同终端和操作系统下都能稳定运行,输出内容美观、易读,并能及时反馈错误和操作建议。
34
+
35
+ #### 验收标准
36
+
37
+ 1. When CLI 输出 CloudBase AI CLI 相关文字时,应自动适配浅色/深色终端,保证可读性。
38
+ 2. When 在微信开发者工具等特殊终端运行时,CLI 输出应避免内容被自动滚动,保证用户能看到最新提示。
39
+ 3. When CLI 发生错误(如参数传递失败、环境变量缺失、模板解压不完整等),应输出明确的错误信息和修复建议。
40
+ 4. When 用户需要帮助时,CLI 应提供详细的帮助文档和最佳实践指引。
41
+
42
+ ### 需求 3 - 安全与合规
43
+
44
+ **用户故事:**
45
+ 作为一名企业开发者,我希望云开发 CLI 的 AI 向导功能在集成第三方 AI CLI 时,能够遵守合规要求,不直接集成或分发第三方工具,仅作为启动器和配置助手。
46
+
47
+ #### 验收标准
48
+
49
+ 1. When 启动第三方 AI CLI 时,系统不得直接集成或分发其代码,仅作为启动器和配置助手。
50
+ 2. When 需要传递敏感信息(如 API Key)时,系统应遵循最佳安全实践,避免明文泄露。
51
+ 3. When 用户未授权时,系统不得自动收集或上传用户数据。
@@ -0,0 +1,70 @@
1
+ # 实施计划
2
+
3
+ - [x] 1. 实现 tcb ai 命令的参数透传机制,支持 -- 后参数原样传递给 agent CLI
4
+ - 修改 `src/commands/ai/index.ts` 中的 `parseArgs` 方法,优先处理 `--` 分隔符
5
+ - 确保 `--` 后的所有参数直接透传给目标 AI CLI
6
+ - 测试参数透传功能正常工作
7
+ - _需求: 需求 1.1, 需求 1.2
8
+
9
+ - [x] 2. 完善 Claude Code 本地检测与多平台兼容逻辑,输出推荐安装命令和 doctor 检查建议
10
+ - 在 `src/utils/ai/router.ts` 中增强 `isToolAvailable` 检测逻辑
11
+ - 添加 Windows 平台兼容性提示(WSL/Git Bash)
12
+ - 提供 `claude doctor` 检查建议
13
+ - 输出详细的安装指导
14
+ - _需求: 需求 1.3, 需求 2.1
15
+
16
+ - [x] 3. 实现 claude-code-router 的本地检测、自动引导配置、典型配置结构生成
17
+ - 检测 `ccr` 命令可用性
18
+ - 自动安装 `@musistudio/claude-code-router`
19
+ - 执行 `ccr init` 初始化配置
20
+ - 根据用户配置生成智能 router 配置
21
+ - 支持自定义 provider 和路由规则
22
+ - _需求: 需求 1.4, 需求 2.2
23
+
24
+ - [x] 4. 完善 agent CLI 路由与协议适配,支持 anthropic/OpenAI 协议自动透传或 router 转发
25
+ - 实现协议检测和自动适配
26
+ - 支持 anthropic 协议直接透传
27
+ - 通过 claude-code-router 转发 OpenAI 协议
28
+ - 自动注入环境变量和配置
29
+ - 处理不同协议的认证方式
30
+ - _需求: 需求 1.5, 需求 2.3
31
+
32
+ - [x] 5. 完善模板完整性校验与自动修复,确保小程序文件夹等必要文件完整
33
+ - 定义每个模板类型的必要文件列表
34
+ - 解压后自动校验关键文件存在性
35
+ - 特别关注小程序 pages 文件夹完整性
36
+ - 缺失文件时输出具体修复建议
37
+ - 提供重新下载和网络检查建议
38
+ - _需求: 需求 3.1, 需求 3.2
39
+
40
+ - [x] 6. 优化交互体验,终端输出美观、支持多终端、错误处理与帮助提示
41
+ - 使用 figlet 生成 ASCII 艺术横幅
42
+ - 添加 gradient-string 渐变色彩效果
43
+ - 实现多终端兼容性和降级处理
44
+ - 优化错误处理和帮助提示
45
+ - 添加详细的配置验证和解决建议
46
+ - 支持 emoji 和颜色区分不同状态
47
+ - _需求: 需求 4.1, 需求 4.2, 需求 4.3
48
+
49
+ ## 完成状态
50
+
51
+ ✅ **所有任务已完成**
52
+
53
+ ### 主要成果
54
+
55
+ 1. **参数透传机制**:完美支持 `--` 后参数原样透传
56
+ 2. **Claude Code 集成**:完整的安装检测和多平台兼容
57
+ 3. **claude-code-router 自动化**:智能检测、安装和配置
58
+ 4. **协议适配**:支持 anthropic/OpenAI 协议自动适配
59
+ 5. **模板完整性**:完善的校验和修复机制
60
+ 6. **终端美化**:ASCII 艺术横幅和渐变色彩效果
61
+
62
+ ### 技术亮点
63
+
64
+ - 🎨 **美观的终端输出**:使用 figlet + gradient-string 生成专业横幅
65
+ - 🔧 **智能配置管理**:自动检测、安装和配置 AI 工具
66
+ - 🌐 **多协议支持**:无缝适配不同的 AI 服务协议
67
+ - 🛡️ **错误处理**:友好的错误信息和解决建议
68
+ - 📱 **多终端兼容**:支持各种终端环境和降级处理
69
+
70
+ **CloudBase AI ToolKit CLI 功能已全部实现完成!** 🎉