@bgicli/bgicli 2.7.3 → 2.7.4

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 CHANGED
@@ -17404,41 +17404,58 @@ function installBundledData() {
17404
17404
  }
17405
17405
  }
17406
17406
  function printBanner() {
17407
- const bgiLines = [
17408
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557",
17409
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551",
17410
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2551",
17411
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551",
17412
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551",
17413
- " \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D"
17407
+ function lerpColor(stops2, t2) {
17408
+ const n2 = stops2.length;
17409
+ if (n2 === 1) return stops2[0];
17410
+ const s2 = t2 * (n2 - 1);
17411
+ const idx = Math.min(Math.floor(s2), n2 - 2);
17412
+ const f2 = s2 - idx;
17413
+ const [ar2, ag, ab] = stops2[idx];
17414
+ const [br2, bg, bb] = stops2[idx + 1];
17415
+ return [Math.round(ar2 + (br2 - ar2) * f2), Math.round(ag + (bg - ag) * f2), Math.round(ab + (bb - ab) * f2)];
17416
+ }
17417
+ const chevron = [
17418
+ "\u2588\u2588\u2557 ",
17419
+ "\u255A\u2588\u2588\u2557 ",
17420
+ " \u255A\u2588\u2588\u2557 ",
17421
+ " \u2554\u2588\u2588\u2554\u255D",
17422
+ "\u2554\u2588\u2588\u2554\u255D ",
17423
+ "\u255A\u2550\u255D "
17414
17424
  ];
17415
- const bioLines = [
17416
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17417
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557",
17418
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17419
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17420
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
17421
- " \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
17425
+ const bgiLetters = [
17426
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557",
17427
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551",
17428
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2551",
17429
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551",
17430
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551",
17431
+ "\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D"
17422
17432
  ];
17423
- const mbpLines = [
17424
- " \u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17425
- " \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",
17426
- " \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",
17427
- " \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 ",
17428
- " \u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 ",
17429
- " \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D "
17433
+ const bioLetters = [
17434
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17435
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557",
17436
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17437
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17438
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
17439
+ "\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
17430
17440
  ];
17431
- const lines = BRAND2 === "bio" ? bioLines : BRAND2 === "mbp" ? mbpLines : bgiLines;
17432
- const colors = BRAND2 === "bio" ? [0, 255, 120, 0, 200, 255] : BRAND2 === "mbp" ? [255, 60, 180, 130, 0, 255] : [0, 220, 255, 30, 80, 255];
17433
- const [r1, g1, b1, r2, g2, b2] = colors;
17434
- const n2 = lines.length;
17441
+ const mbpLetters = [
17442
+ "\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17443
+ "\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",
17444
+ "\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",
17445
+ "\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 ",
17446
+ "\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 ",
17447
+ "\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D "
17448
+ ];
17449
+ const letters = BRAND2 === "bio" ? bioLetters : BRAND2 === "mbp" ? mbpLetters : bgiLetters;
17450
+ const body = chevron.map((ch, i2) => " " + ch + letters[i2]);
17451
+ const maxW = body.reduce((m2, l2) => Math.max(m2, l2.length), 0);
17452
+ const border = " " + "\u2500".repeat(maxW);
17453
+ const allLines = [border, ...body, border];
17454
+ const stops = BRAND2 === "bio" ? [[60, 255, 100], [0, 255, 180], [0, 245, 255], [0, 190, 255], [0, 120, 255], [40, 50, 255], [110, 0, 255], [170, 0, 220]] : BRAND2 === "mbp" ? [[255, 60, 190], [255, 130, 50], [240, 50, 220], [190, 0, 255], [140, 0, 255], [90, 0, 255], [55, 0, 230], [30, 0, 180]] : [[0, 245, 255], [0, 215, 255], [0, 175, 255], [20, 125, 255], [60, 75, 255], [100, 30, 255], [150, 0, 255], [185, 0, 220]];
17435
17455
  console.log();
17436
- lines.forEach((line, i2) => {
17437
- const t2 = i2 / Math.max(n2 - 1, 1);
17438
- const r3 = Math.round(r1 + (r2 - r1) * t2);
17439
- const g3 = Math.round(g1 + (g2 - g1) * t2);
17440
- const b3 = Math.round(b1 + (b2 - b1) * t2);
17441
- console.log(source_default.bold.rgb(r3, g3, b3)(line));
17456
+ allLines.forEach((line, i2) => {
17457
+ const [r2, g2, b2] = lerpColor(stops, i2 / Math.max(allLines.length - 1, 1));
17458
+ console.log(source_default.bold.rgb(r2, g2, b2)(line));
17442
17459
  });
17443
17460
  console.log(source_default.dim(` v${VERSION2} \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B \u2014 Bioinformatics AI Terminal`));
17444
17461
  console.log();
package/dist/bio.js CHANGED
@@ -17404,41 +17404,58 @@ function installBundledData() {
17404
17404
  }
17405
17405
  }
17406
17406
  function printBanner() {
17407
- const bgiLines = [
17408
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557",
17409
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551",
17410
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2551",
17411
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551",
17412
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551",
17413
- " \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D"
17407
+ function lerpColor(stops2, t2) {
17408
+ const n2 = stops2.length;
17409
+ if (n2 === 1) return stops2[0];
17410
+ const s2 = t2 * (n2 - 1);
17411
+ const idx = Math.min(Math.floor(s2), n2 - 2);
17412
+ const f2 = s2 - idx;
17413
+ const [ar2, ag, ab] = stops2[idx];
17414
+ const [br2, bg, bb] = stops2[idx + 1];
17415
+ return [Math.round(ar2 + (br2 - ar2) * f2), Math.round(ag + (bg - ag) * f2), Math.round(ab + (bb - ab) * f2)];
17416
+ }
17417
+ const chevron = [
17418
+ "\u2588\u2588\u2557 ",
17419
+ "\u255A\u2588\u2588\u2557 ",
17420
+ " \u255A\u2588\u2588\u2557 ",
17421
+ " \u2554\u2588\u2588\u2554\u255D",
17422
+ "\u2554\u2588\u2588\u2554\u255D ",
17423
+ "\u255A\u2550\u255D "
17414
17424
  ];
17415
- const bioLines = [
17416
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17417
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557",
17418
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17419
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17420
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
17421
- " \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
17425
+ const bgiLetters = [
17426
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557",
17427
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551",
17428
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2551",
17429
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551",
17430
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551",
17431
+ "\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D"
17422
17432
  ];
17423
- const mbpLines = [
17424
- " \u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17425
- " \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",
17426
- " \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",
17427
- " \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 ",
17428
- " \u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 ",
17429
- " \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D "
17433
+ const bioLetters = [
17434
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17435
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557",
17436
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17437
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17438
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
17439
+ "\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
17430
17440
  ];
17431
- const lines = BRAND2 === "bio" ? bioLines : BRAND2 === "mbp" ? mbpLines : bgiLines;
17432
- const colors = BRAND2 === "bio" ? [0, 255, 120, 0, 200, 255] : BRAND2 === "mbp" ? [255, 60, 180, 130, 0, 255] : [0, 220, 255, 30, 80, 255];
17433
- const [r1, g1, b1, r2, g2, b2] = colors;
17434
- const n2 = lines.length;
17441
+ const mbpLetters = [
17442
+ "\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17443
+ "\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",
17444
+ "\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",
17445
+ "\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 ",
17446
+ "\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 ",
17447
+ "\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D "
17448
+ ];
17449
+ const letters = BRAND2 === "bio" ? bioLetters : BRAND2 === "mbp" ? mbpLetters : bgiLetters;
17450
+ const body = chevron.map((ch, i2) => " " + ch + letters[i2]);
17451
+ const maxW = body.reduce((m2, l2) => Math.max(m2, l2.length), 0);
17452
+ const border = " " + "\u2500".repeat(maxW);
17453
+ const allLines = [border, ...body, border];
17454
+ const stops = BRAND2 === "bio" ? [[60, 255, 100], [0, 255, 180], [0, 245, 255], [0, 190, 255], [0, 120, 255], [40, 50, 255], [110, 0, 255], [170, 0, 220]] : BRAND2 === "mbp" ? [[255, 60, 190], [255, 130, 50], [240, 50, 220], [190, 0, 255], [140, 0, 255], [90, 0, 255], [55, 0, 230], [30, 0, 180]] : [[0, 245, 255], [0, 215, 255], [0, 175, 255], [20, 125, 255], [60, 75, 255], [100, 30, 255], [150, 0, 255], [185, 0, 220]];
17435
17455
  console.log();
17436
- lines.forEach((line, i2) => {
17437
- const t2 = i2 / Math.max(n2 - 1, 1);
17438
- const r3 = Math.round(r1 + (r2 - r1) * t2);
17439
- const g3 = Math.round(g1 + (g2 - g1) * t2);
17440
- const b3 = Math.round(b1 + (b2 - b1) * t2);
17441
- console.log(source_default.bold.rgb(r3, g3, b3)(line));
17456
+ allLines.forEach((line, i2) => {
17457
+ const [r2, g2, b2] = lerpColor(stops, i2 / Math.max(allLines.length - 1, 1));
17458
+ console.log(source_default.bold.rgb(r2, g2, b2)(line));
17442
17459
  });
17443
17460
  console.log(source_default.dim(` v${VERSION2} \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B \u2014 Bioinformatics AI Terminal`));
17444
17461
  console.log();
package/dist/mbp.js CHANGED
@@ -17404,41 +17404,58 @@ function installBundledData() {
17404
17404
  }
17405
17405
  }
17406
17406
  function printBanner() {
17407
- const bgiLines = [
17408
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557",
17409
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551",
17410
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2551",
17411
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551",
17412
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551",
17413
- " \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D"
17407
+ function lerpColor(stops2, t2) {
17408
+ const n2 = stops2.length;
17409
+ if (n2 === 1) return stops2[0];
17410
+ const s2 = t2 * (n2 - 1);
17411
+ const idx = Math.min(Math.floor(s2), n2 - 2);
17412
+ const f2 = s2 - idx;
17413
+ const [ar2, ag, ab] = stops2[idx];
17414
+ const [br2, bg, bb] = stops2[idx + 1];
17415
+ return [Math.round(ar2 + (br2 - ar2) * f2), Math.round(ag + (bg - ag) * f2), Math.round(ab + (bb - ab) * f2)];
17416
+ }
17417
+ const chevron = [
17418
+ "\u2588\u2588\u2557 ",
17419
+ "\u255A\u2588\u2588\u2557 ",
17420
+ " \u255A\u2588\u2588\u2557 ",
17421
+ " \u2554\u2588\u2588\u2554\u255D",
17422
+ "\u2554\u2588\u2588\u2554\u255D ",
17423
+ "\u255A\u2550\u255D "
17414
17424
  ];
17415
- const bioLines = [
17416
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17417
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557",
17418
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17419
- " \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17420
- " \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
17421
- " \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
17425
+ const bgiLetters = [
17426
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557",
17427
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D \u2588\u2588\u2551",
17428
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2557\u2588\u2588\u2551",
17429
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551",
17430
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551",
17431
+ "\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D"
17422
17432
  ];
17423
- const mbpLines = [
17424
- " \u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17425
- " \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",
17426
- " \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",
17427
- " \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 ",
17428
- " \u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 ",
17429
- " \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D "
17433
+ const bioLetters = [
17434
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17435
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557",
17436
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17437
+ "\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551",
17438
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
17439
+ "\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
17430
17440
  ];
17431
- const lines = BRAND2 === "bio" ? bioLines : BRAND2 === "mbp" ? mbpLines : bgiLines;
17432
- const colors = BRAND2 === "bio" ? [0, 255, 120, 0, 200, 255] : BRAND2 === "mbp" ? [255, 60, 180, 130, 0, 255] : [0, 220, 255, 30, 80, 255];
17433
- const [r1, g1, b1, r2, g2, b2] = colors;
17434
- const n2 = lines.length;
17441
+ const mbpLetters = [
17442
+ "\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
17443
+ "\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",
17444
+ "\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",
17445
+ "\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 ",
17446
+ "\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 ",
17447
+ "\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D "
17448
+ ];
17449
+ const letters = BRAND2 === "bio" ? bioLetters : BRAND2 === "mbp" ? mbpLetters : bgiLetters;
17450
+ const body = chevron.map((ch, i2) => " " + ch + letters[i2]);
17451
+ const maxW = body.reduce((m2, l2) => Math.max(m2, l2.length), 0);
17452
+ const border = " " + "\u2500".repeat(maxW);
17453
+ const allLines = [border, ...body, border];
17454
+ const stops = BRAND2 === "bio" ? [[60, 255, 100], [0, 255, 180], [0, 245, 255], [0, 190, 255], [0, 120, 255], [40, 50, 255], [110, 0, 255], [170, 0, 220]] : BRAND2 === "mbp" ? [[255, 60, 190], [255, 130, 50], [240, 50, 220], [190, 0, 255], [140, 0, 255], [90, 0, 255], [55, 0, 230], [30, 0, 180]] : [[0, 245, 255], [0, 215, 255], [0, 175, 255], [20, 125, 255], [60, 75, 255], [100, 30, 255], [150, 0, 255], [185, 0, 220]];
17435
17455
  console.log();
17436
- lines.forEach((line, i2) => {
17437
- const t2 = i2 / Math.max(n2 - 1, 1);
17438
- const r3 = Math.round(r1 + (r2 - r1) * t2);
17439
- const g3 = Math.round(g1 + (g2 - g1) * t2);
17440
- const b3 = Math.round(b1 + (b2 - b1) * t2);
17441
- console.log(source_default.bold.rgb(r3, g3, b3)(line));
17456
+ allLines.forEach((line, i2) => {
17457
+ const [r2, g2, b2] = lerpColor(stops, i2 / Math.max(allLines.length - 1, 1));
17458
+ console.log(source_default.bold.rgb(r2, g2, b2)(line));
17442
17459
  });
17443
17460
  console.log(source_default.dim(` v${VERSION2} \u751F\u7269\u4FE1\u606F\u5B66 AI \u7EC8\u7AEF\u52A9\u624B \u2014 Bioinformatics AI Terminal`));
17444
17461
  console.log();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgicli/bgicli",
3
- "version": "2.7.3",
3
+ "version": "2.7.4",
4
4
  "description": "BGI CLI — Bioinformatics AI terminal for Chinese researchers (百炼/DeepSeek/Kimi/Qwen)",
5
5
  "bin": {
6
6
  "bgi": "dist/bgi.js",