codevf 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/LICENSE +30 -21
  2. package/README.md +7 -2
  3. package/bin/codevf-mcp.js +11 -0
  4. package/dist/commands/fix.d.ts +5 -1
  5. package/dist/commands/fix.d.ts.map +1 -1
  6. package/dist/commands/fix.js +170 -13
  7. package/dist/commands/fix.js.map +1 -1
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +72 -2
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/mcp-tools.d.ts +17 -0
  12. package/dist/commands/mcp-tools.d.ts.map +1 -0
  13. package/dist/commands/mcp-tools.js +237 -0
  14. package/dist/commands/mcp-tools.js.map +1 -0
  15. package/dist/commands/setup.d.ts +8 -0
  16. package/dist/commands/setup.d.ts.map +1 -0
  17. package/dist/commands/setup.js +250 -0
  18. package/dist/commands/setup.js.map +1 -0
  19. package/dist/commands/welcome.d.ts +9 -0
  20. package/dist/commands/welcome.d.ts.map +1 -0
  21. package/dist/commands/welcome.js +175 -0
  22. package/dist/commands/welcome.js.map +1 -0
  23. package/dist/index.js +263 -207
  24. package/dist/index.js.map +1 -1
  25. package/dist/lib/api/client.d.ts +28 -0
  26. package/dist/lib/api/client.d.ts.map +1 -0
  27. package/dist/lib/api/client.js +66 -0
  28. package/dist/lib/api/client.js.map +1 -0
  29. package/dist/lib/api/projects.d.ts +32 -0
  30. package/dist/lib/api/projects.d.ts.map +1 -0
  31. package/dist/lib/api/projects.js +61 -0
  32. package/dist/lib/api/projects.js.map +1 -0
  33. package/dist/lib/api/tasks.d.ts +36 -0
  34. package/dist/lib/api/tasks.d.ts.map +1 -0
  35. package/dist/lib/api/tasks.js +62 -0
  36. package/dist/lib/api/tasks.js.map +1 -0
  37. package/dist/lib/api/websocket.d.ts +50 -0
  38. package/dist/lib/api/websocket.d.ts.map +1 -0
  39. package/dist/lib/api/websocket.js +153 -0
  40. package/dist/lib/api/websocket.js.map +1 -0
  41. package/dist/lib/auth/oauth-flow.d.ts +37 -0
  42. package/dist/lib/auth/oauth-flow.d.ts.map +1 -0
  43. package/dist/lib/auth/oauth-flow.js +119 -0
  44. package/dist/lib/auth/oauth-flow.js.map +1 -0
  45. package/dist/lib/auth/token-manager.d.ts +26 -0
  46. package/dist/lib/auth/token-manager.d.ts.map +1 -0
  47. package/dist/lib/auth/token-manager.js +87 -0
  48. package/dist/lib/auth/token-manager.js.map +1 -0
  49. package/dist/lib/config/manager.d.ts +50 -0
  50. package/dist/lib/config/manager.d.ts.map +1 -0
  51. package/dist/lib/config/manager.js +84 -0
  52. package/dist/lib/config/manager.js.map +1 -0
  53. package/dist/lib/utils/errors.d.ts +28 -0
  54. package/dist/lib/utils/errors.d.ts.map +1 -0
  55. package/dist/lib/utils/errors.js +44 -0
  56. package/dist/lib/utils/errors.js.map +1 -0
  57. package/dist/lib/utils/logger.d.ts +20 -0
  58. package/dist/lib/utils/logger.d.ts.map +1 -0
  59. package/dist/lib/utils/logger.js +40 -0
  60. package/dist/lib/utils/logger.js.map +1 -0
  61. package/dist/mcp/index.d.ts +7 -0
  62. package/dist/mcp/index.d.ts.map +1 -0
  63. package/dist/mcp/index.js +160 -0
  64. package/dist/mcp/index.js.map +1 -0
  65. package/dist/mcp/tools/chat.d.ts +30 -0
  66. package/dist/mcp/tools/chat.d.ts.map +1 -0
  67. package/dist/mcp/tools/chat.js +82 -0
  68. package/dist/mcp/tools/chat.js.map +1 -0
  69. package/dist/mcp/tools/instant.d.ts +38 -0
  70. package/dist/mcp/tools/instant.d.ts.map +1 -0
  71. package/dist/mcp/tools/instant.js +106 -0
  72. package/dist/mcp/tools/instant.js.map +1 -0
  73. package/dist/modules/aiAgent.d.ts +75 -0
  74. package/dist/modules/aiAgent.d.ts.map +1 -0
  75. package/dist/modules/aiAgent.js +707 -0
  76. package/dist/modules/aiAgent.js.map +1 -0
  77. package/dist/modules/api.d.ts +7 -0
  78. package/dist/modules/api.d.ts.map +1 -1
  79. package/dist/modules/api.js +13 -4
  80. package/dist/modules/api.js.map +1 -1
  81. package/dist/modules/commandHandler.d.ts +40 -0
  82. package/dist/modules/commandHandler.d.ts.map +1 -0
  83. package/dist/modules/commandHandler.js +328 -0
  84. package/dist/modules/commandHandler.js.map +1 -0
  85. package/dist/modules/config.d.ts +2 -0
  86. package/dist/modules/config.d.ts.map +1 -1
  87. package/dist/modules/config.js +9 -0
  88. package/dist/modules/config.js.map +1 -1
  89. package/dist/modules/constants.d.ts +83 -0
  90. package/dist/modules/constants.d.ts.map +1 -0
  91. package/dist/modules/constants.js +75 -0
  92. package/dist/modules/constants.js.map +1 -0
  93. package/dist/modules/permissions.d.ts +14 -0
  94. package/dist/modules/permissions.d.ts.map +1 -1
  95. package/dist/modules/permissions.js +94 -0
  96. package/dist/modules/permissions.js.map +1 -1
  97. package/dist/modules/toolRegistry.d.ts +50 -0
  98. package/dist/modules/toolRegistry.d.ts.map +1 -0
  99. package/dist/modules/toolRegistry.js +114 -0
  100. package/dist/modules/toolRegistry.js.map +1 -0
  101. package/dist/modules/tunnel.d.ts +33 -0
  102. package/dist/modules/tunnel.d.ts.map +1 -0
  103. package/dist/modules/tunnel.js +79 -0
  104. package/dist/modules/tunnel.js.map +1 -0
  105. package/dist/modules/vibeHelper.d.ts +16 -0
  106. package/dist/modules/vibeHelper.d.ts.map +1 -0
  107. package/dist/modules/vibeHelper.js +38 -0
  108. package/dist/modules/vibeHelper.js.map +1 -0
  109. package/dist/modules/websocket.d.ts +9 -0
  110. package/dist/modules/websocket.d.ts.map +1 -1
  111. package/dist/modules/websocket.js +70 -0
  112. package/dist/modules/websocket.js.map +1 -1
  113. package/dist/tools/consultEngineer.d.ts +13 -0
  114. package/dist/tools/consultEngineer.d.ts.map +1 -0
  115. package/dist/tools/consultEngineer.js +161 -0
  116. package/dist/tools/consultEngineer.js.map +1 -0
  117. package/dist/tools/realtimeChat.d.ts +9 -0
  118. package/dist/tools/realtimeChat.d.ts.map +1 -0
  119. package/dist/tools/realtimeChat.js +101 -0
  120. package/dist/tools/realtimeChat.js.map +1 -0
  121. package/dist/types/index.d.ts +183 -0
  122. package/dist/types/index.d.ts.map +1 -1
  123. package/dist/types/index.js.map +1 -1
  124. package/dist/ui/InteractiveApp.d.ts +13 -0
  125. package/dist/ui/InteractiveApp.d.ts.map +1 -0
  126. package/dist/ui/InteractiveApp.js +84 -0
  127. package/dist/ui/InteractiveApp.js.map +1 -0
  128. package/dist/ui/InteractivePrompt.d.ts +53 -0
  129. package/dist/ui/InteractivePrompt.d.ts.map +1 -0
  130. package/dist/ui/InteractivePrompt.js +422 -0
  131. package/dist/ui/InteractivePrompt.js.map +1 -0
  132. package/dist/ui/LiveSession.d.ts +2 -0
  133. package/dist/ui/LiveSession.d.ts.map +1 -1
  134. package/dist/ui/LiveSession.js +461 -180
  135. package/dist/ui/LiveSession.js.map +1 -1
  136. package/dist/ui/PromptInput.d.ts +14 -0
  137. package/dist/ui/PromptInput.d.ts.map +1 -0
  138. package/dist/ui/PromptInput.js +206 -0
  139. package/dist/ui/PromptInput.js.map +1 -0
  140. package/dist/ui/SessionUI.d.ts +40 -0
  141. package/dist/ui/SessionUI.d.ts.map +1 -0
  142. package/dist/ui/SessionUI.js +218 -0
  143. package/dist/ui/SessionUI.js.map +1 -0
  144. package/dist/ui/input/Command.d.ts +22 -0
  145. package/dist/ui/input/Command.d.ts.map +1 -0
  146. package/dist/ui/input/Command.js +30 -0
  147. package/dist/ui/input/Command.js.map +1 -0
  148. package/dist/ui/input/CustomInput.d.ts +15 -0
  149. package/dist/ui/input/CustomInput.d.ts.map +1 -0
  150. package/dist/ui/input/CustomInput.js +182 -0
  151. package/dist/ui/input/CustomInput.js.map +1 -0
  152. package/dist/ui/input/handlers/handleCursor.d.ts +22 -0
  153. package/dist/ui/input/handlers/handleCursor.d.ts.map +1 -0
  154. package/dist/ui/input/handlers/handleCursor.js +53 -0
  155. package/dist/ui/input/handlers/handleCursor.js.map +1 -0
  156. package/dist/ui/input/handlers/handleEdit.d.ts +18 -0
  157. package/dist/ui/input/handlers/handleEdit.d.ts.map +1 -0
  158. package/dist/ui/input/handlers/handleEdit.js +55 -0
  159. package/dist/ui/input/handlers/handleEdit.js.map +1 -0
  160. package/dist/ui/input/handlers/handleHistory.d.ts +18 -0
  161. package/dist/ui/input/handlers/handleHistory.d.ts.map +1 -0
  162. package/dist/ui/input/handlers/handleHistory.js +85 -0
  163. package/dist/ui/input/handlers/handleHistory.js.map +1 -0
  164. package/dist/ui/input/handlers/handlePaste.d.ts +19 -0
  165. package/dist/ui/input/handlers/handlePaste.d.ts.map +1 -0
  166. package/dist/ui/input/handlers/handlePaste.js +49 -0
  167. package/dist/ui/input/handlers/handlePaste.js.map +1 -0
  168. package/dist/ui/input/handlers/handleSubmit.d.ts +18 -0
  169. package/dist/ui/input/handlers/handleSubmit.d.ts.map +1 -0
  170. package/dist/ui/input/handlers/handleSubmit.js +39 -0
  171. package/dist/ui/input/handlers/handleSubmit.js.map +1 -0
  172. package/dist/ui/input/helpers.d.ts +4 -0
  173. package/dist/ui/input/helpers.d.ts.map +1 -0
  174. package/dist/ui/input/helpers.js +13 -0
  175. package/dist/ui/input/helpers.js.map +1 -0
  176. package/dist/ui/input/keyMatchers.d.ts +14 -0
  177. package/dist/ui/input/keyMatchers.d.ts.map +1 -0
  178. package/dist/ui/input/keyMatchers.js +49 -0
  179. package/dist/ui/input/keyMatchers.js.map +1 -0
  180. package/dist/ui/input/types.d.ts +33 -0
  181. package/dist/ui/input/types.d.ts.map +1 -0
  182. package/dist/ui/input/types.js +2 -0
  183. package/dist/ui/input/types.js.map +1 -0
  184. package/dist/ui/promptWithModes.d.ts +12 -0
  185. package/dist/ui/promptWithModes.d.ts.map +1 -0
  186. package/dist/ui/promptWithModes.js +24 -0
  187. package/dist/ui/promptWithModes.js.map +1 -0
  188. package/dist/ui/renderPrompt.d.ts +12 -0
  189. package/dist/ui/renderPrompt.d.ts.map +1 -0
  190. package/dist/ui/renderPrompt.js +14 -0
  191. package/dist/ui/renderPrompt.js.map +1 -0
  192. package/dist/ui/simplePrompt.d.ts +7 -0
  193. package/dist/ui/simplePrompt.d.ts.map +1 -0
  194. package/dist/ui/simplePrompt.js +38 -0
  195. package/dist/ui/simplePrompt.js.map +1 -0
  196. package/dist/ui/spinner.d.ts +7 -0
  197. package/dist/ui/spinner.d.ts.map +1 -0
  198. package/dist/ui/spinner.js +13 -0
  199. package/dist/ui/spinner.js.map +1 -0
  200. package/package.json +36 -26
  201. package/ARCHITECTURE.md +0 -285
  202. package/BUILD_SUMMARY.md +0 -340
  203. package/QUICKSTART.md +0 -180
