@algosuite/vo-mcp 0.2.0-beta.44 → 0.2.0-beta.45
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/runner-cli.js +21 -1
- package/dist/runner-cli.js.map +3 -3
- package/package.json +1 -1
package/dist/runner-cli.js
CHANGED
|
@@ -13095,7 +13095,8 @@ async function readLedger(file, readFile5) {
|
|
|
13095
13095
|
async function findPreservedRecovery(task, {
|
|
13096
13096
|
clonesRoot: clonesRoot2 = process.env.VO_CODE_RUNNER_CLONES_ROOT || "",
|
|
13097
13097
|
readFile: readFile5 = fsp13.readFile,
|
|
13098
|
-
exists = fs13.existsSync
|
|
13098
|
+
exists = fs13.existsSync,
|
|
13099
|
+
alreadyPublished = preservedHeadAlreadyOnBranch
|
|
13099
13100
|
} = {}) {
|
|
13100
13101
|
const resumedFrom = /^[0-9a-f-]{36}$/iu.test(String(task.resumed_from || "")) ? String(task.resumed_from).toLowerCase() : null;
|
|
13101
13102
|
const originalTaskId = recoveryTaskId(task.prompt) ?? resumedFrom;
|
|
@@ -13106,11 +13107,30 @@ async function findPreservedRecovery(task, {
|
|
|
13106
13107
|
const resolved = entries.some((entry) => RESOLVED_RECOVERY_TYPES.has(entry.type) && entry.taskId === originalTaskId);
|
|
13107
13108
|
const preserved = [...entries].reverse().find((entry) => entry.taskId === originalTaskId && entry.worktreeDir);
|
|
13108
13109
|
if (!resolved && preserved && exists(preserved.worktreeDir)) {
|
|
13110
|
+
if (task.pr_branch && await alreadyPublished(preserved.worktreeDir, task.pr_branch)) return null;
|
|
13109
13111
|
return { originalTaskId, ledgerPath, preserved };
|
|
13110
13112
|
}
|
|
13111
13113
|
}
|
|
13112
13114
|
return null;
|
|
13113
13115
|
}
|
|
13116
|
+
async function preservedHeadAlreadyOnBranch(worktreeDir, prBranch, { runGit = defaultRunGit } = {}) {
|
|
13117
|
+
try {
|
|
13118
|
+
const head = (await runGit(["rev-parse", "HEAD"], worktreeDir)).trim();
|
|
13119
|
+
const remote = (await runGit(["ls-remote", "origin", `refs/heads/${prBranch}`], worktreeDir)).trim().split(/\s+/u)[0];
|
|
13120
|
+
if (!/^[0-9a-f]{40}$/u.test(head) || !/^[0-9a-f]{40}$/u.test(remote || "")) return false;
|
|
13121
|
+
if (head === remote) return true;
|
|
13122
|
+
await runGit(["merge-base", "--is-ancestor", head, remote], worktreeDir);
|
|
13123
|
+
return true;
|
|
13124
|
+
} catch {
|
|
13125
|
+
return false;
|
|
13126
|
+
}
|
|
13127
|
+
}
|
|
13128
|
+
async function defaultRunGit(args, cwd) {
|
|
13129
|
+
const { execFile: execFile2 } = await import("node:child_process");
|
|
13130
|
+
return new Promise((resolve2, reject) => {
|
|
13131
|
+
execFile2("git", args, { cwd, encoding: "utf8", timeout: 6e4 }, (err, stdout) => err ? reject(err) : resolve2(stdout));
|
|
13132
|
+
});
|
|
13133
|
+
}
|
|
13114
13134
|
async function recoverPreservedCodeTask({
|
|
13115
13135
|
task,
|
|
13116
13136
|
cfg,
|