@h-ai/cli 0.1.0-alpha.66 → 0.1.0-alpha.68

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 (198) hide show
  1. package/README.en.md +86 -241
  2. package/README.ja.md +86 -241
  3. package/README.md +86 -241
  4. package/dist/{src-RDQ2EIBT.js → chunk-FI56GONY.js} +32 -2669
  5. package/dist/chunk-FI56GONY.js.map +1 -0
  6. package/dist/chunk-MBPB37FR.js +1348 -0
  7. package/dist/chunk-MBPB37FR.js.map +1 -0
  8. package/dist/{chunk-QYX6V7H2.js → chunk-ZFNBUF77.js} +347 -276
  9. package/dist/chunk-ZFNBUF77.js.map +1 -0
  10. package/dist/cli-config-templates-W2LLPMB6.js +5 -0
  11. package/dist/{cli-config-templates-3XSFIXBP.js.map → cli-config-templates-W2LLPMB6.js.map} +1 -1
  12. package/dist/{cli-skill-templates-TSYEQTCY.js → cli-skill-templates-US5CCAJ4.js} +3 -3
  13. package/dist/{cli-skill-templates-TSYEQTCY.js.map → cli-skill-templates-US5CCAJ4.js.map} +1 -1
  14. package/dist/index.js +1304 -532
  15. package/dist/index.js.map +1 -1
  16. package/dist/metafile-esm.json +1 -0
  17. package/dist/src-DSJJXM2F.js +3849 -0
  18. package/dist/src-DSJJXM2F.js.map +1 -0
  19. package/package.json +9 -8
  20. package/templates/README.md +48 -145
  21. package/templates/apps/admin/messages/ja-JP.json +38 -0
  22. package/templates/apps/admin/src/routes/+layout.svelte.hbs +16 -6
  23. package/templates/apps/admin/src/routes/admin/+layout.svelte.hbs +3 -3
  24. package/templates/apps/api/.dockerignore.hbs +14 -7
  25. package/templates/apps/api/.gitignore.hbs +7 -0
  26. package/templates/apps/api/apps/{{projectName}}-contract/README.md.hbs +23 -2
  27. package/templates/apps/api/apps/{{projectName}}-contract/src/index.ts.hbs +2 -0
  28. package/templates/apps/api/apps/{{projectName}}-contract/src/{{projectName}}-contract.ts.hbs +4 -1
  29. package/templates/apps/api/apps/{{projectName}}-service/README.md.hbs +33 -8
  30. package/templates/apps/api/apps/{{projectName}}-service/config/_core.yml.hbs +0 -10
  31. package/templates/apps/api/apps/{{projectName}}-service/config/_serv.yml.hbs +2 -1
  32. package/templates/apps/api/apps/{{projectName}}-service/package.json.hbs +1 -2
  33. package/templates/apps/api/apps/{{projectName}}-service/src/app.ts.hbs +24 -11
  34. package/templates/apps/api/apps/{{projectName}}-service/src/index.ts.hbs +8 -1
  35. package/templates/apps/api/apps/{{projectName}}-service/src/lib/server/init.ts.hbs +68 -11
  36. package/templates/apps/api/apps/{{projectName}}-service/src/server/procedures/index.ts.hbs +10 -2
  37. package/templates/apps/api/e2e/api-service.spec.ts.hbs +2 -2
  38. package/templates/apps/api/hai.build.json.hbs +1 -1
  39. package/templates/apps/api/images/app.Dockerfile.hbs +35 -0
  40. package/templates/apps/api/package.json.hbs +6 -1
  41. package/templates/apps/api/playwright.config.ts.hbs +15 -7
  42. package/templates/apps/fullstack/.dockerignore.hbs +14 -9
  43. package/templates/apps/fullstack/.gitignore.hbs +7 -0
  44. package/templates/apps/fullstack/apps/{{projectName}}-app/README.md.hbs +24 -6
  45. package/templates/apps/fullstack/apps/{{projectName}}-app/index.html.hbs +1 -0
  46. package/templates/apps/fullstack/apps/{{projectName}}-app/messages/ja-JP.json.hbs +7 -0
  47. package/templates/apps/fullstack/apps/{{projectName}}-app/public/runtime-config.js.hbs +4 -0
  48. package/templates/apps/fullstack/apps/{{projectName}}-app/src/App.svelte.hbs +7 -1
  49. package/templates/apps/fullstack/apps/{{projectName}}-app/vite.config.ts.hbs +2 -2
  50. package/templates/apps/fullstack/apps/{{projectName}}-desktop/README.md.hbs +23 -5
  51. package/templates/apps/fullstack/apps/{{projectName}}-desktop/messages/ja-JP.json.hbs +7 -0
  52. package/templates/apps/fullstack/apps/{{projectName}}-desktop/vite.config.ts.hbs +1 -1
  53. package/templates/apps/fullstack/apps/{{projectName}}-miniapp/README.md.hbs +16 -6
  54. package/templates/apps/fullstack/apps/{{projectName}}-miniapp/messages/ja-JP.json.hbs +12 -0
  55. package/templates/apps/fullstack/apps/{{projectName}}-web/README.md.hbs +24 -6
  56. package/templates/apps/fullstack/apps/{{projectName}}-web/messages/ja-JP.json.hbs +7 -0
  57. package/templates/apps/fullstack/apps/{{projectName}}-web/vite.config.ts.hbs +2 -2
  58. package/templates/apps/fullstack/e2e/fullstack.spec.ts.hbs +30 -9
  59. package/templates/apps/fullstack/hai.build.json.hbs +2 -2
  60. package/templates/apps/fullstack/images/app.Dockerfile.hbs +36 -0
  61. package/templates/apps/fullstack/images/web.Dockerfile.hbs +34 -0
  62. package/templates/apps/fullstack/package.json.hbs +3 -1
  63. package/templates/apps/fullstack/packages/{{projectName}}-contract/README.md.hbs +23 -2
  64. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/admin-schemas.ts.hbs +1 -1
  65. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/index.ts.hbs +2 -0
  66. package/templates/apps/fullstack/packages/{{projectName}}-contract/src/{{projectName}}-contract.ts.hbs +3 -0
  67. package/templates/apps/fullstack/packages/{{projectName}}-serv/README.md.hbs +32 -8
  68. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_core.yml.hbs +0 -6
  69. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_reach.yml.hbs +8 -0
  70. package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_serv.yml.hbs +2 -1
  71. package/templates/apps/fullstack/packages/{{projectName}}-serv/package.json.hbs +6 -0
  72. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/app-server.ts.hbs +9 -5
  73. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/admin-service.ts.hbs +3 -2
  74. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/messages.ts.hbs +16 -1
  75. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/admin-procedures.ts.hbs +7 -3
  76. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/index.ts.hbs +3 -0
  77. package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/runtime.ts.hbs +58 -7
  78. package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/app-server.test.ts.hbs +13 -3
  79. package/templates/apps/fullstack/packages/{{projectName}}-shared/.gitignore.hbs +7 -0
  80. package/templates/apps/fullstack/packages/{{projectName}}-shared/README.md.hbs +40 -14
  81. package/templates/apps/fullstack/packages/{{projectName}}-shared/messages/ja-JP.json.hbs +105 -0
  82. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/AdminWorkspace.svelte.hbs +3 -3
  83. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/AppShell.svelte.hbs +6 -6
  84. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/audit.svelte.hbs +7 -7
  85. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/settings.svelte.hbs +4 -4
  86. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/users.svelte.hbs +8 -8
  87. package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/api-client.test.ts.hbs +13 -14
  88. package/templates/apps/fullstack/playwright.config.ts.hbs +15 -6
  89. package/templates/apps/h5/messages/ja-JP.json +40 -0
  90. package/templates/apps/h5/src/routes/+layout.svelte.hbs +16 -5
  91. package/templates/apps/mobile-app/messages/ja-JP.json +36 -0
  92. package/templates/apps/mobile-app/src/App.svelte.hbs +15 -5
  93. package/templates/apps/mobile-app/src/lib/api.ts.hbs +173 -14
  94. package/templates/apps/mobile-app/src/lib/pages/home.svelte.hbs +2 -2
  95. package/templates/apps/website/messages/ja-JP.json +32 -0
  96. package/templates/apps/website/src/routes/+layout.svelte.hbs +13 -5
  97. package/templates/apps/website/src/routes/services/+page.svelte.hbs +1 -1
  98. package/templates/base/.dockerignore.hbs +14 -8
  99. package/templates/base/.gitignore.hbs +7 -0
  100. package/templates/base/e2e/app.spec.ts.hbs +23 -8
  101. package/templates/base/hai.build.json.hbs +1 -1
  102. package/templates/base/{Dockerfile.hbs → images/app.Dockerfile.hbs} +19 -17
  103. package/templates/base/package.json.hbs +11 -3
  104. package/templates/base/playwright.config.ts +15 -4
  105. package/templates/base/src/hooks.server.ts.hbs +15 -6
  106. package/templates/base/src/lib/server/init.ts.hbs +139 -30
  107. package/templates/base/vite.config.ts.hbs +5 -3
  108. package/templates/features/iam/routes-shared/api/auth/logout/+server.ts +11 -6
  109. package/templates/features/payment/routes/api/v1/payment/create/+server.ts +18 -25
  110. package/templates/features/payment/routes/api/v1/payment/notify/[provider]/+server.ts +4 -0
  111. package/templates/i18n/project.inlang/settings.json +1 -1
  112. package/templates/shared/.gitattributes +6 -0
  113. package/templates/shared/e2e-env.ts +98 -0
  114. package/templates/shared/run-e2e.mjs +51 -12
  115. package/templates/skills/AGENTS.md +7 -3
  116. package/templates/skills/bridges/admin/AGENTS.md +6 -2
  117. package/templates/skills/bridges/api/AGENTS.md +3 -1
  118. package/templates/skills/bridges/fullstack/AGENTS.md.hbs +5 -1
  119. package/templates/skills/bridges/h5/AGENTS.md +6 -2
  120. package/templates/skills/bridges/mobile-app/AGENTS.md +6 -2
  121. package/templates/skills/bridges/website/AGENTS.md +6 -2
  122. package/templates/skills/hai-ai/SKILL.md +8 -2
  123. package/templates/skills/hai-ai/guide.md +134 -60
  124. package/templates/skills/hai-ai/reference.md +51 -11
  125. package/templates/skills/hai-api-client/SKILL.md +15 -160
  126. package/templates/skills/hai-api-client/reference.md +178 -0
  127. package/templates/skills/hai-api-contract/SKILL.md +16 -273
  128. package/templates/skills/hai-api-contract/reference.md +280 -0
  129. package/templates/skills/hai-app-create/SKILL.md +6 -2
  130. package/templates/skills/hai-app-create/development.md +24 -8
  131. package/templates/skills/hai-app-create/reference.md +7 -5
  132. package/templates/skills/hai-app-review/SKILL.md +7 -3
  133. package/templates/skills/hai-app-review/differential.md +34 -0
  134. package/templates/skills/hai-app-tests/SKILL.md +6 -3
  135. package/templates/skills/hai-app-tests/reference.md +5 -5
  136. package/templates/skills/hai-app-tests/validation.md +38 -0
  137. package/templates/skills/hai-audit/SKILL.md +24 -147
  138. package/templates/skills/hai-audit/reference.md +148 -0
  139. package/templates/skills/hai-build/SKILL.md +14 -8
  140. package/templates/skills/hai-build/reference.md +16 -13
  141. package/templates/skills/hai-cache/SKILL.md +20 -181
  142. package/templates/skills/hai-cache/reference.md +229 -0
  143. package/templates/skills/hai-capacitor/SKILL.md +7 -4
  144. package/templates/skills/hai-capacitor/reference.md +15 -9
  145. package/templates/skills/hai-ci/SKILL.md +2 -0
  146. package/templates/skills/hai-core/SKILL.md +7 -3
  147. package/templates/skills/hai-core/reference.md +25 -5
  148. package/templates/skills/hai-crypto/SKILL.md +22 -250
  149. package/templates/skills/hai-crypto/reference.md +310 -0
  150. package/templates/skills/hai-datapipe/SKILL.md +16 -195
  151. package/templates/skills/hai-datapipe/reference.md +204 -0
  152. package/templates/skills/hai-deploy/SKILL.md +24 -54
  153. package/templates/skills/hai-deploy/middleware.md +51 -43
  154. package/templates/skills/hai-framework-sync/SKILL.md +2 -2
  155. package/templates/skills/hai-framework-sync/sync.md +1 -1
  156. package/templates/skills/hai-iam/SKILL.md +25 -11
  157. package/templates/skills/hai-iam/reference.md +181 -154
  158. package/templates/skills/hai-kit/SKILL.md +35 -174
  159. package/templates/skills/hai-kit/reference.md +190 -0
  160. package/templates/skills/hai-payment/SKILL.md +33 -263
  161. package/templates/skills/hai-payment/reference.md +295 -0
  162. package/templates/skills/hai-pr-review/SKILL.md +21 -88
  163. package/templates/skills/hai-reach/SKILL.md +6 -3
  164. package/templates/skills/hai-reach/reference.md +83 -22
  165. package/templates/skills/hai-reldb/SKILL.md +6 -3
  166. package/templates/skills/hai-reldb/reference.md +68 -25
  167. package/templates/skills/hai-scheduler/SKILL.md +18 -195
  168. package/templates/skills/hai-scheduler/reference.md +216 -0
  169. package/templates/skills/hai-serv/SKILL.md +25 -10
  170. package/templates/skills/hai-serv/reference.md +123 -87
  171. package/templates/skills/hai-spec-implement/SKILL.md +5 -1
  172. package/templates/skills/hai-spec-implement/evaluation.md +18 -0
  173. package/templates/skills/hai-spec-implement/handoff.md +47 -0
  174. package/templates/skills/hai-spec-implement/templates.md +5 -0
  175. package/templates/skills/hai-spec-implement/workflow.md +5 -3
  176. package/templates/skills/hai-spec-review/SKILL.md +4 -0
  177. package/templates/skills/hai-storage/SKILL.md +23 -238
  178. package/templates/skills/hai-storage/reference.md +282 -0
  179. package/templates/skills/hai-ui/SKILL.md +17 -3
  180. package/templates/skills/hai-ui/guide.md +3 -3
  181. package/templates/skills/hai-ui/reference.md +26 -11
  182. package/templates/skills/hai-ui-design/SKILL.md +31 -0
  183. package/templates/skills/hai-ui-design/patterns.md +26 -0
  184. package/templates/skills/hai-ui-review/SKILL.md +30 -0
  185. package/templates/skills/hai-ui-review/checklist.md +22 -0
  186. package/templates/skills/hai-vecdb/SKILL.md +14 -10
  187. package/templates/skills/hai-vecdb/reference.md +33 -3
  188. package/dist/chunk-FWN5B54L.js +0 -468
  189. package/dist/chunk-FWN5B54L.js.map +0 -1
  190. package/dist/chunk-QYX6V7H2.js.map +0 -1
  191. package/dist/cli-config-templates-3XSFIXBP.js +0 -5
  192. package/dist/src-RDQ2EIBT.js.map +0 -1
  193. package/templates/apps/api/Dockerfile.hbs +0 -35
  194. package/templates/apps/fullstack/Dockerfile.hbs +0 -57
  195. /package/templates/apps/fullstack/{docker → images/web}/19-runtime-config.envsh.hbs +0 -0
  196. /package/templates/apps/fullstack/{docker → images/web}/nginx.conf.hbs +0 -0
  197. /package/templates/apps/fullstack/{docker → images/web}/runtime-config.js.template.hbs +0 -0
  198. /package/templates/base/{docker → images/web}/nginx.conf.hbs +0 -0
