@lovrabet/rabetbase-cli 2.5.3 → 2.5.4-beta.2

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 (389) hide show
  1. package/README.md +11 -0
  2. package/lib/api/api-doc.js +1 -1
  3. package/lib/api/api-group.js +1 -1
  4. package/lib/api/fetch-model-list.js +1 -1
  5. package/lib/api/generate-api-file.js +1 -1
  6. package/lib/api/generate-sdk-config-file.js +1 -1
  7. package/lib/api/legacy-api-file.js +1 -1
  8. package/lib/api/model-registry-file.js +1 -1
  9. package/lib/api/model-registry-scaffold.js +1 -1
  10. package/lib/api/model-source.js +1 -1
  11. package/lib/auth/auth-server-ui.js +1 -1
  12. package/lib/auth/auth-server.js +1 -1
  13. package/lib/auth/constant.js +1 -1
  14. package/lib/auth/get-cookie.js +1 -1
  15. package/lib/auth/get-session-user.js +1 -1
  16. package/lib/auth/is-session-valid.js +1 -1
  17. package/lib/auth/login-success-html.js +1 -1
  18. package/lib/auth/logout.js +1 -1
  19. package/lib/cli-flags.js +1 -1
  20. package/lib/cli.js +1 -1
  21. package/lib/commands/api/generate.js +1 -1
  22. package/lib/commands/api/index.js +1 -1
  23. package/lib/commands/api/list.js +1 -1
  24. package/lib/commands/api/pull.js +1 -1
  25. package/lib/commands/api/shared.js +1 -1
  26. package/lib/commands/app/index.js +1 -1
  27. package/lib/commands/app/list.js +1 -1
  28. package/lib/commands/app/members-list.js +1 -1
  29. package/lib/commands/app/remote-directory.js +1 -1
  30. package/lib/commands/app/shared.js +1 -1
  31. package/lib/commands/app-config/delete.js +1 -1
  32. package/lib/commands/app-config/get.js +1 -1
  33. package/lib/commands/app-config/index.js +1 -1
  34. package/lib/commands/app-config/list.js +1 -1
  35. package/lib/commands/app-config/set.js +1 -1
  36. package/lib/commands/app-config/shared.js +1 -1
  37. package/lib/commands/auth/index.js +1 -1
  38. package/lib/commands/bff/create.js +1 -1
  39. package/lib/commands/bff/delete.js +1 -1
  40. package/lib/commands/bff/detail.js +1 -1
  41. package/lib/commands/bff/index.js +1 -1
  42. package/lib/commands/bff/list.js +1 -1
  43. package/lib/commands/bff/logs.js +1 -1
  44. package/lib/commands/bff/pull.js +1 -1
  45. package/lib/commands/bff/push.js +1 -1
  46. package/lib/commands/bff/status.js +1 -1
  47. package/lib/commands/cli-skill/index.js +1 -1
  48. package/lib/commands/cli-update.js +1 -1
  49. package/lib/commands/codegen/index.js +1 -1
  50. package/lib/commands/codegen/sdk.js +1 -1
  51. package/lib/commands/codegen/sql.js +1 -1
  52. package/lib/commands/common/app-registry.js +1 -1
  53. package/lib/commands/common/app-selector.js +1 -1
  54. package/lib/commands/common/async-task.js +1 -1
  55. package/lib/commands/common/dry-run.js +1 -1
  56. package/lib/commands/common/flags.js +1 -1
  57. package/lib/commands/common/local-file.js +1 -1
  58. package/lib/commands/common/validate.js +1 -1
  59. package/lib/commands/config/delete.js +1 -1
  60. package/lib/commands/config/get.js +1 -1
  61. package/lib/commands/config/index.js +1 -1
  62. package/lib/commands/config/init.d.ts +1 -1
  63. package/lib/commands/config/init.js +1 -1
  64. package/lib/commands/config/list.js +1 -1
  65. package/lib/commands/config/set.js +1 -1
  66. package/lib/commands/config/shared.js +1 -1
  67. package/lib/commands/dataset/batch-design.js +1 -1
  68. package/lib/commands/dataset/business-group-update.js +1 -1
  69. package/lib/commands/dataset/business-groups.js +1 -1
  70. package/lib/commands/dataset/capability.js +1 -1
  71. package/lib/commands/dataset/cross-relation-create.js +1 -1
  72. package/lib/commands/dataset/cross-relation-delete.js +1 -1
  73. package/lib/commands/dataset/cross-relation-list.js +1 -1
  74. package/lib/commands/dataset/cross-relation-shared.js +1 -1
  75. package/lib/commands/dataset/cross-relation-update.js +1 -1
  76. package/lib/commands/dataset/delete.js +1 -1
  77. package/lib/commands/dataset/detail.js +1 -1
  78. package/lib/commands/dataset/extend-update.js +1 -1
  79. package/lib/commands/dataset/field-restore.js +1 -1
  80. package/lib/commands/dataset/field-update.js +1 -1
  81. package/lib/commands/dataset/generate.js +1 -1
  82. package/lib/commands/dataset/index.js +1 -1
  83. package/lib/commands/dataset/list.js +1 -1
  84. package/lib/commands/dataset/operations.js +1 -1
  85. package/lib/commands/dataset/relation-audit.js +1 -1
  86. package/lib/commands/dataset/relation-create.js +1 -1
  87. package/lib/commands/dataset/relation-delete.js +1 -1
  88. package/lib/commands/dataset/relation-shared.js +1 -1
  89. package/lib/commands/dataset/relation-update.js +1 -1
  90. package/lib/commands/dataset/relations.js +1 -1
  91. package/lib/commands/dataset/rename.js +1 -1
  92. package/lib/commands/dataset/restore.js +1 -1
  93. package/lib/commands/dataset/user-deleted-field-list.js +1 -1
  94. package/lib/commands/db/analysis-batching.js +1 -1
  95. package/lib/commands/db/analyze-batch-plan.js +1 -1
  96. package/lib/commands/db/analyze-cancel.js +1 -1
  97. package/lib/commands/db/analyze-start.js +1 -1
  98. package/lib/commands/db/analyze-status.js +1 -1
  99. package/lib/commands/db/create.js +1 -1
  100. package/lib/commands/db/delete.js +1 -1
  101. package/lib/commands/db/detail.js +1 -1
  102. package/lib/commands/db/diff-refresh-start.js +1 -1
  103. package/lib/commands/db/diff-refresh-status.js +1 -1
  104. package/lib/commands/db/diff.js +1 -1
  105. package/lib/commands/db/index.js +1 -1
  106. package/lib/commands/db/list.js +1 -1
  107. package/lib/commands/db/shared.js +1 -1
  108. package/lib/commands/db/table-diff-shared.js +1 -1
  109. package/lib/commands/db/tables.js +1 -1
  110. package/lib/commands/db/test.js +1 -1
  111. package/lib/commands/db/update.js +1 -1
  112. package/lib/commands/deployment/index.js +1 -1
  113. package/lib/commands/deployment/sync-all.js +1 -1
  114. package/lib/commands/deployment/sync-jobs.js +1 -1
  115. package/lib/commands/deployment/sync-status.js +1 -1
  116. package/lib/commands/doctor.js +1 -1
  117. package/lib/commands/file/index.js +1 -1
  118. package/lib/commands/flow/create.js +1 -1
  119. package/lib/commands/flow/detail.js +1 -1
  120. package/lib/commands/flow/index.js +1 -1
  121. package/lib/commands/flow/list.js +1 -1
  122. package/lib/commands/flow/publish.js +1 -1
  123. package/lib/commands/flow/runtime-resources-shared.js +1 -1
  124. package/lib/commands/flow/runtime-role-list.js +1 -1
  125. package/lib/commands/flow/runtime-role-user-list.js +1 -1
  126. package/lib/commands/flow/runtime-user-search.js +1 -1
  127. package/lib/commands/flow/shared.d.ts +2 -0
  128. package/lib/commands/flow/shared.js +1 -1
  129. package/lib/commands/flow/update.js +1 -1
  130. package/lib/commands/flow/validate.js +1 -1
  131. package/lib/commands/instant-api-policy/current.js +1 -1
  132. package/lib/commands/instant-api-policy/index.js +1 -1
  133. package/lib/commands/instant-api-policy/init.js +1 -1
  134. package/lib/commands/instant-api-policy/publish.js +1 -1
  135. package/lib/commands/instant-api-policy/pull.js +1 -1
  136. package/lib/commands/instant-api-policy/revision.js +1 -1
  137. package/lib/commands/instant-api-policy/revisions.js +1 -1
  138. package/lib/commands/instant-api-policy/rollback.js +1 -1
  139. package/lib/commands/instant-api-policy/shared.js +1 -1
  140. package/lib/commands/instant-api-policy/validate.js +1 -1
  141. package/lib/commands/issue/index.js +1 -1
  142. package/lib/commands/issue/nudge.js +1 -1
  143. package/lib/commands/issue/report.js +1 -1
  144. package/lib/commands/issue/shared.js +1 -1
  145. package/lib/commands/kb/create.js +1 -1
  146. package/lib/commands/kb/delete.js +1 -1
  147. package/lib/commands/kb/detail.js +1 -1
  148. package/lib/commands/kb/index.js +1 -1
  149. package/lib/commands/kb/list.js +1 -1
  150. package/lib/commands/kb/search.js +1 -1
  151. package/lib/commands/kb/shared.js +1 -1
  152. package/lib/commands/kb/update.js +1 -1
  153. package/lib/commands/logs/index.js +1 -1
  154. package/lib/commands/menu/asset-update.js +1 -1
  155. package/lib/commands/menu/delete.js +1 -1
  156. package/lib/commands/menu/external-link-create.js +1 -1
  157. package/lib/commands/menu/external-link-update.js +1 -1
  158. package/lib/commands/menu/group-create.js +1 -1
  159. package/lib/commands/menu/group-update.js +1 -1
  160. package/lib/commands/menu/index.js +1 -1
  161. package/lib/commands/menu/list.js +1 -1
  162. package/lib/commands/menu/move.js +1 -1
  163. package/lib/commands/menu/regroup-start.js +1 -1
  164. package/lib/commands/menu/rename.js +1 -1
  165. package/lib/commands/menu/shared/compare-table.js +1 -1
  166. package/lib/commands/menu/shared/delete-plan.js +1 -1
  167. package/lib/commands/menu/shared/facts.js +1 -1
  168. package/lib/commands/menu/shared/index.js +1 -1
  169. package/lib/commands/menu/shared/inquirer.js +1 -1
  170. package/lib/commands/menu/shared/local-pages.js +1 -1
  171. package/lib/commands/menu/shared/logic.js +1 -1
  172. package/lib/commands/menu/shared/mutations.js +1 -1
  173. package/lib/commands/menu/shared/service.js +1 -1
  174. package/lib/commands/menu/shared/sync-core.js +1 -1
  175. package/lib/commands/menu/shared/update-core.js +1 -1
  176. package/lib/commands/menu/shared/valid-url.js +1 -1
  177. package/lib/commands/menu/sync.js +1 -1
  178. package/lib/commands/menu/visibility-update.js +1 -1
  179. package/lib/commands/notification/config-create.js +1 -1
  180. package/lib/commands/notification/config-delete.js +1 -1
  181. package/lib/commands/notification/config-list.js +1 -1
  182. package/lib/commands/notification/config-update.js +1 -1
  183. package/lib/commands/notification/index.js +1 -1
  184. package/lib/commands/notification/shared.js +1 -1
  185. package/lib/commands/ocr/index.js +1 -1
  186. package/lib/commands/page/create.js +1 -1
  187. package/lib/commands/page/custom/detail.js +1 -1
  188. package/lib/commands/page/custom/list.js +1 -1
  189. package/lib/commands/page/custom/publish.js +1 -1
  190. package/lib/commands/page/custom/shared.js +1 -1
  191. package/lib/commands/page/custom/syntax.js +1 -1
  192. package/lib/commands/page/custom/update.js +1 -1
  193. package/lib/commands/page/data-list-status.js +1 -1
  194. package/lib/commands/page/generate-start.js +1 -1
  195. package/lib/commands/page/generate-status.js +1 -1
  196. package/lib/commands/page/index.js +1 -1
  197. package/lib/commands/page/pull.js +1 -1
  198. package/lib/commands/page/push.js +1 -1
  199. package/lib/commands/page/relation-audit.js +1 -1
  200. package/lib/commands/page/restore.js +1 -1
  201. package/lib/commands/page/shared.js +1 -1
  202. package/lib/commands/page/sync.js +1 -1
  203. package/lib/commands/project/api-architecture-upgrade.js +1 -1
  204. package/lib/commands/project/create/enhanced-guided-create.js +1 -1
  205. package/lib/commands/project/create/format-elapsed.js +1 -1
  206. package/lib/commands/project/create/main.js +1 -1
  207. package/lib/commands/project/create/materialize-project-template.js +1 -1
  208. package/lib/commands/project/create/project-name.js +1 -1
  209. package/lib/commands/project/create/project-template-archive.js +1 -1
  210. package/lib/commands/project/create/project-template-path.js +1 -1
  211. package/lib/commands/project/create/use-copy-project-template.js +1 -1
  212. package/lib/commands/project/create/use-format-code.js +1 -1
  213. package/lib/commands/project/create/use-install-dependencies.js +1 -1
  214. package/lib/commands/project/domain-routing-sync.js +1 -1
  215. package/lib/commands/project/index.js +1 -1
  216. package/lib/commands/project/upgrade.js +1 -1
  217. package/lib/commands/registry.js +1 -1
  218. package/lib/commands/role/delete.js +1 -1
  219. package/lib/commands/role/detail.js +1 -1
  220. package/lib/commands/role/index.js +1 -1
  221. package/lib/commands/role/list.js +1 -1
  222. package/lib/commands/role/shared.js +1 -1
  223. package/lib/commands/role/update.js +1 -1
  224. package/lib/commands/role/user-add.js +1 -1
  225. package/lib/commands/role/user-remove.js +1 -1
  226. package/lib/commands/role/user-resolve.js +1 -1
  227. package/lib/commands/rule/get.js +1 -1
  228. package/lib/commands/rule/index.js +1 -1
  229. package/lib/commands/rule/list.js +1 -1
  230. package/lib/commands/rule/set.js +1 -1
  231. package/lib/commands/rule/shared.js +1 -1
  232. package/lib/commands/run/index.js +1 -1
  233. package/lib/commands/schema.js +1 -1
  234. package/lib/commands/sql/create.js +1 -1
  235. package/lib/commands/sql/delete.js +1 -1
  236. package/lib/commands/sql/detail.js +1 -1
  237. package/lib/commands/sql/exec.js +1 -1
  238. package/lib/commands/sql/index.js +1 -1
  239. package/lib/commands/sql/list.js +1 -1
  240. package/lib/commands/sql/pull.js +1 -1
  241. package/lib/commands/sql/push.js +1 -1
  242. package/lib/commands/sql/shared.js +1 -1
  243. package/lib/commands/sql/status.js +1 -1
  244. package/lib/commands/sql/validate.js +1 -1
  245. package/lib/commands/task/index.js +1 -1
  246. package/lib/commands/task/status.js +1 -1
  247. package/lib/commands/tenant/index.js +1 -1
  248. package/lib/commands/tenant/members-list.js +1 -1
  249. package/lib/commands/tenant/shared.js +1 -1
  250. package/lib/commands/user-account/dingding-sandbox-bind.js +1 -1
  251. package/lib/commands/user-account/index.js +1 -1
  252. package/lib/commands/workspace/add.js +1 -1
  253. package/lib/commands/workspace/index.js +1 -1
  254. package/lib/commands/workspace/remove.js +1 -1
  255. package/lib/config/domain-config.d.ts +1 -1
  256. package/lib/config/domain-config.js +1 -1
  257. package/lib/config/project-domain-routing.js +1 -1
  258. package/lib/config/region-config.js +1 -1
  259. package/lib/config/schema.d.ts +1 -1
  260. package/lib/config/schema.js +1 -1
  261. package/lib/constant/cdn.js +1 -1
  262. package/lib/constant/cli.js +1 -1
  263. package/lib/constant/defaults.js +1 -1
  264. package/lib/constant/domain.d.ts +4 -0
  265. package/lib/constant/domain.js +1 -1
  266. package/lib/constant/env.js +1 -1
  267. package/lib/constant/output.js +1 -1
  268. package/lib/constant/paths.js +1 -1
  269. package/lib/constant/region.d.ts +1 -1
  270. package/lib/constant/region.js +1 -1
  271. package/lib/constant/risk.js +1 -1
  272. package/lib/constant/routing-profile.d.ts +14 -1
  273. package/lib/constant/routing-profile.js +1 -1
  274. package/lib/context/app-resolver.d.ts +1 -0
  275. package/lib/context/app-resolver.js +1 -1
  276. package/lib/context/auth-resolver.js +1 -1
  277. package/lib/context/config-loader.js +1 -1
  278. package/lib/context.js +1 -1
  279. package/lib/core/alias-resolver.js +1 -1
  280. package/lib/core/api-client.js +1 -1
  281. package/lib/core/bff/config.js +1 -1
  282. package/lib/core/bff/file-system.js +1 -1
  283. package/lib/core/bff/hash.js +1 -1
  284. package/lib/core/bff/hook-directory.js +1 -1
  285. package/lib/core/bff/lock.js +1 -1
  286. package/lib/core/bff/utils.js +1 -1
  287. package/lib/core/cross-db-relation.js +1 -1
  288. package/lib/core/db-resolver.js +1 -1
  289. package/lib/core/flow-config.d.ts +11 -10
  290. package/lib/core/flow-config.js +1 -1
  291. package/lib/core/instant-api-policy/config.js +1 -1
  292. package/lib/core/kb-search-client.d.ts +7 -1
  293. package/lib/core/kb-search-client.js +1 -1
  294. package/lib/core/page/file-system.js +1 -1
  295. package/lib/core/page/hash.js +1 -1
  296. package/lib/core/page/lock.js +1 -1
  297. package/lib/core/page/lr-smart-jsx.js +1 -1
  298. package/lib/core/sql-index-auditor.js +1 -1
  299. package/lib/core/sql-sync/config.js +1 -1
  300. package/lib/core/sql-sync/file-system.js +1 -1
  301. package/lib/core/sql-sync/hash.js +1 -1
  302. package/lib/core/sql-sync/lock.js +1 -1
  303. package/lib/core/sql-sync/utils.js +1 -1
  304. package/lib/core/sql-validator.d.ts +5 -2
  305. package/lib/core/sql-validator.js +1 -1
  306. package/lib/errors.js +1 -1
  307. package/lib/framework/build-all-flags.js +1 -1
  308. package/lib/framework/error-output.js +1 -1
  309. package/lib/framework/explicit-yes.js +1 -1
  310. package/lib/framework/flags.js +1 -1
  311. package/lib/framework/help.js +1 -1
  312. package/lib/framework/index.js +1 -1
  313. package/lib/framework/output.js +1 -1
  314. package/lib/framework/response.js +1 -1
  315. package/lib/framework/runner-alias.js +1 -1
  316. package/lib/framework/runner.js +1 -1
  317. package/lib/framework/schema-export.js +1 -1
  318. package/lib/framework/supported-flags.js +1 -1
  319. package/lib/framework/types.js +1 -1
  320. package/lib/generated/build-info.d.ts +4 -4
  321. package/lib/generated/build-info.js +1 -1
  322. package/lib/generated/official-routing.d.ts +15 -3
  323. package/lib/generated/official-routing.js +1 -1
  324. package/lib/generated/routing-contract.d.ts +2 -2
  325. package/lib/generated/routing-contract.js +1 -1
  326. package/lib/help.js +1 -1
  327. package/lib/postinstall.js +1 -1
  328. package/lib/runtime/confirmation.js +1 -1
  329. package/lib/runtime/event.js +1 -1
  330. package/lib/runtime/index.js +1 -1
  331. package/lib/runtime/queue.js +1 -1
  332. package/lib/runtime/resolve.js +1 -1
  333. package/lib/skills/builtin-skill.js +1 -1
  334. package/lib/skills/main.js +1 -1
  335. package/lib/skills/npx-skills-add.d.ts +5 -0
  336. package/lib/skills/npx-skills-add.js +1 -1
  337. package/lib/skills/skill-presence.js +1 -1
  338. package/lib/telemetry/cli-command-trace.js +1 -1
  339. package/lib/telemetry/cli-help-trace.js +1 -1
  340. package/lib/telemetry/ensure-cli-otel-config.js +1 -1
  341. package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
  342. package/lib/telemetry/send-cli-trace-log.js +1 -1
  343. package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
  344. package/lib/utils/ai_config.js +1 -1
  345. package/lib/utils/apply-jq-filter.js +1 -1
  346. package/lib/utils/cdn-config.js +1 -1
  347. package/lib/utils/check-sdk-version.js +1 -1
  348. package/lib/utils/cli-version-check.js +1 -1
  349. package/lib/utils/cli-version-policy.js +1 -1
  350. package/lib/utils/config.js +1 -1
  351. package/lib/utils/entity-with-id.js +1 -1
  352. package/lib/utils/file-utils.js +1 -1
  353. package/lib/utils/guides-cdn.js +1 -1
  354. package/lib/utils/http-client.js +1 -1
  355. package/lib/utils/is-non-interactive.js +1 -1
  356. package/lib/utils/logger.js +1 -1
  357. package/lib/utils/params.js +1 -1
  358. package/lib/utils/platform.js +1 -1
  359. package/lib/utils/sleep.js +1 -1
  360. package/lib/utils/template-replacer.js +1 -1
  361. package/lib/utils/update-notice.js +1 -1
  362. package/lib/utils/version.js +1 -1
  363. package/lib/utils/with-active-cookie.js +1 -1
  364. package/lib/utils/write-cli-side-channel.js +1 -1
  365. package/package.json +1 -1
  366. package/skills/rabetbase/SKILL.md +31 -17
  367. package/skills/rabetbase/guides/approval-flow-development-workflow.md +33 -11
  368. package/skills/rabetbase/guides/best-practices.md +1 -1
  369. package/skills/rabetbase/guides/conflict-detection.md +44 -92
  370. package/skills/rabetbase/guides/custom-page-flow-sdk.md +642 -0
  371. package/skills/rabetbase/guides/custom-page-flow-timeline-display.md +289 -0
  372. package/skills/rabetbase/guides/custom-page-workflow.md +12 -3
  373. package/skills/rabetbase/guides/sql-creation-workflow.md +44 -26
  374. package/skills/rabetbase/guides/sql-mybatis.md +18 -49
  375. package/skills/rabetbase/guides/typescript-sdk.md +18 -0
  376. package/skills/rabetbase/knowledge/approval-flow/config-json-schema.md +22 -6
  377. package/skills/rabetbase/knowledge/components.md +34 -28
  378. package/skills/rabetbase/knowledge/custom-page/generation-standards.md +2 -0
  379. package/skills/rabetbase/references/rabetbase-config.md +6 -4
  380. package/skills/rabetbase/references/rabetbase-flow-commands.md +8 -4
  381. package/skills/rabetbase/references/rabetbase-flow-resources.md +3 -3
  382. package/skills/rabetbase/references/rabetbase-flow-runtime-boundary.md +2 -0
  383. package/skills/rabetbase/references/rabetbase-init.md +7 -5
  384. package/skills/rabetbase/references/rabetbase-kb.md +14 -4
  385. package/skills/rabetbase/references/rabetbase-page-custom-detail.md +3 -1
  386. package/skills/rabetbase/references/rabetbase-page-custom-list.md +3 -0
  387. package/skills/rabetbase/references/rabetbase-sql-push.md +5 -0
  388. package/skills/rabetbase/references/rabetbase-sql-validate.md +12 -6
  389. package/skills/rabetbase.manifest.json +5 -3
