omnius 1.0.482 → 1.0.483

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
@@ -559128,10 +559128,55 @@ function parseCompilerDiagnostics(text2, language = "unknown") {
559128
559128
  const out = [];
559129
559129
  if (!text2)
559130
559130
  return out;
559131
- for (const raw of text2.split(/\r?\n/)) {
559131
+ const allLines = text2.split(/\r?\n/);
559132
+ let pyFile;
559133
+ let pyLine;
559134
+ for (let i2 = 0; i2 < allLines.length; i2++) {
559135
+ const trimmed = allLines[i2].trim();
559136
+ const tbMatch = trimmed.match(/^File\s+"([^"]+)",\s*line\s+(\d+)/);
559137
+ if (tbMatch) {
559138
+ pyFile = tbMatch[1];
559139
+ pyLine = Number(tbMatch[2]);
559140
+ }
559141
+ const excMatch = trimmed.match(/^(\w+(?:\.\w+)*Error):\s*(.*)/);
559142
+ if (excMatch && pyFile && !out.some((d2) => d2.file === pyFile && d2.line === pyLine && d2.message === (excMatch[2] ?? excMatch[0]))) {
559143
+ const kind = /^(?:ModuleNotFound|Import)\w*Error$/.test(excMatch[1]) ? "import_error" : "type_error";
559144
+ out.push({
559145
+ file: pyFile,
559146
+ line: pyLine,
559147
+ kind,
559148
+ symbol: excMatch[1],
559149
+ message: excMatch[2] ?? excMatch[0]
559150
+ });
559151
+ }
559152
+ }
559153
+ for (const raw of allLines) {
559132
559154
  const line = raw.trim();
559133
- if (!line || !/error/i.test(line))
559155
+ if (!line)
559134
559156
  continue;
559157
+ const pytestMatch = line.match(/^FAILED\s+(.+?)(?:::(\w+))?(?:\s+-\s+(.+))?$/);
559158
+ if (pytestMatch) {
559159
+ out.push({
559160
+ file: pytestMatch[1],
559161
+ kind: "test_failure",
559162
+ symbol: pytestMatch[2],
559163
+ message: pytestMatch[3] ?? line
559164
+ });
559165
+ continue;
559166
+ }
559167
+ if (!/error|FAILED|unrecognized|Traceback|Warning|warning/i.test(line))
559168
+ continue;
559169
+ if (/unrecognized\s+(element|attribute)/i.test(line) || /not\s+allowed\s+here/i.test(line)) {
559170
+ const fileMatch = line.match(/^(.+?):/);
559171
+ const lnMatch = line.match(/:(\d+):/);
559172
+ out.push({
559173
+ file: fileMatch?.[1] ?? "unknown.xml",
559174
+ line: lnMatch ? Number(lnMatch[1]) : void 0,
559175
+ kind: "schema_error",
559176
+ message: line
559177
+ });
559178
+ continue;
559179
+ }
559135
559180
  const loc = line.match(/^(.+?):(\d+):(?:\d+:)?\s*(?:fatal\s+)?error:\s*(.*)$/i);
559136
559181
  const file = loc?.[1];
559137
559182
  const lineNo = loc ? Number(loc[2]) : void 0;
@@ -576236,7 +576281,7 @@ function failureProgressSignal(text2) {
576236
576281
  if (!s2.trim())
576237
576282
  return void 0;
576238
576283
  let explicit;
576239
- for (const m2 of s2.matchAll(/(\d+)\s+(?:errors?|failures?|failed|problems?)\b/gi)) {
576284
+ for (const m2 of s2.matchAll(/(\d+)\s+(?:errors?|failures?|failed|problems?|warnings?)\b/gi)) {
576240
576285
  const n2 = Number(m2[1]);
576241
576286
  if (Number.isFinite(n2))
576242
576287
  explicit = Math.max(explicit ?? 0, n2);
@@ -576245,7 +576290,11 @@ function failureProgressSignal(text2) {
576245
576290
  return explicit;
576246
576291
  let lines = 0;
576247
576292
  for (const line of s2.split(/\r?\n/)) {
576248
- if (/\b(errors?|fail(?:ed|ure|ures|s)?)\b/i.test(line))
576293
+ if (/\b(errors?|fail(?:ed|ure|ures|s)?|warnings?|unrecognized)\b/i.test(line))
576294
+ lines++;
576295
+ else if (/\b\w+Error\b/.test(line))
576296
+ lines++;
576297
+ else if (/\bTraceback\b/i.test(line))
576249
576298
  lines++;
576250
576299
  }
576251
576300
  return lines > 0 ? lines : void 0;
@@ -576745,7 +576794,9 @@ var init_focusSupervisor = __esm({
576745
576794
  state: "forced_replan",
576746
576795
  reason: verdict.reason,
576747
576796
  requiredNextAction: this.resolveRequiredNextAction("run_verification"),
576748
- forbiddenActionFamilies: [actionFamily(input.toolName, input.args, this.familyCwd)]
576797
+ forbiddenActionFamilies: [
576798
+ actionFamily(input.toolName, input.args, this.familyCwd)
576799
+ ]
576749
576800
  });
576750
576801
  }
576751
576802
  }
@@ -577628,11 +577679,20 @@ The sub-agent works in its own small context; when it folds back, run the build
577628
577679
  buildDelegationCall(output) {
577629
577680
  try {
577630
577681
  const diags = parseCompilerDiagnostics(String(output || ""));
577631
- const structural = diags.filter((d2) => d2.kind === "signature_mismatch" || d2.kind === "duplicate_definition" || d2.kind === "unknown_member" || d2.kind === "unknown_symbol" || d2.kind === "type_error");
577682
+ const structural = diags.filter((d2) => d2.kind === "signature_mismatch" || d2.kind === "duplicate_definition" || d2.kind === "unknown_member" || d2.kind === "unknown_symbol" || d2.kind === "type_error" || d2.kind === "test_failure" || d2.kind === "import_error" || d2.kind === "schema_error");
577632
577683
  const top = structural.find((d2) => d2.file && d2.symbol) ?? structural.find((d2) => d2.file) ?? diags.find((d2) => d2.file) ?? structural[0] ?? diags[0];
577633
- if (!top || !top.file)
577684
+ if (!top)
577634
577685
  return null;
577635
- const file = top.file;
577686
+ let file = top.file;
577687
+ if (!file && top.symbol && this.lockedSource.has(top.symbol)) {
577688
+ file = this.lockedSource.get(top.symbol);
577689
+ }
577690
+ if (!file)
577691
+ return null;
577692
+ if (top.kind === "test_failure") {
577693
+ file = file.replace(/::.*$/, "");
577694
+ }
577695
+ const cleanFile = file;
577636
577696
  const symbol3 = top.symbol;
577637
577697
  const kind = top.kind.replace(/_/g, " ");
577638
577698
  const declSrc = symbol3 ? this.lockedSource.get(symbol3) : void 0;
@@ -591687,6 +591747,18 @@ ${cachedResult}`,
591687
591747
  } catch {
591688
591748
  }
591689
591749
  }
591750
+ if ((tc.name === "sub_agent" || tc.name === "agent") && this._preFoldErrorCount === null && (tc.arguments?.subagent_type === "fixer" || finalArgs?.subagent_type === "fixer") && this._lastBuildOutput !== null) {
591751
+ this._preFoldErrorCount = failureProgressSignal(this._lastBuildOutput) ?? null;
591752
+ this._preFoldFixerDescription = tc.arguments?.description || finalArgs?.description || "voluntary fixer";
591753
+ try {
591754
+ _execSync('git stash push -m "pre-fixer" --include-untracked', {
591755
+ cwd: this.authoritativeWorkingDirectory(),
591756
+ stdio: "pipe",
591757
+ timeout: 1e4
591758
+ });
591759
+ } catch {
591760
+ }
591761
+ }
591690
591762
  try {
591691
591763
  if (typeof tool.executeStream === "function") {
591692
591764
  const gen = tool.executeStream(finalArgs);
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omnius",
3
- "version": "1.0.482",
3
+ "version": "1.0.483",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omnius",
9
- "version": "1.0.482",
9
+ "version": "1.0.483",
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.482",
3
+ "version": "1.0.483",
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",