weaver-e10-builder 1.0.12-beta → 1.1.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 (217) hide show
  1. package/dist/commands/actionflow.d.ts.map +1 -1
  2. package/dist/commands/actionflow.js +17 -3
  3. package/dist/commands/actionflow.js.map +1 -1
  4. package/dist/commands/auth.d.ts.map +1 -1
  5. package/dist/commands/auth.js +3 -0
  6. package/dist/commands/auth.js.map +1 -1
  7. package/dist/commands/form-association-manage.d.ts +3 -0
  8. package/dist/commands/form-association-manage.d.ts.map +1 -0
  9. package/dist/commands/form-association-manage.js +76 -0
  10. package/dist/commands/form-association-manage.js.map +1 -0
  11. package/dist/commands/form-association.d.ts.map +1 -1
  12. package/dist/commands/form-association.js +29 -25
  13. package/dist/commands/form-association.js.map +1 -1
  14. package/dist/commands/form-button.d.ts.map +1 -1
  15. package/dist/commands/form-button.js +71 -159
  16. package/dist/commands/form-button.js.map +1 -1
  17. package/dist/commands/form-field-linkage.d.ts +3 -0
  18. package/dist/commands/form-field-linkage.d.ts.map +1 -0
  19. package/dist/commands/form-field-linkage.js +300 -0
  20. package/dist/commands/form-field-linkage.js.map +1 -0
  21. package/dist/commands/form-list-columns.d.ts +3 -0
  22. package/dist/commands/form-list-columns.d.ts.map +1 -0
  23. package/dist/commands/form-list-columns.js +50 -0
  24. package/dist/commands/form-list-columns.js.map +1 -0
  25. package/dist/commands/form-list-stats.d.ts +0 -8
  26. package/dist/commands/form-list-stats.d.ts.map +1 -1
  27. package/dist/commands/form-list-stats.js +41 -133
  28. package/dist/commands/form-list-stats.js.map +1 -1
  29. package/dist/commands/form-list.d.ts.map +1 -1
  30. package/dist/commands/form-list.js +2 -126
  31. package/dist/commands/form-list.js.map +1 -1
  32. package/dist/commands/form.d.ts.map +1 -1
  33. package/dist/commands/form.js +116 -2
  34. package/dist/commands/form.js.map +1 -1
  35. package/dist/commands/interface.d.ts +3 -0
  36. package/dist/commands/interface.d.ts.map +1 -0
  37. package/dist/commands/interface.js +51 -0
  38. package/dist/commands/interface.js.map +1 -0
  39. package/dist/commands/menu-permission.d.ts.map +1 -1
  40. package/dist/commands/menu-permission.js +133 -82
  41. package/dist/commands/menu-permission.js.map +1 -1
  42. package/dist/commands/skill.js +2 -2
  43. package/dist/commands/skill.js.map +1 -1
  44. package/dist/commands/update.d.ts +13 -0
  45. package/dist/commands/update.d.ts.map +1 -0
  46. package/dist/commands/update.js +101 -0
  47. package/dist/commands/update.js.map +1 -0
  48. package/dist/commands/workflow-node-empty-handle.d.ts +13 -0
  49. package/dist/commands/workflow-node-empty-handle.d.ts.map +1 -0
  50. package/dist/commands/workflow-node-empty-handle.js +137 -0
  51. package/dist/commands/workflow-node-empty-handle.js.map +1 -0
  52. package/dist/commands/workflow.d.ts.map +1 -1
  53. package/dist/commands/workflow.js +90 -18
  54. package/dist/commands/workflow.js.map +1 -1
  55. package/dist/index.js +8 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/postinstall.d.ts +2 -0
  58. package/dist/postinstall.d.ts.map +1 -0
  59. package/dist/postinstall.js +17 -0
  60. package/dist/postinstall.js.map +1 -0
  61. package/dist/services/actionflow/command_output.d.ts +4 -0
  62. package/dist/services/actionflow/command_output.d.ts.map +1 -1
  63. package/dist/services/actionflow/command_output.js +44 -0
  64. package/dist/services/actionflow/command_output.js.map +1 -1
  65. package/dist/services/actionflow/component_registry.d.ts.map +1 -1
  66. package/dist/services/actionflow/component_registry.js +5 -1
  67. package/dist/services/actionflow/component_registry.js.map +1 -1
  68. package/dist/services/actionflow/components/action_eb_add.js +1 -1
  69. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  70. package/dist/services/actionflow/components/approve_trigger.d.ts +5 -0
  71. package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -1
  72. package/dist/services/actionflow/components/approve_trigger.js +22 -1
  73. package/dist/services/actionflow/components/approve_trigger.js.map +1 -1
  74. package/dist/services/actionflow/components/approve_trigger_compiler.js +2 -2
  75. package/dist/services/actionflow/components/approve_trigger_compiler.js.map +1 -1
  76. package/dist/services/actionflow/components/custom_trigger.d.ts +9 -0
  77. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -0
  78. package/dist/services/actionflow/components/custom_trigger.js +47 -0
  79. package/dist/services/actionflow/components/custom_trigger.js.map +1 -0
  80. package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
  81. package/dist/services/actionflow/components/enquiry_form.js +29 -3
  82. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  83. package/dist/services/actionflow/components/event_button.d.ts +3 -0
  84. package/dist/services/actionflow/components/event_button.d.ts.map +1 -0
  85. package/dist/services/actionflow/components/event_button.js +32 -0
  86. package/dist/services/actionflow/components/event_button.js.map +1 -0
  87. package/dist/services/actionflow/components/index.d.ts.map +1 -1
  88. package/dist/services/actionflow/components/index.js +10 -0
  89. package/dist/services/actionflow/components/index.js.map +1 -1
  90. package/dist/services/actionflow/components/inner_mq_listener.d.ts +3 -0
  91. package/dist/services/actionflow/components/inner_mq_listener.d.ts.map +1 -0
  92. package/dist/services/actionflow/components/inner_mq_listener.js +40 -0
  93. package/dist/services/actionflow/components/inner_mq_listener.js.map +1 -0
  94. package/dist/services/actionflow/components/inner_mq_send.d.ts +5 -0
  95. package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -0
  96. package/dist/services/actionflow/components/inner_mq_send.js +72 -0
  97. package/dist/services/actionflow/components/inner_mq_send.js.map +1 -0
  98. package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
  99. package/dist/services/actionflow/components/send_message.js +7 -4
  100. package/dist/services/actionflow/components/send_message.js.map +1 -1
  101. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  102. package/dist/services/actionflow/context_preflight.js +7 -1
  103. package/dist/services/actionflow/context_preflight.js.map +1 -1
  104. package/dist/services/actionflow/design_client.d.ts +13 -2
  105. package/dist/services/actionflow/design_client.d.ts.map +1 -1
  106. package/dist/services/actionflow/design_client.js +56 -8
  107. package/dist/services/actionflow/design_client.js.map +1 -1
  108. package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -1
  109. package/dist/services/actionflow/enrich_approve_trigger.js +31 -0
  110. package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -1
  111. package/dist/services/actionflow/form_source.d.ts +2 -0
  112. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  113. package/dist/services/actionflow/form_source.js +5 -0
  114. package/dist/services/actionflow/form_source.js.map +1 -1
  115. package/dist/services/actionflow/formula_service.d.ts +1 -1
  116. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  117. package/dist/services/actionflow/formula_service.js +118 -12
  118. package/dist/services/actionflow/formula_service.js.map +1 -1
  119. package/dist/services/actionflow/functions_catalog.d.ts +2 -1
  120. package/dist/services/actionflow/functions_catalog.d.ts.map +1 -1
  121. package/dist/services/actionflow/functions_catalog.js +2392 -180
  122. package/dist/services/actionflow/functions_catalog.js.map +1 -1
  123. package/dist/services/actionflow/functions_source.d.ts.map +1 -1
  124. package/dist/services/actionflow/functions_source.js +3 -0
  125. package/dist/services/actionflow/functions_source.js.map +1 -1
  126. package/dist/services/actionflow/generation_service.d.ts +11 -0
  127. package/dist/services/actionflow/generation_service.d.ts.map +1 -1
  128. package/dist/services/actionflow/generation_service.js +66 -23
  129. package/dist/services/actionflow/generation_service.js.map +1 -1
  130. package/dist/services/actionflow/plan_constraints.d.ts +5 -0
  131. package/dist/services/actionflow/plan_constraints.d.ts.map +1 -0
  132. package/dist/services/actionflow/plan_constraints.js +54 -0
  133. package/dist/services/actionflow/plan_constraints.js.map +1 -0
  134. package/dist/services/actionflow/preflight_service.d.ts +3 -0
  135. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  136. package/dist/services/actionflow/preflight_service.js +152 -8
  137. package/dist/services/actionflow/preflight_service.js.map +1 -1
  138. package/dist/services/actionflow/readback_verifier.d.ts.map +1 -1
  139. package/dist/services/actionflow/readback_verifier.js +63 -2
  140. package/dist/services/actionflow/readback_verifier.js.map +1 -1
  141. package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
  142. package/dist/services/actionflow/save_workflow_draft.js +43 -2
  143. package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
  144. package/dist/services/actionflow/update_service.d.ts +41 -0
  145. package/dist/services/actionflow/update_service.d.ts.map +1 -0
  146. package/dist/services/actionflow/update_service.js +767 -0
  147. package/dist/services/actionflow/update_service.js.map +1 -0
  148. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  149. package/dist/services/actionflow/workflow_compiler.js +120 -12
  150. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  151. package/dist/services/esb-interface/document-parser.d.ts +6 -0
  152. package/dist/services/esb-interface/document-parser.d.ts.map +1 -0
  153. package/dist/services/esb-interface/document-parser.js +247 -0
  154. package/dist/services/esb-interface/document-parser.js.map +1 -0
  155. package/dist/services/esb-interface/importer.d.ts +9 -0
  156. package/dist/services/esb-interface/importer.d.ts.map +1 -0
  157. package/dist/services/esb-interface/importer.js +44 -0
  158. package/dist/services/esb-interface/importer.js.map +1 -0
  159. package/dist/services/esb-interface/postman-collection.d.ts +9 -0
  160. package/dist/services/esb-interface/postman-collection.d.ts.map +1 -0
  161. package/dist/services/esb-interface/postman-collection.js +125 -0
  162. package/dist/services/esb-interface/postman-collection.js.map +1 -0
  163. package/dist/services/esb-interface/types.d.ts +91 -0
  164. package/dist/services/esb-interface/types.d.ts.map +1 -0
  165. package/dist/services/esb-interface/types.js +2 -0
  166. package/dist/services/esb-interface/types.js.map +1 -0
  167. package/dist/services/form-association.d.ts +49 -0
  168. package/dist/services/form-association.d.ts.map +1 -0
  169. package/dist/services/form-association.js +279 -0
  170. package/dist/services/form-association.js.map +1 -0
  171. package/dist/services/form-button-position.d.ts +35 -0
  172. package/dist/services/form-button-position.d.ts.map +1 -0
  173. package/dist/services/form-button-position.js +109 -0
  174. package/dist/services/form-button-position.js.map +1 -0
  175. package/dist/services/form-list-columns.d.ts +54 -0
  176. package/dist/services/form-list-columns.d.ts.map +1 -0
  177. package/dist/services/form-list-columns.js +236 -0
  178. package/dist/services/form-list-columns.js.map +1 -0
  179. package/dist/services/form-list-stats.d.ts +44 -0
  180. package/dist/services/form-list-stats.d.ts.map +1 -0
  181. package/dist/services/form-list-stats.js +302 -0
  182. package/dist/services/form-list-stats.js.map +1 -0
  183. package/dist/services/skill-provision.d.ts +6 -1
  184. package/dist/services/skill-provision.d.ts.map +1 -1
  185. package/dist/services/skill-provision.js +12 -2
  186. package/dist/services/skill-provision.js.map +1 -1
  187. package/dist/services/update-check.d.ts +24 -0
  188. package/dist/services/update-check.d.ts.map +1 -0
  189. package/dist/services/update-check.js +108 -0
  190. package/dist/services/update-check.js.map +1 -0
  191. package/package.json +2 -1
  192. package/skill-docs/SKILL.md +21 -106
  193. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +61 -39
  194. package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -21
  195. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +23 -21
  196. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +101 -75
  197. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -0
  198. package/skill-docs/actionflows/references/components/logic/Condition.md +23 -23
  199. package/skill-docs/actionflows/references/components/message/InnerMQSend.md +40 -0
  200. package/skill-docs/actionflows/references/components/message/SendMessage.md +2 -2
  201. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +45 -0
  202. package/skill-docs/actionflows/references/components/trigger/InnerMQListener.md +40 -0
  203. package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +35 -0
  204. package/skill-docs/actionflows/references/condition_rules.md +4 -2
  205. package/skill-docs/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -1046
  206. package/skill-docs/actionflows/references/trigger_runtime_notes.md +53 -51
  207. package/skill-docs/references/common/guide-plan-template.md +201 -0
  208. package/skill-docs/references/common/ref-cli-commands.md +45 -11
  209. package/skill-docs/references/form/guide-create-form.md +4 -2
  210. package/skill-docs/references/form/guide-field-linkage.md +121 -0
  211. package/skill-docs/references/form/guide-form-association.md +108 -0
  212. package/skill-docs/references/form/guide-form-button.md +54 -0
  213. package/skill-docs/references/form/guide-form-view.md +26 -9
  214. package/skill-docs/references/form/guide-list-columns.md +52 -0
  215. package/skill-docs/references/form/guide-list-stats.md +83 -0
  216. package/skill-docs/references/workflow/guide-workflow-action.md +172 -168
  217. package/skill-docs/references/workflow/guide-workflow.md +16 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-stats.js","sourceRoot":"","sources":["../../src/services/form-list-stats.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,12 @@ export declare function knownSkillRoots(): string[];
