Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
3aedb7b
chore: scaffold pnpm workspace
clark-fc Aug 15, 2026
fba98bf
feat: plugin package skeleton with validated Config
clark-fc Aug 15, 2026
bbe96d3
feat: endpoint builder and API types
clark-fc Aug 15, 2026
cdc1f10
feat: KbClient with per-call auth and error translation
clark-fc Aug 15, 2026
95708cc
feat: SSE parser and buffered chat consumption
clark-fc Aug 15, 2026
5800222
feat: service discovery with scene merge and internalized pagination
clark-fc Aug 15, 2026
f2a3775
feat: kb_service_list, kb_search, kb_chat tool factory
clark-fc Aug 15, 2026
b4129c6
feat: plugin apply wiring with credential-backed client and skill reg…
clark-fc Aug 15, 2026
a6ee267
feat: installable dsh bundle package
clark-fc Aug 15, 2026
acccca9
docs: package and repository READMEs
clark-fc Aug 15, 2026
a9ac7c0
docs: record link-install dev workaround for profile integration
clark-fc Aug 15, 2026
188090a
docs: widen error-hint contract note to all non-auth HTTP failures
clark-fc Aug 15, 2026
7323365
docs: migrate design spec and implementation plan into this repo
clark-fc Aug 15, 2026
50b59f8
refactor(bundle): 重命名分发包为 bailian-kb-dsh
clark-fc Aug 15, 2026
589e3a4
chore(deps): 更新 TypeScript 类型检查脚本及依赖锁定文件
clark-fc Aug 15, 2026
8a09881
refactor(tool-bailian-kb): 重构默认服务配置管理及设置页同步逻辑
clark-fc Aug 17, 2026
cda1e32
refactor(tool-bailian-kb): 移除 kb_service_list 工具,统一服务发现方式
clark-fc Aug 17, 2026
dbf83c3
refactor(tool-bailian-kb): 合并 bundle 功能到插件包并简化结构
clark-fc Aug 17, 2026
9000a5e
refactor(package): 重命名包名为 @ali/bailian-kb-dsh
clark-fc Aug 17, 2026
4b3ea28
chore(deps): 更新依赖版本为rc.6预发布版本
clark-fc Aug 17, 2026
328739b
chore(deps): 更新依赖版本并切换部分包的发布渠道
clark-fc Aug 17, 2026
f0427be
chore(tool-bailian-kb): 更新版本号至0.1.1
clark-fc Aug 17, 2026
6cedca2
refactor(config): 修改插件ID以符合命名规范
clark-fc Aug 17, 2026
0ef7c82
fix(settings): 优化 bailian-kb 设置路由的配置管理逻辑
clark-fc Aug 17, 2026
f36e044
feat(shellEnv): 注册并导出 Bailian 工作空间 ID 环境变量
clark-fc Aug 17, 2026
efcb1d9
chore(tool-bailian-kb): 更新版本号至0.1.4
clark-fc Aug 17, 2026
30c2be6
feat(tool-bailian-kb): 统一设定 kb_search 与 kb_chat 的 agent_id 为必填参数
clark-fc Aug 17, 2026
cd95521
docs(tool-bailian-kb): 完善阿里云百炼知识库管理文档与命令参考
clark-fc Aug 17, 2026
0d8d354
chore(package): 更新版本号至0.1.6
clark-fc Aug 17, 2026
e1793e1
refactor(cli): 替换所有 kscli 命令为 bl CLI 命令
clark-fc Aug 20, 2026
8714f61
feat(tool-bailian-kb): 改用自实现的控制台登录协议获取凭据
clark-fc Aug 20, 2026
70dbc21
feat(bailian): 增加高级配置区和相关交互优化
clark-fc Aug 21, 2026
5f44cb4
refactor(tool-bailian-kb): 重命名管理技能及更新相关路径和描述
clark-fc Aug 21, 2026
90dd038
feat(tool-bailian-kb): 引入服务缓存支持检索服务动态管理
clark-fc Aug 23, 2026
b11adcc
feat(tool-bailian-kb): 增强服务缓存机制及默认服务选择功能
clark-fc Aug 23, 2026
9112a88
Add 'packages/bailian-kb-dsh/' from commit 'b11adcc6fe4d034a4f809b2d5…
clark-fc Aug 24, 2026
d24104f
feat(kb-dsh): 接入仓库工程约定并改名为公开包 bailian-kb-dsh
clark-fc Aug 24, 2026
a393bdc
refactor(kb-dsh): 删除已过期的 reference/*.md,参数详情交还 --help
clark-fc Aug 24, 2026
7bc1c49
feat(release): 给 publish.yml 加 bailian-kb-dsh 通道
clark-fc Aug 24, 2026
a1023ce
chore(kb-dsh): 精简 src 若干注释
clark-fc Aug 24, 2026
eb8b089
docs(bailian-kb-dsh): 优化 README 文档及技能说明的表述内容
clark-fc Aug 24, 2026
3f21f55
docs(structure): 更新项目目录结构说明
clark-fc Aug 24, 2026
491858b
docs(readme): 更新 Bailian KB dsh 插件的文档和添加运行时说明
clark-fc Aug 24, 2026
a28d95a
fix(bailian-kb-dsh): 修正工具数量和agent_id要求描述错误
clark-fc Aug 24, 2026
e023af5
docs(kb-dsh): 优化知识服务清单注入与错误处理提示
clark-fc Aug 24, 2026
adb1ced
chore(bailian-kb-dsh): 更新版本号至0.1.19
clark-fc Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 50 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
options:
- bailian-cli
- knowledge-studio-cli
- bailian-kb-dsh
mode:
description: "Publish mode"
required: true
Expand All @@ -18,7 +19,7 @@ on:
- channel
- stable
channel:
description: "Required when mode=channel. npm dist-tag only (lowercase, digits, dashes), e.g. mcp / plugin / sync-release. bailian-cli binary CDN always overwrites sync-release.json; knowledge-studio-cli is npm-only."
description: "Required when mode=channel. npm dist-tag only (lowercase, digits, dashes), e.g. mcp / plugin / sync-release. bailian-cli binary CDN always overwrites sync-release.json; knowledge-studio-cli and bailian-kb-dsh are npm-only."
required: false
type: string

Expand All @@ -28,7 +29,7 @@ concurrency:

jobs:
publish-stable:
if: inputs.mode == 'stable'
if: inputs.mode == 'stable' && inputs.package != 'bailian-kb-dsh'
name: publish stable (${{ inputs.package }}) to npm + binary + tag
runs-on: ubuntu-latest
environment: production # Required Reviewers gate
Expand Down Expand Up @@ -83,7 +84,7 @@ jobs:
run: node tools/release/publish-stable.mjs ${{ inputs.package == 'knowledge-studio-cli' && '--knowledge' || '' }}

publish-channel:
if: inputs.mode == 'channel'
if: inputs.mode == 'channel' && inputs.package != 'bailian-kb-dsh'
name: publish channel (${{ inputs.package }}) to npm + binary
runs-on: ubuntu-latest
permissions:
Expand Down Expand Up @@ -138,3 +139,49 @@ jobs:
BAILIAN_RELEASE_PREFIX: ${{ secrets.BAILIAN_RELEASE_PREFIX }}
BAILIAN_STATIC_PREFIX: ${{ secrets.BAILIAN_STATIC_PREFIX }}
run: node tools/release/publish-channel.mjs ${{ inputs.package == 'knowledge-studio-cli' && '--knowledge' || '' }} --channel "${{ inputs.channel }}"

# bailian-kb-dsh is the dsh plugin (downstream host adapter): independent version,
# tsc + tsdown build, npm-only. It shares this workflow's entry UI and setup steps
# but NOT publish-stable.mjs / publish-channel.mjs — those broadcast one version
# across the locked bl package set and produce binary artifacts, neither of which
# applies here. See docs/agents/dsh-plugin.md.
publish-kb-dsh:
if: inputs.package == 'bailian-kb-dsh'
name: publish ${{ inputs.mode }} (bailian-kb-dsh) to npm
runs-on: ubuntu-latest
# stable goes through the Required Reviewers gate, same as the bl stable job;
# channel stays ungated so dist-tag drops need no approval.
environment: ${{ inputs.mode == 'stable' && 'production' || '' }}
permissions:
contents: write # push the bailian-kb-dsh-v<version> tag (stable only)
id-token: write # OIDC for npm Trusted Publishing + provenance
steps:
- name: Require channel input
if: ${{ inputs.mode == 'channel' && inputs.channel == '' }}
run: |
echo "::error::mode=channel requires the workflow input \"channel\" (npm dist-tag, e.g. mcp / plugin). Leave mode=stable if you do not need a dist-tag."
exit 1

- uses: actions/checkout@v6

- uses: pnpm/action-setup@v6

- uses: actions/setup-node@v6
with:
node-version: "24"
cache: pnpm
registry-url: "https://registry.npmjs.org/"

- name: Install gitleaks
run: |
set -euo pipefail
GITLEAKS_VERSION=8.21.2
curl -sSfL \
"https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz" \
| sudo tar -xz -C /usr/local/bin gitleaks
gitleaks version

- run: pnpm install --frozen-lockfile

- name: publish-kb-dsh
run: node tools/release/publish-kb-dsh.mjs ${{ inputs.mode == 'channel' && format('--channel "{0}"', inputs.channel) || '' }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ dist-bin
dist-ssr
tools/generated
.node-version
*.tsbuildinfo

*.local

Expand Down
43 changes: 24 additions & 19 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ monorepo 现在按"纯逻辑 → 运行时框架 → 命令库 → 产品入口"
- `packages/commands` — `bailian-cli-commands`,可复用命令实现库,只导出 command,不决定产品路径
- `packages/cli` — `bailian-cli`,完整 `bl` 产品入口;`src/commands.ts` 组装 `bl` 暴露的命令路径
- `packages/kscli` — `knowledge-studio-cli`,Knowledge Studio 专用入口;`src/main.ts` 复用 commands 并重映射为 `kscli` 路径
- `packages/bailian-kb-dsh` — `bailian-kb-dsh`,**下游宿主适配层**(依赖方向朝外):百炼知识库的 DeepSeek Harness (dsh) 插件,消费 `bl` CLI 与知识库 API,不在上面这条分层链上;版本、构建、发布都独立,见 [docs/agents/dsh-plugin.md](docs/agents/dsh-plugin.md)

### 关键文件

Expand Down Expand Up @@ -56,25 +57,26 @@ Skill / 命令手册随 `skills/bailian-*/` 经 `bl skill init` 安装(装齐

按当前任务从下表挑一条进入对应文档:

| 场景 | 何时进入 | 详见 |
| ----------------- | ----------------------------------------------- | ---------------------------------------------------------------------------- |
| 命令增删改 | 增加 / 删除 / 重命名 `bl xxx` 或入口命令路径 | [docs/agents/command-add-remove.md](docs/agents/command-add-remove.md) |
| E2E 测试维护 | 新增/改命令或 e2e 用例、补 help/缺参/dry-run | [docs/agents/cli-e2e-tests.md](docs/agents/cli-e2e-tests.md) |
| 批量压测 | 改/跑多能力并发压测、`test:stress`、fixtures | [docs/agents/stress-batch-tests.md](docs/agents/stress-batch-tests.md) |
| 选项变更 | 给已有命令加 `--flag` 或改默认值 | [docs/agents/command-flag-change.md](docs/agents/command-flag-change.md) |
| 模型上下架 | 增加新模型 / 改默认模型 / 废弃旧模型 | [docs/agents/model-add-remove.md](docs/agents/model-add-remove.md) |
| Skill 文案 / 路由 | 改 SKILL 路由、安装约定、hand-off、hub/领域边界 | [docs/agents/skill-change.md](docs/agents/skill-change.md) |
| 错误文案变更 | 改 `BailianError` 的 message 或 hint | [docs/agents/error-hint-change.md](docs/agents/error-hint-change.md) |
| URL / 渠道变更 | 控制台域名 / 文档站 / 追踪参数 | [docs/agents/url-change.md](docs/agents/url-change.md) |
| 埋点变更 | 改 AEM 命令事件、后端渠道 header、User-Agent | [docs/agents/telemetry-change.md](docs/agents/telemetry-change.md) |
| 鉴权扩展 | 加 OAuth / SSO / 换 token 来源 | [docs/agents/auth-change.md](docs/agents/auth-change.md) |
| 配置项扩展 | 新 env var 或 `~/.bailian/config.json` 字段 | [docs/agents/config-add.md](docs/agents/config-add.md) |
| Profile / 激活 | 改命名 Profile、预设或 `active_config` | [docs/agents/config-profile-change.md](docs/agents/config-profile-change.md) |
| 安装文档 | 改安装、鉴权、验证流程或线上 install 页面 | [docs/agents/install-doc-change.md](docs/agents/install-doc-change.md) |
| 发布 | channel / stable 发布到 npm(CI 驱动) | [docs/agents/publish.md](docs/agents/publish.md) |
| Change Log | 发版说明 / 历史版本说明 | [docs/agents/changelog-write.md](docs/agents/changelog-write.md) |
| 工具链调整 | lint 规则 / 构建配置 / 依赖升级 | [docs/agents/lint-toolchain.md](docs/agents/lint-toolchain.md) |
| Command Pack | 扩展包 / 白名单 / plugin 管理命令 | [docs/agents/command-pack.md](docs/agents/command-pack.md) |
| 场景 | 何时进入 | 详见 |
| ----------------- | ------------------------------------------------ | ---------------------------------------------------------------------------- |
| 命令增删改 | 增加 / 删除 / 重命名 `bl xxx` 或入口命令路径 | [docs/agents/command-add-remove.md](docs/agents/command-add-remove.md) |
| E2E 测试维护 | 新增/改命令或 e2e 用例、补 help/缺参/dry-run | [docs/agents/cli-e2e-tests.md](docs/agents/cli-e2e-tests.md) |
| 批量压测 | 改/跑多能力并发压测、`test:stress`、fixtures | [docs/agents/stress-batch-tests.md](docs/agents/stress-batch-tests.md) |
| 选项变更 | 给已有命令加 `--flag` 或改默认值 | [docs/agents/command-flag-change.md](docs/agents/command-flag-change.md) |
| 模型上下架 | 增加新模型 / 改默认模型 / 废弃旧模型 | [docs/agents/model-add-remove.md](docs/agents/model-add-remove.md) |
| Skill 文案 / 路由 | 改 SKILL 路由、安装约定、hand-off、hub/领域边界 | [docs/agents/skill-change.md](docs/agents/skill-change.md) |
| 错误文案变更 | 改 `BailianError` 的 message 或 hint | [docs/agents/error-hint-change.md](docs/agents/error-hint-change.md) |
| URL / 渠道变更 | 控制台域名 / 文档站 / 追踪参数 | [docs/agents/url-change.md](docs/agents/url-change.md) |
| 埋点变更 | 改 AEM 命令事件、后端渠道 header、User-Agent | [docs/agents/telemetry-change.md](docs/agents/telemetry-change.md) |
| 鉴权扩展 | 加 OAuth / SSO / 换 token 来源 | [docs/agents/auth-change.md](docs/agents/auth-change.md) |
| 配置项扩展 | 新 env var 或 `~/.bailian/config.json` 字段 | [docs/agents/config-add.md](docs/agents/config-add.md) |
| Profile / 激活 | 改命名 Profile、预设或 `active_config` | [docs/agents/config-profile-change.md](docs/agents/config-profile-change.md) |
| 安装文档 | 改安装、鉴权、验证流程或线上 install 页面 | [docs/agents/install-doc-change.md](docs/agents/install-doc-change.md) |
| 发布 | channel / stable 发布到 npm(CI 驱动) | [docs/agents/publish.md](docs/agents/publish.md) |
| Change Log | 发版说明 / 历史版本说明 | [docs/agents/changelog-write.md](docs/agents/changelog-write.md) |
| 工具链调整 | lint 规则 / 构建配置 / 依赖升级 | [docs/agents/lint-toolchain.md](docs/agents/lint-toolchain.md) |
| Command Pack | 扩展包 / 白名单 / plugin 管理命令 | [docs/agents/command-pack.md](docs/agents/command-pack.md) |
| dsh 插件 | 改 `packages/bailian-kb-dsh`、dsh 依赖、插件发布 | [docs/agents/dsh-plugin.md](docs/agents/dsh-plugin.md) |

如果当前任务无法对应任何场景,先按经验完成,然后**回来评估这是不是一类新场景** —— 是就新增 `docs/agents/<scenario>.md`,把清单沉淀下来。

Expand All @@ -84,12 +86,15 @@ Skill / 命令手册随 `skills/bailian-*/` 经 `bl skill init` 安装(装齐

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

**例外**: `packages/bailian-kb-dsh` 不参与这个锁步(独立 `0.1.x`,跟随 dsh rc 节奏),也不在 release 白名单里;它走 `publish.yml` 里 `package=bailian-kb-dsh` 的独立 job(`tools/release/publish-kb-dsh.mjs`)。

### 2. 分层边界

- `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),触碰相关代码时顺手收敛
- `runtime` 是通用 CLI 框架:可以处理 TTY、help、错误输出、middleware,但不写具体业务命令逻辑
- `commands` 是命令实现库:不决定产品路径;不在 `usageArgs` / `exampleArgs` / hint 里硬编码产品 bin 前缀
- `cli` / `kscli` 是产品层:负责命令路径 map、产品 identity、README、技能 reference、发版入口
- `bailian-kb-dsh` 在这条链之外:它是别的宿主(dsh)里的插件,只允许依赖 `core`(且当前刻意零依赖),反过来 `core` / `runtime` / `commands` / 产品层**永远不许**依赖它
- URL 集中在 `packages/runtime/src/urls.ts`(用户面控制台)和 `packages/core/src/config/schema.ts` / client 层(API)

### 3. 错误处理边界:CLI 不翻译服务端错误
Expand Down
16 changes: 11 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,17 @@ Developer guide for `bailian-cli` — the official CLI for Aliyun Model Studio (
```
bailian-cli/
├── packages/
│ ├── cli/ # `bailian-cli` — CLI entry, commands, UI
│ └── core/ # `bailian-cli-core` — auth, HTTP, types
├── docs/agents/ # Scenario-based maintenance guides
├── tools/ # Release automation & reference generation
├── AGENTS.md # Contract for AI agents
│ ├── core/ # `bailian-cli-core` — auth, config, HTTP client, errors, types
│ ├── runtime/ # `bailian-cli-runtime` — CLI framework: parsing, help, middleware, output
│ ├── commands/ # `bailian-cli-commands` — reusable command implementations
│ ├── cli/ # `bailian-cli` — the full `bl` product entry
│ ├── kscli/ # `knowledge-studio-cli` — `kscli` entry, reuses commands/
│ ├── e2e/ # Shared e2e harness utilities (private)
│ └── bailian-kb-dsh/ # `bailian-kb-dsh` — DeepSeek Harness plugin (independent version & release)
├── skills/ # Agent skills installed by `bl skill init`
├── docs/agents/ # Scenario-based maintenance guides
├── tools/ # Release automation & reference generation
├── AGENTS.md # Contract for AI agents
└── README.md
```

Expand Down
16 changes: 11 additions & 5 deletions CONTRIBUTING.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,17 @@
```
bailian-cli/
├── packages/
│ ├── cli/ # `bailian-cli` —— CLI 入口、命令、UI
│ └── core/ # `bailian-cli-core` —— 鉴权、HTTP、类型
├── docs/agents/ # 场景化维护文档
├── tools/ # 发版自动化与命令手册生成
├── AGENTS.md # AI agent 维护契约
│ ├── core/ # `bailian-cli-core` —— 鉴权、配置、HTTP client、错误、类型
│ ├── runtime/ # `bailian-cli-runtime` —— CLI 运行时:参数解析、help、middleware、输出
│ ├── commands/ # `bailian-cli-commands` —— 可复用命令实现库
│ ├── cli/ # `bailian-cli` —— 完整 `bl` 产品入口
│ ├── kscli/ # `knowledge-studio-cli` —— `kscli` 入口,复用 commands/
│ ├── e2e/ # e2e 共享工具(不发布)
│ └── bailian-kb-dsh/ # `bailian-kb-dsh` —— DeepSeek Harness 插件(版本与发布独立)
├── skills/ # `bl skill init` 安装的 Agent skill
├── docs/agents/ # 场景化维护文档
├── tools/ # 发版自动化与命令手册生成
├── AGENTS.md # AI agent 维护契约
└── README.md
```

Expand Down
Loading