@h-ai/cli 0.1.0-alpha.65 → 0.1.0-alpha.67

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 (141) hide show
  1. package/README.en.md +66 -251
  2. package/README.ja.md +67 -252
  3. package/README.md +66 -251
  4. package/dist/{chunk-47V5OT22.js → chunk-7DSURTJ4.js} +32 -115
  5. package/dist/chunk-7DSURTJ4.js.map +1 -0
  6. package/dist/{chunk-IPG3QNYK.js → chunk-AOQ4N657.js} +212 -8
  7. package/dist/chunk-AOQ4N657.js.map +1 -0
  8. package/dist/cli-config-templates-6AHNUGBN.js +5 -0
  9. package/dist/{cli-config-templates-SJ2MBIR7.js.map → cli-config-templates-6AHNUGBN.js.map} +1 -1
  10. package/dist/{cli-skill-templates-A5VIR5J6.js → cli-skill-templates-FC3QRKDO.js} +3 -3
  11. package/dist/{cli-skill-templates-A5VIR5J6.js.map → cli-skill-templates-FC3QRKDO.js.map} +1 -1
  12. package/dist/index.js +644 -391
  13. package/dist/index.js.map +1 -1
  14. package/dist/{src-6PPBKQ6Q.js → src-2V6VP4I5.js} +972 -520
  15. package/dist/src-2V6VP4I5.js.map +1 -0
  16. package/package.json +8 -8
  17. package/templates/README.md +48 -145
  18. package/templates/apps/admin/src/routes/admin/+layout.svelte.hbs +1 -1
  19. package/templates/apps/api/.dockerignore.hbs +18 -12
  20. package/templates/apps/api/.gitignore.hbs +9 -1
  21. package/templates/apps/api/apps/{{projectName}}-contract/README.md.hbs +23 -2
  22. package/templates/apps/api/apps/{{projectName}}-service/README.md.hbs +28 -7
  23. package/templates/apps/api/apps/{{projectName}}-service/package.json.hbs +1 -3
  24. package/templates/apps/api/hai.build.json.hbs +1 -0
  25. package/templates/apps/api/images/app.Dockerfile.hbs +35 -0
  26. package/templates/apps/api/package.json.hbs +10 -8
  27. package/templates/apps/fullstack/.dockerignore.hbs +18 -14
  28. package/templates/apps/fullstack/.gitignore.hbs +9 -1
  29. package/templates/apps/fullstack/apps/{{projectName}}-app/README.md.hbs +23 -8
  30. package/templates/apps/fullstack/apps/{{projectName}}-app/index.html.hbs +1 -0
  31. package/templates/apps/fullstack/apps/{{projectName}}-app/package.json.hbs +0 -2
  32. package/templates/apps/fullstack/apps/{{projectName}}-app/public/runtime-config.js.hbs +4 -0
  33. package/templates/apps/fullstack/apps/{{projectName}}-app/vite.config.ts.hbs +3 -3
  34. package/templates/apps/fullstack/apps/{{projectName}}-desktop/README.md.hbs +25 -10
  35. package/templates/apps/fullstack/apps/{{projectName}}-desktop/package.json.hbs +2 -3
  36. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/src/lib.rs.hbs +73 -2
  37. package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/tauri.conf.json.hbs +2 -2
  38. package/templates/apps/fullstack/apps/{{projectName}}-desktop/vite.config.ts.hbs +2 -2
  39. package/templates/apps/fullstack/apps/{{projectName}}-miniapp/README.md.hbs +16 -6
  40. package/templates/apps/fullstack/apps/{{projectName}}-web/README.md.hbs +24 -10
  41. package/templates/apps/fullstack/apps/{{projectName}}-web/package.json.hbs +0 -2
  42. package/templates/apps/fullstack/apps/{{projectName}}-web/vite.config.ts.hbs +3 -3
  43. package/templates/apps/fullstack/e2e/fullstack.spec.ts.hbs +12 -1
  44. package/templates/apps/fullstack/hai.build.json.hbs +7 -0
  45. package/templates/apps/fullstack/images/app.Dockerfile.hbs +36 -0
  46. package/templates/apps/fullstack/images/web.Dockerfile.hbs +34 -0
  47. package/templates/apps/fullstack/package.json.hbs +7 -12
  48. package/templates/apps/fullstack/packages/{{projectName}}-contract/README.md.hbs +23 -2
  49. package/templates/apps/fullstack/packages/{{projectName}}-serv/README.md.hbs +28 -7
  50. package/templates/apps/fullstack/packages/{{projectName}}-serv/package.json.hbs +0 -1
  51. package/templates/apps/fullstack/packages/{{projectName}}-shared/.gitignore.hbs +7 -0
  52. package/templates/apps/fullstack/packages/{{projectName}}-shared/README.md.hbs +33 -12
  53. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/AppShell.svelte.hbs +2 -2
  54. package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/settings.svelte.hbs +3 -3
  55. package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/api-client.test.ts.hbs +2 -2
  56. package/templates/apps/h5/src/routes/+layout.svelte.hbs +2 -2
  57. package/templates/apps/mobile-app/index.html.hbs +1 -0
  58. package/templates/apps/mobile-app/public/runtime-config.js +1 -0
  59. package/templates/apps/mobile-app/src/App.svelte.hbs +2 -2
  60. package/templates/apps/mobile-app/src/lib/api.ts.hbs +2 -1
  61. package/templates/apps/mobile-app/src/lib/app-config.ts.hbs +3 -2
  62. package/templates/apps/mobile-app/src/lib/pages/home.svelte.hbs +2 -2
  63. package/templates/apps/website/src/routes/+layout.svelte.hbs +3 -3
  64. package/templates/apps/website/src/routes/services/+page.svelte.hbs +1 -1
  65. package/templates/base/.dockerignore.hbs +18 -13
  66. package/templates/base/.gitignore.hbs +9 -1
  67. package/templates/base/e2e/app.spec.ts.hbs +10 -0
  68. package/templates/base/hai.build.json.hbs +1 -0
  69. package/templates/base/images/app.Dockerfile.hbs +64 -0
  70. package/templates/base/{docker → images/web}/nginx.conf.hbs +6 -0
  71. package/templates/base/package.json.hbs +20 -19
  72. package/templates/base/svelte.config.js.hbs +2 -0
  73. package/templates/base/vite.config.ts.hbs +9 -3
  74. package/templates/shared/.gitattributes +11 -0
  75. package/templates/shared/container-runtime-config.sh +30 -0
  76. package/templates/shared/run-e2e.mjs +65 -0
  77. package/templates/shared/vite-runtime-config.ts +54 -0
  78. package/templates/skills/AGENTS.md +3 -3
  79. package/templates/skills/bridges/admin/AGENTS.md +1 -1
  80. package/templates/skills/bridges/api/AGENTS.md +1 -1
  81. package/templates/skills/bridges/fullstack/AGENTS.md.hbs +1 -1
  82. package/templates/skills/bridges/h5/AGENTS.md +1 -1
  83. package/templates/skills/bridges/mobile-app/AGENTS.md +1 -1
  84. package/templates/skills/bridges/website/AGENTS.md +1 -1
  85. package/templates/skills/hai-api-client/SKILL.md +14 -161
  86. package/templates/skills/hai-api-client/reference.md +166 -0
  87. package/templates/skills/hai-api-contract/SKILL.md +15 -273
  88. package/templates/skills/hai-api-contract/reference.md +278 -0
  89. package/templates/skills/hai-app-create/SKILL.md +2 -2
  90. package/templates/skills/hai-app-create/development.md +6 -4
  91. package/templates/skills/hai-app-create/reference.md +5 -4
  92. package/templates/skills/hai-app-review/SKILL.md +1 -1
  93. package/templates/skills/hai-app-tests/SKILL.md +4 -3
  94. package/templates/skills/hai-app-tests/reference.md +2 -2
  95. package/templates/skills/hai-app-tests/validation.md +31 -0
  96. package/templates/skills/hai-audit/SKILL.md +17 -142
  97. package/templates/skills/hai-audit/reference.md +145 -0
  98. package/templates/skills/hai-build/SKILL.md +24 -3
  99. package/templates/skills/hai-build/reference.md +10 -9
  100. package/templates/skills/hai-cache/SKILL.md +15 -182
  101. package/templates/skills/hai-cache/reference.md +187 -0
  102. package/templates/skills/hai-capacitor/SKILL.md +4 -3
  103. package/templates/skills/hai-capacitor/reference.md +6 -4
  104. package/templates/skills/hai-ci/SKILL.md +2 -0
  105. package/templates/skills/hai-core/SKILL.md +3 -3
  106. package/templates/skills/hai-crypto/SKILL.md +16 -252
  107. package/templates/skills/hai-crypto/reference.md +256 -0
  108. package/templates/skills/hai-datapipe/SKILL.md +15 -196
  109. package/templates/skills/hai-datapipe/reference.md +202 -0
  110. package/templates/skills/hai-deploy/SKILL.md +28 -271
  111. package/templates/skills/hai-deploy/middleware.md +6 -18
  112. package/templates/skills/hai-framework-sync/SKILL.md +2 -2
  113. package/templates/skills/hai-framework-sync/sync.md +1 -1
  114. package/templates/skills/hai-iam/SKILL.md +1 -3
  115. package/templates/skills/hai-kit/SKILL.md +12 -167
  116. package/templates/skills/hai-kit/reference.md +172 -0
  117. package/templates/skills/hai-payment/SKILL.md +19 -251
  118. package/templates/skills/hai-payment/reference.md +256 -0
  119. package/templates/skills/hai-pr-review/SKILL.md +4 -4
  120. package/templates/skills/hai-reach/SKILL.md +2 -2
  121. package/templates/skills/hai-reldb/SKILL.md +1 -1
  122. package/templates/skills/hai-scheduler/SKILL.md +15 -195
  123. package/templates/skills/hai-scheduler/reference.md +202 -0
  124. package/templates/skills/hai-serv/SKILL.md +2 -2
  125. package/templates/skills/hai-spec-implement/SKILL.md +1 -1
  126. package/templates/skills/hai-spec-implement/workflow.md +3 -3
  127. package/templates/skills/hai-storage/SKILL.md +17 -238
  128. package/templates/skills/hai-storage/reference.md +243 -0
  129. package/templates/skills/hai-ui/SKILL.md +1 -1
  130. package/templates/skills/hai-ui/reference.md +11 -5
  131. package/templates/skills/hai-vecdb/SKILL.md +2 -2
  132. package/dist/chunk-47V5OT22.js.map +0 -1
  133. package/dist/chunk-IPG3QNYK.js.map +0 -1
  134. package/dist/cli-config-templates-SJ2MBIR7.js +0 -5
  135. package/dist/src-6PPBKQ6Q.js.map +0 -1
  136. package/templates/apps/api/Dockerfile.hbs +0 -48
  137. package/templates/apps/fullstack/Dockerfile.hbs +0 -69
  138. package/templates/base/Dockerfile.hbs +0 -79
  139. /package/templates/apps/fullstack/{docker → images/web}/19-runtime-config.envsh.hbs +0 -0
  140. /package/templates/apps/fullstack/{docker → images/web}/nginx.conf.hbs +0 -0
  141. /package/templates/apps/fullstack/{docker → images/web}/runtime-config.js.template.hbs +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/cli-config-catalog.json","../src/commands/cli-config-environment.ts","../src/commands/cli-config-templates.ts"],"names":[],"mappings":"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","file":"chunk-7DSURTJ4.js","sourcesContent":["[\n {\n \"name\": \"HAI_ADMIN_DEFAULT_PASSWORD\",\n \"module\": \"admin\",\n \"path\": \"HAI_ADMIN_DEFAULT_PASSWORD\",\n \"description\": \"首次创建管理员的密码\",\n \"value\": \"\",\n \"constraint\": \"满足 IAM 密码策略;敏感值仅在本地或目标进程注入\"\n },\n {\n \"name\": \"HAI_AI\",\n \"module\": \"ai\",\n \"path\": \"ai\",\n \"description\": \"ai. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_A2A\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a\",\n \"description\": \"A2A 配置(Agent-to-Agent 协议)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard\",\n \"description\": \"Agent Card 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_DESCRIPTION\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.description\",\n \"description\": \"Agent 描述\",\n \"value\": \"A simple echo agent that repeats your message (A2A demo)\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_NAME\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.name\",\n \"description\": \"Agent 名称\",\n \"value\": \"echo-agent\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_SKILLS\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.skills\",\n \"description\": \"Agent 技能列表\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_SKILLS_0\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.skills.0\",\n \"description\": \"Agent 技能列表;此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_SKILLS_0_DESCRIPTION\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.skills.0.description\",\n \"description\": \"技能描述\",\n \"value\": \"Echoes back the user message\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_SKILLS_0_ID\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.skills.0.id\",\n \"description\": \"技能 ID\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_SKILLS_0_NAME\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.skills.0.name\",\n \"description\": \"技能名称\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_SKILLS_0_TAGS\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.skills.0.tags\",\n \"description\": \"标签列表\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_SKILLS_0_TAGS_0\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.skills.0.tags.0\",\n \"description\": \"标签列表;此变量整体替换单个数组项\",\n \"value\": \"demo\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_SKILLS_0_TAGS_1\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_A2A_AGENTCARD_SKILLS_0_TAGS_1\",\n \"description\": \"标签列表;此变量整体替换单个数组项\",\n \"value\": \"echo\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_URL\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.url\",\n \"description\": \"Agent 对外 URL\",\n \"value\": \"http://localhost:5173\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_AGENTCARD_VERSION\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.agentCard.version\",\n \"description\": \"Agent 版本\",\n \"value\": \"0.1.0\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_A2A_SECURITY\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.security\",\n \"description\": \"A2A 安全认证配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_A2A_SECURITY_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.security.apiKey\",\n \"description\": \"API Key 认证(通过 IAM apiKey.verifyApiKey 验证)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_A2A_SECURITY_APIKEY_IN\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.security.apiKey.in\",\n \"description\": \"API Key 的传递位置(默认 header)\",\n \"value\": \"header\",\n \"constraint\": \"字符串;取值:header | query\"\n },\n {\n \"name\": \"HAI_AI_A2A_SECURITY_APIKEY_NAME\",\n \"module\": \"ai\",\n \"path\": \"ai.a2a.security.apiKey.name\",\n \"description\": \"参数名(默认 x-api-key)\",\n \"value\": \"x-api-key\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO\",\n \"module\": \"ai\",\n \"path\": \"ai.audio\",\n \"description\": \"Audio 配置(语音识别 / 语音合成)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_DOUBAO_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_DOUBAO_APIKEY\",\n \"description\": \"DOUBAO 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_INDEXTTS_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_INDEXTTS_APIKEY\",\n \"description\": \"INDEXTTS 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_INHERITLLMAPIKEY\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.inheritLlmApiKey\",\n \"description\": \"是否允许未单独配置密钥的语音模型继承 LLM 全局密钥;跨供应商部署应保持关闭。\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MAXAUDIOBYTES\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.maxAudioBytes\",\n \"description\": \"单次音频字节上限(默认 10 MiB,防止资源耗尽)\",\n \"value\": \"10485760\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MAXSTREAMDURATIONMS\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.maxStreamDurationMs\",\n \"description\": \"实时连接最长持续时间(毫秒,默认 5 分钟)\",\n \"value\": \"300000\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MIMO_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_MIMO_APIKEY\",\n \"description\": \"MIMO 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models\",\n \"description\": \"注册的语音模型列表\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0\",\n \"description\": \"注册的语音模型列表;此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_ACCESSKEY\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.accessKey\",\n \"description\": \"火山引擎 Access Key(`X-Api-Access-Key`,旧版控制台 ASR 需要)\",\n \"value\": \"\",\n \"constraint\": \"string,null\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.apiKey\",\n \"description\": \"API Key 覆盖(未提供时可按 Audio 配置继承 LLM 密钥,最后回退对应平台环境变量)\",\n \"value\": \"\",\n \"constraint\": \"string,null\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_APPKEY\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.appKey\",\n \"description\": \"火山引擎 App Key(`X-Api-App-Key`,旧版控制台 ASR 需要)\",\n \"value\": \"\",\n \"constraint\": \"string,null\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_BASEURL\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.baseUrl\",\n \"description\": \"HTTP / WebSocket 端点覆盖(`whisper` / `indextts` 无默认端点,必须显式配置)\",\n \"value\": \"https://api.xiaomimimo.com/v1\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_ID\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.id\",\n \"description\": \"模型唯一标识(用于场景解析与请求显式指定)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_MODEL\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.model\",\n \"description\": \"厂商模型名(传给厂商 API 的实际模型名)\",\n \"value\": \"mimo-v2.5-asr\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_OPERATIONS\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.operations\",\n \"description\": \"模型允许执行的操作;解析模型时会在调用厂商前校验\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展;最少项数 1\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_OPERATIONS_0\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.operations.0\",\n \"description\": \"模型允许执行的操作;解析模型时会在调用厂商前校验;此变量整体替换单个数组项\",\n \"value\": \"transcribe\",\n \"constraint\": \"字符串;取值:transcribe | synthesize\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_PROVIDER\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.provider\",\n \"description\": \"所属语音平台\",\n \"value\": \"mimo\",\n \"constraint\": \"字符串;取值:openai | mimo | qwen | doubao | whisper | indextts\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_RESOURCEID\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.resourceId\",\n \"description\": \"火山引擎资源 ID(`X-Api-Resource-Id`;未提供时使用平台默认资源 ID)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_TIMEOUT\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.timeout\",\n \"description\": \"请求超时(毫秒,默认 60000)\",\n \"value\": \"120000\",\n \"constraint\": \"数字;> 0\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_0_WORKSPACEID\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.models.0.workspaceId\",\n \"description\": \"阿里云百炼业务空间 ID(`X-DashScope-WorkSpace`,可选)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_1_BASEURL\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_MODELS_1_BASEURL\",\n \"description\": \"HTTP / WebSocket 端点覆盖(`whisper` / `indextts` 无默认端点,必须显式配置)\",\n \"value\": \"https://api.xiaomimimo.com/v1\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_1_MODEL\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_MODELS_1_MODEL\",\n \"description\": \"厂商模型名(传给厂商 API 的实际模型名)\",\n \"value\": \"mimo-v2.5-tts\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_1_PROVIDER\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_MODELS_1_PROVIDER\",\n \"description\": \"所属语音平台\",\n \"value\": \"mimo\",\n \"constraint\": \"字符串;取值:openai | mimo | qwen | doubao | whisper | indextts\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_MODELS_1_TIMEOUT\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_MODELS_1_TIMEOUT\",\n \"description\": \"请求超时(毫秒,默认 60000)\",\n \"value\": \"120000\",\n \"constraint\": \"数字;> 0\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_OPENAI_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_OPENAI_APIKEY\",\n \"description\": \"OPENAI 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_QWEN_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_QWEN_APIKEY\",\n \"description\": \"QWEN 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_SYNTHESIZEMODEL\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.synthesizeModel\",\n \"description\": \"默认合成模型 ID(`ai.audio.synthesize*` 未指定 model 时使用)\",\n \"value\": \"tts\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_TRANSCRIBEMODEL\",\n \"module\": \"ai\",\n \"path\": \"ai.audio.transcribeModel\",\n \"description\": \"默认识别模型 ID(`ai.audio.transcribe*` 未指定 model 时使用)\",\n \"value\": \"asr\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_AUDIO_WHISPER_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_AUDIO_WHISPER_APIKEY\",\n \"description\": \"WHISPER 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_COMPRESS\",\n \"module\": \"ai\",\n \"path\": \"ai.compress\",\n \"description\": \"Compress 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_COMPRESS_DEFAULTMAXTOKENS\",\n \"module\": \"ai\",\n \"path\": \"ai.compress.defaultMaxTokens\",\n \"description\": \"默认 Token 预算(默认 0 表示取模型上限的 80%)\",\n \"value\": \"0\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_AI_COMPRESS_DEFAULTSTRATEGY\",\n \"module\": \"ai\",\n \"path\": \"ai.compress.defaultStrategy\",\n \"description\": \"默认压缩策略(默认 'hybrid')\",\n \"value\": \"hybrid\",\n \"constraint\": \"字符串;取值:summary | sliding-window | hybrid\"\n },\n {\n \"name\": \"HAI_AI_COMPRESS_PRESERVELASTN\",\n \"module\": \"ai\",\n \"path\": \"ai.compress.preserveLastN\",\n \"description\": \"默认保留最近消息数(默认 4)\",\n \"value\": \"4\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_AI_EMBEDDING\",\n \"module\": \"ai\",\n \"path\": \"ai.embedding\",\n \"description\": \"Embedding 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_EMBEDDING_BATCHSIZE\",\n \"module\": \"ai\",\n \"path\": \"ai.embedding.batchSize\",\n \"description\": \"批量大小(单次请求最多处理的文本数,默认 100)\",\n \"value\": \"100\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_EMBEDDING_DIMENSIONS\",\n \"module\": \"ai\",\n \"path\": \"ai.embedding.dimensions\",\n \"description\": \"向量维度(可选,部分模型支持指定维度)\",\n \"value\": \"\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_FILE\",\n \"module\": \"ai\",\n \"path\": \"ai.file\",\n \"description\": \"File 解析配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_FILE_SYSTEMPROMPT\",\n \"module\": \"ai\",\n \"path\": \"ai.file.systemPrompt\",\n \"description\": \"OCR 系统提示词(可选,覆盖内置默认提示词)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_IMAGE\",\n \"module\": \"ai\",\n \"path\": \"ai.image\",\n \"description\": \"Image 配置(文生图)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_GENERATEMODEL\",\n \"module\": \"ai\",\n \"path\": \"ai.image.generateModel\",\n \"description\": \"默认文生图模型 ID\",\n \"value\": \"image\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_GOOGLE_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_IMAGE_GOOGLE_APIKEY\",\n \"description\": \"GOOGLE 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models\",\n \"description\": \"注册的文生图模型\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS_0\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models.0\",\n \"description\": \"注册的文生图模型;此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS_0_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models.0.apiKey\",\n \"description\": \"API Key 覆盖;未提供时回退厂商环境变量\",\n \"value\": \"\",\n \"constraint\": \"string,null\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS_0_BASEURL\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models.0.baseUrl\",\n \"description\": \"API 基础 URL 覆盖\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS_0_ID\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models.0.id\",\n \"description\": \"模型唯一标识(供请求选择)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS_0_MODEL\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models.0.model\",\n \"description\": \"厂商模型名\",\n \"value\": \"zimage\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS_0_PROVIDER\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models.0.provider\",\n \"description\": \"所属文生图平台\",\n \"value\": \"pollinations\",\n \"constraint\": \"字符串;取值:openai | google | qwen | seedream | pollinations\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS_0_TIMEOUT\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models.0.timeout\",\n \"description\": \"请求超时(毫秒,默认 120000)\",\n \"value\": \"120000\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_MODELS_0_WORKSPACEID\",\n \"module\": \"ai\",\n \"path\": \"ai.image.models.0.workspaceId\",\n \"description\": \"阿里云百炼业务空间 ID(可选)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_OPENAI_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_IMAGE_OPENAI_APIKEY\",\n \"description\": \"OPENAI 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_POLLINATIONS_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_IMAGE_POLLINATIONS_APIKEY\",\n \"description\": \"POLLINATIONS 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_QWEN_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_IMAGE_QWEN_APIKEY\",\n \"description\": \"QWEN 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_IMAGE_SEEDREAM_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"HAI_AI_IMAGE_SEEDREAM_APIKEY\",\n \"description\": \"SEEDREAM 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge\",\n \"description\": \"Knowledge 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CHUNKOPTIONS\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.chunkOptions\",\n \"description\": \"默认分块选项 字段含义与\",\n \"value\": \"{\\\"mode\\\":\\\"markdown\\\",\\\"maxSize\\\":1500,\\\"overlap\\\":200,\\\"markdownMinLevel\\\":2,\\\"markdownKeepTitle\\\":true}\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CHUNKOPTIONS_MARKDOWNKEEPTITLE\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.chunkOptions.markdownKeepTitle\",\n \"description\": \"是否保留 Markdown 标题在分块内容中(默认 true)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CHUNKOPTIONS_MARKDOWNMINLEVEL\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.chunkOptions.markdownMinLevel\",\n \"description\": \"Markdown 标题分割深度(1-6,默认 2,即 # 和 ## 作为分块边界;设为 3 则 ### 也作为分块边界)\",\n \"value\": \"2\",\n \"constraint\": \"整数;>= 1;<= 6\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CHUNKOPTIONS_MAXSIZE\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.chunkOptions.maxSize\",\n \"description\": \"每个分块的最大大小(字符数 / 字数,取决于 mode,默认 1000)\",\n \"value\": \"1500\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CHUNKOPTIONS_MODE\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.chunkOptions.mode\",\n \"description\": \"分块模式\",\n \"value\": \"sentence\",\n \"constraint\": \"字符串;取值:sentence | paragraph | markdown | page | word | character | custom\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CHUNKOPTIONS_OVERLAP\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.chunkOptions.overlap\",\n \"description\": \"重叠大小(字符数 / 字数,用于上下文衔接,默认 200)\",\n \"value\": \"200\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CHUNKOPTIONS_SEPARATOR\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.chunkOptions.separator\",\n \"description\": \"自定义分隔符正则(仅 mode='custom' 时使用) ❗ 安全提示:separator 会通过 `new RegExp()` 构造,如果其值来源于用户输入,请在调用方先行校验以防止 ReDoS 攻击。\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions\",\n \"description\": \"默认文本清洗选项 字段含义与\",\n \"value\": \"{\\\"removeHtml\\\":true,\\\"removeUrls\\\":false,\\\"removeEmails\\\":false,\\\"normalizeWhitespace\\\":true,\\\"trim\\\":true}\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_CUSTOMREPLACEMENTS\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.customReplacements\",\n \"description\": \"自定义替换规则(正则→替换字符串) ❗ 安全提示:pattern 会通过 `new RegExp()` 构造,如果其值来源于用户输入,请在调用方先行校验以防止 ReDoS 攻击。\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_CUSTOMREPLACEMENTS_0\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.customReplacements.0\",\n \"description\": \"自定义替换规则(正则→替换字符串) ❗ 安全提示:pattern 会通过 `new RegExp()` 构造,如果其值来源于用户输入,请在调用方先行校验以防止 ReDoS 攻击。;此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_CUSTOMREPLACEMENTS_0_PATTERN\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.customReplacements.0.pattern\",\n \"description\": \"正则表达式字符串\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_CUSTOMREPLACEMENTS_0_REPLACEMENT\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.customReplacements.0.replacement\",\n \"description\": \"替换文本\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_NORMALIZEWHITESPACE\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.normalizeWhitespace\",\n \"description\": \"标准化空白字符(多空格→单空格、去掉多余空行,默认 true)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_REMOVEEMAILS\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.removeEmails\",\n \"description\": \"移除 Email 地址(默认 false)\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_REMOVEHTML\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.removeHtml\",\n \"description\": \"移除 HTML 标签(默认 true)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_REMOVEURLS\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.removeUrls\",\n \"description\": \"移除 URL(默认 false)\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_CLEANOPTIONS_TRIM\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.cleanOptions.trim\",\n \"description\": \"去除首尾空白(默认 true)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_COLLECTION\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.collection\",\n \"description\": \"默认向量集合名(默认 'hai_ai_knowledge')\",\n \"value\": \"hai_ai_knowledge\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_DIMENSION\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.dimension\",\n \"description\": \"向量维度(默认 1536,需与 embedding 模型匹配)\",\n \"value\": \"1536\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_ENABLEENTITYEXTRACTION\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.enableEntityExtraction\",\n \"description\": \"是否启用实体提取(默认 true)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_ENTITYBOOSTWEIGHT\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.entityBoostWeight\",\n \"description\": \"实体查询命中的额外加权系数(默认 0.15,叠加到向量分数上)\",\n \"value\": \"0.15\",\n \"constraint\": \"数字;>= 0;<= 1\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_ENTITYTYPES\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.entityTypes\",\n \"description\": \"自定义实体类型列表(不指定时使用内置默认类型)\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_ENTITYTYPES_0\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.entityTypes.0\",\n \"description\": \"自定义实体类型列表(不指定时使用内置默认类型);此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_KNOWLEDGE_SYSTEMPROMPT\",\n \"module\": \"ai\",\n \"path\": \"ai.knowledge.systemPrompt\",\n \"description\": \"自定义实体提取系统提示词(不指定时使用内置默认提示词)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM\",\n \"module\": \"ai\",\n \"path\": \"ai.llm\",\n \"description\": \"LLM 配置(可选,所有字段有默认值)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_LLM_API\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.api\",\n \"description\": \"全局 API 协议(各模型 fallback,默认 `'chat'`;可选 `chat` / `responses` / `anthropic`)\",\n \"value\": \"chat\",\n \"constraint\": \"字符串;取值:chat | responses | anthropic\"\n },\n {\n \"name\": \"HAI_AI_LLM_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.apiKey\",\n \"description\": \"全局 API Key(各模型 fallback;未提供时回退到 `process.env.HAI_AI_LLM_APIKEY` 或 `process.env.OPENAI_API_KEY`)\",\n \"value\": \"\",\n \"constraint\": \"string,null\"\n },\n {\n \"name\": \"HAI_AI_LLM_BASEURL\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.baseUrl\",\n \"description\": \"全局 API 基础 URL(各模型 fallback;未提供时回退到 `process.env.HAI_AI_LLM_BASEURL` 或 `process.env.OPENAI_BASE_URL`)\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_AI_LLM_MAXTOKENS\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.maxTokens\",\n \"description\": \"全局最大 Token 数(各模型 fallback,默认 `4096`)\",\n \"value\": \"4096\",\n \"constraint\": \"数字;> 0\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODEL\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.model\",\n \"description\": \"默认模型名称(默认 `'gpt-4o-mini'`)\",\n \"value\": \"gpt-4o-mini\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models\",\n \"description\": \"多模型配置列表(各字段可选,未指定时回退到全局默认值)\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0\",\n \"description\": \"多模型配置列表(各字段可选,未指定时回退到全局默认值);此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0_API\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0.api\",\n \"description\": \"API 协议(可选,未指定时回退全局 `api`,再回退 `chat`;决定走 Chat Completions / Responses / Anthropic)\",\n \"value\": \"chat\",\n \"constraint\": \"字符串;取值:chat | responses | anthropic\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0_APIKEY\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0.apiKey\",\n \"description\": \"API Key 覆盖(可选,未提供时使用全局配置)\",\n \"value\": \"\",\n \"constraint\": \"string,null\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0_BASEURL\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0.baseUrl\",\n \"description\": \"Base URL 覆盖(可选)\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0_ID\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0.id\",\n \"description\": \"模型唯一标识(用于 ModelResolver 解析)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0_MAXTOKENS\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0.maxTokens\",\n \"description\": \"最大 Token 数覆盖(可选)\",\n \"value\": \"\",\n \"constraint\": \"数字;> 0\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0_MODEL\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0.model\",\n \"description\": \"模型名称(传给 API 的实际模型名)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0_TEMPERATURE\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0.temperature\",\n \"description\": \"温度覆盖(可选)\",\n \"value\": \"\",\n \"constraint\": \"数字;>= 0;<= 2\"\n },\n {\n \"name\": \"HAI_AI_LLM_MODELS_0_TIMEOUT\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.models.0.timeout\",\n \"description\": \"超时覆盖(可选,毫秒)\",\n \"value\": \"\",\n \"constraint\": \"数字;> 0\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios\",\n \"description\": \"场景模型映射(场景名 → 模型 ID 或直接模型名称,各场景均可选)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_CHAT\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.chat\",\n \"description\": \"场景 chat 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_DEFAULT\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.default\",\n \"description\": \"场景 default 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_EMBEDDING\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.embedding\",\n \"description\": \"场景 embedding 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_EXECUTE\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.execute\",\n \"description\": \"场景 execute 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_EXTRACTION\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.extraction\",\n \"description\": \"场景 extraction 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_FAST\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.fast\",\n \"description\": \"场景 fast 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_OCR\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.ocr\",\n \"description\": \"场景 ocr 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_PLAN\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.plan\",\n \"description\": \"场景 plan 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_REASONING\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.reasoning\",\n \"description\": \"场景 reasoning 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_RERANK\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.rerank\",\n \"description\": \"场景 rerank 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_SCENARIOS_SUMMARY\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.scenarios.summary\",\n \"description\": \"场景 summary 使用的模型 ID,须与 llm.models 中的 ID 一致\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_LLM_TEMPERATURE\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.temperature\",\n \"description\": \"全局采样温度(各模型 fallback,范围 `[0, 2]`,默认 `0.7`)\",\n \"value\": \"0.7\",\n \"constraint\": \"数字;>= 0;<= 2\"\n },\n {\n \"name\": \"HAI_AI_LLM_TEMPMODELCACHETTL\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.tempModelCacheTtl\",\n \"description\": \"临时模型客户端缓存存活时间(毫秒,默认 `600000` = 10 分钟;超时后临时模型客户端实例失效并重建)\",\n \"value\": \"600000\",\n \"constraint\": \"数字;> 0\"\n },\n {\n \"name\": \"HAI_AI_LLM_TIMEOUT\",\n \"module\": \"ai\",\n \"path\": \"ai.llm.timeout\",\n \"description\": \"全局请求超时时间(各模型 fallback,毫秒,默认 `60000`)\",\n \"value\": \"60000\",\n \"constraint\": \"数字;> 0\"\n },\n {\n \"name\": \"HAI_AI_MCP\",\n \"module\": \"ai\",\n \"path\": \"ai.mcp\",\n \"description\": \"MCP 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_MCP_SERVER\",\n \"module\": \"ai\",\n \"path\": \"ai.mcp.server\",\n \"description\": \"服务器配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_MCP_SERVER_CAPABILITIES\",\n \"module\": \"ai\",\n \"path\": \"ai.mcp.server.capabilities\",\n \"description\": \"服务器能力声明\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_MCP_SERVER_CAPABILITIES_PROMPTS\",\n \"module\": \"ai\",\n \"path\": \"ai.mcp.server.capabilities.prompts\",\n \"description\": \"是否支持提示词模板(默认 `true`)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_MCP_SERVER_CAPABILITIES_RESOURCES\",\n \"module\": \"ai\",\n \"path\": \"ai.mcp.server.capabilities.resources\",\n \"description\": \"是否支持资源访问(默认 `true`)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_MCP_SERVER_CAPABILITIES_TOOLS\",\n \"module\": \"ai\",\n \"path\": \"ai.mcp.server.capabilities.tools\",\n \"description\": \"是否支持工具调用(默认 `true`)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_MCP_SERVER_NAME\",\n \"module\": \"ai\",\n \"path\": \"ai.mcp.server.name\",\n \"description\": \"服务器名称\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_MCP_SERVER_VERSION\",\n \"module\": \"ai\",\n \"path\": \"ai.mcp.server.version\",\n \"description\": \"服务器版本(默认 `'1.0.0'`)\",\n \"value\": \"1.0.0\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_MEMORY\",\n \"module\": \"ai\",\n \"path\": \"ai.memory\",\n \"description\": \"Memory 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_ALLOWEPHEMERALFALLBACK\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.allowEphemeralFallback\",\n \"description\": \"是否允许在配置了持久化向量后端但 mem0 无法映射时退回内存存储(默认 false) 仅影响 `provider='mem0'`:mem0 TS 仅支持 qdrant / pgvector。当底层 vecdb 是 lancedb / chroma / 未知后端时,默认 fail-fast(初始化失败),避免服务重启后记忆静默丢失; 仅当显式设为 true 时才退回 mem0 自带 in-memory 存储(数据不持久)。\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_CANDIDATEMULTIPLIER\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.candidateMultiplier\",\n \"description\": \"候选池倍数(默认 5) 检索时先从向量后端取回 `topK × candidateMultiplier` 条候选,再按 scope / 重要性等 条件在内存中过滤,最后截取 topK。用于修正「向量后端仅返回 topK,随后被 scope 过滤 掉大部分、导致同一主体下特定主题/角色记忆漏召回」的问题:候选池越大,scope 命中越充分。 native provider 会对全部候选评分,故此值仅影响向量预取宽度;mem0 provider 无法下推 scope,必须依赖更大的候选池才能保证 scope 内记忆被召回。\",\n \"value\": \"5\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_DEFAULTTOPK\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.defaultTopK\",\n \"description\": \"检索时默认返回数量(默认 10)\",\n \"value\": \"10\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_EMBEDDINGENABLED\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.embeddingEnabled\",\n \"description\": \"是否启用向量检索(默认 true,关闭则仅使用关键词匹配)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_MAXENTRIESGLOBAL\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.maxEntriesGlobal\",\n \"description\": \"全局最大记忆条数(默认 100000) 跨所有主体的总量上限,作为整体保护阈值;超过时淘汰全局最低优先级条目。\",\n \"value\": \"100000\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_MAXENTRIESPEROBJECT\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.maxEntriesPerObject\",\n \"description\": \"单个主体(objectId)的最大记忆条数(默认 1000) native 淘汰按 objectId 分区触发:某个主体写入超过此上限时,只淘汰该主体自身 最低优先级的条目,不会波及其他主体的记忆。\",\n \"value\": \"1000\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_PROVIDER\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.provider\",\n \"description\": \"记忆后端:native = 逐条写回;mem0 = 批量 ADD/UPDATE/DELETE 合并(均为嵌入式,复用 HAI 组件)\",\n \"value\": \"native\",\n \"constraint\": \"字符串;取值:native | mem0\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_RECENCYDECAY\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.recencyDecay\",\n \"description\": \"时间衰减系数(默认 0.95,每次检索乘以此系数调整 recency 权重)\",\n \"value\": \"0.95\",\n \"constraint\": \"数字;>= 0;<= 1\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_SYSTEMPROMPT\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.systemPrompt\",\n \"description\": \"自定义记忆提取 systemPrompt(可选,覆盖内置默认提示词)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_MEMORY_WRITEBACKRELATEDTOPK\",\n \"module\": \"ai\",\n \"path\": \"ai.memory.writebackRelatedTopK\",\n \"description\": \"写回 / 合并时检索相关记忆的数量(native 与 mem0 共用,默认 20)\",\n \"value\": \"20\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval\",\n \"description\": \"Retrieval 配置(预注册检索源)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources\",\n \"description\": \"预注册检索源列表\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES_0\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources.0\",\n \"description\": \"预注册检索源列表;此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES_0_COLLECTION\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources.0.collection\",\n \"description\": \"vecdb collection 名称\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES_0_FILTER\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources.0.filter\",\n \"description\": \"元数据过滤条件\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES_0_ID\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources.0.id\",\n \"description\": \"来源唯一标识\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES_0_MINSCORE\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources.0.minScore\",\n \"description\": \"最低相似度 0~1(低于此值的结果被过滤)\",\n \"value\": \"\",\n \"constraint\": \"数字;>= 0;<= 1\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES_0_NAME\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources.0.name\",\n \"description\": \"信源显示名\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES_0_TOPK\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources.0.topK\",\n \"description\": \"最大返回条数(默认 5)\",\n \"value\": \"\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_AI_RETRIEVAL_SOURCES_0_URL\",\n \"module\": \"ai\",\n \"path\": \"ai.retrieval.sources.0.url\",\n \"description\": \"信源 URL / 路径\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_SUMMARY\",\n \"module\": \"ai\",\n \"path\": \"ai.summary\",\n \"description\": \"Summary 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_SUMMARY_SYSTEMPROMPT\",\n \"module\": \"ai\",\n \"path\": \"ai.summary.systemPrompt\",\n \"description\": \"自定义摘要 systemPrompt(可选,覆盖内置默认提示词)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AI_TOKEN\",\n \"module\": \"ai\",\n \"path\": \"ai.token\",\n \"description\": \"Token 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AI_TOKEN_TOKENRATIO\",\n \"module\": \"ai\",\n \"path\": \"ai.token.tokenRatio\",\n \"description\": \"Token 估算每字符系数(默认 0.25,即 4 字符 ≈ 1 token)\",\n \"value\": \"0.25\",\n \"constraint\": \"数字;> 0\"\n },\n {\n \"name\": \"HAI_AUDIT\",\n \"module\": \"audit\",\n \"path\": \"audit\",\n \"description\": \"audit. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_AUDIT_USERIDCOLUMN\",\n \"module\": \"audit\",\n \"path\": \"audit.userIdColumn\",\n \"description\": \"用户表主键列名,用于 JOIN 条件\",\n \"value\": \"id\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AUDIT_USERNAMECOLUMN\",\n \"module\": \"audit\",\n \"path\": \"audit.userNameColumn\",\n \"description\": \"用户表用户名列名,用于 SELECT 输出\",\n \"value\": \"username\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AUDIT_USERTABLE\",\n \"module\": \"audit\",\n \"path\": \"audit.userTable\",\n \"description\": \"用户表名,用于 list 查询时 LEFT JOIN 获取用户名\",\n \"value\": \"hai_iam_users\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_AUTH_EVIDENCE_DIR\",\n \"module\": \"auth\",\n \"path\": \"HAI_AUTH_EVIDENCE_DIR\",\n \"description\": \"浏览器验收截图输出目录\",\n \"value\": \"\",\n \"constraint\": \"目录路径\"\n },\n {\n \"name\": \"HAI_CACHE\",\n \"module\": \"cache\",\n \"path\": \"cache\",\n \"description\": \"cache. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_CACHE_CLUSTER\",\n \"module\": \"cache\",\n \"path\": \"cache.cluster\",\n \"description\": \"集群节点列表;配置后以集群模式连接\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_CACHE_CLUSTER_0\",\n \"module\": \"cache\",\n \"path\": \"cache.cluster.0\",\n \"description\": \"集群节点列表;配置后以集群模式连接;此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_CACHE_CLUSTER_0_HOST\",\n \"module\": \"cache\",\n \"path\": \"cache.cluster.0.host\",\n \"description\": \"节点主机地址\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CACHE_CLUSTER_0_PORT\",\n \"module\": \"cache\",\n \"path\": \"cache.cluster.0.port\",\n \"description\": \"节点端口号(1~65535)\",\n \"value\": \"\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_CACHE_COMMANDTIMEOUT\",\n \"module\": \"cache\",\n \"path\": \"cache.commandTimeout\",\n \"description\": \"命令执行超时(毫秒);默认 5000\",\n \"value\": \"5000\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_CACHE_CONNECTTIMEOUT\",\n \"module\": \"cache\",\n \"path\": \"cache.connectTimeout\",\n \"description\": \"连接超时时间(毫秒);默认 10000\",\n \"value\": \"10000\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_CACHE_DB\",\n \"module\": \"cache\",\n \"path\": \"cache.db\",\n \"description\": \"数据库编号(0~15);默认 0\",\n \"value\": \"0\",\n \"constraint\": \"整数;>= 0;<= 15\"\n },\n {\n \"name\": \"HAI_CACHE_HOST\",\n \"module\": \"cache\",\n \"path\": \"cache.host\",\n \"description\": \"主机地址;默认 'localhost'\",\n \"value\": \"localhost\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CACHE_KEYPREFIX\",\n \"module\": \"cache\",\n \"path\": \"cache.keyPrefix\",\n \"description\": \"键前缀(自动加在所有键前)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CACHE_MAXRETRIES\",\n \"module\": \"cache\",\n \"path\": \"cache.maxRetries\",\n \"description\": \"最大重试次数;默认 3\",\n \"value\": \"3\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_CACHE_PASSWORD\",\n \"module\": \"cache\",\n \"path\": \"cache.password\",\n \"description\": \"认证密码\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CACHE_PORT\",\n \"module\": \"cache\",\n \"path\": \"cache.port\",\n \"description\": \"端口号;默认 6379\",\n \"value\": \"6379\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_CACHE_READONLY\",\n \"module\": \"cache\",\n \"path\": \"cache.readOnly\",\n \"description\": \"是否只读模式;默认 false\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CACHE_RETRYDELAY\",\n \"module\": \"cache\",\n \"path\": \"cache.retryDelay\",\n \"description\": \"重试间隔基数(毫秒);实际间隔 = retryDelay × 重试次数;默认 50\",\n \"value\": \"50\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_CACHE_SENTINEL\",\n \"module\": \"cache\",\n \"path\": \"cache.sentinel\",\n \"description\": \"哨兵配置;配置后以哨兵模式连接\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_CACHE_SENTINEL_NAME\",\n \"module\": \"cache\",\n \"path\": \"cache.sentinel.name\",\n \"description\": \"哨兵监控的主节点名称\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CACHE_SENTINEL_SENTINELS\",\n \"module\": \"cache\",\n \"path\": \"cache.sentinel.sentinels\",\n \"description\": \"哨兵节点列表(至少 1 个)\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展;最少项数 1\"\n },\n {\n \"name\": \"HAI_CACHE_SENTINEL_SENTINELS_0\",\n \"module\": \"cache\",\n \"path\": \"cache.sentinel.sentinels.0\",\n \"description\": \"哨兵节点列表(至少 1 个);此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_CACHE_SENTINEL_SENTINELS_0_HOST\",\n \"module\": \"cache\",\n \"path\": \"cache.sentinel.sentinels.0.host\",\n \"description\": \"节点主机地址\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CACHE_SENTINEL_SENTINELS_0_PORT\",\n \"module\": \"cache\",\n \"path\": \"cache.sentinel.sentinels.0.port\",\n \"description\": \"节点端口号(1~65535)\",\n \"value\": \"\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_CACHE_TLS\",\n \"module\": \"cache\",\n \"path\": \"cache.tls\",\n \"description\": \"是否开启 TLS;默认 false\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CACHE_TYPE\",\n \"module\": \"cache\",\n \"path\": \"cache.type\",\n \"description\": \"后端或功能类型,按枚举选择\",\n \"value\": \"memory\",\n \"constraint\": \"字符串;取值:memory | redis\"\n },\n {\n \"name\": \"HAI_CACHE_URL\",\n \"module\": \"cache\",\n \"path\": \"cache.url\",\n \"description\": \"Redis 连接 URL(如 redis://user:pass\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CONTACT_RECIPIENT\",\n \"module\": \"contact\",\n \"path\": \"HAI_CONTACT_RECIPIENT\",\n \"description\": \"企业官网联系表单的通知收件人\",\n \"value\": \"\",\n \"constraint\": \"有效邮箱地址\"\n },\n {\n \"name\": \"HAI_CONTAINER_ENGINE\",\n \"module\": \"container\",\n \"path\": \"HAI_CONTAINER_ENGINE\",\n \"description\": \"部署/集成测试使用的容器引擎\",\n \"value\": \"\",\n \"constraint\": \"docker | podman\"\n },\n {\n \"name\": \"HAI_CORE\",\n \"module\": \"core\",\n \"path\": \"core\",\n \"description\": \"core. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_CORE_DEBUG\",\n \"module\": \"core\",\n \"path\": \"core.debug\",\n \"description\": \"是否调试模式(默认 false)\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CORE_DEFAULTLOCALE\",\n \"module\": \"core\",\n \"path\": \"core.defaultLocale\",\n \"description\": \"默认语言(默认 'zh-CN')\",\n \"value\": \"zh-CN\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CORE_ENV\",\n \"module\": \"core\",\n \"path\": \"core.env\",\n \"description\": \"运行环境(默认 'development')\",\n \"value\": \"development\",\n \"constraint\": \"字符串;取值:development | production | test | staging\"\n },\n {\n \"name\": \"HAI_CORE_FEATURES_AIASSISTANT\",\n \"module\": \"core\",\n \"path\": \"HAI_CORE_FEATURES_AIASSISTANT\",\n \"description\": \"示例应用功能开关:aiassistant\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CORE_FEATURES_AIENABLED\",\n \"module\": \"core\",\n \"path\": \"HAI_CORE_FEATURES_AIENABLED\",\n \"description\": \"示例应用功能开关:aienabled\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CORE_FEATURES_APIACCESS\",\n \"module\": \"core\",\n \"path\": \"HAI_CORE_FEATURES_APIACCESS\",\n \"description\": \"示例应用功能开关:apiaccess\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CORE_FEATURES_CONTACTFORM\",\n \"module\": \"core\",\n \"path\": \"HAI_CORE_FEATURES_CONTACTFORM\",\n \"description\": \"示例应用功能开关:contactform\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CORE_FEATURES_FILEUPLOAD\",\n \"module\": \"core\",\n \"path\": \"HAI_CORE_FEATURES_FILEUPLOAD\",\n \"description\": \"示例应用功能开关:fileupload\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CORE_FEATURES_MCPENABLED\",\n \"module\": \"core\",\n \"path\": \"HAI_CORE_FEATURES_MCPENABLED\",\n \"description\": \"示例应用功能开关:mcpenabled\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CORE_FEATURES_REGISTRATION\",\n \"module\": \"core\",\n \"path\": \"HAI_CORE_FEATURES_REGISTRATION\",\n \"description\": \"示例应用功能开关:registration\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_CORE_ID\",\n \"module\": \"core\",\n \"path\": \"core.id\",\n \"description\": \"ID 生成器配置(可选)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_CORE_ID_LENGTH\",\n \"module\": \"core\",\n \"path\": \"core.id.length\",\n \"description\": \"ID 长度(范围 6-64,默认 21)\",\n \"value\": \"21\",\n \"constraint\": \"整数;>= 6;<= 64\"\n },\n {\n \"name\": \"HAI_CORE_ID_PREFIX\",\n \"module\": \"core\",\n \"path\": \"core.id.prefix\",\n \"description\": \"ID 前缀(可选,生成时自动拼接)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CORE_LOGGING\",\n \"module\": \"core\",\n \"path\": \"core.logging\",\n \"description\": \"日志配置(可选)\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_CORE_LOGGING_CONTEXT\",\n \"module\": \"core\",\n \"path\": \"core.logging.context\",\n \"description\": \"默认上下文,会自动添加到每条日志\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_CORE_LOGGING_FORMAT\",\n \"module\": \"core\",\n \"path\": \"core.logging.format\",\n \"description\": \"日志格式:'json' 用于生产环境,'pretty' 用于开发环境(默认 'json')\",\n \"value\": \"json\",\n \"constraint\": \"字符串;取值:json | pretty\"\n },\n {\n \"name\": \"HAI_CORE_LOGGING_LEVEL\",\n \"module\": \"core\",\n \"path\": \"core.logging.level\",\n \"description\": \"日志级别(默认 'info')\",\n \"value\": \"info\",\n \"constraint\": \"字符串;取值:trace | debug | info | warn | error | fatal\"\n },\n {\n \"name\": \"HAI_CORE_LOGGING_REDACT\",\n \"module\": \"core\",\n \"path\": \"core.logging.redact\",\n \"description\": \"要脱敏的字段路径列表(如 ['password', 'token'],默认 [])\",\n \"value\": \"[]\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_CORE_LOGGING_REDACT_0\",\n \"module\": \"core\",\n \"path\": \"core.logging.redact.0\",\n \"description\": \"要脱敏的字段路径列表(如 ['password', 'token'],默认 []);此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CORE_NAME\",\n \"module\": \"core\",\n \"path\": \"core.name\",\n \"description\": \"应用名称(默认 'hai Admin')\",\n \"value\": \"hai Admin\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CORE_VERSION\",\n \"module\": \"core\",\n \"path\": \"core.version\",\n \"description\": \"应用版本(默认 '0.1.0')\",\n \"value\": \"0.1.0\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_CRYPTO\",\n \"module\": \"crypto\",\n \"path\": \"crypto\",\n \"description\": \"crypto 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体替换该配置\"\n },\n {\n \"name\": \"HAI_CRYPTO_TRANSPORT\",\n \"module\": \"crypto\",\n \"path\": \"HAI_CRYPTO_TRANSPORT\",\n \"description\": \"桌面示例公开传输配置;在构建阶段与浏览器使用同一 Schema 校验\",\n \"value\": \"false\",\n \"constraint\": \"false 关闭;或 JSON/YAML 对象,keyExchangePath 须以 / 开头;不接受 true\"\n },\n {\n \"name\": \"HAI_CRYPTO_TRANSPORT_KEYEXCHANGEPATH\",\n \"module\": \"crypto\",\n \"path\": \"HAI_CRYPTO_TRANSPORT_KEYEXCHANGEPATH\",\n \"description\": \"桌面示例公开密钥交换端点,构建期插值\",\n \"value\": \"/_hai/key-exchange\",\n \"constraint\": \"以 / 开头的路径\"\n },\n {\n \"name\": \"HAI_DB\",\n \"module\": \"db\",\n \"path\": \"db\",\n \"description\": \"db. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DB_DATABASE\",\n \"module\": \"db\",\n \"path\": \"db.database\",\n \"description\": \"数据库名称\",\n \"value\": \"./data/admin.db\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_DB_HOST\",\n \"module\": \"db\",\n \"path\": \"db.host\",\n \"description\": \"数据库主机地址(默认 localhost)\",\n \"value\": \"localhost\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_DB_MYSQL\",\n \"module\": \"db\",\n \"path\": \"db.mysql\",\n \"description\": \"MySQL 特定选项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DB_MYSQL_CHARSET\",\n \"module\": \"db\",\n \"path\": \"db.mysql.charset\",\n \"description\": \"字符集(默认 utf8mb4),推荐使用 utf8mb4 支持完整 Unicode\",\n \"value\": \"utf8mb4\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_DB_MYSQL_TIMEZONE\",\n \"module\": \"db\",\n \"path\": \"db.mysql.timezone\",\n \"description\": \"时区设置,如 '+08:00'\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_DB_OPERATIONLOG\",\n \"module\": \"db\",\n \"path\": \"db.operationLog\",\n \"description\": \"db 操作日志的读写开关、级别与字段截断规则\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DB_OPERATIONLOG_LEVEL\",\n \"module\": \"db\",\n \"path\": \"db.operationLog.level\",\n \"description\": \"操作日志的输出级别\",\n \"value\": \"debug\",\n \"constraint\": \"字符串;取值:info | debug | trace\"\n },\n {\n \"name\": \"HAI_DB_OPERATIONLOG_MAXLENGTH\",\n \"module\": \"db\",\n \"path\": \"db.operationLog.maxLength\",\n \"description\": \"操作日志字段的最大字符数,0 表示不截断\",\n \"value\": \"1000\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_DB_OPERATIONLOG_READ\",\n \"module\": \"db\",\n \"path\": \"db.operationLog.read\",\n \"description\": \"是否记录读取操作\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_DB_OPERATIONLOG_WRITE\",\n \"module\": \"db\",\n \"path\": \"db.operationLog.write\",\n \"description\": \"是否记录写入操作\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_DB_PASSWORD\",\n \"module\": \"db\",\n \"path\": \"db.password\",\n \"description\": \"数据库密码\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_DB_POOL\",\n \"module\": \"db\",\n \"path\": \"db.pool\",\n \"description\": \"连接池配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DB_POOL_ACQUIRETIMEOUT\",\n \"module\": \"db\",\n \"path\": \"db.pool.acquireTimeout\",\n \"description\": \"获取连接超时时间,单位毫秒(默认 10000)\",\n \"value\": \"10000\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_DB_POOL_IDLETIMEOUT\",\n \"module\": \"db\",\n \"path\": \"db.pool.idleTimeout\",\n \"description\": \"空闲连接超时时间,单位毫秒(默认 30000)\",\n \"value\": \"30000\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_DB_POOL_MAX\",\n \"module\": \"db\",\n \"path\": \"db.pool.max\",\n \"description\": \"最大连接数(默认 10)\",\n \"value\": \"10\",\n \"constraint\": \"整数;>= 1;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_DB_POOL_MIN\",\n \"module\": \"db\",\n \"path\": \"db.pool.min\",\n \"description\": \"最小连接数(默认 1)\",\n \"value\": \"1\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_DB_PORT\",\n \"module\": \"db\",\n \"path\": \"db.port\",\n \"description\": \"数据库端口 - PostgreSQL 默认 5432 - MySQL 默认 3306\",\n \"value\": \"5432\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_DB_SQLITE\",\n \"module\": \"db\",\n \"path\": \"db.sqlite\",\n \"description\": \"SQLite 特定选项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DB_SQLITE_EXECUTOR\",\n \"module\": \"db\",\n \"path\": \"db.sqlite.executor\",\n \"description\": \"执行方式(默认 sync)。 - `sync`:主线程直接执行 better-sqlite3(同步阻塞主线程事件循环)。 - `worker`:在专用 worker 线程持有唯一连接执行,把阻塞移出主线程。 注意 WAL 只改善数据库锁并发,无法避免 better-sqlite3 同步调用占用调用线程。\",\n \"value\": \"sync\",\n \"constraint\": \"字符串;取值:sync | worker\"\n },\n {\n \"name\": \"HAI_DB_SQLITE_READONLY\",\n \"module\": \"db\",\n \"path\": \"db.sqlite.readonly\",\n \"description\": \"是否只读模式(默认 false)\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_DB_SQLITE_WALMODE\",\n \"module\": \"db\",\n \"path\": \"db.sqlite.walMode\",\n \"description\": \"是否启用 WAL 模式(默认 true),可提高并发读写性能\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_DB_SQLITE_WORKERCONNECTTIMEOUTMS\",\n \"module\": \"db\",\n \"path\": \"db.sqlite.workerConnectTimeoutMs\",\n \"description\": \"worker 执行方式下等待连接打开的超时(毫秒,默认 10000)\",\n \"value\": \"10000\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_DB_SSL\",\n \"module\": \"db\",\n \"path\": \"db.ssl\",\n \"description\": \"SSL/TLS 连接配置\",\n \"value\": \"false\",\n \"constraint\": \"true | false;字符串;JSON 对象;整体覆盖时替换该节点;取值:require | prefer | allow | disable\"\n },\n {\n \"name\": \"HAI_DB_TYPE\",\n \"module\": \"db\",\n \"path\": \"db.type\",\n \"description\": \"后端或功能类型,按枚举选择\",\n \"value\": \"sqlite\",\n \"constraint\": \"字符串;取值:sqlite | postgresql | mysql\"\n },\n {\n \"name\": \"HAI_DB_URL\",\n \"module\": \"db\",\n \"path\": \"db.url\",\n \"description\": \"连接字符串(可选) 如果提供 url,将优先使用,忽略 host/port 等字段\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_DB_USER\",\n \"module\": \"db\",\n \"path\": \"db.user\",\n \"description\": \"数据库用户名\",\n \"value\": \"postgres\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_DEPLOY\",\n \"module\": \"deploy\",\n \"path\": \"deploy\",\n \"description\": \"deploy. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_CONTAINER\",\n \"module\": \"deploy\",\n \"path\": \"deploy.container\",\n \"description\": \"Docker Compose 部署参数;构建配置位于项目 hai.build.json。\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_CONTAINER_S3ENGINE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.container.s3Engine\",\n \"description\": \"自建 S3 服务实现;协议仍为 storage.type=s3。\",\n \"value\": \"rustfs\",\n \"constraint\": \"字符串;取值:rustfs | minio\"\n },\n {\n \"name\": \"HAI_DEPLOY_ENVIRONMENT\",\n \"module\": \"deploy\",\n \"path\": \"deploy.environment\",\n \"description\": \"部署环境文件模式;dev/test/prod 或自定义模式,禁止 local/example。\",\n \"value\": \"\",\n \"constraint\": \"字符串;正则 ^[a-z0-9][\\\\w-]*$\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider\",\n \"description\": \"应用部署目标平台及其连接参数,按 type 选择对应平台字段\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_EXPOSE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.expose\",\n \"description\": \"应用暴露方式\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_EXPOSE_CONTAINERPORT\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.expose.containerPort\",\n \"description\": \"容器内监听端口(adapter-node 默认 3000)\",\n \"value\": \"3000\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_EXPOSE_HOSTPORT\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.expose.hostPort\",\n \"description\": \"宿主机映射端口\",\n \"value\": \"18080\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_EXPOSE_TYPE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.expose.type\",\n \"description\": \"应用部署:平台/暴露方式,按所在节点的枚举选择\",\n \"value\": \"port\",\n \"constraint\": \"字符串;取值:port\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_REMOTE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.remote\",\n \"description\": \"远程主机运行参数\",\n \"value\": \"{\\\"baseDir\\\":\\\"/opt/hai/apps\\\",\\\"runtime\\\":\\\"auto\\\"}\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_REMOTE_BASEDIR\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.remote.baseDir\",\n \"description\": \"远程应用根目录\",\n \"value\": \"/opt/hai/apps\",\n \"constraint\": \"字符串;正则 ^\\\\/[\\\\w/. -]+$\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_REMOTE_RUNTIME\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.remote.runtime\",\n \"description\": \"远程容器运行时(auto 优先 podman)\",\n \"value\": \"auto\",\n \"constraint\": \"字符串;取值:auto | docker | podman\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_SSH\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.ssh\",\n \"description\": \"SSH 连接参数\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_SSH_CONNECTTIMEOUTSECONDS\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.ssh.connectTimeoutSeconds\",\n \"description\": \"连接超时(秒)\",\n \"value\": \"10\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_SSH_HOST\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.ssh.host\",\n \"description\": \"远程主机地址或 ~/.ssh/config 中的 Host 别名\",\n \"value\": \"\",\n \"constraint\": \"字符串;正则 ^[a-z0-9][a-z0-9.:-]*$\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_SSH_IDENTITYFILE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.ssh.identityFile\",\n \"description\": \"私钥文件路径(省略时使用 ssh-agent 或 ~/.ssh 默认密钥)\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_SSH_KNOWNHOSTSFILE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.ssh.knownHostsFile\",\n \"description\": \"known_hosts 文件路径(省略时使用默认;配合 CI/临时环境隔离主机指纹)\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_SSH_PORT\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.ssh.port\",\n \"description\": \"SSH 端口\",\n \"value\": \"22\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_SSH_STRICTHOSTKEYCHECKING\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.ssh.strictHostKeyChecking\",\n \"description\": \"严格主机密钥校验,默认开启(true→accept-new 首次信任并拒绝变更;false→关闭校验)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_SSH_USERNAME\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.ssh.username\",\n \"description\": \"SSH 用户名\",\n \"value\": \"deploy\",\n \"constraint\": \"字符串;正则 ^[a-z_][\\\\w-]*$\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_TOKEN\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.token\",\n \"description\": \"应用部署:部署平台访问令牌\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_PROVIDER_TYPE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.provider.type\",\n \"description\": \"应用部署:平台/暴露方式,按所在节点的枚举选择\",\n \"value\": \"docker-ssh\",\n \"constraint\": \"字符串;取值:vercel | docker-ssh\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services\",\n \"description\": \"自动开通依赖服务的服务商及连接配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_CACHE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.cache\",\n \"description\": \"自动开通缓存服务的服务商及连接配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_CACHE_APIKEY\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.cache.apiKey\",\n \"description\": \"自动开通 cache 服务:服务商 API 密钥\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_CACHE_EMAIL\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.cache.email\",\n \"description\": \"自动开通 cache 服务:服务商账号邮箱\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 email;正则 ^(?:[A-Za-z0-9_'+\\\\-]+\\\\.)*[A-Za-z0-9_'+\\\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\\\-]*\\\\.)+[A-Za-z]{2,}$\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_CACHE_PROVISIONER\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.cache.provisioner\",\n \"description\": \"自动开通 cache 服务:资源开通服务商\",\n \"value\": \"upstash\",\n \"constraint\": \"字符串;取值:upstash\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_DB\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.db\",\n \"description\": \"自动开通关系数据库服务的服务商及连接配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_DB_APIKEY\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.db.apiKey\",\n \"description\": \"自动开通 db 服务:服务商 API 密钥\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_DB_PROVISIONER\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.db.provisioner\",\n \"description\": \"自动开通 db 服务:资源开通服务商\",\n \"value\": \"neon\",\n \"constraint\": \"字符串;取值:neon\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_EMAIL\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.email\",\n \"description\": \"自动开通 email 服务:服务商账号邮箱\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_EMAIL_APIKEY\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.email.apiKey\",\n \"description\": \"自动开通 email 服务:服务商 API 密钥\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_EMAIL_FROM\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.email.from\",\n \"description\": \"自动开通 email 服务:已验证域名的发件邮箱\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 email;正则 ^(?:[A-Za-z0-9_'+\\\\-]+\\\\.)*[A-Za-z0-9_'+\\\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\\\-]*\\\\.)+[A-Za-z]{2,}$\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_EMAIL_PROVISIONER\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.email.provisioner\",\n \"description\": \"自动开通 email 服务:资源开通服务商\",\n \"value\": \"resend\",\n \"constraint\": \"字符串;取值:resend\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_SMS\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.sms\",\n \"description\": \"是否允许短信验证码\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_SMS_ACCESSKEYID\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.sms.accessKeyId\",\n \"description\": \"自动开通 sms 服务:服务商访问密钥 ID\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_SMS_ACCESSKEYSECRET\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.sms.accessKeySecret\",\n \"description\": \"自动开通 sms 服务:服务商访问密钥 Secret\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_SMS_PROVISIONER\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.sms.provisioner\",\n \"description\": \"自动开通 sms 服务:资源开通服务商\",\n \"value\": \"aliyun\",\n \"constraint\": \"字符串;取值:aliyun\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_SMS_SIGNNAME\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.sms.signName\",\n \"description\": \"自动开通 sms 服务:短信服务审核通过的签名\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_STORAGE\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.storage\",\n \"description\": \"自动开通对象存储服务的服务商及连接配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_STORAGE_ACCESSKEYID\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.storage.accessKeyId\",\n \"description\": \"自动开通 storage 服务:服务商访问密钥 ID\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_STORAGE_ACCOUNTID\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.storage.accountId\",\n \"description\": \"自动开通 storage 服务:Cloudflare 账号 ID\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_STORAGE_APITOKEN\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.storage.apiToken\",\n \"description\": \"自动开通 storage 服务:Cloudflare API 令牌\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_STORAGE_PROVISIONER\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.storage.provisioner\",\n \"description\": \"自动开通 storage 服务:资源开通服务商\",\n \"value\": \"cloudflare-r2\",\n \"constraint\": \"字符串;取值:cloudflare-r2\"\n },\n {\n \"name\": \"HAI_DEPLOY_SERVICES_STORAGE_SECRETACCESSKEY\",\n \"module\": \"deploy\",\n \"path\": \"deploy.services.storage.secretAccessKey\",\n \"description\": \"自动开通 storage 服务:对象存储访问密钥 Secret\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_DOCKER_PROD_BUILD\",\n \"module\": \"docker\",\n \"path\": \"HAI_DOCKER_PROD_BUILD\",\n \"description\": \"容器生产构建时省略声明文件和 sourcemap\",\n \"value\": \"\",\n \"constraint\": \"true 启用;其余值关闭\"\n },\n {\n \"name\": \"HAI_E2E\",\n \"module\": \"e2e\",\n \"path\": \"HAI_E2E\",\n \"description\": \"示例/模板端到端测试开关\",\n \"value\": \"\",\n \"constraint\": \"1 启用;其余值关闭\"\n },\n {\n \"name\": \"HAI_E2E_APP_URL\",\n \"module\": \"e2e\",\n \"path\": \"HAI_E2E_APP_URL\",\n \"description\": \"Fullstack 移动端浏览器预览验收地址\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL;同时决定对应预览服务的监听地址\"\n },\n {\n \"name\": \"HAI_E2E_DATA_ROOT\",\n \"module\": \"e2e\",\n \"path\": \"HAI_E2E_DATA_ROOT\",\n \"description\": \"端到端测试的隔离运行数据目录\",\n \"value\": \"\",\n \"constraint\": \"目录路径\"\n },\n {\n \"name\": \"HAI_E2E_DESKTOP_URL\",\n \"module\": \"e2e\",\n \"path\": \"HAI_E2E_DESKTOP_URL\",\n \"description\": \"Fullstack 桌面端浏览器预览验收地址\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL;同时决定对应预览服务的监听地址\"\n },\n {\n \"name\": \"HAI_E2E_LIVE\",\n \"module\": \"e2e\",\n \"path\": \"HAI_E2E_LIVE\",\n \"description\": \"AI 示例启用真实厂商端到端测试\",\n \"value\": \"\",\n \"constraint\": \"1 启用;其余值关闭\"\n },\n {\n \"name\": \"HAI_E2E_MOCK\",\n \"module\": \"e2e\",\n \"path\": \"HAI_E2E_MOCK\",\n \"description\": \"AI 示例使用确定性端到端测试服务\",\n \"value\": \"\",\n \"constraint\": \"1 启用;其余值关闭\"\n },\n {\n \"name\": \"HAI_E2E_WEB_URL\",\n \"module\": \"e2e\",\n \"path\": \"HAI_E2E_WEB_URL\",\n \"description\": \"Fullstack Web 端验收地址\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL;同时决定对应预览服务的监听地址\"\n },\n {\n \"name\": \"HAI_IAM\",\n \"module\": \"iam\",\n \"path\": \"iam\",\n \"description\": \"iam. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_AGREEMENTS\",\n \"module\": \"iam\",\n \"path\": \"iam.agreements\",\n \"description\": \"协议展示配置\",\n \"value\": \"{\\\"showOnRegister\\\":true,\\\"showOnLogin\\\":false}\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_AGREEMENTS_PRIVACYPOLICYMARKDOWN\",\n \"module\": \"iam\",\n \"path\": \"iam.agreements.privacyPolicyMarkdown\",\n \"description\": \"隐私协议 Markdown 正文;YAML 使用 | 保留段落和换行。\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_IAM_AGREEMENTS_PRIVACYPOLICYURL\",\n \"module\": \"iam\",\n \"path\": \"iam.agreements.privacyPolicyUrl\",\n \"description\": \"隐私协议 URL\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_IAM_AGREEMENTS_SHOWONLOGIN\",\n \"module\": \"iam\",\n \"path\": \"iam.agreements.showOnLogin\",\n \"description\": \"登录时展示协议\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_AGREEMENTS_SHOWONREGISTER\",\n \"module\": \"iam\",\n \"path\": \"iam.agreements.showOnRegister\",\n \"description\": \"注册时展示协议\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_AGREEMENTS_USERAGREEMENTMARKDOWN\",\n \"module\": \"iam\",\n \"path\": \"iam.agreements.userAgreementMarkdown\",\n \"description\": \"用户协议 Markdown 正文;同时配置 URL 时优先显示正文。\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_IAM_AGREEMENTS_USERAGREEMENTURL\",\n \"module\": \"iam\",\n \"path\": \"iam.agreements.userAgreementUrl\",\n \"description\": \"用户协议 URL\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_IAM_APIKEY\",\n \"module\": \"iam\",\n \"path\": \"iam.apikey\",\n \"description\": \"API Key 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_APIKEY_DEFAULTEXPIRATIONDAYS\",\n \"module\": \"iam\",\n \"path\": \"iam.apikey.defaultExpirationDays\",\n \"description\": \"API Key 默认有效期(天,0 表示永不过期,默认 0)\",\n \"value\": \"0\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_APIKEY_MAXKEYSPERUSER\",\n \"module\": \"iam\",\n \"path\": \"iam.apikey.maxKeysPerUser\",\n \"description\": \"单用户最大 API Key 数量(默认 10)\",\n \"value\": \"10\",\n \"constraint\": \"整数;>= 1;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_APIKEY_PREFIX\",\n \"module\": \"iam\",\n \"path\": \"iam.apikey.prefix\",\n \"description\": \"API Key 前缀(默认 'hai_')\",\n \"value\": \"hai_\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_LDAP\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap\",\n \"description\": \"LDAP 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_BINDDN\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.bindDn\",\n \"description\": \"绑定 DN\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_BINDPASSWORD\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.bindPassword\",\n \"description\": \"绑定密码\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_CONNECTTIMEOUT\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.connectTimeout\",\n \"description\": \"连接超时(毫秒)\",\n \"value\": \"5000\",\n \"constraint\": \"整数;>= 1000;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_DISPLAYNAMEATTRIBUTE\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.displayNameAttribute\",\n \"description\": \"显示名称属性\",\n \"value\": \"cn\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_EMAILATTRIBUTE\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.emailAttribute\",\n \"description\": \"邮箱属性\",\n \"value\": \"mail\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_SEARCHBASE\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.searchBase\",\n \"description\": \"搜索基础 DN\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_SEARCHFILTER\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.searchFilter\",\n \"description\": \"搜索过滤器(默认使用 uid)\",\n \"value\": \"(uid={{username}})\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_URL\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.url\",\n \"description\": \"LDAP 服务器 URL\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_USERNAMEATTRIBUTE\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.usernameAttribute\",\n \"description\": \"用户名属性\",\n \"value\": \"uid\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_LDAP_USETLS\",\n \"module\": \"iam\",\n \"path\": \"iam.ldap.useTls\",\n \"description\": \"启用 TLS\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_LOGIN\",\n \"module\": \"iam\",\n \"path\": \"iam.login\",\n \"description\": \"登录启用配置\",\n \"value\": \"{\\\"password\\\":true,\\\"otp\\\":true,\\\"ldap\\\":false,\\\"apikey\\\":false}\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_LOGIN_APIKEY\",\n \"module\": \"iam\",\n \"path\": \"iam.login.apikey\",\n \"description\": \"是否启用 API Key 登录\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_LOGIN_LDAP\",\n \"module\": \"iam\",\n \"path\": \"iam.login.ldap\",\n \"description\": \"是否启用 LDAP 登录;需要显式开启并提供 ldap 配置。\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_LOGIN_OTP\",\n \"module\": \"iam\",\n \"path\": \"iam.login.otp\",\n \"description\": \"是否启用 OTP 登录\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_LOGIN_PASSWORD\",\n \"module\": \"iam\",\n \"path\": \"iam.login.password\",\n \"description\": \"是否启用密码登录\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_OTP\",\n \"module\": \"iam\",\n \"path\": \"iam.otp\",\n \"description\": \"OTP 配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_OTP_EMAIL\",\n \"module\": \"iam\",\n \"path\": \"iam.otp.email\",\n \"description\": \"分别启用邮件、短信验证码\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_OTP_EXPIRESIN\",\n \"module\": \"iam\",\n \"path\": \"iam.otp.expiresIn\",\n \"description\": \"验证码过期时间(秒,默认 300)\",\n \"value\": \"300\",\n \"constraint\": \"整数;>= 60;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_OTP_LENGTH\",\n \"module\": \"iam\",\n \"path\": \"iam.otp.length\",\n \"description\": \"验证码长度(默认 6)\",\n \"value\": \"6\",\n \"constraint\": \"整数;>= 4;<= 8\"\n },\n {\n \"name\": \"HAI_IAM_OTP_MAXATTEMPTS\",\n \"module\": \"iam\",\n \"path\": \"iam.otp.maxAttempts\",\n \"description\": \"最大重试次数(默认 3)\",\n \"value\": \"3\",\n \"constraint\": \"整数;>= 1;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_OTP_RESENDINTERVAL\",\n \"module\": \"iam\",\n \"path\": \"iam.otp.resendInterval\",\n \"description\": \"发送间隔(秒,默认 60)\",\n \"value\": \"60\",\n \"constraint\": \"整数;>= 30;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_OTP_SMS\",\n \"module\": \"iam\",\n \"path\": \"iam.otp.sms\",\n \"description\": \"是否允许短信验证码\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORD\",\n \"module\": \"iam\",\n \"path\": \"iam.password\",\n \"description\": \"密码配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORD_EXPIRATIONDAYS\",\n \"module\": \"iam\",\n \"path\": \"iam.password.expirationDays\",\n \"description\": \"密码过期天数(0 表示不过期)\",\n \"value\": \"0\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORD_MAXLENGTH\",\n \"module\": \"iam\",\n \"path\": \"iam.password.maxLength\",\n \"description\": \"最大长度(默认 128)\",\n \"value\": \"128\",\n \"constraint\": \"整数;>= 1;<= 256\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORD_MINLENGTH\",\n \"module\": \"iam\",\n \"path\": \"iam.password.minLength\",\n \"description\": \"最小长度(默认 8)\",\n \"value\": \"8\",\n \"constraint\": \"整数;>= 1;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORD_REQUIRELOWERCASE\",\n \"module\": \"iam\",\n \"path\": \"iam.password.requireLowercase\",\n \"description\": \"需要小写字母\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORD_REQUIRENUMBER\",\n \"module\": \"iam\",\n \"path\": \"iam.password.requireNumber\",\n \"description\": \"需要数字\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORD_REQUIRESPECIALCHAR\",\n \"module\": \"iam\",\n \"path\": \"iam.password.requireSpecialChar\",\n \"description\": \"需要特殊字符\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORD_REQUIREUPPERCASE\",\n \"module\": \"iam\",\n \"path\": \"iam.password.requireUppercase\",\n \"description\": \"需要大写字母\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORDRESET\",\n \"module\": \"iam\",\n \"path\": \"iam.passwordReset\",\n \"description\": \"密码重置配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORDRESET_ENABLED\",\n \"module\": \"iam\",\n \"path\": \"iam.passwordReset.enabled\",\n \"description\": \"是否启用密码重置\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORDRESET_MAXATTEMPTS\",\n \"module\": \"iam\",\n \"path\": \"iam.passwordReset.maxAttempts\",\n \"description\": \"最大验证尝试次数(默认 3)\",\n \"value\": \"3\",\n \"constraint\": \"整数;>= 1;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORDRESET_MODE\",\n \"module\": \"iam\",\n \"path\": \"iam.passwordReset.mode\",\n \"description\": \"重置通知渠道,phone 使用 password_reset_sms 模板。\",\n \"value\": \"email\",\n \"constraint\": \"字符串;取值:email | phone\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORDRESET_RESETURL\",\n \"module\": \"iam\",\n \"path\": \"iam.passwordReset.resetUrl\",\n \"description\": \"重置页面的绝对地址,通知模板可使用 resetUrl。\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_IAM_PASSWORDRESET_TOKENEXPIRESIN\",\n \"module\": \"iam\",\n \"path\": \"iam.passwordReset.tokenExpiresIn\",\n \"description\": \"重置令牌有效期(秒,默认 3600 = 1小时)\",\n \"value\": \"3600\",\n \"constraint\": \"整数;>= 300;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_RBAC\",\n \"module\": \"iam\",\n \"path\": \"iam.rbac\",\n \"description\": \"RBAC 配置\",\n \"value\": \"{\\\"enabled\\\":true,\\\"superAdminRole\\\":\\\"super_admin\\\",\\\"defaultRole\\\":\\\"user\\\"}\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_RBAC_DEFAULTROLE\",\n \"module\": \"iam\",\n \"path\": \"iam.rbac.defaultRole\",\n \"description\": \"默认用户角色\",\n \"value\": \"user\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_RBAC_ENABLED\",\n \"module\": \"iam\",\n \"path\": \"iam.rbac.enabled\",\n \"description\": \"是否启用 RBAC\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_RBAC_SUPERADMINROLE\",\n \"module\": \"iam\",\n \"path\": \"iam.rbac.superAdminRole\",\n \"description\": \"超级管理员角色代码\",\n \"value\": \"super_admin\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_REGISTER\",\n \"module\": \"iam\",\n \"path\": \"iam.register\",\n \"description\": \"注册配置\",\n \"value\": \"{\\\"enabled\\\":true,\\\"defaultEnabled\\\":true}\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_REGISTER_DEFAULTENABLED\",\n \"module\": \"iam\",\n \"path\": \"iam.register.defaultEnabled\",\n \"description\": \"新注册用户是否默认启用\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_REGISTER_ENABLED\",\n \"module\": \"iam\",\n \"path\": \"iam.register.enabled\",\n \"description\": \"是否启用注册\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_SECURITY\",\n \"module\": \"iam\",\n \"path\": \"iam.security\",\n \"description\": \"安全策略配置\",\n \"value\": \"{\\\"maxLoginAttempts\\\":5,\\\"lockoutDuration\\\":900}\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_SECURITY_LOCKOUTDURATION\",\n \"module\": \"iam\",\n \"path\": \"iam.security.lockoutDuration\",\n \"description\": \"锁定时长(秒,默认 900)\",\n \"value\": \"900\",\n \"constraint\": \"整数;>= 60;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_SECURITY_MAXLOGINATTEMPTS\",\n \"module\": \"iam\",\n \"path\": \"iam.security.maxLoginAttempts\",\n \"description\": \"最大登录失败次数(默认 5)\",\n \"value\": \"5\",\n \"constraint\": \"整数;>= 1;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_SEEDDEFAULTDATA\",\n \"module\": \"iam\",\n \"path\": \"iam.seedDefaultData\",\n \"description\": \"是否初始化默认角色和权限(默认 true)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_SESSION\",\n \"module\": \"iam\",\n \"path\": \"iam.session\",\n \"description\": \"会话配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_SESSION_MAXAGE\",\n \"module\": \"iam\",\n \"path\": \"iam.session.maxAge\",\n \"description\": \"会话超时时间(秒,默认 86400 = 24小时)\",\n \"value\": \"86400\",\n \"constraint\": \"整数;>= 60;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_SESSION_REFRESHTOKENMAXAGE\",\n \"module\": \"iam\",\n \"path\": \"iam.session.refreshTokenMaxAge\",\n \"description\": \"refreshToken 过期时间(秒,默认 604800 = 7天)\",\n \"value\": \"604800\",\n \"constraint\": \"整数;>= 3600;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_IAM_SESSION_SINGLEDEVICE\",\n \"module\": \"iam\",\n \"path\": \"iam.session.singleDevice\",\n \"description\": \"单设备登录(踢掉其他设备)\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_SESSION_SLIDING\",\n \"module\": \"iam\",\n \"path\": \"iam.session.sliding\",\n \"description\": \"是否滑动窗口(每次访问刷新过期时间)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_IAM_UI\",\n \"module\": \"iam\",\n \"path\": \"iam.ui\",\n \"description\": \"认证页外观\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_IAM_UI_BRANDTEXT\",\n \"module\": \"iam\",\n \"path\": \"iam.ui.brandText\",\n \"description\": \"认证页品牌介绍正文\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_UI_BRANDTITLE\",\n \"module\": \"iam\",\n \"path\": \"iam.ui.brandTitle\",\n \"description\": \"认证页品牌区域标题\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_UI_ILLUSTRATIONURL\",\n \"module\": \"iam\",\n \"path\": \"iam.ui.illustrationUrl\",\n \"description\": \"认证页插图 URL\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_UI_LOGOURL\",\n \"module\": \"iam\",\n \"path\": \"iam.ui.logoUrl\",\n \"description\": \"认证页品牌 Logo URL\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_UI_SUBTITLE\",\n \"module\": \"iam\",\n \"path\": \"iam.ui.subtitle\",\n \"description\": \"认证面板副标题\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_UI_TITLE\",\n \"module\": \"iam\",\n \"path\": \"iam.ui.title\",\n \"description\": \"认证面板标题\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_IAM_UI_VARIANT\",\n \"module\": \"iam\",\n \"path\": \"iam.ui.variant\",\n \"description\": \"认证页布局样式\",\n \"value\": \"card\",\n \"constraint\": \"字符串;取值:card | split\"\n },\n {\n \"name\": \"HAI_KIT\",\n \"module\": \"kit\",\n \"path\": \"kit\",\n \"description\": \"kit. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_KIT_COOKIE_KEY\",\n \"module\": \"kit\",\n \"path\": \"HAI_KIT_COOKIE_KEY\",\n \"description\": \"kit Cookie 加密密钥\",\n \"value\": \"\",\n \"constraint\": \"满足 crypto SM4 密钥格式;敏感值仅本机或目标进程注入\"\n },\n {\n \"name\": \"HAI_KIT_SERVER\",\n \"module\": \"kit\",\n \"path\": \"kit.server\",\n \"description\": \"HTTP 服务监听地址与端口\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_KIT_SERVER_HOST\",\n \"module\": \"kit\",\n \"path\": \"kit.server.host\",\n \"description\": \"HTTP 监听主机名或 IP\",\n \"value\": \"127.0.0.1\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_KIT_SERVER_PORT\",\n \"module\": \"kit\",\n \"path\": \"kit.server.port\",\n \"description\": \"HTTP 监听端口\",\n \"value\": \"3000\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT\",\n \"module\": \"kit\",\n \"path\": \"kit.transport\",\n \"description\": \"传输加密开关或密钥协商配置\",\n \"value\": \"false\",\n \"constraint\": \"true | false;JSON 对象;整体覆盖时替换该节点;取值:false\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT_ENCRYPTRESPONSE\",\n \"module\": \"kit\",\n \"path\": \"kit.transport.encryptResponse\",\n \"description\": \"是否加密服务端业务响应\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT_EXCLUDEPATHS\",\n \"module\": \"kit\",\n \"path\": \"kit.transport.excludePaths\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"[]\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT_EXCLUDEPATHS_0\",\n \"module\": \"kit\",\n \"path\": \"kit.transport.excludePaths.0\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"/api/storage\",\n \"constraint\": \"以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT_EXCLUDEPATHS_1\",\n \"module\": \"kit\",\n \"path\": \"HAI_KIT_TRANSPORT_EXCLUDEPATHS_1\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"/api/public\",\n \"constraint\": \"以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT_EXCLUDEPATHS_2\",\n \"module\": \"kit\",\n \"path\": \"HAI_KIT_TRANSPORT_EXCLUDEPATHS_2\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"/api/auth/profile/avatar\",\n \"constraint\": \"以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT_KEYEXCHANGEPATH\",\n \"module\": \"kit\",\n \"path\": \"kit.transport.keyExchangePath\",\n \"description\": \"客户端与服务端约定的密钥交换端点\",\n \"value\": \"/api/_hai/key-exchange\",\n \"constraint\": \"字符串;以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT_MAXCLIENTS\",\n \"module\": \"kit\",\n \"path\": \"kit.transport.maxClients\",\n \"description\": \"服务端最多保留的客户端传输密钥会话数\",\n \"value\": \"10000\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_KIT_TRANSPORT_REQUIREENCRYPTION\",\n \"module\": \"kit\",\n \"path\": \"kit.transport.requireEncryption\",\n \"description\": \"是否要求业务请求使用传输加密\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_MODEL_API_KEY\",\n \"module\": \"model\",\n \"path\": \"HAI_MODEL_API_KEY\",\n \"description\": \"本地语音模型 HTTP 服务的 Bearer 认证密钥\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串;空值表示该模型服务未启用认证\"\n },\n {\n \"name\": \"HAI_MODEL_ID\",\n \"module\": \"model\",\n \"path\": \"HAI_MODEL_ID\",\n \"description\": \"本地模型权重的 Hugging Face 仓库 ID\",\n \"value\": \"\",\n \"constraint\": \"有效模型仓库 ID,例如组织名/模型名;由模型目录提供默认值\"\n },\n {\n \"name\": \"HAI_MODEL_OUTPUT_DIR\",\n \"module\": \"model\",\n \"path\": \"HAI_MODEL_OUTPUT_DIR\",\n \"description\": \"模型 prepare 子进程的权重输出目录\",\n \"value\": \"\",\n \"constraint\": \"目录路径;通常由 model:prepare 自动注入\"\n },\n {\n \"name\": \"HAI_MODEL_REVISION\",\n \"module\": \"model\",\n \"path\": \"HAI_MODEL_REVISION\",\n \"description\": \"Hugging Face 权重修订版本\",\n \"value\": \"\",\n \"constraint\": \"仓库已有的分支、标签或 commit;为空时使用厂商默认版本\"\n },\n {\n \"name\": \"HAI_MODELSCOPE_ID\",\n \"module\": \"modelscope\",\n \"path\": \"HAI_MODELSCOPE_ID\",\n \"description\": \"本地模型权重的 ModelScope 仓库 ID\",\n \"value\": \"\",\n \"constraint\": \"有效模型仓库 ID;优先使用模型目录的配置\"\n },\n {\n \"name\": \"HAI_MODELSCOPE_REVISION\",\n \"module\": \"modelscope\",\n \"path\": \"HAI_MODELSCOPE_REVISION\",\n \"description\": \"ModelScope 权重修订版本\",\n \"value\": \"\",\n \"constraint\": \"仓库已有的分支、标签或 commit;通常为 master\"\n },\n {\n \"name\": \"HAI_PARTNER\",\n \"module\": \"partner\",\n \"path\": \"partner\",\n \"description\": \"partner 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体替换该配置\"\n },\n {\n \"name\": \"HAI_PARTNER_PASSWORD\",\n \"module\": \"partner\",\n \"path\": \"HAI_PARTNER_PASSWORD\",\n \"description\": \"企业官网合作伙伴演示的登录密码\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,仅本机或目标进程注入\"\n },\n {\n \"name\": \"HAI_PARTNER_SESSIONTTLSECONDS\",\n \"module\": \"partner\",\n \"path\": \"HAI_PARTNER_SESSIONTTLSECONDS\",\n \"description\": \"合作伙伴演示会话有效期\",\n \"value\": \"14400\",\n \"constraint\": \"正整数,单位秒\"\n },\n {\n \"name\": \"HAI_PARTNER_USERNAME\",\n \"module\": \"partner\",\n \"path\": \"HAI_PARTNER_USERNAME\",\n \"description\": \"企业官网合作伙伴演示的登录用户名\",\n \"value\": \"partner-admin\",\n \"constraint\": \"非空字符串\"\n },\n {\n \"name\": \"HAI_PAYMENT\",\n \"module\": \"payment\",\n \"path\": \"payment\",\n \"description\": \"payment. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_PAYMENT_ALIPAY\",\n \"module\": \"payment\",\n \"path\": \"payment.alipay\",\n \"description\": \"支付宝渠道的商户配置与验签参数\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_PAYMENT_ALIPAY_ALIPAYPUBLICKEY\",\n \"module\": \"payment\",\n \"path\": \"payment.alipay.alipayPublicKey\",\n \"description\": \"alipay:支付宝平台公钥,用于验签\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_ALIPAY_APPID\",\n \"module\": \"payment\",\n \"path\": \"payment.alipay.appId\",\n \"description\": \"alipay:商户应用 ID\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_ALIPAY_PRIVATEKEY\",\n \"module\": \"payment\",\n \"path\": \"payment.alipay.privateKey\",\n \"description\": \"alipay:商户签名私钥(PEM)\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_ALIPAY_SANDBOX\",\n \"module\": \"payment\",\n \"path\": \"payment.alipay.sandbox\",\n \"description\": \"alipay:是否使用沙箱网关\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_PAYMENT_ALIPAY_SIGNTYPE\",\n \"module\": \"payment\",\n \"path\": \"payment.alipay.signType\",\n \"description\": \"alipay:请求签名算法\",\n \"value\": \"RSA2\",\n \"constraint\": \"字符串;取值:RSA2 | RSA\"\n },\n {\n \"name\": \"HAI_PAYMENT_STRIPE\",\n \"module\": \"payment\",\n \"path\": \"payment.stripe\",\n \"description\": \"Stripe渠道的商户配置与验签参数\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_PAYMENT_STRIPE_SECRETKEY\",\n \"module\": \"payment\",\n \"path\": \"payment.stripe.secretKey\",\n \"description\": \"stripe:Stripe 服务端密钥\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_STRIPE_WEBHOOKSECRET\",\n \"module\": \"payment\",\n \"path\": \"payment.stripe.webhookSecret\",\n \"description\": \"stripe:Stripe Webhook 验签密钥\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_STRIPE_WEBHOOKTOLERANCESECONDS\",\n \"module\": \"payment\",\n \"path\": \"payment.stripe.webhookToleranceSeconds\",\n \"description\": \"stripe:Webhook 时间戳允许偏差,单位秒\",\n \"value\": \"300\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_PAYMENT_WECHAT\",\n \"module\": \"payment\",\n \"path\": \"payment.wechat\",\n \"description\": \"微信支付渠道的商户配置与验签参数\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_PAYMENT_WECHAT_APIV3KEY\",\n \"module\": \"payment\",\n \"path\": \"payment.wechat.apiV3Key\",\n \"description\": \"wechat:微信支付 API v3 密钥\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_WECHAT_APPID\",\n \"module\": \"payment\",\n \"path\": \"payment.wechat.appId\",\n \"description\": \"wechat:商户应用 ID\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_WECHAT_MCHID\",\n \"module\": \"payment\",\n \"path\": \"payment.wechat.mchId\",\n \"description\": \"wechat:微信支付商户号\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_WECHAT_PLATFORMCERT\",\n \"module\": \"payment\",\n \"path\": \"payment.wechat.platformCert\",\n \"description\": \"wechat:微信支付平台证书(PEM),用于验签\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_PAYMENT_WECHAT_PRIVATEKEY\",\n \"module\": \"payment\",\n \"path\": \"payment.wechat.privateKey\",\n \"description\": \"wechat:商户签名私钥(PEM)\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_PAYMENT_WECHAT_SERIALNO\",\n \"module\": \"payment\",\n \"path\": \"payment.wechat.serialNo\",\n \"description\": \"wechat:商户 API 证书序列号\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH\",\n \"module\": \"reach\",\n \"path\": \"reach\",\n \"description\": \"reach. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_REACH_DND\",\n \"module\": \"reach\",\n \"path\": \"reach.dnd\",\n \"description\": \"免打扰配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_REACH_DND_ENABLED\",\n \"module\": \"reach\",\n \"path\": \"reach.dnd.enabled\",\n \"description\": \"是否启用免打扰(默认 false)\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_REACH_DND_END\",\n \"module\": \"reach\",\n \"path\": \"reach.dnd.end\",\n \"description\": \"免打扰结束时间(HH:mm 格式)\",\n \"value\": \"00:00\",\n \"constraint\": \"字符串;正则 ^([01]\\\\d|2[0-3]):[0-5]\\\\d$\"\n },\n {\n \"name\": \"HAI_REACH_DND_START\",\n \"module\": \"reach\",\n \"path\": \"reach.dnd.start\",\n \"description\": \"免打扰开始时间(HH:mm 格式)\",\n \"value\": \"00:00\",\n \"constraint\": \"字符串;正则 ^([01]\\\\d|2[0-3]):[0-5]\\\\d$\"\n },\n {\n \"name\": \"HAI_REACH_DND_STRATEGY\",\n \"module\": \"reach\",\n \"path\": \"reach.dnd.strategy\",\n \"description\": \"免打扰策略:discard 丢弃 / delay 延时发送(默认 discard)\",\n \"value\": \"discard\",\n \"constraint\": \"字符串;取值:discard | delay\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS\",\n \"module\": \"reach\",\n \"path\": \"reach.providers\",\n \"description\": \"Provider 配置列表\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展;最少项数 1\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0\",\n \"description\": \"Provider 配置列表;此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_ACCESSKEYID\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.accessKeyId\",\n \"description\": \"阿里云 AccessKey ID\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_ACCESSKEYSECRET\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.accessKeySecret\",\n \"description\": \"阿里云 AccessKey Secret\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_ENDPOINT\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.endpoint\",\n \"description\": \"API 端点(默认 dysmsapi.aliyuncs.com)\",\n \"value\": \"dysmsapi.aliyuncs.com\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_FROM\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.from\",\n \"description\": \"发件人地址\",\n \"value\": \"noreply@example.com\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_HEADERS\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.headers\",\n \"description\": \"自定义请求头\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_HEADERS_AUTHORIZATION\",\n \"module\": \"reach\",\n \"path\": \"HAI_REACH_PROVIDERS_0_HEADERS_AUTHORIZATION\",\n \"description\": \"API 通知 Provider 的完整 Authorization 请求头\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,包含认证方案及凭据,例如 Bearer <token>\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_HOST\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.host\",\n \"description\": \"SMTP 服务器地址\",\n \"value\": \"smtp.example.com\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_METHOD\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.method\",\n \"description\": \"HTTP 方法(默认 POST)\",\n \"value\": \"POST\",\n \"constraint\": \"字符串;取值:POST | PUT\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_NAME\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.name\",\n \"description\": \"Provider 唯一名称\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_PASS\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.pass\",\n \"description\": \"SMTP 认证密码\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_PORT\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.port\",\n \"description\": \"SMTP 端口(默认 465)\",\n \"value\": \"465\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_SECURE\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.secure\",\n \"description\": \"是否使用 TLS(默认 true)\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_SIGNNAME\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.signName\",\n \"description\": \"短信签名\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_TIMEOUT\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.timeout\",\n \"description\": \"请求超时毫秒数(默认 10000)\",\n \"value\": \"10000\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_TYPE\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.type\",\n \"description\": \"后端或功能类型,按枚举选择\",\n \"value\": \"console\",\n \"constraint\": \"字符串;取值:console | smtp | aliyun-sms | api\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_URL\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.url\",\n \"description\": \"回调 URL\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_0_USER\",\n \"module\": \"reach\",\n \"path\": \"reach.providers.0.user\",\n \"description\": \"SMTP 认证用户名\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_REACH_PROVIDERS_1_TYPE\",\n \"module\": \"reach\",\n \"path\": \"HAI_REACH_PROVIDERS_1_TYPE\",\n \"description\": \"后端或功能类型,按枚举选择\",\n \"value\": \"console\",\n \"constraint\": \"字符串;取值:console | smtp | aliyun-sms | api\"\n },\n {\n \"name\": \"HAI_REACH_TEMPLATES\",\n \"module\": \"reach\",\n \"path\": \"reach.templates\",\n \"description\": \"模板配置(通过配置文件注册)\",\n \"value\": \"\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_REACH_TEMPLATES_0\",\n \"module\": \"reach\",\n \"path\": \"reach.templates.0\",\n \"description\": \"模板配置(通过配置文件注册);此变量整体替换单个数组项\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_REACH_TEMPLATES_0_BODY\",\n \"module\": \"reach\",\n \"path\": \"reach.templates.0.body\",\n \"description\": \"正文模板\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_TEMPLATES_0_NAME\",\n \"module\": \"reach\",\n \"path\": \"reach.templates.0.name\",\n \"description\": \"模板名称\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_TEMPLATES_0_PROVIDER\",\n \"module\": \"reach\",\n \"path\": \"reach.templates.0.provider\",\n \"description\": \"绑定的 Provider 名称\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_REACH_TEMPLATES_0_SUBJECT\",\n \"module\": \"reach\",\n \"path\": \"reach.templates.0.subject\",\n \"description\": \"邮件主题模板\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"ANTHROPIC_API_KEY\",\n \"module\": \"runtime\",\n \"path\": \"ANTHROPIC_API_KEY\",\n \"description\": \"ANTHROPIC 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"ANTHROPIC_BASE_URL\",\n \"module\": \"runtime\",\n \"path\": \"ANTHROPIC_BASE_URL\",\n \"description\": \"厂商 SDK 服务基础地址回退\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL\"\n },\n {\n \"name\": \"ARK_API_KEY\",\n \"module\": \"runtime\",\n \"path\": \"ARK_API_KEY\",\n \"description\": \"ARK 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"BASE_URL\",\n \"module\": \"runtime\",\n \"path\": \"BASE_URL\",\n \"description\": \"Playwright 验收访问的前端基础地址\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL;按项目 Playwright 配置选择默认端口\"\n },\n {\n \"name\": \"CAPACITOR_SERVER_URL\",\n \"module\": \"runtime\",\n \"path\": \"CAPACITOR_SERVER_URL\",\n \"description\": \"Capacitor 开发时的前端热加载地址\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL;发布原生包时不设置\"\n },\n {\n \"name\": \"CI\",\n \"module\": \"runtime\",\n \"path\": \"CI\",\n \"description\": \"持续集成环境标记\",\n \"value\": \"\",\n \"constraint\": \"true 或 1 启用;未设置为本地运行\"\n },\n {\n \"name\": \"COMPUTE_TYPE\",\n \"module\": \"runtime\",\n \"path\": \"COMPUTE_TYPE\",\n \"description\": \"faster-whisper 计算精度\",\n \"value\": \"auto\",\n \"constraint\": \"auto | default | float32 | float16 | bfloat16 | int16 | int8 | int8_float32 | int8_float16 | int8_bfloat16;须受当前设备支持\"\n },\n {\n \"name\": \"DASHSCOPE_API_KEY\",\n \"module\": \"runtime\",\n \"path\": \"DASHSCOPE_API_KEY\",\n \"description\": \"DASHSCOPE 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"DASHSCOPE_WORKSPACE_ID\",\n \"module\": \"runtime\",\n \"path\": \"DASHSCOPE_WORKSPACE_ID\",\n \"description\": \"DashScope 厂商工作空间标识\",\n \"value\": \"\",\n \"constraint\": \"字符串,由厂商控制台提供\"\n },\n {\n \"name\": \"DEVICE\",\n \"module\": \"runtime\",\n \"path\": \"DEVICE\",\n \"description\": \"本地语音模型运行设备\",\n \"value\": \"auto\",\n \"constraint\": \"auto | cpu | cuda;auto 按 CUDA 可用性选择\"\n },\n {\n \"name\": \"E2E_ADMIN_PASSWORD\",\n \"module\": \"runtime\",\n \"path\": \"E2E_ADMIN_PASSWORD\",\n \"description\": \"端到端测试创建的管理员密码\",\n \"value\": \"\",\n \"constraint\": \"满足 IAM 密码策略;仅测试进程使用\"\n },\n {\n \"name\": \"E2E_PORT\",\n \"module\": \"runtime\",\n \"path\": \"E2E_PORT\",\n \"description\": \"端到端测试 Web 服务监听端口\",\n \"value\": \"\",\n \"constraint\": \"整数 1–65535\"\n },\n {\n \"name\": \"GEMINI_API_KEY\",\n \"module\": \"runtime\",\n \"path\": \"GEMINI_API_KEY\",\n \"description\": \"GEMINI 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"GITHUB_API_URL\",\n \"module\": \"runtime\",\n \"path\": \"GITHUB_API_URL\",\n \"description\": \"发布检查使用的 GitHub API 基础地址\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL;默认 https://api.github.com\"\n },\n {\n \"name\": \"GITHUB_OUTPUT\",\n \"module\": \"runtime\",\n \"path\": \"GITHUB_OUTPUT\",\n \"description\": \"GitHub Actions 步骤输出文件\",\n \"value\": \"\",\n \"constraint\": \"由工作流自动注入的可写文件路径\"\n },\n {\n \"name\": \"GITHUB_REF_NAME\",\n \"module\": \"runtime\",\n \"path\": \"GITHUB_REF_NAME\",\n \"description\": \"发布检查使用的 Git 分支或标签名\",\n \"value\": \"\",\n \"constraint\": \"由 GitHub Actions 注入的引用名称\"\n },\n {\n \"name\": \"GITHUB_REPOSITORY\",\n \"module\": \"runtime\",\n \"path\": \"GITHUB_REPOSITORY\",\n \"description\": \"发布检查使用的 GitHub 仓库\",\n \"value\": \"\",\n \"constraint\": \"owner/repo 格式\"\n },\n {\n \"name\": \"GITHUB_TOKEN\",\n \"module\": \"runtime\",\n \"path\": \"GITHUB_TOKEN\",\n \"description\": \"发布检查调用 GitHub API 的认证令牌\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串;权限由目标仓库与工作流决定\"\n },\n {\n \"name\": \"HF_ENDPOINT\",\n \"module\": \"runtime\",\n \"path\": \"HF_ENDPOINT\",\n \"description\": \"Hugging Face 下载服务基础地址\",\n \"value\": \"https://hf-mirror.com\",\n \"constraint\": \"有效 HTTP(S) URL;本地模型下载回退默认 https://hf-mirror.com\"\n },\n {\n \"name\": \"HF_HUB_OFFLINE\",\n \"module\": \"runtime\",\n \"path\": \"HF_HUB_OFFLINE\",\n \"description\": \"本地模型是否只使用已存在的离线权重\",\n \"value\": \"\",\n \"constraint\": \"1 启用;其余值关闭;离线权重缺失时启动失败\"\n },\n {\n \"name\": \"HOST\",\n \"module\": \"runtime\",\n \"path\": \"HOST\",\n \"description\": \"部署平台 HTTP 监听地址,覆盖 serv/kit server.host\",\n \"value\": \"0.0.0.0\",\n \"constraint\": \"主机名或 IP\"\n },\n {\n \"name\": \"IAM_FIXTURE_LDAP\",\n \"module\": \"runtime\",\n \"path\": \"IAM_FIXTURE_LDAP\",\n \"description\": \"通知测试服务是否启用 LDAP fixture\",\n \"value\": \"\",\n \"constraint\": \"0 关闭;1 启用\"\n },\n {\n \"name\": \"IAM_NOTIFICATION_PORT\",\n \"module\": \"runtime\",\n \"path\": \"IAM_NOTIFICATION_PORT\",\n \"description\": \"通知测试服务监听端口\",\n \"value\": \"\",\n \"constraint\": \"整数 1–65535\"\n },\n {\n \"name\": \"IAM_NOTIFICATION_URL\",\n \"module\": \"runtime\",\n \"path\": \"IAM_NOTIFICATION_URL\",\n \"description\": \"确定性通知测试服务地址\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL\"\n },\n {\n \"name\": \"LANG\",\n \"module\": \"runtime\",\n \"path\": \"LANG\",\n \"description\": \"子进程默认语言与字符集\",\n \"value\": \"\",\n \"constraint\": \"操作系统支持的 locale,例如 en_US.UTF-8\"\n },\n {\n \"name\": \"LC_ALL\",\n \"module\": \"runtime\",\n \"path\": \"LC_ALL\",\n \"description\": \"子进程所有 locale 分类的覆盖值\",\n \"value\": \"\",\n \"constraint\": \"操作系统支持的 locale,例如 en_US.UTF-8\"\n },\n {\n \"name\": \"LEAK_WORDS\",\n \"module\": \"runtime\",\n \"path\": \"LEAK_WORDS\",\n \"description\": \"提交检查禁止出现的词语\",\n \"value\": \"\",\n \"constraint\": \"JSON 字符串数组,或逗号/换行分隔的词语列表\"\n },\n {\n \"name\": \"MIMO_API_KEY\",\n \"module\": \"runtime\",\n \"path\": \"MIMO_API_KEY\",\n \"description\": \"MIMO 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"MODEL_PATH\",\n \"module\": \"runtime\",\n \"path\": \"MODEL_PATH\",\n \"description\": \"模型容器内的权重目录或模型仓库 ID\",\n \"value\": \"/opt/models\",\n \"constraint\": \"可读取的模型路径或有效仓库 ID;默认 /opt/models\"\n },\n {\n \"name\": \"NODE_ENV\",\n \"module\": \"runtime\",\n \"path\": \"NODE_ENV\",\n \"description\": \"Node/Vite 运行模式\",\n \"value\": \"\",\n \"constraint\": \"development | test | production\"\n },\n {\n \"name\": \"OPENAI_API_KEY\",\n \"module\": \"runtime\",\n \"path\": \"OPENAI_API_KEY\",\n \"description\": \"OPENAI 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"OPENAI_BASE_URL\",\n \"module\": \"runtime\",\n \"path\": \"OPENAI_BASE_URL\",\n \"description\": \"厂商 SDK 服务基础地址回退\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL\"\n },\n {\n \"name\": \"PATH\",\n \"module\": \"runtime\",\n \"path\": \"PATH\",\n \"description\": \"操作系统提供的可执行程序搜索路径;CLI 用于定位已安装的 pnpm\",\n \"value\": \"\",\n \"constraint\": \"保留系统原值;由操作系统路径分隔符连接,不要在 .env 中置空或作为应用配置覆盖\"\n },\n {\n \"name\": \"POLLINATIONS_API_KEY\",\n \"module\": \"runtime\",\n \"path\": \"POLLINATIONS_API_KEY\",\n \"description\": \"POLLINATIONS 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"PORT\",\n \"module\": \"runtime\",\n \"path\": \"PORT\",\n \"description\": \"部署平台 HTTP 监听端口,覆盖 serv/kit server.port\",\n \"value\": \"8000\",\n \"constraint\": \"整数 1–65535\"\n },\n {\n \"name\": \"PUBLIC_API_BASE\",\n \"module\": \"runtime\",\n \"path\": \"PUBLIC_API_BASE\",\n \"description\": \"浏览器/原生客户端 API 地址,不能含凭据\",\n \"value\": \"-\",\n \"constraint\": \"有效 HTTP(S) URL;是否含 /api/v1 以对应客户端为准\"\n },\n {\n \"name\": \"PUBLIC_API_BASE_BASE64\",\n \"module\": \"runtime\",\n \"path\": \"PUBLIC_API_BASE_BASE64\",\n \"description\": \"容器生成前端运行时配置时使用的 API 地址编码\",\n \"value\": \"\",\n \"constraint\": \"PUBLIC_API_BASE 的 Base64 编码,不含凭据\"\n },\n {\n \"name\": \"PUBLIC_API_KEY_EXCHANGE_PATH\",\n \"module\": \"runtime\",\n \"path\": \"PUBLIC_API_KEY_EXCHANGE_PATH\",\n \"description\": \"公开密钥交换端点,须与服务端一致\",\n \"value\": \"\",\n \"constraint\": \"以 / 开头的路径\"\n },\n {\n \"name\": \"PUBLIC_API_TRANSPORT\",\n \"module\": \"runtime\",\n \"path\": \"PUBLIC_API_TRANSPORT\",\n \"description\": \"客户端传输加密开关,须与服务端一致\",\n \"value\": \"\",\n \"constraint\": \"on | off\"\n },\n {\n \"name\": \"PYTHONIOENCODING\",\n \"module\": \"runtime\",\n \"path\": \"PYTHONIOENCODING\",\n \"description\": \"本地 Python 模型进程标准输入输出编码\",\n \"value\": \"\",\n \"constraint\": \"Python 支持的编码名,通常 utf-8\"\n },\n {\n \"name\": \"SERVED_MODEL_NAME\",\n \"module\": \"runtime\",\n \"path\": \"SERVED_MODEL_NAME\",\n \"description\": \"vLLM 对外报告的模型名\",\n \"value\": \"qwen3-4b\",\n \"constraint\": \"非空字符串;客户端请求 model 须与之匹配\"\n },\n {\n \"name\": \"SERVICE_BASE_URL\",\n \"module\": \"runtime\",\n \"path\": \"SERVICE_BASE_URL\",\n \"description\": \"Fullstack 开发代理访问服务端的地址\",\n \"value\": \"\",\n \"constraint\": \"有效 HTTP(S) URL\"\n },\n {\n \"name\": \"TAURI_DEV_HOST\",\n \"module\": \"runtime\",\n \"path\": \"TAURI_DEV_HOST\",\n \"description\": \"Tauri 开发时 HMR 可访问的宿主机地址\",\n \"value\": \"\",\n \"constraint\": \"主机名或 IP,由 Tauri 开发工具注入\"\n },\n {\n \"name\": \"VITE_ADAPTER\",\n \"module\": \"runtime\",\n \"path\": \"VITE_ADAPTER\",\n \"description\": \"SvelteKit 构建适配器\",\n \"value\": \"\",\n \"constraint\": \"node | static;未识别的值回退 node\"\n },\n {\n \"name\": \"VITEST\",\n \"module\": \"runtime\",\n \"path\": \"VITEST\",\n \"description\": \"Vitest 自动注入的测试运行标记\",\n \"value\": \"\",\n \"constraint\": \"true 表示运行测试;通常无需手动设置\"\n },\n {\n \"name\": \"VLLM_EXTRA_ARGS\",\n \"module\": \"runtime\",\n \"path\": \"VLLM_EXTRA_ARGS\",\n \"description\": \"追加到 vLLM 服务的启动参数\",\n \"value\": \"\",\n \"constraint\": \"按 shell 参数语法拆分的字符串;参数由当前 vLLM 版本校验\"\n },\n {\n \"name\": \"VLLM_USE_MODELSCOPE\",\n \"module\": \"runtime\",\n \"path\": \"VLLM_USE_MODELSCOPE\",\n \"description\": \"vLLM 是否通过 ModelScope 下载权重\",\n \"value\": \"\",\n \"constraint\": \"1 | true | yes 启用(忽略大小写);其余值关闭\"\n },\n {\n \"name\": \"VOLC_ACCESS_KEY\",\n \"module\": \"runtime\",\n \"path\": \"VOLC_ACCESS_KEY\",\n \"description\": \"VOLC 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"VOLC_API_KEY\",\n \"module\": \"runtime\",\n \"path\": \"VOLC_API_KEY\",\n \"description\": \"VOLC 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"VOLC_APP_KEY\",\n \"module\": \"runtime\",\n \"path\": \"VOLC_APP_KEY\",\n \"description\": \"VOLC 厂商凭据回退;优先在模型项配置 apiKey\",\n \"value\": \"\",\n \"constraint\": \"敏感字符串,启用对应厂商时注入\"\n },\n {\n \"name\": \"HAI_SCHEDULER\",\n \"module\": \"scheduler\",\n \"path\": \"scheduler\",\n \"description\": \"scheduler. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_SCHEDULER_ENABLEDB\",\n \"module\": \"scheduler\",\n \"path\": \"scheduler.enableDb\",\n \"description\": \"是否启用数据库记录(默认 true,需要\",\n \"value\": \"true\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_SCHEDULER_LOCKEXPIREMS\",\n \"module\": \"scheduler\",\n \"path\": \"scheduler.lockExpireMs\",\n \"description\": \"分布式锁过期时间,单位毫秒(默认 300000,即 5 分钟)\",\n \"value\": \"300000\",\n \"constraint\": \"整数;>= 10000;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_SCHEDULER_MAXLOGS\",\n \"module\": \"scheduler\",\n \"path\": \"scheduler.maxLogs\",\n \"description\": \"执行日志最大保留条数(启用 DB 时生效)\",\n \"value\": \"\",\n \"constraint\": \"整数;>= 1;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_SCHEDULER_NODEID\",\n \"module\": \"scheduler\",\n \"path\": \"scheduler.nodeId\",\n \"description\": \"节点标识(默认自动生成 UUID,多节点部署时建议设置固定标识以便审计)\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_SCHEDULER_RETENTIONDAYS\",\n \"module\": \"scheduler\",\n \"path\": \"scheduler.retentionDays\",\n \"description\": \"执行日志保留天数(启用 DB 时生效)\",\n \"value\": \"\",\n \"constraint\": \"整数;>= 1;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_SCHEDULER_TICKINTERVAL\",\n \"module\": \"scheduler\",\n \"path\": \"scheduler.tickInterval\",\n \"description\": \"调度检查间隔,单位毫秒(默认 1000,即每秒检查一次)\",\n \"value\": \"1000\",\n \"constraint\": \"整数;>= 100;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_SERV\",\n \"module\": \"serv\",\n \"path\": \"serv\",\n \"description\": \"serv. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_SERV_CORS\",\n \"module\": \"serv\",\n \"path\": \"serv.cors\",\n \"description\": \"跨域访问的来源、请求头与凭据策略\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ALLOWEDHEADERS\",\n \"module\": \"serv\",\n \"path\": \"serv.cors.allowedHeaders\",\n \"description\": \"CORS 允许客户端发送的请求头\",\n \"value\": \"[\\\"Authorization\\\",\\\"Content-Type\\\",\\\"X-Requested-With\\\"]\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ALLOWEDHEADERS_0\",\n \"module\": \"serv\",\n \"path\": \"serv.cors.allowedHeaders.0\",\n \"description\": \"CORS 允许客户端发送的请求头\",\n \"value\": \"Authorization\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ALLOWEDHEADERS_1\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_CORS_ALLOWEDHEADERS_1\",\n \"description\": \"CORS 允许客户端发送的请求头\",\n \"value\": \"Content-Type\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ALLOWEDHEADERS_2\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_CORS_ALLOWEDHEADERS_2\",\n \"description\": \"CORS 允许客户端发送的请求头\",\n \"value\": \"X-Client-Id\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ALLOWEDHEADERS_3\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_CORS_ALLOWEDHEADERS_3\",\n \"description\": \"CORS 允许客户端发送的请求头\",\n \"value\": \"X-Encrypted\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ALLOWEDHEADERS_4\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_CORS_ALLOWEDHEADERS_4\",\n \"description\": \"CORS 允许客户端发送的请求头\",\n \"value\": \"X-Hai-Locale\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ALLOWEDHEADERS_5\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_CORS_ALLOWEDHEADERS_5\",\n \"description\": \"CORS 允许客户端发送的请求头\",\n \"value\": \"X-Request-Id\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ALLOWEDHEADERS_6\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_CORS_ALLOWEDHEADERS_6\",\n \"description\": \"CORS 允许客户端发送的请求头\",\n \"value\": \"X-Requested-With\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_CREDENTIALS\",\n \"module\": \"serv\",\n \"path\": \"serv.cors.credentials\",\n \"description\": \"是否允许跨域请求携带凭据\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_SERV_CORS_EXPOSEDHEADERS\",\n \"module\": \"serv\",\n \"path\": \"serv.cors.exposedHeaders\",\n \"description\": \"CORS 允许客户端读取的响应头\",\n \"value\": \"[]\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_SERV_CORS_EXPOSEDHEADERS_0\",\n \"module\": \"serv\",\n \"path\": \"serv.cors.exposedHeaders.0\",\n \"description\": \"CORS 允许客户端读取的响应头\",\n \"value\": \"X-Encrypted\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_EXPOSEDHEADERS_1\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_CORS_EXPOSEDHEADERS_1\",\n \"description\": \"CORS 允许客户端读取的响应头\",\n \"value\": \"X-Request-Id\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_NATIVEORIGINS\",\n \"module\": \"serv\",\n \"path\": \"serv.cors.nativeOrigins\",\n \"description\": \"允许使用原生凭据通道的完整 Origin 列表\",\n \"value\": \"http://localhost,https://tauri.localhost,tauri://localhost,capacitor://localhost\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_CORS_ORIGIN\",\n \"module\": \"serv\",\n \"path\": \"serv.cors.origin\",\n \"description\": \"CORS 允许的 Origin,星号表示任意来源\",\n \"value\": \"*\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP\",\n \"module\": \"serv\",\n \"path\": \"serv.http\",\n \"description\": \"HTTP 基础路径、请求体大小及访问配置\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_APIPREFIX\",\n \"module\": \"serv\",\n \"path\": \"serv.http.apiPrefix\",\n \"description\": \"业务 HTTP API 的基础路径前缀\",\n \"value\": \"/api/v1\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_DOCS\",\n \"module\": \"serv\",\n \"path\": \"serv.http.docs\",\n \"description\": \"HTTP API 文档功能开关或文档访问配置\",\n \"value\": \"false\",\n \"constraint\": \"true | false;JSON 对象;整体覆盖时替换该节点;取值:false\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_DOCS_PATH\",\n \"module\": \"serv\",\n \"path\": \"serv.http.docs.path\",\n \"description\": \"当前 HTTP 功能的端点路径\",\n \"value\": \"/docs\",\n \"constraint\": \"字符串;以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_DOCS_REQUIREAUTH\",\n \"module\": \"serv\",\n \"path\": \"serv.http.docs.requireAuth\",\n \"description\": \"是否要求认证后访问接口文档\",\n \"value\": \"\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_HEALTH\",\n \"module\": \"serv\",\n \"path\": \"serv.http.health\",\n \"description\": \"HTTP 健康检查开关或检查配置\",\n \"value\": \"{\\\"path\\\":\\\"/health\\\",\\\"readyPath\\\":\\\"/ready\\\"}\",\n \"constraint\": \"JSON 对象;true | false;JSON 对象;整体覆盖时替换该节点;取值:false\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_HEALTH_PATH\",\n \"module\": \"serv\",\n \"path\": \"serv.http.health.path\",\n \"description\": \"当前 HTTP 功能的端点路径\",\n \"value\": \"/health\",\n \"constraint\": \"字符串;以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_HEALTH_READYPATH\",\n \"module\": \"serv\",\n \"path\": \"serv.http.health.readyPath\",\n \"description\": \"服务就绪检查的端点路径\",\n \"value\": \"/ready\",\n \"constraint\": \"字符串;以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_OPENAPI\",\n \"module\": \"serv\",\n \"path\": \"serv.http.openapi\",\n \"description\": \"OpenAPI 端点开关或端点配置\",\n \"value\": \"false\",\n \"constraint\": \"true | false;JSON 对象;整体覆盖时替换该节点;取值:false\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_OPENAPI_PATH\",\n \"module\": \"serv\",\n \"path\": \"serv.http.openapi.path\",\n \"description\": \"当前 HTTP 功能的端点路径\",\n \"value\": \"/openapi.json\",\n \"constraint\": \"字符串;以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_RPC\",\n \"module\": \"serv\",\n \"path\": \"serv.http.rpc\",\n \"description\": \"RPC 端点开关或访问配置\",\n \"value\": \"false\",\n \"constraint\": \"true | false;JSON 对象;整体覆盖时替换该节点;取值:false\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_RPC_ACCESS\",\n \"module\": \"serv\",\n \"path\": \"serv.http.rpc.access\",\n \"description\": \"RPC 对外访问策略\",\n \"value\": \"loopback\",\n \"constraint\": \"字符串;取值:loopback | private-network | gateway-only\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_RPC_GATEWAYHEADER\",\n \"module\": \"serv\",\n \"path\": \"serv.http.rpc.gatewayHeader\",\n \"description\": \"受信网关认证请求头名称\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_RPC_GATEWAYSECRET\",\n \"module\": \"serv\",\n \"path\": \"serv.http.rpc.gatewaySecret\",\n \"description\": \"受信网关认证密钥\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_RPC_PREFIX\",\n \"module\": \"serv\",\n \"path\": \"serv.http.rpc.prefix\",\n \"description\": \"RPC 端点的路径前缀\",\n \"value\": \"/rpc\",\n \"constraint\": \"字符串;以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_TRUSTEDPROXIES\",\n \"module\": \"serv\",\n \"path\": \"serv.http.trustedProxies\",\n \"description\": \"可信代理的 IP/CIDR,只有这些代理的转发头会被信任\",\n \"value\": \"[]\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_SERV_HTTP_TRUSTEDPROXIES_0\",\n \"module\": \"serv\",\n \"path\": \"serv.http.trustedProxies.0\",\n \"description\": \"可信代理的 IP/CIDR,只有这些代理的转发头会被信任\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_SERV_SERVER\",\n \"module\": \"serv\",\n \"path\": \"serv.server\",\n \"description\": \"HTTP 服务监听地址与端口\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_SERV_SERVER_HOST\",\n \"module\": \"serv\",\n \"path\": \"serv.server.host\",\n \"description\": \"HTTP 监听主机名或 IP\",\n \"value\": \"127.0.0.1\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_SERV_SERVER_PORT\",\n \"module\": \"serv\",\n \"path\": \"serv.server.port\",\n \"description\": \"HTTP 监听端口\",\n \"value\": \"3000\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT\",\n \"module\": \"serv\",\n \"path\": \"serv.transport\",\n \"description\": \"传输加密开关或密钥协商配置\",\n \"value\": \"false\",\n \"constraint\": \"true | false;JSON 对象;整体覆盖时替换该节点;取值:false\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS\",\n \"module\": \"serv\",\n \"path\": \"serv.transport.excludePaths\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"[]\",\n \"constraint\": \"JSON 数组;索引可按 0、1、2 扩展\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_0\",\n \"module\": \"serv\",\n \"path\": \"serv.transport.excludePaths.0\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"/health\",\n \"constraint\": \"以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_1\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_1\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"/ready\",\n \"constraint\": \"以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_2\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_2\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"/openapi.json\",\n \"constraint\": \"以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_3\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_3\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"/docs\",\n \"constraint\": \"以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_4\",\n \"module\": \"serv\",\n \"path\": \"HAI_SERV_TRANSPORT_EXCLUDEPATHS_4\",\n \"description\": \"不进入传输加密管道的路径\",\n \"value\": \"/_hai/scalar.js\",\n \"constraint\": \"以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT_KEYEXCHANGEPATH\",\n \"module\": \"serv\",\n \"path\": \"serv.transport.keyExchangePath\",\n \"description\": \"客户端与服务端约定的密钥交换端点\",\n \"value\": \"/_hai/key-exchange\",\n \"constraint\": \"字符串;以 / 开头的路径字符串\"\n },\n {\n \"name\": \"HAI_SERV_TRANSPORT_MAXCLIENTS\",\n \"module\": \"serv\",\n \"path\": \"serv.transport.maxClients\",\n \"description\": \"服务端最多保留的客户端传输密钥会话数\",\n \"value\": \"10000\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_STORAGE\",\n \"module\": \"storage\",\n \"path\": \"storage\",\n \"description\": \"storage. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_STORAGE_ACCESSKEYID\",\n \"module\": \"storage\",\n \"path\": \"storage.accessKeyId\",\n \"description\": \"Access Key ID\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_STORAGE_BUCKET\",\n \"module\": \"storage\",\n \"path\": \"storage.bucket\",\n \"description\": \"存储桶名称\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_STORAGE_DIRECTORYMODE\",\n \"module\": \"storage\",\n \"path\": \"storage.directoryMode\",\n \"description\": \"目录创建权限\",\n \"value\": \"493\",\n \"constraint\": \"数字\"\n },\n {\n \"name\": \"HAI_STORAGE_ENDPOINT\",\n \"module\": \"storage\",\n \"path\": \"storage.endpoint\",\n \"description\": \"自定义端点(用于 MinIO、RustFS、阿里云 OSS 等)\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_STORAGE_FILEMODE\",\n \"module\": \"storage\",\n \"path\": \"storage.fileMode\",\n \"description\": \"文件创建权限\",\n \"value\": \"420\",\n \"constraint\": \"数字\"\n },\n {\n \"name\": \"HAI_STORAGE_FORCEPATHSTYLE\",\n \"module\": \"storage\",\n \"path\": \"storage.forcePathStyle\",\n \"description\": \"强制使用路径风格 URL(某些 S3 兼容服务需要)\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_STORAGE_OPERATIONLOG\",\n \"module\": \"storage\",\n \"path\": \"storage.operationLog\",\n \"description\": \"storage 操作日志的读写开关、级别与字段截断规则\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_STORAGE_OPERATIONLOG_LEVEL\",\n \"module\": \"storage\",\n \"path\": \"storage.operationLog.level\",\n \"description\": \"操作日志的输出级别\",\n \"value\": \"debug\",\n \"constraint\": \"字符串;取值:info | debug | trace\"\n },\n {\n \"name\": \"HAI_STORAGE_OPERATIONLOG_MAXLENGTH\",\n \"module\": \"storage\",\n \"path\": \"storage.operationLog.maxLength\",\n \"description\": \"操作日志字段的最大字符数,0 表示不截断\",\n \"value\": \"1000\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_STORAGE_OPERATIONLOG_READ\",\n \"module\": \"storage\",\n \"path\": \"storage.operationLog.read\",\n \"description\": \"是否记录读取操作\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_STORAGE_OPERATIONLOG_WRITE\",\n \"module\": \"storage\",\n \"path\": \"storage.operationLog.write\",\n \"description\": \"是否记录写入操作\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_STORAGE_PREFIX\",\n \"module\": \"storage\",\n \"path\": \"storage.prefix\",\n \"description\": \"路径前缀(所有操作都会加上此前缀)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_STORAGE_PUBLICURL\",\n \"module\": \"storage\",\n \"path\": \"storage.publicUrl\",\n \"description\": \"公开访问基础 URL(用于生成公开 URL)\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_STORAGE_REGION\",\n \"module\": \"storage\",\n \"path\": \"storage.region\",\n \"description\": \"区域\",\n \"value\": \"us-east-1\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_STORAGE_ROOT\",\n \"module\": \"storage\",\n \"path\": \"storage.root\",\n \"description\": \"根目录路径\",\n \"value\": \"./data/uploads\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_STORAGE_SECRETACCESSKEY\",\n \"module\": \"storage\",\n \"path\": \"storage.secretAccessKey\",\n \"description\": \"Secret Access Key\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_STORAGE_TYPE\",\n \"module\": \"storage\",\n \"path\": \"storage.type\",\n \"description\": \"存储类型\",\n \"value\": \"local\",\n \"constraint\": \"字符串;取值:s3 | local\"\n },\n {\n \"name\": \"HAI_VECDB\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb\",\n \"description\": \"vecdb. 配置对象\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_VECDB_APIKEY\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.apiKey\",\n \"description\": \"API Key(可选,连接受保护的 Chroma 服务时使用)\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_VECDB_DATABASE\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.database\",\n \"description\": \"数据库名称\",\n \"value\": \"\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_VECDB_HOST\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.host\",\n \"description\": \"主机(默认 localhost)\",\n \"value\": \"localhost\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_VECDB_INDEXTYPE\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.indexType\",\n \"description\": \"索引类型(默认 hnsw)\",\n \"value\": \"hnsw\",\n \"constraint\": \"字符串;取值:ivfflat | hnsw\"\n },\n {\n \"name\": \"HAI_VECDB_METRIC\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.metric\",\n \"description\": \"距离度量(默认 cosine)\",\n \"value\": \"cosine\",\n \"constraint\": \"字符串;取值:cosine | euclidean | dot\"\n },\n {\n \"name\": \"HAI_VECDB_OPERATIONLOG\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.operationLog\",\n \"description\": \"vecdb 操作日志的读写开关、级别与字段截断规则\",\n \"value\": \"\",\n \"constraint\": \"JSON 对象;整体覆盖时替换该节点\"\n },\n {\n \"name\": \"HAI_VECDB_OPERATIONLOG_LEVEL\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.operationLog.level\",\n \"description\": \"操作日志的输出级别\",\n \"value\": \"debug\",\n \"constraint\": \"字符串;取值:info | debug | trace\"\n },\n {\n \"name\": \"HAI_VECDB_OPERATIONLOG_MAXLENGTH\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.operationLog.maxLength\",\n \"description\": \"操作日志字段的最大字符数,0 表示不截断\",\n \"value\": \"1000\",\n \"constraint\": \"整数;>= 0;<= 9007199254740991\"\n },\n {\n \"name\": \"HAI_VECDB_OPERATIONLOG_READ\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.operationLog.read\",\n \"description\": \"是否记录读取操作\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_VECDB_OPERATIONLOG_WRITE\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.operationLog.write\",\n \"description\": \"是否记录写入操作\",\n \"value\": \"false\",\n \"constraint\": \"true | false\"\n },\n {\n \"name\": \"HAI_VECDB_PASSWORD\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.password\",\n \"description\": \"密码\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_VECDB_PATH\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.path\",\n \"description\": \"本地持久化路径(嵌入式模式:提供且无 url 时自动拉起本地服务)\",\n \"value\": \"./data/vecdb\",\n \"constraint\": \"字符串;最小字符数 1\"\n },\n {\n \"name\": \"HAI_VECDB_PORT\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.port\",\n \"description\": \"端口(默认 8000)\",\n \"value\": \"5432\",\n \"constraint\": \"整数;>= 1;<= 65535\"\n },\n {\n \"name\": \"HAI_VECDB_SERVERCOMMAND\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.serverCommand\",\n \"description\": \"拉起本地服务的可执行命令(默认 'chroma',可指定绝对路径)\",\n \"value\": \"chroma\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_VECDB_STARTUPTIMEOUT\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.startupTimeout\",\n \"description\": \"拉起本地服务的就绪等待超时(毫秒,默认 30000)\",\n \"value\": \"30000\",\n \"constraint\": \"整数;<= 9007199254740991;> 0\"\n },\n {\n \"name\": \"HAI_VECDB_TABLEPREFIX\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.tablePrefix\",\n \"description\": \"表名前缀(默认 'vec_')\",\n \"value\": \"vec_\",\n \"constraint\": \"字符串\"\n },\n {\n \"name\": \"HAI_VECDB_TYPE\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.type\",\n \"description\": \"后端或功能类型,按枚举选择\",\n \"value\": \"lancedb\",\n \"constraint\": \"字符串;取值:lancedb | pgvector | qdrant | chroma\"\n },\n {\n \"name\": \"HAI_VECDB_URL\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.url\",\n \"description\": \"已有 Chroma 服务 URL(提供时直连,不自动拉起进程)\",\n \"value\": \"\",\n \"constraint\": \"字符串;格式 uri\"\n },\n {\n \"name\": \"HAI_VECDB_USER\",\n \"module\": \"vecdb\",\n \"path\": \"vecdb.user\",\n \"description\": \"用户名\",\n \"value\": \"\",\n \"constraint\": \"字符串\"\n }\n]\n","/**\n * 配置模板与环境变量清单共用的转换逻辑。\n * @module cli-config-environment\n */\nimport { isMap, isScalar, isSeq, parseDocument, Scalar } from 'yaml'\nimport catalog from './cli-config-catalog.json' with { type: 'json' }\n\nconst catalogByName = new Map(catalog.map(entry => [entry.name, entry]))\n\n/**\n * 单个环境变量的配置位置、默认值和取值说明。\n * @example\n * ```ts\n * const variable: ConfigEnvironmentVariable = {\n * name: 'HAI_DB_TYPE', path: 'db.type', value: 'sqlite', constraint: 'sqlite | postgresql | mysql',\n * }\n * ```\n */\nexport interface ConfigEnvironmentVariable {\n /** 环境变量名,例如 HAI_DB_TYPE。 */\n name: string\n /** YAML 字段路径;显式别名使用变量名辅助定位。 */\n path: string\n /** 仍包含必要 YAML 引号的非敏感默认值。 */\n value: string\n /** 类型、枚举、范围、单位或条件约束。 */\n constraint: string\n /** 字段用途;优先来自模块配置 Schema 的源码注释。 */\n description?: string\n}\n\n/**\n * 将运行参数改为显式环境引用,保留本地启动默认值和 YAML 注释。\n * 业务正文、表/列名、模型 ID 等结构定义保留在 YAML 中。\n * @param name - 配置名,不含文件名前导下划线\n * @param content - YAML 内容\n * @returns 含环境变量引用的 YAML\n * @example\n * ```ts\n * parameterizeConfig('db', 'type: sqlite\\n') // type: ${HAI_DB_TYPE:sqlite}\n * ```\n */\nexport function parameterizeConfig(name: string, content: string): string {\n const document = parseDocument(content)\n if (document.errors.length > 0)\n throw new Error(`Invalid ${name} configuration template`)\n if (!document.contents || (isScalar(document.contents) && document.contents.value === null))\n return content\n\n function walk(node: unknown, path: string[]): void {\n // 固定业务契约不配置化;正文中的 {code} 等占位符也不能作为环境变量默认值。\n if (['templates', 'supportedLocales', 'id'].includes(path[0]) || path.includes('redact')\n || (name === 'audit' && /^(?:userTable|userIdColumn|userNameColumn)$/.test(path[0] ?? ''))\n || (name === 'iam' && ['ui', 'agreements', 'rbac'].includes(path[0]) && !(path.at(-1) ?? '').endsWith('Url'))\n || (['id', 'name', 'operations'].includes(path.at(-1) ?? '') && path.some(segment => /^\\d+$/.test(segment)))) {\n return\n }\n\n if (isMap(node)) {\n for (const pair of node.items) {\n if (isScalar(pair.key))\n walk(pair.value, [...path, String(pair.key.value)])\n }\n }\n else if (isSeq(node)) {\n node.items.forEach((item, index) => walk(item, [...path, String(index)]))\n }\n else if (isScalar(node) && node.value !== null && node.value !== undefined) {\n const value = String(node.value)\n // 显式厂商凭据名沿用原约定;多行正文和含花括号的业务文本不能嵌入默认值语法。\n if (value.includes('${') || /[\\n\\r}]/.test(value))\n return\n const variable = ['HAI', name, ...path].map(part => part.replace(/[^a-z0-9]+/gi, '_').replace(/^_+|_+$/g, '').toUpperCase()).join('_')\n const parsed = parseDocument(value)\n const fallback = typeof node.value === 'string' && value !== '' && (parsed.errors.length > 0 || !isScalar(parsed.contents) || parsed.contents.value !== value) ? JSON.stringify(value) : value\n node.value = `\\${${variable}:${fallback}}`\n node.type = Scalar.PLAIN\n }\n }\n\n walk(document.contents, [])\n return document.toString({ lineWidth: 0 })\n}\n\n/**\n * 从实际 YAML 引用提取变量清单,避免 .env 与模板的默认值各维护一份。\n * @param name - 配置名\n * @param content - 已转换的 YAML\n * @returns 去重后的变量列表(含注释中的可选凭据)\n * @example\n * ```ts\n * configEnvironmentVariables('db', 'type: ${HAI_DB_TYPE:sqlite}\\n')[0].name // HAI_DB_TYPE\n * ```\n */\nexport function configEnvironmentVariables(name: string, content: string): ConfigEnvironmentVariable[] {\n const variables = new Map<string, ConfigEnvironmentVariable>()\n const locations = new Map<string, string>()\n function locate(node: unknown, path: string[]): void {\n if (isMap(node)) {\n for (const pair of node.items) {\n if (isScalar(pair.key))\n locate(pair.value, [...path, String(pair.key.value)])\n }\n }\n else if (isSeq(node)) {\n node.items.forEach((item, index) => locate(item, [...path, String(index)]))\n }\n else if (isScalar(node) && typeof node.value === 'string') {\n for (const match of node.value.matchAll(/\\$\\{([^}:]+)/g))\n locations.set(match[1], [name, ...path].join('.'))\n }\n }\n locate(parseDocument(content).contents, [])\n for (const match of content.matchAll(/\\$\\{((?:HAI_|PUBLIC_|VITE_|AI_|OPENAI_|GEMINI_|DASHSCOPE_|ARK_|LDAP_)[A-Z0-9_]*)(?::([^}]*))?\\}/g)) {\n const [, variable, value = ''] = match\n variables.set(variable, {\n name: variable,\n path: locations.get(variable) ?? `${name} (${variable},可选块)`,\n value,\n constraint: variableConstraint(variable, value),\n description: catalogByName.get(variable)?.description,\n })\n }\n return [...variables.values()]\n}\n\n/** 根据公开模块 Schema 和基础标量类型描述取值约束。 */\nfunction variableConstraint(name: string, value: string): string {\n const known = catalogByName.get(name)\n if (known)\n return known.constraint\n const enums: Record<string, string> = {\n HAI_CORE_ENV: 'development | test | production | staging',\n HAI_CORE_LOGGING_LEVEL: 'trace | debug | info | warn | error | fatal',\n HAI_CORE_LOGGING_FORMAT: 'json | pretty',\n HAI_DB_TYPE: 'sqlite | postgresql | mysql',\n HAI_CACHE_TYPE: 'memory | redis',\n HAI_STORAGE_TYPE: 'local | s3',\n HAI_VECDB_TYPE: 'lancedb | pgvector | qdrant | chroma',\n HAI_AI_LLM_API: 'chat | responses | anthropic',\n HAI_DB_SSL: 'false | true | require | prefer | allow | disable;或 TLS 对象',\n HAI_IAM_PASSWORD_MINLENGTH: '整数 >= 1,且不大于 maxLength',\n HAI_IAM_PASSWORD_MAXLENGTH: '整数 1–256,且不小于 minLength',\n HAI_IAM_PASSWORD_EXPIRATIONDAYS: '整数 >= 0,单位天;0 表示不过期',\n HAI_IAM_SESSION_MAXAGE: '整数 >= 60,单位秒',\n HAI_IAM_SESSION_REFRESHTOKENMAXAGE: '整数 >= 3600,单位秒',\n HAI_IAM_SECURITY_MAXLOGINATTEMPTS: '整数 >= 1',\n HAI_IAM_SECURITY_LOCKOUTDURATION: '整数 >= 60,单位秒',\n HAI_IAM_OTP_LENGTH: '整数 4–8',\n HAI_IAM_OTP_EXPIRESIN: '整数 >= 60,单位秒',\n HAI_IAM_OTP_MAXATTEMPTS: '整数 >= 1',\n HAI_IAM_OTP_RESENDINTERVAL: '整数 >= 30,单位秒',\n HAI_IAM_PASSWORDRESET_MODE: 'email | phone',\n HAI_IAM_PASSWORDRESET_TOKENEXPIRESIN: '整数 >= 300,单位秒',\n HAI_IAM_PASSWORDRESET_MAXATTEMPTS: '整数 >= 1',\n }\n if (enums[name])\n return enums[name]\n if (value === 'true' || value === 'false')\n return 'true | false'\n if (/(?:PASSWORD|SECRET|TOKEN|API_?KEY|ACCESS_?KEY|PRIVATEKEY|BINDPASSWORD|_PASS$)(?:_|$)/.test(name))\n return '敏感字符串;启用对应 Provider 时必须注入,禁止提交真实值'\n if (/(?:^|_)PORT$/.test(name))\n return '整数 1–65535'\n if (name.endsWith('TEMPERATURE'))\n return '数字 0–2'\n if (/^HAI_AI_.*(?:TIMEOUT|MAXTOKENS|CACHE_TTL)$/.test(name))\n return name.endsWith('MAXTOKENS') ? '数字 > 0,单位 token' : '数字 > 0,单位毫秒'\n if (name === 'HAI_CACHE_DB')\n return '整数 0–15'\n if (name === 'HAI_DB_DATABASE')\n return 'SQLite 文件路径或 :memory:;PostgreSQL/MySQL 数据库名'\n if (/(?:BASEURL|ENDPOINT|RESETURL|_URL)$/.test(name))\n return '启用时填写有效 URL;协议由对应 Provider 校验'\n if (/^-?\\d+(?:\\.\\d+)?$/.test(value))\n return '数字;单位与上下界见对应模块 Schema 和 YAML 字段注释'\n return '字符串;枚举、格式及必填条件由对应模块 Schema 校验'\n}\n\n/**\n * 将变量列表序列化为可直接复制的 dotenv 配置及逐项说明。\n * @param variables - 从 YAML 提取的变量\n * @returns dotenv 内容\n * @example\n * ```ts\n * renderEnvironment(configEnvironmentVariables('db', parameterizeConfig('db', 'type: sqlite\\n')))\n * ```\n */\nexport function renderEnvironment(variables: ConfigEnvironmentVariable[]): string {\n return variables.map((variable) => {\n // 单引号保留 #、空格与双引号;含单引号时改用双引号并转义。\n const value = variable.value.includes('\\'')\n ? JSON.stringify(variable.value)\n : `'${variable.value}'`\n return `# ${variable.path}${variable.description ? ` — ${variable.description}` : ''}\\n# 约束:${variable.constraint}\\n${variable.name}=${value}`\n }).join('\\n\\n')\n}\n\n/**\n * 获取模块所有可配置变量的说明;未声明在 YAML 中的字段应先启用对应路径。\n * @param module - 配置名,例如 db\n * @returns 从公开 Schema 生成的变量清单\n * @example moduleEnvironmentVariables('db').find(variable => variable.name === 'HAI_DB_TYPE')\n */\nexport function moduleEnvironmentVariables(module: string): ConfigEnvironmentVariable[] {\n return catalog.filter(entry => entry.module === module)\n}\n\n/**\n * 提取生成源码直接使用的环境入口,复用统一清单中的用途与约束。\n * @param content - 生成后的 Vite、Playwright 或运行时源码\n * @returns 已知入口的去重清单,供环境示例的可选部分使用\n * @example runtimeEnvironmentVariables('const port = process.env.PORT')[0].name // PORT\n */\nexport function runtimeEnvironmentVariables(content: string): ConfigEnvironmentVariable[] {\n const variables = new Map<string, ConfigEnvironmentVariable>()\n for (const match of content.matchAll(/(?:process\\.env|import\\.meta\\.env)(?:\\?\\.)?\\.?(?:([A-Z][A-Z0-9_]+)|\\[['\"]([A-Z][A-Z0-9_]+)['\"]\\])|\\$\\{((?:HAI_|PUBLIC_|VITE_)[A-Z0-9_]+)(?::[^}]*)?\\}/g)) {\n const name = match[1] ?? match[2] ?? match[3]\n if (match[0].startsWith('import.meta.env') && ['SSR', 'MODE', 'DEV', 'PROD', 'BASE_URL'].includes(name))\n continue\n const variable = catalogByName.get(name)\n if (variable)\n variables.set(name, variable)\n }\n return [...variables.values()]\n}\n","/**\n * @h-ai/cli — 配置文件模板\n *\n * 为各模块生成默认配置及按需取消注释的选项;配置字段以模块 Schema 为准。\n * @module cli-config-templates\n */\n\nimport type { AiModuleConfig, CacheModuleConfig, CoreModuleConfig, DbModuleConfig, FeatureId, IamModuleConfig, ModuleConfigs, StorageModuleConfig } from '../cli-types.js'\nimport { stringify } from 'yaml'\nimport { configEnvironmentVariables, moduleEnvironmentVariables, parameterizeConfig, renderEnvironment } from './cli-config-environment.js'\n\n/**\n * 生成模块配置文件内容\n *\n * @param moduleKey - 拥有配置 Schema 的模块标识\n * @param configs - 用户自定义配置值\n * @returns YAML 格式的配置内容\n */\nexport function generateConfigFile(moduleKey: string, configs?: ModuleConfigs): string {\n return parameterizeConfig(moduleKey, generateLiteralConfigFile(moduleKey, configs))\n}\n\nfunction generateLiteralConfigFile(moduleKey: string, configs?: ModuleConfigs): string {\n switch (moduleKey) {\n case 'core':\n return generateCoreConfig(configs?.core)\n case 'serv':\n return generateServConfig()\n case 'db':\n return generateDbConfig(configs?.db)\n case 'cache':\n return generateCacheConfig(configs?.cache)\n case 'iam':\n return generateIamConfig(configs?.iam)\n case 'storage':\n return generateStorageConfig(configs?.storage)\n case 'ai':\n return generateAiConfig(configs?.ai)\n case 'deploy':\n return generateDeployConfig()\n case 'vecdb':\n return generateVecdbConfig()\n case 'reach':\n return generateReachConfig()\n case 'scheduler':\n return generateSchedulerConfig()\n case 'audit':\n return generateAuditConfig()\n case 'payment':\n return generatePaymentConfig()\n default:\n return `# ${moduleKey} 配置\\n`\n }\n}\n\nfunction generateCoreConfig(cfg?: CoreModuleConfig): string {\n const name = cfg?.name ?? 'my-app'\n const locale = cfg?.defaultLocale ?? 'zh-CN'\n\n return `# =============================================================================\n# 应用配置\n# =============================================================================\n\n${stringify({ name }).trim()}\nversion: 0.1.0\nenv: development\ndebug: false\n\nlogging:\n level: info\n format: json\n # context:\n # service: api\n redact:\n - password\n - token\n - secret\n\ndefaultLocale: ${locale}\n# 短 ID 生成选项;语言列表在前端 project.inlang/settings.json 中维护。\n# id:\n# prefix: app_\n# length: 21\n`\n}\n\nfunction generateServConfig(): string {\n return `# =============================================================================\n# Service / HTTP 入口配置\n# =============================================================================\n\nserver:\n host: 127.0.0.1\n port: 3000\n\nhttp:\n apiPrefix: /api/v1\n openapi:\n path: /openapi.json\n docs:\n path: /docs\n # requireAuth: true\n health:\n path: /health\n readyPath: /ready\n rpc: false\n # 启用内部 RPC 时用对象替换 false,gateway-only 必须配置网关密钥。\n # rpc:\n # prefix: /api/rpc\n # access: gateway-only # loopback | private-network | gateway-only\n # gatewayHeader: X-Gateway-Key\n # gatewaySecret: \\${HAI_SERV_HTTP_RPC_GATEWAYSECRET}\n\n# 按需开启跨域访问,生产环境填写明确的 Origin。\n# cors:\n# origin: https://app.example.com\n# nativeOrigins: capacitor://localhost,tauri://localhost\n# allowedHeaders: [Authorization, Content-Type, X-Request-Id]\n# exposedHeaders: [X-Request-Id]\n# credentials: true\n\n# 开发期默认关闭 transport;启用 @h-ai/crypto 后可按需改为对象配置\ntransport: false\n# transport:\n# keyExchangePath: /_hai/key-exchange\n# excludePaths: [/health, /ready]\n# maxClients: 10000\n`\n}\n\nfunction generateDbConfig(cfg?: DbModuleConfig): string {\n const dbType = cfg?.type ?? 'sqlite'\n const database = cfg?.database ?? (dbType === 'sqlite' ? './data/app.db' : 'hai')\n const host = cfg?.host ?? 'localhost'\n const port = cfg?.port ?? (dbType === 'mysql' ? 3306 : 5432)\n\n const user = dbType === 'mysql' ? 'root' : 'postgres'\n const connection = stringify({ host, port, user, password: '' }).trim()\n const networkOptions = `# url: \\${HAI_DB_URL} # 可用连接串替代 host/port/user/password\n# ssl: false # false | true | require | prefer | allow | disable,或 TLS 对象\n# pool:\n# min: 1\n# max: 10\n# idleTimeout: 30000\n# acquireTimeout: 10000\n# MySQL 专用;PostgreSQL 无需此块。\n# mysql:\n# charset: utf8mb4\n# timezone: '+08:00'`\n\n return `# =============================================================================\n# 数据库配置\n# =============================================================================\n\n# 数据库类型: sqlite | postgresql | mysql\ntype: ${dbType}\n\n# SQLite 使用文件路径,PostgreSQL/MySQL 使用数据库名称。\n${stringify({ database }).trim()}\n\n${connection}\nurl: \\${HAI_DB_URL:}\nssl: \\${HAI_DB_SSL:false}\n${networkOptions}\n\n# SQL 日志按需开启;maxLength 限制 SQL / 参数输出长度。\n# operationLog:\n# read: false\n# write: false\n# maxLength: 1000\n# level: debug # trace | debug | info\n`\n}\n\nfunction generateCacheConfig(cfg?: CacheModuleConfig): string {\n const cacheType = cfg?.type ?? 'memory'\n const host = cfg?.host ?? 'localhost'\n const port = cfg?.port ?? 6379\n const connection = stringify({ host, port, password: '', keyPrefix: 'hai:' }).trim()\n\n return `# =============================================================================\n# 缓存配置\n# =============================================================================\n\n# 缓存类型: memory | redis\ntype: ${cacheType}\n\n# Redis 配置;memory 时不生效;跨环境切换 type 后自动使用连接项。\n${connection}\nurl: ''\ndb: 0\nconnectTimeout: 10000\ncommandTimeout: 5000\ntls: false\nmaxRetries: 3\nretryDelay: 50\nreadOnly: false\n# 集群与 Sentinel 二选一;普通 Redis 不需要这两块。\n# cluster:\n# - host: redis-1.internal\n# port: 6379\n# - host: redis-2.internal\n# port: 6379\n# sentinel:\n# sentinels:\n# - host: sentinel.internal\n# port: 26379\n# name: mymaster\n`\n}\n\nfunction generateIamConfig(cfg?: IamModuleConfig): string {\n const loginPassword = cfg?.loginPassword ?? true\n const loginOtp = cfg?.loginOtp ?? false\n\n return `# =============================================================================\n# IAM 配置\n# =============================================================================\n\n# 登录配置\nlogin:\n password: ${loginPassword}\n otp: ${loginOtp}\n ldap: false\n apikey: false\n\n# 注册与登录安全\nregister:\n enabled: true\n defaultEnabled: true\nsecurity:\n maxLoginAttempts: 5\n lockoutDuration: 900\n\n# LDAP 可选:安装 ldapts 后开启 login.ldap;也可在 iam.init 中注入 ldapClientFactory。\n# ldap:\n# url: ldaps://ldap.example.com:636\n# bindDn: cn=service,dc=example,dc=com\n# bindPassword: \\${HAI_IAM_LDAP_BINDPASSWORD}\n# searchBase: ou=users,dc=example,dc=com\n# searchFilter: '(uid={{username}})'\n# usernameAttribute: uid\n# emailAttribute: mail\n# displayNameAttribute: cn\n# useTls: false # ldap:// 连接可开启 STARTTLS;ldaps:// 已使用 TLS\n# connectTimeout: 5000\n# API Key 登录可选;密钥管理入口由应用按权限接入。\n# apikey:\n# maxKeysPerUser: 10\n# defaultExpirationDays: 0 # 0 表示不限制有效期\n# prefix: hai_\n# OTP 需启用 login.otp,并选择 Reach 标准模板或自定义发送回调。\n${(loginOtp ? '' : '# 保留默认策略入口,单独切换 login.otp 即可启用验证码登录。\\notp: {}\\n# 定制策略时用下方配置块替换空对象,或通过 HAI_IAM_OTP 整体覆盖。\\n') + `otp:\n email: true\n sms: true\n length: 6\n expiresIn: 300\n maxAttempts: 3\n resendInterval: 60`.split('\\n').map(line => loginOtp ? line : `# ${line}`).join('\\n')}\npasswordReset:\n enabled: true\n mode: email # phone 使用 password_reset_sms 模板\n tokenExpiresIn: 3600\n maxAttempts: 3\n # resetUrl: https://example.com/auth/reset-password\nagreements:\n showOnRegister: true\n showOnLogin: false\n # 用 | 配置 Markdown 正文;同主题同时提供 URL 时优先显示正文。\n userAgreementMarkdown: |\n # 用户协议示例\n\n 请妥善保管账户凭据,并按应用提供的功能使用服务。\n privacyPolicyMarkdown: |\n # 隐私政策示例\n\n 注册资料用于账户管理,会话信息用于身份认证。\n # userAgreementUrl: https://example.com/terms\n # privacyPolicyUrl: https://example.com/privacy\nui:\n variant: card\n # title: Account center\n # subtitle: Welcome back\n # brandTitle: Your application\n # brandText: Sign in securely\n # logoUrl: /logo.svg\n # illustrationUrl: /auth-illustration.svg\n\n# 密码策略\npassword:\n minLength: 8\n maxLength: 128\n requireUppercase: false\n requireLowercase: false\n requireNumber: false\n requireSpecialChar: false\n expirationDays: 0 # 0 表示不限制密码有效期\n\n# 会话配置\nsession:\n maxAge: 86400 # 会话超时(秒),默认 24 小时\n sliding: true # 滑动窗口(每次请求刷新过期时间)\n singleDevice: false # 单设备登录\n refreshTokenMaxAge: 604800 # refreshToken 过期(秒),默认 7 天\n\n# RBAC 配置\nrbac:\n enabled: true\n superAdminRole: super_admin\n defaultRole: user\n\n# 是否自动创建默认数据\nseedDefaultData: true\n`\n}\n\nfunction generateStorageConfig(cfg?: StorageModuleConfig): string {\n const type = cfg?.type ?? 'local'\n const local = `${stringify({ root: cfg?.localPath ?? './data/uploads' }).trim()}\n# directoryMode: 493 # 0o755\n# fileMode: 420 # 0o644`\n const s3 = `bucket: ''\nregion: us-east-1\naccessKeyId: ''\nsecretAccessKey: ''\n# endpoint: https://s3.amazonaws.com\n# forcePathStyle: false\n# prefix: ''\n# publicUrl: https://cdn.example.com`\n return `# 存储配置;HAI_STORAGE 可整体替换连接配置。\ntype: ${type}\n${local}\n${s3}\n\n# type 选择 Provider;未选分支字段由模块 Schema 忽略。\n# endpoint / publicUrl 为可选 URL,启用时取消对应字段注释并通过环境变量提供。\n\n# operationLog:\n# read: false\n# write: false\n# maxLength: 1000\n# level: debug # trace | debug | info\n`\n}\n\nfunction generateAiConfig(cfg?: AiModuleConfig): string {\n const model = cfg?.model ?? 'gpt-4o-mini'\n const api = cfg?.defaultProvider === 'anthropic' ? 'anthropic' : 'chat'\n return `# =============================================================================\n# AI 配置\n# =============================================================================\n\n# LLM 配置(必填)\nllm:\n # API Key(约定环境变量 HAI_AI_LLM_APIKEY 优先)\n apiKey: ''\n # Base URL(约定环境变量 HAI_AI_LLM_BASEURL 优先)\n # baseUrl: https://api.openai.com/v1\n # 默认模型\n${stringify({ model }).trim().split('\\n').map(line => ` ${line}`).join('\\n')}\n api: ${api} # chat | responses | anthropic\n # 全局最大 Token 数(默认 4096)\n # maxTokens: 4096\n # 采样温度(0-2,默认 0.7)\n # temperature: 0.7\n # 请求超时(毫秒,默认 60000)\n # timeout: 60000\n # tempModelCacheTtl: 600000\n\n # 多模型配置(可选,用于场景路由)\n # models:\n # - id: fast\n # model: gpt-4o-mini\n # api: chat\n # apiKey: ''\n # baseUrl: https://api.openai.com/v1\n # maxTokens: 4096\n # temperature: 0.7\n # timeout: 60000\n # - id: smart\n # model: gpt-4o\n # apiKey: ''\n\n # 场景模型映射(可选)\n # scenarios:\n # default: fast\n # chat: fast\n # reasoning: smart\n # plan: smart\n # execute: fast\n # extraction: fast\n # summary: fast\n # embedding: embedding\n # rerank: rerank\n # ocr: vision\n # fast: fast\n # embedding / rerank / vision 须在 models 中声明对应厂商模型,不能只填写场景 ID。\n\n# 可选子模块:只取消需要的块的注释,模型、向量库与数据库依赖按使用场景初始化。\n# mcp:\n# server:\n# name: my-app\n# version: 1.0.0\n# capabilities:\n# tools: true\n# resources: true\n# prompts: true\n# embedding:\n# dimensions: 1536\n# batchSize: 100\n# knowledge:\n# collection: hai_ai_knowledge\n# dimension: 1536\n# enableEntityExtraction: true\n# entityBoostWeight: 0.15\n# entityTypes: [person, organization, location]\n# systemPrompt: 'Extract entities from the input.'\n# cleanOptions:\n# removeHtml: true\n# removeUrls: false\n# removeEmails: false\n# normalizeWhitespace: true\n# trim: true\n# customReplacements:\n# - pattern: '\\\\t+'\n# replacement: ' '\n# chunkOptions:\n# mode: markdown # sentence | paragraph | markdown | page | word | character | custom\n# maxSize: 1500\n# overlap: 200\n# separator: '\\\\n\\\\n' # 仅 custom 模式使用\n# markdownMinLevel: 2\n# markdownKeepTitle: true\n# memory:\n# provider: native # native | mem0\n# allowEphemeralFallback: false\n# maxEntriesPerObject: 1000\n# maxEntriesGlobal: 100000\n# systemPrompt: 'Extract useful memories from the conversation.'\n# recencyDecay: 0.95\n# embeddingEnabled: true\n# defaultTopK: 10\n# candidateMultiplier: 5\n# writebackRelatedTopK: 20\n# token:\n# tokenRatio: 0.25\n# summary:\n# systemPrompt: 'Summarize the conversation.'\n# compress:\n# defaultStrategy: hybrid # summary | sliding-window | hybrid\n# defaultMaxTokens: 0\n# preserveLastN: 4\n# retrieval:\n# sources:\n# - id: docs\n# collection: documentation\n# name: Product documentation\n# url: https://docs.example.com\n# topK: 5\n# minScore: 0.7\n# filter:\n# published: true\n# file:\n# systemPrompt: 'Extract text from the image.'\n# a2a:\n# agentCard:\n# name: my-agent\n# description: Application agent\n# url: https://agent.example.com\n# version: 1.0.0\n# skills:\n# - id: chat\n# name: Chat\n# description: General conversation\n# tags: [chat]\n# security:\n# apiKey:\n# in: header # header | query\n# name: x-api-key\n# audio:\n# inheritLlmApiKey: false\n# transcribeModel: asr\n# synthesizeModel: tts\n# maxAudioBytes: 10485760\n# maxStreamDurationMs: 300000\n# models:\n# - id: asr\n# provider: openai # openai | mimo | qwen | doubao | whisper | indextts\n# model: whisper-1\n# operations: [transcribe]\n# apiKey: ''\n# baseUrl: https://api.openai.com/v1\n# timeout: 60000\n# appKey: '' # 豆包旧版控制台 ASR 使用\n# accessKey: ''\n# resourceId: ''\n# workspaceId: '' # 百炼业务空间\n# - id: tts\n# provider: openai\n# model: tts-1\n# operations: [synthesize]\n# image:\n# generateModel: image\n# models:\n# - id: image\n# provider: openai # openai | google | qwen | seedream | pollinations\n# model: gpt-image-1\n# apiKey: ''\n# baseUrl: https://api.openai.com/v1\n# workspaceId: ''\n# timeout: 120000\n`\n}\n\n/**\n * 根据选中的功能模块生成 .env.example 内容\n *\n * @param features - 选中的功能模块列表\n * @param configs - 用户自定义配置值\n * @param includeDisabled - 是否输出所有模块的完整注释示例(fullstack 使用,未启用模块保留注释)\n * @returns .env.example 文件内容\n */\nexport function generateEnvExample(features: FeatureId[], configs?: ModuleConfigs, includeDisabled = false, configContents: Record<string, string> = {}): string {\n const keys = new Set(['core', ...(configContents.serv ? ['serv'] : []), ...features.filter(feature => !['crypto', 'api-client', 'capacitor', 'datapipe'].includes(feature))])\n const allKeys = ['core', 'serv', 'db', 'cache', 'iam', 'storage', 'ai', 'vecdb', 'reach', 'payment', 'scheduler', 'deploy', 'audit']\n const sections = [`# Environment configuration\n# .env / .env.dev / .env.test / .env.prod are public configuration tracked in Git.\n# .env.local is private to this machine and ignored by Git.\n# Priority: process environment > .env.local > .env.<dev|test|prod> > .env.\n# Naming: HAI_<CONFIG>_<PATH>; camelCase stays joined (apiKey -> APIKEY); arrays use zero-based indexes.\n# PUBLIC_ / VITE_ variables are visible in browsers and must never contain secrets.\n# YAML declares references and local fallbacks; constraints are validated by module Schemas.\n# Values in this example are safe defaults. Keep real credentials in ignored .env.local or secret management.\n`]\n for (const key of allKeys) {\n if (!keys.has(key) && !includeDisabled)\n continue\n const variables = configEnvironmentVariables(key, configContents[key] ?? generateConfigFile(key, configs))\n const section = renderEnvironment(variables)\n const activeNames = new Set(variables.map(variable => variable.name))\n const optional = renderEnvironment(moduleEnvironmentVariables(key).filter(variable => !activeNames.has(variable.name)))\n const commented = (value: string) => value.split('\\n').map(line => line && !line.startsWith('#') ? `# ${line}` : line).join('\\n')\n sections.push(`# --- ${key} ---\\n${keys.has(key) ? section : commented(section)}\\n\\n# 可选字段:先启用 YAML 路径,或用父级对象整体覆盖。\\n${commented(optional)}`)\n }\n return `${sections.join('\\n\\n')}\\n`\n}\n\nfunction generateDeployConfig(): string {\n return `# 部署已有镜像;运行 pnpm run deploy --build 可先构建再发布。\n# SSH 参数由向导保存在本机 .env.local;离线打包不要求 SSH。\nprovider:\n type: docker-ssh\n remote:\n baseDir: /opt/hai/apps\n runtime: auto # 优先 Podman,其次 Docker\n expose:\n hostPort: 18080\n containerPort: 3000\n\ncontainer:\n s3Engine: \\${HAI_DEPLOY_CONTAINER_S3ENGINE:rustfs} # rustfs | minio\n\n# 完整包包含自建中间件镜像,服务器启动禁止拉取。\n# 外部数据库/存储等连接在对应模块配置和环境文件中设置。\n# Vercel 仅消费已有 .vercel/output,云 Provider/Provisioner 不适用于完全离线。\n# provider:\n# type: vercel\n# token: \\${HAI_DEPLOY_PROVIDER_TOKEN}\n`\n}\n\nfunction generateVecdbConfig(): string {\n return `# =============================================================================\n# 向量数据库配置 (@h-ai/vecdb)\n# =============================================================================\n\n# 数据库类型: lancedb | pgvector | qdrant | chroma\ntype: lancedb\n\n# LanceDB 数据目录\npath: ./data/vecdb\n\n# 距离度量: cosine | euclidean | dot\n# metric: cosine\n\n# pgvector 配置(当 type 为 pgvector 时使用)\n# type: pgvector\n# url: \\${HAI_VECDB_URL}\n# host: localhost\n# port: 5432\n# database: hai\n# user: postgres\n# password: ''\n# indexType: hnsw\n# tablePrefix: vec_\n\n# Qdrant 配置(当 type 为 qdrant 时使用)\n# type: qdrant\n# url: http://localhost:6333\n# apiKey: ''\n\n# Chroma 配置(替换 type;url 指向已有服务,path 用于本地子进程数据目录)\n# type: chroma\n# path: ./data/chroma\n# url: http://localhost:8000\n# host: localhost\n# port: 8000\n# apiKey: ''\n# serverCommand: chroma\n# startupTimeout: 30000\n\n# operationLog:\n# read: false\n# write: false\n# maxLength: 1000\n# level: debug # trace | debug | info\n`\n}\n\nfunction generateReachConfig(): string {\n return `# =============================================================================\n# 消息推送配置 (@h-ai/reach)\n# =============================================================================\n\nproviders:\n # 控制台输出(开发/测试用)\n - name: console_dev\n type: console\n\n # SMTP 邮件(按需开启)\n # - name: email\n # type: smtp\n # host: \\${HAI_REACH_PROVIDERS_0_HOST:smtp.example.com}\n # port: \\${HAI_REACH_PROVIDERS_0_PORT:465}\n # secure: true\n # user: \\${HAI_REACH_PROVIDERS_0_USER:}\n # pass: \\${HAI_REACH_PROVIDERS_0_PASS:}\n # from: \\${HAI_REACH_PROVIDERS_0_FROM:noreply@example.com}\n\n # 阿里云短信(按需开启)\n # - name: sms\n # type: aliyun-sms\n # accessKeyId: \\${HAI_REACH_PROVIDERS_0_ACCESSKEYID}\n # accessKeySecret: \\${HAI_REACH_PROVIDERS_0_ACCESSKEYSECRET}\n # signName: MyApp\n # endpoint: dysmsapi.aliyuncs.com\n\n # 通用 API(按需开启;可对接应用自有投递服务)\n # - name: custom\n # type: api\n # url: https://notify.example.com/send\n # method: POST # POST | PUT\n # headers:\n # Authorization: 'Bearer \\${HAI_REACH_PROVIDERS_0_HEADERS_AUTHORIZATION}'\n # timeout: 10000\n\n# IAM 标准模板:保留空数组以支持 HAI_REACH_TEMPLATES 整体覆盖。\ntemplates: []\n# 开启对应 Provider 后,将空数组替换为需要的模板列表,例如:\n# templates:\n# - name: otp_email\n# provider: email\n# subject: \"Verification code\"\n# body: \"Your verification code is {code}.\"\n# - name: otp_sms\n# provider: sms\n# body: \"Your verification code is {code}.\"\n# - name: password_reset\n# provider: email\n# subject: \"Password reset\"\n# body: \"Reset your password: {resetUrl}. Expires at {expiresAt}.\"\n# - name: password_reset_sms\n# provider: sms\n# body: \"Reset your password: {resetUrl}. Expires at {expiresAt}.\"\n\n# 免打扰(可选)\n# dnd:\n# enabled: true\n# strategy: delay\n# start: \"22:00\"\n# end: \"08:00\"\n`\n}\n\nfunction generateSchedulerConfig(): string {\n return `# =============================================================================\n# 任务调度配置 (@h-ai/scheduler)\n# =============================================================================\n\n# 是否启用数据库日志(需要 @h-ai/reldb)\nenableDb: true\n\n# 检查间隔(毫秒)\ntickInterval: 1000\n\n# 锁过期时间(毫秒)\nlockExpireMs: 300000\n\n# 节点 ID 默认自动生成;多节点部署时每个实例应使用独立 ID。\n# nodeId: worker-1\n# 执行日志保留策略(启用数据库时使用)\n# maxLogs: 10000\n# retentionDays: 30\n`\n}\n\nfunction generateAuditConfig(): string {\n return `# =============================================================================\n# 审计日志配置 (@h-ai/audit)\n# =============================================================================\n\n# 用户表名(用于 JOIN 查询)\nuserTable: hai_iam_users\n\n# 用户表主键列名\nuserIdColumn: id\n\n# 用户名列名\nuserNameColumn: username\n`\n}\n\nfunction generatePaymentConfig(): string {\n return `# =============================================================================\n# 支付配置 (@h-ai/payment)\n# =============================================================================\n\n# 微信支付(按需开启)\n# wechat:\n# mchId: ''\n# apiV3Key: ''\n# serialNo: ''\n# privateKey: ''\n# platformCert: ''\n# appId: ''\n\n# 支付宝(按需开启)\n# alipay:\n# appId: ''\n# privateKey: ''\n# alipayPublicKey: ''\n# signType: RSA2\n# sandbox: false\n\n# Stripe(按需开启)\n# stripe:\n# secretKey: ''\n# webhookSecret: ''\n# webhookToleranceSeconds: 300\n`\n}\n"]}