cloudcc-cli 2.3.8 → 2.4.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.
Files changed (66) hide show
  1. package/.cursor/skills/{cloudcc-cli-dev → dev-guide}/SKILL.md +5 -1
  2. package/README.md +82 -1
  3. package/bin/cc.js +2 -1
  4. package/bin/index.js +1 -0
  5. package/cloudcc-dev-skill/SKILL.md +31 -8
  6. package/cloudcc-dev-skill/cloudcc-dev-html.md +42 -0
  7. package/cloudcc-dev-skill/config.json +2 -2
  8. package/mcp/index.js +27 -3
  9. package/mcp/tools/JSP Migrator/handler.js +51 -866
  10. package/mcp/tools/Object Creator/handler.js +14 -4
  11. package/mcp/tools/Object Fields Creator/handler.js +149 -3
  12. package/package.json +1 -1
  13. package/src/classes/docs/devguide.md +758 -364
  14. package/src/classes/docs/introduction.md +279 -143
  15. package/src/fields/buildFieldData.js +692 -0
  16. package/src/fields/create.js +10 -170
  17. package/src/fields/detail.js +37 -0
  18. package/src/fields/docs/devguide.md +168 -44
  19. package/src/fields/docs/introduction.md +2 -0
  20. package/src/fields/fields/A.js +3 -2
  21. package/src/fields/fields/AD.js +4 -2
  22. package/src/fields/fields/B.js +8 -5
  23. package/src/fields/fields/C.js +13 -5
  24. package/src/fields/fields/D.js +4 -4
  25. package/src/fields/fields/E.js +10 -5
  26. package/src/fields/fields/ENC.js +27 -8
  27. package/src/fields/fields/ENCD.js +27 -8
  28. package/src/fields/fields/F.js +4 -4
  29. package/src/fields/fields/FL.js +8 -4
  30. package/src/fields/fields/H.js +4 -4
  31. package/src/fields/fields/IMG.js +23 -5
  32. package/src/fields/fields/J.js +21 -6
  33. package/src/fields/fields/L.js +32 -8
  34. package/src/fields/fields/LT.js +23 -6
  35. package/src/fields/fields/M.js +2 -2
  36. package/src/fields/fields/MR.js +2 -2
  37. package/src/fields/fields/N.js +31 -8
  38. package/src/fields/fields/P.js +13 -5
  39. package/src/fields/fields/Q.js +42 -12
  40. package/src/fields/fields/S.js +19 -7
  41. package/src/fields/fields/SCORE.js +9 -4
  42. package/src/fields/fields/T.js +4 -4
  43. package/src/fields/fields/U.js +18 -5
  44. package/src/fields/fields/X.js +20 -6
  45. package/src/fields/fields/Y.js +17 -4
  46. package/src/fields/index.js +2 -0
  47. package/src/fields/update.js +148 -0
  48. package/src/jsp/analyze.js +17 -0
  49. package/src/jsp/doc.js +18 -0
  50. package/src/jsp/docs/devguide.md +111 -0
  51. package/src/jsp/docs/introduction.md +50 -0
  52. package/src/jsp/docs.js +21 -0
  53. package/src/jsp/index.js +14 -0
  54. package/src/jsp/migration.js +871 -0
  55. package/src/jsp/split.js +17 -0
  56. package/src/object/create.js +36 -10
  57. package/src/object/docs/devguide.md +6 -3
  58. package/src/project/docs/devguide.md +1 -1
  59. package/src/timer/docs/devguide.md +849 -400
  60. package/src/timer/docs/introduction.md +343 -231
  61. package/src/triggers/docs/devguide.md +929 -352
  62. package/src/triggers/docs/introduction.md +640 -369
  63. package/src/version/listModuleCommands.js +6 -0
  64. package/test/fields.cli.test.js +3 -1
  65. package/test/jsp.cli.test.js +70 -0
  66. package/test/object.cli.test.js +9 -1
@@ -0,0 +1,17 @@
1
+ const { splitJspToCloudcc, parseCliJsonArg } = require("./migration")
2
+
3
+ async function split(argvs) {
4
+ const params = parseCliJsonArg(
5
+ argvs[2],
6
+ "cloudcc split jsp <encodeURI(JSON.stringify(params))>"
7
+ )
8
+ const result = await splitJspToCloudcc(params)
9
+ if (!result.success) {
10
+ throw new Error(result.text)
11
+ }
12
+
13
+ console.log(result.text)
14
+ return result.text
15
+ }
16
+
17
+ module.exports = split
@@ -5,32 +5,58 @@ const { labelToSlug } = require("../../utils/utils");
5
5
  const chalk = require('chalk')
6
6
 
7
7
  /**
8
- * label 转换为英文可用的 slug,用于生成 schemetableName
9
- * 优先尝试使用 pinyin 包(如果安装),否则使用宽松的 ASCII slug 方案
8
+ * 未显式传入备注时,根据对象标签生成默认业务功能说明(写入接口 remark)
9
+ * @param {string} label
10
10
  */
