@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.
@@ -140,12 +140,12 @@ var require_extend = __commonJS({
140
140
  }
141
141
  });
142
142
 
143
- // ../../node_modules/.pnpm/gaxios@7.3.0/node_modules/gaxios/package.json
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.0/node_modules/gaxios/package.json"(exports, module) {
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.0",
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.1",
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.6",
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.0/node_modules/gaxios/build/cjs/src/util.cjs
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.0/node_modules/gaxios/build/cjs/src/util.cjs"(exports, module) {
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.0/node_modules/gaxios/build/cjs/src/common.js
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.0/node_modules/gaxios/build/cjs/src/common.js"(exports) {
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.0/node_modules/gaxios/build/cjs/src/retry.js
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.0/node_modules/gaxios/build/cjs/src/retry.js"(exports) {
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.0/node_modules/gaxios/build/cjs/src/interceptor.js
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.0/node_modules/gaxios/build/cjs/src/interceptor.js"(exports) {
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.0/node_modules/gaxios/build/cjs/src/gaxios.js
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.0/node_modules/gaxios/build/cjs/src/gaxios.js"(exports) {
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.0/node_modules/gaxios/build/cjs/src/index.js
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.0/node_modules/gaxios/build/cjs/src/index.js"(exports) {
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;
@@ -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 = 1
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
- repairBudgetUsd = 1,
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 ?? 1
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 ?? 1
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
- watchRepairBudgetUsd: Math.max(0.25, Math.min(10, Number(env2.VO_CODE_RUNNER_REPAIR_BUDGET_USD ?? 1) || 1)),
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",