@algosuite/vo-mcp 0.2.0-beta.53 → 0.2.0-beta.55
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/ci/check-local-pr-overlap.js +17 -17
- package/dist/runner-cli.js +57 -7
- package/dist/runner-cli.js.map +3 -3
- package/package.json +1 -1
|
@@ -140,12 +140,12 @@ var require_extend = __commonJS({
|
|
|
140
140
|
}
|
|
141
141
|
});
|
|
142
142
|
|
|
143
|
-
// ../../node_modules/.pnpm/gaxios@7.3.
|
|
143
|
+
// ../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/package.json
|
|
144
144
|
var require_package = __commonJS({
|
|
145
|
-
"../../node_modules/.pnpm/gaxios@7.3.
|
|
145
|
+
"../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/package.json"(exports, module) {
|
|
146
146
|
module.exports = {
|
|
147
147
|
name: "gaxios",
|
|
148
|
-
version: "7.3.
|
|
148
|
+
version: "7.3.1",
|
|
149
149
|
description: "A simple common HTTP client specifically for Google APIs and services.",
|
|
150
150
|
main: "build/cjs/src/index.js",
|
|
151
151
|
types: "build/cjs/src/index.d.ts",
|
|
@@ -223,7 +223,7 @@ var require_package = __commonJS({
|
|
|
223
223
|
"karma-mocha": "^2.0.0",
|
|
224
224
|
"karma-remap-coverage": "^0.1.5",
|
|
225
225
|
"karma-sourcemap-loader": "^0.4.0",
|
|
226
|
-
"karma-webpack": "^5.0.
|
|
226
|
+
"karma-webpack": "^5.0.0",
|
|
227
227
|
mocha: "^11.1.0",
|
|
228
228
|
multiparty: "^4.2.1",
|
|
229
229
|
mv: "^2.1.1",
|
|
@@ -234,7 +234,7 @@ var require_package = __commonJS({
|
|
|
234
234
|
puppeteer: "^24.0.0",
|
|
235
235
|
sinon: "21.0.3",
|
|
236
236
|
"stream-browserify": "^3.0.0",
|
|
237
|
-
tmp: "0.2.
|
|
237
|
+
tmp: "0.2.7",
|
|
238
238
|
"ts-loader": "^9.5.2",
|
|
239
239
|
typescript: "5.8.3",
|
|
240
240
|
"undici-types": "^7.24.1",
|
|
@@ -251,18 +251,18 @@ var require_package = __commonJS({
|
|
|
251
251
|
}
|
|
252
252
|
});
|
|
253
253
|
|
|
254
|
-
// ../../node_modules/.pnpm/gaxios@7.3.
|
|
254
|
+
// ../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/util.cjs
|
|
255
255
|
var require_util = __commonJS({
|
|
256
|
-
"../../node_modules/.pnpm/gaxios@7.3.
|
|
256
|
+
"../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/util.cjs"(exports, module) {
|
|
257
257
|
"use strict";
|
|
258
258
|
var pkg = require_package();
|
|
259
259
|
module.exports = { pkg };
|
|
260
260
|
}
|
|
261
261
|
});
|
|
262
262
|
|
|
263
|
-
// ../../node_modules/.pnpm/gaxios@7.3.
|
|
263
|
+
// ../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/common.js
|
|
264
264
|
var require_common = __commonJS({
|
|
265
|
-
"../../node_modules/.pnpm/gaxios@7.3.
|
|
265
|
+
"../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/common.js"(exports) {
|
|
266
266
|
"use strict";
|
|
267
267
|
var __importDefault = exports && exports.__importDefault || function(mod3) {
|
|
268
268
|
return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
|
|
@@ -502,9 +502,9 @@ var require_common = __commonJS({
|
|
|
502
502
|
}
|
|
503
503
|
});
|
|
504
504
|
|
|
505
|
-
// ../../node_modules/.pnpm/gaxios@7.3.
|
|
505
|
+
// ../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/retry.js
|
|
506
506
|
var require_retry = __commonJS({
|
|
507
|
-
"../../node_modules/.pnpm/gaxios@7.3.
|
|
507
|
+
"../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/retry.js"(exports) {
|
|
508
508
|
"use strict";
|
|
509
509
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
510
510
|
exports.getRetryConfig = getRetryConfig;
|
|
@@ -607,9 +607,9 @@ var require_retry = __commonJS({
|
|
|
607
607
|
}
|
|
608
608
|
});
|
|
609
609
|
|
|
610
|
-
// ../../node_modules/.pnpm/gaxios@7.3.
|
|
610
|
+
// ../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/interceptor.js
|
|
611
611
|
var require_interceptor = __commonJS({
|
|
612
|
-
"../../node_modules/.pnpm/gaxios@7.3.
|
|
612
|
+
"../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/interceptor.js"(exports) {
|
|
613
613
|
"use strict";
|
|
614
614
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
615
615
|
exports.GaxiosInterceptorManager = void 0;
|
|
@@ -8341,9 +8341,9 @@ var init_src = __esm({
|
|
|
8341
8341
|
}
|
|
8342
8342
|
});
|
|
8343
8343
|
|
|
8344
|
-
// ../../node_modules/.pnpm/gaxios@7.3.
|
|
8344
|
+
// ../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/gaxios.js
|
|
8345
8345
|
var require_gaxios = __commonJS({
|
|
8346
|
-
"../../node_modules/.pnpm/gaxios@7.3.
|
|
8346
|
+
"../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/gaxios.js"(exports) {
|
|
8347
8347
|
"use strict";
|
|
8348
8348
|
var __importDefault = exports && exports.__importDefault || function(mod3) {
|
|
8349
8349
|
return mod3 && mod3.__esModule ? mod3 : { "default": mod3 };
|
|
@@ -8815,9 +8815,9 @@ Content-Type: ${partContentType}\r
|
|
|
8815
8815
|
}
|
|
8816
8816
|
});
|
|
8817
8817
|
|
|
8818
|
-
// ../../node_modules/.pnpm/gaxios@7.3.
|
|
8818
|
+
// ../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/index.js
|
|
8819
8819
|
var require_src2 = __commonJS({
|
|
8820
|
-
"../../node_modules/.pnpm/gaxios@7.3.
|
|
8820
|
+
"../../node_modules/.pnpm/gaxios@7.3.1/node_modules/gaxios/build/cjs/src/index.js"(exports) {
|
|
8821
8821
|
"use strict";
|
|
8822
8822
|
var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m2, k, k2) {
|
|
8823
8823
|
if (k2 === void 0) k2 = k;
|
package/dist/runner-cli.js
CHANGED
|
@@ -8350,6 +8350,15 @@ function classifyTaskShape(task) {
|
|
|
8350
8350
|
}
|
|
8351
8351
|
return "feature";
|
|
8352
8352
|
}
|
|
8353
|
+
function declaredStakes(prompt) {
|
|
8354
|
+
const m = GOVERNED_STAKES_DECLARATION_RE.exec(prompt);
|
|
8355
|
+
if (!m) return void 0;
|
|
8356
|
+
const remainder = m[1].trim();
|
|
8357
|
+
if (remainder.length === 0) return void 0;
|
|
8358
|
+
if (/^none\b/iu.test(remainder)) return null;
|
|
8359
|
+
const value = remainder.split(".")[0].trim().slice(0, 60);
|
|
8360
|
+
return value.length > 0 ? value : void 0;
|
|
8361
|
+
}
|
|
8353
8362
|
function stripDispatchBoilerplate(text) {
|
|
8354
8363
|
const contractLines = HEADLESS_EXECUTION_CONTRACT.split("\n").map((l) => l.trim()).filter((l) => l.length >= 20);
|
|
8355
8364
|
return String(text ?? "").split("\n").map((rawLine) => {
|
|
@@ -8365,6 +8374,8 @@ function stripDispatchBoilerplate(text) {
|
|
|
8365
8374
|
}
|
|
8366
8375
|
function matchGovernedStakes(task) {
|
|
8367
8376
|
const prompt = stripDispatchBoilerplate(String(task?.prompt || ""));
|
|
8377
|
+
const declared = declaredStakes(prompt);
|
|
8378
|
+
if (declared !== void 0) return declared;
|
|
8368
8379
|
const m = GOVERNED_STAKES_PATTERN.exec(prompt);
|
|
8369
8380
|
return m ? m[0] : null;
|
|
8370
8381
|
}
|
|
@@ -8390,7 +8401,7 @@ function withMethodology(prompt, task) {
|
|
|
8390
8401
|
|
|
8391
8402
|
${block}` };
|
|
8392
8403
|
}
|
|
8393
|
-
var UI_ROADMAP_DISPATCH_MARKER, SHAPE_RULES, GOVERNED_STAKES_PATTERN, RESEARCH_WORKFLOW_DIRECTIVE, CONSENSUS_DIRECTIVES, UNIVERSAL_DIRECTIVES, SHAPE_DIRECTIVES;
|
|
8404
|
+
var UI_ROADMAP_DISPATCH_MARKER, SHAPE_RULES, GOVERNED_STAKES_PATTERN, GOVERNED_STAKES_DECLARATION_RE, RESEARCH_WORKFLOW_DIRECTIVE, CONSENSUS_DIRECTIVES, UNIVERSAL_DIRECTIVES, SHAPE_DIRECTIVES;
|
|
8394
8405
|
var init_methodology_composer = __esm({
|
|
8395
8406
|
"../../scripts/virtual-office/code-runner/methodology-composer.mjs"() {
|
|
8396
8407
|
"use strict";
|
|
@@ -8434,6 +8445,7 @@ var init_methodology_composer = __esm({
|
|
|
8434
8445
|
}
|
|
8435
8446
|
];
|
|
8436
8447
|
GOVERNED_STAKES_PATTERN = /\b(FERPA|IDOR|HIPAA|PII|privacy|security|authz|authorization|access[- ]control|permission[- ]denied|IRS|tax|§\s?\d|payroll|1099|W-2|MACRS|depreciation|billing|payment|refund|ledger|journal entr|reconcil|compliance|IEP\b|§?504\b|safeguard|governed fact)\b/iu;
|
|
8448
|
+
GOVERNED_STAKES_DECLARATION_RE = /\bgoverned stakes:[ \t]*([^\n]{1,120})/iu;
|
|
8437
8449
|
RESEARCH_WORKFLOW_DIRECTIVE = "For a genuinely open research question (not a single-file or single-log lookup \u2014 those need no harness), use the office research harness rather than ad-hoc browsing: for an open-web question run the workflow at ~/.claude/workflows/storm-deep-research-budget.mjs (Workflow tool, scriptPath, the question as args); for a question about THIS repo run ~/.claude/workflows/deep-research-internal-budget.mjs. Use ONLY the -budget variants (sonnet investigators, one opus synthesis) and stay inside this task budget. If the Workflow tool or those scripts are unavailable on this host, say so in the report and run the same four stages yourself \u2014 perspectives, WebSearch/WebFetch investigation, an adversarial pass that tries to REFUTE each key claim, then a cited write-up \u2014 with at most cheap-tier subagents; never a Fable/Opus fan-out.";
|
|
8438
8450
|
CONSENSUS_DIRECTIVES = [
|
|
8439
8451
|
"This task touches governed or high-stakes facts. BEFORE building tests around your central domain claim, run a multi-model consensus check on that claim (vo-mcp: vo_consensus_judgment or vo_verify_answer) and paste the verdict AND the tool result's receipt_id (a UUID; present when the cloud moat verified) into the PR body as `receipt id: <uuid>` \u2014 never invent one, and if the result has no receipt_id say so. A wrong governed fact caught at the claim stage costs one panel call; caught at the PR stage it costs the whole task; caught in production it costs a user.",
|
|
@@ -10279,6 +10291,31 @@ var init_agent_unfixable_checks = __esm({
|
|
|
10279
10291
|
}
|
|
10280
10292
|
});
|
|
10281
10293
|
|
|
10294
|
+
// ../../scripts/virtual-office/code-runner/check-run-latest.mjs
|
|
10295
|
+
function latestCheckRunsByName(rollup) {
|
|
10296
|
+
if (!Array.isArray(rollup)) return [];
|
|
10297
|
+
const passthrough = [];
|
|
10298
|
+
const latest = /* @__PURE__ */ new Map();
|
|
10299
|
+
for (const entry of rollup) {
|
|
10300
|
+
if (!entry || typeof entry !== "object") continue;
|
|
10301
|
+
const isCheckRun = Boolean(String(entry.conclusion || "")) || Boolean(entry.status);
|
|
10302
|
+
const name = isCheckRun && entry.name ? String(entry.name) : "";
|
|
10303
|
+
if (!name) {
|
|
10304
|
+
passthrough.push(entry);
|
|
10305
|
+
continue;
|
|
10306
|
+
}
|
|
10307
|
+
const startedAt = String(entry.startedAt || entry.started_at || "");
|
|
10308
|
+
const held = latest.get(name);
|
|
10309
|
+
if (!held || startedAt >= held.startedAt) latest.set(name, { startedAt, entry });
|
|
10310
|
+
}
|
|
10311
|
+
return [...passthrough, ...[...latest.values()].map((h) => h.entry)];
|
|
10312
|
+
}
|
|
10313
|
+
var init_check_run_latest = __esm({
|
|
10314
|
+
"../../scripts/virtual-office/code-runner/check-run-latest.mjs"() {
|
|
10315
|
+
"use strict";
|
|
10316
|
+
}
|
|
10317
|
+
});
|
|
10318
|
+
|
|
10282
10319
|
// ../../scripts/virtual-office/code-runner/ci-repair-evidence.mjs
|
|
10283
10320
|
function extractWorkflowRunIds(links = []) {
|
|
10284
10321
|
const ids = [];
|
|
@@ -10639,8 +10676,10 @@ async function adoptPrOpenedTasks(tasks, {
|
|
|
10639
10676
|
now = () => Date.now(),
|
|
10640
10677
|
servedRepos = [],
|
|
10641
10678
|
servedOperators = [],
|
|
10679
|
+
// $5 mirrors pr-watcher.mjs / daemon-config.mjs after the 2026-08-21/22 `error_max_budget_usd`
|
|
10680
|
+
// kills (#9967 $2.41, #9968/#9969 ~$1.65); makeWatchRunner always passes its own value.
|
|
10642
10681
|
repairChainMax = 3,
|
|
10643
|
-
repairBudgetUsd =
|
|
10682
|
+
repairBudgetUsd = 5
|
|
10644
10683
|
}) {
|
|
10645
10684
|
const repos = new Set(servedRepos.map((repo) => repo.toLowerCase()));
|
|
10646
10685
|
const operators = new Set(servedOperators);
|
|
@@ -10914,7 +10953,7 @@ import { homedir as homedir9 } from "node:os";
|
|
|
10914
10953
|
import { join as join14 } from "node:path";
|
|
10915
10954
|
function parsePrCiStatus(view) {
|
|
10916
10955
|
const state = (view && typeof view.state === "string" ? view.state : "UNKNOWN").toUpperCase();
|
|
10917
|
-
const rollup = view && Array.isArray(view.statusCheckRollup) ? view.statusCheckRollup : [];
|
|
10956
|
+
const rollup = latestCheckRunsByName(view && Array.isArray(view.statusCheckRollup) ? view.statusCheckRollup : []);
|
|
10918
10957
|
const failedChecks = [];
|
|
10919
10958
|
const failedCheckLinks = [];
|
|
10920
10959
|
let pending = false;
|
|
@@ -11163,7 +11202,11 @@ function makeWatchRunner({
|
|
|
11163
11202
|
servedRepos = [],
|
|
11164
11203
|
servedOperators = [],
|
|
11165
11204
|
repairChainMax = 3,
|
|
11166
|
-
|
|
11205
|
+
// $5, not $1: measured kills 2026-08-21/22 — #9967 ($2.41), #9968/#9969 (~$1.65 each) died
|
|
11206
|
+
// `error_max_budget_usd` with the fix finished but unpublished; the repair that landed (#9984)
|
|
11207
|
+
// cost $2.36. The daemon normally passes cfg.watchRepairBudgetUsd (daemon-config.mjs), which
|
|
11208
|
+
// carries the same default; this is the fallback when the watcher is built without one.
|
|
11209
|
+
repairBudgetUsd = 5,
|
|
11167
11210
|
allowAmbientGithub = false,
|
|
11168
11211
|
// Default ON (operator directive 2026-07-24); VO_CODE_RUNNER_ARM_AUTOMERGE=0 opts out.
|
|
11169
11212
|
autoMergeEnabled = process.env.VO_CODE_RUNNER_ARM_AUTOMERGE !== "0"
|
|
@@ -11245,6 +11288,7 @@ var init_pr_watcher = __esm({
|
|
|
11245
11288
|
"../../scripts/virtual-office/code-runner/pr-watcher.mjs"() {
|
|
11246
11289
|
"use strict";
|
|
11247
11290
|
init_agent_unfixable_checks();
|
|
11291
|
+
init_check_run_latest();
|
|
11248
11292
|
init_ci_repair_evidence();
|
|
11249
11293
|
init_pr_watcher_failure_confirmation();
|
|
11250
11294
|
init_superseded_pr_source();
|
|
@@ -13067,6 +13111,7 @@ function runnerStagePatch(stage, message, extra = {}) {
|
|
|
13067
13111
|
return { stage, message, ...extra };
|
|
13068
13112
|
}
|
|
13069
13113
|
function buildPrBody(task, run, files, { armAutoMerge = false } = {}) {
|
|
13114
|
+
const governedStakes = matchGovernedStakes({ prompt: String(task.prompt || "") });
|
|
13070
13115
|
return [
|
|
13071
13116
|
"## AlgoHQ Command Center \u2014 Code-from-Anywhere task",
|
|
13072
13117
|
"",
|
|
@@ -13076,6 +13121,7 @@ function buildPrBody(task, run, files, { armAutoMerge = false } = {}) {
|
|
|
13076
13121
|
typeof run.costUsd === "number" ? `- **Agent cost:** $${run.costUsd.toFixed(4)}` : "- **Agent cost:** n/a",
|
|
13077
13122
|
typeof run.numTurns === "number" ? `- **Turns:** ${run.numTurns}` : "",
|
|
13078
13123
|
`- **Files changed:** ${files.length}`,
|
|
13124
|
+
...governedStakes ? ["", `VO-GOVERNED-STAKES: ${governedStakes}`] : [],
|
|
13079
13125
|
"",
|
|
13080
13126
|
"### Prompt",
|
|
13081
13127
|
"",
|
|
@@ -13111,6 +13157,7 @@ var init_task_helpers = __esm({
|
|
|
13111
13157
|
"../../scripts/virtual-office/code-runner/task-helpers.mjs"() {
|
|
13112
13158
|
"use strict";
|
|
13113
13159
|
init_redact_tokens();
|
|
13160
|
+
init_methodology_composer();
|
|
13114
13161
|
}
|
|
13115
13162
|
});
|
|
13116
13163
|
|
|
@@ -14272,7 +14319,7 @@ async function finalizePublishedPr({
|
|
|
14272
14319
|
root_pr_number: pr.prNumber,
|
|
14273
14320
|
attempt: 0,
|
|
14274
14321
|
max_attempts: cfg.watchRepairChainMax ?? 3,
|
|
14275
|
-
per_attempt_budget_usd: cfg.watchRepairBudgetUsd ??
|
|
14322
|
+
per_attempt_budget_usd: cfg.watchRepairBudgetUsd ?? 5
|
|
14276
14323
|
},
|
|
14277
14324
|
// A CI-fix task, or a DRAFT published only because the local overlap gate
|
|
14278
14325
|
// blocked it, must not spend repair attempts: the overlap resolves when the
|
|
@@ -14309,7 +14356,7 @@ async function finalizePublishedPr({
|
|
|
14309
14356
|
root_pr_number: pr.prNumber,
|
|
14310
14357
|
attempt: 0,
|
|
14311
14358
|
max_attempts: cfg.watchRepairChainMax ?? 3,
|
|
14312
|
-
per_attempt_budget_usd: cfg.watchRepairBudgetUsd ??
|
|
14359
|
+
per_attempt_budget_usd: cfg.watchRepairBudgetUsd ?? 5
|
|
14313
14360
|
},
|
|
14314
14361
|
...fixDispatchGuard
|
|
14315
14362
|
});
|
|
@@ -15134,7 +15181,10 @@ function loadCodeRunnerConfig(env2 = process.env, { log: log2 = () => {
|
|
|
15134
15181
|
watchEnabled: env2.VO_CODE_RUNNER_WATCH !== "0",
|
|
15135
15182
|
watchMaxFix: Math.max(0, Number(env2.VO_CODE_RUNNER_WATCH_MAX_FIX ?? 1) || 0),
|
|
15136
15183
|
watchRepairChainMax: Math.max(1, Math.min(10, Number(env2.VO_CODE_RUNNER_REPAIR_CHAIN_MAX ?? 3) || 3)),
|
|
15137
|
-
|
|
15184
|
+
// $5 default (2026-08-22): at $1 real repairs died `error_max_budget_usd` a few percent short —
|
|
15185
|
+
// #9967 ($2.41), #9968/#9969 (~$1.65 each) left finished fixes unpublished as dead PARTIAL
|
|
15186
|
+
// drafts; the repair that landed (#9984) cost $2.36. Ceiling/override behaviour unchanged.
|
|
15187
|
+
watchRepairBudgetUsd: Math.max(0.25, Math.min(10, Number(env2.VO_CODE_RUNNER_REPAIR_BUDGET_USD ?? 5) || 5)),
|
|
15138
15188
|
watchIntervalSec: Math.max(30, Number(env2.VO_CODE_RUNNER_WATCH_SEC ?? 60) || 60),
|
|
15139
15189
|
armAutoMerge: env2.VO_CODE_RUNNER_ARM_AUTOMERGE !== "0",
|
|
15140
15190
|
controlEnabled: env2.VO_CODE_RUNNER_CONTROL !== "0",
|