bravecode-cli 0.1.7 → 0.1.9

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/cli.cjs CHANGED
@@ -40727,29 +40727,47 @@ async function startSimpleTUI(model, agentId) {
40727
40727
  model: modelName
40728
40728
  });
40729
40729
  const termWidth = process.stdout.columns || 80;
40730
- console.clear();
40730
+ const termHeight = process.stdout.rows || 24;
40731
+ process.stdout.write("\x1B[2J");
40732
+ process.stdout.write("\x1B[H");
40733
+ process.stdout.write("\x1B[?25l");
40731
40734
  const bannerLines = BANNER.trim().split("\n");
40735
+ const bannerHeight = bannerLines.length;
40736
+ const inputBoxHeight = 4;
40737
+ const modelInfoHeight = 2;
40738
+ const hintsHeight = 1;
40739
+ const totalContentHeight = bannerHeight + inputBoxHeight + modelInfoHeight + hintsHeight + 4;
40740
+ const topPadding = Math.max(0, Math.floor((termHeight - totalContentHeight) / 2));
40741
+ for (let i = 0; i < topPadding; i++) {
40742
+ process.stdout.write("\n");
40743
+ }
40732
40744
  const maxBannerWidth = Math.max(...bannerLines.map((l) => l.length));
40733
40745
  const bannerPadding = Math.max(0, Math.floor((termWidth - maxBannerWidth) / 2));
40734
- console.log("\n".repeat(2));
40735
40746
  for (const line of bannerLines) {
40736
- console.log(" ".repeat(bannerPadding) + "\x1B[1m\x1B[37m" + line + "\x1B[0m");
40747
+ process.stdout.write(" ".repeat(bannerPadding) + "\x1B[1m\x1B[37m" + line + "\x1B[0m\n");
40737
40748
  }
40738
- console.log("\n".repeat(2));
40749
+ process.stdout.write("\n\n");
40739
40750
  const boxWidth = Math.min(60, termWidth - 4);
40740
40751
  const boxPadding = Math.max(0, Math.floor((termWidth - boxWidth) / 2));
