omnius 1.0.235 → 1.0.236

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
@@ -555075,6 +555075,45 @@ function renderCriticPrompt(inputs) {
555075
555075
  lines.push(inputs.completionScenarioDecomposition.slice(0, 6e3));
555076
555076
  lines.push(``);
555077
555077
  }
555078
+ if (inputs.reviewReconciliation) {
555079
+ const packet = inputs.reviewReconciliation;
555080
+ lines.push(`## Reconciliation packet since prior critique`);
555081
+ if (typeof packet.previousCycle === "number") {
555082
+ lines.push(`Previous review cycle: ${packet.previousCycle}`);
555083
+ }
555084
+ if (packet.recordedAtIso) {
555085
+ lines.push(`Previous review recorded at: ${packet.recordedAtIso}`);
555086
+ }
555087
+ lines.push(`Previous critic verdict: ${packet.previousVerdict || "(not recorded)"}`);
555088
+ if (packet.previousCompletionSummary) {
555089
+ lines.push(`Previous completion summary under review: ${packet.previousCompletionSummary.slice(0, 1200)}`);
555090
+ }
555091
+ if (packet.previousRationale) {
555092
+ lines.push(`Previous critic rationale: ${packet.previousRationale.slice(0, 1200)}`);
555093
+ }
555094
+ if (packet.previousFeedback) {
555095
+ lines.push(`Previous critic feedback to implementer:`);
555096
+ lines.push(packet.previousFeedback.slice(0, 2500));
555097
+ }
555098
+ lines.push(``);
555099
+ lines.push(`Evidence recorded after the prior critique:`);
555100
+ const afterEvidence = packet.evidenceSincePreviousReview ?? [];
555101
+ if (afterEvidence.length === 0) {
555102
+ lines.push(`- none recorded after the prior critique`);
555103
+ } else {
555104
+ for (const entry of afterEvidence.slice(-20)) {
555105
+ const status = entry.success ? "ok" : "failed";
555106
+ const turn = typeof entry.turn === "number" ? ` turn=${entry.turn}` : "";
555107
+ const mutated = entry.mutated ? " mutated=true" : "";
555108
+ const args = entry.argsKey ? ` args=${entry.argsKey.slice(0, 180)}` : "";
555109
+ const preview = entry.outputPreview ? ` -> ${entry.outputPreview.slice(0, 320)}` : "";
555110
+ lines.push(`- [${status}] ${entry.name}${turn}${mutated}${args}${preview}`);
555111
+ }
555112
+ }
555113
+ lines.push(``);
555114
+ lines.push(`Reconciliation task: compare the prior critique with the evidence recorded after it. If the new evidence resolves the prior objection, do not repeat that objection. If it does not resolve it, state exactly what observation or correction is still missing from the run record.`);
555115
+ lines.push(``);
555116
+ }
555078
555117
  if (inputs.openLoops && inputs.openLoops.length > 0) {
555079
555118
  lines.push(`## Open loops / unresolved work`);
555080
555119
  for (const loop of inputs.openLoops.slice(0, 12)) {
@@ -555378,6 +555417,7 @@ async function runBackwardPass(opts) {
555378
555417
  finalSummary: opts.finalSummary,
555379
555418
  toolEvidence: opts.toolEvidence,
555380
555419
  completionScenarioDecomposition: opts.completionScenarioDecomposition,
555420
+ reviewReconciliation: opts.reviewReconciliation,
555381
555421
  openLoops: opts.openLoops,
555382
555422
  systemPromptDigest: opts.systemPromptDigest,
555383
555423
  cycle: opts.cycle,
@@ -560949,6 +560989,7 @@ var init_agenticRunner = __esm({
560949
560989
  _fileWritesThisRun = 0;
560950
560990
  _backwardPassCyclesUsed = 0;
560951
560991
  _lastBackwardPassVerdict = null;
560992
+ _lastBackwardPassCritique = null;
560952
560993
  // Run-local completion contract inferred from the user's ask/context before
560953
560994
  // the first model turn. The model can add evidence, but cannot weaken this
560954
560995
  // supervisor-owned contract via todo fields or final-summary wording.
@@ -562095,7 +562136,7 @@ ${context2 ?? ""}`;
562095
562136
  `For each material claim, cite observed evidence from this run or mark the claim unverified/blocked. Let the current request, proposed claims, and observations determine what matters.`,
562096
562137
  `If completion is impossible, say so plainly and name the blocker plus the observations already collected.`,
562097
562138
  ``,
562098
- formatCompletionContract(completionContract, { taskText: profileText })
562139
+ formatCompletionContract(completionContract)
562099
562140
  ].join("\n");
562100
562141
  }
562101
562142
  _resetVisualEvidenceState() {
@@ -562448,7 +562489,7 @@ ${context2 ?? ""}`;
562448
562489
  attempts: entry.attempts,
562449
562490
  preview: (entry.wentWrong || "").slice(0, 200)
562450
562491
  })).sort((a2, b) => b.attempts - a2.attempts).slice(0, 5);
562451
- const criticToolEvidence = toolCallLog.filter((entry) => entry.name !== "task_complete").slice(-40).map((entry) => ({
562492
+ const toCriticEvidence = (entries, limit) => entries.filter((entry) => entry.name !== "task_complete").slice(-limit).map((entry) => ({
562452
562493
  name: entry.name,
562453
562494
  argsKey: entry.argsKey.slice(0, 300),
562454
562495
  success: entry.success === true,
@@ -562456,6 +562497,9 @@ ${context2 ?? ""}`;
562456
562497
  turn: entry.turn,
562457
562498
  mutated: entry.mutated === true
562458
562499
  }));
562500
+ const criticToolEvidence = toCriticEvidence(toolCallLog, 40);
562501
+ const lastCritique = this._lastBackwardPassCritique;
562502
+ const evidenceSincePriorCritique = lastCritique ? toCriticEvidence(toolCallLog.slice(lastCritique.toolLogLength), 20) : [];
562459
562503
  const completionContract = this._completionContractForClaims(proposedSummary);
562460
562504
  const openLoops = [
562461
562505
  ...todos.filter((todo) => todo.status !== "completed" && todo.status !== "blocked").slice(0, 12).map((todo) => `todo still ${todo.status}: ${todo.content}`),
@@ -562492,6 +562536,15 @@ ${context2 ?? ""}`;
562492
562536
  })),
562493
562537
  modifiedFiles: modifiedFileDigest
562494
562538
  }).prompt;
562539
+ const reviewReconciliation = lastCritique ? {
562540
+ previousVerdict: lastCritique.verdict,
562541
+ previousRationale: lastCritique.rationale,
562542
+ previousFeedback: lastCritique.feedback,
562543
+ previousCompletionSummary: lastCritique.completionSummary,
562544
+ previousCycle: lastCritique.cycle,
562545
+ recordedAtIso: lastCritique.recordedAtIso,
562546
+ evidenceSincePreviousReview: evidenceSincePriorCritique
562547
+ } : void 0;
562495
562548
  let result;
562496
562549
  try {
562497
562550
  result = await runBackwardPass({
@@ -562507,10 +562560,12 @@ ${context2 ?? ""}`;
562507
562560
  finalSummary: proposedSummary,
562508
562561
  toolEvidence: criticToolEvidence,
562509
562562
  completionScenarioDecomposition,
562563
+ reviewReconciliation,
562510
562564
  openLoops,
562511
562565
  callable,
562512
562566
  maxFiles: parseInt(process.env["OMNIUS_BACKWARD_PASS_MAX_FILES"] || "60", 10) || 60,
562513
562567
  maxFilePreviewBytes: parseInt(process.env["OMNIUS_BACKWARD_PASS_MAX_FILE_PREVIEW"] || "8000", 10) || 8e3,
562568
+ explicitFiles: modifiedFileDigest.length > 0 ? modifiedFileDigest.map((file) => file.path) : void 0,
562514
562569
  cycle: this._backwardPassCyclesUsed,
562515
562570
  maxCycles
562516
562571
  });
@@ -562548,9 +562603,20 @@ ${context2 ?? ""}`;
562548
562603
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
562549
562604
  });
562550
562605
  void turn;
562551
- if (result.verdict.verdict === "approve")
562606
+ if (result.verdict.verdict === "approve") {
562607
+ this._lastBackwardPassCritique = null;
562552
562608
  return { proceed: true };
562609
+ }
562553
562610
  const feedback = result.feedbackMessage;
562611
+ this._lastBackwardPassCritique = {
562612
+ verdict: result.verdict.verdict,
562613
+ rationale: result.verdict.rationale,
562614
+ feedback,
562615
+ completionSummary: proposedSummary,
562616
+ cycle: this._backwardPassCyclesUsed,
562617
+ toolLogLength: toolCallLog.length,
562618
+ recordedAtIso: (/* @__PURE__ */ new Date()).toISOString()
562619
+ };
562554
562620
  if (result.verdict.verdict === "blocked") {
562555
562621
  const reason = `backward-pass critic blocked completion: ${result.verdict.rationale.slice(0, 240)}`;
562556
562622
  this._completionIncompleteVerification = {
@@ -565090,6 +565156,7 @@ Respond with your assessment, then take action.`;
565090
565156
  this._fileWritesThisRun = 0;
565091
565157
  this._backwardPassCyclesUsed = 0;
565092
565158
  this._lastBackwardPassVerdict = null;
565159
+ this._lastBackwardPassCritique = null;
565093
565160
  this._completionContract = null;
565094
565161
  this._completionContractSeedText = "";
565095
565162
  this._completionIncompleteVerification = null;
@@ -565772,7 +565839,7 @@ TASK: ${scrubbedTask}` : scrubbedTask;
565772
565839
  });
565773
565840
  this._completionHoldState.count = 0;
565774
565841
  this._completionHoldState.lastKey = "";
565775
- return false;
565842
+ return true;
565776
565843
  }
565777
565844
  return true;
565778
565845
  };
@@ -653134,6 +653201,7 @@ ${summary}` : ""}${finalText ? `
653134
653201
  Last visible draft:
653135
653202
  ${finalText}` : ""}`,
653136
653203
  `Evidence:
653204
+ Last observed tool/status:
653137
653205
  ${signals || "No final validating tool/status signal was available."}`
653138
653206
  ].filter(Boolean);
653139
653207
  return parts.join("\n\n");
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.235",
3
+ "version": "1.0.236",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.235",
9
+ "version": "1.0.236",
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.235",
3
+ "version": "1.0.236",
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",