@h-ai/cli 0.1.0-alpha.53 → 0.1.0-alpha.55
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.md +18 -0
- package/dist/{chunk-U4PA632G.js → chunk-FVDXJYMO.js} +34 -67
- package/dist/chunk-FVDXJYMO.js.map +1 -0
- package/dist/cli-config-templates-WGN2I23J.js +5 -0
- package/dist/{cli-config-templates-GSXKLGU5.js.map → cli-config-templates-WGN2I23J.js.map} +1 -1
- package/dist/index.js +174 -105
- package/dist/index.js.map +1 -1
- package/dist/{src-QNEJJ3BV.js → src-6ZBWDBUB.js} +127 -87
- package/dist/{src-QNEJJ3BV.js.map → src-6ZBWDBUB.js.map} +1 -1
- package/package.json +13 -4
- package/templates/apps/api/apps/{{projectName}}-contract/package.json.hbs +1 -0
- package/templates/apps/api/apps/{{projectName}}-service/package.json.hbs +1 -0
- package/templates/apps/api/package.json.hbs +1 -0
- package/templates/apps/fullstack/apps/{{projectName}}-app/package.json.hbs +1 -0
- package/templates/apps/fullstack/apps/{{projectName}}-desktop/package.json.hbs +1 -0
- package/templates/apps/fullstack/apps/{{projectName}}-web/package.json.hbs +1 -0
- package/templates/apps/fullstack/package.json.hbs +1 -0
- package/templates/apps/fullstack/packages/{{projectName}}-contract/package.json.hbs +1 -0
- package/templates/apps/fullstack/packages/{{projectName}}-serv/package.json.hbs +1 -0
- package/templates/apps/fullstack/packages/{{projectName}}-shared/package.json.hbs +1 -0
- package/templates/base/eslint.config.js.hbs +1 -0
- package/templates/base/package.json.hbs +3 -1
- package/templates/skills/AGENTS.md +8 -22
- package/templates/skills/CLAUDE.md +3 -16
- package/templates/skills/bridges/admin/AGENTS.md +3 -16
- package/templates/skills/bridges/admin/CLAUDE.md +3 -11
- package/templates/skills/bridges/admin/copilot-instructions.md +2 -39
- package/templates/skills/bridges/api/AGENTS.md +5 -18
- package/templates/skills/bridges/api/CLAUDE.md +3 -11
- package/templates/skills/bridges/api/copilot-instructions.md +3 -38
- package/templates/skills/bridges/fullstack/AGENTS.md.hbs +24 -59
- package/templates/skills/bridges/fullstack/CLAUDE.md.hbs +1 -15
- package/templates/skills/bridges/fullstack/copilot-instructions.md.hbs +5 -45
- package/templates/skills/bridges/h5/AGENTS.md +4 -17
- package/templates/skills/bridges/h5/CLAUDE.md +3 -11
- package/templates/skills/bridges/h5/copilot-instructions.md +2 -37
- package/templates/skills/bridges/mobile-app/AGENTS.md +5 -18
- package/templates/skills/bridges/mobile-app/CLAUDE.md +3 -11
- package/templates/skills/bridges/mobile-app/copilot-instructions.md +2 -38
- package/templates/skills/bridges/website/AGENTS.md +4 -17
- package/templates/skills/bridges/website/CLAUDE.md +3 -11
- package/templates/skills/bridges/website/copilot-instructions.md +2 -37
- package/templates/skills/copilot-instructions.md +2 -36
- package/templates/skills/hai-ai/SKILL.md +35 -389
- package/templates/skills/hai-ai/guide.md +383 -0
- package/templates/skills/hai-ai/reference.md +6 -2
- package/templates/skills/hai-api-client/SKILL.md +6 -6
- package/templates/skills/hai-api-contract/SKILL.md +10 -25
- package/templates/skills/hai-app-create/SKILL.md +29 -388
- package/templates/skills/hai-app-create/reference.md +350 -0
- package/templates/skills/hai-app-review/SKILL.md +15 -23
- package/templates/skills/hai-app-tests/SKILL.md +29 -494
- package/templates/skills/hai-app-tests/reference.md +442 -0
- package/templates/skills/hai-audit/SKILL.md +6 -6
- package/templates/skills/hai-build/SKILL.md +19 -330
- package/templates/skills/hai-build/reference.md +326 -0
- package/templates/skills/hai-cache/SKILL.md +28 -31
- package/templates/skills/hai-capacitor/SKILL.md +19 -364
- package/templates/skills/hai-capacitor/reference.md +352 -0
- package/templates/skills/hai-ci/SKILL.md +17 -20
- package/templates/skills/hai-core/SKILL.md +25 -564
- package/templates/skills/hai-core/reference.md +533 -0
- package/templates/skills/hai-crypto/SKILL.md +8 -20
- package/templates/skills/hai-datapipe/SKILL.md +9 -23
- package/templates/skills/hai-deploy/SKILL.md +18 -24
- package/templates/skills/hai-framework-sync/SKILL.md +8 -20
- package/templates/skills/hai-iam/SKILL.md +27 -365
- package/templates/skills/hai-iam/reference.md +343 -0
- package/templates/skills/hai-kit/SKILL.md +6 -6
- package/templates/skills/hai-payment/SKILL.md +6 -26
- package/templates/skills/hai-pr-review/SKILL.md +6 -22
- package/templates/skills/hai-reach/SKILL.md +19 -317
- package/templates/skills/hai-reach/reference.md +303 -0
- package/templates/skills/hai-reldb/SKILL.md +19 -472
- package/templates/skills/hai-reldb/reference.md +452 -0
- package/templates/skills/hai-scheduler/SKILL.md +18 -6
- package/templates/skills/hai-serv/SKILL.md +27 -759
- package/templates/skills/hai-serv/reference.md +736 -0
- package/templates/skills/hai-storage/SKILL.md +7 -25
- package/templates/skills/hai-ui/SKILL.md +29 -621
- package/templates/skills/hai-ui/reference.md +598 -0
- package/templates/skills/hai-vecdb/SKILL.md +18 -303
- package/templates/skills/hai-vecdb/reference.md +291 -0
- package/dist/chunk-U4PA632G.js.map +0 -1
- package/dist/cli-config-templates-GSXKLGU5.js +0 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hai-storage
|
|
3
|
-
description: 使用 @h-ai/storage
|
|
3
|
+
description: "使用 @h-ai/storage 访问本地/S3 文件、目录和预签名上传下载。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# hai-storage
|
|
@@ -9,22 +9,18 @@ description: 使用 @h-ai/storage 进行文件存储操作(本地/S3),包
|
|
|
9
9
|
|
|
10
10
|
| 项目 | 契约 |
|
|
11
11
|
| --- | --- |
|
|
12
|
-
| 能力 | 使用 @h-ai/storage
|
|
13
|
-
| 适用场景 |
|
|
14
|
-
| 输入 |
|
|
15
|
-
| 输出 |
|
|
16
|
-
| 限制 |
|
|
12
|
+
| 能力 | 使用 @h-ai/storage 访问本地/S3 文件、目录和预签名上传下载 |
|
|
13
|
+
| 适用场景 | 文件接口、目录操作或浏览器直传 |
|
|
14
|
+
| 输入 | StorageConfigInput、文件 key、内容、presign 选项 |
|
|
15
|
+
| 输出 | file/dir/presign 操作的 HaiResult |
|
|
16
|
+
| 限制 | 仅服务端;浏览器经 API/预签名 URL。Local list 非真分页;putUrl 不提供 maxSize 强制约束,上传大小须服务端验证。 |
|
|
17
17
|
|
|
18
18
|
> `@h-ai/storage` 提供统一文件存储接口,支持本地文件系统(LocalProvider)和 S3 兼容存储(S3Provider),通过 `storage.file`、`storage.dir`、`storage.presign` 三组接口访问能力。
|
|
19
19
|
|
|
20
|
-
---
|
|
21
|
-
|
|
22
20
|
## 运行环境
|
|
23
21
|
|
|
24
22
|
> ⚠️ **服务端模块**。`storage.file` / `storage.dir` / `storage.presign` 均在 Node.js 端使用。浏览器端通过预签名 URL 或 API 端点间接访问存储(见下方「浏览器端文件上传」)。
|
|
25
23
|
|
|
26
|
-
---
|
|
27
|
-
|
|
28
24
|
## 适用场景
|
|
29
25
|
|
|
30
26
|
- 文件上传与下载
|
|
@@ -33,8 +29,6 @@ description: 使用 @h-ai/storage 进行文件存储操作(本地/S3),包
|
|
|
33
29
|
- 本地开发文件存储
|
|
34
30
|
- 目录前缀清理与批量文件删除
|
|
35
31
|
|
|
36
|
-
---
|
|
37
|
-
|
|
38
32
|
## 使用步骤
|
|
39
33
|
|
|
40
34
|
### 1. 配置
|
|
@@ -80,8 +74,6 @@ if (!closeResult.success) {
|
|
|
80
74
|
|
|
81
75
|
> `storage.config` 返回的是**脱敏配置快照**;S3 的 `accessKeyId` / `secretAccessKey` 等敏感字段会被替换为 `[REDACTED]`。
|
|
82
76
|
|
|
83
|
-
---
|
|
84
|
-
|
|
85
77
|
## 核心 API
|
|
86
78
|
|
|
87
79
|
### 文件操作
|
|
@@ -133,8 +125,6 @@ const downloadUrl = await storage.presign.getUrl('uploads/doc.pdf', {
|
|
|
133
125
|
|
|
134
126
|
> `storage.presign.putUrl()` 当前不支持 `maxSize` 约束参数;如需大小限制,请在应用层上传前校验,或在服务端落库/回调处二次校验。
|
|
135
127
|
|
|
136
|
-
---
|
|
137
|
-
|
|
138
128
|
## 错误码 — `HaiStorageError`
|
|
139
129
|
|
|
140
130
|
| 错误码 | code | 说明 |
|
|
@@ -155,8 +145,6 @@ const downloadUrl = await storage.presign.getUrl('uploads/doc.pdf', {
|
|
|
155
145
|
| `HaiStorageError.UPLOAD_FAILED` | `hai:storage:014` | 上传失败 |
|
|
156
146
|
| `HaiStorageError.DOWNLOAD_FAILED` | `hai:storage:015` | 下载失败 |
|
|
157
147
|
|
|
158
|
-
---
|
|
159
|
-
|
|
160
148
|
## HTTP API 契约
|
|
161
149
|
|
|
162
150
|
公共 HTTP API 统一由 `@h-ai/api-contract` 提供,并由 `@h-ai/serv/features/storage` 绑定到本模块。
|
|
@@ -167,8 +155,6 @@ import { apiClient } from '@h-ai/api-client'
|
|
|
167
155
|
const result = await apiClient.storage.presignedUrls.createUpload({ key: 'avatar.png' })
|
|
168
156
|
```
|
|
169
157
|
|
|
170
|
-
---
|
|
171
|
-
|
|
172
158
|
## 常见模式
|
|
173
159
|
|
|
174
160
|
### 与 kit 集成(文件上传 API)
|
|
@@ -184,7 +170,7 @@ const UploadSchema = z.object({
|
|
|
184
170
|
})
|
|
185
171
|
|
|
186
172
|
export const POST = kit.handler(async ({ request, locals }) => {
|
|
187
|
-
kit.guard.
|
|
173
|
+
kit.guard.require(locals.session, 'storage:write')
|
|
188
174
|
const formData = await request.formData()
|
|
189
175
|
const file = formData.get('file') as File
|
|
190
176
|
if (!file)
|
|
@@ -216,8 +202,6 @@ if (result.success) {
|
|
|
216
202
|
}
|
|
217
203
|
```
|
|
218
204
|
|
|
219
|
-
---
|
|
220
|
-
|
|
221
205
|
## 浏览器端文件上传(预签名 URL 模式)
|
|
222
206
|
|
|
223
207
|
浏览器端无法直接使用 `storage` 模块,应通过 API 获取预签名 URL 后直传:
|
|
@@ -255,8 +239,6 @@ if (result.success) {
|
|
|
255
239
|
}
|
|
256
240
|
```
|
|
257
241
|
|
|
258
|
-
---
|
|
259
|
-
|
|
260
242
|
## 相关 Skills
|
|
261
243
|
|
|
262
244
|
- `hai-build`:模块初始化顺序
|