@lark-base-open/base-database-cli 1.4.6 → 1.4.9
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/CHANGELOG.md +57 -0
- package/README.md +18 -28
- package/dist/ai-functions.d.ts +7 -13
- package/dist/ai-functions.d.ts.map +1 -1
- package/dist/ai-functions.js +253 -105
- package/dist/ai-functions.js.map +1 -1
- package/dist/archive.d.ts +5 -4
- package/dist/archive.d.ts.map +1 -1
- package/dist/archive.js +39 -42
- package/dist/archive.js.map +1 -1
- package/dist/auth.d.ts +10 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +23 -1
- package/dist/auth.js.map +1 -1
- package/dist/check.d.ts +23 -7
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +149 -20
- package/dist/check.js.map +1 -1
- package/dist/contract-conversion.d.ts +39 -0
- package/dist/contract-conversion.d.ts.map +1 -0
- package/dist/contract-conversion.js +92 -0
- package/dist/contract-conversion.js.map +1 -0
- package/dist/contract-extractor.d.ts +2 -5
- package/dist/contract-extractor.d.ts.map +1 -1
- package/dist/contract-extractor.js +68 -80
- package/dist/contract-extractor.js.map +1 -1
- package/dist/dependency-policy.d.ts +2 -0
- package/dist/dependency-policy.d.ts.map +1 -1
- package/dist/dependency-policy.js +42 -22
- package/dist/dependency-policy.js.map +1 -1
- package/dist/deploy.d.ts +1 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +147 -118
- package/dist/deploy.js.map +1 -1
- package/dist/dev-watch.d.ts.map +1 -1
- package/dist/dev-watch.js +5 -1
- package/dist/dev-watch.js.map +1 -1
- package/dist/draft-publication.d.ts +9 -0
- package/dist/draft-publication.d.ts.map +1 -0
- package/dist/draft-publication.js +36 -0
- package/dist/draft-publication.js.map +1 -0
- package/dist/draft-state.d.ts +48 -0
- package/dist/draft-state.d.ts.map +1 -0
- package/dist/draft-state.js +167 -0
- package/dist/draft-state.js.map +1 -0
- package/dist/draft-submit.d.ts +39 -0
- package/dist/draft-submit.d.ts.map +1 -0
- package/dist/draft-submit.js +101 -0
- package/dist/draft-submit.js.map +1 -0
- package/dist/function-contracts.d.ts.map +1 -1
- package/dist/function-contracts.js +5 -5
- package/dist/function-contracts.js.map +1 -1
- package/dist/function-input-types.d.ts.map +1 -1
- package/dist/function-input-types.js +1 -15
- package/dist/function-input-types.js.map +1 -1
- package/dist/function-write-request.d.ts +17 -0
- package/dist/function-write-request.d.ts.map +1 -0
- package/dist/function-write-request.js +39 -0
- package/dist/function-write-request.js.map +1 -0
- package/dist/init.d.ts +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +32 -5
- package/dist/init.js.map +1 -1
- package/dist/lark-cli-error.d.ts +3 -0
- package/dist/lark-cli-error.d.ts.map +1 -1
- package/dist/lark-cli-error.js +60 -0
- package/dist/lark-cli-error.js.map +1 -1
- package/dist/lark-cli.d.ts.map +1 -1
- package/dist/lark-cli.js +5 -5
- package/dist/lark-cli.js.map +1 -1
- package/dist/link-guard-check.d.ts +1 -1
- package/dist/link-guard-check.d.ts.map +1 -1
- package/dist/link-guard-check.js.map +1 -1
- package/dist/managed-agent-docs.js +1 -1
- package/dist/managed-agent-docs.js.map +1 -1
- package/dist/npm.d.ts +13 -0
- package/dist/npm.d.ts.map +1 -1
- package/dist/npm.js +99 -0
- package/dist/npm.js.map +1 -1
- package/dist/preview-receipt.d.ts +7 -2
- package/dist/preview-receipt.d.ts.map +1 -1
- package/dist/preview-receipt.js +21 -1
- package/dist/preview-receipt.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +59 -33
- package/dist/program.js.map +1 -1
- package/dist/project-context.d.ts.map +1 -1
- package/dist/project-context.js +7 -14
- package/dist/project-context.js.map +1 -1
- package/dist/pull.d.ts +21 -1
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +67 -10
- package/dist/pull.js.map +1 -1
- package/dist/sdk-compatibility.d.ts +23 -0
- package/dist/sdk-compatibility.d.ts.map +1 -0
- package/dist/sdk-compatibility.js +75 -0
- package/dist/sdk-compatibility.js.map +1 -0
- package/dist/sdk-install.d.ts +2 -1
- package/dist/sdk-install.d.ts.map +1 -1
- package/dist/sdk-install.js +8 -5
- package/dist/sdk-install.js.map +1 -1
- package/dist/source-alignment.d.ts +3 -0
- package/dist/source-alignment.d.ts.map +1 -0
- package/dist/source-alignment.js +124 -0
- package/dist/source-alignment.js.map +1 -0
- package/dist/source-archive-inputs.d.ts +10 -0
- package/dist/source-archive-inputs.d.ts.map +1 -0
- package/dist/source-archive-inputs.js +85 -0
- package/dist/source-archive-inputs.js.map +1 -0
- package/dist/source-format.d.ts +3 -0
- package/dist/source-format.d.ts.map +1 -1
- package/dist/source-format.js +6 -0
- package/dist/source-format.js.map +1 -1
- package/dist/unified-functions.d.ts +10 -1
- package/dist/unified-functions.d.ts.map +1 -1
- package/dist/unified-functions.js +27 -7
- package/dist/unified-functions.js.map +1 -1
- package/package.json +1 -1
- package/skills/lark-base-database/SKILL.md +6 -6
- package/skills/lark-base-database/references/agent-tool-design.md +1 -1
- package/skills/lark-base-database/references/agent-tools.md +4 -6
- package/skills/lark-base-database/references/ai-function.md +143 -277
- package/skills/lark-base-database/references/base-capability-routing.md +2 -2
- package/skills/lark-base-database/references/database-function.md +7 -3
- package/skills/lark-base-database/references/development.md +29 -11
- package/skills/lark-base-database/references/faas.md +1 -2
- package/skills/lark-base-database/references/legacy-ai-function.md +3 -3
- package/skills/lark-base-database/references/legacy-development.md +2 -2
- package/skills/lark-base-database/references/mutations.md +14 -9
- package/skills/lark-base-database/references/release.md +18 -7
- package/skills/lark-base-database/references/verification.md +12 -21
- package/skills/lark-base-database/references/workspace-migration.md +5 -14
- package/skills/lark-base-database/references/workspace.md +19 -3
- package/templates/database-starter/page/README.md +1 -1
- package/templates/database-starter-v2/README.md +2 -2
- package/templates/database-starter-v2/package-lock.json +5 -5
- package/templates/database-starter-v2/page/package.json +1 -1
- package/templates/database-starter-v2/server/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.4.9] - 2026-10-20
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- 发布和 `pull` 的压缩源码包上限统一为 50 MiB,避免可发布的源码包无法恢复。
|
|
8
|
+
- 发布前按实际归档内容检查 200 MiB 解压大小上限,排除缓存等未打包文件,并在超限时显示准确字节数。
|
|
9
|
+
|
|
10
|
+
## [1.4.8] - 2026-10-19
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- 建站 Skill 提供图片和视频 AI Function 的完整配置示例,并引导按模型 Profile 选择尺寸、时长等参数。
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- 新建 workspace 的 Page 和 Server SDK 统一使用 `0.3.2`,包含当前访问者字段说明、头像展示与重试示例;存量工程继续保留已安装的 SDK,升级需按提示显式执行。
|
|
19
|
+
- 建站 Skill 在遇到 SDK 类型诊断时引导核对实际安装版本的接口契约,修正后重新执行检查并验证受影响页面。
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- AI Function 的图片、视频配置字段误放在 `config` 顶层时,本地检查会指出文件及正确的嵌套路径,避免错误配置继续提交。
|
|
24
|
+
- Preview 部署在安装依赖前按服务端允许列表检查实际生效的 npm 锁文件来源,提前阻止不符合策略的依赖下载地址。
|
|
25
|
+
|
|
26
|
+
## [1.4.7] - 2026-10-18
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- 新增 `ai-functions models`,查询当前应用可用的模型 Profile、能力及配置参数。
|
|
31
|
+
- 新增 `deploy --baseline-from <directory>`,在比较并整合临时 `pull` 的远端变更后,显式采用该目录的草稿基线。
|
|
32
|
+
- 远端没有源码包时,`pull` 仍可导出草稿声明供核对。
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- 新建 workspace 的 Page 和 Server SDK 统一使用正式版 `0.3.0`,配套调用示例使用 SDK 生成的调用类型及其提供的 Mutation 固定结果类型。
|
|
37
|
+
- `check`、`contracts generate`、`deploy` 和 `doctor` 对低于 starter 默认版本的已安装 SDK 提供非阻断提醒。存量工程默认保持原 SDK;用户授权升级后,按所跨不兼容版本的 Migration 说明修改调用并重新生成契约、检查和构建。
|
|
38
|
+
- `check` 默认对本次 Database Function、Mutation、FaaS 和 AI Function 声明执行统一服务端校验,保留服务端返回的平台错误码、LogID 和逐项诊断;明确离线检查时使用 `--local-only`。
|
|
39
|
+
- AI Function 随普通 `deploy` 按本地完整声明集发布:空 `ai/` 目录表示删除全部 AI Function,缺少整个目录或使用 `--skip-ai-functions` 时保留远端 AI 并说明未校验、未同步。新建应用初始化时创建空 `ai/` 目录。
|
|
40
|
+
- `pull` 优先保留源码包中的 AI Function 声明及空目录;仅当源码包缺少整个 `ai/` 目录时,从同次读取的草稿补全。
|
|
41
|
+
- Preview 部署使用携带草稿基线的统一提交,请求包含源码、Function、工具开放策略和新增绑定;远端修订变化或本地缺少基线时停止覆盖,并给出拉取、比较和整合指引。
|
|
42
|
+
- Prod 发布核对已确认的 Preview 及其草稿修订;旧 Preview 缺少修订证明或远端已变化时,要求重新生成并确认 Preview。
|
|
43
|
+
- `ai-functions list`、`get`、`pull`、`validate`、`debug` 保留兼容调用,但不再显示于常规帮助;日常恢复、检查和发布使用 `pull`、`check`、`deploy`。
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- 用户授权缺失或过期时,恢复提示保留实际 CLI、环境及账号 profile,避免引导到错误环境重新授权。
|
|
48
|
+
- 契约转换在独立子进程中限时执行,避免工程 Schema 的输出、提前退出或长时间执行破坏 CLI 机器输出或持续阻塞生成。
|
|
49
|
+
- `context` 使用已生成 metadata 汇总输入,不再执行工程契约模块;缺少 metadata 时标记未知并提示生成契约。
|
|
50
|
+
- 仅包含 SQL 或 Mutation 的 SDK 工程也能生成调用类型映射,无需声明 FaaS Function。
|
|
51
|
+
- `doctor` 在已安装 SDK 包信息损坏时记录错误,并继续认证状态、权限和服务诊断。
|
|
52
|
+
- `check` 或 Preview 准备期间本地源码、AI 声明发生变化时停止本轮操作,避免校验与提交使用不同内容。
|
|
53
|
+
- `dev` 检测到空 `ai/` 目录被创建或删除时暂停自动 Preview 发布,避免遗漏 AI 声明集语义变化。
|
|
54
|
+
- AI Function 兼容调试命令区分调用成功、确定失败和结果未知;失败返回非零退出码,结果未知时提示核对原请求或任务后再处理。
|
|
55
|
+
|
|
56
|
+
### Removed
|
|
57
|
+
|
|
58
|
+
- 删除 `ai-functions sync` 命令,AI Function 统一通过普通 `deploy` 发布。
|
|
59
|
+
|
|
3
60
|
## [1.4.6] - 2026-10-15
|
|
4
61
|
|
|
5
62
|
### Changed
|
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ CLI 版本来自包内 `package.json`;每份 Skill 的 `base-database-version.
|
|
|
56
56
|
base-database-cli context . --summary --json
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
`context` 只读取本地配置、Catalog、Function metadata 和 init/Preview 回执。摘要保留环境、资源数量、readiness 与建议的下一步,不输出本地路径、fingerprint 值或逐项资源;排障时去掉 `--summary` 可读取完整快照。Preview freshness 的输入范围见[制品指纹](skills/lark-base-database/references/release.md#制品指纹),README 属于部署输入。缺少 `base-database.jsonc` 时返回 `project.status=uninitialized`,不会报 project-not-found。该命令不读取认证凭证或环境变量值,不调用远端 API
|
|
59
|
+
`context` 只读取本地配置、Catalog、Function metadata 和 init/Preview 回执。摘要保留环境、资源数量、readiness 与建议的下一步,不输出本地路径、fingerprint 值或逐项资源;排障时去掉 `--summary` 可读取完整快照。Preview freshness 的输入范围见[制品指纹](skills/lark-base-database/references/release.md#制品指纹),README 属于部署输入。缺少 `base-database.jsonc` 时返回 `project.status=uninitialized`,不会报 project-not-found。该命令不读取认证凭证或环境变量值,不调用远端 API,也不执行项目的 `contract.ts`、`doctor`、`check`、构建或发布;defineFunction 输入摘要使用已生成 metadata,未生成时显示 `unknown` 并提示先运行 `contracts generate` 与 `check`。默认输出已经是 JSON,`--json` 用于显式声明机器读取。
|
|
60
60
|
|
|
61
61
|
### 复用 lark-cli profile
|
|
62
62
|
|
|
@@ -85,7 +85,7 @@ AUTH_PROXY 等更高优先级凭证来源同时存在时会报冲突,避免静
|
|
|
85
85
|
|
|
86
86
|
init 仅生成 workspace(`init`),classic 仅保留存量兼容。根 npm workspace 包含 page + server,Page 入口调用 SDK startBaseApp,FaaS 源码使用 ESM;本地 check 与云端直接调用同源平台构建器,先类型检查再生成 CJS 与 build-manifest.json。先执行 `contracts generate`,再执行 `check --json`;生成代码位于 page/src/generated 与 server/generated。
|
|
87
87
|
|
|
88
|
-
workspace 使用 starter 模板指定的 SDK
|
|
88
|
+
workspace 使用 starter 模板指定的 SDK 精确版本与根 lockfile。classic 继续兼容;由 coding agent 按[工程迁移指南](skills/lark-base-database/references/workspace-migration.md)修改并验证,本地通过后仍须完成 Preview 验收。
|
|
89
89
|
|
|
90
90
|
### 新建数据库应用
|
|
91
91
|
|
|
@@ -133,11 +133,11 @@ base-database-cli init ./todo-database \
|
|
|
133
133
|
--env online
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
生成项目会直接在项目根目录放置 Page、Database Function、Mutation 和 FaaS,路径分别为 `page/`、`database-functions/`、`mutations/` 与 `server/functions/`;`base-database.jsonc` 和 `catalog.json` 也保留在根目录。AI Function 是按需能力;新建应用的 `init` 创建带 `.gitkeep` 的空 `ai/` 根,表示已知的空声明集,只有需求涉及 AI 时才添加 `ai/<functionKey>/meta.json`。使用 `--app-token` 初始化存量应用时不创建该根,应先用公共 `pull` 恢复远端声明。`server/` 是 workspace 的服务端 FaaS 源码与构建工作区;classic 路径按[工程目录](skills/lark-base-database/references/workspace.md#工程目录与构建模式)选择。CLI 的 Preview 状态和发布临时制品统一写入被 Git 忽略的 `.base-database-cli/state/`。
|
|
137
137
|
|
|
138
138
|
### 恢复并修改已有数据库应用
|
|
139
139
|
|
|
140
|
-
已有数据库应用存在源码制品时,使用 `pull` 恢复可编辑工程,不要重新执行 `init
|
|
140
|
+
已有数据库应用存在源码制品时,使用 `pull` 恢复可编辑工程,不要重新执行 `init`。目标目录必须为空;`pull` 会按制品模板布局恢复 Page、Database Function、Mutation、FaaS 和 AI Function 的本地声明(见[工程目录](skills/lark-base-database/references/workspace.md#工程目录与构建模式)),读取应用 Catalog,并重建 `base-database.jsonc` 与 `catalog.json`,不会创建或修改 Base、应用元信息和 binding:
|
|
141
141
|
|
|
142
142
|
旧制品中的 `sql/` 会在恢复时迁移为 `database-functions/`。本地旧工程仍可直接检查和发布,但不能同时保留两个目录。
|
|
143
143
|
|
|
@@ -149,9 +149,11 @@ base-database-cli pull ./todo-database \
|
|
|
149
149
|
|
|
150
150
|
恢复完成后,先读取现有配置、Catalog 和源码,只修改本次需求涉及的内容,再使用 `deploy` 发布新的 Preview。
|
|
151
151
|
|
|
152
|
+
`deploy` 与 `pull` 的压缩源码包上限,以及发布时解压后累计内容大小的上限,见[源码包大小](skills/lark-base-database/references/release.md#源码包大小)。恢复 32–50 MiB 的历史包需要升级到支持此上限的 CLI。
|
|
153
|
+
|
|
152
154
|
### 发布 Preview 和正式版本
|
|
153
155
|
|
|
154
|
-
新建流程是 `init → 开发 → contracts generate → check → deploy`;修改已有数据库应用时是 `pull → 修改 → 按契约需要 generate → check → deploy`。Agent 在每个阶段一次性获取所需上下文,根据 Catalog 完整实现 Page
|
|
156
|
+
新建流程是 `init → 开发 → contracts generate → check → deploy`;修改已有数据库应用时是 `pull → 修改 → 按契约需要 generate → check → deploy`。Agent 在每个阶段一次性获取所需上下文,根据 Catalog 完整实现 Page,并只实现本次需求需要的 Database Function、Mutation、FaaS 或 AI Function;AI Function 只在需求涉及 AI 时创建。通过项目级完整检查后发布 Preview:
|
|
155
157
|
|
|
156
158
|
```bash
|
|
157
159
|
cd todo-database
|
|
@@ -241,15 +243,17 @@ base-database-cli deployments status
|
|
|
241
243
|
base-database-cli lark-cli -- <arguments...>
|
|
242
244
|
```
|
|
243
245
|
|
|
244
|
-
`check` 的依赖准备、契约核对、CONTRACT_STALE
|
|
246
|
+
`check` 的依赖准备、契约核对、CONTRACT_STALE 恢复、统一服务端 Validate 和无 SDK classic 自动生成条件见[Check 与契约生成](skills/lark-base-database/references/development.md#check-与契约生成)。
|
|
245
247
|
|
|
246
248
|
成功的 Page 和 FaaS build 会分别按源码、lock、Node/npm、平台和构建环境指纹缓存在 `.base-database-cli/state/check-build/`。输入未变化时后续 `check` 直接复用对应结果;只有一侧失败时,修复重试会保留并复用另一侧的成功结果。`--force-build` 忽略这份构建缓存,`--force-install` 会同时重新安装并重新构建;`deploy` 仍执行完整 build,不复用本地 `check` 的构建结果。
|
|
247
249
|
|
|
248
|
-
使用 `--json` 时,成功或失败的 stdout 都是单个 JSON 文档,报告 `schemaVersion` 为 `2
|
|
250
|
+
使用 `--json` 时,成功或失败的 stdout 都是单个 JSON 文档,报告 `schemaVersion` 为 `2`;`functions` 分别统计纳入本次校验 payload 的 Database Function、Mutation、FaaS 和 AI Function。构建日志在失败时收敛到 `error.diagnostics`;失败结果还提供稳定的 `error.code`、`error.stage`、阶段状态和 `nextActions`,服务端失败额外保留 `error.platformCode` 与 `error.logId`(若存在);`cache.pageBuild` / `cache.faasBuild` 使用 `hit`、`miss`、`not_run` 单独表达缓存状态,不改变 `checks.*=passed` 的成功语义。不加该参数时保留面向终端的实时 npm/build 输出和文本错误。默认 `check` 在本地依赖、契约和 Function 声明准备后,通过统一 `/functions/validate` 对本次 kind 集合执行无副作用服务端校验;存在 `ai/` 根时包含 AI,空根表示明确空集合,缺少整个根时保留远端 AI 并输出 `AI_FUNCTION_ROOT_ABSENT_PRESERVED`。校验不修改 binding、draft、Artifact 或发布状态。仅在明确离线时使用 `--local-only`,此时 `serverValidation.status=not_run`,不能据此声明服务端 Function 配置有效;显式 `--skip-ai-functions` 也会从本次 payload 排除 AI 声明,因此 AI 未经过 check 校验。
|
|
251
|
+
|
|
252
|
+
`deploy` 发布 Preview 时先解析账号环境、获取目标应用依赖策略并校验 package.json 来源,失败时不安装。策略通过后安装依赖,再提取 SDK 契约、校验声明与查询,之后构建和发布;查询校验失败不会继续 build,但依赖可能已安装。依赖指纹未变化且 node_modules 有效时可跳过 npm ci;`--force-install` 强制重装,`--no-install` 要求依赖已就绪。各类 Function 的发布顺序及错误边界见[发布参考](skills/lark-base-database/references/release.md#function-发布顺序与错误边界)。
|
|
249
253
|
|
|
250
|
-
`
|
|
254
|
+
`pull` 从 `source_code` 一次恢复 Page、Database Function、Mutation、FaaS 和 AI Function;恢复来源与兼容边界见[工程与环境](skills/lark-base-database/references/workspace.md#先选择工程来源)。Preview deploy 按本地完整声明统一覆盖各类 Function;AI 的配置、Page 调用和显式跳过边界见[AI Function](skills/lark-base-database/references/ai-function.md)。
|
|
251
255
|
|
|
252
|
-
Preview deploy
|
|
256
|
+
Preview deploy 按草稿基线原子提交源码、Function、工具策略及新增绑定;远端修订变化时整次拒绝覆盖。缺少基线或发生冲突时,按[远端更新与冲突恢复](skills/lark-base-database/references/workspace.md#远端更新与冲突恢复)对齐。
|
|
253
257
|
|
|
254
258
|
FaaS 中静态引用的 `process.env` 变量通过 `environment-variables` 命令管理。定义由 Preview 和 Prod 共享,两套值独立保存;Config 查询时明文返回,Secret 只返回脱敏值。`declare` 创建共享定义并默认拒绝覆盖同名但元数据不同的定义;确认影响后可用 `--force` 修改。声明必须显式传入 `--target`、`--type`,并用 `--required` 或 `--optional` 表明是否必填;`set` 和 `clear` 也必须显式指定目标环境。`set` 只接受 `--value-stdin`,CLI 不提供把值放入进程参数的 `--value`。保存后需重新发布才生效,保存动作不会自动发布。
|
|
255
259
|
|
|
@@ -281,31 +285,17 @@ base-database-cli contracts generate . --runtime-only
|
|
|
281
285
|
时间必须是带时区的 RFC3339。
|
|
282
286
|
本地流在 `.base-database-cli/state/diagnostics/events.ndjson`,轮转保留最多三份 5MiB 文件。
|
|
283
287
|
|
|
284
|
-
新的 FaaS 可在 `server/functions/<id>/index.ts`(classic 路径见[工程目录](skills/lark-base-database/references/workspace.md#工程目录与构建模式)
|
|
285
|
-
`defineFunction`,并从同目录 `contract.ts` 导入独立的 input/output:
|
|
286
|
-
|
|
287
|
-
```ts
|
|
288
|
-
// contract.ts
|
|
289
|
-
import { z } from 'zod';
|
|
290
|
-
export const input = z.object({ title: z.string().min(1).describe('新任务的标题') });
|
|
291
|
-
export const output = z.object({ id: z.string() });
|
|
292
|
-
|
|
293
|
-
// index.ts(独立文件)
|
|
294
|
-
import { defineFunction } from '@lark-base-open/base-database-app-sdk/server';
|
|
295
|
-
import { input, output } from './contract.js';
|
|
296
|
-
export default defineFunction({ input, output, handler: async () => ({ id: 'example' }) });
|
|
297
|
-
```
|
|
288
|
+
新的 FaaS 可在 `server/functions/<id>/index.ts`(classic 路径见[工程目录](skills/lark-base-database/references/workspace.md#工程目录与构建模式))从 SDK `/server` 导入 `defineFunction`,并从同目录 `contract.ts` 导入独立的 input/output。可编译的示例直接位于 [starter 的 hello Function](templates/database-starter-v2/server/functions/hello/);它随真实工程的构建一起校验。
|
|
298
289
|
|
|
299
|
-
生成器使用工程已安装的 Zod v4,通过 esbuild 打包 `contract.ts`
|
|
300
|
-
支持 Zod 版本范围和非 npm 锁文件;CLI 不安装或升级 SDK/Zod,不执行 `index.ts` 或 handler
|
|
290
|
+
生成器使用工程已安装的 Zod v4,通过 esbuild 打包 `contract.ts` 后在子进程中转换为 JSON Schema,超过 5 秒时强制终止子进程;V8 old space 上限为 128 MiB,不是进程总内存上限。子进程 stdout/stderr 不进入 CLI 的机器输出。
|
|
291
|
+
支持 Zod 版本范围和非 npm 锁文件;CLI 不安装或升级 SDK/Zod,不执行 `index.ts` 或 handler。`contract.ts` 及其 helper 的顶层 Schema 构造会在该子进程中执行,语法、导入、导出、提前退出或超时会阻断生成并给出修复提示。
|
|
301
292
|
无法表示为 JSON Schema 的声明会降级为 runtime-only,并输出函数名、Schema 路径、原因和 `Fix:`;
|
|
302
293
|
语法、导入或导出错误会阻断生成并提供修复提示。Schema 结构约束与大小预算仍适用。
|
|
303
294
|
|
|
304
295
|
显式 `contracts generate` 更新 meta 的生成区、服务端 contracts.generated.json(路径见[工程目录](skills/lark-base-database/references/workspace.md#工程目录与构建模式))
|
|
305
296
|
和 `page/src/generated/functions.ts`。check/deploy 比较当前输入、元数据和客户端,过期则要求重新生成;
|
|
306
297
|
不静默覆盖契约。源码、业务依赖、lock 或构建环境变化都会使生成结果失效。
|
|
307
|
-
生成的 `functions.<id>` 校验网关外层 code,并且只解一层 data
|
|
308
|
-
SDK `FunctionInputMap` 通过模块扩充保留输入约束;类型不替代运行时校验,也不证明远端契约匹配。
|
|
298
|
+
生成的 `functions.<id>` 校验网关外层 code,并且只解一层 data。SDK 按 Function ID 推断调用结果:SQL 的 `data` 是含 `rows` 的对象,未知列类型时行值为 `unknown`;Mutation 的平台固定结果类型由工程 SDK 提供。类型不替代业务数据校验,也不证明远端契约匹配。
|
|
309
299
|
|
|
310
300
|
后端不支持的 Schema 规则保留在本地完整契约,发现元数据省略 inputSchema 并警告,不删除规则后
|
|
311
301
|
假称完整契约。发现 FG 关闭时显式使用 `--runtime-only`,CLI 不切换身份、不启用 FG,也不自动重试发布。
|
|
@@ -339,7 +329,7 @@ SQL、Mutation、绑定或依赖变化会暂停本轮自动发布,需另行检
|
|
|
339
329
|
|
|
340
330
|
`dev` 要求 page 已安装支持配对的 SDK。缺失时按 CLI 报错给出的安装命令执行,版本与新建工程模板一致。
|
|
341
331
|
|
|
342
|
-
check/preview deploy 先准备依赖,再提取和比较契约,且在任何远端写入之前;`--no-install` 缺依赖时报告依赖错误。server/contract 修改后先 `contracts generate` 再 `check
|
|
332
|
+
check/preview deploy 先准备依赖,再提取和比较契约,且在任何远端写入之前;`--no-install` 缺依赖时报告依赖错误。server/contract 修改后先 `contracts generate` 再 `check`。契约转换的进程与资源边界见上文 FaaS 契约生成说明。
|
|
343
333
|
|
|
344
334
|
开发/生产统一直接导入配置,没有 dev 虚拟入口。HMR 不触发重新配对;标签隐藏不销毁 iframe,focus 和30秒轮询复查编辑权限。权限查询超时/网关失败暂停业务并保留配对令牌,可点击重试。冷启动握手等待30秒,超时保留iframe等待迟到握手,不将超时等同本地网络权限被拒。
|
|
345
335
|
|
package/dist/ai-functions.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type FunctionWrite } from './unified-functions.js';
|
|
2
2
|
import { type RuntimeProfile } from './environment.js';
|
|
3
|
+
import { LarkCliError } from './lark-cli-error.js';
|
|
3
4
|
export declare const AI_FUNCTION_FEATURE_NOT_ENABLED_CODE = 800004011;
|
|
4
|
-
export declare const AI_FUNCTION_FEATURE_NOT_ENABLED_MESSAGE = "AI Function management is not enabled for the current user (800004011). This is a feature gate, not a missing scope, so `auth login` does not help.
|
|
5
|
-
export declare function isAIFunctionFeatureNotEnabled(error: unknown):
|
|
5
|
+
export declare const AI_FUNCTION_FEATURE_NOT_ENABLED_MESSAGE = "AI Function management is not enabled for the current user (800004011). This is a feature gate, not a missing scope, so `auth login` does not help. Preview deploy full-cover syncs the local ai/ set, including an empty set, and fails closed by default when that write is blocked. Only after the user explicitly accepts a release that does not align remote AI Functions may you use `deploy --skip-ai-functions`; do not add it automatically. Report the AI Function part as not synchronized.";
|
|
6
|
+
export declare function isAIFunctionFeatureNotEnabled(error: unknown): error is LarkCliError;
|
|
6
7
|
export declare function aiFunctionAccessError(error: unknown): unknown;
|
|
7
8
|
export interface AIFunctionInput {
|
|
8
9
|
functionKey: string;
|
|
@@ -10,21 +11,14 @@ export interface AIFunctionInput {
|
|
|
10
11
|
description: string;
|
|
11
12
|
configJson: string;
|
|
12
13
|
}
|
|
14
|
+
export declare function parseAIJSON(source: string, requireExactNumbers?: boolean): unknown;
|
|
15
|
+
export declare function stripPlatformManagedFields(config: Record<string, unknown>, requireExactNumbers?: boolean): Record<string, unknown>;
|
|
13
16
|
/** Inventory does not parse AI configuration, so skip can still bypass invalid AI metadata. */
|
|
14
17
|
export declare function localAIFunctionKeys(workspace: string): string[];
|
|
15
18
|
export declare function collectLocalAIFunctions(workspace: string): AIFunctionInput[];
|
|
16
19
|
export declare function aiFunctionWrite(item: AIFunctionInput): FunctionWrite;
|
|
17
|
-
export declare function syncAIFunctionsFullCover(appToken: string, items: AIFunctionInput[], env: NodeJS.ProcessEnv, cwd?: string): Record<string, unknown>;
|
|
18
20
|
export declare function remoteAIFunctionKeys(appToken: string, env: NodeJS.ProcessEnv, cwd?: string): string[];
|
|
19
|
-
export
|
|
20
|
-
status: 'restored';
|
|
21
|
-
functionKeys: string[];
|
|
22
|
-
} | {
|
|
23
|
-
status: 'not_enabled';
|
|
24
|
-
};
|
|
25
|
-
export declare function restoreRemoteAIFunctions(appToken: string, workspace: string, env: NodeJS.ProcessEnv, cwd?: string): AIFunctionRestoreResult;
|
|
26
|
-
export declare function assertNoRemoteAIFunctionLoss(appToken: string, items: AIFunctionInput[], env: NodeJS.ProcessEnv, cwd?: string): void;
|
|
27
|
-
export declare function syncAIFunctionsForDeploy(appToken: string, items: AIFunctionInput[], env: NodeJS.ProcessEnv, cwd?: string): Record<string, unknown>;
|
|
21
|
+
export declare function restoreAI(view: Record<string, unknown>, functionKey: string, workspace: string): void;
|
|
28
22
|
export interface AIFunctionCommandOptions {
|
|
29
23
|
larkProfile?: string;
|
|
30
24
|
directory: string;
|
|
@@ -34,7 +28,7 @@ export interface AIFunctionCommandOptions {
|
|
|
34
28
|
export declare function listAIFunctions(options: AIFunctionCommandOptions): Promise<Record<string, unknown>>;
|
|
35
29
|
export declare function getAIFunction(functionKey: string, options: AIFunctionCommandOptions): Promise<Record<string, unknown>>;
|
|
36
30
|
export declare function pullAIFunction(functionKey: string, options: AIFunctionCommandOptions): Promise<Record<string, unknown>>;
|
|
37
|
-
export declare function
|
|
31
|
+
export declare function listAIFunctionModels(options: AIFunctionCommandOptions): Promise<Record<string, unknown>>;
|
|
38
32
|
export declare function validateAIFunction(functionKey: string, options: AIFunctionCommandOptions): Promise<Record<string, unknown>>;
|
|
39
33
|
export interface AIFunctionDebugOptions extends AIFunctionCommandOptions {
|
|
40
34
|
env: 'preview' | 'prod';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-functions.d.ts","sourceRoot":"","sources":["../src/ai-functions.ts"],"names":[],"mappings":"AAUA,OAAO,
|
|
1
|
+
{"version":3,"file":"ai-functions.d.ts","sourceRoot":"","sources":["../src/ai-functions.ts"],"names":[],"mappings":"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"}
|