@yss123/cage-cli 0.3.0 → 0.3.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 (388) hide show
  1. package/README.md +7 -3
  2. package/dist/approval-tree.d.ts +88 -0
  3. package/dist/approval-tree.js +18 -0
  4. package/dist/approval-tree.js.map +1 -0
  5. package/dist/capabilities.js +46 -31
  6. package/dist/capabilities.js.map +1 -1
  7. package/dist/graph-approvals.d.ts +11 -1
  8. package/dist/graph-approvals.js +18 -5
  9. package/dist/graph-approvals.js.map +1 -1
  10. package/dist/graph-relations.js +10 -8
  11. package/dist/graph-relations.js.map +1 -1
  12. package/dist/graph.js +2 -0
  13. package/dist/graph.js.map +1 -1
  14. package/dist/main.js +1 -1
  15. package/dist/main.js.map +1 -1
  16. package/dist/ontology.js +8 -5
  17. package/dist/ontology.js.map +1 -1
  18. package/dist/project-structure.js +2 -2
  19. package/dist/project-structure.js.map +1 -1
  20. package/dist/sync.d.ts +1 -1
  21. package/dist/sync.js +25 -108
  22. package/dist/sync.js.map +1 -1
  23. package/graph-ui/approval-flow.js +28 -8
  24. package/graph-ui/approval-parallel.js +110 -0
  25. package/graph-ui/approval-tree.js +17 -0
  26. package/graph-ui/business.css +26 -0
  27. package/graph-ui/business.js +30 -13
  28. package/graph-ui/graph-approvals.js +18 -5
  29. package/graph-ui/graph-relations.js +10 -8
  30. package/package.json +6 -6
  31. package/templates/app/.agents/skills/cage-development/SKILL.md +10 -0
  32. package/templates/app/AGENTS.md +39 -122
  33. package/templates/app/CLAUDE.md +6 -0
  34. package/templates/app/README.md +9 -8
  35. package/templates/app/apps/api/package.json +2 -2
  36. package/templates/app/apps/web/package.json +1 -1
  37. package/templates/app/apps/web/src/modules/approval/components/task-operation-dialog.tsx +61 -0
  38. package/templates/app/apps/web/src/modules/approval/hooks/use-approval-tasks.ts +6 -9
  39. package/templates/app/apps/web/src/modules/approval/pages/approval-tasks-page.tsx +81 -49
  40. package/templates/app/apps/web/src/modules/approval/pages/approval-tasks.css +18 -0
  41. package/templates/app/apps/web/src/modules/purchase/components/approval-history.tsx +39 -4
  42. package/templates/app/apps/web/src/modules/purchase/components/order-reviewers.tsx +38 -0
  43. package/templates/app/apps/web/src/modules/purchase/components/purchase-order-form.tsx +9 -2
  44. package/templates/app/apps/web/src/modules/purchase/pages/purchase-intelligence.css +2 -0
  45. package/templates/app/apps/web/src/modules/purchase/pages/purchase-order-detail-page.tsx +2 -0
  46. package/templates/app/apps/web/src/modules/purchase/pages/purchase-orders-page.tsx +2 -0
  47. package/templates/app/apps/web/src/shared/lib/error-message.ts +6 -1
  48. package/templates/app/apps/web/src/shared/ui/approval-member-picker.css +10 -0
  49. package/templates/app/apps/web/src/shared/ui/approval-member-picker.tsx +51 -0
  50. package/templates/app/cage.config.json +14 -0
  51. package/templates/app/db/migrations/0004_draft.sql +27 -0
  52. package/templates/app/docs/README.md +11 -0
  53. package/templates/app/docs/development/README.md +64 -0
  54. package/templates/app/docs/development/examples/note/note-detail-page.tsx +106 -0
  55. package/templates/app/docs/development/examples/note/note.ts +67 -0
  56. package/templates/app/docs/development/examples/note/notes-page.tsx +87 -0
  57. package/templates/{blank/docs/ai → app/docs/development/examples}/purchase-example.md +24 -10
  58. package/templates/{blank/docs/ai → app/docs/development/getting-started}/architecture.md +4 -4
  59. package/templates/app/docs/development/getting-started/first-feature.md +66 -0
  60. package/templates/{blank/docs/ai → app/docs/development/getting-started}/workflow.md +13 -12
  61. package/templates/app/docs/development/guides/approvals.md +270 -0
  62. package/templates/app/docs/development/guides/business-collaboration.md +63 -0
  63. package/templates/{blank/docs/ai → app/docs/development/guides}/files.md +5 -1
  64. package/templates/app/docs/{ai → development/guides}/intelligence.md +4 -4
  65. package/templates/{blank/docs/ai → app/docs/development/guides}/recipes.md +31 -11
  66. package/templates/app/docs/{ai → development/guides}/relations.md +2 -2
  67. package/templates/app/docs/{ai → development/guides}/routing.md +1 -1
  68. package/templates/{blank/docs/ai → app/docs/development/guides}/transfers.md +1 -1
  69. package/templates/{blank/docs/ai → app/docs/development/reference}/commenting.md +1 -1
  70. package/templates/app/docs/{ai → development/reference}/primitives.md +8 -62
  71. package/templates/app/docs/{ai → development/reference}/project-structure.md +2 -2
  72. package/templates/app/docs/development/skills/cage-development/SKILL.md +134 -0
  73. package/templates/{blank/docs/ai → app/docs/development/tools}/diagnostics.md +3 -3
  74. package/templates/{blank/docs/ai → app/docs/development/tools}/ontology-context.md +3 -3
  75. package/templates/app/docs/{ai → development/tools}/troubleshooting.md +7 -1
  76. package/templates/app/docs/errors/CAGE-AI-001.md +3 -3
  77. package/templates/app/docs/errors/CAGE-APPR-001.md +13 -10
  78. package/templates/app/docs/errors/CAGE-APPR-002.md +1 -1
  79. package/templates/app/docs/errors/CAGE-APPR-003.md +1 -1
  80. package/templates/app/docs/errors/CAGE-APPR-004.md +1 -1
  81. package/templates/app/docs/errors/CAGE-APPR-005.md +5 -5
  82. package/templates/app/docs/errors/CAGE-APPR-006.md +25 -10
  83. package/templates/app/docs/errors/CAGE-APPR-007.md +9 -7
  84. package/templates/app/docs/errors/CAGE-APPR-010.md +1 -1
  85. package/templates/app/docs/errors/CAGE-AUDIT-001.md +1 -1
  86. package/templates/app/docs/errors/CAGE-AUTH-001.md +1 -1
  87. package/templates/app/docs/errors/CAGE-BIZ-001.md +1 -1
  88. package/templates/app/docs/errors/CAGE-BIZ-002.md +1 -1
  89. package/templates/app/docs/errors/CAGE-BUDGET-001.md +1 -1
  90. package/templates/app/docs/errors/CAGE-BUDGET-002.md +1 -1
  91. package/templates/app/docs/errors/CAGE-BUDGET-003.md +1 -1
  92. package/templates/app/docs/errors/CAGE-CMD-002.md +1 -1
  93. package/templates/app/docs/errors/CAGE-CMD-003.md +1 -1
  94. package/templates/app/docs/errors/CAGE-CONN-001.md +1 -1
  95. package/templates/app/docs/errors/CAGE-CONN-002.md +1 -1
  96. package/templates/app/docs/errors/CAGE-CONN-003.md +1 -1
  97. package/templates/app/docs/errors/CAGE-CONN-004.md +1 -1
  98. package/templates/app/docs/errors/CAGE-CONN-005.md +1 -1
  99. package/templates/app/docs/errors/CAGE-CONN-006.md +1 -1
  100. package/templates/app/docs/errors/CAGE-CONN-007.md +1 -1
  101. package/templates/app/docs/errors/CAGE-CONN-008.md +1 -1
  102. package/templates/app/docs/errors/CAGE-CONN-009.md +1 -1
  103. package/templates/app/docs/errors/CAGE-CONN-010.md +1 -1
  104. package/templates/app/docs/errors/CAGE-CONN-011.md +1 -1
  105. package/templates/app/docs/errors/CAGE-CONN-012.md +1 -1
  106. package/templates/app/docs/errors/CAGE-CONN-013.md +1 -1
  107. package/templates/app/docs/errors/CAGE-CONN-014.md +1 -1
  108. package/templates/app/docs/errors/CAGE-CONN-015.md +1 -1
  109. package/templates/app/docs/errors/CAGE-CREATE-001.md +2 -2
  110. package/templates/app/docs/errors/CAGE-DECL-001.md +1 -1
  111. package/templates/app/docs/errors/CAGE-DECL-002.md +1 -1
  112. package/templates/app/docs/errors/CAGE-DECL-003.md +1 -1
  113. package/templates/app/docs/errors/CAGE-DECL-004.md +1 -1
  114. package/templates/app/docs/errors/CAGE-DEP-001.md +1 -1
  115. package/templates/app/docs/errors/CAGE-DEP-002.md +1 -1
  116. package/templates/app/docs/errors/CAGE-DEP-003.md +1 -1
  117. package/templates/app/docs/errors/CAGE-DEP-004.md +1 -1
  118. package/templates/app/docs/errors/CAGE-DEP-005.md +1 -1
  119. package/templates/app/docs/errors/CAGE-DIAG-001.md +1 -1
  120. package/templates/app/docs/errors/CAGE-DLQ-001.md +1 -1
  121. package/templates/app/docs/errors/CAGE-ENV-001.md +1 -1
  122. package/templates/app/docs/errors/CAGE-ENV-002.md +1 -1
  123. package/templates/app/docs/errors/CAGE-ENV-003.md +1 -1
  124. package/templates/app/docs/errors/CAGE-EVENT-001.md +2 -2
  125. package/templates/app/docs/errors/CAGE-EVENT-002.md +1 -1
  126. package/templates/app/docs/errors/CAGE-FIELD-001.md +1 -1
  127. package/templates/app/docs/errors/CAGE-FIELD-002.md +1 -1
  128. package/templates/app/docs/errors/CAGE-FIELD-003.md +1 -1
  129. package/templates/app/docs/errors/CAGE-FIELD-004.md +1 -1
  130. package/templates/app/docs/errors/CAGE-FILE-001.md +1 -1
  131. package/templates/app/docs/errors/CAGE-GEN-001.md +1 -1
  132. package/templates/app/docs/errors/CAGE-GEN-002.md +1 -1
  133. package/templates/app/docs/errors/CAGE-GEN-003.md +1 -1
  134. package/templates/app/docs/errors/CAGE-GRANT-001.md +1 -1
  135. package/templates/app/docs/errors/CAGE-GRANT-002.md +1 -1
  136. package/templates/app/docs/errors/CAGE-GRANT-003.md +1 -1
  137. package/templates/app/docs/errors/CAGE-IMPACT-001.md +1 -1
  138. package/templates/app/docs/errors/CAGE-IMPACT-002.md +1 -1
  139. package/templates/app/docs/errors/CAGE-INIT-001.md +1 -1
  140. package/templates/app/docs/errors/CAGE-INIT-002.md +1 -1
  141. package/templates/app/docs/errors/CAGE-INIT-003.md +1 -1
  142. package/templates/app/docs/errors/CAGE-INIT-004.md +1 -1
  143. package/templates/app/docs/errors/CAGE-INIT-005.md +1 -1
  144. package/templates/app/docs/errors/CAGE-JOB-001.md +1 -1
  145. package/templates/app/docs/errors/CAGE-JOB-002.md +1 -1
  146. package/templates/app/docs/errors/CAGE-JOB-003.md +1 -1
  147. package/templates/app/docs/errors/CAGE-LINT-001.md +1 -1
  148. package/templates/app/docs/errors/CAGE-MIG-001.md +1 -1
  149. package/templates/app/docs/errors/CAGE-MIG-002.md +1 -1
  150. package/templates/app/docs/errors/CAGE-MIG-005.md +1 -1
  151. package/templates/app/docs/errors/CAGE-NAME-001.md +1 -1
  152. package/templates/app/docs/errors/CAGE-NAME-002.md +1 -1
  153. package/templates/app/docs/errors/CAGE-NAME-003.md +1 -1
  154. package/templates/app/docs/errors/CAGE-NAME-004.md +1 -1
  155. package/templates/app/docs/errors/CAGE-NAME-005.md +1 -1
  156. package/templates/app/docs/errors/CAGE-NAME-006.md +1 -1
  157. package/templates/app/docs/errors/CAGE-ORG-001.md +1 -1
  158. package/templates/app/docs/errors/CAGE-PAIR-002.md +1 -1
  159. package/templates/app/docs/errors/CAGE-QUERY-001.md +1 -1
  160. package/templates/app/docs/errors/CAGE-QUERY-002.md +1 -1
  161. package/templates/app/docs/errors/CAGE-QUERY-003.md +1 -1
  162. package/templates/app/docs/errors/CAGE-REACT-001.md +1 -1
  163. package/templates/app/docs/errors/CAGE-REACT-002.md +1 -1
  164. package/templates/app/docs/errors/CAGE-REACT-003.md +1 -1
  165. package/templates/app/docs/errors/CAGE-READS-001.md +1 -1
  166. package/templates/app/docs/errors/CAGE-REG-001.md +2 -2
  167. package/templates/app/docs/errors/CAGE-REG-002.md +1 -1
  168. package/templates/app/docs/errors/CAGE-REG-003.md +1 -1
  169. package/templates/app/docs/errors/CAGE-REL-001.md +1 -1
  170. package/templates/app/docs/errors/CAGE-ROUTE-001.md +1 -1
  171. package/templates/app/docs/errors/CAGE-SCOPE-001.md +1 -1
  172. package/templates/app/docs/errors/CAGE-SCOPE-002.md +1 -1
  173. package/templates/app/docs/errors/CAGE-SECRET-001.md +1 -1
  174. package/templates/app/docs/errors/CAGE-SECRET-002.md +1 -1
  175. package/templates/app/docs/errors/CAGE-SENS-001.md +1 -1
  176. package/templates/app/docs/errors/CAGE-SQL-001.md +1 -1
  177. package/templates/app/docs/errors/CAGE-SQL-002.md +1 -1
  178. package/templates/app/docs/errors/CAGE-STATE-001.md +1 -1
  179. package/templates/app/docs/errors/CAGE-STATE-002.md +1 -1
  180. package/templates/app/docs/errors/CAGE-STATE-003.md +1 -1
  181. package/templates/app/docs/errors/CAGE-STATE-004.md +1 -1
  182. package/templates/app/docs/errors/CAGE-STATE-005.md +1 -1
  183. package/templates/app/docs/errors/CAGE-STATE-010.md +1 -1
  184. package/templates/app/docs/errors/CAGE-STATE-011.md +1 -1
  185. package/templates/app/docs/errors/CAGE-STRUCT-001.md +4 -4
  186. package/templates/app/docs/errors/CAGE-STRUCT-002.md +3 -3
  187. package/templates/app/docs/errors/CAGE-SYNC-001.md +4 -4
  188. package/templates/app/docs/errors/CAGE-TEST-001.md +1 -1
  189. package/templates/app/docs/errors/CAGE-TEST-002.md +1 -1
  190. package/templates/app/docs/errors/CAGE-TEST-003.md +1 -1
  191. package/templates/app/docs/errors/CAGE-UNSAFE-001.md +1 -1
  192. package/templates/app/docs/errors/CAGE-UPGRADE-001.md +1 -1
  193. package/templates/app/docs/errors/CAGE-WORKER-001.md +1 -1
  194. package/templates/app/docs/errors/CAGE-WORKER-002.md +1 -1
  195. package/templates/app/docs/errors/CAGE-WORKER-003.md +1 -1
  196. package/templates/app/docs/errors/README.md +3 -3
  197. package/templates/app/docs/errors/runtime.md +1 -1
  198. package/templates/app/package.json +3 -3
  199. package/templates/app/packages/contracts/package.json +1 -1
  200. package/templates/app/packages/contracts/src/aggregates/approval-member/index.ts +70 -0
  201. package/templates/app/packages/contracts/src/aggregates/purchase-order/index.ts +10 -2
  202. package/templates/app/packages/contracts/src/index.ts +9 -0
  203. package/templates/app/packages/domain/package.json +5 -5
  204. package/templates/app/packages/domain/src/modules/purchase/approval-members.ts +54 -0
  205. package/templates/app/packages/domain/src/modules/purchase/approvals.ts +19 -8
  206. package/templates/app/packages/domain/src/modules/purchase/index.ts +2 -1
  207. package/templates/app/packages/domain/src/modules/purchase/intelligence.test.ts +169 -7
  208. package/templates/app/packages/domain/src/modules/purchase/purchase-order.ts +56 -5
  209. package/templates/blank/.agents/skills/cage-development/SKILL.md +10 -0
  210. package/templates/blank/AGENTS.md +39 -122
  211. package/templates/blank/CLAUDE.md +6 -0
  212. package/templates/blank/README.md +3 -3
  213. package/templates/blank/apps/api/package.json +1 -1
  214. package/templates/blank/apps/web/package.json +1 -1
  215. package/templates/blank/docs/README.md +11 -0
  216. package/templates/blank/docs/development/README.md +64 -0
  217. package/templates/blank/docs/development/examples/note/note-detail-page.tsx +106 -0
  218. package/templates/blank/docs/development/examples/note/note.ts +67 -0
  219. package/templates/blank/docs/development/examples/note/notes-page.tsx +87 -0
  220. package/templates/{app/docs/ai → blank/docs/development/examples}/purchase-example.md +24 -10
  221. package/templates/{app/docs/ai → blank/docs/development/getting-started}/architecture.md +4 -4
  222. package/templates/blank/docs/development/getting-started/first-feature.md +66 -0
  223. package/templates/{app/docs/ai → blank/docs/development/getting-started}/workflow.md +13 -12
  224. package/templates/blank/docs/development/guides/approvals.md +270 -0
  225. package/templates/blank/docs/development/guides/business-collaboration.md +63 -0
  226. package/templates/{app/docs/ai → blank/docs/development/guides}/files.md +5 -1
  227. package/templates/blank/docs/{ai → development/guides}/intelligence.md +4 -4
  228. package/templates/{app/docs/ai → blank/docs/development/guides}/recipes.md +31 -11
  229. package/templates/blank/docs/{ai → development/guides}/relations.md +2 -2
  230. package/templates/blank/docs/{ai → development/guides}/routing.md +1 -1
  231. package/templates/{app/docs/ai → blank/docs/development/guides}/transfers.md +1 -1
  232. package/templates/{app/docs/ai → blank/docs/development/reference}/commenting.md +1 -1
  233. package/templates/blank/docs/{ai → development/reference}/primitives.md +8 -62
  234. package/templates/blank/docs/{ai → development/reference}/project-structure.md +2 -2
  235. package/templates/blank/docs/development/skills/cage-development/SKILL.md +134 -0
  236. package/templates/{app/docs/ai → blank/docs/development/tools}/diagnostics.md +3 -3
  237. package/templates/{app/docs/ai → blank/docs/development/tools}/ontology-context.md +3 -3
  238. package/templates/blank/docs/{ai → development/tools}/troubleshooting.md +7 -1
  239. package/templates/blank/docs/errors/CAGE-AI-001.md +3 -3
  240. package/templates/blank/docs/errors/CAGE-APPR-001.md +13 -10
  241. package/templates/blank/docs/errors/CAGE-APPR-002.md +1 -1
  242. package/templates/blank/docs/errors/CAGE-APPR-003.md +1 -1
  243. package/templates/blank/docs/errors/CAGE-APPR-004.md +1 -1
  244. package/templates/blank/docs/errors/CAGE-APPR-005.md +5 -5
  245. package/templates/blank/docs/errors/CAGE-APPR-006.md +25 -10
  246. package/templates/blank/docs/errors/CAGE-APPR-007.md +9 -7
  247. package/templates/blank/docs/errors/CAGE-APPR-010.md +1 -1
  248. package/templates/blank/docs/errors/CAGE-AUDIT-001.md +1 -1
  249. package/templates/blank/docs/errors/CAGE-AUTH-001.md +1 -1
  250. package/templates/blank/docs/errors/CAGE-BIZ-001.md +1 -1
  251. package/templates/blank/docs/errors/CAGE-BIZ-002.md +1 -1
  252. package/templates/blank/docs/errors/CAGE-BUDGET-001.md +1 -1
  253. package/templates/blank/docs/errors/CAGE-BUDGET-002.md +1 -1
  254. package/templates/blank/docs/errors/CAGE-BUDGET-003.md +1 -1
  255. package/templates/blank/docs/errors/CAGE-CMD-002.md +1 -1
  256. package/templates/blank/docs/errors/CAGE-CMD-003.md +1 -1
  257. package/templates/blank/docs/errors/CAGE-CONN-001.md +1 -1
  258. package/templates/blank/docs/errors/CAGE-CONN-002.md +1 -1
  259. package/templates/blank/docs/errors/CAGE-CONN-003.md +1 -1
  260. package/templates/blank/docs/errors/CAGE-CONN-004.md +1 -1
  261. package/templates/blank/docs/errors/CAGE-CONN-005.md +1 -1
  262. package/templates/blank/docs/errors/CAGE-CONN-006.md +1 -1
  263. package/templates/blank/docs/errors/CAGE-CONN-007.md +1 -1
  264. package/templates/blank/docs/errors/CAGE-CONN-008.md +1 -1
  265. package/templates/blank/docs/errors/CAGE-CONN-009.md +1 -1
  266. package/templates/blank/docs/errors/CAGE-CONN-010.md +1 -1
  267. package/templates/blank/docs/errors/CAGE-CONN-011.md +1 -1
  268. package/templates/blank/docs/errors/CAGE-CONN-012.md +1 -1
  269. package/templates/blank/docs/errors/CAGE-CONN-013.md +1 -1
  270. package/templates/blank/docs/errors/CAGE-CONN-014.md +1 -1
  271. package/templates/blank/docs/errors/CAGE-CONN-015.md +1 -1
  272. package/templates/blank/docs/errors/CAGE-CREATE-001.md +2 -2
  273. package/templates/blank/docs/errors/CAGE-DECL-001.md +1 -1
  274. package/templates/blank/docs/errors/CAGE-DECL-002.md +1 -1
  275. package/templates/blank/docs/errors/CAGE-DECL-003.md +1 -1
  276. package/templates/blank/docs/errors/CAGE-DECL-004.md +1 -1
  277. package/templates/blank/docs/errors/CAGE-DEP-001.md +1 -1
  278. package/templates/blank/docs/errors/CAGE-DEP-002.md +1 -1
  279. package/templates/blank/docs/errors/CAGE-DEP-003.md +1 -1
  280. package/templates/blank/docs/errors/CAGE-DEP-004.md +1 -1
  281. package/templates/blank/docs/errors/CAGE-DEP-005.md +1 -1
  282. package/templates/blank/docs/errors/CAGE-DIAG-001.md +1 -1
  283. package/templates/blank/docs/errors/CAGE-DLQ-001.md +1 -1
  284. package/templates/blank/docs/errors/CAGE-ENV-001.md +1 -1
  285. package/templates/blank/docs/errors/CAGE-ENV-002.md +1 -1
  286. package/templates/blank/docs/errors/CAGE-ENV-003.md +1 -1
  287. package/templates/blank/docs/errors/CAGE-EVENT-001.md +2 -2
  288. package/templates/blank/docs/errors/CAGE-EVENT-002.md +1 -1
  289. package/templates/blank/docs/errors/CAGE-FIELD-001.md +1 -1
  290. package/templates/blank/docs/errors/CAGE-FIELD-002.md +1 -1
  291. package/templates/blank/docs/errors/CAGE-FIELD-003.md +1 -1
  292. package/templates/blank/docs/errors/CAGE-FIELD-004.md +1 -1
  293. package/templates/blank/docs/errors/CAGE-FILE-001.md +1 -1
  294. package/templates/blank/docs/errors/CAGE-GEN-001.md +1 -1
  295. package/templates/blank/docs/errors/CAGE-GEN-002.md +1 -1
  296. package/templates/blank/docs/errors/CAGE-GEN-003.md +1 -1
  297. package/templates/blank/docs/errors/CAGE-GRANT-001.md +1 -1
  298. package/templates/blank/docs/errors/CAGE-GRANT-002.md +1 -1
  299. package/templates/blank/docs/errors/CAGE-GRANT-003.md +1 -1
  300. package/templates/blank/docs/errors/CAGE-IMPACT-001.md +1 -1
  301. package/templates/blank/docs/errors/CAGE-IMPACT-002.md +1 -1
  302. package/templates/blank/docs/errors/CAGE-INIT-001.md +1 -1
  303. package/templates/blank/docs/errors/CAGE-INIT-002.md +1 -1
  304. package/templates/blank/docs/errors/CAGE-INIT-003.md +1 -1
  305. package/templates/blank/docs/errors/CAGE-INIT-004.md +1 -1
  306. package/templates/blank/docs/errors/CAGE-INIT-005.md +1 -1
  307. package/templates/blank/docs/errors/CAGE-JOB-001.md +1 -1
  308. package/templates/blank/docs/errors/CAGE-JOB-002.md +1 -1
  309. package/templates/blank/docs/errors/CAGE-JOB-003.md +1 -1
  310. package/templates/blank/docs/errors/CAGE-LINT-001.md +1 -1
  311. package/templates/blank/docs/errors/CAGE-MIG-001.md +1 -1
  312. package/templates/blank/docs/errors/CAGE-MIG-002.md +1 -1
  313. package/templates/blank/docs/errors/CAGE-MIG-005.md +1 -1
  314. package/templates/blank/docs/errors/CAGE-NAME-001.md +1 -1
  315. package/templates/blank/docs/errors/CAGE-NAME-002.md +1 -1
  316. package/templates/blank/docs/errors/CAGE-NAME-003.md +1 -1
  317. package/templates/blank/docs/errors/CAGE-NAME-004.md +1 -1
  318. package/templates/blank/docs/errors/CAGE-NAME-005.md +1 -1
  319. package/templates/blank/docs/errors/CAGE-NAME-006.md +1 -1
  320. package/templates/blank/docs/errors/CAGE-ORG-001.md +1 -1
  321. package/templates/blank/docs/errors/CAGE-PAIR-002.md +1 -1
  322. package/templates/blank/docs/errors/CAGE-QUERY-001.md +1 -1
  323. package/templates/blank/docs/errors/CAGE-QUERY-002.md +1 -1
  324. package/templates/blank/docs/errors/CAGE-QUERY-003.md +1 -1
  325. package/templates/blank/docs/errors/CAGE-REACT-001.md +1 -1
  326. package/templates/blank/docs/errors/CAGE-REACT-002.md +1 -1
  327. package/templates/blank/docs/errors/CAGE-REACT-003.md +1 -1
  328. package/templates/blank/docs/errors/CAGE-READS-001.md +1 -1
  329. package/templates/blank/docs/errors/CAGE-REG-001.md +2 -2
  330. package/templates/blank/docs/errors/CAGE-REG-002.md +1 -1
  331. package/templates/blank/docs/errors/CAGE-REG-003.md +1 -1
  332. package/templates/blank/docs/errors/CAGE-REL-001.md +1 -1
  333. package/templates/blank/docs/errors/CAGE-ROUTE-001.md +1 -1
  334. package/templates/blank/docs/errors/CAGE-SCOPE-001.md +1 -1
  335. package/templates/blank/docs/errors/CAGE-SCOPE-002.md +1 -1
  336. package/templates/blank/docs/errors/CAGE-SECRET-001.md +1 -1
  337. package/templates/blank/docs/errors/CAGE-SECRET-002.md +1 -1
  338. package/templates/blank/docs/errors/CAGE-SENS-001.md +1 -1
  339. package/templates/blank/docs/errors/CAGE-SQL-001.md +1 -1
  340. package/templates/blank/docs/errors/CAGE-SQL-002.md +1 -1
  341. package/templates/blank/docs/errors/CAGE-STATE-001.md +1 -1
  342. package/templates/blank/docs/errors/CAGE-STATE-002.md +1 -1
  343. package/templates/blank/docs/errors/CAGE-STATE-003.md +1 -1
  344. package/templates/blank/docs/errors/CAGE-STATE-004.md +1 -1
  345. package/templates/blank/docs/errors/CAGE-STATE-005.md +1 -1
  346. package/templates/blank/docs/errors/CAGE-STATE-010.md +1 -1
  347. package/templates/blank/docs/errors/CAGE-STATE-011.md +1 -1
  348. package/templates/blank/docs/errors/CAGE-STRUCT-001.md +4 -4
  349. package/templates/blank/docs/errors/CAGE-STRUCT-002.md +3 -3
  350. package/templates/blank/docs/errors/CAGE-SYNC-001.md +4 -4
  351. package/templates/blank/docs/errors/CAGE-TEST-001.md +1 -1
  352. package/templates/blank/docs/errors/CAGE-TEST-002.md +1 -1
  353. package/templates/blank/docs/errors/CAGE-TEST-003.md +1 -1
  354. package/templates/blank/docs/errors/CAGE-UNSAFE-001.md +1 -1
  355. package/templates/blank/docs/errors/CAGE-UPGRADE-001.md +1 -1
  356. package/templates/blank/docs/errors/CAGE-WORKER-001.md +1 -1
  357. package/templates/blank/docs/errors/CAGE-WORKER-002.md +1 -1
  358. package/templates/blank/docs/errors/CAGE-WORKER-003.md +1 -1
  359. package/templates/blank/docs/errors/README.md +3 -3
  360. package/templates/blank/docs/errors/runtime.md +1 -1
  361. package/templates/blank/docs/examples/purchase-admin/README.md +1 -1
  362. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/approval/components/task-operation-dialog.tsx +61 -0
  363. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/approval/hooks/use-approval-tasks.ts +6 -9
  364. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/approval/pages/approval-tasks-page.tsx +81 -49
  365. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/approval/pages/approval-tasks.css +18 -0
  366. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/purchase/components/approval-history.tsx +39 -4
  367. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/purchase/components/order-reviewers.tsx +38 -0
  368. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/purchase/components/purchase-order-form.tsx +9 -2
  369. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/purchase/pages/purchase-intelligence.css +2 -0
  370. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/purchase/pages/purchase-order-detail-page.tsx +2 -0
  371. package/templates/blank/docs/examples/purchase-admin/apps/web/src/modules/purchase/pages/purchase-orders-page.tsx +2 -0
  372. package/templates/blank/docs/examples/purchase-admin/apps/web/src/shared/lib/error-message.ts +6 -1
  373. package/templates/blank/docs/examples/purchase-admin/apps/web/src/shared/ui/approval-member-picker.css +10 -0
  374. package/templates/blank/docs/examples/purchase-admin/apps/web/src/shared/ui/approval-member-picker.tsx +51 -0
  375. package/templates/blank/docs/examples/purchase-admin/cage.config.json +14 -0
  376. package/templates/blank/docs/examples/purchase-admin/packages/contracts/src/aggregates/approval-member/index.ts +70 -0
  377. package/templates/blank/docs/examples/purchase-admin/packages/contracts/src/aggregates/purchase-order/index.ts +10 -2
  378. package/templates/blank/docs/examples/purchase-admin/packages/contracts/src/index.ts +9 -0
  379. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/approval-members.ts +54 -0
  380. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/approvals.ts +19 -8
  381. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/index.ts +2 -1
  382. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/intelligence.test.ts +169 -7
  383. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/purchase-order.ts +56 -5
  384. package/templates/blank/package.json +3 -3
  385. package/templates/blank/packages/contracts/package.json +1 -1
  386. package/templates/blank/packages/domain/package.json +5 -5
  387. package/templates/app/docs/ai/README.md +0 -98
  388. package/templates/blank/docs/ai/README.md +0 -98
