Skip to content

Commit 749549a

Browse files
committed
docs: align agent and skill docs with kscli split
- replace stale rag/package references with kscli/knowledge-studio-cli - update release docs for core/runtime/commands/cli plus kscli publishing - refresh skill setup notes and generated reference output defaults
1 parent 7ce018c commit 749549a

11 files changed

Lines changed: 92 additions & 93 deletions

File tree

AGENTS.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ monorepo 现在按"纯逻辑 → 运行时框架 → 命令库 → 产品入口"
1010
- `packages/runtime``bailian-cli-runtime`,通用 CLI 运行时:`createCli`、参数解析、registry/help、middleware、error handler、输出、pipeline
1111
- `packages/commands``bailian-cli-commands`,可复用命令实现库,只导出 command,不决定产品路径
1212
- `packages/cli``bailian-cli`,完整 `bl` 产品入口;`src/commands.ts` 组装 `bl` 暴露的命令路径
13-
- `packages/rag``bailian-cli-rag`,知识库向入口;`src/main.ts` 复用 commands 并重映射为 `rag` 路径
13+
- `packages/kscli``knowledge-studio-cli`,Knowledge Studio 专用入口;`src/main.ts` 复用 commands 并重映射为 `kscli` 路径
1414

1515
### 关键文件
1616

1717
```
1818
packages/cli/src/main.ts # bl 入口,注入 binName/version/clientName/npmPackage
1919
packages/cli/src/commands.ts # bl 产品命令 map,tools/generate-reference.ts 也读它
20-
packages/rag/src/main.ts # rag 入口和命令 map
20+
packages/kscli/src/main.ts # kscli 入口和命令 map
2121
2222
packages/commands/src/index.ts # re-export 单个命令实现
2323
packages/commands/src/commands/ # defineCommand({ auth, flags, usageArgs, exampleArgs, run })
@@ -38,9 +38,9 @@ Skill / 命令手册随 `skills/bailian-cli/` 经 `npx skills add modelstudioai/
3838
约定:
3939

4040
- 命令实现文件路径仍按能力放置:`packages/commands/src/commands/text/chat.ts`
41-
- 产品命令路径由入口 map 决定:同一个实现可暴露为 `bl knowledge retrieve``rag retrieve`
41+
- 产品命令路径由入口 map 决定:同一个实现可暴露为 `bl knowledge retrieve``kscli retrieve`
4242
- `defineCommand` 只写命令元数据与逻辑: `auth``flags``usageArgs``exampleArgs``validate``run`
43-
- `usageArgs` / `exampleArgs` 不写 `bl``rag` 前缀;runtime / reference 生成器按产品路径补前缀
43+
- `usageArgs` / `exampleArgs` 不写 `bl``kscli` 前缀;runtime / reference 生成器按产品路径补前缀
4444
- 不再使用 `catalog.ts` 作为登记处;新增/重命名命令必须同时看命令库导出和产品入口 map
4545