@@ -13,6 +13,13 @@
13
13
 
14
14
  先确定外层 `flowType`,再设计节点;不要根据是否出现审批节点反推流程类型。
15
15
 
16
+ 面向用户时按下列默认策略判定,不要先要求用户理解或选择 `flowType`:
17
+
18
+ - 用户只说“创建审批流”“创建工作流”“设计业务流程”或“配置多级审批”时,默认推荐 `INDEPENDENT_FLOW`,并用“独立工作流”与用户沟通。
19
+ - 需求包含填写、补充材料、执行业务、确认收货或其他人工办理步骤时,必须使用 `INDEPENDENT_FLOW`。
20
+ - 只有用户明确说明是“已有数据集表单提交后的纯审批”,且没有上述办理步骤时,才选择 `FORM_FLOW`。
21
+ - 业务信息不足时,可先说明推荐独立工作流及原因,再询问影响拓扑、办理人或数据绑定的必要业务信息。
22
+
16
23
  | `flowType` | 产品语义 | 人工节点 | 页面与数据边界 |
17
24
  |---|---|---|---|
18
25
  | `FORM_FLOW` | 表单审批流 | 只允许 `taskMode: APPROVAL`,禁止 `HANDLE` | 绑定 `datasetCode/pageId`;表单填写发生在发起前,驳回修改走重新提交 |
@@ -27,23 +34,36 @@
27
34
 
28
35
  用户要求 `PLATFORM_FORM` 时,直接返回 `NEEDS_DSL_EXTENSION`,说明当前版本只支持业务自定义页面;不要继续生成 FlowConfig,也不要执行 create/update。
29
36
 
30
- `pageMode` 不适用于 `FORM_FLOW`。自定义页面 SDK/OpenAPI 只查询和操作 `INDEPENDENT_FLOW + CUSTOM_PAGE`。
37
+ `pageMode` 不适用于 `FORM_FLOW`。自定义页面 Flow SDK 只查询和操作 `INDEPENDENT_FLOW + CUSTOM_PAGE`;页面运行态调用遵循 [`custom-page-flow-sdk.md`](custom-page-flow-sdk.md)。
31
38
 
32
39
  `INDEPENDENT_FLOW + CUSTOM_PAGE` 可以选择性配置:
33
40
 
34
- - `flowJson.startPageId`:进入发起页面时使用。
35
- - 人工节点 `pageId`:待办、已办或任务详情进入当前节点页面时使用。
41
+ - `flowJson.startPath`:进入发起页面时使用。
42
+ - `APPROVAL.path`:待办、已办或任务详情进入当前节点页面时使用。
43
+ - `END.path`:流程到达该结果节点后进入对应终态页面时使用。
44
+
45
+ 这些字段只是导航元数据,不是业务字段,不参与分支、权限、办理人或流程状态计算;不配置时由业务应用自行选择页面。
46
+
47
+ ### 页面导航绑定门禁
36
48
 
