open-agents-ai 0.138.6 → 0.138.8

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 +44 -27
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -38784,7 +38784,7 @@ var init_voice = __esm({
38784
38784
  return;
38785
38785
  const chunks = this.chunkText(text);
38786
38786
  if (this.speakQueue.length >= 30) {
38787
- this.speakQueue.length = 0;
38787
+ return;
38788
38788
  }
38789
38789
  for (const chunk of chunks) {
38790
38790
  this.speakQueue.push({ text: chunk, volume, pitchFactor, speedFactor, stereoDelayMs });
@@ -52209,6 +52209,40 @@ var init_status_bar = __esm({
52209
52209
  * cursor save/restore so the streaming position isn't disrupted.
52210
52210
  * When idle (writeDepth === 0), the full footer is redrawn.
52211
52211
  */
52212
+ /**
52213
+ * Hook into a readline instance to intercept scroll keys BEFORE readline
52214
+ * processes them. Monkey-patches readline._ttyWrite — the only way to
52215
+ * prevent Page Up/Down from becoming readline history navigation.
52216
+ *
52217
+ * Must be called after readline is created.
52218
+ */
52219
+ hookReadlineScroll(rl) {
52220
+ if (!rl || !rl._ttyWrite)
52221
+ return;
52222
+ const origTtyWrite = rl._ttyWrite.bind(rl);
52223
+ rl._ttyWrite = (s, key) => {
52224
+ if (!this.active)
52225
+ return origTtyWrite(s, key);
52226
+ const seq = s || "";
52227
+ if (key?.name === "pageup" || seq === "\x1B[5~") {
52228
+ this.pageUpContent();
52229
+ return;
52230
+ }
52231
+ if (key?.name === "pagedown" || seq === "\x1B[6~") {
52232
+ this.pageDownContent();
52233
+ return;
52234
+ }
52235
+ if (key?.shift && key?.name === "up" || seq === "\x1B[1;2A") {
52236
+ this.scrollContentUp(3);
52237
+ return;
52238
+ }
52239
+ if (key?.shift && key?.name === "down" || seq === "\x1B[1;2B") {
52240
+ this.scrollContentDown(3);
52241
+ return;
52242
+ }
52243
+ return origTtyWrite(s, key);
52244
+ };
52245
+ }
52212
52246
  hookStdin() {
52213
52247
  if (this.stdinHooked)
52214
52248
  return;
@@ -53858,6 +53892,7 @@ Rationale: ${proposal.rationale}${provenanceNote}`;
53858
53892
  history: savedHistory,
53859
53893
  completer
53860
53894
  });
53895
+ statusBar.hookReadlineScroll(rl);
53861
53896
  function persistHistoryLine(line) {
53862
53897
  if (!line.trim())
53863
53898
  return;
@@ -55214,8 +55249,10 @@ Respond concisely and safely. Remember: you are talking to the general public.`;
55214
55249
  if (!carouselRetired && carousel.isRunning) {
55215
55250
  carousel.stop();
55216
55251
  carouselRetired = true;
55217
- if (statusBar.isActive)
55218
- statusBar.setScrollRegionTop(1);
55252
+ const bannerActive = banner.getDesign() !== null;
55253
+ if (statusBar.isActive) {
55254
+ statusBar.setScrollRegionTop(bannerActive ? 5 : 1);
55255
+ }
55219
55256
  }
55220
55257
  },
55221
55258
  destroyProject() {
@@ -55528,8 +55565,9 @@ Execute this skill now. Follow the behavioral guidance above.`;
55528
55565
  if (!carouselRetired && carousel.isRunning) {
55529
55566
  carousel.stop();
55530
55567
  carouselRetired = true;
55568
+ const bannerActive = banner.getDesign() !== null;
55531
55569
  if (statusBar.isActive)
55532
- statusBar.setScrollRegionTop(1);
55570
+ statusBar.setScrollRegionTop(bannerActive ? 5 : 1);
55533
55571
  }
55534
55572
  writeContent(() => renderUserMessage(`/${cmdResult.name}${cmdResult.args ? " " + cmdResult.args : ""}`));
55535
55573
  lastSubmittedPrompt = skillPrompt;
@@ -55757,8 +55795,9 @@ Summarize or analyze this transcription as appropriate.`;
55757
55795
  if (!carouselRetired && carousel.isRunning) {
55758
55796
  carousel.stop();
55759
55797
  carouselRetired = true;
55798
+ const bannerActive = banner.getDesign() !== null;
55760
55799
  if (statusBar.isActive)
55761
- statusBar.setScrollRegionTop(1);
55800
+ statusBar.setScrollRegionTop(bannerActive ? 5 : 1);
55762
55801
  }
55763
55802
  const inputLineCount = fullInput.split("\n").length;
55764
55803
  const displayText = isImage ? `[Image: ${cleanPath}]` : inputLineCount > 1 ? `[pasted ${inputLineCount} lines]` : fullInput;
@@ -55999,28 +56038,6 @@ ${c2.dim("(Use /quit to exit)")}
55999
56038
  process.stdin.on("keypress", (_str, key) => {
56000
56039
  if (!key)
56001
56040
  return;
56002
- if (key.name === "pageup" || key.shift && key.name === "up") {
56003
- statusBar.pageUpContent();
56004
- return;
56005
- }
56006
- if (key.name === "pagedown" || key.shift && key.name === "down") {
56007
- statusBar.pageDownContent();
56008
- return;
56009
- }
56010
- if (key.name === "end" && key.ctrl) {
56011
- statusBar.jumpToLive();
56012
- return;
56013
- }
56014
- if (key.sequence) {
56015
- if (key.sequence.includes("[<65;") || key.sequence === "\x1B[A" && key.shift) {
56016
- statusBar.scrollContentUp(3);
56017
- return;
56018
- }
56019
- if (key.sequence.includes("[<64;") || key.sequence === "\x1B[B" && key.shift) {
56020
- statusBar.scrollContentDown(3);
56021
- return;
56022
- }
56023
- }
56024
56041
  if (key.name === "escape" && activeTask) {
56025
56042
  if (!activeTask.runner.isPaused) {
56026
56043
  activeTask.runner.pause();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.138.6",
3
+ "version": "0.138.8",
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",