@@ -1,6 +1,6 @@
1
1
  # CAGE-FIELD-001:敏感字段种类不存在
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FIELD-002:引用目标为空
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FIELD-003:字段不是字段原语
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FIELD-004:覆盖系统保留列
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FILE-001:文件字段或上传配置无效
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GEN-001:契约等生成结果过期
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GEN-002:声明结构没有对应迁移
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GEN-003:输入校验需要服务端执行
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GRANT-001:授予超出自己的能力或额度
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GRANT-002:授予超出自己的数据范围
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GRANT-003:能力不在代码目录中
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-IMPACT-001:影响分析没有可用基线
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-IMPACT-002:命名本体快照无效
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-001:管理员 URL 没有数据库名
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-002:集群已有账号但缺少原凭证
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-003:三种连接身份或目标不一致
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-004:账号已创建但 .env 替换失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-005:显式组织初始化或凭据交付失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-JOB-001:定时表达式不合法
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-JOB-002:任务调用了未声明的命令
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-JOB-003:任务读取了未声明的聚合
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-LINT-001:lint 语法或规则错误
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-MIG-001:迁移事务执行失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-MIG-002:安全层重建失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-MIG-005:已执行迁移内容被修改
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-001:聚合名必须大驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-002:字段名必须小驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-003:事件名必须大驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-004:命令名必须小驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-005:查询名必须小驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-006:任务名必须小驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-ORG-001:业务入口遗漏组织模型
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-PAIR-002:离开持有资源状态却没有释放
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-QUERY-001:查询必须选择一种实现
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-QUERY-002:自定义查询直接访问基表
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-QUERY-003:查询读取范围与声明不一致
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-REACT-001:反应目标与命令聚合不一致
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-REACT-002:同事务反应链嵌套过深
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-REACT-003:集合或步骤顺序声明无效
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-READS-001:handler 使用了未声明读依赖
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-REG-001:注册表缺少被引用声明
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -34,7 +34,7 @@ export * from './inventory.js'; export * from './purchase-order.js';
34
34
 
