open-agents-ai 0.187.41 → 0.187.43

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 +28 -85
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -277431,7 +277431,7 @@ var init_daemon_registry = __esm({
277431
277431
  */
277432
277432
  renderBar(width) {
277433
277433
  this.refresh();
277434
- const PANEL_BG2 = "\x1B[48;5;0m";
277434
+ const PANEL_BG = "\x1B[48;5;0m";
277435
277435
  const BTN_BG = "\x1B[48;5;0m";
277436
277436
  let bar = "";
277437
277437
  for (const [, d2] of this.daemons) {
@@ -277445,7 +277445,7 @@ var init_daemon_registry = __esm({
277445
277445
  )
277446
277446
  )
277447
277447
  );
277448
- bar += `${PANEL_BG2} ${BTN_BG}\x1B[35m ${d2.name} \x1B[${dotColor}m\u25CF\x1B[35m `;
277448
+ bar += `${PANEL_BG} ${BTN_BG}\x1B[35m ${d2.name} \x1B[${dotColor}m\u25CF\x1B[35m `;
277449
277449
  }
277450
277450
  for (const [, a2] of this.subAgents) {
277451
277451
  if (a2.status === "completed")
@@ -277453,12 +277453,12 @@ var init_daemon_registry = __esm({
277453
277453
  const dotColor = a2.status === "active" ? "32" : "33";
277454
277454
  const fgColor = a2.type === "call" ? "33" : "36";
277455
277455
  const label = `${a2.type}:${a2.id.length > 6 ? a2.id.slice(-6) : a2.id}`;
277456
- bar += `${PANEL_BG2} ${BTN_BG}\x1B[${fgColor}m ${label} \x1B[${dotColor}m\u25CF\x1B[${fgColor}m `;
277456
+ bar += `${PANEL_BG} ${BTN_BG}\x1B[${fgColor}m ${label} \x1B[${dotColor}m\u25CF\x1B[${fgColor}m `;
277457
277457
  }
277458
277458
  if (!bar) {
277459
- return `${PANEL_BG2} \x1B[38;5;240m\u2800 no active daemons`;
277459
+ return `${PANEL_BG} \x1B[38;5;240m\u2800 no active daemons`;
277460
277460
  }
277461
- return bar + PANEL_BG2;
277461
+ return bar + PANEL_BG;
277462
277462
  }
277463
277463
  /** True if any daemons or sub-agents are registered */
277464
277464
  get hasEntries() {
@@ -299035,32 +299035,8 @@ function copyText(text) {
299035
299035
  }
299036
299036
  return false;
299037
299037
  }
299038
- function computeHeaderButtons(termWidth) {
299039
- const buttons = [
299040
- { display: "help", command: "/help" },
299041
- { display: "voice", command: "/voice" },
299042
- { display: "cohere", command: "/cohere" },
299043
- { display: "model", command: "/model" }
299044
- ];
299045
- const GAP = 1;
299046
- const result = [];
299047
- let col = 3;
299048
- for (const btn of buttons) {
299049
- const label = ` ${btn.display} `;
299050
- const startCol = col;
299051
- const endCol = col + label.length - 1;
299052
- if (endCol >= termWidth)
299053
- break;
299054
- result.push({
299055
- label,
299056
- command: btn.command,
299057
- startCol,
299058
- endCol,
299059
- row: 3
299060
- });
299061
- col = endCol + GAP + 1;
299062
- }
299063
- return result;
299038
+ function computeHeaderButtons(_termWidth) {
299039
+ return [];
299064
299040
  }
299065
299041
  function setHoveredButton(cmd) {
299066
299042
  _hoveredButtonCmd = cmd;
@@ -299068,27 +299044,8 @@ function setHoveredButton(cmd) {
299068
299044
  function setPressedButton(cmd) {
299069
299045
  _pressedButtonCmd = cmd;
299070
299046
  }
299071
- function renderHeaderButtons(termWidth) {
299072
- const buttons = computeHeaderButtons(termWidth);
299073
- if (buttons.length === 0)
299074
- return "";
299075
- let out = "";
299076
- for (const btn of buttons) {
299077
- let bg = BTN_REST_BG;
299078
- let fg2 = BTN_REST_FG;
299079
- if (_pressedButtonCmd === btn.command) {
299080
- bg = BTN_PRESS_BG;
299081
- fg2 = BTN_PRESS_FG;
299082
- } else if (_hoveredButtonCmd === btn.command) {
299083
- bg = BTN_HOVER_BG;
299084
- fg2 = BTN_HOVER_FG;
299085
- }
299086
- out += `\x1B[${btn.row};${btn.startCol}H`;
299087
- out += `\x1B]8;;oa-cmd:${btn.command}\x07`;
299088
- out += `\x1B[38;5;${fg2}m\x1B[48;5;${bg}m${btn.label}\x1B[0m`;
299089
- out += `\x1B]8;;\x07`;
299090
- }
299091
- return out;
299047
+ function renderHeaderButtons(_termWidth) {
299048
+ return "";
299092
299049
  }
299093
299050
  function setUpdateBadgeRegion(active, startCol, length4) {
299094
299051
  _updateBadgeActive = active;
@@ -299107,7 +299064,7 @@ function hitTestHeaderButton(row, col, termWidth) {
299107
299064
  }
299108
299065
  return null;
299109
299066
  }
299110
- var SEL_BG, SEL_FG, SEL_START, SEL_END, TextSelection, _clipboardAutoInstallAttempted, _hoveredButtonCmd, _pressedButtonCmd, BTN_REST_BG, BTN_REST_FG, BTN_HOVER_BG, BTN_HOVER_FG, BTN_PRESS_BG, BTN_PRESS_FG, _updateBadgeActive, _updateBadgeCol, _updateBadgeLen;
299067
+ var SEL_BG, SEL_FG, SEL_START, SEL_END, TextSelection, _clipboardAutoInstallAttempted, _hoveredButtonCmd, _pressedButtonCmd, _updateBadgeActive, _updateBadgeCol, _updateBadgeLen;
299111
299068
  var init_text_selection = __esm({
299112
299069
  "packages/cli/dist/tui/text-selection.js"() {
299113
299070
  "use strict";
@@ -299313,18 +299270,19 @@ var init_text_selection = __esm({
299313
299270
  _clipboardAutoInstallAttempted = false;
299314
299271
  _hoveredButtonCmd = null;
299315
299272
  _pressedButtonCmd = null;
299316
- BTN_REST_BG = 0;
299317
- BTN_REST_FG = 245;
299318
- BTN_HOVER_BG = 235;
299319
- BTN_HOVER_FG = 252;
299320
- BTN_PRESS_BG = 249;
299321
- BTN_PRESS_FG = 0;
299322
299273
  _updateBadgeActive = false;
299323
299274
  _updateBadgeCol = 0;
299324
299275
  _updateBadgeLen = 0;
299325
299276
  }
299326
299277
  });
299327
299278
 
299279
+ // packages/cli/dist/tui/theme.js
299280
+ var init_theme = __esm({
299281
+ "packages/cli/dist/tui/theme.js"() {
299282
+ "use strict";
299283
+ }
299284
+ });
299285
+
299328
299286
  // packages/cli/dist/tui/status-bar.js
299329
299287
  import { readFileSync as readFileSync45 } from "node:fs";
299330
299288
  function setTerminalTitle(task, version4) {
@@ -299334,7 +299292,7 @@ function setTerminalTitle(task, version4) {
299334
299292
  const title = task ? `${task.slice(0, 60)} \xB7 ${ver}` : ver;
299335
299293
  process.stdout.write(`\x1B]2;${title}\x07`);
299336
299294
  }
299337
- 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;
299295
+ 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, TEXT_PRIMARY, TEXT_DIM, PANEL_BG_SEQ, CONTENT_BG_SEQ, BOX_TL, BOX_TR, BOX_BL, BOX_BR, BOX_H, BOX_V, BOX_FG, RESET, _isWindows, StatusBar;
299338
299296
  var init_status_bar = __esm({
299339
299297
  "packages/cli/dist/tui/status-bar.js"() {
299340
299298
  "use strict";
@@ -299343,6 +299301,7 @@ var init_status_bar = __esm({
299343
299301
  init_system_metrics();
299344
299302
  init_text_selection();
299345
299303
  init_daemon_registry();
299304
+ init_theme();
299346
299305
  EXPERT_TOOL_BASELINES = {
299347
299306
  file_read: 12,
299348
299307
  structured_read: 15,
@@ -299500,20 +299459,17 @@ var init_status_bar = __esm({
299500
299459
  return this.toolCalls > 0;
299501
299460
  }
299502
299461
  };
299503
- PANEL_BG = 0;
299504
- CONTENT_BG = 0;
299505
299462
  TEXT_PRIMARY = 178;
299506
299463
  TEXT_DIM = 240;
299507
- BOX_COLOR = 178;
299508
- PANEL_BG_SEQ = `\x1B[48;5;${PANEL_BG}m`;
299509
- CONTENT_BG_SEQ = `\x1B[48;5;${CONTENT_BG}m`;
299464
+ PANEL_BG_SEQ = `\x1B[48;5;0m`;
299465
+ CONTENT_BG_SEQ = `\x1B[48;5;0m`;
299510
299466
  BOX_TL = "\u256D";
299511
299467
  BOX_TR = "\u256E";
299512
299468
  BOX_BL = "\u2570";
299513
299469
  BOX_BR = "\u256F";
299514
299470
  BOX_H = "\u2500";
299515
299471
  BOX_V = "\u2502";
299516
- BOX_FG = `\x1B[38;5;${BOX_COLOR}m`;
299472
+ BOX_FG = `\x1B[38;5;178m`;
299517
299473
  RESET = "\x1B[0m";
299518
299474
  _isWindows = process.platform === "win32";
299519
299475
  StatusBar = class _StatusBar {
@@ -300718,15 +300674,9 @@ var init_status_bar = __esm({
300718
300674
  return null;
300719
300675
  }
300720
300676
  /** Render header buttons overlay on banner row 3 */
300677
+ /** @deprecated Use refreshHeaderContent() — old button rendering retired */
300721
300678
  renderHeaderButtons() {
300722
- if (!this.active)
300723
- return;
300724
- const w = process.stdout.columns ?? 80;
300725
- const overlay = renderHeaderButtons(w);
300726
- if (overlay) {
300727
- const writer = this._origWrite ?? process.stdout.write.bind(process.stdout);
300728
- writer(overlay);
300729
- }
300679
+ this.refreshHeaderContent();
300730
300680
  }
300731
300681
  /** Set a callback to re-render the banner after resize/redraw */
300732
300682
  setBannerRefresh(refresh) {
@@ -301528,9 +301478,8 @@ ${CONTENT_BG_SEQ}`);
301528
301478
  const row = pos.inputStartRow + 1 + i2;
301529
301479
  const prefix = i2 === 0 ? this.promptText : " ".repeat(this.promptWidth);
301530
301480
  const lineContent = `${prefix}${inputWrap.lines[i2]}`;
301531
- const visLen = this.promptWidth + (inputWrap.lines[i2]?.length ?? 0);
301532
- const pad = Math.max(0, boxInner - visLen);
301533
- 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}`;
301481
+ buf += `\x1B[${row};1H${PANEL_BG_SEQ}\x1B[2K${BOX_FG}${BOX_V}${RESET}${PANEL_BG_SEQ}${lineContent}`;
301482
+ buf += `\x1B[${row};${w}H${BOX_FG}${BOX_V}${RESET}`;
301534
301483
  }
301535
301484
  const cursorTermRow = pos.inputStartRow + 1 + inputWrap.cursorRow;
301536
301485
  if (this._suggestions.length > 0 && pos.suggestStartRow > 0) {
@@ -301550,12 +301499,6 @@ ${CONTENT_BG_SEQ}`);
301550
301499
  buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${BOX_FG}${BOX_BL}${BOX_H.repeat(Math.max(0, boxInner))}${BOX_BR}${RESET}`;
301551
301500
  }
301552
301501
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET}`;
301553
- const focusChar = this._getFocusQuadrant();
301554
- if (this._focusedZone === "footer") {
301555
- buf += `\x1B[${pos.inputStartRow};1H\x1B[38;5;${TEXT_PRIMARY}m\x1B[48;5;${PANEL_BG}m${focusChar}\x1B[0m`;
301556
- } else if (this._focusedZone === "content") {
301557
- buf += `\x1B[${this.scrollRegionTop};1H\x1B[38;5;${TEXT_PRIMARY}m\x1B[48;5;${CONTENT_BG}m${focusChar}\x1B[0m`;
301558
- }
301559
301502
  buf += `\x1B[?7h\x1B[${cursorTermRow};${inputWrap.cursorCol}H\x1B[?25h`;
301560
301503
  this.termWrite(buf);
301561
301504
  }
@@ -308305,7 +308248,7 @@ async function startInteractive(config, repoPath) {
308305
308248
  const scrollTop = carouselLines > 0 ? carouselLines : 1;
308306
308249
  statusBar.activate(scrollTop);
308307
308250
  setTerminalTitle(void 0, version4);
308308
- banner.onAfterRender = () => statusBar.renderHeaderButtons();
308251
+ banner.onAfterRender = () => statusBar.refreshHeaderContent();
308309
308252
  _wireSubAgentCallbacks = (tool) => {
308310
308253
  tool.setCallbacks({
308311
308254
  onViewRegister: (id, label, type) => {
@@ -308496,7 +308439,7 @@ ${opts.systemPromptAddition}` : `Working directory: ${repoRoot}`;
308496
308439
  if (cohereEnabled) {
308497
308440
  statusBar.setCohereActive(true);
308498
308441
  }
308499
- statusBar.renderHeaderButtons();
308442
+ statusBar.refreshHeaderContent();
308500
308443
  if (isResumed) {
308501
308444
  statusBar.beginContentWrite();
308502
308445
  const { getLastTaskSummary: getLastTaskSummary2 } = (init_oa_directory(), __toCommonJS(oa_directory_exports));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.41",
3
+ "version": "0.187.43",
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",