@microi.net/cli 5.7.8 → 5.8.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 (189) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.workbuddy-plugin/marketplace.json +2 -2
  5. package/.workbuddy-plugin/plugin.json +1 -1
  6. package/LICENSE +21 -21
  7. package/README.md +71 -71
  8. package/assets/build-meta.json +6 -6
  9. package/assets/feature-matrix.json +138 -138
  10. package/assets/logo.svg +4 -4
  11. package/cordis.patch.yml +1 -1
  12. package/package.json +1 -1
  13. package/scripts/mcp-codex-stdio-adapter.js +0 -0
  14. package/scripts/mcp-server.js +113 -112
  15. package/scripts/microi-cli.js +57 -57
  16. package/scripts/microi-codex-broker.js +450 -450
  17. package/scripts/microi-codex-router.js +0 -0
  18. package/scripts/microi-skills.meta.json +364 -364
  19. package/skills/.microi-skills-version.json +2 -2
  20. package/skills/README.md +286 -286
  21. package/skills/ai-engine/SKILL.md +265 -265
  22. package/skills/ai-engine/agents/openai.yaml +4 -4
  23. package/skills/ai-platform-governance/SKILL.md +177 -177
  24. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -190
  25. package/skills/app-store/SKILL.md +396 -396
  26. package/skills/app-store/agents/openai.yaml +4 -4
  27. package/skills/business-blueprint/SKILL.md +193 -193
  28. package/skills/datasource-engine/SKILL.md +90 -90
  29. package/skills/datasource-engine/agents/openai.yaml +4 -4
  30. package/skills/dos-orm/references/api-reference.md +229 -229
  31. package/skills/email-engine/SKILL.md +78 -78
  32. package/skills/email-engine/references/v8-email.md +34 -34
  33. package/skills/job-engine/SKILL.md +172 -172
  34. package/skills/job-engine/agents/openai.yaml +4 -4
  35. package/skills/message-notification/SKILL.md +156 -156
  36. package/skills/message-notification/agents/openai.yaml +5 -5
  37. package/skills/message-notification/references/contracts.md +102 -102
  38. package/skills/microi-ai-app-auth.js +652 -652
  39. package/skills/microi-ai-application/SKILL.md +106 -106
  40. package/skills/microi-ai-application/agents/openai.yaml +4 -4
  41. package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
  42. package/skills/microi-client-frontend/SKILL.md +237 -237
  43. package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +144 -144
  44. package/skills/microi-client-frontend/references/progressive-02-8-/350/277/220/350/241/214/346/227/266/351/253/230/351/242/221/345/235/221/345/244/215/347/233/230.md +196 -196
  45. package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +167 -167
  46. package/skills/microi-codex/SKILL.md +72 -70
  47. package/skills/microi-codex-installer/SKILL.md +225 -223
  48. package/skills/microi-codex-installer/agents/openai.yaml +7 -7
  49. package/skills/microi-datasource-mapping/SKILL.md +108 -108
  50. package/skills/microi-db-schema/SKILL.md +175 -175
  51. package/skills/microi-db-schema/agents/openai.yaml +4 -4
  52. package/skills/microi-db-schema/references/core-tables.md +695 -695
  53. package/skills/microi-db-schema/references/form-component-options.md +256 -256
  54. package/skills/microi-db-schema/references/schema-overview.md +202 -202
  55. package/skills/microi-db-schema/references/schema.md +646 -646
  56. package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
  57. package/skills/microi-deployment/references/deployment-matrix.md +101 -101
  58. package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
  59. package/skills/microi-form-engine/SKILL.md +226 -226
  60. package/skills/microi-form-engine/references/component-catalog.md +216 -216
  61. package/skills/microi-form-engine/references/data-source-events.md +124 -124
  62. package/skills/microi-form-layout/SKILL.md +205 -205
  63. package/skills/microi-form-layout/references/progressive-01-3-/344/270/211/347/247/215/345/210/206/347/273/204/347/232/204/345/255/230/345/202/250/344/270/216/351/205/215/347/275/256.md +235 -235
  64. package/skills/microi-frontend-sdk/SKILL.md +188 -188
  65. package/skills/microi-frontend-sdk/references/progressive-01-token-/345/275/223/345/211/215/347/231/273/345/275/225/347/224/250/346/210/267/344/270/216/345/275/223/345/211/215/347/273/210/347/253/257/347/231/273/345/275/225/345/215/217/350/256/256.md +176 -176
  66. package/skills/microi-left-right-layout/SKILL.md +141 -141
  67. package/skills/microi-microservice/SKILL.md +323 -323
  68. package/skills/microi-microservice/references/runtime-delivery.md +278 -278
  69. package/skills/microi-mobile-app-quality/SKILL.md +181 -181
  70. package/skills/microi-mobile-app-quality/references/progressive-01-4-/351/207/215/350/246/201/346/214/211/351/222/256/345/277/205/351/241/273/345/270/246/345/233/276/346/240/207.md +213 -213
  71. package/skills/microi-mobile-app-quality/references/progressive-02-9-/344/270/273/351/242/230/345/210/207/346/215/242/345/277/205/351/241/273/347/234/237/345/256/236/344/270/224/345/205/250/345/261/200/347/224/237/346/225/210.md +128 -128
  72. package/skills/microi-solution-quotation/SKILL.md +78 -78
  73. package/skills/microi-solution-quotation/agents/openai.yaml +4 -4
  74. package/skills/microi-solution-quotation/scripts/build_solution_quote.py +296 -296
  75. package/skills/microi-sso/references/acceptance.md +49 -49
  76. package/skills/microi-sso/references/configuration-and-security.md +53 -53
  77. package/skills/microi-sso/references/inbound.md +53 -53
  78. package/skills/microi-sso/references/outbound.md +39 -39
  79. package/skills/microi-system-delivery/SKILL.md +134 -134
  80. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +193 -193
  81. package/skills/microi-system-delivery/references/progressive-02-/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/345/277/205/351/241/273/350/246/206/347/233/226/347/232/204/345/235/221.md +189 -189
  82. package/skills/microi-ui/SKILL.md +174 -174
  83. package/skills/microi-ui/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/234/272/346/231/257/350/223/235/345/233/276.md +183 -183
  84. package/skills/microi-uniapp-frontend/SKILL.md +193 -193
  85. package/skills/microi-uniapp-frontend/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/210/206/347/261/273-/345/217/214/346/240/217/345/210/227/350/241/250/347/213/254/347/253/213/346/273/232/345/212/250.md +225 -225
  86. package/skills/microi-uniapp-frontend/references/progressive-02-/345/205/263/351/224/256/344/270/232/345/212/241/350/265/204/344/272/247/344/270/215/345/276/227/351/273/230/350/256/244/351/200/211/344/270/255.md +154 -154
  87. package/skills/microi.v8.js +1921 -1921
  88. package/skills/module-engine/SKILL.md +250 -250
  89. package/skills/module-engine/references/module-config.md +204 -204
  90. package/skills/ocr-engine/SKILL.md +113 -113
  91. package/skills/ocr-engine/agents/openai.yaml +4 -4
  92. package/skills/page-engine/SKILL.md +182 -182
  93. package/skills/page-engine/references/progressive-01-/346/211/200/346/234/211/347/273/204/344/273/266/347/261/273/345/236/213.md +234 -234
  94. package/skills/page-engine/references/progressive-02-/347/211/210/346/234/254/345/216/206/345/217/262-/345/271/266/345/217/221/344/277/235/345/255/230/344/270/216/345/233/236/346/273/232.md +60 -60
  95. package/skills/performance-testing/SKILL.md +221 -221
  96. package/skills/playwright-e2e/SKILL.md +197 -197
  97. package/skills/playwright-e2e/references/progressive-01-/345/205/250/350/207/252/345/212/250/347/231/273/345/275/225-/345/205/215/351/252/214/350/257/201/347/240/201-/344/275/206/344/270/215/345/205/215/345/257/206/347/240/201-/345/277/205/350/257/273.md +173 -173
  98. package/skills/playwright-e2e/references/progressive-02-/346/226/207/345/255/227/345/257/271/346/257/224/345/272/246/344/270/216/345/217/257/350/257/273/346/200/247/350/207/252/345/212/250/345/214/226/346/243/200/346/237/245-/345/277/205/345/201/232.md +183 -183
  99. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +221 -221
  100. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +115 -115
  101. package/skills/print-engine/SKILL.md +259 -259
  102. package/skills/production-readonly-audit/SKILL.md +41 -41
  103. package/skills/report-engine/SKILL.md +71 -71
  104. package/skills/report-engine/agents/openai.yaml +4 -4
  105. package/skills/scripts/optimize-progressive-disclosure.mjs +204 -204
  106. package/skills/scripts/refresh-progressive-disclosure.mjs +64 -64
  107. package/skills/search-engine/SKILL.md +75 -75
  108. package/skills/search-engine/agents/openai.yaml +4 -4
  109. package/skills/spider-engine/SKILL.md +190 -190
  110. package/skills/system-observability/SKILL.md +238 -238
  111. package/skills/system-observability/references/memory-incident-triage.md +70 -70
  112. package/skills/translate-engine/SKILL.md +140 -140
  113. package/skills/translate-engine/agents/openai.yaml +4 -4
  114. package/skills/ui-design/SKILL.md +191 -191
  115. package/skills/ui-design/assets/templates/MCI-DESIGN.md +198 -198
  116. package/skills/ui-design/references/design-pattern-library.md +184 -184
  117. package/skills/ui-design/references/mci-design-contract.md +163 -163
  118. package/skills/ui-design/references/progressive-01-/351/242/234/350/211/262/344/275/223/347/263/273-css-variables-/346/224/257/346/214/201/344/270/273/351/242/230/345/210/207/346/215/242.md +218 -218
  119. package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +137 -137
  120. package/skills/ui-design/references/progressive-03-/345/212/250/346/225/210/350/247/204/350/214/203-/344/270/260/345/257/214/344/275/206/344/270/215/345/215/241.md +235 -235
  121. package/skills/ui-design/references/progressive-04-/347/273/204/344/273/266/351/243/216/346/240/274/351/200/237/346/237/245.md +152 -152
  122. package/skills/ui-design/references/progressive-05-/347/247/273/345/212/250/347/253/257/344/270/223/347/224/250/350/247/204/350/214/203.md +238 -238
  123. package/skills/ui-design/references/progressive-06-/344/270/273/351/242/230/345/210/207/346/215/242/345/256/236/347/216/260.md +194 -194
  124. package/skills/ui-design/references/progressive-07-/351/200/237/346/237/245-/344/273/216/345/244/264/346/220/255/345/273/272/344/270/200/344/270/252/347/247/273/345/212/250/347/253/257/351/241/265/351/235/242.md +207 -207
  125. package/skills/ui-design/references/progressive-08-/350/241/250/345/215/225/345/210/206/347/273/204/350/247/204/350/214/203-tabs-vs-collapsegroup-/345/274/272/345/210/266.md +117 -117
  126. package/skills/uniapp-mall-assets/SKILL.md +176 -176
  127. package/skills/unity-integration/SKILL.md +155 -155
  128. package/skills/unity-integration/agents/openai.yaml +4 -4
  129. package/skills/unity-integration/references/ai-app-delivery.md +103 -103
  130. package/skills/unity-integration/references/sdk-api.md +82 -82
  131. package/skills/unity-integration/references/toolbox-migration.md +66 -66
  132. package/skills/unity-integration/references/webgl-hosting.md +57 -57
  133. package/skills/v8-cache-pattern/SKILL.md +306 -306
  134. package/skills/v8-crud-api/SKILL.md +175 -175
  135. package/skills/v8-crud-api/references/progressive-01-/346/237/245/350/257/242/345/210/227/350/241/250-/345/210/206/351/241/265.md +226 -226
  136. package/skills/v8-crud-api/references/progressive-02-where-/346/235/241/344/273/266/350/257/255/346/263/225/351/200/237/346/237/245.md +49 -49
  137. package/skills/v8-debugging/SKILL.md +284 -284
  138. package/skills/v8-explorer-tree/SKILL.md +228 -228
  139. package/skills/v8-export-import/SKILL.md +209 -209
  140. package/skills/v8-export-import/references/progressive-01-excellayout-/351/253/230/347/272/247/350/207/252/347/224/261/345/270/203/345/261/200.md +211 -211
  141. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +202 -202
  142. package/skills/v8-export-import/references/progressive-03-/345/256/211/345/205/250-/346/200/247/350/203/275/346/263/250/346/204/217.md +42 -42
  143. package/skills/v8-file-upload/SKILL.md +263 -263
  144. package/skills/v8-file-upload/references/progressive-01-/345/205/254/346/234/211/346/241/266-vs-/347/247/201/346/234/211/346/241/266.md +101 -101
  145. package/skills/v8-file-upload/references/progressive-02-office-/346/226/207/344/273/266/345/234/250/347/272/277/347/274/226/350/276/221/347/211/210/346/234/254/345/217/267/350/247/204/345/210/231.md +150 -150
  146. package/skills/v8-formengine-http/SKILL.md +219 -219
  147. package/skills/v8-frontend-events/SKILL.md +178 -178
  148. package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
  149. package/skills/v8-frontend-events/references/bluetooth-print.md +246 -246
  150. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +219 -219
  151. package/skills/v8-http-integration/SKILL.md +182 -182
  152. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +220 -220
  153. package/skills/v8-http-integration/references/progressive-02-/351/224/231/350/257/257/345/244/204/347/220/206/346/250/241/345/274/217.md +44 -44
  154. package/skills/v8-image-processing/SKILL.md +190 -190
  155. package/skills/v8-image-processing/agents/openai.yaml +4 -4
  156. package/skills/v8-image-processing/references/api-reference.md +623 -623
  157. package/skills/v8-menu-buttons/SKILL.md +180 -180
  158. package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +222 -222
  159. package/skills/v8-menu-buttons/references/progressive-02-8-/346/250/241/345/274/217-f-/345/220/216/345/217/260/344/273/273/345/212/241/346/214/211/351/222/256-/351/225/277/344/273/273/345/212/241.md +228 -228
  160. package/skills/v8-menu-buttons/references/progressive-03-10-/345/217/215/346/250/241/345/274/217-/351/201/277/345/205/215.md +104 -104
  161. package/skills/v8-mongodb/SKILL.md +192 -192
  162. package/skills/v8-mq-mqtt/SKILL.md +176 -176
  163. package/skills/v8-mq-mqtt/references/mqtt-production.md +342 -342
  164. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +181 -181
  165. package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +203 -203
  166. package/skills/v8-saas-multi-tenant/SKILL.md +219 -219
  167. package/skills/v8-security/SKILL.md +168 -168
  168. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +198 -198
  169. package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +158 -158
  170. package/skills/v8-sql-query/SKILL.md +302 -302
  171. package/skills/v8-table-event/SKILL.md +144 -144
  172. package/skills/v8-table-event/references/progressive-01-informv8-js-/350/241/250/345/215/225/346/211/223/345/274/200/344/272/213/344/273/266.md +197 -197
  173. package/skills/v8-table-event/references/progressive-02-/345/211/215/347/253/257/344/272/213/344/273/266/345/220/215-v8-eventname-/345/217/257/350/203/275/347/232/204/345/200/274.md +46 -46
  174. package/skills/v8-tcp-integration/SKILL.md +147 -147
  175. package/skills/v8-tcp-integration/agents/openai.yaml +4 -4
  176. package/skills/v8-template-engine/SKILL.md +167 -167
  177. package/skills/v8-utilities/SKILL.md +90 -90
  178. package/skills/v8-utilities/references/client-api-index.md +143 -143
  179. package/skills/v8-utilities/references/platform-http-routes.md +83 -83
  180. package/skills/v8-utilities/references/server-api-index.md +188 -188
  181. package/skills/v8-workflow/SKILL.md +243 -243
  182. package/skills/v8-workflow/references/progressive-01-/350/212/202/347/202/271/345/274/200/345/247/213-v8-/344/272/213/344/273/266.md +180 -180
  183. package/skills/vision-engine/SKILL.md +159 -159
  184. package/skills/vision-engine/agents/openai.yaml +4 -4
  185. package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
  186. package/skills/workspace-conventions/SKILL.md +261 -261
  187. package/skills/workspace-conventions/references/progressive-01-/347/211/210/346/234/254/346/233/264/346/226/260/346/227/245/345/277/227/344/277/235/346/212/244/350/247/204/345/210/231-/345/274/272/345/210/266.md +208 -208
  188. package/skills/workspace-conventions/references/progressive-02-microi-net-api-/346/234/254/345/234/260/345/220/257/345/212/250/347/272/246/345/256/232.md +216 -216
  189. package/skills/workspace-conventions/references/progressive-03-cli-/344/270/216-ide-/346/217/222/344/273/266/351/224/231/347/211/210/345/205/261/345/255/230/347/272/246/345/256/232.md +27 -27