37
- 这两个字段只是导航元数据,不是业务字段,不参与分支、权限、办理人或流程状态计算;不配置时由业务应用自行选择页面。
49
+ 导航字段的值必须是目标自定义页面的完整运行态地址 `runtimePageUrl`,例如 `https://app-demo.app.lovrabet.com/purchase/approve`;不得填写 `data.pages[].path`、`pageUrl`、`editPageUrl`,也不得根据 appCode、Domain 或菜单路径手工拼接。
50
+
51
+ 1. 先执行 `rabetbase page custom-list --format compress`,根据 `pageId`、`label` 和 `runtimePageUrl` 选择目标页面。列表中的 `runtimePageUrl` 只是候选运行态地址,不证明页面已经发布。
52
+ 2. 对每个准备绑定的页面执行 `rabetbase page custom-detail --id <pageId> --format compress`,以 `data.status` 判断当前保存内容是否已经发布。
53
+ 3. 只有 `data.status === "FORMAL"` 时,才允许把该页面返回的完整 `runtimePageUrl` 填入 `flowJson.startPath`、`APPROVAL.path` 或 `END.path`。
54
+ 4. `data.status` 不是 `FORMAL` 时,不得先填写候选 URL,也不得继续创建或更新包含该导航字段的 FlowConfig;返回 `NEEDS_USER_CONFIRMATION`,向用户说明页面尚未发布并询问是否先发布。
55
+ 5. 用户同意发布后,先执行 `page custom-publish --id <pageId> --dry-run` 并展示预览,取得明确确认后正式发布;只有回读 `data.after.status === "FORMAL"` 后,才使用发布响应中的 `runtimePageUrl` 填写导航字段。用户不同意发布时保持对应字段缺失。
56
+
57
+ 以上是 Skill 的远端事实门禁;本地 `flow validate` 只校验导航字段是否为非空字符串,不能替代页面发布状态检查。
38
58
 
