Skip to content

Commit e3cdbe0

Browse files
committed
Merge remote-tracking branch 'origin/feat/memory' into feat/knowledge
2 parents 1de0c0d + ae0356d commit e3cdbe0

123 files changed

Lines changed: 10945 additions & 3114 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/publish.yml‎

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
- bailian-cli
1212
- knowledge-studio-cli
1313
- bailian-kb-dsh
14+
- bailian-memo-dsh
1415
mode:
1516
description: "Publish mode"
1617
required: true
@@ -19,7 +20,7 @@ on:
1920
- channel
2021
- stable
2122
channel:
22-
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."
23+
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 dsh plugins are npm-only."
2324
required: false
2425
type: string
2526

@@ -29,7 +30,7 @@ concurrency:
2930

3031
jobs:
3132
publish-stable:
32-
if: inputs.mode == 'stable' && inputs.package != 'bailian-kb-dsh'
33+
if: inputs.mode == 'stable' && inputs.package != 'bailian-kb-dsh' && inputs.package != 'bailian-memo-dsh'
3334
name: publish stable (${{ inputs.package }}) to npm + binary + tag
3435
runs-on: ubuntu-latest
3536
environment: production # Required Reviewers gate
@@ -59,13 +60,28 @@ jobs:
5960
- name: Ensure zip and tar (per-platform binary archives)
6061
run: sudo apt-get update && sudo apt-get install -y zip
6162

63+
# bun build --compile leaves an invalid darwin linker signature. rcodesign
64+
# re-signs those Mach-O files on the Linux runner (binary-codesign.mjs).
65+
- name: Install rcodesign (ad-hoc sign darwin binaries)
66+
run: |
67+
set -euo pipefail
68+
RCODESIGN_VERSION=0.29.0
69+
asset="apple-codesign-${RCODESIGN_VERSION}-x86_64-unknown-linux-musl.tar.gz"
70+
curl -fsSL -o "/tmp/${asset}" \
71+
"https://github.com/indygreg/apple-platform-rs/releases/download/apple-codesign/${RCODESIGN_VERSION}/${asset}"
72+
tar -xzf "/tmp/${asset}" -C /tmp
73+
sudo install -m 755 \
74+
"/tmp/apple-codesign-${RCODESIGN_VERSION}-x86_64-unknown-linux-musl/rcodesign" \
75+
/usr/local/bin/rcodesign
76+
rcodesign --version
77+
6278
- run: pnpm install --frozen-lockfile
6379

6480
# Binary compile uses `bun build --compile` CLI (not Bun.build API).
6581
# Keep this pin in sync with any local smoke tests of binary-compile.mjs.
6682
- uses: oven-sh/setup-bun@v2
6783
with:
68-
bun-version: "1.2.19"
84+
bun-version: "1.3.14"
6985

7086
- name: publish-stable
7187
env:
@@ -79,10 +95,12 @@ jobs:
7995
# Bucket / prefix / allowlists live in the FC function.
8096
FC_TRIGGER_URL: ${{ vars.FC_TRIGGER_URL }}
8197
FC_RELEASE_AUDIENCE: ${{ vars.FC_RELEASE_AUDIENCE }}
98+
# Script order: git tag, then binary GitHub Release + OSS, then npm.
99+
# OSS upload can fail on a network blip; npm must not succeed first.
82100
run: node tools/release/publish-stable.mjs ${{ inputs.package == 'knowledge-studio-cli' && '--knowledge' || '' }}
83101

84102
publish-channel:
85-
if: inputs.mode == 'channel' && inputs.package != 'bailian-kb-dsh'
103+
if: inputs.mode == 'channel' && inputs.package != 'bailian-kb-dsh' && inputs.package != 'bailian-memo-dsh'
86104
name: publish channel (${{ inputs.package }}) to npm + binary
87105
runs-on: ubuntu-latest
88106
permissions:
@@ -117,13 +135,28 @@ jobs:
117135
- name: Ensure zip and tar (per-platform binary archives)
118136
run: sudo apt-get update && sudo apt-get install -y zip
119137

138+
# bun build --compile leaves an invalid darwin linker signature. rcodesign
139+
# re-signs those Mach-O files on the Linux runner (binary-codesign.mjs).
140+
- name: Install rcodesign (ad-hoc sign darwin binaries)
141+
run: |
142+
set -euo pipefail
143+
RCODESIGN_VERSION=0.29.0
144+
asset="apple-codesign-${RCODESIGN_VERSION}-x86_64-unknown-linux-musl.tar.gz"
145+
curl -fsSL -o "/tmp/${asset}" \
146+
"https://github.com/indygreg/apple-platform-rs/releases/download/apple-codesign/${RCODESIGN_VERSION}/${asset}"
147+
tar -xzf "/tmp/${asset}" -C /tmp
148+
sudo install -m 755 \
149+
"/tmp/apple-codesign-${RCODESIGN_VERSION}-x86_64-unknown-linux-musl/rcodesign" \
150+
/usr/local/bin/rcodesign
151+
rcodesign --version
152+
120153
- run: pnpm install --frozen-lockfile
121154

122155
# Binary compile uses `bun build --compile` CLI (not Bun.build API).
123156
# Keep this pin in sync with any local smoke tests of binary-compile.mjs.
124157
- uses: oven-sh/setup-bun@v2
125158
with:
126-
bun-version: "1.2.19"
159+
bun-version: "1.3.14"
127160

128161
- name: publish-channel
129162
env:
@@ -132,22 +165,21 @@ jobs:
132165
# credentials in this repo (see publish-stable env notes).
133166
FC_TRIGGER_URL: ${{ vars.FC_TRIGGER_URL }}
134167
FC_RELEASE_AUDIENCE: ${{ vars.FC_RELEASE_AUDIENCE }}
168+
# Script order: binary GitHub Release + OSS, then npm.
169+
# OSS upload can fail on a network blip; npm must not succeed first.
135170
run: node tools/release/publish-channel.mjs ${{ inputs.package == 'knowledge-studio-cli' && '--knowledge' || '' }} --channel "${{ inputs.channel }}"
136171

137-
# bailian-kb-dsh is the dsh plugin (downstream host adapter): independent version,
138-
# tsc + tsdown build, npm-only. It shares this workflow's entry UI and setup steps
139-
# but NOT publish-stable.mjs / publish-channel.mjs — those broadcast one version
140-
# across the locked bl package set and produce binary artifacts, neither of which
141-
# applies here. See docs/agents/dsh-plugin.md.
142-
publish-kb-dsh:
143-
if: inputs.package == 'bailian-kb-dsh'
144-
name: publish ${{ inputs.mode }} (bailian-kb-dsh) to npm
172+
# Independent dsh plugins (downstream host adapters): own version, tsc + tsdown,
173+
# npm-only. Shared workflow entry; NOT publish-stable/channel.mjs. See docs/agents/dsh-plugin.md.
174+
publish-dsh-plugin:
175+
if: inputs.package == 'bailian-kb-dsh' || inputs.package == 'bailian-memo-dsh'
176+
name: publish ${{ inputs.mode }} (${{ inputs.package }}) to npm
145177
runs-on: ubuntu-latest
146178
# stable goes through the Required Reviewers gate, same as the bl stable job;
147179
# channel stays ungated so dist-tag drops need no approval.
148180
environment: ${{ inputs.mode == 'stable' && 'production' || '' }}
149181
permissions:
150-
contents: write # push the bailian-kb-dsh-v<version> tag (stable only)
182+
contents: write # push the <package>-v<version> tag (stable only)
151183
id-token: write # OIDC for npm Trusted Publishing + provenance
152184
steps:
153185
- name: Require channel input
@@ -177,5 +209,5 @@ jobs:
177209
178210
- run: pnpm install --frozen-lockfile
179211

180-
- name: publish-kb-dsh
181-
run: node tools/release/publish-kb-dsh.mjs ${{ inputs.mode == 'channel' && format('--channel "{0}"', inputs.channel) || '' }}
212+
- name: publish-dsh-plugin
213+
run: node tools/release/publish-dsh-plugin.mjs --package "${{ inputs.package }}" ${{ inputs.mode == 'channel' && format('--channel "{0}"', inputs.channel) || '' }}

‎AGENTS.md‎

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ monorepo 现在按"纯逻辑 → 运行时框架 → 命令库 → 产品入口"
1212
- `packages/cli` — `bailian-cli`,完整 `bl` 产品入口;`src/commands.ts` 组装 `bl` 暴露的命令路径
1313
- `packages/kscli` — `knowledge-studio-cli`,Knowledge Studio 专用入口;`src/main.ts` 复用 commands 并重映射为 `kscli` 路径
1414
- `packages/bailian-kb-dsh` — `bailian-kb-dsh`,**下游宿主适配层**(依赖方向朝外):百炼知识库的 DeepSeek Harness (dsh) 插件,消费 `bl` CLI 与知识库 API,不在上面这条分层链上;版本、构建、发布都独立,见 [docs/agents/dsh-plugin.md](docs/agents/dsh-plugin.md)
15+
- `packages/bailian-memo-dsh` — `bailian-memo-dsh`,**下游宿主适配层**:百炼个人记忆 dsh 插件(dsh 0.2.1 Volatile Config / SettingsForms);身份在 `~/.bailian/personal-memory/config.json`;版本、构建、发布独立,见 [docs/agents/dsh-plugin.md](docs/agents/dsh-plugin.md) 与 [docs/memo-dsh/](docs/memo-dsh/)
1516

1617
### 关键文件
1718

@@ -57,26 +58,26 @@ Skill / 命令手册随 `skills/bailian-*/` 经 `bl skill init` 安装(装齐
5758

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

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

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

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

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

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

9192
### 2. 分层边界
9293

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

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

‎CHANGELOG.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
66

77
[中文版](CHANGELOG.zh.md) · [README](README.md) · [Contributing](CONTRIBUTING.md)
88

9+
## [2.1.0] - 2026-09-28
10+
11+
### Added
12+
13+
- **Text fine-tuning parameters** — `bl finetune text create` now accepts job name, priority, LoRA, evaluation, checkpoint, dataset-split, and data-augmentation parameters. `bl finetune get` returns expanded job metadata and hyperparameters.
14+
15+
### Fixed
16+
17+
- **Windows Skill installation** — Handle legacy path limits and update installed Skills in place when running agents keep directories open.
18+
19+
### Internal
20+
21+
- Publish binaries before npm `latest` and ad-hoc sign macOS release binaries.
22+
923
## [2.0.0] - 2026-09-22
1024

1125
### Added

‎CHANGELOG.zh.md‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@
66

77
[English](CHANGELOG.md) · [README](README.zh.md) · [参与贡献](CONTRIBUTING.zh.md)
88

9+
## [2.1.0] - 2026-09-28
10+
11+
### 新增
12+
13+
- **文本微调参数** —— `bl finetune text create` 现在支持任务名、优先级、LoRA、评估、Checkpoint、数据集切分和数据增强参数;`bl finetune get` 返回更完整的任务元数据与超参数。
14+
15+
### 修复
16+
17+
- **Windows Skill 安装** —— 处理传统路径长度限制,并可在运行中的 Agent 占用目录时原地更新已安装的 Skill。
18+
19+
### 内部
20+
21+
- 调整发布顺序,在 npm `latest` 前发布二进制,并对 macOS 发布二进制进行 ad-hoc 签名。
22+
923
## [2.0.0] - 2026-09-22
1024

1125
### 新增

0 commit comments

Comments
 (0)