rivet-design 0.5.10 → 0.5.13

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 (44) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +111 -33
  4. package/dist/index.js.map +1 -1
  5. package/dist/mcp/server.d.ts.map +1 -1
  6. package/dist/mcp/server.js +174 -56
  7. package/dist/mcp/server.js.map +1 -1
  8. package/dist/proxy-middleware/proxy-config.d.ts +1 -1
  9. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  10. package/dist/proxy-middleware/proxy-config.js +7 -12
  11. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  12. package/dist/server.d.ts +2 -0
  13. package/dist/server.d.ts.map +1 -1
  14. package/dist/server.js +8 -4
  15. package/dist/server.js.map +1 -1
  16. package/dist/services/AuthService.d.ts +9 -2
  17. package/dist/services/AuthService.d.ts.map +1 -1
  18. package/dist/services/AuthService.js +52 -2
  19. package/dist/services/AuthService.js.map +1 -1
  20. package/dist/services/ProjectDetectionService.d.ts +9 -2
  21. package/dist/services/ProjectDetectionService.d.ts.map +1 -1
  22. package/dist/services/ProjectDetectionService.js +82 -19
  23. package/dist/services/ProjectDetectionService.js.map +1 -1
  24. package/dist/services/TelemetryService.js +1 -1
  25. package/dist/services/TelemetryService.js.map +1 -1
  26. package/dist/types/change-request-types.d.ts +2 -0
  27. package/dist/types/change-request-types.d.ts.map +1 -1
  28. package/dist/utils/portUtils.d.ts +11 -0
  29. package/dist/utils/portUtils.d.ts.map +1 -0
  30. package/dist/utils/portUtils.js +60 -0
  31. package/dist/utils/portUtils.js.map +1 -0
  32. package/dist/utils/skills/claude-skill.d.ts +3 -3
  33. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  34. package/dist/utils/skills/claude-skill.js +3 -8
  35. package/dist/utils/skills/claude-skill.js.map +1 -1
  36. package/dist/utils/skills/cursor-rules.d.ts +1 -1
  37. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  38. package/dist/utils/skills/cursor-rules.js +2 -7
  39. package/dist/utils/skills/cursor-rules.js.map +1 -1
  40. package/package.json +3 -3
  41. package/src/ui/dist/assets/main-BDHMbFy-.css +1 -0
  42. package/src/ui/dist/assets/{main-ByiTFNzD.js → main-DhJDeAnr.js} +36 -34
  43. package/src/ui/dist/index.html +2 -2
  44. package/src/ui/dist/assets/main-Bbs1ywL7.css +0 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export type CLIOptions = {
2
2
  userPort?: number;
3
+ rivetPort?: number;
3
4
  help?: boolean;
4
5
  version?: boolean;
5
6
  debug?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,eAAO,MAAM,IAAI,GACf,OAAM,MAAM,EAA0B,KACrC,OAAO,CAAC,IAAI,CAuMd,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,eAAO,MAAM,IAAI,GACf,OAAM,MAAM,EAA0B,KACrC,OAAO,CAAC,IAAI,CAkSd,CAAC"}
package/dist/index.js CHANGED
@@ -50,6 +50,7 @@ const AuthService_1 = require("./services/AuthService");
50
50
  const ConfigManager_1 = require("./services/ConfigManager");
51
51
  const TelemetryService_1 = require("./services/TelemetryService");
52
52
  const skillWriter_1 = require("./utils/skillWriter");
53
+ const portUtils_1 = require("./utils/portUtils");
53
54
  const log = (0, index_core_1.createLogger)('RivetCLI');
54
55
  exports.DEFAULT_PORT = 4000;
55
56
  exports.DEFAULT_USER_PORT = 3000;
@@ -130,7 +131,6 @@ const main = async (args = process.argv.slice(2)) => {
130
131
  }
131
132
  const projectDetection = new index_core_1.ProjectDetectionService();
132
133
  const projectPath = process.cwd();
133
- const rivetPort = exports.DEFAULT_PORT;
134
134
  let project;
135
135
  let userDevServerPort;
136
136
  try {
@@ -139,17 +139,37 @@ const main = async (args = process.argv.slice(2)) => {
139
139
  userDevServerPort = options.userPort || project.devServerPort;
140
140
  }
141
141
  catch (error) {
142
- // Check if this is a "no dev server" error
143
- const isNoServerError = error instanceof Error &&
144
- error.message.includes('No running dev server');
145
- if (!isNoServerError) {
146
- throw error;
142
+ // If user provided an explicit port, we don't need detection to succeed
143
+ if (options.userPort) {
144
+ userDevServerPort = options.userPort;
145
+ project = {
146
+ id: path_1.default.basename(projectPath),
147
+ framework: (options.framework || 'nextjs'),
148
+ path: projectPath,
149
+ devServerPort: options.userPort,
150
+ status: 'detected',
151
+ packageManager: 'npm', // Fallback
152
+ };
147
153
  }
148
- // No dev server detected - tell user to start it
149
- log.error('❌ No dev server detected.');
150
- log.error(' Please start your dev server first (e.g., npm run dev), then run rivet again.');
154
+ else {
155
+ // Check if this is a "no dev server" error
156
+ const isNoServerError = error instanceof Error &&
157
+ error.message.includes('No running dev server');
158
+ if (!isNoServerError) {
159
+ throw error;
160
+ }
161
+ // No dev server detected - tell user to start it
162
+ log.error('❌ No dev server detected.');
163
+ log.error(' Please start your dev server first (e.g., npm run dev), then run rivet again.');
164
+ process.exit(1);
165
+ }
166
+ }
167
+ if (userDevServerPort === undefined) {
168
+ log.error('❌ Could not determine dev server port.');
151
169
  process.exit(1);
152
170
  }
171
+ // Pick Rivet port as late as possible to avoid another process binding it first (e.g. when desktop spawns CLI).
172
+ let rivetPort = options.rivetPort ?? (await (0, portUtils_1.findAvailablePort)(exports.DEFAULT_PORT));
153
173
  // Track session start
154
174
  telemetry.trackSessionStart({
155
175
  framework: project.framework,
@@ -158,34 +178,83 @@ const main = async (args = process.argv.slice(2)) => {
158
178
  debugMode: options.debug,
159
179
  });
160
180
  log.debug(`📡 Connecting to project dev server on port ${userDevServerPort}${options.userPort ? ' (user-specified)' : ' (detected)'}`);
161
- // Start server first (so OAuth callback URL works)
162
- await (0, server_1.startServer)({
163
- userPort: userDevServerPort,
164
- framework: project.framework,
165
- telemetry,
166
- projectPath,
167
- staticEntry: project.entryPoint,
168
- styleFramework: options.styleFramework,
169
- tailwindConfig: options.tailwindConfig,
170
- });
181
+ // Start server; on EADDRINUSE retry with next available port (handles race when desktop or another instance binds first).
182
+ let serverStarted = false;
183
+ let retries = 0;
184
+ const maxRetries = 5;
185
+ while (!serverStarted && retries < maxRetries) {
186
+ const startServerOptions = {
187
+ userPort: userDevServerPort,
188
+ userHost: project.devServerHost,
189
+ framework: project.framework,
190
+ telemetry,
191
+ projectPath,
192
+ staticEntry: project.entryPoint,
193
+ styleFramework: options.styleFramework,
194
+ tailwindConfig: options.tailwindConfig,
195
+ rivetPort,
196
+ skipProcessHandlers: retries > 0,
197
+ };
198
+ try {
199
+ await (0, server_1.startServer)(startServerOptions);
200
+ serverStarted = true;
201
+ }
202
+ catch (err) {
203
+ const code = err?.code;
204
+ if (code === 'EADDRINUSE' && !options.rivetPort) {
205
+ retries++;
206
+ rivetPort = await (0, portUtils_1.findAvailablePort)(rivetPort + 1);
207
+ log.debug(`Port in use, retrying with port ${rivetPort} (attempt ${retries}/${maxRetries})`);
208
+ }
209
+ else {
210
+ throw err;
211
+ }
212
+ }
213
+ }
214
+ if (!serverStarted) {
215
+ log.error(`❌ Could not start Rivet server after ${maxRetries} attempts.`);
216
+ process.exit(1);
217
+ }
171
218
  log.info(`✅ Rivet server started on http://localhost:${rivetPort}`);
172
- // Check authentication and trigger login if needed
219
+ // Check authentication: try CI email sign-in if env set, otherwise OAuth
173
220
  const configManager = (0, ConfigManager_1.getConfigManager)();
174
221
  let didAuthenticate = false;
175
222
  if (!configManager.isAuthenticated()) {
176
- console.log('\n🔐 Authentication required');
177
- console.log('Opening browser for Google login...\n');
178
- const authService = new AuthService_1.AuthService();
179
- const loginResult = await authService.loginWithGoogle();
180
- if (!loginResult.success) {
181
- console.log(`\n❌ Authentication failed: ${loginResult.error || loginResult.message}`);
182
- process.exit(1);
223
+ const e2eEmail = process.env.RIVET_E2E_EMAIL || process.env.RIVET_TEST_EMAIL;
224
+ const e2ePassword = process.env.RIVET_E2E_PASSWORD || process.env.RIVET_TEST_PASSWORD;
225
+ const proxyUrl = process.env.RIVET_PROXY_URL || configManager.getProxyUrl();
226
+ if (e2eEmail && e2ePassword) {
227
+ const authService = new AuthService_1.AuthService(proxyUrl);
228
+ const loginResult = await authService.loginWithEmailPassword(e2eEmail, e2ePassword);
229
+ if (!loginResult.success) {
230
+ log.error('CI sign-in failed:', loginResult.error || loginResult.message);
231
+ process.exit(1);
232
+ }
233
+ console.log(`\n✅ Signed in as ${loginResult.user?.email} (CI)`);
234
+ if (loginResult.profile) {
235
+ console.log(`💰 Balance: $${loginResult.profile.remaining_spend_usd.toFixed(2)}`);
236
+ }
237
+ didAuthenticate = true;
183
238
  }
184
- console.log(`\n✅ Authenticated as ${loginResult.user?.email}`);
185
- if (loginResult.profile) {
186
- console.log(`💰 Balance: $${loginResult.profile.remaining_spend_usd.toFixed(2)}`);
239
+ if (!didAuthenticate) {
240
+ if (process.env.CI === 'true') {
241
+ console.log('\n❌ E2E auth required: set RIVET_E2E_EMAIL and RIVET_E2E_PASSWORD (or RIVET_TEST_EMAIL and RIVET_TEST_PASSWORD) in repo secrets. Must be e2etest@gmail.com.');
242
+ process.exit(1);
243
+ }
244
+ console.log('\n🔐 Authentication required');
245
+ console.log('Opening browser for Google login...\n');
246
+ const authService = new AuthService_1.AuthService();
247
+ const loginResult = await authService.loginWithGoogle(`http://localhost:${rivetPort}`);
248
+ if (!loginResult.success) {
249
+ console.log(`\n❌ Authentication failed: ${loginResult.error || loginResult.message}`);
250
+ process.exit(1);
251
+ }
252
+ console.log(`\n✅ Authenticated as ${loginResult.user?.email}`);
253
+ if (loginResult.profile) {
254
+ console.log(`💰 Balance: $${loginResult.profile.remaining_spend_usd.toFixed(2)}`);
255
+ }
256
+ didAuthenticate = true;
187
257
  }
188
- didAuthenticate = true;
189
258
  }
190
259
  // Open browser to Rivet UI (only if we didn't just authenticate, since OAuth already opened it)
191
260
  if (!didAuthenticate && !options.noBrowser) {
@@ -234,6 +303,13 @@ const parseArgs = (args) => {
234
303
  options.userPort = Number(userPortValue);
235
304
  }
236
305
  break;
306
+ case '--rivet-port':
307
+ // eslint-disable-next-line no-case-declarations
308
+ const rivetPortValue = args[++i];
309
+ if (rivetPortValue && !isNaN(Number(rivetPortValue))) {
310
+ options.rivetPort = Number(rivetPortValue);
311
+ }
312
+ break;
237
313
  case '-d':
238
314
  case '--debug':
239
315
  options.debug = true;
@@ -297,6 +373,7 @@ OPTIONS:
297
373
  -h, --help Show this help message
298
374
  -v, --version Show version number
299
375
  --user-port PORT Port where your dev server is running (default: 3000)
376
+ --rivet-port PORT Port for Rivet server (default: 4000, or next free if in use)
300
377
  -d, --debug Enable debug logging
301
378
  --no-telemetry Disable anonymous usage analytics (default: enabled)
302
379
  --no-browser Don't automatically open browser (default: enabled)
@@ -307,8 +384,9 @@ OPTIONS:
307
384
  --tailwind-config PATH Path to Tailwind config file (e.g., landing/tailwind.config.ts)
308
385
 
309
386
  EXAMPLES:
310
- rivet # Start Rivet on port 4000, connect to dev server on port 3000
311
- rivet --user-port 5173 # Connect to Vite dev server on port 5173
387
+ rivet # Start Rivet (port auto-selected), connect to dev server on port 3000
388
+ rivet --user-port 5173 # Connect to Vite dev server on port 5173
389
+ rivet --rivet-port 4000 # Use port 4000 for Rivet (fails if in use)
312
390
  rivet --framework static # Serve static HTML from ./index.html
313
391
  rivet --framework static --entry dist/ # Serve static files from ./dist/ directory
314
392
  rivet install claude # Configure Rivet as a Claude Code MCP server
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA4DA,eAAO,MAAM,cAAc,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CA6arE,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA4FA,eAAO,MAAM,cAAc,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,IAAI,CAwiBrE,CAAC"}
@@ -7,7 +7,6 @@ exports.startMCPServer = void 0;
7
7
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
8
8
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
9
9
  const v3_1 = require("zod/v3");
10
- const net_1 = __importDefault(require("net"));
11
10
  const index_core_1 = require("../index-core");
12
11
  const SessionBridgeService_1 = require("../services/SessionBridgeService");
13
12
  const server_1 = require("../server");
@@ -15,6 +14,8 @@ const TelemetryService_1 = require("../services/TelemetryService");
15
14
  const open_1 = __importDefault(require("open"));
16
15
  const index_1 = require("../index");
17
16
  const skillWriter_1 = require("../utils/skillWriter");
17
+ const portUtils_1 = require("../utils/portUtils");
18
+ const child_process_1 = require("child_process");
18
19
  const log = (0, index_core_1.createLogger)('MCPServer');
19
20
  // Dev server command + default port per framework
20
21
  const FRAMEWORK_DEV_CONFIG = {
@@ -25,19 +26,41 @@ const FRAMEWORK_DEV_CONFIG = {
25
26
  svelte: { devCommand: 'dev', defaultPort: 5173 },
26
27
  static: { devCommand: '', defaultPort: 0 },
27
28
  };
28
- /** Find an available TCP port starting from the given port. */
29
- function findFreePort(startPort) {
30
- return new Promise((resolve, reject) => {
31
- const server = net_1.default.createServer();
32
- server.listen(startPort, '127.0.0.1', () => {
33
- const port = server.address().port;
34
- server.close(() => resolve(port));
35
- });
36
- server.on('error', () => {
37
- // Port in use — try next
38
- findFreePort(startPort + 1).then(resolve, reject);
39
- });
40
- });
29
+ /** Build the shell command to start the user's dev server on a specific port. */
30
+ function buildDevServerCommand(framework, packageManager, devCommand, port) {
31
+ // CRA uses PORT env var instead of a CLI flag
32
+ if (framework === 'cra') {
33
+ const args = packageManager === 'npm' ? ['run', devCommand] : [devCommand];
34
+ return { cmd: packageManager, args, env: { PORT: String(port) } };
35
+ }
36
+ // All others (Next.js, Vite, Remix, Svelte) accept --port
37
+ if (packageManager === 'npm') {
38
+ return {
39
+ cmd: 'npm',
40
+ args: ['run', devCommand, '--', '--port', String(port)],
41
+ env: {},
42
+ };
43
+ }
44
+ if (packageManager === 'yarn') {
45
+ return { cmd: 'yarn', args: [devCommand, '--port', String(port)], env: {} };
46
+ }
47
+ return { cmd: 'pnpm', args: [devCommand, '--port', String(port)], env: {} };
48
+ }
49
+ /** Poll until the port responds to HTTP or the timeout is reached. */
50
+ async function waitForPort(port, host, timeoutMs = 60_000) {
51
+ const deadline = Date.now() + timeoutMs;
52
+ while (Date.now() < deadline) {
53
+ try {
54
+ await fetch(`http://${host}:${port}`, {
55
+ signal: AbortSignal.timeout(1000),
56
+ });
57
+ return true;
58
+ }
59
+ catch {
60
+ await new Promise((r) => setTimeout(r, 500));
61
+ }
62
+ }
63
+ return false;
41
64
  }
42
65
  /**
43
66
  * Starts the Rivet MCP server on stdio transport.
@@ -60,6 +83,8 @@ const startMCPServer = async (mcpEditor) => {
60
83
  // Track the Express server
61
84
  let serverHandle = null;
62
85
  let sessionStartedAt = null;
86
+ // Track a dev server we auto-started so we can kill it on close
87
+ let devServerProcess = null;
63
88
  // Flush telemetry before process exits
64
89
  const shutdown = async () => {
65
90
  await telemetry.shutdown();
@@ -84,14 +109,14 @@ const startMCPServer = async (mcpEditor) => {
84
109
  .string()
85
110
  .describe('Path to the project directory. Defaults to current working directory.')
86
111
  .optional(),
87
- port: v3_1.z
88
- .number()
89
- .describe('Port the dev server is running on. Use the detectedPort from detect_project.')
90
- .optional(),
91
112
  framework: v3_1.z
92
113
  .string()
93
114
  .describe('Project framework. Use the framework value from detect_project.')
94
115
  .optional(),
116
+ startPort: v3_1.z
117
+ .number()
118
+ .describe('Preferred starting port for the dev server. Rivet will find the next free port at or above this value. Falls back to the framework default if omitted.')
119
+ .optional(),
95
120
  };
96
121
  const sessionIdArgs = {
97
122
  sessionId: v3_1.z
@@ -137,10 +162,6 @@ const startMCPServer = async (mcpEditor) => {
137
162
  devCommand: 'dev',
138
163
  defaultPort: 3000,
139
164
  };
140
- // Scan for a running dev server on any common port — don't assume the default
141
- const runningServer = framework !== 'static' ? await detection.findRunningDevServer() : null;
142
- const detectedPort = runningServer?.port ?? null;
143
- const portActive = detectedPort !== null || framework === 'static';
144
165
  return {
145
166
  content: [
146
167
  {
@@ -150,8 +171,6 @@ const startMCPServer = async (mcpEditor) => {
150
171
  packageManager,
151
172
  devCommand: devConfig.devCommand,
152
173
  defaultPort: devConfig.defaultPort,
153
- detectedPort,
154
- portActive,
155
174
  projectPath,
156
175
  startCommand: devConfig.devCommand
157
176
  ? `${packageManager} run ${devConfig.devCommand}`
@@ -161,7 +180,7 @@ const startMCPServer = async (mcpEditor) => {
161
180
  ],
162
181
  };
163
182
  });
164
- mcp.tool('open_visual_editor', "Start a Rivet visual editing session. Always call detect_project first and pass its detectedPort and framework values here. Opens the browser with Rivet's visual editor. After calling this, use watch_for_changes in a loop to receive changes as the user works.", openEditorArgs, async (args) => {
183
+ mcp.tool('open_visual_editor', "Start a Rivet visual editing session. Always call detect_project first to get the framework. Rivet will automatically start the dev server on a free port. Opens the browser with Rivet's visual editor. After calling this, use watch_for_changes in a loop to receive changes as the user works.", openEditorArgs, async (args) => {
165
184
  if (bridge.isActive()) {
166
185
  return {
167
186
  content: [
@@ -178,48 +197,133 @@ const startMCPServer = async (mcpEditor) => {
178
197
  }
179
198
  const projectPath = args.projectPath || process.cwd();
180
199
  const framework = args.framework ?? 'nextjs';
181
- const devServerPort = framework === 'static' ? 0 : (args.port ?? 0);
182
- if (framework !== 'static' && !args.port) {
183
- return {
184
- content: [
185
- {
186
- type: 'text',
187
- text: JSON.stringify({
188
- error: 'port is required',
189
- suggestion: 'Call detect_project first, then pass detectedPort and framework as arguments.',
190
- }),
191
- },
192
- ],
193
- isError: true,
200
+ let devServerPort = 0;
201
+ const devServerHost = 'localhost';
202
+ if (framework !== 'static') {
203
+ const frameworkConfig = FRAMEWORK_DEV_CONFIG[framework] ?? {
204
+ devCommand: 'dev',
205
+ defaultPort: 3000,
194
206
  };
207
+ if (!frameworkConfig.devCommand) {
208
+ return {
209
+ content: [
210
+ {
211
+ type: 'text',
212
+ text: JSON.stringify({
213
+ error: 'Cannot auto-start: no dev command configured for this framework.',
214
+ suggestion: 'Start the dev server manually, then call open_visual_editor again.',
215
+ }),
216
+ },
217
+ ],
218
+ isError: true,
219
+ };
220
+ }
221
+ const detection = new index_core_1.ProjectDetectionService();
222
+ const packageManager = await detection.detectPackageManager(projectPath);
223
+ const preferredPort = args.startPort ??
224
+ detection.readConfiguredPort(projectPath) ??
225
+ frameworkConfig.defaultPort;
226
+ devServerPort = await (0, portUtils_1.findAvailablePort)(preferredPort);
227
+ const { cmd, args: cmdArgs, env, } = buildDevServerCommand(framework, packageManager, frameworkConfig.devCommand, devServerPort);
228
+ log.info(`Auto-starting dev server: ${cmd} ${cmdArgs.join(' ')} in ${projectPath}`);
229
+ devServerProcess = (0, child_process_1.spawn)(cmd, cmdArgs, {
230
+ cwd: projectPath,
231
+ env: { ...process.env, ...env },
232
+ stdio: 'pipe',
233
+ detached: false,
234
+ });
235
+ devServerProcess.on('error', (err) => {
236
+ log.error('Dev server process error:', err);
237
+ });
238
+ devServerProcess.on('exit', (code) => {
239
+ log.info(`Dev server exited with code ${code}`);
240
+ devServerProcess = null;
241
+ });
242
+ devServerProcess.stdout?.on('data', (data) => {
243
+ log.debug(`[dev-server] ${data.toString().trim()}`);
244
+ });
245
+ devServerProcess.stderr?.on('data', (data) => {
246
+ log.debug(`[dev-server] ${data.toString().trim()}`);
247
+ });
248
+ const ready = await waitForPort(devServerPort, devServerHost, 30_000);
249
+ if (!ready) {
250
+ devServerProcess?.kill();
251
+ devServerProcess = null;
252
+ return {
253
+ content: [
254
+ {
255
+ type: 'text',
256
+ text: JSON.stringify({
257
+ error: `Dev server did not become ready on port ${devServerPort} within 30s.`,
258
+ suggestion: 'Check that the project has a valid dev script in package.json.',
259
+ }),
260
+ },
261
+ ],
262
+ isError: true,
263
+ };
264
+ }
265
+ log.info(`Dev server ready on ${devServerHost}:${devServerPort}`);
195
266
  }
196
- // Find a free port for Rivet's Express server (avoids conflict with desktop app on 4000)
267
+ // Find a free port for Rivet's Express server (avoids conflict with desktop or other Rivet instances)
197
268
  let rivetPort;
198
269
  try {
199
- rivetPort = await findFreePort(index_1.DEFAULT_PORT);
270
+ rivetPort = await (0, portUtils_1.findAvailablePort)(index_1.DEFAULT_PORT);
271
+ log.info(`Searching for available port starting from ${index_1.DEFAULT_PORT}... found ${rivetPort}`);
200
272
  }
201
- catch {
273
+ catch (error) {
274
+ log.warn(`Port discovery failed, falling back to ${index_1.DEFAULT_PORT}:`, error);
202
275
  rivetPort = index_1.DEFAULT_PORT;
203
276
  }
204
- // Start the Rivet Express server
205
- try {
206
- serverHandle = await (0, server_1.startServer)({
207
- framework,
208
- projectPath,
209
- userPort: devServerPort,
210
- sessionBridge: bridge,
211
- mcpEditor,
212
- skipProcessHandlers: true,
213
- rivetPort,
214
- });
277
+ // Start the Rivet Express server (with retry on EADDRINUSE to avoid races)
278
+ let retries = 0;
279
+ const maxRetries = 5;
280
+ let serverStarted = false;
281
+ while (!serverStarted && retries < maxRetries) {
282
+ try {
283
+ serverHandle = await (0, server_1.startServer)({
284
+ framework,
285
+ projectPath,
286
+ userPort: devServerPort,
287
+ userHost: devServerHost,
288
+ sessionBridge: bridge,
289
+ mcpEditor,
290
+ skipProcessHandlers: true,
291
+ rivetPort,
292
+ });
293
+ serverStarted = true;
294
+ }
295
+ catch (error) {
296
+ if (error?.code === 'EADDRINUSE') {
297
+ retries++;
298
+ rivetPort = await (0, portUtils_1.findAvailablePort)(rivetPort + 1);
299
+ log.debug(`Port in use, retrying with port ${rivetPort} (attempt ${retries}/${maxRetries})`);
300
+ }
301
+ else {
302
+ const message = error instanceof Error ? error.message : 'Server start failed';
303
+ devServerProcess?.kill();
304
+ devServerProcess = null;
305
+ return {
306
+ content: [
307
+ {
308
+ type: 'text',
309
+ text: JSON.stringify({ error: message }),
310
+ },
311
+ ],
312
+ isError: true,
313
+ };
314
+ }
315
+ }
215
316
  }
216
- catch (error) {
217
- const message = error instanceof Error ? error.message : 'Server start failed';
317
+ if (!serverStarted) {
318
+ devServerProcess?.kill();
319
+ devServerProcess = null;
218
320
  return {
219
321
  content: [
220
322
  {
221
323
  type: 'text',
222
- text: JSON.stringify({ error: message }),
324
+ text: JSON.stringify({
325
+ error: `Could not start Rivet server after ${maxRetries} attempts.`,
326
+ }),
223
327
  },
224
328
  ],
225
329
  isError: true,
@@ -235,7 +339,10 @@ const startMCPServer = async (mcpEditor) => {
235
339
  (0, skillWriter_1.writeSkillFileIfNeeded)();
236
340
  }
237
341
  // Track session start
238
- telemetry.trackMCPSessionStart({ framework, devServerStarted: false });
342
+ telemetry.trackMCPSessionStart({
343
+ framework,
344
+ devServerStarted: framework !== 'static',
345
+ });
239
346
  // Open browser
240
347
  const url = `http://localhost:${rivetPort}/rivet`;
241
348
  try {
@@ -254,6 +361,7 @@ const startMCPServer = async (mcpEditor) => {
254
361
  projectPath,
255
362
  framework,
256
363
  rivetPort,
364
+ devServerPort,
257
365
  next_step: `IMPORTANT: You must call watch_for_changes({ sessionId: "${sessionId}" }) RIGHT NOW to wait for the user's changes. Do not wait for the user to ask — call it immediately. It will block until they click "${sendButtonLabel}" in the browser.`,
258
366
  }),
259
367
  },
@@ -379,6 +487,16 @@ const startMCPServer = async (mcpEditor) => {
379
487
  }
380
488
  serverHandle = null;
381
489
  }
490
+ // Kill the dev server if we auto-started it
491
+ if (devServerProcess) {
492
+ try {
493
+ devServerProcess.kill();
494
+ }
495
+ catch (error) {
496
+ log.warn('Error stopping dev server process:', error);
497
+ }
498
+ devServerProcess = null;
499
+ }
382
500
  telemetry.trackMCPSessionEnd({
383
501
  rounds: totalRoundsCompleted,
384
502
  durationMs,