@convext/cli 0.1.1 → 0.3.1
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 +38 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +31 -0
- package/dist/api.js.map +1 -1
- package/dist/cli.js +26 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/mcp.d.ts +8 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +339 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/utils/versionCheck.d.ts +19 -0
- package/dist/utils/versionCheck.d.ts.map +1 -0
- package/dist/utils/versionCheck.js +134 -0
- package/dist/utils/versionCheck.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
# Convext CLI
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@convext/cli)
|
|
4
|
+
|
|
3
5
|
Sync engineering rules and standards to your project from Convext.
|
|
4
6
|
|
|
7
|
+
**npm**: https://www.npmjs.com/package/@convext/cli
|
|
8
|
+
|
|
5
9
|
## Installation
|
|
6
10
|
|
|
7
11
|
```bash
|
|
@@ -74,6 +78,40 @@ convext config --url https://... # Set custom API URL
|
|
|
74
78
|
convext config --show # Show current config
|
|
75
79
|
```
|
|
76
80
|
|
|
81
|
+
### `mcp` - Configure MCP for your editor/agent
|
|
82
|
+
|
|
83
|
+
Automatically detect and configure MCP (Model Context Protocol) for your AI coding assistant.
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
convext mcp [options]
|
|
87
|
+
|
|
88
|
+
Options:
|
|
89
|
+
-e, --editor <name> Specify editor (claude-code, cursor, windsurf, vscode)
|
|
90
|
+
-f, --fix Auto-fix configuration without prompting
|
|
91
|
+
-s, --status Show MCP configuration status for all editors
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Examples:
|
|
95
|
+
```bash
|
|
96
|
+
# Check MCP status across all editors
|
|
97
|
+
convext mcp --status
|
|
98
|
+
|
|
99
|
+
# Configure MCP for detected/selected editor
|
|
100
|
+
convext mcp
|
|
101
|
+
|
|
102
|
+
# Configure MCP for a specific editor
|
|
103
|
+
convext mcp --editor cursor
|
|
104
|
+
|
|
105
|
+
# Auto-fix without prompts
|
|
106
|
+
convext mcp --fix
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Supported editors:
|
|
110
|
+
- **Claude Code** - Anthropic's CLI
|
|
111
|
+
- **Cursor** - AI-powered IDE
|
|
112
|
+
- **Windsurf** - Codeium's IDE
|
|
113
|
+
- **VS Code** - With MCP extension
|
|
114
|
+
|
|
77
115
|
### `whoami` - Show configured user and organization
|
|
78
116
|
|
|
79
117
|
```bash
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ApiError = void 0;
|
|
4
7
|
exports.getRules = getRules;
|
|
@@ -12,6 +15,8 @@ exports.getProjects = getProjects;
|
|
|
12
15
|
exports.getEngineeringContext = getEngineeringContext;
|
|
13
16
|
exports.assignRuleSets = assignRuleSets;
|
|
14
17
|
const config_js_1 = require("./config.js");
|
|
18
|
+
const versionCheck_js_1 = require("./utils/versionCheck.js");
|
|
19
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
15
20
|
class ApiError extends Error {
|
|
16
21
|
statusCode;
|
|
17
22
|
constructor(statusCode, message) {
|
|
@@ -21,6 +26,23 @@ class ApiError extends Error {
|
|
|
21
26
|
}
|
|
22
27
|
}
|
|
23
28
|
exports.ApiError = ApiError;
|
|
29
|
+
/**
|
|
30
|
+
* Check if the API response indicates a minimum CLI version requirement.
|
|
31
|
+
* Displays a warning if the current version is below the minimum.
|
|
32
|
+
*/
|
|
33
|
+
function checkVersionHeader(response) {
|
|
34
|
+
const minVersion = response.headers.get("X-Min-CLI-Version");
|
|
35
|
+
if (minVersion) {
|
|
36
|
+
const check = (0, versionCheck_js_1.checkMinimumVersion)(minVersion);
|
|
37
|
+
if (!check.ok) {
|
|
38
|
+
console.log();
|
|
39
|
+
console.log(chalk_1.default.red(` ⚠ CLI version ${(0, versionCheck_js_1.getCurrentVersion)()} is outdated`));
|
|
40
|
+
console.log(chalk_1.default.yellow(` Minimum required: ${minVersion}`));
|
|
41
|
+
console.log(chalk_1.default.gray(` Run: npm install -g @convext/cli@latest`));
|
|
42
|
+
console.log();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
24
46
|
async function mcpCall(method, params = {}) {
|
|
25
47
|
const apiUrl = (0, config_js_1.getApiUrl)();
|
|
26
48
|
const token = (0, config_js_1.getApiToken)();
|
|
@@ -32,6 +54,7 @@ async function mcpCall(method, params = {}) {
|
|
|
32
54
|
headers: {
|
|
33
55
|
"Content-Type": "application/json",
|
|
34
56
|
Authorization: `Bearer ${token}`,
|
|
57
|
+
"X-CLI-Version": (0, versionCheck_js_1.getCurrentVersion)(),
|
|
35
58
|
},
|
|
36
59
|
body: JSON.stringify({
|
|
37
60
|
jsonrpc: "2.0",
|
|
@@ -40,6 +63,8 @@ async function mcpCall(method, params = {}) {
|
|
|
40
63
|
id: Date.now(),
|
|
41
64
|
}),
|
|
42
65
|
});
|
|
66
|
+
// Check for minimum version requirement from server
|
|
67
|
+
checkVersionHeader(response);
|
|
43
68
|
if (!response.ok) {
|
|
44
69
|
throw new ApiError(response.status, `API request failed: ${response.statusText}`);
|
|
45
70
|
}
|
|
@@ -115,8 +140,10 @@ async function getProjectMarkdown(projectSlug) {
|
|
|
115
140
|
headers: {
|
|
116
141
|
"Content-Type": "application/json",
|
|
117
142
|
Authorization: `Bearer ${token}`,
|
|
143
|
+
"X-CLI-Version": (0, versionCheck_js_1.getCurrentVersion)(),
|
|
118
144
|
},
|
|
119
145
|
});
|
|
146
|
+
checkVersionHeader(response);
|
|
120
147
|
if (!response.ok) {
|
|
121
148
|
throw new ApiError(response.status, `API request failed: ${response.statusText}`);
|
|
122
149
|
}
|
|
@@ -166,8 +193,10 @@ async function getOrganizations() {
|
|
|
166
193
|
headers: {
|
|
167
194
|
"Content-Type": "application/json",
|
|
168
195
|
Authorization: `Bearer ${token}`,
|
|
196
|
+
"X-CLI-Version": (0, versionCheck_js_1.getCurrentVersion)(),
|
|
169
197
|
},
|
|
170
198
|
});
|
|
199
|
+
checkVersionHeader(response);
|
|
171
200
|
if (!response.ok) {
|
|
172
201
|
throw new ApiError(response.status, `API request failed: ${response.statusText}`);
|
|
173
202
|
}
|
|
@@ -184,8 +213,10 @@ async function getProjects() {
|
|
|
184
213
|
headers: {
|
|
185
214
|
"Content-Type": "application/json",
|
|
186
215
|
Authorization: `Bearer ${token}`,
|
|
216
|
+
"X-CLI-Version": (0, versionCheck_js_1.getCurrentVersion)(),
|
|
187
217
|
},
|
|
188
218
|
});
|
|
219
|
+
checkVersionHeader(response);
|
|
189
220
|
if (!response.ok) {
|
|
190
221
|
throw new ApiError(response.status, `API request failed: ${response.statusText}`);
|
|
191
222
|
}
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -10,6 +10,8 @@ const config_js_1 = require("./config.js");
|
|
|
10
10
|
const sync_js_1 = require("./commands/sync.js");
|
|
11
11
|
const check_js_1 = require("./commands/check.js");
|
|
12
12
|
const init_js_1 = require("./commands/init.js");
|
|
13
|
+
const mcp_js_1 = require("./commands/mcp.js");
|
|
14
|
+
const versionCheck_js_1 = require("./utils/versionCheck.js");
|
|
13
15
|
// Show server URL first for every command
|
|
14
16
|
const apiUrl = (0, config_js_1.getApiUrl)();
|
|
15
17
|
console.log(chalk_1.default.gray(`Server: ${apiUrl}\n`));
|
|
@@ -17,7 +19,7 @@ const program = new commander_1.Command();
|
|
|
17
19
|
program
|
|
18
20
|
.name("convext")
|
|
19
21
|
.description("CLI for Convext - sync engineering rules and standards to your project")
|
|
20
|
-
.version(
|
|
22
|
+
.version((0, versionCheck_js_1.getCurrentVersion)())
|
|
21
23
|
.addHelpText("after", `
|
|
22
24
|
Environment Variables:
|
|
23
25
|
CONVEXT_TOKEN API token for authentication (overrides config file)
|
|
@@ -115,6 +117,24 @@ program
|
|
|
115
117
|
console.log(" convext config --show");
|
|
116
118
|
}
|
|
117
119
|
});
|
|
120
|
+
// MCP command - configure MCP for editors/agents
|
|
121
|
+
program
|
|
122
|
+
.command("mcp")
|
|
123
|
+
.description("Configure MCP server for your editor/agent")
|
|
124
|
+
.option("-e, --editor <name>", "Specify editor (claude-code, cursor, windsurf, vscode)")
|
|
125
|
+
.option("-f, --fix", "Auto-fix configuration without prompting")
|
|
126
|
+
.option("-s, --status", "Show MCP configuration status for all editors")
|
|
127
|
+
.action(async (options) => {
|
|
128
|
+
if (options.status) {
|
|
129
|
+
(0, mcp_js_1.mcpStatusCommand)();
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
await (0, mcp_js_1.mcpCommand)({
|
|
133
|
+
editor: options.editor,
|
|
134
|
+
fix: options.fix,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
});
|
|
118
138
|
// Auth status command
|
|
119
139
|
program
|
|
120
140
|
.command("whoami")
|
|
@@ -162,4 +182,9 @@ if (process.argv.length <= 2) {
|
|
|
162
182
|
}
|
|
163
183
|
// Parse and run
|
|
164
184
|
program.parse();
|
|
185
|
+
// Check for updates after command completes (non-blocking)
|
|
186
|
+
// This runs in the background and caches results for 24 hours
|
|
187
|
+
(0, versionCheck_js_1.checkForUpdates)().catch(() => {
|
|
188
|
+
// Silently ignore errors - don't disrupt user workflow
|
|
189
|
+
});
|
|
165
190
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,2CAA6E;AAC7E,gDAAiD;AACjD,kDAAmD;AACnD,gDAAiD;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAQA,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyMD,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJnE;AAaD,wBAAgB,gBAAgB,IAAI,IAAI,CAsCvC"}
|
|
@@ -0,0 +1,339 @@
|
|
|
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.mcpCommand = mcpCommand;
|
|
7
|
+
exports.mcpStatusCommand = mcpStatusCommand;
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
const node_os_1 = require("node:os");
|
|
11
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
+
const ora_1 = __importDefault(require("ora"));
|
|
13
|
+
const prompts_js_1 = require("../utils/prompts.js");
|
|
14
|
+
const config_js_1 = require("../config.js");
|
|
15
|
+
const EDITORS = [
|
|
16
|
+
{
|
|
17
|
+
name: "Claude Code",
|
|
18
|
+
id: "claude-code",
|
|
19
|
+
configPaths: [
|
|
20
|
+
(0, node_path_1.join)((0, node_os_1.homedir)(), ".claude", "mcp.json"),
|
|
21
|
+
],
|
|
22
|
+
projectConfigName: ".mcp.json",
|
|
23
|
+
supportsHttp: true,
|
|
24
|
+
supportsStdio: true,
|
|
25
|
+
docs: "https://docs.anthropic.com/claude-code",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "Cursor",
|
|
29
|
+
id: "cursor",
|
|
30
|
+
configPaths: [
|
|
31
|
+
(0, node_path_1.join)((0, node_os_1.homedir)(), ".cursor", "mcp.json"),
|
|
32
|
+
(0, node_path_1.join)((0, node_os_1.homedir)(), "Library", "Application Support", "Cursor", "User", "globalStorage", "mcp.json"),
|
|
33
|
+
],
|
|
34
|
+
projectConfigName: ".mcp.json",
|
|
35
|
+
supportsHttp: true,
|
|
36
|
+
supportsStdio: true,
|
|
37
|
+
docs: "https://docs.cursor.com",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "Windsurf",
|
|
41
|
+
id: "windsurf",
|
|
42
|
+
configPaths: [
|
|
43
|
+
(0, node_path_1.join)((0, node_os_1.homedir)(), ".windsurf", "mcp.json"),
|
|
44
|
+
(0, node_path_1.join)((0, node_os_1.homedir)(), ".codeium", "windsurf", "mcp.json"),
|
|
45
|
+
],
|
|
46
|
+
projectConfigName: ".mcp.json",
|
|
47
|
+
supportsHttp: true,
|
|
48
|
+
supportsStdio: true,
|
|
49
|
+
docs: "https://windsurf.run/mcp",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "VS Code (with MCP extension)",
|
|
53
|
+
id: "vscode",
|
|
54
|
+
configPaths: [
|
|
55
|
+
(0, node_path_1.join)((0, node_os_1.homedir)(), ".vscode", "mcp.json"),
|
|
56
|
+
],
|
|
57
|
+
projectConfigName: ".vscode/mcp.json",
|
|
58
|
+
supportsHttp: true,
|
|
59
|
+
supportsStdio: true,
|
|
60
|
+
docs: "https://code.visualstudio.com",
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
function detectCurrentEditor() {
|
|
64
|
+
// Check environment variables that editors typically set
|
|
65
|
+
const termProgram = process.env.TERM_PROGRAM?.toLowerCase() || "";
|
|
66
|
+
const editor = process.env.EDITOR?.toLowerCase() || "";
|
|
67
|
+
const vscodeIpc = process.env.VSCODE_IPC_HOOK;
|
|
68
|
+
const cursorIpc = process.env.CURSOR_IPC_HOOK;
|
|
69
|
+
// Check for Cursor (has its own IPC hook)
|
|
70
|
+
if (cursorIpc || termProgram.includes("cursor")) {
|
|
71
|
+
return EDITORS.find(e => e.id === "cursor");
|
|
72
|
+
}
|
|
73
|
+
// Check for VS Code (has its own IPC hook)
|
|
74
|
+
if (vscodeIpc || termProgram.includes("vscode") || editor.includes("code")) {
|
|
75
|
+
return EDITORS.find(e => e.id === "vscode");
|
|
76
|
+
}
|
|
77
|
+
// Check for Claude Code - check multiple indicators
|
|
78
|
+
// Claude Code sets CLAUDE_CODE_ENTRY or runs as 'claude' command
|
|
79
|
+
if (process.env.CLAUDE_CODE ||
|
|
80
|
+
process.env.CLAUDE_CODE_ENTRY ||
|
|
81
|
+
process.env.MCP_SERVER_NAME === "claude-code" ||
|
|
82
|
+
process.argv[1]?.includes("claude")) {
|
|
83
|
+
return EDITORS.find(e => e.id === "claude-code");
|
|
84
|
+
}
|
|
85
|
+
// Check for Windsurf
|
|
86
|
+
if (termProgram.includes("windsurf") || termProgram.includes("codeium")) {
|
|
87
|
+
return EDITORS.find(e => e.id === "windsurf");
|
|
88
|
+
}
|
|
89
|
+
// Fallback: Check which editors have existing config files
|
|
90
|
+
// This helps when running from a plain terminal
|
|
91
|
+
const editorsWithConfig = EDITORS.filter(e => {
|
|
92
|
+
for (const configPath of e.configPaths) {
|
|
93
|
+
if ((0, node_fs_1.existsSync)(configPath)) {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// Also check project-level config
|
|
98
|
+
const projectConfig = (0, node_path_1.join)(process.cwd(), e.projectConfigName);
|
|
99
|
+
return (0, node_fs_1.existsSync)(projectConfig);
|
|
100
|
+
});
|
|
101
|
+
// If only one editor has config, assume that's the one
|
|
102
|
+
if (editorsWithConfig.length === 1) {
|
|
103
|
+
return editorsWithConfig[0];
|
|
104
|
+
}
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
function findExistingConfig(editor) {
|
|
108
|
+
// Check project-level config first
|
|
109
|
+
const projectConfig = (0, node_path_1.join)(process.cwd(), editor.projectConfigName);
|
|
110
|
+
if ((0, node_fs_1.existsSync)(projectConfig)) {
|
|
111
|
+
try {
|
|
112
|
+
const content = (0, node_fs_1.readFileSync)(projectConfig, "utf-8");
|
|
113
|
+
return { path: projectConfig, config: JSON.parse(content) };
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// Invalid JSON, will offer to fix
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Check global configs
|
|
120
|
+
for (const configPath of editor.configPaths) {
|
|
121
|
+
if ((0, node_fs_1.existsSync)(configPath)) {
|
|
122
|
+
try {
|
|
123
|
+
const content = (0, node_fs_1.readFileSync)(configPath, "utf-8");
|
|
124
|
+
return { path: configPath, config: JSON.parse(content) };
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Invalid JSON
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
function hasConvextServer(config) {
|
|
134
|
+
return config.mcpServers !== undefined && "convext" in config.mcpServers;
|
|
135
|
+
}
|
|
136
|
+
function isConvextConfigured(config) {
|
|
137
|
+
if (!config.mcpServers?.convext) {
|
|
138
|
+
return { configured: false };
|
|
139
|
+
}
|
|
140
|
+
const server = config.mcpServers.convext;
|
|
141
|
+
// Check for npx method
|
|
142
|
+
if (server.command === "npx" && server.args?.includes("@convext/mcp-server")) {
|
|
143
|
+
return { configured: true, method: "npx" };
|
|
144
|
+
}
|
|
145
|
+
// Check for HTTP method
|
|
146
|
+
if (server.type === "http" && server.url) {
|
|
147
|
+
return { configured: true, method: "http" };
|
|
148
|
+
}
|
|
149
|
+
// Has convext but needs update
|
|
150
|
+
return { configured: false, needsUpdate: true };
|
|
151
|
+
}
|
|
152
|
+
function generateNpxConfig() {
|
|
153
|
+
return {
|
|
154
|
+
command: "npx",
|
|
155
|
+
args: ["-y", "@convext/mcp-server"],
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function generateHttpConfig() {
|
|
159
|
+
const apiUrl = (0, config_js_1.getApiUrl)();
|
|
160
|
+
return {
|
|
161
|
+
type: "http",
|
|
162
|
+
url: `${apiUrl}/mcp`,
|
|
163
|
+
headers: {
|
|
164
|
+
Authorization: "Bearer ${CONVEXT_TOKEN}",
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function checkEnvironmentToken() {
|
|
169
|
+
return Boolean(process.env.CONVEXT_TOKEN);
|
|
170
|
+
}
|
|
171
|
+
async function mcpCommand(options) {
|
|
172
|
+
const spinner = (0, ora_1.default)();
|
|
173
|
+
console.log(chalk_1.default.bold("\nConvext MCP Configuration\n"));
|
|
174
|
+
// Step 1: Detect or select editor
|
|
175
|
+
let editor;
|
|
176
|
+
if (options.editor) {
|
|
177
|
+
editor = EDITORS.find(e => e.id === options.editor || e.name.toLowerCase().includes(options.editor.toLowerCase()));
|
|
178
|
+
if (!editor) {
|
|
179
|
+
console.log(chalk_1.default.red(`Unknown editor: ${options.editor}`));
|
|
180
|
+
console.log(chalk_1.default.gray(`Available: ${EDITORS.map(e => e.id).join(", ")}`));
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
editor = detectCurrentEditor();
|
|
186
|
+
}
|
|
187
|
+
if (!editor) {
|
|
188
|
+
console.log(chalk_1.default.yellow("Could not detect current editor/agent."));
|
|
189
|
+
console.log(chalk_1.default.gray("Select your editor to configure MCP:\n"));
|
|
190
|
+
editor = await (0, prompts_js_1.promptSelect)("Which editor do you want to configure?", EDITORS.map(e => ({
|
|
191
|
+
label: e.name,
|
|
192
|
+
value: e,
|
|
193
|
+
})), 0);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
console.log(chalk_1.default.green(`✓ Detected: ${editor.name}`));
|
|
197
|
+
}
|
|
198
|
+
// Step 2: Check existing configuration
|
|
199
|
+
spinner.start("Checking MCP configuration...");
|
|
200
|
+
const existing = findExistingConfig(editor);
|
|
201
|
+
spinner.stop();
|
|
202
|
+
if (existing) {
|
|
203
|
+
const status = isConvextConfigured(existing.config);
|
|
204
|
+
if (status.configured) {
|
|
205
|
+
console.log(chalk_1.default.green(`✓ Convext MCP already configured (${status.method})`));
|
|
206
|
+
console.log(chalk_1.default.gray(` Config: ${existing.path}`));
|
|
207
|
+
// Check environment token
|
|
208
|
+
if (!checkEnvironmentToken()) {
|
|
209
|
+
console.log(chalk_1.default.yellow("\n⚠ CONVEXT_TOKEN environment variable not set"));
|
|
210
|
+
console.log(chalk_1.default.gray(" The MCP server needs this to authenticate.\n"));
|
|
211
|
+
showTokenInstructions();
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
console.log(chalk_1.default.green("✓ CONVEXT_TOKEN is set"));
|
|
215
|
+
}
|
|
216
|
+
if (!options.fix) {
|
|
217
|
+
const update = await (0, prompts_js_1.promptConfirm)("Update configuration anyway?", false);
|
|
218
|
+
if (!update) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
else if (status.needsUpdate) {
|
|
224
|
+
console.log(chalk_1.default.yellow("⚠ Convext MCP configured but needs update"));
|
|
225
|
+
console.log(chalk_1.default.gray(` Config: ${existing.path}`));
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
console.log(chalk_1.default.yellow("⚠ MCP config exists but Convext not configured"));
|
|
229
|
+
console.log(chalk_1.default.gray(` Config: ${existing.path}`));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
console.log(chalk_1.default.yellow("⚠ No MCP configuration found"));
|
|
234
|
+
}
|
|
235
|
+
// Step 3: Select configuration method
|
|
236
|
+
console.log("\n" + chalk_1.default.bold("Configuration Options:"));
|
|
237
|
+
console.log(chalk_1.default.gray(" npx: Uses @convext/mcp-server package (recommended)"));
|
|
238
|
+
console.log(chalk_1.default.gray(" http: Direct HTTP connection to Convext API\n"));
|
|
239
|
+
const method = await (0, prompts_js_1.promptSelect)("Which method do you want to use?", [
|
|
240
|
+
{ label: "npx @convext/mcp-server (recommended)", value: "npx" },
|
|
241
|
+
{ label: "Direct HTTP connection", value: "http" },
|
|
242
|
+
], 0);
|
|
243
|
+
// Step 4: Select scope (project or global)
|
|
244
|
+
const scope = await (0, prompts_js_1.promptSelect)("Where should the config be saved?", [
|
|
245
|
+
{ label: `Project (${editor.projectConfigName})`, value: "project" },
|
|
246
|
+
{ label: `Global (${editor.configPaths[0]})`, value: "global" },
|
|
247
|
+
], 0);
|
|
248
|
+
// Step 5: Generate and write config
|
|
249
|
+
const serverConfig = method === "npx" ? generateNpxConfig() : generateHttpConfig();
|
|
250
|
+
const configPath = scope === "project"
|
|
251
|
+
? (0, node_path_1.join)(process.cwd(), editor.projectConfigName)
|
|
252
|
+
: editor.configPaths[0];
|
|
253
|
+
// Read existing config or create new
|
|
254
|
+
let config = { mcpServers: {} };
|
|
255
|
+
if ((0, node_fs_1.existsSync)(configPath)) {
|
|
256
|
+
try {
|
|
257
|
+
config = JSON.parse((0, node_fs_1.readFileSync)(configPath, "utf-8"));
|
|
258
|
+
if (!config.mcpServers) {
|
|
259
|
+
config.mcpServers = {};
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
// Invalid JSON, start fresh but preserve file
|
|
264
|
+
console.log(chalk_1.default.yellow(` Warning: ${configPath} had invalid JSON, creating new config`));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// Add/update convext server
|
|
268
|
+
config.mcpServers.convext = serverConfig;
|
|
269
|
+
// Ensure directory exists
|
|
270
|
+
const configDir = (0, node_path_1.dirname)(configPath);
|
|
271
|
+
if (!(0, node_fs_1.existsSync)(configDir)) {
|
|
272
|
+
(0, node_fs_1.mkdirSync)(configDir, { recursive: true });
|
|
273
|
+
}
|
|
274
|
+
// Write config
|
|
275
|
+
(0, node_fs_1.writeFileSync)(configPath, JSON.stringify(config, null, 2) + "\n");
|
|
276
|
+
console.log(chalk_1.default.green(`\n✓ MCP configuration saved to ${configPath}`));
|
|
277
|
+
// Step 6: Check/remind about CONVEXT_TOKEN
|
|
278
|
+
if (!checkEnvironmentToken()) {
|
|
279
|
+
console.log(chalk_1.default.yellow("\n⚠ Important: Set CONVEXT_TOKEN environment variable\n"));
|
|
280
|
+
showTokenInstructions();
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
console.log(chalk_1.default.green("✓ CONVEXT_TOKEN is already set"));
|
|
284
|
+
}
|
|
285
|
+
// Step 7: Show next steps
|
|
286
|
+
console.log("\n" + chalk_1.default.bold("Next Steps:"));
|
|
287
|
+
console.log(` 1. ${chalk_1.default.cyan("Restart " + editor.name)} for changes to take effect`);
|
|
288
|
+
console.log(` 2. Ask the AI: ${chalk_1.default.gray('"What Convext rules apply to this project?"')}`);
|
|
289
|
+
console.log(` 3. The AI will use the MCP server to fetch your rules\n`);
|
|
290
|
+
if (scope === "project") {
|
|
291
|
+
console.log(chalk_1.default.gray(` Tip: Commit ${editor.projectConfigName} to share with your team\n`));
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
function showTokenInstructions() {
|
|
295
|
+
console.log(chalk_1.default.bold(" Set CONVEXT_TOKEN:"));
|
|
296
|
+
console.log(chalk_1.default.gray(" macOS/Linux (add to ~/.zshrc or ~/.bashrc):"));
|
|
297
|
+
console.log(chalk_1.default.cyan(' export CONVEXT_TOKEN="your_token_here"'));
|
|
298
|
+
console.log();
|
|
299
|
+
console.log(chalk_1.default.gray(" Or for system-wide (macOS):"));
|
|
300
|
+
console.log(chalk_1.default.cyan(" launchctl setenv CONVEXT_TOKEN your_token_here"));
|
|
301
|
+
console.log();
|
|
302
|
+
console.log(chalk_1.default.gray(" Get your token from: ") + chalk_1.default.cyan((0, config_js_1.getApiUrl)() + "/settings/api_tokens"));
|
|
303
|
+
}
|
|
304
|
+
function mcpStatusCommand() {
|
|
305
|
+
console.log(chalk_1.default.bold("\nMCP Configuration Status\n"));
|
|
306
|
+
// Check environment token
|
|
307
|
+
const hasToken = checkEnvironmentToken();
|
|
308
|
+
if (hasToken) {
|
|
309
|
+
console.log(chalk_1.default.green("✓ CONVEXT_TOKEN is set"));
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
console.log(chalk_1.default.red("✗ CONVEXT_TOKEN not set"));
|
|
313
|
+
}
|
|
314
|
+
console.log();
|
|
315
|
+
// Check each editor
|
|
316
|
+
for (const editor of EDITORS) {
|
|
317
|
+
const existing = findExistingConfig(editor);
|
|
318
|
+
if (!existing) {
|
|
319
|
+
console.log(chalk_1.default.gray(`○ ${editor.name}: not configured`));
|
|
320
|
+
continue;
|
|
321
|
+
}
|
|
322
|
+
const status = isConvextConfigured(existing.config);
|
|
323
|
+
if (status.configured) {
|
|
324
|
+
console.log(chalk_1.default.green(`✓ ${editor.name}: configured (${status.method})`));
|
|
325
|
+
console.log(chalk_1.default.gray(` ${existing.path}`));
|
|
326
|
+
}
|
|
327
|
+
else if (status.needsUpdate) {
|
|
328
|
+
console.log(chalk_1.default.yellow(`⚠ ${editor.name}: needs update`));
|
|
329
|
+
console.log(chalk_1.default.gray(` ${existing.path}`));
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
console.log(chalk_1.default.yellow(`○ ${editor.name}: MCP config exists, Convext not added`));
|
|
333
|
+
console.log(chalk_1.default.gray(` ${existing.path}`));
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
console.log();
|
|
337
|
+
console.log(chalk_1.default.gray("Run 'convext mcp' to configure MCP for an editor"));
|
|
338
|
+
}
|
|
339
|
+
//# 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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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check for CLI updates and display a warning if outdated.
|
|
3
|
+
* This function is non-blocking and will not slow down the CLI.
|
|
4
|
+
* Checks are cached for 24 hours.
|
|
5
|
+
*/
|
|
6
|
+
export declare function checkForUpdates(): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Check if the current CLI version meets the minimum required version from the API.
|
|
9
|
+
* Returns true if version is acceptable, false if upgrade is required.
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkMinimumVersion(minVersion: string): {
|
|
12
|
+
ok: boolean;
|
|
13
|
+
message?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Get the current CLI version
|
|
17
|
+
*/
|
|
18
|
+
export declare function getCurrentVersion(): string;
|
|
19
|
+
//# sourceMappingURL=versionCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionCheck.d.ts","sourceRoot":"","sources":["../../src/utils/versionCheck.ts"],"names":[],"mappings":"AA+EA;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAkCrD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAQzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
|
@@ -0,0 +1,134 @@
|
|
|
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.checkForUpdates = checkForUpdates;
|
|
7
|
+
exports.checkMinimumVersion = checkMinimumVersion;
|
|
8
|
+
exports.getCurrentVersion = getCurrentVersion;
|
|
9
|
+
const node_fs_1 = require("node:fs");
|
|
10
|
+
const node_path_1 = require("node:path");
|
|
11
|
+
const node_os_1 = require("node:os");
|
|
12
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
+
// Current version - updated on build
|
|
14
|
+
const CURRENT_VERSION = "0.3.0";
|
|
15
|
+
const PACKAGE_NAME = "@convext/cli";
|
|
16
|
+
const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
17
|
+
function getCachePath() {
|
|
18
|
+
return (0, node_path_1.join)((0, node_os_1.homedir)(), ".convext", "version-cache.json");
|
|
19
|
+
}
|
|
20
|
+
function readCache() {
|
|
21
|
+
try {
|
|
22
|
+
const cachePath = getCachePath();
|
|
23
|
+
if (!(0, node_fs_1.existsSync)(cachePath)) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const content = (0, node_fs_1.readFileSync)(cachePath, "utf-8");
|
|
27
|
+
return JSON.parse(content);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function writeCache(cache) {
|
|
34
|
+
try {
|
|
35
|
+
const cachePath = getCachePath();
|
|
36
|
+
const cacheDir = (0, node_path_1.join)((0, node_os_1.homedir)(), ".convext");
|
|
37
|
+
if (!(0, node_fs_1.existsSync)(cacheDir)) {
|
|
38
|
+
(0, node_fs_1.mkdirSync)(cacheDir, { recursive: true });
|
|
39
|
+
}
|
|
40
|
+
(0, node_fs_1.writeFileSync)(cachePath, JSON.stringify(cache));
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Silently fail - cache is optional
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function compareVersions(current, latest) {
|
|
47
|
+
const currentParts = current.split(".").map(Number);
|
|
48
|
+
const latestParts = latest.split(".").map(Number);
|
|
49
|
+
for (let i = 0; i < 3; i++) {
|
|
50
|
+
const c = currentParts[i] || 0;
|
|
51
|
+
const l = latestParts[i] || 0;
|
|
52
|
+
if (c < l)
|
|
53
|
+
return -1;
|
|
54
|
+
if (c > l)
|
|
55
|
+
return 1;
|
|
56
|
+
}
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
async function fetchLatestVersion() {
|
|
60
|
+
try {
|
|
61
|
+
const controller = new AbortController();
|
|
62
|
+
const timeout = setTimeout(() => controller.abort(), 3000); // 3 second timeout
|
|
63
|
+
const response = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, {
|
|
64
|
+
signal: controller.signal,
|
|
65
|
+
});
|
|
66
|
+
clearTimeout(timeout);
|
|
67
|
+
if (!response.ok) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const data = await response.json();
|
|
71
|
+
return data.version;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check for CLI updates and display a warning if outdated.
|
|
79
|
+
* This function is non-blocking and will not slow down the CLI.
|
|
80
|
+
* Checks are cached for 24 hours.
|
|
81
|
+
*/
|
|
82
|
+
async function checkForUpdates() {
|
|
83
|
+
try {
|
|
84
|
+
// Check cache first
|
|
85
|
+
const cache = readCache();
|
|
86
|
+
const now = Date.now();
|
|
87
|
+
let latestVersion = null;
|
|
88
|
+
if (cache && (now - cache.checkedAt) < CHECK_INTERVAL_MS) {
|
|
89
|
+
// Use cached version
|
|
90
|
+
latestVersion = cache.latestVersion;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// Fetch from npm registry
|
|
94
|
+
latestVersion = await fetchLatestVersion();
|
|
95
|
+
if (latestVersion) {
|
|
96
|
+
writeCache({ latestVersion, checkedAt: now });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (!latestVersion) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// Compare versions
|
|
103
|
+
if (compareVersions(CURRENT_VERSION, latestVersion) < 0) {
|
|
104
|
+
console.log();
|
|
105
|
+
console.log(chalk_1.default.yellow(` ⚠ Update available: ${CURRENT_VERSION} → ${latestVersion}`));
|
|
106
|
+
console.log(chalk_1.default.gray(` Run: npm install -g ${PACKAGE_NAME}@latest`));
|
|
107
|
+
console.log(chalk_1.default.gray(` Or use: npx ${PACKAGE_NAME}@latest <command>`));
|
|
108
|
+
console.log();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Silently fail - don't disrupt user workflow
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Check if the current CLI version meets the minimum required version from the API.
|
|
117
|
+
* Returns true if version is acceptable, false if upgrade is required.
|
|
118
|
+
*/
|
|
119
|
+
function checkMinimumVersion(minVersion) {
|
|
120
|
+
if (compareVersions(CURRENT_VERSION, minVersion) < 0) {
|
|
121
|
+
return {
|
|
122
|
+
ok: false,
|
|
123
|
+
message: `This CLI version (${CURRENT_VERSION}) is outdated. Minimum required: ${minVersion}. Please upgrade: npm install -g ${PACKAGE_NAME}@latest`,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
return { ok: true };
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get the current CLI version
|
|
130
|
+
*/
|
|
131
|
+
function getCurrentVersion() {
|
|
132
|
+
return CURRENT_VERSION;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=versionCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionCheck.js","sourceRoot":"","sources":["../../src/utils/versionCheck.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@convext/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "CLI for Convext - sync engineering rules and standards to your project",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -39,4 +39,4 @@
|
|
|
39
39
|
"files": [
|
|
40
40
|
"dist"
|
|
41
41
|
]
|
|
42
|
-
}
|
|
42
|
+
}
|