Skip to content

Commit 1533e20

Browse files
committed
Initial commit
0 parents  commit 1533e20

220 files changed

Lines changed: 26860 additions & 0 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.

.codegraph/.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# CodeGraph data files
2+
# These are local to each machine and should not be committed
3+
4+
# Database
5+
*.db
6+
*.db-wal
7+
*.db-shm
8+
9+
# Cache
10+
cache/
11+
12+
# Logs
13+
*.log
14+
15+
# Hook markers
16+
.dirty

.gitignore

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
# Dependencies & build output
11+
node_modules
12+
dist
13+
dist-ssr
14+
tools/generated
15+
16+
*.local
17+
18+
# Editor directories and files
19+
.vscode/*
20+
!.vscode/extensions.json
21+
.idea
22+
.DS_Store
23+
*.suo
24+
*.ntvs*
25+
*.njsproj
26+
*.sln
27+
*.sw?
28+
29+
# Crawled document metadata (generated)
30+
*.meta.json
31+
32+
# AI agent / IDE config (machine-local — keep out of the public repo)
33+
.claude/worktrees/
34+
.claude/settings.json
35+
.claude/settings.local.json
36+
.cursor/
37+
.qwen/
38+
.playwright-mcp/
39+
.pnpm-store/
40+
41+
# Test & scene outputs
42+
/test/
43+
packages/cli/scene/**/outputs/
44+
45+
# Environment variables (sensitive data)
46+
.env

.vite-hooks/pre-commit

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
vp staged

.vscode/extensions.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"recommendations": ["VoidZero.vite-plus-extension-pack"]
3+
}