4646
非代码资产:
@@ -75,14 +75,14 @@ Skill / 命令手册随 `skills/bailian-cli/` 经 `npx skills add modelstudioai/
7575

7676
### 1. 发布包版本号同步
7777

78-
源码包的 `version` 当前保持一致: `packages/core``packages/runtime``packages/commands``packages/cli``packages/rag`。做版本 bump 时一动多动。release 工具当前强校验 / 发布范围以 `tools/release/lib/packages.mjs` 为准;把新包纳入发布前必须同步该清单和 [publish.md](docs/agents/publish.md)
78+
源码包的 `version` 当前保持一致: `packages/core``packages/runtime``packages/commands``packages/cli``packages/kscli`。做版本 bump 时一动多动。release 工具当前强校验 / 发布范围以 `tools/release/lib/packages.mjs` 为准;把新包纳入发布前必须同步该清单和 [publish.md](docs/agents/publish.md)
7979

8080
### 2. 分层边界
8181

82-
- `core` 是纯库:不依赖 `runtime` / `commands` / 产品入口;不调 `process.exit`;新增/改动时不硬编码 `bl` / `rag` 命令名、控制台 URL 或渠道追踪参数。当前遗留项见 [error-hint-change.md](docs/agents/error-hint-change.md)[url-change.md](docs/agents/url-change.md),触碰相关代码时顺手收敛
82+
- `core` 是纯库:不依赖 `runtime` / `commands` / 产品入口;不调 `process.exit`;新增/改动时不硬编码 `bl` / `kscli` 命令名、控制台 URL 或渠道追踪参数。当前遗留项见 [error-hint-change.md](docs/agents/error-hint-change.md)[url-change.md](docs/agents/url-change.md),触碰相关代码时顺手收敛
8383
- `runtime` 是通用 CLI 框架:可以处理 TTY、help、错误输出、middleware,但不写具体业务命令逻辑
8484
- `commands` 是命令实现库:不决定产品路径;不在 `usageArgs` / `exampleArgs` / hint 里硬编码产品 bin 前缀
85-
- `cli` / `rag` 是产品层:负责命令路径 map、产品 identity、README、技能 reference、发版入口
85+
- `cli` / `kscli` 是产品层:负责命令路径 map、产品 identity、README、技能 reference、发版入口
8686
- URL 集中在 `packages/runtime/src/urls.ts`(用户面控制台)和 `packages/core/src/config/schema.ts` / client 层(API)
8787

8888
### 3. 错误处理边界:CLI 不翻译服务端错误

docs/agents/auth-change.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ defineCommand({ auth }) → runtime/authStage → ctx.client → command.run(ctx
6262
- 新增 credential 类型 / source / scope 字段
6363
- [ ] `packages/core/src/auth/resolver.ts`:
6464
- 新增或调整 resolver,保持优先级注释清晰
65-
- 新增/调整 resolver hint 时保持产品无关,不要新增 `bl` / `rag` 硬编码;当前遗留的 `bl auth login` hint 如被触碰,迁到 runtime `enhanceHint`
65+
- 新增/调整 resolver hint 时保持产品无关,不要新增 `bl` / `kscli` 硬编码;当前遗留的 `bl auth login` hint 如被触碰,迁到 runtime `enhanceHint`
6666
- [ ] `packages/core/src/auth/store.ts`:
6767
- 如果新方式需要持久化,扩展 `AuthStore` / `AuthPersistPatch`
6868
- [ ] `packages/core/src/config/schema.ts`:
@@ -113,7 +113,7 @@ defineCommand({ auth }) → runtime/authStage → ctx.client → command.run(ctx
113113

114114
```sh
115115
# 各种凭证组合
116-
unset DASHSCOPE_API_KEY DASHSCOPE_ACCESS_TOKEN
116+
unset DASHSCOPE_API_KEY ALIBABA_CLOUD_ACCESS_KEY_ID ALIBABA_CLOUD_ACCESS_KEY_SECRET
117117
HOME=/tmp/empty node packages/cli/src/main.ts auth status
118118

119119
# flag 注入(凭证域 flag 只在对应业务命令可见,auth status 不接收)
@@ -140,4 +140,4 @@ node packages/cli/src/main.ts usage stats --dry-run --output json
140140
-`auth login` 写成功但 `auth status` 不识别(两边走的 storage path 不一致)
141141
- ✗ token mask 显示完整 token,日志泄漏
142142
-`auth: "console"` 命令误用 `apiKey` 域,config 只有 API key 时会把 `sk-...` 发到网关
143-
- ✗ 新增 core resolver hint 时写死产品命令,导致 `rag` 等入口提示错误
143+
- ✗ 新增 core resolver hint 时写死产品命令,导致 `kscli` 等入口提示错误

docs/agents/branch-merge-review.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ git diff --name-only <base>...<head>
5050
- [ ] **`package.json` 没破坏发布元数据**:`bin` / `exports` / `files` / `inlinedDependencies` 字段任何删除或改名都要单独评估
5151
- [ ] **公共依赖没被悄悄升级**:catalog / 根 lockfile 改动要列出来
5252
- [ ] **`package.json` version 没倒退**:目标分支已经更高时(如 main 1.0.3 vs head 1.0.0-beta.1),手动对齐版本号,不要被 head 覆盖
53-
- [ ] **全局表没冲突**:`packages/cli/src/commands.ts` / `packages/rag/src/main.ts` command map、`defineCommand({ auth })``GLOBAL_FLAGS` / `MODEL_AUTH_FLAGS` / `CONSOLE_AUTH_FLAGS``ExitCode` 新增项不和现有项冲突
53+
- [ ] **全局表没冲突**:`packages/cli/src/commands.ts` / `packages/kscli/src/main.ts` command map、`defineCommand({ auth })``GLOBAL_FLAGS` / `MODEL_AUTH_FLAGS` / `CONSOLE_AUTH_FLAGS` / `OPENAPI_AUTH_FLAGS``ExitCode` 新增项不和现有项冲突
5454

5555
## 清单 B:用户透出(用户可见的新东西必看)
5656

@@ -94,11 +94,11 @@ git diff --name-only <base>...<head>
9494

9595
## 常见漏点(基于历史踩坑)
9696

