omnius 1.0.499 → 1.0.501

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
@@ -583249,6 +583249,13 @@ ${parts.join("\n")}
583249
583249
  toolProfile: options2?.toolProfile ?? void 0,
583250
583250
  bruteForce: options2?.bruteForce ?? true,
583251
583251
  bruteForceMaxCycles: options2?.bruteForceMaxCycles ?? 100,
583252
+ // TODO-USAGE: default the empty-plan elicitation ON. Without it, a run
583253
+ // that starts with no todos NEVER receives the "create a todo plan"
583254
+ // nudge (the existing-plan reminder only fires once todos already exist —
583255
+ // a chicken-and-egg that left live runs planning-free). Turning it on
583256
+ // prompts the model to decompose into a checklist at the empty state,
583257
+ // which also feeds the per-todo context compression on completion.
583258
+ elicitTodoCreation: options2?.elicitTodoCreation ?? true,
583252
583259
  allowTurnExtension: options2?.allowTurnExtension ?? true,
583253
583260
  completionProvenanceGuard: options2?.completionProvenanceGuard ?? true,
583254
583261
  backwardPassReview: options2?.backwardPassReview,
@@ -679621,6 +679628,26 @@ var init_stream_renderer = __esm({
679621
679628
  }
679622
679629
  this.scheduleFlush(kind);
679623
679630
  }
679631
+ /**
679632
+ * Flush any buffered partial line and close the current row WITHOUT ending
679633
+ * the stream. Call this before out-of-band output (a tool box, a live block)
679634
+ * interleaves with an in-progress assistant stream: it forces the reasoning
679635
+ * streamed so far to land ABOVE the interleaved block instead of the tail
679636
+ * leaking BELOW it. Safe to call when idle (no-op if nothing is pending).
679637
+ */
679638
+ flushPendingLine() {
679639
+ if (!this.enabled) return;
679640
+ this.cancelFlush();
679641
+ if (this.lineBuffer.length > 0) {
679642
+ const kind = this.inThinkBlock ? "thinking" : this.inToolArgs ? "tool_args" : "content";
679643
+ this.writeHighlighted(this.lineBuffer, kind);
679644
+ this.lineBuffer = "";
679645
+ }
679646
+ if (this.lineStarted) {
679647
+ process.stdout.write("\n");
679648
+ this.lineStarted = false;
679649
+ }
679650
+ }
679624
679651
  /** Called when streaming ends for this response */
679625
679652
  onStreamEnd() {
679626
679653
  if (!this.enabled) return;
@@ -679741,8 +679768,11 @@ var init_stream_renderer = __esm({
679741
679768
  this.writeRaw("\n");
679742
679769
  this.lineStarted = false;
679743
679770
  } else if (text3.length > remaining) {
679744
- const head = text3.slice(0, firstChunkLen).replace(/\s+$/, "");
679745
- const tail = text3.slice(firstChunkLen).replace(/^\s+/, "");
679771
+ const window2 = text3.slice(0, firstChunkLen);
679772
+ const sp = window2.replace(/\s+$/, "").lastIndexOf(" ");
679773
+ const wb = sp > 0 ? sp : firstChunkLen;
679774
+ const head = text3.slice(0, wb).replace(/\s+$/, "");
679775
+ const tail = text3.slice(wb).replace(/^\s+/, "");
679746
679776
  this.writeRaw(highlight(head) + "\n");
679747
679777
  this.lineStarted = false;
679748
679778
  text3 = tail;
@@ -679756,8 +679786,8 @@ var init_stream_renderer = __esm({
679756
679786
  for (let i2 = 0; i2 < lines.length; i2++) {
679757
679787
  const isFirst = i2 === 0;
679758
679788
  const isLast = i2 === lines.length - 1;
679759
- const lp = isBlockquote && !isFirst ? " │ " : isFirst ? usePrefix : " ";
679760
- const chunk = isBlockquote && !isFirst ? "> " + lines[i2].replace(/^\s+/, "") : lines[i2];
679789
+ const lp = isFirst ? usePrefix : "";
679790
+ const chunk = isFirst ? lines[i2] : isBlockquote ? "> " + lines[i2].replace(/^\s+/, "") : lines[i2].replace(/^\s+/, "");
679761
679791
  const needsNewline = !isLast || trailingNewline;
679762
679792
  this.writeRaw(
679763
679793
  dimText(lp) + highlight(chunk) + (needsNewline ? "\n" : "")
@@ -743095,6 +743125,7 @@ function gatherMemorySnippets(root) {
743095
743125
  return snippets;
743096
743126
  }
743097
743127
  async function createSteeringIntakeBackend(config, repoRoot) {
743128
+ const normalizeSteeringBaseUrl = (url) => url.replace(/\/(v1|api)\/?$/i, "").replace(/\/+$/, "");
743098
743129
  if (config.backendType === "nexus") {
743099
743130
  const nexusTool = new NexusTool(repoRoot);
743100
743131
  await nexusTool.execute({ action: "connect" });
@@ -743107,12 +743138,8 @@ async function createSteeringIntakeBackend(config, repoRoot) {
743107
743138
  false
743108
743139
  );
743109
743140
  }
743110
- return new OllamaAgenticBackend(
743111
- config.backendUrl,
743112
- config.model,
743113
- config.apiKey,
743114
- false
743115
- );
743141
+ const steeringBaseUrl = normalizeSteeringBaseUrl(config.backendUrl);
743142
+ return new OllamaAgenticBackend(steeringBaseUrl, config.model, config.apiKey, false);
743116
743143
  }
743117
743144
  function formatTaskCompletionMeta(meta) {
743118
743145
  if (!meta) return "no prior task metrics recorded";
@@ -744639,6 +744666,7 @@ ${entry.fullContent}`
744639
744666
  `
744640
744667
  );
744641
744668
  } else {
744669
+ stream?.renderer.flushPendingLine?.();
744642
744670
  renderToolCallStart(
744643
744671
  event.toolName ?? "unknown",
744644
744672
  event.toolArgs ?? {},
@@ -744766,6 +744794,7 @@ ${entry.fullContent}`
744766
744794
  writeToNeovimOutput(` ${prefix} ${preview}\r
744767
744795
  `);
744768
744796
  } else {
744797
+ stream?.renderer.flushPendingLine?.();
744769
744798
  contentWrite(() => {
744770
744799
  renderToolResult(
744771
744800
  event.toolName ?? "unknown",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.499",
3
+ "version": "1.0.501",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.499",
9
+ "version": "1.0.501",
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.499",
3
+ "version": "1.0.501",
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",