@lovrabet/lovrabet-cli 2.2.7 → 2.3.0-beta.2
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/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.d.ts +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/init.d.ts +12 -0
- package/lib/commands/config/init.js +1 -0
- package/lib/commands/config/shared.d.ts +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/domain-config.d.ts +11 -0
- package/lib/config/domain-config.js +1 -0
- package/lib/config/schema.d.ts +7 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.d.ts +4 -0
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.d.ts +10 -3
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.d.ts +52 -14
- package/lib/constant/product.js +1 -1
- package/lib/constant/region.d.ts +15 -0
- package/lib/constant/region.js +1 -0
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.d.ts +2 -0
- package/lib/constant/url.js +1 -1
- package/lib/context.d.ts +2 -6
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.d.ts +2 -0
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.d.ts +3 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/access-key-redaction.d.ts +15 -0
- package/lib/utils/access-key-redaction.js +1 -0
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.d.ts +12 -0
- package/lib/utils/cli-version-check.js +1 -0
- package/lib/utils/cli-version-policy.d.ts +12 -0
- package/lib/utils/cli-version-policy.js +1 -0
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.d.ts +2 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +3 -1
- package/skills/lovrabet/SKILL.md +11 -12
- package/skills/lovrabet/guides/troubleshooting.md +12 -8
- package/skills/lovrabet/references/lovrabet-app.md +1 -1
- package/skills/lovrabet/references/lovrabet-auth.md +7 -25
- package/skills/lovrabet/references/lovrabet-config-commands.md +42 -5
- package/skills/lovrabet/references/lovrabet-config.md +25 -5
- package/skills/lovrabet.manifest.json +3 -3
package/skills/lovrabet/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lovrabet
|
|
3
3
|
displayName: Lovrabet 运行态 CLI
|
|
4
|
-
version: 2.2
|
|
4
|
+
version: 2.3.0-beta.2
|
|
5
5
|
description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、Custom SQL/Backend Function、Personal Backend Function、文件上传、面向票证类业务材料文字与结构化字段提取的 OCR、定时任务、Skill、知识库与运行态 app-config key 状态检查。触发词:云图、lovrabet、lovrabet-cli、业务角色、角色成员、页面权限、菜单权限、数据集权限、user-account bind、provider 外部账号绑定、钉钉 userId 绑定、service tree、业务服务树、api-doc、dataset、data filter、file upload、file query-url、ocr recognize、OCR 识别、票证文字提取、票证字段提取、发票识别、票据识别、证照识别、附件上传、personal-bff、schedule、定时任务、cron、kb、skill、sql exec、bff exec、app-config、accessKey、compress、jq。"
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
@@ -49,13 +49,12 @@ npm 包会自动安装同版本 Built-in Skill。若 `lovrabet doctor` 报告缺
|
|
|
49
49
|
|
|
50
50
|
### 认证命令选择
|
|
51
51
|
|
|
52
|
+
- **首次使用或切换节点**:执行 `lovrabet config init`,选择 `cn` / `id`;独立部署使用 `--domain-config <file>`。该命令固定维护全局连接配置,不需要 `--global`
|
|
52
53
|
- **只想更新 AK,尽量保留现有配置**:用户提供 AccessKey 后,使用 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
53
|
-
- **还没有 AK,需要先自助创建**:Agent 可先执行 `lovrabet auth login --non-interactive`
|
|
54
|
+
- **还没有 AK,需要先自助创建**:Agent 可先执行 `lovrabet auth login --non-interactive` 获取无打扰提示,把命令根据当前 `userDomain` 返回的创建地址发给用户;用户把 AccessKey 发给 Agent 后,再执行 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
54
55
|
- **想确认当前 AK 对应的是哪个用户**:使用 `lovrabet auth info`
|
|
55
56
|
- **凡是后续命令需要“当前登录用户身份信息”**:统一先执行 `lovrabet auth info` 获取,不要猜当前 AK 对应的人
|
|
56
|
-
-
|
|
57
|
-
- **不要**把 `auth init` 当作普通登录命令;它会清空当前作用域下已有配置,再只写回新的认证结果
|
|
58
|
-
- `auth login --env` 仅作为实现层兼容能力存在,默认不要在指导中主推;需要“清空后重建 + 写 env”时优先用 `auth init --env ...`
|
|
57
|
+
- **修改节点或 Domain**:使用 `lovrabet config init` 重建连接配置,或使用 `config set/delete` 精确修改;`auth login` 不负责节点配置
|
|
59
58
|
|
|
60
59
|
## 本地配置原则
|
|
61
60
|
|
|
@@ -228,7 +227,7 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
228
227
|
- 明确要强制刷新时:`lovrabet app list --no-cache`
|
|
229
228
|
- 仅排查未发布应用是否在远端目录中时:`lovrabet app list --include-unpublished`
|
|
230
229
|
|
|
231
|
-
`app list` 的应用条目中,应用支持语种以 `languages` 或 `i18nInfo.langs`
|
|
230
|
+
`app list` 的应用条目中,应用支持语种以 `languages` 或 `i18nInfo.langs` 为准。本地可用 `config set locale` 写入应用本地化偏好,这不是 CLI 语言,目前命令尚未消费;`data.items[].locale` 来自本地配置覆盖,可能为 `null`,不代表平台语种。
|
|
232
231
|
|
|
233
232
|
### 如何根据需求判断使用哪个应用
|
|
234
233
|
|
|
@@ -268,9 +267,8 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
268
267
|
|
|
269
268
|
| 服务 | 命令 | 说明 | 风险等级 | 认证 |
|
|
270
269
|
|------|------|------|----------|------|
|
|
271
|
-
| **auth** | `login` | 保存 accessKey |
|
|
272
|
-
| **auth** | `
|
|
273
|
-
| **auth** | `logout` | 清除本地 accessKey | — | 本地 |
|
|
270
|
+
| **auth** | `login` | 保存 accessKey | write | 本地 |
|
|
271
|
+
| **auth** | `logout` | 清除本地 accessKey | write | 本地 |
|
|
274
272
|
| **auth** | `info` | 查询当前 AK 对应的登录用户信息 | read | AK |
|
|
275
273
|
| **app** | `list` | 列出当前 AK 可运行态访问应用(默认仅已发布,远端优先,带缓存) | read | AK |
|
|
276
274
|
| **app** | `pull` | 刷新本地 app cache | write | AK |
|
|
@@ -278,6 +276,7 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
278
276
|
| **workspace** | `use` | 设置当前工作目录的默认应用上下文 | write | 本地 |
|
|
279
277
|
| **config** | `list` | 查看完整配置 | read | 本地 |
|
|
280
278
|
| **config** | `get` | 读取配置项 | read | 本地 |
|
|
279
|
+
| **config** | `init` | 初始化全局官方节点或独立部署 Domain | write | 本地 |
|
|
281
280
|
| **config** | `set` | 写入配置项 | write | 本地 |
|
|
282
281
|
| **config** | `delete` | 删除配置项 | write | 本地 |
|
|
283
282
|
| **role** | `list` / `detail` | 查询当前应用的业务角色 | read | AK |
|
|
@@ -366,7 +365,7 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
366
365
|
| 查看当前 AK 对应的登录用户 | `lovrabet auth info` |
|
|
367
366
|
| 任何依赖“当前登录用户身份”的场景先取身份 | `lovrabet auth info` |
|
|
368
367
|
| 绑定当前用户的钉钉 userId | `lovrabet user-account bind --provider dingtalk --account-id <id> --dry-run`,核对后以相同 provider 和账号 ID 移除 `--dry-run` 正式执行 |
|
|
369
|
-
|
|
|
368
|
+
| 首次配置或切换节点 | `lovrabet config init`;自动化使用 `--region cn\|id`,独立部署使用 `--domain-config <file>` |
|
|
370
369
|
| 登出 | `lovrabet auth logout` |
|
|
371
370
|
| 查看当前认证状态 | `lovrabet auth status` |
|
|
372
371
|
| 查看配置 | `lovrabet config list` |
|
|
@@ -394,7 +393,7 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
394
393
|
- `PRODUCT_CONFIG.npmPackageName`:npm 包名
|
|
395
394
|
- `PRODUCT_CONFIG.skillSource`:CLI Built-in Skill 发布源
|
|
396
395
|
- `PRODUCT_CONFIG.envPrefix`:环境变量前缀
|
|
397
|
-
- `PRODUCT_CONFIG.
|
|
396
|
+
- `PRODUCT_CONFIG.regionDomains`:当前开放的 `cn` / `id` 内置服务域名
|
|
398
397
|
- `PRODUCT_CONFIG.userCenterDisplayName` / `accessKeyCreatePath`:AK 创建提示
|
|
399
398
|
|
|
400
399
|
### 数据集与 Instant API
|
|
@@ -688,7 +687,7 @@ personal KB 使用文件型 create/update。更新前先 `kb detail` 查看正
|
|
|
688
687
|
| 等级 | 命令 | 保护 |
|
|
689
688
|
|------|------|------|
|
|
690
689
|
| read | api-doc list/detail, dataset list/detail/sdk-doc, data filter/getOne/aggregate, sql detail/exec, bff detail/exec, app-config get, personal-bff list/detail, file upload/query-url, ocr recognize, kb list/detail/search, schedule validate/list/detail, service validate/list/detail, skill install/create/validate/list/diagram-validate/diagram-show, cli-skill install, update, app list, config list/get, logs show | OCR 支持 dry-run,只展示服务端调用链路,不上传、不识别 |
|
|
691
|
-
| write | data create, data batchCreate, data update, user-account bind, personal-bff create/update/exec, kb create/update, service import/export/remove, skill push/diagram-push, workspace init/use, app import, config set/delete | 支持 dry-run 的命令先预览;账号绑定先核对当前身份、provider 和目标账号 ID |
|
|
690
|
+
| write | auth login/logout, data create, data batchCreate, data update, user-account bind, personal-bff create/update/exec, kb create/update, service import/export/remove, skill push/diagram-push, workspace init/use, app import, config init/set/delete | 支持 dry-run 的命令先预览;账号绑定先核对当前身份、provider 和目标账号 ID |
|
|
692
691
|
| high-risk-write | data delete, schedule create/run/delete | 需 `--yes` 或交互确认 |
|
|
693
692
|
|
|
694
693
|
## 详细参考
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
如果确认只是没登录:
|
|
14
14
|
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
15
|
+
- 先执行 `lovrabet auth login --non-interactive`,到命令根据当前 `userDomain` 返回的地址创建 AccessKey
|
|
16
|
+
- 想保留当前配置,使用 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
17
|
+
- 想切换节点或重建连接配置,执行 `lovrabet config init --region cn|id`,再按需执行 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
18
18
|
|
|
19
19
|
## 已登录,但业务命令仍失败
|
|
20
20
|
|
|
@@ -29,20 +29,24 @@
|
|
|
29
29
|
lovrabet app list --no-cache
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
如果你怀疑连接配置或认证信息不符合预期,比如:
|
|
33
33
|
|
|
34
34
|
- `defaultApp` 明显不对
|
|
35
35
|
- `env` 和预期不一致
|
|
36
36
|
- `auth info` 返回的用户不是你预期的账号
|
|
37
|
-
-
|
|
37
|
+
- `lovrabet doctor` 显示的 region 或 Domain 不符合预期
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
分别重设全局连接配置和 AccessKey:
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
lovrabet
|
|
42
|
+
lovrabet config init --region cn
|
|
43
|
+
lovrabet config set env daily --global
|
|
44
|
+
lovrabet auth login --access-key <ACCESS_KEY>
|
|
43
45
|
```
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
如果业务节点在印尼,把第一条改成 `lovrabet config init --region id`。企业独立部署使用 `lovrabet config init --domain-config <file>`。
|
|
48
|
+
|
|
49
|
+
`config init` 只替换全局 region/Domain 路由字段,`auth login` 只替换目标作用域的 AccessKey;两者都保留其他配置。当前目录配置仍会覆盖全局同名字段,最后执行 `lovrabet doctor` 核对最终生效值。
|
|
46
50
|
|
|
47
51
|
## `defaultApp` 已有,但仍然找不到 appcode
|
|
48
52
|
|
|
@@ -44,7 +44,7 @@ lovrabet app list --include-unpublished
|
|
|
44
44
|
- `data.items[].enableI18n`:应用是否开启国际化;旧缓存或远端缺失该字段时为 `null`
|
|
45
45
|
- `data.items[].languages`:应用支持的语种列表,来自平台真实 `i18nInfo.langs`
|
|
46
46
|
- `data.items[].i18nInfo`:平台返回的应用国际化配置
|
|
47
|
-
- `data.items[].locale
|
|
47
|
+
- `data.items[].locale`:本地应用本地化设置覆盖,可能为 `null`;不是 CLI 语言,也不代表平台支持语种
|
|
48
48
|
- `data.meta.env`:环境
|
|
49
49
|
- `data.meta.source`:来源
|
|
50
50
|
- `data.meta.fetchedAt`:最近同步时间
|
|
@@ -14,7 +14,7 @@ lovrabet auth login --global
|
|
|
14
14
|
**行为**:
|
|
15
15
|
- 默认写入全局配置 `~/.lovrabet.json`
|
|
16
16
|
- 兼容场景可用 `--project` 写入当前目录本地配置;常规使用不需要
|
|
17
|
-
- 交互模式下,不传 `--access-key` 会提示输入 AK
|
|
17
|
+
- 交互模式下,不传 `--access-key` 会提示输入 AK,并给出当前 `userDomain` 下的 `/user/ak` 自助创建地址
|
|
18
18
|
- `--non-interactive` 表示无打扰模式:不进入 stdin prompt;如果缺少 AccessKey,会立即提示创建链接和 `--access-key` 命令
|
|
19
19
|
- `auth login` 不支持 `--yes`;`--yes` 只用于高风险写操作的确认跳过
|
|
20
20
|
- 也可以直接显式传入:`lovrabet auth login --access-key <ACCESS_KEY>`
|
|
@@ -27,34 +27,16 @@ lovrabet auth login --global
|
|
|
27
27
|
|
|
28
28
|
**推荐顺序**:
|
|
29
29
|
|
|
30
|
-
1. Agent 先执行 `lovrabet auth login --non-interactive
|
|
30
|
+
1. Agent 先执行 `lovrabet auth login --non-interactive`,把命令根据当前 `userDomain` 返回的创建地址发给用户
|
|
31
31
|
2. 用户创建或复制 AccessKey,并提供给 Agent
|
|
32
32
|
3. Agent 执行 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
33
33
|
4. 再执行 `lovrabet auth info`,确认当前 AK 对应的是预期用户
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## 配置节点与认证的边界
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
**行为**:
|
|
43
|
-
- 会清空当前作用域下已有的整份 `.lovrabet.json` 配置内容,再仅写回新的认证初始化结果
|
|
44
|
-
- 默认写入全局配置 `~/.lovrabet.json`
|
|
45
|
-
- 兼容场景可用 `--project` 写入当前目录本地配置;常规使用不需要
|
|
46
|
-
- 支持 `--env`,会和新的 `accessKey` 一起写入
|
|
47
|
-
|
|
48
|
-
**风险提醒**:
|
|
49
|
-
- 这是破坏性操作
|
|
50
|
-
- 当前作用域下已有的 `defaultApp`、`format`、`pageSize`、域名覆盖等字段都会被清掉
|
|
51
|
-
- 如果只是想换 AK,不要用 `auth init`,优先用 `auth login`
|
|
52
|
-
|
|
53
|
-
## 什么时候用 login,什么时候用 init
|
|
54
|
-
|
|
55
|
-
- **保留现有配置,只更新认证**:`lovrabet auth login`
|
|
56
|
-
- **当前作用域配置已经混乱,想彻底重来**:`lovrabet auth init`
|
|
57
|
-
- **需要同时清空旧配置并重建 env**:`lovrabet auth init --access-key <ACCESS_KEY> --env daily`
|
|
37
|
+
- 首次使用先执行 `lovrabet config init` 配置官方节点或独立部署 Domain
|
|
38
|
+
- `auth login` 只保存 AccessKey,不接受 region 或 Domain 参数,也不会清除其他配置
|
|
39
|
+
- 后续切换节点继续使用 `config init --region <region>`;精确调整使用 `config set/delete`
|
|
58
40
|
|
|
59
41
|
## auth logout — 清除本地 accessKey
|
|
60
42
|
|
|
@@ -124,7 +106,7 @@ CLI flag (--access-key)
|
|
|
124
106
|
- `lovrabet app list` 可以直接查询当前 AK 在平台上的应用目录
|
|
125
107
|
- 结果会缓存在 `~/.lovrabet/cache/<env>/<ak-fingerprint>/my-apps.json`
|
|
126
108
|
|
|
127
|
-
`auth login`
|
|
109
|
+
`auth login` 本身不会主动把应用目录写进 `.lovrabet.json`。
|
|
128
110
|
|
|
129
111
|
## 参考
|
|
130
112
|
|
|
@@ -4,6 +4,45 @@
|
|
|
4
4
|
|
|
5
5
|
> **边界**:平台应用目录不在 `.lovrabet.json`。应用目录缓存位于 `~/.lovrabet/cache/...`,平时由 `app list` 驱动更新;`app pull` 只是手动刷新入口。
|
|
6
6
|
|
|
7
|
+
## config init — 初始化连接配置
|
|
8
|
+
|
|
9
|
+
固定写入全局配置 `~/.lovrabet.json`,不需要也不接受用 `--global` 改变目标。它只配置连接路由,不登录、不保存 AccessKey,也不建立当前目录的应用绑定。
|
|
10
|
+
|
|
11
|
+
交互模式用方向键选择 `Mainland China (cn)` 或 `Indonesia (id)`;当前不提供 `global`。非交互且未传 region/Domain 时默认 `cn`。自动化示例:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
lovrabet config init --region id
|
|
15
|
+
lovrabet config init --domain-config ./lovrabet-domains.json
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
官方节点与独立部署 Domain 互斥:不能同时传 `--region` 和任一 Domain 输入。
|
|
19
|
+
|
|
20
|
+
### 官方节点模式
|
|
21
|
+
|
|
22
|
+
- `--region` 只接受 `cn` / `id`
|
|
23
|
+
- 选择 `cn` 时省略冗余的 `region` 字段,以默认值保持向前兼容;选择 `id` 时写入 `"region": "id"`
|
|
24
|
+
- 切回官方节点会删除全局配置里的五个显式 Domain,以及兼容读取的旧 Domain 字段
|
|
25
|
+
|
|
26
|
+
### 独立部署模式
|
|
27
|
+
|
|
28
|
+
Domain 文件必须是 JSON 对象,只允许以下五个字段,且至少提供一个:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"userDomain": "https://user.customer.example.com",
|
|
33
|
+
"apiDomain": "https://api.customer.example.com",
|
|
34
|
+
"runtimeDomain": "https://runtime.customer.example.com",
|
|
35
|
+
"skillDomain": "https://skills.customer.example.com",
|
|
36
|
+
"kbDomain": "https://kb.customer.example.com"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain`、`--kb-domain` 逐项传入;显式 flag 覆盖文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
|
|
41
|
+
|
|
42
|
+
进入独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务;如果企业部署需要五类请求全部进入私有服务,应完整提供五个 Domain。
|
|
43
|
+
|
|
44
|
+
两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的同名字段仍会覆盖全局配置;初始化后用 `lovrabet doctor` 核对最终生效的 region 和五个 API Endpoint。
|
|
45
|
+
|
|
7
46
|
## config list — 查看完整配置
|
|
8
47
|
|
|
9
48
|
以 JSON 格式输出当前合并后的完整配置。
|
|
@@ -54,7 +93,6 @@ lovrabet config set <key> <value>
|
|
|
54
93
|
| Flag | 类型 | 默认 | 说明 |
|
|
55
94
|
|------|------|------|------|
|
|
56
95
|
| `--global` | boolean | false | 写入全局配置 `~/.lovrabet.json` |
|
|
57
|
-
| `--app <name>` | string | — | 写入指定应用 profile 内 |
|
|
58
96
|
|
|
59
97
|
**风险等级**:`write`
|
|
60
98
|
|
|
@@ -65,18 +103,17 @@ lovrabet config set <key> <value>
|
|
|
65
103
|
```bash
|
|
66
104
|
# 写入当前目录配置(默认;须在含 .lovrabet.json 的目录下执行)
|
|
67
105
|
lovrabet config set env daily
|
|
68
|
-
lovrabet config set
|
|
106
|
+
lovrabet config set format compress
|
|
69
107
|
|
|
70
108
|
# 写入全局配置(任意目录可用,需用户明确意图)
|
|
71
109
|
lovrabet config set env daily --global
|
|
72
110
|
|
|
73
|
-
# 写入指定应用配置
|
|
74
|
-
lovrabet config set riskLevel write --app order
|
|
75
|
-
|
|
76
111
|
# 配置 User AK(client-ak)
|
|
77
112
|
lovrabet config set accessKey <ACCESS_KEY>
|
|
78
113
|
```
|
|
79
114
|
|
|
115
|
+
> **安全边界**:`riskLevel` 是 CLI 保护字段,`config set riskLevel ...` 与 `config delete riskLevel` 均会被拒绝,避免 Agent 或脚本静默提高风险权限。只有用户可以直接编辑配置文件修改该字段。
|
|
116
|
+
|
|
80
117
|
## config delete — 删除配置项
|
|
81
118
|
|
|
82
119
|
从 `.lovrabet.json` 中移除一个配置项。
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
这意味着:
|
|
6
6
|
- `accessKey` / `env` / `format` / `riskLevel` / `defaultApp` 等仍然放在 `.lovrabet.json`
|
|
7
7
|
- 当前 AK 在平台上可见的应用列表,放在 `~/.lovrabet/cache/.../my-apps.json`
|
|
8
|
-
-
|
|
8
|
+
- 首次使用推荐执行 `lovrabet config init` 配置全局节点;未执行时仍按默认中国节点 `cn` 工作
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
只自动读取 `.lovrabet.json`;`.lovrabetrc` 和其他 CLI 的配置文件不参与运行态配置发现。需要导入外部配置时,显式执行 `lovrabet app import --file <path>`。
|
|
11
11
|
|
|
12
12
|
## 单应用模式
|
|
13
13
|
|
|
@@ -55,7 +55,23 @@
|
|
|
55
55
|
| `pageSize` | number | — | 默认分页大小 |
|
|
56
56
|
| `riskLevel` | string | `write` | 允许执行的最高风险等级 |
|
|
57
57
|
| `defaultApp` | string | — | 默认候选应用名称 |
|
|
58
|
-
| `
|
|
58
|
+
| `region` | string | `cn` | 当前开放的官方节点:`cn` / `id`;默认 `cn` 可省略 |
|
|
59
|
+
| `userDomain` | string | 节点内置值 | User 服务 HTTPS origin 覆盖 |
|
|
60
|
+
| `apiDomain` | string | 节点内置值 | 平台 API HTTPS origin 覆盖 |
|
|
61
|
+
| `runtimeDomain` | string | 节点内置值 | 普通 Runtime HTTPS origin 覆盖 |
|
|
62
|
+
| `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
|
|
63
|
+
| `kbDomain` | string | 节点默认 | 知识库 HTTPS origin 覆盖 |
|
|
64
|
+
|
|
65
|
+
五个 Domain 各自独立覆盖同名服务地址。没有显式配置的字段按 `region` 和 `env` 使用内置值;`development` 与 `daily` 共用非生产地址。当前开放的官方节点如下:
|
|
66
|
+
|
|
67
|
+
| region | env | userDomain | apiDomain | runtimeDomain | skillDomain | kbDomain |
|
|
68
|
+
|--------|-----|------------|-----------|---------------|-------------|----------|
|
|
69
|
+
| `cn` | `production` | `https://user.lovrabet.com` | `https://api.lovrabet.com` | `https://runtime.lovrabet.com` | `https://skills.lovrabet.com` | `https://runtime.lovrabet.com` |
|
|
70
|
+
| `cn` | `development` / `daily` | `https://user-daily.lovrabet.com` | `https://daily-api.lovrabet.com` | `https://daily-runtime.lovrabet.com` | `https://skills-daily.lovrabet.com` | `https://daily-runtime.lovrabet.com` |
|
|
71
|
+
| `id` | `production` | `https://user.lovrabet.id` | `https://api.lovrabet.id` | `https://runtime.lovrabet.id` | `https://skills.lovrabet.id` | `https://runtime.lovrabet.id` |
|
|
72
|
+
| `id` | `development` / `daily` | `https://user-daily.lovrabet.id` | `https://daily-api.lovrabet.id` | `https://daily-runtime.lovrabet.id` | `https://skills-daily.lovrabet.id` | `https://daily-runtime.lovrabet.id` |
|
|
73
|
+
|
|
74
|
+
`config init` 的完整模式切换、独立部署 JSON 和校验规则见 [配置管理](lovrabet-config-commands.md#config-init--初始化连接配置)。
|
|
59
75
|
|
|
60
76
|
## 解析优先级
|
|
61
77
|
|
|
@@ -96,12 +112,16 @@ CLI flag (--appcode, --env, --format, --app ...)
|
|
|
96
112
|
|
|
97
113
|
| 作用域 | 查找目录 | 文件名优先级 |
|
|
98
114
|
|--------|---------|------------|
|
|
99
|
-
| 当前目录 | `process.cwd()` | `.lovrabet.json`
|
|
100
|
-
| 全局级 | `~` |
|
|
115
|
+
| 当前目录 | `process.cwd()` | 仅 `.lovrabet.json` |
|
|
116
|
+
| 全局级 | `~` | 仅 `.lovrabet.json` |
|
|
101
117
|
|
|
102
118
|
合并策略:
|
|
103
119
|
- 标量字段:当前目录配置覆盖全局级
|
|
104
120
|
- `defaultApp`:当前目录显式声明 > 全局 `defaultApp`
|
|
121
|
+
- `apps`:当前目录显式声明时整体覆盖全局 `apps`;当前目录未声明时使用全局 `apps`
|
|
122
|
+
- `inherit` 不是受支持的配置项;旧字段会被忽略,可用 `lovrabet config delete inherit` 清理
|
|
123
|
+
|
|
124
|
+
因此,`lovrabet config init` 虽然固定更新全局连接配置,当前目录文件中的 `region` 或 Domain 仍具有更高优先级。初始化后可执行 `lovrabet doctor` 查看最终生效值。
|
|
105
125
|
|
|
106
126
|
## 示例
|
|
107
127
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"name": "lovrabet",
|
|
4
4
|
"packageName": "@lovrabet/lovrabet-cli",
|
|
5
|
-
"packageVersion": "2.2
|
|
6
|
-
"skillVersion": "2.2
|
|
5
|
+
"packageVersion": "2.3.0-beta.2",
|
|
6
|
+
"skillVersion": "2.3.0-beta.2",
|
|
7
7
|
"files": [
|
|
8
8
|
"SKILL.md",
|
|
9
9
|
"guides/app-resolution.md",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"references/lovrabet-user-account.md",
|
|
38
38
|
"references/lovrabet-workspace.md"
|
|
39
39
|
],
|
|
40
|
-
"digest": "
|
|
40
|
+
"digest": "5c22be545ab5d6315e8b966eb4f49e90f0c87e0d05c63de9b57e90fbbdb4fb79"
|
|
41
41
|
}
|