@invariant-ai/cli 0.1.0 → 0.1.2
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/commands/mcp.d.ts +7 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +139 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/run.d.ts +13 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +269 -244
- package/dist/commands/run.js.map +1 -1
- package/dist/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard/.next/build-manifest.json +2 -2
- package/dist/dashboard/.next/prerender-manifest.json +1 -1
- package/dist/dashboard/.next/server/app/_not-found.html +1 -1
- package/dist/dashboard/.next/server/app/_not-found.rsc +1 -1
- package/dist/dashboard/.next/server/pages/404.html +1 -1
- package/dist/dashboard/.next/server/pages/500.html +1 -1
- package/dist/dashboard/.next/server/pages-manifest.json +1 -1
- package/dist/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dist/index.js +31 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/auto-sync.d.ts +2 -1
- package/dist/lib/auto-sync.d.ts.map +1 -1
- package/dist/lib/auto-sync.js +6 -3
- package/dist/lib/auto-sync.js.map +1 -1
- package/dist/lib/report.d.ts +6 -0
- package/dist/lib/report.d.ts.map +1 -1
- package/dist/lib/report.js +3 -1
- package/dist/lib/report.js.map +1 -1
- package/package.json +4 -2
- /package/dist/dashboard/.next/static/{6Ch8jdjvpVpfAGAPfQUpg → 0Jg0tB9-p0WAaLfXGuyW3}/_buildManifest.js +0 -0
- /package/dist/dashboard/.next/static/{6Ch8jdjvpVpfAGAPfQUpg → 0Jg0tB9-p0WAaLfXGuyW3}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAqFA,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CpF;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtF"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mcpInstallCommand = mcpInstallCommand;
|
|
7
|
+
exports.mcpUninstallCommand = mcpUninstallCommand;
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const MCP_SERVER_NAME = 'invariant';
|
|
12
|
+
/**
|
|
13
|
+
* Resolves the version of @invariant-ai/mcp by reading its package.json.
|
|
14
|
+
* Works in both monorepo dev and published node_modules contexts.
|
|
15
|
+
*/
|
|
16
|
+
function resolveMcpVersion() {
|
|
17
|
+
// In monorepo: __dirname is packages/cli/dist/commands → go up to packages/mcp/
|
|
18
|
+
const monorepoPath = (0, node_path_1.resolve)(__dirname, '..', '..', '..', 'mcp', 'package.json');
|
|
19
|
+
if ((0, node_fs_1.existsSync)(monorepoPath)) {
|
|
20
|
+
try {
|
|
21
|
+
const pkg = JSON.parse((0, node_fs_1.readFileSync)(monorepoPath, 'utf-8'));
|
|
22
|
+
if (pkg.version)
|
|
23
|
+
return pkg.version;
|
|
24
|
+
}
|
|
25
|
+
catch { /* fall through */ }
|
|
26
|
+
}
|
|
27
|
+
// Published: try require.resolve
|
|
28
|
+
try {
|
|
29
|
+
const mcpPkgPath = require.resolve('@invariant-ai/mcp/package.json');
|
|
30
|
+
const pkg = JSON.parse((0, node_fs_1.readFileSync)(mcpPkgPath, 'utf-8'));
|
|
31
|
+
if (pkg.version)
|
|
32
|
+
return pkg.version;
|
|
33
|
+
}
|
|
34
|
+
catch { /* fall through */ }
|
|
35
|
+
return '0.1.0'; // fallback
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Determines the config file path for MCP server registration.
|
|
39
|
+
* Order: project .claude/settings.json → ~/.claude/settings.json → ~/.claude.json
|
|
40
|
+
*/
|
|
41
|
+
function resolveConfigPath(globalFlag) {
|
|
42
|
+
const home = process.env.HOME ?? process.env.USERPROFILE ?? '';
|
|
43
|
+
if (!globalFlag) {
|
|
44
|
+
// Check for project-local .claude/ directory
|
|
45
|
+
const projectConfig = (0, node_path_1.resolve)(process.cwd(), '.claude', 'settings.json');
|
|
46
|
+
const projectClaudeDir = (0, node_path_1.resolve)(process.cwd(), '.claude');
|
|
47
|
+
if ((0, node_fs_1.existsSync)(projectClaudeDir)) {
|
|
48
|
+
return projectConfig;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// User-level: prefer ~/.claude/settings.json
|
|
52
|
+
const userClaudeDir = (0, node_path_1.resolve)(home, '.claude');
|
|
53
|
+
const userSettings = (0, node_path_1.resolve)(userClaudeDir, 'settings.json');
|
|
54
|
+
if ((0, node_fs_1.existsSync)(userClaudeDir)) {
|
|
55
|
+
return userSettings;
|
|
56
|
+
}
|
|
57
|
+
// Fallback: ~/.claude.json
|
|
58
|
+
const legacyConfig = (0, node_path_1.resolve)(home, '.claude.json');
|
|
59
|
+
if ((0, node_fs_1.existsSync)(legacyConfig)) {
|
|
60
|
+
return legacyConfig;
|
|
61
|
+
}
|
|
62
|
+
// Default to ~/.claude/settings.json (will create)
|
|
63
|
+
return userSettings;
|
|
64
|
+
}
|
|
65
|
+
function readConfig(path) {
|
|
66
|
+
if (!(0, node_fs_1.existsSync)(path))
|
|
67
|
+
return {};
|
|
68
|
+
try {
|
|
69
|
+
return JSON.parse((0, node_fs_1.readFileSync)(path, 'utf-8'));
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return {};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function writeConfig(path, config) {
|
|
76
|
+
const dir = (0, node_path_1.dirname)(path);
|
|
77
|
+
if (!(0, node_fs_1.existsSync)(dir)) {
|
|
78
|
+
(0, node_fs_1.mkdirSync)(dir, { recursive: true });
|
|
79
|
+
}
|
|
80
|
+
(0, node_fs_1.writeFileSync)(path, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
81
|
+
}
|
|
82
|
+
async function mcpInstallCommand(options) {
|
|
83
|
+
const configPath = resolveConfigPath(options.global ?? false);
|
|
84
|
+
const config = readConfig(configPath);
|
|
85
|
+
const version = await resolveMcpVersion();
|
|
86
|
+
const serverEntry = {
|
|
87
|
+
command: 'npx',
|
|
88
|
+
args: ['-y', `@invariant-ai/mcp@${version}`],
|
|
89
|
+
env: {},
|
|
90
|
+
};
|
|
91
|
+
// Check if already installed with same config
|
|
92
|
+
if (config.mcpServers && config.mcpServers[MCP_SERVER_NAME]) {
|
|
93
|
+
const existing = config.mcpServers[MCP_SERVER_NAME];
|
|
94
|
+
if (existing.command === serverEntry.command &&
|
|
95
|
+
JSON.stringify(existing.args) === JSON.stringify(serverEntry.args)) {
|
|
96
|
+
console.log(chalk_1.default.yellow(`Invariant MCP server already registered in ${configPath}`));
|
|
97
|
+
console.log('No changes made.');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Append-only: only touch mcpServers.invariant
|
|
102
|
+
if (!config.mcpServers) {
|
|
103
|
+
config.mcpServers = {};
|
|
104
|
+
}
|
|
105
|
+
const before = config.mcpServers[MCP_SERVER_NAME] ? JSON.stringify(config.mcpServers[MCP_SERVER_NAME], null, 2) : null;
|
|
106
|
+
config.mcpServers[MCP_SERVER_NAME] = serverEntry;
|
|
107
|
+
writeConfig(configPath, config);
|
|
108
|
+
console.log(chalk_1.default.green('✓ Invariant MCP server registered'));
|
|
109
|
+
console.log(` File: ${configPath}`);
|
|
110
|
+
if (before) {
|
|
111
|
+
console.log(` Updated: mcpServers.${MCP_SERVER_NAME}`);
|
|
112
|
+
console.log(` Previous: ${before}`);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
console.log(` Added: mcpServers.${MCP_SERVER_NAME}`);
|
|
116
|
+
}
|
|
117
|
+
console.log(` Version: @invariant-ai/mcp@${version}`);
|
|
118
|
+
console.log('');
|
|
119
|
+
console.log(`To undo: npx invariant mcp uninstall${options.global ? ' --global' : ''}`);
|
|
120
|
+
}
|
|
121
|
+
async function mcpUninstallCommand(options) {
|
|
122
|
+
const configPath = resolveConfigPath(options.global ?? false);
|
|
123
|
+
const config = readConfig(configPath);
|
|
124
|
+
if (!config.mcpServers || !config.mcpServers[MCP_SERVER_NAME]) {
|
|
125
|
+
console.log(chalk_1.default.yellow('Invariant MCP server is not registered.'));
|
|
126
|
+
console.log(` Checked: ${configPath}`);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
delete config.mcpServers[MCP_SERVER_NAME];
|
|
130
|
+
// Clean up empty mcpServers object
|
|
131
|
+
if (Object.keys(config.mcpServers).length === 0) {
|
|
132
|
+
delete config.mcpServers;
|
|
133
|
+
}
|
|
134
|
+
writeConfig(configPath, config);
|
|
135
|
+
console.log(chalk_1.default.green('✓ Invariant MCP server unregistered'));
|
|
136
|
+
console.log(` File: ${configPath}`);
|
|
137
|
+
console.log(` Removed: mcpServers.${MCP_SERVER_NAME}`);
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/run.d.ts
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
|
+
import { ProofReport, JsonOutputError } from '../lib/report.js';
|
|
1
2
|
interface RunOptions {
|
|
2
3
|
quick?: boolean;
|
|
3
4
|
headed?: boolean;
|
|
5
|
+
json?: boolean;
|
|
6
|
+
ci?: boolean;
|
|
7
|
+
}
|
|
8
|
+
type RunExitCode = 0 | 1 | 2;
|
|
9
|
+
export interface JsonOutputEnvelope {
|
|
10
|
+
envelopeVersion: 1;
|
|
11
|
+
ok: boolean;
|
|
12
|
+
exitCode: RunExitCode;
|
|
13
|
+
report?: ProofReport;
|
|
14
|
+
error?: JsonOutputError;
|
|
15
|
+
runDir?: string;
|
|
16
|
+
timestamp: string;
|
|
4
17
|
}
|
|
5
18
|
export declare function runCommand(options: RunOptions): Promise<void>;
|
|
6
19
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAuB,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAQrF,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7B,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,CAAC,CAAC;IACnB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAwPD,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmUnE"}
|