@algosuite/vo-mcp 0.2.0-beta.4 → 0.2.0-beta.40
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/README.md +27 -3
- package/bin/vo-mcp +9 -3
- package/dist/agent-auth-probe-cli.mjs +1707 -0
- package/dist/autostart-cli.js +115 -60
- package/dist/autostart-cli.js.map +2 -2
- package/dist/ci/check-local-pr-overlap.js +107511 -0
- package/dist/cli.js +2384 -339
- package/dist/cli.js.map +4 -4
- package/dist/index.js +2118 -199
- package/dist/index.js.map +4 -4
- package/dist/install-cli.js +361 -345
- package/dist/install-cli.js.map +4 -4
- package/dist/login-cli.js +4 -4
- package/dist/login-cli.js.map +2 -2
- package/dist/pair-cli.js +1 -1
- package/dist/pair-cli.js.map +2 -2
- package/dist/runner-cli.js +13987 -2596
- package/dist/runner-cli.js.map +4 -4
- package/dist/runner-supervisor.js +2617 -0
- package/dist/runner-supervisor.js.map +7 -0
- package/dist/set-key-cli.js +81 -5
- package/dist/set-key-cli.js.map +2 -2
- package/dist/supervisor-credential-helper.js +233 -0
- package/dist/supervisor-credential-helper.js.map +7 -0
- package/dist/thresholds.json +64 -0
- package/dist/update-cli.js +125 -0
- package/dist/update-cli.js.map +7 -0
- package/package.json +5 -3
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __cr } from 'module'; const require = __cr(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/update.ts
|
|
5
|
+
import { spawnSync as spawnSync2 } from "node:child_process";
|
|
6
|
+
import { createRequire } from "node:module";
|
|
7
|
+
|
|
8
|
+
// ../../scripts/virtual-office/code-runner/runner-host-maintenance.mjs
|
|
9
|
+
import { spawnSync } from "node:child_process";
|
|
10
|
+
import { existsSync } from "node:fs";
|
|
11
|
+
import { win32 } from "node:path";
|
|
12
|
+
var DEFAULT_RUNNER_PACKAGE = "@algosuite/vo-mcp@beta";
|
|
13
|
+
var PACKAGE_SPEC_RE = /^@algosuite\/vo-mcp@(beta|latest|\d+(?:\.\d+){0,2}(?:-[\w.-]+)?)$/u;
|
|
14
|
+
var NPM_CLI_SUFFIX = `\\${win32.join("node_modules", "npm", "bin", "npm-cli.js").toLowerCase()}`;
|
|
15
|
+
function isNpmCliPath(value) {
|
|
16
|
+
return typeof value === "string" && win32.isAbsolute(value) && win32.normalize(value).toLowerCase().endsWith(NPM_CLI_SUFFIX);
|
|
17
|
+
}
|
|
18
|
+
function resolveNpmCli({
|
|
19
|
+
env = process.env,
|
|
20
|
+
execPath = process.execPath,
|
|
21
|
+
fileExists = existsSync
|
|
22
|
+
} = {}) {
|
|
23
|
+
const candidates = [];
|
|
24
|
+
if (isNpmCliPath(env.npm_execpath)) candidates.push(env.npm_execpath);
|
|
25
|
+
candidates.push(win32.join(win32.dirname(execPath), "node_modules", "npm", "bin", "npm-cli.js"));
|
|
26
|
+
const pathValue = env.PATH ?? env.Path ?? env.path ?? "";
|
|
27
|
+
for (const entry of pathValue.split(";")) {
|
|
28
|
+
const trimmed = entry.trim();
|
|
29
|
+
if (!win32.isAbsolute(trimmed)) continue;
|
|
30
|
+
candidates.push(win32.join(trimmed, "node_modules", "npm", "bin", "npm-cli.js"));
|
|
31
|
+
}
|
|
32
|
+
const seen = /* @__PURE__ */ new Set();
|
|
33
|
+
for (const candidate of candidates) {
|
|
34
|
+
const normalized = win32.normalize(candidate);
|
|
35
|
+
const key = normalized.toLowerCase();
|
|
36
|
+
if (seen.has(key) || !isNpmCliPath(normalized)) continue;
|
|
37
|
+
seen.add(key);
|
|
38
|
+
if (fileExists(normalized)) return normalized;
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
function buildMaintenanceCommand(kind, {
|
|
43
|
+
platform = process.platform,
|
|
44
|
+
packageSpec: packageSpec2 = DEFAULT_RUNNER_PACKAGE,
|
|
45
|
+
env = process.env,
|
|
46
|
+
execPath = process.execPath,
|
|
47
|
+
fileExists = existsSync
|
|
48
|
+
} = {}) {
|
|
49
|
+
if (!["update", "reinstall"].includes(kind)) return null;
|
|
50
|
+
if (!PACKAGE_SPEC_RE.test(packageSpec2)) throw new Error("unsafe runner package spec");
|
|
51
|
+
const npmCli = platform === "win32" ? resolveNpmCli({ env, execPath, fileExists }) : null;
|
|
52
|
+
if (platform === "win32" && !npmCli) throw new Error("trusted npm CLI not found");
|
|
53
|
+
const command = platform === "win32" ? execPath : "npm";
|
|
54
|
+
const args = [...npmCli ? [npmCli] : [], "install", "-g", packageSpec2];
|
|
55
|
+
if (kind === "reinstall") args.push("--force");
|
|
56
|
+
return { command, args };
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// src/update.ts
|
|
60
|
+
var DEFAULT_UPDATE_SPEC = "@algosuite/vo-mcp@beta";
|
|
61
|
+
function packageVersion() {
|
|
62
|
+
try {
|
|
63
|
+
return createRequire(import.meta.url)("../package.json").version || "unknown";
|
|
64
|
+
} catch {
|
|
65
|
+
return "unknown";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function buildUpdateCommand(packageSpec2 = DEFAULT_UPDATE_SPEC, platform = process.platform, runtime = {}) {
|
|
69
|
+
const command = buildMaintenanceCommand("update", {
|
|
70
|
+
packageSpec: packageSpec2,
|
|
71
|
+
platform,
|
|
72
|
+
env: runtime.env,
|
|
73
|
+
execPath: runtime.execPath,
|
|
74
|
+
fileExists: runtime.fileExists
|
|
75
|
+
});
|
|
76
|
+
if (!command) throw new Error("update command unavailable");
|
|
77
|
+
return command;
|
|
78
|
+
}
|
|
79
|
+
function updateVoMcp(opts = {}) {
|
|
80
|
+
const log = opts.log ?? ((message) => console.error(message));
|
|
81
|
+
const platform = opts.platform ?? process.platform;
|
|
82
|
+
const packageSpec2 = opts.packageSpec?.trim() || DEFAULT_UPDATE_SPEC;
|
|
83
|
+
let command;
|
|
84
|
+
let args;
|
|
85
|
+
try {
|
|
86
|
+
({ command, args } = buildUpdateCommand(packageSpec2, platform, opts));
|
|
87
|
+
} catch (error) {
|
|
88
|
+
log(`Update unavailable: ${error instanceof Error ? error.message : String(error)}`);
|
|
89
|
+
return { ok: false, status: 2, command: "", args: [], skipped: false };
|
|
90
|
+
}
|
|
91
|
+
log("=== vo-mcp updater ===");
|
|
92
|
+
log(`Current installed package version: ${packageVersion()}`);
|
|
93
|
+
log(`Updating MCP + runner with: ${command} ${args.join(" ")}`);
|
|
94
|
+
if (opts.dryRun) {
|
|
95
|
+
log("Dry run only - no package changes made.");
|
|
96
|
+
return { ok: true, status: 0, command, args, skipped: true };
|
|
97
|
+
}
|
|
98
|
+
const run = opts.spawn ?? spawnSync2;
|
|
99
|
+
const result2 = run(command, args, {
|
|
100
|
+
stdio: "inherit",
|
|
101
|
+
shell: false,
|
|
102
|
+
windowsHide: true,
|
|
103
|
+
env: opts.env ?? process.env
|
|
104
|
+
});
|
|
105
|
+
const status = typeof result2.status === "number" ? result2.status : 1;
|
|
106
|
+
if (status !== 0) {
|
|
107
|
+
log(`Update failed with exit code ${status}.`);
|
|
108
|
+
return { ok: false, status, command, args, skipped: false };
|
|
109
|
+
}
|
|
110
|
+
log("\nUpdate complete.");
|
|
111
|
+
log("Restart any running `vo-mcp runner` process so it loads the new bundle.");
|
|
112
|
+
log("If Claude Desktop / Claude Code was open, restart it to reload the MCP server.");
|
|
113
|
+
return { ok: true, status: 0, command, args, skipped: false };
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// src/update-cli.ts
|
|
117
|
+
function argValue(name) {
|
|
118
|
+
const index = process.argv.indexOf(name);
|
|
119
|
+
return index >= 0 ? process.argv[index + 1] : void 0;
|
|
120
|
+
}
|
|
121
|
+
var packageSpec = argValue("--package") || DEFAULT_UPDATE_SPEC;
|
|
122
|
+
var dryRun = process.argv.includes("--dry-run");
|
|
123
|
+
var result = updateVoMcp({ packageSpec, dryRun });
|
|
124
|
+
process.exit(result.ok ? 0 : result.status || 1);
|
|
125
|
+
//# sourceMappingURL=update-cli.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/update.ts", "../../../scripts/virtual-office/code-runner/runner-host-maintenance.mjs", "../src/update-cli.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * `vo-mcp update` - product-level updater for the MCP + runner package.\n *\n * Users should not have to uninstall/reinstall to pick up a new bundled runner.\n * The package is installed globally, so updating the single npm package updates\n * both `vo-mcp` and `vo-mcp runner` together.\n */\nimport { spawnSync } from 'node:child_process';\nimport { createRequire } from 'node:module';\nimport { buildMaintenanceCommand } from '../../../scripts/virtual-office/code-runner/runner-host-maintenance.mjs';\n\nexport const DEFAULT_UPDATE_SPEC = '@algosuite/vo-mcp@beta';\n\nexport interface UpdateOptions {\n readonly packageSpec?: string;\n readonly dryRun?: boolean;\n readonly log?: (message: string) => void;\n readonly spawn?: typeof spawnSync;\n readonly platform?: NodeJS.Platform;\n readonly env?: NodeJS.ProcessEnv;\n readonly execPath?: string;\n readonly fileExists?: (path: string) => boolean;\n}\n\nexport interface UpdateResult {\n readonly ok: boolean;\n readonly status: number;\n readonly command: string;\n readonly args: readonly string[];\n readonly skipped: boolean;\n}\n\nfunction packageVersion(): string {\n try {\n return createRequire(import.meta.url)('../package.json').version || 'unknown';\n } catch {\n return 'unknown';\n }\n}\n\nexport function buildUpdateCommand(\n packageSpec = DEFAULT_UPDATE_SPEC,\n platform: NodeJS.Platform = process.platform,\n runtime: Pick<UpdateOptions, 'env' | 'execPath' | 'fileExists'> = {},\n): { command: string; args: string[] } {\n const command = buildMaintenanceCommand('update', {\n packageSpec,\n platform,\n env: runtime.env,\n execPath: runtime.execPath,\n fileExists: runtime.fileExists,\n });\n if (!command) throw new Error('update command unavailable');\n return command;\n}\n\nexport function updateVoMcp(opts: UpdateOptions = {}): UpdateResult {\n const log = opts.log ?? ((message: string) => console.error(message));\n const platform = opts.platform ?? process.platform;\n const packageSpec = opts.packageSpec?.trim() || DEFAULT_UPDATE_SPEC;\n let command: string;\n let args: string[];\n try {\n ({ command, args } = buildUpdateCommand(packageSpec, platform, opts));\n } catch (error) {\n log(`Update unavailable: ${error instanceof Error ? error.message : String(error)}`);\n return { ok: false, status: 2, command: '', args: [], skipped: false };\n }\n\n log('=== vo-mcp updater ===');\n log(`Current installed package version: ${packageVersion()}`);\n log(`Updating MCP + runner with: ${command} ${args.join(' ')}`);\n\n if (opts.dryRun) {\n log('Dry run only - no package changes made.');\n return { ok: true, status: 0, command, args, skipped: true };\n }\n\n const run = opts.spawn ?? spawnSync;\n const result = run(command, args, {\n stdio: 'inherit',\n shell: false,\n windowsHide: true,\n env: opts.env ?? process.env,\n });\n const status = typeof result.status === 'number' ? result.status : 1;\n if (status !== 0) {\n log(`Update failed with exit code ${status}.`);\n return { ok: false, status, command, args, skipped: false };\n }\n\n log('\\nUpdate complete.');\n log('Restart any running `vo-mcp runner` process so it loads the new bundle.');\n log('If Claude Desktop / Claude Code was open, restart it to reload the MCP server.');\n return { ok: true, status: 0, command, args, skipped: false };\n}\n", "/** Allow-listed host maintenance operations used by the runner supervisor. */\nimport { spawnSync } from 'node:child_process';\nimport { existsSync } from 'node:fs';\nimport { win32 } from 'node:path';\n\nexport const DEFAULT_RUNNER_PACKAGE = '@algosuite/vo-mcp@beta';\nconst PACKAGE_SPEC_RE = /^@algosuite\\/vo-mcp@(beta|latest|\\d+(?:\\.\\d+){0,2}(?:-[\\w.-]+)?)$/u;\nconst MAX_DIAGNOSTIC_CHARS = 800;\nconst NPM_CLI_SUFFIX = `\\\\${win32.join('node_modules', 'npm', 'bin', 'npm-cli.js').toLowerCase()}`;\n\nfunction escapeRegExp(value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/gu, '\\\\$&');\n}\n\n/** Keep action detail useful without ever returning credentials or tokens. */\nexport function sanitizeMaintenanceDiagnostic(raw, env = {}) {\n let value = String(raw || '')\n .replace(/\\b(?:vocred|npm|gh[oprsu])_[A-Za-z0-9._-]+\\b/gu, '[REDACTED]')\n .replace(/\\bBearer\\s+\\S+/giu, 'Bearer [REDACTED]')\n .replace(/\\b(_?authToken|token|password|secret|credential)(\\s*[=:]\\s*)\\S+/giu, '$1$2[REDACTED]');\n for (const [name, secret] of Object.entries(env)) {\n if (!/(?:TOKEN|KEY|SECRET|PASSWORD|CREDENTIAL)/iu.test(name)) continue;\n const text = String(secret || '');\n if (text.length < 4) continue;\n value = value.replace(new RegExp(escapeRegExp(text), 'gu'), '[REDACTED]');\n }\n value = value.replace(/\\s+/gu, ' ').trim();\n if (value.length <= MAX_DIAGNOSTIC_CHARS) return value;\n return `${value.slice(0, MAX_DIAGNOSTIC_CHARS - 1)}\u2026`;\n}\n\nfunction isNpmCliPath(value) {\n return typeof value === 'string'\n && win32.isAbsolute(value)\n && win32.normalize(value).toLowerCase().endsWith(NPM_CLI_SUFFIX);\n}\n\n/**\n * Resolve npm's JavaScript entrypoint without executing a Windows `.cmd` shim.\n *\n * The desktop app can run from a bundled node.exe that does not carry npm, so\n * resolution also checks the exact npm layout below absolute PATH entries. No\n * candidate controls the executable or package argv: process.execPath remains\n * the executable and the package spec remains allow-listed below.\n */\nexport function resolveNpmCli({\n env = process.env,\n execPath = process.execPath,\n fileExists = existsSync,\n} = {}) {\n const candidates = [];\n if (isNpmCliPath(env.npm_execpath)) candidates.push(env.npm_execpath);\n candidates.push(win32.join(win32.dirname(execPath), 'node_modules', 'npm', 'bin', 'npm-cli.js'));\n\n const pathValue = env.PATH ?? env.Path ?? env.path ?? '';\n for (const entry of pathValue.split(';')) {\n const trimmed = entry.trim();\n if (!win32.isAbsolute(trimmed)) continue;\n candidates.push(win32.join(trimmed, 'node_modules', 'npm', 'bin', 'npm-cli.js'));\n }\n\n const seen = new Set();\n for (const candidate of candidates) {\n const normalized = win32.normalize(candidate);\n const key = normalized.toLowerCase();\n if (seen.has(key) || !isNpmCliPath(normalized)) continue;\n seen.add(key);\n if (fileExists(normalized)) return normalized;\n }\n return null;\n}\n\nexport function buildMaintenanceCommand(kind, {\n platform = process.platform,\n packageSpec = DEFAULT_RUNNER_PACKAGE,\n env = process.env,\n execPath = process.execPath,\n fileExists = existsSync,\n} = {}) {\n if (!['update', 'reinstall'].includes(kind)) return null;\n if (!PACKAGE_SPEC_RE.test(packageSpec)) throw new Error('unsafe runner package spec');\n const npmCli = platform === 'win32' ? resolveNpmCli({ env, execPath, fileExists }) : null;\n if (platform === 'win32' && !npmCli) throw new Error('trusted npm CLI not found');\n const command = platform === 'win32' ? execPath : 'npm';\n const args = [...(npmCli ? [npmCli] : []), 'install', '-g', packageSpec];\n if (kind === 'reinstall') args.push('--force');\n return { command, args };\n}\n\nexport function runHostMaintenance(kind, {\n platform = process.platform,\n packageSpec = DEFAULT_RUNNER_PACKAGE,\n env = process.env,\n execPath = process.execPath,\n fileExists = existsSync,\n spawn = spawnSync,\n log = () => {},\n} = {}) {\n if (kind === 'reconnect') return { ok: true, status: 0, command: null, args: [] };\n let command;\n try {\n command = buildMaintenanceCommand(kind, { platform, packageSpec, env, execPath, fileExists });\n } catch (error) {\n return {\n ok: false,\n status: 2,\n command: null,\n args: [],\n detail: sanitizeMaintenanceDiagnostic(error instanceof Error ? error.message : String(error), env),\n };\n }\n if (!command) return { ok: false, status: 2, command: null, args: [] };\n log(`runner maintenance: ${command.command} ${command.args.join(' ')}`);\n const result = spawn(command.command, command.args, {\n stdio: ['ignore', 'pipe', 'pipe'],\n encoding: 'utf8',\n env,\n shell: false,\n windowsHide: true,\n });\n const status = typeof result.status === 'number' ? result.status : 1;\n const detail = sanitizeMaintenanceDiagnostic(\n [result.stderr, result.stdout, result.error?.message].filter(Boolean).join('\\n'),\n env,\n );\n if (detail) log(`runner maintenance result: ${detail}`);\n return { ok: status === 0, status, command: command.command, args: command.args, detail };\n}\n", "#!/usr/bin/env node\n/**\n * `vo-mcp update` CLI entry point.\n */\nimport { updateVoMcp, DEFAULT_UPDATE_SPEC } from './update.js';\n\nfunction argValue(name: string): string | undefined {\n const index = process.argv.indexOf(name);\n return index >= 0 ? process.argv[index + 1] : undefined;\n}\n\nconst packageSpec = argValue('--package') || DEFAULT_UPDATE_SPEC;\nconst dryRun = process.argv.includes('--dry-run');\nconst result = updateVoMcp({ packageSpec, dryRun });\n\nprocess.exit(result.ok ? 0 : result.status || 1);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["spawnSync", "packageSpec", "packageSpec", "spawnSync", "result"]
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@algosuite/vo-mcp",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.0-beta.40",
|
|
4
|
+
"description": "AlgoHQ MCP server — open protocol surface for the HQ consensus and ratchet tool family. Stdio transport, cross-vendor MCP client compatible (Claude Code, Claude Desktop, Codex, Cursor, Continue).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
25
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
26
26
|
"zod": "^4.4.3"
|
|
27
27
|
},
|
|
28
28
|
"optionalDependencies": {
|
|
@@ -34,11 +34,13 @@
|
|
|
34
34
|
"keywords": [
|
|
35
35
|
"mcp",
|
|
36
36
|
"model-context-protocol",
|
|
37
|
+
"algohq",
|
|
37
38
|
"virtual-office",
|
|
38
39
|
"consensus",
|
|
39
40
|
"ratchet",
|
|
40
41
|
"claude",
|
|
41
42
|
"claude-desktop",
|
|
43
|
+
"codex",
|
|
42
44
|
"cursor",
|
|
43
45
|
"continue"
|
|
44
46
|
],
|