@stalfh233/omc-cli 0.4.26 → 0.4.28
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/dist/goal-routes.js
CHANGED
|
@@ -64,6 +64,7 @@ models:
|
|
|
64
64
|
`,
|
|
65
65
|
commands: [
|
|
66
66
|
"把上面的 starter 存成 <file>.yaml 按需求改字段后:omc intent validate <file>.yaml(离线)→ omc intent plan <file>.yaml --env <env> → omc intent apply <file>.yaml --env <env>(apply 也能直接吃 YAML)",
|
|
67
|
+
"多步调用链(如 多个 help --section / 连续读回)用 omc script 一次进程跑完:NDJSON 每行 {tool,args},比逐条 call 快 ~9×(5 调 0.35s vs 3.1s 实测)",
|
|
67
68
|
"omc intent schema [--example <id>]:离线看 intent YAML 的键位/操作符/可运行示例(写 intent 前先看,省去猜键名与试错)",
|
|
68
69
|
"omc intent plan <file> --env <env>:离线先校验(形体错在接触环境前返回,故 validate 可选);大 plan 自动外置,回 planExternalized:true + planFile,直接 `omc intent apply <planFile>`;小 plan 才内联在 result.plan",
|
|
69
70
|
"omc intent apply <planFile|plan.json>(默认最终读回等价校验;--no-verify 关闭)",
|
package/dist/human-summary.js
CHANGED
|
@@ -178,9 +178,13 @@ function phraseOf(tool, args, outcome) {
|
|
|
178
178
|
case "method.delete":
|
|
179
179
|
return `删除业务集成方法 ${stringArg(args, "methodCode") ?? "?"}(服务 ${stringArg(args, "serviceCode") ?? "?"})`;
|
|
180
180
|
case "data.save":
|
|
181
|
+
// r19 opencode-run finding: a stale r5-crm-era summary (written for an
|
|
182
|
+
// abandoned submit-flag design) contradicted the REAL one-call chain —
|
|
183
|
+
// the agent read "规则不派发" next to a COMPLETED readback with the rule
|
|
184
|
+
// fired. The summary must match the delivered semantics.
|
|
181
185
|
return args.submit === true
|
|
182
|
-
?
|
|
183
|
-
: `保存数据(模型 ${schemaCode ?? "?"}
|
|
186
|
+
? `保存并直提数据(模型 ${schemaCode ?? "?"})——一调完成态:DRAFT→COMPLETED,Create 规则已派发(无流程模型;流程模型会拒绝并指路两段式)`
|
|
187
|
+
: `保存数据(模型 ${schemaCode ?? "?"})——草稿 DRAFT;要一调完成态加 submit:true`;
|
|
184
188
|
case "data.update":
|
|
185
189
|
return `更新数据 ${stringArg(args, "bizObjectId") ?? "?"}(${schemaCode ?? "?"})`;
|
|
186
190
|
case "data.submit":
|
|
@@ -201,7 +201,7 @@ export const B2_LANE_CONTRACT = Object.freeze({
|
|
|
201
201
|
}),
|
|
202
202
|
"method.test": Object.freeze({
|
|
203
203
|
scope: "test readback",
|
|
204
|
-
description: "
|
|
204
|
+
description: "设计器测试面:对已配置的业务集成方法发起一次真实试跑(治理写——会真调用外部系统;**试跑不复用 OMC 登录态——目标端点要求认证时,须在服务配置里给独立认证参数**(r21 实测:指向本平台自身端点也会被拒 401/需凭据,externalSuccess:false 且不等于配置错误);`/bizservice/method/service_test`,body `{serviceCode, code, testInputParametersMap}`,回显平台内层 `{success,msg,data}`)。testInputParametersMap 按方法声明参数面 fail-closed 校验:缺必填入参/未知参数键/注册壳方法/SAP、KAFKA(该面无运行时证据)一律本地拒绝零试跑调用。试跑**零配置写**(链路只读 h_biz_service/h_biz_service_method,仅异步记集成日志),读回面复核方法 config 原样未动;RESTFUL/DATA_SQL/DATA_TABLE/SOAP/INTERNAL 真执行(DATA_SQL/DATA_TABLE 受平台 sqlConfig 开关限制)。服务级 testBizService 是人员/部门回显测试,不属本面。",
|
|
205
205
|
}),
|
|
206
206
|
}),
|
|
207
207
|
});
|
|
@@ -16,7 +16,7 @@ export const DATARULE_WIRE = Object.freeze({
|
|
|
16
16
|
update: "POST bizdatarule/update body BizDataRuleModel; requires id + schemaCode + dataRuleType; the full-row overwrite preserves the existing propertyCodes when the caller omits a target",
|
|
17
17
|
delete: "bizdatarule/delete?id=<ruleId> (@RequestParam String id) with list exact-absence readback",
|
|
18
18
|
dataRuleTypes: "DataRuleType: 1 CHECK_RULE (校验), 2 CALCULATE_RULE (计算/拼接), 3 DISPLAY_RULE (显示), 4 OTHER_RULE (必填), 5 READ_ONLY_RULE (只读); 8 EXTENSION_RULE is out of scope",
|
|
19
|
-
dataRuleCheckTypes: "dataRuleType 1 (CHECK_RULE 提交校验规则) 的 checkType 判别(cloudpivot-shared DataRuleCheckType.java)——**校验类需求走这里,不要写在线 JS**:1 REGEX_CHECK 正则校验 / 2 SUBMIT_CHECK 提交校验(含跨字段比较)/ 3 EMPTY_ROW_CHECK 空行校验 / 4 MAX_LENGTH_CHECK 最大长度校验 / 5 REPEAT_CHECK 重复校验;checkType 只配 dataRuleType 1
|
|
19
|
+
dataRuleCheckTypes: "dataRuleType 1 (CHECK_RULE 提交校验规则) 的 checkType 判别(cloudpivot-shared DataRuleCheckType.java)——**校验类需求走这里,不要写在线 JS**:1 REGEX_CHECK 正则校验 / 2 SUBMIT_CHECK 提交校验(含跨字段比较)/ 3 EMPTY_ROW_CHECK 空行校验 / 4 MAX_LENGTH_CHECK 最大长度校验 / 5 REPEAT_CHECK 重复校验;checkType 只配 dataRuleType 1,缺省或非法值由工具拒绝。**数值上下限没有专用类型——用 checkType 2 提交校验表达(如 数量≥0:options 提交校验条件 {quantity}>=0,r21 实证)**",
|
|
20
20
|
optionsByCheckType: "各 checkType 的 options(engine/bo/datarule/impl/checkType/*):1 REGEX_CHECK{regexp:'/…/',regexpText:{zh,en}}(regexp 必须斜杠包裹,RegexCheckValidator 会去掉首尾字符);2 SUBMIT_CHECK{conditions:'<字段code> 操作符 <值> [&&| || 连接]', verifyType:'submitDenied'?(满足条件即拒绝提交,缺省为满足才允许), prompt:'<提示,**纯文本**,勿 URL 编码——这种顶层 options.prompt 门户原样显示,编码过会显示成 %E5..乱码>' }(操作符 等于/不等于/大于/小于/大于等于/小于等于/为空/不为空…;**字段 vs 字面量**直接写值如 {qty} 大于 100;**跨字段**右值必须写实为值对象 {\"valueType\":\"currentModel\",\"value\":\"<字段code>\"},如「结束日期不早于开始日期」= {end_date} 小于 {\"valueType\":\"currentModel\",\"value\":\"start_date\"}——裸 {字段code} 右值会原样落库但前端/服务端都不解析成字段值,规则静默不生效,工具拒绝);3 EMPTY_ROW_CHECK{isEmptyRow,isEmptyRowTips};4 MAX_LENGTH_CHECK{maxLength};5 REPEAT_CHECK{properties:[<字段code>],isSubTableValidationAllData?,prompt:[{isDataItem,code}]}(重复提示逐项/数组解析,RepeatCheckValidator:258-272:**isDataItem=0 → code 是字面文案**,如 [{\"isDataItem\":0,\"code\":\"单号重复\"}];**isDataItem=1 → code 是字段 code**,提示取该字段(值/名)。写成 isDataItem:1 + 字段code 会把提示显示成字段值而不是你要的文案;`promptText` 等未识别键平台会忽略,勿用)",
|
|
21
21
|
optionsByType: "options is a JSON string read per type: 1 check keys (verifyFormula/regexp/maxLength/isEmptyRow/noRepeat/conditions), 2 FormulaConfig — `shortTextStitch` (falling back to `value`) MUST be a JSON OBJECT STRING whose `formula` key holds the expression, e.g. {\"shortTextStitch\":\"{\\\"formula\\\":\\\"{field}\\\",\\\"editorText\\\":\\\"{字段名}\\\"}\"}; a bare \"{field}\" string fails JSONUtil.isJson → getCalRuleExpression returns null → false 305003 dead-cycle; `formulaType:\"AGGREGATION\"` instead reads `aggregation`; a top-level `expression` is NEVER read (it is only a key INSIDE that nested JSON), 3 displayFormula, 4 requiredFormula, 5 readonlyCondition",
|
|
22
22
|
formulaReference: "类型2 公式引用按位置解析:裸 {字段}=**主记录**字段;带点 {子表code.字段}=**子表**字段(FormulaProcessor.constructSubExprParamsValueMap 要求点前等于子表 schema)。所以**主表公式**用裸 {字段}(带 {主表code.字段} 会按子表解析 → 值空/静默 null),**子表公式**(childRule:true)引用同级子字段必须带点 {子表code.字段}(裸引用被当主记录字段 → 值缺失 → 提交 50000)。工具在写前按子表已发布字段判定并拒绝裸引用(blocker datarule-formula-child-bare-reference),读回对存量子表公式加 formulaHint 提示复核。",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stalfh233/omc-cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.28",
|
|
4
4
|
"description": "CloudPivot 8.6 configuration capability CLI — governed, fail-closed, coverage-manifest bounded.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"commander": "14.0.3",
|
|
54
|
-
"omc-core": "0.4.
|
|
54
|
+
"omc-core": "0.4.28",
|
|
55
55
|
"proper-lockfile": "4.1.2",
|
|
56
56
|
"write-file-atomic": "6.0.0",
|
|
57
57
|
"zod": "^3.23.8",
|