codevf 1.0.2 → 1.0.4

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.
Files changed (98) hide show
  1. package/README.md +118 -62
  2. package/dist/commands/chat.d.ts +2 -0
  3. package/dist/commands/chat.d.ts.map +1 -0
  4. package/dist/commands/chat.js +130 -0
  5. package/dist/commands/chat.js.map +1 -0
  6. package/dist/commands/cvf-chat-command-content.d.ts +2 -0
  7. package/dist/commands/cvf-chat-command-content.d.ts.map +1 -0
  8. package/dist/commands/cvf-chat-command-content.js +22 -0
  9. package/dist/commands/cvf-chat-command-content.js.map +1 -0
  10. package/dist/commands/cvf-command-content.d.ts +2 -0
  11. package/dist/commands/cvf-command-content.d.ts.map +1 -0
  12. package/dist/commands/cvf-command-content.js +109 -0
  13. package/dist/commands/cvf-command-content.js.map +1 -0
  14. package/dist/commands/fix.d.ts +1 -0
  15. package/dist/commands/fix.d.ts.map +1 -1
  16. package/dist/commands/fix.js +36 -0
  17. package/dist/commands/fix.js.map +1 -1
  18. package/dist/commands/listen.d.ts +2 -0
  19. package/dist/commands/listen.d.ts.map +1 -0
  20. package/dist/commands/listen.js +109 -0
  21. package/dist/commands/listen.js.map +1 -0
  22. package/dist/commands/mcp-tools.d.ts.map +1 -1
  23. package/dist/commands/mcp-tools.js +15 -15
  24. package/dist/commands/mcp-tools.js.map +1 -1
  25. package/dist/commands/setup.d.ts.map +1 -1
  26. package/dist/commands/setup.js +138 -56
  27. package/dist/commands/setup.js.map +1 -1
  28. package/dist/index.js +37 -3
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/api/client.d.ts +4 -0
  31. package/dist/lib/api/client.d.ts.map +1 -1
  32. package/dist/lib/api/client.js +6 -0
  33. package/dist/lib/api/client.js.map +1 -1
  34. package/dist/lib/api/sessions.d.ts +85 -0
  35. package/dist/lib/api/sessions.d.ts.map +1 -0
  36. package/dist/lib/api/sessions.js +137 -0
  37. package/dist/lib/api/sessions.js.map +1 -0
  38. package/dist/lib/api/tasks.d.ts +44 -0
  39. package/dist/lib/api/tasks.d.ts.map +1 -1
  40. package/dist/lib/api/tasks.js +82 -1
  41. package/dist/lib/api/tasks.js.map +1 -1
  42. package/dist/lib/api/websocket.d.ts +4 -2
  43. package/dist/lib/api/websocket.d.ts.map +1 -1
  44. package/dist/lib/api/websocket.js +54 -5
  45. package/dist/lib/api/websocket.js.map +1 -1
  46. package/dist/lib/auth/token-manager.d.ts.map +1 -1
  47. package/dist/lib/auth/token-manager.js +17 -6
  48. package/dist/lib/auth/token-manager.js.map +1 -1
  49. package/dist/lib/utils/logger.d.ts +3 -0
  50. package/dist/lib/utils/logger.d.ts.map +1 -1
  51. package/dist/lib/utils/logger.js +12 -4
  52. package/dist/lib/utils/logger.js.map +1 -1
  53. package/dist/mcp/index.js +134 -8
  54. package/dist/mcp/index.js.map +1 -1
  55. package/dist/mcp/tools/chat.d.ts +81 -1
  56. package/dist/mcp/tools/chat.d.ts.map +1 -1
  57. package/dist/mcp/tools/chat.js +624 -21
  58. package/dist/mcp/tools/chat.js.map +1 -1
  59. package/dist/mcp/tools/instant.d.ts +18 -5
  60. package/dist/mcp/tools/instant.d.ts.map +1 -1
  61. package/dist/mcp/tools/instant.js +320 -31
  62. package/dist/mcp/tools/instant.js.map +1 -1
  63. package/dist/mcp/tools/listen.d.ts +35 -0
  64. package/dist/mcp/tools/listen.d.ts.map +1 -0
  65. package/dist/mcp/tools/listen.js +97 -0
  66. package/dist/mcp/tools/listen.js.map +1 -0
  67. package/dist/mcp/tools/task-checker.d.ts +60 -0
  68. package/dist/mcp/tools/task-checker.d.ts.map +1 -0
  69. package/dist/mcp/tools/task-checker.js +139 -0
  70. package/dist/mcp/tools/task-checker.js.map +1 -0
  71. package/dist/mcp/tools/tunnel.d.ts +38 -0
  72. package/dist/mcp/tools/tunnel.d.ts.map +1 -0
  73. package/dist/mcp/tools/tunnel.js +109 -0
  74. package/dist/mcp/tools/tunnel.js.map +1 -0
  75. package/dist/modules/permissions.d.ts +1 -0
  76. package/dist/modules/permissions.d.ts.map +1 -1
  77. package/dist/modules/permissions.js +2 -0
  78. package/dist/modules/permissions.js.map +1 -1
  79. package/dist/modules/tunnel.d.ts +5 -0
  80. package/dist/modules/tunnel.d.ts.map +1 -1
  81. package/dist/modules/tunnel.js +55 -0
  82. package/dist/modules/tunnel.js.map +1 -1
  83. package/dist/modules/websocket.d.ts.map +1 -1
  84. package/dist/modules/websocket.js +3 -2
  85. package/dist/modules/websocket.js.map +1 -1
  86. package/dist/types/index.d.ts +7 -3
  87. package/dist/types/index.d.ts.map +1 -1
  88. package/dist/types/index.js.map +1 -1
  89. package/dist/ui/LiveSession.js +2 -2
  90. package/dist/ui/LiveSession.js.map +1 -1
  91. package/dist/ui/SessionUI.d.ts +1 -1
  92. package/dist/ui/SessionUI.d.ts.map +1 -1
  93. package/dist/ui/SessionUI.js +4 -1
  94. package/dist/ui/SessionUI.js.map +1 -1
  95. package/dist/utils/errors.d.ts.map +1 -1
  96. package/dist/utils/errors.js +8 -7
  97. package/dist/utils/errors.js.map +1 -1
  98. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listen.d.ts","sourceRoot":"","sources":["../../src/commands/listen.ts"],"names":[],"mappings":"AAeA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA0InD"}
