omnius 1.0.340 → 1.0.341

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
@@ -560736,7 +560736,7 @@ var init_critic = __esm({
560736
560736
  function extractSubject(errorText) {
560737
560737
  if (!errorText)
560738
560738
  return null;
560739
- const PATTERNS = [
560739
+ const PATTERNS2 = [
560740
560740
  // Quoted module / type / symbol after recognizable phrases
560741
560741
  /cannot find (?:module|name|type|symbol|reference|file|namespace)\s+['"`]([^'"`\n]{1,80})['"`]/i,
560742
560742
  /(?:undefined|unresolved)\s+(?:reference|import|symbol)\s+(?:to\s+)?['"`]([^'"`\n]{1,80})['"`]/i,
@@ -560751,7 +560751,7 @@ function extractSubject(errorText) {
560751
560751
  /\bcannot resolve\s+['"`]?([^'"`\n\s]{1,120})['"`]?/i,
560752
560752
  /\bmodule not found:?\s+['"`]?([^'"`\n\s]{1,120})['"`]?/i
560753
560753
  ];
560754
- for (const re of PATTERNS) {
560754
+ for (const re of PATTERNS2) {
560755
560755
  const m2 = errorText.match(re);
560756
560756
  if (m2 && m2[1]) {
560757
560757
  const subj = m2[1].trim();
@@ -565070,6 +565070,79 @@ var init_consolidation_runtime = __esm({
565070
565070
  }
565071
565071
  });
565072
565072
 
565073
+ // packages/orchestrator/dist/completion-evidence-gate.js
565074
+ function classifyCompletionClaim(text2) {
565075
+ const t2 = String(text2 || "");
565076
+ for (const p2 of PATTERNS) {
565077
+ if (p2.re.test(t2)) {
565078
+ return { category: p2.category, requiresIndependentEvidence: true, requiredCheck: p2.check };
565079
+ }
565080
+ }
565081
+ return { category: null, requiresIndependentEvidence: false, requiredCheck: "" };
565082
+ }
565083
+ function detectExitCodeMisread(text2) {
565084
+ const t2 = String(text2 || "");
565085
+ const nonzeroExit = /\bexit(?:ed|s)?\b[^.\n]{0,20}?\b(?:code\s*)?(?:[1-9]\d*|non-?zero)\b/i;
565086
+ const successWord = /\b(success(?:ful|fully|ed)?|succeeded|done|passed|works?|working|fine|ok|complete[d]?)\b/i;
565087
+ if (nonzeroExit.test(t2) && successWord.test(t2))
565088
+ return true;
565089
+ if (/\|\|\s*true\b|\bset \+e\b|2>\/dev\/null\s*;\s*(echo|exit 0)/i.test(t2))
565090
+ return true;
565091
+ return false;
565092
+ }
565093
+ function auditCompletionClaims(claims) {
565094
+ const blockers = [];
565095
+ for (const c8 of claims || []) {
565096
+ const cls = classifyCompletionClaim(c8.text);
565097
+ if (!cls.requiresIndependentEvidence || !cls.category)
565098
+ continue;
565099
+ if (c8.status !== "supported") {
565100
+ blockers.push({ claim: String(c8.text || "").slice(0, 160), category: cls.category, requiredCheck: cls.requiredCheck });
565101
+ }
565102
+ }
565103
+ return { ok: blockers.length === 0, blockers };
565104
+ }
565105
+ function completionEvidenceDirective() {
565106
+ return [
565107
+ "[Evidence-gated completion — do not pretend success]",
565108
+ "Before you claim a task is done, optimize for 'is the end state actually correct?', NOT 'did I make the change?'. Each of these claim types REQUIRES an independent check from a DIFFERENT command than the one that made the change:",
565109
+ "- A process is 'running/started/up' → re-probe liveness after a short delay (ps/pgrep, a health endpoint, or the listening port). A PID file or a launcher log is NOT proof it stayed alive — 'started' ≠ 'running'.",
565110
+ "- Something is 'installed/available' → verify with `command -v`/`--version`/a package query, NOT the installer's own log.",
565111
+ "- A bug is 'fixed' → re-run the ORIGINAL failing command/test and watch it pass, not just confirm the edit landed.",
565112
+ "- A success in simulation/mock/dry-run mode → label it as SIMULATED; never present it as the real capability.",
565113
+ "Exit codes: a non-zero exit is NOT success; a zero exit from a wrapper / `|| true` / `set +e` is NOT proof the underlying thing worked — inspect what actually happened.",
565114
+ "If you cannot produce the independent evidence, say so plainly and mark the item unverified or partial — never report a success state you have not verified."
565115
+ ].join("\n");
565116
+ }
565117
+ var PATTERNS;
565118
+ var init_completion_evidence_gate = __esm({
565119
+ "packages/orchestrator/dist/completion-evidence-gate.js"() {
565120
+ "use strict";
565121
+ PATTERNS = [
565122
+ {
565123
+ category: "process_liveness",
565124
+ re: /\b(running|started|launched|spun up|brought up|is up|listening|serving|alive|daemon (is|now)|service (is|now)|server (is|now)|booted|online)\b/i,
565125
+ check: "Independently probe liveness AFTER a short delay: ps/pgrep for the actual process, a health endpoint, or `ss -ltnp` for the port — NOT the launcher log or a PID file (a PID file can exist while the process is dead)."
565126
+ },
565127
+ {
565128
+ category: "installation",
565129
+ re: /\b(installed|available in PATH|on the PATH|set up|provisioned|configured and ready|now available|dependency (is )?(present|installed))\b/i,
565130
+ check: "Independently confirm presence: `command -v <bin>` / `<bin> --version` / package manager query (e.g. `apt-cache policy`, `pip show`) — NOT the installer's own success log."
565131
+ },
565132
+ {
565133
+ category: "fix_confirmation",
565134
+ re: /\b(fixed|resolved|corrected|patched|repaired|no longer (fails|errors|crashes)|works now|issue (is )?gone)\b/i,
565135
+ check: "Re-run the ORIGINAL failing command/test and observe it now passes — an independent reproduction, not just confirming the edit was written."
565136
+ },
565137
+ {
565138
+ category: "reality",
565139
+ re: /\b(simulat\w+|mock\w*|stub\w*|fake|dry[- ]?run|--sim|placeholder mode|fallback mode)\b/i,
565140
+ check: "This was a SIMULATED/mock run. Label it explicitly as simulated and do NOT present it as the real capability; verify against the real system before claiming the real success."
565141
+ }
565142
+ ];
565143
+ }
565144
+ });
565145
+
565073
565146
  // packages/orchestrator/dist/tool-batching.js
565074
565147
  function isConcurrencySafe(toolName, readOnlyHints) {
565075
565148
  if (CONCURRENT_SAFE_TOOLS.has(toolName))
@@ -568620,6 +568693,7 @@ var init_agenticRunner = __esm({
568620
568693
  init_dist5();
568621
568694
  init_exploration_fanout();
568622
568695
  init_consolidation_runtime();
568696
+ init_completion_evidence_gate();
568623
568697
  init_tool_batching();
568624
568698
  init_hooks2();
568625
568699
  init_todo_context_chunker();
@@ -570710,6 +570784,18 @@ ${input.answerText ?? ""}`.toLowerCase().trim();
570710
570784
  this._completionLedger = reconcileClaimsWithEvidence(this._completionLedger);
570711
570785
  this._saveCompletionLedgerSafe();
570712
570786
  }
570787
+ try {
570788
+ const _audit = auditCompletionClaims(this._completionLedger.proposedClaims.map((c8) => ({ text: c8.text, status: c8.status })));
570789
+ if (!_audit.ok) {
570790
+ const _checks = _audit.blockers.map((b) => `• [${b.category}] "${b.claim}" → ${b.requiredCheck}`).join("\n");
570791
+ this._completionCaveat = [
570792
+ this._completionCaveat || "",
570793
+ `[UNVERIFIED SUCCESS — run these independent checks before claiming done]
570794
+ ${_checks}`
570795
+ ].filter(Boolean).join("\n\n");
570796
+ }
570797
+ } catch {
570798
+ }
570713
570799
  }
570714
570800
  const optOverride = this.options.backwardPassReview;
570715
570801
  const raw = (process.env["OMNIUS_BACKWARD_PASS"] || "on").toLowerCase();
@@ -573943,6 +574029,12 @@ Respond with your assessment, then take action.`;
573943
574029
  }
573944
574030
  const contextComposition = await this.assembleContext(task, context2);
573945
574031
  let systemPrompt = contextComposition.assembled;
574032
+ try {
574033
+ systemPrompt = `${systemPrompt}
574034
+
574035
+ ${completionEvidenceDirective()}`;
574036
+ } catch {
574037
+ }
573946
574038
  try {
573947
574039
  const _cap = getMediaCapability();
573948
574040
  const _tier = this.options.modelTier ?? "large";
@@ -590380,6 +590472,7 @@ __export(dist_exports3, {
590380
590472
  appendSteeringLedgerEntry: () => appendSteeringLedgerEntry,
590381
590473
  appendSteeringOutcome: () => appendSteeringOutcome,
590382
590474
  arcSummary: () => arcSummary,
590475
+ auditCompletionClaims: () => auditCompletionClaims,
590383
590476
  buildAgentNotification: () => buildAgentNotification,
590384
590477
  buildAgentTypeSummary: () => buildAgentTypeSummary,
590385
590478
  buildCompletionScenarioDecomposition: () => buildCompletionScenarioDecomposition,
@@ -590400,6 +590493,7 @@ __export(dist_exports3, {
590400
590493
  chooseCheapModelRoute: () => chooseCheapModelRoute,
590401
590494
  claimAssertion: () => claimAssertion,
590402
590495
  classifyBreadth: () => classifyBreadth,
590496
+ classifyCompletionClaim: () => classifyCompletionClaim,
590403
590497
  classifyHandoff: () => classifyHandoff,
590404
590498
  classifyOllamaProcesses: () => classifyOllamaProcesses,
590405
590499
  cleanForStorage: () => cleanForStorage,
@@ -590408,6 +590502,7 @@ __export(dist_exports3, {
590408
590502
  clearTurnState: () => clearTurnState,
590409
590503
  combineValidatorResults: () => combineValidatorResults,
590410
590504
  compilePersonalityPrompt: () => compilePersonalityPrompt,
590505
+ completionEvidenceDirective: () => completionEvidenceDirective,
590411
590506
  compressFindings: () => compressFindings,
590412
590507
  computeArc: () => computeArc,
590413
590508
  computeStabilityHash: () => computeStabilityHash,
@@ -590425,6 +590520,7 @@ __export(dist_exports3, {
590425
590520
  decomposeSpec: () => decomposeSpec,
590426
590521
  deleteAgentTaskSidecar: () => deleteAgentTaskSidecar,
590427
590522
  deriveClaimsFromProposedText: () => deriveClaimsFromProposedText,
590523
+ detectExitCodeMisread: () => detectExitCodeMisread,
590428
590524
  detectExplorationIntent: () => detectExplorationIntent,
590429
590525
  detectPressure: () => detectPressure,
590430
590526
  detectTaskType: () => detectTaskType,
@@ -590638,6 +590734,7 @@ var init_dist8 = __esm({
590638
590734
  init_memory_consolidation();
590639
590735
  init_exploration_fanout();
590640
590736
  init_consolidation_runtime();
590737
+ init_completion_evidence_gate();
590641
590738
  }
590642
590739
  });
590643
590740
 
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.340",
3
+ "version": "1.0.341",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.340",
9
+ "version": "1.0.341",
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.340",
3
+ "version": "1.0.341",
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",