39
59
  ## 标准流程
40
60
 
41
61
  1. 明确 `flowName`、业务描述、业务状态、办理步骤和通过/拒绝路径,并按上表显式选择 `flowType`。
42
- 2. `FORM_FLOW` 配置外层 `datasetCode/pageId`;`INDEPENDENT_FLOW` 不配置这两个表单绑定字段,并使用显式或默认的 `pageMode: "CUSTOM_PAGE"`。用户要求 `PLATFORM_FORM` 时返回 `NEEDS_DSL_EXTENSION`。自定义页面可按需配置 `flowJson.startPageId` 和人工节点 `pageId`,自行查询和修改业务数据集,并按业务状态决定展示内容。
62
+ 2. `FORM_FLOW` 配置外层 `datasetCode/pageId`;`INDEPENDENT_FLOW` 不配置这两个表单绑定字段,并使用显式或默认的 `pageMode: "CUSTOM_PAGE"`。用户要求 `PLATFORM_FORM` 时返回 `NEEDS_DSL_EXTENSION`。自定义页面可按需配置 `flowJson.startPath` 以及 `APPROVAL` / `END` 节点 `path`;配置前必须完成上方页面导航绑定门禁,并使用已发布页面返回的完整 `runtimePageUrl`。页面自行查询和修改业务数据集,并按业务状态决定展示内容。
43
63
  3. 建立业务变量契约:逐项确认变量名、类型、初始来源、更新节点、消费节点以及是否用于待办/已办查询;区分顶层 `variables` 与 `formData`,禁止把 `approval_sys_*`、`approved` 当作业务变量。
