@bgicli/bgicli 2.4.9 → 2.5.0

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/README.md CHANGED
@@ -1,8 +1,11 @@
1
1
  # BGI CLI
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@bgicli/bgicli.svg)](https://www.npmjs.com/package/@bgicli/bgicli)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@bgicli/bgicli.svg)](https://www.npmjs.com/package/@bgicli/bgicli)
5
+
3
6
  **BGI CLI** 是面向中国生物学研究者的 AI 终端工具,开箱即用,无需额外配置。
4
7
 
5
- - ✅ **开箱即用**clone 仓库后一键安装即可
8
+ - ✅ **一行安装**`npm install -g @bgicli/bgicli`,无需克隆仓库
6
9
  - ✅ **内置 1001 个技能** — 涵盖生信分析、结构生物学、药物发现、临床等全领域,自动安装
7
10
  - ✅ **智能技能路由** — 描述任务自动激活对应技能,无需手动搜索
8
11
  - ✅ **中国 AI 服务商** — 百炼(DashScope)聚合:Qwen、DeepSeek、Kimi、MiniMax 等 20+ 模型
@@ -16,22 +19,9 @@
16
19
  **环境要求:** Node.js 18+
17
20
 
18
21
  ```bash
19
- git clone https://gitlab.genomics.cn/ai/bgi-cli.git
20
- cd bgi-cli
21
- npm install
22
- npm run build
23
- sudo npm link
22
+ npm install -g @bgicli/bgicli
24
23
  ```
25
24
 
26
- > **macOS / Linux 无 root 权限时**,`npm link` 可能报 EACCES 权限错误,需先配置 npm 用户目录:
27
- > ```bash
28
- > mkdir -p ~/.npm-global
29
- > npm config set prefix '~/.npm-global'
30
- > echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc # zsh 用户改为 ~/.zshrc
31
- > source ~/.bashrc
32
- > npm link # 再次执行
33
- > ```
34
-
35
25
  安装完成后直接运行:
36
26
 
37
27
  ```bash
@@ -46,8 +36,7 @@ bgi
46
36
 
47
37
  ```bash
48
38
  # 卸载命令行工具
49
- cd bgi-cli
50
- npm unlink
39
+ npm uninstall -g @bgicli/bgicli
51
40
 
52
41
  # 删除本地数据(配置、技能库)
53
42
  # Linux / macOS
package/dist/bgi.js CHANGED
@@ -14267,6 +14267,7 @@ ${shortSummary}`);
14267
14267
  }
14268
14268
 
14269
14269
  // src/chat.ts
14270
+ var BRAND = "bgi".toUpperCase();
14270
14271
  async function chat(messages, config, systemPrompt2, stats, signal) {
14271
14272
  const prov = PROVIDERS[config.provider];
14272
14273
  if (!prov) throw new Error(`Unknown provider: ${config.provider}`);
@@ -14461,7 +14462,7 @@ async function streamOnce(client, messages, model, signal) {
14461
14462
  let finishReason = null;
14462
14463
  let inputTokens = 0;
14463
14464
  let outputTokens = 0;
14464
- process.stdout.write(source_default.green("BGI \u203A "));
14465
+ process.stdout.write(source_default.green(`${BRAND} \u203A `));
14465
14466
  for await (const chunk of stream) {
14466
14467
  if (chunk.usage) {
14467
14468
  inputTokens = chunk.usage.prompt_tokens ?? 0;
@@ -17192,7 +17193,8 @@ function clearCheckpoints(sessionId) {
17192
17193
 
17193
17194
  // src/index.ts
17194
17195
  var import_fs7 = require("fs");
17195
- var VERSION2 = "2.4.9";
17196
+ var VERSION2 = "2.5.0";
17197
+ var BRAND2 = "bgi".toLowerCase();
17196
17198
  var SKILLHUB_HUBS = {
17197
17199
  bgi: { label: "BGI\u5185\u7F51", apiBase: "https://clawhub.ai", backend: "clawhub" },
17198
17200
  clawhub: { label: "clawhub.ai", apiBase: "https://clawhub.ai", backend: "clawhub" },
@@ -17383,13 +17385,31 @@ function installBundledData() {
17383
17385
  }
17384
17386
  }
17385
17387
  function printBanner() {
17386
- console.log(source_default.cyan.bold(`
17388
+ if (BRAND2 === "bio") {
17389
+ console.log(source_default.cyan.bold(`
17390
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557
17391
+ \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2551
17392
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551
17393
+ \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551
17394
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551
17395
+ \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D v${VERSION2}`));
17396
+ } else if (BRAND2 === "mbp") {
17397
+ console.log(source_default.cyan.bold(`
17398
+ \u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557
17399
+ \u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2551
17400
+ \u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551
17401
+ \u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551
17402
+ \u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551
17403
+ \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D v${VERSION2}`));
17404
+ } else {
17405
+ console.log(source_default.cyan.bold(`
17387
17406
  \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557
17388
17407
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2551
17389
17408
  \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551
17390
17409
  \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551
17391
17410
  \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551
17392
17411
  \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D v${VERSION2}`));
17412
+ }
17393
17413
  console.log(source_default.dim(" \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B \u2014 Bioinformatics AI Terminal"));
17394
17414
  console.log();
17395
17415
  }