7
7
  export declare function findInstalledSkills(extraRoots?: string[]): string[];
8
8
  /** 文档是否已就位(版本一致 **且** references/ 存在——薄 zip 的 SKILL.md 版本对但没文档树,必须补拷) */
9
9
  export declare function skillDocsCurrent(skillDir: string, version: string): boolean;
10
- /** 把 skill-docs 内容(references/、actionflows/references/、assets/、SKILL.md)覆盖式拷进 skill 目录 */
10
+ /**
11
+ * 把 skill-docs 内容覆盖式同步进 skill 目录。
12
+ * 先整树删掉归属树(references / actionflows/references / assets)再拷——解决"覆盖拷贝不删旧、升级残留旧文档":
13
+ * 版本升级后源里已移除的指南/命令文档不会再留在已装 skill。
14
+ * 薄层文件(_catalog.md、scripts/icons.db、actionflows/SKILL.md+CONTEXT.md,由 skill zip 提供、skill-docs 不含)不动。
15
+ */
11
16
  export declare function provisionSkillDocs(skillDir: string, docsDir: string): void;
12
17
  export interface ProvisionResult {
13
18
  skillDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"skill-provision.d.ts","sourceRoot":"","sources":["../../src/services/skill-provision.ts"],"names":[],"mappings":"AAgBA,uDAAuD;AACvD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED,4CAA4C;AAC5C,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAO1C;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,CAAC,UAAU,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAQvE;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAS3E;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI1E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;CAC1C;AAED,kCAAkC;AAClC,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAM,EAAO,GACxB,eAAe,EAAE,CAgBnB"}
