open-agents-ai 0.138.45 → 0.138.47

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 -28
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -51435,7 +51435,7 @@ var init_status_bar = __esm({
51435
51435
  } else {
51436
51436
  this.applyScrollRegion();
51437
51437
  let clearBuf = "\x1B[?7l";
51438
- for (let row = clearStart; row <= rows; row++) {
51438
+ for (let row = pos.scrollEnd + 1; row <= rows; row++) {
51439
51439
  clearBuf += `\x1B[${row};1H\x1B[2K`;
51440
51440
  }
51441
51441
  clearBuf += "\x1B[?7h";
@@ -51586,7 +51586,7 @@ ${CONTENT_BG_SEQ}`);
51586
51586
  const lineIdx = startIdx + row;
51587
51587
  const line = lineIdx < totalLines ? this._contentLines[lineIdx] : "";
51588
51588
  const screenRow = this.scrollRegionTop + row;
51589
- buf += `\x1B[${screenRow};1H\x1B[2K${line}`;
51589
+ buf += `\x1B[${screenRow};1H${CONTENT_BG_SEQ}\x1B[2K${line}`;
51590
51590
  }
51591
51591
  if (this._contentScrollOffset > 0) {
51592
51592
  const linesAbove = startIdx;
@@ -52271,26 +52271,14 @@ ${CONTENT_BG_SEQ}`);
52271
52271
  self.scrollContentDown(1);
52272
52272
  return;
52273
52273
  }
52274
- const dir = key.name;
52275
- if (dir === arrowBurstDir) {
52276
- arrowBurst++;
52277
- } else {
52278
- arrowBurst = 1;
52279
- arrowBurstDir = dir;
52280
- }
52281
- if (arrowBurstTimer)
52282
- clearTimeout(arrowBurstTimer);
52283
- arrowBurstTimer = setTimeout(() => {
52284
- arrowBurst = 0;
52285
- arrowBurstDir = "";
52286
- }, 80);
52287
- if (arrowBurst >= 3) {
52288
- if (dir === "up")
52274
+ if (self._contentScrollOffset > 0) {
52275
+ if (key.name === "up")
52289
52276
  self.scrollContentUp(1);
52290
52277
  else
52291
52278
  self.scrollContentDown(1);
52292
52279
  return;
52293
52280
  }
52281
+ return origTtyWrite(s, key);
52294
52282
  }
52295
52283
  if (key?.name === "pageup" || s === "\x1B[5~") {
52296
52284
  self.pageUpContent();
@@ -52385,10 +52373,11 @@ var init_mouse_filter = __esm({
52385
52373
  const mouseMatch = remaining.match(/^\x1B\[<(\d+);(\d+);(\d+)([Mm])/);
52386
52374
  if (mouseMatch) {
52387
52375
  const btn = parseInt(mouseMatch[1]);
52388
- if (btn === 64 && this.onScroll)
52389
- this.onScroll("up", 3);
52390
- else if (btn === 65 && this.onScroll)
52391
- this.onScroll("down", 3);
52376
+ const row = parseInt(mouseMatch[3]);
52377
+ if ((btn === 64 || btn === 96) && this.onScroll)
52378
+ this.onScroll("up", 3, row);
52379
+ else if ((btn === 65 || btn === 97) && this.onScroll)
52380
+ this.onScroll("down", 3, row);
52392
52381
  i += mouseMatch[0].length;
52393
52382
  continue;
52394
52383
  }
@@ -53606,7 +53595,7 @@ async function startInteractive(config, repoPath) {
53606
53595
  initOaDirectory(repoRoot);
53607
53596
  const savedSettings = resolveSettings(repoRoot);
53608
53597
  if (process.stdout.isTTY) {
53609
- process.stdout.write("\x1B[?1002l\x1B[?1003l\x1B[?1006l\x1B[?1015l\x1B[?1049h\x1B[48;5;233m\x1B[2J\x1B[3J\x1B[H\x1B[?25l");
53598
+ process.stdout.write("\x1B[?1002l\x1B[?1003l\x1B[?1006l\x1B[?1015l\x1B[?1049h\x1B[48;5;233m\x1B[2J\x1B[3J\x1B[H\x1B[?25l\x1B[?1002h\x1B[?1006h");
53610
53599
  const restoreScreen = () => {
53611
53600
  process.stdout.write("\x1B[?1002l\x1B[?1003l\x1B[?1006l\x1B[?1015l\x1B[?25h\x1B[?1049l");
53612
53601
  };
@@ -53692,7 +53681,7 @@ async function startInteractive(config, repoPath) {
53692
53681
  const statusBar = new StatusBar();
53693
53682
  statusBar.setVersion(version);
53694
53683
  if (process.stdout.isTTY) {
53695
- const scrollTop = carouselLines > 0 ? carouselLines + 1 : 1;
53684
+ const scrollTop = carouselLines > 0 ? carouselLines : 1;
53696
53685
  statusBar.activate(scrollTop);
53697
53686
  statusBar.setBannerRefresh(() => banner.renderCurrentFrame());
53698
53687
  const { onOverlayLeave: onOverlayLeave2 } = await Promise.resolve().then(() => (init_overlay_lock(), overlay_lock_exports));
@@ -54064,11 +54053,21 @@ Rationale: ${proposal.rationale}${provenanceNote}`;
54064
54053
  } catch {
54065
54054
  }
54066
54055
  const { MouseFilterStream: MouseFilterStream2 } = await Promise.resolve().then(() => (init_mouse_filter(), mouse_filter_exports));
54067
- const mouseFilter = new MouseFilterStream2((direction, lines) => {
54068
- if (direction === "up")
54069
- statusBar.scrollContentUp(lines);
54070
- else
54071
- statusBar.scrollContentDown(lines);
54056
+ let origTtyWriteRef = null;
54057
+ const mouseFilter = new MouseFilterStream2((direction, lines, row) => {
54058
+ const rows = process.stdout.rows ?? 24;
54059
+ const fh = statusBar._currentFooterHeight ?? 3;
54060
+ const footerStart = rows - fh + 1;
54061
+ if (row >= footerStart) {
54062
+ const arrowKey = direction === "up" ? { name: "up" } : { name: "down" };
54063
+ const arrowSeq = direction === "up" ? "\x1B[A" : "\x1B[B";
54064
+ origTtyWriteRef?.(arrowSeq, arrowKey);
54065
+ } else {
54066
+ if (direction === "up")
54067
+ statusBar.scrollContentUp(lines);
54068
+ else
54069
+ statusBar.scrollContentDown(lines);
54070
+ }
54072
54071
  });
54073
54072
  process.stdin.pipe(mouseFilter);
54074
54073
  const rl = readline2.createInterface({
@@ -54080,6 +54079,7 @@ Rationale: ${proposal.rationale}${provenanceNote}`;
54080
54079
  history: savedHistory,
54081
54080
  completer
54082
54081
  });
54082
+ origTtyWriteRef = rl._ttyWrite?.bind(rl) ?? null;
54083
54083
  let _escapeHandler = null;
54084
54084
  statusBar.hookReadlineScroll(rl, () => {
54085
54085
  _escapeHandler?.();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.138.45",
3
+ "version": "0.138.47",
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",