open-agents-ai 0.187.401 → 0.187.403

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.
package/dist/index.js CHANGED
@@ -531664,6 +531664,7 @@ __export(tui_tasks_renderer_exports, {
531664
531664
  refreshTuiTasks: () => refreshTuiTasks,
531665
531665
  refreshTuiTasksSync: () => refreshTuiTasksSync,
531666
531666
  refreshTuiTasksThemeVars: () => refreshTuiTasksThemeVars,
531667
+ setTasksRendererWriter: () => setTasksRendererWriter,
531667
531668
  setTuiTasksEnabled: () => setTuiTasksEnabled,
531668
531669
  setTuiTasksScope: () => setTuiTasksScope,
531669
531670
  setTuiTasksSession: () => setTuiTasksSession,
@@ -531672,6 +531673,9 @@ __export(tui_tasks_renderer_exports, {
531672
531673
  import { existsSync as existsSync58, readFileSync as readFileSync45, watch as fsWatch2 } from "node:fs";
531673
531674
  import { join as join76 } from "node:path";
531674
531675
  import { homedir as homedir26 } from "node:os";
531676
+ function setTasksRendererWriter(writer) {
531677
+ chromeWrite = writer;
531678
+ }
531675
531679
  function panelEffectivelyVisible() {
531676
531680
  return _enabled && !_scopeOverlayActive && !_scopeNeovimActive && !_scopePagerActive && _scopeMainViewActive;
531677
531681
  }
@@ -531946,7 +531950,7 @@ function render() {
531946
531950
  }
531947
531951
  out += RESTORE + SHOW;
531948
531952
  try {
531949
- process.stdout.write(out);
531953
+ chromeWrite(out);
531950
531954
  } catch {
531951
531955
  }
531952
531956
  _lastPaintedTop = newTop;
@@ -531964,18 +531968,21 @@ function clearLastPaintedRows() {
531964
531968
  }
531965
531969
  out += RESTORE + SHOW;
531966
531970
  try {
531967
- process.stdout.write(out);
531971
+ chromeWrite(out);
531968
531972
  } catch {
531969
531973
  }
531970
531974
  _lastPaintedTop = -1;
531971
531975
  _lastPaintedBottom = -1;
531972
531976
  }
531973
- var _activeSessionId, _watcher, _lastTodos, _enabled, _redrawScheduled, _onResizeChange, _scopeOverlayActive, _scopeMainViewActive, _scopeNeovimActive, _scopePagerActive, _lastPaintedTop, _lastPaintedBottom, MAX_VISIBLE_ROWS, SAVE, RESTORE, HIDE, SHOW, CLEAR_LINE, RESET, BG, DIM_LABEL, ACCENT, DONE2, PENDING, BLOCKED;
531977
+ var chromeWrite, _activeSessionId, _watcher, _lastTodos, _enabled, _redrawScheduled, _onResizeChange, _scopeOverlayActive, _scopeMainViewActive, _scopeNeovimActive, _scopePagerActive, _lastPaintedTop, _lastPaintedBottom, MAX_VISIBLE_ROWS, SAVE, RESTORE, HIDE, SHOW, CLEAR_LINE, RESET, BG, DIM_LABEL, ACCENT, DONE2, PENDING, BLOCKED;
531974
531978
  var init_tui_tasks_renderer = __esm({
531975
531979
  "packages/cli/src/tui/tui-tasks-renderer.ts"() {
531976
531980
  "use strict";
531977
531981
  init_layout2();
531978
531982
  init_theme();
531983
+ chromeWrite = ((data) => {
531984
+ process.stdout.write(data);
531985
+ });
531979
531986
  _activeSessionId = null;
531980
531987
  _watcher = null;
531981
531988
  _lastTodos = [];
@@ -532525,8 +532532,10 @@ var init_status_bar = __esm({
532525
532532
  };
532526
532533
  const decorateMenuButton = (cmd, label) => {
532527
532534
  const fg3 = buttonFg(cmd);
532528
- const body = `▏ ${label} ▕`;
532529
- return linkify(cmd, `\x1B[53m\x1B[38;5;${fg3}m${body}\x1B[55m`);
532535
+ const themeBg = tuiBg();
532536
+ const textFg2 = themeBg < 0 ? "\x1B[39m" : `\x1B[38;5;${themeBg}m`;
532537
+ const body = ` ${label} `;
532538
+ return linkify(cmd, `\x1B[48;5;${fg3}m${textFg2}${body}\x1B[0m${PANEL_BG_SEQ}`);
532530
532539
  };
532531
532540
  const renderBtn = (cmd, label) => {
532532
532541
  const fg3 = buttonFg(cmd);
@@ -532559,18 +532568,19 @@ var init_status_bar = __esm({
532559
532568
  const btns = menuPages[pi];
532560
532569
  const isFirstPage = pi === 0;
532561
532570
  this.registerHeaderPanel(`main-${pi}`, (innerW) => {
532571
+ const liveIdentity = this.buildHeaderIdentityRender();
532562
532572
  let out = "";
532563
532573
  let usedW = 0;
532564
532574
  if (isFirstPage) {
532565
- out += identity3.text;
532566
- usedW += verW;
532575
+ out += liveIdentity.text;
532576
+ usedW += liveIdentity.width;
532567
532577
  }
532568
532578
  let btnTotalW = 0;
532569
532579
  for (const btn of btns) btnTotalW += btn.w + 1;
532570
532580
  const gap = Math.max(1, innerW - usedW - btnTotalW);
532571
- out += `\x1B[38;5;${TEXT_DIM}m${" ".repeat(gap)}`;
532581
+ out += `${PANEL_BG_SEQ}\x1B[38;5;${TEXT_DIM}m${" ".repeat(gap)}`;
532572
532582
  for (const btn of btns) {
532573
- out += decorateMenuButton(btn.cmd, btn.label) + " ";
532583
+ out += decorateMenuButton(btn.cmd, btn.label) + `${PANEL_BG_SEQ} `;
532574
532584
  }
532575
532585
  return out;
532576
532586
  }, {
@@ -533990,6 +534000,12 @@ var init_status_bar = __esm({
533990
534000
  * Respects overlay isolation — when tuiSelect/dropPanel is on alt screen,
533991
534001
  * footer writes are suppressed to prevent corrupting the overlay display. */
533992
534002
  termWrite(data) {
534003
+ this.writeChrome(data);
534004
+ }
534005
+ /** Public chrome-write hook for sibling renderers (banner.ts).
534006
+ * Same invariants as termWrite: bypasses the content-buffering interceptor,
534007
+ * respects overlay isolation, degrades gracefully on pipe loss. */
534008
+ writeChrome(data) {
533993
534009
  if (isOverlayActive()) return;
533994
534010
  try {
533995
534011
  this._trueStdoutWrite.call(process.stdout, data);
@@ -557811,6 +557827,9 @@ var init_project_context = __esm({
557811
557827
  });
557812
557828
 
557813
557829
  // packages/cli/src/tui/carousel.ts
557830
+ function setCarouselWriter(writer) {
557831
+ chromeWrite2 = writer;
557832
+ }
557814
557833
  function fg2(code8, text) {
557815
557834
  return isTTY6 ? `\x1B[38;5;${code8}m${text}\x1B[0m` : text;
557816
557835
  }
@@ -557850,12 +557869,15 @@ function createRow(phraseIndices, speed, direction, bank) {
557850
557869
  const phrases = phraseIndices.map((i2) => bank[i2 % bank.length]);
557851
557870
  return { phrases, offset: 0, speed, direction, renderedPlain: "" };
557852
557871
  }
557853
- var isTTY6, PHRASES, Carousel;
557872
+ var isTTY6, chromeWrite2, PHRASES, Carousel;
557854
557873
  var init_carousel = __esm({
557855
557874
  "packages/cli/src/tui/carousel.ts"() {
557856
557875
  "use strict";
557857
557876
  init_layout2();
557858
557877
  isTTY6 = process.stdout.isTTY ?? false;
557878
+ chromeWrite2 = ((data) => {
557879
+ process.stdout.write(data);
557880
+ });
557859
557881
  PHRASES = [
557860
557882
  // English
557861
557883
  { text: "freedom of information", color: 39 },
@@ -557968,12 +557990,12 @@ var init_carousel = __esm({
557968
557990
  this.started = true;
557969
557991
  setHeaderHeight(this.reservedRows);
557970
557992
  const L = layout();
557971
- process.stdout.write(`\x1B[${L.headerTop};1H`);
557993
+ chromeWrite2(`\x1B[${L.headerTop};1H`);
557972
557994
  for (let i2 = 0; i2 < this.reservedRows; i2++) {
557973
- process.stdout.write("\x1B[2K\n");
557995
+ chromeWrite2("\x1B[2K\n");
557974
557996
  }
557975
- process.stdout.write(`\x1B[${L.contentTop};${L.rows}r`);
557976
- process.stdout.write(`\x1B[${L.contentTop};1H`);
557997
+ chromeWrite2(`\x1B[${L.contentTop};${L.rows}r`);
557998
+ chromeWrite2(`\x1B[${L.contentTop};1H`);
557977
557999
  this.resizeHandler = () => {
557978
558000
  this.width = termCols();
557979
558001
  this.rebuildRibbons();
@@ -558007,7 +558029,7 @@ var init_carousel = __esm({
558007
558029
  buf += `\x1B[${L.headerBottom};1H\x1B[2K`;
558008
558030
  buf += "\x1B[?7h";
558009
558031
  buf += "\x1B8";
558010
- process.stdout.write(buf);
558032
+ chromeWrite2(buf);
558011
558033
  }
558012
558034
  /**
558013
558035
  * Extract a terminal-width colored window from a scrolling ribbon.
@@ -558082,7 +558104,7 @@ var init_carousel = __esm({
558082
558104
  setHeaderHeight(HEADER_ROWS);
558083
558105
  buf += "\x1B[r";
558084
558106
  buf += "\x1B8";
558085
- process.stdout.write(buf);
558107
+ chromeWrite2(buf);
558086
558108
  this.started = false;
558087
558109
  }
558088
558110
  get isRunning() {
@@ -558107,10 +558129,14 @@ __export(banner_exports, {
558107
558129
  listBannerDesigns: () => listBannerDesigns,
558108
558130
  loadBannerDesign: () => loadBannerDesign,
558109
558131
  saveBannerDesign: () => saveBannerDesign,
558132
+ setBannerWriter: () => setBannerWriter,
558110
558133
  setGridText: () => setGridText
558111
558134
  });
558112
558135
  import { existsSync as existsSync71, readFileSync as readFileSync56, writeFileSync as writeFileSync38, mkdirSync as mkdirSync41 } from "node:fs";
558113
558136
  import { join as join88 } from "node:path";
558137
+ function setBannerWriter(writer) {
558138
+ chromeWrite3 = writer;
558139
+ }
558114
558140
  function generateMnemonic(seed) {
558115
558141
  let h = 2166136261;
558116
558142
  for (let i2 = 0; i2 < seed.length; i2++) {
@@ -558305,13 +558331,16 @@ function createAnimatedBanner(id, name10, frameBuilders, frameDurationMs, author
558305
558331
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
558306
558332
  };
558307
558333
  }
558308
- var isTTY7, MNEMONIC_ADJECTIVES, MNEMONIC_NOUNS, BannerRenderer;
558334
+ var isTTY7, chromeWrite3, MNEMONIC_ADJECTIVES, MNEMONIC_NOUNS, BannerRenderer;
558309
558335
  var init_banner = __esm({
558310
558336
  "packages/cli/src/tui/banner.ts"() {
558311
558337
  "use strict";
558312
558338
  init_theme();
558313
558339
  init_layout2();
558314
558340
  isTTY7 = process.stdout.isTTY ?? false;
558341
+ chromeWrite3 = ((data) => {
558342
+ process.stdout.write(data);
558343
+ });
558315
558344
  MNEMONIC_ADJECTIVES = [
558316
558345
  "swift",
558317
558346
  "bright",
@@ -558483,7 +558512,7 @@ var init_banner = __esm({
558483
558512
  this.currentDesign = createCohereBanner();
558484
558513
  }
558485
558514
  const L = layout();
558486
- process.stdout.write(`\x1B[${L.contentTop};${L.rows}r`);
558515
+ chromeWrite3(`\x1B[${L.contentTop};${L.rows}r`);
558487
558516
  this.renderCurrentFrame();
558488
558517
  }
558489
558518
  };
@@ -558546,7 +558575,7 @@ var init_banner = __esm({
558546
558575
  }
558547
558576
  buf += "\x1B[0m";
558548
558577
  try {
558549
- process.stdout.write(buf);
558578
+ chromeWrite3(buf);
558550
558579
  } catch (err) {
558551
558580
  if (err?.code === "EIO" || err?.code === "EPIPE" || err?.code === "ERR_STREAM_DESTROYED") {
558552
558581
  this.stop();
@@ -558556,7 +558585,7 @@ var init_banner = __esm({
558556
558585
  if (this.onAfterRender) this.onAfterRender();
558557
558586
  const Lp = layout();
558558
558587
  try {
558559
- process.stdout.write(`\x1B[${Lp.footerInput};1H\x1B[?2026l`);
558588
+ chromeWrite3(`\x1B[${Lp.footerInput};1H\x1B[?2026l`);
558560
558589
  } catch {
558561
558590
  }
558562
558591
  }
@@ -581778,6 +581807,9 @@ async function startInteractive(config, repoPath) {
581778
581807
  }
581779
581808
  const statusBar = new StatusBar();
581780
581809
  statusBar.setVersion(version4);
581810
+ setBannerWriter((data) => statusBar.writeChrome(data));
581811
+ setCarouselWriter((data) => statusBar.writeChrome(data));
581812
+ setTasksRendererWriter((data) => statusBar.writeChrome(data));
581781
581813
  onTuiTasksHeightChange((nextHeight) => {
581782
581814
  try {
581783
581815
  statusBar.reapplyScrollRegion();
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.401",
3
+ "version": "0.187.403",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "open-agents-ai",
9
- "version": "0.187.401",
9
+ "version": "0.187.403",
10
10
  "hasInstallScript": true,
11
11
  "license": "CC-BY-NC-4.0",
12
12
  "dependencies": {
@@ -2905,9 +2905,9 @@
2905
2905
  }
2906
2906
  },
2907
2907
  "node_modules/bare-url": {
2908
- "version": "2.4.0",
2909
- "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.0.tgz",
2910
- "integrity": "sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==",
2908
+ "version": "2.4.1",
2909
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.1.tgz",
2910
+ "integrity": "sha512-fZapLWNB25gS+etK27NV9KgBNXgo2yeYHuj+OyPblQd6GYAE3JVy6aKxszMV5jhGGFwraXQKA5fldvf3lMyEqw==",
2911
2911
  "license": "Apache-2.0",
2912
2912
  "optional": true,
2913
2913
  "dependencies": {
@@ -2944,9 +2944,9 @@
2944
2944
  "license": "MIT"
2945
2945
  },
2946
2946
  "node_modules/baseline-browser-mapping": {
2947
- "version": "2.10.19",
2948
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz",
2949
- "integrity": "sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==",
2947
+ "version": "2.10.20",
2948
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.20.tgz",
2949
+ "integrity": "sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==",
2950
2950
  "license": "Apache-2.0",
2951
2951
  "peer": true,
2952
2952
  "bin": {
@@ -4146,9 +4146,9 @@
4146
4146
  }
4147
4147
  },
4148
4148
  "node_modules/eventsource-parser": {
4149
- "version": "3.0.6",
4150
- "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz",
4151
- "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==",
4149
+ "version": "3.0.7",
4150
+ "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.7.tgz",
4151
+ "integrity": "sha512-zwxwiQqexizSXFZV13zMiEtW1E3lv7RlUv+1f5FBiR4x7wFhEjm3aFTyYkZQWzyN08WnPdox015GoRH5D/E5YA==",
4152
4152
  "license": "MIT",
4153
4153
  "engines": {
4154
4154
  "node": ">=18.0.0"
@@ -4718,9 +4718,9 @@
4718
4718
  "license": "MIT"
4719
4719
  },
4720
4720
  "node_modules/hasown": {
4721
- "version": "2.0.2",
4722
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
4723
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
4721
+ "version": "2.0.3",
4722
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
4723
+ "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
4724
4724
  "license": "MIT",
4725
4725
  "dependencies": {
4726
4726
  "function-bind": "^1.1.2"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.401",
3
+ "version": "0.187.403",
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",