package/dist/index.js CHANGED
@@ -4,245 +4,301 @@ import 'dotenv/config';
4
4
  import yargs from 'yargs';
5
5
  import { hideBin } from 'yargs/helpers';
6
6
  import chalk from 'chalk';
7
- import prompts from 'prompts';
8
- import { exec, spawn } from 'child_process';
9
- import { promisify } from 'util';
10
7
  import { loginCommand } from './commands/login.js';
11
8
  import { logoutCommand } from './commands/logout.js';
9
+ import { setupCommand } from './commands/setup.js';
10
+ import { welcomeCommand, isFirstRun } from './commands/welcome.js';
12
11
  import { initCommand } from './commands/init.js';
13
12
  import { syncCommand } from './commands/sync.js';
14
13
  import { fixCommand } from './commands/fix.js';
15
14
  import { tasksCommand } from './commands/tasks.js';
16
15
  import { handleError } from './utils/errors.js';
17
16
  import { ConfigManager } from './modules/config.js';
18
- const CLI_VERSION = '1.0.0';
19
- const execAsync = promisify(exec);
17
+ import { AiAgent } from './modules/aiAgent.js';
18
+ import React from 'react';
19
+ import { render } from 'ink';
20
+ import { CLI_VERSION } from './modules/constants.js';
21
+ import { InteractiveApp } from './ui/InteractiveApp.js';
22
+ import { renderHeader, renderQuickCommands, showModeSwitched, } from './ui/SessionUI.js';
23
+ import { handleSlashCommand, isSlashCommand, handleHybridMode, handleAiMode, handleHumanMode, } from './modules/commandHandler.js';
20
24
  const args = hideBin(process.argv);
