@h-ai/cli 1.0.0-beta.2 → 1.0.0-beta.20
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 +74 -154
- package/README.ja.md +74 -154
- package/README.md +74 -154
- package/dist/{chunk-AKV2CQZV.js → chunk-2ZL5ORQ2.js} +316 -97
- package/dist/chunk-2ZL5ORQ2.js.map +1 -0
- package/dist/{chunk-EF7WOFWZ.js → chunk-L53P43B2.js} +1312 -163
- package/dist/chunk-L53P43B2.js.map +1 -0
- package/dist/cli-config-templates-LWMD2I6V.js +5 -0
- package/dist/{cli-config-templates-HHFHNXBN.js.map → cli-config-templates-LWMD2I6V.js.map} +1 -1
- package/dist/{cli-skill-templates-PN4FLGBC.js → cli-skill-templates-D6S2OQ6X.js} +3 -3
- package/dist/{cli-skill-templates-PN4FLGBC.js.map → cli-skill-templates-D6S2OQ6X.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +30118 -3253
- package/dist/index.js.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/package.json +22 -18
- package/templates/README.md +45 -30
- package/templates/apps/admin/src/routes/+layout.svelte.hbs +16 -10
- package/templates/apps/admin/src/routes/+page.svelte.hbs +4 -4
- package/templates/apps/admin/src/routes/admin/+layout.svelte.hbs +17 -7
- package/templates/apps/admin/src/routes/admin/+page.svelte.hbs +26 -6
- package/templates/apps/admin/src/routes/admin/settings/+page.svelte.hbs +2 -2
- package/templates/apps/api/.dockerignore.hbs +10 -0
- package/templates/apps/api/apps/{{projectName}}-contract/README.md.hbs +8 -0
- package/templates/apps/api/apps/{{projectName}}-contract/src/app-schemas.ts.hbs +6 -1
- package/templates/apps/api/apps/{{projectName}}-contract/src/{{projectName}}-contract.ts.hbs +13 -5
- package/templates/apps/api/apps/{{projectName}}-contract/tests/contract.test.ts.hbs +13 -5
- package/templates/apps/api/apps/{{projectName}}-contract/tsup.config.ts.hbs +3 -1
- package/templates/apps/api/apps/{{projectName}}-serv/README.md.hbs +6 -2
- package/templates/apps/api/apps/{{projectName}}-serv/config/_serv.yml.hbs +24 -2
- package/templates/apps/api/apps/{{projectName}}-serv/package.json.hbs +4 -4
- package/templates/apps/api/apps/{{projectName}}-serv/src/app.ts.hbs +74 -24
- package/templates/apps/api/apps/{{projectName}}-serv/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/api/apps/{{projectName}}-serv/src/lib/server/init.ts.hbs +153 -37
- package/templates/apps/api/apps/{{projectName}}-serv/src/server/procedures/index.ts.hbs +39 -13
- package/templates/apps/api/apps/{{projectName}}-serv/tests/service.test.ts.hbs +106 -33
- package/templates/apps/api/apps/{{projectName}}-serv/tsup.config.ts.hbs +3 -1
- package/templates/apps/api/apps/{{projectName}}-serv/vitest.config.ts.hbs +3 -1
- package/templates/apps/api/e2e/api-serv.spec.ts.hbs +20 -3
- package/templates/apps/api/e2e/capture-evidence.ts.hbs +4 -1
- package/templates/apps/api/eslint.config.js.hbs +3 -1
- package/templates/apps/api/images/serv.Dockerfile.hbs +15 -10
- package/templates/apps/api/playwright.config.ts.hbs +23 -19
- package/templates/apps/api/pnpm-workspace.yaml.hbs +27 -16
- package/templates/apps/fullstack/.dockerignore.hbs +10 -0
- package/templates/apps/fullstack/.gitignore.hbs +7 -2
- package/templates/apps/fullstack/apps/{{projectName}}-app/README.md.hbs +14 -12
- package/templates/apps/fullstack/apps/{{projectName}}-app/capacitor.config.ts.hbs +5 -3
- package/templates/apps/fullstack/apps/{{projectName}}-app/eslint.config.js.hbs +10 -2
- package/templates/apps/fullstack/apps/{{projectName}}-app/package.json.hbs +1 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/App.svelte.hbs +10 -2
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/src/lib/capacitor.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/svelte.config.js.hbs +4 -1
- package/templates/apps/fullstack/apps/{{projectName}}-app/vite.config.ts.hbs +16 -4
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/README.md.hbs +10 -8
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/package.json.hbs +3 -3
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/App.svelte.hbs +8 -2
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/src-tauri/tauri.conf.json.hbs +0 -2
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/svelte.config.js.hbs +4 -1
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/vite.config.ts.hbs +16 -4
- package/templates/apps/fullstack/apps/{{projectName}}-miniapp/README.md.hbs +2 -0
- package/templates/apps/fullstack/apps/{{projectName}}-web/README.md.hbs +9 -9
- package/templates/apps/fullstack/apps/{{projectName}}-web/eslint.config.js.hbs +10 -2
- package/templates/apps/fullstack/apps/{{projectName}}-web/index.html.hbs +1 -0
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/fullstack/apps/{{projectName}}-web/src/main.ts.hbs +0 -2
- package/templates/apps/fullstack/apps/{{projectName}}-web/svelte.config.js.hbs +4 -1
- package/templates/apps/fullstack/apps/{{projectName}}-web/vite.config.ts.hbs +19 -5
- package/templates/apps/fullstack/docs/security-configuration.md.hbs +4 -1
- package/templates/apps/fullstack/e2e/fullstack.spec.ts.hbs +140 -28
- package/templates/apps/fullstack/e2e/session-close.spec.ts.hbs +19 -5
- package/templates/apps/fullstack/eslint.config.js.hbs +3 -1
- package/templates/apps/fullstack/images/serv.Dockerfile.hbs +19 -11
- package/templates/apps/fullstack/images/web.Dockerfile.hbs +17 -8
- package/templates/apps/fullstack/package.json.hbs +2 -1
- package/templates/apps/fullstack/packages/{{projectName}}-contract/README.md.hbs +7 -5
- package/templates/apps/fullstack/packages/{{projectName}}-contract/src/admin-contract.ts.hbs +114 -23
- package/templates/apps/fullstack/packages/{{projectName}}-contract/src/admin-schemas.ts.hbs +57 -11
- package/templates/apps/fullstack/packages/{{projectName}}-contract/tsup.config.ts.hbs +3 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/README.md.hbs +17 -7
- package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_reach.yml.hbs +13 -7
- package/templates/apps/fullstack/packages/{{projectName}}-serv/config/_serv.yml.hbs +17 -7
- package/templates/apps/fullstack/packages/{{projectName}}-serv/package.json.hbs +10 -4
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/app-server.ts.hbs +65 -30
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/build-metadata.ts.hbs +0 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/index.ts.hbs +1 -2
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/admin-service.ts.hbs +69 -21
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/business-settings.ts.hbs +21 -5
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/admin-procedures.ts.hbs +63 -11
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/app-procedures.ts.hbs +6 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/procedures/index.ts.hbs +3 -1
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/runtime.ts.hbs +147 -33
- package/templates/apps/fullstack/packages/{{projectName}}-serv/src/server/security-roles.ts.hbs +43 -12
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/app-server.test.ts.hbs +146 -30
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/runtime.test.ts.hbs +33 -10
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tests/security.test.ts.hbs +142 -26
- package/templates/apps/fullstack/packages/{{projectName}}-serv/tsup.config.ts.hbs +6 -2
- package/templates/apps/fullstack/packages/{{projectName}}-serv/vitest.config.ts.hbs +3 -1
- package/templates/apps/fullstack/packages/{{projectName}}-shared/README.md.hbs +48 -66
- package/templates/apps/fullstack/packages/{{projectName}}-shared/messages/en-US.json.hbs +1 -0
- package/templates/apps/fullstack/packages/{{projectName}}-shared/messages/ja-JP.json.hbs +1 -0
- package/templates/apps/fullstack/packages/{{projectName}}-shared/messages/zh-CN.json.hbs +1 -0
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/api-client.ts.hbs +9 -2
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/feedback-client.ts.hbs +0 -3
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/api/sensitive-actions.svelte.ts.hbs +15 -3
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/AppShell.svelte.hbs +33 -7
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/components/FeedbackEntry.svelte.hbs +16 -2
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/audit.svelte.hbs +104 -13
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/feedback.svelte.hbs +37 -7
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/roles.svelte.hbs +9 -3
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/settings.svelte.hbs +25 -3
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/pages/users.svelte.hbs +133 -19
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/security/role-label.ts.hbs +14 -2
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/guide-store.ts.hbs +66 -34
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/management-store.svelte.ts.hbs +132 -30
- package/templates/apps/fullstack/packages/{{projectName}}-shared/src/lib/stores/theme-store.svelte.ts.hbs +8 -2
- package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/api-client.test.ts.hbs +23 -5
- package/templates/apps/fullstack/packages/{{projectName}}-shared/tests/management-store.test.ts.hbs +143 -21
- package/templates/apps/fullstack/packages/{{projectName}}-shared/vitest.config.ts.hbs +7 -2
- package/templates/apps/fullstack/playwright.config.ts.hbs +25 -3
- package/templates/apps/fullstack/pnpm-workspace.yaml.hbs +30 -14
- package/templates/apps/h5/src/routes/+layout.svelte.hbs +74 -30
- package/templates/apps/h5/src/routes/+page.svelte.hbs +2 -2
- package/templates/apps/h5/src/routes/discover/+page.svelte.hbs +2 -2
- package/templates/apps/h5/src/routes/profile/+page.svelte.hbs +2 -2
- package/templates/apps/mobile-app/capacitor.config.ts.hbs +5 -2
- package/templates/apps/mobile-app/messages/en-US.json +2 -2
- package/templates/apps/mobile-app/messages/ja-JP.json +2 -2
- package/templates/apps/mobile-app/messages/zh-CN.json +2 -2
- package/templates/apps/mobile-app/src/App.svelte.hbs +17 -5
- package/templates/apps/mobile-app/src/lib/api.ts.hbs +20 -6
- package/templates/apps/mobile-app/src/lib/app-config.ts.hbs +8 -1
- package/templates/apps/mobile-app/src/lib/pages/home.svelte.hbs +6 -2
- package/templates/apps/mobile-app/src/lib/pages/profile.svelte.hbs +13 -1
- package/templates/apps/mobile-app/src/lib/pages/tasks.svelte.hbs +5 -1
- package/templates/apps/website/scripts/static-website.mjs.hbs +19 -6
- package/templates/apps/website/src/routes/+layout.svelte.hbs +56 -29
- package/templates/apps/website/src/routes/+page.svelte.hbs +4 -4
- package/templates/apps/website/src/routes/about/+page.svelte.hbs +2 -2
- package/templates/apps/website/src/routes/contact/+page.svelte.hbs +2 -2
- package/templates/apps/website/src/routes/services/+page.svelte.hbs +20 -5
- package/templates/base/.dockerignore.hbs +10 -0
- package/templates/base/.gitignore.hbs +7 -2
- package/templates/base/e2e/app.spec.ts.hbs +130 -36
- package/templates/base/eslint-rules.js +44 -25
- package/templates/base/eslint.config.js.hbs +3 -1
- package/templates/base/images/web.Dockerfile.hbs +25 -14
- package/templates/base/package.json.hbs +13 -7
- package/templates/base/patches/daisyui-5.7.50.patch +8 -0
- package/templates/base/patches/deepmerge-4.3.1.patch +51 -0
- package/templates/base/playwright.config.ts +3 -1
- package/templates/base/pnpm-workspace.yaml.hbs +33 -16
- package/templates/base/src/app.d.ts.hbs +1 -1
- package/templates/base/src/app.html.hbs +1 -0
- package/templates/base/src/hooks.server.ts.hbs +44 -33
- package/templates/base/src/lib/build-metadata.ts.hbs +0 -1
- package/templates/base/src/lib/server/init.ts.hbs +146 -35
- package/templates/base/src/lib/server/kit-config.ts.hbs +7 -4
- package/templates/base/src/routes/+layout.server.ts.hbs +2 -2
- package/templates/base/svelte.config.js.hbs +10 -100
- package/templates/base/tests/scaffold.test.ts.hbs +12 -3
- package/templates/base/tsconfig.json.hbs +7 -4
- package/templates/base/vite.config.ts.hbs +108 -14
- package/templates/base/vitest.config.ts.hbs +6 -2
- package/templates/features/ai/routes/api/chat/+server.ts +3 -1
- package/templates/features/iam/routes-admin/(auth)/auth/forgot-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-admin/(auth)/auth/login/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-admin/(auth)/auth/register/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-admin/(auth)/auth/reset-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-h5/auth/forgot-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-h5/auth/login/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-h5/auth/register/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-h5/auth/reset-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-website/auth/forgot-password/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-website/auth/login/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-website/auth/register/+page.svelte.hbs +3 -3
- package/templates/features/iam/routes-website/auth/reset-password/+page.svelte.hbs +3 -3
- package/templates/features/payment/routes/api/v1/payment/create/+server.ts +14 -3
- package/templates/shared/browser-check/startup.js +115 -0
- package/templates/shared/browser-check/update.css +37 -0
- package/templates/shared/browser-check/update.html +19 -0
- package/templates/shared/browser-startup.spec.ts +23 -0
- package/templates/shared/build-metadata.ts +18 -4
- package/templates/shared/e2e-env.ts +22 -6
- package/templates/shared/native-name.d.mts +5 -0
- package/templates/shared/native-name.mjs +94 -0
- package/templates/shared/public-base-path.mjs +17 -4
- package/templates/shared/run-e2e.mjs +46 -12
- package/templates/shared/run-node.mjs +56 -0
- package/templates/shared/run-tauri.mjs +74 -0
- package/templates/shared/vite-runtime-config.ts +9 -3
- package/templates/skills/AGENTS.md +10 -73
- package/templates/skills/bridges/admin/AGENTS.md +9 -65
- package/templates/skills/bridges/api/AGENTS.md +8 -59
- package/templates/skills/bridges/fullstack/AGENTS.md.hbs +9 -54
- package/templates/skills/bridges/h5/AGENTS.md +8 -63
- package/templates/skills/bridges/mobile-app/AGENTS.md +8 -62
- package/templates/skills/bridges/website/AGENTS.md +8 -63
- package/templates/skills/hai-ai/SKILL.md +6 -2
- package/templates/skills/hai-ai/acp.md +153 -0
- package/templates/skills/hai-ai/guide.md +27 -12
- package/templates/skills/hai-ai/reference.md +24 -15
- package/templates/skills/hai-ai/resources.md +69 -0
- package/templates/skills/hai-api-client/SKILL.md +1 -1
- package/templates/skills/hai-api-client/reference.md +3 -1
- package/templates/skills/hai-app-create/collaboration.md +7 -0
- package/templates/skills/hai-app-create/development.md +19 -10
- package/templates/skills/hai-app-create/project.md +33 -0
- package/templates/skills/hai-app-create/reference.md +10 -10
- package/templates/skills/hai-app-tests/reference.md +1 -1
- package/templates/skills/hai-app-tests/validation.md +1 -0
- package/templates/skills/hai-build/SKILL.md +19 -9
- package/templates/skills/hai-build/paths.md +4 -2
- package/templates/skills/hai-build/reference.md +26 -8
- package/templates/skills/hai-cache/reference.md +6 -2
- package/templates/skills/hai-capacitor/SKILL.md +1 -0
- package/templates/skills/hai-capacitor/reference.md +24 -0
- package/templates/skills/hai-ci/SKILL.md +3 -0
- package/templates/skills/hai-core/SKILL.md +9 -4
- package/templates/skills/hai-core/reference.md +40 -10
- package/templates/skills/hai-core/request-access.md +2 -2
- package/templates/skills/hai-crypto/SKILL.md +2 -2
- package/templates/skills/hai-crypto/reference.md +7 -3
- package/templates/skills/hai-deploy/SKILL.md +41 -5
- package/templates/skills/hai-deploy/middleware.md +26 -14
- package/templates/skills/hai-framework-sync/SKILL.md +13 -9
- package/templates/skills/hai-framework-sync/sync.md +2 -0
- package/templates/skills/hai-iam/reference.md +2 -2
- package/templates/skills/hai-kit/SKILL.md +1 -1
- package/templates/skills/hai-kit/reference.md +19 -5
- package/templates/skills/hai-payment/reference.md +41 -17
- package/templates/skills/hai-reach/SKILL.md +3 -1
- package/templates/skills/hai-reach/reference.md +29 -9
- package/templates/skills/hai-reldb/SKILL.md +1 -1
- package/templates/skills/hai-reldb/reference.md +9 -2
- package/templates/skills/hai-scheduler/reference.md +1 -1
- package/templates/skills/hai-serv/SKILL.md +2 -1
- package/templates/skills/hai-serv/reference.md +26 -15
- package/templates/skills/hai-storage/reference.md +23 -6
- package/templates/skills/hai-ui/SKILL.md +8 -5
- package/templates/skills/hai-ui/charts.md +51 -0
- package/templates/skills/hai-ui/guide.md +1 -1
- package/templates/skills/hai-ui/reference.md +29 -38
- package/templates/skills/hai-vecdb/reference.md +8 -3
- package/dist/chunk-AKV2CQZV.js.map +0 -1
- package/dist/chunk-EF7WOFWZ.js.map +0 -1
- package/dist/chunk-MUHRBJSW.js +0 -29272
- package/dist/chunk-MUHRBJSW.js.map +0 -1
- package/dist/cli-config-templates-HHFHNXBN.js +0 -5
- package/dist/src-TEBHR5I5.js +0 -5
- package/dist/src-TEBHR5I5.js.map +0 -1
- package/templates/apps/fullstack/playwright.session-close.config.ts.hbs +0 -18
package/README.ja.md
CHANGED
|
@@ -1,228 +1,148 @@
|
|
|
1
1
|
# @h-ai/cli
|
|
2
2
|
|
|
3
|
-
[简体中文](README.md) | [English](README.en.md) | [日本語](README.ja.md)
|
|
3
|
+
[简体中文](README.md) | [English](README.en.md) | [日本語](README.ja.md) · [ホーム](../../README.ja.md)
|
|
4
4
|
|
|
5
|
-
[
|
|
5
|
+
`hai` でアプリ作成、モジュール追加、コード生成、Web/API/ネイティブ成果物の構築と配布を行います。全体の手順は[利用ガイド](../../docs/usage/README.ja.md)を参照してください。
|
|
6
6
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
生成プロジェクトは既定で `zh-CN`、`en-US`、`ja-JP` を有効にします。対話設定で日本語を既定に選択でき、fullstack は `fullstack.i18n.locales` で言語を制限できます。CLI は `HAI_CORE_DEFAULTLOCALE` → `LC_ALL` → `LC_MESSAGES` → `LANG` の順で中国語・英語・日本語を選択します。
|
|
10
|
-
|
|
11
|
-
`hai` でアプリ作成、モジュール追加、ひな型生成、ビルド、配布を行います。SvelteKit、独立 API、フロントとバックを分離した工程に対応します。全体の流れは[利用ガイド](../../docs/usage/README.ja.md)を参照してください。
|
|
12
|
-
|
|
13
|
-
## 主な機能
|
|
14
|
-
|
|
15
|
-
- 管理画面、企業サイト、H5、API、モバイル、fullstack の作成。
|
|
16
|
-
- 既存アプリへのモジュール・設定・AI 指引の追加。
|
|
17
|
-
- ページ、部品、API、モデル、マイグレーションのひな型生成。
|
|
18
|
-
- 選択イメージのビルド、完全オフライン配布、サービス単位の更新。
|
|
19
|
-
|
|
20
|
-
## 使い始める
|
|
7
|
+
## クイックスタート
|
|
21
8
|
|
|
22
9
|
### CLI のインストール
|
|
23
10
|
|
|
24
|
-
Node.js は `engines`(`^22.23.4 || ^24.22.1 || ^26.12.1
|
|
25
|
-
|
|
26
|
-
以下は目標Beta版です。公開チャネルと `1.0.0-beta.1` の提供状況を確認してからインストールしてください。検証対象であることは公開済みの意味ではありません。版を省略するとlatestとなり、Betaを自動選択しません。
|
|
11
|
+
Node.js は `engines`(`^22.23.4 || ^24.22.1 || ^26.12.1`)、pnpm は12.11.2を使用します。PowerShellでは `pnpm.cmd` を使います。
|
|
27
12
|
|
|
28
13
|
```sh
|
|
29
|
-
pnpm view @h-ai/cli
|
|
30
|
-
pnpm
|
|
31
|
-
pnpm add -g @h-ai/cli@1.0.0-beta.1
|
|
14
|
+
pnpm view @h-ai/cli@latest version
|
|
15
|
+
pnpm add -g @h-ai/cli@latest
|
|
32
16
|
hai --version
|
|
33
|
-
hai --
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
生成したフレームワーク依存は CLI と同じ厳密バージョンに固定します。インストール失敗時はコマンド・終了コード・出力を表示し、再試行できるようファイルを残します。未公開ソースは下記のローカル開発手順で検証してください。
|
|
37
|
-
|
|
38
|
-
### アプリの作成
|
|
39
|
-
|
|
40
|
-
```sh
|
|
41
|
-
hai create my-app --type fullstack --frontends web --yes
|
|
17
|
+
hai create my-app --type fullstack --frontends web
|
|
42
18
|
cd my-app
|
|
43
19
|
pnpm dev
|
|
44
20
|
```
|
|
45
21
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
### プロジェクトテンプレート
|
|
49
|
-
|
|
50
|
-
| 種類 | 生成内容 |
|
|
51
|
-
| -------------------------- | -------------------------------------------------------------------- |
|
|
52
|
-
| `admin` / `website` / `h5` | SvelteKit 管理画面・サイト・モバイル Web |
|
|
53
|
-
| `api` | 共通 contract と API service の pnpm workspace |
|
|
54
|
-
| `mobile-app` | Svelte + Vite + Capacitor |
|
|
55
|
-
| `fullstack` | contract、API、共通 UI、選択した Web/App/Desktop。miniapp は説明のみ |
|
|
56
|
-
|
|
57
|
-
`--template minimal|default|full|custom` で構成を選び、`--features iam,db,...` で業務モジュールを指定します。Fullstack は管理 UI に必要な IAM・DB・cache・crypto・storage・audit・任意バックアップ/アラート用 scheduler を保持します。`--features` を省略すると feedback と reach も有効になります。明示した機能一覧では任意モジュールの選択を保持し、他のアプリ種別では問題報告を明示的に選択します。AI/ONNX/CUDA は既定で入りません。
|
|
22
|
+
入力は工程名とテンプレート種別、出力は生成工程です。依存インストールとGit初期化は既定で有効です。`--defaults` は既定値を使い、`--no-install`、`--no-git`、`--no-deploy` はそれぞれインストール、Git、デプロイ開発依存を省略します。省略項目は対話で選択します。各コマンドの引数は `hai <command> --help` で確認してください。
|
|
58
23
|
|
|
59
|
-
|
|
24
|
+
## 機能
|
|
60
25
|
|
|
61
|
-
###
|
|
26
|
+
### コマンドの用途・入力・出力
|
|
62
27
|
|
|
63
|
-
|
|
28
|
+
CLIは端末から実行し、フレームワークサービスの初期化は不要です。出力と終了コードで判断します。TARGET_VERSIONはpnpm viewで確認した公開済みの厳密バージョンへ置き換え、文字列をそのまま渡さないでください。
|
|
64
29
|
|
|
65
|
-
|
|
30
|
+
| コマンド | 用途・入力 | 出力と例 |
|
|
31
|
+
| -------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
32
|
+
| create | 工程名、type、fullstackのフロント選択 | `hai create orders --type admin --defaults` で管理アプリを生成 |
|
|
33
|
+
| add | 現工程へ指定モジュールを追加 | `hai add ai` は依存・設定・skillを補完。業務ファイルは維持し、初期化・終了・ルートはアプリで接続 |
|
|
34
|
+
| init | 設定とAI入口を補完 | `hai init` は不足ファイルを追加。`--force` の設定再生成前に差分を確認 |
|
|
35
|
+
| generate / g | 種別、名前、対象workspace | `hai generate api orders --workspace orders-serv` はルートまたはcontract/procedureを生成。短縮形はg:page/g:component/g:api/g:model |
|
|
36
|
+
| build | target、イメージ/プラットフォーム、ソース | `hai build --target image --json` は今回の成果物JSONを出力。buildはデプロイ環境を受け取らない |
|
|
37
|
+
| deploy | 環境、成果物、対象サービス | `hai deploy --env prod --plan` は読取専用計画。planを外すと配布処理へ進む |
|
|
38
|
+
| upgrade | 厳密な公開版と工程 | `hai upgrade TARGET_VERSION` は依存・完全性・設定・skill差分を報告。自動インストールや上書きはしない |
|
|
39
|
+
| deploy-secrets | サーバーディレクトリと私有JSON | `hai deploy-secrets /srv/orders --import /private/orders.json --runtime docker` は既定で事前検査、明示的な `--apply` のみ保存 |
|
|
40
|
+
| feedback | action、診断ZIP、検索条件 | `hai feedback summary feedback.zip` は要約。inspect/evidence/viewはmanifest、証跡、本機ビューア |
|
|
66
41
|
|
|
67
|
-
|
|
42
|
+
共通 `--cwd/-C` は工程ディレクトリ、`--verbose/-v` は詳細診断です。CLI言語は `HAI_CORE_DEFAULTLOCALE` → `LC_ALL` → `LC_MESSAGES` → `LANG` から選び、生成アプリの言語とは独立します。
|
|
68
43
|
|
|
69
|
-
|
|
44
|
+
### テンプレート
|
|
70
45
|
|
|
71
|
-
|
|
46
|
+
| type | 生成内容と用途 |
|
|
47
|
+
| -------------------- | ---------------------------------------------------------------------- |
|
|
48
|
+
| admin / website / h5 | SvelteKit管理画面、紹介サイト、モバイルWeb。websiteはCore/Kit/UIで開始 |
|
|
49
|
+
| api | contractと独立Servのpnpm workspace |
|
|
50
|
+
| mobile-app | 独立APIへ接続するSvelte/Vite/Capacitorクライアント |
|
|
51
|
+
| fullstack | contract、Serv、共有UI、選択したWeb/App/Desktop。miniappは予約説明 |
|
|
72
52
|
|
|
73
|
-
|
|
53
|
+
必要なモジュールのみインストールし、任意設定のコメントと `.env.example` を残します。コメント解除だけでは業務接続は完了しません。AI/payment/vecdb/datapipeは必要時に追加し、本番では共有DB、Redis、共有ファイルバックエンドを使います。既定言語は中英日、fullstackは `fullstack.i18n.locales` で限定できます。
|
|
74
54
|
|
|
75
|
-
|
|
55
|
+
ブラウザ用テンプレートは起動前に既知の旧版を確認します。最低Chrome/Edge111、Firefox114、SafariおよびiOS/iPadOS16.4です。[ブラウザ入口](../../docs/usage/getting-started/build.md#浏览器启动检测)
|
|
76
56
|
|
|
77
|
-
###
|
|
78
|
-
|
|
79
|
-
ユーザー、ロール、監査ログ、アバター、個人設定、テーマ、言語、操作ガイドとヘルプを提供します。初回は `admin` と、選択環境の `.env.dev/.env.test/.env.prod` のランダムな `HAI_ADMIN_DEFAULT_PASSWORD` でログインします。既存ユーザーのパスワードは変更しません。例の業務ルールは変更できますが、認可はサーバーで行います。
|
|
80
|
-
|
|
81
|
-
作成時に `.env.dev/.env.test/.env.prod` ごとに別の初期管理者パスワードと転送鍵リングを生成し、Git に保存します。クローン後も環境ごとに共有し、ローカル秘密ファイルやプロセス環境で上書きできます。transport 有効アプリの `HAI_CRYPTO_TRANSPORT_SERVERKEYRING` が不足・不正ならアップロード前に設定元を案内します。同じ環境の全ノードは環境ファイルまたは Secret Manager の上書きから同じ有効リングを読み込み、ノードごとに生成しないでください。CLI 完了時はログレベルによらず `HAI_ADMIN_DEFAULT_PASSWORD` の実際の保存元を案内し、値は表示しません。初回管理者作成時だけ有効です。 オフライン入口でも、サーバーの非公開 `.env.runtime` 内のパスワード変数の場所を案内します。
|
|
82
|
-
|
|
83
|
-
### アプリ設定と表示
|
|
84
|
-
|
|
85
|
-
テンプレートは `pretty` ログを既定とし、実行依存に `pino-pretty` を追加します。`HAI_CORE_LOGGING_FORMAT=json` で JSON に切り替えます。起動失敗はモジュール・エラーコード・設定項目、ポート競合は `EADDRINUSE`・アドレス・ポートを表示します。
|
|
86
|
-
|
|
87
|
-
設定項目は `.env.example` を参照します。共通 `.env` と `.env.dev/.env.test/.env.prod` は Git に保存し、秘密値は `.env.local` に置きます。優先順はプロセス環境 > ローカル秘密ファイル > 選択環境 > 共通値です。API 工程はサービスディレクトリ、fullstack はルートに配置します。YAML・環境上書き・表示情報は[利用ガイド](../../docs/usage/README.ja.md)を参照してください。
|
|
88
|
-
|
|
89
|
-
### 既存工程とコード生成
|
|
90
|
-
|
|
91
|
-
AI の作成・追加は reldb と vecdb も導入し、生成コードは DB → ベクトル保存先 → AI の順に起動します。失敗時は逆順に解放し、解放失敗も返します。本番設定は有効な機能に応じて PostgreSQL(選択済み MySQL は保持)・Redis・S3・Qdrant を選び、Compose の `db/cache/storage/vecdb` を使います。パスワード・S3 認証情報・モデルキー・保護された Qdrant キーは秘密環境から注入し、Compose 外では接続先を上書きしてください。本番 Reach は空 Provider 配列で起動を拒否し、実際の `HAI_REACH_PROVIDERS` JSON の注入が必要です。`hai add` は既存本番値を保持して不足項目を追加します。既存の起動処理への接続はアプリ側で行います。
|
|
57
|
+
### ページ・部品・API・モデル・マイグレーションの生成
|
|
92
58
|
|
|
93
59
|
```sh
|
|
94
|
-
hai add storage
|
|
95
|
-
hai init
|
|
96
|
-
hai generate
|
|
97
60
|
hai generate page dashboard
|
|
98
61
|
hai generate component UserCard
|
|
99
|
-
hai generate api orders
|
|
62
|
+
hai generate api orders --workspace orders-serv
|
|
100
63
|
hai generate model order
|
|
101
64
|
hai generate migration add-orders
|
|
102
65
|
```
|
|
103
66
|
|
|
104
|
-
`
|
|
105
|
-
|
|
106
|
-
page は SvelteKit のファイルルートに対応し、api は対象アプリに応じて SvelteKit または serv の共有 contract/procedure を生成します。API/fullstack のルートでは一意なバックエンドを自動選択します。複数候補は `--workspace <パッケージ名または相対パス>` で指定するか、対象 workspace に移動してください。通常の Vite への page/api 生成は拒否します。serv は `--output` を受け付けず、SvelteKit の出力は `src/routes` 内に限定し、独自の `kit.files` は推測せず拒否します。SvelteKit API には `@h-ai/kit` と `zod` が必要です。serv は `@hai-generator` マーカーのある既存の集約入口だけを更新し、未知の構成には手動統合を要求します。名前にパスは指定できません。既存ファイルは `--force` が必要ですが、登録済み業務領域は置換しません。一括検査後に書き込み、失敗時は今回の変更を戻します。マイグレーションは up/down 関数のみ生成するため、実行前にデータへの影響を確認してください。
|
|
107
|
-
|
|
108
|
-
CLI メッセージは中国語・英語・日本語に対応します。`HAI_CORE_DEFAULTLOCALE` → `LC_ALL` → `LC_MESSAGES` → `LANG` の最初の空でない値を使い、`en`/`zh`/`ja` の地域別表記は既存辞書に対応付けます。`C`/`POSIX` は英語です。未知の言語は現在の core 言語(既定は中国語)を保持します。PowerShell では `$env:HAI_CORE_DEFAULTLOCALE='en-US'` の後に `hai generate` を実行してください。CLI 内部のコマンドも `core.i18n.setGlobalLocale('en-US')` による同一プロセス内の言語切替を反映します。種類や名前を省略すると対話入力になり、取消時はファイルを書きません。生成コードの中国語コメントとユーザー指定名は変更しません。
|
|
109
|
-
|
|
110
|
-
`create`、`add`、`init`、`generate` のプロンプト、検証、モジュール/テンプレート名、説明と完了メッセージは現在の CLI 言語を使用します。選択肢は参照時に翻訳するため、同一プロセス内の locale 変更も反映します。CLI 言語と生成アプリの `core.defaultLocale` は独立しています。生成される中国語 README、設定/コードのコメント、ユーザー入力と外部ツールの元の診断は変更しません。
|
|
111
|
-
|
|
112
|
-
### SvelteKit エンドポイントの安全設定
|
|
113
|
-
|
|
114
|
-
admin・website・h5 作成時に crypto を選ぶと `_kit.yml` の transport を有効化できます。既定値は false です。サーバーは環境ごとに生成した鍵リングを使用し、ルートレイアウトは公開 transport 設定だけをブラウザーに渡します。非公開 IP・時間条件は渡しません。db 選択時は DB registry を使用し、db なしのメモリー registry は開発・テストに限ります。静的サイトに動的 API はありません。
|
|
115
|
-
|
|
116
|
-
パスルール `encryption: required / disabled` で内部 API と通常 HTTPS の外部連携を分けます。相反する設定や必須 transport 不足ではホスト作成に失敗します。Fullstack 管理テンプレートは transport を必須とし、明文例外はパスルールで指定します。[アクセスと暗号化の手引き](../../docs/usage/configuration/request-access.md)を参照してください。
|
|
67
|
+
名前にパスを含めず、既存業務ファイルは既定で上書きしません。`--workspace` はパッケージ名または相対ディレクトリです。SvelteKitの `--output` はsrc/routes内、Servはこの引数を受け付けません。pageはファイルルーティング専用で、非対応の純Vite page/API組合せは拒否します。Servは `@hai-generator` 付き集約入口のみ更新します。バッチを事前検査し、書込失敗時は今回の変更を戻します。`--force` は生成ファイルのみ対象。マイグレーションはup/down関数を生成し、DB操作を実行しません。
|
|
117
68
|
|
|
118
|
-
###
|
|
119
|
-
|
|
120
|
-
DB 接続は保存前に選択したバックエンドの公開 Schema で検証します。MySQL の `ssl` は `false` または厳密な TLS オブジェクトのみで、`{}` は証明書チェーンと DNS ID を検証します。PostgreSQL のモードは維持します。CLI は純粋な Schema と Zod を内包するため、検証対象アプリに DB パッケージやドライバーは不要です。アプリの実行には依存関係が必要で、デプロイ機能には解決可能な `@h-ai/deploy`(生成プロジェクトの開発依存)が必要です。
|
|
121
|
-
|
|
122
|
-
`pnpm build` はソースのコンパイルです。イメージごとの Dockerfile を `images/` に置き、`hai.json` の `build.images` で指定し、同じファイルの `deploy` に配置設定を保存します。`--images` はビルド対象、`--services` は更新サービスを選びます。自動選択は接続可能な Podman、次に Docker です。依存の取得・インストール・本番依存の収集で、パッケージと SQLite ドライバーのキャッシュを共有し、再ダウンロードを避けます。
|
|
123
|
-
|
|
124
|
-
標準コンテナーは CPU 実行またはリモート AI サービスへの接続向けで、追加の GPU ランタイムをダウンロードしません。デプロイ先の GPU を使う場合は、イメージとコンテナーの実行設定を個別に調整してください。
|
|
125
|
-
|
|
126
|
-
CLI は呼び出し元の `HAI_/PUBLIC_/VITE_` を除外し、内部で生成した `HAI_BUILD_ID/HAI_BUILD_COMMIT` のみを注入します。Docker は同じイメージバッチの識別情報をコンパイルに渡します。フィードバックはブラウザーとサーバー各自の `appVersion/buildId/commit` を使用し、バージョンは各 manifest、同じ SSR ビルドの ID は共通です。所属する Git コミットがなければ `unknown` を記録します。三項目の `build-metadata.json` とコード内の値を一致させ、API/ZIP の実際の証拠と照合します。
|
|
127
|
-
|
|
128
|
-
配布ロールは、独立 API バックエンドが `serv`、静的または SSR のブラウザーサイトが `web`、Android/iOS インストーラーが `app`、デスクトップインストーラーが `desktop` です。Fullstack は serv と任意の web、API は serv、admin/website/h5/mobile-app のブラウザーイメージは web を使用します。ネイティブ app/desktop はサーバーの Compose サービスではありません。`--images` と `--services` には serv/web、ネイティブ配布には `--target app` または `--target desktop` を指定します。API サービスのディレクトリは `apps/<project>-serv` です。イメージとコンテナーはルート `package.json.name` を共通の識別名として正規化します(scope 除去、小文字化、無効文字の連続をハイフンに変換)。名前がないか無効な場合は失敗し、ディレクトリ名へフォールバックしません。イメージは `localhost/hai-<project>-<role>:<buildId>`、コンテナーは `hai-<project>-<environment>-<role>` となり、イメージは環境間で再利用できます。
|
|
69
|
+
### ビルド・静的サイト・ネイティブ成果物
|
|
129
70
|
|
|
130
71
|
```sh
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
# 複数サービスは一つの --services にカンマ区切りで指定。PowerShell 向けに引用符で囲む
|
|
135
|
-
pnpm run deploy --env prod --build --services "serv,web"
|
|
136
|
-
pnpm run deploy --env prod --build --bundle-only
|
|
72
|
+
hai build --target image --images "serv,web" --concurrency 1
|
|
73
|
+
hai build --target app --platform android --runtime auto --debug
|
|
74
|
+
hai build --target desktop --platform windows --arch x64
|
|
137
75
|
```
|
|
138
76
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
成果物形式4・5はprimaryService(serv/web)と、工程全体のブラウザー構成を示すhasWebを記録します。形式5には非ルートのwebBasePathも含まれます。同一オリジンAPIプロキシはserv + webの場合だけ生成します。形式1~3は再構築が必要です。既存デプロイをバックアップし、プロジェクト名・ボリューム・管理対象の認証情報を確認してから、新しい完全デプロイの基準を作成してください。プロジェクト間のデータ移行は自動化しません。完全デプロイでは同じComposeプロジェクトの旧サービスコンテナーを削除するため、deploy-target.json.directoryの変更だけでは移行できません。
|
|
142
|
-
|
|
143
|
-
既存工程では、hai.json の build.images 名、Dockerfile 名と参照を先に更新します。API サービスのディレクトリ、パッケージ名と依存参照を -serv に統一し、依存を再インストールして完全な成果物を再構築してください。アーカイブ名や manifest の手動変更では再構築を代替できません。
|
|
77
|
+
target既定はcompile、他はimage/app/desktopです。イメージの役割はserv/webで、app/desktopはComposeサービスではありません。同時イメージビルドは最大2件。autoは使用可能なPodman→Docker、明示選択では別エンジンへ切替えません。Androidでruntime省略時は本機ツール、iOSはmacOS/Xcodeと署名が必要です。
|
|
144
78
|
|
|
145
|
-
|
|
79
|
+
成果物は `.hai/build/` の独立バッチへ保存し、アーカイブ成功後のみ相対 `latest` を更新します。イメージ `--json` のstdoutは今回の結果のみで、`artifactDir` をデプロイへ渡せます。進捗/失敗はstderr。Git出所やdirtyが不明な状態をクリーンと解釈しません。[命名・署名・自動化](../../docs/usage/getting-started/build.md)
|
|
146
80
|
|
|
147
|
-
|
|
81
|
+
静的websiteはビルドプロセスで `HAI_BUILD_STATIC=1` と実際の `PUBLIC_BASE_PATH` を設定し `pnpm build`、buildと.nojekyllだけを公開します。動的API/actions、サーバー業務初期化、私有アセット、リンクは拒否します。未接続の問い合わせフォームは説明を表示し入力を保持します。サイトパス変更は再ビルドし、APIアドレスは別設定です。[静的・子パス設定](../../docs/usage/configuration/delivery.md)
|
|
148
82
|
|
|
149
|
-
|
|
83
|
+
### デプロイ・オフライン配布・復旧
|
|
150
84
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
デスクトップ配布は `pnpm build --target desktop --platform windows|linux|macos --arch x64|arm64` を対象 OS とツールチェーンで実行します。コンテナの Web 表示とは別にネイティブ配布を検証してください。
|
|
158
|
-
|
|
159
|
-
### AI による開発
|
|
85
|
+
```sh
|
|
86
|
+
hai deploy --env prod --plan
|
|
87
|
+
hai deploy --env prod --plan --inspect-remote
|
|
88
|
+
hai deploy --env prod --build --bundle-only
|
|
89
|
+
hai deploy --env prod --build --services "serv,web"
|
|
90
|
+
```
|
|
160
91
|
|
|
161
|
-
|
|
92
|
+
planは検査と報告のみ。inspect-remoteはSSHで基準状態を読み取り、not-inspectedは検証成功を意味しません。bundle-onlyは対象へ接続せず、アーカイブ、対象情報、転送/本機スクリプト、説明を生成します。内部APPLY.txtは手動適用手順です。初回と構成変更は完全パッケージ、部分更新は一致するサーバー成功基準が必要です。
|
|
162
93
|
|
|
163
|
-
|
|
94
|
+
根 `package.json.name` と環境接尾辞が工程IDです。サーバー認証情報、バックエンド台帳、データボリュームを一緒に保護します。失敗時に前サービスを復旧しても、データ変更、マイグレーション、通知、決済は取り消されません。SSH結果unknownは遠端事実を読取確認してから再試行します。[配布と復旧](../deploy/README.ja.md)
|
|
164
95
|
|
|
165
|
-
|
|
96
|
+
HTTPSは通常PEMファイルまたはLet's Encrypt。証明書/鍵は各1MiB以内でリンクを拒否します。ACMEにはDNS、メール、規約同意、公開80番が必要。証明書状態はサーバーに保存し、有効化/無効化や構成変更は全量配布します。[HTTPS設定](../../docs/usage/configuration/delivery.md#可选https证书)
|
|
166
97
|
|
|
167
|
-
|
|
98
|
+
### 診断・公開版検査・認証情報取込
|
|
168
99
|
|
|
169
|
-
|
|
100
|
+
```sh
|
|
101
|
+
hai feedback evidence feedback.zip --request-id request-42 --page 1 --page-size 20
|
|
102
|
+
hai feedback view feedback.zip
|
|
103
|
+
hai upgrade TARGET_VERSION
|
|
104
|
+
```
|
|
170
105
|
|
|
171
|
-
|
|
106
|
+
ZIPは通常単一リンクファイル、最大64MiBです。viewはランダムパスでloopbackのみ待受け、フレームワーク内蔵ビューアを使い同梱置換スクリプトを実行しません。検索結果だけでは証跡完全性を証明しません。
|
|
172
107
|
|
|
173
|
-
|
|
108
|
+
upgradeは実際の消費パッケージ、CLI/deploy、catalog/lock/導入状態、skillカスタマイズを比較し、マイグレーションを実行しません。deploy-secretsはLinuxサーバー側Nodeと、最大64KiBの私有通常単一リンクJSONを必要とします。取込はDBデータの復元や成功リリース基準の作成ではありません。[認証情報の条件](../deploy/docs/credential-import.ja.md)
|
|
174
109
|
|
|
175
|
-
###
|
|
110
|
+
### AI指引とアプリ体験
|
|
176
111
|
|
|
177
|
-
|
|
112
|
+
生成アプリはAGENTS.mdと `.agents/skills/` を共有入口にし、Claude/Copilot/OpenCodeから参照します。モジュール追加は対応skill参照を補完し、独自ファイルを維持します。契約は導入版の公開型で確認します。[テンプレート構成](templates/README.md)
|
|
178
113
|
|
|
179
|
-
|
|
114
|
+
Fullstackにはユーザー/役割、監査、フィードバック、プロフィール、テーマ、言語UIがあります。初期パスワードは私有環境/Secretで配布し、CLIは値を表示しません。不足アカウントを作成し、既存ユーザーはリセットしません。ネイティブ表示名はCore、成果物名は工程IDを使用します。
|
|
180
115
|
|
|
181
|
-
|
|
116
|
+
## 設定
|
|
182
117
|
|
|
183
|
-
|
|
118
|
+
`hai.json.build.images` は役割/context/Dockerfile/ポート、build.sources/build.proxyはダウンロード、deployは対象を選びます。ソースはofficial/cn/custom、代理はinherit/system/custom/none。コマンド引数は今回のみ上書きします。[設定手順](../../docs/usage/configuration/delivery.md)
|
|
184
119
|
|
|
185
|
-
|
|
120
|
+
HAI優先度はプロセス > 環境私有 > 共通私有 > 環境公開 > 基本env > YAML。同一出所は親JSONの後に細項を適用し、高優先の親は低優先の細項を除去します。認証/SSH設定は私有、ビルドは配布秘密を読みません。通常の後端設定は再起動、構成・プロキシ・HTTPS・公開パスは配布/再ビルドです。[実行設定](../../docs/usage/configuration/runtime.md)
|
|
186
121
|
|
|
187
|
-
|
|
122
|
+
contextは信頼でき安定していることが前提です。依存ソース/キャッシュは通常単一リンク、祖先はsymlink/junction不可。追跡ファイルは16MiB、アーカイブは64KiB単位で比較/コピーします。未変更mtimeを維持し、更新は原子的に置換。診断はパス/原因/コードのみで清単内容を表示しません。
|
|
188
123
|
|
|
189
|
-
|
|
124
|
+
pnpm工程には該当deepmerge/DaisyUI補丁ファイルとpatchedDependencies登録を保持します。npmパッケージを導入しても、この倉庫の補丁設定は自動継承しません。[補丁](../../patches/)
|
|
190
125
|
|
|
191
|
-
|
|
126
|
+
## エラー処理
|
|
192
127
|
|
|
193
|
-
|
|
128
|
+
失敗は安全な理由、パス/段階と非ゼロ終了で報告します。インストール失敗は生成ファイルを残し、ビルド失敗は成功latestを進めません。秘密を引数/ログに入れず、計画・事前検査・取込結果を配布成功と扱いません。設定、権限、前提を修正して失敗段階を再試行し、結果不明時は先に事実を確認します。
|
|
194
129
|
|
|
195
130
|
## 開発とテスト
|
|
196
131
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
フレームワークのルートで実行し、現在のソースから生成します。デプロイ検証には接続可能な Podman/Docker も必要です。
|
|
132
|
+
倉庫根で現在のソースを使います。
|
|
200
133
|
|
|
201
134
|
```sh
|
|
202
|
-
pnpm --filter @h-ai/cli build
|
|
203
|
-
node packages/cli/dist/index.js create ../my-app
|
|
204
135
|
pnpm --filter @h-ai/cli typecheck
|
|
205
136
|
pnpm --filter @h-ai/cli lint
|
|
137
|
+
pnpm --filter @h-ai/cli build
|
|
138
|
+
node packages/cli/dist/index.js create ../my-app
|
|
206
139
|
pnpm --filter @h-ai/cli test
|
|
207
140
|
pnpm check:skills
|
|
208
141
|
pnpm --filter @h-ai/cli test:scaffold-gates
|
|
209
|
-
pnpm --filter @h-ai/cli test:scaffold-gates --list --json
|
|
210
142
|
pnpm --filter @h-ai/cli test:deploy-gates
|
|
211
143
|
```
|
|
212
144
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
生成検証は実工程でインストール、typecheck、lint、build、test、ブラウザー操作に加え、生成した HTTP ルート、CLI プロセスの言語選択と環境ファイルの消費を検証します。`--generate` と `--i18n` で対象を絞って再実行できます。デプロイ検証は実リソースの所有権と動的ホストポートの分離に加え、オフライン tar、SSH/手動配布、増分更新とロールバックを扱います。当該実行が記録したコンテナー ID と専用イメージ tag だけを回収します。安全なメタデータは ignored の `tmp/validation/module-review/VERIFY-05/` に残します。生成したブラウザー画像、trace とレポートは既定で ignored の `tmp/validation/module-review/scaffold-browser/` または `deploy-browser/` に保持します。明示した証拠・HTML・出力先も尊重し、一時プロジェクト、鍵、データとプロセスは回収します。ネイティブと実クラウドは別途検証してください。
|
|
216
|
-
|
|
217
|
-
Windows インストーラーの追加検証には Rust の `x86_64-pc-windows-msvc` ターゲットと MSVC ビルドツールが必要です。`HAI_CLI_NATIVE_BUILD=1` を設定して `pnpm --filter @h-ai/cli test:scaffold-gates` を実行すると、既存の fullstack シナリオが NSIS インストーラーを構築し、アプリルートのバージョンと成果物名を照合します。`CARGO_BUILD_JOBS=2` で Rust の構築並列数を制限できます。ネイティブ UI 操作と機器機能は別途検証します。
|
|
218
|
-
|
|
219
|
-
デプロイ用 fixture は固定版の公開基盤イメージを確認し、不在を確認した場合だけ取得します。HAI_DEPLOY_E2E_MIRROR を利用でき、公開キャッシュは回収対象にしません。create 成功時のコンテナー ID を先に記録し、専用 PID namespace 内で APT/pip/sshd を非同期準備します。準備失敗、期限超過、協調的取消ではローカルクライアントの終了を待ち、記録した ID だけを削除して消失を確認します。特権を使うのはネストした Podman fixture のみです。HAI_DEPLOY_E2E_APT_MIRROR はホスト名のみを受け付け、HTTPS を維持します。所有権テストは固定公開イメージに実行専用 tag を付け、同じ内容の外部 tag、tag の付け替え、動的ポート、外部 sentinel の保護を維持します。create の応答喪失で信頼できる ID がない場合や、テストが強制終了した場合は不明状態を残し、名前や label を根拠に回収しません。
|
|
220
|
-
|
|
221
|
-
`--generate` は対象を絞ったルート検証です。インストール済み依存を再利用し、SvelteKit・serv API・fullstack バックエンドを実際に生成・ビルドして新ルートへアクセスします(transport を含む)。完全なインストールとブラウザー検証の代わりにはなりません。
|
|
222
|
-
|
|
223
|
-
`test:e2e` は各サービスに隔離されたテスト用バックエンドと絶対データパスを明示します。サービス子プロセスは外部の `HAI_*` / `PUBLIC_*` / `VITE_*` 設定やユーザーの `.env.local` を読み込みません。テスト専用の `HAI_E2E=1` は通常開発・本番の dotenv と共有バックエンド要件を変更せず、transport は毎回生成する信頼済み SM2 ring と実際の registry を使います。生成プロジェクトのブラウザー検証では独立 TCP 計数プロセスで外部 DB への接続がないことも確認します。完全な fullstack デプロイ検証では実 Redis/S3、増分更新とロールバックを維持します。
|
|
224
|
-
|
|
225
|
-
`--i18n` は CLI をビルドし、独立プロセスで言語の優先順位・help・生成成功・失敗を検証し、中国語/英語/日本語の入力・検証・取消と create/add/init も確認します。
|
|
145
|
+
脚手架ゲートは実際に導入、コンパイル、生成アプリのテストとブラウザ操作を行い、配布ゲートはPodman/Dockerが必要です。`--generate` と `--i18n` はルートと言語の定向検査。隔離fixtureは本番データや外部Provider検証の代わりではありません。WindowsネイティブゲートはRust/MSVCと明示的なHAI_CLI_NATIVE_BUILD=1、実機操作は別途検証します。
|
|
226
146
|
|
|
227
147
|
## ライセンス
|
|
228
148
|
|