@@ -131,6 +131,38 @@ var cli_config_catalog_default = [
131
131
  value: "0.1.0",
132
132
  constraint: "\u5B57\u7B26\u4E32"
133
133
  },
134
+ {
135
+ name: "HAI_AI_A2A_EXECUTION",
136
+ module: "ai",
137
+ path: "ai.a2a.execution",
138
+ description: "\u5171\u4EAB\u6267\u884C\u9884\u7B97\uFF1B\u6700\u7EC8\u63D0\u4EA4\u540C\u65F6\u53D7\u6570\u636E\u5E93\u79DF\u7EA6\u4E0E\u7EDD\u5BF9\u6267\u884C\u671F\u9650\u7EA6\u675F\u3002",
139
+ value: "{}",
140
+ constraint: "JSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9"
141
+ },
142
+ {
143
+ name: "HAI_AI_A2A_EXECUTION_LEASEMS",
144
+ module: "ai",
145
+ path: "ai.a2a.execution.leaseMs",
146
+ description: "\u6D3B\u8DC3\u6267\u884C\u79DF\u7EA6\u6BEB\u79D2\u6570\uFF0C\u9ED8\u8BA430\u79D2\uFF0C\u8303\u56F41\u79D2\u81F31\u5929\u3002",
147
+ value: "30000",
148
+ constraint: "\u6574\u6570\uFF1B>= 1000\uFF1B<= 86400000"
149
+ },
150
+ {
151
+ name: "HAI_AI_A2A_EXECUTION_MAXEXECUTIONMS",
152
+ module: "ai",
153
+ path: "ai.a2a.execution.maxExecutionMs",
154
+ description: "\u5355\u6B21\u6267\u884C\u7EDD\u5BF9\u4E0A\u9650\u6BEB\u79D2\u6570\uFF0C\u9ED8\u8BA45\u5206\u949F\uFF1B\u8D85\u65F6\u6807\u4E2D\u65AD\uFF0C\u4E0D\u81EA\u52A8\u91CD\u653E\u3002",
155
+ value: "300000",
156
+ constraint: "\u6574\u6570\uFF1B>= 1000\uFF1B<= 86400000"
157
+ },
158
+ {
159
+ name: "HAI_AI_A2A_EXECUTION_POLLINTERVALMS",
160
+ module: "ai",
161
+ path: "ai.a2a.execution.pollIntervalMs",
162
+ description: "\u5171\u4EAB\u4E8B\u4EF6/\u72B6\u6001\u8BA2\u9605\u8F6E\u8BE2\u95F4\u9694\u6BEB\u79D2\u6570\uFF0C\u9ED8\u8BA4250\u3002",
163
+ value: "250",
164
+ constraint: "\u6574\u6570\uFF1B>= 10\uFF1B<= 5000"
165
+ },
134
166
  {
135
167
  name: "HAI_AI_A2A_SECURITY",
136
168
  module: "ai",
@@ -499,6 +531,22 @@ var cli_config_catalog_default = [
499
531
  value: "",
500
532
  constraint: "\u654F\u611F\u5B57\u7B26\u4E32\uFF0C\u542F\u7528\u5BF9\u5E94\u5382\u5546\u65F6\u6CE8\u5165"
501
533
  },
534
+ {
535
+ name: "HAI_AI_IMAGE_MAXIMAGEBYTES",
536
+ module: "ai",
537
+ path: "ai.image.maxImageBytes",
538
+ description: "\u5355\u5F20\u56FE\u7247\u6216\u53C2\u8003\u56FE\u7684\u5B57\u8282\u4E0A\u9650\uFF0C\u9ED8\u8BA4 20 MiB\uFF1BJSON \u4E0A\u9650\u4E3A max(64 KiB, \u4E24\u500D\u56FE\u7247\u4E0A\u9650)\u3002",
539
+ value: "20971520",
540
+ constraint: "\u6574\u6570\uFF1B<= 104857600\uFF1B> 0"
541
+ },
542
+ {
543
+ name: "HAI_AI_IMAGE_MAXIMAGES",
544
+ module: "ai",
545
+ path: "ai.image.maxImages",
546
+ description: "\u5355\u6B21\u751F\u6210/\u53C2\u8003\u56FE\u6570\u91CF\u4E0A\u9650\uFF0C\u9ED8\u8BA4 4\uFF0C\u6700\u5927 16\uFF1B\u4E34\u65F6 URL \u4E32\u884C\u4E0B\u8F7D\u3002",
547
+ value: "4",
548
+ constraint: "\u6574\u6570\uFF1B<= 16\uFF1B> 0"
549
+ },
502
550
  {
503
551
  name: "HAI_AI_IMAGE_MODELS",
504
552
  module: "ai",
@@ -559,9 +607,9 @@ var cli_config_catalog_default = [
559
607
  name: "HAI_AI_IMAGE_MODELS_0_TIMEOUT",
560
608
  module: "ai",
561
609
  path: "ai.image.models.0.timeout",
562
- description: "\u8BF7\u6C42\u8D85\u65F6\uFF08\u6BEB\u79D2\uFF0C\u9ED8\u8BA4 120000\uFF09",
610
+ description: "\u6574\u6B21\u56FE\u7247\u751F\u6210\u4E0E\u4E0B\u8F7D\u8D85\u65F6\uFF08\u6BEB\u79D2\uFF0C1\u20132147483647\uFF0C\u9ED8\u8BA4 120000\uFF09",
563
611
  value: "120000",
564
- constraint: "\u6574\u6570\uFF1B<= 9007199254740991\uFF1B> 0"
612
+ constraint: "\u6574\u6570\uFF1B<= 2147483647\uFF1B> 0"
565
613
  },
566
614
  {
567
615
  name: "HAI_AI_IMAGE_MODELS_0_WORKSPACEID",
@@ -639,7 +687,7 @@ var cli_config_catalog_default = [
639
687
  name: "HAI_AI_KNOWLEDGE_CHUNKOPTIONS_MAXSIZE",
640
688
  module: "ai",
641
689
  path: "ai.knowledge.chunkOptions.maxSize",
642
- description: "\u6BCF\u4E2A\u5206\u5757\u7684\u6700\u5927\u5927\u5C0F\uFF08\u5B57\u7B26\u6570 / \u5B57\u6570\uFF0C\u53D6\u51B3\u4E8E mode\uFF0C\u9ED8\u8BA4 1000\uFF09",
690
+ description: "\u6BCF\u5757\u4E0A\u9650\u5305\u542B overlap/\u5206\u9694\u7B26\uFF1Bword \u6309\u975E\u7A7A\u767D\u8BCD\uFF0C\u5176\u4ED6\u6309 Unicode code point\uFF0C\u9ED8\u8BA4 1500\u3002",
643
691
  value: "1500",
644
692
  constraint: "\u6574\u6570\uFF1B<= 9007199254740991\uFF1B> 0"
645
693
  },
@@ -648,14 +696,14 @@ var cli_config_catalog_default = [
648
696
  module: "ai",
649
697
  path: "ai.knowledge.chunkOptions.mode",
650
698
  description: "\u5206\u5757\u6A21\u5F0F",
651
- value: "sentence",
699
+ value: "markdown",
652
700
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u53D6\u503C\uFF1Asentence | paragraph | markdown | page | word | character | custom"
653
701
  },
654
702
  {
655
703
  name: "HAI_AI_KNOWLEDGE_CHUNKOPTIONS_OVERLAP",
656
704
  module: "ai",
657
705
  path: "ai.knowledge.chunkOptions.overlap",
658
- description: "\u91CD\u53E0\u5927\u5C0F\uFF08\u5B57\u7B26\u6570 / \u5B57\u6570\uFF0C\u7528\u4E8E\u4E0A\u4E0B\u6587\u8854\u63A5\uFF0C\u9ED8\u8BA4 200\uFF09",
706
+ description: "\u91CD\u53E0\u4F7F\u7528\u4E0E maxSize \u76F8\u540C\u7684\u5355\u4F4D\uFF0C\u5FC5\u987B\u4E25\u683C\u5C0F\u4E8E maxSize\u3002",
659
707
  value: "200",
660
708
  constraint: "\u6574\u6570\uFF1B>= 0\uFF1B<= 9007199254740991"
661
709
  },
@@ -1127,7 +1175,7 @@ var cli_config_catalog_default = [
1127
1175
  name: "HAI_AI_MEMORY_ALLOWEPHEMERALFALLBACK",
1128
1176
  module: "ai",
1129
1177
  path: "ai.memory.allowEphemeralFallback",
1130
- description: "\u662F\u5426\u5141\u8BB8\u5728\u914D\u7F6E\u4E86\u6301\u4E45\u5316\u5411\u91CF\u540E\u7AEF\u4F46 mem0 \u65E0\u6CD5\u6620\u5C04\u65F6\u9000\u56DE\u5185\u5B58\u5B58\u50A8\uFF08\u9ED8\u8BA4 false\uFF09 \u4EC5\u5F71\u54CD `provider='mem0'`\uFF1Amem0 TS \u4EC5\u652F\u6301 qdrant / pgvector\u3002\u5F53\u5E95\u5C42 vecdb \u662F lancedb / chroma / \u672A\u77E5\u540E\u7AEF\u65F6\uFF0C\u9ED8\u8BA4 fail-fast\uFF08\u521D\u59CB\u5316\u5931\u8D25\uFF09\uFF0C\u907F\u514D\u670D\u52A1\u91CD\u542F\u540E\u8BB0\u5FC6\u9759\u9ED8\u4E22\u5931\uFF1B \u4EC5\u5F53\u663E\u5F0F\u8BBE\u4E3A true \u65F6\u624D\u9000\u56DE mem0 \u81EA\u5E26 in-memory \u5B58\u50A8\uFF08\u6570\u636E\u4E0D\u6301\u4E45\uFF09\u3002",
1178
+ description: "\u662F\u5426\u5141\u8BB8\u5728\u914D\u7F6E\u4E86\u6301\u4E45\u5316\u5411\u91CF\u540E\u7AEF\u4F46 mem0 \u65E0\u6CD5\u6620\u5C04\u65F6\u9000\u56DE\u5185\u5B58\u5B58\u50A8\uFF08\u9ED8\u8BA4 false\uFF09 \u4EC5\u5F71\u54CD `provider='mem0'`\uFF1A\u5F53\u524D\u6846\u67B6\u9002\u914D\u4EC5\u6620\u5C04 qdrant\uFF1Bpgvector \u7684 SDK \u8FDE\u63A5\u65E0\u6CD5\u516C\u5F00\u5173\u95ED\uFF0C\u6240\u6709\u73AF\u5883\u62D2\u7EDD\u3002\u5E95\u5C42 vecdb \u662F lancedb / chroma / \u672A\u77E5\u540E\u7AEF\u65F6\uFF0C\u9ED8\u8BA4 fail-fast\uFF08\u521D\u59CB\u5316\u5931\u8D25\uFF09\uFF0C\u907F\u514D\u670D\u52A1\u91CD\u542F\u540E\u8BB0\u5FC6\u9759\u9ED8\u4E22\u5931\uFF1B \u4EC5\u5F53\u663E\u5F0F\u8BBE\u4E3A true \u65F6\u624D\u5728\u5F00\u53D1\u6216\u660E\u786E E2E \u73AF\u5883\u9000\u56DE\u5185\u5B58\u5B58\u50A8\uFF08\u6570\u636E\u4E0D\u6301\u4E45\uFF09\u3002 \u751F\u4EA7\u59CB\u7EC8\u8981\u6C42\u5B9E\u9645\u6301\u4E45\u5316\u8FDE\u63A5\uFF0C\u4E0D\u80FD\u901A\u8FC7\u6B64\u5F00\u5173\u7ED5\u8FC7\u5171\u4EAB\u72B6\u6001\u8981\u6C42\u3002",
1131
1179
  value: "false",
1132
1180
  constraint: "true | false"
1133
1181
  },
@@ -1175,7 +1223,7 @@ var cli_config_catalog_default = [
1175
1223
  name: "HAI_AI_MEMORY_PROVIDER",
1176
1224
  module: "ai",
1177
1225
  path: "ai.memory.provider",
1178
- description: "\u8BB0\u5FC6\u540E\u7AEF\uFF1Anative = \u9010\u6761\u5199\u56DE\uFF1Bmem0 = \u6279\u91CF ADD/UPDATE/DELETE \u5408\u5E76\uFF08\u5747\u4E3A\u5D4C\u5165\u5F0F\uFF0C\u590D\u7528 HAI \u7EC4\u4EF6\uFF09",
1226
+ description: "\u8BB0\u5FC6\u540E\u7AEF\uFF1Anative \u4F7F\u7528\u6846\u67B6\u539F\u751F\u5B58\u50A8\u4E0E\u6279\u91CF\u5408\u5E76\uFF1Bmem0 \u5C06\u6846\u67B6\u63D0\u53D6\u7ED3\u679C\u5199\u5165\u53D7\u652F\u6301\u7684\u5D4C\u5165\u5F0F SDK \u540E\u7AEF",
1179
1227
  value: "native",
1180
1228
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u53D6\u503C\uFF1Anative | mem0"
1181
1229
  },
@@ -1447,7 +1495,7 @@ var cli_config_catalog_default = [
1447
1495
  name: "HAI_CACHE_PASSWORD",
1448
1496
  module: "cache",
1449
1497
  path: "cache.password",
1450
- description: "\u8BA4\u8BC1\u5BC6\u7801",
1498
+ description: "\u5355\u673A\u3001Cluster \u548C Sentinel \u6570\u636E\u8282\u70B9\u7684\u8BA4\u8BC1\u5BC6\u7801\uFF1Burl \u6A21\u5F0F\u4F7F\u7528 URL \u5185\u51ED\u636E\u3002",
1451
1499
  value: "",
1452
1500
  constraint: "\u5B57\u7B26\u4E32"
1453
1501
  },
@@ -1571,14 +1619,6 @@ var cli_config_catalog_default = [
1571
1619
  value: "",
1572
1620
  constraint: "JSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9"
1573
1621
  },
1574
- {
1575
- name: "HAI_CORE_DEBUG",
1576
- module: "core",
1577
- path: "core.debug",
1578
- description: "\u662F\u5426\u8C03\u8BD5\u6A21\u5F0F\uFF08\u9ED8\u8BA4 false\uFF09",
1579
- value: "false",
1580
- constraint: "true | false"
1581
- },
1582
1622
  {
1583
1623
  name: "HAI_CORE_DEFAULTLOCALE",
1584
1624
  module: "core",
@@ -1595,86 +1635,6 @@ var cli_config_catalog_default = [
1595
1635
  value: "development",
1596
1636
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u53D6\u503C\uFF1Adevelopment | production | test | staging"
1597
1637
  },
1598
- {
1599
- name: "HAI_CORE_FEATURES_AIASSISTANT",
1600
- module: "core",
1601
- path: "HAI_CORE_FEATURES_AIASSISTANT",
1602
- description: "\u793A\u4F8B\u5E94\u7528\u529F\u80FD\u5F00\u5173\uFF1Aaiassistant",
1603
- value: "true",
1604
- constraint: "true | false"
1605
- },
1606
- {
1607
- name: "HAI_CORE_FEATURES_AIENABLED",
1608
- module: "core",
1609
- path: "HAI_CORE_FEATURES_AIENABLED",
1610
- description: "\u793A\u4F8B\u5E94\u7528\u529F\u80FD\u5F00\u5173\uFF1Aaienabled",
1611
- value: "true",
1612
- constraint: "true | false"
1613
- },
1614
- {
1615
- name: "HAI_CORE_FEATURES_APIACCESS",
1616
- module: "core",
1617
- path: "HAI_CORE_FEATURES_APIACCESS",
1618
- description: "\u793A\u4F8B\u5E94\u7528\u529F\u80FD\u5F00\u5173\uFF1Aapiaccess",
1619
- value: "true",
1620
- constraint: "true | false"
1621
- },
1622
- {
1623
- name: "HAI_CORE_FEATURES_CONTACTFORM",
1624
- module: "core",
1625
- path: "HAI_CORE_FEATURES_CONTACTFORM",
1626
- description: "\u793A\u4F8B\u5E94\u7528\u529F\u80FD\u5F00\u5173\uFF1Acontactform",
1627
- value: "true",
1628
- constraint: "true | false"
1629
- },
1630
- {
1631
- name: "HAI_CORE_FEATURES_FILEUPLOAD",
1632
- module: "core",
1633
- path: "HAI_CORE_FEATURES_FILEUPLOAD",
1634
- description: "\u793A\u4F8B\u5E94\u7528\u529F\u80FD\u5F00\u5173\uFF1Afileupload",
1635
- value: "true",
1636
- constraint: "true | false"
1637
- },
1638
- {
1639
- name: "HAI_CORE_FEATURES_MCPENABLED",
1640
- module: "core",
1641
- path: "HAI_CORE_FEATURES_MCPENABLED",
1642
- description: "\u793A\u4F8B\u5E94\u7528\u529F\u80FD\u5F00\u5173\uFF1Amcpenabled",
1643
- value: "false",
1644
- constraint: "true | false"
1645
- },
1646
- {
1647
- name: "HAI_CORE_FEATURES_REGISTRATION",
1648
- module: "core",
1649
- path: "HAI_CORE_FEATURES_REGISTRATION",
1650
- description: "\u793A\u4F8B\u5E94\u7528\u529F\u80FD\u5F00\u5173\uFF1Aregistration",
1651
- value: "true",
1652
- constraint: "true | false"
1653
- },
1654
- {
1655
- name: "HAI_CORE_ID",
1656
- module: "core",
1657
- path: "core.id",
1658
- description: "ID \u751F\u6210\u5668\u914D\u7F6E\uFF08\u53EF\u9009\uFF09",
1659
- value: "",
1660
- constraint: "JSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9"
1661
- },
1662
- {
1663
- name: "HAI_CORE_ID_LENGTH",
1664
- module: "core",
1665
- path: "core.id.length",
1666
- description: "ID \u957F\u5EA6\uFF08\u8303\u56F4 6-64\uFF0C\u9ED8\u8BA4 21\uFF09",
1667
- value: "21",
1668
- constraint: "\u6574\u6570\uFF1B>= 6\uFF1B<= 64"
1669
- },
1670
- {
1671
- name: "HAI_CORE_ID_PREFIX",
1672
- module: "core",
1673
- path: "core.id.prefix",
1674
- description: "ID \u524D\u7F00\uFF08\u53EF\u9009\uFF0C\u751F\u6210\u65F6\u81EA\u52A8\u62FC\u63A5\uFF09",
1675
- value: "",
1676
- constraint: "\u5B57\u7B26\u4E32"
1677
- },
1678
1638
  {
1679
1639
  name: "HAI_CORE_LOGGING",
1680
1640
  module: "core",
@@ -1775,9 +1735,9 @@ var cli_config_catalog_default = [
1775
1735
  name: "HAI_DB_DATABASE",
1776
1736
  module: "db",
1777
1737
  path: "db.database",
1778
- description: "\u6570\u636E\u5E93\u540D\u79F0",
1738
+ description: "\u6570\u636E\u5E93\uFF1ASQLite\u6587\u4EF6\u8DEF\u5F84\u6216:memory:\uFF1BPostgreSQL\u5FC5\u586B\u540D\u79F0\uFF1BMySQL\u65E0URL\u65F6\u5FC5\u586B\uFF0CURL\u6A21\u5F0F\u4ECEURL\u8BFB\u53D6",
1779
1739
  value: "./data/admin.db",
1780
- constraint: "\u5B57\u7B26\u4E32"
1740
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
1781
1741
  },
1782
1742
  {
1783
1743
  name: "HAI_DB_HOST",
@@ -1803,14 +1763,6 @@ var cli_config_catalog_default = [
1803
1763
  value: "utf8mb4",
1804
1764
  constraint: "\u5B57\u7B26\u4E32"
1805
1765
  },
1806
- {
1807
- name: "HAI_DB_MYSQL_TIMEZONE",
1808
- module: "db",
1809
- path: "db.mysql.timezone",
1810
- description: "\u65F6\u533A\u8BBE\u7F6E\uFF0C\u5982 '+08:00'",
1811
- value: "",
1812
- constraint: "\u5B57\u7B26\u4E32"
1813
- },
1814
1766
  {
1815
1767
  name: "HAI_DB_OPERATIONLOG",
1816
1768
  module: "db",
@@ -1831,7 +1783,7 @@ var cli_config_catalog_default = [
1831
1783
  name: "HAI_DB_OPERATIONLOG_MAXLENGTH",
1832
1784
  module: "db",
1833
1785
  path: "db.operationLog.maxLength",
1834
- description: "\u64CD\u4F5C\u65E5\u5FD7\u5B57\u6BB5\u7684\u6700\u5927\u5B57\u7B26\u6570\uFF0C0 \u8868\u793A\u4E0D\u622A\u65AD",
1786
+ description: "\u5B89\u5168\u6570\u91CF\u6458\u8981\u7684\u6700\u5927\u5B57\u7B26\u6570\uFF1B0 \u8868\u793A\u7701\u7565\u6458\u8981\uFF0C\u6C38\u4E0D\u8BB0\u5F55 SQL \u539F\u6587\u6216\u53C2\u6570\u503C\u3002",
1835
1787
  value: "1000",
1836
1788
  constraint: "\u6574\u6570\uFF1B>= 0\uFF1B<= 9007199254740991"
1837
1789
  },
@@ -1863,7 +1815,7 @@ var cli_config_catalog_default = [
1863
1815
  name: "HAI_DB_POOL",
1864
1816
  module: "db",
1865
1817
  path: "db.pool",
1866
- description: "\u8FDE\u63A5\u6C60\u914D\u7F6E",
1818
+ description: "\u8FDE\u63A5\u6C60\u914D\u7F6E\uFF1APostgreSQL\u652F\u6301min/idleTimeout\uFF1BMySQL\u4EC5max/acquireTimeout/queueLimit\uFF0C\u62D2\u7EDD\u5176\u4ED6\u5B57\u6BB5",
1867
1819
  value: "",
1868
1820
  constraint: "JSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9"
1869
1821
  },
@@ -1871,15 +1823,15 @@ var cli_config_catalog_default = [
1871
1823
  name: "HAI_DB_POOL_ACQUIRETIMEOUT",
1872
1824
  module: "db",
1873
1825
  path: "db.pool.acquireTimeout",
1874
- description: "\u83B7\u53D6\u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF08\u9ED8\u8BA4 10000\uFF09",
1826
+ description: "\u83B7\u53D6\u8FDE\u63A5\u8D85\u65F6\uFF0C\u6BEB\u79D2\uFF08\u9ED8\u8BA410000\uFF09\uFF1BPostgreSQL >=0\uFF0C0\u7981\u7528\uFF1BMySQL\u6392\u961F+\u5EFA\u8FDE\u603B\u671F\u9650\u4E3A1\u20132147483647",
1875
1827
  value: "10000",
1876
- constraint: "\u6574\u6570\uFF1B>= 0\uFF1B<= 9007199254740991"
1828
+ constraint: "\u6574\u6570\uFF1BPostgreSQL >=0\uFF080\u7981\u7528\uFF09\uFF1BMySQL 1\u20132147483647"
1877
1829
  },
1878
1830
  {
1879
1831
  name: "HAI_DB_POOL_IDLETIMEOUT",
1880
1832
  module: "db",
1881
1833
  path: "db.pool.idleTimeout",
1882
- description: "\u7A7A\u95F2\u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF08\u9ED8\u8BA4 30000\uFF09",
1834
+ description: "PostgreSQL \u7A7A\u95F2\u8FDE\u63A5\u8D85\u65F6\uFF0C\u6BEB\u79D2\uFF08\u9ED8\u8BA4 30000\uFF1B0 \u7981\u7528\uFF09",
1883
1835
  value: "30000",
1884
1836
  constraint: "\u6574\u6570\uFF1B>= 0\uFF1B<= 9007199254740991"
1885
1837
  },
@@ -1895,10 +1847,18 @@ var cli_config_catalog_default = [
1895
1847
  name: "HAI_DB_POOL_MIN",
1896
1848
  module: "db",
1897
1849
  path: "db.pool.min",
1898
- description: "\u6700\u5C0F\u8FDE\u63A5\u6570\uFF08\u9ED8\u8BA4 1\uFF09",
1850
+ description: "PostgreSQL \u5DF2\u5EFA\u7ACB\u8FDE\u63A5\u7684\u6700\u5C0F\u4FDD\u7559\u6570\uFF08\u9ED8\u8BA4 1\uFF0C\u4E0D\u4E3B\u52A8\u9884\u5EFA\uFF09",
1899
1851
  value: "1",
1900
1852
  constraint: "\u6574\u6570\uFF1B>= 0\uFF1B<= 9007199254740991"
1901
1853
  },
1854
+ {
1855
+ name: "HAI_DB_POOL_QUEUELIMIT",
1856
+ module: "db",
1857
+ path: "db.pool.queueLimit",
1858
+ description: "MySQL \u7B49\u5F85\u961F\u5217\u6700\u5927\u8BF7\u6C42\u6570\uFF08\u9ED8\u8BA4 1000\uFF1B\u6B63\u6574\u6570\uFF0C\u4E0D\u652F\u6301\u65E0\u9650\u961F\u5217\uFF09",
1859
+ value: "1000",
1860
+ constraint: "\u6574\u6570\uFF1B>= 1\uFF1B<= 9007199254740991"
1861
+ },
1902
1862
  {
1903
1863
  name: "HAI_DB_PORT",
1904
1864
  module: "db",
@@ -1951,9 +1911,49 @@ var cli_config_catalog_default = [
1951
1911
  name: "HAI_DB_SSL",
1952
1912
  module: "db",
1953
1913
  path: "db.ssl",
1954
- description: "SSL/TLS \u8FDE\u63A5\u914D\u7F6E",
1914
+ description: "TLS\uFF1APostgreSQL\u4F7F\u7528\u5176\u6A21\u5F0F\uFF1BMySQL\u4EC5false\u6216\u4E25\u683C\u5BF9\u8C61\uFF0C\u7A7A\u5BF9\u8C61\u9ED8\u8BA4\u6821\u9A8C\u8BC1\u4E66\u94FE\u548CDNS\u8EAB\u4EFD",
1955
1915
  value: "false",
1956
- constraint: "true | false\uFF1B\u5B57\u7B26\u4E32\uFF1BJSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9\uFF1B\u53D6\u503C\uFF1Arequire | prefer | allow | disable"
1916
+ constraint: "MySQL\uFF1Afalse \u6216\u4E25\u683C TLS \u5BF9\u8C61\uFF08{} \u9ED8\u8BA4\u6821\u9A8C\u8BC1\u4E66\u94FE\u548C DNS \u8EAB\u4EFD\uFF09\uFF1BPostgreSQL\uFF1A\u5E03\u5C14\u503C\u3001require/prefer/allow/disable \u6216 TLS \u5BF9\u8C61"
1917
+ },
1918
+ {
1919
+ name: "HAI_DB_SSL_CA",
1920
+ module: "db",
1921
+ path: "db.ssl.ca",
1922
+ description: "MySQL \u4FE1\u4EFB\u7684 CA\uFF0CPEM \u5185\u5BB9\uFF1B\u7701\u7565\u65F6\u4F7F\u7528 Node \u4FE1\u4EFB\u5E93",
1923
+ value: "",
1924
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
1925
+ },
1926
+ {
1927
+ name: "HAI_DB_SSL_CERT",
1928
+ module: "db",
1929
+ path: "db.ssl.cert",
1930
+ description: "MySQL \u5BA2\u6237\u7AEF\u8BC1\u4E66\uFF0CPEM \u5185\u5BB9\uFF1B\u5FC5\u987B\u540C\u65F6\u63D0\u4F9B key",
1931
+ value: "",
1932
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
1933
+ },
1934
+ {
1935
+ name: "HAI_DB_SSL_KEY",
1936
+ module: "db",
1937
+ path: "db.ssl.key",
1938
+ description: "MySQL \u5BA2\u6237\u7AEF\u79C1\u94A5\uFF0CPEM \u5185\u5BB9\uFF1B\u5FC5\u987B\u540C\u65F6\u63D0\u4F9B cert",
1939
+ value: "",
1940
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
1941
+ },
1942
+ {
1943
+ name: "HAI_DB_SSL_REJECTUNAUTHORIZED",
1944
+ module: "db",
1945
+ path: "db.ssl.rejectUnauthorized",
1946
+ description: "MySQL \u662F\u5426\u6821\u9A8C\u8BC1\u4E66\u94FE\uFF08\u9ED8\u8BA4 true\uFF09\uFF1Bfalse \u660E\u786E\u653E\u5F03\u670D\u52A1\u7AEF\u8BA4\u8BC1",
1947
+ value: "true",
1948
+ constraint: "true | false"
1949
+ },
1950
+ {
1951
+ name: "HAI_DB_SSL_VERIFYIDENTITY",
1952
+ module: "db",
1953
+ path: "db.ssl.verifyIdentity",
1954
+ description: "MySQL \u662F\u5426\u9A8C\u8BC1 DNS \u4E3B\u673A\u8EAB\u4EFD\uFF08\u9ED8\u8BA4 true\uFF09\uFF1B\u4EC5\u8BC1\u4E66\u94FE\u9A8C\u8BC1\u5F00\u542F\u65F6\u6709\u6548",
1955
+ value: "true",
1956
+ constraint: "true | false"
1957
1957
  },
1958
1958
  {
1959
1959
  name: "HAI_DB_TYPE",
@@ -1967,9 +1967,9 @@ var cli_config_catalog_default = [
1967
1967
  name: "HAI_DB_URL",
1968
1968
  module: "db",
1969
1969
  path: "db.url",
1970
- description: "\u8FDE\u63A5\u5B57\u7B26\u4E32\uFF08\u53EF\u9009\uFF09 \u5982\u679C\u63D0\u4F9B url\uFF0C\u5C06\u4F18\u5148\u4F7F\u7528\uFF0C\u5FFD\u7565 host/port \u7B49\u5B57\u6BB5",
1970
+ description: "\u7F51\u7EDC\u6570\u636E\u5E93URL\uFF1BMySQL\u7A7A\u4E32\u8868\u793A\u4F7F\u7528\u5206\u5B57\u6BB5\uFF0C\u975E\u7A7A\u4EC5mysql://\u4E14\u62D2\u7EDDquery/fragment\uFF0C\u4F18\u5148\u4E8Ehost/port/database/user/password",
1971
1971
  value: "",
1972
- constraint: "\u5B57\u7B26\u4E32"
1972
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u683C\u5F0F uri\uFF1B\u53D6\u503C\uFF1A"
1973
1973
  },
1974
1974
  {
1975
1975
  name: "HAI_DB_USER",
@@ -2065,7 +2065,7 @@ var cli_config_catalog_default = [
2065
2065
  path: "deploy.provider.remote.baseDir",
2066
2066
  description: "\u8FDC\u7A0B\u5E94\u7528\u6839\u76EE\u5F55",
2067
2067
  value: "/opt/hai/apps",
2068
- constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
2068
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6B63\u5219 ^\\/[\\w/. -]+$"
2069
2069
  },
2070
2070
  {
2071
2071
  name: "HAI_DEPLOY_PROVIDER_REMOTE_RUNTIME",
@@ -2097,7 +2097,7 @@ var cli_config_catalog_default = [
2097
2097
  path: "deploy.provider.ssh.host",
2098
2098
  description: "\u8FDC\u7A0B\u4E3B\u673A\u5730\u5740\u6216 ~/.ssh/config \u4E2D\u7684 Host \u522B\u540D",
2099
2099
  value: "",
2100
- constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
2100
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6B63\u5219 ^[a-z0-9][a-z0-9.:-]*$"
2101
2101
  },
2102
2102
  {
2103
2103
  name: "HAI_DEPLOY_PROVIDER_SSH_IDENTITYFILE",
@@ -2137,7 +2137,7 @@ var cli_config_catalog_default = [
2137
2137
  path: "deploy.provider.ssh.username",
2138
2138
  description: "SSH \u7528\u6237\u540D",
2139
2139
  value: "deploy",
2140
- constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
2140
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6B63\u5219 ^[a-z_][\\w-]*$"
2141
2141
  },
2142
2142
  {
2143
2143
  name: "HAI_DEPLOY_PROVIDER_TOKEN",
@@ -2895,7 +2895,7 @@ var cli_config_catalog_default = [
2895
2895
  name: "HAI_IAM_SESSION_MAXAGE",
2896
2896
  module: "iam",
2897
2897
  path: "iam.session.maxAge",
2898
- description: "\u4F1A\u8BDD\u8D85\u65F6\u65F6\u95F4\uFF08\u79D2\uFF0C\u9ED8\u8BA4 86400 = 24\u5C0F\u65F6\uFF09",
2898
+ description: "\u65B0\u4F1A\u8BDD\u7684\u9ED8\u8BA4 access \u65F6\u957F\uFF08\u79D2\uFF09\uFF1B\u521B\u5EFA\u65F6\u53EF\u7528 maxAge \u8986\u76D6\uFF0C\u6ED1\u52A8/\u5237\u65B0\u6CBF\u7528\u4F1A\u8BDD\u56FA\u6709\u65F6\u957F\u3002",
2899
2899
  value: "86400",
2900
2900
  constraint: "\u6574\u6570\uFF1B>= 60\uFF1B<= 9007199254740991"
2901
2901
  },
@@ -2903,7 +2903,7 @@ var cli_config_catalog_default = [
2903
2903
  name: "HAI_IAM_SESSION_REFRESHTOKENMAXAGE",
2904
2904
  module: "iam",
2905
2905
  path: "iam.session.refreshTokenMaxAge",
2906
- description: "refreshToken \u8FC7\u671F\u65F6\u95F4\uFF08\u79D2\uFF0C\u9ED8\u8BA4 604800 = 7\u5929\uFF09",
2906
+ description: "refreshToken \u72EC\u7ACB\u6709\u6548\u671F\uFF08\u79D2\uFF0C\u9ED8\u8BA4 604800 = 7\u5929\uFF09\uFF1B\u4ECE\u7B7E\u53D1\u65F6\u523B\u8D77\u7B97\uFF0Caccess \u5230\u671F\u4ECD\u53EF\u5237\u65B0\u3002",
2907
2907
  value: "604800",
2908
2908
  constraint: "\u6574\u6570\uFF1B>= 3600\uFF1B<= 9007199254740991"
2909
2909
  },
@@ -3035,14 +3035,6 @@ var cli_config_catalog_default = [
3035
3035
  value: "false",
3036
3036
  constraint: "true | false\uFF1BJSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9\uFF1B\u53D6\u503C\uFF1Afalse"
3037
3037
  },
3038
- {
3039
- name: "HAI_KIT_TRANSPORT_ENCRYPTRESPONSE",
3040
- module: "kit",
3041
- path: "kit.transport.encryptResponse",
3042
- description: "\u662F\u5426\u52A0\u5BC6\u670D\u52A1\u7AEF\u4E1A\u52A1\u54CD\u5E94",
3043
- value: "true",
3044
- constraint: "true | false"
3045
- },
3046
3038
  {
3047
3039
  name: "HAI_KIT_TRANSPORT_EXCLUDEPATHS",
3048
3040
  module: "kit",
@@ -3083,22 +3075,6 @@ var cli_config_catalog_default = [
3083
3075
  value: "/api/_hai/key-exchange",
3084
3076
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u4EE5 / \u5F00\u5934\u7684\u8DEF\u5F84\u5B57\u7B26\u4E32"
3085
3077
  },
3086
- {
3087
- name: "HAI_KIT_TRANSPORT_MAXCLIENTS",
3088
- module: "kit",
3089
- path: "kit.transport.maxClients",
3090
- description: "\u670D\u52A1\u7AEF\u6700\u591A\u4FDD\u7559\u7684\u5BA2\u6237\u7AEF\u4F20\u8F93\u5BC6\u94A5\u4F1A\u8BDD\u6570",
3091
- value: "10000",
3092
- constraint: "\u6574\u6570\uFF1B<= 9007199254740991\uFF1B> 0"
3093
- },
3094
- {
3095
- name: "HAI_KIT_TRANSPORT_REQUIREENCRYPTION",
3096
- module: "kit",
3097
- path: "kit.transport.requireEncryption",
3098
- description: "\u662F\u5426\u8981\u6C42\u4E1A\u52A1\u8BF7\u6C42\u4F7F\u7528\u4F20\u8F93\u52A0\u5BC6",
3099
- value: "true",
3100
- constraint: "true | false"
3101
- },
3102
3078
  {
3103
3079
  name: "HAI_MODEL_API_KEY",
3104
3080
  module: "model",
@@ -3219,6 +3195,14 @@ var cli_config_catalog_default = [
3219
3195
  value: "",
3220
3196
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
3221
3197
  },
3198
+ {
3199
+ name: "HAI_PAYMENT_ALIPAY_RETURNURL",
3200
+ module: "payment",
3201
+ path: "payment.alipay.returnUrl",
3202
+ description: "\u624B\u673A\u7F51\u7AD9\u652F\u4ED8\u5B8C\u6210\u540E\u8FD4\u56DE\u7684\u53EF\u4FE1 HTTPS \u5730\u5740\uFF1B\u4EC5\u7528\u4E8E\u9875\u9762\u5BFC\u822A\uFF0C\u4E0D\u80FD\u8BC1\u660E\u4ED8\u6B3E\u3002",
3203
+ value: "",
3204
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u683C\u5F0F uri"
3205
+ },
3222
3206
  {
3223
3207
  name: "HAI_PAYMENT_ALIPAY_SANDBOX",
3224
3208
  module: "payment",
@@ -3227,11 +3211,19 @@ var cli_config_catalog_default = [
3227
3211
  value: "false",
3228
3212
  constraint: "true | false"
3229
3213
  },
3214
+ {
3215
+ name: "HAI_PAYMENT_ALIPAY_SELLERID",
3216
+ module: "payment",
3217
+ path: "payment.alipay.sellerId",
3218
+ description: "alipay\uFF1A\u652F\u4ED8\u5B9D\u5356\u5BB6 ID\uFF0C\u901A\u77E5 seller_id \u5FC5\u987B\u4E0E\u4E4B\u5339\u914D",
3219
+ value: "",
3220
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
3221
+ },
3230
3222
  {
3231
3223
  name: "HAI_PAYMENT_ALIPAY_SIGNTYPE",
3232
3224
  module: "payment",
3233
3225
  path: "payment.alipay.signType",
3234
- description: "alipay\uFF1A\u8BF7\u6C42\u7B7E\u540D\u7B97\u6CD5",
3226
+ description: "alipay\uFF1A\u8BF7\u6C42\u548C\u901A\u77E5\u5141\u8BB8\u7684\u7B7E\u540D\u7B97\u6CD5",
3235
3227
  value: "RSA2",
3236
3228
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u53D6\u503C\uFF1ARSA2 | RSA"
3237
3229
  },
@@ -3243,13 +3235,29 @@ var cli_config_catalog_default = [
3243
3235
  value: "",
3244
3236
  constraint: "JSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9"
3245
3237
  },
3238
+ {
3239
+ name: "HAI_PAYMENT_STRIPE_CANCELURL",
3240
+ module: "payment",
3241
+ path: "payment.stripe.cancelUrl",
3242
+ description: "\u6258\u7BA1 Checkout \u53D6\u6D88\u6309\u94AE\u7684\u53EF\u4FE1\u8DF3\u8F6C\u5730\u5740\uFF1B\u7701\u7565\u65F6\u4E0D\u663E\u793A\u8FD4\u56DE\u6309\u94AE\u3002",
3243
+ value: "",
3244
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u683C\u5F0F uri"
3245
+ },
3246
3246
  {
3247
3247
  name: "HAI_PAYMENT_STRIPE_SECRETKEY",
3248
3248
  module: "payment",
3249
3249
  path: "payment.stripe.secretKey",
3250
3250
  description: "stripe\uFF1AStripe \u670D\u52A1\u7AEF\u5BC6\u94A5",
3251
3251
  value: "",
3252
- constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
3252
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6B63\u5219 ^(?:sk|rk)_(?:test|live)_\\S+$"
3253
+ },
3254
+ {
3255
+ name: "HAI_PAYMENT_STRIPE_SUCCESSURL",
3256
+ module: "payment",
3257
+ path: "payment.stripe.successUrl",
3258
+ description: "\u6258\u7BA1 Checkout \u5B8C\u6210\u540E\u7684\u53EF\u4FE1\u8DF3\u8F6C\u5730\u5740\uFF0C\u53EF\u542B {CHECKOUT_SESSION_ID}\u3002",
3259
+ value: "",
3260
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u683C\u5F0F uri"
3253
3261
  },
3254
3262
  {
3255
3263
  name: "HAI_PAYMENT_STRIPE_WEBHOOKSECRET",
@@ -3300,12 +3308,12 @@ var cli_config_catalog_default = [
3300
3308
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
3301
3309
  },
3302
3310
  {
3303
- name: "HAI_PAYMENT_WECHAT_PLATFORMCERT",
3311
+ name: "HAI_PAYMENT_WECHAT_PLATFORMKEYS",
3304
3312
  module: "payment",
3305
- path: "payment.wechat.platformCert",
3306
- description: "wechat\uFF1A\u5FAE\u4FE1\u652F\u4ED8\u5E73\u53F0\u8BC1\u4E66\uFF08PEM\uFF09\uFF0C\u7528\u4E8E\u9A8C\u7B7E",
3313
+ path: "payment.wechat.platformKeys",
3314
+ description: "\u7CBE\u786E\u6309 Wechatpay-Serial \u9009\u62E9\u5E73\u53F0\u8BC1\u4E66/\u516C\u94A5\uFF0C\u8F6E\u6362\u671F\u95F4\u540C\u65F6\u914D\u7F6E\u65B0\u65E7\u6807\u8BC6\u3002",
3307
3315
  value: "",
3308
- constraint: "\u5B57\u7B26\u4E32"
3316
+ constraint: "JSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9"
3309
3317
  },
3310
3318
  {
3311
3319
  name: "HAI_PAYMENT_WECHAT_PRIVATEKEY",
@@ -3367,7 +3375,7 @@ var cli_config_catalog_default = [
3367
3375
  name: "HAI_REACH_DND_STRATEGY",
3368
3376
  module: "reach",
3369
3377
  path: "reach.dnd.strategy",
3370
- description: "\u514D\u6253\u6270\u7B56\u7565\uFF1Adiscard \u4E22\u5F03 / delay \u5EF6\u65F6\u53D1\u9001\uFF08\u9ED8\u8BA4 discard\uFF09",
3378
+ description: "discard \u4E22\u5F03\uFF1Bdelay \u8981\u6C42\u6570\u636E\u5E93\u961F\u5217\u5C31\u7EEA\u5E76\u786E\u8BA4\u5165\u961F\uFF08\u9ED8\u8BA4 discard\uFF09\u3002",
3371
3379
  value: "discard",
3372
3380
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u53D6\u503C\uFF1Adiscard | delay"
3373
3381
  },
@@ -3443,6 +3451,14 @@ var cli_config_catalog_default = [
3443
3451
  value: "smtp.example.com",
3444
3452
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u6700\u5C0F\u5B57\u7B26\u6570 1"
3445
3453
  },
3454
+ {
3455
+ name: "HAI_REACH_PROVIDERS_0_IDEMPOTENT",
3456
+ module: "reach",
3457
+ path: "reach.providers.0.idempotent",
3458
+ description: "\u63A5\u6536\u7AEF\u6309 Idempotency-Key \u539F\u5B50\u6301\u4E45\u53BB\u91CD\uFF0C\u4E14\u8986\u76D6\u6240\u6709\u91CD\u8BD5\u4E0E\u65E7\u8282\u70B9\u8FDF\u5230\u8BF7\u6C42\u65F6\u624D\u542F\u7528\uFF1B\u9ED8\u8BA4 false\u3002",
3459
+ value: "false",
3460
+ constraint: "true | false"
3461
+ },
3446
3462
  {
3447
3463
  name: "HAI_REACH_PROVIDERS_0_METHOD",
3448
3464
  module: "reach",
@@ -3531,6 +3547,38 @@ var cli_config_catalog_default = [
3531
3547
  value: "console",
3532
3548
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u53D6\u503C\uFF1Aconsole | smtp | aliyun-sms | api"
3533
3549
  },
3550
+ {
3551
+ name: "HAI_REACH_QUEUE",
3552
+ module: "reach",
3553
+ path: "reach.queue",
3554
+ description: "\u53EF\u9760\u961F\u5217\u91CD\u8BD5\u7B56\u7565\uFF1B\u6BCF\u6761\u6D88\u606F\u5165\u961F\u65F6\u6301\u4E45\u4FDD\u5B58\u3002",
3555
+ value: "{}",
3556
+ constraint: "JSON \u5BF9\u8C61\uFF1B\u6574\u4F53\u8986\u76D6\u65F6\u66FF\u6362\u8BE5\u8282\u70B9"
3557
+ },
3558
+ {
3559
+ name: "HAI_REACH_QUEUE_MAXATTEMPTS",
3560
+ module: "reach",
3561
+ path: "reach.queue.maxAttempts",
3562
+ description: "\u81EA\u52A8\u9886\u53D6\u6B21\u6570\u4E0A\u9650\uFF08\u542B\u9996\u6B21\u53CA\u5D29\u6E83\u6062\u590D\uFF0C\u9ED8\u8BA4 5\uFF0C\u8303\u56F4 1\u2013100\uFF09\u3002",
3563
+ value: "5",
3564
+ constraint: "\u6574\u6570\uFF1B>= 1\uFF1B<= 100"
3565
+ },
3566
+ {
3567
+ name: "HAI_REACH_QUEUE_MAXRETRYDELAYMS",
3568
+ module: "reach",
3569
+ path: "reach.queue.maxRetryDelayMs",
3570
+ description: "\u6307\u6570\u9000\u907F\u4E0A\u9650\u6BEB\u79D2\u6570\uFF0C\u4E0D\u5F97\u5C0F\u4E8E retryDelayMs\uFF08\u9ED8\u8BA4 3600000\uFF09\u3002",
3571
+ value: "3600000",
3572
+ constraint: "\u6574\u6570\uFF1B>= 1000\uFF1B<= 86400000"
3573
+ },
3574
+ {
3575
+ name: "HAI_REACH_QUEUE_RETRYDELAYMS",
3576
+ module: "reach",
3577
+ path: "reach.queue.retryDelayMs",
3578
+ description: "\u9996\u6B21\u5931\u8D25\u540E\u7684\u9000\u907F\u6BEB\u79D2\u6570\uFF08\u9ED8\u8BA4 60000\uFF0C\u8303\u56F4 1000\u201386400000\uFF09\u3002",
3579
+ value: "60000",
3580
+ constraint: "\u6574\u6570\uFF1B>= 1000\uFF1B<= 86400000"
3581
+ },
3534
3582
  {
3535
3583
  name: "HAI_REACH_TEMPLATES",
3536
3584
  module: "reach",
@@ -3723,6 +3771,14 @@ var cli_config_catalog_default = [
3723
3771
  value: "",
3724
3772
  constraint: "\u654F\u611F\u5B57\u7B26\u4E32\uFF1B\u6743\u9650\u7531\u76EE\u6807\u4ED3\u5E93\u4E0E\u5DE5\u4F5C\u6D41\u51B3\u5B9A"
3725
3773
  },
3774
+ {
3775
+ name: "HAI_CRYPTO_TRANSPORT_SERVERKEYRING",
3776
+ module: "runtime",
3777
+ path: "HAI_CRYPTO_TRANSPORT_SERVERKEYRING",
3778
+ description: "\u670D\u52A1\u7AEF\u53D7\u7BA1\u7248\u672C\u5316\u4F20\u8F93\u5BC6\u94A5\u73AF\uFF1B\u4EC5\u79C1\u6709\u73AF\u5883\u6216 Secret Manager \u6CE8\u5165",
3779
+ value: "",
3780
+ constraint: "JSON \u5BF9\u8C61 {activeKeyId,keys:{id:{publicKey,privateKey}}}\uFF1B\u6240\u6709\u8282\u70B9\u5171\u4EAB\uFF0CID \u4E3A 1-64 \u4E2A\u5B57\u6BCD/\u6570\u5B57/\u4E0B\u5212\u7EBF/\u8FDE\u5B57\u7B26\uFF1B\u7981\u6B62 PUBLIC_/VITE_/\u516C\u5F00 YAML/\u65E5\u5FD7"
3781
+ },
3726
3782
  {
3727
3783
  name: "HF_ENDPOINT",
3728
3784
  module: "runtime",
@@ -3787,6 +3843,14 @@ var cli_config_catalog_default = [
3787
3843
  value: "",
3788
3844
  constraint: "\u64CD\u4F5C\u7CFB\u7EDF\u652F\u6301\u7684 locale\uFF0C\u4F8B\u5982 en_US.UTF-8"
3789
3845
  },
3846
+ {
3847
+ name: "LC_MESSAGES",
3848
+ module: "runtime",
3849
+ path: "LC_MESSAGES",
3850
+ description: "CLI \u6D88\u606F\u8BED\u8A00\uFF1BHAI_CORE_DEFAULTLOCALE\u3001LC_ALL \u4F18\u5148\uFF0CLANG \u540E\u5907",
3851
+ value: "",
3852
+ constraint: "\u64CD\u4F5C\u7CFB\u7EDF\u652F\u6301\u7684 locale\uFF0C\u4F8B\u5982 en_US.UTF-8"
3853
+ },
3790
3854
  {
3791
3855
  name: "LEAK_WORDS",
3792
3856
  module: "runtime",
@@ -3843,6 +3907,22 @@ var cli_config_catalog_default = [
3843
3907
  value: "",
3844
3908
  constraint: "\u4FDD\u7559\u7CFB\u7EDF\u539F\u503C\uFF1B\u7531\u64CD\u4F5C\u7CFB\u7EDF\u8DEF\u5F84\u5206\u9694\u7B26\u8FDE\u63A5\uFF0C\u4E0D\u8981\u5728 .env \u4E2D\u7F6E\u7A7A\u6216\u4F5C\u4E3A\u5E94\u7528\u914D\u7F6E\u8986\u76D6"
3845
3909
  },
3910
+ {
3911
+ name: "PLAYWRIGHT_HTML_OUTPUT_DIR",
3912
+ module: "runtime",
3913
+ path: "PLAYWRIGHT_HTML_OUTPUT_DIR",
3914
+ description: "\u73AF\u5883\u5165\u53E3\uFF1B\u4F7F\u7528\u4F4D\u7F6E packages/cli/templates/shared/run-e2e.mjs",
3915
+ value: "",
3916
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6309\u4F7F\u7528\u4F4D\u7F6E\u7684\u6821\u9A8C\u89C4\u5219\u586B\u5199"
3917
+ },
3918
+ {
3919
+ name: "PLAYWRIGHT_HTML_REPORT",
3920
+ module: "runtime",
3921
+ path: "PLAYWRIGHT_HTML_REPORT",
3922
+ description: "\u73AF\u5883\u5165\u53E3\uFF1B\u4F7F\u7528\u4F4D\u7F6E packages/cli/templates/shared/run-e2e.mjs",
3923
+ value: "",
3924
+ constraint: "\u5B57\u7B26\u4E32\uFF1B\u6309\u4F7F\u7528\u4F4D\u7F6E\u7684\u6821\u9A8C\u89C4\u5219\u586B\u5199"
3925
+ },
3846
3926
  {
3847
3927
  name: "POLLINATIONS_API_KEY",
3848
3928
  module: "runtime",
@@ -3891,14 +3971,6 @@ var cli_config_catalog_default = [
3891
3971
  value: "",
3892
3972
  constraint: "on | off"
3893
3973
  },
3894
- {
3895
- name: "PYTHONIOENCODING",
3896
- module: "runtime",
3897
- path: "PYTHONIOENCODING",
3898
- description: "\u672C\u5730 Python \u6A21\u578B\u8FDB\u7A0B\u6807\u51C6\u8F93\u5165\u8F93\u51FA\u7F16\u7801",
3899
- value: "",
3900
- constraint: "Python \u652F\u6301\u7684\u7F16\u7801\u540D\uFF0C\u901A\u5E38 utf-8"
3901
- },
3902
3974
  {
3903
3975
  name: "SERVED_MODEL_NAME",
3904
3976
  module: "runtime",
@@ -3991,17 +4063,17 @@ var cli_config_catalog_default = [
3991
4063
  name: "HAI_SCHEDULER_ENABLEDB",
3992
4064
  module: "scheduler",
3993
4065
  path: "scheduler.enableDb",
3994
- description: "\u662F\u5426\u542F\u7528\u6570\u636E\u5E93\u8BB0\u5F55\uFF08\u9ED8\u8BA4 true\uFF0C\u9700\u8981",
4066
+ description: "\u5FC5\u987B\u4F7F\u7528\u5171\u4EAB\u6570\u636E\u5E93\u4FDD\u5B58\u6267\u884C\u72B6\u6001\uFF1Bfalse \u4E0D\u518D\u5141\u8BB8\uFF0C\u9700\u8981\u5148\u521D\u59CB\u5316",
3995
4067
  value: "true",
3996
- constraint: "true | false"
4068
+ constraint: "true | false\uFF1B\u53D6\u503C\uFF1Atrue"
3997
4069
  },
3998
4070
  {
3999
- name: "HAI_SCHEDULER_LOCKEXPIREMS",
4071
+ name: "HAI_SCHEDULER_LEASEMS",
4000
4072
  module: "scheduler",
4001
- path: "scheduler.lockExpireMs",
4002
- description: "\u5206\u5E03\u5F0F\u9501\u8FC7\u671F\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF08\u9ED8\u8BA4 300000\uFF0C\u5373 5 \u5206\u949F\uFF09",
4073
+ path: "scheduler.leaseMs",
4074
+ description: "\u6267\u884C\u79DF\u7EA6\u6BEB\u79D2\u6570\uFF08\u9ED8\u8BA4 300000\uFF0C\u8303\u56F4 1000\u201386400000\uFF09\uFF0C\u5728\u9014\u6BCF\u4E09\u5206\u4E4B\u4E00\u5468\u671F\u7EED\u671F\u3002",
4003
4075
  value: "300000",
4004
- constraint: "\u6574\u6570\uFF1B>= 10000\uFF1B<= 9007199254740991"
4076
+ constraint: "\u6574\u6570\uFF1B>= 1000\uFF1B<= 86400000"
4005
4077
  },
4006
4078
  {
4007
4079
  name: "HAI_SCHEDULER_MAXLOGS",
@@ -4115,6 +4187,14 @@ var cli_config_catalog_default = [
4115
4187
  value: "X-Requested-With",
4116
4188
  constraint: "\u5B57\u7B26\u4E32"
4117
4189
  },
4190
+ {
4191
+ name: "HAI_SERV_CORS_ALLOWEDHEADERS_7",
4192
+ module: "serv",
4193
+ path: "HAI_SERV_CORS_ALLOWEDHEADERS_7",
4194
+ description: "CORS \u5141\u8BB8\u5BA2\u6237\u7AEF\u53D1\u9001\u7684\u8BF7\u6C42\u5934",
4195
+ value: "X-Hai-Transport",
4196
+ constraint: "\u5B57\u7B26\u4E32"
4197
+ },
4118
4198
  {
4119
4199
  name: "HAI_SERV_CORS_CREDENTIALS",
4120
4200
  module: "serv",
@@ -4147,6 +4227,14 @@ var cli_config_catalog_default = [
4147
4227
  value: "X-Request-Id",
4148
4228
  constraint: "\u5B57\u7B26\u4E32"
4149
4229
  },
4230
+ {
4231
+ name: "HAI_SERV_CORS_EXPOSEDHEADERS_2",
4232
+ module: "serv",
4233
+ path: "HAI_SERV_CORS_EXPOSEDHEADERS_2",
4234
+ description: "CORS \u5141\u8BB8\u5BA2\u6237\u7AEF\u8BFB\u53D6\u7684\u54CD\u5E94\u5934",
4235
+ value: "X-Hai-Transport",
4236
+ constraint: "\u5B57\u7B26\u4E32"
4237
+ },
4150
4238
  {
4151
4239
  name: "HAI_SERV_CORS_NATIVEORIGINS",
4152
4240
  module: "serv",
@@ -4387,14 +4475,6 @@ var cli_config_catalog_default = [
4387
4475
  value: "/_hai/key-exchange",
4388
4476
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u4EE5 / \u5F00\u5934\u7684\u8DEF\u5F84\u5B57\u7B26\u4E32"
4389
4477
  },
4390
- {
4391
- name: "HAI_SERV_TRANSPORT_MAXCLIENTS",
4392
- module: "serv",
4393
- path: "serv.transport.maxClients",
4394
- description: "\u670D\u52A1\u7AEF\u6700\u591A\u4FDD\u7559\u7684\u5BA2\u6237\u7AEF\u4F20\u8F93\u5BC6\u94A5\u4F1A\u8BDD\u6570",
4395
- value: "10000",
4396
- constraint: "\u6574\u6570\uFF1B<= 9007199254740991\uFF1B> 0"
4397
- },
4398
4478
  {
4399
4479
  name: "HAI_STORAGE",
4400
4480
  module: "storage",
@@ -4432,7 +4512,7 @@ var cli_config_catalog_default = [
4432
4512
  module: "storage",
4433
4513
  path: "storage.endpoint",
4434
4514
  description: "\u81EA\u5B9A\u4E49\u7AEF\u70B9\uFF08\u7528\u4E8E MinIO\u3001RustFS\u3001\u963F\u91CC\u4E91 OSS \u7B49\uFF09",
4435
- value: "",
4515
+ value: "https://s3.amazonaws.com",
4436
4516
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u683C\u5F0F uri"
4437
4517
  },
4438
4518
  {
@@ -4551,9 +4631,9 @@ var cli_config_catalog_default = [
4551
4631
  name: "HAI_VECDB_APIKEY",
4552
4632
  module: "vecdb",
4553
4633
  path: "vecdb.apiKey",
4554
- description: "API Key\uFF08\u53EF\u9009\uFF0C\u8FDE\u63A5\u53D7\u4FDD\u62A4\u7684 Chroma \u670D\u52A1\u65F6\u4F7F\u7528\uFF09",
4634
+ description: "Qdrant\uFF1AAPI key\uFF1BChroma\uFF1AAuthorization Bearer token\uFF0C\u7528\u4E8E\u540C\u534F\u8BAE\u7684\u81EA\u6258\u7BA1\u670D\u52A1/\u7F51\u5173\uFF0C\u4E0D\u63D0\u4F9B Chroma Cloud \u5951\u7EA6",
4555
4635
  value: "",
4556
- constraint: "\u5B57\u7B26\u4E32"
4636
+ constraint: "\u5B57\u7B26\u4E32\uFF1BQdrant API key\uFF1BChroma \u4E3A\u7A7A\u4E32\u6216\u65E0\u7A7A\u767D\u7684\u53EF\u6253\u5370 ASCII Bearer token"
4557
4637
  },
4558
4638
  {
4559
4639
  name: "HAI_VECDB_DATABASE",
@@ -4687,8 +4767,8 @@ var cli_config_catalog_default = [
4687
4767
  name: "HAI_VECDB_URL",
4688
4768
  module: "vecdb",
4689
4769
  path: "vecdb.url",
4690
- description: "\u5DF2\u6709 Chroma \u670D\u52A1 URL\uFF08\u63D0\u4F9B\u65F6\u76F4\u8FDE\uFF0C\u4E0D\u81EA\u52A8\u62C9\u8D77\u8FDB\u7A0B\uFF09",
4691
- value: "",
4770
+ description: "pgvector\uFF1A\u8FDE\u63A5\u4E32\uFF1BQdrant\uFF1AHTTP(S) \u670D\u52A1\u5730\u5740\uFF1BChroma\uFF1AHTTP(S) \u6839\u7AEF\u70B9\uFF0C\u4F18\u5148\u4E8E host/port\uFF0C\u4E0D\u5141\u8BB8\u51ED\u636E\u3001\u8DEF\u5F84\u524D\u7F00\u3001query \u6216 fragment",
4771
+ value: "http://localhost:6333",
4692
4772
  constraint: "\u5B57\u7B26\u4E32\uFF1B\u683C\u5F0F uri"
4693
4773
  },
4694
4774
  {
@@ -4776,7 +4856,7 @@ function variableConstraint(name, value) {
4776
4856
  HAI_STORAGE_TYPE: "local | s3",
4777
4857
  HAI_VECDB_TYPE: "lancedb | pgvector | qdrant | chroma",
4778
4858
  HAI_AI_LLM_API: "chat | responses | anthropic",
4779
- HAI_DB_SSL: "false | true | require | prefer | allow | disable\uFF1B\u6216 TLS \u5BF9\u8C61",
4859
+ HAI_DB_SSL: "MySQL\uFF1Afalse \u6216\u4E25\u683C TLS \u5BF9\u8C61\uFF08{} \u9ED8\u8BA4\u6821\u9A8C\u8BC1\u4E66\u94FE\u548C DNS \u8EAB\u4EFD\uFF09\uFF1BPostgreSQL\uFF1A\u5E03\u5C14\u503C\u3001require/prefer/allow/disable \u6216 TLS \u5BF9\u8C61",
4780
4860
  HAI_IAM_PASSWORD_MINLENGTH: "\u6574\u6570 >= 1\uFF0C\u4E14\u4E0D\u5927\u4E8E maxLength",
4781
4861
  HAI_IAM_PASSWORD_MAXLENGTH: "\u6574\u6570 1\u2013256\uFF0C\u4E14\u4E0D\u5C0F\u4E8E minLength",
4782
4862
  HAI_IAM_PASSWORD_EXPIRATIONDAYS: "\u6574\u6570 >= 0\uFF0C\u5355\u4F4D\u5929\uFF1B0 \u8868\u793A\u4E0D\u8FC7\u671F",
@@ -4885,7 +4965,6 @@ function generateCoreConfig(cfg) {
4885
4965
  ${stringify({ name }).trim()}
4886
4966
  version: 0.1.0
4887
4967
  env: development
4888
- debug: false
4889
4968
 
4890
4969
  logging:
4891
4970
  level: info
@@ -4898,10 +4977,6 @@ logging:
4898
4977
  - secret
4899
4978
 
4900
4979
  defaultLocale: ${locale}
4901
- # \u77ED ID \u751F\u6210\u9009\u9879\uFF1B\u8BED\u8A00\u5217\u8868\u5728\u524D\u7AEF project.inlang/settings.json \u4E2D\u7EF4\u62A4\u3002
4902
- # id:
4903
- # prefix: app_
4904
- # length: 21
4905
4980
  `;
4906
4981
  }
4907
4982
  function generateServConfig() {
@@ -4944,7 +5019,6 @@ transport: false
4944
5019
  # transport:
4945
5020
  # keyExchangePath: /_hai/key-exchange
4946
5021
  # excludePaths: [/health, /ready]
4947
- # maxClients: 10000
4948
5022
  `;
4949
5023
  }
4950
5024
  function generateDbConfig(cfg) {
@@ -4955,7 +5029,9 @@ function generateDbConfig(cfg) {
4955
5029
  const user = dbType === "mysql" ? "root" : "postgres";
4956
5030
  const connection = stringify({ host, port, user, password: "" }).trim();
4957
5031
  const networkOptions = `# url: \${HAI_DB_URL} # \u53EF\u7528\u8FDE\u63A5\u4E32\u66FF\u4EE3 host/port/user/password
4958
- # ssl: false # false | true | require | prefer | allow | disable\uFF0C\u6216 TLS \u5BF9\u8C61
5032
+ # PostgreSQL ssl\uFF1A\u5E03\u5C14\u503C\u3001require/prefer/allow/disable \u6216 TLS \u5BF9\u8C61\u3002
5033
+ # MySQL ssl\uFF1Afalse \u6216\u4E25\u683C\u5BF9\u8C61\uFF1B{} \u9ED8\u8BA4\u6821\u9A8C\u8BC1\u4E66\u94FE\u548C DNS \u8EAB\u4EFD\uFF0C\u4E0D\u80FD\u7528 true \u6216 PostgreSQL \u5B57\u7B26\u4E32\u6A21\u5F0F\u3002
5034
+ # MySQL \u81EA\u5B9A\u4E49 CA / mTLS \u4F7F\u7528 ca/cert/key \u7684 PEM \u5185\u5BB9\uFF1Bcert/key \u5FC5\u987B\u6210\u5BF9\uFF0C\u79C1\u94A5\u4EC5\u6CE8\u5165\u79C1\u6709\u73AF\u5883\u3002
4959
5035
  # pool:
4960
5036
  # min: 1
4961
5037
  # max: 10
@@ -5135,8 +5211,8 @@ function generateStorageConfig(cfg) {
5135
5211
  region: us-east-1
5136
5212
  accessKeyId: ''
5137
5213
  secretAccessKey: ''
5138
- # endpoint: https://s3.amazonaws.com
5139
- # forcePathStyle: false
5214
+ endpoint: \${HAI_STORAGE_ENDPOINT:https://s3.amazonaws.com}
5215
+ forcePathStyle: false
5140
5216
  # prefix: ''
5141
5217
  # publicUrl: https://cdn.example.com`;
5142
5218
  return `# \u5B58\u50A8\u914D\u7F6E\uFF1BHAI_STORAGE \u53EF\u6574\u4F53\u66FF\u6362\u8FDE\u63A5\u914D\u7F6E\u3002
@@ -5145,7 +5221,7 @@ ${local}
5145
5221
  ${s3}
5146
5222
 
5147
5223
  # type \u9009\u62E9 Provider\uFF1B\u672A\u9009\u5206\u652F\u5B57\u6BB5\u7531\u6A21\u5757 Schema \u5FFD\u7565\u3002
5148
- # endpoint / publicUrl \u4E3A\u53EF\u9009 URL\uFF0C\u542F\u7528\u65F6\u53D6\u6D88\u5BF9\u5E94\u5B57\u6BB5\u6CE8\u91CA\u5E76\u901A\u8FC7\u73AF\u5883\u53D8\u91CF\u63D0\u4F9B\u3002
5224
+ # S3 \u517C\u5BB9\u670D\u52A1\u7531\u73AF\u5883\u6CE8\u5165 endpoint / forcePathStyle\uFF1B\u9ED8\u8BA4\u7AEF\u70B9\u7528\u4E8E us-east-1\u3002
5149
5225
 
5150
5226
  # operationLog:
5151
5227
  # read: false
@@ -5207,7 +5283,7 @@ ${stringify({ model }).trim().split("\n").map((line) => ` ${line}`).join("\n")}
5207
5283
  # fast: fast
5208
5284
  # embedding / rerank / vision \u987B\u5728 models \u4E2D\u58F0\u660E\u5BF9\u5E94\u5382\u5546\u6A21\u578B\uFF0C\u4E0D\u80FD\u53EA\u586B\u5199\u573A\u666F ID\u3002
5209
5285
 
5210
- # \u53EF\u9009\u5B50\u6A21\u5757\uFF1A\u53EA\u53D6\u6D88\u9700\u8981\u7684\u5757\u7684\u6CE8\u91CA\uFF0C\u6A21\u578B\u3001\u5411\u91CF\u5E93\u4E0E\u6570\u636E\u5E93\u4F9D\u8D56\u6309\u4F7F\u7528\u573A\u666F\u521D\u59CB\u5316\u3002
5286
+ # \u53EF\u9009\u5B50\u6A21\u5757\u53EA\u53D6\u6D88\u9700\u8981\u7684\u5757\uFF1B\u751F\u4EA7\u73AF\u5883\u5148\u521D\u59CB\u5316\u5171\u4EAB\u6570\u636E\u5E93\u4E0E\u7F51\u7EDC\u5411\u91CF\u5E93\uFF0C\u518D\u521D\u59CB\u5316 AI\u3002
5211
5287
  # mcp:
5212
5288
  # server:
5213
5289
  # name: my-app
@@ -5288,6 +5364,10 @@ ${stringify({ model }).trim().split("\n").map((line) => ` ${line}`).join("\n")}
5288
5364
  # apiKey:
5289
5365
  # in: header # header | query
5290
5366
  # name: x-api-key
5367
+ # execution:
5368
+ # leaseMs: 30000
5369
+ # pollIntervalMs: 250
5370
+ # maxExecutionMs: 300000
5291
5371
  # audio:
5292
5372
  # inheritLlmApiKey: false
5293
5373
  # transcribeModel: asr
@@ -5311,6 +5391,8 @@ ${stringify({ model }).trim().split("\n").map((line) => ` ${line}`).join("\n")}
5311
5391
  # model: tts-1
5312
5392
  # operations: [synthesize]
5313
5393
  # image:
5394
+ # maxImageBytes: 20971520 # \u5355\u5F20\u56FE\u7247/\u53C2\u8003\u56FE\u5B57\u8282\u4E0A\u9650\uFF1BJSON \u4E0A\u9650\u4E3A max(64KiB, \u4E24\u500D\u8BE5\u503C)
5395
+ # maxImages: 4 # \u56FE\u7247/\u53C2\u8003\u56FE\u6570\u91CF\u4E0A\u9650\uFF0C\u4E34\u65F6 URL \u4E32\u884C\u4E0B\u8F7D
5314
5396
  # generateModel: image
5315
5397
  # models:
5316
5398
  # - id: image
@@ -5351,84 +5433,59 @@ ${commented(optional)}`);
5351
5433
  return `${sections.join("\n\n")}
5352
5434
  `;
5353
5435
  }
5436
+ function generateProductionEnvironment(features, configs) {
5437
+ const enabled = new Set(features);
5438
+ if (enabled.has("ai")) {
5439
+ enabled.add("db");
5440
+ enabled.add("vecdb");
5441
+ }
5442
+ const sections = [
5443
+ "# \u751F\u4EA7\u73AF\u5883\u5FC5\u987B\u4F7F\u7528\u5171\u4EAB\u540E\u7AEF\uFF1B\u4EE5\u4E0B\u670D\u52A1\u540D\u5BF9\u5E94 Compose \u5185\u90E8 DNS\u3002",
5444
+ "# \u51ED\u636E\u901A\u8FC7\u90E8\u7F72 Secret / \u8FDB\u7A0B\u73AF\u5883\u6216\u88AB\u5FFD\u7565\u7684 .env.local \u6CE8\u5165\uFF0C\u7981\u6B62\u63D0\u4EA4\u771F\u5B9E\u503C\u3002",
5445
+ "HAI_CORE_ENV=production",
5446
+ "HAI_CORE_LOGGING_LEVEL=info"
5447
+ ];
5448
+ if (enabled.has("db")) {
5449
+ const mysql = configs?.db?.type === "mysql";
5450
+ const database = configs?.db?.type !== "sqlite" && configs?.db?.database ? configs.db.database : "hai";
5451
+ sections.push("", "# \u5FC5\u987B\u79C1\u6709\u6CE8\u5165 HAI_DB_PASSWORD\uFF1B\u5916\u90E8\u6570\u636E\u5E93\u53EF\u8986\u76D6\u4E0B\u5217\u8FDE\u63A5\u5B57\u6BB5\u3002", `HAI_DB_TYPE=${mysql ? "mysql" : "postgresql"}`, "HAI_DB_HOST=db", `HAI_DB_PORT=${mysql ? 3306 : 5432}`, renderEnvironment([{ name: "HAI_DB_DATABASE", path: "db.database", value: database, constraint: "\u751F\u4EA7\u6570\u636E\u5E93\u540D" }]), `HAI_DB_USER=${mysql ? "root" : "postgres"}`);
5452
+ }
5453
+ if (enabled.has("cache"))
5454
+ sections.push("", "# \u5FC5\u987B\u79C1\u6709\u6CE8\u5165 HAI_CACHE_PASSWORD\u3002", "HAI_CACHE_TYPE=redis", "HAI_CACHE_HOST=cache", "HAI_CACHE_PORT=6379");
5455
+ if (enabled.has("storage")) {
5456
+ sections.push("", "# \u5FC5\u987B\u79C1\u6709\u6CE8\u5165 HAI_STORAGE_ACCESSKEYID / HAI_STORAGE_SECRETACCESSKEY\u3002", "HAI_STORAGE_TYPE=s3", "HAI_STORAGE_BUCKET=hai", "HAI_STORAGE_REGION=us-east-1", "HAI_STORAGE_ENDPOINT=http://storage:9000", "HAI_STORAGE_FORCEPATHSTYLE=true");
5457
+ }
5458
+ if (enabled.has("vecdb"))
5459
+ sections.push("", "# \u53D7\u4FDD\u62A4\u7684 Qdrant \u5FC5\u987B\u79C1\u6709\u6CE8\u5165 HAI_VECDB_APIKEY\u3002", "HAI_VECDB_TYPE=qdrant", "HAI_VECDB_URL=http://vecdb:6333");
5460
+ if (enabled.has("ai"))
5461
+ sections.push("", "# \u5FC5\u987B\u79C1\u6709\u6CE8\u5165 HAI_AI_LLM_APIKEY \u53CA\u6240\u9009\u6A21\u578B\u7684\u5176\u5B83\u51ED\u636E\uFF1BAI \u81EA\u52A8\u590D\u7528\u5DF2\u521D\u59CB\u5316\u7684\u5171\u4EAB db/vecdb\u3002");
5462
+ if (enabled.has("reach")) {
5463
+ sections.push("", "# \u5FC5\u987B\u79C1\u6709\u6CE8\u5165 HAI_REACH_PROVIDERS \u7684\u771F\u5B9E SMTP/SMS/API JSON\uFF08\u5305\u542B\u51ED\u636E\uFF09\u3002", "# \u7A7A\u6570\u7EC4\u6709\u610F\u8BA9\u914D\u7F6E\u6821\u9A8C\u62D2\u7EDD\u542F\u52A8\uFF0C\u751F\u4EA7\u4E0D\u5F97\u6CBF\u7528\u5F00\u53D1 console Provider\u3002", "HAI_REACH_PROVIDERS='[]'");
5464
+ }
5465
+ return `${sections.join("\n")}
5466
+ `;
5467
+ }
5354
5468
  function generateDeployConfig() {
5355
- return `# =============================================================================
5356
- # \u90E8\u7F72\u914D\u7F6E (@h-ai/deploy)
5357
- # =============================================================================
5358
- # \u90E8\u7F72\u5E73\u53F0\u51ED\u8BC1\u901A\u8FC7 ~/.hai/credentials.yml \u7BA1\u7406
5359
- # \u73AF\u5883\u53D8\u91CF\u5F15\u7528\u683C\u5F0F: \${VAR_NAME:default_value}
5360
-
5361
- # \u90E8\u7F72\u5E73\u53F0
5469
+ return `# \u90E8\u7F72\u5DF2\u6709\u955C\u50CF\uFF1B\u8FD0\u884C pnpm run deploy --build \u53EF\u5148\u6784\u5EFA\u518D\u53D1\u5E03\u3002
5470
+ # SSH \u53C2\u6570\u7531\u5411\u5BFC\u4FDD\u5B58\u5728\u672C\u673A .env.local\uFF1B\u79BB\u7EBF\u6253\u5305\u4E0D\u8981\u6C42 SSH\u3002
5362
5471
  provider:
5363
- type: vercel
5364
- token: \${HAI_DEPLOY_PROVIDER_TOKEN}
5365
-
5366
- # ---------------------------------------------------------------------------
5367
- # \u65B9\u5F0F\u4E8C\uFF1Adocker-ssh \u2014 \u5C06\u5E94\u7528\u5BB9\u5668\u5316\u540E\u901A\u8FC7 SSH \u90E8\u7F72\u5230\u4EFB\u610F Linux \u4E3B\u673A
5368
- # \u8FDC\u7A0B\u4E3B\u673A\u53EA\u9700\u5177\u5907 SSH + docker/podman + compose\uFF0C\u672C\u5730\u9700 docker \u6216 podman
5369
- # \u5207\u6362\u65F6\u7528\u4E0B\u65B9 provider \u66FF\u6362\u4E0A\u9762\u7684 vercel provider
5370
- # ---------------------------------------------------------------------------
5371
- # provider:
5372
- # type: docker-ssh
5373
- # ssh:
5374
- # host: \${HAI_DEPLOY_PROVIDER_SSH_HOST}
5375
- # port: 22
5376
- # username: deploy
5377
- # identityFile: \${HAI_DEPLOY_PROVIDER_SSH_IDENTITYFILE} # \u79C1\u94A5\u6587\u4EF6\u8DEF\u5F84\uFF08\u7701\u7565\u5219\u7528 ssh-agent\uFF09
5378
- # knownHostsFile: \${HAI_DEPLOY_PROVIDER_SSH_KNOWNHOSTSFILE}
5379
- # strictHostKeyChecking: true
5380
- # connectTimeoutSeconds: 10
5381
- # remote:
5382
- # baseDir: /opt/hai/apps
5383
- # runtime: auto # auto \u4F18\u5148 podman\uFF0C\u5176\u6B21 docker
5384
- # expose:
5385
- # type: port
5386
- # containerPort: 3000
5387
- # hostPort: 18080 # \u8BBF\u95EE\u5730\u5740 http://<host>:18080
5472
+ type: docker-ssh
5473
+ remote:
5474
+ baseDir: /opt/hai/apps
5475
+ runtime: auto # \u4F18\u5148 Podman\uFF0C\u5176\u6B21 Docker
5476
+ expose:
5477
+ hostPort: 18080
5478
+ containerPort: 3000
5388
5479
 
5389
- # Compose \u4E2D\u95F4\u4EF6\u53C2\u6570\uFF1B\u955C\u50CF\u6784\u5EFA\u8BBE\u7F6E\u5728\u5DE5\u7A0B hai.build.json\u3002
5390
- # container:
5391
- # s3Engine: rustfs # rustfs | minio\uFF1B\u5E94\u7528\u4F7F\u7528 storage.type=s3
5480
+ container:
5481
+ s3Engine: \${HAI_DEPLOY_CONTAINER_S3ENGINE:rustfs} # rustfs | minio
5392
5482
 
5393
- # \u57FA\u7840\u8BBE\u65BD\u670D\u52A1\uFF08\u6309\u9700\u5F00\u542F\uFF09
5394
- # services:
5395
- # PostgreSQL \u6570\u636E\u5E93 (Neon)
5396
- # db:
5397
- # provisioner: neon
5398
- # apiKey: \${HAI_DEPLOY_SERVICES_DB_APIKEY}
5399
-
5400
- # Redis \u7F13\u5B58 (Upstash)
5401
- # cache:
5402
- # provisioner: upstash
5403
- # email: \${HAI_DEPLOY_SERVICES_CACHE_EMAIL}
5404
- # apiKey: \${HAI_DEPLOY_SERVICES_CACHE_APIKEY}
5405
-
5406
- # S3 \u5B58\u50A8 (Cloudflare R2)
5407
- # storage:
5408
- # provisioner: cloudflare-r2
5409
- # accountId: \${HAI_DEPLOY_SERVICES_STORAGE_ACCOUNTID}
5410
- # apiToken: \${HAI_DEPLOY_SERVICES_STORAGE_APITOKEN}
5411
- # accessKeyId: \${HAI_DEPLOY_SERVICES_STORAGE_ACCESSKEYID}
5412
- # secretAccessKey: \${HAI_DEPLOY_SERVICES_STORAGE_SECRETACCESSKEY}
5413
-
5414
- # \u90AE\u4EF6 (Resend)
5415
- # email:
5416
- # provisioner: resend
5417
- # apiKey: \${HAI_DEPLOY_SERVICES_EMAIL_APIKEY}
5418
- # from: \${HAI_DEPLOY_SERVICES_EMAIL_FROM}
5419
-
5420
- # \u77ED\u4FE1 (\u963F\u91CC\u4E91)
5421
- # sms:
5422
- # provisioner: aliyun
5423
- # accessKeyId: \${HAI_DEPLOY_SERVICES_SMS_ACCESSKEYID}
5424
- # accessKeySecret: \${HAI_DEPLOY_SERVICES_SMS_ACCESSKEYSECRET}
5425
- # signName: \${HAI_DEPLOY_SERVICES_SMS_SIGNNAME}
5426
-
5427
- # docker-ssh \u8BF4\u660E\uFF1A
5428
- # - \u5148 pnpm build --target docker\uFF1Bdeploy \u6D88\u8D39\u5DF2\u6709\u955C\u50CF\u5E76\u751F\u6210\u4E00\u4E2A Compose tar \u540E\u4E0A\u4F20
5429
- # - compose \u6309\u5B9E\u9645\u540E\u7AEF\u751F\u6210\u4E2D\u95F4\u4EF6\uFF1BS3 \u9ED8\u8BA4 RustFS\uFF0C\u53EF\u901A\u8FC7 s3Engine \u9009\u62E9 MinIO
5430
- # - \u955C\u50CF\u6E05\u5355\u542B Web \u65F6\u4E00\u5E76\u90E8\u7F72\uFF0CWeb \u4E0D\u63A5\u6536 API \u7684\u79C1\u6709\u53D8\u91CF\uFF1B--bundle-only \u53EF\u624B\u5DE5\u642C\u8FD0
5431
- # - \u82E5\u540C\u65F6\u914D\u7F6E\u4E86\u5BF9\u5E94\u4E91 Provisioner\uFF0C\u5219\u4F18\u5148\u4F7F\u7528\u4E91\u8D44\u6E90\uFF0C\u4E0D\u518D\u81EA\u5EFA sidecar
5483
+ # \u5B8C\u6574\u5305\u5305\u542B\u81EA\u5EFA\u4E2D\u95F4\u4EF6\u955C\u50CF\uFF0C\u670D\u52A1\u5668\u542F\u52A8\u7981\u6B62\u62C9\u53D6\u3002
5484
+ # \u5916\u90E8\u6570\u636E\u5E93/\u5B58\u50A8\u7B49\u8FDE\u63A5\u5728\u5BF9\u5E94\u6A21\u5757\u914D\u7F6E\u548C\u73AF\u5883\u6587\u4EF6\u4E2D\u8BBE\u7F6E\u3002
5485
+ # Vercel \u4EC5\u6D88\u8D39\u5DF2\u6709 .vercel/output\uFF0C\u4E91 Provider/Provisioner \u4E0D\u9002\u7528\u4E8E\u5B8C\u5168\u79BB\u7EBF\u3002
5486
+ # provider:
5487
+ # type: vercel
5488
+ # token: \${HAI_DEPLOY_PROVIDER_TOKEN}
5432
5489
  `;
5433
5490
  }
5434
5491
  function generateVecdbConfig() {
@@ -5441,6 +5498,8 @@ type: lancedb
5441
5498
 
5442
5499
  # LanceDB \u6570\u636E\u76EE\u5F55
5443
5500
  path: ./data/vecdb
5501
+ url: \${HAI_VECDB_URL:http://localhost:6333}
5502
+ apiKey: \${HAI_VECDB_APIKEY:}
5444
5503
 
5445
5504
  # \u8DDD\u79BB\u5EA6\u91CF: cosine | euclidean | dot
5446
5505
  # metric: cosine
@@ -5462,6 +5521,7 @@ path: ./data/vecdb
5462
5521
  # apiKey: ''
5463
5522
 
5464
5523
  # Chroma \u914D\u7F6E\uFF08\u66FF\u6362 type\uFF1Burl \u6307\u5411\u5DF2\u6709\u670D\u52A1\uFF0Cpath \u7528\u4E8E\u672C\u5730\u5B50\u8FDB\u7A0B\u6570\u636E\u76EE\u5F55\uFF09
5524
+ # \u76F4\u8FDE\u4EC5\u652F\u6301 HTTP(S) \u6839 url\uFF1BapiKey \u6309 Bearer \u7F51\u5173\u534F\u8BAE\u53D1\u9001\uFF0C\u4E0D\u63D0\u4F9B Chroma Cloud \u914D\u7F6E\u3002
5465
5525
  # type: chroma
5466
5526
  # path: ./data/chroma
5467
5527
  # url: http://localhost:8000
@@ -5540,6 +5600,12 @@ templates: []
5540
5600
  # strategy: delay
5541
5601
  # start: "22:00"
5542
5602
  # end: "08:00"
5603
+
5604
+ # \u5EF6\u8FDF\u961F\u5217\u91CD\u8BD5\u7B56\u7565\uFF08\u5165\u961F\u65F6\u6301\u4E45\u4FDD\u5B58\uFF1B\u9886\u53D6/\u5D29\u6E83\u6062\u590D\u8BA1\u6570\uFF0C\u8D85\u9650 dead\uFF1Bunknown \u7981\u6B62\u81EA\u52A8\u91CD\u53D1\uFF09
5605
+ queue:
5606
+ maxAttempts: \${HAI_REACH_QUEUE_MAXATTEMPTS:5}
5607
+ retryDelayMs: \${HAI_REACH_QUEUE_RETRYDELAYMS:60000}
5608
+ maxRetryDelayMs: \${HAI_REACH_QUEUE_MAXRETRYDELAYMS:3600000}
5543
5609
  `;
5544
5610
  }
5545
5611
  function generateSchedulerConfig() {
@@ -5547,18 +5613,18 @@ function generateSchedulerConfig() {
5547
5613
  # \u4EFB\u52A1\u8C03\u5EA6\u914D\u7F6E (@h-ai/scheduler)
5548
5614
  # =============================================================================
5549
5615
 
5550
- # \u662F\u5426\u542F\u7528\u6570\u636E\u5E93\u65E5\u5FD7\uFF08\u9700\u8981 @h-ai/reldb\uFF09
5616
+ # \u5FC5\u987B\u5148\u521D\u59CB\u5316\u5171\u4EAB @h-ai/reldb\uFF1B\u6267\u884C\u65E5\u5FD7\u548C\u79DF\u7EA6\u59CB\u7EC8\u843D\u5E93\uFF0C\u4E0D\u80FD\u8BBE false
5551
5617
  enableDb: true
5552
5618
 
5553
5619
  # \u68C0\u67E5\u95F4\u9694\uFF08\u6BEB\u79D2\uFF09
5554
5620
  tickInterval: 1000
5555
5621
 
5556
- # \u9501\u8FC7\u671F\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09
5557
- lockExpireMs: 300000
5622
+ # \u6267\u884C\u79DF\u7EA6\uFF081000\uFF5E86400000 \u6BEB\u79D2\uFF0C\u8FD0\u884C\u4E2D\u81EA\u52A8\u7EED\u671F\uFF09\uFF1Bunknown \u987B\u4EBA\u5DE5\u6838\u5BF9\u5E76\u5148\u505C\u6B62\u65E7\u6267\u884C
5623
+ leaseMs: 300000
5558
5624
 
5559
5625
  # \u8282\u70B9 ID \u9ED8\u8BA4\u81EA\u52A8\u751F\u6210\uFF1B\u591A\u8282\u70B9\u90E8\u7F72\u65F6\u6BCF\u4E2A\u5B9E\u4F8B\u5E94\u4F7F\u7528\u72EC\u7ACB ID\u3002
5560
5626
  # nodeId: worker-1
5561
- # \u6267\u884C\u65E5\u5FD7\u4FDD\u7559\u7B56\u7565\uFF08\u542F\u7528\u6570\u636E\u5E93\u65F6\u4F7F\u7528\uFF09
5627
+ # \u5C1D\u8BD5\u65E5\u5FD7\u4FDD\u7559\u7B56\u7565\uFF08\u4E0D\u5220\u9664\u6267\u884Cjournal\u4E0E\u53BB\u91CD\u5386\u53F2\uFF09
5562
5628
  # maxLogs: 10000
5563
5629
  # retentionDays: 30
5564
5630
  `;
@@ -5583,31 +5649,36 @@ function generatePaymentConfig() {
5583
5649
  # \u652F\u4ED8\u914D\u7F6E (@h-ai/payment)
5584
5650
  # =============================================================================
5585
5651
 
5586
- # \u5FAE\u4FE1\u652F\u4ED8\uFF08\u6309\u9700\u5F00\u542F\uFF09
5652
+ # \u5FAE\u4FE1\u652F\u4ED8\uFF08\u4EC5\u516C\u4F17\u53F7 JSAPI\uFF0C\u9700\u5F53\u524D appId \u7684 openid\uFF09
5587
5653
  # wechat:
5588
5654
  # mchId: ''
5589
5655
  # apiV3Key: ''
5590
5656
  # serialNo: ''
5591
5657
  # privateKey: ''
5592
- # platformCert: ''
5658
+ # platformKeys: # \u5FC5\u586B\uFF1B\u6309 Wechatpay-Serial \u7CBE\u786E\u9009\u62E9\u5E73\u53F0\u8BC1\u4E66/\u516C\u94A5\uFF0C\u8F6E\u6362\u65F6\u4FDD\u7559\u65B0\u65E7\u9879
5659
+ # PUB_KEY_ID_123: '' # \u5E73\u53F0\u516C\u94A5 PEM\uFF1B\u8BC1\u4E66\u5219\u4EE5\u5176\u771F\u5B9E\u5E8F\u5217\u53F7\u4F5C\u4E3A key
5593
5660
  # appId: ''
5594
5661
 
5595
- # \u652F\u4ED8\u5B9D\uFF08\u6309\u9700\u5F00\u542F\uFF09
5662
+ # \u652F\u4ED8\u5B9D\uFF08\u4EC5 H5/WAP\uFF0C\u6D4F\u89C8\u5668 POST \u7B7E\u540D\u5B57\u6BB5\uFF09
5596
5663
  # alipay:
5597
5664
  # appId: ''
5665
+ # sellerId: '' # \u5FC5\u586B\uFF1B\u56DE\u8C03 seller_id \u5FC5\u987B\u4E0E\u6B64\u4E00\u81F4
5598
5666
  # privateKey: ''
5599
5667
  # alipayPublicKey: ''
5668
+ # returnUrl: 'https://app.example/payment/return' # \u5FC5\u586B HTTPS\uFF1B\u56DE\u8DF3\u4E0D\u4EE3\u8868\u5DF2\u4ED8\u6B3E
5600
5669
  # signType: RSA2
5601
5670
  # sandbox: false
5602
5671
 
5603
- # Stripe\uFF08\u6309\u9700\u5F00\u542F\uFF09
5672
+ # Stripe\uFF08\u6309\u9700\u5F00\u542F\uFF1B\u5148\u521D\u59CB\u5316\u5171\u4EAB reldb\uFF0C\u6301\u4E45\u5316\u6E20\u9053\u6620\u5C04\u548C\u5E42\u7B49\u7ED3\u679C\uFF09
5604
5673
  # stripe:
5605
5674
  # secretKey: ''
5606
5675
  # webhookSecret: ''
5676
+ # successUrl: 'https://app.example/payment/success?session_id={CHECKOUT_SESSION_ID}'
5677
+ # cancelUrl: 'https://app.example/payment/cancel' # \u53EF\u9009
5607
5678
  # webhookToleranceSeconds: 300
5608
5679
  `;
5609
5680
  }
5610
5681
 
5611
- export { generateConfigFile, generateEnvExample, moduleEnvironmentVariables, parameterizeConfig, renderEnvironment, runtimeEnvironmentVariables };
5612
- //# sourceMappingURL=chunk-QYX6V7H2.js.map
5613
- //# sourceMappingURL=chunk-QYX6V7H2.js.map
5682
+ export { generateConfigFile, generateEnvExample, generateProductionEnvironment, moduleEnvironmentVariables, parameterizeConfig, renderEnvironment, runtimeEnvironmentVariables };
5683
+ //# sourceMappingURL=chunk-ZFNBUF77.js.map
5684
+ //# sourceMappingURL=chunk-ZFNBUF77.js.map