21
- if (args.length === 0) {
22
- // Minimal interactive entry (Codex-style): no question, just a prompt
23
- (async () => {
25
+ const SETUP_ONLY_MODE = process.env.SETUP_ONLY_MODE !== 'false';
26
+ /**
27
+ * Safely loads config without throwing errors
28
+ */
29
+ function loadConfigSafely(configManager) {
30
+ if (configManager.isInitialized()) {
24
31
  try {
25
- const cwd = process.cwd();
26
- const configManager = new ConfigManager();
27
- const isInitialized = configManager.isInitialized();
28
- const boxInfo = isInitialized
29
- ? chalk.green(`Initialized project: ${configManager.loadConfig().projectId}`)
30
- : chalk.yellow('Not initialized (run `codevf init`)');
31
- // Header box similar to Codex
32
- const boxLines = [
33
- `${chalk.dim('>_')} ${chalk.bold.white('CodeVF CLI')} ${chalk.dim(`(v${CLI_VERSION})`)}`,
34
- `${chalk.dim('model:')} ${chalk.cyan('codevf-live')} ${chalk.dim('/human to ask for help')}`,
35
- `${chalk.dim('dir:')} ${chalk.cyan(cwd)}`,
36
- `${chalk.dim('init:')} ${boxInfo}`,
37
- ];
38
- const maxLen = Math.max(...boxLines.map((l) => l.length));
39
- const width = maxLen + 2; // padding inside box
40
- const border = chalk.dim('┌' + '─'.repeat(width) + '┐');
41
- const footer = chalk.dim('└' + '─'.repeat(width) + '┘');
42
- console.log('\n' + border);
43
- boxLines.forEach((line) => {
44
- const padLength = width - line.length;
45
- const padding = padLength > 0 ? ' '.repeat(padLength) : '';
46
- console.log(chalk.dim('│') + line + padding + chalk.dim('│'));
47
- });
48
- console.log(footer + '\n');
49
- console.log(chalk.dim('To get started, type your issue or one of these commands:\n'));
50
- const commands = [
51
- ['/human <text>', 'ask for help from a human engineer'],
52
- ['/shell', 'switch to local shell (not shared)'],
53
- ['/codevf', 'return from shell to session'],
54
- ['/end', 'end the session'],
55
- ['/tasks', 'list open tasks'],
56
- ['/cancel <id>', 'cancel a task'],
57
- ['/?', 'list commands'],
58
- ['/exit', 'quit the CLI'],
59
- ];
60
- commands.forEach(([cmd, desc]) => {
61
- console.log(`${chalk.white(cmd.padEnd(15))}${chalk.dim('–')} ${chalk.gray(desc)}`);
32
+ return configManager.loadConfig();
33
+ }
34
+ catch (error) {
35
+ return null;
36
+ }
37
+ }
38
+ return null;
39
+ }
40
+ /**
41
+ * Interactive session mode - main entry point when no arguments provided
42
+ */
43
+ async function runInteractiveMode() {
44
+ try {
45
+ const configManager = new ConfigManager();
46
+ let loadedConfig = loadConfigSafely(configManager);
47
+ const isInitialized = configManager.isInitialized();
48
+ let aiEnabled = !!loadedConfig?.ai?.enabled;
49
+ let routingMode = aiEnabled ? 'hybrid' : 'human';
50
+ let agentMode = 'build';
51
+ const aiAgent = new AiAgent(configManager);
52
+ const logUserMessage = (message) => {
53
+ // Display the user's input inside a full-width highlight block, left-aligned
54
+ const columns = process.stdout.columns || 80;
55
+ const lines = message.split(/\r?\n/);
56
+ const contentWidth = Math.min(Math.max(...lines.map((line) => line.length), 1), columns - 6);
57
+ const horizontalPad = ' ';
58
+ const totalWidth = Math.min(columns, contentWidth + horizontalPad.length * 2);
59
+ const fullLine = (text) => {
60
+ const padded = text.padEnd(contentWidth, ' ');
61
+ return chalk.bgGray.white(`${horizontalPad}${padded}${horizontalPad}`);
62
+ };
63
+ lines.forEach((line) => {
64
+ console.log(fullLine(line));
62
65
  });
63
- console.log();
66
+ };
67
+ // Render header and quick commands
68
+ renderHeader(isInitialized, loadedConfig);
69
+ renderQuickCommands(isInitialized, aiEnabled, aiEnabled, agentMode);
70
+ // Command submission handler
71
+ const handleSubmit = async (text, mode) => {
72
+ const trimmed = text.trim();
73
+ logUserMessage(trimmed);
74
+ // Handle slash commands
75
+ if (isSlashCommand(trimmed)) {
76
+ await handleSlashCommand(trimmed, {
77
+ configManager,
78
+ aiAgent,
79
+ routingMode: mode,
80
+ agentMode,
81
+ aiEnabled,
82
+ autoAcceptMode: false,
83
+ loadedConfig,
84
+ });
85
+ return;
86
+ }
87
+ // Route to appropriate mode handler
88
+ if (mode === 'hybrid' && aiEnabled) {
89
+ await handleHybridMode(trimmed, {
90
+ configManager,
91
+ aiAgent,
92
+ routingMode: mode,
93
+ agentMode,
94
+ aiEnabled,
95
+ autoAcceptMode: false,
96
+ loadedConfig,
97
+ });
98
+ }
99
+ else if (mode === 'ai' && aiEnabled) {
100
+ await handleAiMode(trimmed, {
101
+ configManager,
102
+ aiAgent,
103
+ routingMode: mode,
104
+ agentMode,
105
+ aiEnabled,
106
+ autoAcceptMode: false,
107
+ loadedConfig,
108
+ });
109
+ }
110
+ else {
111
+ await handleHumanMode(trimmed);
112
+ }
113
+ };
114
+ // Try to use ink - it will handle raw mode setup internally
115
+ try {
116
+ // Render ink app and keep it mounted
117
+ render(React.createElement(InteractiveApp, {
118
+ initialRoutingMode: routingMode,
119
+ initialAgentMode: agentMode,
120
+ aiEnabled,
121
+ onSubmit: handleSubmit,
122
+ onModeChange: (mode) => {
123
+ routingMode = mode;
124
+ showModeSwitched(mode);
125
+ },
126
+ onAgentModeChange: (mode) => {
127
+ agentMode = mode;
128
+ },
129
+ }));
130
+ }
131
+ catch (inkError) {
132
+ // Fallback if ink fails
133
+ console.error(chalk.yellow('\nWarning: Interactive mode requires TTY support'));
134
+ console.log(chalk.yellow('\nFalling back to compatibility mode (paste support disabled)'));
135
+ console.log(chalk.cyan('\nFor full features with paste support, run directly:'));
136
+ console.log(chalk.white(' cd ' + process.cwd()));
137
+ console.log(chalk.white(' CODEVF_API_URL=http://localhost:3000 tsx src/index.ts\n'));
138
+ const readline = await import('readline');
64
139
  while (true) {
65
- let shellMode = false;
66
- const shellHistory = [];
67
- console.log(chalk.dim('Type /? for menu'));
68
- const { line } = await prompts({
69
- type: 'text',
70
- name: 'line',
71
- message: chalk.bold('codevf> '),
140
+ const rl = readline.createInterface({
141
+ input: process.stdin,
142
+ output: process.stdout,
72
143
  });
73
- if (!line || !line.trim()) {
74
- // empty input: re-prompt instead of exiting
75
- continue;
76
- }
77
- let trimmed = line.trim();
78
- // Any slash command is handled locally; do not start a session
79
- if (trimmed.startsWith('/')) {
80
- if (['/?', '/help', '/commands'].includes(trimmed)) {
81
- console.log();
82
- console.log(chalk.white('/human <text>').padEnd(18) + chalk.gray('ask for help from a human engineer'));
83
- console.log(chalk.white('/shell').padEnd(18) + chalk.gray('local shell (not shared)'));
84
- console.log(chalk.white('/codevf').padEnd(18) + chalk.gray('back to session'));
85
- console.log(chalk.white('/end').padEnd(18) + chalk.gray('end the session'));
86
- console.log(chalk.white('/tasks').padEnd(18) + chalk.gray('list open tasks'));
87
- console.log(chalk.white('/cancel <id>').padEnd(18) + chalk.gray('cancel a task'));
88
- console.log(chalk.white('/?').padEnd(18) + chalk.gray('list commands'));
89
- console.log(chalk.white('/exit').padEnd(18) + chalk.gray('quit'));
90
- console.log();
91
- continue;
92
- }
93
- else if (trimmed === '/tasks') {
94
- await tasksCommand(undefined);
95
- }
96
- else if (trimmed.startsWith('/cancel ')) {
97
- const id = trimmed.replace('/cancel', '').trim();
98
- if (!id) {
99
- console.log(chalk.red('Usage: /cancel <taskId>'));
100
- }
101
- else {
102
- await tasksCommand(id);
103
- }
104
- }
105
- else if (trimmed === '/exit' || trimmed === '/quit') {
106
- console.log(chalk.dim('Goodbye.'));
107
- process.exit(0);
144
+ const getModeIndicator = (mode) => {
145
+ switch (mode) {
146
+ case 'hybrid':
147
+ return chalk.green('[Hybrid]');
148
+ case 'ai':
149
+ return chalk.cyan('[AI]');
150
+ case 'human':
151
+ return chalk.magenta('[Human]');
152
+ default:
153
+ return chalk.white('[Unknown]');
108
154
  }
109
- else if (trimmed === '/shell') {
110
- shellMode = true;
111
- console.log(chalk.dim('Entered local shell mode (not shared). Type /resume to go back.'));
112
- // enter shell loop
113
- while (shellMode) {
114
- const { line: shellLine } = await prompts({
115
- type: 'text',
116
- name: 'line',
117
- message: chalk.bold('shell> ') + chalk.dim('(local)'),
118
- });
119
- if (!shellLine) {
120
- continue;
121
- }
122
- const shellTrimmed = shellLine.trim();
123
- if (shellTrimmed === '/resume' || shellTrimmed === '/session' || shellTrimmed === '/codevf') {
124
- shellMode = false;
125
- console.log(chalk.dim('Back to CodeVF prompt.'));
126
- continue;
127
- }
128
- if (shellTrimmed === '/exit' || shellTrimmed === '/quit') {
129
- console.log(chalk.dim('Goodbye.'));
130
- process.exit(0);
131
- }
132
- if (shellTrimmed.startsWith('/')) {
133
- console.log(chalk.yellow(`Unknown command in shell: ${shellTrimmed}`));
134
- console.log(chalk.dim('Use /resume to return to the session prompt.'));
135
- continue;
136
- }
137
- try {
138
- await new Promise((resolve) => {
139
- const child = spawn(shellTrimmed, {
140
- shell: true,
141
- stdio: 'inherit',
142
- cwd: process.cwd(),
143
- });
144
- child.on('exit', () => resolve());
145
- child.on('error', (err) => {
146
- console.log(chalk.red(`Command failed: ${err.message}`));
147
- resolve();
148
- });
149
- });
150
- shellHistory.push(`$ ${shellTrimmed} (ran with stdio:inherit)`);
151
- }
152
- catch (error) {
153
- console.log(chalk.red(`Command failed: ${error.message || error}`));
154
- }
155
- }
156
- }
157
- else {
158
- console.log(chalk.yellow(`Unknown command: ${trimmed}`));
159
- console.log(chalk.dim('Type /? to see available commands.'));
160
- }
161
- continue;
155
+ };
156
+ const answer = await new Promise((resolve) => {
157
+ rl.question(` ${getModeIndicator(routingMode)} ${chalk.dim('›')} `, (answer) => {
158
+ rl.close();
159
+ resolve(answer);
160
+ });
161
+ });
162
+ if (answer.trim()) {
163
+ await handleSubmit(answer.trim(), routingMode);
162
164
  }
163
- await fixCommand(trimmed);
164
- // After session ends, return to prompt loop
165
165
  }
166
166
  }
167
- catch (error) {
168
- handleError(error);
169
- }
170
- })();
167
+ }
168
+ catch (error) {
169
+ handleError(error);
170
+ }
171
+ }
172
+ /**
173
+ * Command-line argument mode - handle specific commands
174
+ */
175
+ if (args.length === 0) {
176
+ 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);
179
+ }
180
+ // Check if this is the first run
181
+ if (isFirstRun()) {
182
+ welcomeCommand().catch(handleError);
183
+ }
184
+ else {
185
+ runInteractiveMode();
186
+ }
171
187
  }
172
188
  else {
173
- yargs(args)
189
+ const cli = yargs(args)
174
190
  .scriptName('codevf')
175
191
  .version(CLI_VERSION)
176
192
  .usage('$0 <command> [options]')
177
- .command('login', 'Authenticate with CodeVF', () => { }, async () => {
178
- try {
179
- await loginCommand();
180
- }
181
- catch (error) {
182
- handleError(error);
183
- }
184
- })
185
- .command('logout', 'Clear local authentication', () => { }, async () => {
186
- try {
187
- await logoutCommand();
188
- }
189
- catch (error) {
190
- handleError(error);
191
- }
192
- })
193
- .command('init', 'Initialize CodeVF in your project', () => { }, async () => {
194
- try {
195
- await initCommand();
196
- }
197
- catch (error) {
198
- handleError(error);
199
- }
200
- })
201
- .command('sync', 'Sync your local changes with CodeVF', (yargs) => {
202
- return yargs.option('force', {
203
- alias: 'f',
204
- type: 'boolean',
205
- description: 'Force sync even with uncommitted changes',
206
- default: false,
207
- });
208
- }, async (argv) => {
209
- try {
210
- await syncCommand({ force: argv.force });
211
- }
212
- catch (error) {
213
- handleError(error);
214
- }
215
- })
216
- .command('tasks', 'List open tasks (use /cancel <id> inside interactive mode)', () => { }, async () => {
217
- try {
218
- await tasksCommand(undefined);
219
- }
220
- catch (error) {
221
- handleError(error);
222
- }
223
- })
224
- .command('fix <issue>', 'Start a live debugging session', (yargs) => {
225
- return yargs.positional('issue', {
226
- type: 'string',
227
- describe: 'Description of the issue to fix (or type commands like /human need help with X)',
228
- demandOption: true,
229
- });
230
- }, async (argv) => {
193
+ .epilogue('For first-time setup, run: codevf welcome\nDocumentation: https://docs.codevf.com');
194
+ if (!SETUP_ONLY_MODE) {
195
+ cli
196
+ .command('login', 'Authenticate with CodeVF (for CLI usage)', () => { }, async () => {
197
+ try {
198
+ await loginCommand();
199
+ }
200
+ catch (error) {
201
+ handleError(error);
202
+ }
203
+ })
204
+ .command('logout', 'Clear local authentication', () => { }, async () => {
205
+ try {
206
+ await logoutCommand();
207
+ }
208
+ catch (error) {
209
+ handleError(error);
210
+ }
211
+ })
212
+ .command('welcome', 'Show welcome screen and setup guide', () => { }, async () => {
213
+ try {
214
+ await welcomeCommand();
215
+ }
216
+ catch (error) {
217
+ handleError(error);
218
+ }
219
+ })
220
+ .command('init', 'Initialize CodeVF in your project', () => { }, async () => {
221
+ try {
222
+ await initCommand();
223
+ }
224
+ catch (error) {
225
+ handleError(error);
226
+ }
227
+ })
228
+ .command('sync', 'Sync your local changes with CodeVF', (yargs) => {
229
+ return yargs.option('force', {
230
+ alias: 'f',
231
+ type: 'boolean',
232
+ description: 'Force sync even with uncommitted changes',
233
+ default: false,
234
+ });
235
+ }, async (argv) => {
236
+ try {
237
+ await syncCommand({ force: argv.force });
238
+ }
239
+ catch (error) {
240
+ handleError(error);
241
+ }
242
+ })
243
+ .command('tasks', 'List open tasks (use /cancel <id> inside interactive mode)', () => { }, async () => {
244
+ try {
245
+ await tasksCommand(undefined);
246
+ }
247
+ catch (error) {
248
+ handleError(error);
249
+ }
250
+ })
251
+ .command('fix <issue>', 'Start a live debugging session', (yargs) => {
252
+ return yargs
253
+ .positional('issue', {
254
+ type: 'string',
255
+ describe: 'Description of the issue to fix (or type commands like /human need help with X)',
256
+ demandOption: true,
257
+ })
258
+ .option('ai', {
259
+ type: 'boolean',
260
+ default: false,
261
+ describe: 'Route through local AI (opencode SDK) if enabled',
262
+ })
263
+ .option('no-start-server', {
264
+ type: 'boolean',
265
+ default: false,
266
+ describe: 'Do not auto-start opencode server; require existing server',
267
+ });
268
+ }, async (argv) => {
269
+ try {
270
+ if (argv.ai) {
271
+ const configManager = new ConfigManager();
272
+ const aiAgent = new AiAgent(configManager);
273
+ await aiAgent.run(argv.issue, { startServer: !argv['no-start-server'] });
274
+ return;
275
+ }
276
+ await fixCommand(argv.issue);
277
+ }
278
+ catch (error) {
279
+ handleError(error);
280
+ }
281
+ })
282
+ .recommendCommands();
283
+ }
284
+ cli
285
+ .command('setup', 'Configure MCP server for Claude Code integration', () => { }, async () => {
231
286
  try {
232
- await fixCommand(argv.issue);
287
+ await setupCommand();
233
288
  }
234
289
  catch (error) {
235
290
  handleError(error);
236
291
  }
237
292
  })
238
- .demandCommand(1, chalk.yellow('Run a command, e.g., "codevf fix \"need help with X\""'))
239
- .recommendCommands()
240
- .strict()
293
+ .demandCommand(1, chalk.yellow(SETUP_ONLY_MODE
294
+ ? 'Run "codevf setup" to configure Claude Code integration (other commands disabled).'
295
+ : 'Run a command, e.g., "codevf fix \\"need help with X\\""'))
241
296
  .help()
242
297
  .alias('help', 'h')
243
298
  .alias('version', 'v')
244
299
  .epilogue(chalk.dim('For more information, visit: https://docs.codevf.com\n' +
245
300
  'Report issues: https://github.com/codevf/cli/issues'))
246
- .parse();
301
+ .strict();
302
+ cli.parse();
247
303
  }
248
304
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * HTTP client with automatic authentication
3
+ */
4
+ import { TokenManager } from '../auth/token-manager.js';
5
+ export interface ApiResponse<T = any> {
6
+ success: boolean;
7
+ data?: T;
8
+ error?: string;
9
+ warning?: string;
10
+ }
11
+ export declare class ApiClient {
12
+ private baseUrl;
13
+ private tokenManager;
14
+ constructor(baseUrl: string, tokenManager: TokenManager);
15
+ /**
16
+ * Make authenticated request
17
+ */
18
+ request<T = any>(path: string, options?: RequestInit): Promise<ApiResponse<T>>;
19
+ /**
20
+ * GET request
21
+ */
22
+ get<T = any>(path: string): Promise<ApiResponse<T>>;
23
+ /**
24
+ * POST request
25
+ */
26
+ post<T = any>(path: string, body?: any): Promise<ApiResponse<T>>;
27
+ }
28
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/lib/api/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIxD,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAe;gBAEvB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;IAKvD;;OAEG;IACG,OAAO,CAAC,CAAC,GAAG,GAAG,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA+C1B;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIzD;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAMvE"}