omnius 1.0.484 → 1.0.486
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 +56 -196
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -576193,6 +576193,7 @@ function normalizeCompletionStatus(value2) {
|
|
|
576193
576193
|
function isEvidenceGatheringTool(toolName) {
|
|
576194
576194
|
return [
|
|
576195
576195
|
"file_read",
|
|
576196
|
+
"file_explore",
|
|
576196
576197
|
"grep_search",
|
|
576197
576198
|
"find_files",
|
|
576198
576199
|
"list_directory",
|
|
@@ -576200,6 +576201,9 @@ function isEvidenceGatheringTool(toolName) {
|
|
|
576200
576201
|
"todo_write"
|
|
576201
576202
|
].includes(toolName);
|
|
576202
576203
|
}
|
|
576204
|
+
function isEvidenceLike(toolName, isReadLike) {
|
|
576205
|
+
return isReadLike || isEvidenceGatheringTool(toolName);
|
|
576206
|
+
}
|
|
576203
576207
|
function isEditTool(toolName) {
|
|
576204
576208
|
return ["file_write", "file_edit", "file_patch", "batch_edit"].includes(toolName);
|
|
576205
576209
|
}
|
|
@@ -576541,7 +576545,7 @@ var init_focusSupervisor = __esm({
|
|
|
576541
576545
|
return this.pass();
|
|
576542
576546
|
}
|
|
576543
576547
|
const strict = this.shouldStrictlyIntervene(input.context);
|
|
576544
|
-
const sameTurnAsDirective = input.turn <= prior.createdTurn;
|
|
576548
|
+
const sameTurnAsDirective = prior.state === "verify_or_block" ? input.turn < prior.createdTurn : input.turn <= prior.createdTurn;
|
|
576545
576549
|
const alreadyCountedThisTurn = this.lastIgnoredDirectiveTurn === input.turn;
|
|
576546
576550
|
if (sameTurnAsDirective || alreadyCountedThisTurn) {
|
|
576547
576551
|
if (strict) {
|
|
@@ -576692,10 +576696,32 @@ var init_focusSupervisor = __esm({
|
|
|
576692
576696
|
this.clearSatisfiedDirective("requested edit already applied", input.turn);
|
|
576693
576697
|
return;
|
|
576694
576698
|
}
|
|
576695
|
-
if (input.success && input.noop && input.isReadLike && (this.directive?.requiredNextAction === "use_cached_evidence" || this.directive?.requiredNextAction === "read_authoritative_target")) {
|
|
576699
|
+
if (input.success && input.noop && isEvidenceLike(input.toolName, input.isReadLike) && (this.directive?.requiredNextAction === "use_cached_evidence" || this.directive?.requiredNextAction === "read_authoritative_target")) {
|
|
576696
576700
|
this.clearSatisfiedDirective(input.runtimeAuthored ? "cached authoritative evidence reused" : "authoritative evidence already available", input.turn);
|
|
576697
576701
|
return;
|
|
576698
576702
|
}
|
|
576703
|
+
if (input.success && isEvidenceLike(input.toolName, input.isReadLike) && this.directive?.requiredNextAction === "use_cached_evidence") {
|
|
576704
|
+
this.clearSatisfiedDirective(input.runtimeAuthored ? "cached evidence reused via successful read" : "alternative read action succeeded after cached evidence", input.turn);
|
|
576705
|
+
return;
|
|
576706
|
+
}
|
|
576707
|
+
if (input.toolName === "shell" && input.success) {
|
|
576708
|
+
if (this.convergenceBreaker) {
|
|
576709
|
+
const fam = actionFamily(input.toolName, input.args, this.familyCwd);
|
|
576710
|
+
this.convergenceBreaker.resolve(fam);
|
|
576711
|
+
this.convergenceFamilyCounts.delete(fam);
|
|
576712
|
+
}
|
|
576713
|
+
if (this.directive?.requiredNextAction === "run_verification") {
|
|
576714
|
+
this.clearSatisfiedDirective(input.runtimeAuthored ? "cached verification replay consumed" : "verification ran successfully", input.turn);
|
|
576715
|
+
} else if (isEvidenceLike(input.toolName, input.isReadLike) && this.directive?.requiredNextAction === "read_authoritative_target") {
|
|
576716
|
+
this.clearSatisfiedDirective("authoritative evidence read via shell", input.turn);
|
|
576717
|
+
} else if (!input.isReadLike && this.directive?.requiredNextAction === "use_cached_evidence") {
|
|
576718
|
+
this.clearSatisfiedDirective("distinct shell action executed after cached evidence", input.turn);
|
|
576719
|
+
} else if (input.runtimeAuthored) {
|
|
576720
|
+
this.lastDecision = "runtime_authored_not_satisfied";
|
|
576721
|
+
this.lastReason = "runtime-authored control result did not execute the requested tool";
|
|
576722
|
+
}
|
|
576723
|
+
return;
|
|
576724
|
+
}
|
|
576699
576725
|
if (input.runtimeAuthored) {
|
|
576700
576726
|
this.lastDecision = "runtime_authored_not_satisfied";
|
|
576701
576727
|
this.lastReason = "runtime-authored control result did not execute the requested tool";
|
|
@@ -576725,21 +576751,6 @@ var init_focusSupervisor = __esm({
|
|
|
576725
576751
|
}
|
|
576726
576752
|
return;
|
|
576727
576753
|
}
|
|
576728
|
-
if (input.toolName === "shell" && input.success) {
|
|
576729
|
-
if (this.convergenceBreaker) {
|
|
576730
|
-
const fam = actionFamily(input.toolName, input.args, this.familyCwd);
|
|
576731
|
-
this.convergenceBreaker.resolve(fam);
|
|
576732
|
-
this.convergenceFamilyCounts.delete(fam);
|
|
576733
|
-
}
|
|
576734
|
-
if (this.directive?.requiredNextAction === "run_verification") {
|
|
576735
|
-
this.clearSatisfiedDirective("verification ran successfully", input.turn);
|
|
576736
|
-
} else if (input.isReadLike && this.directive?.requiredNextAction === "read_authoritative_target") {
|
|
576737
|
-
this.clearSatisfiedDirective("authoritative evidence read via shell", input.turn);
|
|
576738
|
-
} else if (!input.isReadLike && this.directive?.requiredNextAction === "use_cached_evidence") {
|
|
576739
|
-
this.clearSatisfiedDirective("distinct shell action executed after cached evidence", input.turn);
|
|
576740
|
-
}
|
|
576741
|
-
return;
|
|
576742
|
-
}
|
|
576743
576754
|
if (input.success)
|
|
576744
576755
|
return;
|
|
576745
576756
|
const family = failureFamilyKey(input.toolName, input.args, input.error, input.output, this.familyCwd);
|
|
@@ -576828,8 +576839,9 @@ var init_focusSupervisor = __esm({
|
|
|
576828
576839
|
markCompletionBlocked(input) {
|
|
576829
576840
|
if (!this.enabled)
|
|
576830
576841
|
return;
|
|
576842
|
+
const effectiveTurn = input.turn + 1;
|
|
576831
576843
|
this.setDirective({
|
|
576832
|
-
turn:
|
|
576844
|
+
turn: effectiveTurn,
|
|
576833
576845
|
state: "verify_or_block",
|
|
576834
576846
|
reason: input.reason,
|
|
576835
576847
|
requiredNextAction: this.resolveRequiredNextAction(input.requiredNextAction ?? "run_verification"),
|
|
@@ -576896,7 +576908,7 @@ var init_focusSupervisor = __esm({
|
|
|
576896
576908
|
createdTurn: input.turn,
|
|
576897
576909
|
ignoredCount: 0
|
|
576898
576910
|
};
|
|
576899
|
-
if (!stable) {
|
|
576911
|
+
if (!stable && (!existing || existing.state !== input.state || existing.requiredNextAction !== input.requiredNextAction)) {
|
|
576900
576912
|
this.repeatedViolationCounts.clear();
|
|
576901
576913
|
}
|
|
576902
576914
|
this.directive = directive;
|
|
@@ -583713,6 +583725,8 @@ ${result.output ?? ""}`;
|
|
|
583713
583725
|
if (this._completionIncompleteVerification)
|
|
583714
583726
|
return true;
|
|
583715
583727
|
const directive = this._focusSupervisor?.snapshot().directive;
|
|
583728
|
+
if (directive?.state === "forced_replan" && directive.requiredNextAction === "creative_pivot_or_research")
|
|
583729
|
+
return true;
|
|
583716
583730
|
return directive?.state === "terminal_incomplete" || directive?.requiredNextAction === "report_incomplete" || directive?.requiredNextAction === "report_blocked";
|
|
583717
583731
|
}
|
|
583718
583732
|
/**
|
|
@@ -585600,7 +585614,13 @@ ${contentPreview}
|
|
|
585600
585614
|
return true;
|
|
585601
585615
|
if (/\b(?:cp|mv|rm|mkdir|rmdir|touch|truncate|ln|install|chmod|chown|chgrp|setfacl)\b/i.test(unquoted))
|
|
585602
585616
|
return true;
|
|
585603
|
-
if (/\b(?:udevadm|mount|umount|modprobe|insmod)\b/i.test(unquoted))
|
|
585617
|
+
if (/\b(?:udevadm|mount|umount|modprobe|insmod|kill|pkill|killall)\b/i.test(unquoted))
|
|
585618
|
+
return true;
|
|
585619
|
+
if (/\b(?:nohup|systemctl|service|chvt|renice)\b/i.test(unquoted))
|
|
585620
|
+
return true;
|
|
585621
|
+
if (/\bservice\s+(start|stop|restart|reload|reload-or-restart)\b/i.test(unquoted))
|
|
585622
|
+
return true;
|
|
585623
|
+
if (/\bsystemctl\s+(start|stop|restart|reload|daemon-reload|enable|disable|isolate|set-default)\b/i.test(unquoted))
|
|
585604
585624
|
return true;
|
|
585605
585625
|
if (/\b(?:python3?|node|ruby|deno|bun)\b[\s\S]{0,240}\b(?:writeFile|writeFileSync|openSync|mkdirSync|renameSync|unlinkSync|rmSync)\b/i.test(cmd))
|
|
585606
585626
|
return true;
|
|
@@ -588778,6 +588798,7 @@ TASK: ${scrubbedTask}` : scrubbedTask;
|
|
|
588778
588798
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
588779
588799
|
});
|
|
588780
588800
|
};
|
|
588801
|
+
let executeSingle = async () => null;
|
|
588781
588802
|
const turnCap = this.options.maxTurns && this.options.maxTurns > 0 ? this.options.maxTurns : Number.MAX_SAFE_INTEGER;
|
|
588782
588803
|
for (let turn = 0; turn < turnCap; turn++) {
|
|
588783
588804
|
clearTurnState(this._appState);
|
|
@@ -590810,7 +590831,7 @@ ${memoryLines.join("\n")}`
|
|
|
590810
590831
|
});
|
|
590811
590832
|
}
|
|
590812
590833
|
let editFeedbackRequiredBeforeMoreEdits = null;
|
|
590813
|
-
|
|
590834
|
+
executeSingle = async (tc) => {
|
|
590814
590835
|
if (this.aborted)
|
|
590815
590836
|
return null;
|
|
590816
590837
|
const actionReasonForAdvisory = this._toolActionReasonForCall(tc.name, tc.arguments ?? {});
|
|
@@ -591530,7 +591551,7 @@ Read the current file if needed, make a different concrete edit, or move to veri
|
|
|
591530
591551
|
});
|
|
591531
591552
|
}
|
|
591532
591553
|
const _repeatGateMax = this._resolveRepeatGateMax();
|
|
591533
|
-
const isFailedShellRepeat = tc.name === "shell" && typeof _existingFp?.result === "string" && _existingFp.result.includes("status: failure");
|
|
591554
|
+
const isFailedShellRepeat = tc.name === "shell" && typeof _existingFp?.result === "string" && _existingFp.result.includes("status: failure") && !shellLikelyMutatesFilesystem;
|
|
591534
591555
|
const repeatGateEligible = isReadLike || tc.name === "memory_write" || isFailedShellRepeat;
|
|
591535
591556
|
const suppressSuccessfulShellCacheGuidance = tc.name === "shell" && !isFailedShellRepeat;
|
|
591536
591557
|
if (suppressSuccessfulShellCacheGuidance)
|
|
@@ -592673,7 +592694,8 @@ Respond with EXACTLY this structure before your next tool call:
|
|
|
592673
592694
|
}
|
|
592674
592695
|
const cacheableMemoryNoop = tc.name === "memory_write" && result.success && result.noop;
|
|
592675
592696
|
const cacheableProjectWriteNoop = this._isProjectEditTool(tc.name) && result.success && !this._isRealProjectMutation(tc.name, result) && (result.noop === true || result.mutated === false);
|
|
592676
|
-
|
|
592697
|
+
const cacheableShellResult = tc.name === "shell" && result.runtimeAuthored !== true && !shellLikelyMutatesFilesystem;
|
|
592698
|
+
if (isReadLike && result.success && result.runtimeAuthored !== true || cacheableShellResult || cacheableMemoryNoop || cacheableProjectWriteNoop) {
|
|
592677
592699
|
recentToolResults.set(toolFingerprint, {
|
|
592678
592700
|
result: tc.name === "shell" ? this._buildShellCacheResult(tc.arguments, result) : (
|
|
592679
592701
|
// Read-like results are SERVED BACK to the model when the
|
|
@@ -594577,183 +594599,21 @@ ${this.options.maxTurns && this.options.maxTurns > 0 ? `You have ${this.options.
|
|
|
594577
594599
|
for (const tc of msg.toolCalls) {
|
|
594578
594600
|
if (this.aborted)
|
|
594579
594601
|
break;
|
|
594580
|
-
|
|
594581
|
-
|
|
594582
|
-
const bfArgsKey = this._buildExactArgsKey(tc.arguments ?? {});
|
|
594583
|
-
toolCallLog.push({ name: tc.name, argsKey: bfArgsKey });
|
|
594584
|
-
this._toolLastUsedTurn.set(tc.name, turn);
|
|
594585
|
-
if (this._contextTree) {
|
|
594586
|
-
this._contextTree.observeToolCall(tc.name, bfArgsKey, turn);
|
|
594587
|
-
const transition = this._contextTree.maybeTransition(turn);
|
|
594588
|
-
if (transition) {
|
|
594589
|
-
const phaseSlice = messages2.slice(this._phaseMessageStartIdx);
|
|
594590
|
-
if (phaseSlice.length > 0) {
|
|
594591
|
-
const fromNode = this._contextTree.getSnapshot().phases[transition.from];
|
|
594592
|
-
if (fromNode) {
|
|
594593
|
-
fromNode.messages = phaseSlice;
|
|
594594
|
-
}
|
|
594595
|
-
}
|
|
594596
|
-
this.emit({
|
|
594597
|
-
type: "status",
|
|
594598
|
-
content: `Phase: ${transition.from} → ${transition.to} (brute-force cycle)`,
|
|
594599
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
594600
|
-
});
|
|
594601
|
-
const summarizer = this.makePhaseSummarizer();
|
|
594602
|
-
const contracted = this._contextTree.contractInactive(turn, summarizer ? (msgs) => summarizer(transition.from, msgs) : void 0);
|
|
594603
|
-
if (contracted.length > 0) {
|
|
594604
|
-
this.emit({
|
|
594605
|
-
type: "status",
|
|
594606
|
-
content: `Phase contraction: ${contracted.join(", ")} → contracted (${summarizer ? "LLM-summarized" : "stub-summarized"}, anchors retained, brute-force)`,
|
|
594607
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
594608
|
-
});
|
|
594609
|
-
}
|
|
594610
|
-
this._phaseMessageStartIdx = messages2.length;
|
|
594611
|
-
this._taskState.phase = transition.to;
|
|
594612
|
-
this._taskState.phaseSince = turn;
|
|
594613
|
-
}
|
|
594614
|
-
}
|
|
594615
|
-
this.emit({
|
|
594616
|
-
type: "tool_call",
|
|
594617
|
-
toolName: tc.name,
|
|
594618
|
-
toolArgs: tc.arguments,
|
|
594619
|
-
turn,
|
|
594620
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
594621
|
-
});
|
|
594622
|
-
const _decomp2BFBlock = this._maybeDecomp2Block(tc, turn);
|
|
594623
|
-
if (_decomp2BFBlock) {
|
|
594624
|
-
this.emit({
|
|
594625
|
-
type: "tool_result",
|
|
594626
|
-
toolName: tc.name,
|
|
594627
|
-
content: _decomp2BFBlock.slice(0, 200),
|
|
594628
|
-
success: false,
|
|
594629
|
-
turn,
|
|
594630
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
594631
|
-
});
|
|
594632
|
-
messages2.push(this.buildToolMessage(_decomp2BFBlock, tc.id, tc.name));
|
|
594602
|
+
const r2 = await executeSingle(tc);
|
|
594603
|
+
if (!r2)
|
|
594633
594604
|
continue;
|
|
594634
|
-
|
|
594635
|
-
|
|
594636
|
-
|
|
594637
|
-
|
|
594638
|
-
|
|
594639
|
-
result = {
|
|
594640
|
-
success: false,
|
|
594641
|
-
output: "",
|
|
594642
|
-
error: this.unknownToolError(tc.name)
|
|
594643
|
-
};
|
|
594644
|
-
} else {
|
|
594645
|
-
try {
|
|
594646
|
-
result = await tool.execute(tc.arguments);
|
|
594647
|
-
result = this.applyRegisteredToolResultTriage(result, resolvedTool?.name ?? tc.name, tool);
|
|
594648
|
-
} catch (err) {
|
|
594649
|
-
result = {
|
|
594650
|
-
success: false,
|
|
594651
|
-
output: "",
|
|
594652
|
-
error: err instanceof Error ? err.message : String(err)
|
|
594653
|
-
};
|
|
594654
|
-
}
|
|
594655
|
-
}
|
|
594656
|
-
if (!result.success && tc.name === "shell" && /\[PERMISSION_ERROR\]/.test(result.error ?? "")) {
|
|
594657
|
-
this.emit({
|
|
594658
|
-
type: "sudo_request",
|
|
594659
|
-
content: `Command requires elevated privileges: ${tc.arguments.command?.slice(0, 100) ?? ""}`,
|
|
594660
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
594661
|
-
});
|
|
594662
|
-
const pw2 = await this.waitForSudoPassword(12e4);
|
|
594663
|
-
if (pw2 && tool) {
|
|
594664
|
-
try {
|
|
594665
|
-
result = await tool.execute(tc.arguments);
|
|
594666
|
-
result = this.applyRegisteredToolResultTriage(result, resolvedTool?.name ?? tc.name, tool);
|
|
594667
|
-
} catch (err) {
|
|
594668
|
-
result = {
|
|
594669
|
-
success: false,
|
|
594670
|
-
output: "",
|
|
594671
|
-
error: err instanceof Error ? err.message : String(err)
|
|
594672
|
-
};
|
|
594673
|
-
}
|
|
594674
|
-
}
|
|
594675
|
-
}
|
|
594676
|
-
const { toolOutputMaxChars: maxLen2 } = this.contextLimits();
|
|
594677
|
-
let output;
|
|
594678
|
-
const modelContent2 = result.llmContent ?? result.output;
|
|
594679
|
-
const isAlreadyTriaged = modelContent2.startsWith(TRIAGE_ENVELOPE_MARKER) && modelContent2.includes(TRIAGE_SAVED_PATH_MARKER);
|
|
594680
|
-
if (!result.success) {
|
|
594681
|
-
output = `Error: ${result.error || "unknown error"}
|
|
594682
|
-
${modelContent2}`;
|
|
594683
|
-
} else if (isAlreadyTriaged) {
|
|
594684
|
-
output = modelContent2;
|
|
594685
|
-
} else if (modelContent2.length > maxLen2) {
|
|
594686
|
-
const handleId = this.quickHash(tc.name + String(tc.arguments?.["path"] ?? "") + String(turn));
|
|
594687
|
-
const lineCount = (result.output.match(/\n/g) || []).length + 1;
|
|
594688
|
-
const preview = result.output.slice(0, 500).replace(/\n/g, " ");
|
|
594689
|
-
this._memexArchive.set(handleId, {
|
|
594690
|
-
id: handleId,
|
|
594691
|
-
toolName: tc.name,
|
|
594692
|
-
summary: `${tc.name} output (${lineCount} lines, ${result.output.length} chars)`,
|
|
594693
|
-
fullContent: result.output,
|
|
594694
|
-
turn,
|
|
594695
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
594605
|
+
messages2.push(this.buildModelFacingToolMessage(r2.output, r2.tc.id, r2.tc.name, r2.tc.arguments, r2.success));
|
|
594606
|
+
if (r2.systemGuidance) {
|
|
594607
|
+
messages2.push({
|
|
594608
|
+
role: "system",
|
|
594609
|
+
content: r2.systemGuidance
|
|
594696
594610
|
});
|
|
594697
|
-
output = `[${tc.name} succeeded — output externalized: ${result.output.length} chars, ${lineCount} lines]
|
|
594698
|
-
Handle: ${handleId}
|
|
594699
|
-
Preview: ${preview}...
|
|
594700
|
-
Full content available via: repl_exec(code="data = retrieve('${handleId}')") or memex_retrieve(id="${handleId}")`;
|
|
594701
|
-
} else {
|
|
594702
|
-
output = modelContent2;
|
|
594703
594611
|
}
|
|
594704
|
-
|
|
594705
|
-
|
|
594706
|
-
const bfLogEntry = toolCallLog[toolCallLog.length - 1];
|
|
594707
|
-
if (bfLogEntry) {
|
|
594708
|
-
bfLogEntry.success = result.success;
|
|
594709
|
-
bfLogEntry.mutated = bfRealFileMutation;
|
|
594710
|
-
bfLogEntry.mutatedFiles = bfRealMutationPaths;
|
|
594711
|
-
bfLogEntry.outputPreview = this._toolEvidencePreview(result, output, 1200, tc.name);
|
|
594712
|
-
}
|
|
594713
|
-
this.emit({
|
|
594714
|
-
type: "tool_result",
|
|
594715
|
-
toolName: tc.name,
|
|
594716
|
-
content: this.toolResultEventContent(tc.name, output || result.output || result.error || ""),
|
|
594717
|
-
success: result.success,
|
|
594718
|
-
turn,
|
|
594719
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
594720
|
-
});
|
|
594721
|
-
this._trackDecomp2(tc, result, turn);
|
|
594722
|
-
this._recordCompletionToolEvidenceFromResult({
|
|
594723
|
-
toolName: tc.name,
|
|
594724
|
-
argsKey: bfArgsKey,
|
|
594725
|
-
args: tc.arguments,
|
|
594726
|
-
actionReason: bfActionReason,
|
|
594727
|
-
result,
|
|
594728
|
-
outputPreview: this._toolEvidencePreview(result, output, 1200, tc.name),
|
|
594729
|
-
realFileMutation: bfRealFileMutation,
|
|
594730
|
-
realMutationPaths: bfRealMutationPaths
|
|
594731
|
-
});
|
|
594732
|
-
const enoentTools2 = /* @__PURE__ */ new Set([
|
|
594733
|
-
"file_read",
|
|
594734
|
-
"list_directory",
|
|
594735
|
-
"find_files"
|
|
594736
|
-
]);
|
|
594737
|
-
if (!result.success && enoentTools2.has(tc.name) && /ENOENT|no such file|does not exist|not found/i.test(result.error ?? result.output)) {
|
|
594738
|
-
this._consecutiveEnoent++;
|
|
594739
|
-
if (this._consecutiveEnoent >= 2) {
|
|
594740
|
-
const failedPath2 = String(tc.arguments?.["path"] ?? tc.arguments?.["file"] ?? "unknown");
|
|
594741
|
-
this.enqueueRuntimeGuidance(`[SYSTEM] ${this._consecutiveEnoent} consecutive file-not-found errors (last: "${failedPath2}"). You are repeating failed paths. CHANGE YOUR APPROACH:
|
|
594742
|
-
1. Call list_directory(".") to see what exists at the project root
|
|
594743
|
-
2. Entries in a directory listing are RELATIVE to that directory. If you listed "parent/" and saw "child", the full path is "parent/child" — NOT ".child" or just "child"
|
|
594744
|
-
3. If an entry is a directory (marked "d"), use list_directory on it, NOT file_read
|
|
594745
|
-
4. Use the FULL relative paths shown in list_directory output — they are copy-paste ready`);
|
|
594746
|
-
}
|
|
594747
|
-
} else {
|
|
594748
|
-
this._consecutiveEnoent = 0;
|
|
594749
|
-
}
|
|
594750
|
-
const toolMsg = this.buildModelFacingToolMessage(output, tc.id, tc.name, tc.arguments, result.success);
|
|
594751
|
-
messages2.push(toolMsg);
|
|
594752
|
-
if (tc.name === "task_complete") {
|
|
594753
|
-
if (!result.success) {
|
|
594612
|
+
if (r2.tc.name === "task_complete") {
|
|
594613
|
+
if (!r2.success) {
|
|
594754
594614
|
messages2.push({
|
|
594755
594615
|
role: "system",
|
|
594756
|
-
content: this.buildTaskCompleteToolFailureGuard(output)
|
|
594616
|
+
content: this.buildTaskCompleteToolFailureGuard(r2.output)
|
|
594757
594617
|
});
|
|
594758
594618
|
this.emit({
|
|
594759
594619
|
type: "status",
|
|
@@ -594762,7 +594622,7 @@ Full content available via: repl_exec(code="data = retrieve('${handleId}')") or
|
|
|
594762
594622
|
});
|
|
594763
594623
|
continue;
|
|
594764
594624
|
}
|
|
594765
|
-
const taskCompleteArgs = tc.arguments;
|
|
594625
|
+
const taskCompleteArgs = r2.tc.arguments;
|
|
594766
594626
|
const open2 = this.getOpenTodoItems();
|
|
594767
594627
|
if (open2.length > 0 && !this._shouldBypassTodoCompletionGuardForTaskComplete(taskCompleteArgs)) {
|
|
594768
594628
|
const guard = this.buildTodoCompletionGuard(open2);
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.486",
|
|
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.486",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
package/package.json
CHANGED