open-agents-ai 0.187.36 → 0.187.37

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.
Files changed (2) hide show
  1. package/dist/index.js +59 -100
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -292356,101 +292356,47 @@ function createDefaultBanner(version4 = "0.120.0") {
292356
292356
  const width = process.stdout.columns ?? 80;
292357
292357
  const rows = 3;
292358
292358
  const yellow = 178;
292359
- const bgDark = 234;
292360
- const particles = [
292361
- " ",
292362
- // 0: empty
292363
- "\u2801",
292364
- "\u2802",
292365
- // 1-2: sparse braille
292366
- "\u2596",
292367
- "\u2597",
292368
- // 3-4: ▖▗ single quadrants
292369
- "\u2598",
292370
- "\u259D",
292371
- // 5-6: ▘▝ upper quadrants
292372
- "\u259E",
292373
- "\u259A",
292374
- // 7-8: ▞▚ diagonals
292375
- "\xB7",
292376
- "\u2591",
292377
- // 9-10: · (dot + light shade)
292378
- "\u2599",
292379
- "\u259B",
292380
- // 11-12: ▙▛ three-quarter fills
292381
- "\u2592",
292382
- // 13: ▒ medium shade
292383
- "\u259C",
292384
- "\u259F",
292385
- // 14-15: ▜▟ three-quarter fills
292386
- "\u2593",
292387
- // 16: dark shade
292388
- "\u2588"
292389
- // 17: full block
292390
- ];
292391
- const hash = (r2, c4, frame) => {
292392
- const x = r2 * 7 + c4 * 13 + frame * 3 + 37;
292393
- return (x * x * 31 + x * 17 + 59) % 97 / 97;
292394
- };
292395
- const frameCount = 8;
292396
- const frames = [];
292397
- for (let f2 = 0; f2 < frameCount; f2++) {
292398
- const grid = [];
292399
- for (let r2 = 0; r2 < rows; r2++) {
292400
- const row = [];
292401
- for (let c4 = 0; c4 < width; c4++) {
292402
- const fadeStart = Math.floor(width * 0.45);
292403
- const solidStart = Math.floor(width * 0.85);
292404
- if (c4 >= fadeStart) {
292405
- const progress = Math.min(1, (c4 - fadeStart) / Math.max(1, solidStart - fadeStart));
292406
- const wave = Math.sin(c4 * 0.15 + f2 * 0.5 + r2 * 1.2) * 0.15;
292407
- const density = progress * progress + wave;
292408
- const noise2 = hash(r2, c4, f2);
292409
- if (noise2 < density) {
292410
- const charIdx = Math.min(particles.length - 1, Math.floor(Math.max(0, density) * particles.length));
292411
- row.push({ char: particles[charIdx], fg: yellow, bg: bgDark, bold: false });
292412
- } else {
292413
- row.push({ char: " ", fg: 0, bg: bgDark, bold: false });
292414
- }
292415
- } else {
292416
- row.push({ char: " ", fg: 0, bg: bgDark, bold: false });
292417
- }
292418
- }
292419
- grid.push(row);
292420
- }
292421
- const mnemonic = getNodeMnemonic();
292422
- const versionText = ` OA v${version4}`;
292423
- const mnemonicSuffix = ` \xB7 ${mnemonic}`;
292424
- for (let i2 = 0; i2 < versionText.length && i2 < width; i2++) {
292425
- grid[0][i2] = { char: versionText[i2], fg: yellow, bg: bgDark, bold: true };
292426
- }
292427
- const mnemonicStart = versionText.length;
292428
- for (let i2 = 0; i2 < mnemonicSuffix.length && mnemonicStart + i2 < Math.floor(width * 0.44); i2++) {
292429
- grid[0][mnemonicStart + i2] = { char: mnemonicSuffix[i2], fg: 240, bg: bgDark, bold: false };
292430
- }
292431
- const cwd4 = process.cwd();
292432
- const shortCwd = cwd4.length > 40 ? "..." + cwd4.slice(-37) : cwd4;
292433
- const infoText = ` ${shortCwd}`;
292434
- for (let i2 = 0; i2 < infoText.length && i2 < Math.floor(width * 0.44); i2++) {
292435
- grid[1][i2] = { char: infoText[i2], fg: 245, bg: bgDark, bold: false };
292436
- }
292437
- const btnLabels = ["help", "voice", "cohere", "model"];
292438
- const btnBg = 236;
292439
- let bCol = 2;
292440
- for (const lbl of btnLabels) {
292441
- const padded = ` ${lbl} `;
292442
- for (let ci = 0; ci < padded.length && bCol + ci < Math.floor(width * 0.44); ci++) {
292443
- grid[2][bCol + ci] = { char: padded[ci], fg: 245, bg: btnBg, bold: false };
292444
- }
292445
- bCol += padded.length + 1;
292446
- }
292447
- frames.push({ grid, durationMs: 200 });
292448
- }
292359
+ const bgBlack = 0;
292360
+ const grid = [];
292361
+ const innerW = width - 2;
292362
+ const topRow = [];
292363
+ topRow.push({ char: "\u256D", fg: yellow, bg: bgBlack, bold: false });
292364
+ for (let c4 = 0; c4 < innerW; c4++) {
292365
+ topRow.push({ char: "\u2500", fg: yellow, bg: bgBlack, bold: false });
292366
+ }
292367
+ topRow.push({ char: "\u256E", fg: yellow, bg: bgBlack, bold: false });
292368
+ grid.push(topRow);
292369
+ const mnemonic = getNodeMnemonic();
292370
+ const cwd4 = process.cwd();
292371
+ const shortCwd = cwd4.length > 30 ? "..." + cwd4.slice(-27) : cwd4;
292372
+ const centerText = `Open Agents v${version4} \xB7 ${mnemonic} \xB7 ${shortCwd}`;
292373
+ const textLen = centerText.length;
292374
+ const leftPad = Math.max(0, Math.floor((innerW - textLen) / 2));
292375
+ const rightPad = Math.max(0, innerW - textLen - leftPad);
292376
+ const midRow = [];
292377
+ midRow.push({ char: "\u2502", fg: yellow, bg: bgBlack, bold: false });
292378
+ for (let i2 = 0; i2 < leftPad; i2++)
292379
+ midRow.push({ char: " ", fg: 0, bg: bgBlack, bold: false });
292380
+ for (let i2 = 0; i2 < centerText.length && i2 < innerW; i2++) {
292381
+ midRow.push({ char: centerText[i2], fg: yellow, bg: bgBlack, bold: true });
292382
+ }
292383
+ for (let i2 = 0; i2 < rightPad; i2++)
292384
+ midRow.push({ char: " ", fg: 0, bg: bgBlack, bold: false });
292385
+ midRow.push({ char: "\u2502", fg: yellow, bg: bgBlack, bold: false });
292386
+ grid.push(midRow);
292387
+ const botRow = [];
292388
+ botRow.push({ char: "\u2570", fg: yellow, bg: bgBlack, bold: false });
292389
+ for (let c4 = 0; c4 < innerW; c4++) {
292390
+ botRow.push({ char: "\u2500", fg: yellow, bg: bgBlack, bold: false });
292391
+ }
292392
+ botRow.push({ char: "\u256F", fg: yellow, bg: bgBlack, bold: false });
292393
+ grid.push(botRow);
292449
292394
  return {
292450
292395
  id: "default-header",
292451
292396
  name: "OA Default Header",
292452
292397
  type: "default",
292453
- frames,
292398
+ frames: [{ grid, durationMs: 0 }],
292399
+ // Single static frame, no animation
292454
292400
  alignment: ["left", "center", "left"],
292455
292401
  flowSpeed: [0, 0, 0],
292456
292402
  author: "system",
@@ -299401,7 +299347,7 @@ function setTerminalTitle(task, version4) {
299401
299347
  const title = task ? `${task.slice(0, 60)} \xB7 ${ver}` : ver;
299402
299348
  process.stdout.write(`\x1B]2;${title}\x07`);
299403
299349
  }
299404
- var EXPERT_TOOL_BASELINES, CONTEXT_SWITCH_OVERHEAD, TURN_PLANNING_OVERHEAD, DEFAULT_TOOL_BASELINE, CODE_READ_CHARS_PER_SEC, PROSE_READ_CHARS_PER_SEC, MIN_CONTENT_FOR_READING, CODE_CONTENT_TOOLS, PROSE_CONTENT_TOOLS, HumanSpeedTracker, PANEL_BG, CONTENT_BG, TEXT_PRIMARY, TEXT_DIM, PANEL_BG_SEQ, CONTENT_BG_SEQ, RESET, _isWindows, StatusBar;
299350
+ var EXPERT_TOOL_BASELINES, CONTEXT_SWITCH_OVERHEAD, TURN_PLANNING_OVERHEAD, DEFAULT_TOOL_BASELINE, CODE_READ_CHARS_PER_SEC, PROSE_READ_CHARS_PER_SEC, MIN_CONTENT_FOR_READING, CODE_CONTENT_TOOLS, PROSE_CONTENT_TOOLS, HumanSpeedTracker, PANEL_BG, CONTENT_BG, TEXT_PRIMARY, TEXT_DIM, BOX_COLOR, PANEL_BG_SEQ, CONTENT_BG_SEQ, BOX_TL, BOX_TR, BOX_BL, BOX_BR, BOX_H, BOX_V, BOX_FG, RESET, _isWindows, StatusBar;
299405
299351
  var init_status_bar = __esm({
299406
299352
  "packages/cli/dist/tui/status-bar.js"() {
299407
299353
  "use strict";
@@ -299567,12 +299513,20 @@ var init_status_bar = __esm({
299567
299513
  return this.toolCalls > 0;
299568
299514
  }
299569
299515
  };
299570
- PANEL_BG = 234;
299571
- CONTENT_BG = 233;
299516
+ PANEL_BG = 0;
299517
+ CONTENT_BG = 0;
299572
299518
  TEXT_PRIMARY = 178;
299573
299519
  TEXT_DIM = 240;
299520
+ BOX_COLOR = 178;
299574
299521
  PANEL_BG_SEQ = `\x1B[48;5;${PANEL_BG}m`;
299575
299522
  CONTENT_BG_SEQ = `\x1B[48;5;${CONTENT_BG}m`;
299523
+ BOX_TL = "\u256D";
299524
+ BOX_TR = "\u256E";
299525
+ BOX_BL = "\u2570";
299526
+ BOX_BR = "\u256F";
299527
+ BOX_H = "\u2500";
299528
+ BOX_V = "\u2502";
299529
+ BOX_FG = `\x1B[38;5;${BOX_COLOR}m`;
299576
299530
  RESET = "\x1B[0m";
299577
299531
  _isWindows = process.platform === "win32";
299578
299532
  StatusBar = class _StatusBar {
@@ -301378,7 +301332,7 @@ ${CONTENT_BG_SEQ}`);
301378
301332
  this._updateSuggestions();
301379
301333
  const inputLines = this.computeInputLineCount(termWidth);
301380
301334
  const suggestionRows = this._suggestions.length > 0 ? this._suggestions.length : 1;
301381
- const newHeight = 1 + inputLines + suggestionRows;
301335
+ const newHeight = 1 + 1 + inputLines + suggestionRows;
301382
301336
  if (newHeight !== this._currentFooterHeight) {
301383
301337
  this._currentFooterHeight = newHeight;
301384
301338
  return true;
@@ -301390,7 +301344,7 @@ ${CONTENT_BG_SEQ}`);
301390
301344
  this._updateSuggestions();
301391
301345
  const inputLines = this.computeInputLineCount(termWidth);
301392
301346
  const suggestionRows = this._suggestions.length > 0 ? this._suggestions.length : 1;
301393
- return 1 + inputLines + suggestionRows !== this._currentFooterHeight;
301347
+ return 1 + 1 + inputLines + suggestionRows !== this._currentFooterHeight;
301394
301348
  }
301395
301349
  /** Compute absolute row positions for all footer elements.
301396
301350
  * Layout (top to bottom): input → suggestions/braille → metrics.
@@ -301516,12 +301470,17 @@ ${CONTENT_BG_SEQ}`);
301516
301470
  }
301517
301471
  const inputWrap = this.wrapInput(w);
301518
301472
  let buf = "\x1B[?7l";
301473
+ const boxInner = w - 2;
301474
+ buf += `\x1B[${pos.inputStartRow};1H${PANEL_BG_SEQ}\x1B[2K${BOX_FG}${BOX_TL}${BOX_H.repeat(Math.max(0, boxInner))}${BOX_TR}${RESET}`;
301519
301475
  for (let i2 = 0; i2 < inputWrap.lines.length; i2++) {
301520
- const row = pos.inputStartRow + i2;
301476
+ const row = pos.inputStartRow + 1 + i2;
301521
301477
  const prefix = i2 === 0 ? this.promptText : " ".repeat(this.promptWidth);
301522
- buf += `\x1B[${row};1H${PANEL_BG_SEQ}\x1B[2K${prefix}${inputWrap.lines[i2]}${RESET}`;
301478
+ const lineContent = `${prefix}${inputWrap.lines[i2]}`;
301479
+ const visLen = this.promptWidth + (inputWrap.lines[i2]?.length ?? 0);
301480
+ const pad = Math.max(0, boxInner - visLen);
301481
+ buf += `\x1B[${row};1H${PANEL_BG_SEQ}\x1B[2K${BOX_FG}${BOX_V}${RESET}${PANEL_BG_SEQ}${lineContent}${" ".repeat(pad)}${BOX_FG}${BOX_V}${RESET}`;
301523
301482
  }
301524
- const cursorTermRow = pos.inputStartRow + inputWrap.cursorRow;
301483
+ const cursorTermRow = pos.inputStartRow + 1 + inputWrap.cursorRow;
301525
301484
  if (pos.tabBarRow > 0) {
301526
301485
  buf += `\x1B[${pos.tabBarRow};1H${PANEL_BG_SEQ}\x1B[2K${RESET}`;
301527
301486
  }
@@ -301539,7 +301498,7 @@ ${CONTENT_BG_SEQ}`);
301539
301498
  buf += `${RESET}`;
301540
301499
  }
301541
301500
  } else {
301542
- buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildBufferContent(w)}${RESET}`;
301501
+ buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${BOX_FG}${BOX_BL}${BOX_H.repeat(Math.max(0, boxInner))}${BOX_BR}${RESET}`;
301543
301502
  }
301544
301503
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET}`;
301545
301504
  const focusChar = this._getFocusQuadrant();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.36",
3
+ "version": "0.187.37",
4
4
  "description": "AI coding agent powered by open-source models (Ollama/vLLM) — interactive TUI with agentic tool-calling loop",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",