@h-ai/cli 1.0.0-beta.2 → 1.0.0-beta.21
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 +11 -6
- 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 +58 -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
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# hai-ui — 详细用法
|
|
2
2
|
|
|
3
|
+
HTTP/UI 边界只对明确的有效 4xx 状态公开业务提示;错误缺少 `httpStatus` 或状态非法时按 500 返回安全提示。手写业务错误须提供完整错误定义或显式状态,不能依赖缺省状态展示原文。
|
|
4
|
+
|
|
3
5
|
从 [SKILL.md](SKILL.md) 选择主题后读取对应小节。代码片段展示 API 用法;省略的业务变量、schema、依赖与 return 上下文需由应用补齐。
|
|
4
6
|
|
|
5
|
-
> `@h-ai/ui` 是基于 Svelte 5 Runes 的多端 UI 组件库,采用 DaisyUI v5 + Tailwind CSS v4 + Bits UI v2,内置 15 个精选 DaisyUI 主题及 high-contrast 高对比、formal
|
|
7
|
+
> `@h-ai/ui` 是基于 Svelte 5 Runes 的多端 UI 组件库,采用 DaisyUI v5 + Tailwind CSS v4 + Bits UI v2,内置 15 个精选 DaisyUI 主题及 high-contrast 高对比、formal 直角商务、eye-care 暖绿护眼主题、内置中英日文 i18n、自动导入。内置 Shiki 代码高亮、Mermaid 图表渲染、Design Token 系统和 7 个移动端组件。
|
|
6
8
|
|
|
7
9
|
## 运行环境
|
|
8
10
|
|
|
@@ -39,7 +41,8 @@
|
|
|
39
41
|
|
|
40
42
|
至少检查以下四项:
|
|
41
43
|
|
|
42
|
-
- `
|
|
44
|
+
- SvelteKit 3 在 `vite.config.*` 的 `sveltekit({...})` 中设置预处理;纯 Svelte/Vite 使用 `svelte.config.*`。两者都先执行 `vitePreprocess()` 或其他样式/模板语言转换,再执行 `autoImportHaiUi()`;后者按整份 Svelte AST 定位实例脚本,不直接接受转换前的 SCSS/Pug,直接 markup 调用保持同步。
|
|
45
|
+
- 自动导入只补模板中实际使用且未被脚本或模板局部作用域绑定的组件;注释、textarea 与脚本字符串里的组件示例不触发导入。
|
|
43
46
|
- `vite.config.*`:`ssr.noExternal` 包含 `@h-ai/ui` 和 `@h-ai/kit`,`optimizeDeps.exclude` 包含 `bits-ui`。
|
|
44
47
|
- `app.css`:已导入 `global.css` / `theme.css`;移动端还要导入 `design-tokens.css` / `mobile.css`。
|
|
45
48
|
- Tailwind:已配置 `@source` 扫描 `@h-ai/ui/dist/**/*.{svelte,js,ts}`。
|
|
@@ -72,6 +75,7 @@
|
|
|
72
75
|
| 登录/注册页布局 | `AuthShell` + `LoginForm` / `RegisterForm` | `variant='card'` 或 `'split'`;split 可通过 `illustration`/`description`/`highlights` 放大图与重点说明 |
|
|
73
76
|
| 登录/注册/资料页 | `LoginForm` / `RegisterForm` / `UserProfile` | 页面只负责路由和提交逻辑 |
|
|
74
77
|
| 文件/图片上传 | `FileUpload` / `ImageUpload` / `AvatarUpload` | 上传 URL、限制和业务状态由应用层提供 |
|
|
78
|
+
| 在线代码浏览与检查 | `CodeWorkspace` | 两个读取回调接入文件树与多标签,按需添加工作区搜索、检查面板和选区操作 |
|
|
75
79
|
| 移动端页面骨架 | `SafeArea` + `AppBar` + `BottomNav` | 原生壳页面优先这一套 |
|
|
76
80
|
| AI 文档/Markdown 展示 | `MarkdownRenderer` / `AiDocumentEditor` | Mermaid、代码高亮、复制/下载已内置 |
|
|
77
81
|
|
|
@@ -99,55 +103,39 @@ npm install -D tailwindcss @tailwindcss/vite daisyui
|
|
|
99
103
|
npm install -D @iconify/tailwind4 @iconify-json/tabler
|
|
100
104
|
```
|
|
101
105
|
|
|
102
|
-
Node adapter 使用 Crypto、Kit 或 IAM 时,还需将 `sm-crypto@0.5.
|
|
103
|
-
|
|
104
|
-
### 2. svelte.config.js
|
|
105
|
-
|
|
106
|
-
```js
|
|
107
|
-
import { autoImportHaiUi } from '@h-ai/ui/auto-import'
|
|
108
|
-
import adapter from '@sveltejs/adapter-node'
|
|
109
|
-
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
|
|
106
|
+
Node adapter 使用 Crypto、Kit 或 IAM 时,还需将 `sm-crypto@0.5.8` 作为直接生产依赖安装,保留 Node 原生模块解析。
|
|
110
107
|
|
|
111
|
-
|
|
112
|
-
const config = {
|
|
113
|
-
// autoImportHaiUi 必须在 vitePreprocess 之前
|
|
114
|
-
preprocess: [autoImportHaiUi(), vitePreprocess()],
|
|
115
|
-
compilerOptions: {
|
|
116
|
-
runes: true, // 强制 Svelte 5 Runes 模式
|
|
117
|
-
},
|
|
118
|
-
kit: {
|
|
119
|
-
adapter: adapter(),
|
|
120
|
-
alias: {
|
|
121
|
-
$components: './src/lib/components',
|
|
122
|
-
$stores: './src/lib/stores',
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
}
|
|
108
|
+
### 2. package.json 的应用导入
|
|
126
109
|
|
|
127
|
-
|
|
110
|
+
```json
|
|
111
|
+
{ "imports": { "#lib/*": "./src/lib/*" } }
|
|
128
112
|
```
|
|
129
113
|
|
|
130
114
|
### 3. vite.config.ts
|
|
131
115
|
|
|
116
|
+
SvelteKit 3 的预处理、编译器和适配器统一配置在 Vite 插件;纯 Svelte/Vite 工程保留自己的 svelte.config.js。
|
|
117
|
+
|
|
132
118
|
```ts
|
|
119
|
+
import { autoImportHaiUi } from '@h-ai/ui/auto-import'
|
|
120
|
+
import { haiOptimizeExclude, haiPrebundledDeps } from '@h-ai/ui/vite'
|
|
121
|
+
import adapter from '@sveltejs/adapter-node'
|
|
133
122
|
import { sveltekit } from '@sveltejs/kit/vite'
|
|
123
|
+
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
|
|
134
124
|
import tailwindcss from '@tailwindcss/vite'
|
|
135
125
|
import { defineConfig } from 'vite'
|
|
136
126
|
|
|
137
127
|
export default defineConfig({
|
|
138
128
|
plugins: [
|
|
139
|
-
sveltekit(
|
|
129
|
+
sveltekit({
|
|
130
|
+
preprocess: [vitePreprocess(), autoImportHaiUi()],
|
|
131
|
+
compilerOptions: { runes: true },
|
|
132
|
+
adapter: adapter(),
|
|
133
|
+
paths: { relative: false },
|
|
134
|
+
}),
|
|
140
135
|
tailwindcss(),
|
|
141
136
|
],
|
|
142
|
-
optimizeDeps: {
|
|
143
|
-
|
|
144
|
-
exclude: ['bits-ui'],
|
|
145
|
-
},
|
|
146
|
-
ssr: {
|
|
147
|
-
// @h-ai 包为 ESM + Svelte 组件,需 Vite 在 SSR 时处理
|
|
148
|
-
noExternal: ['@h-ai/ui', '@h-ai/kit'],
|
|
149
|
-
external: ['@h-ai/core', 'sm-crypto'],
|
|
150
|
-
},
|
|
137
|
+
optimizeDeps: { exclude: [...haiOptimizeExclude], include: [...haiPrebundledDeps] },
|
|
138
|
+
ssr: { noExternal: ['@h-ai/ui', '@h-ai/kit'], external: ['@h-ai/core', 'sm-crypto'] },
|
|
151
139
|
})
|
|
152
140
|
```
|
|
153
141
|
|
|
@@ -273,13 +261,15 @@ const p = usePlatform()
|
|
|
273
261
|
| `Skeleton` | `variant`, `count`, `animation` | 骨架屏 |
|
|
274
262
|
| `Empty` | `title`, `description`, `icon` | 空状态 |
|
|
275
263
|
|
|
264
|
+
滚动或裁剪容器中的 `Dropdown` 使用默认 `click` 或 `hover` 触发,菜单挂载到 `body`。由调用方控制开关时,使用 `trigger='manual'`,通过 `class` 切换 `dropdown-open` 显示内联菜单。`Popover` 默认挂载到 `body`,`click` 模式下键盘打开后焦点进入面板,Escape 关闭并返回触发控件。
|
|
265
|
+
|
|
276
266
|
#### 移动端组合组件(7 个)
|
|
277
267
|
|
|
278
268
|
| 组件 | Props 要点 | 说明 |
|
|
279
269
|
| ---------------- | ----------------------------------------------------------------------------- | ---------------- |
|
|
280
270
|
| `SafeArea` | `top`, `bottom`, `left`, `right` | 安全区域容器 |
|
|
281
271
|
| `AppBar` | `title`, `backHref`, `onback`, `fixed`, `transparent`, snippet `left`/`right` | 顶部导航栏 |
|
|
282
|
-
| `BottomNav` | `items: BottomNavItem[]`, `active` |
|
|
272
|
+
| `BottomNav` | `items: BottomNavItem[]`, `active` | 底部导航栏,客户端挂载后启用按钮 |
|
|
283
273
|
| `ActionSheet` | `open`, `title`, `items: ActionSheetItem[]`, `cancelText`, `onselect` | 底部弹出操作面板 |
|
|
284
274
|
| `PullRefresh` | `refreshing`, `onrefresh`, `threshold`, `pullText`, `releaseText` | 下拉刷新 |
|
|
285
275
|
| `InfiniteScroll` | `loading`, `finished`, `threshold`, `onload`, `loadingText`, `finishedText` | 无限滚动加载 |
|
|
@@ -347,6 +337,33 @@ const p = usePlatform()
|
|
|
347
337
|
|
|
348
338
|
内置中英日文翻译的业务场景组件。
|
|
349
339
|
|
|
340
|
+
#### 代码工作区
|
|
341
|
+
|
|
342
|
+
`CodeWorkspace` 提供异步文件树、只读 Monaco 代码区和可选的检查面板。从 `@h-ai/ui/components/scenes/code/index` 导入组件和类型。
|
|
343
|
+
|
|
344
|
+
```svelte
|
|
345
|
+
<script lang="ts">
|
|
346
|
+
import type { CodeWorkspaceSource } from '@h-ai/ui/components/scenes/code/index'
|
|
347
|
+
import { CodeWorkspace } from '@h-ai/ui/components/scenes/code/index'
|
|
348
|
+
|
|
349
|
+
const source: CodeWorkspaceSource = {
|
|
350
|
+
listChildren: () => [{ kind: 'file', id: 'readme', name: 'README.md' }],
|
|
351
|
+
readFile: () => ({ text: '# Hello', language: 'markdown' }),
|
|
352
|
+
}
|
|
353
|
+
</script>
|
|
354
|
+
|
|
355
|
+
<CodeWorkspace {source} />
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
- `listChildren(null, signal)` 读取根节点。目录展开时组件传入目录节点并复用已加载的结果。文件 ID 与版本用于复用标签和恢复视图。`initialFile` 与 `initialAncestors` 可预先打开文件并展开其父目录。保持 `source` 对象引用稳定,切换仓库或分支时替换对象。
|
|
359
|
+
- 可选的 `search({ mode, query, cursor }, signal)` 接入宿主索引。`mode` 是 `files` 或 `content`。命中包含 `node`,可附带 `ancestors`、`range` 和 `preview`。返回 `nextCursor` 启用续页。把收到的 `signal` 传给实际请求,后端负责授权与索引范围。回调失败时可抛错或拒绝 Promise,组件会提供重试入口。
|
|
360
|
+
- 节点的 `markers` 使用 `label` 提供可访问名称,按需附加 `text` 和 `tone`。`readFile` 返回的 `annotations` 使用 `range`、`label` 和可选的 `tone`、`display`,可在行前和对应范围内显示。搜索命中与标注应使用同一文件版本,行列从 1 开始,列按 UTF-16 计数,结束位置不含。
|
|
361
|
+
- `inspector` snippet 收到 `{ file, selection, reveal }`,其中 `selection` 可以为 `null`。`selectionActions` 收到非空选区、同一 `file`、`reveal` 和 `openInspector`。`reveal(range)` 仅在对应文档仍激活时跳转,`openInspector()` 可打开已有右栏。解释、标记保存等宿主操作从这两个入口接入。
|
|
362
|
+
- 工作区内 `Ctrl/⌘+P` 找文件,`Ctrl/⌘+Shift+F` 搜工作区内容;代码区 `Ctrl/⌘+F` 查找,`Ctrl/⌘+G` 跳行;`Alt+Shift+Enter` 聚焦可用的选区操作。通过 `options` 设置行号、缩略图、面包屑和换行的初始值,用户可在工具栏切换。
|
|
363
|
+
- `theme` 默认 `inherit`,另有 `vs-light`、`vs-dark`、`hc-light`、`hc-dark` 和 `github-dark`。自定义主题传入 `{ base, colors, tokens }`,其中 `base` 是 VS 或高对比预设,`colors` 和 `tokens` 可省略。同页 Monaco 实例共享编辑器主题。工作区外壳可 SSR,Monaco 及默认同源 worker 由 Vite 在浏览器按需加载。移动端和编辑器加载失败时使用纯文本视图。
|
|
364
|
+
|
|
365
|
+
行前图标和浮层可通过 `annotationIcon`、`annotationHover` Snippet 自定义,两者收到 `{ file, annotation }`。仅需提示文字时,在标注上传入 `hoverText`,它优先于浮层 Snippet。图标锚定标注起始行,支持悬停、键盘和点击。
|
|
366
|
+
|
|
350
367
|
#### 引导与帮助场景组件
|
|
351
368
|
|
|
352
369
|
| 组件 | Props 要点 | 说明 |
|
|
@@ -365,6 +382,8 @@ const p = usePlatform()
|
|
|
365
382
|
| `RegisterForm` | `fields`, `minPasswordLength`, `errors` | 注册表单 |
|
|
366
383
|
| `UserProfile` | `user`, `editable`, `fields`, `avatarAccept`, `avatarHint` | 用户资料,选择器和提示对齐业务校验;最终验证和上传仍由回调负责 |
|
|
367
384
|
|
|
385
|
+
`UserProfile.onsubmit` 必须返回 `true` / `false` 表示保存成功 / 失败;仅成功退出编辑,失败保留编辑器与草稿。宿主在失败时更新错误提示并返回 `false`,不要把失败转换成正常关闭。
|
|
386
|
+
|
|
368
387
|
#### 错误页 / 设置场景组件
|
|
369
388
|
|
|
370
389
|
| 组件 | Props 要点 | 说明 |
|
|
@@ -546,7 +565,7 @@ form={{ variant: 'drawer', drawerWidth: '40rem' }}
|
|
|
546
565
|
|
|
547
566
|
## 主题系统
|
|
548
567
|
|
|
549
|
-
支持 15 个精选 DaisyUI 主题及 high-contrast 高对比、formal
|
|
568
|
+
支持 15 个精选 DaisyUI 主题及 high-contrast 高对比、formal 直角商务、eye-care 暖绿护眼主题。
|
|
550
569
|
|
|
551
570
|
```typescript
|
|
552
571
|
import { applyTheme, getCurrentTheme, getSavedTheme, isDarkTheme, THEMES, THEME_GROUPS } from '@h-ai/ui/theme'
|
|
@@ -660,6 +679,7 @@ AuthPanel 在 SSR 阶段禁用原生表单控件,客户端挂载并绑定事
|
|
|
660
679
|
| `@h-ai/ui/auto-import` | Svelte 预处理器:组件自动导入 |
|
|
661
680
|
| `@h-ai/ui/components/primitives/index` 等明确 barrel | 仅 package.exports 列出的组件目录;组件默认导出经 barrel 转发 |
|
|
662
681
|
| `@h-ai/ui/components/primitives/index` | 公开原子组件目录入口,如 Button/Input |
|
|
682
|
+
| `@h-ai/ui/components/scenes/code/index` | `CodeWorkspace` 与代码工作区接入类型 |
|
|
663
683
|
| `@h-ai/ui/styles/global.css` | 全局基础样式(重置/滚动条/焦点) |
|
|
664
684
|
| `@h-ai/ui/styles/theme.css` | Tailwind v4 `@theme` Token |
|
|
665
685
|
| `@h-ai/ui/styles/design-tokens.css`| CSS 自定义属性(间距/圆角/z-index) |
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
## 运行环境
|
|
8
8
|
|
|
9
|
+
pgvector 将集合 metric 持久保存在 vector 列注释,索引、info、search 使用同一值;重连后修改默认 metric 不改变已有集合。旧集合从实际索引恢复;缺少索引与有效注释时先恢复定义,不按当前默认值猜测。
|
|
10
|
+
|
|
9
11
|
> ⚠️ **服务端模块(Node.js only)。** 浏览器端不直接操作向量数据库,通过 `@h-ai/ai` 的 API 端点间接使用(如 RAG 检索、知识库查询)。
|
|
10
12
|
|
|
11
13
|
## 适用场景
|
|
@@ -62,9 +64,12 @@ operationLog:
|
|
|
62
64
|
|
|
63
65
|
```typescript
|
|
64
66
|
import { core } from '@h-ai/core'
|
|
65
|
-
import { vecdb } from '@h-ai/vecdb'
|
|
67
|
+
import { vecdb, VecdbConfigSchema } from '@h-ai/vecdb'
|
|
66
68
|
|
|
67
|
-
|
|
69
|
+
const config = core.config.validate('vecdb', VecdbConfigSchema)
|
|
70
|
+
if (!config.success) throw new Error(config.error.message)
|
|
71
|
+
const initialized = await vecdb.init(config.data)
|
|
72
|
+
if (!initialized.success) throw new Error(initialized.error.message)
|
|
68
73
|
// ... 使用向量数据库
|
|
69
74
|
const closeResult = await vecdb.close()
|
|
70
75
|
if (!closeResult.success) {
|
|
@@ -182,7 +187,7 @@ Chroma 直连 `url` 仅支持 HTTP(S) 根端点,优先于 `host/port`;URL
|
|
|
182
187
|
|
|
183
188
|
直连初始化总截止为 5 秒,本地服务拉起使用 `startupTimeout`;超时中止候选 HTTP 请求。成功清除初始化 timer,不限制后续业务请求。
|
|
184
189
|
|
|
185
|
-
Qdrant
|
|
190
|
+
Qdrant 使用原生 HTTP 固定 REST 端点,无额外 SDK 依赖;超时 30 秒覆盖完整响应体,响应超过 16 MiB 明确失败。仅支持未命名向量字段的 cosine/euclidean/dot;外部 named-vector/Manhattan 集合的 info/写入/搜索返回 CONFIG_ERROR,不猜测维度或 metric。Chroma 使用 `chromadb 3.5.0` 的真实类型及 metadata/filter 校验,非法输入返回操作错误,不丢弃过滤;content 可省略。各后端的 null 和复杂元数据语义不承诺统一。
|
|
186
191
|
|
|
187
192
|
**VectorDocument**:
|
|
188
193
|
|