@@ -0,0 +1,109 @@
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
+ export async function listenCommand() {
8
+ const authManager = new AuthManager();
9
+ if (!authManager.isAuthenticated()) {
10
+ console.log(chalk.red('❌ Not authenticated. Please run: codevf login'));
11
+ process.exit(1);
12
+ }
13
+ const apiClient = new ApiClient(authManager);
14
+ try {
15
+ const spinner = ora('Initializing session monitor...').start();
16
+ // Fetch available projects as potential sessions
17
+ const projects = await apiClient.getProjects();
18
+ spinner.stop();
19
+ if (!projects.projects || projects.projects.length === 0) {
20
+ console.log(chalk.yellow('⚠️ No active projects to monitor.'));
21
+ return;
22
+ }
23
+ // Create monitors for each project with active tasks
24
+ const monitors = new Map();
25
+ const wsClients = new Map();
26
+ console.log(chalk.bold.cyan('🎧 Session Monitor Started\n'));
27
+ console.log(chalk.dim(`Monitoring ${projects.projects.length} projects. Press Ctrl+C to exit.\n`));
28
+ const token = authManager.getAccessToken();
29
+ for (const project of projects.projects.slice(0, 5)) {
30
+ // Monitor up to 5 projects
31
+ const monitor = {
32
+ taskId: project.id,
33
+ projectName: project.name,
34
+ messageCount: 0,
35
+ lastMessageTime: new Date().toLocaleTimeString(),
36
+ isActive: true,
37
+ };
38
+ monitors.set(project.id, monitor);
39
+ // Try to connect to each project's WebSocket
40
+ try {
41
+ const wsUrl = apiClient.getWebSocketUrl(project.id, token);
42
+ const wsClient = new WebSocketClient(wsUrl);
43
+ wsClient.on('engineer_message', (message) => {
44
+ const monitor = monitors.get(project.id);
45
+ if (!monitor)
46
+ return;
47
+ monitor.messageCount++;
48
+ monitor.lastMessageTime = new Date().toLocaleTimeString();
49
+ const senderLabel = chalk.magenta('🔵 Engineer');
50
+ console.log(chalk.dim(`[${monitor.lastMessageTime}] `) +
51
+ chalk.bold(`${monitor.projectName}`) +
52
+ chalk.dim(` (${project.id})\n`) +
53
+ `${senderLabel}: ${message.text || message}\n`);
54
+ });
55
+ wsClient.on('billing_update', (update) => {
56
+ const monitor = monitors.get(project.id);
57
+ if (!monitor)
58
+ return;
59
+ console.log(chalk.dim(`[${new Date().toLocaleTimeString()}] `) +
60
+ chalk.bold(`${monitor.projectName}`) +
61
+ chalk.dim(` 💳 ${update.creditsUsed} credits (${update.duration})\n`));
62
+ });
63
+ wsClient.on('closure_request', () => {
64
+ const monitor = monitors.get(project.id);
65
+ if (!monitor)
66
+ return;
67
+ monitor.isActive = false;
68
+ console.log(chalk.yellow(`⚠️ Session ${project.id} ending.\n`));
69
+ });
70
+ wsClient.on('error', (error) => {
71
+ console.log(chalk.yellow(`[Warning] Cannot monitor ${project.name}: ${error.message || error}`));
72
+ });
73
+ // Start connection
74
+ wsClient.connect().catch(() => {
75
+ // Silent fail for inactive sessions
76
+ });
77
+ wsClients.set(project.id, wsClient);
78
+ }
79
+ catch (error) {
80
+ console.error(chalk.dim(`Skipping ${project.name}: Not an active session`));
81
+ }
82
+ }
83
+ // Print periodic status
84
+ const statusInterval = setInterval(() => {
85
+ console.log(chalk.bold.cyan('\n📊 Session Status:\n'));
86
+ monitors.forEach((monitor) => {
87
+ const status = monitor.isActive ? chalk.green('🟢 Active') : chalk.gray('⚫ Ended');
88
+ console.log(`${status} ${chalk.bold(monitor.projectName)} - ` +
89
+ `${monitor.messageCount} messages, ` +
90
+ `last: ${monitor.lastMessageTime}`);
91
+ });
92
+ console.log('');
93
+ }, 30000); // Print status every 30 seconds
94
+ // Handle graceful shutdown
95
+ process.on('SIGINT', () => {
96
+ clearInterval(statusInterval);
97
+ console.log(chalk.yellow('\n\n👋 Closing monitoring connections...\n'));
98
+ wsClients.forEach((client) => {
99
+ client.disconnect();
100
+ });
101
+ console.log(chalk.green('✓ Monitor closed.\n'));
102
+ process.exit(0);
103
+ });
104
+ }
105
+ catch (error) {
106
+ handleError(error);
107
+ }
108
+ }
109
+ //# sourceMappingURL=listen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/commands/listen.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgCH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FtE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFnE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD/D"}
1
+ {"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFtE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkFnE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD/D"}
@@ -8,13 +8,12 @@ import { ConfigManager } from '../lib/config/manager.js';
8
8
  import { TokenManager } from '../lib/auth/token-manager.js';
