omnius 1.0.211 → 1.0.212
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 +232 -21
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -559029,6 +559029,7 @@ var init_agenticRunner = __esm({
|
|
|
559029
559029
|
bruteForce: options2?.bruteForce ?? true,
|
|
559030
559030
|
bruteForceMaxCycles: options2?.bruteForceMaxCycles ?? 100,
|
|
559031
559031
|
allowTurnExtension: options2?.allowTurnExtension ?? true,
|
|
559032
|
+
completionProvenanceGuard: options2?.completionProvenanceGuard ?? true,
|
|
559032
559033
|
modelTier: options2?.modelTier ?? "large",
|
|
559033
559034
|
contextWindowSize: options2?.contextWindowSize ?? 0,
|
|
559034
559035
|
personality: options2?.personality ?? PERSONALITY_PRESETS.balanced,
|
|
@@ -559898,6 +559899,198 @@ Do NOT call task_complete until all items are marked completed via todo_write.`;
|
|
|
559898
559899
|
`Continue the work loop: inspect the failed evidence, make the smallest targeted fix, then rerun the relevant verification. Use the full available verification spectrum for the artifact you changed: static syntax, build/typecheck, tests, service startup, runtime logs, browser/page errors, console output, network failures, screenshots, accessibility/DOM state, and end-to-end user flow checks where applicable. The exact tools are stack-dependent; the standard is objective runtime evidence, not self-report.`
|
|
559899
559900
|
].join("\n");
|
|
559900
559901
|
}
|
|
559902
|
+
buildMissionCompletionContract(task, context2) {
|
|
559903
|
+
if (process.env["OMNIUS_DISABLE_MISSION_COMPLETION_CONTRACT"] === "1")
|
|
559904
|
+
return "";
|
|
559905
|
+
const profile = this._inferCompletionProfile(`${task}
|
|
559906
|
+
${context2 ?? ""}`);
|
|
559907
|
+
const requirements = [];
|
|
559908
|
+
if (profile.browser)
|
|
559909
|
+
requirements.push("browser/UI state must be proven by a post-action screenshot/DOM/observe_bundle pass");
|
|
559910
|
+
if (profile.desktop)
|
|
559911
|
+
requirements.push("desktop state must be proven by vision_action_loop observe or desktop_describe after the final action");
|
|
559912
|
+
if (profile.code)
|
|
559913
|
+
requirements.push("code/file changes must be proven by a relevant build/test/typecheck/runtime command after the last edit");
|
|
559914
|
+
if (profile.research)
|
|
559915
|
+
requirements.push("research/root-cause claims must cite concrete inspected files, commands, logs, or source artifacts");
|
|
559916
|
+
if (requirements.length === 0)
|
|
559917
|
+
requirements.push("final claims must name the concrete evidence used or state that the task required no external action");
|
|
559918
|
+
return [
|
|
559919
|
+
`[MISSION COMPLETION CONTRACT]`,
|
|
559920
|
+
`Current ask: ${task.slice(0, 500)}`,
|
|
559921
|
+
``,
|
|
559922
|
+
`Before claiming success or calling task_complete, satisfy the mission-specific evidence requirements:`,
|
|
559923
|
+
...requirements.map((line) => `- ${line}.`),
|
|
559924
|
+
``,
|
|
559925
|
+
`The final task_complete summary for any action-heavy task must include a compact Provenance/Evidence note naming the validating tool output, command, screenshot, DOM state, file path, or blocker. Self-confidence is not evidence.`,
|
|
559926
|
+
`For browser/form/account/send flows: after the last click/type/navigate/submit action, capture a fresh browser observation and verify the visible final state before completion.`,
|
|
559927
|
+
`If completion is impossible, use a summary beginning BLOCKED: and name the exact blocker plus the evidence already collected.`
|
|
559928
|
+
].join("\n");
|
|
559929
|
+
}
|
|
559930
|
+
_inferCompletionProfile(text) {
|
|
559931
|
+
const t2 = text.toLowerCase();
|
|
559932
|
+
const browser3 = /\b(browser|web\s*page|website|page|playwright|selenium|chromedriver|chrome|headless|gui|proton|login|captcha|form|account|compose|mail|submit|click|type|fill)\b/.test(t2);
|
|
559933
|
+
const desktop = /\b(desktop|screen|application|app\b|window|file manager|open a file|laptop|screenshot|vision_action_loop|desktop_describe|desktop_click)\b/.test(t2);
|
|
559934
|
+
const code8 = /\b(implement|fix|patch|refactor|rewrite|build|compile|typecheck|test suite|unit test|integration test|source file|codebase|package|typescript|javascript|python|rust|golang)\b/.test(t2);
|
|
559935
|
+
const research = /\b(discover|root cause|triage|deep dive|review|audit|investigate|prove|validate|forensics|diagnostic|failure mode)\b/.test(t2);
|
|
559936
|
+
const formLike = /\b(form|fill|submit|signup|sign up|login|log in|account|compose|send|sent|mail|captcha|checkout|payment|upload)\b/.test(t2);
|
|
559937
|
+
return { browser: browser3, desktop, code: code8, research, formLike };
|
|
559938
|
+
}
|
|
559939
|
+
_completionSummaryHasProvenance(summary) {
|
|
559940
|
+
return /\b(provenance|evidence|verified|validated|confirmed|observed|screenshot|dom|console|network|log|test|typecheck|build|passed|opened|sent|created|submitted|blocked)\b/i.test(summary);
|
|
559941
|
+
}
|
|
559942
|
+
_isBlockedCompletionSummary(summary) {
|
|
559943
|
+
return /^\s*(?:BLOCKED|PARTIAL|NO FILE CHANGES REQUIRED)\b/i.test(summary);
|
|
559944
|
+
}
|
|
559945
|
+
_browserActionKind(entry) {
|
|
559946
|
+
if (!/^(browser_action|playwright_browser|carbonyl_browser)$/.test(entry.name))
|
|
559947
|
+
return "other";
|
|
559948
|
+
const args = this._parseExactArgsKey(entry.argsKey);
|
|
559949
|
+
const action = String(args.get("action") ?? args.get("tool") ?? args.get("command") ?? "").toLowerCase();
|
|
559950
|
+
if (/^(screenshot|dom|dom_summary|observe|observe_bundle|page_errors|console_logs|network_log|accessibility|snapshot|state|url|title)$/.test(action)) {
|
|
559951
|
+
return "observe";
|
|
559952
|
+
}
|
|
559953
|
+
if (/^(navigate|click|click_xy|vision_click|visual_click|type|fill|press|select|submit|evaluate|scroll|scroll_up|scroll_down|back|forward)$/.test(action)) {
|
|
559954
|
+
return "state";
|
|
559955
|
+
}
|
|
559956
|
+
return entry.name === "carbonyl_browser" ? "state" : "other";
|
|
559957
|
+
}
|
|
559958
|
+
_desktopActionKind(entry) {
|
|
559959
|
+
if (/^(desktop_describe|screenshot)$/.test(entry.name))
|
|
559960
|
+
return "observe";
|
|
559961
|
+
if (entry.name === "desktop_click")
|
|
559962
|
+
return "state";
|
|
559963
|
+
if (entry.name !== "vision_action_loop")
|
|
559964
|
+
return "other";
|
|
559965
|
+
const args = this._parseExactArgsKey(entry.argsKey);
|
|
559966
|
+
const action = String(args.get("action") ?? "").toLowerCase();
|
|
559967
|
+
if (/^(observe|screenshot|describe|ocr|state)$/.test(action))
|
|
559968
|
+
return "observe";
|
|
559969
|
+
if (/^(click|type|key|press|open|focus|drag|scroll)$/.test(action))
|
|
559970
|
+
return "state";
|
|
559971
|
+
return "other";
|
|
559972
|
+
}
|
|
559973
|
+
_isVerificationShell(entry) {
|
|
559974
|
+
if (entry.name !== "shell" && entry.name !== "background_run")
|
|
559975
|
+
return false;
|
|
559976
|
+
if (entry.success !== true)
|
|
559977
|
+
return false;
|
|
559978
|
+
const args = this._parseExactArgsKey(entry.argsKey);
|
|
559979
|
+
const command = String(args.get("command") ?? args.get("cmd") ?? "").toLowerCase();
|
|
559980
|
+
return /\b(test|typecheck|check|build|compile|verify|lint|pytest|vitest|jest|playwright|cypress|tsc|cargo\s+test|go\s+test|npm\s+run|pnpm\s+run|yarn\s+run)\b/.test(command);
|
|
559981
|
+
}
|
|
559982
|
+
_evaluateCompletionProvenanceGate(input) {
|
|
559983
|
+
if (this.options.completionProvenanceGuard === false)
|
|
559984
|
+
return { proceed: true };
|
|
559985
|
+
if (process.env["OMNIUS_DISABLE_COMPLETION_PROVENANCE_GUARD"] === "1")
|
|
559986
|
+
return { proceed: true };
|
|
559987
|
+
const summary = input.summary || "";
|
|
559988
|
+
const blockedSummary = this._isBlockedCompletionSummary(summary);
|
|
559989
|
+
const profile = this._inferCompletionProfile(input.taskGoal);
|
|
559990
|
+
const log22 = input.toolCallLog.filter((entry) => entry.name !== "task_complete");
|
|
559991
|
+
const browserUsed = log22.some((entry) => /^(browser_action|playwright_browser|carbonyl_browser)$/.test(entry.name));
|
|
559992
|
+
const desktopUsed = log22.some((entry) => /^(desktop_describe|desktop_click|vision_action_loop|screenshot)$/.test(entry.name));
|
|
559993
|
+
const mutated = log22.some((entry) => entry.mutated === true);
|
|
559994
|
+
const issues = [];
|
|
559995
|
+
const actionHeavy = profile.browser || profile.desktop || profile.code || profile.research || browserUsed || desktopUsed || mutated || this._fileWritesThisRun > 0;
|
|
559996
|
+
if (!actionHeavy)
|
|
559997
|
+
return { proceed: true };
|
|
559998
|
+
if (blockedSummary)
|
|
559999
|
+
return { proceed: true };
|
|
560000
|
+
const successfulNonCompletion = log22.filter((entry) => entry.success === true);
|
|
560001
|
+
if (successfulNonCompletion.length === 0) {
|
|
560002
|
+
issues.push("No successful objective tool result is recorded for this action-oriented task.");
|
|
560003
|
+
}
|
|
560004
|
+
const requiresBrowser = profile.browser || browserUsed;
|
|
560005
|
+
const requiresDesktop = profile.desktop || desktopUsed;
|
|
560006
|
+
if (requiresBrowser) {
|
|
560007
|
+
let lastStateIdx = -1;
|
|
560008
|
+
let lastObserveIdx = -1;
|
|
560009
|
+
log22.forEach((entry, idx) => {
|
|
560010
|
+
if (entry.success !== true)
|
|
560011
|
+
return;
|
|
560012
|
+
const kind = this._browserActionKind(entry);
|
|
560013
|
+
if (kind === "state")
|
|
560014
|
+
lastStateIdx = idx;
|
|
560015
|
+
if (kind === "observe")
|
|
560016
|
+
lastObserveIdx = idx;
|
|
560017
|
+
});
|
|
560018
|
+
if (lastStateIdx >= 0 && lastObserveIdx <= lastStateIdx) {
|
|
560019
|
+
issues.push("Browser state changed after the last browser observation. Capture a fresh screenshot/DOM/observe_bundle after the final click/type/navigate/submit before completion.");
|
|
560020
|
+
} else if (profile.formLike && lastObserveIdx < 0) {
|
|
560021
|
+
issues.push("This looks like a form/account/send flow, but no successful post-action browser observation is recorded.");
|
|
560022
|
+
}
|
|
560023
|
+
}
|
|
560024
|
+
if (requiresDesktop) {
|
|
560025
|
+
let lastStateIdx = -1;
|
|
560026
|
+
let lastObserveIdx = -1;
|
|
560027
|
+
log22.forEach((entry, idx) => {
|
|
560028
|
+
if (entry.success !== true)
|
|
560029
|
+
return;
|
|
560030
|
+
const kind = this._desktopActionKind(entry);
|
|
560031
|
+
if (kind === "state")
|
|
560032
|
+
lastStateIdx = idx;
|
|
560033
|
+
if (kind === "observe")
|
|
560034
|
+
lastObserveIdx = idx;
|
|
560035
|
+
});
|
|
560036
|
+
if (lastStateIdx >= 0 && lastObserveIdx <= lastStateIdx) {
|
|
560037
|
+
issues.push("Desktop state changed after the last visual observation. Run vision_action_loop observe or desktop_describe after the final desktop action before completion.");
|
|
560038
|
+
}
|
|
560039
|
+
}
|
|
560040
|
+
const mutatedEntries = log22.map((entry, idx) => ({ entry, idx })).filter(({ entry }) => entry.mutated === true);
|
|
560041
|
+
if (profile.code || mutatedEntries.length > 0 || this._fileWritesThisRun > 0) {
|
|
560042
|
+
const lastMutationIdx = mutatedEntries.length > 0 ? Math.max(...mutatedEntries.map(({ idx }) => idx)) : -1;
|
|
560043
|
+
const verifiedAfterMutation = log22.some((entry, idx) => {
|
|
560044
|
+
if (lastMutationIdx >= 0 && idx <= lastMutationIdx)
|
|
560045
|
+
return false;
|
|
560046
|
+
if (this._isVerificationShell(entry))
|
|
560047
|
+
return true;
|
|
560048
|
+
if (entry.success === true && this._browserActionKind(entry) === "observe")
|
|
560049
|
+
return true;
|
|
560050
|
+
if (entry.success === true && this._desktopActionKind(entry) === "observe")
|
|
560051
|
+
return true;
|
|
560052
|
+
return false;
|
|
560053
|
+
});
|
|
560054
|
+
if (lastMutationIdx >= 0 && !verifiedAfterMutation) {
|
|
560055
|
+
issues.push("Files were changed but no successful verification command or runtime observation appears after the last mutation.");
|
|
560056
|
+
}
|
|
560057
|
+
}
|
|
560058
|
+
const lastNonCompletion = [...log22].reverse().find(Boolean);
|
|
560059
|
+
if (lastNonCompletion?.success === false) {
|
|
560060
|
+
issues.push(`The most recent non-completion tool result failed (${lastNonCompletion.name}); resolve or explicitly report BLOCKED before completing.`);
|
|
560061
|
+
}
|
|
560062
|
+
if (!this._completionSummaryHasProvenance(summary)) {
|
|
560063
|
+
issues.push("The completion summary does not include an explicit Evidence/Provenance note.");
|
|
560064
|
+
}
|
|
560065
|
+
if (issues.length === 0)
|
|
560066
|
+
return { proceed: true };
|
|
560067
|
+
const recentEvidence = successfulNonCompletion.slice(-6).map((entry) => {
|
|
560068
|
+
const preview = (entry.outputPreview ?? "").replace(/\s+/g, " ").slice(0, 160);
|
|
560069
|
+
return `- ${entry.name}(${entry.argsKey.slice(0, 120)})${preview ? ` -> ${preview}` : ""}`;
|
|
560070
|
+
}).join("\n");
|
|
560071
|
+
return {
|
|
560072
|
+
proceed: false,
|
|
560073
|
+
reason: issues[0] ?? "missing provenance",
|
|
560074
|
+
feedback: [
|
|
560075
|
+
`[COMPLETION PROVENANCE REQUIRED]`,
|
|
560076
|
+
``,
|
|
560077
|
+
`You attempted to finish, but the completion claim is not yet proven against the current mission.`,
|
|
560078
|
+
``,
|
|
560079
|
+
`Blocking issues:`,
|
|
560080
|
+
...issues.map((issue, index) => `${index + 1}. ${issue}`),
|
|
560081
|
+
``,
|
|
560082
|
+
recentEvidence ? `Recent successful evidence already available:
|
|
560083
|
+
${recentEvidence}` : `Recent successful evidence already available: none recorded.`,
|
|
560084
|
+
``,
|
|
560085
|
+
`Do the smallest missing verification step now. For browser/UI work, take a fresh screenshot/DOM/observe_bundle after the final action. For desktop work, run vision_action_loop observe or desktop_describe after the final action. For code/file changes, run the relevant build/test/typecheck/runtime check after the last edit.`,
|
|
560086
|
+
``,
|
|
560087
|
+
`Only then call task_complete with this shape:`,
|
|
560088
|
+
`Summary: <what changed or what final state was reached>`,
|
|
560089
|
+
`Provenance: <tool/command/screenshot/DOM/log/file evidence proving it>`,
|
|
560090
|
+
`If impossible, call task_complete with summary starting BLOCKED: and name the blocker plus evidence.`
|
|
560091
|
+
].join("\n")
|
|
560092
|
+
};
|
|
560093
|
+
}
|
|
559901
560094
|
/**
|
|
559902
560095
|
* REG-47: post-implementation backward-pass review.
|
|
559903
560096
|
*
|
|
@@ -562728,7 +562921,6 @@ Respond with your assessment, then take action.`;
|
|
|
562728
562921
|
const contextComposition = await this.assembleContext(task, context2);
|
|
562729
562922
|
const systemPrompt = contextComposition.assembled;
|
|
562730
562923
|
this._contextTree = new ContextTree(`sys-${systemPrompt.length}`, cleanedTask.slice(0, 200));
|
|
562731
|
-
this._phaseMessageStartIdx = 2;
|
|
562732
562924
|
this.emit({
|
|
562733
562925
|
type: "status",
|
|
562734
562926
|
content: `Context assembled: ${contextComposition.sections.map((s2) => `${s2.label}(${s2.tokenEstimate}t)`).join(" + ")} = ~${contextComposition.totalTokenEstimate}t`,
|
|
@@ -562772,10 +562964,13 @@ TASK: ${scrubbedTask}` : scrubbedTask;
|
|
|
562772
562964
|
}
|
|
562773
562965
|
});
|
|
562774
562966
|
}
|
|
562967
|
+
const missionCompletionContract = this.buildMissionCompletionContract(cleanedTask, context2);
|
|
562775
562968
|
const messages2 = [
|
|
562776
562969
|
{ role: "system", content: systemPrompt },
|
|
562970
|
+
...missionCompletionContract ? [{ role: "system", content: missionCompletionContract }] : [],
|
|
562777
562971
|
{ role: "user", content: userContent }
|
|
562778
562972
|
];
|
|
562973
|
+
this._phaseMessageStartIdx = messages2.length;
|
|
562779
562974
|
if (process.env["OMNIUS_DISABLE_DECOMP1"] !== "1") {
|
|
562780
562975
|
try {
|
|
562781
562976
|
const _taskBodyForDecomp = typeof userContent === "string" ? userContent : "";
|
|
@@ -563033,6 +563228,24 @@ TASK: ${scrubbedTask}` : scrubbedTask;
|
|
|
563033
563228
|
});
|
|
563034
563229
|
return true;
|
|
563035
563230
|
};
|
|
563231
|
+
const holdProvenanceTaskComplete = (args, turn) => {
|
|
563232
|
+
const proposedSummary = extractTaskCompleteSummary(args);
|
|
563233
|
+
const gate = this._evaluateCompletionProvenanceGate({
|
|
563234
|
+
summary: proposedSummary,
|
|
563235
|
+
taskGoal: cleanedTask,
|
|
563236
|
+
toolCallLog
|
|
563237
|
+
});
|
|
563238
|
+
if (gate.proceed)
|
|
563239
|
+
return false;
|
|
563240
|
+
messages2.push({ role: "system", content: gate.feedback });
|
|
563241
|
+
this.emit({
|
|
563242
|
+
type: "status",
|
|
563243
|
+
content: `task_complete held by completion provenance guard: ${gate.reason}`,
|
|
563244
|
+
turn,
|
|
563245
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
563246
|
+
});
|
|
563247
|
+
return true;
|
|
563248
|
+
};
|
|
563036
563249
|
const turnCap = this.options.maxTurns && this.options.maxTurns > 0 ? this.options.maxTurns : Number.MAX_SAFE_INTEGER;
|
|
563037
563250
|
for (let turn = 0; turn < turnCap; turn++) {
|
|
563038
563251
|
clearTurnState(this._appState);
|
|
@@ -566251,6 +566464,13 @@ Respond with EXACTLY this structure before your next tool call:
|
|
|
566251
566464
|
editFeedbackRequiredBeforeMoreEdits = this._buildBatchEditAtomicAbortGuidance(tc.arguments);
|
|
566252
566465
|
this.pendingUserMessages.push(editFeedbackRequiredBeforeMoreEdits);
|
|
566253
566466
|
}
|
|
566467
|
+
const currentLogEntry = toolCallLog[_toolLogTailIdx];
|
|
566468
|
+
if (currentLogEntry) {
|
|
566469
|
+
currentLogEntry.success = result.success;
|
|
566470
|
+
currentLogEntry.mutated = realFileMutation;
|
|
566471
|
+
currentLogEntry.mutatedFiles = realMutationPaths;
|
|
566472
|
+
currentLogEntry.outputPreview = (result.success ? result.llmContent ?? result.output ?? output : result.error ?? result.output ?? output).toString().slice(0, 500);
|
|
566473
|
+
}
|
|
566254
566474
|
this.emit({
|
|
566255
566475
|
type: "tool_result",
|
|
566256
566476
|
toolName: tc.name,
|
|
@@ -566640,7 +566860,7 @@ ${sr.result.output}`;
|
|
|
566640
566860
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
566641
566861
|
});
|
|
566642
566862
|
} else {
|
|
566643
|
-
if (holdNoProgressTaskComplete(matchTc.arguments, turn)) {
|
|
566863
|
+
if (holdNoProgressTaskComplete(matchTc.arguments, turn) || holdProvenanceTaskComplete(matchTc.arguments, turn)) {
|
|
566644
566864
|
continue;
|
|
566645
566865
|
}
|
|
566646
566866
|
const _bp1 = await this._runBackwardPassReview(turn);
|
|
@@ -566696,7 +566916,7 @@ ${sr.result.output}`;
|
|
|
566696
566916
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
566697
566917
|
});
|
|
566698
566918
|
} else {
|
|
566699
|
-
if (holdNoProgressTaskComplete(r2.tc.arguments, turn)) {
|
|
566919
|
+
if (holdNoProgressTaskComplete(r2.tc.arguments, turn) || holdProvenanceTaskComplete(r2.tc.arguments, turn)) {
|
|
566700
566920
|
continue;
|
|
566701
566921
|
}
|
|
566702
566922
|
const _bp2 = await this._runBackwardPassReview(turn);
|
|
@@ -566788,7 +567008,7 @@ ${sr.result.output}`;
|
|
|
566788
567008
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
566789
567009
|
});
|
|
566790
567010
|
} else {
|
|
566791
|
-
if (holdNoProgressTaskComplete(r2.tc.arguments, turn)) {
|
|
567011
|
+
if (holdNoProgressTaskComplete(r2.tc.arguments, turn) || holdProvenanceTaskComplete(r2.tc.arguments, turn)) {
|
|
566792
567012
|
continue;
|
|
566793
567013
|
}
|
|
566794
567014
|
const _bp3 = await this._runBackwardPassReview(turn);
|
|
@@ -567006,6 +567226,10 @@ Call task_complete(summary="...") NOW with whatever you have.`
|
|
|
567006
567226
|
});
|
|
567007
567227
|
}
|
|
567008
567228
|
if (/task.?complete|all tests pass/i.test(content)) {
|
|
567229
|
+
const completionArgs = { summary: content };
|
|
567230
|
+
if (holdNoProgressTaskComplete(completionArgs, turn) || holdProvenanceTaskComplete(completionArgs, turn)) {
|
|
567231
|
+
continue;
|
|
567232
|
+
}
|
|
567009
567233
|
completed = true;
|
|
567010
567234
|
summary = content;
|
|
567011
567235
|
break;
|
|
@@ -567568,7 +567792,7 @@ Full content available via: repl_exec(code="data = retrieve('${handleId}')") or
|
|
|
567568
567792
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
567569
567793
|
});
|
|
567570
567794
|
} else {
|
|
567571
|
-
if (holdNoProgressTaskComplete(tc.arguments, turn)) {
|
|
567795
|
+
if (holdNoProgressTaskComplete(tc.arguments, turn) || holdProvenanceTaskComplete(tc.arguments, turn)) {
|
|
567572
567796
|
continue;
|
|
567573
567797
|
}
|
|
567574
567798
|
const _bp4 = await this._runBackwardPassReview(turn);
|
|
@@ -567621,22 +567845,9 @@ Full content available via: repl_exec(code="data = retrieve('${handleId}')") or
|
|
|
567621
567845
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
567622
567846
|
});
|
|
567623
567847
|
} else {
|
|
567624
|
-
|
|
567625
|
-
|
|
567626
|
-
|
|
567627
|
-
toolCallLog,
|
|
567628
|
-
taskState: this._taskState
|
|
567629
|
-
});
|
|
567630
|
-
if (gate.shouldInject && gate.content) {
|
|
567631
|
-
messages2.push({ role: "system", content: gate.content });
|
|
567632
|
-
this.emit({
|
|
567633
|
-
type: "status",
|
|
567634
|
-
content: "text completion held: discovery happened but no deliverable or explicit blocker is recorded",
|
|
567635
|
-
turn,
|
|
567636
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
567637
|
-
});
|
|
567638
|
-
continue;
|
|
567639
|
-
}
|
|
567848
|
+
const completionArgs = { summary: content };
|
|
567849
|
+
if (holdNoProgressTaskComplete(completionArgs, turn) || holdProvenanceTaskComplete(completionArgs, turn)) {
|
|
567850
|
+
continue;
|
|
567640
567851
|
}
|
|
567641
567852
|
completed = true;
|
|
567642
567853
|
summary = content;
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.212",
|
|
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.212",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED