@h-ai/cli 0.1.0-alpha9 → 1.0.0-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 (438) hide show
  1. package/README.en.md +229 -0
  2. package/README.ja.md +229 -0
  3. package/README.md +175 -113
  4. package/dist/chunk-AKV2CQZV.js +1497 -0
  5. package/dist/chunk-AKV2CQZV.js.map +1 -0
  6. package/dist/chunk-EF7WOFWZ.js +7557 -0
  7. package/dist/chunk-EF7WOFWZ.js.map +1 -0
  8. package/dist/chunk-MUHRBJSW.js +29272 -0
  9. package/dist/chunk-MUHRBJSW.js.map +1 -0
  10. package/dist/chunk-ZSDEVXZ7.js +38 -0
  11. package/dist/{chunk-2H7UOFLK.js.map → chunk-ZSDEVXZ7.js.map} +1 -1
  12. package/dist/cli-config-templates-HHFHNXBN.js +5 -0
  13. package/dist/cli-config-templates-HHFHNXBN.js.map +1 -0
  14. package/dist/cli-skill-templates-PN4FLGBC.js +5 -0
  15. package/dist/cli-skill-templates-PN4FLGBC.js.map +1 -0
  16. package/dist/index.js +4444 -554
  17. package/dist/index.js.map +1 -1
  18. package/dist/metafile-esm.json +1 -0
  19. package/dist/src-TEBHR5I5.js +5 -0
  20. package/dist/src-TEBHR5I5.js.map +1 -0
  21. package/package.json +35 -15
  22. package/templates/README.md +56 -114
  23. package/templates/apps/admin/messages/en-US.json +7 -0
  24. package/templates/apps/admin/messages/ja-JP.json +40 -0
  25. package/templates/apps/admin/messages/zh-CN.json +7 -0
  26. package/templates/apps/admin/src/routes/+layout.svelte.hbs +65 -8
  27. package/templates/apps/admin/src/routes/+page.svelte.hbs +35 -14
  28. package/templates/apps/admin/src/routes/admin/+layout.svelte.hbs +54 -22
  29. package/templates/apps/admin/src/routes/admin/+page.svelte.hbs +33 -24
  30. package/templates/apps/admin/src/routes/admin/settings/+page.svelte.hbs +16 -13
  31. package/templates/apps/api/.dockerignore.hbs +25 -0
  32. package/templates/apps/api/.gitignore.hbs +22 -0
  33. package/templates/apps/api/.npmrc.hbs +1 -0
  34. package/templates/apps/api/apps/{{projectName}}-contract/README.md.hbs +39 -0
  35. package/templates/apps/api/apps/{{projectName}}-contract/package.json.hbs +41 -0
  36. package/templates/apps/api/apps/{{projectName}}-contract/src/app-contract.ts.hbs +27 -0
  37. package/templates/apps/api/apps/{{projectName}}-contract/src/app-schemas.ts.hbs +28 -0
  38. package/templates/apps/api/apps/{{projectName}}-contract/src/index.ts.hbs +5 -0
  39. package/templates/apps/api/apps/{{projectName}}-contract/src/{{projectName}}-contract.ts.hbs +16 -0
  40. package/templates/apps/api/apps/{{projectName}}-contract/tests/contract.test.ts.hbs +18 -0
  41. package/templates/apps/api/apps/{{projectName}}-contract/tsconfig.json.hbs +12 -0
  42. package/templates/apps/api/apps/{{projectName}}-contract/tsup.config.ts.hbs +11 -0
  43. package/templates/apps/api/apps/{{projectName}}-contract/vitest.config.ts.hbs +9 -0
  44. package/templates/apps/api/apps/{{projectName}}-serv/README.md.hbs +60 -0
  45. package/templates/apps/api/apps/{{projectName}}-serv/config/_core.yml.hbs +17 -0
  46. package/templates/apps/api/apps/{{projectName}}-serv/config/_serv.yml.hbs +54 -0
  47. package/templates/apps/api/apps/{{projectName}}-serv/data/.gitkeep.hbs +1 -0
  48. package/templates/apps/api/apps/{{projectName}}-serv/package.json.hbs +66 -0
  49. package/templates/apps/api/apps/{{projectName}}-serv/src/app.ts.hbs +119 -0
  50. package/templates/apps/api/apps/{{projectName}}-serv/src/build-metadata.ts.hbs +7 -0
  51. package/templates/apps/api/apps/{{projectName}}-serv/src/index.ts.hbs +41 -0
  52. package/templates/apps/api/apps/{{projectName}}-serv/src/lib/server/init.ts.hbs +165 -0
  53. package/templates/apps/api/apps/{{projectName}}-serv/src/server/procedures/app-procedures.ts.hbs +57 -0
  54. package/templates/apps/api/apps/{{projectName}}-serv/src/server/procedures/index.ts.hbs +41 -0
  55. package/templates/apps/api/apps/{{projectName}}-serv/tests/service.test.ts.hbs +176 -0
  56. package/templates/apps/api/apps/{{projectName}}-serv/tsconfig.json.hbs +16 -0
  57. package/templates/apps/api/apps/{{projectName}}-serv/tsup.config.ts.hbs +20 -0
  58. package/templates/apps/api/apps/{{projectName}}-serv/vitest.config.ts.hbs +12 -0
  59. package/templates/apps/api/e2e/api-serv.spec.ts.hbs +113 -0
  60. package/templates/apps/api/e2e/capture-evidence.ts.hbs +23 -0
  61. package/templates/apps/api/eslint.config.js.hbs +30 -0
  62. package/templates/apps/api/hai.json.hbs +4 -0
  63. package/templates/apps/api/images/serv.Dockerfile.hbs +37 -0
  64. package/templates/apps/api/package.json.hbs +53 -0
  65. package/templates/apps/api/playwright.config.ts.hbs +67 -0
  66. package/templates/apps/api/pnpm-workspace.yaml.hbs +40 -0
  67. package/templates/apps/api/tsconfig.base.json +14 -0
  68. package/templates/apps/fullstack/.dockerignore.hbs +25 -0
  69. package/templates/apps/fullstack/.gitignore.hbs +38 -0
  70. package/templates/apps/fullstack/.npmrc.hbs +1 -0
  71. package/templates/apps/fullstack/apps/{{projectName}}-app/.env.example.hbs +10 -0
  72. package/templates/apps/fullstack/apps/{{projectName}}-app/README.md.hbs +67 -0
  73. package/templates/apps/fullstack/apps/{{projectName}}-app/capacitor.config.ts.hbs +20 -0
  74. package/templates/apps/fullstack/apps/{{projectName}}-app/eslint.config.js.hbs +20 -0
  75. package/templates/apps/fullstack/apps/{{projectName}}-app/index.html.hbs +22 -0
  76. package/templates/apps/fullstack/apps/{{projectName}}-app/messages/en-US.json.hbs +7 -0
  77. package/templates/apps/fullstack/apps/{{projectName}}-app/messages/ja-JP.json.hbs +7 -0
  78. package/templates/apps/fullstack/apps/{{projectName}}-app/messages/zh-CN.json.hbs +7 -0
  79. package/templates/apps/fullstack/apps/{{projectName}}-app/package.json.hbs +86 -0
  80. package/templates/apps/fullstack/apps/{{projectName}}-app/project.inlang/settings.json.hbs +17 -0
  81. package/templates/apps/fullstack/apps/{{projectName}}-app/public/runtime-config.js.hbs +4 -0
  82. package/templates/apps/fullstack/apps/{{projectName}}-app/src/App.svelte.hbs +59 -0
  83. package/templates/apps/fullstack/apps/{{projectName}}-app/src/app.css.hbs +20 -0
  84. package/templates/apps/fullstack/apps/{{projectName}}-app/src/app.d.ts.hbs +8 -0
  85. package/templates/apps/fullstack/apps/{{projectName}}-app/src/build-metadata.ts.hbs +9 -0
  86. package/templates/apps/fullstack/apps/{{projectName}}-app/src/lib/capacitor.ts.hbs +19 -0
  87. package/templates/apps/fullstack/apps/{{projectName}}-app/src/main.ts.hbs +21 -0
  88. package/templates/apps/fullstack/apps/{{projectName}}-app/svelte.config.js.hbs +16 -0
  89. package/templates/apps/fullstack/apps/{{projectName}}-app/tsconfig.json.hbs +23 -0
  90. package/templates/apps/fullstack/apps/{{projectName}}-app/vite.config.ts.hbs +74 -0
  91. package/templates/apps/fullstack/apps/{{projectName}}-desktop/.env.example.hbs +6 -0
  92. package/templates/apps/fullstack/apps/{{projectName}}-desktop/README.md.hbs +64 -0
  93. package/templates/apps/fullstack/apps/{{projectName}}-desktop/eslint.config.js.hbs +20 -0
  94. package/templates/apps/fullstack/apps/{{projectName}}-desktop/index.html.hbs +20 -0
  95. package/templates/apps/fullstack/apps/{{projectName}}-desktop/messages/en-US.json.hbs +7 -0
  96. package/templates/apps/fullstack/apps/{{projectName}}-desktop/messages/ja-JP.json.hbs +7 -0
  97. package/templates/apps/fullstack/apps/{{projectName}}-desktop/messages/zh-CN.json.hbs +7 -0
  98. package/templates/apps/fullstack/apps/{{projectName}}-desktop/package.json.hbs +66 -0
  99. package/templates/apps/fullstack/apps/{{projectName}}-desktop/project.inlang/settings.json.hbs +17 -0
  100. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/App.svelte.hbs +25 -0
  101. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/app.css.hbs +18 -0
  102. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/app.d.ts.hbs +8 -0
  103. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/build-metadata.ts.hbs +9 -0
  104. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/main.ts.hbs +20 -0
  105. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/Cargo.toml.hbs +33 -0
  106. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/build.rs.hbs +6 -0
  107. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/capabilities/default.json.hbs +16 -0
  108. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/128x128.png +0 -0
  109. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/128x128@2x.png +0 -0
  110. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/32x32.png +0 -0
  111. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/icon.icns +0 -0
  112. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/icons/icon.ico +0 -0
  113. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/src/lib.rs.hbs +91 -0
  114. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/src/main.rs.hbs +8 -0
  115. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/tauri.conf.json.hbs +46 -0
  116. package/templates/apps/fullstack/apps/{{projectName}}-desktop/svelte.config.js.hbs +14 -0
  117. package/templates/apps/fullstack/apps/{{projectName}}-desktop/tsconfig.json.hbs +22 -0
  118. package/templates/apps/fullstack/apps/{{projectName}}-desktop/vite.config.ts.hbs +89 -0
  119. package/templates/apps/fullstack/apps/{{projectName}}-miniapp/README.md.hbs +25 -0
  120. package/templates/apps/fullstack/apps/{{projectName}}-miniapp/messages/en-US.json.hbs +12 -0
  121. package/templates/apps/fullstack/apps/{{projectName}}-miniapp/messages/ja-JP.json.hbs +12 -0
  122. package/templates/apps/fullstack/apps/{{projectName}}-miniapp/messages/zh-CN.json.hbs +12 -0
  123. package/templates/apps/fullstack/apps/{{projectName}}-miniapp/project.inlang/settings.json.hbs +17 -0
  124. package/templates/apps/fullstack/apps/{{projectName}}-web/README.md.hbs +54 -0
  125. package/templates/apps/fullstack/apps/{{projectName}}-web/eslint.config.js.hbs +20 -0
  126. package/templates/apps/fullstack/apps/{{projectName}}-web/index.html.hbs +21 -0
  127. package/templates/apps/fullstack/apps/{{projectName}}-web/messages/en-US.json.hbs +7 -0
  128. package/templates/apps/fullstack/apps/{{projectName}}-web/messages/ja-JP.json.hbs +7 -0
  129. package/templates/apps/fullstack/apps/{{projectName}}-web/messages/zh-CN.json.hbs +7 -0
  130. package/templates/apps/fullstack/apps/{{projectName}}-web/package.json.hbs +53 -0
  131. package/templates/apps/fullstack/apps/{{projectName}}-web/project.inlang/settings.json.hbs +17 -0
  132. package/templates/apps/fullstack/apps/{{projectName}}-web/public/runtime-config.js.hbs +1 -0
  133. package/templates/apps/fullstack/apps/{{projectName}}-web/src/App.svelte.hbs +18 -0
  134. package/templates/apps/fullstack/apps/{{projectName}}-web/src/app.css.hbs +18 -0
  135. package/templates/apps/fullstack/apps/{{projectName}}-web/src/app.d.ts.hbs +8 -0
  136. package/templates/apps/fullstack/apps/{{projectName}}-web/src/build-metadata.ts.hbs +9 -0
  137. package/templates/apps/fullstack/apps/{{projectName}}-web/src/main.ts.hbs +14 -0
  138. package/templates/apps/fullstack/apps/{{projectName}}-web/svelte.config.js.hbs +16 -0
  139. package/templates/apps/fullstack/apps/{{projectName}}-web/tsconfig.json.hbs +23 -0
  140. package/templates/apps/fullstack/apps/{{projectName}}-web/vite.config.ts.hbs +76 -0
  141. package/templates/apps/fullstack/docs/security-configuration.md.hbs +349 -0
  142. package/templates/apps/fullstack/e2e/fullstack.spec.ts.hbs +988 -0
  143. package/templates/apps/fullstack/e2e/session-close.spec.ts.hbs +119 -0
  144. package/templates/apps/fullstack/eslint.config.js.hbs +41 -0
  145. package/templates/apps/fullstack/hai.json.hbs +11 -0
  146. package/templates/apps/fullstack/images/serv.Dockerfile.hbs +38 -0
  147. package/templates/apps/fullstack/images/web/19-runtime-config.envsh.hbs +5 -0
  148. package/templates/apps/fullstack/images/web/nginx.conf.hbs +24 -0
  149. package/templates/apps/fullstack/images/web/runtime-config.js.template.hbs +3 -0
  150. package/templates/apps/fullstack/images/web.Dockerfile.hbs +37 -0
  151. package/templates/apps/fullstack/package.json.hbs +61 -0
  152. package/templates/apps/fullstack/packages/{{projectName}}-contract/README.md.hbs +40 -0
  153. package/templates/apps/fullstack/packages/{{projectName}}-contract/package.json.hbs +30 -0
  154. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/admin-contract.ts.hbs +78 -0
  155. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/admin-schemas.ts.hbs +134 -0
  156. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/app-contract.ts.hbs +20 -0
  157. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/app-schemas.ts.hbs +35 -0
  158. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/index.ts.hbs +7 -0
  159. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/{{projectName}}-contract.ts.hbs +23 -0
  160. package/templates/apps/fullstack/packages/{{projectName}}-contract/tests/contract.test.ts.hbs +31 -0
  161. package/templates/apps/fullstack/packages/{{projectName}}-contract/tsconfig.json.hbs +9 -0
  162. package/templates/apps/fullstack/packages/{{projectName}}-contract/tsup.config.ts.hbs +9 -0
  163. package/templates/apps/fullstack/packages/{{projectName}}-serv/README.md.hbs +84 -0
  164. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_ai.yml.hbs +1 -0
  165. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_audit.yml.hbs +1 -0
  166. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_cache.yml.hbs +1 -0
  167. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_core.yml.hbs +22 -0
  168. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_db.yml.hbs +1 -0
  169. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_feedback.yml.hbs +1 -0
  170. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_iam.yml.hbs +1 -0
  171. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_payment.yml.hbs +1 -0
  172. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_reach.yml.hbs +60 -0
  173. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_scheduler.yml.hbs +1 -0
  174. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_serv.yml.hbs +64 -0
  175. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_storage.yml.hbs +1 -0
  176. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_vecdb.yml.hbs +1 -0
  177. package/templates/apps/fullstack/packages/{{projectName}}-serv/data/.gitkeep.hbs +1 -0
  178. package/templates/apps/fullstack/packages/{{projectName}}-serv/package.json.hbs +62 -0
  179. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/app-server.ts.hbs +115 -0
  180. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/build-metadata.ts.hbs +7 -0
  181. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/index.ts.hbs +40 -0
  182. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/admin-service.ts.hbs +294 -0
  183. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/audit-jobs.ts.hbs +28 -0
  184. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/business-settings.ts.hbs +50 -0
  185. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/messages.ts.hbs +50 -0
  186. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/admin-procedures.ts.hbs +106 -0
  187. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/app-procedures.ts.hbs +49 -0
  188. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/index.ts.hbs +34 -0
  189. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/runtime.ts.hbs +159 -0
  190. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/security-roles.ts.hbs +73 -0
  191. package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/app-server.test.ts.hbs +505 -0
  192. package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/runtime.test.ts.hbs +72 -0
  193. package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/security.test.ts.hbs +183 -0
  194. package/templates/apps/fullstack/packages/{{projectName}}-serv/tsconfig.json.hbs +10 -0
  195. package/templates/apps/fullstack/packages/{{projectName}}-serv/tsup.config.ts.hbs +18 -0
  196. package/templates/apps/fullstack/packages/{{projectName}}-serv/vitest.config.ts.hbs +12 -0
  197. package/templates/apps/fullstack/packages/{{projectName}}-shared/.gitignore.hbs +10 -0
  198. package/templates/apps/fullstack/packages/{{projectName}}-shared/README.md.hbs +97 -0
  199. package/templates/apps/fullstack/packages/{{projectName}}-shared/messages/en-US.json.hbs +164 -0
  200. package/templates/apps/fullstack/packages/{{projectName}}-shared/messages/ja-JP.json.hbs +164 -0
  201. package/templates/apps/fullstack/packages/{{projectName}}-shared/messages/zh-CN.json.hbs +164 -0
  202. package/templates/apps/fullstack/packages/{{projectName}}-shared/package.json.hbs +55 -0
  203. package/templates/apps/fullstack/packages/{{projectName}}-shared/project.inlang/settings.json.hbs +11 -0
  204. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/index.ts.hbs +7 -0
  205. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/api-client.ts.hbs +94 -0
  206. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/feedback-client.ts.hbs +36 -0
  207. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/sensitive-actions.svelte.ts.hbs +16 -0
  208. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/session-recovery.svelte.ts.hbs +4 -0
  209. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/AdminWorkspace.svelte.hbs +122 -0
  210. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/AppShell.svelte.hbs +90 -0
  211. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/FeedbackEntry.svelte.hbs +86 -0
  212. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/audit.svelte.hbs +94 -0
  213. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/configuration.svelte.hbs +25 -0
  214. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/feedback.svelte.hbs +157 -0
  215. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/roles.svelte.hbs +77 -0
  216. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/settings.svelte.hbs +44 -0
  217. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/users.svelte.hbs +216 -0
  218. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/security/role-label.ts.hbs +12 -0
  219. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/guide-store.ts.hbs +55 -0
  220. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/management-store.svelte.ts.hbs +614 -0
  221. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/theme-store.svelte.ts.hbs +23 -0
  222. package/templates/apps/fullstack/packages/{{projectName}}-shared/svelte.config.js.hbs +1 -0
  223. package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/api-client.test.ts.hbs +150 -0
  224. package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/management-store.test.ts.hbs +253 -0
  225. package/templates/apps/fullstack/packages/{{projectName}}-shared/tsconfig.json.hbs +17 -0
  226. package/templates/apps/fullstack/packages/{{projectName}}-shared/vitest.config.ts.hbs +7 -0
  227. package/templates/apps/fullstack/playwright.config.ts.hbs +114 -0
  228. package/templates/apps/fullstack/playwright.session-close.config.ts.hbs +18 -0
  229. package/templates/apps/fullstack/pnpm-workspace.yaml.hbs +38 -0
  230. package/templates/apps/fullstack/tsconfig.base.json +14 -0
  231. package/templates/apps/h5/messages/en-US.json +3 -0
  232. package/templates/apps/h5/messages/ja-JP.json +40 -0
  233. package/templates/apps/h5/messages/zh-CN.json +3 -0
  234. package/templates/apps/h5/src/routes/+layout.svelte.hbs +85 -30
  235. package/templates/apps/h5/src/routes/+page.svelte.hbs +20 -8
  236. package/templates/apps/h5/src/routes/discover/+page.svelte.hbs +17 -6
  237. package/templates/apps/h5/src/routes/profile/+page.svelte.hbs +17 -6
  238. package/templates/apps/mobile-app/.env.hbs +3 -0
  239. package/templates/apps/{android-app → mobile-app}/capacitor.config.ts.hbs +2 -2
  240. package/templates/apps/mobile-app/index.html.hbs +14 -0
  241. package/templates/apps/mobile-app/messages/en-US.json +36 -0
  242. package/templates/apps/mobile-app/messages/ja-JP.json +36 -0
  243. package/templates/apps/mobile-app/messages/zh-CN.json +36 -0
  244. package/templates/apps/mobile-app/public/runtime-config.js +1 -0
  245. package/templates/apps/mobile-app/src/App.svelte.hbs +153 -0
  246. package/templates/apps/mobile-app/src/lib/api.ts.hbs +213 -0
  247. package/templates/apps/mobile-app/src/lib/app-config.ts.hbs +14 -0
  248. package/templates/apps/{android-app → mobile-app}/src/lib/capacitor.ts +6 -7
  249. package/templates/apps/mobile-app/src/lib/pages/home.svelte.hbs +58 -0
  250. package/templates/apps/mobile-app/src/lib/pages/profile.svelte.hbs +13 -0
  251. package/templates/apps/mobile-app/src/lib/pages/tasks.svelte.hbs +16 -0
  252. package/templates/apps/mobile-app/src/main.ts.hbs +11 -0
  253. package/templates/apps/website/messages/en-US.json +4 -2
  254. package/templates/apps/website/messages/ja-JP.json +34 -0
  255. package/templates/apps/website/messages/zh-CN.json +4 -2
  256. package/templates/apps/website/scripts/static-website.mjs.hbs +67 -0
  257. package/templates/apps/website/src/routes/+layout.svelte.hbs +77 -26
  258. package/templates/apps/website/src/routes/+layout.ts +3 -0
  259. package/templates/apps/website/src/routes/+page.svelte.hbs +31 -12
  260. package/templates/apps/website/src/routes/about/+page.svelte.hbs +11 -6
  261. package/templates/apps/website/src/routes/api/health/+server.ts +3 -0
  262. package/templates/apps/website/src/routes/contact/+page.svelte.hbs +44 -34
  263. package/templates/apps/website/src/routes/services/+page.svelte.hbs +27 -40
  264. package/templates/base/.dockerignore.hbs +27 -0
  265. package/templates/base/.gitignore.hbs +41 -0
  266. package/templates/base/.npmrc.hbs +1 -0
  267. package/templates/base/e2e/app.spec.ts.hbs +213 -0
  268. package/templates/base/e2e/helpers.ts +1 -1
  269. package/templates/base/eslint-rules.js +45 -0
  270. package/templates/base/eslint.config.js.hbs +34 -0
  271. package/templates/base/hai.json.hbs +4 -0
  272. package/templates/base/images/web/nginx.conf.hbs +24 -0
  273. package/templates/base/images/web.Dockerfile.hbs +72 -0
  274. package/templates/base/package.json.hbs +125 -49
  275. package/templates/base/playwright.config.ts +44 -6
  276. package/templates/base/pnpm-workspace.yaml.hbs +40 -0
  277. package/templates/base/src/app.css.hbs +40 -0
  278. package/templates/base/src/app.d.ts.hbs +14 -1
  279. package/templates/base/src/app.html.hbs +13 -0
  280. package/templates/base/src/hooks.server.ts.hbs +115 -43
  281. package/templates/base/src/lib/build-metadata.ts.hbs +7 -0
  282. package/templates/base/src/lib/server/init.ts.hbs +125 -152
  283. package/templates/base/src/lib/server/kit-config.ts.hbs +40 -0
  284. package/templates/base/src/routes/+layout.server.ts.hbs +35 -0
  285. package/templates/base/static/favicon.png +0 -0
  286. package/templates/base/svelte.config.js.hbs +84 -5
  287. package/templates/base/tests/scaffold.test.ts.hbs +102 -0
  288. package/templates/base/tsconfig.json.hbs +50 -0
  289. package/templates/base/vite.config.ts.hbs +117 -12
  290. package/templates/base/vitest.config.ts.hbs +19 -0
  291. package/templates/features/ai/routes/api/chat/+server.ts +6 -7
  292. package/templates/features/iam/routes-admin/(auth)/+layout.svelte.hbs +3 -17
  293. package/templates/features/iam/routes-admin/(auth)/auth/forgot-password/+page.svelte.hbs +10 -0
  294. package/templates/features/iam/routes-admin/(auth)/auth/login/+page.svelte.hbs +9 -96
  295. package/templates/features/iam/routes-admin/(auth)/auth/register/+page.svelte.hbs +9 -122
  296. package/templates/features/iam/routes-admin/(auth)/auth/reset-password/+page.svelte.hbs +10 -0
  297. package/templates/features/iam/routes-h5/auth/forgot-password/+page.svelte.hbs +10 -0
  298. package/templates/features/iam/routes-h5/auth/login/+page.svelte.hbs +9 -96
  299. package/templates/features/iam/routes-h5/auth/register/+page.svelte.hbs +9 -112
  300. package/templates/features/iam/routes-h5/auth/reset-password/+page.svelte.hbs +10 -0
  301. package/templates/features/iam/routes-shared/api/auth/captcha/+server.ts.hbs +4 -0
  302. package/templates/features/iam/routes-shared/api/auth/config/+server.ts +4 -0
  303. package/templates/features/iam/routes-shared/api/auth/login/+server.ts +1 -29
  304. package/templates/features/iam/routes-shared/api/auth/login/ldap/+server.ts +4 -0
  305. package/templates/features/iam/routes-shared/api/auth/login/otp/+server.ts +4 -0
  306. package/templates/features/iam/routes-shared/api/auth/logout/+server.ts +13 -6
  307. package/templates/features/iam/routes-shared/api/auth/otp/send/+server.ts +4 -0
  308. package/templates/features/iam/routes-shared/api/auth/password/renew/+server.ts +5 -0
  309. package/templates/features/iam/routes-shared/api/auth/password-reset/confirm/+server.ts +4 -0
  310. package/templates/features/iam/routes-shared/api/auth/password-reset/request/+server.ts +4 -0
  311. package/templates/features/iam/routes-shared/api/auth/reauthenticate/+server.ts +5 -0
  312. package/templates/features/iam/routes-shared/api/auth/register/+server.ts +1 -23
  313. package/templates/features/iam/routes-shared/api/auth/session/close/+server.ts.hbs +4 -0
  314. package/templates/features/iam/routes-website/auth/forgot-password/+page.svelte.hbs +10 -0
  315. package/templates/features/iam/routes-website/auth/login/+page.svelte.hbs +11 -0
  316. package/templates/features/iam/routes-website/auth/register/+page.svelte.hbs +11 -0
  317. package/templates/features/iam/routes-website/auth/reset-password/+page.svelte.hbs +10 -0
  318. package/templates/features/payment/routes/api/v1/payment/create/+server.ts +25 -23
  319. package/templates/features/payment/routes/api/v1/payment/notify/[provider]/+server.ts +5 -2
  320. package/templates/features/storage/routes/api/upload/+server.ts +10 -8
  321. package/templates/i18n/project.inlang/settings.json +2 -2
  322. package/templates/shared/.gitattributes +11 -0
  323. package/templates/shared/build-metadata.ts +42 -0
  324. package/templates/shared/container-runtime-config.sh +30 -0
  325. package/templates/shared/e2e-env.ts +98 -0
  326. package/templates/shared/hash-router.svelte.ts +83 -0
  327. package/templates/shared/public-base-path.mjs +19 -0
  328. package/templates/shared/run-e2e.mjs +104 -0
  329. package/templates/shared/vite-runtime-config.ts +56 -0
  330. package/templates/skills/AGENTS.md +75 -16
  331. package/templates/skills/CLAUDE.md +0 -11
  332. package/templates/skills/bridges/admin/AGENTS.md +89 -0
  333. package/templates/skills/bridges/api/AGENTS.md +83 -0
  334. package/templates/skills/bridges/fullstack/AGENTS.md.hbs +102 -0
  335. package/templates/skills/bridges/h5/AGENTS.md +88 -0
  336. package/templates/skills/bridges/mobile-app/AGENTS.md +100 -0
  337. package/templates/skills/bridges/website/AGENTS.md +88 -0
  338. package/templates/skills/copilot-instructions.md +3 -59
  339. package/templates/skills/hai-ai/SKILL.md +44 -715
  340. package/templates/skills/hai-ai/guide.md +457 -0
  341. package/templates/skills/hai-ai/reference.md +292 -0
  342. package/templates/skills/hai-api-client/SKILL.md +26 -339
  343. package/templates/skills/hai-api-client/reference.md +180 -0
  344. package/templates/skills/hai-api-contract/SKILL.md +36 -0
  345. package/templates/skills/hai-api-contract/reference.md +280 -0
  346. package/templates/skills/hai-app-create/SKILL.md +38 -351
  347. package/templates/skills/hai-app-create/collaboration.md +52 -0
  348. package/templates/skills/hai-app-create/development.md +243 -0
  349. package/templates/skills/hai-app-create/reference.md +376 -0
  350. package/templates/skills/hai-app-review/SKILL.md +57 -126
  351. package/templates/skills/hai-app-review/differential.md +34 -0
  352. package/templates/skills/hai-app-tests/SKILL.md +34 -454
  353. package/templates/skills/hai-app-tests/reference.md +462 -0
  354. package/templates/skills/hai-app-tests/validation.md +42 -0
  355. package/templates/skills/hai-audit/SKILL.md +37 -122
  356. package/templates/skills/hai-audit/reference.md +184 -0
  357. package/templates/skills/hai-build/SKILL.md +62 -315
  358. package/templates/skills/hai-build/paths.md +30 -0
  359. package/templates/skills/hai-build/reference.md +353 -0
  360. package/templates/skills/hai-cache/SKILL.md +26 -175
  361. package/templates/skills/hai-cache/reference.md +229 -0
  362. package/templates/skills/hai-capacitor/SKILL.md +24 -364
  363. package/templates/skills/hai-capacitor/reference.md +358 -0
  364. package/templates/skills/hai-change-plan/SKILL.md +46 -0
  365. package/templates/skills/hai-ci/SKILL.md +114 -0
  366. package/templates/skills/hai-core/SKILL.md +31 -469
  367. package/templates/skills/hai-core/reference.md +557 -0
  368. package/templates/skills/hai-core/request-access.md +65 -0
  369. package/templates/skills/hai-crypto/SKILL.md +29 -180
  370. package/templates/skills/hai-crypto/reference.md +317 -0
  371. package/templates/skills/hai-datapipe/SKILL.md +24 -207
  372. package/templates/skills/hai-datapipe/reference.md +204 -0
  373. package/templates/skills/hai-deploy/SKILL.md +53 -178
  374. package/templates/skills/hai-deploy/credentials.md +19 -0
  375. package/templates/skills/hai-deploy/middleware.md +129 -0
  376. package/templates/skills/hai-feedback/SKILL.md +85 -0
  377. package/templates/skills/hai-framework-sync/SKILL.md +105 -0
  378. package/templates/skills/hai-framework-sync/sync.md +49 -0
  379. package/templates/skills/hai-iam/SKILL.md +53 -325
  380. package/templates/skills/hai-iam/reference.md +535 -0
  381. package/templates/skills/hai-kit/SKILL.md +33 -329
  382. package/templates/skills/hai-kit/reference.md +202 -0
  383. package/templates/skills/hai-payment/SKILL.md +28 -262
  384. package/templates/skills/hai-payment/reference.md +295 -0
  385. package/templates/skills/hai-pr-review/SKILL.md +41 -0
  386. package/templates/skills/hai-reach/SKILL.md +28 -300
  387. package/templates/skills/hai-reach/reference.md +363 -0
  388. package/templates/skills/hai-reldb/SKILL.md +28 -449
  389. package/templates/skills/hai-reldb/reference.md +500 -0
  390. package/templates/skills/hai-scheduler/SKILL.md +26 -174
  391. package/templates/skills/hai-scheduler/reference.md +216 -0
  392. package/templates/skills/hai-serv/SKILL.md +60 -0
  393. package/templates/skills/hai-serv/reference.md +792 -0
  394. package/templates/skills/hai-spec-implement/SKILL.md +50 -0
  395. package/templates/skills/hai-spec-implement/changes.md +67 -0
  396. package/templates/skills/hai-spec-implement/evaluation.md +18 -0
  397. package/templates/skills/hai-spec-implement/handoff.md +47 -0
  398. package/templates/skills/hai-spec-implement/templates.md +117 -0
  399. package/templates/skills/hai-spec-implement/workflow.md +56 -0
  400. package/templates/skills/hai-spec-review/SKILL.md +57 -0
  401. package/templates/skills/hai-spec-review/checklist.md +71 -0
  402. package/templates/skills/hai-storage/SKILL.md +31 -262
  403. package/templates/skills/hai-storage/reference.md +284 -0
  404. package/templates/skills/hai-ui/SKILL.md +62 -238
  405. package/templates/skills/hai-ui/guide.md +81 -0
  406. package/templates/skills/hai-ui/reference.md +705 -0
  407. package/templates/skills/hai-ui-design/SKILL.md +31 -0
  408. package/templates/skills/hai-ui-design/patterns.md +31 -0
  409. package/templates/skills/hai-ui-review/SKILL.md +32 -0
  410. package/templates/skills/hai-ui-review/checklist.md +29 -0
  411. package/templates/skills/hai-vecdb/SKILL.md +25 -267
  412. package/templates/skills/hai-vecdb/reference.md +325 -0
  413. package/templates/skills/opencode.json +0 -5
  414. package/dist/chunk-2H7UOFLK.js +0 -10
  415. package/dist/chunk-LANIDJC7.js +0 -659
  416. package/dist/chunk-LANIDJC7.js.map +0 -1
  417. package/dist/chunk-YV7WPUI6.js +0 -206
  418. package/dist/chunk-YV7WPUI6.js.map +0 -1
  419. package/dist/config-templates-S5RI2MC6.js +0 -5
  420. package/dist/config-templates-S5RI2MC6.js.map +0 -1
  421. package/dist/skill-templates-N5DU5FNX.js +0 -5
  422. package/dist/skill-templates-N5DU5FNX.js.map +0 -1
  423. package/dist/src-XJ6YXNAF.js +0 -15030
  424. package/dist/src-XJ6YXNAF.js.map +0 -1
  425. package/templates/apps/android-app/.env.hbs +0 -3
  426. package/templates/apps/android-app/messages/en-US.json +0 -24
  427. package/templates/apps/android-app/messages/zh-CN.json +0 -24
  428. package/templates/apps/android-app/src/lib/api.ts.hbs +0 -30
  429. package/templates/apps/android-app/src/routes/+layout.svelte.hbs +0 -42
  430. package/templates/apps/android-app/src/routes/+layout.ts +0 -7
  431. package/templates/apps/android-app/src/routes/+page.svelte.hbs +0 -27
  432. package/templates/apps/api/src/routes/+layout.svelte +0 -14
  433. package/templates/apps/api/src/routes/+page.svelte +0 -11
  434. package/templates/apps/api/src/routes/api/v1/health/+server.ts +0 -14
  435. package/templates/apps/api/src/routes/api/v1/items/+server.ts +0 -37
  436. package/templates/apps/api/src/routes/api/v1/items/[id]/+server.ts +0 -30
  437. package/templates/base/src/app.css +0 -2
  438. package/templates/base/tsconfig.json +0 -8
