open-agents-ai 0.187.44 → 0.187.45

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 +12 -48
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -299721,32 +299721,6 @@ var init_status_bar = __esm({
299721
299721
  * every 2 seconds so status dots update (running → stopped, etc.).
299722
299722
  */
299723
299723
  ensureMonitorTimer() {
299724
- if (this._monitorTimer)
299725
- return;
299726
- if (!registry2.hasEntries)
299727
- return;
299728
- if (this._brailleSpinner.isRunning)
299729
- return;
299730
- this._monitorTimer = setInterval(() => {
299731
- if (!this.active)
299732
- return;
299733
- if (this._brailleSpinner.isRunning) {
299734
- if (this._monitorTimer) {
299735
- clearInterval(this._monitorTimer);
299736
- this._monitorTimer = null;
299737
- }
299738
- return;
299739
- }
299740
- if (!registry2.hasEntries) {
299741
- if (this._monitorTimer) {
299742
- clearInterval(this._monitorTimer);
299743
- this._monitorTimer = null;
299744
- }
299745
- this.renderBufferLine();
299746
- return;
299747
- }
299748
- this.renderBufferLine();
299749
- }, 2e3);
299750
299724
  }
299751
299725
  /**
299752
299726
  * Set the active tool for the braille spinner animation.
@@ -300757,7 +300731,8 @@ var init_status_bar = __esm({
300757
300731
  const prefix = i2 === 0 ? this.promptText : " ".repeat(this.promptWidth);
300758
300732
  buf += `\x1B[${row};1H${PANEL_BG_SEQ}\x1B[2K${prefix}${inputWrap.lines[i2]}${RESET}`;
300759
300733
  }
300760
- buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildBufferContent(w)}${RESET}`;
300734
+ const boxInnerP = w - 2;
300735
+ buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${BOX_FG}${BOX_BL}${BOX_H.repeat(Math.max(0, boxInnerP))}${BOX_BR}${RESET}`;
300761
300736
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET}\x1B[?7h\x1B[${pos.scrollEnd};1H`;
300762
300737
  this.termWrite(buf);
300763
300738
  } else {
@@ -301380,13 +301355,8 @@ ${CONTENT_BG_SEQ}`);
301380
301355
  * If pos is at end of text, renders a reverse-video space (block cursor).
301381
301356
  * If pos is mid-text, renders the character at pos with reverse video.
301382
301357
  */
301383
- static insertVisualCursor(text, pos) {
301384
- const REV = "\x1B[7m";
301385
- const RST = "\x1B[0m";
301386
- if (pos >= text.length) {
301387
- return text + REV + " " + RST;
301388
- }
301389
- return text.slice(0, pos) + REV + text[pos] + RST + text.slice(pos + 1);
301358
+ static insertVisualCursor(text, _pos) {
301359
+ return text;
301390
301360
  }
301391
301361
  wrapInput(termWidth) {
301392
301362
  const availWidth = Math.max(1, termWidth - this.promptWidth);
@@ -301543,7 +301513,8 @@ ${CONTENT_BG_SEQ}`);
301543
301513
  buf += `\x1B[38;5;${TEXT_PRIMARY}m${cmd}${RESET}`;
301544
301514
  }
301545
301515
  } else {
301546
- buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildBufferContent(w)}${RESET}`;
301516
+ const boxInnerR = w - 2;
301517
+ buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${BOX_FG}${BOX_BL}${BOX_H.repeat(Math.max(0, boxInnerR))}${BOX_BR}${RESET}`;
301547
301518
  }
301548
301519
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET}\x1B[?7h\x1B8` + // DEC restore cursor
301549
301520
  (this.writeDepth === 0 ? "\x1B[?25h" : "");
@@ -301587,7 +301558,8 @@ ${CONTENT_BG_SEQ}`);
301587
301558
  const prefix = i2 === 0 ? this.promptText : " ".repeat(this.promptWidth);
301588
301559
  buf += `\x1B[${row};1H${PANEL_BG_SEQ}\x1B[2K${prefix}${inputWrap.lines[i2]}${RESET}`;
301589
301560
  }
301590
- buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildBufferContent(w)}${RESET}`;
301561
+ const boxInnerS = w - 2;
301562
+ buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${BOX_FG}${BOX_BL}${BOX_H.repeat(Math.max(0, boxInnerS))}${BOX_BR}${RESET}`;
301591
301563
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET}`;
301592
301564
  buf += "\x1B[?7h";
301593
301565
  buf += "\x1B8";
@@ -301614,22 +301586,14 @@ ${CONTENT_BG_SEQ}`);
301614
301586
  * When daemons/agents are tracked: shows monitoring bar with status dots.
301615
301587
  * Otherwise: braille animation when processing, empty when idle.
301616
301588
  */
301617
- buildBufferContent(_width) {
301618
- return "";
301619
- }
301589
+ // buildBufferContent() removed — buffer row is now the static ╰─╯ box border,
301590
+ // rendered inline by renderFooterAndPositionInput() and renderFooterPreserveCursor().
301620
301591
  /**
301621
301592
  * Render ONLY the buffer line using DEC save/restore cursor.
301622
301593
  * Called by the braille spinner timer without disrupting scroll or input.
301623
301594
  */
301624
- renderBufferLine() {
301625
- if (!this.active)
301626
- return;
301627
- const rows = process.stdout.rows ?? 24;
301628
- const w = getTermWidth();
301629
- const pos = this.rowPositions(rows);
301630
- const content = this.buildBufferContent(w);
301631
- this.termWrite(`\x1B7\x1B[?7l\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${content}${RESET}\x1B[?7h\x1B8`);
301632
- }
301595
+ // renderBufferLine() removed — buffer row is now the static ╰─╯ box border.
301596
+ // The border is drawn by renderFooterAndPositionInput() and never needs refresh.
301633
301597
  /**
301634
301598
  * Hook into process.stdin to redraw footer after every keystroke.
301635
301599
  * Since readline's output is suppressed (redirected to a no-op stream),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.44",
3
+ "version": "0.187.45",
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",