@h-ai/cli 1.0.0-beta.22 → 1.0.0-beta.24
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.
- package/README.en.md +11 -12
- package/README.ja.md +11 -12
- package/README.md +11 -12
- package/dist/{chunk-EFC6IHNF.js → chunk-CWMU5QU2.js} +486 -6
- package/dist/chunk-CWMU5QU2.js.map +1 -0
- package/dist/{chunk-2ZL5ORQ2.js → chunk-P2VZ3VV6.js} +2 -14
- package/dist/chunk-P2VZ3VV6.js.map +1 -0
- package/dist/cli-config-templates-OWLL4H6K.js +5 -0
- package/dist/{cli-config-templates-JJD7YXKL.js.map → cli-config-templates-OWLL4H6K.js.map} +1 -1
- package/dist/{cli-skill-templates-D6S2OQ6X.js → cli-skill-templates-JKF6E3PI.js} +3 -3
- package/dist/{cli-skill-templates-D6S2OQ6X.js.map → cli-skill-templates-JKF6E3PI.js.map} +1 -1
- package/dist/index.js +163 -257
- package/dist/index.js.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/package.json +14 -14
- package/templates/apps/fullstack/docs/security-configuration.md.hbs +3 -3
- package/templates/apps/fullstack/packages/{{projectName}}-serv/README.md.hbs +1 -1
- package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/api-client.test.ts.hbs +4 -1
- package/templates/base/package.json.hbs +1 -1
- package/templates/skills/hai-ai/acp.md +68 -4
- package/templates/skills/hai-ai/guide.md +1 -1
- package/templates/skills/hai-ai/reference.md +1 -1
- package/templates/skills/hai-api-client/SKILL.md +1 -1
- package/templates/skills/hai-app-create/development.md +3 -3
- package/templates/skills/hai-app-create/logging.md +1 -1
- package/templates/skills/hai-audit/SKILL.md +1 -1
- package/templates/skills/hai-audit/reference.md +1 -1
- package/templates/skills/hai-build/SKILL.md +1 -1
- package/templates/skills/hai-build/paths.md +1 -1
- package/templates/skills/hai-crypto/SKILL.md +1 -1
- package/templates/skills/hai-crypto/reference.md +1 -1
- package/templates/skills/hai-deploy/SKILL.md +6 -8
- package/templates/skills/hai-deploy/middleware.md +2 -2
- package/templates/skills/hai-framework-sync/SKILL.md +4 -4
- package/templates/skills/hai-iam/SKILL.md +1 -1
- package/templates/skills/hai-iam/reference.md +1 -1
- package/templates/skills/hai-kit/reference.md +2 -2
- package/templates/skills/hai-reach/SKILL.md +1 -1
- package/templates/skills/hai-reldb/SKILL.md +1 -1
- package/templates/skills/hai-reldb/reference.md +1 -2
- package/templates/skills/hai-scheduler/reference.md +1 -1
- package/templates/skills/hai-serv/reference.md +2 -2
- package/templates/skills/hai-storage/reference.md +2 -2
- package/dist/chunk-2ZL5ORQ2.js.map +0 -1
- package/dist/chunk-EFC6IHNF.js.map +0 -1
- package/dist/cli-config-templates-JJD7YXKL.js +0 -5
- package/templates/skills/hai-deploy/credentials.md +0 -19
|
@@ -400,13 +400,9 @@ var en_US_default = {
|
|
|
400
400
|
cli_upgrade_registry: "Release inspection requires an HTTPS registry URL without embedded credentials.",
|
|
401
401
|
cli_help_inspectRemote: "With --plan, inspect the successful baseline over SSH without target writes",
|
|
402
402
|
cli_upgrade_lock_invalid: "Unable to read the lockfile. Fix its YAML and run pnpm install.",
|
|
403
|
-
cli_help_deploySecrets: "Inspect or import legacy credentials on the target server",
|
|
404
|
-
cli_help_secretImport: "Protected versioned credential JSON file",
|
|
405
|
-
cli_help_secretApply: "Commit the import; omitted means read-only preflight",
|
|
406
403
|
cli_deploy_secrets_options: "Use --import with a private JSON file; runtime must be docker/podman and committing requires --apply",
|
|
407
404
|
cli_build_project_name_required: "The root package.json.name must be a non-empty project name suitable for resource naming.",
|
|
408
405
|
cli_help_defaults: "Use defaults without prompts (full modules and examples)",
|
|
409
|
-
cli_createOptionsRemoved: "create no longer accepts template/features/examples/yes; new projects include all modules and examples. Use --defaults to skip prompts.",
|
|
410
406
|
cli_createDirectoryExists: "The target directory exists. Choose another name or handle it interactively.",
|
|
411
407
|
cli_help_buildConcurrency: "Concurrent image builds: 1 or 2 (default: 2)",
|
|
412
408
|
cli_build_concurrency_invalid: "Image concurrency must be 1 or 2; --concurrency is only for image builds.",
|
|
@@ -850,13 +846,9 @@ var ja_JP_default = {
|
|
|
850
846
|
cli_upgrade_registry: "\u30EA\u30EA\u30FC\u30B9\u78BA\u8A8D\u306B\u306F\u8A8D\u8A3C\u60C5\u5831\u3092\u542B\u307E\u306A\u3044 HTTPS \u30EC\u30B8\u30B9\u30C8\u30EA URL \u304C\u5FC5\u8981\u3067\u3059\u3002",
|
|
851
847
|
cli_help_inspectRemote: "--plan \u3068\u4F75\u7528\u3057\u3001SSH \u3067\u6210\u529F\u57FA\u6E96\u3092\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u78BA\u8A8D",
|
|
852
848
|
cli_upgrade_lock_invalid: "\u30ED\u30C3\u30AF\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u3081\u307E\u305B\u3093\u3002YAML \u3092\u4FEE\u6B63\u3057\u3066 pnpm install \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
853
|
-
cli_help_deploySecrets: "\u5BFE\u8C61\u30B5\u30FC\u30D0\u30FC\u3067\u65E7\u30C7\u30D7\u30ED\u30A4\u8A8D\u8A3C\u60C5\u5831\u3092\u691C\u67FB\u307E\u305F\u306F\u30A4\u30F3\u30DD\u30FC\u30C8",
|
|
854
|
-
cli_help_secretImport: "\u4FDD\u8B77\u3055\u308C\u305F\u30D0\u30FC\u30B8\u30E7\u30F3\u4ED8\u304D\u8A8D\u8A3C\u60C5\u5831 JSON \u30D5\u30A1\u30A4\u30EB",
|
|
855
|
-
cli_help_secretApply: "\u30A4\u30F3\u30DD\u30FC\u30C8\u3092\u78BA\u5B9A\u3002\u7701\u7565\u6642\u306F\u8AAD\u307F\u53D6\u308A\u5C02\u7528\u691C\u67FB",
|
|
856
849
|
cli_deploy_secrets_options: "--import \u3067\u975E\u516C\u958B JSON \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002runtime \u306F docker/podman\u3001\u78BA\u5B9A\u306B\u306F --apply \u304C\u5FC5\u8981\u3067\u3059",
|
|
857
850
|
cli_build_project_name_required: "\u5DE5\u7A0B\u30EB\u30FC\u30C8\u306E package.json.name \u306B\u306F\u3001\u30EA\u30BD\u30FC\u30B9\u540D\u306B\u4F7F\u3048\u308B\u7A7A\u3067\u306A\u3044\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u540D\u304C\u5FC5\u8981\u3067\u3059\u3002",
|
|
858
851
|
cli_help_defaults: "\u65E2\u5B9A\u5024\u3067\u5BFE\u8A71\u3092\u7701\u7565\uFF08\u5168\u30E2\u30B8\u30E5\u30FC\u30EB\u3068\u30B5\u30F3\u30D7\u30EB\uFF09",
|
|
859
|
-
cli_createOptionsRemoved: "create \u306E template/features/examples/yes \u306F\u5EC3\u6B62\u3055\u308C\u307E\u3057\u305F\u3002\u5168\u30E2\u30B8\u30E5\u30FC\u30EB\u3068\u30B5\u30F3\u30D7\u30EB\u3092\u751F\u6210\u3057\u307E\u3059\u3002\u975E\u5BFE\u8A71\u306B\u306F --defaults \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
860
852
|
cli_createDirectoryExists: "\u5BFE\u8C61\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\u5225\u306E\u540D\u524D\u3092\u6307\u5B9A\u3059\u308B\u304B\u3001\u5BFE\u8A71\u30E2\u30FC\u30C9\u3067\u51E6\u7406\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
861
853
|
cli_help_buildConcurrency: "\u540C\u6642\u30A4\u30E1\u30FC\u30B8\u30D3\u30EB\u30C9\u6570\uFF1A1 \u307E\u305F\u306F 2\uFF08\u65E2\u5B9A\u5024\uFF1A2\uFF09",
|
|
862
854
|
cli_build_concurrency_invalid: "\u30A4\u30E1\u30FC\u30B8\u306E\u540C\u6642\u5B9F\u884C\u6570\u306F 1 \u307E\u305F\u306F 2 \u3067\u3059\u3002--concurrency \u306F image \u30D3\u30EB\u30C9\u5C02\u7528\u3067\u3059\u3002",
|
|
@@ -1300,13 +1292,9 @@ var zh_CN_default = {
|
|
|
1300
1292
|
cli_upgrade_registry: "\u53D1\u5E03\u68C0\u67E5\u9700\u8981\u4E0D\u542B\u51ED\u636E\u7684 HTTPS Registry \u5730\u5740\u3002",
|
|
1301
1293
|
cli_help_inspectRemote: "\u914D\u5408 --plan\uFF0C\u901A\u8FC7 SSH \u53EA\u8BFB\u68C0\u67E5\u6210\u529F\u57FA\u7EBF\uFF0C\u4E0D\u6539\u53D8\u76EE\u6807",
|
|
1302
1294
|
cli_upgrade_lock_invalid: "\u65E0\u6CD5\u8BFB\u53D6\u9501\u6587\u4EF6\uFF0C\u8BF7\u5148\u4FEE\u590D YAML \u5E76\u8FD0\u884C pnpm install\u3002",
|
|
1303
|
-
cli_help_deploySecrets: "\u5728\u76EE\u6807\u670D\u52A1\u5668\u9884\u68C0\u6216\u5BFC\u5165\u65E7\u90E8\u7F72\u51ED\u636E",
|
|
1304
|
-
cli_help_secretImport: "\u53D7\u4FDD\u62A4\u7684\u7248\u672C\u5316\u51ED\u636E JSON \u6587\u4EF6",
|
|
1305
|
-
cli_help_secretApply: "\u660E\u786E\u63D0\u4EA4\u5BFC\u5165\uFF1B\u7701\u7565\u65F6\u53EA\u8BFB\u9884\u68C0",
|
|
1306
1295
|
cli_deploy_secrets_options: "\u8BF7\u7528 --import \u6307\u5B9A\u79C1\u6709 JSON\uFF1Bruntime \u4EC5\u652F\u6301 docker/podman\uFF0C\u63D0\u4EA4\u9700\u663E\u5F0F --apply",
|
|
1307
1296
|
cli_build_project_name_required: "\u5DE5\u7A0B\u6839 package.json.name \u5FC5\u987B\u662F\u975E\u7A7A\u3001\u53EF\u7528\u4E8E\u8D44\u6E90\u547D\u540D\u7684\u9879\u76EE\u540D\u3002",
|
|
1308
1297
|
cli_help_defaults: "\u4F7F\u7528\u9ED8\u8BA4\u503C\u8DF3\u8FC7\u521B\u5EFA\u5411\u5BFC\uFF08\u5B8C\u6574\u6A21\u5757\u53CA\u793A\u4F8B\uFF09",
|
|
1309
|
-
cli_createOptionsRemoved: "create \u5DF2\u79FB\u9664 template/features/examples/yes \u53C2\u6570\uFF1B\u65B0\u5DE5\u7A0B\u56FA\u5B9A\u5B8C\u6574\u6A21\u5757\u4E0E\u793A\u4F8B\uFF0C\u975E\u4EA4\u4E92\u8BF7\u4F7F\u7528 --defaults\u3002",
|
|
1310
1298
|
cli_createDirectoryExists: "\u76EE\u6807\u76EE\u5F55\u5DF2\u5B58\u5728\uFF1B\u8BF7\u4F7F\u7528\u53E6\u4E00\u4E2A\u9879\u76EE\u540D\u6216\u5728\u4EA4\u4E92\u6A21\u5F0F\u4E0B\u5904\u7406\u3002",
|
|
1311
1299
|
cli_help_buildConcurrency: "\u540C\u65F6\u6784\u5EFA\u7684\u955C\u50CF\u6570\uFF1A1 \u6216 2\uFF08\u9ED8\u8BA4 2\uFF09",
|
|
1312
1300
|
cli_build_concurrency_invalid: "\u955C\u50CF\u5E76\u53D1\u6570\u4EC5\u652F\u6301 1 \u6216 2\uFF1B--concurrency \u53EA\u7528\u4E8E image \u6784\u5EFA\u3002",
|
|
@@ -1712,5 +1700,5 @@ async function generateProjectAiSupport(projectPath, skillNames, options = {}) {
|
|
|
1712
1700
|
}
|
|
1713
1701
|
|
|
1714
1702
|
export { cliM, generateModuleSkillFile, generateProjectAiSupport, generateSkillFiles, resolveCompatibleSkillNames, resolveSkillNamesForPackages };
|
|
1715
|
-
//# sourceMappingURL=chunk-
|
|
1716
|
-
//# sourceMappingURL=chunk-
|
|
1703
|
+
//# sourceMappingURL=chunk-P2VZ3VV6.js.map
|
|
1704
|
+
//# sourceMappingURL=chunk-P2VZ3VV6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../messages/en-US.json","../messages/ja-JP.json","../messages/zh-CN.json","../src/cli-i18n.ts","../src/commands/cli-skill-templates.ts"],"names":[],"mappings":"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","file":"chunk-P2VZ3VV6.js","sourcesContent":["{\n \"cli_createFailed\": \"Failed to create project:\",\n \"cli_build_static_flag\": \"HAI_BUILD_STATIC accepts only 0 or 1: omitted/0 keeps SSR, and 1 enables a static website build.\",\n \"cli_build_static_base\": \"PUBLIC_BASE_PATH must be empty or a site-local directory beginning with /. External URLs, trailing /, queries, fragments and path traversal are not allowed.\",\n \"cli_build_base_requires_web\": \"PUBLIC_BASE_PATH requires a declared web image. Configure a standalone API route prefix in the service configuration.\",\n \"cli_build_static_target\": \"HAI_BUILD_STATIC applies only to static compile. PUBLIC_BASE_PATH supports compile and image website builds, and cannot be used with native app or desktop targets.\",\n \"cli_installFailed\": \"Dependency installation failed ({pm}).\",\n \"cli_commandLabel\": \"Command: {command}\",\n \"cli_exitCode\": \"Exit code: {code}\",\n \"cli_signal\": \"Signal: {signal}\",\n \"cli_selectHint\": \"- ↑/↓ select, Enter confirm\",\n \"cli_multiselectHint\": \"- Space select, Enter confirm\",\n \"cli_frontendsPrompt\": \"Select frontend targets:\",\n \"cli_invalidGenerateName\": \"Use a name starting with a letter, with only letters, digits, hyphens or underscores\",\n \"cli_generateOutsideWorkspace\": \"Generated files must remain inside the workspace, including symbolic link targets\",\n \"cli_generateExists\": \"File already exists: {path}. Use --force to overwrite it\",\n \"cli_deploy_module_missing\": \"Deploy module not found. Install @h-ai/deploy first:\",\n \"cli_deploy_load_credentials\": \"Loading credentials...\",\n \"cli_deploy_credentials_failed\": \"Failed to load credentials: {message}\",\n \"cli_deploy_credentials_loaded\": \"Loaded {count} credentials\",\n \"cli_deploy_load_config\": \"Loading deploy config...\",\n \"cli_deploy_config_missing\": \"Deploy config not found: {path}\",\n \"cli_deploy_config_hint\": \"Run: hai add deploy to generate config template\",\n \"cli_deploy_config_loaded\": \"Deploy config loaded\",\n \"cli_deploy_scanning\": \"Scanning application...\",\n \"cli_deploy_scan_failed\": \"Scan failed: {message}\",\n \"cli_deploy_scanned\": \"Scanned: {name} (SvelteKit: {sveltekit}, Services: {services})\",\n \"cli_deploy_none\": \"none\",\n \"cli_deploy_initializing\": \"Initializing deploy module...\",\n \"cli_deploy_init_failed\": \"Init failed: {message}\",\n \"cli_deploy_initialized\": \"Deploy module initialized\",\n \"cli_deploy_deploying\": \"Deploying application...\",\n \"cli_deploy_failed\": \"Deploy failed: {message}\",\n \"cli_deploy_success\": \"Deployment successful!\",\n \"cli_deploy_url\": \" URL: {url}\",\n \"cli_deploy_id\": \" ID: {id}\",\n \"cli_deploy_command_failed\": \"Deploy command failed\",\n \"cli_adminPasswordSaved\": \" Initial accounts: admin (system), audit_admin (audit), config_admin (business configuration), business_operator (business operations). Independent passwords per account/environment are saved in .env.dev.local / .env.test.local / .env.prod.local: HAI_ADMIN_DEFAULT_PASSWORD, HAI_AUDIT_ADMIN_PASSWORD, HAI_CONFIG_ADMIN_PASSWORD, HAI_BUSINESS_OPERATOR_PASSWORD. Created on first startup; existing passwords are preserved.\",\n \"cli_deploy_environment\": \"Deployment environment (test / prod / other)\",\n \"cli_deploy_cancelled\": \"Deployment cancelled.\",\n \"cli_deploy_environment_hint\": \"Specify --env <environment>; non-interactive calls also require --yes, or use a terminal to select middleware.\",\n \"cli_deploy_middleware\": \"{service}: current default {backend}; {purpose}. Source: {source}\",\n \"cli_deploy_action\": \"How should {service} be configured?\",\n \"cli_deploy_default\": \"Use default configuration\",\n \"cli_deploy_custom\": \"Use custom configuration\",\n \"cli_deploy_keep\": \"Keep unchanged\",\n \"cli_deploy_backend\": \"Select the backend for {service}\",\n \"cli_deploy_field\": \"{description} ({constraint})\",\n \"cli_deploy_connection_method\": \"How will you enter the {backend} connection?\",\n \"cli_deploy_connection_fields\": \"Enter host, port and other connection fields\",\n \"cli_deploy_connection_url\": \"Use a connection URL\",\n \"cli_deploy_connection_url_prompt\": \"Connection URL (hidden input). Example: {example}\",\n \"cli_deploy_connection_address\": \"{service} connection address (scheme and host only): {address}\",\n \"cli_deploy_mysql_url_invalid\": \"Enter a mysql:// connection URL with a host. Query parameters and fragments are unsupported.\",\n \"cli_deploy_postgres_url_invalid\": \"Enter a postgresql:// or postgres:// connection URL with a host and database name in the path.\",\n \"cli_deploy_redis_url_invalid\": \"Enter a redis:// or rediss:// connection URL with a host. Use rediss:// for TLS.\",\n \"cli_deploy_middleware_field_error\": \"{variable}: {reason}\",\n \"cli_deploy_config_unknown_fields\": \"Remove unsupported fields from this object.\",\n \"cli_deploy_s3_endpoint\": \"S3 API endpoint (HTTP or HTTPS, without the bucket name). Example: http://storage.example.com:9000. Leave blank for AWS S3.\",\n \"cli_deploy_s3_bucket\": \"Bucket name only (for example, uploads)\",\n \"cli_deploy_s3_region\": \"Region used by your S3 provider (for example, us-east-1)\",\n \"cli_deploy_s3_access_key\": \"S3 access key ID issued by your provider\",\n \"cli_deploy_s3_secret_key\": \"S3 secret access key paired with the key ID (hidden input)\",\n \"cli_deploy_s3_path_style\": \"Bucket addressing: true for endpoint/bucket (common for MinIO or RustFS); false for bucket.endpoint. Follow your provider's settings.\",\n \"cli_deploy_required\": \"This value is required\",\n \"cli_deploy_invalid_value\": \"The value does not satisfy the field constraints\",\n \"cli_deploy_cloud_unsupported\": \"No cloud provisioner is available for {backend}; use a custom connection or select a supported backend.\",\n \"cli_deploy_saved\": \"Saved {service} configuration (public settings in the target environment file; credentials in its private .env file)\",\n \"cli_deploy_missing_keep\": \"The target environment has no complete {service} configuration to keep.\",\n \"cli_deploy_s3_engine\": \"Select the S3 service implementation (application type remains s3)\",\n \"cli_deploy_target_reused\": \"Reusing saved deployment target {target}.\",\n \"cli_deploy_target_missing\": \"Deployment target is incomplete: {fields}. Configure the deployment target, or run interactively to complete setup.\",\n \"cli_deploy_target_platform\": \"Select the deployment platform\",\n \"cli_deploy_target_ssh\": \"SSH server (Docker / Podman Compose)\",\n \"cli_deploy_target_field\": \"{name}\",\n \"cli_deploy_target_ssh_hint\": \"Enter connection and port settings, then choose a private key or password. Password input is hidden. Leave the key path blank for ssh-agent/default keys, and known_hosts blank for the OpenSSH default. New host fingerprints are trusted on first connection; changed fingerprints are rejected.\",\n \"cli_deploy_target_runtime\": \"Remote container runtime (auto prefers Podman)\",\n \"cli_deploy_target_saved\": \"Deployment target saved to this environment's private, Git-ignored .env file and reused on subsequent runs.\",\n \"cli_deploy_target_auth\": \"SSH authentication\",\n \"cli_deploy_target_auth_key\": \"Private key or SSH agent\",\n \"cli_deploy_target_auth_password\": \"Password\",\n \"cli_deploy_inputPASSWORD\": \"SSH password (hidden; leading and trailing spaces are preserved)\",\n \"cli_deploy_middleware_plan\": \"Do you need to configure middleware for this deployment?\",\n \"cli_deploy_reach_empty\": \"Reach has no providers configured. Set HAI_REACH_PROVIDERS to the complete notification provider list in {file}, then rerun deploy to configure those providers.\",\n \"cli_deploy_middleware_configure\": \"Review and configure each middleware service\",\n \"cli_deploy_middleware_skip\": \"Environment is complete; deploy directly\",\n \"cli_deploy_middleware_skipped\": \"Skipped all middleware configuration and provisioning. Deploying with current environment settings and existing services.\",\n \"cli_build_failed\": \"Build command {command} failed (exit {code}).\",\n \"cli_build_use_pnpm\": \"Run via pnpm build to use the project pnpm executable.\",\n \"cli_build_target_invalid\": \"target must be compile, image, app or desktop.\",\n \"cli_build_options_invalid\": \"Image selection, concurrency and --json require the image target. Runtime, network and downloads require image or container Android; platform and debug require a native target, and arch requires desktop.\",\n \"cli_build_image_platform_invalid\": \"Could not determine the platform of the built image.\",\n \"cli_build_version_invalid\": \"Set a valid three-part version in the application root package.json (for example 1.2.3 or 1.2.3-beta.1; at most 80 characters).\",\n \"cli_build_native_host\": \"Build Tauri on the matching OS (windows/linux/macos), with x64 or arm64 architecture. Install the Rust target, system SDK and packaging tools first.\",\n \"cli_project_config_invalid\": \"Cannot read project configuration {path}. Ensure the file exists and contains a valid JSON object.\",\n \"cli_build_desktop_missing\": \"No desktop directories in the build section of hai.json. Generate a desktop frontend or add an existing Tauri project.\",\n \"cli_build_images_missing\": \"hai.json build.images must contain serv, web, or both, with unique names and valid Dockerfiles.\",\n \"cli_build_runtime_missing\": \"Install and start Podman or Docker. auto prefers a reachable Podman engine.\",\n \"cli_build_ready\": \"Build ready ({runtime}): {path}. Reuse these images across deployment environments.\",\n \"cli_deploy_bundle_provider\": \"Offline packaging, integrated image builds and selected-serv deployment require a docker-ssh Compose destination.\",\n \"cli_deploy_bundle_target\": \"Generating a bundle without connecting to a server. Saved connections populate deploy-target.json; review it before deploying.\",\n \"cli_deploy_bundle_ready\": \"Deployment bundle ready; the server has not been deployed.\",\n \"cli_deploy_bundle_path\": \"Deployment bundle: {path}\",\n \"cli_build_selection_invalid\": \"Select existing build.images names: serv, web, or serv,web.\",\n \"cli_build_dockerfile_missing\": \"Dockerfile not found: {path}. Check the build section of hai.json.\",\n \"cli_deploy_config_node\": \"Cannot update {path}: {field} must be a configuration object, not a string or array.\",\n \"cli_deploy_inputHOST\": \"Server address\",\n \"cli_deploy_services_invalid\": \"Invalid service selection. Available in this project: {services}.\",\n \"cli_deploy_build_artifact_conflict\": \"Choose --build to create new artifacts or --artifact-dir to use existing artifacts; they cannot be combined.\",\n \"cli_deploy_build_options_required\": \"Build concurrency, network, proxy and SQLite binary options require --build.\",\n \"cli_deploy_artifact_invalid\": \"Image manifest or archive validation failed. Rebuild or select a valid build with --artifact-dir.\",\n \"cli_deploy_inputPORT\": \"SSH port (default 22)\",\n \"cli_deploy_inputUSERNAME\": \"SSH username\",\n \"cli_deploy_inputIDENTITYFILE\": \"SSH private key file (optional; use agent/default keys)\",\n \"cli_deploy_inputKNOWNHOSTSFILE\": \"Server fingerprint file (optional; use the OpenSSH default)\",\n \"cli_deploy_inputBASEDIR\": \"Server deployment root directory\",\n \"cli_deploy_inputHOSTPORT\": \"Public application port\",\n \"cli_deploy_inputCONTAINERPORT\": \"API container port\",\n \"cli_deploy_inputTOKEN\": \"Vercel access token\",\n \"cli_deploy_cloud_input_apiKey\": \"API access key\",\n \"cli_deploy_cloud_input_email\": \"Account email address\",\n \"cli_deploy_cloud_input_accountId\": \"Platform account ID\",\n \"cli_deploy_cloud_input_apiToken\": \"API access token\",\n \"cli_deploy_cloud_input_accessKeyId\": \"Access key ID\",\n \"cli_deploy_cloud_input_secretAccessKey\": \"Secret access key\",\n \"cli_deploy_cloud_input_accessKeySecret\": \"Secret access key\",\n \"cli_deploy_cloud_input_signName\": \"Approved SMS signature\",\n \"cli_deploy_cloud_input_from\": \"Sender address (verified domain)\",\n \"cli_deploy_port_invalid\": \"Enter an integer between 1 and 65535.\",\n \"cli_deploy_build_started\": \"Building selected application images first…\",\n \"cli_deploy_services\": \"Selected services: {services}\",\n \"cli_deploy_stage_packaging\": \"Packaging selected images and middleware\",\n \"cli_deploy_stage_preflight\": \"Checking server and deployment baseline\",\n \"cli_deploy_stage_images\": \"Loading offline images\",\n \"cli_deploy_stage_dependencies\": \"Checking existing dependency services\",\n \"cli_deploy_stage_start\": \"Updating selected services\",\n \"cli_deploy_stage_health\": \"Verifying HTTP access\",\n \"cli_deploy_stage_complete\": \"Server deployment checks passed\",\n \"cli_deploy_choose_services\": \"Choose services to update (all selected; Space to toggle)\",\n \"cli_deploy_config_invalid\": \"Deployment configuration is incomplete or invalid. File: {path}; check these fields: {fields}.\",\n \"cli_help_verbose\": \"Show detailed output\",\n \"cli_help_cwd\": \"Working directory\",\n \"cli_help_create\": \"Create a hai application\",\n \"cli_help_appType\": \"Application type (admin, website, h5, api, mobile-app, fullstack)\",\n \"cli_help_frontends\": \"Fullstack frontends, comma-separated: web,app,miniapp,desktop\",\n \"cli_help_noInstall\": \"Skip dependency installation\",\n \"cli_help_noDeploy\": \"Omit deployment tools and commands\",\n \"cli_help_packageManager\": \"Package manager (pnpm, npm, yarn)\",\n \"cli_help_noGit\": \"Skip Git initialization\",\n \"cli_help_gitRemote\": \"Git remote URL\",\n \"cli_help_add\": \"Add a module to an existing application\",\n \"cli_help_init\": \"Check project configuration and fill missing files\",\n \"cli_help_forceConfig\": \"Regenerate module configuration\",\n \"cli_help_generate\": \"Generate starter code\",\n \"cli_help_output\": \"Output path\",\n \"cli_help_force\": \"Overwrite existing output files\",\n \"cli_help_build\": \"Compile sources, build container images or create Tauri installers\",\n \"cli_help_target\": \"Artifact target: compile (default) / image / desktop / app\",\n \"cli_help_buildJson\": \"Print only this image build's JSON result to standard output\",\n \"cli_help_images\": \"Build selected images: serv, web, or serv,web\",\n \"cli_help_buildRuntime\": \"Local container engine: auto (prefers Podman), podman or docker\",\n \"cli_help_buildNetwork\": \"Build network; defaults to the engine setting (for example, rootless Podman pasta)\",\n \"cli_help_platform\": \"Native platform: windows / linux / macos / android / ios\",\n \"cli_help_arch\": \"Tauri architecture: x64 or arm64\",\n \"cli_help_buildDebug\": \"Build a native debug package. Defaults to release.\",\n \"cli_help_noHttpProxy\": \"Disable this build proxy (same as --proxy-mode none)\",\n \"cli_help_deploy\": \"Deploy an application or create an offline bundle\",\n \"cli_help_environment\": \"Deployment environment, such as test/prod; its environment file must exist\",\n \"cli_help_envDir\": \"Environment file directory; detected automatically by default\",\n \"cli_help_deployYes\": \"Use saved/default configuration without prompts; report missing required values\",\n \"cli_help_skipMiddleware\": \"Skip middleware configuration/provisioning when already configured\",\n \"cli_help_artifactDir\": \"Existing image artifact directory containing manifest.json\",\n \"cli_help_services\": \"Update selected services, such as serv, web, or serv,web; defaults to all services in the artifact\",\n \"cli_help_deployBuild\": \"Build selected application images before packaging/deployment; supports --bundle-only\",\n \"cli_help_deployNetwork\": \"Container network for --build; defaults to the engine setting\",\n \"cli_help_deployNoProxy\": \"Disable this build proxy (same as --proxy-mode none)\",\n \"cli_help_deployRuntime\": \"Local engine for image builds and middleware exports: auto, podman or docker\",\n \"cli_help_bundleOnly\": \"Create an offline tar and Windows/Linux/macOS deployment scripts without connecting\",\n \"cli_help_bundleOutput\": \"Deployment tar path; application version suffix is added automatically\",\n \"cli_help_generatePage\": \"Generate a page\",\n \"cli_help_generateComponent\": \"Generate a component\",\n \"cli_help_generateApi\": \"Generate an API endpoint\",\n \"cli_help_generateModel\": \"Generate a data model\",\n \"cli_generateUnsupportedProject\": \"This project or workspace does not support this generator. Pages require SvelteKit; APIs require SvelteKit or serv. Select the application with --workspace.\",\n \"cli_generateAmbiguousWorkspace\": \"Multiple workspaces support this generator. Select a package name or relative path with --workspace.\",\n \"cli_generateUnsupportedAggregator\": \"Cannot safely identify the contract/procedure aggregation points. Preserve the CLI template @hai-generator markers, or extend the existing architecture manually.\",\n \"cli_generateInvalidRouteOutput\": \"Route output must remain inside SvelteKit src/routes. Serv uses its existing contract/procedure directories and does not accept --output.\",\n \"cli_generateDomainExists\": \"A contract or procedure domain already exists: {name}. Existing business registrations cannot be replaced.\",\n \"cli_generateRollbackFailed\": \"Generation failed and rollback or temporary-file cleanup could not complete. Inspect the files reported in the errors before retrying.\",\n \"cli_help_workspace\": \"Target workspace package name or relative path; defaults to the unique applicable application\",\n \"cli_generateCustomRoutes\": \"This SvelteKit configuration customizes kit.files. The generator cannot infer its route layout; extend the existing routes manually.\",\n \"cli_generatePageDescription\": \"SvelteKit page\",\n \"cli_generateComponentDescription\": \"Svelte component\",\n \"cli_generateApiDescription\": \"API endpoint\",\n \"cli_generateModelDescription\": \"Data model\",\n \"cli_generateMigrationDescription\": \"Database migration\",\n \"cli_generateProgress\": \"Generating {description}...\",\n \"cli_generateComplete\": \"Generation complete\",\n \"cli_generateFiles\": \"Generated or updated files:\",\n \"cli_generateFailed\": \"Generation failed\",\n \"cli_generateFailureDetail\": \"Error details:\",\n \"cli_generateTypePrompt\": \"Select a generator:\",\n \"cli_generateNamePrompt\": \"Name:\",\n \"cli_generateNameRequired\": \"Name is required\",\n \"cli_generateCancelled\": \"Generation cancelled; no files were written\",\n \"cli_generateUnknownType\": \"Unknown generator type: {type}\",\n \"cli_deploy_local_confirmed\": \"Local command tree: confirmed exited.\",\n \"cli_deploy_local_unknown\": \"Local command tree: termination unconfirmed.\",\n \"cli_deploy_local_not_started\": \"Local command tree: not started.\",\n \"cli_deploy_recovery_not_needed\": \"Recovery: not required; check the deployment stage and service health for the outcome.\",\n \"cli_deploy_recovery_passed\": \"Recovery: previous services and their health checks passed. Business data was not reverted.\",\n \"cli_deploy_recovery_failed\": \"Recovery: previous services failed recovery verification. Check the result file and service logs before recovery; do not retry blindly.\",\n \"cli_deploy_recovery_stopped\": \"Recovery: no previous baseline is available; newly deployed services were stopped. Fix the issue before deploying again.\",\n \"cli_deploy_remote_unknown\": \"Remote deployment execution: unknown; do not retry or stop services blindly.\",\n \"cli_deploy_remote_finished\": \"Remote deployment script and recovery finished; verify service health. Running containers do not imply the failed script is still executing.\",\n \"cli_deploy_result_check\": \"Deployment {id}: inspect server result file {path}.\",\n \"cli_appAdminName\": \"Admin console\",\n \"cli_appAdminDescription\": \"Enterprise administration with IAM, database and UI\",\n \"cli_appWebsiteName\": \"Corporate website\",\n \"cli_appWebsiteDescription\": \"Responsive, SEO-friendly SSR/SSG website\",\n \"cli_appH5Name\": \"H5 application\",\n \"cli_appH5Description\": \"Mobile H5 application with touch interactions and PWA support\",\n \"cli_appApiName\": \"API service\",\n \"cli_appApiDescription\": \"Typed API workspace with separate contract and service packages, without UI\",\n \"cli_appMobileName\": \"Mobile application\",\n \"cli_appMobileDescription\": \"Capacitor + Svelte 5 + Vite application for Android/iOS\",\n \"cli_appFullstackName\": \"Fullstack workspace\",\n \"cli_appFullstackDescription\": \"Multi-client admin application with users, roles, audit, preferences, feedback by default and bidirectional transport encryption\",\n \"cli_frontendWebDescription\": \"Browser web application\",\n \"cli_frontendAppDescription\": \"Mobile Capacitor application / H5 frontend\",\n \"cli_frontendMiniappName\": \"Miniapp\",\n \"cli_frontendMiniappDescription\": \"Reserved target; generates documentation placeholders only\",\n \"cli_frontendDesktopName\": \"Desktop\",\n \"cli_frontendDesktopDescription\": \"Tauri desktop frontend\",\n \"cli_featureIamName\": \"Identity and access\",\n \"cli_featureIamDescription\": \"Session/JWT authentication and RBAC authorization\",\n \"cli_featureDbName\": \"Database\",\n \"cli_featureDbDescription\": \"SQLite, PostgreSQL and MySQL support\",\n \"cli_featureCacheName\": \"Cache\",\n \"cli_featureCacheDescription\": \"Redis / in-memory cache\",\n \"cli_featureAiName\": \"AI integration\",\n \"cli_featureAiDescription\": \"LLM adapters, MCP, skills and streaming responses\",\n \"cli_featureStorageName\": \"File storage\",\n \"cli_featureStorageDescription\": \"Local storage and S3/OSS/COS cloud storage\",\n \"cli_featureCryptoName\": \"Cryptography\",\n \"cli_featureCryptoDescription\": \"SM2/SM3/SM4 and Argon2 password hashing\",\n \"cli_featureAuditName\": \"Audit log\",\n \"cli_featureAuditDescription\": \"Operation auditing and security tracking\",\n \"cli_featureReachName\": \"Notifications\",\n \"cli_featureReachDescription\": \"Email, SMS and WeChat notifications\",\n \"cli_featurePaymentName\": \"Payments\",\n \"cli_featurePaymentDescription\": \"WeChat Pay, Alipay and Stripe integration\",\n \"cli_featureVecdbName\": \"Vector database\",\n \"cli_featureVecdbDescription\": \"Vector search with LanceDB, pgvector or Qdrant\",\n \"cli_featureDatapipeName\": \"Data pipeline\",\n \"cli_featureDatapipeDescription\": \"Text cleaning, chunking and composable processing pipelines\",\n \"cli_featureSchedulerName\": \"Task scheduler\",\n \"cli_featureSchedulerDescription\": \"Cron task registration, execution and logs\",\n \"cli_featureDeployName\": \"Deployment\",\n \"cli_featureDeployDescription\": \"Deployment orchestration and multi-platform releases\",\n \"cli_featureApiClientName\": \"HTTP client\",\n \"cli_featureApiClientDescription\": \"Typed API calls, errors and streaming requests\",\n \"cli_featureCapacitorName\": \"Mobile capabilities\",\n \"cli_featureCapacitorDescription\": \"Capacitor native bridge for mobile applications\",\n \"cli_createInvalidName\": \"Invalid project name: \\\"{name}\\\"; use only lowercase letters, digits and hyphens\",\n \"cli_createOverwrite\": \"Directory {name} already exists. Overwrite it?\",\n \"cli_cancelled\": \"Cancelled\",\n \"cli_createDirectory\": \"Creating project directory...\",\n \"cli_createFiles\": \"Generating project files...\",\n \"cli_createGit\": \"Initializing Git repository...\",\n \"cli_createInstall\": \"Installing dependencies ({manager})...\",\n \"cli_cancelledLine\": \"\\nCancelled\",\n \"cli_createNamePrompt\": \"Project name:\",\n \"cli_createNameRequired\": \"Project name is required\",\n \"cli_createNamePattern\": \"Project names may contain only lowercase letters, digits and hyphens\",\n \"cli_createTypePrompt\": \"Application type:\",\n \"cli_createManagerPrompt\": \"Package manager:\",\n \"cli_createPnpmRecommended\": \"pnpm (recommended)\",\n \"cli_createInstallPrompt\": \"Install dependencies?\",\n \"cli_createGitPrompt\": \"Initialize a Git repository?\",\n \"cli_createRemotePrompt\": \"Git remote URL (optional; Enter to skip):\",\n \"cli_createRemoteInvalid\": \"Enter a valid Git remote URL (https://... or git@...:...)\",\n \"cli_createModuleConfig\": \" ⚙ Module configuration\",\n \"cli_createModuleConfigHint\": \" Configure key settings (Enter to use defaults)\",\n \"cli_createCoreConfig\": \" [core] Application configuration\",\n \"cli_createLocalePrompt\": \"Default application locale:\",\n \"cli_createChineseLocale\": \"Chinese (zh-CN)\",\n \"cli_createDbConfig\": \" [db] Database configuration\",\n \"cli_createDbTypePrompt\": \"Database type:\",\n \"cli_createSqliteOption\": \"SQLite (no setup, for development)\",\n \"cli_createSqlitePathPrompt\": \"SQLite database path:\",\n \"cli_createDbHostPrompt\": \"{backend} host:\",\n \"cli_createPortPrompt\": \"Port:\",\n \"cli_createDatabasePrompt\": \"Database name:\",\n \"cli_createCacheConfig\": \" [cache] Cache configuration\",\n \"cli_createCacheTypePrompt\": \"Cache type:\",\n \"cli_createMemoryOption\": \"In-memory cache (no setup, for development)\",\n \"cli_createRedisHostPrompt\": \"Redis host:\",\n \"cli_createRedisPortPrompt\": \"Redis port:\",\n \"cli_createIamConfig\": \" [iam] Authentication and authorization\",\n \"cli_createPasswordPrompt\": \"Enable password login?\",\n \"cli_createOtpPrompt\": \"Enable OTP login?\",\n \"cli_createStorageConfig\": \" [storage] File storage configuration\",\n \"cli_createStorageTypePrompt\": \"Storage type:\",\n \"cli_createLocalStorageOption\": \"Local storage (no setup, for development)\",\n \"cli_createStoragePathPrompt\": \"Storage path:\",\n \"cli_createAiConfig\": \" [ai] AI configuration\",\n \"cli_createCompatibleAiOption\": \"Other (OpenAI-compatible)\",\n \"cli_createModelPrompt\": \"Default model:\",\n \"cli_createSuccess\": \"✔ Project created!\",\n \"cli_createFeatures\": \"Enabled features:\",\n \"cli_nextSteps\": \"Next steps:\",\n \"cli_featureKitName\": \"SvelteKit integration\",\n \"cli_featureUiName\": \"UI components\",\n \"cli_projectNotFound\": \"No project found (package.json is missing)\",\n \"cli_addAllInstalled\": \"All modules are already installed!\",\n \"cli_addModulePrompt\": \"Select a module:\",\n \"cli_addUnknownModule\": \"Unknown module: {module}\",\n \"cli_addAvailableModules\": \"Available modules: {modules}\",\n \"cli_addSupportCompleted\": \"Module {module} is already installed; missing AI support files were added\",\n \"cli_addAlreadyInstalled\": \"Module {module} is already installed\",\n \"cli_addUpdateManifest\": \"Updating package.json...\",\n \"cli_addConfig\": \"Generating configuration config/_{config}.yml...\",\n \"cli_addConfigExists\": \"Configuration already exists: config/_{config}.yml\",\n \"cli_addDependencyConfig\": \" + config/_{config}.yml (dependency)\",\n \"cli_addInstall\": \"Installing dependencies...\",\n \"cli_addSuccess\": \"✔ Module {module} added!\",\n \"cli_addPackages\": \"Added packages:\",\n \"cli_addFailed\": \"Adding module failed:\",\n \"cli_initDetecting\": \"Detecting project...\",\n \"cli_initDetected\": \"Detected project: {name}\",\n \"cli_initStatus\": \"Project status:\",\n \"cli_initName\": \" Name: {name}\",\n \"cli_initVersion\": \" Version: {version}\",\n \"cli_none\": \"None\",\n \"cli_initModules\": \" Installed modules: {modules}\",\n \"cli_initExisting\": \"Existing configuration:\",\n \"cli_initReady\": \"✔ All configuration files are ready!\",\n \"cli_initMissing\": \"Missing configuration:\",\n \"cli_initGenerating\": \"Generating missing configuration files...\",\n \"cli_initGenerated\": \"Generated {count} configuration files\",\n \"cli_initRegenerating\": \"Regenerating all configuration files...\",\n \"cli_initRegenerated\": \"Regenerated {count} configuration files\",\n \"cli_initCore\": \"Generating core configuration config/_core.yml...\",\n \"cli_initSuccess\": \"✔ Project configuration initialized!\",\n \"cli_initEditConfig\": \" 1. Edit the configuration files in config/\",\n \"cli_initStartDev\": \" 2. Run pnpm dev to start the development server\",\n \"cli_initFailed\": \"Initialization failed:\",\n \"cli_createTagline\": \" AI-Native · Configuration-Driven · Security-First\",\n \"cli_createRemoteFailure\": \"Invalid Git remote URL: {remote}\",\n \"cli_createProviderPrompt\": \"AI provider:\",\n \"cli_addSupportFile\": \" + {file} (AI support)\",\n \"cli_coreLabel\": \"Core\",\n \"cli_serviceLabel\": \"Service\",\n \"cli_yes\": \"Yes\",\n \"cli_no\": \"No\",\n \"cli_createEnglishLocale\": \"English (en-US)\",\n \"cli_createJapaneseLocale\": \"Japanese (ja-JP)\",\n \"cli_help_feedback\": \"Offline diagnostic bundles: inspect / summary / evidence / view\",\n \"cli_feedback_page\": \"Evidence page number\",\n \"cli_feedback_pageSize\": \"Items per page (maximum 100)\",\n \"cli_feedback_kind\": \"Evidence kind\",\n \"cli_feedback_requestId\": \"Filter by request ID\",\n \"cli_feedback_errorId\": \"Filter by error ID\",\n \"cli_feedback_from\": \"Start timestamp in milliseconds\",\n \"cli_feedback_to\": \"End timestamp in milliseconds\",\n \"cli_feedback_port\": \"Loopback viewer port (random by default)\",\n \"cli_feedback_invalidOptions\": \"Invalid evidence query or viewer port\",\n \"cli_feedback_invalidAction\": \"Supported actions: inspect, summary, evidence, view\",\n \"cli_feedback_invalidBundle\": \"Invalid or oversized feedback bundle file\",\n \"cli_feedback_viewerStarted\": \"Offline viewer: {url} (Ctrl+C to close)\",\n \"cli_featureFeedbackName\": \"Feedback\",\n \"cli_featureFeedbackDescription\": \"User evidence, private screenshots, administrator review and offline diagnostic bundles\",\n \"cli_deploy_processEnvironment\": \"the current deployment process environment\",\n \"cli_deploy_adminPasswordSource\": \" Administrator: admin; initial password variable HAI_ADMIN_DEFAULT_PASSWORD, source: {source}. Used only for initial administrator creation; existing accounts keep their password.\",\n \"cli_deploy_bundle_configure_ssh\": \"Add or update the saved SSH deployment settings for this environment?\",\n \"cli_deploy_inputPASSWORDKEEP\": \"SSH password (leave blank to keep the saved password)\",\n \"cli_build_app_platform\": \"App packaging requires android or ios; iOS requires macOS and Xcode.\",\n \"cli_build_app_missing\": \"Missing {platform} native project. Add the platform and configure its toolchain first.\",\n \"cli_build_app_reload\": \"The release project contains a development reload URL. Packaging stopped.\",\n \"cli_build_app_artifact\": \"The native build did not produce a valid new APK or IPA.\",\n \"cli_build_ios_runtime\": \"iOS IPA builds require macOS and Xcode. Omit --runtime.\",\n \"cli_build_android_dockerfile\": \"The Capacitor Android build Dockerfile is missing. Install the project's @h-ai/capacitor dependency.\",\n \"cli_build_android_signing\": \"Containerized Android release builds require valid HAI_ANDROID_KEYSTORE, HAI_ANDROID_STORE_PASSWORD, HAI_ANDROID_KEY_ALIAS and HAI_ANDROID_KEY_PASSWORD.\",\n \"cli_build_native_directory\": \"The native project directory must exist within the project.\",\n \"cli_build_desktop_artifact\": \"Tauri did not produce a new system installer.\",\n \"cli_help_deployPlan\": \"Read-only deployment identity, scope, artifacts, configuration sources, baseline and recovery\",\n \"cli_deploy_plan_options\": \"--plan cannot build, bundle or write output.\",\n \"cli_help_upgrade\": \"Check an exact framework release and local drift without changing files\",\n \"cli_upgrade_exact_version\": \"Provide an exact version, not latest, a tag or a range.\",\n \"cli_upgrade_registry\": \"Release inspection requires an HTTPS registry URL without embedded credentials.\",\n \"cli_help_inspectRemote\": \"With --plan, inspect the successful baseline over SSH without target writes\",\n \"cli_upgrade_lock_invalid\": \"Unable to read the lockfile. Fix its YAML and run pnpm install.\",\n \"cli_deploy_secrets_options\": \"Use --import with a private JSON file; runtime must be docker/podman and committing requires --apply\",\n \"cli_build_project_name_required\": \"The root package.json.name must be a non-empty project name suitable for resource naming.\",\n \"cli_help_defaults\": \"Use defaults without prompts (full modules and examples)\",\n \"cli_createDirectoryExists\": \"The target directory exists. Choose another name or handle it interactively.\",\n \"cli_help_buildConcurrency\": \"Concurrent image builds: 1 or 2 (default: 2)\",\n \"cli_build_concurrency_invalid\": \"Image concurrency must be 1 or 2; --concurrency is only for image builds.\",\n \"cli_deploy_https_mode\": \"HTTPS certificate (optional)\",\n \"cli_deploy_https_keep\": \"Keep the existing HTTPS configuration\",\n \"cli_deploy_https_off\": \"Use HTTP\",\n \"cli_deploy_https_files\": \"Use existing PEM certificate and private key\",\n \"cli_deploy_httpsDomain\": \"HTTPS domain\",\n \"cli_deploy_httpsPort\": \"Public HTTPS port\",\n \"cli_deploy_httpsCertificate\": \"PEM full certificate chain path (project relative or absolute)\",\n \"cli_deploy_httpsPrivateKey\": \"PEM private key path (project relative or absolute)\",\n \"cli_deploy_httpsEmail\": \"Let’s Encrypt contact email\",\n \"cli_deploy_https_requirements\": \"Certbot uses HTTP-01: point the domain to the server, expose public port 80 and allow server access to Let’s Encrypt. HTTP will use port 80.\",\n \"cli_deploy_https_terms\": \"Agree to the Let’s Encrypt terms (https://letsencrypt.org/repository/) and enable automatic renewal?\",\n \"cli_deploy_https_saved\": \"HTTPS settings saved to the selected private environment. Mode, domain or port changes require a full deployment; certificates are issued or installed on the server during deployment.\",\n \"cli_deploy_stage_https\": \"Issuing or installing the HTTPS certificate\",\n \"cli_help_imageSource\": \"Image source: official, cn, or custom\",\n \"cli_help_imageMirrors\": \"Custom mappings: docker.io=host/path,ghcr.io=host/path\",\n \"cli_help_npmSource\": \"npm source: official, cn, or custom (deploy requires --build)\",\n \"cli_help_npmRegistry\": \"Custom npm registry HTTP(S) URL\",\n \"cli_help_proxyMode\": \"Proxy mode: inherit, system, custom, or none\",\n \"cli_help_proxyUrl\": \"Custom HTTP(S) proxy URL without credentials\",\n \"cli_help_proxyBypass\": \"Comma-separated proxy bypass hosts/domains\",\n \"cli_download_invalid\": \"Invalid download source or proxy configuration. Check the source type, URL, and option combinations.\",\n \"cli_download_official\": \"Official\",\n \"cli_download_cn\": \"Mainland China (images: 1ms; npm: npmmirror)\",\n \"cli_download_custom\": \"Custom\",\n \"cli_download_inherit\": \"Inherit process proxy\",\n \"cli_download_system\": \"Read static system proxy\",\n \"cli_download_none\": \"Disable proxy for this build\",\n \"cli_download_choose_image\": \"Choose an image source (saved as the project default)\",\n \"cli_download_choose_npm\": \"Choose an npm source (saved as the project default)\",\n \"cli_download_choose_proxy\": \"Choose a download proxy mode (saved as the project default)\",\n \"cli_download_image_mirrors\": \"Enter mappings, e.g. docker.io=mirror.example.com/docker.io,ghcr.io=mirror.example.com/ghcr.io\",\n \"cli_download_npm_registry\": \"Enter the npm registry URL\",\n \"cli_download_proxy_url\": \"Enter an HTTP(S) proxy URL without credentials\",\n \"cli_download_proxy_unreachable\": \"Cannot connect to the host proxy. Check its address, port, and service status.\",\n \"cli_download_engine_proxy_configured\": \"Image pull preflight: Docker reports proxy settings; the actual pull still runs in the engine.\",\n \"cli_download_engine_proxy_local\": \"Image pull preflight: local Podman can inherit the process proxy; the build container is checked separately.\",\n \"cli_download_engine_proxy_hint\": \"Image pull preflight: build arguments cannot configure the remote {runtime} engine proxy. Configure Docker Desktop proxies or the Podman Machine/API service. The build container proxy is checked separately.\",\n \"cli_download_template_required\": \"This Dockerfile does not support the selected source. Update HAI_NODE_IMAGE, HAI_NGINX_IMAGE, and HAI_NPM_REGISTRY from the current template: {path}\",\n \"cli_build_dependency_context_unsafe\": \"Cannot safely update dependency build cache: {path}. Reason: {reason}; diagnostic: {diagnostic}. Check this path before retrying.\",\n \"cli_build_dependency_reason_invalid\": \"The path contains a link or has an unsupported file type or size\",\n \"cli_build_dependency_reason_changed\": \"The file or directory changed during validation\",\n \"cli_build_dependency_reason_read\": \"Cannot read the cache; check access permissions and file locks\",\n \"cli_build_dependency_reason_write\": \"Cannot write or publish the cache; check access permissions, disk space and file locks\",\n \"cli_build_dependency_reason_tracking\": \"The cache tracking manifest is not valid JSON\"\n}\n","{\n \"cli_createFailed\": \"プロジェクトの作成に失敗しました:\",\n \"cli_build_static_flag\": \"HAI_BUILD_STATICは0または1です。省略/0はSSR、1はwebsiteの静的構築を有効にします。\",\n \"cli_build_static_base\": \"PUBLIC_BASE_PATHは空、または/で始まるサイト内ディレクトリーです。外部URL、末尾の/、クエリー、フラグメント、パス逸脱は使えません。\",\n \"cli_build_base_requires_web\": \"PUBLIC_BASE_PATHにはwebイメージの宣言が必要です。独立APIのルート接頭辞はサービス設定で指定してください。\",\n \"cli_build_static_target\": \"HAI_BUILD_STATICは静的compile専用です。PUBLIC_BASE_PATHはcompileとimageサイト構築で使用できますが、appやdesktopのネイティブ対象には使用できません。\",\n \"cli_installFailed\": \"依存関係のインストールに失敗しました({pm})。\",\n \"cli_commandLabel\": \"コマンド: {command}\",\n \"cli_exitCode\": \"終了コード: {code}\",\n \"cli_signal\": \"シグナル: {signal}\",\n \"cli_selectHint\": \"- ↑/↓で選択、Enterで確定\",\n \"cli_multiselectHint\": \"- Spaceで選択、Enterで確定\",\n \"cli_frontendsPrompt\": \"フロントエンドの対象を選択してください:\",\n \"cli_invalidGenerateName\": \"英字で始まり、英数字、ハイフン、アンダースコアのみを含む名前を使用してください\",\n \"cli_generateOutsideWorkspace\": \"シンボリックリンクの参照先を含め、生成ファイルはワークスペース内に配置してください\",\n \"cli_generateExists\": \"ファイルは既に存在します: {path}。上書きするには--forceを使用してください\",\n \"cli_deploy_module_missing\": \"デプロイモジュールが見つかりません。先に@h-ai/deployをインストールしてください:\",\n \"cli_deploy_load_credentials\": \"認証情報を読み込み中...\",\n \"cli_deploy_credentials_failed\": \"認証情報の読み込みに失敗しました: {message}\",\n \"cli_deploy_credentials_loaded\": \"認証情報を{count}件読み込みました\",\n \"cli_deploy_load_config\": \"デプロイ設定を読み込み中...\",\n \"cli_deploy_config_missing\": \"デプロイ設定が見つかりません: {path}\",\n \"cli_deploy_config_hint\": \"hai add deployを実行して設定テンプレートを生成してください\",\n \"cli_deploy_config_loaded\": \"デプロイ設定を読み込みました\",\n \"cli_deploy_scanning\": \"アプリケーションをスキャン中...\",\n \"cli_deploy_scan_failed\": \"スキャンに失敗しました: {message}\",\n \"cli_deploy_scanned\": \"スキャン完了: {name}(SvelteKit: {sveltekit}、サービス: {services})\",\n \"cli_deploy_none\": \"なし\",\n \"cli_deploy_initializing\": \"デプロイモジュールを初期化中...\",\n \"cli_deploy_init_failed\": \"初期化に失敗しました: {message}\",\n \"cli_deploy_initialized\": \"デプロイモジュールを初期化しました\",\n \"cli_deploy_deploying\": \"アプリケーションをデプロイ中...\",\n \"cli_deploy_failed\": \"デプロイに失敗しました: {message}\",\n \"cli_deploy_success\": \"デプロイが完了しました!\",\n \"cli_deploy_url\": \" URL: {url}\",\n \"cli_deploy_id\": \" ID: {id}\",\n \"cli_deploy_command_failed\": \"デプロイコマンドに失敗しました\",\n \"cli_adminPasswordSaved\": \" 初期アカウント:admin(システム)、audit_admin(監査)、config_admin(業務設定)、business_operator(業務操作)。アカウント・環境ごとに独立したパスワードを .env.dev.local / .env.test.local / .env.prod.local に保存:HAI_ADMIN_DEFAULT_PASSWORD、HAI_AUDIT_ADMIN_PASSWORD、HAI_CONFIG_ADMIN_PASSWORD、HAI_BUSINESS_OPERATOR_PASSWORD。初回起動時に作成し、既存パスワードは変更しません。\",\n \"cli_deploy_environment\": \"デプロイ環境(test / prod / その他)\",\n \"cli_deploy_cancelled\": \"デプロイをキャンセルしました。\",\n \"cli_deploy_environment_hint\": \"--env <environment>を指定してください。非対話実行には--yesも必要です。ミドルウェアを選択する場合はターミナルを使用してください。\",\n \"cli_deploy_middleware\": \"{service}: 現在の既定値{backend}、{purpose}。設定元: {source}\",\n \"cli_deploy_action\": \"{service}をどのように設定しますか?\",\n \"cli_deploy_default\": \"既定の設定を使用\",\n \"cli_deploy_custom\": \"カスタム設定を使用\",\n \"cli_deploy_keep\": \"変更しない\",\n \"cli_deploy_backend\": \"{service}のバックエンドを選択してください\",\n \"cli_deploy_field\": \"{description}({constraint})\",\n \"cli_deploy_connection_method\": \"{backend} の接続情報の入力方法を選択してください\",\n \"cli_deploy_connection_fields\": \"ホスト、ポートなどを個別に入力\",\n \"cli_deploy_connection_url\": \"接続 URL を使用\",\n \"cli_deploy_connection_url_prompt\": \"接続 URL(非表示入力)。例: {example}\",\n \"cli_deploy_connection_address\": \"{service} の接続先(スキームとホストのみ): {address}\",\n \"cli_deploy_mysql_url_invalid\": \"ホストを含む mysql:// 接続 URL を入力してください。クエリとフラグメントは使用できません。\",\n \"cli_deploy_postgres_url_invalid\": \"postgresql:// または postgres:// 接続 URL を入力し、ホストとパス内のデータベース名を指定してください。\",\n \"cli_deploy_redis_url_invalid\": \"ホストを含む redis:// または rediss:// 接続 URL を入力してください。TLS には rediss:// を使用します。\",\n \"cli_deploy_middleware_field_error\": \"{variable}: {reason}\",\n \"cli_deploy_config_unknown_fields\": \"このオブジェクトの未対応フィールドを削除してください。\",\n \"cli_deploy_s3_endpoint\": \"S3 API エンドポイント(HTTP または HTTPS、バケット名を除く)。例: http://storage.example.com:9000。AWS S3 では空欄にできます。\",\n \"cli_deploy_s3_bucket\": \"バケット名のみ(例: uploads)\",\n \"cli_deploy_s3_region\": \"ストレージサービスが指定するリージョン(例: us-east-1)\",\n \"cli_deploy_s3_access_key\": \"ストレージサービスが発行した S3 アクセスキー ID\",\n \"cli_deploy_s3_secret_key\": \"アクセスキー ID と対になるシークレットアクセスキー(非表示入力)\",\n \"cli_deploy_s3_path_style\": \"バケットの指定方式。true は endpoint/bucket(MinIO や RustFS で一般的)、false は bucket.endpoint。サービスの要件に従ってください。\",\n \"cli_deploy_required\": \"この値は必須です\",\n \"cli_deploy_invalid_value\": \"値がフィールドの制約を満たしていません\",\n \"cli_deploy_cloud_unsupported\": \"{backend}用のクラウドプロビジョナーはありません。カスタム接続または対応するバックエンドを選択してください。\",\n \"cli_deploy_saved\": \"{service} の設定を保存しました(公開設定は対象の環境ファイル、認証情報は対象環境のプライベート .env ファイルに保存)\",\n \"cli_deploy_missing_keep\": \"対象環境に維持できる完全な{service}設定がありません。\",\n \"cli_deploy_s3_engine\": \"S3サービスの実装を選択してください(アプリの型はs3のままです)\",\n \"cli_deploy_target_reused\": \"保存済みのデプロイ先 {target} を再利用します。\",\n \"cli_deploy_target_missing\": \"デプロイ先の設定が不完全です:{fields}。デプロイ先を設定するか、対話モードで設定を完了してください。\",\n \"cli_deploy_target_platform\": \"デプロイプラットフォームを選択してください\",\n \"cli_deploy_target_ssh\": \"SSHサーバー(Docker / Podman Compose)\",\n \"cli_deploy_target_field\": \"{name}\",\n \"cli_deploy_target_ssh_hint\": \"接続とポートを設定し、秘密鍵またはパスワードを選択します。パスワードは表示しません。鍵のパスは空欄で ssh-agent/既定の鍵、known_hosts は空欄で OpenSSH の既定値を使用します。初回接続時のホスト指紋は信頼し、変更された指紋は拒否します。\",\n \"cli_deploy_target_runtime\": \"リモートのコンテナーランタイム(autoはPodmanを優先)\",\n \"cli_deploy_target_saved\": \"デプロイ先を現在の環境専用の非公開.envファイル(Git管理対象外)に保存しました。次回以降も再利用します。\",\n \"cli_deploy_target_auth\": \"SSH認証方式\",\n \"cli_deploy_target_auth_key\": \"秘密鍵またはSSH agent\",\n \"cli_deploy_target_auth_password\": \"パスワード\",\n \"cli_deploy_inputPASSWORD\": \"SSHパスワード(非表示、前後の空白を保持)\",\n \"cli_deploy_middleware_plan\": \"このデプロイでミドルウェアを設定しますか?\",\n \"cli_deploy_reach_empty\": \"Reach の通知プロバイダーが未設定です。{file} の HAI_REACH_PROVIDERS に完全な一覧を設定し、deploy を再実行してください。\",\n \"cli_deploy_middleware_configure\": \"各ミドルウェアサービスを確認して設定\",\n \"cli_deploy_middleware_skip\": \"環境設定済みのため直接デプロイ\",\n \"cli_deploy_middleware_skipped\": \"ミドルウェアの設定と準備をすべてスキップしました。現在の環境設定と既存サービスでデプロイします。\",\n \"cli_build_failed\": \"ビルドコマンド{command}に失敗しました(終了コード{code})。\",\n \"cli_build_use_pnpm\": \"プロジェクトのpnpm実行ファイルを使用するため、pnpm buildで実行してください。\",\n \"cli_build_target_invalid\": \"targetにはcompile、image、app、desktopを指定してください。\",\n \"cli_build_options_invalid\": \"イメージ選択、並列数、--json は image 用です。エンジン、ネットワーク、ダウンロード設定は image または Android コンテナ用、platform と debug はネイティブ用、arch は desktop 用です。\",\n \"cli_build_image_platform_invalid\": \"ビルドしたイメージのプラットフォームを判定できませんでした。\",\n \"cli_build_version_invalid\": \"アプリルートのpackage.jsonに有効な3部構成のバージョン(例: 1.2.3または1.2.3-beta.1、80文字以内)を設定してください。\",\n \"cli_build_native_host\": \"対応するOS(windows/linux/macos)とx64またはarm64でTauriをビルドしてください。先にRustターゲット、システムSDK、パッケージツールをインストールしてください。\",\n \"cli_project_config_invalid\": \"プロジェクト設定 {path} を読み込めません。ファイルの存在と、有効な JSON オブジェクトであることを確認してください。\",\n \"cli_build_desktop_missing\": \"hai.json の build セクションにdesktopディレクトリがありません。desktopフロントエンドを生成するか、既存のTauriプロジェクトを追加してください。\",\n \"cli_build_images_missing\": \"hai.json の build.images には、一意な名前と有効な Dockerfile を持つ serv、web、または両方が必要です。\",\n \"cli_build_runtime_missing\": \"PodmanまたはDockerをインストールして起動してください。autoは接続可能なPodmanを優先します。\",\n \"cli_build_ready\": \"ビルドの準備が完了しました({runtime}): {path}。これらのイメージはデプロイ環境間で再利用できます。\",\n \"cli_deploy_bundle_provider\": \"オフラインパッケージ化、組み込みのイメージビルド、サービスを選択したデプロイには docker-ssh Compose のデプロイ先が必要です。\",\n \"cli_deploy_bundle_target\": \"サーバーに接続せずバンドルを生成します。保存済み接続は deploy-target.json に反映されます。デプロイ前に確認してください。\",\n \"cli_deploy_bundle_ready\": \"デプロイバンドルの準備が完了しました。サーバーへのデプロイは実行していません。\",\n \"cli_deploy_bundle_path\": \"デプロイバンドル: {path}\",\n \"cli_build_selection_invalid\": \"build.images に存在する名前を選択してください:serv、web、serv,web。\",\n \"cli_build_dockerfile_missing\": \"Dockerfile が見つかりません:{path}。hai.json の build セクション を確認してください。\",\n \"cli_deploy_config_node\": \"{path} を更新できません:{field} は文字列や配列ではなく、設定オブジェクトで指定してください。\",\n \"cli_deploy_inputHOST\": \"サーバーアドレス\",\n \"cli_deploy_services_invalid\": \"サービスの選択が無効です。このプロジェクトで選択可能:{services}。\",\n \"cli_deploy_build_artifact_conflict\": \"新しい成果物をビルドする --build と既存の成果物を使用する --artifact-dir は併用できません。どちらかを選択してください。\",\n \"cli_deploy_build_options_required\": \"ビルド並列数、ネットワーク、プロキシ、SQLite バイナリーのオプションには --build が必要です。\",\n \"cli_deploy_artifact_invalid\": \"イメージのマニフェストまたはアーカイブの検証に失敗しました。再ビルドするか、--artifact-dir で有効な成果物を選択してください。\",\n \"cli_deploy_inputPORT\": \"SSH ポート(既定値22)\",\n \"cli_deploy_inputUSERNAME\": \"SSH ユーザー名\",\n \"cli_deploy_inputIDENTITYFILE\": \"SSH 秘密鍵ファイル(省略時はエージェントまたは既定の鍵を使用)\",\n \"cli_deploy_inputKNOWNHOSTSFILE\": \"サーバーフィンガープリントファイル(省略時は OpenSSH の既定値を使用)\",\n \"cli_deploy_inputBASEDIR\": \"サーバーのデプロイルートディレクトリ\",\n \"cli_deploy_inputHOSTPORT\": \"アプリケーションの公開ポート\",\n \"cli_deploy_inputCONTAINERPORT\": \"API コンテナーのポート\",\n \"cli_deploy_inputTOKEN\": \"Vercel アクセストークン\",\n \"cli_deploy_cloud_input_apiKey\": \"API アクセスキー\",\n \"cli_deploy_cloud_input_email\": \"アカウントのメールアドレス\",\n \"cli_deploy_cloud_input_accountId\": \"プラットフォームのアカウント ID\",\n \"cli_deploy_cloud_input_apiToken\": \"API アクセストークン\",\n \"cli_deploy_cloud_input_accessKeyId\": \"アクセスキー ID\",\n \"cli_deploy_cloud_input_secretAccessKey\": \"シークレットアクセスキー\",\n \"cli_deploy_cloud_input_accessKeySecret\": \"シークレットアクセスキー\",\n \"cli_deploy_cloud_input_signName\": \"承認済みの SMS 署名\",\n \"cli_deploy_cloud_input_from\": \"送信元アドレス(検証済みドメイン)\",\n \"cli_deploy_port_invalid\": \"1〜65535の整数を入力してください。\",\n \"cli_deploy_build_started\": \"先に選択したアプリケーションイメージをビルドしています…\",\n \"cli_deploy_services\": \"選択されたサービス:{services}\",\n \"cli_deploy_stage_packaging\": \"選択したイメージとミドルウェアをパッケージ化しています\",\n \"cli_deploy_stage_preflight\": \"サーバーとデプロイ基準を確認しています\",\n \"cli_deploy_stage_images\": \"オフラインイメージを読み込んでいます\",\n \"cli_deploy_stage_dependencies\": \"既存の依存サービスを確認しています\",\n \"cli_deploy_stage_start\": \"選択したサービスを更新しています\",\n \"cli_deploy_stage_health\": \"HTTP アクセスを検証しています\",\n \"cli_deploy_stage_complete\": \"サーバーのデプロイ検証に合格しました\",\n \"cli_deploy_choose_services\": \"更新するサービスを選択してください(初期状態は全選択、Space で切り替え)\",\n \"cli_deploy_config_invalid\": \"デプロイ設定が不完全または無効です。ファイル:{path}。次のフィールドを確認してください:{fields}。\",\n \"cli_help_verbose\": \"詳細な出力を表示\",\n \"cli_help_cwd\": \"作業ディレクトリ\",\n \"cli_help_create\": \"hai アプリケーションを作成\",\n \"cli_help_appType\": \"アプリケーション種別(admin、website、h5、api、mobile-app、fullstack)\",\n \"cli_help_frontends\": \"fullstack のフロントエンドをカンマ区切りで指定:web,app,miniapp,desktop\",\n \"cli_help_noInstall\": \"依存関係のインストールをスキップ\",\n \"cli_help_noDeploy\": \"デプロイツールとコマンドを省略\",\n \"cli_help_packageManager\": \"パッケージマネージャー(pnpm、npm、yarn)\",\n \"cli_help_noGit\": \"Git の初期化をスキップ\",\n \"cli_help_gitRemote\": \"Git リモート URL\",\n \"cli_help_add\": \"既存のアプリケーションにモジュールを追加\",\n \"cli_help_init\": \"プロジェクト設定を確認し、不足ファイルを補完\",\n \"cli_help_forceConfig\": \"モジュール設定を再生成\",\n \"cli_help_generate\": \"ひな形コードを生成\",\n \"cli_help_output\": \"出力先パス\",\n \"cli_help_force\": \"既存の出力ファイルを上書き\",\n \"cli_help_build\": \"ソースのコンパイル、コンテナーイメージのビルド、または Tauri インストーラーの作成\",\n \"cli_help_target\": \"成果物: compile(既定)/ image / desktop / app\",\n \"cli_help_buildJson\": \"このイメージビルドの JSON 結果だけを標準出力に書き込みます\",\n \"cli_help_images\": \"構築するイメージ:serv、web、serv,web\",\n \"cli_help_buildRuntime\": \"ローカルのコンテナーエンジン:auto(Podman を優先)、podman、docker\",\n \"cli_help_buildNetwork\": \"ビルド用ネットワーク。既定ではエンジン設定を使用(rootless Podman の pasta など)\",\n \"cli_help_platform\": \"ネイティブ: windows / linux / macos / android / ios\",\n \"cli_help_arch\": \"Tauri のアーキテクチャ:x64、arm64\",\n \"cli_help_buildDebug\": \"ネイティブのデバッグ版を生成します。既定はリリース版です。\",\n \"cli_help_noHttpProxy\": \"今回のビルドのプロキシを無効化(--proxy-mode none と同じ)\",\n \"cli_help_deploy\": \"アプリケーションをデプロイ、またはオフラインバンドルを作成\",\n \"cli_help_environment\": \"デプロイ環境(test/prod など)。対応する環境ファイルが必要です\",\n \"cli_help_envDir\": \"環境ファイルのディレクトリ。既定では自動検出\",\n \"cli_help_deployYes\": \"プロンプトを表示せず保存済み設定または既定値を使用し、不足する必須項目を報告\",\n \"cli_help_skipMiddleware\": \"ミドルウェアが設定済みの場合、設定とリソース準備をスキップ\",\n \"cli_help_artifactDir\": \"manifest.json を含む既存イメージ成果物のディレクトリ\",\n \"cli_help_services\": \"serv、web、serv,web など、更新するサービスを指定します。省略時は成果物内の全サービスを更新します。\",\n \"cli_help_deployBuild\": \"パッケージ化やデプロイの前に選択したアプリケーションイメージをビルド。--bundle-only と併用可能\",\n \"cli_help_deployNetwork\": \"--build のコンテナーネットワーク。既定ではエンジン設定を使用\",\n \"cli_help_deployNoProxy\": \"今回のビルドのプロキシを無効化(--proxy-mode none と同じ)\",\n \"cli_help_deployRuntime\": \"イメージビルドとミドルウェアのエクスポート用ローカルエンジン:auto、podman、docker\",\n \"cli_help_bundleOnly\": \"接続せずにオフライン tar と Windows/Linux/macOS 用デプロイスクリプトを作成\",\n \"cli_help_bundleOutput\": \"デプロイ tar の出力先。アプリケーションのバージョンを自動で付加\",\n \"cli_help_generatePage\": \"ページを生成\",\n \"cli_help_generateComponent\": \"コンポーネントを生成\",\n \"cli_help_generateApi\": \"API エンドポイントを生成\",\n \"cli_help_generateModel\": \"データモデルを生成\",\n \"cli_generateUnsupportedProject\": \"このプロジェクトまたはワークスペースは指定された生成機能に対応していません。ページには SvelteKit、API には SvelteKit または serv が必要です。--workspace でアプリケーションを選択してください。\",\n \"cli_generateAmbiguousWorkspace\": \"複数のワークスペースがこの生成機能に対応しています。--workspace でパッケージ名または相対パスを指定してください。\",\n \"cli_generateUnsupportedAggregator\": \"契約と procedure の集約箇所を安全に特定できません。CLI テンプレートの @hai-generator マーカーを保持するか、既存の構造を手動で拡張してください。\",\n \"cli_generateInvalidRouteOutput\": \"ルートの出力先は SvelteKit の src/routes 内に指定してください。serv は既存の契約と procedure ディレクトリを使用するため、--output は指定できません。\",\n \"cli_generateDomainExists\": \"契約または procedure のドメインが既に存在します:{name}。既存の業務登録を置き換えることはできません。\",\n \"cli_generateRollbackFailed\": \"生成に失敗し、ロールバックまたは一時ファイルの削除も完了できませんでした。再試行する前にエラーに示されたファイルを確認してください。\",\n \"cli_help_workspace\": \"対象ワークスペースのパッケージ名または相対パス。該当するアプリケーションが1つの場合は自動選択\",\n \"cli_generateCustomRoutes\": \"この SvelteKit 設定は kit.files をカスタマイズしています。ルート構造を推測できないため、既存のルートを手動で拡張してください。\",\n \"cli_generatePageDescription\": \"SvelteKit ページ\",\n \"cli_generateComponentDescription\": \"Svelte コンポーネント\",\n \"cli_generateApiDescription\": \"API エンドポイント\",\n \"cli_generateModelDescription\": \"データモデル\",\n \"cli_generateMigrationDescription\": \"データベースマイグレーション\",\n \"cli_generateProgress\": \"{description} を生成しています...\",\n \"cli_generateComplete\": \"生成が完了しました\",\n \"cli_generateFiles\": \"生成または更新したファイル:\",\n \"cli_generateFailed\": \"生成に失敗しました\",\n \"cli_generateFailureDetail\": \"エラーの詳細:\",\n \"cli_generateTypePrompt\": \"生成する種類を選択してください:\",\n \"cli_generateNamePrompt\": \"名前:\",\n \"cli_generateNameRequired\": \"名前は必須です\",\n \"cli_generateCancelled\": \"生成をキャンセルしました。ファイルは書き込まれていません\",\n \"cli_generateUnknownType\": \"不明な生成種別:{type}\",\n \"cli_deploy_local_confirmed\": \"ローカルコマンドツリー:終了を確認しました。\",\n \"cli_deploy_local_unknown\": \"ローカルコマンドツリー:終了は未確認です。\",\n \"cli_deploy_local_not_started\": \"ローカルコマンドツリー:起動していません。\",\n \"cli_deploy_recovery_not_needed\": \"復旧状態:復旧は不要です。デプロイ段階とサービスの稼働状態を確認してください。\",\n \"cli_deploy_recovery_passed\": \"復旧状態:旧版サービスとヘルスチェックが正常です。業務データは元に戻していません。\",\n \"cli_deploy_recovery_failed\": \"復旧状態:旧版サービスの復旧確認に失敗しました。再試行する前に結果ファイルとサービスログを確認し、復旧してください。\",\n \"cli_deploy_recovery_stopped\": \"復旧状態:利用可能な旧版がないため、新しいサービスを停止しました。問題を修正してから再デプロイしてください。\",\n \"cli_deploy_remote_unknown\": \"リモートデプロイの実行状態:不明です。確認せずに再試行したり、サービスを停止したりしないでください。\",\n \"cli_deploy_remote_finished\": \"リモートデプロイスクリプトと復旧処理が終了しました。サービスの稼働状態を確認してください。コンテナーの稼働は失敗したスクリプトの実行継続を意味しません。\",\n \"cli_deploy_result_check\": \"デプロイ {id}:サーバーの結果ファイル {path} を確認してください。\",\n \"cli_appAdminName\": \"管理コンソール\",\n \"cli_appAdminDescription\": \"IAM、データベース、UI を備えたエンタープライズ管理画面\",\n \"cli_appWebsiteName\": \"企業サイト\",\n \"cli_appWebsiteDescription\": \"レスポンシブで SEO に対応した SSR/SSG サイト\",\n \"cli_appH5Name\": \"H5 アプリケーション\",\n \"cli_appH5Description\": \"タッチ操作と PWA に対応したモバイル H5 アプリケーション\",\n \"cli_appApiName\": \"API サービス\",\n \"cli_appApiDescription\": \"UI を含まず、契約とサービスを別パッケージに分けた型付き API ワークスペース\",\n \"cli_appMobileName\": \"モバイルアプリケーション\",\n \"cli_appMobileDescription\": \"Android/iOS 向けの Capacitor + Svelte 5 + Vite アプリケーション\",\n \"cli_appFullstackName\": \"フルスタックワークスペース\",\n \"cli_appFullstackDescription\": \"ユーザー、ロール、監査、設定、既定の問題報告と双方向トランスポート暗号化に対応した複数クライアント向け管理アプリケーション\",\n \"cli_frontendWebDescription\": \"ブラウザー向け Web アプリケーション\",\n \"cli_frontendAppDescription\": \"モバイル Capacitor アプリケーション / H5 フロントエンド\",\n \"cli_frontendMiniappName\": \"ミニアプリ\",\n \"cli_frontendMiniappDescription\": \"予約済みの対象。説明用のプレースホルダーのみ生成します\",\n \"cli_frontendDesktopName\": \"デスクトップ\",\n \"cli_frontendDesktopDescription\": \"Tauri デスクトップフロントエンド\",\n \"cli_featureIamName\": \"認証とアクセス管理\",\n \"cli_featureIamDescription\": \"セッション/JWT 認証と RBAC 認可\",\n \"cli_featureDbName\": \"データベース\",\n \"cli_featureDbDescription\": \"SQLite、PostgreSQL、MySQL に対応\",\n \"cli_featureCacheName\": \"キャッシュ\",\n \"cli_featureCacheDescription\": \"Redis / メモリーキャッシュ\",\n \"cli_featureAiName\": \"AI 連携\",\n \"cli_featureAiDescription\": \"LLM アダプター、MCP、スキル、ストリーミング応答\",\n \"cli_featureStorageName\": \"ファイルストレージ\",\n \"cli_featureStorageDescription\": \"ローカルストレージと S3/OSS/COS クラウドストレージ\",\n \"cli_featureCryptoName\": \"暗号化\",\n \"cli_featureCryptoDescription\": \"SM2/SM3/SM4 と Argon2 パスワードハッシュ\",\n \"cli_featureAuditName\": \"監査ログ\",\n \"cli_featureAuditDescription\": \"操作監査とセキュリティ追跡\",\n \"cli_featureReachName\": \"通知\",\n \"cli_featureReachDescription\": \"メール、SMS、WeChat 通知\",\n \"cli_featurePaymentName\": \"決済\",\n \"cli_featurePaymentDescription\": \"WeChat Pay、Alipay、Stripe 連携\",\n \"cli_featureVecdbName\": \"ベクトルデータベース\",\n \"cli_featureVecdbDescription\": \"LanceDB、pgvector、Qdrant によるベクトル検索\",\n \"cli_featureDatapipeName\": \"データパイプライン\",\n \"cli_featureDatapipeDescription\": \"テキスト整形、分割、組み合わせ可能な処理パイプライン\",\n \"cli_featureSchedulerName\": \"タスクスケジューラー\",\n \"cli_featureSchedulerDescription\": \"Cron タスクの登録、実行、ログ管理\",\n \"cli_featureDeployName\": \"デプロイ\",\n \"cli_featureDeployDescription\": \"デプロイの制御と複数プラットフォームへのリリース\",\n \"cli_featureApiClientName\": \"HTTP クライアント\",\n \"cli_featureApiClientDescription\": \"型付き API 呼び出し、エラー処理、ストリーミングリクエスト\",\n \"cli_featureCapacitorName\": \"モバイル機能\",\n \"cli_featureCapacitorDescription\": \"モバイルアプリケーション向け Capacitor ネイティブブリッジ\",\n \"cli_createInvalidName\": \"プロジェクト名が無効です:\\\"{name}\\\"。小文字の英字、数字、ハイフンのみ使用してください\",\n \"cli_createOverwrite\": \"ディレクトリ {name} は既に存在します。上書きしますか?\",\n \"cli_cancelled\": \"キャンセルしました\",\n \"cli_createDirectory\": \"プロジェクトディレクトリを作成しています...\",\n \"cli_createFiles\": \"プロジェクトファイルを生成しています...\",\n \"cli_createGit\": \"Git リポジトリを初期化しています...\",\n \"cli_createInstall\": \"依存関係をインストールしています({manager})...\",\n \"cli_cancelledLine\": \"\\nキャンセルしました\",\n \"cli_createNamePrompt\": \"プロジェクト名:\",\n \"cli_createNameRequired\": \"プロジェクト名は必須です\",\n \"cli_createNamePattern\": \"プロジェクト名には小文字の英字、数字、ハイフンのみ使用できます\",\n \"cli_createTypePrompt\": \"アプリケーション種別:\",\n \"cli_createManagerPrompt\": \"パッケージマネージャー:\",\n \"cli_createPnpmRecommended\": \"pnpm(推奨)\",\n \"cli_createInstallPrompt\": \"依存関係をインストールしますか?\",\n \"cli_createGitPrompt\": \"Git リポジトリを初期化しますか?\",\n \"cli_createRemotePrompt\": \"Git リモート URL(省略可、Enter でスキップ):\",\n \"cli_createRemoteInvalid\": \"有効な Git リモート URL を入力してください(https://... または git@...:...)\",\n \"cli_createModuleConfig\": \" ⚙ モジュール設定\",\n \"cli_createModuleConfigHint\": \" 主要設定を入力してください(Enter で既定値を使用)\",\n \"cli_createCoreConfig\": \" [core] アプリケーション設定\",\n \"cli_createLocalePrompt\": \"アプリケーションの既定の言語:\",\n \"cli_createChineseLocale\": \"中国語(zh-CN)\",\n \"cli_createDbConfig\": \" [db] データベース設定\",\n \"cli_createDbTypePrompt\": \"データベース種別:\",\n \"cli_createSqliteOption\": \"SQLite(設定不要、開発用)\",\n \"cli_createSqlitePathPrompt\": \"SQLite データベースパス:\",\n \"cli_createDbHostPrompt\": \"{backend} ホスト:\",\n \"cli_createPortPrompt\": \"ポート:\",\n \"cli_createDatabasePrompt\": \"データベース名:\",\n \"cli_createCacheConfig\": \" [cache] キャッシュ設定\",\n \"cli_createCacheTypePrompt\": \"キャッシュ種別:\",\n \"cli_createMemoryOption\": \"メモリーキャッシュ(設定不要、開発用)\",\n \"cli_createRedisHostPrompt\": \"Redis ホスト:\",\n \"cli_createRedisPortPrompt\": \"Redis ポート:\",\n \"cli_createIamConfig\": \" [iam] 認証と認可\",\n \"cli_createPasswordPrompt\": \"パスワードログインを有効にしますか?\",\n \"cli_createOtpPrompt\": \"OTP ログインを有効にしますか?\",\n \"cli_createStorageConfig\": \" [storage] ファイルストレージ設定\",\n \"cli_createStorageTypePrompt\": \"ストレージ種別:\",\n \"cli_createLocalStorageOption\": \"ローカルストレージ(設定不要、開発用)\",\n \"cli_createStoragePathPrompt\": \"ストレージパス:\",\n \"cli_createAiConfig\": \" [ai] AI 設定\",\n \"cli_createCompatibleAiOption\": \"その他(OpenAI 互換)\",\n \"cli_createModelPrompt\": \"既定のモデル:\",\n \"cli_createSuccess\": \"✔ プロジェクトを作成しました!\",\n \"cli_createFeatures\": \"有効な機能:\",\n \"cli_nextSteps\": \"次の手順:\",\n \"cli_featureKitName\": \"SvelteKit 連携\",\n \"cli_featureUiName\": \"UI コンポーネント\",\n \"cli_projectNotFound\": \"プロジェクトが見つかりません(package.json がありません)\",\n \"cli_addAllInstalled\": \"すべてのモジュールは既にインストールされています!\",\n \"cli_addModulePrompt\": \"モジュールを選択してください:\",\n \"cli_addUnknownModule\": \"不明なモジュール:{module}\",\n \"cli_addAvailableModules\": \"利用可能なモジュール:{modules}\",\n \"cli_addSupportCompleted\": \"モジュール {module} は既にインストールされています。不足していた AI 支援ファイルを追加しました\",\n \"cli_addAlreadyInstalled\": \"モジュール {module} は既にインストールされています\",\n \"cli_addUpdateManifest\": \"package.json を更新しています...\",\n \"cli_addConfig\": \"設定 config/_{config}.yml を生成しています...\",\n \"cli_addConfigExists\": \"設定は既に存在します:config/_{config}.yml\",\n \"cli_addDependencyConfig\": \" + config/_{config}.yml(依存関係)\",\n \"cli_addInstall\": \"依存関係をインストールしています...\",\n \"cli_addSuccess\": \"✔ モジュール {module} を追加しました!\",\n \"cli_addPackages\": \"追加したパッケージ:\",\n \"cli_addFailed\": \"モジュールの追加に失敗しました:\",\n \"cli_initDetecting\": \"プロジェクトを検出しています...\",\n \"cli_initDetected\": \"プロジェクトを検出しました:{name}\",\n \"cli_initStatus\": \"プロジェクトの状態:\",\n \"cli_initName\": \" 名前:{name}\",\n \"cli_initVersion\": \" バージョン:{version}\",\n \"cli_none\": \"なし\",\n \"cli_initModules\": \" インストール済みモジュール:{modules}\",\n \"cli_initExisting\": \"既存の設定:\",\n \"cli_initReady\": \"✔ すべての設定ファイルが揃っています!\",\n \"cli_initMissing\": \"不足している設定:\",\n \"cli_initGenerating\": \"不足している設定ファイルを生成しています...\",\n \"cli_initGenerated\": \"設定ファイルを {count} 件生成しました\",\n \"cli_initRegenerating\": \"すべての設定ファイルを再生成しています...\",\n \"cli_initRegenerated\": \"設定ファイルを {count} 件再生成しました\",\n \"cli_initCore\": \"基本設定 config/_core.yml を生成しています...\",\n \"cli_initSuccess\": \"✔ プロジェクト設定を初期化しました!\",\n \"cli_initEditConfig\": \" 1. config/ 内の設定ファイルを編集してください\",\n \"cli_initStartDev\": \" 2. pnpm dev で開発サーバーを起動してください\",\n \"cli_initFailed\": \"初期化に失敗しました:\",\n \"cli_createTagline\": \" AI ネイティブ · 設定駆動 · セキュリティ優先\",\n \"cli_createRemoteFailure\": \"Git リモート URL が無効です:{remote}\",\n \"cli_createProviderPrompt\": \"AI プロバイダー:\",\n \"cli_addSupportFile\": \" + {file}(AI 支援)\",\n \"cli_coreLabel\": \"基本\",\n \"cli_serviceLabel\": \"サービス\",\n \"cli_yes\": \"はい\",\n \"cli_no\": \"いいえ\",\n \"cli_createEnglishLocale\": \"英語(en-US)\",\n \"cli_createJapaneseLocale\": \"日本語(ja-JP)\",\n \"cli_help_feedback\": \"オフライン診断パッケージ:inspect / summary / evidence / view\",\n \"cli_feedback_page\": \"証拠のページ番号\",\n \"cli_feedback_pageSize\": \"ページごとの件数(最大100)\",\n \"cli_feedback_kind\": \"証拠の種類\",\n \"cli_feedback_requestId\": \"リクエストIDで絞り込み\",\n \"cli_feedback_errorId\": \"エラーIDで絞り込み\",\n \"cli_feedback_from\": \"開始時刻(ミリ秒)\",\n \"cli_feedback_to\": \"終了時刻(ミリ秒)\",\n \"cli_feedback_port\": \"ローカル表示ポート(既定はランダム)\",\n \"cli_feedback_invalidOptions\": \"証拠の検索条件またはポートが無効です\",\n \"cli_feedback_invalidAction\": \"対応操作:inspect、summary、evidence、view\",\n \"cli_feedback_invalidBundle\": \"問題パッケージが無効か容量制限を超えています\",\n \"cli_feedback_viewerStarted\": \"オフライン表示:{url}(Ctrl+Cで終了)\",\n \"cli_featureFeedbackName\": \"問題フィードバック\",\n \"cli_featureFeedbackDescription\": \"ユーザーの証拠、非公開スクリーンショット、管理者の処理とオフライン診断\",\n \"cli_deploy_processEnvironment\": \"現在のデプロイプロセス環境\",\n \"cli_deploy_adminPasswordSource\": \" 管理者: admin。初期パスワード変数 HAI_ADMIN_DEFAULT_PASSWORD の保存元: {source}。初回管理者作成時だけ有効です。既存アカウントは元のパスワードを使用してください。\",\n \"cli_deploy_bundle_configure_ssh\": \"この環境の SSH デプロイ設定を追加または変更しますか?\",\n \"cli_deploy_inputPASSWORDKEEP\": \"SSH パスワード(空欄で保存済みの値を維持)\",\n \"cli_build_app_platform\": \"App のビルドには android または ios の指定が必要です。iOS には macOS と Xcode が必要です。\",\n \"cli_build_app_missing\": \"{platform} のネイティブプロジェクトがありません。プラットフォームを追加してツールチェーンを設定してください。\",\n \"cli_build_app_reload\": \"リリースに開発用のリロード URL が含まれています。ビルドを中止しました。\",\n \"cli_build_app_artifact\": \"ネイティブビルドで有効な新しい APK または IPA が生成されませんでした。\",\n \"cli_build_ios_runtime\": \"iOS IPA には macOS と Xcode が必要です。--runtime を省略してください。\",\n \"cli_build_android_dockerfile\": \"Capacitor の Android ビルド用 Dockerfile が見つかりません。プロジェクトの @h-ai/capacitor をインストールしてください。\",\n \"cli_build_android_signing\": \"Android コンテナでのリリースには、有効な HAI_ANDROID_KEYSTORE、HAI_ANDROID_STORE_PASSWORD、HAI_ANDROID_KEY_ALIAS、HAI_ANDROID_KEY_PASSWORD が必要です。\",\n \"cli_build_native_directory\": \"ネイティブプロジェクトはプロジェクト内の既存ディレクトリを指定してください。\",\n \"cli_build_desktop_artifact\": \"Tauri は新しいシステムインストーラーを生成しませんでした。\",\n \"cli_help_deployPlan\": \"デプロイの識別情報、範囲、成果物、設定元、基準と復旧範囲を読み取り専用で表示\",\n \"cli_deploy_plan_options\": \"--plan ではビルド、バンドル、出力の指定はできません。\",\n \"cli_help_upgrade\": \"正確なフレームワークバージョンのリリースとローカルの差異を読み取り専用で確認\",\n \"cli_upgrade_exact_version\": \"latest、タグ、範囲ではなく正確なバージョンを指定してください。\",\n \"cli_upgrade_registry\": \"リリース確認には認証情報を含まない HTTPS レジストリ URL が必要です。\",\n \"cli_help_inspectRemote\": \"--plan と併用し、SSH で成功基準を読み取り専用確認\",\n \"cli_upgrade_lock_invalid\": \"ロックファイルを読めません。YAML を修正して pnpm install を実行してください。\",\n \"cli_deploy_secrets_options\": \"--import で非公開 JSON を指定してください。runtime は docker/podman、確定には --apply が必要です\",\n \"cli_build_project_name_required\": \"工程ルートの package.json.name には、リソース名に使える空でないプロジェクト名が必要です。\",\n \"cli_help_defaults\": \"既定値で対話を省略(全モジュールとサンプル)\",\n \"cli_createDirectoryExists\": \"対象ディレクトリが存在します。別の名前を指定するか、対話モードで処理してください。\",\n \"cli_help_buildConcurrency\": \"同時イメージビルド数:1 または 2(既定値:2)\",\n \"cli_build_concurrency_invalid\": \"イメージの同時実行数は 1 または 2 です。--concurrency は image ビルド専用です。\",\n \"cli_deploy_https_mode\": \"HTTPS 証明書(任意)\",\n \"cli_deploy_https_keep\": \"現在の HTTPS 設定を維持\",\n \"cli_deploy_https_off\": \"HTTP を使用\",\n \"cli_deploy_https_files\": \"既存の PEM 証明書と秘密鍵を使用\",\n \"cli_deploy_httpsDomain\": \"HTTPS ドメイン\",\n \"cli_deploy_httpsPort\": \"HTTPS 公開ポート\",\n \"cli_deploy_httpsCertificate\": \"PEM 証明書チェーンのパス(プロジェクト相対または絶対)\",\n \"cli_deploy_httpsPrivateKey\": \"PEM 秘密鍵のパス(プロジェクト相対または絶対)\",\n \"cli_deploy_httpsEmail\": \"Let’s Encrypt 連絡先メール\",\n \"cli_deploy_https_requirements\": \"Certbot は HTTP-01 を使用します。ドメインをサーバーに向け、公開ポート 80 と Let’s Encrypt への接続を確保してください。HTTP ポートを 80 に設定します。\",\n \"cli_deploy_https_terms\": \"Let’s Encrypt 利用規約(https://letsencrypt.org/repository/)に同意し、自動更新を有効にしますか?\",\n \"cli_deploy_https_saved\": \"選択した環境の非公開ファイルへ HTTPS 設定を保存しました。モード・ドメイン・ポート変更は全量配備が必要で、証明書はサーバー配備時に申請または設置します。\",\n \"cli_deploy_stage_https\": \"HTTPS 証明書を発行または配置しています\",\n \"cli_help_imageSource\": \"イメージ取得元:official、cn、custom\",\n \"cli_help_imageMirrors\": \"カスタム対応表:docker.io=host/path,ghcr.io=host/path\",\n \"cli_help_npmSource\": \"npm 取得元:official、cn、custom(deploy は --build が必要)\",\n \"cli_help_npmRegistry\": \"カスタム npm registry の HTTP(S) URL\",\n \"cli_help_proxyMode\": \"プロキシ方式:inherit、system、custom、none\",\n \"cli_help_proxyUrl\": \"認証情報を含まないカスタム HTTP(S) プロキシ URL\",\n \"cli_help_proxyBypass\": \"プロキシを使用しないホスト/ドメイン(カンマ区切り)\",\n \"cli_download_invalid\": \"取得元またはプロキシ設定が無効です。種類、URL、オプションの組み合わせを確認してください。\",\n \"cli_download_official\": \"公式\",\n \"cli_download_cn\": \"中国本土(イメージ:毫秒镜像、npm:npmmirror)\",\n \"cli_download_custom\": \"カスタム\",\n \"cli_download_inherit\": \"プロセスのプロキシを継承\",\n \"cli_download_system\": \"システムの静的プロキシを使用\",\n \"cli_download_none\": \"今回のビルドでプロキシを無効化\",\n \"cli_download_choose_image\": \"イメージ取得元を選択(プロジェクトの既定値として保存)\",\n \"cli_download_choose_npm\": \"npm 取得元を選択(プロジェクトの既定値として保存)\",\n \"cli_download_choose_proxy\": \"取得用プロキシ方式を選択(プロジェクトの既定値として保存)\",\n \"cli_download_image_mirrors\": \"対応表を入力(例:docker.io=mirror.example.com/docker.io,ghcr.io=mirror.example.com/ghcr.io)\",\n \"cli_download_npm_registry\": \"npm registry URL を入力\",\n \"cli_download_proxy_url\": \"認証情報を含まない HTTP(S) プロキシ URL を入力\",\n \"cli_download_proxy_unreachable\": \"ホストのプロキシに接続できません。アドレス、ポート、稼働状態を確認してください。\",\n \"cli_download_engine_proxy_configured\": \"イメージ取得の事前確認:Docker のプロキシ設定を確認しました。実際の取得はエンジンで実行されます。\",\n \"cli_download_engine_proxy_local\": \"イメージ取得の事前確認:ローカル Podman はプロセスのプロキシを継承できます。ビルドコンテナは別途確認します。\",\n \"cli_download_engine_proxy_hint\": \"イメージ取得の事前確認:ビルド引数ではリモート {runtime} エンジンのプロキシを設定できません。Docker Desktop または Podman Machine/API サービスで設定してください。ビルドコンテナのプロキシは別途確認します。\",\n \"cli_download_template_required\": \"Dockerfile が選択した取得元に対応していません。現行テンプレートの HAI_NODE_IMAGE、HAI_NGINX_IMAGE、HAI_NPM_REGISTRY を反映してください:{path}\",\n \"cli_build_dependency_context_unsafe\": \"依存ビルドキャッシュを安全に更新できません: {path}。理由: {reason}、診断コード: {diagnostic}。パスを確認してから再試行してください。\",\n \"cli_build_dependency_reason_invalid\": \"パスにリンクが含まれるか、ファイルの種類またはサイズが要件を満たしていません\",\n \"cli_build_dependency_reason_changed\": \"検証中にファイルまたはディレクトリが変更されました\",\n \"cli_build_dependency_reason_read\": \"キャッシュを読み取れません。アクセス権とファイルの使用状態を確認してください\",\n \"cli_build_dependency_reason_write\": \"キャッシュの書き込みまたは公開に失敗しました。アクセス権、空き容量とファイルの使用状態を確認してください\",\n \"cli_build_dependency_reason_tracking\": \"キャッシュの追跡マニフェストが有効なJSONではありません\"\n}\n","{\n \"cli_createFailed\": \"创建项目失败:\",\n \"cli_build_static_flag\": \"HAI_BUILD_STATIC仅支持0或1;省略或0保持SSR,1启用website静态构建。\",\n \"cli_build_static_base\": \"PUBLIC_BASE_PATH须为空或以/开头的站内目录,不允许外部地址、末尾/、查询、片段或路径逃逸。\",\n \"cli_build_base_requires_web\": \"PUBLIC_BASE_PATH需要工程声明web镜像;独立API的路由前缀请在服务配置中设置。\",\n \"cli_build_static_target\": \"HAI_BUILD_STATIC仅用于compile静态编译;PUBLIC_BASE_PATH可用于compile和image网站构建,不适用于app或desktop原生目标。\",\n \"cli_installFailed\": \"安装依赖失败({pm})。\",\n \"cli_commandLabel\": \"命令: {command}\",\n \"cli_exitCode\": \"退出码: {code}\",\n \"cli_signal\": \"信号: {signal}\",\n \"cli_selectHint\": \"- ↑/↓ 选择,回车确认\",\n \"cli_multiselectHint\": \"- 空格选择,回车确认\",\n \"cli_frontendsPrompt\": \"选择前端目标:\",\n \"cli_invalidGenerateName\": \"名称必须以字母开头,且仅包含字母、数字、短横线或下划线\",\n \"cli_generateOutsideWorkspace\": \"生成文件必须位于工作目录内,符号链接目标也不得越界\",\n \"cli_generateExists\": \"文件已存在:{path}。使用 --force 才可覆盖\",\n \"cli_deploy_module_missing\": \"未找到部署模块,请先安装 @h-ai/deploy:\",\n \"cli_deploy_load_credentials\": \"正在加载凭证…\",\n \"cli_deploy_credentials_failed\": \"加载凭证失败:{message}\",\n \"cli_deploy_credentials_loaded\": \"已加载 {count} 项凭证\",\n \"cli_deploy_load_config\": \"正在加载部署配置…\",\n \"cli_deploy_config_missing\": \"未找到部署配置:{path}\",\n \"cli_deploy_config_hint\": \"运行 hai add deploy 生成部署配置模板\",\n \"cli_deploy_config_loaded\": \"部署配置已加载\",\n \"cli_deploy_scanning\": \"正在扫描应用…\",\n \"cli_deploy_scan_failed\": \"扫描失败:{message}\",\n \"cli_deploy_scanned\": \"已扫描:{name}(SvelteKit:{sveltekit},服务:{services})\",\n \"cli_deploy_none\": \"无\",\n \"cli_deploy_initializing\": \"正在初始化部署模块…\",\n \"cli_deploy_init_failed\": \"初始化失败:{message}\",\n \"cli_deploy_initialized\": \"部署模块已初始化\",\n \"cli_deploy_deploying\": \"正在部署应用…\",\n \"cli_deploy_failed\": \"部署失败:{message}\",\n \"cli_deploy_success\": \"部署成功!\",\n \"cli_deploy_url\": \" 地址:{url}\",\n \"cli_deploy_id\": \" 标识:{id}\",\n \"cli_deploy_command_failed\": \"部署命令失败\",\n \"cli_adminPasswordSaved\": \" 初始账号:admin(系统)、audit_admin(审计)、config_admin(业务配置)、business_operator(业务操作)。各账号、各环境密码独立,位于 .env.dev.local / .env.test.local / .env.prod.local:HAI_ADMIN_DEFAULT_PASSWORD、HAI_AUDIT_ADMIN_PASSWORD、HAI_CONFIG_ADMIN_PASSWORD、HAI_BUSINESS_OPERATOR_PASSWORD。首次启动创建;已有账号不重设密码。\",\n \"cli_deploy_environment\": \"请输入部署环境(test / prod 等)\",\n \"cli_deploy_cancelled\": \"部署已取消。\",\n \"cli_deploy_environment_hint\": \"请指定 --env <环境>;非交互调用还需 --yes,或在交互终端逐项选择中间件。\",\n \"cli_deploy_middleware\": \"{service}:当前默认 {backend};{purpose}。来源:{source}\",\n \"cli_deploy_action\": \"如何处理 {service}?\",\n \"cli_deploy_default\": \"使用默认配置\",\n \"cli_deploy_custom\": \"使用自定义配置\",\n \"cli_deploy_keep\": \"保持不变\",\n \"cli_deploy_backend\": \"请选择 {service} 的后端\",\n \"cli_deploy_field\": \"{description}({constraint})\",\n \"cli_deploy_connection_method\": \"请选择 {backend} 的连接填写方式\",\n \"cli_deploy_connection_fields\": \"分别填写主机、端口等连接字段\",\n \"cli_deploy_connection_url\": \"使用连接 URL\",\n \"cli_deploy_connection_url_prompt\": \"连接 URL(隐藏输入),示例:{example}\",\n \"cli_deploy_connection_address\": \"{service} 连接地址(仅显示协议和主机):{address}\",\n \"cli_deploy_mysql_url_invalid\": \"请输入含主机的 mysql:// 连接 URL。MySQL URL 不支持查询参数或片段。\",\n \"cli_deploy_postgres_url_invalid\": \"请输入 postgresql:// 或 postgres:// 连接 URL,包含主机,并在路径中填写数据库名。\",\n \"cli_deploy_redis_url_invalid\": \"请输入含主机的 redis:// 或 rediss:// 连接 URL。使用 rediss:// 启用 TLS。\",\n \"cli_deploy_middleware_field_error\": \"{variable}:{reason}\",\n \"cli_deploy_config_unknown_fields\": \"请移除此对象中不支持的字段。\",\n \"cli_deploy_s3_endpoint\": \"S3 API 地址(HTTP 或 HTTPS,不含桶名),例如 http://storage.example.com:9000。AWS S3 可留空。\",\n \"cli_deploy_s3_bucket\": \"仅填写桶名,例如 uploads\",\n \"cli_deploy_s3_region\": \"存储服务要求的区域,例如 us-east-1\",\n \"cli_deploy_s3_access_key\": \"存储服务签发的 S3 Access Key ID\",\n \"cli_deploy_s3_secret_key\": \"与 Access Key ID 配对的 Secret Access Key(隐藏输入)\",\n \"cli_deploy_s3_path_style\": \"桶寻址方式。true 使用 endpoint/bucket(MinIO 或 RustFS 常用),false 使用 bucket.endpoint。以服务商要求为准。\",\n \"cli_deploy_required\": \"此项必填\",\n \"cli_deploy_invalid_value\": \"取值不满足字段约束\",\n \"cli_deploy_cloud_unsupported\": \"{backend} 没有可用的云自动开通器,请选择自定义连接或切换受支持的后端。\",\n \"cli_deploy_saved\": \"已保存 {service} 配置(公共值写目标环境文件,凭据写当前环境的私有 .env 文件)\",\n \"cli_deploy_missing_keep\": \"目标环境尚无 {service} 的完整配置,不能保持不变。\",\n \"cli_deploy_s3_engine\": \"选择自建 S3 服务实现(应用仍使用 type: s3)\",\n \"cli_deploy_target_reused\": \"复用已保存的部署目标 {target}。\",\n \"cli_deploy_target_missing\": \"部署目标配置不完整:{fields}。请先配置部署目标,或使用交互终端完成引导。\",\n \"cli_deploy_target_platform\": \"选择部署平台\",\n \"cli_deploy_target_ssh\": \"SSH 服务器(Docker / Podman Compose)\",\n \"cli_deploy_target_field\": \"{name}\",\n \"cli_deploy_target_ssh_hint\": \"输入服务器连接及端口参数,选择私钥或密码认证。密码不回显;私钥路径留空使用 ssh-agent 或默认密钥。known_hosts 留空使用 OpenSSH 默认值。首次连接信任主机指纹,后续拒绝指纹变更。\",\n \"cli_deploy_target_runtime\": \"远程容器运行时(auto 优先使用 Podman)\",\n \"cli_deploy_target_saved\": \"部署目标已保存到当前环境的私有 .env 文件(已加入 Git 忽略),下次自动复用。\",\n \"cli_deploy_target_auth\": \"SSH 认证方式\",\n \"cli_deploy_target_auth_key\": \"私钥或 SSH agent\",\n \"cli_deploy_target_auth_password\": \"密码\",\n \"cli_deploy_inputPASSWORD\": \"SSH 密码(不回显,保留前后空格)\",\n \"cli_deploy_middleware_plan\": \"是否需要配置本次部署的中间件?\",\n \"cli_deploy_reach_empty\": \"Reach 还没有配置通知 Provider。请在 {file} 用 HAI_REACH_PROVIDERS 填写完整列表,再运行 deploy 逐项配置。\",\n \"cli_deploy_middleware_configure\": \"逐项检查并配置中间件\",\n \"cli_deploy_middleware_skip\": \"环境配置已完备,直接部署\",\n \"cli_deploy_middleware_skipped\": \"已跳过全部中间件配置与资源开通,使用当前环境配置及已有服务直接部署。\",\n \"cli_build_failed\": \"构建命令 {command} 失败(退出码 {code})。\",\n \"cli_build_use_pnpm\": \"请通过 pnpm build 运行构建,确保使用当前项目的 pnpm。\",\n \"cli_build_target_invalid\": \"target 必须为 compile、image、app 或 desktop。\",\n \"cli_build_options_invalid\": \"镜像选择、并行数和 --json 仅用于 image。引擎、网络和下载设置用于 image 或容器 Android;platform 和 debug 用于原生包,arch 仅用于 desktop。\",\n \"cli_build_image_platform_invalid\": \"无法确定已构建镜像的平台和架构。\",\n \"cli_build_version_invalid\": \"请在应用根 package.json 中设置有效的三段式版本(如 1.2.3 或 1.2.3-beta.1,最长 80 字符)。\",\n \"cli_build_native_host\": \"Tauri 需要在对应系统上构建(windows/linux/macos),架构为 x64 或 arm64;请先安装对应 Rust target、系统 SDK 和打包工具。\",\n \"cli_project_config_invalid\": \"无法读取项目配置 {path},请确认文件存在且内容为合法 JSON 对象。\",\n \"cli_build_desktop_missing\": \"hai.json 的 build 分区 未配置 desktop 目录。请生成 desktop 前端或添加已有的 Tauri 工程。\",\n \"cli_build_images_missing\": \"hai.json 的 build.images 必须包含 serv、web 或两者,名称唯一且 Dockerfile 有效。\",\n \"cli_build_runtime_missing\": \"请安装并启动 Podman 或 Docker。auto 优先选择可用的 Podman。\",\n \"cli_build_ready\": \"构建完成({runtime}):{path}。此镜像可用于不同部署环境。\",\n \"cli_deploy_bundle_provider\": \"离线打包、一体化镜像构建和按服务局部部署需要 docker-ssh Compose 目标。\",\n \"cli_deploy_bundle_target\": \"仅生成部署包,不连接服务器。已保存的连接会写入 deploy-target.json,部署前请核对。\",\n \"cli_deploy_bundle_ready\": \"部署包已生成;服务器尚未部署。\",\n \"cli_deploy_bundle_path\": \"部署包:{path}\",\n \"cli_build_selection_invalid\": \"请选择 build.images 中已有的镜像名称,例如 serv、web 或 serv,web。\",\n \"cli_build_dockerfile_missing\": \"找不到镜像构建文件:{path}。请检查 hai.json 的 build 分区。\",\n \"cli_deploy_config_node\": \"无法修改配置 {path}:{field} 应为配置对象,不能是字符串或数组。请修改后重试。\",\n \"cli_deploy_inputHOST\": \"服务器地址\",\n \"cli_deploy_services_invalid\": \"服务选择无效。当前项目可选:{services}。\",\n \"cli_deploy_build_artifact_conflict\": \"--build 用于构建新产物,--artifact-dir 用于选择已有产物,请二选一。\",\n \"cli_deploy_build_options_required\": \"构建并行数、网络、代理和 SQLite 预编译包参数需要配合 --build 使用。\",\n \"cli_deploy_artifact_invalid\": \"镜像清单或归档校验失败,请重新构建,或用 --artifact-dir 选择有效的构建目录。\",\n \"cli_deploy_inputPORT\": \"SSH 端口(默认 22)\",\n \"cli_deploy_inputUSERNAME\": \"SSH 登录用户\",\n \"cli_deploy_inputIDENTITYFILE\": \"SSH 私钥文件(可留空,使用代理或默认密钥)\",\n \"cli_deploy_inputKNOWNHOSTSFILE\": \"服务器指纹记录文件(可留空,使用 OpenSSH 默认位置)\",\n \"cli_deploy_inputBASEDIR\": \"服务器部署根目录\",\n \"cli_deploy_inputHOSTPORT\": \"应用对外访问端口\",\n \"cli_deploy_inputCONTAINERPORT\": \"API 容器内部端口\",\n \"cli_deploy_inputTOKEN\": \"Vercel 访问令牌\",\n \"cli_deploy_cloud_input_apiKey\": \"API 访问密钥\",\n \"cli_deploy_cloud_input_email\": \"平台注册邮箱\",\n \"cli_deploy_cloud_input_accountId\": \"平台账户编号\",\n \"cli_deploy_cloud_input_apiToken\": \"API 访问令牌\",\n \"cli_deploy_cloud_input_accessKeyId\": \"访问密钥编号\",\n \"cli_deploy_cloud_input_secretAccessKey\": \"访问密钥密码\",\n \"cli_deploy_cloud_input_accessKeySecret\": \"访问密钥密码\",\n \"cli_deploy_cloud_input_signName\": \"已审核的短信签名\",\n \"cli_deploy_cloud_input_from\": \"发件人地址(使用已验证域名)\",\n \"cli_deploy_port_invalid\": \"请输入 1~65535 之间的整数。\",\n \"cli_deploy_build_started\": \"先构建本次所选应用镜像…\",\n \"cli_deploy_services\": \"本次更新服务:{services}\",\n \"cli_deploy_stage_packaging\": \"打包所选镜像与中间件\",\n \"cli_deploy_stage_preflight\": \"检查服务器与部署基线\",\n \"cli_deploy_stage_images\": \"导入离线镜像\",\n \"cli_deploy_stage_dependencies\": \"检查未更新的依赖服务\",\n \"cli_deploy_stage_start\": \"更新所选服务\",\n \"cli_deploy_stage_health\": \"验证应用访问\",\n \"cli_deploy_stage_complete\": \"服务器部署检查通过\",\n \"cli_deploy_choose_services\": \"选择本次更新的服务(默认全部,空格切换)\",\n \"cli_deploy_config_invalid\": \"部署配置不完整或格式有误。文件:{path};请检查这些字段:{fields}。\",\n \"cli_help_verbose\": \"显示详细输出\",\n \"cli_help_cwd\": \"工作目录\",\n \"cli_help_create\": \"创建新的 hai 项目\",\n \"cli_help_appType\": \"应用类型 (admin, website, h5, api, mobile-app, fullstack)\",\n \"cli_help_frontends\": \"前后端分离工程前端目标 (逗号分隔: web,app,miniapp,desktop)\",\n \"cli_help_noInstall\": \"不安装依赖\",\n \"cli_help_noDeploy\": \"不包含部署工具和部署命令\",\n \"cli_help_packageManager\": \"包管理器 (pnpm, npm, yarn)\",\n \"cli_help_noGit\": \"不初始化 Git\",\n \"cli_help_gitRemote\": \"Git 远程仓库地址\",\n \"cli_help_add\": \"向现有项目添加模块\",\n \"cli_help_init\": \"初始化/校验项目配置\",\n \"cli_help_forceConfig\": \"强制重新生成配置\",\n \"cli_help_generate\": \"生成代码\",\n \"cli_help_output\": \"输出路径\",\n \"cli_help_force\": \"覆盖现有文件\",\n \"cli_help_build\": \"构建源码、Docker 镜像或 Tauri 安装包(不区分部署环境)\",\n \"cli_help_target\": \"产物类型:compile(默认)/ image / desktop / app\",\n \"cli_help_buildJson\": \"仅将本次镜像构建的 JSON 结果写到标准输出\",\n \"cli_help_images\": \"只构建指定镜像:serv、web 或 serv,web\",\n \"cli_help_buildRuntime\": \"本地容器引擎:auto(优先 Podman)/ podman / docker\",\n \"cli_help_buildNetwork\": \"容器构建网络(默认引擎设置),例如 rootless Podman 的 pasta\",\n \"cli_help_platform\": \"原生平台:windows / linux / macos / android / ios\",\n \"cli_help_arch\": \"Tauri 目标架构:x64 / arm64\",\n \"cli_help_buildDebug\": \"构建原生调试包,省略时构建发布包\",\n \"cli_help_noHttpProxy\": \"禁用本次构建代理(等价 --proxy-mode none)\",\n \"cli_help_deploy\": \"部署应用或生成离线交付包\",\n \"cli_help_environment\": \"部署环境(test / prod 等,必须存在对应环境文件)\",\n \"cli_help_envDir\": \"环境文件所在目录(默认自动查找)\",\n \"cli_help_deployYes\": \"无交互使用已有或默认配置;缺少必需参数时说明原因\",\n \"cli_help_skipMiddleware\": \"配置已完备,跳过全部中间件处理,直接部署\",\n \"cli_help_artifactDir\": \"已有镜像构建产物目录(含 manifest.json)\",\n \"cli_help_services\": \"只更新指定服务,例如 serv、web 或 serv,web;省略时部署制品中的全部服务\",\n \"cli_help_deployBuild\": \"先构建所选应用镜像,再打包部署;可与 --bundle-only 一起使用\",\n \"cli_help_deployNetwork\": \"一体化构建使用的容器网络(默认引擎设置)\",\n \"cli_help_deployNoProxy\": \"禁用本次构建代理(等价 --proxy-mode none)\",\n \"cli_help_deployRuntime\": \"本地镜像构建和中间件导出引擎:auto / podman / docker\",\n \"cli_help_bundleOnly\": \"只生成离线 tar 与 Windows/Linux/macOS 部署脚本;不连接服务器\",\n \"cli_help_bundleOutput\": \"部署 tar 输出路径,自动补应用版本后缀\",\n \"cli_help_generatePage\": \"生成页面\",\n \"cli_help_generateComponent\": \"生成组件\",\n \"cli_help_generateApi\": \"生成 API\",\n \"cli_help_generateModel\": \"生成数据模型\",\n \"cli_generateUnsupportedProject\": \"当前项目或 workspace 不支持该生成类型;page 需要 SvelteKit,api 需要 SvelteKit 或 serv。请用 --workspace 选择实际应用包。\",\n \"cli_generateAmbiguousWorkspace\": \"有多个适用 workspace,请使用 --workspace 指定目标包名或相对路径。\",\n \"cli_generateUnsupportedAggregator\": \"无法安全识别现有 contract/procedure 聚合入口;请保留 CLI 模板中的 @hai-generator 标记,或手动扩展现有架构。\",\n \"cli_generateInvalidRouteOutput\": \"路由输出必须位于 SvelteKit src/routes 内;serv 使用现有 contract/procedure 目录,不接受 --output。\",\n \"cli_generateDomainExists\": \"契约或过程已包含同名领域:{name},拒绝替换已有业务注册。\",\n \"cli_generateRollbackFailed\": \"生成失败,部分回滚或临时文件清理未完成;请检查错误中的文件,确认后再重试。\",\n \"cli_help_workspace\": \"目标 workspace 包名或相对路径;省略时选择唯一适用应用\",\n \"cli_generateCustomRoutes\": \"当前 SvelteKit 配置定制了 kit.files,生成器不猜测路由目录;请手动沿现有路由布局扩展。\",\n \"cli_generatePageDescription\": \"SvelteKit 页面\",\n \"cli_generateComponentDescription\": \"Svelte 组件\",\n \"cli_generateApiDescription\": \"API 端点\",\n \"cli_generateModelDescription\": \"数据模型\",\n \"cli_generateMigrationDescription\": \"数据库迁移\",\n \"cli_generateProgress\": \"正在生成 {description}...\",\n \"cli_generateComplete\": \"生成完成\",\n \"cli_generateFiles\": \"生成或更新的文件:\",\n \"cli_generateFailed\": \"生成失败\",\n \"cli_generateFailureDetail\": \"错误详情:\",\n \"cli_generateTypePrompt\": \"选择生成类型:\",\n \"cli_generateNamePrompt\": \"名称:\",\n \"cli_generateNameRequired\": \"名称不能为空\",\n \"cli_generateCancelled\": \"已取消生成,未写入文件\",\n \"cli_generateUnknownType\": \"未知的生成器类型:{type}\",\n \"cli_deploy_local_confirmed\": \"本地命令进程树:已确认全部退出。\",\n \"cli_deploy_local_unknown\": \"本地命令进程树:退出未确认。\",\n \"cli_deploy_local_not_started\": \"本地命令进程树:未启动。\",\n \"cli_deploy_recovery_not_needed\": \"恢复状态:无需恢复;请结合部署阶段和服务健康判断结果。\",\n \"cli_deploy_recovery_passed\": \"恢复状态:旧版服务及其健康检查已通过。业务数据未回退。\",\n \"cli_deploy_recovery_failed\": \"恢复状态:旧版服务未通过恢复验证。请核对结果文件和服务日志后恢复,不要直接重试。\",\n \"cli_deploy_recovery_stopped\": \"恢复状态:没有可用的旧版基线,已停止本次新服务。请修正问题后重新部署。\",\n \"cli_deploy_remote_unknown\": \"远端部署执行状态:未知;不要直接重试或停止服务。\",\n \"cli_deploy_remote_finished\": \"远端部署脚本与恢复已结束;请核对服务健康,运行中的容器不表示失败进程仍在执行。\",\n \"cli_deploy_result_check\": \"部署 {id}:核对服务器结果文件 {path}。\",\n \"cli_appAdminName\": \"管理后台\",\n \"cli_appAdminDescription\": \"企业级管理系统,含 IAM、数据库、完整 UI\",\n \"cli_appWebsiteName\": \"企业官网\",\n \"cli_appWebsiteDescription\": \"SSR/SSG 企业官网,SEO 友好、响应式布局\",\n \"cli_appH5Name\": \"H5 应用\",\n \"cli_appH5Description\": \"移动端 H5 应用,触摸优化、PWA 支持\",\n \"cli_appApiName\": \"API 服务\",\n \"cli_appApiDescription\": \"typed API workspace,含 contract + service 双工程、无 UI\",\n \"cli_appMobileName\": \"移动应用\",\n \"cli_appMobileDescription\": \"移动端应用(Capacitor + Svelte 5 + Vite),可打包为 Android/iOS\",\n \"cli_appFullstackName\": \"前后端分离工程\",\n \"cli_appFullstackDescription\": \"多端管理系统,包含用户、角色、审计、个人设置、默认问题反馈与双向传输加密\",\n \"cli_frontendWebDescription\": \"浏览器 Web 应用\",\n \"cli_frontendAppDescription\": \"移动端 Capacitor App / H5 前端\",\n \"cli_frontendMiniappName\": \"小程序\",\n \"cli_frontendMiniappDescription\": \"预留目标,当前只生成说明占位\",\n \"cli_frontendDesktopName\": \"桌面端\",\n \"cli_frontendDesktopDescription\": \"Tauri 桌面端前端工程\",\n \"cli_featureIamName\": \"身份与访问管理\",\n \"cli_featureIamDescription\": \"Session/JWT 会话管理、RBAC 权限控制\",\n \"cli_featureDbName\": \"数据库\",\n \"cli_featureDbDescription\": \"多数据库支持 (SQLite/PostgreSQL/MySQL)\",\n \"cli_featureCacheName\": \"缓存\",\n \"cli_featureCacheDescription\": \"Redis / 内存缓存\",\n \"cli_featureAiName\": \"AI 集成\",\n \"cli_featureAiDescription\": \"LLM 适配器、MCP 协议、技能系统、流式响应\",\n \"cli_featureStorageName\": \"文件存储\",\n \"cli_featureStorageDescription\": \"本地存储、S3/OSS/COS 云存储\",\n \"cli_featureCryptoName\": \"加密模块\",\n \"cli_featureCryptoDescription\": \"国密 SM2/SM3/SM4、Argon2 密码哈希\",\n \"cli_featureAuditName\": \"审计日志\",\n \"cli_featureAuditDescription\": \"操作审计、安全追踪\",\n \"cli_featureReachName\": \"触达服务\",\n \"cli_featureReachDescription\": \"邮件、短信、微信等消息触达\",\n \"cli_featurePaymentName\": \"统一支付\",\n \"cli_featurePaymentDescription\": \"微信支付、支付宝、Stripe 统一接入\",\n \"cli_featureVecdbName\": \"向量数据库\",\n \"cli_featureVecdbDescription\": \"向量检索与相似度搜索(LanceDB / pgvector / Qdrant)\",\n \"cli_featureDatapipeName\": \"数据处理管道\",\n \"cli_featureDatapipeDescription\": \"文本清洗、分块与可组合处理流水线\",\n \"cli_featureSchedulerName\": \"任务调度\",\n \"cli_featureSchedulerDescription\": \"Cron 任务注册、执行与日志追踪\",\n \"cli_featureDeployName\": \"自动化部署\",\n \"cli_featureDeployDescription\": \"统一部署编排与多平台发布支持\",\n \"cli_featureApiClientName\": \"HTTP 客户端\",\n \"cli_featureApiClientDescription\": \"统一 API 调用、错误处理与流式请求支持\",\n \"cli_featureCapacitorName\": \"移动端能力\",\n \"cli_featureCapacitorDescription\": \"Capacitor 原生桥接能力(偏移动应用)\",\n \"cli_createInvalidName\": \"项目名称不合法: \\\"{name}\\\",只能包含小写字母、数字和连字符\",\n \"cli_createOverwrite\": \"目录 {name} 已存在,是否覆盖?\",\n \"cli_cancelled\": \"已取消\",\n \"cli_createDirectory\": \"创建项目目录...\",\n \"cli_createFiles\": \"生成项目文件...\",\n \"cli_createGit\": \"初始化 Git 仓库...\",\n \"cli_createInstall\": \"安装依赖 ({manager})...\",\n \"cli_cancelledLine\": \"\\n已取消\",\n \"cli_createNamePrompt\": \"项目名称:\",\n \"cli_createNameRequired\": \"项目名称不能为空\",\n \"cli_createNamePattern\": \"项目名称只能包含小写字母、数字和连字符\",\n \"cli_createTypePrompt\": \"应用类型:\",\n \"cli_createManagerPrompt\": \"包管理器:\",\n \"cli_createPnpmRecommended\": \"pnpm (推荐)\",\n \"cli_createInstallPrompt\": \"是否安装依赖?\",\n \"cli_createGitPrompt\": \"是否初始化 Git?\",\n \"cli_createRemotePrompt\": \"Git 仓库地址 (可选,回车跳过):\",\n \"cli_createRemoteInvalid\": \"请输入合法的 Git 仓库地址 (https://... 或 git@...:...)\",\n \"cli_createModuleConfig\": \" ⚙ 模块配置\",\n \"cli_createModuleConfigHint\": \" 设置关键配置项(回车使用默认值)\",\n \"cli_createCoreConfig\": \" [core] 应用基础配置\",\n \"cli_createLocalePrompt\": \"默认语言:\",\n \"cli_createChineseLocale\": \"中文 (zh-CN)\",\n \"cli_createDbConfig\": \" [db] 数据库配置\",\n \"cli_createDbTypePrompt\": \"数据库类型:\",\n \"cli_createSqliteOption\": \"SQLite (零配置,适合开发)\",\n \"cli_createSqlitePathPrompt\": \"SQLite 数据库路径:\",\n \"cli_createDbHostPrompt\": \"{backend} 主机:\",\n \"cli_createPortPrompt\": \"端口:\",\n \"cli_createDatabasePrompt\": \"数据库名称:\",\n \"cli_createCacheConfig\": \" [cache] 缓存配置\",\n \"cli_createCacheTypePrompt\": \"缓存类型:\",\n \"cli_createMemoryOption\": \"内存缓存 (零配置,适合开发)\",\n \"cli_createRedisHostPrompt\": \"Redis 主机:\",\n \"cli_createRedisPortPrompt\": \"Redis 端口:\",\n \"cli_createIamConfig\": \" [iam] 认证授权配置\",\n \"cli_createPasswordPrompt\": \"启用密码登录?\",\n \"cli_createOtpPrompt\": \"启用 OTP 验证码登录?\",\n \"cli_createStorageConfig\": \" [storage] 文件存储配置\",\n \"cli_createStorageTypePrompt\": \"存储类型:\",\n \"cli_createLocalStorageOption\": \"本地存储 (零配置,适合开发)\",\n \"cli_createStoragePathPrompt\": \"存储路径:\",\n \"cli_createAiConfig\": \" [ai] AI 集成配置\",\n \"cli_createCompatibleAiOption\": \"其他 (OpenAI 兼容)\",\n \"cli_createModelPrompt\": \"默认模型:\",\n \"cli_createSuccess\": \"✔ 项目创建成功!\",\n \"cli_createFeatures\": \"已启用功能:\",\n \"cli_nextSteps\": \"下一步:\",\n \"cli_featureKitName\": \"SvelteKit 集成工具\",\n \"cli_featureUiName\": \"UI 组件库\",\n \"cli_projectNotFound\": \"未检测到项目(找不到 package.json)\",\n \"cli_addAllInstalled\": \"所有模块已安装!\",\n \"cli_addModulePrompt\": \"选择要添加的模块:\",\n \"cli_addUnknownModule\": \"未知模块: {module}\",\n \"cli_addAvailableModules\": \"可用模块: {modules}\",\n \"cli_addSupportCompleted\": \"模块 {module} 已安装,已补全 AI 支持文件\",\n \"cli_addAlreadyInstalled\": \"模块 {module} 已安装\",\n \"cli_addUpdateManifest\": \"更新 package.json...\",\n \"cli_addConfig\": \"生成配置文件 config/_{config}.yml...\",\n \"cli_addConfigExists\": \"配置文件已存在: config/_{config}.yml\",\n \"cli_addDependencyConfig\": \" + config/_{config}.yml (依赖)\",\n \"cli_addInstall\": \"安装依赖...\",\n \"cli_addSuccess\": \"✔ 模块 {module} 添加成功!\",\n \"cli_addPackages\": \"已添加的包:\",\n \"cli_addFailed\": \"添加模块失败:\",\n \"cli_initDetecting\": \"检测项目...\",\n \"cli_initDetected\": \"检测到项目: {name}\",\n \"cli_initStatus\": \"项目状态:\",\n \"cli_initName\": \" 名称: {name}\",\n \"cli_initVersion\": \" 版本: {version}\",\n \"cli_none\": \"无\",\n \"cli_initModules\": \" 已安装模块: {modules}\",\n \"cli_initExisting\": \"已有配置:\",\n \"cli_initReady\": \"✔ 所有配置文件已就绪!\",\n \"cli_initMissing\": \"缺失配置:\",\n \"cli_initGenerating\": \"生成缺失配置文件...\",\n \"cli_initGenerated\": \"已生成 {count} 个配置文件\",\n \"cli_initRegenerating\": \"强制重新生成所有配置文件...\",\n \"cli_initRegenerated\": \"已重新生成 {count} 个配置文件\",\n \"cli_initCore\": \"生成核心配置 config/_core.yml...\",\n \"cli_initSuccess\": \"✔ 项目配置初始化完成!\",\n \"cli_initEditConfig\": \" 1. 编辑 config/ 中的配置文件\",\n \"cli_initStartDev\": \" 2. 运行 pnpm dev 启动开发服务\",\n \"cli_initFailed\": \"初始化失败:\",\n \"cli_createTagline\": \" AI 原生 · 配置驱动 · 安全优先\",\n \"cli_createRemoteFailure\": \"Git 远程地址不合法:{remote}\",\n \"cli_createProviderPrompt\": \"AI Provider:\",\n \"cli_addSupportFile\": \" + {file} (AI 支持)\",\n \"cli_coreLabel\": \"核心\",\n \"cli_serviceLabel\": \"服务\",\n \"cli_yes\": \"是\",\n \"cli_no\": \"否\",\n \"cli_createEnglishLocale\": \"英语 (en-US)\",\n \"cli_createJapaneseLocale\": \"日语 (ja-JP)\",\n \"cli_help_feedback\": \"离线诊断包:inspect / summary / evidence / view\",\n \"cli_feedback_page\": \"证据页码\",\n \"cli_feedback_pageSize\": \"每页条数(最多100)\",\n \"cli_feedback_kind\": \"证据类型\",\n \"cli_feedback_requestId\": \"按请求ID筛选\",\n \"cli_feedback_errorId\": \"按错误ID筛选\",\n \"cli_feedback_from\": \"起始时间戳(毫秒)\",\n \"cli_feedback_to\": \"结束时间戳(毫秒)\",\n \"cli_feedback_port\": \"本机查看器端口(默认随机)\",\n \"cli_feedback_invalidOptions\": \"问题包查询或端口参数无效\",\n \"cli_feedback_invalidAction\": \"支持的操作:inspect、summary、evidence、view\",\n \"cli_feedback_invalidBundle\": \"问题包文件无效或超过容量限制\",\n \"cli_feedback_viewerStarted\": \"离线查看器:{url}(按 Ctrl+C 关闭)\",\n \"cli_featureFeedbackName\": \"问题反馈\",\n \"cli_featureFeedbackDescription\": \"用户现场、私有截图、管理员处理与离线问题包\",\n \"cli_deploy_processEnvironment\": \"当前部署进程环境\",\n \"cli_deploy_adminPasswordSource\": \" 管理员:admin;初始密码变量 HAI_ADMIN_DEFAULT_PASSWORD,来源:{source}。仅首次创建管理员时生效;已有账号请使用原密码。\",\n \"cli_deploy_bundle_configure_ssh\": \"是否添加或修改本环境保存的 SSH 部署信息?\",\n \"cli_deploy_inputPASSWORDKEEP\": \"SSH 密码(留空保留已有密码)\",\n \"cli_build_app_platform\": \"App 打包必须指定 android 或 ios;iOS 需要 macOS 与 Xcode。\",\n \"cli_build_app_missing\": \"缺少 {platform} 原生工程,请先添加平台并配置工具链。\",\n \"cli_build_app_reload\": \"发布工程包含开发热更新地址,已停止打包。\",\n \"cli_build_app_artifact\": \"原生命令结束但没有生成有效的新 APK 或 IPA。\",\n \"cli_build_ios_runtime\": \"iOS IPA 需要 macOS 和 Xcode,请省略 --runtime。\",\n \"cli_build_android_dockerfile\": \"找不到支持容器打包的 Capacitor Dockerfile,请安装当前项目的 @h-ai/capacitor 依赖。\",\n \"cli_build_android_signing\": \"Android 容器发布包需要有效的 HAI_ANDROID_KEYSTORE、HAI_ANDROID_STORE_PASSWORD、HAI_ANDROID_KEY_ALIAS 和 HAI_ANDROID_KEY_PASSWORD。\",\n \"cli_build_native_directory\": \"原生项目目录必须位于当前工程内且实际存在。\",\n \"cli_build_desktop_artifact\": \"Tauri 没有生成新的系统安装包。\",\n \"cli_help_deployPlan\": \"只读查看部署身份、范围、制品、配置来源、基线与恢复边界\",\n \"cli_deploy_plan_options\": \"--plan 不能同时构建、打包或指定输出。\",\n \"cli_help_upgrade\": \"指定精确框架版本,只读检查发布完整性与工程漂移\",\n \"cli_upgrade_exact_version\": \"请输入精确版本号,不支持 latest、tag 或范围。\",\n \"cli_upgrade_registry\": \"发布检查需要不含凭据的 HTTPS Registry 地址。\",\n \"cli_help_inspectRemote\": \"配合 --plan,通过 SSH 只读检查成功基线,不改变目标\",\n \"cli_upgrade_lock_invalid\": \"无法读取锁文件,请先修复 YAML 并运行 pnpm install。\",\n \"cli_deploy_secrets_options\": \"请用 --import 指定私有 JSON;runtime 仅支持 docker/podman,提交需显式 --apply\",\n \"cli_build_project_name_required\": \"工程根 package.json.name 必须是非空、可用于资源命名的项目名。\",\n \"cli_help_defaults\": \"使用默认值跳过创建向导(完整模块及示例)\",\n \"cli_createDirectoryExists\": \"目标目录已存在;请使用另一个项目名或在交互模式下处理。\",\n \"cli_help_buildConcurrency\": \"同时构建的镜像数:1 或 2(默认 2)\",\n \"cli_build_concurrency_invalid\": \"镜像并发数仅支持 1 或 2;--concurrency 只用于 image 构建。\",\n \"cli_deploy_https_mode\": \"HTTPS 证书(可选)\",\n \"cli_deploy_https_keep\": \"保留已有 HTTPS 配置\",\n \"cli_deploy_https_off\": \"使用 HTTP\",\n \"cli_deploy_https_files\": \"使用已有 PEM 证书和私钥\",\n \"cli_deploy_httpsDomain\": \"HTTPS 域名\",\n \"cli_deploy_httpsPort\": \"HTTPS 公开端口\",\n \"cli_deploy_httpsCertificate\": \"PEM 完整证书链路径(相对于工程根或绝对路径)\",\n \"cli_deploy_httpsPrivateKey\": \"PEM 私钥路径(相对于工程根或绝对路径)\",\n \"cli_deploy_httpsEmail\": \"Let’s Encrypt 联系邮箱\",\n \"cli_deploy_https_requirements\": \"Certbot 使用 HTTP-01:域名须指向服务器,公网 80 端口可达,服务器须能访问 Let’s Encrypt。HTTP 入口将设为 80。\",\n \"cli_deploy_https_terms\": \"同意 Let’s Encrypt 服务条款(https://letsencrypt.org/repository/)并启用自动续期?\",\n \"cli_deploy_https_saved\": \"HTTPS 配置已保存到所选环境私有文件;模式、域名或端口变更须全量部署,证书在服务器部署时申请或安装。\",\n \"cli_deploy_stage_https\": \"正在申请或安装 HTTPS 证书\",\n \"cli_help_imageSource\": \"镜像下载源:official、cn 或 custom\",\n \"cli_help_imageMirrors\": \"自定义镜像映射:docker.io=主机/路径,ghcr.io=主机/路径\",\n \"cli_help_npmSource\": \"npm 下载源:official、cn 或 custom(部署时需 --build)\",\n \"cli_help_npmRegistry\": \"自定义 npm registry 的 HTTP(S) 地址\",\n \"cli_help_proxyMode\": \"代理模式:inherit、system、custom 或 none\",\n \"cli_help_proxyUrl\": \"自定义 HTTP(S) 代理地址,不含认证信息\",\n \"cli_help_proxyBypass\": \"逗号分隔的代理绕过主机/域名\",\n \"cli_download_invalid\": \"下载源或代理配置无效,请检查源类型、地址和参数组合。\",\n \"cli_download_official\": \"官方\",\n \"cli_download_cn\": \"中国大陆(镜像:毫秒镜像;npm:npmmirror)\",\n \"cli_download_custom\": \"自定义\",\n \"cli_download_inherit\": \"继承当前进程代理\",\n \"cli_download_system\": \"读取系统静态代理\",\n \"cli_download_none\": \"禁用本次构建代理\",\n \"cli_download_choose_image\": \"选择镜像下载源(保存为项目默认)\",\n \"cli_download_choose_npm\": \"选择 npm 下载源(保存为项目默认)\",\n \"cli_download_choose_proxy\": \"选择下载代理模式(保存为项目默认)\",\n \"cli_download_image_mirrors\": \"输入仓库映射,如 docker.io=mirror.example.com/docker.io,ghcr.io=mirror.example.com/ghcr.io\",\n \"cli_download_npm_registry\": \"输入 npm registry 地址\",\n \"cli_download_proxy_url\": \"输入无认证的 HTTP(S) 代理地址\",\n \"cli_download_proxy_unreachable\": \"无法连接本机代理,请检查代理地址、端口和服务状态。\",\n \"cli_download_engine_proxy_configured\": \"镜像拉取预检:Docker 引擎已报告代理配置;实际拉取结果仍以引擎执行为准。\",\n \"cli_download_engine_proxy_local\": \"镜像拉取预检:本地 Podman 子进程可继承进程代理;构建容器代理单独检查。\",\n \"cli_download_engine_proxy_hint\": \"镜像拉取预检:{runtime} 的远程引擎代理无法由构建参数设置。请在 Docker Desktop 代理设置或 Podman Machine/API 服务中配置;构建容器代理将单独检查。\",\n \"cli_download_template_required\": \"Dockerfile 尚未支持所选下载源,请同步新版模板中的 HAI_NODE_IMAGE、HAI_NGINX_IMAGE 和 HAI_NPM_REGISTRY 参数:{path}\",\n \"cli_build_dependency_context_unsafe\": \"依赖构建缓存无法安全更新:{path}。原因:{reason};诊断码:{diagnostic}。请检查该路径后重试。\",\n \"cli_build_dependency_reason_invalid\": \"路径包含链接,或文件类型、大小不符合要求\",\n \"cli_build_dependency_reason_changed\": \"文件或目录在检查过程中发生变化\",\n \"cli_build_dependency_reason_read\": \"无法读取缓存,请检查访问权限和文件占用\",\n \"cli_build_dependency_reason_write\": \"无法写入或发布缓存,请检查访问权限、磁盘空间和文件占用\",\n \"cli_build_dependency_reason_tracking\": \"缓存跟踪清单不是有效的JSON\"\n}\n","/** CLI 用户可见消息;入口环境选择默认语言,后续仍使用 core 全局 locale。 */\nimport process from 'node:process'\nimport { core } from '@h-ai/core'\nimport enUS from '../messages/en-US.json'\nimport jaJP from '../messages/ja-JP.json'\nimport zhCN from '../messages/zh-CN.json'\n\n// 显式框架语言优先;终端地区变体映射到已有字典,不加载或生成另一套翻译。\nconst environmentLocale = [\n process.env.HAI_CORE_DEFAULTLOCALE,\n process.env.LC_ALL,\n process.env.LC_MESSAGES,\n process.env.LANG,\n].find(value => value?.trim())?.trim()\nconst language = environmentLocale?.split(/[_.-]/)[0]?.toLowerCase()\nif (language === 'en' || language === 'c' || language === 'posix')\n core.i18n.setGlobalLocale('en-US')\nelse if (language === 'ja')\n core.i18n.setGlobalLocale('ja-JP')\nelse if (language === 'zh')\n core.i18n.setGlobalLocale('zh-CN')\n\n/**\n * CLI 内部的消息获取器;先选取首个非空环境值,再映射语言。未知语言保持 core 当前 locale;后续显式切换 core locale 仍生效。\n * @example 模块内部上下文\n * ```ts\n * core.i18n.setGlobalLocale('en-US')\n * const help = cliM('cli_help_create')\n * // CLI 入口加载前:HAI_CORE_DEFAULTLOCALE=en-US 优先于 LC_ALL=zh_CN.UTF-8。\n * // 未显式指定时依次读取 LC_ALL、LC_MESSAGES、LANG;en/C/POSIX 映射 en-US,zh 映射 zh-CN,ja 映射 ja-JP。\n * ```\n */\nexport const cliM = core.i18n.createMessageGetter<keyof typeof zhCN>({ 'en-US': enUS, 'ja-JP': jaJP, 'zh-CN': zhCN })\n","/**\n * @h-ai/cli — Skill 模板生成\n *\n * 将 Skill 模板文件复制到用户项目中,供 AI 编程助手使用。\n * @module cli-skill-templates\n */\n\nimport type { AppType } from '../cli-types.js'\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\nimport fse from 'fs-extra'\nimport Handlebars from 'handlebars'\nimport { cliM } from '../cli-i18n.js'\n\n/**\n * 模块名到 Skill 目录名的映射\n */\nconst MODULE_SKILL_MAP: Record<string, string> = {\n 'db': 'hai-reldb',\n 'reldb': 'hai-reldb',\n 'cache': 'hai-cache',\n 'iam': 'hai-iam',\n 'storage': 'hai-storage',\n 'ai': 'hai-ai',\n 'crypto': 'hai-crypto',\n 'payment': 'hai-payment',\n 'vecdb': 'hai-vecdb',\n 'datapipe': 'hai-datapipe',\n 'reach': 'hai-reach',\n 'feedback': 'hai-feedback',\n 'scheduler': 'hai-scheduler',\n 'audit': 'hai-audit',\n 'deploy': 'hai-deploy',\n 'kit': 'hai-kit',\n 'ui': 'hai-ui',\n 'api-client': 'hai-api-client',\n 'capacitor': 'hai-capacitor',\n}\n\n/**\n * 各 appType 互斥的 Skill。\n *\n * 生成样板工程时,默认复制 templates/skills 下所有 hai-* Skill,\n * 仅排除与当前样板技术栈明显冲突的少数 Skill。\n */\nconst SKILL_EXCLUSIONS_BY_APP_TYPE: Partial<Record<AppType, string[]>> = {\n 'admin': [\n 'hai-serv',\n 'hai-api-contract',\n 'hai-api-client',\n 'hai-capacitor',\n ],\n 'website': [\n 'hai-serv',\n 'hai-api-contract',\n 'hai-api-client',\n 'hai-capacitor',\n ],\n 'h5': [\n 'hai-serv',\n 'hai-api-contract',\n 'hai-api-client',\n 'hai-capacitor',\n ],\n 'api': [\n 'hai-ui',\n 'hai-ui-design',\n 'hai-ui-review',\n 'hai-kit',\n 'hai-capacitor',\n ],\n 'mobile-app': [\n 'hai-core',\n 'hai-kit',\n 'hai-serv',\n 'hai-api-contract',\n ],\n 'fullstack': ['hai-kit'],\n}\n\nconst WORKFLOW_SKILLS = [\n 'hai-build',\n 'hai-change-plan',\n 'hai-spec-review',\n 'hai-spec-implement',\n 'hai-app-create',\n 'hai-app-review',\n 'hai-app-tests',\n 'hai-framework-sync',\n 'hai-ci',\n 'hai-pr-review',\n]\n\nconst PACKAGE_SKILL_MAP: Record<string, string> = {\n '@h-ai/api-contract': 'hai-api-contract',\n '@h-ai/api-client': 'hai-api-client',\n '@h-ai/core': 'hai-core',\n '@h-ai/serv': 'hai-serv',\n '@h-ai/kit': 'hai-kit',\n '@h-ai/ui': 'hai-ui',\n '@h-ai/reldb': 'hai-reldb',\n '@h-ai/cache': 'hai-cache',\n '@h-ai/iam': 'hai-iam',\n '@h-ai/storage': 'hai-storage',\n '@h-ai/ai': 'hai-ai',\n '@h-ai/crypto': 'hai-crypto',\n '@h-ai/payment': 'hai-payment',\n '@h-ai/vecdb': 'hai-vecdb',\n '@h-ai/datapipe': 'hai-datapipe',\n '@h-ai/reach': 'hai-reach',\n '@h-ai/feedback': 'hai-feedback',\n '@h-ai/scheduler': 'hai-scheduler',\n '@h-ai/audit': 'hai-audit',\n '@h-ai/deploy': 'hai-deploy',\n '@h-ai/capacitor': 'hai-capacitor',\n}\n\nconst SKILL_TARGET_DIRS = ['.agents/skills'] as const\n\nconst BRIDGE_FILES = [\n {\n source: 'copilot-instructions.md',\n destination: '.github/copilot-instructions.md',\n },\n {\n source: 'CLAUDE.md',\n destination: 'CLAUDE.md',\n },\n {\n source: 'AGENTS.md',\n destination: 'AGENTS.md',\n },\n {\n source: 'opencode.json',\n destination: 'opencode.json',\n },\n] as const\n\nconst BRIDGE_PROFILE_REGEX = /^[a-z0-9-]+$/\n\n/** 从已有模板标识与实际包布局确认桥接类型,不按项目名称猜测技术栈。 */\nasync function detectBridgeContext(projectPath: string): Promise<{ appType?: AppType, projectName?: string }> {\n const packagePath = path.join(projectPath, 'package.json')\n if (!(await fse.pathExists(packagePath))) {\n return {}\n }\n\n let metadata: unknown\n try {\n metadata = await fse.readJson(packagePath)\n }\n catch {\n return {}\n }\n if (!metadata || typeof metadata !== 'object' || !('name' in metadata)\n || typeof metadata.name !== 'string' || !BRIDGE_PROFILE_REGEX.test(metadata.name)) {\n return {}\n }\n\n const projectName = metadata.name\n for (const [appType, directory, suffixes] of [\n [\n 'fullstack',\n 'packages',\n ['contract', 'serv', 'shared'],\n ],\n [\n 'api',\n 'apps',\n ['contract', 'serv'],\n ],\n ] as const) {\n const manifests = await Promise.all(suffixes.map(suffix => fse.pathExists(\n path.join(projectPath, directory, `${projectName}-${suffix}`, 'package.json'),\n )))\n if (manifests.every(Boolean)) {\n return { appType, projectName }\n }\n }\n\n if ('keywords' in metadata && Array.isArray(metadata.keywords) && metadata.keywords.includes('hai')) {\n for (const appType of ['admin', 'website', 'h5', 'mobile-app'] as const) {\n if (metadata.keywords.includes(appType)) {\n return { appType, projectName }\n }\n }\n }\n return { projectName }\n}\n\nasync function listTemplateSkillNames(templatesDir: string): Promise<string[]> {\n const entries = await fse.readdir(templatesDir, { withFileTypes: true })\n const skillNames: string[] = []\n\n for (const entry of entries) {\n if (!entry.isDirectory() || !entry.name.startsWith('hai-')) {\n continue\n }\n\n const skillFilePath = path.join(templatesDir, entry.name, 'SKILL.md')\n if (await fse.pathExists(skillFilePath)) {\n skillNames.push(entry.name)\n }\n }\n\n return skillNames.sort((a, b) => a.localeCompare(b))\n}\n\n/**\n *\n * @param skillNames - 请求复制的 Skill 目录名。\n * @param appType - 应用模板类型,用于排除不适用的 Skill。\n * @returns 移除与应用技术栈明确冲突的 Skill 后的列表。\n * @example 模块内部上下文\n * ```ts\n * const names = resolveCompatibleSkillNames(['hai-ui', 'hai-serv', 'hai-app-tests'], 'api') // 排除与 API 工程冲突的 hai-ui。\n * ```\n */\nexport function resolveCompatibleSkillNames(\n skillNames: string[],\n appType?: AppType,\n): string[] {\n const excludedSkills = new Set(appType\n ? SKILL_EXCLUSIONS_BY_APP_TYPE[appType] ?? []\n : [])\n return skillNames.filter(skillName => !excludedSkills.has(skillName))\n}\n\n/**\n * 获取 templates/skills/ 目录的绝对路径\n *\n * 兼容两种运行环境:\n * - 构建后:dist/cli-skill-templates.js → ../templates/skills\n * - 测试时:src/commands/cli-skill-templates.ts → ../../templates/skills\n */\nfunction getSkillTemplatesDir(): string {\n const currentDir = path.dirname(fileURLToPath(import.meta.url))\n const distPath = path.resolve(currentDir, '..', 'templates', 'skills')\n if (fse.pathExistsSync(distPath)) {\n return distPath\n }\n return path.resolve(currentDir, '..', '..', 'templates', 'skills')\n}\n\n/**\n * 复制单个 Skill 目录到项目\n *\n * @param templatesDir - Skill 模板根目录\n * @param skillName - Skill 目录名(如 'hai-reldb')\n * @param projectPath - 用户项目根目录\n */\nasync function copySkill(\n templatesDir: string,\n skillName: string,\n projectPath: string,\n targetDirs: readonly string[] = SKILL_TARGET_DIRS,\n overwrite = true,\n): Promise<string[]> {\n const src = path.join(templatesDir, skillName)\n\n if (!(await fse.pathExists(src))) {\n return []\n }\n\n const copiedFiles: string[] = []\n const resources = await fse.readdir(src, { recursive: true, withFileTypes: true })\n const relativeFiles = resources.filter(resource => resource.isFile())\n .map(resource => path.relative(src, path.join(resource.parentPath, resource.name)))\n\n for (const targetDir of targetDirs) {\n const dest = path.join(projectPath, targetDir, skillName)\n await assertProjectOutputPath(projectPath, dest)\n if (!overwrite) {\n // 已有入口不能使新参考资源被跳过;逐文件补缺,同时保留用户修改。\n const missingFiles: string[] = []\n for (const relativeFile of relativeFiles) {\n if (!(await fse.pathExists(path.join(dest, relativeFile)))) {\n missingFiles.push(relativeFile)\n }\n }\n if (missingFiles.length === 0) {\n continue\n }\n for (const relativeFile of missingFiles)\n await assertProjectOutputPath(projectPath, path.join(dest, relativeFile))\n await fse.copy(src, dest, { overwrite: false })\n copiedFiles.push(...missingFiles.map(relativeFile => `${targetDir}/${skillName}/${relativeFile.replaceAll(path.sep, '/')}`))\n }\n else {\n for (const relativeFile of relativeFiles)\n await assertProjectOutputPath(projectPath, path.join(dest, relativeFile))\n await fse.copy(src, dest, { overwrite: true })\n copiedFiles.push(`${targetDir}/${skillName}/SKILL.md`)\n }\n }\n\n return copiedFiles\n}\n\n/**\n * 逐层检查现存祖先的真实路径,拒绝通过符号链接将 Skill 或桥接文件写到工程之外。\n * @param projectPath - 项目根目录。\n * @param destination - 本次复制的绝对目标路径。\n * @returns 路径安全时完成;越界或文件系统错误抛出。\n * @example 模块内部上下文\n * ```ts\n * const destination = path.resolve(process.cwd(), '.agents/skills/hai-ai/SKILL.md')\n * await assertProjectOutputPath(process.cwd(), destination)\n * ```\n */\nasync function assertProjectOutputPath(projectPath: string, destination: string): Promise<void> {\n let ancestor = destination\n while (!(await fse.pathExists(ancestor))) {\n const parent = path.dirname(ancestor)\n if (parent === ancestor)\n throw new Error(cliM('cli_generateOutsideWorkspace'))\n ancestor = parent\n }\n const relativeAncestor = path.relative(await fse.realpath(projectPath), await fse.realpath(ancestor))\n if (relativeAncestor === '..' || relativeAncestor.startsWith(`..${path.sep}`) || path.isAbsolute(relativeAncestor))\n throw new Error(cliM('cli_generateOutsideWorkspace'))\n}\n\nasync function copySkills(\n templatesDir: string,\n skillNames: string[],\n projectPath: string,\n targetDirs: readonly string[] = SKILL_TARGET_DIRS,\n overwrite = true,\n): Promise<string[]> {\n const copiedFiles: string[] = []\n\n // UI 使用、设计和审查按同一版本成套交付,补模块时也需补齐相邻资源。\n const selectedNames = skillNames.includes('hai-ui')\n ? [...skillNames, 'hai-ui-design', 'hai-ui-review']\n : skillNames\n\n for (const skillName of new Set(selectedNames)) {\n copiedFiles.push(...await copySkill(templatesDir, skillName, projectPath, targetDirs, overwrite))\n }\n\n return copiedFiles\n}\n\n/**\n * 复制桥接文件到项目\n *\n * @param templatesDir - Skill 模板根目录\n * @param projectPath - 用户项目根目录\n */\nasync function copyBridgeFiles(\n templatesDir: string,\n projectPath: string,\n overwrite = true,\n appType?: string,\n projectName?: string,\n): Promise<string[]> {\n const copiedFiles: string[] = []\n\n for (const file of BRIDGE_FILES) {\n const src = await resolveBridgeSource(templatesDir, file.source, appType, projectName !== undefined)\n const dest = path.join(projectPath, file.destination)\n\n if (!src) {\n continue\n }\n\n if (!overwrite && await fse.pathExists(dest)) {\n continue\n }\n\n await assertProjectOutputPath(projectPath, dest)\n await fse.ensureDir(path.dirname(dest))\n if (src.endsWith('.hbs')) {\n const template = await fse.readFile(src, 'utf8')\n const rendered = Handlebars.compile(template, { noEscape: true })({ projectName })\n await fse.writeFile(dest, rendered, 'utf8')\n }\n else {\n await fse.copy(src, dest, { overwrite })\n }\n copiedFiles.push(file.destination)\n }\n\n return copiedFiles\n}\n\nasync function resolveBridgeSource(\n templatesDir: string,\n source: string,\n appType?: string,\n allowTemplate = false,\n): Promise<string | null> {\n const profile = appType && BRIDGE_PROFILE_REGEX.test(appType)\n ? appType\n : 'generic'\n const candidates = [\n ...(allowTemplate\n ? [\n path.join(templatesDir, 'bridges', profile, `${source}.hbs`),\n ]\n : []),\n path.join(templatesDir, 'bridges', profile, source),\n path.join(templatesDir, 'bridges', 'generic', source),\n path.join(templatesDir, source),\n ]\n\n for (const candidate of candidates) {\n if (await fse.pathExists(candidate)) {\n return candidate\n }\n }\n\n return null\n}\n\n/**\n * 为新项目生成完整的 Skill 文件。\n *\n * 默认复制 templates/skills 下所有 hai-* Skill,再按 appType 排除互斥项。\n *\n * @param projectPath - 用户项目根目录\n * @param _features - 预留参数;保留签名兼容 createProject 调用方\n * @param appType - 应用类型(api 类型不复制 UI Skill)\n * 写入 .agents/skills 与各工具桥接文件;模板目录缺失时返回空数组,文件错误抛出。\n * @param projectName - 项目名称,用于渲染桥接说明。\n * @returns 本次复制的 Skill 与桥接文件路径。\n * @example 模块内部上下文\n * ```ts\n * const files = await generateSkillFiles(process.cwd(), ['ai'], 'api', 'shop')\n * // API 模板复制整个兼容 Skill 目录;features 参数不作为能力裁剪开关。\n * ```\n */\nexport async function generateSkillFiles(\n projectPath: string,\n _features: string[],\n appType?: string,\n projectName?: string,\n): Promise<string[]> {\n const templatesDir = getSkillTemplatesDir()\n\n if (!(await fse.pathExists(templatesDir))) {\n return []\n }\n\n const copiedFiles: string[] = []\n\n const templateSkillNames = await listTemplateSkillNames(templatesDir)\n const compatibleSkillNames = resolveCompatibleSkillNames(templateSkillNames, appType as AppType | undefined)\n\n copiedFiles.push(...await copySkills(templatesDir, compatibleSkillNames, projectPath))\n\n // 复制桥接文件\n copiedFiles.push(...await copyBridgeFiles(templatesDir, projectPath, true, appType, projectName))\n\n return copiedFiles\n}\n\n/**\n * 为已有项目添加单个模块的 Skill 文件\n *\n * 同时补全普通开发所需工作流及缺失参考资源,保留已有文件。\n *\n * @param projectPath - 用户项目根目录\n * @param moduleId - 模块标识(如 'db'、'iam')\n * @returns 复制的文件路径,若模块无对应 Skill 则返回 null\n * 未映射模块或没有新增文件时返回 null;已有 Skill 与桥接默认不覆盖。\n * @example 模块内部上下文\n * ```ts\n * const files = await generateModuleSkillFile(process.cwd(), 'ai')\n * if (files) {\n * const generatedCount = files.length\n * }\n * ```\n */\nexport async function generateModuleSkillFile(\n projectPath: string,\n moduleId: string,\n): Promise<string[] | null> {\n const skillName = MODULE_SKILL_MAP[moduleId]\n if (!skillName) {\n return null\n }\n\n const copiedFiles = await generateProjectAiSupport(projectPath, [skillName], {\n overwriteSkills: false,\n overwriteBridgeFiles: false,\n })\n return copiedFiles.length > 0\n ? copiedFiles\n : null\n}\n\n/**\n *\n * @param packageNames - 实际依赖的 @h-ai/* 包名列表。\n * @returns 工作流与模块 Skill 合并后的去重目录名。\n * @example 模块内部上下文\n * ```ts\n * const names = resolveSkillNamesForPackages(['@h-ai/core', '@h-ai/ai']) // 含工作流 Skill,并去重模块 Skill。\n * ```\n */\nexport function resolveSkillNamesForPackages(packageNames: string[]): string[] {\n const skillNames = [...WORKFLOW_SKILLS]\n\n for (const packageName of packageNames) {\n const skillName = PACKAGE_SKILL_MAP[packageName]\n if (skillName) {\n skillNames.push(skillName)\n }\n }\n\n if (skillNames.includes('hai-ui'))\n skillNames.push('hai-ui-design', 'hai-ui-review')\n\n return [\n ...new Set(skillNames),\n ]\n}\n\n/**\n * 返回本次复制的文件;校验所有输出真实路径位于项目内,拒绝符号链接越界。\n * @throws Error - 模板读取、输出路径校验或写入失败。\n * @param projectPath - 允许写入的项目根目录。\n * @param skillNames - 请求复制的 Skill 目录名。\n * @param options - Skill/桥接覆盖策略与可选项目身份。\n * @param options.overwriteSkills - 是否覆盖已有 Skill;默认 true。\n * @param options.overwriteBridgeFiles - 是否覆盖工具桥接文件;默认 true。\n * @param options.appType - 明确的应用模板类型;省略时按项目布局检测。\n * @param options.projectName - 桥接文档中的项目名称;省略时检测 package.json。\n * @returns 本次复制的 Skill 与桥接文件路径。\n * @example 模块内部上下文\n * ```ts\n * const files = await generateProjectAiSupport(process.cwd(), resolveSkillNamesForPackages(['@h-ai/ai']), { overwriteSkills: false, overwriteBridgeFiles: false })\n * // 已有内容保留;确定模板类型时补全整个兼容目录。\n * ```\n */\nexport async function generateProjectAiSupport(\n projectPath: string,\n skillNames: string[],\n options: {\n overwriteSkills?: boolean\n overwriteBridgeFiles?: boolean\n appType?: string\n projectName?: string\n } = {},\n): Promise<string[]> {\n const templatesDir = getSkillTemplatesDir()\n\n if (!(await fse.pathExists(templatesDir))) {\n return []\n }\n\n const {\n overwriteSkills = true,\n overwriteBridgeFiles = true,\n } = options\n\n const detected = await detectBridgeContext(projectPath)\n const appType = options.appType ?? detected.appType\n const projectName = options.projectName ?? detected.projectName\n // 已确认的样板补全整个兼容目录;其它项目只补工作流与明确请求的模块。\n const requestedSkillNames = appType\n ? [\n ...resolveCompatibleSkillNames(await listTemplateSkillNames(templatesDir), appType as AppType),\n ...WORKFLOW_SKILLS,\n ...skillNames,\n ]\n : [\n ...WORKFLOW_SKILLS,\n ...skillNames,\n ]\n const selectedSkillNames = resolveCompatibleSkillNames(requestedSkillNames, appType as AppType | undefined)\n const copiedFiles: string[] = []\n copiedFiles.push(...await copySkills(templatesDir, selectedSkillNames, projectPath, SKILL_TARGET_DIRS, overwriteSkills))\n copiedFiles.push(...await copyBridgeFiles(templatesDir, projectPath, overwriteBridgeFiles, appType, projectName))\n\n return copiedFiles\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export { generateConfigFile, generateEnvExample, generateProductionEnvironment } from './chunk-CWMU5QU2.js';
|
|
3
|
+
import './chunk-ZSDEVXZ7.js';
|
|
4
|
+
//# sourceMappingURL=cli-config-templates-OWLL4H6K.js.map
|
|
5
|
+
//# sourceMappingURL=cli-config-templates-OWLL4H6K.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"cli-config-templates-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"cli-config-templates-OWLL4H6K.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
export { generateModuleSkillFile, generateProjectAiSupport, generateSkillFiles, resolveCompatibleSkillNames, resolveSkillNamesForPackages } from './chunk-
|
|
2
|
+
export { generateModuleSkillFile, generateProjectAiSupport, generateSkillFiles, resolveCompatibleSkillNames, resolveSkillNamesForPackages } from './chunk-P2VZ3VV6.js';
|
|
3
3
|
import './chunk-ZSDEVXZ7.js';
|
|
4
|
-
//# sourceMappingURL=cli-skill-templates-
|
|
5
|
-
//# sourceMappingURL=cli-skill-templates-
|
|
4
|
+
//# sourceMappingURL=cli-skill-templates-JKF6E3PI.js.map
|
|
5
|
+
//# sourceMappingURL=cli-skill-templates-JKF6E3PI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"cli-skill-templates-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"cli-skill-templates-JKF6E3PI.js"}
|