omnius 1.0.543 → 1.0.544

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
@@ -576987,6 +576987,7 @@ function buildDecompositionDirective(modules, strategy, evidenceContext = {}) {
576987
576987
  ` 3. Treat a child result as complete only when it returns cited observations plus verification or an explicit blocker; otherwise retain the todo as discovery/blocked.`,
576988
576988
  ` 4. After ALL module todos have evidence-backed outcomes, run the project's integration build/tests in main context.`,
576989
576989
  ` 5. If verification fails: derive the next child request from the diagnostic and fresh relevant reads, not from the original module list.`,
576990
+ ` 6. Call task_complete only after the required integration evidence is present; otherwise preserve the specific blocker for the next parent action.`,
576990
576991
  ``,
576991
576992
  `Why this matters: implementing N modules in one context burns token budget linearly with N. sub_agent gives each module its own context window, but only a parent evidence brief prevents that isolation from becoming a task-label echo chamber.`,
576992
576993
  ``,
@@ -642962,6 +642963,22 @@ var init_stageIndicator = __esm({
642962
642963
  function stageFallbackColor(stage2) {
642963
642964
  return STAGE_FALLBACK_COLOR[stage2];
642964
642965
  }
642966
+ function paintBlockBorder(glyphs, stage2, phase, truecolor, startCol = 0) {
642967
+ if (!truecolor) {
642968
+ return `\x1B[38;5;${STAGE_FALLBACK_COLOR[stage2]}m${glyphs}\x1B[0m`;
642969
+ }
642970
+ const chars = Array.from(glyphs);
642971
+ let out = "";
642972
+ for (let i2 = 0; i2 < chars.length; i2 += BORDER_GRADIENT_SEG) {
642973
+ const [r2, g, b] = stageGradientRgb(
642974
+ stage2,
642975
+ Math.floor((startCol + i2) / BORDER_GRADIENT_SEG),
642976
+ phase
642977
+ );
642978
+ out += `\x1B[38;2;${r2};${g};${b}m${chars.slice(i2, i2 + BORDER_GRADIENT_SEG).join("")}`;
642979
+ }
642980
+ return `${out}\x1B[0m`;
642981
+ }
642965
642982
  function sanitizeSubAgentActivity(value2) {
642966
642983
  return value2.replace(ANSI_RE2, "").replace(/[\x00-\x1F\x7F]/g, " ").replace(/\s+/g, " ").trim().slice(0, MAX_ACTIVITY_CHARS);
642967
642984
  }
@@ -642983,7 +643000,7 @@ function buildSubAgentLiveBlockLines(sourceEntries, width, phase, truecolor = su
642983
643000
  const title = " Sub-agent activity ";
642984
643001
  const top = `╭─┤${title}├${"─".repeat(Math.max(0, w - 5 - title.length))}╮`;
642985
643002
  const bottom = `╰${"─".repeat(Math.max(0, w - 2))}╯`;
642986
- const lines = [paint(top, primary.stage, phase, 0, truecolor)];
643003
+ const lines = [paintBlockBorder(top, primary.stage, phase, truecolor)];
642987
643004
  for (const entry of entries) {
642988
643005
  const icon = statusIcon(entry.status);
642989
643006
  const label = entry.label || entry.id;
@@ -643008,25 +643025,13 @@ function buildSubAgentLiveBlockLines(sourceEntries, width, phase, truecolor = su
643008
643025
  )
643009
643026
  );
643010
643027
  }
643011
- lines.push(paint(bottom, primary.stage, phase, 0, truecolor));
643028
+ lines.push(paintBlockBorder(bottom, primary.stage, phase, truecolor));
643012
643029
  return lines;
643013
643030
  }
643014
643031
  function contentRow(value2, width, stage2, phase, truecolor) {
643015
- return `│ ${paint(fit2(value2, width), stage2, phase, 1, truecolor)} │`;
643016
- }
643017
- function paint(value2, stage2, phase, offset, truecolor) {
643018
- let out = "";
643019
- const chars = Array.from(value2);
643020
- for (let i2 = 0; i2 < chars.length; i2++) {
643021
- const char = chars[i2];
643022
- if (truecolor) {
643023
- const [r2, g, b] = stageGradientRgb(stage2, i2 + offset, phase);
643024
- out += `\x1B[38;2;${r2};${g};${b}m${char}`;
643025
- } else {
643026
- out += `\x1B[38;5;${STAGE_FALLBACK_COLOR[stage2]}m${char}`;
643027
- }
643028
- }
643029
- return `${out}\x1B[0m`;
643032
+ const left = paintBlockBorder("│", stage2, phase, truecolor, 0);
643033
+ const right = paintBlockBorder("│", stage2, phase, truecolor, width + 3);
643034
+ return `${left} ${fit2(value2, width)} ${right}`;
643030
643035
  }
643031
643036
  function fit2(value2, width) {
643032
643037
  const plain = value2.replace(ANSI_RE2, "").replace(/\s+$/g, "");
@@ -643049,7 +643054,7 @@ function statusIcon(status) {
643049
643054
  return "●";
643050
643055
  }
643051
643056
  }
643052
- var ANSI_RE2, MAX_PREVIEW_AGENTS, MAX_ACTIVITY_CHARS, STAGE_FALLBACK_COLOR;
643057
+ var ANSI_RE2, MAX_PREVIEW_AGENTS, MAX_ACTIVITY_CHARS, STAGE_FALLBACK_COLOR, BORDER_GRADIENT_SEG;
643053
643058
  var init_sub_agent_live_block = __esm({
643054
643059
  "packages/cli/src/tui/sub-agent-live-block.ts"() {
643055
643060
  init_stageIndicator();
@@ -643074,6 +643079,7 @@ var init_sub_agent_live_block = __esm({
643074
643079
  completed: 46,
643075
643080
  failed: 196
643076
643081
  };
643082
+ BORDER_GRADIENT_SEG = 4;
643077
643083
  }
643078
643084
  });
643079
643085
 
@@ -643098,7 +643104,7 @@ function buildTrajectoryLiveBlockLines(checkpoint, width, phase, truecolor = sup
643098
643104
  const title = ` Trajectory · ${checkpoint.assessment.replace(/_/g, " ")} `;
643099
643105
  const top = `╭─┤${title}├${"─".repeat(Math.max(0, w - 5 - title.length))}╮`;
643100
643106
  const bottom = `╰${"─".repeat(Math.max(0, w - 2))}╯`;
643101
- const lines = [paint2(top, stage2, phase, 0, truecolor)];
643107
+ const lines = [paintBlockBorder(top, stage2, phase, truecolor)];
643102
643108
  lines.push(row(`Goal: ${checkpoint.goal}`, inner, stage2, phase, truecolor));
643103
643109
  if (checkpoint.situationAssessment) {
643104
643110
  lines.push(
@@ -643153,7 +643159,7 @@ function buildTrajectoryLiveBlockLines(checkpoint, width, phase, truecolor = sup
643153
643159
  )
643154
643160
  );
643155
643161
  }
643156
- lines.push(paint2(bottom, stage2, phase, 0, truecolor));
643162
+ lines.push(paintBlockBorder(bottom, stage2, phase, truecolor));
643157
643163
  return lines;
643158
643164
  }
643159
643165
  function buildTrajectoryLiveBlockCollapsedLine(checkpoint, width, phase, truecolor = supportsTruecolor()) {
@@ -643164,22 +643170,12 @@ function buildTrajectoryLiveBlockCollapsedLine(checkpoint, width, phase, truecol
643164
643170
  `▸ Trajectory · ${checkpoint.assessment.replace(/_/g, " ")} · ${checkpoint.nextAction}`,
643165
643171
  w
643166
643172
  );
643167
- return [paint2(text2, stage2, phase, 0, truecolor)];
643173
+ return [paintBlockBorder(text2, stage2, phase, truecolor)];
643168
643174
  }
643169
643175
  function row(value2, width, stage2, phase, truecolor) {
643170
- return `│ ${paint2(fit3(value2, width), stage2, phase, 1, truecolor)} │`;
643171
- }
643172
- function paint2(value2, stage2, phase, offset, truecolor) {
643173
- let out = "";
643174
- for (const [index, char] of Array.from(value2).entries()) {
643175
- if (truecolor) {
643176
- const [r2, g, b] = stageGradientRgb(stage2, index + offset, phase);
643177
- out += `\x1B[38;2;${r2};${g};${b}m${char}`;
643178
- } else {
643179
- out += `\x1B[38;5;${stageFallbackColor(stage2)}m${char}`;
643180
- }
643181
- }
643182
- return `${out}\x1B[0m`;
643176
+ const left = paintBlockBorder("│", stage2, phase, truecolor, 0);
643177
+ const right = paintBlockBorder("│", stage2, phase, truecolor, width + 3);
643178
+ return `${left} ${fit3(value2, width)} ${right}`;
643183
643179
  }
643184
643180
  function fit3(value2, width) {
643185
643181
  const clean5 = value2.replace(ANSI_RE3, "").replace(/\s+/g, " ").trim();
@@ -647366,6 +647362,9 @@ var init_status_bar = __esm({
647366
647362
  this.advanceStagePhase();
647367
647363
  this.renderFooterPreserveCursor();
647368
647364
  refreshTuiTasksAnimationFrame();
647365
+ if ((this._trajectoryLiveBlockAppended || this._subAgentLiveBlockAppended) && this._activeViewId === "main" && this.stageBorderActive()) {
647366
+ this.refreshDynamicBlocks();
647367
+ }
647369
647368
  if (this._agentViews.size > 1 && (String(this.currentHeaderPanel).startsWith("sys-") || this._headerExpanded)) {
647370
647369
  this.refreshHeaderContent();
647371
647370
  }
@@ -649232,7 +649231,7 @@ ${CONTENT_BG_SEQ}`);
649232
649231
  if (screenRow < headerSafeFloor) continue;
649233
649232
  buf += `\x1B[${screenRow};1H${CONTENT_BG_SEQ}\x1B[2K`;
649234
649233
  }
649235
- buf += "\x1B8\x1B[?25h";
649234
+ buf += "\x1B8" + (this.writeDepth === 0 ? "\x1B[?25h" : "");
649236
649235
  this.termWrite(buf);
649237
649236
  }
649238
649237
  /** Full display refresh — repaint content area from stored buffer + footer.
@@ -649894,6 +649893,12 @@ ${CONTENT_BG_SEQ}`);
649894
649893
  buf += `\x1B[${this.scrollRegionTop};1H\x1B[7m${indicator}${" ".repeat(pad)}\x1B[0m`;
649895
649894
  }
649896
649895
  buf += "\x1B8";
649896
+ if (this.writeDepth === 0) {
649897
+ const wrap = this.wrapInput(w);
649898
+ const rp = this.rowPositions(termRows());
649899
+ const cursorTermRow = rp.inputStartRow + 1 + wrap.cursorRow;
649900
+ buf += `\x1B[${cursorTermRow};${wrap.cursorCol}H${CURSOR_BLINK_BLOCK}\x1B[?25h`;
649901
+ }
649897
649902
  buf += "\x1B[?2026l";
649898
649903
  const writer = this._origWrite ?? process.stdout.write.bind(process.stdout);
649899
649904
  writer(buf);
@@ -650640,7 +650645,7 @@ ${CONTENT_BG_SEQ}`);
650640
650645
  this.updateFooterHeight();
650641
650646
  const pos = this.rowPositions(termRows());
650642
650647
  this.termWrite(
650643
- `\x1B[${this.scrollRegionTop};${pos.scrollEnd}r\x1B[${pos.scrollEnd};1H` + (clearScrollback ? "\x1B[3J" : "")
650648
+ `\x1B[?25l\x1B[${this.scrollRegionTop};${pos.scrollEnd}r\x1B[${pos.scrollEnd};1H` + (clearScrollback ? "\x1B[3J" : "")
650644
650649
  );
650645
650650
  if (this.writeDepth === 0) {
650646
650651
  this.parkCursorInInput();
@@ -650799,6 +650804,13 @@ ${CONTENT_BG_SEQ}`);
650799
650804
  pos.inputStartRow + 1,
650800
650805
  inputWrap.lines.length
650801
650806
  );
650807
+ if (this.writeDepth > 0) {
650808
+ const st = this.inputStateProvider?.();
650809
+ if (!st || st.cursor >= st.line.length) {
650810
+ const cursorTermRow = pos.inputStartRow + 1 + inputWrap.cursorRow;
650811
+ buf += `\x1B[${cursorTermRow};${inputWrap.cursorCol}H${PANEL_BG_SEQ}\x1B[7m \x1B[27m${PANEL_BG_SEQ}`;
650812
+ }
650813
+ }
650802
650814
  if (this._suggestions.length > 0 && pos.suggestStartRow > 0) {
650803
650815
  for (let si = 0; si < this._suggestions.length; si++) {
650804
650816
  const row2 = pos.suggestStartRow + si;
@@ -650816,8 +650828,11 @@ ${CONTENT_BG_SEQ}`);
650816
650828
  if (pos.metricsRow > 0) {
650817
650829
  buf += `\x1B[${pos.metricsRow};1H${PANEL_BG_SEQ}\x1B[2K${this.buildMetricsLine()}${RESET4}${PANEL_BG_SEQ}`;
650818
650830
  }
650819
- buf += "\x1B[?7h\x1B8" + // DEC restore cursor
650820
- (this.writeDepth === 0 ? `${CURSOR_BLINK_BLOCK}\x1B[?25h` : "");
650831
+ buf += "\x1B[?7h\x1B8";
650832
+ if (this.writeDepth === 0) {
650833
+ const cursorTermRow = pos.inputStartRow + 1 + inputWrap.cursorRow;
650834
+ buf += `\x1B[${cursorTermRow};${inputWrap.cursorCol}H${CURSOR_BLINK_BLOCK}\x1B[?25h`;
650835
+ }
650821
650836
  this.termWrite(buf);
650822
650837
  this.rememberFooterPaint(pos.inputStartRow);
650823
650838
  if (pos.tabBarRow > 0) this.renderAgentTabs();
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.543",
3
+ "version": "1.0.544",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.543",
9
+ "version": "1.0.544",
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.543",
3
+ "version": "1.0.544",
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",