97-
| 漏点 | 后果 |
98-
| -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
99-
| `pnpm-workspace.yaml``packages/*` 收窄成显式列表 | 合并后目标分支的新子包不再被 workspace 识别,`pnpm install` 看似正常但子包失联 |
100-
| 源分支 version 比目标分支低,直接 merge 覆盖 | npm 上版本号回退,latest tag 错乱 |
101-
| `packages/cli/src/commands.ts` 注册新命令但忘了 [README](README.md) / [README.zh](README.zh.md) | 用户完全感知不到新功能 |
102-
| 共享 util 重构(抽公共函数)只改了一处调用方 | 其它调用方静默走旧分支,行为分裂 |
103-
| 命令 `auth` 域设错(如 Console Gateway 用了 `apiKey`| 凭证域 flag/help/credential 注入都错,运行期才暴露 |
104-
| `packages/cli/src/commands.ts` / `packages/rag/src/main.ts` 这类 map 两边都加项,解冲突时被合掉一侧 | 某个新命令注册丢失,编译能过、回归不易察觉 |
97+
| 漏点 | 后果 |
98+
| ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
99+
| `pnpm-workspace.yaml``packages/*` 收窄成显式列表 | 合并后目标分支的新子包不再被 workspace 识别,`pnpm install` 看似正常但子包失联 |
100+
| 源分支 version 比目标分支低,直接 merge 覆盖 | npm 上版本号回退,latest tag 错乱 |
101+
| `packages/cli/src/commands.ts` 注册新命令但忘了 [README](README.md) / [README.zh](README.zh.md) | 用户完全感知不到新功能 |
102+
| 共享 util 重构(抽公共函数)只改了一处调用方 | 其它调用方静默走旧分支,行为分裂 |
103+
| 命令 `auth` 域设错(如 Console Gateway 用了 `apiKey` | 凭证域 flag/help/credential 注入都错,运行期才暴露 |
104+
| `packages/cli/src/commands.ts` / `packages/kscli/src/main.ts` 这类 map 两边都加项,解冲突时被合掉一侧 | 某个新命令注册丢失,编译能过、回归不易察觉 |

docs/agents/command-add-remove.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- 增加新的 `bl xxx` 命令
66
- 删除已有命令
77
- 重命名命令(包括从单级 `bl x` 改成 `bl x y` 或反向)
8-
- 调整某个 shared command 在 `bl` / `rag` 等产品入口里的暴露路径
8+
- 调整某个 shared command 在 `bl` / `kscli` 等产品入口里的暴露路径
99

1010
## 命令实现与产品路径的关系
1111

@@ -17,7 +17,7 @@
1717
↓ packages/commands/src/index.ts export { default as knowledgeRetrieve }
1818
产品入口:
1919
packages/cli/src/commands.ts "knowledge retrieve": knowledgeRetrieve ↔ bl knowledge retrieve
20-
packages/rag/src/main.ts "retrieve": knowledgeRetrieve ↔ rag retrieve
20+
packages/kscli/src/main.ts "retrieve": knowledgeRetrieve ↔ kscli retrieve
2121
```
2222

2323
常见路径形态:
@@ -32,7 +32,7 @@
3232

3333
## CLI 命令注册架构(必读)
3434

35-
`packages/commands` 是命令库,只导出单个 command;不内置 path presets,不关心 `bl` / `rag`。每个产品入口传入自己的 command map,`runtime` 负责解析、help、鉴权、遥测、执行。
35+
`packages/commands` 是命令库,只导出单个 command;不内置 path presets,不关心 `bl` / `kscli`。每个产品入口传入自己的 command map,`runtime` 负责解析、help、鉴权、遥测、执行。
3636

3737
```
3838
packages/commands/src/commands/<...>.ts
@@ -42,7 +42,7 @@ packages/commands/src/index.ts
4242
export { default as xxxCommand } from "./commands/...ts"
4343
4444
┌──────────────────────────────┬──────────────────────────────┐
45-
│ packages/cli/src/commands.ts │ packages/rag/src/main.ts
45+
│ packages/cli/src/commands.ts │ packages/kscli/src/main.ts │
4646
│ { "text chat": textChat } │ { "retrieve": knowledge... } │
4747
└──────────────┬───────────────┴──────────────┬───────────────┘
4848
↓ ↓
@@ -51,10 +51,10 @@ packages/commands/src/index.ts
5151
tools/generate-reference.ts reads packages/cli/src/commands.ts
5252
```
5353

54-
- **`packages/commands/src/commands/<...>.ts`**:命令实现;`usageArgs` / `exampleArgs` 只写参数片段,不写 `bl` / `rag` 前缀
54+
- **`packages/commands/src/commands/<...>.ts`**:命令实现;`usageArgs` / `exampleArgs` 只写参数片段,不写 `bl` / `kscli` 前缀
5555
- **`packages/commands/src/index.ts`**:导出命令实现;新增命令必须在这里 re-export
5656
- **`packages/cli/src/commands.ts`**:`bl` 产品命令 map;新增/删除/重命名 `bl` 命令必须改这里
57-
- **`packages/rag/src/main.ts`**:`rag` 产品命令 map;只有该入口需要暴露/变更时才改
57+
- **`packages/kscli/src/main.ts`**:`kscli` 产品命令 map;只有该入口需要暴露/变更时才改
5858
- **`packages/runtime/src/registry.ts`**:通用 registry,从传入 map 建树;不要在这里登记业务命令
5959
- **`tools/generate-reference.ts`**:pre-commit / `pnpm run sync:skill-assets` 时读 `packages/cli/src/commands.ts`,写 `skills/bailian-cli/reference/index.md` + `<一级命令>.md`。该目录**纳入 git**,勿手改
6060

@@ -66,7 +66,7 @@ packages/commands/src/index.ts
6666

6767
- [ ] 新建/删除/移动对应的 `packages/commands/src/commands/<...>.ts`
6868
- [ ] `defineCommand` 字段使用当前 schema:
69-
- `auth: "apiKey" | "console" | "none"`
69+
- `auth: "apiKey" | "console" | "openapi" | "none"`
7070
- `flags`(camelCase key,由 runtime 渲染为 kebab-case)
7171
- `usageArgs`(不含 bin/path 前缀)
7272
- `exampleArgs`(不含 bin/path 前缀)
@@ -81,7 +81,7 @@ packages/commands/src/index.ts
8181

8282
- [ ] `packages/cli/src/commands.ts`:按需增删 `import``commands` map key
8383
- [ ] 新 map key 就是 `bl` 下的命令路径;重命名时全仓 grep 旧路径字符串
84-
- [ ] 如果 `rag` 入口也要暴露/移除该能力,同步 `packages/rag/src/main.ts`
84+
- [ ] 如果 `kscli` 入口也要暴露/移除该能力,同步 `packages/kscli/src/main.ts`
8585
- [ ] 不要在 `packages/runtime/src/registry.ts``create-cli.ts` 里写业务命令表
8686

8787
### C. 文档层
@@ -94,13 +94,13 @@ packages/commands/src/index.ts
9494

9595
- [ ][cli-e2e-tests.md](cli-e2e-tests.md) 新建或更新 `packages/cli/tests/e2e/<topic>.e2e.test.ts`
9696
- [ ] 删除命令时一并删对应 e2e / README 示例 / reference 生成结果
97-
- [ ] 如果 shared command 在不同入口路径下复用,至少确保 `bl` 入口 e2e 覆盖;`rag` 入口改动需补对应入口测试或手工 smoke
97+
- [ ] 如果 shared command 在不同入口路径下复用,至少确保 `bl` 入口 e2e 覆盖;`kscli` 入口改动需补对应入口测试或手工 smoke
9898

9999
### E. 重命名特殊处理
100100

101101
- [ ] 全仓 grep **旧命令名字符串**,确保以下位置全部更新:
102102
- `packages/cli/src/commands.ts` map key
103-
- `packages/rag/src/main.ts` map key(如适用)
103+
- `packages/kscli/src/main.ts` map key(如适用)
104104
- 用户可见 hint / README / tests
105105
- `skills/bailian-cli/reference/`(重建后检查并提交)
106106
- [ ] 检查 `usageArgs` / `exampleArgs` 没有硬编码旧的 `bl <path>` 前缀
@@ -114,17 +114,17 @@ node packages/cli/src/main.ts
114114
vp test packages/cli/tests/e2e/<topic>.e2e.test.ts
115115
```
116116

117-
如改了 `rag` 入口:
117+
如改了 `kscli` 入口:
118118

119119
```sh
120-
node packages/rag/src/main.ts <command> --help
120+
node packages/kscli/src/main.ts <command> --help
121121
```
122122

123123
## 常见漏点
124124

125125
- ✗ 只新增 `packages/commands/src/commands/...` 文件,忘了在 `packages/commands/src/index.ts` 导出
126126
- ✗ 只导出了命令实现,忘了在 `packages/cli/src/commands.ts` 暴露路径 → `bl --help` 看不到
127127
- ✗ 手改 `skills/bailian-cli/reference/*.md` → 下次 generate 被覆盖;应改 command metadata 后重新 generate 并提交
128-
- ✗ 在 `usageArgs` / `exampleArgs` 写死 `bl text chat``rag` 等入口复用时 help 错
128+
- ✗ 在 `usageArgs` / `exampleArgs` 写死 `bl text chat``kscli` 等入口复用时 help 错
129129
- ✗ Console Gateway 命令忘设 `auth: "console"` → console flags / credential 注入都不生效
130130
- ✗ 单 action 的子组是反模式,新增时优先拍平为两级

docs/agents/error-hint-change.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,17 @@ process.exit(err.exitCode)
6767
### 3. core 的 hint 必须不含 cli 关切
6868

6969
- ❌ 新增/改动时不写 `bl xxx` 命令名
70-
- ❌ 新增/改动时不写 `rag xxx` 等产品入口命令名
70+
- ❌ 新增/改动时不写 `kscli xxx` 等产品入口命令名
7171
- ❌ 新增/改动时不写控制台 URL 或 region
7272
- ❌ 新增/改动时不写渠道追踪参数(`source_channel=xxx`)
7373
- ✅ 只描述抽象做法(如 `"Set DASHSCOPE_API_KEY environment variable, or pass --api-key."`)
7474
- 当前遗留:`packages/core/src/auth/resolver.ts` 仍含 `bl auth login` hint;触碰鉴权错误时迁到 runtime `enhanceHint`
7575

7676
### 4. runtime / 产品层可以使用入口名 + URL
7777

78-
- `packages/runtime/src/error-handler.ts` 通过 `binName` 渲染 `bl` / `rag` 等入口名,不要硬编码
78+
- `packages/runtime/src/error-handler.ts` 通过 `binName` 渲染 `bl` / `kscli` 等入口名,不要硬编码
7979
- 产品入口 / README / E2E 可以写具体入口命令
80-
- shared command 实现不写 `bl` / `rag` 前缀;`usageArgs` / `exampleArgs` 只写参数片段
80+
- shared command 实现不写 `bl` / `kscli` 前缀;`usageArgs` / `exampleArgs` 只写参数片段
8181
- URL 必须从 `packages/runtime/src/urls.ts` import,不能硬编码
8282

8383
## 必查清单

docs/agents/lint-toolchain.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
- [ ] `package.json``engines.node` 与 README 的 Node.js 徽章一致
1616
- [ ] `pnpm-lock.yaml` 同步生成(运行 `pnpm install`)
17-
- [ ] 各源码包 `tsconfig.json`(根 + core + runtime + commands + cli + rag)的 target / module 设置一致
17+
- [ ] 各源码包 `tsconfig.json`(根 + core + runtime + commands + cli + kscli)的 target / module 设置一致
1818

1919
### B. lint / format 规则改动
2020

@@ -28,9 +28,9 @@
2828

2929
- [ ] `packages/*/vite.config.ts` 的 entry / dts / exports 设置符合包类型:
3030
- library 包(core/runtime/commands):导出 `dist/index.mjs` + dts + `@bailian-cli/source` dev export
31-
- binary 包(cli/rag):entry 指向 `src/main.ts`,有 shebang,`exports: true`
32-
- [ ] cli / rag 的 bundle 必须把 workspace 包(`bailian-cli-core` / `bailian-cli-runtime` / `bailian-cli-commands`)当 **external**(不内联),确认 dist 中仍是 package import
33-
- [ ] cli / rag 的 binary bundle 第一行必须有 `#!/usr/bin/env node` shebang
31+
- binary 包(cli/kscli):entry 指向 `src/main.ts`,有 shebang,`exports: true`
32+
- [ ] cli / kscli 的 bundle 必须把 workspace 包(`bailian-cli-core` / `bailian-cli-runtime` / `bailian-cli-commands`)当 **external**(不内联),确认 dist 中仍是 package import
33+
- [ ] cli / kscli 的 binary bundle 第一行必须有 `#!/usr/bin/env node` shebang
3434

3535
### D. 依赖升级
3636

@@ -63,6 +63,6 @@ node tools/release/check.mjs
6363

6464
- ✗ 升级 Node engines 但忘了 README 徽章
6565
- ✗ 改 lint 规则后没全仓 `--fix`,新人 PR 报红一片
66-
- ✗ 改 cli/rag 的 vite config 把 core/runtime/commands 不小心打成 inline,bundle 体积暴涨
66+
- ✗ 改 cli/kscli 的 vite config 把 core/runtime/commands 不小心打成 inline,bundle 体积暴涨
6767
- ✗ Oxlint 配置改了但 IDE 缓存还是旧的(IDE 可能要重启 ts server)
6868
- ✗ 升级依赖一并升 lockfile,改动量大但没拆 commit

0 commit comments

Comments
 (0)