44
64
  4. 根据业务逻辑直接生成完整的 `nodes + edges` 拓扑,不使用 `templateName` 或 SmartCode 模板表。
45
65
  5. 为每个人工节点确认 `taskMode`、`approvalMode`、`assignee.strategy` 和是否 `sequential`。决策用 `APPROVAL`;仅 `INDEPENDENT_FLOW` 可用 `HANDLE` 表达填写或确认数据后继续。办理完成后需要按业务变量分支时,按下方“HANDLE 后续路由”组合节点。
46
- 6. 逐个人工节点确认可选配置:自定义页面 `pageId`、转交候选人 `transferCandidates`、超时动作 `timeout`、节点完成后默认抄送 `cc`;用户未提出时保持不配置,不自行推断人员、页面或超时时长。
66
+ 6. 逐个 `APPROVAL` 节点确认自定义页面 `path`、转交候选人 `transferCandidates`、超时动作 `timeout`、节点完成后默认抄送 `cc`;逐个 `END` 节点确认终态页面 `path` 和默认抄送 `cc`。页面导航只能取已发布页面的完整 `runtimePageUrl`;页面未发布时停止填写并询问是否先发布。用户未提出时保持不配置,不自行推断人员、页面或超时时长。
47
67
  7. 固定办理人、转交候选人和默认抄送人使用 `flow runtime-user-search` 查询运行态 `userId`;角色审批使用 `flow runtime-role-list` 查询运行态 `roleId`,必要时用 `flow runtime-role-user-list` 核对成员。不要把 `role *` 查询出的配置端人员/角色写入 FlowConfig。
48
68
  8. `SCRIPT` 节点和 `timeout.action: "EXECUTE_BFF"` 使用 `bff list --type ENDPOINT` 选择真实 `functionName`;同时确认同步/异步方式、重试配置和独立的 `resultVariable`。不要让多个脚本依赖默认的 `scriptResult`。
49
69
  9. `NOTIFICATION` 节点使用 `notification config-list --all` 选择真实 `configCode`,并确认 `failurePolicy`、模板内容、变量占位符和收件人来源。
@@ -51,7 +71,7 @@
51
71
  11. 执行 `rabetbase flow validate --file <path> --format compress`。
52
72
  12. 展示变量契约、拓扑、资源绑定、节点可选配置、warnings 和校验结果。只有 `valid=true` 才能进入远程写入。
53
73
  13. 用户确认后先执行 create/update 的 `--dry-run`,再正式提交。
54
- 14. publish 属于 `high-risk-write`,先 `--dry-run`,正式执行必须显式 `--yes`。
74
+ 14. publish 属于普通 `write`,建议先 `--dry-run`审阅目标,再正式执行。
55
75
 
56
76
  ## 业务变量契约
57
77
 
@@ -72,21 +92,21 @@
72
92
  | 顶层 `variables.amount` | `${amount > 10000}` | `params.amount` | `${variables.amount}` |
73
93
  | `formData.amount` | `${formData.amount > 10000}` | `params.formData.amount` | `${variables.formData.amount}` |
74
94
 
75
- - `variables` 办理参数更新顶层流程变量;`formPatch` 增量增加、修改或删除 `formData` 字段。
95
+ - `variables` 办理参数更新顶层流程变量;`formPatch` 按根级字段合并 `formData`,未传字段保留,传入字段替换,`null` 设为空值,嵌套对象和数组整字段替换。
76
96
  - 对象和数组可以作为流程变量供页面、脚本或通知读取,但当前待办/已办变量查询只支持字符串、数字和布尔值等值条件;需要查询的业务状态应单独保存为顶层标量变量。
77
97
  - `approval_sys_*`、`approved` 和平台维护的 `formData` 容器名属于保留范围,不作为业务变量名或 SCRIPT `resultVariable`。
78
98
 
79
99
  ## HANDLE 后续路由
80
100
 
81
101
  - `HANDLE` 只表示“填写或确认数据后继续”,自身必须且只能保留一条 `ALWAYS` 出边,不承担业务分支选择。
82
- - 自定义页面办理任务时,可以在办理请求中的 `variables` 更新业务变量,也可以用 `formPatch` 增量更新 `formData`;任务完成后,下游节点读取更新后的值。
102
+ - 自定义页面办理任务时,可以在办理请求中的 `variables` 更新业务变量,也可以用 `formPatch` 按根级字段合并更新 `formData`;任务完成后,下游节点读取更新后的值。
83
103
  - 路由变量已由页面准备好时,生成 `HANDLE → CONDITION`,由条件网关表达多条业务路径。
84
104
  - 需要 Backend Function 先计算、校验或归一化路由变量时,生成 `HANDLE → SCRIPT → CONDITION`;不需要计算时不要为了分支强制插入 `SCRIPT`。
85
105
  - 不要给 `HANDLE` 直接配置多条出边,也不要让调用方传 `targetNodeId` 绕过流程图。办理节点存在多个业务结果不应判定为 `NEEDS_DSL_EXTENSION`;只有下游节点也无法表达需求时才进入 DSL 扩展判断。
86
106
 
87
107
  ## 候选确认
88
108
 