35
35
  以下路径相对框架源码仓库,不是要求业务项目创建这些文件。当前项目先修业务声明、配置或授权;明确属于框架缺口时反馈错误码和脱敏上下文。
36
36
 
37
- - `packages/approval/src/route.ts:161`
37
+ - `packages/approval/src/route.ts:231`
38
38
  - `packages/kernel/src/kernel.ts:161`
39
39
  - `packages/kernel/src/registry.ts:209`
40
40
  - `packages/kernel/src/registry.ts:215`
@@ -1,6 +1,6 @@
1
1
  # CAGE-REG-002:聚合或查询注册重名
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-REG-003:命令能力点重复
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-REL-001:关系字段声明无效
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-ROUTE-001:业务项目手写 HTTP 路由
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-SCOPE-001:范围组合子未知
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-SCOPE-002:范围字段没有声明
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-SECRET-001:运行环境缺少密钥
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-SECRET-002:源码疑似包含密钥字面量
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-SENS-001:敏感字段未标注就进入事件
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-SQL-001:SQL 拼接用户值
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-SQL-002:sql.raw 接收动态表达式
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-STATE-001:引用了未声明状态
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-STATE-002:状态集合为空
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-STATE-003:状态名称格式错误
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-STATE-004:状态名称重复
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-STATE-005:状态声明位置冲突
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-STATE-010:状态不可达
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-STATE-011:非终态没有后续操作
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-STRUCT-001:业务源码目录不符合模块约定
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  1. 前端使用 app / modules / shared,src 根目录只保留 main.tsx;领域使用 modules / workflows / integrations / shared,根目录只保留 index.ts。
16
16
  2. 把页面、表单、hooks 和业务辅助代码放在同一业务模块,需要时再拆文件;不要创建空目录凑层级。测试就近放置,类型声明 .d.ts 不受入口约束。
