vibora 9.8.1 → 9.8.2

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/bin/vibora.js CHANGED
@@ -45126,7 +45126,7 @@ function installUv() {
45126
45126
  var package_default = {
45127
45127
  name: "vibora",
45128
45128
  private: true,
45129
- version: "9.8.1",
45129
+ version: "9.8.2",
45130
45130
  description: "Harness Attention. Orchestrate Agents. Ship.",
45131
45131
  license: "PolyForm-Perimeter-1.0.0",
45132
45132
  type: "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibora",
3
- "version": "9.8.1",
3
+ "version": "9.8.2",
4
4
  "description": "Harness Attention. Orchestrate Agents. Ship.",
5
5
  "license": "PolyForm-Perimeter-1.0.0",
6
6
  "repository": {
package/server/index.js CHANGED
@@ -5823,11 +5823,12 @@ class BufferManager {
5823
5823
  anyEvent: false,
5824
5824
  sgr: false
5825
5825
  };
5826
+ cursorVisible = true;
5826
5827
  setTerminalId(id) {
5827
5828
  this.terminalId = id;
5828
5829
  }
5829
5830
  append(data) {
5830
- this.trackMouseModes(data);
5831
+ this.trackTerminalState(data);
5831
5832
  this.chunks.push({ data, timestamp: Date.now() });
5832
5833
  this.totalBytes += data.length;
5833
5834
  while (this.totalBytes > MAX_BUFFER_BYTES && this.chunks.length > 1) {
@@ -5835,7 +5836,7 @@ class BufferManager {
5835
5836
  this.totalBytes -= removed.data.length;
5836
5837
  }
5837
5838
  }
5838
- trackMouseModes(data) {
5839
+ trackTerminalState(data) {
5839
5840
  const ESC = "\x1B";
5840
5841
  if (new RegExp(`${ESC}\\[\\?1000h`).test(data))
5841
5842
  this.mouseMode.x10 = true;
@@ -5853,6 +5854,10 @@ class BufferManager {
5853
5854
  this.mouseMode.sgr = true;
5854
5855
  if (new RegExp(`${ESC}\\[\\?1006l`).test(data))
5855
5856
  this.mouseMode.sgr = false;
5857
+ if (new RegExp(`${ESC}\\[\\?25h`).test(data))
5858
+ this.cursorVisible = true;
5859
+ if (new RegExp(`${ESC}\\[\\?25l`).test(data))
5860
+ this.cursorVisible = false;
5856
5861
  }
5857
5862
  getMouseModeSequences() {
5858
5863
  const ESC = "\x1B";
@@ -5873,12 +5878,18 @@ class BufferManager {
5873
5878
  }
5874
5879
  getContents() {
5875
5880
  const raw2 = this.chunks.map((c) => c.data).join("");
5876
- return this.filterProblematicSequences(raw2);
5881
+ let output = this.filterProblematicSequences(raw2);
5882
+ if (!this.cursorVisible) {
5883
+ const ESC = "\x1B";
5884
+ output = `${ESC}[?25l` + output;
5885
+ }
5886
+ return output;
5877
5887
  }
5878
5888
  clear() {
5879
5889
  this.chunks = [];
5880
5890
  this.totalBytes = 0;
5881
5891
  this.mouseMode = { x10: false, buttonEvent: false, anyEvent: false, sgr: false };
5892
+ this.cursorVisible = true;
5882
5893
  }
5883
5894
  getLineCount() {
5884
5895
  const content = this.getContents();
@@ -5895,7 +5906,8 @@ class BufferManager {
5895
5906
  const fileData = {
5896
5907
  version: 3,
5897
5908
  content: Buffer.from(content).toString("base64"),
5898
- mouseMode: { ...this.mouseMode }
5909
+ mouseMode: { ...this.mouseMode },
5910
+ cursorVisible: this.cursorVisible
5899
5911
  };
5900
5912
  writeFileSync2(filePath, JSON.stringify(fileData), "utf-8");
5901
5913
  } catch (err) {
@@ -5922,6 +5934,7 @@ class BufferManager {
5922
5934
  sgr: !!parsed.mouseMode.sgr
5923
5935
  };
5924
5936
  }
5937
+ this.cursorVisible = parsed.cursorVisible !== false;
5925
5938
  } else if (parsed.version === 2 && typeof parsed.content === "string") {
5926
5939
  content = Buffer.from(parsed.content, "base64").toString();
5927
5940
  } else {