1
+ {"version":3,"file":"skill-provision.d.ts","sourceRoot":"","sources":["../../src/services/skill-provision.ts"],"names":[],"mappings":"AAgBA,uDAAuD;AACvD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED,4CAA4C;AAC5C,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAO1C;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,CAAC,UAAU,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAQvE;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAS3E;AAKD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;CAC1C;AAED,kCAAkC;AAClC,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAM,EAAO,GACxB,eAAe,EAAE,CAgBnB"}
@@ -7,7 +7,7 @@
7
7
  * 触发:`e10-cli auth status` 每次会话自动检测(skill 的 step0 必跑);
8
8
  * `e10-cli skill sync` 显式手动。幂等:SKILL.md 版本一致即跳过。
9
9
  */
10
- import { cpSync, existsSync, readdirSync, readFileSync } from 'node:fs';
10
+ import { cpSync, existsSync, readdirSync, readFileSync, rmSync } from 'node:fs';
11
11
  import { homedir } from 'node:os';
12
12
  import { resolve, dirname } from 'node:path';
13
13
  import { fileURLToPath } from 'node:url';
@@ -58,8 +58,18 @@ export function skillDocsCurrent(skillDir, version) {
58
58
  return false;
59
59
  }
60
60
  }
61
- /** 把 skill-docs 内容(references/、actionflows/references/、assets/、SKILL.md)覆盖式拷进 skill 目录 */
61
+ /** 归属 skill-docs 的文档树(整树删除后重拷,源里已删/废弃的文件不会残留) */
62
+ const OWNED_DOC_TREES = ['references', 'actionflows/references', 'assets'];
63
+ /**
64
+ * 把 skill-docs 内容覆盖式同步进 skill 目录。
65
+ * 先整树删掉归属树(references / actionflows/references / assets)再拷——解决"覆盖拷贝不删旧、升级残留旧文档":
66
+ * 版本升级后源里已移除的指南/命令文档不会再留在已装 skill。
67
+ * 薄层文件(_catalog.md、scripts/icons.db、actionflows/SKILL.md+CONTEXT.md,由 skill zip 提供、skill-docs 不含)不动。
68
+ */
62
69
  export function provisionSkillDocs(skillDir, docsDir) {
70
+ for (const rel of OWNED_DOC_TREES) {
71
+ rmSync(resolve(skillDir, rel), { recursive: true, force: true });
72
+ }
63
73
  for (const entry of readdirSync(docsDir, { withFileTypes: true })) {
64
74
  cpSync(resolve(docsDir, entry.name), resolve(skillDir, entry.name), { recursive: true, force: true });
65
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skill-provision.js","sourceRoot":"","sources":["../../src/services/skill-provision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-provision.js","sourceRoot":"","sources":["../../src/services/skill-provision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export interface UpdateState {
2
+ enabled?: boolean;
3
+ lastCheckAt?: number;
4
+ latestSeen?: string;
5
+ }
6
+ export declare function updateStateFile(): string;
7
+ export declare function readUpdateState(): UpdateState;
8
+ export declare function writeUpdateState(s: UpdateState): void;
9
+ export declare function isNewer(a: string, b: string): boolean;
10
+ export interface CheckResult {
11
+ current: string;
12
+ latest: string;
13
+ outdated: boolean;
14
+ /** true=本次真的连网查了(或强查);false=命中 24h 缓存未连网 */
15
+ checked: boolean;
16
+ offline?: boolean;
17
+ }
18
+ /** 查询是否有新版本。
19
+ * - force=true:忽略缓存强制连网(`update check` / `update apply` 用)
20
+ * - force=false:命中 24h 缓存直接返回缓存结论(`auth status` 自动提醒用,不再连网) */
21
+ export declare function checkUpdate(force?: boolean): Promise<CheckResult>;
22
+ /** auth status 自动提醒:仅提醒,不安装。任何异常/关闭偏好/非真正连网命中缓存都不打扰。 */
23
+ export declare function maybeNotifyUpdate(): Promise<void>;
24
+ //# sourceMappingURL=update-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/services/update-check.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,eAAe,IAAI,WAAW,CAK7C;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAKrD;AAQD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAUrD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;gEAEgE;AAChE,wBAAsB,WAAW,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAsCrE;AAED,wDAAwD;AACxD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQvD"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * e10-cli 版本更新提醒(只提醒,不自动安装)。
3
+ *
4
+ * 设计约定(2026-09-04 与使用者确认):
5
+ * - 检查点:`auth status`(每次会话)最多每 24h 查一次;显式 `e10-cli update check` 强查。
6
+ * - 离线/内网:连不上 registry 时静默跳过(不 nag、不报错、照常写缓存时间戳避免下次再等超时)。
7
+ * - 动作:只打印「有新版本」一行提醒;真正安装只发生在 `e10-cli update apply` 且用户确认后。
8
+ * - 状态存 <authRoot>/update.json:{ enabled, lastCheckAt, latestSeen }。
9
+ */
10
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
11
+ import { getAuthRoot } from '../core/edition.js';
12
+ import { pkgVersion } from './skill-provision.js';
13
+ const REGISTRY_LATEST = 'https://registry.npmjs.org/weaver-e10-builder/latest';
14
+ const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24h 内不再连网重查
15
+ const FETCH_TIMEOUT_MS = 2500; // 最坏一次等 2.5s,且每天最多一次
16
+ export function updateStateFile() {
17
+ return `${getAuthRoot()}/update.json`;
18
+ }
19
+ export function readUpdateState() {
20
+ try {
21
+ if (existsSync(updateStateFile()))
22
+ return JSON.parse(readFileSync(updateStateFile(), 'utf-8'));
23
+ }
24
+ catch { /* 损坏则视为无状态 */ }
25
+ return {};
26
+ }
27
+ export function writeUpdateState(s) {
28
+ try {
29
+ mkdirSync(getAuthRoot(), { recursive: true });
30
+ writeFileSync(updateStateFile(), JSON.stringify(s, null, 2));
31
+ }
32
+ catch { /* 写失败不影响功能 */ }
33
+ }
34
+ /** 粗粒度 semver 比较:isNewer(a,b) = a 比 b 新。仅支持 X.Y.Z[-tag];格式不识别时返回 false(宁可漏报不误报)。 */
35
+ function parseVer(v) {
36
+ const m = String(v).trim().match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);
37
+ if (!m)
38
+ return null;
39
+ return { m: +m[1], n: +m[2], p: +m[3], tag: m[4] || '' };
40
+ }
41
+ export function isNewer(a, b) {
42
+ const A = parseVer(a), B = parseVer(b);
43
+ if (!A || !B)
44
+ return false;
45
+ for (const k of ['m', 'n', 'p']) {
46
+ if (A[k] !== B[k])
47
+ return A[k] > B[k];
48
+ }
49
+ // 主版本号相同:无 tag(正式版)> 有 tag(beta/rc)
50
+ if (!A.tag && B.tag)
51
+ return true;
52
+ if (A.tag && !B.tag)
53
+ return false;
54
+ return A.tag > B.tag;
55
+ }
56
+ /** 查询是否有新版本。
57
+ * - force=true:忽略缓存强制连网(`update check` / `update apply` 用)
58
+ * - force=false:命中 24h 缓存直接返回缓存结论(`auth status` 自动提醒用,不再连网) */
59
+ export async function checkUpdate(force = false) {
60
+ const current = pkgVersion();
61
+ const st = readUpdateState();
62
+ const notDue = !!st.lastCheckAt && Date.now() - st.lastCheckAt < CACHE_TTL_MS;
63
+ if (!force && notDue) {
64
+ const outdated = !!(st.latestSeen && isNewer(st.latestSeen, current));
65
+ return { current, latest: st.latestSeen || current, outdated, checked: false };
66
+ }
67
+ // 连网查询(带超时;失败静默并记录时间戳,避免离线环境每次 auth status 都等满超时)
68
+ let latest = '';
69
+ let ok = false;
70
+ try {
71
+ const ctl = new AbortController();
72
+ const timer = setTimeout(() => ctl.abort(), FETCH_TIMEOUT_MS);
73
+ try {
74
+ const resp = await fetch(REGISTRY_LATEST, {
75
+ signal: ctl.signal,
76
+ headers: { accept: 'application/json', 'user-agent': `e10-cli/${current}` },
77
+ });
78
+ if (resp.ok) {
79
+ const j = await resp.json();
80
+ latest = String(j?.version || '');
81
+ ok = !!latest;
82
+ }
83
+ }
84
+ finally {
85
+ clearTimeout(timer);
86
+ }
87
+ }
88
+ catch { /* 离线/超时/解析失败都走离线分支 */ }
89
+ writeUpdateState({ ...st, lastCheckAt: Date.now(), latestSeen: latest || st.latestSeen });
90
+ if (!ok) {
91
+ const outdated = !!(st.latestSeen && isNewer(st.latestSeen, current));
92
+ return { current, latest: st.latestSeen || '', outdated, checked: true, offline: true };
93
+ }
94
+ return { current, latest, outdated: isNewer(latest, current), checked: true };
95
+ }
96
+ /** auth status 自动提醒:仅提醒,不安装。任何异常/关闭偏好/非真正连网命中缓存都不打扰。 */
97
+ export async function maybeNotifyUpdate() {
98
+ try {
99
+ if (readUpdateState().enabled === false)
100
+ return;
101
+ const r = await checkUpdate(false);
102
+ if (r.checked && r.outdated && !r.offline) {
103
+ console.log(`💡 检测到新版本: ${r.current} → ${r.latest}(仅提醒,不会自动安装)。升级请运行: e10-cli update apply`);
104
+ }
105
+ }
106
+ catch { /* 提醒失败静默 */ }
107
+ }
108
+ //# sourceMappingURL=update-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/services/update-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "weaver-e10-builder",
3
- "version": "1.0.12-beta",
3
+ "version": "1.1.0",
4
4
  "description": "Eteams/Ebuilder CLI — 泛微 OA 命令行工具",
5
5
  "type": "module",
6
6
  "files": [
@@ -15,6 +15,7 @@
15
15
  "scripts": {
16
16
  "dev": "tsx src/index.ts",
17
17
  "build": "tsc",
18
+ "postinstall": "node ./dist/postinstall.js",
18
19
  "pack:all": "node scripts/pack-editions.mjs",
19
20
  "sync:docs": "node scripts/sync-skill-docs.mjs",
20
21
  "start": "node dist/index.js"
@@ -2,11 +2,11 @@
2
2
  name: weaver-e10-builder
3
3
  display_name: 泛微E10智能搭建Skill
4
4
  display_name_en: E10 Builder
5
- description: 泛微E10智能搭建skill v2(通用版),辅助编写泛微Ebuilder自定义应用,对应CLI版本1.0.12-beta
6
- description_zh: 泛微Ebuilder低代码应用智能搭建工具 v2(通用版),辅助编写自定义应用(表单/流程/列表/动作流/权限/分组/编号等),与 e10-cli 配套使用,当前对应 CLI 版本 1.0.12-beta。
7
- description_en: E10 Ebuilder low-code app builder skill v2 (general) — helps build Weaver E10 custom apps (forms/workflows/lists/actionflows/permissions/groups/numbering) via e10-cli, currently paired with CLI 1.0.12-beta.
5
+ description: 泛微E10智能搭建skill v2(通用版),辅助编写泛微Ebuilder自定义应用,对应CLI版本1.1.0
6
+ description_zh: 泛微Ebuilder低代码应用智能搭建工具 v2(通用版),辅助编写自定义应用(表单/流程/列表/动作流/权限/分组/编号等),与 e10-cli 配套使用,当前对应 CLI 版本 1.1.0。
7
+ description_en: E10 Ebuilder low-code app builder skill v2 (general) — helps build Weaver E10 custom apps (forms/workflows/lists/actionflows/permissions/groups/numbering) via e10-cli, currently paired with CLI 1.1.0.
8
8
  category: coding
9
- version: 1.0.12-beta
9
+ version: 1.1.0
10
10
  author: 泛微网络科技股份有限公司
11
11
  auto: true
12
12
  ---
@@ -15,7 +15,7 @@ auto: true
15
15
 
16
16
  ## 安装与升级
17
17
 
18
- 本 skill 需与 CLI **版本匹配**(当前对应 CLI `1.0.12-beta`)。版本不一致时命令/文档/选项可能对不上——升级前先对齐:
18
+ 本 skill 需与 CLI **版本匹配**(当前对应 CLI `1.1.0`)。版本不一致时命令/文档/选项可能对不上——升级前先对齐:
19
19
 
20
20
  ```shell
21
21
  e10-cli --version # 查 CLI 版本,应与上方 description 标注一致
@@ -69,7 +69,11 @@ npx -y skills add ./weaver-e10-builder.zip --skill -y
69
69
  **CLI 支持以下能力,均为第一轮就能配好的,不要留到"后续再补":**
70
70
  - 字段显隐联动(`form linkage add`)——效果类型:`hide`隐藏 / `show`显示(只读) / `edit`编辑 / `readonly`只读 / `required`必填 / `hideLine`隐藏行(仅表格布局,`hideRow` 兼容)
71
71
  - 动作流常量/公式/加减(`--constants` / `--formula` / mapping `+` `-` 前缀)
72
- - 动作流更新/删除(`--action-type update|delete`)
72
+ - 动作流新建/保留式更新(`actionflow generate` / `actionflow update`);动作流禁用/删除使用 `workflow action disable|delete|batch-delete`
73
+ - 动作流事件触发(`ApproveTrigger` / `EventFormData` / `EventButton` / `DateTrigger` / `TimeBatchTrigger` / `SimpleScheduler` / `CustomTrigger` / `InnerMQListener`)和内置 MQ 发送动作(`InnerMQSend`);各触发器按组件类型联动节点/时机,内置 MQ 监听与发送禁止同流
74
+ - 动作流更新保持原触发器不变,固定保存为新版并回读校验;若需改变触发类型、触发表单、触发时机或触发器参数,必须新建动作流
75
+ - 自定义触发与内置 MQ 监听使用平台原生输入参数结构;参数行、根触发器图标和保存后回读结果均纳入正确性检查
76
+ - 动作流标准函数按每个函数的真实参数名、类型、必填规则和枚举配置生成;`code`/`custom` 仍需按平台或租户能力单独处理,函数接口只作使用时的辅助校验
73
77
  - 分支条件 AND/OR 嵌套(`workflow save-condition`)
74
78
  - 表单相关人员审批(`set-operator --type form`)
75
79
  - 复杂编号/年份编号(`form serial-mark`,如 XM-2026-001)
@@ -116,97 +120,20 @@ npx -y skills add ./weaver-e10-builder.zip --skill -y
116
120
 
117
121
  2. 全局资源设计(复杂需求必经)
118
122
  a. 理解需求,不够清楚的地方反问用户
119
- b. 在本地写 `plan.md` 搭建计划大纲,**逐项列出所有待建资源**:
120
- ```
121
- ## 搭建计划
122
- ### 应用
123
- - [ ] <应用名> | ID: 待创建 ← 一份需求只建这一个应用,所有表单/流程/菜单都在它下面
124
- ### 表单
125
- - [ ] <表单名> | ID: 待创建
126
- 字段: 名称(Text) / 项目金额(Money) / 备注(TextArea,独占一行) / 客户名称(Text,group=基本信息) / 联系电话(Phone,group=基本信息) / 明细表: 序号(Number) ...
127
- (选项/编号规则/默认值/百分比显示建表时一并写全;单位无独立属性,写进字段名如 工时单价(元))
128
- (**布局规划勿漏**:长文本/备注/地址/描述/富文本等 → 独占一行(`singleRow:true`);6+ 字段或有逻辑分段(基本信息/合同信息/系统设置…) → 按 `group` 名分组。建表时 fields.json 一并写全,勿留到建后补——AI 常漏这两项)
129
- ### 流程 <流程名>
130
- > ⚠️ **流程级必做**:① 流程编号(`workflow numbering`,方案有编号规则的);② 出口名称(`workflow link-rename`,连线默认名是英文/随机,**改成业务人话**,如"金额≥10万"、"金额<10万",分支连线尤其要改);③ 出口条件清单(见下方模板——**先列全表,再逐条创建**,勿凭印象跳步)
131
- - [ ] <节点1> | 操作者: 创建人
132
- - [ ] <节点2> | 操作者: 区域经理+部门领导(竞签)
133
- - [ ] <节点3> | 条件: <字段>=<值> 才走到,否则跳过/直达<节点>
134
- - [ ] <节点4> | 操作者: 角色X | 动作流: → <目标表>(add/update/delete, 映射: 源→目标)
135
- - [ ] <节点N> | ... (每个节点一行,操作者/条件/动作流挂在对应节点上)
136
- >
137
- > #### 出口条件清单(必填——动手前逐条列出,防止遗漏)
138
- >
139
- > 段② 执行到条件时,先按以下模板列出**所有连线的完整条件表**,逐条确认后再 `workflow condition add`:
140
- >
141
- > | 来源节点 | 目标节点 | 连线名 | 条件 | 来源 | 操作 | 值/右字段 | 明细量词 | 备注 |
142
- > |---|---|---|---|---|---|---|---|---|
143
- > | 发起 | 初审 | 部门初审 | 所属部门=财务部 | form:所属部门 | 等于 | 财务部 | — | |
144
- > | 发起 | 初审 | 部门初审 | 报销金额5k~10k | form:报销金额 | 范围 | 5000:10000 | — | 数值范围 |
145
- > | 发起 | 初审 | 部门初审 | 发起时间≥报销日期 | system:发起时间 | 大于等于 | field:报销日期 | — | 变量模式 |
146
- > | 发起 | 初审 | 部门初审 | 报销类型∈{差旅,住宿} 或 发票编号含FP | form:报销类型 | 属于 | 差旅费,住宿费 | 任一 | 与下行OR |
147
- > | 发起 | 初审 | 部门初审 | 同上OR组 | form:发票编号 | 包含 | FP | 任一 | 接上行OR |
148
- >
149
- > 要点:
150
- > - **每行一条原子条件**,OR 组拆多行备注"与下行OR"
151
- > - 操作列:`等于`/`大于`/`小于`/`范围`/`属于`/`包含`/`为空`/`不为空`/`field`(变量模式)
152
- > - 值列:字面值直接写;`field:` 前缀表示引用另一字段(变量模式)
153
- > - 明细量词:`任一`(任一行) / `所有`(所有行) / `—`(主表)
154
- > - 创建完 `workflow condition list <wfId>` 回读,核对条件总数与表一致
155
- ### 菜单
156
- - [ ] <菜单名> | 指向: <流程/表单>
157
- ### 页面
158
- - [ ] 无定制页面,表单自带台账(有定制页面才另列)
159
- ### 必做项(销号核对,勿依赖平台默认值——平台默认值≠方案要求)
160
- > ⚠️ **[ ] 是待办,不是"已规划"。规划阶段全部留 `[ ]`;执行阶段做完一项、验证通过,才把 `[ ]` 改 `[x]` 并填入 ID。**plan 是配合搭建过程用的进度表——**完成一条打勾一条**,全部 `[x]` 才算完工。**禁止在规划阶段就把项勾成 `[x]`**(那等于谎报完成)。
161
- - [ ] 角色: role create(方案要求的每个角色都要建,不会自动有)
162
- - [ ] 节点操作者: workflow set-operator(每个审批节点,勿默认"所有人")
163
- - [ ] 流程编号: workflow numbering(方案有编号规则的流程。工作流程表单字段流水号如"LXLC-4位流水号"用 `workflow numbering set <wf> --prefix LXLC --serial 4 --no-year`)
164
- - [ ] 出口名称: workflow link-rename(有分支条件的连线,改成人话)
165
- - [ ] 显示列: form ebuilder-columns / list-columns(先 `ebuilder-columns` 不带参数看**业务字段候选清单**(系统字段已自动过滤),从清单选字段名设置)
166
- - [ ] 数据过滤: form ebuilder-scope(关联浏览字段的数据范围设置,如"客户状态=启用"才可选;配到关联浏览字段上)
167
- - [ ] 提交校验: workflow node validate(字段 vs 字段/字面值/跨表,如 "请假时长 小于 4" 禁止提交、"行程明细.行程开始时间 等于 出差开始日期" 主子表校验)
168
- - [ ] 签字意见必填: workflow node sign(退回等操作类型必填意见,如 `node sign <wf> <审批节点> --select "退回"`)
169
- - [ ] 流程标题: workflow setting title(标题按规则生成真实数据,如 `--rule "发起人|提交日期|客户名称"`;标题=流程名+系统字段则跳过)
170
- - [ ] 数据来源落点: 写入型动作流的目标台账**必须建 Flow 字段**(如「数据来源」←来源流程,`form add-field <台账> <app> "数据来源" Flow --sform-id <流程表单objId>`)——add 时 `--sysvar` 写 requestId 的落点,update/delete 也靠它定位
171
- ```
172
- > **应用数量**:默认全需求只建 **1 个**应用。看到需求先归拢到这一个应用下,不要按功能点拆应用。确需多应用(分属不同业务系统)要先跟用户确认。
173
- > **流程按节点逐行**:每个节点一行 `- [ ]`,操作者(含签署方式:会签/非会签/竞签/依次/抄送)、条件(什么情况走到/跳过/直达)、动作流(该节点触发写目标表)都挂在对应节点上。**「A 或 B 审批」= 一节点多人 + 竞签/非会签**,写进操作者行,不拆节点。逐节点销号。
123
+ b. 在本地写 `plan.md`,**认真阅读用户提供的实施方案/需求文档**,**参考 `references/common/guide-plan-template.md` 模板格式**,把方案中涉及的所有资源与配置项列清楚(应用/表单/字段/流程/出口条件/联动/权限/编号/台账配置等)。方案里提到的每项都要在 plan 中体现,不能凭记忆遗漏。模板里的 `[ ]` 是待办,做完验证才改 `[x]`——禁止预勾、禁止自创格式。
174
124
  c. 拿计划大纲和用户确认(**此阶段 plan 里所有 `[ ]` 保持未勾**——是待办清单,不是完成清单)
175
125
  d. 用户确认后按大纲**逐项执行、逐项打勾**:每做完一项、验证通过,才把 `[ ]` 改 `[x]` 并填入实际 ID。**完成一条打勾一条**,禁止预勾。
176
126
 
177
- > **台账页面不用写**:表单建好即自带台账(搜索/筛选/导出/批量操作)。plan 里的「### 页面」只列**定制化需求**(图表、跨表聚合、特殊交互)。没有定制页面就把整节标 `### 页面(无需,表单自带台账)`。
178
-
179
127
  3. 执行搭建(**最多分三段,每段完成停下来让用户确认,确认后才进下一段**)
180
- - **段① 应用 + 角色 + 全部表单**:
181
- - 建应用、建角色
182
- - **每张表一口气建全**:`form create --fields @fields.json` 写全字段/选项/默认值/精度/百分比/子表/明细/**独占一行(singleRow)/分组(group)**(勿先建空表再 add-field;singleRow/group 留到建后补容易漏)
183
- - **建表后逐表配齐表内项**(缺一项这张表就不算完成,逐项打勾):
184
- - `serial-mark` 复杂编号(编号字段:前缀/年份/流水)
185
- - `relateFrom` 值带出(EBuilder 关联带出:`edit-field --relate-from`;表内人员/部门带出:`form relate`)
186
- - `ebuilder-scope` 关联浏览数据范围(如客户状态=启用才可选)
187
- - `formula` 字段公式(付款比例/工时金额等;fields.json inline 或 `form formula set`)
188
- - `validate` 查重校验(项目名称/工时日期重复不允许)
189
- - `list-columns` 台账显示列(去系统字段,只留业务字段)
190
- - 全部表 + 表内项都完成后,给用户列表单清单 + 关键字段,**确认字段设计**再进段②
191
- - **段② 流程**(节点/操作者/条件/动作流):
192
- - 先列**出口条件清单**(见上方模板,动手前逐条列出所有连线条件,避免遗漏)
193
- - 逐条 `workflow condition add` 创建,每创建一条在计划清单打勾
194
- - 全部条件创建后 `workflow condition list <wfId>` 回读,核对条件总数与清单一致
195
- - 完成后给用户列流程(节点+签署方式+条件),**确认流程**再进段③
196
- - **段③ 菜单 + 页面**
197
- - 每段内按 plan.md 逐项推进、即时打勾,做到「大纲驱动、逐项销号」。
128
+ - 段① 应用+角色+全部表单(建表+表内项配齐)→ 确认字段设计 → 段② 流程(先列出口条件清单→逐条创建→`condition list` 回读核对)→ 确认流程 → 段③ 菜单+页面。分段细节与表内项清单见 `references/common/guide-plan-template.md`「执行分段」。
198
129
  - 简单单步需求(改字段、查数据)不分段,直接执行。
199
130
  ```
200
131
 
201
132
  **关键约束**:
202
- - Plan 阶段**不调用 e10-cli 写命令**(可以 list/read 查询现状)
203
- - **必须写 plan.md 落地**,不要只在对话里列方案——用户需要一份可回顾的文档
204
- - 执行时逐项销号,全部 `[x]` 才算完工
205
- - **分段执行、分段确认**:应用+表单 → 确认 → 流程 → 确认 → 菜单/页面。**表单是流程的地基**(流程绑定表单、条件/动作流/操作者都引用字段),字段设计错了流程全返工,所以表单段必须确认后再进流程
133
+ - plan.md 强制按 `references/common/guide-plan-template.md` 格式写;规划阶段不调写命令、逐项销号、分段确认、字段一次性建好等规则见模板「规则备忘」
206
134
  - 本服务运行于 Windows 环境,注意命令行兼容性
207
135
  - 不要多说废话,直接干活。用户等的是结果。
208
136
  - **写代码不要犹豫**,按模板直接出完整代码,写完用 `e10-cli check` 验证。错了报错再改。
209
- - **表单字段一次性建好**:`form create --fields @fields.json` 时把所有字段定义写全,包括选项、默认值、**独占一行(`singleRow`)/分组(`group`)**。**不要先建表再加字段**——add-field/edit-field 只是罕见补救手段,正常流程就是一口气建完。布局属性(singleRow/group)建表时就要定,建后补容易漏。
210
137
  - **解析 Word 文档**:用 `e10-cli docx read <文件>` 一键转 markdown + 提取图片,**禁止自己写 python-docx 脚本**。读取后必须逐张 Read `_images/` 目录里的图片做多模态理解,**把分析结果写回 md**(替换图片占位符为实际描述,让文档完整可读)。
211
138
 
212
139
  ---
@@ -225,7 +152,9 @@ npx -y skills add ./weaver-e10-builder.zip --skill -y
225
152
 
226
153
  | 用户关键词 | 加载文档 |
227
154
  |-----------|---------|
155
+ | 写plan、搭建计划、plan.md、资源梳理、搭建模板、必做项清单 | `references/common/guide-plan-template.md` |
228
156
  | 建应用、创建应用、app、应用列表、应用详情、应用目录、app read/list/folder/edit/delete | `references/common/ref-cli-commands.md` |
157
+ | 字段联动、跨表带出赋值、FormDataLinkage、多跳带出、关联客户带出客户类型、field-linkage、Text字段赋值名称 | `references/form/guide-field-linkage.md`(三种联动对比 + 单跳/多跳 + --hops 格式 + Text 字段必须多跳取名称) |
229
158
  | 鉴权、登录、ETEAMSID、多环境、profile、切换环境 | `references/auth/guide-auth.md` |
230
159
  | 表单数据读写、getSimpleData、withDisplayNames、getFieldOptions、saveFormData、updateFormData | `references/coding/guide-form-crud.md`(前端代码) |
231
160
  | form data add、form data list、form data delete、写入数据、查询数据、删除数据 | `references/form/guide-form-data.md` |
@@ -244,7 +173,7 @@ npx -y skills add ./weaver-e10-builder.zip --skill -y
244
173
  | CLI命令、打包、build、import、创建应用/表单/菜单 | `references/common/ref-cli-commands.md` |
245
174
  | 编译报错、语法不支持、babel | `references/coding/ref-compile-rules.md`(前端代码) |
246
175
  | Word文档、docx、需求文档、解析文档 | `e10-cli docx read` 一键转换,禁止自己写脚本 |
247
- | 新建视图、表格视图、看板、日历、思维导图、form view、台账显示列、显示列、list-columns、搜索条件、排序、list-sort、顶部统计、list-stats | `references/form/guide-form-view.md` |
176
+ | 新建视图、表格视图、看板、日历、思维导图、form view、台账显示列、显示列、list-columns、搜索条件、排序、list-sort | `references/form/guide-form-view.md` |
248
177
  | 视图权限、查看布局、修改共享权限、view permission | `references/form/guide-form-view-permission.md` |
249
178
  | EBuilder关联、关联表单、数据过滤设置、ebuilder-filter、EBuilder显示列、ebuilder-columns、去掉系统字段、只留业务字段 | `references/form/guide-ebuilder-filter.md` |
250
179
  | 关联浏览筛选、数据范围设置、浏览数据定义、只选启用状态、关联客户过滤、ebuilder-scope | `references/form/guide-ebuilder-scope.md` |
@@ -252,7 +181,10 @@ npx -y skills add ./weaver-e10-builder.zip --skill -y
252
181
  | 独占一行、整行显示、字段换行、singleRow、--single-row | `references/form/guide-create-form.md`(fields.json 字段写 `"singleRow":true`;add-field 用 `--single-row`) |
253
182
  | 字段多选、多选、单选、人员多选、部门多选、关联多选、multiple、--multiple | `references/form/guide-create-form.md`(fields.json 写 `"multiple":true`;add-field `--multiple`;edit-field `--multiple`/`--no-multiple`。仅人员/部门/EBuilder/Browser 支持) |
254
183
  | 函数公式、字段公式、formula、DAYS、日期差、expressId、公式绑定 | `references/form/guide-form-formula-functions.md`(219 个函数速查矩阵,写 `fields.json` 的 `formula` 或 `form formula set --expression` 时查函数格式/示例;**日期差用 `DAYS(开始,结束)`**) |
255
- | 表单按钮、button、自定义按钮 | `references/common/ref-cli-commands.md` |
184
+ | 显示列批量设置、批量加列、列宽、列顺序、list-columns --set | `references/form/guide-list-columns.md` |
185
+ | 顶部统计、明细统计、付款记录数、list-stats、子表计数 | `references/form/guide-list-stats.md` |
186
+ | 关联页签、关联视图、association、页签显示布局、关联数据筛选、set-filter | `references/form/guide-form-association.md` |
187
+ | 表单按钮、button、自定义按钮、视图按钮、行上、行末下拉、按钮显示位置 | `references/form/guide-form-button.md`(位置配置);`references/common/ref-cli-commands.md`(其他按钮命令) |
256
188
  | 表单权限、permission、数据权限 | `references/common/ref-cli-commands.md` |
257
189
  | 消息提醒、消息动作流、workflow message、IM提醒 | `references/common/ref-cli-commands.md` |
258
190
  | 编号规则、serial-mark、自动编号、流水号、年份编号、流程编号、numbering | `references/common/ref-cli-commands.md` |
@@ -263,7 +195,7 @@ npx -y skills add ./weaver-e10-builder.zip --skill -y
263
195
 
264
196
  > 组件文档(Button/Table/Input/Upload 等)在 `references/` 中按文件名查找。完整索引见 `_catalog.md`。
265
197
 
266
- > **表单自带默认台账** — 用户明确要求额外表格视图时,用 `form table-view create` 原子完成 `nListView` 创建、显示列配置和回读;禁止用 `form view create --type tableView` 创建空壳。`formView` 使用 `form view create` 后必须执行 `form view populate`。
198
+ > **表单自带默认台账** — 普通列表需求先查询并复用已有默认台账,记录实际名称/listId;“客户信息表/客户信息”这类简称差异不构成新建理由,默认保留原名,不统一去掉“表”字。仅名称需对齐时应改名而非另建。用户明确要求额外表格视图时,用 `form table-view create` 原子完成 `nListView` 创建、显示列配置和回读;禁止用 `form view create --type tableView` 创建空壳。`formView` 使用 `form view create` 后必须执行 `form view populate`。
267
199
 
268
200
  ---
269
201
 
@@ -329,20 +261,3 @@ npx -y skills add ./weaver-e10-builder.zip --skill -y
329
261
  - 编译约束(var 声明、不支持的语法)→ `references/coding/ref-compile-rules.md`(前端代码)
330
262
  - CLI 命令速查 → `references/common/ref-cli-commands.md`
331
263
  - 组件完整索引 → `_catalog.md`
332
-
333
- ---
334
-
335
- ## 附:自定义页面代码场景——拷贝模板项目
336
-
337
- > 仅用于「自定义页面代码」场景(写 entry.js / 自定义页面、调 formApi)。建表单/流程/菜单等不需要拷模板,直接用 `e10-cli` 命令。
338
-
339
- 先 `e10-cli skill copy` 把模板拷到本地(在 `assets/sample/`;本机完整安装也可直接读 `assets/sample/`),再拷贝模板文件到你的工作目录。
340
-
341
- 模板包含:
342
- | 文件 | 用途 |
343
- |------|------|
344
- | `entry.js` | 路由注册入口,已配置好 `asyncImport` |
345
- | `api/formApi.js` | 表单数据读写的标准 API |
346
- | `config/config.js` | 基础配置(userId 等) |
347
- | `eslint.config.cjs` | 代码检查规则 |
348
- | `.claude/settings.local.json` | Claude Code 本地设置 |
@@ -1,39 +1,61 @@
1
- # 新建表单数据(`ActionEbAdd`)
2
-
3
- ## 何时使用
4
-
5
- 向指定 e-builder 表单新增一条或一批数据;已有数据要修改时改用 `ActionEbUpdate`。
6
-
7
- ## 先查询
8
-
9
- 查询目标应用、表单、全量字段及创建人。明细赋值还须查询明细字段。
10
-
11
- ## 不可猜测
12
-
13
- `targetForm`、人员和字段 ID 必须来自当前租户。动态来源只能使用本次触发器的真实 `paramKey`。
14
-
15
- ## 最小计划
16
-
17
- `targetForm`、`person`,以及至少一项 `mapping`、`constants`、`formula` 或 `setting`。
18
-
19
- 操作人选择:需求明确指定某人时才传该人的真实 Browser 对象并显示为固定值;需求未指定时传 `{"type":"role"}`,生成当前人 `{userid}` 动态值。不得为了补必填项从人员列表任意挑一个人。
20
-
21
- `opType:"batchInsert"` 时,`basisValue` 与 `mapping` 都是必填:前者指定要逐行遍历的上游明细,后者指定每行写入哪些目标字段。两者任一缺失,CLI 会在创建动作流前停止,绝不保存空壳批量节点。
22
-
23
- 若流程触发器上下文中存在 `requestId`,而目标表恰有唯一一个未赋值的流程关联 Browser 字段(如“来源流程”或“关联流程”),CLI 会把它自动映射为当前流程实例 ID,并在结果的 `autoMappings` 中列出。显式映射、固定值、公式和旧 `setting` 始终优先,不会被覆盖;字段不唯一或类型不是流程关联字段时不猜测。
24
-
25
- ## 动态来源选择与查询结果引用
26
-
27
- - AI 应按需求和已生成上游节点的真实上下文选择来源:流程触发字段、前序动作输出、当次循环、系统变量、固定值或查询结果均可;**不得默认把所有映射绑定到流程触发,也不得默认插入查询节点**。
28
- - 仅当业务需要从另一张表反查、且结果可确定为单条时,才使用 `EnquiryForm` 查询 + 主表字段 `query_result` 引用(手工创建成功样本:`actionflows/references/examples/enquiry-form-batch-insert-scene2.json`)。
29
- - EnquiryForm 在前,ActionEbAdd 的 sources 指向 EnquiryForm 节点;主表字段 assign `type=3`,`value="FormData.{查询表id}[{positionId}].id"`,`config.comType="EnquiryForm"`、`comId=EnquiryForm 节点 id`、`paramKey="{查询表id}[].id"`,childs 带固定值取下标 `[{type:"1", value:"0", position}]`。
30
- - 细节见 `EnquiryForm.md`「批量新增主表字段引用查询结果」。
31
- - AI 选择查询结果时,plan 显式写 `kind:"query_result"` 和查询节点 `ref`;未选择时使用普通 `context`、`fixed`、`system_variable` 或函数树,不产生查询结果公式。
32
-
33
- ## 函数公式赋值(type=6)
34
-
35
- - **plan 写法**:顶层 `formula: {目标字段id: <函数树>}`;函数调用为 `{kind:'function', name:'DAYS', args:[...]}`,args 可为 `{kind:'context', paramKey, label, fieldType}` / `{kind:'fixed', value}` / 嵌套 `{kind:'function'}`。`+`、`−`、`×`、`÷` 本身也是函数名;旧 `op: 'add'|'sub'|'mul'|'div'` + fields 列表仅保留兼容。
36
- - **保存结构**:assign `type=6`,`value="{fnId}#{child.id}#..."`;`childs` 以子公式对象的 `id` 串联。内层函数同样 type=6 嵌套,叶子上下文 type=3 / 固定值 type=1。
37
- - **excelFunc 必须是对象**:四则运算函数目录无 excelFunc,CLI 传 `null` 由 FormulaBean 构造器生成对象兜底;函数目录带 excelFunc 的(如 DAYS/TODAY)原样透传对象。禁止写字符串(如 `'mul'`)。
38
- - **函数来源**:除 `custom`(自定义 JS)和 `code`(编码函数)外,标准函数名称、类别与参数约束均内置在 Skill/CLI。plan 只写函数名;仅当计划实际使用函数时,CLI 才调用当前租户接口校验该函数可用并替换函数 ID。接口不参与未使用函数的生成,也不决定标准函数是否受支持;当前租户缺少所用函数时明确停止。
39
- - 任务工时示例:`DAYS(预计完成日期, TODAY()) × 8`:`{kind:'function',name:'×',args:[{kind:'function',name:'DAYS',args:[{kind:'context',paramKey:'<日期字段>',label:'预计完成日期',fieldType:'date'},{kind:'function',name:'TODAY',args:[]}]},{kind:'fixed',value:8}]}`;首次用于新租户时仍应保存并回读确认。
1
+ # 新建表单数据(`ActionEbAdd`)
2
+
3
+ ## 何时使用
4
+
5
+ 向指定 e-builder 表单新增一条或一批数据;已有数据要修改时改用 `ActionEbUpdate`。
6
+
7
+ ## 选择项跨表映射
8
+
9
+ 来源、目标选择字段的选项 ID 经当前租户字段元数据确认一致时,直接 `mapping` 动态赋值;批量新增会生成“依据值下级”(`switchType:"sub"`),这是任务明细字段的默认做法。需求指定固定选项时,不做动态映射;在 `constants` 中传该字段的真实 `valueKey`(可同时带 `label`),例如 `"<任务类型字段id>":{"kind":"fixed","value":"<研发的valueKey>","label":"研发"}`。CLI 会保留目标字段 `Select` 类型,使设计器以下拉项“研发”回显。只有两边选项 ID 不同、且需求明确要求按语义转换时,才在 `formula`(批量明细为 `detail[].formula`)中用 `SWITCH` 显式映射:
10
+
11
+ ```json
12
+ {
13
+ "<目标选择字段id>": {
14
+ "kind": "function",
15
+ "name": "SWITCH",
16
+ "args": [
17
+ {"kind":"context","paramKey":"<来源选择字段paramKey>","label":"来源类型"},
18
+ {"kind":"fixed","value":"<来源选项id1>"}, {"kind":"fixed","value":"<目标选项id1>"},
19
+ {"kind":"fixed","value":"<来源选项id2>"}, {"kind":"fixed","value":"<目标选项id2>"},
20
+ {"kind":"fixed","value":"<默认目标选项id>"}
21
+ ]
22
+ }
23
+ }
24
+ ```
25
+
26
+ 批量新增时,普通 `mapping` 的 `明细表[].字段` 仍编译为 type=10 的“依据值下级”引用。函数参数则是另一套协议:它会明确引用 `明细表[0].字段`,不会把整张明细数组传入函数。
27
+
28
+ ## 先查询
29
+
30
+ 查询目标应用、表单、全量字段及创建人。明细赋值还须查询明细字段。
31
+
32
+ ## 不可猜测
33
+
34
+ `targetForm`、人员和字段 ID 必须来自当前租户。动态来源只能使用本次触发器的真实 `paramKey`。
35
+
36
+ ## 最小计划
37
+
38
+ `targetForm`、`person`,以及至少一项 `mapping`、`constants`、`formula` 或 `setting`。
39
+
40
+ 操作人选择:需求明确指定某人时才传该人的真实 Browser 对象并显示为固定值;需求未指定时传 `{"type":"role"}`,生成当前人 `{userid}` 动态值。不得为了补必填项从人员列表任意挑一个人。
41
+
42
+ `opType:"batchInsert"` 时,`basisValue` 与 `mapping` 都是必填:前者指定要逐行遍历的上游明细,后者指定每行写入哪些目标字段。两者任一缺失,CLI 会在创建动作流前停止,绝不保存空壳批量节点。
43
+
44
+ 若流程触发器上下文中存在 `requestId`,而目标表恰有唯一一个未赋值的流程关联 Browser 字段(如“来源流程”或“关联流程”),CLI 会把它自动映射为当前流程实例 ID,并在结果的 `autoMappings` 中列出。显式映射、固定值、公式和旧 `setting` 始终优先,不会被覆盖;字段不唯一或类型不是流程关联字段时不猜测。
45
+
46
+ ## 动态来源选择与查询结果引用
47
+
48
+ - AI 应按需求和已生成上游节点的真实上下文选择来源:流程触发字段、前序动作输出、当次循环、系统变量、固定值或查询结果均可;**不得默认把所有映射绑定到流程触发,也不得默认插入查询节点**。
49
+ - 仅当业务需要从另一张表反查、且结果可确定为单条时,才使用 `EnquiryForm` 查询 + 主表字段 `query_result` 引用(手工创建成功样本:`actionflows/references/examples/enquiry-form-batch-insert-scene2.json`)。
50
+ - EnquiryForm 在前,ActionEbAdd 的 sources 指向 EnquiryForm 节点;主表字段 assign `type=3`,`value="FormData.{查询表id}[{positionId}].id"`,`config.comType="EnquiryForm"`、`comId=EnquiryForm 节点 id`、`paramKey="{查询表id}[].id"`,childs 带固定值取下标 `[{type:"1", value:"0", position}]`。
51
+ - 细节见 `EnquiryForm.md`「批量新增主表字段引用查询结果」。
52
+ - AI 选择查询结果时,plan 显式写 `kind:"query_result"`、`source:"<查询节点ref>"`、`formId`、`fieldId`、`index:0`;未选择时使用普通 `context`、`fixed`、`system_variable` 或函数树,不产生查询结果公式。`kind:"enquiry"` 与 `sourceId` 不是合法格式,CLI 必须拒绝,不能生成空固定值。
53
+
54
+ ## 函数公式赋值(type=6)
55
+
56
+ - **plan 写法**:顶层 `formula: {目标字段id: <函数树>}`;函数调用为 `{kind:'function', name:'DATEDIFF', args:[...]}`,args 可为 `{kind:'context', paramKey, label, fieldType}` / `{kind:'fixed', value}` / 嵌套 `{kind:'function'}`。四则运算也写为函数树,禁止 `op + fields` 的旧格式。
57
+ - **保存结构**:assign `type=6`,`value="{fnId}#{child.position}#..."`;`childs` 按参数槽位 `position` 串联,且 `detail[i].position` 必须与第 i 个 child 的 `position` 完全相同。`position` 与子公式 `id` 都是数字但不能混用:缺任一处会让设计器只显示根运算符(如 `(*)`),不显示参数。函数内部 `formulaType/config.paramType` 使用函数目录的 `resultType`(如 `double`),目标字段 `NumberComponent` 只写在外层 setting。内层函数同样 type=6 嵌套,叶子上下文 type=3 / 固定值 type=1。
58
+ - **函数类别与 excelFunc**:`functionType` 必须原样使用函数目录的 `category`(如四则运算为 `operation`、日期函数为 `date`),不能用结果类型 `double` 代替。仅当函数目录实际返回 `excelFunc` 对象时才透传;没有就省略,尤其不能给 `×/÷/+/-` 伪造通用 `excelFunc`,否则编辑器会丢失运算符。禁止写字符串(如 `'mul'`)。
59
+ - **函数来源与参数契约**:除 `custom`(自定义 JS)和 `code`(编码函数)外,标准函数名称、类别与**每个函数自身的完整参数契约**均内置在 Skill/CLI。参数不得泛化为 `param1/param2`:必须保留真实 `paramName`、`paramType`、`isRequire`、说明和枚举选项;例如 `DATEDIFF` 固定为 `startdate/enddate/datepart`。plan 只写函数名及实参;仅当计划实际使用函数时,CLI 才调用当前租户接口校验该函数可用并替换不可迁移的函数 ID,同时保留该租户的完整参数定义。接口不参与未使用函数的生成,也不决定标准函数是否受支持;当前租户缺少所用函数时明确停止。
60
+ - 枚举函数参数不能只写内部值;固定值同时给 `label`,优先使用当前租户函数目录的参数选项名称。CLI 会保留接口的完整 `detail`(包括 `paramSelect/paramSelectDetail`),供所有函数的枚举参数回显。示例:`DATEDIFF({date}, 预计完成日期, "天数") × 8` 写为 `{kind:'function',name:'×',args:[{kind:'function',name:'DATEDIFF',args:[{kind:'system_variable',key:'{date}'},{kind:'context',paramKey:'<日期字段>',label:'预计完成日期',fieldType:'date'},{kind:'fixed',value:'dy',label:'天数'}]},{kind:'fixed',value:8}]}`;首次用于新租户时仍应保存并回读确认。
61
+ - **函数引用明细行字段**:函数参数若来自流程明细表,仍传真实 `paramKey:"<流程id>.<明细表id>[].<字段id>"`,但必须按手工编辑器的真实结构编译为 `type:3` 上下文引用,不能使用 `type:10/sub`,也不能使用 `mainBasis`。`value` 必须为 `FormData.<流程id>.<明细表id>[<索引子节点position>].<字段id>`;同时挂一个 `type:1`、`name/value:"0"` 的索引子节点,`[]` 内填写该子节点的 `position`。`config` 保留逻辑 `paramKey`(其中仍是 `[]`)、`fieldInfo.tablePrimaryKey:"FormData"`、`parentName:"<流程名>.<明细表名>[].<字段名>"` 和同样使用逻辑 `[]` 路径的 `multTypeObj`。缺少索引子节点时,编辑器会只显示红色字段名,丢失“流程触发 → 明细表[0] → 字段”的上下文链。