@@ -1,180 +1,180 @@
1
- # v8-workflow 详细参考 1
2
-
3
- > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
-
5
- <!-- microi-progressive:chunk id=v8-workflow-007 sha256=9c40c62b67065c7e9f6821ef748d75595f004f069909258d9867490b74e115b7 -->
6
- ## 节点开始 V8 事件
7
-
8
- ### 前端 — 指定审批人
9
-
10
- ```javascript
11
- // V8.EventName === 'WFNodeStart'
12
- // 可以强制指定下一节点审批人
13
- if (V8.Form.DeptId === 'special-dept') {
14
- V8.WF.ForceSelectUsers = ['user-id-1', 'user-id-2'];
15
- }
16
- ```
17
-
18
- ### 后端 — 阻止流程提交
19
-
20
- ```javascript
21
- // V8.EventName === 'WFNodeStart'
22
- // 返回 Code: 0 可以阻止流程提交并回滚事务
23
- if (!V8.Form.ApprovalFiles) {
24
- V8.Result = { Code: 0, Msg: '请先上传审批附件' };
25
- }
26
- ```
27
-
28
- <!-- /microi-progressive:chunk -->
29
- <!-- microi-progressive:chunk id=v8-workflow-008 sha256=f023312e7d95c518428c2e6d1df99b43cc36d41659aa75768b13ff83cf52b3b0 -->
30
- ## 节点结束 V8 事件
31
-
32
- ### 后端 — 流程结束后业务处理
33
-
34
- ```javascript
35
- // V8.EventName === 'WFNodeEnd'
36
- var approvalType = V8.WF.ApprovalType;
37
-
38
- // 同意 — 更新业务状态
39
- if (approvalType === 'Agree') {
40
- // 判断是否到达最终节点
41
- var nextNode = V8.WF.NextNode;
42
- if (!nextNode || nextNode.NodeType === 'End') {
43
- // 流程结束,更新业务状态
44
- V8.FormEngine.UptFormData(V8.TableModel.Name, {
45
- Id: V8.Form.Id,
46
- ApprovalStatus: 'Approved',
47
- ApprovalTime: DateNow('yyyy-MM-dd HH:mm:ss')
48
- });
49
- }
50
- }
51
-
52
- // 拒绝 — 回退状态
53
- if (approvalType === 'Disagree') {
54
- V8.FormEngine.UptFormData(V8.TableModel.Name, {
55
- Id: V8.Form.Id,
56
- ApprovalStatus: 'Rejected',
57
- RejectReason: V8.WF.ApprovalIdea
58
- });
59
- }
60
-
61
- // 撤回
62
- if (approvalType === 'Recall') {
63
- V8.FormEngine.UptFormData(V8.TableModel.Name, {
64
- Id: V8.Form.Id,
65
- ApprovalStatus: 'Draft'
66
- });
67
- }
68
-
69
- // 通知下一审批人
70
- if (V8.WF.NextTodoUsers && V8.WF.NextTodoUsers.length > 0) {
71
- for (var i = 0; i < V8.WF.NextTodoUsers.length; i++) {
72
- V8.ApiEngine.Run('send-notification', {
73
- userId: V8.WF.NextTodoUsers[i].Id,
74
- title: '您有新的审批任务',
75
- content: V8.CurrentUser.Name + '提交了' + V8.TableModel.Name + '审批'
76
- });
77
- }
78
- }
79
- ```
80
-
81
- ### 前端 — 流程提交后提示
82
-
83
- ```javascript
84
- // V8.EventName === 'WFNodeEnd'
85
- if (V8.WF.WorkResult) {
86
- V8.Tips('流程已提交', true);
87
- }
88
- ```
89
-
90
- <!-- /microi-progressive:chunk -->
91
- <!-- microi-progressive:chunk id=v8-workflow-009 sha256=a927ce0325e130608823800c83c85d9e83d54fea61dbcfed32208d49f4012118 -->
92
- ## 前端打开流程表单
93
-
94
- ```javascript
95
- // 发起流程
96
- V8.OpenFormWF(V8.Form, 'Add', {
97
- WorkType: 'StartWork',
98
- FlowDesignId: 'flow-design-id'
99
- });
100
-
101
- // 查看流程
102
- V8.OpenFormWF(V8.Form, 'View', {
103
- WorkType: 'ViewWork',
104
- FlowDesignId: 'flow-design-id'
105
- });
106
- ```
107
-
108
- <!-- /microi-progressive:chunk -->
109
- <!-- microi-progressive:chunk id=v8-workflow-010 sha256=ea15dea212f044a16bdccbf75ebe3a28ce3eb3ff27c989e8c6b4ec567e170032 -->
110
- ## MCP 创建/检查/测试工作流
111
-
112
- 从自然语言需求创建审批流时,优先整理成完整 Manifest 的 `workflows` 配置,再走 MCP 干跑和验收流程。
113
-
114
- ```json
115
- {
116
- "workflows": [
117
- {
118
- "FlowDesign": { "FlowName": "请假审批", "table": "diy_leave", "IsEnable": 1 },
119
- "Nodes": [
120
- { "Id": "start", "NodeName": "发起人", "NodeType": "Start", "LineValueV8": "" },
121
- { "Id": "leader", "NodeName": "部门负责人审批", "NodeType": "Approve", "Roles": "dept-leader" },
122
- { "Id": "end", "NodeName": "结束", "NodeType": "End" }
123
- ],
124
- "Lines": [
125
- { "Id": "line_start_leader", "FromNodeId": "start", "ToNodeId": "leader", "LineName": "发起人 到 部门负责人审批", "LineValue": "" },
126
- { "Id": "line_leader_end", "FromNodeId": "leader", "ToNodeId": "end", "LineName": "部门负责人审批 到 结束", "LineValue": "" }
127
- ]
128
- }
129
- ]
130
- }
131
- ```
132
-
133
- MCP 操作顺序:
134
-
135
- 1. `microi_get_db_schema`:确认业务表、已有流程、角色、字段。
136
- 2. `microi_get_manifest_schema`:按 Manifest 协议生成 tables/modules/workflows。
137
- 3. `microi_plan_system`:本地干跑,必须修复 workflow 拓扑错误。
138
- 4. `microi_check_workflow_package`:单独检查某个 workflow package。
139
- 5. `microi_test_workflow_condition`:对图形条件生成的 `LineValueV8` 传入样例 `formData`,验证会选中哪条路线。
140
- 6. `microi_generate_system` 或 `microi_save_workflow_package`:用户明确确认后再写入。
141
-
142
- 工作流建模规则:
143
-
144
- - 必须有且仅有 1 个开始节点,至少 1 个结束节点。
145
- - 所有 `wf_line.FromNodeId/ToNodeId` 必须指向存在的节点。
146
- - 线路标题 `LineName` 默认使用 `{起点节点名称} 到 {终点节点名称}`,不要把业务条件名写成线路标题。
147
- - 条件名称只作为图形配置/注释标记里的业务说明;修改条件名称不应改变线路标题。
148
- - 多出线节点必须配置条件判断 V8,优先设置 `V8.NextNodeId`,只有兼容旧条件值时才设置 `V8.LineValue`。
149
- - 图形条件生成的 V8 会带 `MICROI_WF_LINE_CONDITION_JSON` 标记,MCP 测试工具只解析该标记,不执行任意手写 V8。
150
-
151
- <!-- /microi-progressive:chunk -->
152
- <!-- microi-progressive:chunk id=v8-workflow-011 sha256=ab8c37da582f7463663ab9a609cf31e95c94e38181bc37b7c880a27f19f01a0e -->
153
- ## 发起流程与表单保存
154
-
155
- 新建业务数据并发起流程时,应先保存表单,再启动流程,或使用平台的合并接口 `StartWorkWithForm` 在同一事务里完成。首次发起建议以 `Add` 模式打开流程表单;如果前端提前生成了 `Id` 但业务表还没有该行,后端会使用 `_NoLineForAdd` 兜底,避免 `UptFormData` 报“数据显示不存在”。
156
-
157
- <!-- /microi-progressive:chunk -->
158
- <!-- microi-progressive:chunk id=v8-workflow-012 sha256=39a371dc5106862955945741a65c2fd08423cfedbc028e6aba0ba6aadde9cc34 -->
159
- ## 流程相关表
160
-
161
- | 表 | 说明 |
162
- |---|---|
163
- | `WF_FlowDesign` | 流程图设计表 |
164
- | `WF_Node` | 流程节点属性表 |
165
- | `WF_Line` | 流程条件(线)属性表 |
166
- | `WF_Flow` | 流程实例表 |
167
- | `WF_Work` | 流程工作待办表 |
168
- | `WF_History` | 流程轨迹表 |
169
-
170
- <!-- /microi-progressive:chunk -->
171
- <!-- microi-progressive:chunk id=v8-workflow-013 sha256=1e0afbf91035c773357ab43dbc3658a62e368ce65ca329d1047d543558ea2e90 -->
172
- ## 注意事项
173
-
174
- - 条件判断 V8 事件可以设置 `V8.NextNodeId` 直接指定下一节点;未设置时才按 `V8.LineValue` 匹配条件线的**条件值**
175
- - 配置图形化条件时,节点/路线标识来自流程拓扑,条件名称只是规则名称,不要用条件名称覆盖 `wf_line.LineName`
176
- - 节点开始后端事件返回 `{ Code: 0, Msg: '...' }` 或 `V8.Result = { Code: 0 }` 可阻止流程提交
177
- - 流程事件在事务中执行,任何节点返回失败都会回滚
178
- - `V8.WF.ApprovalType === 'Auto'` 表示自动节点(发起、业务节点、自动结束),无需人工审批
179
- - `V8.WF.ForceSelectUsers` 仅在**前端节点开始事件**中有效
180
- <!-- /microi-progressive:chunk -->
1
+ # v8-workflow 详细参考 1
2
+
3
+ > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
+
5
+ <!-- microi-progressive:chunk id=v8-workflow-007 sha256=9c40c62b67065c7e9f6821ef748d75595f004f069909258d9867490b74e115b7 -->
6
+ ## 节点开始 V8 事件
7
+
8
+ ### 前端 — 指定审批人
9
+
10
+ ```javascript
11
+ // V8.EventName === 'WFNodeStart'
12
+ // 可以强制指定下一节点审批人
13
+ if (V8.Form.DeptId === 'special-dept') {
14
+ V8.WF.ForceSelectUsers = ['user-id-1', 'user-id-2'];
15
+ }
16
+ ```
17
+
18
+ ### 后端 — 阻止流程提交
19
+
20
+ ```javascript
21
+ // V8.EventName === 'WFNodeStart'
22
+ // 返回 Code: 0 可以阻止流程提交并回滚事务
23
+ if (!V8.Form.ApprovalFiles) {
24
+ V8.Result = { Code: 0, Msg: '请先上传审批附件' };
25
+ }
26
+ ```
27
+
28
+ <!-- /microi-progressive:chunk -->
29
+ <!-- microi-progressive:chunk id=v8-workflow-008 sha256=f023312e7d95c518428c2e6d1df99b43cc36d41659aa75768b13ff83cf52b3b0 -->
30
+ ## 节点结束 V8 事件
31
+
32
+ ### 后端 — 流程结束后业务处理
33
+
34
+ ```javascript
35
+ // V8.EventName === 'WFNodeEnd'
36
+ var approvalType = V8.WF.ApprovalType;
37
+
38
+ // 同意 — 更新业务状态
39
+ if (approvalType === 'Agree') {
40
+ // 判断是否到达最终节点
41
+ var nextNode = V8.WF.NextNode;
42
+ if (!nextNode || nextNode.NodeType === 'End') {
43
+ // 流程结束,更新业务状态
44
+ V8.FormEngine.UptFormData(V8.TableModel.Name, {
45
+ Id: V8.Form.Id,
46
+ ApprovalStatus: 'Approved',
47
+ ApprovalTime: DateNow('yyyy-MM-dd HH:mm:ss')
48
+ });
49
+ }
50
+ }
51
+
52
+ // 拒绝 — 回退状态
53
+ if (approvalType === 'Disagree') {
54
+ V8.FormEngine.UptFormData(V8.TableModel.Name, {
55
+ Id: V8.Form.Id,
56
+ ApprovalStatus: 'Rejected',
57
+ RejectReason: V8.WF.ApprovalIdea
58
+ });
59
+ }
60
+
61
+ // 撤回
62
+ if (approvalType === 'Recall') {
63
+ V8.FormEngine.UptFormData(V8.TableModel.Name, {
64
+ Id: V8.Form.Id,
65
+ ApprovalStatus: 'Draft'
66
+ });
67
+ }
68
+
69
+ // 通知下一审批人
70
+ if (V8.WF.NextTodoUsers && V8.WF.NextTodoUsers.length > 0) {
71
+ for (var i = 0; i < V8.WF.NextTodoUsers.length; i++) {
72
+ V8.ApiEngine.Run('send-notification', {
73
+ userId: V8.WF.NextTodoUsers[i].Id,
74
+ title: '您有新的审批任务',
75
+ content: V8.CurrentUser.Name + '提交了' + V8.TableModel.Name + '审批'
76
+ });
77
+ }
78
+ }
79
+ ```
80
+
81
+ ### 前端 — 流程提交后提示
82
+
83
+ ```javascript
84
+ // V8.EventName === 'WFNodeEnd'
85
+ if (V8.WF.WorkResult) {
86
+ V8.Tips('流程已提交', true);
87
+ }
88
+ ```
89
+
90
+ <!-- /microi-progressive:chunk -->
91
+ <!-- microi-progressive:chunk id=v8-workflow-009 sha256=a927ce0325e130608823800c83c85d9e83d54fea61dbcfed32208d49f4012118 -->
92
+ ## 前端打开流程表单
93
+
94
+ ```javascript
95
+ // 发起流程
96
+ V8.OpenFormWF(V8.Form, 'Add', {
97
+ WorkType: 'StartWork',
98
+ FlowDesignId: 'flow-design-id'
99
+ });
100
+
101
+ // 查看流程
102
+ V8.OpenFormWF(V8.Form, 'View', {
103
+ WorkType: 'ViewWork',
104
+ FlowDesignId: 'flow-design-id'
105
+ });
106
+ ```
107
+
108
+ <!-- /microi-progressive:chunk -->
109
+ <!-- microi-progressive:chunk id=v8-workflow-010 sha256=ea15dea212f044a16bdccbf75ebe3a28ce3eb3ff27c989e8c6b4ec567e170032 -->
110
+ ## MCP 创建/检查/测试工作流
111
+
112
+ 从自然语言需求创建审批流时,优先整理成完整 Manifest 的 `workflows` 配置,再走 MCP 干跑和验收流程。
113
+
114
+ ```json
115
+ {
116
+ "workflows": [
117
+ {
118
+ "FlowDesign": { "FlowName": "请假审批", "table": "diy_leave", "IsEnable": 1 },
119
+ "Nodes": [
120
+ { "Id": "start", "NodeName": "发起人", "NodeType": "Start", "LineValueV8": "" },
121
+ { "Id": "leader", "NodeName": "部门负责人审批", "NodeType": "Approve", "Roles": "dept-leader" },
122
+ { "Id": "end", "NodeName": "结束", "NodeType": "End" }
123
+ ],
124
+ "Lines": [
125
+ { "Id": "line_start_leader", "FromNodeId": "start", "ToNodeId": "leader", "LineName": "发起人 到 部门负责人审批", "LineValue": "" },
126
+ { "Id": "line_leader_end", "FromNodeId": "leader", "ToNodeId": "end", "LineName": "部门负责人审批 到 结束", "LineValue": "" }
127
+ ]
128
+ }
129
+ ]
130
+ }
131
+ ```
132
+
133
+ MCP 操作顺序:
134
+
135
+ 1. `microi_get_db_schema`:确认业务表、已有流程、角色、字段。
136
+ 2. `microi_get_manifest_schema`:按 Manifest 协议生成 tables/modules/workflows。
137
+ 3. `microi_plan_system`:本地干跑,必须修复 workflow 拓扑错误。
138
+ 4. `microi_check_workflow_package`:单独检查某个 workflow package。
139
+ 5. `microi_test_workflow_condition`:对图形条件生成的 `LineValueV8` 传入样例 `formData`,验证会选中哪条路线。
140
+ 6. `microi_generate_system` 或 `microi_save_workflow_package`:用户明确确认后再写入。
141
+
142
+ 工作流建模规则:
143
+
144
+ - 必须有且仅有 1 个开始节点,至少 1 个结束节点。
145
+ - 所有 `wf_line.FromNodeId/ToNodeId` 必须指向存在的节点。
146
+ - 线路标题 `LineName` 默认使用 `{起点节点名称} 到 {终点节点名称}`,不要把业务条件名写成线路标题。
147
+ - 条件名称只作为图形配置/注释标记里的业务说明;修改条件名称不应改变线路标题。
148
+ - 多出线节点必须配置条件判断 V8,优先设置 `V8.NextNodeId`,只有兼容旧条件值时才设置 `V8.LineValue`。
149
+ - 图形条件生成的 V8 会带 `MICROI_WF_LINE_CONDITION_JSON` 标记,MCP 测试工具只解析该标记,不执行任意手写 V8。
150
+
151
+ <!-- /microi-progressive:chunk -->
152
+ <!-- microi-progressive:chunk id=v8-workflow-011 sha256=ab8c37da582f7463663ab9a609cf31e95c94e38181bc37b7c880a27f19f01a0e -->
153
+ ## 发起流程与表单保存
154
+
155
+ 新建业务数据并发起流程时,应先保存表单,再启动流程,或使用平台的合并接口 `StartWorkWithForm` 在同一事务里完成。首次发起建议以 `Add` 模式打开流程表单;如果前端提前生成了 `Id` 但业务表还没有该行,后端会使用 `_NoLineForAdd` 兜底,避免 `UptFormData` 报“数据显示不存在”。
156
+
157
+ <!-- /microi-progressive:chunk -->
158
+ <!-- microi-progressive:chunk id=v8-workflow-012 sha256=39a371dc5106862955945741a65c2fd08423cfedbc028e6aba0ba6aadde9cc34 -->
159
+ ## 流程相关表
160
+
161
+ | 表 | 说明 |
162
+ |---|---|
163
+ | `WF_FlowDesign` | 流程图设计表 |
164
+ | `WF_Node` | 流程节点属性表 |
165
+ | `WF_Line` | 流程条件(线)属性表 |
166
+ | `WF_Flow` | 流程实例表 |
167
+ | `WF_Work` | 流程工作待办表 |
168
+ | `WF_History` | 流程轨迹表 |
169
+
170
+ <!-- /microi-progressive:chunk -->
171
+ <!-- microi-progressive:chunk id=v8-workflow-013 sha256=1e0afbf91035c773357ab43dbc3658a62e368ce65ca329d1047d543558ea2e90 -->
172
+ ## 注意事项
173
+
174
+ - 条件判断 V8 事件可以设置 `V8.NextNodeId` 直接指定下一节点;未设置时才按 `V8.LineValue` 匹配条件线的**条件值**
175
+ - 配置图形化条件时,节点/路线标识来自流程拓扑,条件名称只是规则名称,不要用条件名称覆盖 `wf_line.LineName`
176
+ - 节点开始后端事件返回 `{ Code: 0, Msg: '...' }` 或 `V8.Result = { Code: 0 }` 可阻止流程提交
177
+ - 流程事件在事务中执行,任何节点返回失败都会回滚
178
+ - `V8.WF.ApprovalType === 'Auto'` 表示自动节点(发起、业务节点、自动结束),无需人工审批
179
+ - `V8.WF.ForceSelectUsers` 仅在**前端节点开始事件**中有效
180
+ <!-- /microi-progressive:chunk -->