@bgicli/bgicli 2.7.0 → 2.7.2
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/dist/bgi.js +23 -39
- package/dist/bio.js +23 -39
- package/dist/mbp.js +23 -39
- package/package.json +1 -1
package/dist/bgi.js
CHANGED
|
@@ -17200,7 +17200,7 @@ function clearCheckpoints(sessionId) {
|
|
|
17200
17200
|
|
|
17201
17201
|
// src/index.ts
|
|
17202
17202
|
var import_fs7 = require("fs");
|
|
17203
|
-
var VERSION2 = "2.7.
|
|
17203
|
+
var VERSION2 = "2.7.2";
|
|
17204
17204
|
var BRAND2 = "bgi".toLowerCase();
|
|
17205
17205
|
var SKILLHUB_HUBS = {
|
|
17206
17206
|
bgi: { label: "BGI\u5185\u7F51", apiBase: "https://clawhub.ai", backend: "clawhub" },
|
|
@@ -17404,32 +17404,8 @@ function installBundledData() {
|
|
|
17404
17404
|
}
|
|
17405
17405
|
}
|
|
17406
17406
|
function printBanner() {
|
|
17407
|
-
|
|
17408
|
-
|
|
17409
|
-
\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
|
|
17410
|
-
\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
|
|
17411
|
-
\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
|
|
17412
|
-
\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
|
|
17413
|
-
\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
|
|
17414
|
-
\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}`));
|
|
17415
|
-
} else if (BRAND2 === "mbp") {
|
|
17416
|
-
console.log(source_default.cyan.bold(`
|
|
17417
|
-
\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
|
|
17418
|
-
\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
|
|
17419
|
-
\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
|
|
17420
|
-
\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
|
|
17421
|
-
\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
|
|
17422
|
-
\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}`));
|
|
17423
|
-
} else {
|
|
17424
|
-
console.log(source_default.cyan.bold(`
|
|
17425
|
-
\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
|
|
17426
|
-
\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
|
|
17427
|
-
\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
|
|
17428
|
-
\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
|
|
17429
|
-
\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
|
|
17430
|
-
\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}`));
|
|
17431
|
-
}
|
|
17432
|
-
console.log(source_default.dim(" \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B \u2014 Bioinformatics AI Terminal"));
|
|
17407
|
+
console.log(source_default.cyan.bold(`
|
|
17408
|
+
${BRAND2}`) + source_default.dim(` v${VERSION2} \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B`));
|
|
17433
17409
|
console.log();
|
|
17434
17410
|
}
|
|
17435
17411
|
function printHelp() {
|
|
@@ -19371,20 +19347,29 @@ ${expanded}` : expanded;
|
|
|
19371
19347
|
try {
|
|
19372
19348
|
const currentCfg = loadConfig();
|
|
19373
19349
|
currentAbortController = new AbortController();
|
|
19374
|
-
const
|
|
19375
|
-
const
|
|
19350
|
+
const roundT0 = Date.now();
|
|
19351
|
+
const tokensBefore = { in: sessionStats.inputTokens, out: sessionStats.outputTokens };
|
|
19376
19352
|
const reply = await chat(history, currentCfg, systemPrompt, sessionStats, currentAbortController.signal);
|
|
19377
19353
|
currentAbortController = null;
|
|
19378
|
-
if (
|
|
19379
|
-
const elapsedMs = Date.now() -
|
|
19380
|
-
const dIn = sessionStats.inputTokens -
|
|
19381
|
-
const dOut = sessionStats.outputTokens -
|
|
19354
|
+
if (reply) {
|
|
19355
|
+
const elapsedMs = Date.now() - roundT0;
|
|
19356
|
+
const dIn = sessionStats.inputTokens - tokensBefore.in;
|
|
19357
|
+
const dOut = sessionStats.outputTokens - tokensBefore.out;
|
|
19358
|
+
const elapsed = (elapsedMs / 1e3).toFixed(2);
|
|
19359
|
+
console.log(
|
|
19360
|
+
source_default.dim(`
|
|
19361
|
+
\u23F1 ${elapsed}s`) + source_default.dim(" \xB7 ") + source_default.dim(`\u2191 ${dIn}`) + source_default.dim(" ") + source_default.dim(`\u2193 ${dOut} tokens`)
|
|
19362
|
+
);
|
|
19363
|
+
}
|
|
19364
|
+
if (debugMode && reply) {
|
|
19365
|
+
const elapsedMs = Date.now() - roundT0;
|
|
19366
|
+
const dIn = sessionStats.inputTokens - tokensBefore.in;
|
|
19367
|
+
const dOut = sessionStats.outputTokens - tokensBefore.out;
|
|
19382
19368
|
try {
|
|
19383
19369
|
appendDebugRound(systemPrompt, history, reply, elapsedMs, dIn, dOut);
|
|
19384
19370
|
} catch {
|
|
19385
19371
|
}
|
|
19386
|
-
console.log(source_default.bold.yellow(`
|
|
19387
|
-
[DEBUG] \u5DF2\u8BB0\u5F55 \u2192 ${debugFilePath}`));
|
|
19372
|
+
console.log(source_default.bold.yellow(` [DEBUG] \u5DF2\u8BB0\u5F55 \u2192 ${debugFilePath}`));
|
|
19388
19373
|
}
|
|
19389
19374
|
if (!reply && history[history.length - 1]?.role === "user") {
|
|
19390
19375
|
history.pop();
|
|
@@ -19399,10 +19384,9 @@ ${expanded}` : expanded;
|
|
|
19399
19384
|
saveCheckpoint(sessionId, label, history, Array.from(injectedSkills.keys()));
|
|
19400
19385
|
lastCheckpointMsgCount = history.length;
|
|
19401
19386
|
}
|
|
19402
|
-
|
|
19403
|
-
|
|
19404
|
-
console.log(source_default.dim(`
|
|
19405
|
-
[\u6FC0\u6D3B Skill: ${ids}]`));
|
|
19387
|
+
const activeNonPerm = Array.from(injectedSkills.keys()).filter((id) => !permanentSkillIds.has(id));
|
|
19388
|
+
if (activeNonPerm.length > 0) {
|
|
19389
|
+
console.log(source_default.dim(` [\u6FC0\u6D3B Skill: ${activeNonPerm.join(" \xB7 ")}]`));
|
|
19406
19390
|
}
|
|
19407
19391
|
} catch (err) {
|
|
19408
19392
|
currentAbortController = null;
|
package/dist/bio.js
CHANGED
|
@@ -17200,7 +17200,7 @@ function clearCheckpoints(sessionId) {
|
|
|
17200
17200
|
|
|
17201
17201
|
// src/index.ts
|
|
17202
17202
|
var import_fs7 = require("fs");
|
|
17203
|
-
var VERSION2 = "2.7.
|
|
17203
|
+
var VERSION2 = "2.7.2";
|
|
17204
17204
|
var BRAND2 = "bio".toLowerCase();
|
|
17205
17205
|
var SKILLHUB_HUBS = {
|
|
17206
17206
|
bgi: { label: "BGI\u5185\u7F51", apiBase: "https://clawhub.ai", backend: "clawhub" },
|
|
@@ -17404,32 +17404,8 @@ function installBundledData() {
|
|
|
17404
17404
|
}
|
|
17405
17405
|
}
|
|
17406
17406
|
function printBanner() {
|
|
17407
|
-
|
|
17408
|
-
|
|
17409
|
-
\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
|
|
17410
|
-
\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
|
|
17411
|
-
\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
|
|
17412
|
-
\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
|
|
17413
|
-
\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
|
|
17414
|
-
\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}`));
|
|
17415
|
-
} else if (BRAND2 === "mbp") {
|
|
17416
|
-
console.log(source_default.cyan.bold(`
|
|
17417
|
-
\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
|
|
17418
|
-
\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
|
|
17419
|
-
\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
|
|
17420
|
-
\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
|
|
17421
|
-
\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
|
|
17422
|
-
\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}`));
|
|
17423
|
-
} else {
|
|
17424
|
-
console.log(source_default.cyan.bold(`
|
|
17425
|
-
\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
|
|
17426
|
-
\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
|
|
17427
|
-
\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
|
|
17428
|
-
\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
|
|
17429
|
-
\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
|
|
17430
|
-
\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}`));
|
|
17431
|
-
}
|
|
17432
|
-
console.log(source_default.dim(" \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B \u2014 Bioinformatics AI Terminal"));
|
|
17407
|
+
console.log(source_default.cyan.bold(`
|
|
17408
|
+
${BRAND2}`) + source_default.dim(` v${VERSION2} \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B`));
|
|
17433
17409
|
console.log();
|
|
17434
17410
|
}
|
|
17435
17411
|
function printHelp() {
|
|
@@ -19371,20 +19347,29 @@ ${expanded}` : expanded;
|
|
|
19371
19347
|
try {
|
|
19372
19348
|
const currentCfg = loadConfig();
|
|
19373
19349
|
currentAbortController = new AbortController();
|
|
19374
|
-
const
|
|
19375
|
-
const
|
|
19350
|
+
const roundT0 = Date.now();
|
|
19351
|
+
const tokensBefore = { in: sessionStats.inputTokens, out: sessionStats.outputTokens };
|
|
19376
19352
|
const reply = await chat(history, currentCfg, systemPrompt, sessionStats, currentAbortController.signal);
|
|
19377
19353
|
currentAbortController = null;
|
|
19378
|
-
if (
|
|
19379
|
-
const elapsedMs = Date.now() -
|
|
19380
|
-
const dIn = sessionStats.inputTokens -
|
|
19381
|
-
const dOut = sessionStats.outputTokens -
|
|
19354
|
+
if (reply) {
|
|
19355
|
+
const elapsedMs = Date.now() - roundT0;
|
|
19356
|
+
const dIn = sessionStats.inputTokens - tokensBefore.in;
|
|
19357
|
+
const dOut = sessionStats.outputTokens - tokensBefore.out;
|
|
19358
|
+
const elapsed = (elapsedMs / 1e3).toFixed(2);
|
|
19359
|
+
console.log(
|
|
19360
|
+
source_default.dim(`
|
|
19361
|
+
\u23F1 ${elapsed}s`) + source_default.dim(" \xB7 ") + source_default.dim(`\u2191 ${dIn}`) + source_default.dim(" ") + source_default.dim(`\u2193 ${dOut} tokens`)
|
|
19362
|
+
);
|
|
19363
|
+
}
|
|
19364
|
+
if (debugMode && reply) {
|
|
19365
|
+
const elapsedMs = Date.now() - roundT0;
|
|
19366
|
+
const dIn = sessionStats.inputTokens - tokensBefore.in;
|
|
19367
|
+
const dOut = sessionStats.outputTokens - tokensBefore.out;
|
|
19382
19368
|
try {
|
|
19383
19369
|
appendDebugRound(systemPrompt, history, reply, elapsedMs, dIn, dOut);
|
|
19384
19370
|
} catch {
|
|
19385
19371
|
}
|
|
19386
|
-
console.log(source_default.bold.yellow(`
|
|
19387
|
-
[DEBUG] \u5DF2\u8BB0\u5F55 \u2192 ${debugFilePath}`));
|
|
19372
|
+
console.log(source_default.bold.yellow(` [DEBUG] \u5DF2\u8BB0\u5F55 \u2192 ${debugFilePath}`));
|
|
19388
19373
|
}
|
|
19389
19374
|
if (!reply && history[history.length - 1]?.role === "user") {
|
|
19390
19375
|
history.pop();
|
|
@@ -19399,10 +19384,9 @@ ${expanded}` : expanded;
|
|
|
19399
19384
|
saveCheckpoint(sessionId, label, history, Array.from(injectedSkills.keys()));
|
|
19400
19385
|
lastCheckpointMsgCount = history.length;
|
|
19401
19386
|
}
|
|
19402
|
-
|
|
19403
|
-
|
|
19404
|
-
console.log(source_default.dim(`
|
|
19405
|
-
[\u6FC0\u6D3B Skill: ${ids}]`));
|
|
19387
|
+
const activeNonPerm = Array.from(injectedSkills.keys()).filter((id) => !permanentSkillIds.has(id));
|
|
19388
|
+
if (activeNonPerm.length > 0) {
|
|
19389
|
+
console.log(source_default.dim(` [\u6FC0\u6D3B Skill: ${activeNonPerm.join(" \xB7 ")}]`));
|
|
19406
19390
|
}
|
|
19407
19391
|
} catch (err) {
|
|
19408
19392
|
currentAbortController = null;
|
package/dist/mbp.js
CHANGED
|
@@ -17200,7 +17200,7 @@ function clearCheckpoints(sessionId) {
|
|
|
17200
17200
|
|
|
17201
17201
|
// src/index.ts
|
|
17202
17202
|
var import_fs7 = require("fs");
|
|
17203
|
-
var VERSION2 = "2.7.
|
|
17203
|
+
var VERSION2 = "2.7.2";
|
|
17204
17204
|
var BRAND2 = "mbp".toLowerCase();
|
|
17205
17205
|
var SKILLHUB_HUBS = {
|
|
17206
17206
|
bgi: { label: "BGI\u5185\u7F51", apiBase: "https://clawhub.ai", backend: "clawhub" },
|
|
@@ -17404,32 +17404,8 @@ function installBundledData() {
|
|
|
17404
17404
|
}
|
|
17405
17405
|
}
|
|
17406
17406
|
function printBanner() {
|
|
17407
|
-
|
|
17408
|
-
|
|
17409
|
-
\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
|
|
17410
|
-
\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
|
|
17411
|
-
\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
|
|
17412
|
-
\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
|
|
17413
|
-
\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
|
|
17414
|
-
\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}`));
|
|
17415
|
-
} else if (BRAND2 === "mbp") {
|
|
17416
|
-
console.log(source_default.cyan.bold(`
|
|
17417
|
-
\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
|
|
17418
|
-
\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
|
|
17419
|
-
\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
|
|
17420
|
-
\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
|
|
17421
|
-
\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
|
|
17422
|
-
\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}`));
|
|
17423
|
-
} else {
|
|
17424
|
-
console.log(source_default.cyan.bold(`
|
|
17425
|
-
\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
|
|
17426
|
-
\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
|
|
17427
|
-
\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
|
|
17428
|
-
\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
|
|
17429
|
-
\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
|
|
17430
|
-
\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}`));
|
|
17431
|
-
}
|
|
17432
|
-
console.log(source_default.dim(" \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B \u2014 Bioinformatics AI Terminal"));
|
|
17407
|
+
console.log(source_default.cyan.bold(`
|
|
17408
|
+
${BRAND2}`) + source_default.dim(` v${VERSION2} \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B`));
|
|
17433
17409
|
console.log();
|
|
17434
17410
|
}
|
|
17435
17411
|
function printHelp() {
|
|
@@ -19371,20 +19347,29 @@ ${expanded}` : expanded;
|
|
|
19371
19347
|
try {
|
|
19372
19348
|
const currentCfg = loadConfig();
|
|
19373
19349
|
currentAbortController = new AbortController();
|
|
19374
|
-
const
|
|
19375
|
-
const
|
|
19350
|
+
const roundT0 = Date.now();
|
|
19351
|
+
const tokensBefore = { in: sessionStats.inputTokens, out: sessionStats.outputTokens };
|
|
19376
19352
|
const reply = await chat(history, currentCfg, systemPrompt, sessionStats, currentAbortController.signal);
|
|
19377
19353
|
currentAbortController = null;
|
|
19378
|
-
if (
|
|
19379
|
-
const elapsedMs = Date.now() -
|
|
19380
|
-
const dIn = sessionStats.inputTokens -
|
|
19381
|
-
const dOut = sessionStats.outputTokens -
|
|
19354
|
+
if (reply) {
|
|
19355
|
+
const elapsedMs = Date.now() - roundT0;
|
|
19356
|
+
const dIn = sessionStats.inputTokens - tokensBefore.in;
|
|
19357
|
+
const dOut = sessionStats.outputTokens - tokensBefore.out;
|
|
19358
|
+
const elapsed = (elapsedMs / 1e3).toFixed(2);
|
|
19359
|
+
console.log(
|
|
19360
|
+
source_default.dim(`
|
|
19361
|
+
\u23F1 ${elapsed}s`) + source_default.dim(" \xB7 ") + source_default.dim(`\u2191 ${dIn}`) + source_default.dim(" ") + source_default.dim(`\u2193 ${dOut} tokens`)
|
|
19362
|
+
);
|
|
19363
|
+
}
|
|
19364
|
+
if (debugMode && reply) {
|
|
19365
|
+
const elapsedMs = Date.now() - roundT0;
|
|
19366
|
+
const dIn = sessionStats.inputTokens - tokensBefore.in;
|
|
19367
|
+
const dOut = sessionStats.outputTokens - tokensBefore.out;
|
|
19382
19368
|
try {
|
|
19383
19369
|
appendDebugRound(systemPrompt, history, reply, elapsedMs, dIn, dOut);
|
|
19384
19370
|
} catch {
|
|
19385
19371
|
}
|
|
19386
|
-
console.log(source_default.bold.yellow(`
|
|
19387
|
-
[DEBUG] \u5DF2\u8BB0\u5F55 \u2192 ${debugFilePath}`));
|
|
19372
|
+
console.log(source_default.bold.yellow(` [DEBUG] \u5DF2\u8BB0\u5F55 \u2192 ${debugFilePath}`));
|
|
19388
19373
|
}
|
|
19389
19374
|
if (!reply && history[history.length - 1]?.role === "user") {
|
|
19390
19375
|
history.pop();
|
|
@@ -19399,10 +19384,9 @@ ${expanded}` : expanded;
|
|
|
19399
19384
|
saveCheckpoint(sessionId, label, history, Array.from(injectedSkills.keys()));
|
|
19400
19385
|
lastCheckpointMsgCount = history.length;
|
|
19401
19386
|
}
|
|
19402
|
-
|
|
19403
|
-
|
|
19404
|
-
console.log(source_default.dim(`
|
|
19405
|
-
[\u6FC0\u6D3B Skill: ${ids}]`));
|
|
19387
|
+
const activeNonPerm = Array.from(injectedSkills.keys()).filter((id) => !permanentSkillIds.has(id));
|
|
19388
|
+
if (activeNonPerm.length > 0) {
|
|
19389
|
+
console.log(source_default.dim(` [\u6FC0\u6D3B Skill: ${activeNonPerm.join(" \xB7 ")}]`));
|
|
19406
19390
|
}
|
|
19407
19391
|
} catch (err) {
|
|
19408
19392
|
currentAbortController = null;
|