11
- // labelToSlug now lives in utils/utils.js
12
-
11
+ function defaultObjectRemark(label) {
12
+ return `用于管理与「${label}」相关的业务数据`;
13
+ }
13
14
 
14
15
  /**
15
- * 保存自定义对象按钮配置
16
+ * 创建自定义对象(接口 obj.remark:默认业务说明 + 必填业务功能描述,拼在后面)
16
17
  * @param {Array} argvs - 命令行参数数组
17
18
  * @returns {Promise<Object>} 保存结果
18
19
  */
19
20
  async function create(argvs) {
20
21
  try {
21
22
  let path = argvs[2];
22
- // 兼容两种调用方式:
23
- // 1) cloudcc object create <path> <nameLabel> <label>
24
- // 2) cloudcc object create <path> <label> (此时自动生成 nameLabel)
25
23
  let label = argvs[3];
26
24
  let nameLabel = argvs[4];
25
+ let remarkSuffix = argvs[5];
26
+
27
+ if (remarkSuffix == null) {
28
+ remarkSuffix = nameLabel;
29
+ nameLabel = undefined;
30
+ }
31
+
32
+ if (remarkSuffix == null || String(remarkSuffix).trim() === "") {
33
+ console.error();
34
+ console.error(chalk.red("Error: 缺少必需参数「业务功能描述」"));
35
+ console.error(
36
+ chalk.gray(
37
+ "用法: cloudcc create object <path> <label> <业务功能描述>"
38
+ )
39
+ );
40
+ console.error(
41
+ chalk.gray(
42
+ " cloudcc create object <path> <label> <nameLabel> <业务功能描述>"
43
+ )
44
+ );
45
+ console.error();
46
+ throw new Error("缺少业务功能描述");
47
+ }
48
+
27
49
  if (nameLabel == undefined) {
28
50
  const slug = labelToSlug(label);
29
51
  nameLabel = `${slug}_custom_object`;
30
52
  }
53
+
54
+ const base = defaultObjectRemark(label);
55
+ const remark = `${base} ${String(remarkSuffix).trim()}`;
56
+
31
57
  let config = await getPackageJson(path);
32
58
 
33
- // 从 brief/get 获取角色ID列表(仍使用原始 argv 参数: path 位于 argvs[2])
59
+ // 从 brief/get 获取角色ID列表(path 位于 argvs[2])
34
60
  // 注意:brief/get 的接口返回是 { success, data } 的格式
35
61
  let briefData = await briefGet(argvs);
36
62
 
@@ -68,7 +94,7 @@ async function create(argvs) {
68
94
  isquickcreated: "false",
69
95
  islbs: "false",
70
96
  isreportcreated: "false",
71
- remark: "auto created by cloudcc-cli ai agent"
97
+ remark
72
98
  }
73
99
  };
74
100
 
@@ -17,7 +17,8 @@ cloudcc doc object devguide
17
17
 
18
18
  ```bash
19
19
  cloudcc get object <projectPath> [type]
20
- cloudcc create object <projectPath> <label> [nameLabel]
20
+ cloudcc create object <projectPath> <label> <业务功能描述>
21
+ cloudcc create object <projectPath> <label> <nameLabel> <业务功能描述>
21
22
  cloudcc delete object <projectPath> <objid>
22
23
  ```
23
24
 
@@ -25,7 +26,8 @@ cloudcc delete object <projectPath> <objid>
25
26
 
26
27
  - `projectPath`:本地项目路径,用于读取 `cloudcc-cli.config.js`
27
28
  - `label`:对象中文名称或展示名称
28
- - `nameLabel`:对象 API 名称;不传时会基于 `label` 自动生成
29
+ - `nameLabel`:对象 API 名称;仅在上一种四参数形式中传入;不传(三参数形式)时基于 `label` 自动生成
30
+ - `业务功能描述`(**必填**,放在最后):拼接到默认 remark「用于管理与「label」相关的业务数据」之后,整体写入 `obj.remark`
29
31
  - `objid`:对象 ID
30
32
 
31
33
  ---
@@ -59,7 +61,8 @@ cloudcc get object <projectPath> custom
59
61
  ### 4.1 基本命令
60
62
 
61
63
  ```bash
62
- cloudcc create object <projectPath> <label>
64
+ cloudcc create object <projectPath> <label> "记录客户拜访与跟进计划"
65
+ cloudcc create object <projectPath> <label> <nameLabel> "主数据:客户主档"
63
66
  ```
64
67
 
65
68
 
@@ -155,7 +155,7 @@ cd ~/Documents
155
155
  cloudcc create project demo1
156
156
  ```
157
157
 
158
- `demo1` 为示例项目名,可按需替换。
158
+ `demo1` 为示例项目名,可按需替换,写入.表示在当前目录创建
159
159
 
160
160
  ### 6.2 安装依赖并启动
161
161