omnius 1.0.569 → 1.0.570
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 +170 -21
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -43773,20 +43773,27 @@ function scoreSkill(skill, terms2) {
|
|
|
43773
43773
|
const hay = skillHaystack(skill);
|
|
43774
43774
|
const matched = [];
|
|
43775
43775
|
let score = 0;
|
|
43776
|
+
let capabilityMatches = 0;
|
|
43776
43777
|
for (const term of terms2) {
|
|
43777
43778
|
if (!hay.includes(term))
|
|
43778
43779
|
continue;
|
|
43780
|
+
const nameMatch = skill.name.toLowerCase().includes(term);
|
|
43781
|
+
const triggerMatch = skill.triggers.some((trigger) => trigger.toLowerCase().includes(term));
|
|
43782
|
+
const descriptionMatch = skill.description.toLowerCase().includes(term);
|
|
43783
|
+
if (!nameMatch && !triggerMatch && !descriptionMatch)
|
|
43784
|
+
continue;
|
|
43779
43785
|
matched.push(term);
|
|
43780
|
-
|
|
43786
|
+
capabilityMatches++;
|
|
43787
|
+
if (nameMatch)
|
|
43781
43788
|
score += 5;
|
|
43782
|
-
if (
|
|
43789
|
+
if (triggerMatch)
|
|
43783
43790
|
score += 3;
|
|
43784
|
-
if (
|
|
43791
|
+
if (descriptionMatch)
|
|
43785
43792
|
score += 2;
|
|
43786
43793
|
if (skill.source.toLowerCase().includes(term))
|
|
43787
43794
|
score += 1;
|
|
43788
43795
|
}
|
|
43789
|
-
if (score <= 0)
|
|
43796
|
+
if (score <= 0 || capabilityMatches === 0)
|
|
43790
43797
|
return null;
|
|
43791
43798
|
return {
|
|
43792
43799
|
skill,
|
|
@@ -568049,7 +568056,8 @@ function recordCompletionEvidence(ledger, evidence) {
|
|
|
568049
568056
|
...evidence.family ? { family: cleanText(evidence.family, 120) } : {},
|
|
568050
568057
|
...evidence.verificationImpact ? { verificationImpact: evidence.verificationImpact } : {},
|
|
568051
568058
|
...evidence.metrics ? { metrics: evidence.metrics } : {},
|
|
568052
|
-
...evidence.receipt ? { receipt: evidence.receipt } : {}
|
|
568059
|
+
...evidence.receipt ? { receipt: evidence.receipt } : {},
|
|
568060
|
+
...evidence.progressClass ? { progressClass: evidence.progressClass } : {}
|
|
568053
568061
|
};
|
|
568054
568062
|
return {
|
|
568055
568063
|
...ledger,
|
|
@@ -568075,7 +568083,8 @@ function recordToolEvidence(ledger, input) {
|
|
|
568075
568083
|
family: input.family,
|
|
568076
568084
|
verificationImpact: input.verificationImpact,
|
|
568077
568085
|
metrics: input.metrics,
|
|
568078
|
-
receipt: input.receipt
|
|
568086
|
+
receipt: input.receipt,
|
|
568087
|
+
progressClass: input.progressClass
|
|
568079
568088
|
});
|
|
568080
568089
|
}
|
|
568081
568090
|
function addCompletionClaims(ledger, claims) {
|
|
@@ -568199,6 +568208,9 @@ function classifyCompletionProgress(entry) {
|
|
|
568199
568208
|
if (entry.kind === "file_change" || entry.role === "mutation") {
|
|
568200
568209
|
return "work_product";
|
|
568201
568210
|
}
|
|
568211
|
+
if (/^(file_write|file_edit|file_patch|batch_edit)$/.test(entry.toolName ?? "")) {
|
|
568212
|
+
return "work_product";
|
|
568213
|
+
}
|
|
568202
568214
|
return "observation";
|
|
568203
568215
|
}
|
|
568204
568216
|
function isMutationEvidence(entry) {
|
|
@@ -568233,7 +568245,11 @@ function isVerificationInvalidatingMutation(entry) {
|
|
|
568233
568245
|
return entry.verificationImpact !== "neutral";
|
|
568234
568246
|
}
|
|
568235
568247
|
function isSuccessfulVerificationEvidence(entry) {
|
|
568236
|
-
|
|
568248
|
+
if (entry.role !== "verification" || entry.success !== true)
|
|
568249
|
+
return false;
|
|
568250
|
+
if (!entry.receipt)
|
|
568251
|
+
return true;
|
|
568252
|
+
return entry.receipt.schema === "omnius.command-evidence-receipt.v1" && Boolean(entry.receipt.canonicalCommand.trim()) && Boolean(entry.receipt.cwd.trim()) && entry.receipt.exitCode === 0 && !entry.receipt.timedOut;
|
|
568237
568253
|
}
|
|
568238
568254
|
function isFailedVerificationEvidence(entry) {
|
|
568239
568255
|
return entry.role === "verification" && entry.success === false;
|
|
@@ -571665,6 +571681,45 @@ var init_reference_contracts = __esm({
|
|
|
571665
571681
|
}
|
|
571666
571682
|
});
|
|
571667
571683
|
|
|
571684
|
+
// packages/orchestrator/dist/phase-skill-guidance.js
|
|
571685
|
+
function buildPhaseSkillGuidance(input) {
|
|
571686
|
+
const query = [
|
|
571687
|
+
`Active lifecycle phase: ${input.phase}.`,
|
|
571688
|
+
`Phase focus: ${PHASE_FOCUS[input.phase]}.`,
|
|
571689
|
+
`Current user goal: ${input.goal}`,
|
|
571690
|
+
input.currentStep ? `Current work item: ${input.currentStep}` : ""
|
|
571691
|
+
].filter(Boolean).join("\n");
|
|
571692
|
+
const pack = buildEphemeralSkillPack(input.skills ?? discoverSkills(input.repoRoot), {
|
|
571693
|
+
task: query,
|
|
571694
|
+
modelTier: input.modelTier,
|
|
571695
|
+
// Phase support must leave the evidence and current task dominant.
|
|
571696
|
+
limit: input.modelTier === "small" ? 2 : 3
|
|
571697
|
+
});
|
|
571698
|
+
if (!pack)
|
|
571699
|
+
return "";
|
|
571700
|
+
return [
|
|
571701
|
+
"[PHASE SKILL GUIDANCE]",
|
|
571702
|
+
`phase=${input.phase}`,
|
|
571703
|
+
"This is a live manifest selected from installed/project skills for the current phase. Load targeted guidance only when it materially helps the next action.",
|
|
571704
|
+
pack,
|
|
571705
|
+
"[/PHASE SKILL GUIDANCE]"
|
|
571706
|
+
].join("\n");
|
|
571707
|
+
}
|
|
571708
|
+
var PHASE_FOCUS;
|
|
571709
|
+
var init_phase_skill_guidance = __esm({
|
|
571710
|
+
"packages/orchestrator/dist/phase-skill-guidance.js"() {
|
|
571711
|
+
"use strict";
|
|
571712
|
+
init_dist5();
|
|
571713
|
+
PHASE_FOCUS = {
|
|
571714
|
+
explore: "repository discovery requirements analysis source inspection provenance",
|
|
571715
|
+
plan: "requirements planning architecture design acceptance criteria risk analysis",
|
|
571716
|
+
implement: "implementation code change editing debugging tests integration safety",
|
|
571717
|
+
verify: "verification validation acceptance tests release documentation consistency",
|
|
571718
|
+
mixed: "implementation verification testing code review evidence"
|
|
571719
|
+
};
|
|
571720
|
+
}
|
|
571721
|
+
});
|
|
571722
|
+
|
|
571668
571723
|
// packages/orchestrator/dist/deliveryCoverage.js
|
|
571669
571724
|
import { createHash as createHash30 } from "node:crypto";
|
|
571670
571725
|
import { existsSync as existsSync90, readFileSync as readFileSync70 } from "node:fs";
|
|
@@ -575540,6 +575595,8 @@ function buildTrajectoryCheckpoint(input) {
|
|
|
575540
575595
|
} else if (focus) {
|
|
575541
575596
|
assessment = "recovery_required";
|
|
575542
575597
|
const focusDiagnostic = extractFocusNextAction(focus);
|
|
575598
|
+
if (focusDiagnostic)
|
|
575599
|
+
nextAction = focusDiagnostic;
|
|
575543
575600
|
successEvidence = focusDiagnostic ? `Active controller directive remains unresolved: ${focusDiagnostic}` : "An active controller directive is unresolved; its evidence is recorded separately.";
|
|
575544
575601
|
} else if (hasRecentFailure && !fullWriteRecoveredByMutation) {
|
|
575545
575602
|
assessment = "recovery_required";
|
|
@@ -576262,7 +576319,7 @@ function extractAnchorsFromMessages(messages2, turn, workspaceRoot) {
|
|
|
576262
576319
|
continue;
|
|
576263
576320
|
if (msg.role === "tool" || msg.role === "assistant") {
|
|
576264
576321
|
const matches = content.match(FILE_PATH_RE) ?? [];
|
|
576265
|
-
const distinctPaths = Array.from(new Set(matches.filter((p2) => isFileAnchorCandidate(p2, workspaceRoot)))).slice(0, 5);
|
|
576322
|
+
const distinctPaths = Array.from(new Set(matches.map((p2) => p2.trim().replace(/^['"`]+|['"`,.;:)\]]+$/g, "")).filter((p2) => isFileAnchorCandidate(p2, workspaceRoot)))).slice(0, 5);
|
|
576266
576323
|
for (const p2 of distinctPaths) {
|
|
576267
576324
|
const summary = `file: ${p2}`;
|
|
576268
576325
|
if (seenSummaries.has(summary))
|
|
@@ -591485,6 +591542,7 @@ var init_agenticRunner = __esm({
|
|
|
591485
591542
|
init_personality();
|
|
591486
591543
|
init_promptLoader();
|
|
591487
591544
|
init_reference_contracts();
|
|
591545
|
+
init_phase_skill_guidance();
|
|
591488
591546
|
init_deliveryCoverage();
|
|
591489
591547
|
init_critic();
|
|
591490
591548
|
init_reflection();
|
|
@@ -592143,6 +592201,10 @@ var init_agenticRunner = __esm({
|
|
|
592143
592201
|
_toolLastUsedTurn = /* @__PURE__ */ new Map();
|
|
592144
592202
|
_ephemeralSkillPackContext = "";
|
|
592145
592203
|
_stickyDynamicContext = "";
|
|
592204
|
+
// Successful PFV/SSMA analyses are controller facts, not prompt fragments.
|
|
592205
|
+
// Keep one expiring delta so a capable model sees the current diagnosis and
|
|
592206
|
+
// evidence handle without inheriting an archive of REG directives.
|
|
592207
|
+
_recoveryControllerDelta = null;
|
|
592146
592208
|
// Phase 1 — Context Tree. Tracks current phase + per-phase anchors so
|
|
592147
592209
|
// compactMessages can summarize-by-phase and Phase 6 can surface anchors
|
|
592148
592210
|
// by keyword. Initialized lazily in run() because the system-prompt hash
|
|
@@ -592978,6 +593040,17 @@ ${parts.join("\n")}
|
|
|
592978
593040
|
lines.push(`declared_next_action=${ts.nextAction.replace(/\s+/g, " ").slice(0, 220)}`);
|
|
592979
593041
|
}
|
|
592980
593042
|
lines.push(`progress_anchor=completed_steps:${ts.completedSteps.length} failed_approaches:${ts.failedApproaches.length} modified_files:${ts.modifiedFiles.size} tool_calls:${ts.toolCallCount}`);
|
|
593043
|
+
const recoveryDelta = this._recoveryControllerDelta;
|
|
593044
|
+
if (recoveryDelta && recoveryDelta.expiresAtTurn >= turn) {
|
|
593045
|
+
lines.push(`recovery_delta=${recoveryDelta.source} evidence=${recoveryDelta.evidenceHandle}`);
|
|
593046
|
+
lines.push(`recovery_diagnosis=${recoveryDelta.diagnosis}`);
|
|
593047
|
+
lines.push(`recovery_next_action=${recoveryDelta.nextAction}`);
|
|
593048
|
+
if (recoveryDelta.verification) {
|
|
593049
|
+
lines.push(`recovery_exit_evidence=${recoveryDelta.verification}`);
|
|
593050
|
+
}
|
|
593051
|
+
} else if (recoveryDelta) {
|
|
593052
|
+
this._recoveryControllerDelta = null;
|
|
593053
|
+
}
|
|
592981
593054
|
if (ts.completedSteps.length > 0) {
|
|
592982
593055
|
lines.push(`recent_completed=${ts.completedSteps.slice(-3).join(" | ").replace(/\s+/g, " ").slice(0, 420)}`);
|
|
592983
593056
|
}
|
|
@@ -593029,6 +593102,24 @@ ${parts.join("\n")}
|
|
|
593029
593102
|
lines.push(this._todoWriteAvailable() ? "not_progress=repeat unchanged todo_write; repeat broad discovery already represented in this frame; keep discovery active after a real mutation" : "not_progress=repeat broad discovery already represented in this frame; keep discovery active after a real mutation");
|
|
593030
593103
|
return lines.join("\n");
|
|
593031
593104
|
}
|
|
593105
|
+
_recordRecoveryControllerDelta(input) {
|
|
593106
|
+
const diagnosis = String(input.diagnosis ?? "").replace(/\s+/g, " ").trim().slice(0, 320);
|
|
593107
|
+
const nextAction = String(input.nextAction ?? "").replace(/\s+/g, " ").trim().slice(0, 320);
|
|
593108
|
+
if (!diagnosis || !nextAction)
|
|
593109
|
+
return;
|
|
593110
|
+
this._recoveryControllerDelta = {
|
|
593111
|
+
source: input.source,
|
|
593112
|
+
evidenceHandle: `${input.source}@turn-${input.turn}`,
|
|
593113
|
+
diagnosis,
|
|
593114
|
+
nextAction,
|
|
593115
|
+
verification: String(input.verification ?? "").replace(/\s+/g, " ").trim().slice(0, 260),
|
|
593116
|
+
expectedTool: input.expectedTool,
|
|
593117
|
+
// A delta is a live controller state, not an instruction archive. It
|
|
593118
|
+
// naturally expires unless the proposed action is attempted first.
|
|
593119
|
+
expiresAtTurn: input.turn + 4
|
|
593120
|
+
};
|
|
593121
|
+
this._trajectoryDirtyCauses.add(`recovery_${input.source}`);
|
|
593122
|
+
}
|
|
593032
593123
|
_workboardTodoCardForPaths(snapshot, paths) {
|
|
593033
593124
|
const targets = [
|
|
593034
593125
|
...new Set(paths.map((path16) => this._normalizeEvidencePath(path16)))
|
|
@@ -600124,7 +600215,12 @@ ${String(concreteGoal).replace(/\s+/g, " ").trim().slice(0, 1200)}` : null
|
|
|
600124
600215
|
const gitBlock = this._renderGitProgressBlock(turn);
|
|
600125
600216
|
const failureBlock = null;
|
|
600126
600217
|
const churnBlock = null;
|
|
600127
|
-
const
|
|
600218
|
+
const focusDirective = this._focusSupervisor?.snapshot().directive;
|
|
600219
|
+
const focusBlock = focusDirective ? [
|
|
600220
|
+
`required_next_action=${focusDirective.requiredNextAction}`,
|
|
600221
|
+
`reason=${focusDirective.reason}`,
|
|
600222
|
+
`state=${focusDirective.state}`
|
|
600223
|
+
].join("\n") : null;
|
|
600128
600224
|
const actionContractBlock = this._renderNextActionContract(turn);
|
|
600129
600225
|
const deliveryCoverageBlock = this._deliveryCoverageState()?.rendered ?? null;
|
|
600130
600226
|
const referenceContractPhase = this._contextTree?.getCurrentPhase() ?? "mixed";
|
|
@@ -600135,6 +600231,13 @@ ${String(concreteGoal).replace(/\s+/g, " ").trim().slice(0, 1200)}` : null
|
|
|
600135
600231
|
includePhase: true,
|
|
600136
600232
|
includeExplicit: false
|
|
600137
600233
|
});
|
|
600234
|
+
const phaseSkillGuidance = buildPhaseSkillGuidance({
|
|
600235
|
+
repoRoot: this.authoritativeWorkingDirectory(),
|
|
600236
|
+
phase: referenceContractPhase,
|
|
600237
|
+
goal: concreteGoal,
|
|
600238
|
+
currentStep: this._taskState.currentStep,
|
|
600239
|
+
modelTier: this.options.modelTier ?? "large"
|
|
600240
|
+
});
|
|
600138
600241
|
const trajectoryCheckpoint = await this._refreshTrajectoryCheckpoint(turn, focusBlock, [
|
|
600139
600242
|
workspaceTreeBlock,
|
|
600140
600243
|
filesystemBlock,
|
|
@@ -600242,6 +600345,15 @@ ${String(concreteGoal).replace(/\s+/g, " ").trim().slice(0, 1200)}` : null
|
|
|
600242
600345
|
contractIds: phaseContracts.contracts.map((contract) => contract.id)
|
|
600243
600346
|
}
|
|
600244
600347
|
}),
|
|
600348
|
+
signalFromBlock("runtime_guidance", "turn.phase-skills", phaseSkillGuidance, {
|
|
600349
|
+
id: "phase-skills",
|
|
600350
|
+
dedupeKey: "turn.phase-skills",
|
|
600351
|
+
semanticKey: "context.phase-skills",
|
|
600352
|
+
priority: PRIORITY.RUNTIME_GUIDANCE - 1,
|
|
600353
|
+
createdTurn: turn,
|
|
600354
|
+
ttlTurns: 1,
|
|
600355
|
+
metadata: { phase: referenceContractPhase }
|
|
600356
|
+
}),
|
|
600245
600357
|
signalFromBlock("task_state", "turn.todos", todoBlock, {
|
|
600246
600358
|
id: "todo-state",
|
|
600247
600359
|
dedupeKey: "turn.todos",
|
|
@@ -600414,6 +600526,10 @@ ${String(concreteGoal).replace(/\s+/g, " ").trim().slice(0, 1200)}` : null
|
|
|
600414
600526
|
* transition (so the primary loop can reset per-phase tool budgets) or null.
|
|
600415
600527
|
*/
|
|
600416
600528
|
_advanceContextTreeOnToolCall(toolName, argsKey, turn, messages2) {
|
|
600529
|
+
if (this._recoveryControllerDelta?.expectedTool === toolName) {
|
|
600530
|
+
this._recoveryControllerDelta = null;
|
|
600531
|
+
this._trajectoryDirtyCauses.add("recovery_action_attempted");
|
|
600532
|
+
}
|
|
600417
600533
|
if (!this._contextTree)
|
|
600418
600534
|
return null;
|
|
600419
600535
|
this._contextTree.observeToolCall(toolName, argsKey, turn);
|
|
@@ -601704,14 +601820,16 @@ ${notice}`;
|
|
|
601704
601820
|
* protocol correctness; only stale assistant-visible planning prose changes.
|
|
601705
601821
|
*/
|
|
601706
601822
|
_retireLinkedAssistantReadIntents(messages2) {
|
|
601707
|
-
if (!this._legacyModelVisibleCompactionAllowed())
|
|
601708
|
-
return;
|
|
601709
601823
|
const resolvedToolCallIds = new Set(messages2.filter((message2) => message2.role === "tool" && message2.tool_call_id).map((message2) => message2.tool_call_id));
|
|
601710
601824
|
for (const message2 of messages2) {
|
|
601711
601825
|
if (message2.role !== "assistant" || typeof message2.content !== "string" || !Array.isArray(message2.tool_calls) || !message2.tool_calls.some((call) => resolvedToolCallIds.has(call.id)) || !/\b(?:i|we)\s+(?:need|will|should|have)\s+to\s+(?:read|inspect|open)\b/i.test(message2.content)) {
|
|
601712
601826
|
continue;
|
|
601713
601827
|
}
|
|
601714
|
-
|
|
601828
|
+
const index = messages2.indexOf(message2);
|
|
601829
|
+
messages2[index] = {
|
|
601830
|
+
...message2,
|
|
601831
|
+
content: ASSISTANT_READ_INTENT_RETIRED_MARKER
|
|
601832
|
+
};
|
|
601715
601833
|
}
|
|
601716
601834
|
}
|
|
601717
601835
|
_emitSteeringLifecycle(record, reason) {
|
|
@@ -603489,6 +603607,7 @@ Respond with the assessment and take the selected evidence-backed action.`;
|
|
|
603489
603607
|
this._toolLastUsedTurn.clear();
|
|
603490
603608
|
this._ephemeralSkillPackContext = "";
|
|
603491
603609
|
this._stickyDynamicContext = "";
|
|
603610
|
+
this._recoveryControllerDelta = null;
|
|
603492
603611
|
this._stableReferenceContracts = [];
|
|
603493
603612
|
this._referenceContractSelections = [];
|
|
603494
603613
|
this._referenceContractPhase = "mixed";
|
|
@@ -603695,6 +603814,7 @@ Respond with the assessment and take the selected evidence-backed action.`;
|
|
|
603695
603814
|
this._memexArchive.clear();
|
|
603696
603815
|
this._todoOutputLedger.clear();
|
|
603697
603816
|
this._sessionId = this.options.sessionId && String(this.options.sessionId) || process.env["OMNIUS_SESSION_ID"] && String(process.env["OMNIUS_SESSION_ID"]) || `session-${Date.now()}`;
|
|
603817
|
+
setTodoSessionId(this._sessionId);
|
|
603698
603818
|
const continuesPriorTask = this._allowImplicitContinuation || this._isContinuationResumeGoal(persistentTaskGoal);
|
|
603699
603819
|
if (!continuesPriorTask) {
|
|
603700
603820
|
this._hidePriorSessionTodosForFreshTask(persistentTaskGoal);
|
|
@@ -605314,8 +605434,15 @@ Respond with EXACTLY this structure before your next tool call:
|
|
|
605314
605434
|
},
|
|
605315
605435
|
callable: _smaCallable
|
|
605316
605436
|
}).then((_smaResult) => {
|
|
605317
|
-
if (
|
|
605318
|
-
|
|
605437
|
+
if (!_smaResult.directive.parseFallback) {
|
|
605438
|
+
this._recordRecoveryControllerDelta({
|
|
605439
|
+
source: "stuck_meta",
|
|
605440
|
+
turn,
|
|
605441
|
+
diagnosis: _smaResult.directive.diagnosis,
|
|
605442
|
+
nextAction: `${_smaResult.directive.next_action.tool}: ${_smaResult.directive.next_action.rationale}`,
|
|
605443
|
+
verification: _smaResult.directive.verification,
|
|
605444
|
+
expectedTool: _smaResult.directive.next_action.tool
|
|
605445
|
+
});
|
|
605319
605446
|
this.emit({
|
|
605320
605447
|
type: "status",
|
|
605321
605448
|
content: `REG-49 stuck-meta-analyzer fired at turn ${turn} — diagnosis="${_smaResult.directive.diagnosis.slice(0, 80)}", next=${_smaResult.directive.next_action.tool}, ${_smaResult.durationMs}ms`,
|
|
@@ -605471,8 +605598,15 @@ Respond with EXACTLY this structure before your next tool call:
|
|
|
605471
605598
|
},
|
|
605472
605599
|
callable: _smaCallable50
|
|
605473
605600
|
}).then((_smaResult) => {
|
|
605474
|
-
if (
|
|
605475
|
-
|
|
605601
|
+
if (!_smaResult.directive.parseFallback) {
|
|
605602
|
+
this._recordRecoveryControllerDelta({
|
|
605603
|
+
source: "stuck_meta",
|
|
605604
|
+
turn,
|
|
605605
|
+
diagnosis: _smaResult.directive.diagnosis,
|
|
605606
|
+
nextAction: `${_smaResult.directive.next_action.tool}: ${_smaResult.directive.next_action.rationale}`,
|
|
605607
|
+
verification: _smaResult.directive.verification,
|
|
605608
|
+
expectedTool: _smaResult.directive.next_action.tool
|
|
605609
|
+
});
|
|
605476
605610
|
this.emit({
|
|
605477
605611
|
type: "status",
|
|
605478
605612
|
content: `REG-50 → SSMA fired at turn ${turn} — diagnosis="${_smaResult.directive.diagnosis.slice(0, 80)}", next=${_smaResult.directive.next_action.tool}, ${_smaResult.durationMs}ms`,
|
|
@@ -605612,8 +605746,15 @@ Respond with EXACTLY this structure before your next tool call:
|
|
|
605612
605746
|
},
|
|
605613
605747
|
callable: _pfvCallable
|
|
605614
605748
|
}).then((_pfvResult) => {
|
|
605615
|
-
if (
|
|
605616
|
-
|
|
605749
|
+
if (!_pfvResult.verdict.parseFallback && _pfvResult.verdict.verdict !== "continue") {
|
|
605750
|
+
const frame = _pfvResult.verdict.recommended_frame;
|
|
605751
|
+
this._recordRecoveryControllerDelta({
|
|
605752
|
+
source: "problem_frame",
|
|
605753
|
+
turn,
|
|
605754
|
+
diagnosis: `${_pfvResult.verdict.verdict}: ${_pfvResult.verdict.rationale}`,
|
|
605755
|
+
nextAction: frame?.new_subtask || _pfvResult.verdict.blocker_summary || "Re-evaluate the active task frame against current evidence.",
|
|
605756
|
+
verification: frame?.success_criterion || "Record new evidence for the selected frame."
|
|
605757
|
+
});
|
|
605617
605758
|
this.emit({
|
|
605618
605759
|
type: "status",
|
|
605619
605760
|
content: `REG-51 PFV fired at turn ${turn} — verdict=${_pfvResult.verdict.verdict}, trigger=${_pfvTriggerReason}, ssmaCount=${this._ssmaFiredCount}, ${_pfvResult.durationMs}ms`,
|
|
@@ -607679,7 +607820,8 @@ ${cachedResult}`,
|
|
|
607679
607820
|
const normalizedDispatchName = resolvedTool?.name ?? tc.name;
|
|
607680
607821
|
let branchEvidenceResult = null;
|
|
607681
607822
|
if (normalizedDispatchName === "file_read" && this._fileReadMode(tc.arguments) !== "extract") {
|
|
607682
|
-
const
|
|
607823
|
+
const exactReadFingerprint = this._buildToolFingerprint("file_read", tc.arguments);
|
|
607824
|
+
const exactReadKey = this._resolveReadCoverageFingerprint("file_read", tc.arguments, exactReadFingerprint);
|
|
607683
607825
|
const priorRead = exactFileReadObservations.get(exactReadKey);
|
|
607684
607826
|
if (priorRead) {
|
|
607685
607827
|
const currentRead = this._fileReadDiskIdentity(tc.arguments);
|
|
@@ -610039,8 +610181,15 @@ Only call task_complete when the task is actually complete and the evidence is f
|
|
|
610039
610181
|
},
|
|
610040
610182
|
callable: _smaCallable
|
|
610041
610183
|
}).then((_smaResult) => {
|
|
610042
|
-
if (
|
|
610043
|
-
|
|
610184
|
+
if (!_smaResult.directive.parseFallback) {
|
|
610185
|
+
this._recordRecoveryControllerDelta({
|
|
610186
|
+
source: "stuck_meta",
|
|
610187
|
+
turn,
|
|
610188
|
+
diagnosis: _smaResult.directive.diagnosis,
|
|
610189
|
+
nextAction: `${_smaResult.directive.next_action.tool}: ${_smaResult.directive.next_action.rationale}`,
|
|
610190
|
+
verification: _smaResult.directive.verification,
|
|
610191
|
+
expectedTool: _smaResult.directive.next_action.tool
|
|
610192
|
+
});
|
|
610044
610193
|
this.emit({
|
|
610045
610194
|
type: "status",
|
|
610046
610195
|
content: `REG-49 stuck-meta-analyzer fired (loop-intervention path) at turn ${turn} — diagnosis="${_smaResult.directive.diagnosis.slice(0, 80)}", next=${_smaResult.directive.next_action.tool}, ${_smaResult.durationMs}ms`,
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.570",
|
|
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.570",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED