omnius 1.0.509 → 1.0.511

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
@@ -638602,9 +638602,8 @@ var init_status_bar = __esm({
638602
638602
  _toolCalls = 0;
638603
638603
  _turns = 0;
638604
638604
  /** Debug data panel overlay state. */
638605
- _debugPanelOpen = false;
638606
- _debugPanelPage = 0;
638607
- _debugPanelPages = 4;
638605
+ /** Bottom-row page: -1 = compact metrics, 0-3 = debug panels (token, model, SNR, cost) */
638606
+ _debugPanelPage = -1;
638608
638607
  active = false;
638609
638608
  scrollRegionTop = 1;
638610
638609
  // ── Agent View Multiplexing (WO-NA1) ──
@@ -640788,6 +640787,14 @@ var init_status_bar = __esm({
640788
640787
  }
640789
640788
  return;
640790
640789
  }
640790
+ if (type === "press" && this._footerMetricsVisible) {
640791
+ const metricsRow = layout().footerMetrics;
640792
+ if (row === metricsRow && col >= termCols() - 5) {
640793
+ this.cycleDebugPanelPage();
640794
+ this.renderFooterAndPositionInput();
640795
+ return;
640796
+ }
640797
+ }
640791
640798
  if (type === "press" && this._scrollBtnRegion && row === this._scrollBtnRegion.row) {
640792
640799
  if (col >= this._scrollBtnRegion.start && col <= this._scrollBtnRegion.end) {
640793
640800
  this.jumpToLive();
@@ -641101,9 +641108,6 @@ var init_status_bar = __esm({
641101
641108
  );
641102
641109
  buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildInputBoxBottom(w)}${PANEL_BG_SEQ}`;
641103
641110
  if (pos.metricsRow > 0) {
641104
- if (this._debugPanelOpen && pos.metricsRow > 1) {
641105
- buf += `\x1B[${pos.metricsRow - 1};1H${PANEL_BG_SEQ}\x1B[2K${this.buildDebugPanel()}${RESET4}${PANEL_BG_SEQ}`;
641106
- }
641107
641111
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET4}${PANEL_BG_SEQ}`;
641108
641112
  }
641109
641113
  buf += `\x1B[?7h\x1B[${pos.inputStartRow + 1};1H`;
@@ -642136,6 +642140,7 @@ ${CONTENT_BG_SEQ}`);
642136
642140
  buildMetricsLine() {
642137
642141
  const stageBlock = this.buildStageBlock();
642138
642142
  const m2 = this.metrics;
642143
+ const termWidth = getTermWidth();
642139
642144
  const uptime2 = this.formatUptime();
642140
642145
  const uptimeStr = `\x1B[38;5;183m◖ ${uptime2}\x1B[0m`;
642141
642146
  const ctxUsed = m2.estimatedContextTokens;
@@ -642157,12 +642162,69 @@ ${CONTENT_BG_SEQ}`);
642157
642162
  const pctColor = pct2 > 50 ? 120 : pct2 > 20 ? 222 : 210;
642158
642163
  ctxStr = `${bar} \x1B[38;5;${pctColor}m${pct2}%\x1B[0m`;
642159
642164
  }
642160
- const arrow = this._debugPanelOpen ? `\x1B[38;5;183m▼\x1B[0m` : `\x1B[38;5;240m▶\x1B[0m`;
642161
- const parts = [uptimeStr];
642162
- if (ctxStr) parts.push(ctxStr);
642163
- parts.push(arrow);
642164
- const middle = parts.join(" ");
642165
- return (stageBlock + middle).replace(/\x1B\[0m/g, `\x1B[0m${PANEL_BG_SEQ}`);
642165
+ const arrow = `\x1B[38;5;240m▶\x1B[0m`;
642166
+ let rightSide;
642167
+ let pageLabel;
642168
+ if (this._debugPanelPage === -1) {
642169
+ const body = [uptimeStr];
642170
+ if (ctxStr) body.push(ctxStr);
642171
+ rightSide = body.join(" ");
642172
+ pageLabel = "";
642173
+ } else {
642174
+ const m3 = this.metrics;
642175
+ const pages = [];
642176
+ const tokInRaw = m3.promptTokens > 0 ? m3.promptTokens + (this.isStreaming ? this._streamingTokens : 0) : Math.max(m3.estimatedContextTokens, 0);
642177
+ const effectiveOut = this.effectiveCompletionTokens;
642178
+ const tokOutRaw = effectiveOut > 0 ? effectiveOut : Math.ceil(
642179
+ m3.totalTokens > 0 ? m3.totalTokens - m3.promptTokens : m3.estimatedContextTokens * 0.3
642180
+ );
642181
+ const tpsStr = _StatusBar.formatTokensPerSecond(this._tokensPerSecond);
642182
+ pages.push(
642183
+ `\x1B[38;5;117m↑${_StatusBar.formatInteger(tokInRaw)}\x1B[0m \x1B[38;5;151m↓${_StatusBar.formatInteger(tokOutRaw)}\x1B[0m \x1B[38;5;222mt/s ${tpsStr}\x1B[0m`
642184
+ );
642185
+ const model = this._modelName || "unknown";
642186
+ const backend = this._backend || "?";
642187
+ const gpu = this._gpuName || "none";
642188
+ pages.push(
642189
+ `\x1B[38;5;183m${model}\x1B[0m \x1B[38;5;240m${backend}\x1B[0m \x1B[38;5;120mGPU ${gpu}\x1B[0m`
642190
+ );
642191
+ if (this._snr) {
642192
+ const snrPct = Math.round(this._snr.ratio * 100);
642193
+ const snrColor = snrPct >= 70 ? 120 : snrPct >= 40 ? 222 : 210;
642194
+ const dPrime = this._snr.dPrime.toFixed(1);
642195
+ const capWarn = this._snr.capacityWarning ? " \x1B[38;5;210m!CAP\x1B[0m" : "";
642196
+ pages.push(
642197
+ `SNR \x1B[38;5;${snrColor}m${snrPct}%\x1B[0m d'${dPrime}${capWarn}`
642198
+ );
642199
+ } else {
642200
+ pages.push("SNR --");
642201
+ }
642202
+ {
642203
+ let costStr = "Cost --";
642204
+ if (m3.hasPricing && m3.estimatedCost !== void 0) {
642205
+ costStr = m3.estimatedCost < 0.01 ? `Cost \x1B[38;5;222m$${m3.estimatedCost.toFixed(4)}\x1B[0m` : m3.estimatedCost < 1 ? `Cost \x1B[38;5;222m$${m3.estimatedCost.toFixed(3)}\x1B[0m` : `Cost \x1B[38;5;222m$${m3.estimatedCost.toFixed(2)}\x1B[0m`;
642206
+ }
642207
+ const recStr = this._recording ? " \x1B[38;5;210m● REC\x1B[0m" : "";
642208
+ pages.push(costStr + recStr);
642209
+ }
642210
+ while (pages.length < 4) pages.push("--");
642211
+ const idx = Math.min(this._debugPanelPage, pages.length - 1);
642212
+ rightSide = pages[idx] ?? "--";
642213
+ pageLabel = "";
642214
+ }
642215
+ rightSide = rightSide ? rightSide + " " : "";
642216
+ const pageTotal = 5;
642217
+ const pageIdx = this._debugPanelPage + 2;
642218
+ const indicator = `\x1B[38;5;240m[${pageIdx > 5 ? 1 : pageIdx}/${pageTotal}]\x1B[0m `;
642219
+ const fullRight = pageLabel + rightSide + indicator + arrow;
642220
+ const stageW = stripAnsi(stageBlock).length;
642221
+ const rightW = stripAnsi(fullRight).length;
642222
+ const padNeeded = termWidth - stageW - rightW - 1;
642223
+ const gap = padNeeded > 0 ? " ".repeat(padNeeded) : " ";
642224
+ return (stageBlock + gap + fullRight).replace(
642225
+ /\x1B\[0m/g,
642226
+ `\x1B[0m${PANEL_BG_SEQ}`
642227
+ );
642166
642228
  }
642167
642229
  formatUptime() {
642168
642230
  if (this._sessionStartAt <= 0) return "0s";
@@ -642175,60 +642237,9 @@ ${CONTENT_BG_SEQ}`);
642175
642237
  if (m2 > 0) return `${m2}m ${s2}s`;
642176
642238
  return `${s2}s`;
642177
642239
  }
642178
- /** Toggle the floating debug panel on/off */
642179
- toggleDebugPanel() {
642180
- this._debugPanelOpen = !this._debugPanelOpen;
642181
- this._debugPanelPage = 0;
642182
- }
642183
- /** Cycle to next debug panel page */
642240
+ /** Cycle to next bottom-row page (-1→0→1→2→3→-1) */
642184
642241
  cycleDebugPanelPage() {
642185
- this._debugPanelPage = (this._debugPanelPage + 1) % this._debugPanelPages;
642186
- }
642187
- /** Build the floating debug panel content (rendered above metrics row) */
642188
- buildDebugPanel() {
642189
- const m2 = this.metrics;
642190
- const pages = [];
642191
- const tokInRaw = m2.promptTokens > 0 ? m2.promptTokens + (this.isStreaming ? this._streamingTokens : 0) : Math.max(m2.estimatedContextTokens, 0);
642192
- const effectiveOut = this.effectiveCompletionTokens;
642193
- const tokOutRaw = effectiveOut > 0 ? effectiveOut : Math.ceil(
642194
- m2.totalTokens > 0 ? m2.totalTokens - m2.promptTokens : m2.estimatedContextTokens * 0.3
642195
- );
642196
- const tpsStr = _StatusBar.formatTokensPerSecond(this._tokensPerSecond);
642197
- pages.push(
642198
- `\x1B[38;5;117m↑${_StatusBar.formatInteger(tokInRaw)}\x1B[0m \x1B[38;5;151m↓${_StatusBar.formatInteger(tokOutRaw)}\x1B[0m \x1B[38;5;222mt/s ${tpsStr}\x1B[0m`
642199
- );
642200
- const model = this._modelName || "unknown";
642201
- const backend = this._backend || "?";
642202
- const gpu = this._gpuName || "none";
642203
- pages.push(
642204
- `\x1B[38;5;183m${model}\x1B[0m \x1B[38;5;240m${backend}\x1B[0m \x1B[38;5;120mGPU ${gpu}\x1B[0m`
642205
- );
642206
- if (this._snr) {
642207
- const snrPct = Math.round(this._snr.ratio * 100);
642208
- const snrColor = snrPct >= 70 ? 120 : snrPct >= 40 ? 222 : 210;
642209
- const dPrime = this._snr.dPrime.toFixed(1);
642210
- const capWarn = this._snr.capacityWarning ? " \x1B[38;5;210m!CAP\x1B[0m" : "";
642211
- pages.push(
642212
- `SNR \x1B[38;5;${snrColor}m${snrPct}%\x1B[0m d'${dPrime}${capWarn}`
642213
- );
642214
- } else {
642215
- pages.push("SNR --");
642216
- }
642217
- {
642218
- let costStr = "Cost --";
642219
- if (m2.hasPricing && m2.estimatedCost !== void 0) {
642220
- costStr = m2.estimatedCost < 0.01 ? `Cost \x1B[38;5;222m$${m2.estimatedCost.toFixed(4)}\x1B[0m` : m2.estimatedCost < 1 ? `Cost \x1B[38;5;222m$${m2.estimatedCost.toFixed(3)}\x1B[0m` : `Cost \x1B[38;5;222m$${m2.estimatedCost.toFixed(2)}\x1B[0m`;
642221
- }
642222
- const recStr = this._recording ? " \x1B[38;5;210m● REC\x1B[0m" : "";
642223
- pages.push(costStr + recStr);
642224
- }
642225
- while (pages.length < this._debugPanelPages) {
642226
- pages.push("--");
642227
- }
642228
- const page2 = Math.min(this._debugPanelPage, pages.length - 1);
642229
- const content = pages[page2] ?? "--";
642230
- const pageInd = `\x1B[38;5;240m[${page2 + 1}/${pages.length}]\x1B[0m`;
642231
- return `${content} ${pageInd}`;
642242
+ this._debugPanelPage = this._debugPanelPage >= 3 ? -1 : this._debugPanelPage + 1;
642232
642243
  }
642233
642244
  // -------------------------------------------------------------------------
642234
642245
  // Private
@@ -642798,9 +642809,6 @@ ${CONTENT_BG_SEQ}`);
642798
642809
  buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildInputBoxBottom(w)}${PANEL_BG_SEQ}`;
642799
642810
  }
642800
642811
  if (pos.metricsRow > 0) {
642801
- if (this._debugPanelOpen && pos.metricsRow > 1) {
642802
- buf += `\x1B[${pos.metricsRow - 1};1H${PANEL_BG_SEQ}\x1B[2K${this.buildDebugPanel()}${RESET4}${PANEL_BG_SEQ}`;
642803
- }
642804
642812
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET4}${PANEL_BG_SEQ}`;
642805
642813
  }
642806
642814
  buf += "\x1B[?7h";
@@ -642853,9 +642861,6 @@ ${CONTENT_BG_SEQ}`);
642853
642861
  buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildInputBoxBottom(w)}`;
642854
642862
  }
642855
642863
  if (pos.metricsRow > 0) {
642856
- if (this._debugPanelOpen && pos.metricsRow > 1) {
642857
- buf += `\x1B[${pos.metricsRow - 1};1H${PANEL_BG_SEQ}\x1B[2K${this.buildDebugPanel()}${RESET4}${PANEL_BG_SEQ}`;
642858
- }
642859
642864
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET4}${PANEL_BG_SEQ}`;
642860
642865
  }
642861
642866
  buf += "\x1B[?7h\x1B8" + // DEC restore cursor
@@ -642934,9 +642939,6 @@ ${CONTENT_BG_SEQ}`);
642934
642939
  }
642935
642940
  buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildInputBoxBottom(w)}`;
642936
642941
  if (pos.metricsRow > 0) {
642937
- if (this._debugPanelOpen && pos.metricsRow > 1) {
642938
- buf += `\x1B[${pos.metricsRow - 1};1H${PANEL_BG_SEQ}\x1B[2K${this.buildDebugPanel()}${RESET4}${PANEL_BG_SEQ}`;
642939
- }
642940
642942
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET4}`;
642941
642943
  }
642942
642944
  buf += "\x1B[?7h";
@@ -642982,9 +642984,6 @@ ${CONTENT_BG_SEQ}`);
642982
642984
  }
642983
642985
  buf += `\x1B[${pos.bufferRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildInputBoxBottom(w)}${PANEL_BG_SEQ}`;
642984
642986
  if (pos.metricsRow > 0) {
642985
- if (this._debugPanelOpen && pos.metricsRow > 1) {
642986
- buf += `\x1B[${pos.metricsRow - 1};1H${PANEL_BG_SEQ}\x1B[2K${this.buildDebugPanel()}${RESET4}${PANEL_BG_SEQ}`;
642987
- }
642988
642987
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET4}${PANEL_BG_SEQ}`;
642989
642988
  }
642990
642989
  buf += "\x1B[?7h\x1B8\x1B[?25l";
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.509",
3
+ "version": "1.0.511",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.509",
9
+ "version": "1.0.511",
10
10
  "bundleDependencies": [
11
11
  "image-to-ascii"
12
12
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.509",
3
+ "version": "1.0.511",
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",