17
- 3. 目录调整后修正导入并运行 cage check、gen、verify;完整规范见 docs/ai/project-structure.md。
17
+ 3. 目录调整后修正导入并运行 cage check、gen、verify;完整规范见 docs/development/reference/project-structure.md。
18
18
 
19
19
  ## 正例
20
20
 
@@ -32,7 +32,7 @@ packages/domain/src/expense.ts
32
32
 
33
33
  ## 修复后验证
34
34
 
35
- 按 docs/ai/project-structure.md 整理归属和导入后重跑 cage check 与 verify;不关闭目录规则,也不改业务表或能力标识。
35
+ 按 docs/development/reference/project-structure.md 整理归属和导入后重跑 cage check 与 verify;不关闭目录规则,也不改业务表或能力标识。
36
36
 
37
37
  ## 框架内的检查位置
38
38
 
@@ -47,5 +47,5 @@ packages/domain/src/expense.ts
47
47
  code: 'CAGE-STRUCT-001',
48
48
  at,
49
49
  reason: `${kind} 源码没有放入约定模块:${from.path}`,
50
- fix: `src 根目录只保留${kind === 'domain' ? '领域 index.ts' : '浏览器 main.tsx'};业务按归属放入 ${layers.join(' / ')},见 docs/ai/project-structure.md`,
50
+ fix: `src 根目录只保留${kind === 'domain' ? '领域 index.ts' : '浏览器 main.tsx'};业务按归属放入 ${layers.join(' / ')},见 docs/development/reference/project-structure.md`,
51
51
  ```
@@ -1,6 +1,6 @@
1
1
  # CAGE-STRUCT-002:源码依赖越过模块边界
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -32,7 +32,7 @@ import { ExpensePage } from '../../modules/expense/pages/expense-page';
32
32
 
33
33
  ## 修复后验证
34
34
 
35
- 按 docs/ai/project-structure.md 整理归属和导入后重跑 cage check 与 verify;不关闭目录规则,也不改业务表或能力标识。
35
+ 按 docs/development/reference/project-structure.md 整理归属和导入后重跑 cage check 与 verify;不关闭目录规则,也不改业务表或能力标识。
36
36
 
37
37
  ## 框架内的检查位置
38
38
 
@@ -47,5 +47,5 @@ import { ExpensePage } from '../../modules/expense/pages/expense-page';
47
47
  code: 'CAGE-STRUCT-002',
48
48
  at: `${at}:${source.slice(0, spec.pos).split('\n').length}`,
49
49
  reason: `${reason}(${spec.fileName})`,
50
- fix: '调整依赖归属;共用纯逻辑下沉到 shared,页面协作由 app 传参,领域交互通过模块公开声明。见 docs/ai/project-structure.md',
50
+ fix: '调整依赖归属;共用纯逻辑下沉到 shared,页面协作由 app 传参,领域交互通过模块公开声明。见 docs/development/reference/project-structure.md',
51
51
  ```