codevf 1.0.5 → 1.0.8
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 +34 -91
- package/dist/commands/cvf-command-content.d.ts +1 -1
- package/dist/commands/cvf-command-content.d.ts.map +1 -1
- package/dist/commands/cvf-command-content.js +1 -10
- package/dist/commands/cvf-command-content.js.map +1 -1
- package/dist/commands/setup.d.ts +5 -2
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +195 -22
- package/dist/commands/setup.js.map +1 -1
- package/dist/index.js +18 -301
- package/dist/index.js.map +1 -1
- package/dist/lib/api/tasks.d.ts +1 -0
- package/dist/lib/api/tasks.d.ts.map +1 -1
- package/dist/lib/api/tasks.js +1 -0
- package/dist/lib/api/tasks.js.map +1 -1
- package/dist/lib/auth/oauth-flow.d.ts.map +1 -1
- package/dist/lib/auth/oauth-flow.js +22 -2
- package/dist/lib/auth/oauth-flow.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +16 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/chat.d.ts +1 -0
- package/dist/mcp/tools/chat.d.ts.map +1 -1
- package/dist/mcp/tools/chat.js +1 -0
- package/dist/mcp/tools/chat.js.map +1 -1
- package/dist/mcp/tools/instant.d.ts +1 -0
- package/dist/mcp/tools/instant.d.ts.map +1 -1
- package/dist/mcp/tools/instant.js +1 -0
- package/dist/mcp/tools/instant.js.map +1 -1
- package/dist/tools/consultEngineer.d.ts.map +1 -1
- package/dist/tools/consultEngineer.js +69 -0
- package/dist/tools/consultEngineer.js.map +1 -1
- package/dist/types/index.d.ts +0 -356
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -39
- package/dist/types/index.js.map +1 -1
- package/dist/ui/SessionUI.d.ts.map +1 -1
- package/dist/ui/SessionUI.js +4 -1
- package/dist/ui/SessionUI.js.map +1 -1
- package/dist/utils/errors.js +5 -5
- package/dist/utils/errors.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,32 +1,52 @@
|
|
|
1
1
|
# CodeVF CLI
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Default release is **setup-only mode** (MCP integration).
|
|
3
|
+
Connect Claude Code, Codex, or Gemini to live human engineers.
|
|
5
4
|
|
|
6
|
-
##
|
|
5
|
+
## Install
|
|
7
6
|
|
|
8
7
|
```bash
|
|
9
8
|
npm install -g codevf
|
|
10
9
|
```
|
|
11
10
|
|
|
12
|
-
## Quick Start (
|
|
11
|
+
## Quick Start (Claude Code)
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
1. `codevf setup`
|
|
14
|
+
2. In Claude Code, type `claude`
|
|
15
|
+
3. It works out of the box
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
Use `/cvf` in Claude Code to force CodeVF.
|
|
18
|
+
|
|
19
|
+
## Quick Start (Codex)
|
|
20
|
+
|
|
21
|
+
1. `codevf setup`
|
|
22
|
+
2. In Codex, type `codex`
|
|
23
|
+
3. It works out of the box
|
|
24
|
+
|
|
25
|
+
Use `/mcp` in Codex to confirm CodeVF is connected.
|
|
26
|
+
|
|
27
|
+
## Quick Start (Gemini)
|
|
28
|
+
|
|
29
|
+
1. `codevf setup`
|
|
30
|
+
2. In Gemini, restart the client
|
|
31
|
+
3. It works out of the box
|
|
20
32
|
|
|
21
33
|
## Commands
|
|
22
34
|
|
|
23
|
-
### `codevf setup`
|
|
24
|
-
Configure MCP server integration with Claude Code:
|
|
35
|
+
### `codevf setup`
|
|
36
|
+
Configure MCP server integration with Claude Code, Codex, and Gemini:
|
|
25
37
|
- Authenticate with CodeVF using OAuth
|
|
26
38
|
- Auto-configure Claude Code's `~/.claude.json` file
|
|
27
39
|
- Create Claude Code slash commands for CodeVF
|
|
28
40
|
- Select default project for context
|
|
29
41
|
|
|
42
|
+
Override the backend URL during setup:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
codevf setup --base-url http://localhost:3000
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
You can also set `CODEVF_API_URL` for the same effect.
|
|
49
|
+
|
|
30
50
|
### `codevf mcp stdio`
|
|
31
51
|
Start the MCP server for non-Claude clients:
|
|
32
52
|
- `codevf mcp stdio` - Launch MCP over stdio (command/args-based clients)
|
|
@@ -35,88 +55,11 @@ Start the MCP server for non-Claude clients:
|
|
|
35
55
|
Start the MCP server over HTTP/SSE for non-Claude clients:
|
|
36
56
|
- `codevf mcp http --port 3333` - Launch MCP over HTTP/SSE (shows endpoints)
|
|
37
57
|
|
|
38
|
-
## How It Works
|
|
39
|
-
|
|
40
|
-
1. **Setup once** - Run `codevf setup` to configure Claude Code integration
|
|
41
|
-
2. **Work in Claude Code** - Access human engineers through the integration
|
|
42
|
-
3. **Get matched with experts** - Ex-FAANG engineers with expertise in your stack
|
|
43
|
-
4. **Context-aware handoff** - Engineers see your Claude conversation for faster resolution
|
|
44
|
-
5. **Hybrid approach** - AI handles quick questions, humans tackle complex debugging
|
|
45
|
-
6. **Pay per minute** - Only pay for active engineering time
|
|
46
|
-
|
|
47
|
-
## Security & Privacy
|
|
48
|
-
|
|
49
|
-
- **MCP integration** - No direct code access, works through Claude Code's security model
|
|
50
|
-
- **Context sharing** - Engineers see your Claude conversation for better assistance
|
|
51
|
-
- **Explicit permission** - Engineers request specific actions with your approval
|
|
52
|
-
- **Audit trail** - All engineer actions are logged and auditable
|
|
53
|
-
- **Secure tunnels** - Local dev servers shared via encrypted tunnels only when requested
|
|
54
|
-
- **Session-based** - No persistent code storage, only active session context
|
|
55
|
-
|
|
56
|
-
## Configuration
|
|
57
|
-
|
|
58
|
-
After running `codevf setup`, configuration is stored in:
|
|
59
|
-
|
|
60
|
-
**MCP Configuration** (`~/.config/codevf/mcp-config.json`):
|
|
61
|
-
```json
|
|
62
|
-
{
|
|
63
|
-
"auth": {
|
|
64
|
-
"accessToken": "jwt-token",
|
|
65
|
-
"refreshToken": "jwt-token",
|
|
66
|
-
"userId": "user-uuid"
|
|
67
|
-
},
|
|
68
|
-
"defaultProjectId": "project-uuid",
|
|
69
|
-
"baseUrl": "https://app.codevf.com"
|
|
70
|
-
}
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
**Claude Code Configuration** (auto-configured in `~/.claude.json`):
|
|
74
|
-
```json
|
|
75
|
-
{
|
|
76
|
-
"mcpServers": {
|
|
77
|
-
"codevf": {
|
|
78
|
-
"command": "node",
|
|
79
|
-
"args": ["/path/to/codevf/dist/mcp/index.js"]
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
```
|
|
84
|
-
|
|
85
58
|
## Requirements
|
|
86
59
|
|
|
87
|
-
- Node.js 18
|
|
88
|
-
- [Claude Code (Desktop App)](https://claude.ai/download)
|
|
60
|
+
- Node.js 18+
|
|
61
|
+
- [Claude Code (Desktop App)](https://claude.ai/download)
|
|
89
62
|
- Internet connection
|
|
90
|
-
- CodeVF account (created during setup)
|
|
91
|
-
|
|
92
|
-
### Installing Claude Code
|
|
93
|
-
|
|
94
|
-
If you don't have Claude Code installed:
|
|
95
|
-
|
|
96
|
-
**macOS:**
|
|
97
|
-
```bash
|
|
98
|
-
# Download from website
|
|
99
|
-
open https://claude.ai/download
|
|
100
|
-
|
|
101
|
-
# Or using Homebrew
|
|
102
|
-
brew install --cask claude
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**Windows:**
|
|
106
|
-
```bash
|
|
107
|
-
# Download installer from website
|
|
108
|
-
start https://claude.ai/download
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
**Linux:**
|
|
112
|
-
```bash
|
|
113
|
-
# Download AppImage from website
|
|
114
|
-
curl -L https://claude.ai/download -o claude.appimage
|
|
115
|
-
chmod +x claude.appimage
|
|
116
|
-
./claude.appimage
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**Note:** Claude Code requires an Anthropic account. Create one at [claude.ai](https://claude.ai) if needed.
|
|
120
63
|
|
|
121
64
|
## Support
|
|
122
65
|
|
|
@@ -126,4 +69,4 @@ chmod +x claude.appimage
|
|
|
126
69
|
|
|
127
70
|
## License
|
|
128
71
|
|
|
129
|
-
Commercial license — see `LICENSE`.
|
|
72
|
+
Commercial license — see `LICENSE`.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const commandContent = "---\ndescription: Ask a CodeVF engineer for help with code validation, debugging, or technical questions\n---\n\n# CodeVF Engineer Assistance\n\nPlease help me with the following question or task by consulting a CodeVF engineer using the appropriate MCP tool:\n\n**My request:**\n{{PROMPT}}\n\n---\n\n**Available CodeVF Commands:**\n- `codevf setup` - Configure MCP server for Claude Code\n- `codevf mcp stdio` - Start MCP server over stdio\n- `codevf mcp http --port 3333` - Start MCP server over HTTP/SSE\n
|
|
1
|
+
export declare const commandContent = "---\ndescription: Ask a CodeVF engineer for help with code validation, debugging, or technical questions\n---\n\n# CodeVF Engineer Assistance\n\nPlease help me with the following question or task by consulting a CodeVF engineer using the appropriate MCP tool:\n\n**My request:**\n{{PROMPT}}\n\n---\n\n**Available CodeVF Commands:**\n- `codevf setup` - Configure MCP server for Claude Code, Codex, and Gemini\n- `codevf mcp stdio` - Start MCP server over stdio\n- `codevf mcp http --port 3333` - Start MCP server over HTTP/SSE\n\n**Instructions for Claude:**\n\n1. **Analyze the request** to determine which CodeVF tool is most appropriate:\n - Use `codevf-instant` for:\n - Quick validation questions (1-10 credits, ~2 min response)\n - \"Does this fix work?\"\n - \"Is this approach correct?\"\n - \"Can you identify the error?\"\n - UI/visual verification and feedback\n - Simple technical questions\n\n - Use `codevf-chat` for:\n - Complex debugging requiring back-and-forth (4-1920 credits, 2 credits/min)\n - Multi-step troubleshooting\n - Architecture discussions\n - Extended collaboration\n\n - Use `codevf-tunnel` for:\n - Creating secure tunnels to expose local dev servers\n - Testing webhooks, OAuth callbacks, or external integrations\n - Sharing local development environment with engineers\n - No credits required - tunnel remains active for session\n\n2. **For UI/Visual Development Tasks** (Pain-Free Experience):\n\n When implementing UI changes or visual features, follow this iterative flow:\n\n **Step 1 - Initial Implementation:**\n - Make the requested changes to code/styles\n - Create tunnel if needed: `codevf-tunnel` with dev server port\n - Share tunnel URL for visual verification\n\n **Step 2 - Engineer Verification:**\n - Use `codevf-instant` with message like:\n \"Please verify this UI change via [tunnel-url] (password: [password]). Does it match the requested design/functionality?\"\n - **Always include both URL and password** - localtunnel requires password to bypass landing page\n - Include specific areas of focus (layout, spacing, colors, interactions)\n - Allow 5-8 credits for visual review and feedback\n\n **Step 3 - Iterative Refinement:**\n - Apply engineer feedback immediately\n - Use `codevf-instant` again for re-verification:\n \"Applied your feedback (reduced padding to 16px). Please check if this looks better now at [tunnel-url] (same password).\"\n - Continue this cycle until engineer confirms it looks right\n - Each feedback cycle: 3-5 credits\n\n **Example UI Flow:**\n ```\n User: \"Make the UI look like a modern card layout\"\n\n Claude:\n 1. Implements card styling\n 2. Creates tunnel \u2192 https://abc123.loca.lt (password: xyz789)\n 3. codevf-instant: \"Please review the card layout at https://abc123.loca.lt\n (password: xyz789). Does it look modern and clean? Any spacing/styling issues?\" (5 credits)\n\n Engineer: \"Cards look good but margins are too large, reduce to 16px\"\n\n Claude:\n 4. Updates margins to 16px\n 5. codevf-instant: \"Applied 16px margins. Please verify the spacing\n looks better now at https://abc123.loca.lt (password: xyz789).\" (3 credits)\n\n Engineer: \"Perfect! The spacing looks much cleaner now.\"\n ```\n\n3. **Use the appropriate tool:**\n - For instant queries: Call `codevf-instant` with the message and appropriate maxCredits (1-10)\n - For extended sessions: Call `codevf-chat` with the message and appropriate maxCredits (suggest 240 for ~2 hours)\n - For tunnel access: Call `codevf-tunnel` with the port number (e.g., { \"port\": 3000 })\n\n4. **Present the response:**\n - For instant queries: Share the engineer's response directly\n - For chat sessions: Provide the session URL so the user can monitor the conversation\n - For tunnels: Share the public URL that was created\n\n**Credit Guidelines:**\n- Instant validation: 1-10 credits (typically 3-5 credits per question)\n- UI verification: 5-8 credits for initial review, 3-5 credits for follow-up checks\n- Extended chat: 2 credits per minute (240 credits = 2 hours)\n- Tunnel creation: Free (no credits required)\n\n**Planning Integration for Complex Tasks:**\nWhen Claude is planning multi-step implementations, especially UI-heavy tasks:\n- Always include \"Engineer verification checkpoints\" in the plan\n- Budget credits for iterative feedback (typically 15-25 credits total for UI refinement)\n- Create tunnel early in the process for continuous visual validation\n- Plan for 2-4 feedback cycles to achieve the desired result\n\n**Example Usage:**\n- `/cvf Does this authentication fix prevent the timing attack?` \u2192 Use codevf-instant\n- `/cvf Complex race condition in WebSocket reconnection needs debugging` \u2192 Use codevf-chat\n- `/cvf Create tunnel to my dev server on port 3000` \u2192 Use codevf-tunnel\n- `/cvf Make the login form look more modern and user-friendly` \u2192 Use tunnel + iterative codevf-instant feedback\n";
|
|
2
2
|
//# sourceMappingURL=cvf-command-content.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvf-command-content.d.ts","sourceRoot":"","sources":["../../src/commands/cvf-command-content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"cvf-command-content.d.ts","sourceRoot":"","sources":["../../src/commands/cvf-command-content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,+8JAgH1B,CAAC"}
|
|
@@ -12,18 +12,9 @@ Please help me with the following question or task by consulting a CodeVF engine
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
**Available CodeVF Commands:**
|
|
15
|
-
- \`codevf setup\` - Configure MCP server for Claude Code
|
|
15
|
+
- \`codevf setup\` - Configure MCP server for Claude Code, Codex, and Gemini
|
|
16
16
|
- \`codevf mcp stdio\` - Start MCP server over stdio
|
|
17
17
|
- \`codevf mcp http --port 3333\` - Start MCP server over HTTP/SSE
|
|
18
|
-
- \`codevf welcome\` - Show welcome/setup guide
|
|
19
|
-
- \`codevf login\` - Authenticate with CodeVF (disabled in beta)
|
|
20
|
-
- \`codevf logout\` - Clear local authentication (disabled in beta)
|
|
21
|
-
- \`codevf init\` - Initialize CodeVF in a project (disabled in beta)
|
|
22
|
-
- \`codevf sync\` - Sync local changes with CodeVF (disabled in beta)
|
|
23
|
-
- \`codevf fix <issue>\` - Start live debugging session (disabled in beta)
|
|
24
|
-
- \`codevf tasks\` - List open tasks (disabled in beta)
|
|
25
|
-
- \`codevf cvf-chat [project-id]\` - Join live chat session (disabled in beta)
|
|
26
|
-
- \`codevf cvf-listen\` - Monitor active chats (disabled in beta)
|
|
27
18
|
|
|
28
19
|
**Instructions for Claude:**
|
|
29
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvf-command-content.js","sourceRoot":"","sources":["../../src/commands/cvf-command-content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG
|
|
1
|
+
{"version":3,"file":"cvf-command-content.js","sourceRoot":"","sources":["../../src/commands/cvf-command-content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgH7B,CAAC"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
* Setup command for CodeVF MCP Server configuration
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* Setup command - configures MCP server for Claude Code
|
|
5
|
+
* Setup command - configures MCP server for Claude Code, Codex, and Gemini
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
7
|
+
export interface SetupCommandOptions {
|
|
8
|
+
baseUrl?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function setupCommand(options?: SetupCommandOptions): Promise<void>;
|
|
8
11
|
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiVH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8OnF"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -25,6 +25,55 @@ function getClaudeCodeConfigPath() {
|
|
|
25
25
|
}
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Get Codex MCP config path
|
|
30
|
+
*/
|
|
31
|
+
function getCodexConfigPath() {
|
|
32
|
+
return path.join(os.homedir(), '.codex', 'config.toml');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Resolve Gemini CLI settings path based on platform and existing files.
|
|
36
|
+
* Supports common locations used by gemini-cli and legacy config paths.
|
|
37
|
+
*/
|
|
38
|
+
function getGeminiConfigPath() {
|
|
39
|
+
const homeDir = os.homedir();
|
|
40
|
+
const platform = os.platform();
|
|
41
|
+
const candidates = [];
|
|
42
|
+
if (platform === 'win32') {
|
|
43
|
+
const appData = process.env.APPDATA || path.join(homeDir, 'AppData', 'Roaming');
|
|
44
|
+
candidates.push(path.join(homeDir, '.gemini', 'settings.json'));
|
|
45
|
+
candidates.push(path.join(appData, 'gemini-cli', 'settings.json'));
|
|
46
|
+
candidates.push(path.join(appData, 'gemini-cli', 'config.json'));
|
|
47
|
+
candidates.push(path.join(homeDir, '.gemini', 'config.json'));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
candidates.push(path.join(homeDir, '.gemini', 'settings.json'));
|
|
51
|
+
candidates.push(path.join(homeDir, '.config', 'gemini-cli', 'settings.json'));
|
|
52
|
+
candidates.push(path.join(homeDir, '.config', 'gemini', 'settings.json'));
|
|
53
|
+
candidates.push(path.join(homeDir, '.config', 'gemini-cli', 'config.json'));
|
|
54
|
+
candidates.push(path.join(homeDir, '.config', 'gemini', 'config.json'));
|
|
55
|
+
candidates.push(path.join(homeDir, '.gemini', 'config.json'));
|
|
56
|
+
}
|
|
57
|
+
const settingsCandidates = candidates.filter((candidate) => candidate.endsWith('settings.json'));
|
|
58
|
+
const existingSettings = settingsCandidates.find((candidate) => fs.existsSync(candidate));
|
|
59
|
+
return existingSettings || settingsCandidates[0] || candidates[0];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve installed MCP server path
|
|
63
|
+
*/
|
|
64
|
+
function getMcpServerPath() {
|
|
65
|
+
const codevfPath = process.argv[1]; // Path to codevf binary
|
|
66
|
+
let resolvedPath = codevfPath;
|
|
67
|
+
try {
|
|
68
|
+
// Follow npm/yarn/pnpm bin symlinks to the actual package entrypoint.
|
|
69
|
+
resolvedPath = fs.realpathSync(codevfPath);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// Fall back to argv path if it cannot be resolved (e.g. permissions or missing file).
|
|
73
|
+
}
|
|
74
|
+
const packageDir = path.dirname(path.dirname(resolvedPath)); // Go up from dist/index.js
|
|
75
|
+
return path.join(packageDir, 'dist', 'mcp', 'index.js');
|
|
76
|
+
}
|
|
28
77
|
/**
|
|
29
78
|
* Create /cvf slash command for Claude Code
|
|
30
79
|
*/
|
|
@@ -60,6 +109,122 @@ function createCvfSlashCommand() {
|
|
|
60
109
|
return false;
|
|
61
110
|
}
|
|
62
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Auto-configure Codex with MCP server
|
|
114
|
+
*/
|
|
115
|
+
async function autoConfigureCodex() {
|
|
116
|
+
console.log(chalk.bold('\n📋 Codex Configuration\n'));
|
|
117
|
+
const configPath = getCodexConfigPath();
|
|
118
|
+
const { shouldConfigure } = await prompts({
|
|
119
|
+
type: 'confirm',
|
|
120
|
+
name: 'shouldConfigure',
|
|
121
|
+
message: 'Configure Codex to use CodeVF MCP server?',
|
|
122
|
+
initial: true,
|
|
123
|
+
});
|
|
124
|
+
if (!shouldConfigure) {
|
|
125
|
+
console.log(chalk.dim('\n💡 To configure manually, add to ~/.codex/config.toml:'));
|
|
126
|
+
console.log(chalk.dim(' [mcp_servers.codevf]'));
|
|
127
|
+
console.log(chalk.dim(' command = "node"'));
|
|
128
|
+
console.log(chalk.dim(' args = ["<path>/dist/mcp/index.js"]'));
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
const configDir = path.dirname(configPath);
|
|
133
|
+
if (!fs.existsSync(configDir)) {
|
|
134
|
+
fs.mkdirSync(configDir, { recursive: true, mode: 0o755 });
|
|
135
|
+
}
|
|
136
|
+
let configContent = '';
|
|
137
|
+
if (fs.existsSync(configPath)) {
|
|
138
|
+
configContent = fs.readFileSync(configPath, 'utf8');
|
|
139
|
+
}
|
|
140
|
+
const hasCodevf = /^\s*\[mcp_servers\.codevf\]\s*$/m.test(configContent);
|
|
141
|
+
if (hasCodevf) {
|
|
142
|
+
console.log(chalk.green('✅ CodeVF MCP server already configured for Codex!'));
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
const mcpServerPath = getMcpServerPath();
|
|
146
|
+
const block = [
|
|
147
|
+
'[mcp_servers.codevf]',
|
|
148
|
+
'command = "node"',
|
|
149
|
+
`args = ["${mcpServerPath}"]`,
|
|
150
|
+
'',
|
|
151
|
+
].join('\n');
|
|
152
|
+
const nextContent = configContent.trim().length === 0
|
|
153
|
+
? `${block}\n`
|
|
154
|
+
: `${configContent.trimEnd()}\n\n${block}\n`;
|
|
155
|
+
fs.writeFileSync(configPath, nextContent, { mode: 0o600 });
|
|
156
|
+
console.log(chalk.green('✅ Codex configured successfully!'));
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
console.error(chalk.red('\n❌ Codex auto-config failed:'), error.message);
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Auto-configure Gemini CLI with MCP server
|
|
166
|
+
*/
|
|
167
|
+
async function autoConfigureGemini() {
|
|
168
|
+
console.log(chalk.bold('\n📋 Gemini Configuration\n'));
|
|
169
|
+
const configPath = getGeminiConfigPath();
|
|
170
|
+
const { shouldConfigure } = await prompts({
|
|
171
|
+
type: 'confirm',
|
|
172
|
+
name: 'shouldConfigure',
|
|
173
|
+
message: 'Configure Gemini to use CodeVF MCP server?',
|
|
174
|
+
initial: true,
|
|
175
|
+
});
|
|
176
|
+
if (!shouldConfigure) {
|
|
177
|
+
console.log(chalk.dim(`\n💡 To configure manually, add to ${configPath}:`));
|
|
178
|
+
console.log(chalk.dim(' {'));
|
|
179
|
+
console.log(chalk.dim(' "mcpServers": {'));
|
|
180
|
+
console.log(chalk.dim(' "codevf": {'));
|
|
181
|
+
console.log(chalk.dim(' "command": "node",'));
|
|
182
|
+
console.log(chalk.dim(' "args": ["<path>/dist/mcp/index.js"]'));
|
|
183
|
+
console.log(chalk.dim(' }'));
|
|
184
|
+
console.log(chalk.dim(' }'));
|
|
185
|
+
console.log(chalk.dim(' }'));
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
// Backup existing config
|
|
190
|
+
if (fs.existsSync(configPath)) {
|
|
191
|
+
const backupPath = `${configPath}.backup`;
|
|
192
|
+
console.log(chalk.dim('\n📋 Backing up existing config...'));
|
|
193
|
+
fs.copyFileSync(configPath, backupPath);
|
|
194
|
+
console.log(chalk.dim(` Backup: ${backupPath}`));
|
|
195
|
+
}
|
|
196
|
+
// Read or create config
|
|
197
|
+
let config = {};
|
|
198
|
+
if (fs.existsSync(configPath)) {
|
|
199
|
+
const content = fs.readFileSync(configPath, 'utf8');
|
|
200
|
+
config = JSON.parse(content);
|
|
201
|
+
}
|
|
202
|
+
const mcpServerPath = getMcpServerPath();
|
|
203
|
+
const mcpKey = config.mcpServers ? 'mcpServers' : config.mcp_servers ? 'mcp_servers' : 'mcpServers';
|
|
204
|
+
if (!config[mcpKey]) {
|
|
205
|
+
config[mcpKey] = {};
|
|
206
|
+
}
|
|
207
|
+
if (config[mcpKey].codevf) {
|
|
208
|
+
console.log(chalk.green('✅ CodeVF MCP server already configured for Gemini!'));
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
config[mcpKey].codevf = {
|
|
212
|
+
command: 'node',
|
|
213
|
+
args: [mcpServerPath],
|
|
214
|
+
};
|
|
215
|
+
const configDir = path.dirname(configPath);
|
|
216
|
+
if (!fs.existsSync(configDir)) {
|
|
217
|
+
fs.mkdirSync(configDir, { recursive: true, mode: 0o755 });
|
|
218
|
+
}
|
|
219
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
220
|
+
console.log(chalk.green('✅ Gemini configured successfully!'));
|
|
221
|
+
return true;
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
console.error(chalk.red('\n❌ Gemini auto-config failed:'), error.message);
|
|
225
|
+
return false;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
63
228
|
/**
|
|
64
229
|
* Auto-configure Claude Code with MCP server
|
|
65
230
|
*/
|
|
@@ -104,10 +269,7 @@ async function autoConfigureClaudeCode() {
|
|
|
104
269
|
const content = fs.readFileSync(configPath, 'utf8');
|
|
105
270
|
config = JSON.parse(content);
|
|
106
271
|
}
|
|
107
|
-
|
|
108
|
-
const codevfPath = process.argv[1]; // Path to codevf binary
|
|
109
|
-
const packageDir = path.dirname(path.dirname(codevfPath)); // Go up from dist/index.js
|
|
110
|
-
const mcpServerPath = path.join(packageDir, 'dist', 'mcp', 'index.js');
|
|
272
|
+
const mcpServerPath = getMcpServerPath();
|
|
111
273
|
// Add or update codevf server
|
|
112
274
|
if (!config.mcpServers) {
|
|
113
275
|
config.mcpServers = {};
|
|
@@ -132,16 +294,14 @@ async function autoConfigureClaudeCode() {
|
|
|
132
294
|
return false;
|
|
133
295
|
}
|
|
134
296
|
}
|
|
135
|
-
|
|
136
|
-
* Setup command - configures MCP server for Claude Code
|
|
137
|
-
*/
|
|
138
|
-
export async function setupCommand() {
|
|
297
|
+
export async function setupCommand(options = {}) {
|
|
139
298
|
console.log(chalk.bold.blue('\n╔═══════════════════════════════════════╗'));
|
|
140
299
|
console.log(chalk.bold.blue('║ CodeVF MCP Server Setup ║'));
|
|
141
300
|
console.log(chalk.bold.blue('╚═══════════════════════════════════════╝\n'));
|
|
142
301
|
const mcpConfigManager = new ConfigManager('mcp-config.json');
|
|
143
302
|
// Check if already configured and reuse base URL if present
|
|
144
|
-
|
|
303
|
+
const baseUrlOverride = options.baseUrl?.trim();
|
|
304
|
+
let baseUrl = baseUrlOverride || process.env.CODEVF_API_URL || 'https://codevf.com';
|
|
145
305
|
if (mcpConfigManager.exists()) {
|
|
146
306
|
const existingConfig = mcpConfigManager.load();
|
|
147
307
|
console.log(chalk.yellow('⚠️ MCP configuration already exists'));
|
|
@@ -154,13 +314,15 @@ export async function setupCommand() {
|
|
|
154
314
|
initial: false,
|
|
155
315
|
});
|
|
156
316
|
if (!reconfigure) {
|
|
157
|
-
//
|
|
317
|
+
// Update client configs without re-authenticating
|
|
158
318
|
await autoConfigureClaudeCode();
|
|
319
|
+
await autoConfigureCodex();
|
|
320
|
+
await autoConfigureGemini();
|
|
159
321
|
console.log(chalk.green('\n🎉 Setup complete!\n'));
|
|
160
322
|
return;
|
|
161
323
|
}
|
|
162
324
|
// Reuse existing base URL when reconfiguring (unless env override)
|
|
163
|
-
if (!process.env.CODEVF_API_URL && existingConfig.baseUrl) {
|
|
325
|
+
if (!baseUrlOverride && !process.env.CODEVF_API_URL && existingConfig.baseUrl) {
|
|
164
326
|
baseUrl = existingConfig.baseUrl;
|
|
165
327
|
}
|
|
166
328
|
}
|
|
@@ -308,19 +470,30 @@ export async function setupCommand() {
|
|
|
308
470
|
});
|
|
309
471
|
console.log(chalk.green('\n✅ Authentication complete!'));
|
|
310
472
|
console.log(chalk.dim('Configuration saved to:'), mcpConfigManager.getPath());
|
|
311
|
-
|
|
312
|
-
const
|
|
473
|
+
const configuredClaude = await autoConfigureClaudeCode();
|
|
474
|
+
const configuredCodex = await autoConfigureCodex();
|
|
475
|
+
const configuredGemini = await autoConfigureGemini();
|
|
313
476
|
console.log(chalk.bold.green('\n🎉 Setup complete!\n'));
|
|
314
|
-
if (
|
|
477
|
+
if (configuredClaude || configuredCodex || configuredGemini) {
|
|
315
478
|
console.log(chalk.bold('Next steps:'));
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
479
|
+
if (configuredClaude) {
|
|
480
|
+
console.log(chalk.dim('1. Restart Claude Code to load the MCP server'));
|
|
481
|
+
console.log(chalk.dim('2. Use the /cvf slash command in Claude Code:'));
|
|
482
|
+
console.log(chalk.dim(' Example: ') + chalk.white('/cvf Does this fix work?'));
|
|
483
|
+
console.log(chalk.dim(' Example: ') + chalk.white('/cvf Create tunnel to port 3000'));
|
|
484
|
+
console.log(chalk.dim('3. Or ask Claude to use MCP tools directly:'));
|
|
485
|
+
console.log(chalk.dim(' - codevf-instant: Quick validation (1-10 credits)'));
|
|
486
|
+
console.log(chalk.dim(' - codevf-chat: Extended debugging (2 credits/min)'));
|
|
487
|
+
console.log(chalk.dim(' - codevf-tunnel: Expose local dev server (free)\n'));
|
|
488
|
+
}
|
|
489
|
+
if (configuredCodex) {
|
|
490
|
+
console.log(chalk.dim('1. Restart Codex to load the MCP server'));
|
|
491
|
+
console.log(chalk.dim('2. Use /mcp in Codex to confirm CodeVF is connected\n'));
|
|
492
|
+
}
|
|
493
|
+
if (configuredGemini) {
|
|
494
|
+
console.log(chalk.dim('1. Restart Gemini to load the MCP server'));
|
|
495
|
+
console.log(chalk.dim('2. Confirm CodeVF MCP tools are available\n'));
|
|
496
|
+
}
|
|
324
497
|
}
|
|
325
498
|
}
|
|
326
499
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|