89
- - 不编造 `userId`、`roleId`、`datasetCode`、`pageId`、`scriptName` 或 `configCode`。
109
+ - 不编造 `userId`、`roleId`、`datasetCode`、`pageId`、页面 `path`、`runtimePageUrl`、`scriptName` 或 `configCode`。
90
110
  - 多个候选必须展示稳定标识并请用户选择。
91
111
  - 唯一命中可作为推荐项,但人员身份、角色、拓扑和通知渠道仍需用户确认。
92
112
  - 无命中时继续询问关键词,不自动替换为相似资源。
@@ -131,7 +151,9 @@ rabetbase flow update --id 42 --file .rabetbase/flows/purchase.json --dry-run --
131
151
  rabetbase flow update --id 42 --file .rabetbase/flows/purchase.json --format compress
132
152
 
133
153
  rabetbase flow publish --id 42 --dry-run --format compress
134
- rabetbase flow publish --id 42 --yes --format compress
154
+ rabetbase flow publish --id 42 --format compress
135
155
  ```
136
156
 
157
+ `flow create` 和 `flow publish` 成功后都会返回当前环境对应的 `data.flowUrl`,并在成功消息中附上同一地址。Agent 应直接使用该字段交付可打开的设计态流程页面,不自行猜测域名或路径;daily、production、国家/地区节点及独立部署由 CLI 当前路由配置决定。
158
+
137
159
  不要根据本地文件中的遗留 `id` 或 `appCode` 决定提交目标。流程 ID 来自命令参数,应用编码来自当前工作区或显式 CLI app 选择。
@@ -134,4 +134,4 @@ export default async function(params: any, context: any) {
134
134
 
135
135
  ## 冲突处理底线
136
136
 
137
- 硬性规则见 [SKILL.md](../SKILL.md)「冲突处理」;分支表、响应结构与沟通要求见 [`conflict-detection.md`](conflict-detection.md)。**禁止**捏造 `forceUpdate`、代用户强制覆盖;`blocked` 时引导平台操作或另存为新名称。
137
+ 硬性规则见 [SKILL.md](../SKILL.md)「冲突处理」;写入结果判定、恢复动作与交付要求见 [`conflict-detection.md`](conflict-detection.md)。**禁止**捏造 `forceUpdate`、代用户强制覆盖;`blocked` 时引导平台操作或另存为新名称。
@@ -1,121 +1,73 @@
1
1
  # 冲突检测与未完成写入处理
2
2
 
3
- **文档版本**: v4.0
4
- **适用于**: SQL / Backend Function 资源的远端写入与同步
3
+ 适用于 SQL / Backend Function 的远端写入与同步。通用查证、纠错、授权与交付原则遵循 [AI First 执行原则](../SKILL.md#ai-first-执行原则);本指南说明如何根据实际返回结果恢复任务。
5
4
 
6
- > **与 SKILL.md 的关系**:[SKILL.md](../SKILL.md) 只保留硬性规则;本文件负责解释什么叫“远端未写入成功”,以及 AI 应该如何沟通。
5
+ ## 写入结果与恢复动作
7
6
 
8
- ---
7
+ 不能只根据 `ok=false` 或非零退出断言所有资源都未保存。结合逐项结果、错误发生阶段及远端回读判断:
9
8
 
10
- ## 当前主工作流
9
+ | 结果 | 判断与动作 |
10
+ | --- | --- |
11
+ | `--dry-run` 成功或 `bff create` 生成本地脚手架 | 只完成预览或本地准备,尚未写入远端;按对应工作流继续 |
12
+ | 资源明确写入成功 | 报告成功项及其真实标识,继续任务需要的回读与运行验证 |
13
+ | 批量操作部分成功 | 分别报告成功、跳过和失败项;保留成功项,只处理失败项,不盲目重提整批 |
14
+ | 明确拒绝写入,如 `blocked: true` / `action: "blocked"` | 说明该资源未保存;核对事实并处理授权内可恢复的原因,不换参数或入口绕过权限、平台限制 |
15
+ | 写入前的输入校验失败 | 查证并修复确认的内容或参数错误,再按命令工作流复验 |
16
+ | 超时、响应丢失等结果未知 | 先回读远端,确认是否已生效;确认前不能声称成功或未保存,也不能直接重新提交 |
17
+ | 用户取消 | 停止该操作,保留准备结果并继续其他已授权工作;不得用 `--yes` 或修改风险配置绕过取消 |
11
18
 
12
- 当前推荐路径:
19
+ ## 响应样例
13
20
 
14
- - **SQL**
15
- - 新建:`rabetbase sql create`
16
- - 修改:编辑 `.rabetbase/sql/...` 下的同步文件后执行 `rabetbase sql push`
17
- - 删除:`rabetbase sql delete`
18
- - **Backend Function**
19
- - 新建本地脚手架:`rabetbase bff create`
20
- - 推送远端:`rabetbase bff push`
21
- - 删除远端:`rabetbase bff delete`
22
-
23
- ## 什么时候算“没有写入成功”
24
-
25
- 只要 CLI 返回结果表明**远端没有完成创建 / 更新 / 删除 / 同步**,就必须按失败处理。常见信号包括:
26
-
27
- - `blocked: true`
28
- - `action: "blocked"`
29
- - `success: false`
30
- - `ok: false`
31
- - 返回 message 明确表示冲突、被平台拦截、校验失败、未同步
32
- - 非零退出且错误原因发生在远端写入前后
33
-
34
- **核心原则**:
35
-
36
- - 本地文件已生成,不等于远端已保存
37
- - `--dry-run` 预览成功,不等于远端已执行
38
- - 命令执行失败时,不能用“已处理”“已保存”这类表述蒙混过去
39
-
40
- **BFF 同步分歧例外**:`bff pull` / `bff push` 的 `data.conflicts` 表示可恢复的本地与远端分歧,不是 `failed`。必须报告每项 `lockKey`、`code` 和 `nextAction`;`BFF_LOCAL_UNSYNCED` 经审阅后可精确 push 更新远端,`BFF_REMOTE_VERSION_CHANGED` / `BFF_REMOTE_VERSION_MISSING` 则先用其 `bff detail` 命令读取远端源码并合并。两类场景都不得自动 `--force` 或声称已完成同步。
41
-
42
- ---
43
-
44
- ## AI 的沟通义务
45
-
46
- 只要远端未写入成功,回复里必须同时做到:
47
-
48
- 1. **明确状态**
49
- - 直接说“未保存到平台”“未完成远端同步”“只完成了本地生成/预览”。
50
- 2. **说明原因**
51
- - 引用返回里的 `message`、`error.message`、`blocked`、或关键上下文。
52
- 3. **给出下一步**
53
- - 去平台处理
54
- - 修改本地内容后重试
55
- - 先 `--dry-run`
56
- - 回到 `create + 本地编辑 + push` 主路径
57
-
58
- ---
59
-
60
- ## 典型分支
61
-
62
- | 场景 | 是否算远端成功 | AI 应怎么说 |
63
- |------|----------------|-------------|
64
- | `sql create --dry-run` 成功 | 否 | 说明只是预览,尚未创建远端 SQL |
65
- | `bff create` 成功 | 否 | 说明本地脚手架已生成,尚未推送远端 |
66
- | `sql push` 成功 | 是 | 告知已同步远端,可附带 sqlCode / 路径 |
67
- | `bff push` 成功 | 是 | 告知已推送远端,可附带 lockKey / 名称 |
68
- | `blocked: true` / `action: blocked` | 否 | 明确说平台未保存,提示手动处理或联系相关人 |
69
- | 校验失败 / validation error | 否 | 说明未写入远端,先修内容或参数 |
70
- ## blocked 场景
21
+ ### 仅预览成功
71
22
 
72
- 当返回 `blocked: true` 或语义等价的“平台冲突 / 非本人资源 / 平台限制”时:
23
+ ```json
24
+ { "ok": true, "dryRun": true, "data": { "method": "POST" } }
25
+ ```
73
26
 
74
- - 必须明确说:**这次没有写入到 Lovrabet 平台**
75
- - 可以建议:去平台手动处理、联系上次提交人、或先保留本地草稿
76
- - 禁止:重试绕过、换参数偷偷再试、把失败包装成成功
27
+ `dryRun: true` 只说明预览通过,远端未执行;不能表述为已保存或已同步。
77
28
 
78
- 建议话术:
29
+ ### 明确拒绝写入
79
30
 
80
- ```text
81
- 这次没有同步到 Lovrabet 平台。平台返回了冲突/阻断提示:<message>。
82
- 如果需要继续修改,请先到平台处理冲突,或联系上次提交人;本地内容可以先保留。
31
+ ```json
32
+ { "ok": false, "blocked": true, "message": "Resource was blocked by platform" }
83
33
  ```