40741
- console.log(" ".repeat(boxPadding) + "\x1B[90m\u250C" + "\u2500".repeat(boxWidth - 2) + "\u2510\x1B[0m");
40742
- console.log(
40743
- " ".repeat(boxPadding) + '\x1B[90m\u2502\x1B[0m \x1B[90mAsk anything... "What is the tech stack of this project?"\x1B[0m' + " ".repeat(Math.max(0, boxWidth - 48)) + "\x1B[90m\u2502\x1B[0m"
40752
+ process.stdout.write(" ".repeat(boxPadding) + "\x1B[90m\u250C" + "\u2500".repeat(boxWidth - 2) + "\u2510\x1B[0m\n");
40753
+ process.stdout.write(
40754
+ " ".repeat(boxPadding) + '\x1B[90m\u2502\x1B[0m \x1B[90mAsk anything... "What is the tech stack of this project?"\x1B[0m' + " ".repeat(Math.max(0, boxWidth - 50)) + "\x1B[90m\u2502\x1B[0m\n"
40744
40755
  );
40745
- console.log(" ".repeat(boxPadding) + "\x1B[90m\u2514" + "\u2500".repeat(boxWidth - 2) + "\u2518\x1B[0m");
40746
- console.log("");
40747
- console.log(
40748
- " ".repeat(boxPadding) + "\x1B[36m" + agentName + "\x1B[0m \x1B[90m\xB7\x1B[0m \x1B[37m" + modelName + "\x1B[0m"
40756
+ process.stdout.write(" ".repeat(boxPadding) + "\x1B[90m\u2514" + "\u2500".repeat(boxWidth - 2) + "\u2518\x1B[0m\n");
40757
+ process.stdout.write("\n");
40758
+ const modelInfo = `\x1B[36m${agentName}\x1B[0m \x1B[90m\xB7\x1B[0m \x1B[37m${modelName}\x1B[0m \x1B[90mBraveCode AI\x1B[0m`;
40759
+ const modelInfoWidth = agentName.length + modelName.length + 14;
40760
+ const modelInfoPadding = Math.max(0, Math.floor((termWidth - modelInfoWidth) / 2));
40761
+ process.stdout.write(" ".repeat(modelInfoPadding) + modelInfo + "\n");
40762
+ process.stdout.write("\n");
40763
+ const hints = "\x1B[90mtab agents ctrl+p commands\x1B[0m";
40764
+ const hintsPadding = Math.max(0, Math.floor((termWidth - 30) / 2));
40765
+ process.stdout.write(" ".repeat(hintsPadding) + hints + "\n\n");
40766
+ process.stdout.write("\x1B[?25h");
40767
+ process.stdout.write("\x1B[90m" + "\u2500".repeat(termWidth) + "\x1B[0m\n");
40768
+ process.stdout.write(
40769
+ "\x1B[90m" + process.cwd().replace(/^\/home\/[^/]+/, "~") + " \x1B[32m\u25CF\x1B[0m 0 MCP /status" + " ".repeat(Math.max(0, termWidth - 50)) + "0.1.0\x1B[0m"
40749
40770
  );
40750
- console.log("");
40751
- console.log(" ".repeat(boxPadding) + "\x1B[90mtab agents ctrl+p commands\x1B[0m");
40752
- console.log("\n");
40753
40771
  const rl = readline.createInterface({
40754
40772
  input: process.stdin,
40755
40773
  output: process.stdout
@@ -40758,7 +40776,9 @@ async function startSimpleTUI(model, agentId) {
40758
40776
  rl.question("\x1B[36m>\x1B[0m ", async (input) => {
40759
40777
  const trimmed = input.trim();
40760
40778
  if (trimmed === "exit" || trimmed === "quit") {
40779
+ process.stdout.write("\x1B[?25l");
40761
40780
  console.log("\n\x1B[90mGoodbye!\x1B[0m");
40781
+ process.stdout.write("\x1B[?25h");
40762
40782
  rl.close();
40763
40783
  process.exit(0);
40764
40784
  }
@@ -40766,7 +40786,11 @@ async function startSimpleTUI(model, agentId) {
40766
40786
  prompt();
40767
40787
  return;
40768
40788
  }
40789
+ process.stdout.write("\x1B[2J");
40790
+ process.stdout.write("\x1B[H");
40769
40791
  console.log("\x1B[90m" + trimmed + "\x1B[0m\n");
40792
+ console.log(`\x1B[36m\u25A0 ${agentName}\x1B[0m \x1B[90m\xB7\x1B[0m \x1B[37m${modelName}\x1B[0m
40793
+ `);
40770
40794
  try {
40771
40795
  let response = "";
40772
40796
  await agent.run(trimmed, (chunk) => {
@@ -40779,11 +40803,20 @@ async function startSimpleTUI(model, agentId) {
40779
40803
  \x1B[31mError: ${error40.message}\x1B[0m
40780
40804
  `);
40781
40805
  }
40806
+ process.stdout.write("\n");
40807
+ process.stdout.write(" ".repeat(boxPadding) + "\x1B[90m\u250C" + "\u2500".repeat(boxWidth - 2) + "\u2510\x1B[0m\n");
40808
+ process.stdout.write(
40809
+ " ".repeat(boxPadding) + '\x1B[90m\u2502\x1B[0m \x1B[90mAsk anything... "What is the tech stack of this project?"\x1B[0m' + " ".repeat(Math.max(0, boxWidth - 50)) + "\x1B[90m\u2502\x1B[0m\n"
40810
+ );
40811
+ process.stdout.write(" ".repeat(boxPadding) + "\x1B[90m\u2514" + "\u2500".repeat(boxWidth - 2) + "\u2518\x1B[0m\n");
40812
+ process.stdout.write("\n");
40782
40813
  prompt();
40783
40814
  });
40784
40815
  };
40785
40816
  rl.on("SIGINT", () => {
40817
+ process.stdout.write("\x1B[?25l");
40786
40818
  console.log("\n\x1B[90mGoodbye!\x1B[0m");
40819
+ process.stdout.write("\x1B[?25h");
40787
40820
  rl.close();
40788
40821
  process.exit(0);
40789
40822
  });
@@ -40798,11 +40831,11 @@ var init_simple_tui = __esm({
40798
40831
  init_tool();
40799
40832
  init_agent();
40800
40833
  BANNER = `
40801
- ____ _ __ __ ____ _ __
40802
- | __ ) _ __ _____ _(_)___/ /__ / / | __ )_ __(_)___ ____ _/ /_____ _____
40803
- | _ \\| '__/ _ \\ \\ / / / __/ //_/ / / | _ \\| '__/ __ \\ / __ \`/ __/ __ \\/ ___/
40804
- | |_) | | | (_) \\ V / / /__/ , < / / | |_) | | | / / / / /_/ / /_/ /_/ / /
40805
- |____/|_| \\___/ \\_/_/\\___/_/|_| /_/ |____/|_| /_/ /_/\\__,_/\\__/\\____/_/
40834
+ ____ _ __ __ ____ _ __
40835
+ | __ ) _ __ _____ _(_)___/ /__ / / | __ )_ __(_)___ ____ _/ /_____ _____
40836
+ | _ \\| '__/ _ \\ \\ / / / __/ //_/ / / | _ \\| '__/ __ \\ / __ \`/ __/ __ \\/ ___/
40837
+ | |_) | | | (_) \\ V / / /__/ , < / / | |_) | | | / / / / /_/ / /_/ /_/ / /
40838
+ |____/|_| \\___/ \\_/_/\\___/_/|_| /_/ |____/|_| /_/ /_/\\__,_/\\__/\\____/_/
40806
40839
  `;
40807
40840
  }
40808
40841
  });
@@ -41429,11 +41462,12 @@ var import_fs9 = require("fs");
41429
41462
  var import_path7 = require("path");
41430
41463
  var program2 = new Command();
41431
41464
  var BANNER2 = `
41432
- ____ _ __ __ ____ _ __
41433
- | __ ) _ __ _____ _(_)___/ /__ / / | __ )_ __(_)___ ____ _/ /_____ _____
41434
- | _ \\| '__/ _ \\ \\ / / / __/ //_/ / / | _ \\| '__/ __ \\ / __ \`/ __/ __ \\/ ___/
41435
- | |_) | | | (_) \\ V / / /__/ , < / / | |_) | | | / / / / /_/ / /_/ /_/ / /
41436
- |____/|_| \\___/ \\_/_/\\___/_/|_| /_/ |____/|_| /_/ /_/\\__,_/\\__/\\____/_/
41465
+ \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557
41466
+ \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D
41467
+ \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557
41468
+ \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551
41469
+ \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u255A\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\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551
41470
+ \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D
41437
41471
  `;
41438
41472
  program2.name("bravecode").description("BraveCode AI - Agentic AI Vibe Coding CLI with free model support").version("0.1.2").action(async () => {
41439
41473
  console.log(BANNER2);