@@ -1,659 +0,0 @@
1
- #!/usr/bin/env node
2
- // src/commands/config-templates.ts
3
- function generateConfigFile(moduleKey, configs) {
4
- switch (moduleKey) {
5
- case "core":
6
- return generateCoreConfig(configs?.core);
7
- case "db":
8
- return generateDbConfig(configs?.db);
9
- case "cache":
10
- return generateCacheConfig(configs?.cache);
11
- case "iam":
12
- return generateIamConfig(configs?.iam);
13
- case "storage":
14
- return generateStorageConfig(configs?.storage);
15
- case "ai":
16
- return generateAiConfig(configs?.ai);
17
- case "deploy":
18
- return generateDeployConfig();
19
- case "vecdb":
20
- return generateVecdbConfig();
21
- case "reach":
22
- return generateReachConfig();
23
- case "scheduler":
24
- return generateSchedulerConfig();
25
- case "audit":
26
- return generateAuditConfig();
27
- case "payment":
28
- return generatePaymentConfig();
29
- default:
30
- return `# ${moduleKey} \u914D\u7F6E
31
- `;
32
- }
33
- }
34
- function generateCoreConfig(cfg) {
35
- const name = cfg?.name ?? "my-app";
36
- const locale = cfg?.defaultLocale ?? "zh-CN";
37
- const supportedLocales = locale === "en-US" ? ` - en-US
38
- - zh-CN` : ` - zh-CN
39
- - en-US`;
40
- return `# =============================================================================
41
- # \u5E94\u7528\u914D\u7F6E
42
- # =============================================================================
43
-
44
- name: ${name}
45
- version: 0.1.0
46
- env: \${HAI_ENV:development}
47
- debug: \${HAI_DEBUG:false}
48
-
49
- defaultLocale: ${locale}
50
- supportedLocales:
51
- ${supportedLocales}
52
- `;
53
- }
54
- function generateDbConfig(cfg) {
55
- const dbType = cfg?.type ?? "sqlite";
56
- const database = cfg?.database ?? (dbType === "sqlite" ? "./data/app.db" : "hai");
57
- const host = cfg?.host ?? "localhost";
58
- const port = cfg?.port ?? (dbType === "postgresql" ? 5432 : 3306);
59
- if (dbType === "sqlite") {
60
- return `# =============================================================================
61
- # \u6570\u636E\u5E93\u914D\u7F6E
62
- # =============================================================================
63
-
64
- # \u6570\u636E\u5E93\u7C7B\u578B: sqlite | postgresql | mysql
65
- type: sqlite
66
-
67
- # SQLite \u6570\u636E\u5E93\u8DEF\u5F84
68
- database: \${HAI_RELDB_DATABASE:${database}}
69
-
70
- # PostgreSQL/MySQL \u914D\u7F6E\uFF08\u53EF\u9009\uFF09
71
- # host: \${HAI_RELDB_HOST:localhost}
72
- # port: \${HAI_RELDB_PORT:5432}
73
- # user: \${HAI_RELDB_USER:postgres}
74
- # password: \${HAI_RELDB_PASSWORD:}
75
- `;
76
- }
77
- const user = dbType === "postgresql" ? "postgres" : "root";
78
- return `# =============================================================================
79
- # \u6570\u636E\u5E93\u914D\u7F6E
80
- # =============================================================================
81
-
82
- # \u6570\u636E\u5E93\u7C7B\u578B: sqlite | postgresql | mysql
83
- type: ${dbType}
84
-
85
- # \u6570\u636E\u5E93\u540D\u79F0
86
- database: \${HAI_RELDB_DATABASE:${database}}
87
-
88
- # \u8FDE\u63A5\u914D\u7F6E
89
- host: \${HAI_RELDB_HOST:${host}}
90
- port: \${HAI_RELDB_PORT:${port}}
91
- user: \${HAI_RELDB_USER:${user}}
92
- password: \${HAI_RELDB_PASSWORD:}
93
- `;
94
- }
95
- function generateCacheConfig(cfg) {
96
- const cacheType = cfg?.type ?? "memory";
97
- if (cacheType === "memory") {
98
- return `# =============================================================================
99
- # \u7F13\u5B58\u914D\u7F6E
100
- # =============================================================================
101
-
102
- # \u7F13\u5B58\u7C7B\u578B: memory | redis
103
- type: memory
104
-
105
- # Redis \u914D\u7F6E\uFF08\u5F53 type \u4E3A redis \u65F6\u4F7F\u7528\uFF09
106
- # url: \${HAI_CACHE_REDIS_URL:redis://localhost:6379/0}
107
- # host: \${HAI_CACHE_REDIS_HOST:localhost}
108
- # port: \${HAI_CACHE_REDIS_PORT:6379}
109
- # password: \${HAI_CACHE_REDIS_PASSWORD:}
110
- # keyPrefix: \${HAI_CACHE_KEY_PREFIX:hai:}
111
- `;
112
- }
113
- const host = cfg?.host ?? "localhost";
114
- const port = cfg?.port ?? 6379;
115
- return `# =============================================================================
116
- # \u7F13\u5B58\u914D\u7F6E
117
- # =============================================================================
118
-
119
- # \u7F13\u5B58\u7C7B\u578B: memory | redis
120
- type: redis
121
-
122
- # Redis \u914D\u7F6E
123
- host: \${HAI_CACHE_REDIS_HOST:${host}}
124
- port: \${HAI_CACHE_REDIS_PORT:${port}}
125
- password: \${HAI_CACHE_REDIS_PASSWORD:}
126
- keyPrefix: \${HAI_CACHE_KEY_PREFIX:hai:}
127
- `;
128
- }
129
- function generateIamConfig(cfg) {
130
- const loginPassword = cfg?.loginPassword ?? true;
131
- const loginOtp = cfg?.loginOtp ?? false;
132
- return `# =============================================================================
133
- # IAM \u914D\u7F6E
134
- # =============================================================================
135
-
136
- # \u767B\u5F55\u914D\u7F6E
137
- login:
138
- password: ${loginPassword}
139
- otp: ${loginOtp}
140
- ldap: false
141
-
142
- # \u5BC6\u7801\u7B56\u7565
143
- password:
144
- minLength: 8
145
- maxLength: 128
146
- requireUppercase: false
147
- requireLowercase: false
148
- requireNumber: false
149
- requireSpecialChar: false
150
-
151
- # \u4F1A\u8BDD\u914D\u7F6E
152
- session:
153
- maxAge: 86400 # \u4F1A\u8BDD\u8D85\u65F6\uFF08\u79D2\uFF09\uFF0C\u9ED8\u8BA4 24 \u5C0F\u65F6
154
- sliding: true # \u6ED1\u52A8\u7A97\u53E3\uFF08\u6BCF\u6B21\u8BF7\u6C42\u5237\u65B0\u8FC7\u671F\u65F6\u95F4\uFF09
155
- singleDevice: false # \u5355\u8BBE\u5907\u767B\u5F55
156
- refreshTokenMaxAge: 604800 # refreshToken \u8FC7\u671F\uFF08\u79D2\uFF09\uFF0C\u9ED8\u8BA4 7 \u5929
157
-
158
- # RBAC \u914D\u7F6E
159
- rbac:
160
- defaultRole: user
161
-
162
- # \u662F\u5426\u81EA\u52A8\u521B\u5EFA\u9ED8\u8BA4\u6570\u636E
163
- seedDefaultData: true
164
- `;
165
- }
166
- function generateStorageConfig(cfg) {
167
- const storageType = cfg?.type ?? "local";
168
- if (storageType === "local") {
169
- const localPath = cfg?.localPath ?? "./data/uploads";
170
- return `# =============================================================================
171
- # \u5B58\u50A8\u914D\u7F6E
172
- # =============================================================================
173
-
174
- # \u9ED8\u8BA4 Provider
175
- defaultProvider: local
176
-
177
- # Provider \u914D\u7F6E
178
- providers:
179
- local:
180
- type: local
181
- root: \${HAI_STORAGE_PATH:${localPath}}
182
- maxFileSize: 10485760 # 10MB
183
-
184
- # S3 \u914D\u7F6E\uFF08\u53EF\u9009\uFF09
185
- # s3:
186
- # type: s3
187
- # bucket: \${HAI_STORAGE_S3_BUCKET}
188
- # region: \${HAI_STORAGE_S3_REGION:us-east-1}
189
- # accessKeyId: \${HAI_STORAGE_S3_ACCESS_KEY}
190
- # secretAccessKey: \${HAI_STORAGE_S3_SECRET_KEY}
191
- # endpoint: \${HAI_STORAGE_S3_ENDPOINT}
192
- # forcePathStyle: \${HAI_STORAGE_S3_FORCE_PATH_STYLE:false}
193
- `;
194
- }
195
- return `# =============================================================================
196
- # \u5B58\u50A8\u914D\u7F6E
197
- # =============================================================================
198
-
199
- # \u9ED8\u8BA4 Provider
200
- defaultProvider: s3
201
-
202
- # Provider \u914D\u7F6E
203
- providers:
204
- s3:
205
- type: s3
206
- bucket: \${HAI_STORAGE_S3_BUCKET}
207
- region: \${HAI_STORAGE_S3_REGION:us-east-1}
208
- accessKeyId: \${HAI_STORAGE_S3_ACCESS_KEY}
209
- secretAccessKey: \${HAI_STORAGE_S3_SECRET_KEY}
210
- # endpoint: \${HAI_STORAGE_S3_ENDPOINT}
211
- # forcePathStyle: \${HAI_STORAGE_S3_FORCE_PATH_STYLE:false}
212
-
213
- # \u672C\u5730\u5B58\u50A8\uFF08\u53EF\u9009\uFF09
214
- # local:
215
- # type: local
216
- # root: \${HAI_STORAGE_PATH:./data/uploads}
217
- # maxFileSize: 10485760 # 10MB
218
- `;
219
- }
220
- function generateAiConfig(cfg) {
221
- const model = cfg?.model ?? "gpt-4o-mini";
222
- return `# =============================================================================
223
- # AI \u914D\u7F6E
224
- # =============================================================================
225
-
226
- # LLM \u914D\u7F6E\uFF08\u5FC5\u586B\uFF09
227
- llm:
228
- # API Key\uFF08\u7559\u7A7A\u65F6\u81EA\u52A8\u8BFB\u53D6 HAI_AI_LLM_API_KEY / OPENAI_API_KEY \u73AF\u5883\u53D8\u91CF\uFF09
229
- apiKey: \${HAI_AI_LLM_API_KEY:}
230
- # Base URL\uFF08\u7559\u7A7A\u65F6\u81EA\u52A8\u8BFB\u53D6 HAI_AI_LLM_BASE_URL / OPENAI_BASE_URL\uFF0C\u9ED8\u8BA4 https://api.openai.com/v1\uFF09
231
- # baseUrl: \${HAI_AI_LLM_BASE_URL:}
232
- # \u9ED8\u8BA4\u6A21\u578B
233
- model: ${model}
234
- # \u5168\u5C40\u6700\u5927 Token \u6570\uFF08\u9ED8\u8BA4 4096\uFF09
235
- # maxTokens: 4096
236
- # \u91C7\u6837\u6E29\u5EA6\uFF080-2\uFF0C\u9ED8\u8BA4 0.7\uFF09
237
- # temperature: 0.7
238
- # \u8BF7\u6C42\u8D85\u65F6\uFF08\u6BEB\u79D2\uFF0C\u9ED8\u8BA4 60000\uFF09
239
- # timeout: 60000
240
-
241
- # \u591A\u6A21\u578B\u914D\u7F6E\uFF08\u53EF\u9009\uFF0C\u7528\u4E8E\u573A\u666F\u8DEF\u7531\uFF09
242
- # models:
243
- # - id: fast
244
- # model: gpt-4o-mini
245
- # - id: smart
246
- # model: gpt-4o
247
- # apiKey: \${HAI_AI_LLM_API_KEY:}
248
-
249
- # \u573A\u666F\u6A21\u578B\u6620\u5C04\uFF08\u53EF\u9009\uFF09
250
- # scenarios:
251
- # default: fast
252
- # analysis: smart
253
- `;
254
- }
255
- function generateEnvExample(features, configs) {
256
- const sections = [];
257
- sections.push(`# =============================================================================
258
- # Environment Variables
259
- # =============================================================================
260
- #
261
- # Copy this file to .env and fill in actual values.
262
- # Config files in config/ reference these variables via \${VAR_NAME:default} syntax.
263
- #
264
- # Naming convention: HAI_<MODULE>_<SETTING>
265
- # =============================================================================`);
266
- sections.push(`
267
- # =============================================================================
268
- # Application
269
- # =============================================================================
270
- # Environment: development | production | test
271
- HAI_ENV=development
272
- # Enable debug mode
273
- HAI_DEBUG=false`);
274
- if (features.includes("db")) {
275
- const dbType = configs?.db?.type ?? "sqlite";
276
- const dbDatabase = configs?.db?.database ?? (dbType === "sqlite" ? "./data/app.db" : "hai");
277
- const isSqlite = dbType === "sqlite";
278
- sections.push(`
279
- # =============================================================================
280
- # Database (@h-ai/reldb)
281
- # =============================================================================
282
- # Database type: sqlite | postgresql | mysql
283
- HAI_RELDB_TYPE=${dbType}
284
- # SQLite: file path; PostgreSQL/MySQL: database name
285
- HAI_RELDB_DATABASE=${dbDatabase}${isSqlite ? `
286
- # PostgreSQL/MySQL connection (uncomment when not using sqlite)
287
- # HAI_RELDB_HOST=localhost
288
- # HAI_RELDB_PORT=5432
289
- # HAI_RELDB_USER=postgres
290
- # HAI_RELDB_PASSWORD=` : `
291
- # Connection
292
- HAI_RELDB_HOST=${configs?.db?.host ?? "localhost"}
293
- HAI_RELDB_PORT=${configs?.db?.port ?? (dbType === "postgresql" ? 5432 : 3306)}
294
- HAI_RELDB_USER=${dbType === "postgresql" ? "postgres" : "root"}
295
- HAI_RELDB_PASSWORD=`}`);
296
- }
297
- if (features.includes("iam")) {
298
- sections.push(`
299
- # =============================================================================
300
- # IAM (@h-ai/iam)
301
- # =============================================================================
302
- HAI_IAM_SESSION_SECRET=change-me-to-a-strong-random-string-min-32-chars
303
- # HAI_IAM_PASSWORD_MIN_LENGTH=8
304
- # HAI_IAM_SESSION_MAX_AGE=86400
305
- # HAI_IAM_REFRESH_TOKEN_MAX_AGE=604800
306
- # HAI_IAM_MAX_LOGIN_ATTEMPTS=5
307
- # HAI_KIT_COOKIE_KEY= # 32-char hex for SM4-CBC cookie encryption
308
- `);
309
- }
310
- if (features.includes("cache")) {
311
- const cacheType = configs?.cache?.type ?? "memory";
312
- if (cacheType === "redis") {
313
- sections.push(`
314
- # =============================================================================
315
- # Cache (@h-ai/cache)
316
- # =============================================================================
317
- # Cache type: memory | redis
318
- HAI_CACHE_TYPE=redis
319
- # Redis connection
320
- HAI_CACHE_REDIS_HOST=${configs?.cache?.host ?? "localhost"}
321
- HAI_CACHE_REDIS_PORT=${configs?.cache?.port ?? 6379}
322
- HAI_CACHE_REDIS_PASSWORD=
323
- # HAI_CACHE_REDIS_URL=redis://localhost:6379/0
324
- # HAI_CACHE_REDIS_DB=0
325
- # HAI_CACHE_CONNECT_TIMEOUT=10000
326
- # HAI_CACHE_COMMAND_TIMEOUT=5000
327
- # HAI_CACHE_KEY_PREFIX=hai:`);
328
- } else {
329
- sections.push(`
330
- # =============================================================================
331
- # Cache (@h-ai/cache)
332
- # =============================================================================
333
- # Cache type: memory | redis
334
- HAI_CACHE_TYPE=memory
335
- # Redis connection (uncomment when type=redis)
336
- # HAI_CACHE_REDIS_URL=redis://localhost:6379/0
337
- # HAI_CACHE_REDIS_HOST=localhost
338
- # HAI_CACHE_REDIS_PORT=6379
339
- # HAI_CACHE_REDIS_PASSWORD=
340
- # HAI_CACHE_REDIS_DB=0
341
- # HAI_CACHE_CONNECT_TIMEOUT=10000
342
- # HAI_CACHE_COMMAND_TIMEOUT=5000
343
- # HAI_CACHE_KEY_PREFIX=hai:`);
344
- }
345
- }
346
- if (features.includes("storage")) {
347
- const storageType = configs?.storage?.type ?? "local";
348
- if (storageType === "s3") {
349
- sections.push(`
350
- # =============================================================================
351
- # Storage (@h-ai/storage)
352
- # =============================================================================
353
- # Storage type: local | s3
354
- HAI_STORAGE_TYPE=s3
355
- # S3 / S3-compatible
356
- HAI_STORAGE_S3_BUCKET=
357
- HAI_STORAGE_S3_REGION=us-east-1
358
- HAI_STORAGE_S3_ACCESS_KEY=
359
- HAI_STORAGE_S3_SECRET_KEY=
360
- # HAI_STORAGE_S3_ENDPOINT= # Custom endpoint for MinIO / Aliyun OSS etc.
361
- # HAI_STORAGE_S3_FORCE_PATH_STYLE=false
362
- # Local storage (uncomment when type=local)
363
- # HAI_STORAGE_PATH=./data/uploads`);
364
- } else {
365
- sections.push(`
366
- # =============================================================================
367
- # Storage (@h-ai/storage)
368
- # =============================================================================
369
- # Storage type: local | s3
370
- HAI_STORAGE_TYPE=local
371
- # Local storage root path
372
- HAI_STORAGE_PATH=${configs?.storage?.localPath ?? "./data/uploads"}
373
- # S3 / S3-compatible (uncomment when type=s3)
374
- # HAI_STORAGE_S3_BUCKET=
375
- # HAI_STORAGE_S3_REGION=us-east-1
376
- # HAI_STORAGE_S3_ACCESS_KEY=
377
- # HAI_STORAGE_S3_SECRET_KEY=
378
- # HAI_STORAGE_S3_ENDPOINT= # Custom endpoint for MinIO / Aliyun OSS etc.
379
- # HAI_STORAGE_S3_FORCE_PATH_STYLE=false`);
380
- }
381
- }
382
- if (features.includes("ai")) {
383
- const provider = configs?.ai?.defaultProvider ?? "openai";
384
- if (provider === "anthropic") {
385
- sections.push(`
386
- # =============================================================================
387
- # AI (@h-ai/ai)
388
- # =============================================================================
389
- # OpenAI-compatible API Key (Anthropic models via OpenAI-compatible proxy)
390
- HAI_AI_LLM_API_KEY=
391
- # HAI_AI_LLM_BASE_URL= # Custom base URL
392
- # Optional compatibility fallback
393
- # OPENAI_API_KEY=`);
394
- } else if (provider === "openai") {
395
- sections.push(`
396
- # =============================================================================
397
- # AI (@h-ai/ai)
398
- # =============================================================================
399
- # OpenAI / OpenAI-compatible
400
- HAI_AI_LLM_API_KEY=
401
- # HAI_AI_LLM_BASE_URL= # Custom base URL (e.g. local proxy, Azure)
402
- # Optional compatibility fallback
403
- # OPENAI_API_KEY=`);
404
- } else {
405
- sections.push(`
406
- # =============================================================================
407
- # AI (@h-ai/ai)
408
- # =============================================================================
409
- # OpenAI-compatible provider
410
- HAI_AI_LLM_API_KEY=
411
- # HAI_AI_LLM_BASE_URL= # Custom base URL
412
- # Optional compatibility fallback
413
- # OPENAI_API_KEY=`);
414
- }
415
- }
416
- if (features.includes("vecdb")) {
417
- sections.push(`
418
- # =============================================================================
419
- # Vector Database (@h-ai/vecdb)
420
- # =============================================================================
421
- # Backend type: lancedb | pgvector | qdrant
422
- HAI_VECDB_TYPE=lancedb
423
- # LanceDB data path
424
- HAI_VECDB_PATH=./data/vecdb
425
- # Qdrant (uncomment when type=qdrant)
426
- # HAI_VECDB_QDRANT_URL=http://localhost:6333
427
- # HAI_VECDB_QDRANT_API_KEY=
428
- `);
429
- }
430
- if (features.includes("reach")) {
431
- sections.push(`
432
- # =============================================================================
433
- # Reach (@h-ai/reach)
434
- # =============================================================================
435
- # SMTP (uncomment when enabling email provider)
436
- # HAI_REACH_SMTP_HOST=smtp.example.com
437
- # HAI_REACH_SMTP_PORT=465
438
- # HAI_REACH_SMTP_USER=
439
- # HAI_REACH_SMTP_PASS=
440
- # HAI_REACH_SMTP_FROM=noreply@example.com
441
- `);
442
- }
443
- if (features.includes("payment")) {
444
- sections.push(`
445
- # =============================================================================
446
- # Payment (@h-ai/payment)
447
- # =============================================================================
448
- # WeChat Pay
449
- # HAI_PAYMENT_WECHAT_MCH_ID=
450
- # HAI_PAYMENT_WECHAT_API_V3_KEY=
451
- # HAI_PAYMENT_WECHAT_SERIAL_NO=
452
- # HAI_PAYMENT_WECHAT_PRIVATE_KEY=
453
- # HAI_PAYMENT_WECHAT_APP_ID=
454
- # Alipay
455
- # HAI_PAYMENT_ALIPAY_APP_ID=
456
- # HAI_PAYMENT_ALIPAY_PRIVATE_KEY=
457
- # HAI_PAYMENT_ALIPAY_PUBLIC_KEY=
458
- # Stripe
459
- # HAI_PAYMENT_STRIPE_SECRET_KEY=
460
- # HAI_PAYMENT_STRIPE_WEBHOOK_SECRET=
461
- `);
462
- }
463
- sections.push(`
464
- # =============================================================================
465
- # Testing
466
- # =============================================================================
467
- # E2E test mode (relaxes rate limiting etc.)
468
- # HAI_E2E=1
469
- `);
470
- return sections.join("\n");
471
- }
472
- function generateDeployConfig() {
473
- return `# =============================================================================
474
- # \u90E8\u7F72\u914D\u7F6E (@h-ai/deploy)
475
- # =============================================================================
476
- # \u90E8\u7F72\u5E73\u53F0\u51ED\u8BC1\u901A\u8FC7 ~/.hai/credentials.yml \u7BA1\u7406
477
- # \u73AF\u5883\u53D8\u91CF\u5F15\u7528\u683C\u5F0F: \${VAR_NAME:default_value}
478
-
479
- # \u90E8\u7F72\u5E73\u53F0
480
- provider:
481
- type: vercel
482
- token: \${HAI_DEPLOY_VERCEL_TOKEN}
483
-
484
- # \u57FA\u7840\u8BBE\u65BD\u670D\u52A1\uFF08\u6309\u9700\u5F00\u542F\uFF09
485
- services:
486
- # PostgreSQL \u6570\u636E\u5E93 (Neon)
487
- # db:
488
- # provisioner: neon
489
- # apiKey: \${HAI_DEPLOY_NEON_API_KEY}
490
-
491
- # Redis \u7F13\u5B58 (Upstash)
492
- # cache:
493
- # provisioner: upstash
494
- # email: \${HAI_DEPLOY_UPSTASH_EMAIL}
495
- # apiKey: \${HAI_DEPLOY_UPSTASH_API_KEY}
496
-
497
- # S3 \u5B58\u50A8 (Cloudflare R2)
498
- # storage:
499
- # provisioner: cloudflare-r2
500
- # accountId: \${HAI_DEPLOY_CF_ACCOUNT_ID}
501
- # apiToken: \${HAI_DEPLOY_CF_API_TOKEN}
502
-
503
- # \u90AE\u4EF6 (Resend)
504
- # email:
505
- # provisioner: resend
506
- # apiKey: \${HAI_DEPLOY_RESEND_API_KEY}
507
-
508
- # \u77ED\u4FE1 (\u963F\u91CC\u4E91)
509
- # sms:
510
- # provisioner: aliyun
511
- # accessKeyId: \${HAI_DEPLOY_ALIYUN_ACCESS_KEY_ID}
512
- # accessKeySecret: \${HAI_DEPLOY_ALIYUN_ACCESS_KEY_SECRET}
513
- `;
514
- }
515
- function generateVecdbConfig() {
516
- return `# =============================================================================
517
- # \u5411\u91CF\u6570\u636E\u5E93\u914D\u7F6E (@h-ai/vecdb)
518
- # =============================================================================
519
-
520
- # \u6570\u636E\u5E93\u7C7B\u578B: lancedb | pgvector | qdrant
521
- type: lancedb
522
-
523
- # LanceDB \u6570\u636E\u76EE\u5F55
524
- path: \${HAI_VECDB_PATH:./data/vecdb}
525
-
526
- # \u8DDD\u79BB\u5EA6\u91CF: cosine | euclidean | dot
527
- # metric: cosine
528
-
529
- # pgvector \u914D\u7F6E\uFF08\u5F53 type \u4E3A pgvector \u65F6\u4F7F\u7528\uFF09
530
- # type: pgvector
531
- # host: \${HAI_RELDB_HOST:localhost}
532
- # port: \${HAI_RELDB_PORT:5432}
533
- # database: \${HAI_RELDB_DATABASE:hai}
534
- # user: \${HAI_RELDB_USER:postgres}
535
- # password: \${HAI_RELDB_PASSWORD:}
536
- # indexType: hnsw
537
- # tablePrefix: vec_
538
-
539
- # Qdrant \u914D\u7F6E\uFF08\u5F53 type \u4E3A qdrant \u65F6\u4F7F\u7528\uFF09
540
- # type: qdrant
541
- # url: \${HAI_VECDB_QDRANT_URL:http://localhost:6333}
542
- # apiKey: \${HAI_VECDB_QDRANT_API_KEY:}
543
- `;
544
- }
545
- function generateReachConfig() {
546
- return `# =============================================================================
547
- # \u6D88\u606F\u63A8\u9001\u914D\u7F6E (@h-ai/reach)
548
- # =============================================================================
549
-
550
- providers:
551
- # \u63A7\u5236\u53F0\u8F93\u51FA\uFF08\u5F00\u53D1/\u6D4B\u8BD5\u7528\uFF09
552
- - name: console_dev
553
- type: console
554
-
555
- # SMTP \u90AE\u4EF6\uFF08\u6309\u9700\u5F00\u542F\uFF09
556
- # - name: email
557
- # type: smtp
558
- # host: \${HAI_REACH_SMTP_HOST:smtp.example.com}
559
- # port: \${HAI_REACH_SMTP_PORT:465}
560
- # secure: true
561
- # user: \${HAI_REACH_SMTP_USER:}
562
- # pass: \${HAI_REACH_SMTP_PASS:}
563
- # from: \${HAI_REACH_SMTP_FROM:noreply@example.com}
564
-
565
- # \u963F\u91CC\u4E91\u77ED\u4FE1\uFF08\u6309\u9700\u5F00\u542F\uFF09
566
- # - name: sms
567
- # type: aliyun-sms
568
- # accessKeyId: \${HAI_REACH_SMS_ACCESS_KEY}
569
- # accessKeySecret: \${HAI_REACH_SMS_SECRET_KEY}
570
- # signName: MyApp
571
-
572
- # \u6A21\u677F\uFF08\u53EF\u9009\uFF09
573
- # templates:
574
- # - name: verification_code
575
- # provider: email
576
- # subject: "\u9A8C\u8BC1\u7801: {code}"
577
- # body: "\u60A8\u7684\u9A8C\u8BC1\u7801\u662F {code}\uFF0C\u6709\u6548\u671F {minutes} \u5206\u949F\u3002"
578
-
579
- # \u514D\u6253\u6270\uFF08\u53EF\u9009\uFF09
580
- # dnd:
581
- # enabled: true
582
- # strategy: delay
583
- # start: "22:00"
584
- # end: "08:00"
585
- `;
586
- }
587
- function generateSchedulerConfig() {
588
- return `# =============================================================================
589
- # \u4EFB\u52A1\u8C03\u5EA6\u914D\u7F6E (@h-ai/scheduler)
590
- # =============================================================================
591
-
592
- # \u662F\u5426\u542F\u7528\u6570\u636E\u5E93\u65E5\u5FD7\uFF08\u9700\u8981 @h-ai/reldb\uFF09
593
- enableDb: true
594
-
595
- # \u6267\u884C\u65E5\u5FD7\u8868\u540D
596
- tableName: hai_scheduler_logs
597
-
598
- # \u4EFB\u52A1\u5B9A\u4E49\u8868\u540D
599
- taskTableName: hai_scheduler_tasks
600
-
601
- # \u5206\u5E03\u5F0F\u9501\u8868\u540D
602
- lockTableName: hai_scheduler_locks
603
-
604
- # \u68C0\u67E5\u95F4\u9694\uFF08\u6BEB\u79D2\uFF09
605
- tickInterval: 1000
606
-
607
- # \u9501\u8FC7\u671F\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09
608
- lockExpireMs: 300000
609
- `;
610
- }
611
- function generateAuditConfig() {
612
- return `# =============================================================================
613
- # \u5BA1\u8BA1\u65E5\u5FD7\u914D\u7F6E (@h-ai/audit)
614
- # =============================================================================
615
-
616
- # \u5BA1\u8BA1\u65E5\u5FD7\u8868\u540D
617
- tableName: hai_audit_logs
618
-
619
- # \u7528\u6237\u8868\u540D\uFF08\u7528\u4E8E JOIN \u67E5\u8BE2\uFF09
620
- userTable: hai_iam_users
621
-
622
- # \u7528\u6237\u8868\u4E3B\u952E\u5217\u540D
623
- userIdColumn: id
624
-
625
- # \u7528\u6237\u540D\u5217\u540D
626
- userNameColumn: username
627
- `;
628
- }
629
- function generatePaymentConfig() {
630
- return `# =============================================================================
631
- # \u652F\u4ED8\u914D\u7F6E (@h-ai/payment)
632
- # =============================================================================
633
-
634
- # \u5FAE\u4FE1\u652F\u4ED8\uFF08\u6309\u9700\u5F00\u542F\uFF09
635
- # wechat:
636
- # mchId: \${HAI_PAYMENT_WECHAT_MCH_ID}
637
- # apiV3Key: \${HAI_PAYMENT_WECHAT_API_V3_KEY}
638
- # serialNo: \${HAI_PAYMENT_WECHAT_SERIAL_NO}
639
- # privateKey: \${HAI_PAYMENT_WECHAT_PRIVATE_KEY}
640
- # appId: \${HAI_PAYMENT_WECHAT_APP_ID}
641
-
642
- # \u652F\u4ED8\u5B9D\uFF08\u6309\u9700\u5F00\u542F\uFF09
643
- # alipay:
644
- # appId: \${HAI_PAYMENT_ALIPAY_APP_ID}
645
- # privateKey: \${HAI_PAYMENT_ALIPAY_PRIVATE_KEY}
646
- # alipayPublicKey: \${HAI_PAYMENT_ALIPAY_PUBLIC_KEY}
647
- # signType: RSA2
648
- # sandbox: false
649
-
650
- # Stripe\uFF08\u6309\u9700\u5F00\u542F\uFF09
651
- # stripe:
652
- # secretKey: \${HAI_PAYMENT_STRIPE_SECRET_KEY}
653
- # webhookSecret: \${HAI_PAYMENT_STRIPE_WEBHOOK_SECRET}
654
- `;
655
- }
656
-
657
- export { generateConfigFile, generateEnvExample };
658
- //# sourceMappingURL=chunk-LANIDJC7.js.map
659
- //# sourceMappingURL=chunk-LANIDJC7.js.map