AGENTS.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# bailian-cli — AI 维护指南
2+
3+
本文件是 AI agent 维护本仓库时的契约。每次进入项目首先读这里,从下方"业务场景索引"挑一条,跳到对应的详细文档,按它的清单完成改动。
4+
5+
## 项目地图
6+
7+
monorepo 双包结构:
8+
9+
- `packages/cli``bailian-cli` 包,CLI 命令、UI、入口
10+
- `packages/core``bailian-cli-core` 包,鉴权 / HTTP / 类型,纯逻辑层
11+
12+
### `packages/cli` 目录要点
13+
14+
```
15+
packages/cli/
16+
├── src/
17+
│ ├── main.ts # 入口、鉴权分支、调用 registry
18+
│ ├── registry.ts # 命令树解析、动态 help(读 catalog)
19+
│ ├── commands/
20+
│ │ ├── catalog.ts # 命令总表(登记处,构建脚本也读它)
21+
│ │ ├── index.ts # re-export commands
22+
│ │ └── <group>/...ts # 各命令 defineCommand 实现
23+
│ ├── output/ # CLI 输出、prompt、progress
24+
│ └── urls.ts # 控制台/文档 URL(仅 cli)
25+
└── tests/e2e/
26+
```
27+
28+
Skill / 命令手册不再随 npm 包发布,改由独立的 `npx add skills` 机制安装。`tools/generate-reference.ts` 仍然从 `catalog.ts` 生成命令手册到 `tools/generated/reference/`(gitignore,临时),等新机制接入后再迁走。
29+
30+
非代码资产:
31+
32+
- `tools/release.mjs` — 发版自动化
33+
- `tools/generate-reference.ts` — 从 `catalog.ts` 生成命令手册(临时输出到 `tools/generated/reference/`)
34+
- `README.md` / `README_CN.md` — npm 和 GitHub 主页
35+
36+
约定:
37+
38+
- core 是纯库,不依赖 cli(详见下方通用约定)
39+
- 文件路径与命令路径一一对应:`commands/text/chat.ts``bl text chat`
40+
- 单级命令:`commands/<name>.ts`(如 `update.ts`);两级:`commands/<group>/<action>.ts`
41+
- 命令登记在 **`catalog.ts`**;`bl --help``tools/generate-reference.ts` 生成的命令手册同源,见 [command-add-remove.md](docs/agents/command-add-remove.md)
42+
43+
## 业务场景索引
44+
45+
按当前任务从下表挑一条进入对应文档:
46+
47+
| 场景 | 何时进入 | 详见 |
48+
| -------------- | -------------------------------------------- | ------------------------------------------------------------------------ |
49+
| 命令增删改 | 增加 / 删除 / 重命名 `bl xxx` | [docs/agents/command-add-remove.md](docs/agents/command-add-remove.md) |
50+
| E2E 测试维护 | 新增/改命令或 e2e 用例、补 help/缺参/dry-run | [docs/agents/cli-e2e-tests.md](docs/agents/cli-e2e-tests.md) |
51+
| 批量压测 | 改/跑多能力并发压测、`test:stress`、fixtures | [docs/agents/stress-batch-tests.md](docs/agents/stress-batch-tests.md) |
52+
| 选项变更 | 给已有命令加 `--flag` 或改默认值 | [docs/agents/command-flag-change.md](docs/agents/command-flag-change.md) |
53+
| 模型上下架 | 增加新模型 / 改默认模型 / 废弃旧模型 | [docs/agents/model-add-remove.md](docs/agents/model-add-remove.md) |
54+
| 错误文案变更 |`BailianError` 的 message 或 hint | [docs/agents/error-hint-change.md](docs/agents/error-hint-change.md) |
55+
| URL / 渠道变更 | 控制台域名 / 文档站 / 追踪参数 | [docs/agents/url-change.md](docs/agents/url-change.md) |
56+
| 鉴权扩展 | 加 OAuth / SSO / 换 token 来源 | [docs/agents/auth-change.md](docs/agents/auth-change.md) |
57+
| 配置项扩展 | 新 env var 或 `~/.bailian/config.json` 字段 | [docs/agents/config-add.md](docs/agents/config-add.md) |
58+
| 发版前自检 | beta / rc / 正式发布到 npm | [docs/agents/release.md](docs/agents/release.md) |
59+
| 工具链调整 | lint 规则 / 构建配置 / 依赖升级 | [docs/agents/lint-toolchain.md](docs/agents/lint-toolchain.md) |
60+
61+
如果当前任务无法对应任何场景,先按经验完成,然后**回来评估这是不是一类新场景** —— 是就新增一份 `docs/agents/<scenario>.md`,把清单沉淀下来。
62+
63+
## 通用约定
64+
65+
下面两条与场景无关,任何改动都适用。每次完成改动后自查。
66+
67+
### 1. cli 和 core 版本号同步
68+
69+
`packages/cli/package.json``packages/core/package.json``version` 字段必须始终相等。一动两动。
70+
71+
### 2. core 是纯库,cli 是 core 的 UI 层
72+
73+
core 不应该知道 cli 的存在。具体表现:
74+
75+
- core 不写 stderr,不调 `process.exit`(用 `console.*``throw`)
76+
- core 抛的 `BailianError`,hint 字符串不出现 `bl xxx` 命令名
77+
- core 不写死域名 / region / 追踪参数(URL 集中在 `packages/cli/src/urls.ts`)
78+
- core 接收 cli 通过 `Config` 注入的 metadata(`clientName` / `clientVersion`)
79+
80+
### 3. 错误处理边界:CLI 不翻译服务端错误
81+
82+
CLI 只为「自己能权威解释的错误」发出语义化信号,服务端的错误**原样透传**。详见 [docs/agents/error-hint-change.md](docs/agents/error-hint-change.md)
83+
84+
| 错误来源 | 归类 | 处理方式 |
85+
| ---------------------------------------------------- | -------- | ----------------------------------------------------------- |
86+
| 命令解析、缺 flag、参数校验 | **内部** | `BailianError(USAGE)` |
87+
| 文件 I/O(ENOENT/EACCES/...) | **内部** | `BailianError(GENERAL)` + errno-specific hint |
88+
| 本地 credentials 缺失(resolver/ensure-key/AK-SK 等) | **内部** | `BailianError(AUTH)` |
89+
| `fetch` 自身失败(DNS/TCP/TLS/proxy) | **内部** | `BailianError(NETWORK)` + 读 `err.cause.code` 给 errno-hint |
90+
| polling 客户端超时 | **内部** | `BailianError(TIMEOUT)` |
91+
| HTTP 4xx/5xx、HTTP 200 + 业务错码、async task FAILED | **服务** | `BailianError(GENERAL)`,**message 原样透传**,不分类、不替换 |
92+
93+
不要扮演服务端错误的翻译官——我们没有最新的错误码体系认知,二次包装只会撒谎(详见 `docs/agents/error-hint-change.md` 中的反面 case)。
94+
95+
## 完成改动后的快速验证
96+
97+
```sh
98+
vp check # format + lint + type check
99+
vp test # unit + e2e (e2e 需 API key)
100+
```
101+
102+
## 这份指南本身怎么演化
103+
104+
这套文档不是写完就死,**随真实工作沉淀**。完成每次改动后回看:这次发现的漏点该不该补?是不是一类新场景?
105+
106+
新增场景 / 改主入口 / 跨文档引用规则 → [docs/agents/maintaining-agent-docs.md](docs/agents/maintaining-agent-docs.md)