84
34
 
85
- ---
35
+ 该资源未保存。引用 `message` 说明原因,处理授权内可恢复的部分;不得换参数或入口重试绕过,也不得粉饰为已保存。
86
36
 
87
- ## 响应示例
88
-
89
- ### 仅预览成功
37
+ ### 批量部分成功
90
38
 
91
39
  ```json
92
40
  {
93
- "ok": true,
94
- "dryRun": true,
41
+ "ok": false,
95
42
  "data": {
96
- "method": "POST"
43
+ "pushed": [{ "sqlCode": "2305f915-dd48cd4c", "remoteId": 10241 }],
44
+ "skipped": [{ "sqlCode": "7b1e0c42-90aa31de", "reason": "unchanged" }],
45
+ "failed": [{ "sqlCode": "c48d21a7-51fe07bb", "error": "missing remote version" }]
97
46
  }
98
47
  }
99
48
  ```
100
49
 
101
- 解释:**预览成功,不等于远端已执行**。
50
+ 此处 `ok: false` 只因存在 `failed` 项,`pushed` 里的资源确实已写入远端。逐项按 `sqlCode` 报告,只处理 `failed` 项,不重提已成功项。
102
51
 
103
- ### 冲突/阻断
52
+ ### 沟通参考
104
53
 
105
- ```json
106
- {
107
- "ok": false,
108
- "blocked": true,
109
- "message": "Resource was blocked by platform"
110
- }
54
+ `blocked` 或平台限制时可参考:
55
+
56
+ ```text
57
+ 这次没有同步到 Lovrabet 平台。平台返回:<message>。
58
+ 已完成 <已做的检查/准备>;需要 <具体待办> 才能继续,本地修改已保留。
111
59
  ```
112
60
 
113
- 解释:**远端未写入成功,必须明确告知用户**。
61
+ ## 同步分歧
62
+
63
+ - SQL 本地与远端漂移、缺少版本时,按 [SQL 冲突处理](sql-creation-workflow.md#冲突处理)保留修改、回读比较并恢复同步。
64
+ - `bff pull` / `bff push` 的 `data.conflicts` 表示可恢复分歧,不等同于 `failed`。逐项报告 `lockKey`、`code` 和 `nextAction`:`BFF_LOCAL_UNSYNCED` 经审阅后可精确 push;`BFF_REMOTE_VERSION_CHANGED` / `BFF_REMOTE_VERSION_MISSING` 先按返回的 `bff detail` 命令回读源码并合并。不得自动 `--force` 或在分歧未解决时声称已同步。
65
+
66
+ ## 交付结果
114
67
 
115
- ---
68
+ 按资源列明实际状态、返回原因、已完成的处理与验证。仍需关键决策或人工操作时,提供具体差异、推荐方案、影响和最小待办;只完成本地准备或保存配置时,不宣称业务运行已验收。
116
69
 
117
- ## 相关文档
70
+ ## 相关工作流
118
71
 
119
- - **SQL 工作流**: `sql-creation-workflow.md`
120
- - **Backend Function 工作流**: `bff-creation-workflow.md`
121
- - **最佳实践**: `best-practices.md`
72
+ - [SQL 工作流](sql-creation-workflow.md)
73
+ - [Backend Function 工作流](bff-creation-workflow.md)