omnius 1.0.474 → 1.0.476
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 +78 -2
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -576110,6 +576110,25 @@ function normalizeShellForFamily(command, cwd4) {
|
|
|
576110
576110
|
} while (s2 !== prev);
|
|
576111
576111
|
return s2.replace(/\s+/g, " ").trim();
|
|
576112
576112
|
}
|
|
576113
|
+
function failureProgressSignal(text2) {
|
|
576114
|
+
const s2 = String(text2 || "");
|
|
576115
|
+
if (!s2.trim())
|
|
576116
|
+
return void 0;
|
|
576117
|
+
let explicit;
|
|
576118
|
+
for (const m2 of s2.matchAll(/(\d+)\s+(?:errors?|failures?|failed|problems?)\b/gi)) {
|
|
576119
|
+
const n2 = Number(m2[1]);
|
|
576120
|
+
if (Number.isFinite(n2))
|
|
576121
|
+
explicit = Math.max(explicit ?? 0, n2);
|
|
576122
|
+
}
|
|
576123
|
+
if (explicit != null)
|
|
576124
|
+
return explicit;
|
|
576125
|
+
let lines = 0;
|
|
576126
|
+
for (const line of s2.split(/\r?\n/)) {
|
|
576127
|
+
if (/\b(errors?|fail(?:ed|ure|ures|s)?)\b/i.test(line))
|
|
576128
|
+
lines++;
|
|
576129
|
+
}
|
|
576130
|
+
return lines > 0 ? lines : void 0;
|
|
576131
|
+
}
|
|
576113
576132
|
function actionFamily(toolName, args, cwd4) {
|
|
576114
576133
|
if (isEditTool(toolName)) {
|
|
576115
576134
|
const path13 = primaryPath(args);
|
|
@@ -576567,7 +576586,11 @@ var init_focusSupervisor = __esm({
|
|
|
576567
576586
|
turn: input.turn,
|
|
576568
576587
|
sample: next.sample,
|
|
576569
576588
|
errorClass: next.errorClass,
|
|
576570
|
-
mutatedSinceLast: this.sawMutationSinceFailure
|
|
576589
|
+
mutatedSinceLast: this.sawMutationSinceFailure,
|
|
576590
|
+
// Root fix: progress = the action's error count dropped, not that an
|
|
576591
|
+
// edit happened. Extract the signal from the action's own output so a
|
|
576592
|
+
// futile edit loop (rebuilding with the same error count) escalates.
|
|
576593
|
+
failureSignal: failureProgressSignal(input.output || input.error)
|
|
576571
576594
|
});
|
|
576572
576595
|
this.sawMutationSinceFailure = false;
|
|
576573
576596
|
if (verdict.tier === "abandon") {
|
|
@@ -576730,6 +576753,8 @@ var init_convergence_breaker = __esm({
|
|
|
576730
576753
|
baseline = /* @__PURE__ */ new Map();
|
|
576731
576754
|
/** Progress decay accumulated this session (one per productive mutation). */
|
|
576732
576755
|
decay = /* @__PURE__ */ new Map();
|
|
576756
|
+
/** Last verification signal (error count) seen per family, for delta-based progress. */
|
|
576757
|
+
lastSignal = /* @__PURE__ */ new Map();
|
|
576733
576758
|
constructor(options2 = {}) {
|
|
576734
576759
|
this.warnRound = Math.max(1, options2.warnRound ?? DEFAULTS.warnRound);
|
|
576735
576760
|
this.stallRound = Math.max(this.warnRound + 1, options2.stallRound ?? DEFAULTS.stallRound);
|
|
@@ -576749,7 +576774,15 @@ var init_convergence_breaker = __esm({
|
|
|
576749
576774
|
}
|
|
576750
576775
|
const base3 = this.baseline.get(obs.family) ?? 0;
|
|
576751
576776
|
let dec = this.decay.get(obs.family) ?? 0;
|
|
576752
|
-
|
|
576777
|
+
let madeProgress;
|
|
576778
|
+
if (obs.failureSignal != null) {
|
|
576779
|
+
const prev = this.lastSignal.get(obs.family);
|
|
576780
|
+
madeProgress = prev != null && obs.failureSignal < prev;
|
|
576781
|
+
this.lastSignal.set(obs.family, obs.failureSignal);
|
|
576782
|
+
} else {
|
|
576783
|
+
madeProgress = Boolean(obs.mutatedSinceLast);
|
|
576784
|
+
}
|
|
576785
|
+
if (madeProgress) {
|
|
576753
576786
|
dec += 1;
|
|
576754
576787
|
this.decay.set(obs.family, dec);
|
|
576755
576788
|
}
|
|
@@ -576771,6 +576804,7 @@ var init_convergence_breaker = __esm({
|
|
|
576771
576804
|
this.live.delete(family);
|
|
576772
576805
|
this.baseline.delete(family);
|
|
576773
576806
|
this.decay.delete(family);
|
|
576807
|
+
this.lastSignal.delete(family);
|
|
576774
576808
|
this.store.save({ family, rounds: 0, updatedAtMs: Date.now() });
|
|
576775
576809
|
}
|
|
576776
576810
|
snapshot() {
|
|
@@ -577035,6 +577069,40 @@ var init_longhaul_integration = __esm({
|
|
|
577035
577069
|
return null;
|
|
577036
577070
|
}
|
|
577037
577071
|
}
|
|
577072
|
+
/**
|
|
577073
|
+
* WO-1 (PyTy pattern): parse a failed build/verify command's own output for
|
|
577074
|
+
* named STRUCTURAL contract violations (signature mismatch / duplicate
|
|
577075
|
+
* definition / unknown member or symbol) and return guidance naming the exact
|
|
577076
|
+
* drifted symbols, so the next edit targets the drift instead of guessing.
|
|
577077
|
+
* Uses the model's own compiler output — no separate compiler run. Generic
|
|
577078
|
+
* across gcc/clang/tsc; returns null when there's nothing structural.
|
|
577079
|
+
*/
|
|
577080
|
+
diagnosticGuidance(output) {
|
|
577081
|
+
try {
|
|
577082
|
+
const diags = parseCompilerDiagnostics(String(output || ""));
|
|
577083
|
+
const byKind = /* @__PURE__ */ new Map();
|
|
577084
|
+
for (const d2 of diags) {
|
|
577085
|
+
if (d2.kind !== "signature_mismatch" && d2.kind !== "duplicate_definition" && d2.kind !== "unknown_member" && d2.kind !== "unknown_symbol")
|
|
577086
|
+
continue;
|
|
577087
|
+
if (!d2.symbol)
|
|
577088
|
+
continue;
|
|
577089
|
+
const arr = byKind.get(d2.kind) ?? [];
|
|
577090
|
+
if (!arr.includes(d2.symbol) && arr.length < 4)
|
|
577091
|
+
arr.push(d2.symbol);
|
|
577092
|
+
byKind.set(d2.kind, arr);
|
|
577093
|
+
}
|
|
577094
|
+
const parts = [];
|
|
577095
|
+
for (const [kind, syms] of byKind) {
|
|
577096
|
+
if (syms.length)
|
|
577097
|
+
parts.push(`${kind.replace(/_/g, " ")} → ${syms.join(", ")}`);
|
|
577098
|
+
}
|
|
577099
|
+
if (parts.length === 0)
|
|
577100
|
+
return null;
|
|
577101
|
+
return `Compiler reports structural contract violations — reconcile these EXACT symbols before editing unrelated files: ${parts.join("; ")}. A signature/definition mismatch means a declaration and its use disagree; fix them against the locked contract (or regenerate the unit) rather than patching around it.`;
|
|
577102
|
+
} catch {
|
|
577103
|
+
return null;
|
|
577104
|
+
}
|
|
577105
|
+
}
|
|
577038
577106
|
/**
|
|
577039
577107
|
* WO-5: decide whether to compact now (threshold AND rubric). The hard ceiling
|
|
577040
577108
|
* guarantees a truly-full window still compacts.
|
|
@@ -592471,6 +592539,14 @@ ${rec.guidance}` : rec.guidance;
|
|
|
592471
592539
|
${dir}` : dir;
|
|
592472
592540
|
}
|
|
592473
592541
|
}
|
|
592542
|
+
if (!result.success) {
|
|
592543
|
+
const diag = lh.diagnosticGuidance(result.output ?? result.error ?? "");
|
|
592544
|
+
if (diag) {
|
|
592545
|
+
runtimeSystemGuidance = runtimeSystemGuidance ? `${runtimeSystemGuidance}
|
|
592546
|
+
|
|
592547
|
+
${diag}` : diag;
|
|
592548
|
+
}
|
|
592549
|
+
}
|
|
592474
592550
|
}
|
|
592475
592551
|
} catch {
|
|
592476
592552
|
}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.476",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.476",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED