@algosuite/vo-mcp 0.2.0-beta.43 → 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 +40 -2
- package/dist/runner-cli.js.map +4 -4
- package/package.json +1 -1
package/dist/runner-cli.js
CHANGED
|
@@ -5969,6 +5969,21 @@ var init_rate_limit_resume = __esm({
|
|
|
5969
5969
|
}
|
|
5970
5970
|
});
|
|
5971
5971
|
|
|
5972
|
+
// ../../scripts/virtual-office/code-runner/publish-staged.mjs
|
|
5973
|
+
async function nothingStagedAsync(worktreeDir, runCommand) {
|
|
5974
|
+
try {
|
|
5975
|
+
await runCommand("git", ["diff", "--cached", "--quiet"], worktreeDir);
|
|
5976
|
+
return true;
|
|
5977
|
+
} catch {
|
|
5978
|
+
return false;
|
|
5979
|
+
}
|
|
5980
|
+
}
|
|
5981
|
+
var init_publish_staged = __esm({
|
|
5982
|
+
"../../scripts/virtual-office/code-runner/publish-staged.mjs"() {
|
|
5983
|
+
"use strict";
|
|
5984
|
+
}
|
|
5985
|
+
});
|
|
5986
|
+
|
|
5972
5987
|
// ../../scripts/virtual-office/code-runner/secure-random.mjs
|
|
5973
5988
|
import { randomInt } from "node:crypto";
|
|
5974
5989
|
var secureUnitRandom;
|
|
@@ -6208,6 +6223,7 @@ function pushPlan(branch, githubToken, { allowAmbientFallback = false } = {}) {
|
|
|
6208
6223
|
var init_publish = __esm({
|
|
6209
6224
|
"../../scripts/virtual-office/code-runner/publish.mjs"() {
|
|
6210
6225
|
"use strict";
|
|
6226
|
+
init_publish_staged();
|
|
6211
6227
|
init_git_resilience();
|
|
6212
6228
|
init_auto_merge();
|
|
6213
6229
|
init_pr_overlap_gate();
|
|
@@ -6899,8 +6915,9 @@ async function commitWorkLocallyAsync(worktreeDir, files, {
|
|
|
6899
6915
|
for (let i = 0; i < cleaned.length; i += 100) {
|
|
6900
6916
|
await runCommand("git", ["add", "--", ...cleaned.slice(i, i + 100)], worktreeDir, { timeout: 12e4 });
|
|
6901
6917
|
}
|
|
6918
|
+
if (await nothingStagedAsync(worktreeDir, runCommand)) return { branch, truncated: false, committed: false };
|
|
6902
6919
|
await runCommand("git", ["commit", "-m", compactTitle(title, 180)], worktreeDir);
|
|
6903
|
-
return { branch, truncated: false };
|
|
6920
|
+
return { branch, truncated: false, committed: true };
|
|
6904
6921
|
}
|
|
6905
6922
|
async function existingPrUrlAsync(worktreeDir, branch, githubToken = null, { runCommand = defaultRunCommand } = {}) {
|
|
6906
6923
|
try {
|
|
@@ -7108,6 +7125,7 @@ var init_publish_async = __esm({
|
|
|
7108
7125
|
init_auto_merge();
|
|
7109
7126
|
init_git_resilience();
|
|
7110
7127
|
init_process_runner2();
|
|
7128
|
+
init_publish_staged();
|
|
7111
7129
|
init_secure_random();
|
|
7112
7130
|
init_pr_overlap_gate();
|
|
7113
7131
|
init_existing_pr_publication();
|
|
@@ -13077,7 +13095,8 @@ async function readLedger(file, readFile5) {
|
|
|
13077
13095
|
async function findPreservedRecovery(task, {
|
|
13078
13096
|
clonesRoot: clonesRoot2 = process.env.VO_CODE_RUNNER_CLONES_ROOT || "",
|
|
13079
13097
|
readFile: readFile5 = fsp13.readFile,
|
|
13080
|
-
exists = fs13.existsSync
|
|
13098
|
+
exists = fs13.existsSync,
|
|
13099
|
+
alreadyPublished = preservedHeadAlreadyOnBranch
|
|
13081
13100
|
} = {}) {
|
|
13082
13101
|
const resumedFrom = /^[0-9a-f-]{36}$/iu.test(String(task.resumed_from || "")) ? String(task.resumed_from).toLowerCase() : null;
|
|
13083
13102
|
const originalTaskId = recoveryTaskId(task.prompt) ?? resumedFrom;
|
|
@@ -13088,11 +13107,30 @@ async function findPreservedRecovery(task, {
|
|
|
13088
13107
|
const resolved = entries.some((entry) => RESOLVED_RECOVERY_TYPES.has(entry.type) && entry.taskId === originalTaskId);
|
|
13089
13108
|
const preserved = [...entries].reverse().find((entry) => entry.taskId === originalTaskId && entry.worktreeDir);
|
|
13090
13109
|
if (!resolved && preserved && exists(preserved.worktreeDir)) {
|
|
13110
|
+
if (task.pr_branch && await alreadyPublished(preserved.worktreeDir, task.pr_branch)) return null;
|
|
13091
13111
|
return { originalTaskId, ledgerPath, preserved };
|
|
13092
13112
|
}
|
|
13093
13113
|
}
|
|
13094
13114
|
return null;
|
|
13095
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
|
+
}
|
|
13096
13134
|
async function recoverPreservedCodeTask({
|
|
13097
13135
|
task,
|
|
13098
13136
|
cfg,
|