CHANGELOG.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Changelog
2+
3+
All notable changes to `bailian-cli` and `bailian-cli-core` are documented here.
4+
5+
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). The two packages share a single version number — they are always released together.
6+
7+
[中文版](CHANGELOG_CN.md)
8+
9+
## [1.1.0] - 2026-05-28
10+
11+
Initial public release on GitHub. The CLI was previously developed internally; this is the first version published as open source under Apache-2.0.
12+
13+
### Added
14+
15+
Out-of-the-box capabilities your AI agent can compose across complex tasks:
16+
17+
**Model services**
18+
19+
| Capability | Default | Description |
20+
| ------------------ | ----------------------------- | ------------------------------------------------------------------------------------------------- |
21+
| Text generation | `qwen3.7-max` | Flagship Max model for the agent era — strong at coding, office work, and long-horizon autonomy |
22+
| Speech synthesis | `cosyvoice-v3-flash` | Multi-voice real-time streaming TTS with enhanced naturalness/emotion; clone from 5–20s samples |
23+
| Speech recognition | `fun-asr` | 7 Chinese dialects + 20+ Mandarin accents; covers 30 languages |
24+
| Image generation | `qwen-image-2.0` | Fused generation & editing, pro text rendering, photorealism, strong semantic adherence |
25+
| Image editing | `qwen-image-2.0` | Smart editing with multi-image composition |
26+
| Image-to-video | `happyhorse-1.0-i2v` | Faithful text-semantic interpretation, smooth high-quality output |
27+
| Text-to-video | `happyhorse-1.0-t2v` | Vivid motion reproduction with rich detail |
28+
| Reference-to-video | `happyhorse-1.0-r2v` | Up to 9 reference images; stable subject & scene preservation |
29+
| Video editing | `happyhorse-1.0-video-edit` | Natural-language video editing, up to 5 reference images |
30+
| Vision understanding | `qwen-vl` | Long-form video analysis, chart/document parsing, visual reasoning, multilingual OCR |
31+
32+
**Application data**
33+
34+
| Capability | Default | Description |
35+
| -------------- | -------------------------------- | -------------------------------------------------------------------- |
36+
| Knowledge base | Aliyun Model Studio Knowledge | Multimodal RAG CRUD and retrieval; requires AccessKey |
37+
| Memory | Aliyun Model Studio Memory | Cross-session persistence for personalized coherent dialogue |
38+
39+
**Application building**
40+
41+
| Capability | Default | Description |
42+
| -------------- | ---------------- | ------------------------------------------ |
43+
| Workflow calls | Workflow service | Invoke published workflow apps |
44+
| Agent calls | Agent service | Invoke published agent apps |
45+
46+
**Tools**
47+
48+
| Capability | Default | Description |
49+
| ------------------ | ---------------------------------------- | ------------------------------------------------------------------------------------------ |
50+
| Web search | `bailian_web_search` | Real-time internet retrieval for accuracy and freshness |
51+
| Temp file upload | Temp upload service | Free temp storage; upload local files for URLs (48-hour validity) |
52+
| Free-quota query | Quota query | Check available free-tier quota by model id |
53+
| API reference | Aliyun Model Studio API reference docs | Auto-integrate Aliyun Model Studio model and app capability APIs during build |

CHANGELOG_CN.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# 更新日志
2+
3+
`bailian-cli``bailian-cli-core` 的所有重要变更都记录在此。
4+
5+
格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/spec/v2.0.0.html)。两个包共享一个版本号,总是一起发布。
6+
7+
[English](CHANGELOG.md)
8+
9+
## [1.1.0] - 2026-05-28
10+
11+
GitHub 上的首次公开发布。本项目此前在内部开发,这是首个以 Apache-2.0 协议开源的版本。
12+
13+
### 新增
14+
15+
让您的 AI Agent 开箱就具备以下能力,并可在复杂任务中自动组合调用:
16+
17+
**模型服务**
18+
19+
| 能力 | 默认服务 | 简介 |
20+
| ---------- | ----------------------------- | ----------------------------------------------------------------------------------- |
21+
| 文本生成 | `qwen3.7-max` | 面向智能体时代的旗舰 Max 模型,编程、办公与长周期自主执行能力出色 |
22+
| 语音生成 | `cosyvoice-v3-flash` | 多音色实时流式合成,自然度/情感增强,5-20s 样本即可克隆 |
23+
| 语音识别 | `fun-asr` | 汉语七大方言 + 20+ 口音官话,覆盖 30 种语种 |
24+
| 图像生成 | `qwen-image-2.0` | 图片生成与编辑融合,专业文字渲染、真实质感、强语义遵循 |
25+
| 图像编辑 | `qwen-image-2.0` | 智能编辑,支持多图合成 |
26+
| 图生视频 | `happyhorse-1.0-i2v` | 精准理解文本语义,输出流畅自然的高质量视频 |
27+
| 文生视频 | `happyhorse-1.0-t2v` | 高度还原动态画面,细节丰富 |
28+
| 参考生视频 | `happyhorse-1.0-r2v` | 支持最多 9 张图片参考,稳定主体与场景保持 |
29+
| 视频编辑 | `happyhorse-1.0-video-edit` | 自然语言指令编辑视频,支持最多 5 张图片参考 |
30+
| 视觉理解 | `qwen-vl` | 长视频分析、图表/文档解析、视觉推理、多语言 OCR |
31+
32+
**应用数据**
33+
34+
| 能力 | 默认服务 | 简介 |
35+
| ------ | ---------------- | --------------------------------------------- |
36+
| 知识库 | 阿里云百炼知识库 | 多模态数据知识库增删改查检索,需 AccessKey 认证 |
37+
| 记忆库 | 阿里云百炼记忆库 | 跨会话持久化存储,提供个性化连贯对话体验 |
38+
39+
**应用构建**
40+
41+
| 能力 | 默认服务 | 简介 |
42+
| ---------- | ---------- | -------------------------- |
43+
| 工作流调用 | 工作流服务 | 调用已有的工作流应用服务 |
44+
| 智能体调用 | 智能体服务 | 调用已有的智能体应用服务 |
45+
46+
**工具能力**
47+
48+
| 能力 | 默认服务 | 简介 |
49+
| ------------ | --------------------------------- | ------------------------------------------------------------------------ |
50+
| 联网搜索 | `bailian_web_search` | 实时互联网全栈信息检索,提升回答准确性及时效性 |
51+
| 临时文件上传 | 临时文件上传服务 | 免费临时存储空间,上传本地文件获得 URL(有效期 48 小时) |
52+
| 模型额度查询 | 模型额度查询 | 根据模型 id 查询可以使用的免费额度 |
53+
| 接口文档 | 阿里云百炼模型应用 API 调用参考文档 | 在构建应用的过程中,自动为您的应用集成阿里云百炼模型和应用能力 API |

CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AGENTS.md

0 commit comments

Comments
 (0)