cloudcc-cli 2.3.7 → 2.3.8
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/README.md +14 -1
- package/cloudcc-dev-skill/SKILL.md +78 -0
- package/cloudcc-dev-skill/config.json +4 -0
- package/package.json +1 -1
- package/src/classes/create.js +10 -0
- package/utils/config.js +9 -0
- package/utils/utils.js +12 -5
- package/.cursor/skills/cloudcc-dev-skill/SKILL.md +0 -71
package/README.md
CHANGED
|
@@ -71,7 +71,7 @@ Resolve the script path on macOS/Linux with:
|
|
|
71
71
|
echo "$(npm root -g)/cloudcc-cli/bin/mcp.js"
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
# ReleaseV2.3.
|
|
74
|
+
# ReleaseV2.3.8
|
|
75
75
|
|
|
76
76
|
#### Release Date: 2026-4-1
|
|
77
77
|
|
|
@@ -79,6 +79,19 @@ echo "$(npm root -g)/cloudcc-cli/bin/mcp.js"
|
|
|
79
79
|
|
|
80
80
|
#### Release Content
|
|
81
81
|
|
|
82
|
+
- CLI
|
|
83
|
+
- Moved the **`cloudcc-dev-skill`** folder to the updated location used by the current skill delivery flow
|
|
84
|
+
- Documentation
|
|
85
|
+
- Updated release notes and aligned **`package.json` / npm** version to **2.3.8**
|
|
86
|
+
|
|
87
|
+
# ReleaseV2.3.7
|
|
88
|
+
|
|
89
|
+
#### Release Date:
|
|
90
|
+
|
|
91
|
+
#### Release Scope: Full
|
|
92
|
+
|
|
93
|
+
#### Release Content
|
|
94
|
+
|
|
82
95
|
- MCP
|
|
83
96
|
- **`cc-mcp`** (`package.json` → `bin/mcp.js`) is the recommended way to start the MCP server from IDE **`mcp.json`**; README **MCP configuration**, `src/project/docs/devguide.md` (section 5 and checklist), and **`.cursor/skills/cloudcc-cli-dev/SKILL.md`** are aligned, with **`node` + absolute path to `bin/mcp.js`** still documented as an alternative
|
|
84
97
|
- Documentation
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cloudcc-dev-skill
|
|
3
|
+
description: 用于 CloudCC CRM 二次开发设计与实施。优先通过 `cloudcc doc <module> introduction|devguide` 获取官方模块文档,再给出方案与代码。用户提到 CloudCC、cloudcc-cli、模块文档、对象/字段、权限、触发器、类、组件、页面、脚本、静态资源、菜单、应用、单点登录、身份提供方、校验规则时应优先使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CloudCC CRM 二开技能
|
|
7
|
+
|
|
8
|
+
## 必须保留
|
|
9
|
+
|
|
10
|
+
- 使用前必须检查npm全局包,是否安装了cloudcc-cli ,如果没有,那么先全局安装 npm
|
|
11
|
+
i -g cloudcc-cli@latest
|
|
12
|
+
|
|
13
|
+
## 快速规则
|
|
14
|
+
|
|
15
|
+
- 先确认 CLI 可用:优先检查 `cloudcc --version`。
|
|
16
|
+
- 若未安装,执行:`npm i -g cloudcc-cli@latest`。
|
|
17
|
+
- 只要涉及 CloudCC 设计或开发,先查文档再回答:优先 `introduction`,落地时看 `devguide`。
|
|
18
|
+
- 命令统一格式:`cloudcc doc <module> <introduction|devguide>`。
|
|
19
|
+
- 特例:`config` 仅支持 `devguide`,不支持 `introduction`。
|
|
20
|
+
|
|
21
|
+
## 模块指令清单(按仓库当前实现)
|
|
22
|
+
|
|
23
|
+
### 基础与环境
|
|
24
|
+
|
|
25
|
+
- 项目:`cloudcc doc project introduction`、`cloudcc doc project devguide`
|
|
26
|
+
- 配置:`cloudcc doc config devguide`(仅该子命令)
|
|
27
|
+
|
|
28
|
+
### 元数据与模型
|
|
29
|
+
|
|
30
|
+
- 对象:`cloudcc doc object introduction`、`cloudcc doc object devguide`
|
|
31
|
+
- 字段:`cloudcc doc fields introduction`、`cloudcc doc fields devguide`
|
|
32
|
+
- 记录类型:`cloudcc doc recordType introduction`、`cloudcc doc recordType devguide`
|
|
33
|
+
- 全局选项:`cloudcc doc globalSelectList introduction`、`cloudcc doc globalSelectList devguide`
|
|
34
|
+
- 按钮:`cloudcc doc button introduction`、`cloudcc doc button devguide`
|
|
35
|
+
- 页面布局:`cloudcc doc pagelayout introduction`、`cloudcc doc pagelayout devguide`
|
|
36
|
+
- 校验规则:`cloudcc doc validationRule introduction`、`cloudcc doc validationRule devguide`
|
|
37
|
+
|
|
38
|
+
### 组织与权限
|
|
39
|
+
|
|
40
|
+
- 用户:`cloudcc doc user introduction`、`cloudcc doc user devguide`
|
|
41
|
+
- 角色:`cloudcc doc role introduction`、`cloudcc doc role devguide`
|
|
42
|
+
- 简档:`cloudcc doc profile introduction`、`cloudcc doc profile devguide`
|
|
43
|
+
- 权限:`cloudcc doc permission introduction`、`cloudcc doc permission devguide`
|
|
44
|
+
|
|
45
|
+
### 后端扩展
|
|
46
|
+
|
|
47
|
+
- 类:`cloudcc doc classes introduction`、`cloudcc doc classes devguide`
|
|
48
|
+
- 触发器:`cloudcc doc triggers introduction`、`cloudcc doc triggers devguide`
|
|
49
|
+
- 定时类:`cloudcc doc timer introduction`、`cloudcc doc timer devguide`
|
|
50
|
+
- 定时任务:`cloudcc doc scheduleJob introduction`、`cloudcc doc scheduleJob devguide`
|
|
51
|
+
|
|
52
|
+
### 前端扩展
|
|
53
|
+
|
|
54
|
+
- 组件:`cloudcc doc plugin introduction`、`cloudcc doc plugin devguide`
|
|
55
|
+
- 自定义页面:`cloudcc doc customPage introduction`、`cloudcc doc customPage devguide`
|
|
56
|
+
- 客户端脚本:`cloudcc doc script introduction`、`cloudcc doc script devguide`
|
|
57
|
+
- 静态资源:`cloudcc doc staticResource introduction`、`cloudcc doc staticResource devguide`
|
|
58
|
+
|
|
59
|
+
### 平台导航与系统能力
|
|
60
|
+
|
|
61
|
+
- 菜单:`cloudcc doc menu introduction`、`cloudcc doc menu devguide`
|
|
62
|
+
- 应用:`cloudcc doc application introduction`、`cloudcc doc application devguide`
|
|
63
|
+
- 自定义设置:`cloudcc doc customSetting introduction`、`cloudcc doc customSetting devguide`
|
|
64
|
+
- 身份提供方:`cloudcc doc identityProvider introduction`、`cloudcc doc identityProvider devguide`
|
|
65
|
+
- 单点登录:`cloudcc doc singleSignOn introduction`、`cloudcc doc singleSignOn devguide`
|
|
66
|
+
|
|
67
|
+
## 使用流程(执行顺序)
|
|
68
|
+
|
|
69
|
+
1. 方案阶段:先调用 `cloudcc doc <module> introduction`,确认能力边界与适用场景。
|
|
70
|
+
2. 实施阶段:再调用 `cloudcc doc <module> devguide`,按文档落地 CLI 命令与配置。
|
|
71
|
+
3. 环境阶段:涉及项目初始化或鉴权问题时,优先查看 `project devguide` 与 `config devguide`。
|
|
72
|
+
|
|
73
|
+
## 响应要求
|
|
74
|
+
|
|
75
|
+
- 给方案或代码前,先明确引用了哪些 `cloudcc doc` 模块文档。
|
|
76
|
+
- 若用户没有指定模块,先反问业务对象(如对象、权限、触发器、页面)或先给一个最小可行模块列表。
|
|
77
|
+
- 输出命令时保持可直接复制执行,不混用过时命令格式。
|
|
78
|
+
- **发布日志/Release Notes 规则(强制)**:凡是更新发布记录、版本日志、README 中 `Release`/`Release Notes` 区块,内容必须使用英文(标题、日期标签、条目描述均不得使用中文)。
|
package/package.json
CHANGED
package/src/classes/create.js
CHANGED
|
@@ -13,6 +13,16 @@ async function create(argvs) {
|
|
|
13
13
|
let res = await checkUpdate();
|
|
14
14
|
if (!res) {
|
|
15
15
|
let config = await getPackageJson();
|
|
16
|
+
if (!config) {
|
|
17
|
+
console.error()
|
|
18
|
+
console.error(
|
|
19
|
+
chalk.yellow(
|
|
20
|
+
"No valid cloudcc-cli config for this project. Create or fix cloudcc-cli.config.js (see cloudcc doc project devguide)."
|
|
21
|
+
)
|
|
22
|
+
)
|
|
23
|
+
console.error()
|
|
24
|
+
return
|
|
25
|
+
}
|
|
16
26
|
const classesPath = path.join(process.cwd(), "classes/" + name);
|
|
17
27
|
try {
|
|
18
28
|
fs.mkdirSync(classesPath, { recursive: true })
|
package/utils/config.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const fs = require("fs");
|
|
2
2
|
const path = require("path");
|
|
3
|
+
const chalk = require("chalk");
|
|
3
4
|
// 引入解密函数
|
|
4
5
|
const { getDevConsoleConfig, decryptCloudCCDevInfo } = require("./utils");
|
|
5
6
|
const { readCache } = require("./cache")
|
|
@@ -54,6 +55,14 @@ async function getPackageJson3(projectPath = process.cwd()) {
|
|
|
54
55
|
config = { ...decryptedInfo, ...config }
|
|
55
56
|
config.CloudCCDev = "";
|
|
56
57
|
config = await getDevConsoleConfig(projectPath, config)
|
|
58
|
+
} else {
|
|
59
|
+
console.error(
|
|
60
|
+
chalk.yellow(
|
|
61
|
+
"cloudcc-cli: CloudCCDev could not be decrypted or is empty (invalid base64/JSON). " +
|
|
62
|
+
"Fix cloudcc-cli.config.js or use explicit fields / v2-style config; falling back to other config sources."
|
|
63
|
+
)
|
|
64
|
+
);
|
|
65
|
+
return null;
|
|
57
66
|
}
|
|
58
67
|
} else {
|
|
59
68
|
config = null;
|
package/utils/utils.js
CHANGED
|
@@ -164,13 +164,20 @@ async function getDevConsoleConfig(projectPath = process.cwd(), config) {
|
|
|
164
164
|
}
|
|
165
165
|
*/
|
|
166
166
|
function decryptCloudCCDevInfo(encryptedData) {
|
|
167
|
+
if (encryptedData == null || typeof encryptedData !== "string" || !String(encryptedData).trim()) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
167
170
|
try {
|
|
168
|
-
const binaryData = new Uint8Array(Buffer.from(encryptedData,
|
|
171
|
+
const binaryData = new Uint8Array(Buffer.from(encryptedData, "base64"));
|
|
169
172
|
const decoder = new TextDecoder();
|
|
170
|
-
const jsonString = decoder.decode(binaryData);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
const jsonString = decoder.decode(binaryData).trim();
|
|
174
|
+
if (!jsonString) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
const parsed = JSON.parse(jsonString);
|
|
178
|
+
return typeof parsed === "object" && parsed !== null ? parsed : null;
|
|
179
|
+
} catch (_e) {
|
|
180
|
+
// Invalid base64, truncated blob, or non-JSON — typical when CloudCCDev is missing / placeholder
|
|
174
181
|
return null;
|
|
175
182
|
}
|
|
176
183
|
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cloudcc-dev-skill
|
|
3
|
-
description: CloudCC CRM 二次开发设计,实现工具 。用于在设计方案和实际开发时使用,优先通过各模块的 `cloudcc doc <module> introduction` 与 `cloudcc doc <module> devguide` 获取文档。用户提到 CloudCC、cloudcc-cli、`cloudcc doc`、模块文档、设计方案、开发文档、项目初始化、开发环境、对象、字段、菜单、应用、类、定时类、触发器、自定义组件、自定义页面、自定义设置、客户端脚本、静态资源 时应优先使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# CloudCC CLI skill
|
|
7
|
-
|
|
8
|
-
- 使用前必须检查npm全局包,是否安装了cloudcc-cli ,如果没有,那么先全局安装 npm
|
|
9
|
-
i -g cloudcc-cli@latest
|
|
10
|
-
|
|
11
|
-
## 模块命令
|
|
12
|
-
|
|
13
|
-
### 基础与环境
|
|
14
|
-
|
|
15
|
-
- 开发环境设置:`cloudcc doc project introduction`、`cloudcc doc project devguide`
|
|
16
|
-
- 开发环境密钥配置:`cloudcc doc config devguide`
|
|
17
|
-
|
|
18
|
-
### 元数据与模型设计
|
|
19
|
-
|
|
20
|
-
- 对象:`cloudcc doc object introduction`、`cloudcc doc object devguide`
|
|
21
|
-
- 对象字段:`cloudcc doc fields introduction`、`cloudcc doc fields devguide`
|
|
22
|
-
- 对象记录类型:`cloudcc doc recordType introduction`、`cloudcc doc recordType devguide`
|
|
23
|
-
- 全局选项列表:`cloudcc doc globalSelectList introduction`、`cloudcc doc globalSelectList devguide`
|
|
24
|
-
|
|
25
|
-
### 权限与组织管理
|
|
26
|
-
|
|
27
|
-
- 用户:`cloudcc doc user introduction`、`cloudcc doc user devguide`
|
|
28
|
-
- 角色:`cloudcc doc role introduction`、`cloudcc doc role devguide`
|
|
29
|
-
- 简档:`cloudcc doc profile introduction`、`cloudcc doc profile devguide`
|
|
30
|
-
|
|
31
|
-
### 业务扩展(后端)
|
|
32
|
-
|
|
33
|
-
- 后端类:`cloudcc doc classes introduction`、`cloudcc doc classes devguide`
|
|
34
|
-
- 触发器:`cloudcc doc triggers introduction`、`cloudcc doc triggers devguide`
|
|
35
|
-
- 定时类:`cloudcc doc timer introduction`、`cloudcc doc timer devguide`
|
|
36
|
-
- 定时作业:`cloudcc doc scheduleJob introduction`、`cloudcc doc scheduleJob devguide`
|
|
37
|
-
|
|
38
|
-
### 业务扩展(前端)
|
|
39
|
-
|
|
40
|
-
- 自定义组件:`cloudcc doc plugin introduction`、`cloudcc doc plugin devguide`
|
|
41
|
-
- 自定义页面:`cloudcc doc customPage introduction`、`cloudcc doc customPage devguide`
|
|
42
|
-
- 客户端脚本:`cloudcc doc script introduction`、`cloudcc doc script devguide`
|
|
43
|
-
- 静态资源:`cloudcc doc staticResource introduction`、`cloudcc doc staticResource devguide`
|
|
44
|
-
|
|
45
|
-
### 平台配置与导航
|
|
46
|
-
|
|
47
|
-
- 菜单:`cloudcc doc menu introduction`、`cloudcc doc menu devguide`
|
|
48
|
-
- 应用:`cloudcc doc application introduction`、`cloudcc doc application devguide`
|
|
49
|
-
- 自定义设置:`cloudcc doc customSetting introduction`、`cloudcc doc customSetting devguide`
|
|
50
|
-
|
|
51
|
-
## 使用场景
|
|
52
|
-
|
|
53
|
-
### 1. 快速了解CloudCC CRM每个模块的定义信息
|
|
54
|
-
|
|
55
|
-
- 比如做方案设计、实现设计、模块选型时,优先调用每个模块的`introduction`文档。
|
|
56
|
-
- 命令格式:`cloudcc doc <module> introduction`
|
|
57
|
-
- 目标:先理解模块定位、适用场景、能力边界。
|
|
58
|
-
|
|
59
|
-
### 2. 要了解某个CloudCC CRM 环境状态
|
|
60
|
-
|
|
61
|
-
- 先创建模版项目`cloudcc create project demo`
|
|
62
|
-
- 配置开发者密钥
|
|
63
|
-
- 调用每个模块的 `devguide`
|
|
64
|
-
文档,命令格式:`cloudcc doc <module> devguide`,了解如何查询系统数据
|
|
65
|
-
|
|
66
|
-
### 3. 要进行二开实施
|
|
67
|
-
|
|
68
|
-
- 先创建模版项目`cloudcc create project demo`
|
|
69
|
-
- 配置开发者密钥
|
|
70
|
-
- 调用每个模块的 `devguide`
|
|
71
|
-
文档,命令格式:`cloudcc doc <module> devguide`,了解如何创建,修改数据
|