codevf 1.0.1 → 1.0.3
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 +118 -62
- package/dist/commands/chat.d.ts +2 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +130 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/cvf-chat-command-content.d.ts +2 -0
- package/dist/commands/cvf-chat-command-content.d.ts.map +1 -0
- package/dist/commands/cvf-chat-command-content.js +22 -0
- package/dist/commands/cvf-chat-command-content.js.map +1 -0
- package/dist/commands/cvf-command-content.d.ts +2 -0
- package/dist/commands/cvf-command-content.d.ts.map +1 -0
- package/dist/commands/cvf-command-content.js +109 -0
- package/dist/commands/cvf-command-content.js.map +1 -0
- package/dist/commands/fix.d.ts +1 -0
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +36 -0
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/listen.d.ts +2 -0
- package/dist/commands/listen.d.ts.map +1 -0
- package/dist/commands/listen.js +109 -0
- package/dist/commands/listen.js.map +1 -0
- package/dist/commands/mcp-tools.d.ts.map +1 -1
- package/dist/commands/mcp-tools.js +15 -15
- package/dist/commands/mcp-tools.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +138 -56
- package/dist/commands/setup.js.map +1 -1
- package/dist/index.js +130 -92
- package/dist/index.js.map +1 -1
- package/dist/lib/api/client.d.ts +4 -0
- package/dist/lib/api/client.d.ts.map +1 -1
- package/dist/lib/api/client.js +6 -0
- package/dist/lib/api/client.js.map +1 -1
- package/dist/lib/api/projects.d.ts +32 -0
- package/dist/lib/api/projects.d.ts.map +1 -0
- package/dist/lib/api/projects.js +61 -0
- package/dist/lib/api/projects.js.map +1 -0
- package/dist/lib/api/sessions.d.ts +85 -0
- package/dist/lib/api/sessions.d.ts.map +1 -0
- package/dist/lib/api/sessions.js +137 -0
- package/dist/lib/api/sessions.js.map +1 -0
- package/dist/lib/api/tasks.d.ts +44 -0
- package/dist/lib/api/tasks.d.ts.map +1 -1
- package/dist/lib/api/tasks.js +82 -1
- package/dist/lib/api/tasks.js.map +1 -1
- package/dist/lib/api/websocket.d.ts +4 -2
- package/dist/lib/api/websocket.d.ts.map +1 -1
- package/dist/lib/api/websocket.js +54 -5
- package/dist/lib/api/websocket.js.map +1 -1
- package/dist/lib/auth/token-manager.d.ts.map +1 -1
- package/dist/lib/auth/token-manager.js +17 -6
- package/dist/lib/auth/token-manager.js.map +1 -1
- package/dist/lib/utils/logger.d.ts +3 -0
- package/dist/lib/utils/logger.d.ts.map +1 -1
- package/dist/lib/utils/logger.js +12 -4
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/mcp/index.js +136 -8
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools/chat.d.ts +81 -1
- package/dist/mcp/tools/chat.d.ts.map +1 -1
- package/dist/mcp/tools/chat.js +624 -21
- package/dist/mcp/tools/chat.js.map +1 -1
- package/dist/mcp/tools/instant.d.ts +20 -5
- package/dist/mcp/tools/instant.d.ts.map +1 -1
- package/dist/mcp/tools/instant.js +322 -27
- package/dist/mcp/tools/instant.js.map +1 -1
- package/dist/mcp/tools/listen.d.ts +35 -0
- package/dist/mcp/tools/listen.d.ts.map +1 -0
- package/dist/mcp/tools/listen.js +97 -0
- package/dist/mcp/tools/listen.js.map +1 -0
- package/dist/mcp/tools/task-checker.d.ts +60 -0
- package/dist/mcp/tools/task-checker.d.ts.map +1 -0
- package/dist/mcp/tools/task-checker.js +139 -0
- package/dist/mcp/tools/task-checker.js.map +1 -0
- package/dist/mcp/tools/tunnel.d.ts +38 -0
- package/dist/mcp/tools/tunnel.d.ts.map +1 -0
- package/dist/mcp/tools/tunnel.js +109 -0
- package/dist/mcp/tools/tunnel.js.map +1 -0
- package/dist/modules/commandHandler.d.ts.map +1 -1
- package/dist/modules/commandHandler.js +0 -17
- package/dist/modules/commandHandler.js.map +1 -1
- package/dist/modules/permissions.d.ts +1 -0
- package/dist/modules/permissions.d.ts.map +1 -1
- package/dist/modules/permissions.js +2 -0
- package/dist/modules/permissions.js.map +1 -1
- package/dist/modules/tunnel.d.ts +5 -0
- package/dist/modules/tunnel.d.ts.map +1 -1
- package/dist/modules/tunnel.js +55 -0
- package/dist/modules/tunnel.js.map +1 -1
- package/dist/modules/websocket.d.ts.map +1 -1
- package/dist/modules/websocket.js +3 -2
- package/dist/modules/websocket.js.map +1 -1
- package/dist/types/index.d.ts +7 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/ui/LiveSession.js +2 -2
- package/dist/ui/LiveSession.js.map +1 -1
- package/dist/ui/SessionUI.d.ts +1 -1
- package/dist/ui/SessionUI.d.ts.map +1 -1
- package/dist/ui/SessionUI.js +4 -10
- package/dist/ui/SessionUI.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +8 -7
- package/dist/utils/errors.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,102 +1,158 @@
|
|
|
1
1
|
# CodeVF CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**⚠️ BETA:** Connect Claude Code to live human engineers for complex debugging.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install -g codevf
|
|
8
|
+
npm install -g codevf
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
|
+
The CodeVF CLI is currently in **setup-only mode** for connecting Claude Code to CodeVF's MCP server:
|
|
14
|
+
|
|
13
15
|
```bash
|
|
14
|
-
#
|
|
15
|
-
codevf
|
|
16
|
+
# Setup MCP server integration with Claude Code
|
|
17
|
+
codevf setup
|
|
16
18
|
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
+
# After setup, use Claude Code with /cvf commands:
|
|
20
|
+
# /cvf Does this authentication fix prevent timing attacks?
|
|
21
|
+
# /cvf Complex race condition in WebSocket reconnection needs debugging
|
|
22
|
+
# /cvf Create tunnel to my dev server on port 3000
|
|
23
|
+
```
|
|
19
24
|
|
|
20
|
-
|
|
21
|
-
codevf
|
|
25
|
+
**Three tools available in Claude Code:**
|
|
26
|
+
- `codevf-instant` - Quick validation queries (4-minute max)
|
|
27
|
+
- `codevf-chat` - Extended debugging sessions (up to 2 hours)
|
|
28
|
+
- `codevf-tunnel` - Share local dev servers securely
|
|
22
29
|
|
|
23
|
-
|
|
24
|
-
codevf fix "Users can't login after OAuth update"
|
|
30
|
+
## Commands
|
|
25
31
|
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
### `codevf setup` (Beta - Primary Command)
|
|
33
|
+
Configure MCP server integration with Claude Code:
|
|
34
|
+
- Authenticate with CodeVF using OAuth
|
|
35
|
+
- Auto-configure Claude Code's `~/.claude.json` file
|
|
36
|
+
- Create `/cvf` slash command for Claude Code
|
|
37
|
+
- Select default project for context
|
|
28
38
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# /tunnel 3000
|
|
32
|
-
```
|
|
39
|
+
### Claude Code Integration (After Setup)
|
|
40
|
+
Once configured, use these tools directly in Claude Code:
|
|
33
41
|
|
|
34
|
-
|
|
42
|
+
**`/cvf [message]` - Smart routing to appropriate tool**
|
|
43
|
+
- Quick questions → `codevf-instant` (4min max, good for validation)
|
|
44
|
+
- Complex debugging → `codevf-chat` (extended sessions up to 2 hours)
|
|
45
|
+
- Local server access → `codevf-tunnel` (share dev servers securely)
|
|
46
|
+
|
|
47
|
+
**Example usage:**
|
|
48
|
+
```
|
|
49
|
+
/cvf Does this authentication fix prevent timing attacks?
|
|
50
|
+
/cvf Complex race condition in WebSocket reconnection needs debugging
|
|
51
|
+
/cvf Create tunnel to my dev server on port 3000
|
|
52
|
+
```
|
|
35
53
|
|
|
36
|
-
###
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
### `codevf init`
|
|
43
|
-
Initialize CodeVF in your project. Sets up:
|
|
44
|
-
- Project configuration
|
|
45
|
-
- Test and build commands
|
|
46
|
-
- AI tool preferences
|
|
47
|
-
- Optional code upload for faster debugging
|
|
48
|
-
|
|
49
|
-
### `codevf` or `codevf fix "<issue description>"`
|
|
50
|
-
Start a live debugging session with a vetted engineer:
|
|
51
|
-
- Just type `codevf` and you'll be prompted to describe your issue
|
|
52
|
-
- Or use `codevf fix "issue"` to provide it directly
|
|
53
|
-
- Real-time chat in your terminal
|
|
54
|
-
- Engineer can request to run commands (with your approval)
|
|
55
|
-
- Engineer can request to view files (with your approval)
|
|
56
|
-
- Securely share a local port over the internet with `/tunnel <port>` when asked
|
|
57
|
-
- Track credit usage in real-time
|
|
58
|
-
- Rate the engineer when done
|
|
59
|
-
|
|
60
|
-
### `codevf sync`
|
|
61
|
-
Sync your local changes to the `codevf` branch for engineer access.
|
|
54
|
+
### Other Commands (Disabled in Beta)
|
|
55
|
+
The following commands exist but are **disabled** in beta mode:
|
|
56
|
+
- `codevf login` - Direct CLI authentication (use `setup` instead)
|
|
57
|
+
- `codevf init` - Project initialization (handled via MCP tools)
|
|
58
|
+
- `codevf fix` - Direct CLI debugging sessions (use Claude Code instead)
|
|
59
|
+
- `codevf sync` - Repository sync (handled via MCP tools)
|
|
62
60
|
|
|
63
61
|
## How It Works
|
|
64
62
|
|
|
65
|
-
1. **
|
|
66
|
-
2. **
|
|
67
|
-
3. **
|
|
68
|
-
4. **
|
|
69
|
-
5. **
|
|
63
|
+
1. **Setup once** - Run `codevf setup` to configure Claude Code integration
|
|
64
|
+
2. **Work in Claude Code** - Use `/cvf` commands to access human engineers
|
|
65
|
+
3. **Get matched with experts** - Ex-FAANG engineers with expertise in your stack
|
|
66
|
+
4. **Context-aware handoff** - Engineers see your Claude conversation for faster resolution
|
|
67
|
+
5. **Hybrid approach** - AI handles quick questions, humans tackle complex debugging
|
|
68
|
+
6. **Pay per minute** - Only pay for active engineering time
|
|
70
69
|
|
|
71
70
|
## Security & Privacy
|
|
72
71
|
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
- All actions are logged and auditable
|
|
77
|
-
-
|
|
78
|
-
-
|
|
72
|
+
- **MCP integration** - No direct code access, works through Claude Code's security model
|
|
73
|
+
- **Context sharing** - Engineers see your Claude conversation for better assistance
|
|
74
|
+
- **Explicit permission** - Engineers request specific actions with your approval
|
|
75
|
+
- **Audit trail** - All engineer actions are logged and auditable
|
|
76
|
+
- **Secure tunnels** - Local dev servers shared via encrypted tunnels only when requested
|
|
77
|
+
- **Session-based** - No persistent code storage, only active session context
|
|
79
78
|
|
|
80
79
|
## Configuration
|
|
81
80
|
|
|
82
|
-
After running `codevf
|
|
81
|
+
After running `codevf setup`, configuration is stored in:
|
|
83
82
|
|
|
83
|
+
**MCP Configuration** (`~/.config/codevf/mcp-config.json`):
|
|
84
84
|
```json
|
|
85
85
|
{
|
|
86
|
-
"
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
"
|
|
86
|
+
"auth": {
|
|
87
|
+
"accessToken": "jwt-token",
|
|
88
|
+
"refreshToken": "jwt-token",
|
|
89
|
+
"userId": "user-uuid"
|
|
90
|
+
},
|
|
91
|
+
"defaultProjectId": "project-uuid",
|
|
92
|
+
"baseUrl": "https://app.codevf.com"
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Claude Code Configuration** (auto-configured in `~/.claude.json`):
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"mcpServers": {
|
|
100
|
+
"codevf": {
|
|
101
|
+
"command": "node",
|
|
102
|
+
"args": ["/path/to/codevf/dist/mcp/index.js"]
|
|
103
|
+
}
|
|
104
|
+
}
|
|
92
105
|
}
|
|
93
106
|
```
|
|
94
107
|
|
|
95
108
|
## Requirements
|
|
96
109
|
|
|
97
110
|
- Node.js 18 or higher
|
|
98
|
-
-
|
|
111
|
+
- [Claude Code (Desktop App)](https://claude.ai/download) - Required for MCP integration
|
|
99
112
|
- Internet connection
|
|
113
|
+
- CodeVF account (created during setup)
|
|
114
|
+
|
|
115
|
+
### Installing Claude Code
|
|
116
|
+
|
|
117
|
+
If you don't have Claude Code installed:
|
|
118
|
+
|
|
119
|
+
**macOS:**
|
|
120
|
+
```bash
|
|
121
|
+
# Download from website
|
|
122
|
+
open https://claude.ai/download
|
|
123
|
+
|
|
124
|
+
# Or using Homebrew
|
|
125
|
+
brew install --cask claude
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Windows:**
|
|
129
|
+
```bash
|
|
130
|
+
# Download installer from website
|
|
131
|
+
start https://claude.ai/download
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Linux:**
|
|
135
|
+
```bash
|
|
136
|
+
# Download AppImage from website
|
|
137
|
+
curl -L https://claude.ai/download -o claude.appimage
|
|
138
|
+
chmod +x claude.appimage
|
|
139
|
+
./claude.appimage
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Note:** Claude Code requires an Anthropic account. Create one at [claude.ai](https://claude.ai) if needed.
|
|
143
|
+
|
|
144
|
+
## Beta Status & Roadmap
|
|
145
|
+
|
|
146
|
+
**Current Beta Features:**
|
|
147
|
+
- ✅ MCP server integration with Claude Code
|
|
148
|
+
- ✅ Three tools: instant, chat, tunnel
|
|
149
|
+
- ✅ OAuth authentication and project selection
|
|
150
|
+
|
|
151
|
+
**Coming Soon:**
|
|
152
|
+
- 🔄 Direct CLI debugging sessions (`codevf fix`)
|
|
153
|
+
- 🔄 Project initialization (`codevf init`)
|
|
154
|
+
- 🔄 Repository sync (`codevf sync`)
|
|
155
|
+
- 🔄 Standalone terminal UI
|
|
100
156
|
|
|
101
157
|
## Support
|
|
102
158
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAQA,wBAAsB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDhE"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { AuthManager } from '../modules/auth.js';
|
|
4
|
+
import { ApiClient } from '../modules/api.js';
|
|
5
|
+
import { WebSocketClient } from '../lib/api/websocket.js';
|
|
6
|
+
import { handleError } from '../utils/errors.js';
|
|
7
|
+
import * as readline from 'readline';
|
|
8
|
+
export async function chatCommand(taskId) {
|
|
9
|
+
const authManager = new AuthManager();
|
|
10
|
+
if (!authManager.isAuthenticated()) {
|
|
11
|
+
console.log(chalk.red('❌ Not authenticated. Please run: codevf login'));
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
const apiClient = new ApiClient(authManager);
|
|
15
|
+
let selectedTaskId = taskId;
|
|
16
|
+
try {
|
|
17
|
+
// If no taskId provided, show available tasks
|
|
18
|
+
if (!selectedTaskId) {
|
|
19
|
+
const spinner = ora('Fetching active tasks...').start();
|
|
20
|
+
try {
|
|
21
|
+
// Get available projects and tasks
|
|
22
|
+
const projects = await apiClient.getProjects();
|
|
23
|
+
spinner.stop();
|
|
24
|
+
if (!projects.projects || projects.projects.length === 0) {
|
|
25
|
+
console.log(chalk.yellow('⚠️ No active projects found.'));
|
|
26
|
+
console.log(chalk.dim('Create a new project first using: codevf init'));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Display available projects
|
|
30
|
+
console.log(chalk.bold.cyan('\n📋 Available Projects:\n'));
|
|
31
|
+
projects.projects.slice(0, 5).forEach((project, index) => {
|
|
32
|
+
console.log(chalk.white(`${index + 1}. ${project.name}`));
|
|
33
|
+
console.log(chalk.dim(` ID: ${project.id}\n`));
|
|
34
|
+
});
|
|
35
|
+
// For now, use the first project's ID
|
|
36
|
+
selectedTaskId = projects.projects[0].id;
|
|
37
|
+
console.log(chalk.dim(`Using project: ${chalk.bold(projects.projects[0].name)}\n`));
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
spinner?.stop();
|
|
41
|
+
handleError(error);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Connect to WebSocket session
|
|
46
|
+
if (selectedTaskId) {
|
|
47
|
+
await connectToSession(selectedTaskId, apiClient, authManager);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
handleError(error);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function connectToSession(taskId, apiClient, authManager) {
|
|
55
|
+
const spinner = ora(`Connecting to session ${taskId}...`).start();
|
|
56
|
+
try {
|
|
57
|
+
const token = authManager.getAccessToken();
|
|
58
|
+
const wsUrl = apiClient.getWebSocketUrl(taskId, token);
|
|
59
|
+
const wsClient = new WebSocketClient(wsUrl);
|
|
60
|
+
// Setup readline for user input
|
|
61
|
+
const rl = readline.createInterface({
|
|
62
|
+
input: process.stdin,
|
|
63
|
+
output: process.stdout,
|
|
64
|
+
});
|
|
65
|
+
let isConnected = false;
|
|
66
|
+
// Setup WebSocket handlers
|
|
67
|
+
wsClient.on('connected', () => {
|
|
68
|
+
isConnected = true;
|
|
69
|
+
spinner.stop();
|
|
70
|
+
console.log(chalk.green(`✓ Connected to task ${taskId}\n`));
|
|
71
|
+
console.log(chalk.dim('Type your messages below. Press Ctrl+C to exit.\n'));
|
|
72
|
+
rl.setPrompt(chalk.green('You: '));
|
|
73
|
+
rl.prompt();
|
|
74
|
+
});
|
|
75
|
+
wsClient.on('engineer_message', (message) => {
|
|
76
|
+
const senderLabel = chalk.magenta('Engineer');
|
|
77
|
+
console.log(`\n${senderLabel}: ${message.text || message}\n`);
|
|
78
|
+
if (isConnected) {
|
|
79
|
+
rl.prompt();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
wsClient.on('billing_update', (update) => {
|
|
83
|
+
console.log(chalk.dim(`\n💳 ${update.creditsUsed} credits used (${update.duration} min)\n`));
|
|
84
|
+
if (isConnected) {
|
|
85
|
+
rl.prompt();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
wsClient.on('closure_request', () => {
|
|
89
|
+
console.log(chalk.yellow('\n⚠️ Session is ending...\n'));
|
|
90
|
+
});
|
|
91
|
+
wsClient.on('engineer_disconnected', () => {
|
|
92
|
+
console.log(chalk.yellow('\n⚠️ Engineer disconnected.\n'));
|
|
93
|
+
});
|
|
94
|
+
wsClient.on('error', (error) => {
|
|
95
|
+
console.error(chalk.red(`\nError: ${error.message || error}\n`));
|
|
96
|
+
});
|
|
97
|
+
// Connect
|
|
98
|
+
await wsClient.connect();
|
|
99
|
+
// Setup readline for input
|
|
100
|
+
rl.on('line', async (input) => {
|
|
101
|
+
if (input.trim()) {
|
|
102
|
+
try {
|
|
103
|
+
wsClient.send({
|
|
104
|
+
type: 'customer_message',
|
|
105
|
+
payload: {
|
|
106
|
+
content: input,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
console.error(chalk.red(`Failed to send message: ${error}`));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
rl.prompt();
|
|
115
|
+
});
|
|
116
|
+
rl.on('close', () => {
|
|
117
|
+
wsClient.disconnect();
|
|
118
|
+
console.log(chalk.dim('\nSession closed.'));
|
|
119
|
+
process.exit(0);
|
|
120
|
+
});
|
|
121
|
+
process.on('SIGINT', () => {
|
|
122
|
+
rl.close();
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
spinner?.stop();
|
|
127
|
+
handleError(error);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const chatCommandContent = "---\ndescription: Start an extended CodeVF engineer chat session with full context\n---\n\n# CodeVF Engineer Chat\n\nPlease start an extended debugging session with a CodeVF engineer using the `codevf-chat` MCP tool.\n\n**Current context (include relevant logs, errors, and recent changes):**\n{{PROMPT}}\n\n---\n\n**Instructions for Claude:**\n\n1. Ask a short clarifying question if needed: \"What's the issue?\"\n2. Call `codevf-chat` with:\n - `message`: include the user's issue and any gathered context\n - `maxCredits`: suggest 240 (or adjust if user specifies)\n3. Return the engineer response or session link directly.\n";
|
|
2
|
+
//# sourceMappingURL=cvf-chat-command-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cvf-chat-command-content.d.ts","sourceRoot":"","sources":["../../src/commands/cvf-chat-command-content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,8nBAoB9B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const chatCommandContent = `---
|
|
2
|
+
description: Start an extended CodeVF engineer chat session with full context
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CodeVF Engineer Chat
|
|
6
|
+
|
|
7
|
+
Please start an extended debugging session with a CodeVF engineer using the \`codevf-chat\` MCP tool.
|
|
8
|
+
|
|
9
|
+
**Current context (include relevant logs, errors, and recent changes):**
|
|
10
|
+
{{PROMPT}}
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
**Instructions for Claude:**
|
|
15
|
+
|
|
16
|
+
1. Ask a short clarifying question if needed: "What's the issue?"
|
|
17
|
+
2. Call \`codevf-chat\` with:
|
|
18
|
+
- \`message\`: include the user's issue and any gathered context
|
|
19
|
+
- \`maxCredits\`: suggest 240 (or adjust if user specifies)
|
|
20
|
+
3. Return the engineer response or session link directly.
|
|
21
|
+
`;
|
|
22
|
+
//# sourceMappingURL=cvf-chat-command-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cvf-chat-command-content.js","sourceRoot":"","sources":["../../src/commands/cvf-chat-command-content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;CAoBjC,CAAC"}
|
|
@@ -0,0 +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**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
|
+
//# sourceMappingURL=cvf-command-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cvf-command-content.d.ts","sourceRoot":"","sources":["../../src/commands/cvf-command-content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,2uJA2G1B,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export const commandContent = `---
|
|
2
|
+
description: Ask a CodeVF engineer for help with code validation, debugging, or technical questions
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CodeVF Engineer Assistance
|
|
6
|
+
|
|
7
|
+
Please help me with the following question or task by consulting a CodeVF engineer using the appropriate MCP tool:
|
|
8
|
+
|
|
9
|
+
**My request:**
|
|
10
|
+
{{PROMPT}}
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
**Instructions for Claude:**
|
|
15
|
+
|
|
16
|
+
1. **Analyze the request** to determine which CodeVF tool is most appropriate:
|
|
17
|
+
- Use \`codevf-instant\` for:
|
|
18
|
+
- Quick validation questions (1-10 credits, ~2 min response)
|
|
19
|
+
- "Does this fix work?"
|
|
20
|
+
- "Is this approach correct?"
|
|
21
|
+
- "Can you identify the error?"
|
|
22
|
+
- UI/visual verification and feedback
|
|
23
|
+
- Simple technical questions
|
|
24
|
+
|
|
25
|
+
- Use \`codevf-chat\` for:
|
|
26
|
+
- Complex debugging requiring back-and-forth (4-1920 credits, 2 credits/min)
|
|
27
|
+
- Multi-step troubleshooting
|
|
28
|
+
- Architecture discussions
|
|
29
|
+
- Extended collaboration
|
|
30
|
+
|
|
31
|
+
- Use \`codevf-tunnel\` for:
|
|
32
|
+
- Creating secure tunnels to expose local dev servers
|
|
33
|
+
- Testing webhooks, OAuth callbacks, or external integrations
|
|
34
|
+
- Sharing local development environment with engineers
|
|
35
|
+
- No credits required - tunnel remains active for session
|
|
36
|
+
|
|
37
|
+
2. **For UI/Visual Development Tasks** (Pain-Free Experience):
|
|
38
|
+
|
|
39
|
+
When implementing UI changes or visual features, follow this iterative flow:
|
|
40
|
+
|
|
41
|
+
**Step 1 - Initial Implementation:**
|
|
42
|
+
- Make the requested changes to code/styles
|
|
43
|
+
- Create tunnel if needed: \`codevf-tunnel\` with dev server port
|
|
44
|
+
- Share tunnel URL for visual verification
|
|
45
|
+
|
|
46
|
+
**Step 2 - Engineer Verification:**
|
|
47
|
+
- Use \`codevf-instant\` with message like:
|
|
48
|
+
"Please verify this UI change via [tunnel-url] (password: [password]). Does it match the requested design/functionality?"
|
|
49
|
+
- **Always include both URL and password** - localtunnel requires password to bypass landing page
|
|
50
|
+
- Include specific areas of focus (layout, spacing, colors, interactions)
|
|
51
|
+
- Allow 5-8 credits for visual review and feedback
|
|
52
|
+
|
|
53
|
+
**Step 3 - Iterative Refinement:**
|
|
54
|
+
- Apply engineer feedback immediately
|
|
55
|
+
- Use \`codevf-instant\` again for re-verification:
|
|
56
|
+
"Applied your feedback (reduced padding to 16px). Please check if this looks better now at [tunnel-url] (same password)."
|
|
57
|
+
- Continue this cycle until engineer confirms it looks right
|
|
58
|
+
- Each feedback cycle: 3-5 credits
|
|
59
|
+
|
|
60
|
+
**Example UI Flow:**
|
|
61
|
+
\`\`\`
|
|
62
|
+
User: "Make the UI look like a modern card layout"
|
|
63
|
+
|
|
64
|
+
Claude:
|
|
65
|
+
1. Implements card styling
|
|
66
|
+
2. Creates tunnel → https://abc123.loca.lt (password: xyz789)
|
|
67
|
+
3. codevf-instant: "Please review the card layout at https://abc123.loca.lt
|
|
68
|
+
(password: xyz789). Does it look modern and clean? Any spacing/styling issues?" (5 credits)
|
|
69
|
+
|
|
70
|
+
Engineer: "Cards look good but margins are too large, reduce to 16px"
|
|
71
|
+
|
|
72
|
+
Claude:
|
|
73
|
+
4. Updates margins to 16px
|
|
74
|
+
5. codevf-instant: "Applied 16px margins. Please verify the spacing
|
|
75
|
+
looks better now at https://abc123.loca.lt (password: xyz789)." (3 credits)
|
|
76
|
+
|
|
77
|
+
Engineer: "Perfect! The spacing looks much cleaner now."
|
|
78
|
+
\`\`\`
|
|
79
|
+
|
|
80
|
+
3. **Use the appropriate tool:**
|
|
81
|
+
- For instant queries: Call \`codevf-instant\` with the message and appropriate maxCredits (1-10)
|
|
82
|
+
- For extended sessions: Call \`codevf-chat\` with the message and appropriate maxCredits (suggest 240 for ~2 hours)
|
|
83
|
+
- For tunnel access: Call \`codevf-tunnel\` with the port number (e.g., { "port": 3000 })
|
|
84
|
+
|
|
85
|
+
4. **Present the response:**
|
|
86
|
+
- For instant queries: Share the engineer's response directly
|
|
87
|
+
- For chat sessions: Provide the session URL so the user can monitor the conversation
|
|
88
|
+
- For tunnels: Share the public URL that was created
|
|
89
|
+
|
|
90
|
+
**Credit Guidelines:**
|
|
91
|
+
- Instant validation: 1-10 credits (typically 3-5 credits per question)
|
|
92
|
+
- UI verification: 5-8 credits for initial review, 3-5 credits for follow-up checks
|
|
93
|
+
- Extended chat: 2 credits per minute (240 credits = 2 hours)
|
|
94
|
+
- Tunnel creation: Free (no credits required)
|
|
95
|
+
|
|
96
|
+
**Planning Integration for Complex Tasks:**
|
|
97
|
+
When Claude is planning multi-step implementations, especially UI-heavy tasks:
|
|
98
|
+
- Always include "Engineer verification checkpoints" in the plan
|
|
99
|
+
- Budget credits for iterative feedback (typically 15-25 credits total for UI refinement)
|
|
100
|
+
- Create tunnel early in the process for continuous visual validation
|
|
101
|
+
- Plan for 2-4 feedback cycles to achieve the desired result
|
|
102
|
+
|
|
103
|
+
**Example Usage:**
|
|
104
|
+
- \`/cvf Does this authentication fix prevent the timing attack?\` → Use codevf-instant
|
|
105
|
+
- \`/cvf Complex race condition in WebSocket reconnection needs debugging\` → Use codevf-chat
|
|
106
|
+
- \`/cvf Create tunnel to my dev server on port 3000\` → Use codevf-tunnel
|
|
107
|
+
- \`/cvf Make the login form look more modern and user-friendly\` → Use tunnel + iterative codevf-instant feedback
|
|
108
|
+
`;
|
|
109
|
+
//# sourceMappingURL=cvf-command-content.js.map
|
|
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2G7B,CAAC"}
|
package/dist/commands/fix.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/commands/fix.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAqB,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAuI/E,wBAAsB,UAAU,CAC9B,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/commands/fix.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAqB,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAuI/E,wBAAsB,UAAU,CAC9B,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACtE,OAAO,CAAC,IAAI,CAAC,CAmNf"}
|
package/dist/commands/fix.js
CHANGED
|
@@ -210,6 +210,42 @@ export async function fixCommand(issueDescription, options) {
|
|
|
210
210
|
console.clear();
|
|
211
211
|
const permissionManager = new PermissionManager();
|
|
212
212
|
const tunnelManager = new TunnelManager();
|
|
213
|
+
// Auto-create tunnel if specified
|
|
214
|
+
if (options?.tunnel) {
|
|
215
|
+
const tunnelPort = options.tunnel;
|
|
216
|
+
console.log(chalk.dim(`\n🔗 Creating tunnel for port ${tunnelPort}...`));
|
|
217
|
+
try {
|
|
218
|
+
const tunnel = await tunnelManager.createTunnel({
|
|
219
|
+
port: tunnelPort,
|
|
220
|
+
taskId,
|
|
221
|
+
onError: (err) => console.error(chalk.red('Tunnel error:'), err),
|
|
222
|
+
onClose: () => console.log(chalk.dim('Tunnel closed')),
|
|
223
|
+
});
|
|
224
|
+
console.log(chalk.green(`✓ Tunnel created: ${chalk.cyan(tunnel.url)}`));
|
|
225
|
+
if (tunnel.password) {
|
|
226
|
+
console.log(chalk.yellow(` 🔑 Password: ${tunnel.password}`));
|
|
227
|
+
}
|
|
228
|
+
console.log(chalk.dim(` Engineer will have access to localhost:${tunnelPort}\n`));
|
|
229
|
+
// Notify engineer via WebSocket
|
|
230
|
+
wsClient.send({
|
|
231
|
+
type: 'tunnel_shared',
|
|
232
|
+
timestamp: new Date().toISOString(),
|
|
233
|
+
payload: { port: tunnel.port, url: tunnel.url, password: tunnel.password },
|
|
234
|
+
});
|
|
235
|
+
// Send message to chat
|
|
236
|
+
try {
|
|
237
|
+
const passwordInfo = tunnel.password ? ` (password: ${tunnel.password})` : '';
|
|
238
|
+
await apiClient.sendMessage(taskId, `🔗 Tunnel created: ${tunnel.url} (port ${tunnel.port})${passwordInfo}`);
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
// Best effort - continue even if message fails
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
console.log(chalk.yellow(`⚠ Failed to create tunnel: ${error.message}`));
|
|
246
|
+
console.log(chalk.dim('Continuing without tunnel...\n'));
|
|
247
|
+
}
|
|
248
|
+
}
|
|
213
249
|
const { unmount, waitUntilExit } = render(React.createElement(LiveSession, { taskId: taskId, wsClient: wsClient, apiClient: apiClient, permissionManager: permissionManager, tunnelManager: tunnelManager }));
|
|
214
250
|
let exiting = false;
|
|
215
251
|
// Function to handle rating after session ends
|
package/dist/commands/fix.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/commands/fix.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/commands/fix.tsx"],"names":[],"mappings":"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"}
|