9
9
  import { ApiClient } from '../lib/api/client.js';
10
10
  import { TasksApi } from '../lib/api/tasks.js';
11
- import { WebSocketClient } from '../lib/api/websocket.js';
12
11
  import { logger } from '../lib/utils/logger.js';
13
12
  /**
14
13
  * Check if MCP is configured
15
14
  */
16
15
  function checkMcpConfig() {
17
- const configManager = new ConfigManager('mcp-config.json');
16
+ const configManager = new ConfigManager('config.json');
18
17
  if (!configManager.exists()) {
19
18
  console.log(chalk.yellow(' [!] MCP not configured'));
20
19
  console.log(chalk.dim(' Run: ') + chalk.white('codevf setup') + chalk.dim(' to configure'));
@@ -70,6 +69,11 @@ export async function handleCvfInstant(message) {
70
69
  const tokenManager = new TokenManager(configManager);
71
70
  const apiClient = new ApiClient(config.baseUrl, tokenManager);
72
71
  const defaultProjectId = config.defaults?.projectId || '1';
72
+ logger.info('handleCvfInstant config:', {
73
+ baseUrl: config.baseUrl,
74
+ defaults: config.defaults,
75
+ defaultProjectId,
76
+ });
73
77
  const tasksApi = new TasksApi(apiClient, config.baseUrl, defaultProjectId);
74
78
  console.log(chalk.cyan(' [→] Creating instant query...'));
75
79
  // Create task
@@ -77,23 +81,17 @@ export async function handleCvfInstant(message) {
77
81
  message: finalMessage,
78
82
  taskMode: 'realtime_answer',
79
83
  maxCredits,
84
+ projectId: defaultProjectId,
80
85
  });
81
86
  if (task.warning) {
82
87
  console.log(chalk.yellow(` [!] ${task.warning}`));
83
88
  }
84
- console.log(chalk.cyan(` [→] Connecting to engineer (Task ${task.taskId})...`));
85
- // Connect WebSocket
86
- const token = await tokenManager.getValidToken();
87
- const wsProtocol = config.baseUrl.startsWith('https://') ? 'wss://' : 'ws://';
88
- const host = config.baseUrl.replace(/^https?:\/\//, '');
89
- const wsUrl = `${wsProtocol}${host}/ws?taskId=${task.taskId}&userType=customer&token=${token}`;
90
- const ws = new WebSocketClient(wsUrl);
91
- await ws.connect();
92
- console.log(chalk.cyan(' [→] Waiting for engineer response...'));
93
- // Wait for response (5 min timeout)
94
- const response = await ws.waitForResponse(300000);
95
- // Disconnect
96
- ws.disconnect();
89
+ console.log(chalk.cyan(` [→] Waiting for engineer response (Task ${task.taskId})...`));
90
+ // Wait for response via polling (5 min timeout)
91
+ const response = await tasksApi.waitForResponse(task.taskId, {
92
+ timeoutMs: 300000,
93
+ pollIntervalMs: 3000,
94
+ });
97
95
  // Display response
98
96
  console.log();
99
97
  console.log(chalk.bold.green(' ✓ Engineer Response:'));
@@ -157,7 +155,9 @@ export async function handleCvfChat(message) {
157
155
  const task = await tasksApi.create({
158
156
  message: finalMessage,
159
157
  taskMode: 'realtime_chat',
158
+ status: 'requested',
160
159
  maxCredits,
160
+ projectId: defaultProjectId,
161
161
  });
162
162
  if (task.warning) {
163
163
  console.log(chalk.yellow(` [!] ${task.warning}`));
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../../src/commands/mcp-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../../src/commands/mcp-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0LH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA2FlD"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsJH;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA6NlD"}
@@ -9,6 +9,8 @@ import path from 'path';
9
9
  import os from 'os';
10
10
  import { ConfigManager } from '../lib/config/manager.js';
11
11
  import { OAuthFlow } from '../lib/auth/oauth-flow.js';
12
+ import { commandContent } from './cvf-command-content.js';
13
+ import { chatCommandContent } from './cvf-chat-command-content.js';
12
14
  /**
13
15
  * Get Claude Code config path based on platform
14
16
  */
@@ -31,6 +33,7 @@ function createCvfSlashCommand() {
31
33
  const homeDir = os.homedir();
32
34
  const commandsDir = path.join(homeDir, '.claude', 'commands');
33
35
  const cvfCommandPath = path.join(commandsDir, 'cvf.md');
36
+ const cvfChatCommandPath = path.join(commandsDir, 'cvf-chat.md');
34
37
  // Create commands directory if it doesn't exist
35
38
  if (!fs.existsSync(commandsDir)) {
36
39
  fs.mkdirSync(commandsDir, { recursive: true, mode: 0o755 });
@@ -38,56 +41,18 @@ function createCvfSlashCommand() {
38
41
  // Check if cvf.md already exists
39
42
  if (fs.existsSync(cvfCommandPath)) {
40
43
  console.log(chalk.green('✅ /cvf slash command already exists'));
44
+ }
45
+ else {
46
+ fs.writeFileSync(cvfCommandPath, commandContent, { mode: 0o644 });
47
+ console.log(chalk.green('✅ Created /cvf slash command for Claude Code'));
48
+ }
49
+ // Check if cvf-chat.md already exists
50
+ if (fs.existsSync(cvfChatCommandPath)) {
51
+ console.log(chalk.green('✅ /cvf-chat slash command already exists'));
41
52
  return true;
42
53
  }
43
- // Create the slash command file
44
- const commandContent = `---
45
- description: Ask a CodeVF engineer for help with code validation, debugging, or technical questions
46
- ---
47
-
48
- # CodeVF Engineer Assistance
49
-
50
- Please help me with the following question or task by consulting a CodeVF engineer using the appropriate MCP tool:
51
-
52
- **My request:**
53
- {{PROMPT}}
54
-
55
- ---
56
-
57
- **Instructions for Claude:**
58
-
59
- 1. **Analyze the request** to determine which CodeVF tool is most appropriate:
60
- - Use \`codevf-instant\` for:
61
- - Quick validation questions (1-10 credits, ~2 min response)
62
- - "Does this fix work?"
63
- - "Is this approach correct?"
64
- - "Can you identify the error?"
65
- - Simple technical questions
66
-
67
- - Use \`codevf-chat\` for:
68
- - Complex debugging requiring back-and-forth (4-1920 credits, 2 credits/min)
69
- - Multi-step troubleshooting
70
- - Architecture discussions
71
- - Extended collaboration
72
-
73
- 2. **Use the appropriate tool:**
74
- - For instant queries: Call \`codevf-instant\` with the message and appropriate maxCredits (1-10)
75
- - For extended sessions: Call \`codevf-chat\` with the message and appropriate maxCredits (suggest 240 for ~2 hours)
76
-
77
- 3. **Present the response:**
78
- - For instant queries: Share the engineer's response directly
79
- - For chat sessions: Provide the session URL so the user can monitor the conversation
80
-
81
- **Credit Guidelines:**
82
- - Instant validation: 1-10 credits (typically 3-5 credits per question)
83
- - Extended chat: 2 credits per minute (240 credits = 2 hours)
84
-
85
- **Example Usage:**
86
- - \`/cvf Does this authentication fix prevent the timing attack?\` → Use codevf-instant
87
- - \`/cvf Complex race condition in WebSocket reconnection needs debugging\` → Use codevf-chat
88
- `;
89
- fs.writeFileSync(cvfCommandPath, commandContent, { mode: 0o644 });
90
- console.log(chalk.green('✅ Created /cvf slash command for Claude Code'));
54
+ fs.writeFileSync(cvfChatCommandPath, chatCommandContent, { mode: 0o644 });
55
+ console.log(chalk.green('✅ Created /cvf-chat slash command for Claude Code'));
91
56
  return true;
92
57
  }
93
58
  catch (error) {
@@ -207,13 +172,126 @@ export async function setupCommand() {
207
172
  const oauthFlow = new OAuthFlow(baseUrl, 'mcp');
208
173
  const authResult = await oauthFlow.authenticate();
209
174
  spinner.succeed('Authentication successful!');
210
- // Prompt for default project ID
211
- const { projectId } = await prompts({
212
- type: 'text',
213
- name: 'projectId',
214
- message: 'Default project ID (optional):',
215
- initial: '1',
216
- });
175
+ // Fetch existing projects for selection
176
+ let projectId;
177
+ try {
178
+ spinner.start('Fetching your projects...');
179
+ const response = await fetch(`${baseUrl}/api/cli/projects`, {
180
+ headers: {
181
+ 'Authorization': `Bearer ${authResult.accessToken}`,
182
+ },
183
+ });
184
+ if (response.ok) {
185
+ const data = await response.json();
186
+ spinner.succeed('Projects loaded');
187
+ if (data.success && data.selectionOptions) {
188
+ console.log(chalk.dim('\n' + (data.message || '')));
189
+ const { selectedProject } = await prompts({
190
+ type: 'select',
191
+ name: 'selectedProject',
192
+ message: 'Choose a default project:',
193
+ choices: data.selectionOptions.map((option) => ({
194
+ title: option.label,
195
+ description: option.description,
196
+ value: option.value
197
+ })),
198
+ initial: 0,
199
+ });
200
+ projectId = selectedProject === 'new' ? undefined : selectedProject;
201
+ }
202
+ else {
203
+ // Provide user-friendly fallback when API fails
204
+ spinner.warn('Could not load existing projects from server');
205
+ const { projectChoice } = await prompts({
206
+ type: 'select',
207
+ name: 'projectChoice',
208
+ message: 'How would you like to configure the default project?',
209
+ choices: [
210
+ {
211
+ title: '🆕 Create a new project when needed',
212
+ description: 'The CLI will create a new project automatically',
213
+ value: 'new'
214
+ },
215
+ {
216
+ title: '📝 Enter a specific project ID',
217
+ description: 'If you know the ID of an existing project',
218
+ value: 'manual'
219
+ },
220
+ {
221
+ title: '⏩ Skip for now',
222
+ description: 'You can configure this later',
223
+ value: 'skip'
224
+ }
225
+ ],
226
+ initial: 0,
227
+ });
228
+ if (projectChoice === 'manual') {
229
+ const { manualProjectId } = await prompts({
230
+ type: 'text',
231
+ name: 'manualProjectId',
232
+ message: 'Enter project ID:',
233
+ initial: '',
234
+ validate: (value) => {
235
+ if (!value.trim())
236
+ return 'Project ID cannot be empty';
237
+ if (!/^\d+$/.test(value.trim()))
238
+ return 'Project ID must be a number';
239
+ return true;
240
+ }
241
+ });
242
+ projectId = manualProjectId?.trim();
243
+ }
244
+ else {
245
+ projectId = undefined; // Either 'new' or 'skip' - both result in no default project
246
+ }
247
+ }
248
+ }
249
+ else {
250
+ spinner.warn('Could not connect to CodeVF servers');
251
+ const { offlineChoice } = await prompts({
252
+ type: 'select',
253
+ name: 'offlineChoice',
254
+ message: 'Unable to fetch projects. How would you like to proceed?',
255
+ choices: [
256
+ {
257
+ title: '🆕 Create new projects automatically',
258
+ description: 'The CLI will create projects as needed',
259
+ value: 'auto'
260
+ },
261
+ {
262
+ title: '⏩ Skip project configuration',
263
+ description: 'Configure later when connection is available',
264
+ value: 'skip'
265
+ }
266
+ ],
267
+ initial: 0,
268
+ });
269
+ projectId = undefined; // No default project in offline mode
270
+ }
271
+ }
272
+ catch (error) {
273
+ spinner.warn('Connection error while loading projects');
274
+ console.log(chalk.dim(` Error: ${error.message}`));
275
+ const { errorChoice } = await prompts({
276
+ type: 'select',
277
+ name: 'errorChoice',
278
+ message: 'Unable to connect to CodeVF. How would you like to proceed?',
279
+ choices: [
280
+ {
281
+ title: '🆕 Create new projects automatically',
282
+ description: 'The CLI will create projects when needed',
283
+ value: 'auto'
284
+ },
285
+ {
286
+ title: '⏩ Skip project configuration',
287
+ description: 'Configure later when connection is restored',
288
+ value: 'skip'
289
+ }
290
+ ],
291
+ initial: 0,
292
+ });
293
+ projectId = undefined; // No default project when connection fails
294
+ }
217
295
  // Save MCP configuration
218
296
  mcpConfigManager.save({
219
297
  baseUrl,
@@ -238,7 +316,11 @@ export async function setupCommand() {
238
316
  console.log(chalk.dim('1. Restart Claude Code to load the MCP server'));
239
317
  console.log(chalk.dim('2. Use the /cvf slash command in Claude Code:'));
240
318
  console.log(chalk.dim(' Example: ') + chalk.white('/cvf Does this fix work?'));
241
- console.log(chalk.dim('3. Or ask Claude to use codevf-instant or codevf-chat tools\n'));
319
+ console.log(chalk.dim(' Example: ') + chalk.white('/cvf Create tunnel to port 3000'));
320
+ console.log(chalk.dim('3. Or ask Claude to use MCP tools directly:'));
321
+ console.log(chalk.dim(' - codevf-instant: Quick validation (1-10 credits)'));
322
+ console.log(chalk.dim(' - codevf-chat: Extended debugging (2 credits/min)'));
323
+ console.log(chalk.dim(' - codevf-tunnel: Expose local dev server (free)\n'));
242
324
  }
243
325
  }
244
326
  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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"}
package/dist/index.js CHANGED
@@ -12,6 +12,8 @@ import { initCommand } from './commands/init.js';
12
12
  import { syncCommand } from './commands/sync.js';
13
13
  import { fixCommand } from './commands/fix.js';
14
14
  import { tasksCommand } from './commands/tasks.js';
15
+ import { chatCommand } from './commands/chat.js';
16
+ import { listenCommand } from './commands/listen.js';
15
17
  import { handleError } from './utils/errors.js';
16
18
  import { ConfigManager } from './modules/config.js';
17
19
  import { AiAgent } from './modules/aiAgent.js';
@@ -23,6 +25,8 @@ import { renderHeader, renderQuickCommands, showModeSwitched, } from './ui/Sessi
23
25
  import { handleSlashCommand, isSlashCommand, handleHybridMode, handleAiMode, handleHumanMode, } from './modules/commandHandler.js';
24
26
  const args = hideBin(process.argv);
25
27
  const SETUP_ONLY_MODE = process.env.SETUP_ONLY_MODE !== 'false';
28
+ const isNpxInvocation = process.env.npm_config_user_agent?.includes('npx') ||
29
+ process.env.npm_execpath?.includes('npx');
26
30
  /**
27
31
  * Safely loads config without throwing errors
28
32
  */
@@ -174,8 +178,13 @@ async function runInteractiveMode() {
174
178
  */
175
179
  if (args.length === 0) {
176
180
  if (SETUP_ONLY_MODE) {
177
- console.log(chalk.dim('CodeVF CLI is in beta. Run "codevf setup" to configure Claude Code integration.'));
178
- process.exit(0);
181
+ if (isNpxInvocation) {
182
+ setupCommand().catch(handleError);
183
+ }
184
+ else {
185
+ console.log(chalk.dim('CodeVF CLI is in beta. Run "codevf setup" to configure Claude Code integration.'));
186
+ process.exit(0);
187
+ }
179
188
  }
180
189
  // Check if this is the first run
181
190
  if (isFirstRun()) {
@@ -247,6 +256,27 @@ else {
247
256
  catch (error) {
248
257
  handleError(error);
249
258
  }
259
+ })
260
+ .command('cvf-chat [project-id]', 'Start or join a live chat session with an engineer', (yargs) => {
261
+ return yargs.positional('project-id', {
262
+ type: 'string',
263
+ describe: 'Optional project ID to connect to',
264
+ });
265
+ }, async (argv) => {
266
+ try {
267
+ await chatCommand(argv['project-id']);
268
+ }
269
+ catch (error) {
270
+ handleError(error);
271
+ }
272
+ })
273
+ .command('cvf-listen', 'Monitor all active chat sessions in real-time', () => { }, async () => {
274
+ try {
275
+ await listenCommand();
276
+ }
277
+ catch (error) {
278
+ handleError(error);
279
+ }
250
280
  })
251
281
  .command('fix <issue>', 'Start a live debugging session', (yargs) => {
252
282
  return yargs
@@ -264,6 +294,10 @@ else {
264
294
  type: 'boolean',
265
295
  default: false,
266
296
  describe: 'Do not auto-start opencode server; require existing server',
297
+ })
298
+ .option('tunnel', {
299
+ type: 'number',
300
+ describe: 'Automatically create tunnel for specified port (e.g., --tunnel 3000)',
267
301
  });
268
302
  }, async (argv) => {
269
303
  try {
@@ -273,7 +307,7 @@ else {
273
307
  await aiAgent.run(argv.issue, { startServer: !argv['no-start-server'] });
274
308
  return;
275
309
  }
276
- await fixCommand(argv.issue);
310
+ await fixCommand(argv.issue, { tunnel: argv.tunnel });
277
311
  }
278
312
  catch (error) {
279
313
  handleError(error);