rivet-design 0.5.11 → 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 (33) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +1 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp/server.d.ts.map +1 -1
  5. package/dist/mcp/server.js +172 -40
  6. package/dist/mcp/server.js.map +1 -1
  7. package/dist/proxy-middleware/proxy-config.d.ts +1 -1
  8. package/dist/proxy-middleware/proxy-config.d.ts.map +1 -1
  9. package/dist/proxy-middleware/proxy-config.js +7 -12
  10. package/dist/proxy-middleware/proxy-config.js.map +1 -1
  11. package/dist/server.d.ts +2 -0
  12. package/dist/server.d.ts.map +1 -1
  13. package/dist/server.js +7 -3
  14. package/dist/server.js.map +1 -1
  15. package/dist/services/ProjectDetectionService.d.ts +8 -1
  16. package/dist/services/ProjectDetectionService.d.ts.map +1 -1
  17. package/dist/services/ProjectDetectionService.js +58 -8
  18. package/dist/services/ProjectDetectionService.js.map +1 -1
  19. package/dist/utils/portUtils.d.ts +6 -1
  20. package/dist/utils/portUtils.d.ts.map +1 -1
  21. package/dist/utils/portUtils.js +45 -9
  22. package/dist/utils/portUtils.js.map +1 -1
  23. package/dist/utils/skills/claude-skill.d.ts +3 -3
  24. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  25. package/dist/utils/skills/claude-skill.js +3 -8
  26. package/dist/utils/skills/claude-skill.js.map +1 -1
  27. package/dist/utils/skills/cursor-rules.d.ts +1 -1
  28. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  29. package/dist/utils/skills/cursor-rules.js +2 -7
  30. package/dist/utils/skills/cursor-rules.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/ui/dist/assets/{main-fNNw0nHu.js → main-DhJDeAnr.js} +1 -1
  33. package/src/ui/dist/index.html +1 -1
@@ -1 +1 @@
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,CAiSd,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
@@ -185,6 +185,7 @@ const main = async (args = process.argv.slice(2)) => {
185
185
  while (!serverStarted && retries < maxRetries) {
186
186
  const startServerOptions = {
187
187
  userPort: userDevServerPort,
188
+ userHost: project.devServerHost,
188
189
  framework: project.framework,
189
190
  telemetry,
190
191
  projectPath,
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":"AA6CA,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"}
@@ -15,6 +15,7 @@ const open_1 = __importDefault(require("open"));
15
15
  const index_1 = require("../index");
16
16
  const skillWriter_1 = require("../utils/skillWriter");
17
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,6 +26,42 @@ const FRAMEWORK_DEV_CONFIG = {
25
26
  svelte: { devCommand: 'dev', defaultPort: 5173 },
26
27
  static: { devCommand: '', defaultPort: 0 },
27
28
  };
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;
64
+ }
28
65
  /**
29
66
  * Starts the Rivet MCP server on stdio transport.
30
67
  * Called when the user runs `rivet mcp`.
@@ -46,6 +83,8 @@ const startMCPServer = async (mcpEditor) => {
46
83
  // Track the Express server
47
84
  let serverHandle = null;
48
85
  let sessionStartedAt = null;
86
+ // Track a dev server we auto-started so we can kill it on close
87
+ let devServerProcess = null;
49
88
  // Flush telemetry before process exits
50
89
  const shutdown = async () => {
51
90
  await telemetry.shutdown();
@@ -70,14 +109,14 @@ const startMCPServer = async (mcpEditor) => {
70
109
  .string()
71
110
  .describe('Path to the project directory. Defaults to current working directory.')
72
111
  .optional(),
73
- port: v3_1.z
74
- .number()
75
- .describe('Port the dev server is running on. Use the detectedPort from detect_project.')
76
- .optional(),
77
112
  framework: v3_1.z
78
113
  .string()
79
114
  .describe('Project framework. Use the framework value from detect_project.')
80
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(),
81
120
  };
82
121
  const sessionIdArgs = {
83
122
  sessionId: v3_1.z
@@ -123,10 +162,6 @@ const startMCPServer = async (mcpEditor) => {
123
162
  devCommand: 'dev',
124
163
  defaultPort: 3000,
125
164
  };
126
- // Scan for a running dev server on any common port — don't assume the default
127
- const runningServer = framework !== 'static' ? await detection.findRunningDevServer() : null;
128
- const detectedPort = runningServer?.port ?? null;
129
- const portActive = detectedPort !== null || framework === 'static';
130
165
  return {
131
166
  content: [
132
167
  {
@@ -136,8 +171,6 @@ const startMCPServer = async (mcpEditor) => {
136
171
  packageManager,
137
172
  devCommand: devConfig.devCommand,
138
173
  defaultPort: devConfig.defaultPort,
139
- detectedPort,
140
- portActive,
141
174
  projectPath,
142
175
  startCommand: devConfig.devCommand
143
176
  ? `${packageManager} run ${devConfig.devCommand}`
@@ -147,7 +180,7 @@ const startMCPServer = async (mcpEditor) => {
147
180
  ],
148
181
  };
149
182
  });
150
- 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) => {
151
184
  if (bridge.isActive()) {
152
185
  return {
153
186
  content: [
@@ -164,48 +197,133 @@ const startMCPServer = async (mcpEditor) => {
164
197
  }
165
198
  const projectPath = args.projectPath || process.cwd();
166
199
  const framework = args.framework ?? 'nextjs';
167
- const devServerPort = framework === 'static' ? 0 : (args.port ?? 0);
168
- if (framework !== 'static' && !args.port) {
169
- return {
170
- content: [
171
- {
172
- type: 'text',
173
- text: JSON.stringify({
174
- error: 'port is required',
175
- suggestion: 'Call detect_project first, then pass detectedPort and framework as arguments.',
176
- }),
177
- },
178
- ],
179
- 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,
180
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}`);
181
266
  }
182
267
  // Find a free port for Rivet's Express server (avoids conflict with desktop or other Rivet instances)
183
268
  let rivetPort;
184
269
  try {
185
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}`);
186
272
  }
187
- catch {
273
+ catch (error) {
274
+ log.warn(`Port discovery failed, falling back to ${index_1.DEFAULT_PORT}:`, error);
188
275
  rivetPort = index_1.DEFAULT_PORT;
189
276
  }
190
- // Start the Rivet Express server
191
- try {
192
- serverHandle = await (0, server_1.startServer)({
193
- framework,
194
- projectPath,
195
- userPort: devServerPort,
196
- sessionBridge: bridge,
197
- mcpEditor,
198
- skipProcessHandlers: true,
199
- rivetPort,
200
- });
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
+ }
201
316
  }
202
- catch (error) {
203
- const message = error instanceof Error ? error.message : 'Server start failed';
317
+ if (!serverStarted) {
318
+ devServerProcess?.kill();
319
+ devServerProcess = null;
204
320
  return {
205
321
  content: [
206
322
  {
207
323
  type: 'text',
208
- text: JSON.stringify({ error: message }),
324
+ text: JSON.stringify({
325
+ error: `Could not start Rivet server after ${maxRetries} attempts.`,
326
+ }),
209
327
  },
210
328
  ],
211
329
  isError: true,
@@ -221,7 +339,10 @@ const startMCPServer = async (mcpEditor) => {
221
339
  (0, skillWriter_1.writeSkillFileIfNeeded)();
222
340
  }
223
341
  // Track session start
224
- telemetry.trackMCPSessionStart({ framework, devServerStarted: false });
342
+ telemetry.trackMCPSessionStart({
343
+ framework,
344
+ devServerStarted: framework !== 'static',
345
+ });
225
346
  // Open browser
226
347
  const url = `http://localhost:${rivetPort}/rivet`;
227
348
  try {
@@ -240,6 +361,7 @@ const startMCPServer = async (mcpEditor) => {
240
361
  projectPath,
241
362
  framework,
242
363
  rivetPort,
364
+ devServerPort,
243
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.`,
244
366
  }),
245
367
  },
@@ -365,6 +487,16 @@ const startMCPServer = async (mcpEditor) => {
365
487
  }
366
488
  serverHandle = null;
367
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
+ }
368
500
  telemetry.trackMCPSessionEnd({
369
501
  rounds: totalRoundsCompleted,
370
502
  durationMs,
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { RequestHandler } from 'http-proxy-middleware';
2
- export declare const createUserDevServerProxy: (userPort: number) => RequestHandler;
2
+ export declare const createUserDevServerProxy: (userPort: number, userHost?: string) => RequestHandler;
3
3
  //# sourceMappingURL=proxy-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-config.d.ts","sourceRoot":"","sources":["../../src/proxy-middleware/proxy-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACf,MAAM,uBAAuB,CAAC;AAO/B,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,cAgF3D,CAAC"}
1
+ {"version":3,"file":"proxy-config.d.ts","sourceRoot":"","sources":["../../src/proxy-middleware/proxy-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACf,MAAM,uBAAuB,CAAC;AAO/B,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,WAAU,MAAoB,KAC7B,cA4EF,CAAC"}
@@ -4,27 +4,22 @@ exports.createUserDevServerProxy = void 0;
4
4
  const http_proxy_middleware_1 = require("http-proxy-middleware");
5
5
  const logger_1 = require("../utils/logger");
6
6
  const log = (0, logger_1.createLogger)('ProxyConfig');
7
- const createUserDevServerProxy = (userPort) => {
7
+ const createUserDevServerProxy = (userPort, userHost = '127.0.0.1') => {
8
8
  const proxyOptions = {
9
- target: `http://localhost:${userPort}`,
9
+ target: `http://${userHost}:${userPort}`,
10
10
  changeOrigin: true,
11
11
  // No path rewriting needed since we're proxying all routes by default
12
12
  on: {
13
13
  proxyRes: (proxyRes, _req, _res) => {
14
- // Allow iframe embedding by modifying security headers
15
- proxyRes.headers['x-frame-options'] = 'SAMEORIGIN';
14
+ // Allow iframe embedding by removing restrictive security headers
15
+ delete proxyRes.headers['x-frame-options'];
16
+ delete proxyRes.headers['content-security-policy-report-only'];
16
17
  // Update Content-Security-Policy to allow iframe embedding
17
18
  if (proxyRes.headers['content-security-policy']) {
18
19
  const csp = proxyRes.headers['content-security-policy'];
19
20
  if (typeof csp === 'string') {
20
- // Add 'self' to frame-ancestors if it exists, or add the directive
21
- if (csp.includes('frame-ancestors')) {
22
- proxyRes.headers['content-security-policy'] = csp.replace(/frame-ancestors[^;]*/, "frame-ancestors 'self'");
23
- }
24
- else {
25
- proxyRes.headers['content-security-policy'] =
26
- csp + "; frame-ancestors 'self'";
27
- }
21
+ // Remove frame-ancestors to allow embedding anywhere during development
22
+ proxyRes.headers['content-security-policy'] = csp.replace(/frame-ancestors[^;]*;?/, '');
28
23
  }
29
24
  }
30
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-config.js","sourceRoot":"","sources":["../../src/proxy-middleware/proxy-config.ts"],"names":[],"mappings":";;;AAAA,iEAI+B;AAE/B,4CAA+C;AAG/C,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC;AAEjC,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAkB,EAAE;IAC3E,MAAM,YAAY,GAAY;QAC5B,MAAM,EAAE,oBAAoB,QAAQ,EAAE;QACtC,YAAY,EAAE,IAAI;QAClB,sEAAsE;QACtE,EAAE,EAAE;YACF,QAAQ,EAAE,CACR,QAAyB,EACzB,IAAqB,EACrB,IAAoB,EACpB,EAAE;gBACF,uDAAuD;gBACvD,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;gBAEnD,2DAA2D;gBAC3D,IAAI,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC;oBAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;oBACxD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC5B,mEAAmE;wBACnE,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG,GAAG,CAAC,OAAO,CACvD,sBAAsB,EACtB,wBAAwB,CACzB,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC;gCACzC,GAAG,GAAG,0BAA0B,CAAC;wBACrC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YACD,QAAQ,EAAE,CACR,QAAuB,EACvB,GAAoB,EACpB,IAAoB,EACpB,EAAE;gBACF,wDAAwD;gBACxD,iEAAiE;gBACjE,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACrB,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3D,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC;gBAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAClC,GAAG,CAAC,KAAK,CACP,YAAY,GAAG,CAAC,MAAM,IAAI,YAAY,OAAO,WAAW,iBAAiB,QAAQ,EAAE,CACpF,CAAC;YACJ,CAAC;YACD,KAAK,EAAE,CACL,GAAU,EACV,GAAoB,EACpB,GAA6C,EAC7C,EAAE;gBACF,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpE,wDAAwD;gBACxD,IAAI,GAAG,IAAI,WAAW,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;wBACb,KAAK,EAAE,aAAa;wBACpB,OAAO,EAAE,mDAAmD,QAAQ,EAAE;wBACtE,OAAO,EAAE,GAAG,CAAC,OAAO;qBACrB,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QACD,2DAA2D;QAC3D,EAAE,EAAE,IAAI;QACR,yBAAyB;QACzB,YAAY,EAAE,MAAM,EAAE,QAAQ;QAC9B,OAAO,EAAE,MAAM,EAAE,QAAQ;KAC1B,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,6CAAqB,EAAC,YAAY,CAAC,CAAC;IAEvD,GAAG,CAAC,IAAI,CAAC,uCAAuC,QAAQ,cAAc,CAAC,CAAC;IAExE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAhFW,QAAA,wBAAwB,4BAgFnC"}
1
+ {"version":3,"file":"proxy-config.js","sourceRoot":"","sources":["../../src/proxy-middleware/proxy-config.ts"],"names":[],"mappings":";;;AAAA,iEAI+B;AAE/B,4CAA+C;AAG/C,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,aAAa,CAAC,CAAC;AAEjC,MAAM,wBAAwB,GAAG,CACtC,QAAgB,EAChB,WAAmB,WAAW,EACd,EAAE;IAClB,MAAM,YAAY,GAAY;QAC5B,MAAM,EAAE,UAAU,QAAQ,IAAI,QAAQ,EAAE;QACxC,YAAY,EAAE,IAAI;QAClB,sEAAsE;QACtE,EAAE,EAAE;YACF,QAAQ,EAAE,CACR,QAAyB,EACzB,IAAqB,EACrB,IAAoB,EACpB,EAAE;gBACF,kEAAkE;gBAClE,OAAO,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAC3C,OAAO,QAAQ,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;gBAE/D,2DAA2D;gBAC3D,IAAI,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC;oBAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;oBACxD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC5B,wEAAwE;wBACxE,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG,GAAG,CAAC,OAAO,CACvD,wBAAwB,EACxB,EAAE,CACH,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,QAAQ,EAAE,CACR,QAAuB,EACvB,GAAoB,EACpB,IAAoB,EACpB,EAAE;gBACF,wDAAwD;gBACxD,iEAAiE;gBACjE,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACrB,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3D,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC;gBAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAClC,GAAG,CAAC,KAAK,CACP,YAAY,GAAG,CAAC,MAAM,IAAI,YAAY,OAAO,WAAW,iBAAiB,QAAQ,EAAE,CACpF,CAAC;YACJ,CAAC;YACD,KAAK,EAAE,CACL,GAAU,EACV,GAAoB,EACpB,GAA6C,EAC7C,EAAE;gBACF,GAAG,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpE,wDAAwD;gBACxD,IAAI,GAAG,IAAI,WAAW,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;wBACb,KAAK,EAAE,aAAa;wBACpB,OAAO,EAAE,mDAAmD,QAAQ,EAAE;wBACtE,OAAO,EAAE,GAAG,CAAC,OAAO;qBACrB,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QACD,2DAA2D;QAC3D,EAAE,EAAE,IAAI;QACR,yBAAyB;QACzB,YAAY,EAAE,MAAM,EAAE,QAAQ;QAC9B,OAAO,EAAE,MAAM,EAAE,QAAQ;KAC1B,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,6CAAqB,EAAC,YAAY,CAAC,CAAC;IAEvD,GAAG,CAAC,IAAI,CAAC,uCAAuC,QAAQ,cAAc,CAAC,CAAC;IAExE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AA/EW,QAAA,wBAAwB,4BA+EnC"}
package/dist/server.d.ts CHANGED
@@ -17,6 +17,8 @@ export type ServerOptions = Omit<CLIOptions, 'help' | 'version' | 'debug'> & {
17
17
  skipProcessHandlers?: boolean;
18
18
  /** Explicit port for the Rivet Express server. Defaults to DEFAULT_PORT (4000). */
19
19
  rivetPort?: number;
20
+ /** The host where the user's dev server is running. Defaults to '127.0.0.1'. */
21
+ userHost?: string;
20
22
  };
21
23
  export type ServerHandle = {
22
24
  close: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAmC,MAAM,GAAG,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAK/D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAK/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAgCvE,eAAO,MAAM,YAAY,QAAkB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG;IAC3E,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wHAAwH;IACxH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAS,aAAa,KACrB,OAAO,CAAC,YAAY,CA0RtB,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAmC,MAAM,GAAG,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAK/D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAK/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAmCvE,eAAO,MAAM,YAAY,QAAkB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG;IAC3E,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wHAAwH;IACxH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAS,aAAa,KACrB,OAAO,CAAC,YAAY,CA+RtB,CAAC"}
package/dist/server.js CHANGED
@@ -66,19 +66,23 @@ const resolveUiPath = () => {
66
66
  const devPath = path_1.default.join(__dirname, '../src/ui/dist');
67
67
  // Check bundled path first (for esbuild bundled CLI)
68
68
  if (fs_1.default.existsSync(bundledPath)) {
69
+ log.info(`Using bundled UI path: ${bundledPath}`);
69
70
  return bundledPath;
70
71
  }
71
72
  // Check production path (for electron-packaged app)
72
73
  if (fs_1.default.existsSync(productionPath)) {
74
+ log.info(`Using production UI path: ${productionPath}`);
73
75
  return productionPath;
74
76
  }
75
77
  // Fall back to development path
78
+ log.info(`Using development UI path: ${devPath}`);
76
79
  return devPath;
77
80
  };
78
81
  exports.DIST_UI_PATH = resolveUiPath();
79
82
  const startServer = async (options) => {
80
- const { userPort, telemetry, projectPath, framework, staticEntry, styleFramework, tailwindConfig, sessionBridge, mcpEditor, skipProcessHandlers, } = options;
83
+ const { userPort, userHost, telemetry, projectPath, framework, staticEntry, styleFramework, tailwindConfig, sessionBridge, mcpEditor, skipProcessHandlers, } = options;
81
84
  const userPortWithFallback = userPort ?? _1.DEFAULT_USER_PORT;
85
+ const userHostWithFallback = userHost ?? '127.0.0.1';
82
86
  if (process.env.SENTRY_DSN) {
83
87
  Sentry.init({
84
88
  dsn: process.env.SENTRY_DSN,
@@ -222,14 +226,14 @@ const startServer = async (options) => {
222
226
  // Skip proxy setup for static apps
223
227
  let userDevProxy = null;
224
228
  if (framework !== 'static') {
225
- userDevProxy = (0, proxy_config_1.createUserDevServerProxy)(userPortWithFallback);
229
+ userDevProxy = (0, proxy_config_1.createUserDevServerProxy)(userPortWithFallback, userHostWithFallback);
226
230
  // Use a more explicit catch-all that works with Express
227
231
  app.get('*', userDevProxy);
228
232
  app.post('*', userDevProxy);
229
233
  app.put('*', userDevProxy);
230
234
  app.delete('*', userDevProxy);
231
235
  app.patch('*', userDevProxy);
232
- log.info(`Proxying all unmatched routes to user dev server on localhost:${userPortWithFallback}`);
236
+ log.info(`Proxying all unmatched routes to user dev server on ${userHostWithFallback}:${userPortWithFallback}`);
233
237
  }
234
238
  else {
235
239
  log.info(`${framework} mode - skipping proxy setup`);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ type Project = {
2
2
  id: string;
3
3
  path: string;
4
4
  devServerPort: number;
5
+ devServerHost?: string;
5
6
  status: 'detected' | 'connected' | 'error';
6
7
  packageManager: 'npm' | 'yarn' | 'pnpm';
7
8
  framework: Framework;
@@ -11,8 +12,14 @@ export type Framework = 'nextjs' | 'vite' | 'cra' | 'remix' | 'svelte' | 'static
11
12
  export declare class ProjectDetectionService {
12
13
  detectFramework(projectPath: string): Framework;
13
14
  detectPackageManager(projectPath: string): Promise<'npm' | 'yarn' | 'pnpm'>;
14
- findRunningDevServer(excludePorts?: number[]): Promise<{
15
+ /**
16
+ * Reads the configured dev server port from framework config files in the project.
17
+ * Returns undefined if no port can be determined from config.
18
+ */
19
+ readConfiguredPort(projectPath: string): number | undefined;
20
+ findRunningDevServer(projectPath: string, excludePorts?: number[]): Promise<{
15
21
  port: number;
22
+ host: string;
16
23
  } | null>;
17
24
  detectProject(projectPath: string, overrideFramework?: Framework, entryPath?: string, excludePorts?: number[]): Promise<Project>;
18
25
  isPortActive(port: number): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectDetectionService.d.ts","sourceRoot":"","sources":["../../src/services/ProjectDetectionService.ts"],"names":[],"mappings":"AAOA,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IAC3C,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,QAAQ,CAAC;AAgDb,qBAAa,uBAAuB;IAClC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;IAyCzC,oBAAoB,CACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAgB7B,oBAAoB,CACxB,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAiC7B,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,SAAS,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,OAAO,CAAC;IAkDnB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAkB7C"}
1
+ {"version":3,"file":"ProjectDetectionService.d.ts","sourceRoot":"","sources":["../../src/services/ProjectDetectionService.ts"],"names":[],"mappings":"AAOA,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IAC3C,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,QAAQ,CAAC;AAgDb,qBAAa,uBAAuB;IAClC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;IAyCzC,oBAAoB,CACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAgBnC;;;OAGG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IA4BrD,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA4D3C,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,SAAS,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,OAAO,CAAC;IAwDnB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAkB7C"}
@@ -91,10 +91,45 @@ class ProjectDetectionService {
91
91
  // Default to npm
92
92
  return 'npm';
93
93
  }
94
- async findRunningDevServer(excludePorts = []) {
95
- const commonPorts = [3000, 5173, 3001, 3002, 5174, 8080, 4200, 8000];
94
+ /**
95
+ * Reads the configured dev server port from framework config files in the project.
96
+ * Returns undefined if no port can be determined from config.
97
+ */
98
+ readConfiguredPort(projectPath) {
99
+ const viteConfigFiles = [
100
+ 'vite.config.ts',
101
+ 'vite.config.js',
102
+ 'vite.config.mjs',
103
+ ];
104
+ for (const configFile of viteConfigFiles) {
105
+ const configPath = path_1.default.join(projectPath, configFile);
106
+ if (fs_1.default.existsSync(configPath)) {
107
+ try {
108
+ const content = fs_1.default.readFileSync(configPath, 'utf8');
109
+ // Match server: { ... port: NNNN ... } (handles multiline and nested objects like proxy: { ... })
110
+ const match = content.match(/server\s*:\s*\{((?:[^{}]|\{[^{}]*\})*)port\s*:\s*(\d+)/s);
111
+ if (match) {
112
+ const port = parseInt(match[2], 10);
113
+ log.debug(`Found configured port ${port} in ${configFile}`);
114
+ return port;
115
+ }
116
+ }
117
+ catch {
118
+ // ignore parse errors
119
+ }
120
+ }
121
+ }
122
+ return undefined;
123
+ }
124
+ async findRunningDevServer(projectPath, excludePorts = []) {
125
+ const fallbackPorts = [3000, 5173, 3001, 3002, 5174, 8080, 4200, 8000];
126
+ // Put the project's configured port first so it's always tried before fallbacks
127
+ const configuredPort = this.readConfiguredPort(projectPath);
128
+ const commonPorts = configuredPort
129
+ ? [configuredPort, ...fallbackPorts.filter((p) => p !== configuredPort)]
130
+ : fallbackPorts;
96
131
  // Try multiple hosts to handle IPv4/IPv6 differences
97
- const hosts = ['localhost', '127.0.0.1', '[::1]'];
132
+ const hosts = ['127.0.0.1', 'localhost', '[::1]'];
98
133
  for (const port of commonPorts) {
99
134
  // Never pick up a Rivet instance as the dev server (default 4000, but can be dynamic)
100
135
  if (port >= 4000 && port <= 4010)
@@ -105,16 +140,28 @@ class ProjectDetectionService {
105
140
  for (const host of hosts) {
106
141
  try {
107
142
  const response = await fetch(`http://${host}:${port}`, {
108
- method: 'HEAD',
143
+ method: 'GET', // Changed from HEAD to GET to check content
109
144
  signal: AbortSignal.timeout(2000),
110
145
  });
111
146
  if (response.ok) {
112
- log.info(`Found running dev server on port ${port} (via ${host})`);
113
- return { port };
147
+ const text = await response.text();
148
+ // Basic heuristic: check if the project name or some unique string is in the source
149
+ // Or just check if it's NOT a Rivet desktop app
150
+ if (text.includes('rivet-desktop-renderer') ||
151
+ text.includes('onUpdateAvailable')) {
152
+ log.debug(`Found Rivet desktop renderer on port ${port}, skipping...`);
153
+ continue;
154
+ }
155
+ log.info(`Found running dev server on port ${port} (via ${host}). Status: ${response.status}`);
156
+ return { port, host };
157
+ }
158
+ else {
159
+ log.debug(`Checked http://${host}:${port}, but returned status ${response.status}`);
114
160
  }
115
161
  }
116
- catch {
162
+ catch (error) {
117
163
  // Host/port not accessible, try next
164
+ log.trace(`Could not reach http://${host}:${port}: ${error.message}`);
118
165
  continue;
119
166
  }
120
167
  }
@@ -128,12 +175,14 @@ class ProjectDetectionService {
128
175
  const framework = overrideFramework || this.detectFramework(projectPath);
129
176
  // Skip dev server detection for static apps
130
177
  let devServerPort = 0;
178
+ let devServerHost = '127.0.0.1';
131
179
  if (framework !== 'static') {
132
- const runningServer = await this.findRunningDevServer(excludePorts);
180
+ const runningServer = await this.findRunningDevServer(projectPath, excludePorts);
133
181
  if (!runningServer) {
134
182
  throw new Error('No running dev server found. Please start your dev server first (e.g., npm run dev)');
135
183
  }
136
184
  devServerPort = runningServer.port;
185
+ devServerHost = runningServer.host;
137
186
  }
138
187
  // Handle entry point for static projects
139
188
  let entryPoint;
@@ -151,6 +200,7 @@ class ProjectDetectionService {
151
200
  framework,
152
201
  path: projectPath,
153
202
  devServerPort,
203
+ devServerHost,
154
204
  status: 'detected',
155
205
  packageManager,
156
206
  entryPoint,
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectDetectionService.js","sourceRoot":"","sources":["../../src/services/ProjectDetectionService.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAC/C,4CAAoB;AACpB,gDAAwB;AACxB,8CAAsB;AAEtB,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,yBAAyB,CAAC,CAAC;AA4BpD,MAAM,iBAAiB,GAAsB;IAC3C;QACE,IAAI,EAAE,QAAQ;QACd,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAC/B,WAAW,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;QACpE,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAC/B,WAAW,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QACjD,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,KAAK;QACX,qBAAqB,EAAE,CAAC,eAAe,CAAC;QACxC,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,qBAAqB,EAAE,CAAC,aAAa,CAAC;QACtC,WAAW,EAAE,CAAC,iBAAiB,CAAC;QAChC,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,qBAAqB,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC;QAClD,WAAW,EAAE,CAAC,kBAAkB,CAAC;QACjC,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAEF,MAAa,uBAAuB;IAClC,eAAe,CAAC,WAAmB;QACjC,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAE/D,GAAG,CAAC,KAAK,CAAC,gCAAgC,eAAe,EAAE,CAAC,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;QAE1C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,eAAe,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG;YACnB,GAAG,WAAW,CAAC,YAAY;YAC3B,GAAG,WAAW,CAAC,eAAe;SAC/B,CAAC;QAEF,8BAA8B;QAC9B,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBACnE,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;YAEH,IAAI,YAAY,EAAE,CAAC;gBACjB,+CAA+C;gBAC/C,MAAM,aAAa,GACjB,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;oBAC/B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CACrC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAClD,CAAC;gBAEJ,IAAI,aAAa,EAAE,CAAC;oBAClB,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC;oBAC9C,OAAO,MAAM,CAAC,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,WAAmB;QAEnB,sBAAsB;QACtB,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iBAAiB;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,eAAyB,EAAE;QAE3B,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrE,qDAAqD;QACrD,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAElD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,sFAAsF;YACtF,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;gBAAE,SAAS;YAC3C,gFAAgF;YAChF,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,EAAE;wBACrD,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;qBAClC,CAAC,CAAC;oBAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;wBAChB,GAAG,CAAC,IAAI,CAAC,oCAAoC,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC;wBACnE,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;oBACrC,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAmB,EACnB,iBAA6B,EAC7B,SAAkB,EAClB,eAAyB,EAAE;QAE3B,GAAG,CAAC,IAAI,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAEjD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,iBAAiB,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAEzE,4CAA4C;QAC5C,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAEpE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;YACJ,CAAC;YAED,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;QACrC,CAAC;QAED,yCAAyC;QACzC,IAAI,UAA8B,CAAC;QACnC,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,UAAU,GAAG,SAAS,IAAI,YAAY,CAAC;YACvC,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAEzD,8BAA8B;YAC9B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,0BAA0B,UAAU,sEAAsE,CAC3G,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,cAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC9B,SAAS;YACT,IAAI,EAAE,WAAW;YACjB,aAAa;YACb,MAAM,EAAE,UAAU;YAClB,cAAc;YACd,UAAU;SACX,CAAC;QAEF,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,aAAG,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAxKD,0DAwKC"}
1
+ {"version":3,"file":"ProjectDetectionService.js","sourceRoot":"","sources":["../../src/services/ProjectDetectionService.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * Finds an available TCP port starting from startPort.
3
- * Tries startPort, then startPort+1, etc. until a free port is found.
3
+ * A port is considered available only if:
4
+ * 1. We can bind to it (no process owns it on 0.0.0.0 / ::)
5
+ * 2. Nothing is already accepting connections on 127.0.0.1 or ::1
6
+ * (catches servers bound to ::1 that don't block an IPv4 bind)
7
+ *
8
+ * Throws if no free port is found before MAX_PORT (65535).
4
9
  */
5
10
  export declare function findAvailablePort(startPort: number): Promise<number>;
6
11
  //# sourceMappingURL=portUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"portUtils.d.ts","sourceRoot":"","sources":["../../src/utils/portUtils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWpE"}
1
+ {"version":3,"file":"portUtils.d.ts","sourceRoot":"","sources":["../../src/utils/portUtils.ts"],"names":[],"mappings":"AAiCA;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB1E"}
@@ -5,20 +5,56 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.findAvailablePort = findAvailablePort;
7
7
  const net_1 = __importDefault(require("net"));
8
+ const MAX_PORT = 65535;
9
+ /**
10
+ * Returns true if something is already accepting TCP connections on the port.
11
+ * Checks both IPv4 (127.0.0.1) and IPv6 (::1) since a server bound to ::1
12
+ * won't block an IPv4 bind but will still serve traffic via 'localhost'.
13
+ */
14
+ function isPortInUse(port) {
15
+ function checkHost(host) {
16
+ return new Promise((resolve) => {
17
+ const socket = net_1.default.connect(port, host);
18
+ socket.setTimeout(300);
19
+ socket.on('connect', () => {
20
+ socket.destroy();
21
+ resolve(true);
22
+ });
23
+ socket.on('error', () => {
24
+ socket.destroy();
25
+ resolve(false);
26
+ });
27
+ socket.on('timeout', () => {
28
+ socket.destroy();
29
+ resolve(false);
30
+ });
31
+ });
32
+ }
33
+ return Promise.all([checkHost('127.0.0.1'), checkHost('::1')]).then(([v4, v6]) => v4 || v6);
34
+ }
8
35
  /**
9
36
  * Finds an available TCP port starting from startPort.
10
- * Tries startPort, then startPort+1, etc. until a free port is found.
37
+ * A port is considered available only if:
38
+ * 1. We can bind to it (no process owns it on 0.0.0.0 / ::)
39
+ * 2. Nothing is already accepting connections on 127.0.0.1 or ::1
40
+ * (catches servers bound to ::1 that don't block an IPv4 bind)
41
+ *
42
+ * Throws if no free port is found before MAX_PORT (65535).
11
43
  */
12
- function findAvailablePort(startPort) {
13
- return new Promise((resolve, reject) => {
44
+ async function findAvailablePort(startPort) {
45
+ if (startPort > MAX_PORT) {
46
+ throw new Error(`No available port found up to ${MAX_PORT}`);
47
+ }
48
+ const bindable = await new Promise((resolve) => {
14
49
  const server = net_1.default.createServer();
15
- server.listen(startPort, '127.0.0.1', () => {
16
- const port = server.address().port;
17
- server.close(() => resolve(port));
18
- });
19
- server.on('error', () => {
20
- findAvailablePort(startPort + 1).then(resolve, reject);
50
+ server.listen(startPort, () => {
51
+ server.close(() => resolve(true));
21
52
  });
53
+ server.on('error', () => resolve(false));
22
54
  });
55
+ if (!bindable || (await isPortInUse(startPort))) {
56
+ return findAvailablePort(startPort + 1);
57
+ }
58
+ return startPort;
23
59
  }
24
60
  //# sourceMappingURL=portUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"portUtils.js","sourceRoot":"","sources":["../../src/utils/portUtils.ts"],"names":[],"mappings":";;;;;AAMA,8CAWC;AAjBD,8CAAsB;AAEtB;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,SAAiB;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,aAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE;YACzC,MAAM,IAAI,GAAI,MAAM,CAAC,OAAO,EAAsB,CAAC,IAAI,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"portUtils.js","sourceRoot":"","sources":["../../src/utils/portUtils.ts"],"names":[],"mappings":";;;;;AA0CA,8CAkBC;AA5DD,8CAAsB;AAEtB,MAAM,QAAQ,GAAG,KAAK,CAAC;AAEvB;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,SAAS,SAAS,CAAC,IAAY;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,aAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CACjE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IACvD,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,aAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,6 +1,6 @@
1
- export declare const CLAUDE_SKILL_VERSION = 4;
2
- export declare const CLAUDE_SKILL_VERSION_MARKER = "[//]: # (rivet-skill-version: 4)";
1
+ export declare const CLAUDE_SKILL_VERSION = 5;
2
+ export declare const CLAUDE_SKILL_VERSION_MARKER = "[//]: # (rivet-skill-version: 5)";
3
3
  export declare const CLAUDE_SKILL_DIR = "rivet";
4
4
  export declare const CLAUDE_SKILL_FILENAME = "SKILL.md";
5
- export declare const CLAUDE_SKILL_CONTENT = "---\nname: rivet\ndescription: Open the Rivet visual editor to make visual or UI changes to a running web app. Invoke when the user says \"open rivet\", \"use rivet\", \"/rivet\", or wants to visually edit their app.\n---\n\n[//]: # (rivet-skill-version: 4)\n# Rivet Visual Editor\n\nUse these tools to make visual changes to a running web app and apply them to source code.\n\n## Starting a session\n\n1. Call `detect_project` \u2014 returns `detectedPort` (the actual running port, may differ from `defaultPort`) and `portActive`\n2. If `portActive` is false, start the dev server in the background:\n ```bash\n cd {projectPath} && {packageManager} run {devCommand} &\n ```\n Then call `detect_project` again until `portActive` is true\n3. Call `open_visual_editor({ port: detectedPort })` \u2014 always pass `detectedPort`, never assume the default\n4. Tell the user: \"Rivet is open \u2014 make your visual changes and click 'Send to Claude Code' when ready.\"\n\n## Editing loop\n\n1. Call `watch_for_changes({ sessionId })` \u2014 blocks until the user clicks \"Send to Claude Code\" (up to 60s by default)\n2. If it times out (`hasChanges: false`), call it again to keep waiting\n3. When `hasChanges: true`, apply the changes to the source files listed in `sourceFiles`\n4. Hot reload happens automatically after file changes\n5. Tell the user what you changed, then loop back to step 1\n\n## Ending a session\n\nWhen the user says they're done, call `close_visual_editor({ sessionId })`.\n\n## Rules\n\n- **Always call `detect_project` first** \u2014 never assume the dev server is running\n- **Never auto-commit** after applying visual changes \u2014 let the user decide\n- Use `watch_for_changes` for interactive sessions, not `get_pending_changes`\n- `get_pending_changes` is a non-blocking immediate check \u2014 only use it to poll without blocking\n- The dev server stays running after `close_visual_editor`\n";
5
+ export declare const CLAUDE_SKILL_CONTENT = "---\nname: rivet\ndescription: Open the Rivet visual editor to make visual or UI changes to a running web app. Invoke when the user says \"open rivet\", \"use rivet\", \"/rivet\", or wants to visually edit their app.\n---\n\n[//]: # (rivet-skill-version: 5)\n# Rivet Visual Editor\n\nUse these tools to make visual changes to a running web app and apply them to source code.\n\n## Starting a session\n\n1. Call `detect_project` \u2014 returns project info including `framework` and `projectPath`\n2. Call `open_visual_editor({ projectPath, framework })` \u2014 do NOT pass `startPort` or any port; the tool handles port selection automatically\n4. Tell the user: \"Rivet is open \u2014 make your visual changes and click 'Send to Claude Code' when ready.\"\n\n## Editing loop\n\n1. Call `watch_for_changes({ sessionId })` \u2014 blocks until the user clicks \"Send to Claude Code\" (up to 60s by default)\n2. If it times out (`hasChanges: false`), call it again to keep waiting\n3. When `hasChanges: true`, apply the changes to the source files listed in `sourceFiles`\n4. Hot reload happens automatically after file changes\n5. Tell the user what you changed, then loop back to step 1\n\n## Ending a session\n\nWhen the user says they're done, call `close_visual_editor({ sessionId })`.\n\n## Rules\n\n- **Always call `detect_project` first** \u2014 never assume the dev server is running\n- **Never auto-commit** after applying visual changes \u2014 let the user decide\n- Use `watch_for_changes` for interactive sessions, not `get_pending_changes`\n- `get_pending_changes` is a non-blocking immediate check \u2014 only use it to poll without blocking\n- The dev server stays running after `close_visual_editor`\n";
6
6
  //# sourceMappingURL=claude-skill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-skill.d.ts","sourceRoot":"","sources":["../../../src/utils/skills/claude-skill.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,2BAA2B,qCAA2D,CAAC;AAEpG,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAEhD,eAAO,MAAM,oBAAoB,g5DAwChC,CAAC"}
1
+ {"version":3,"file":"claude-skill.d.ts","sourceRoot":"","sources":["../../../src/utils/skills/claude-skill.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,2BAA2B,qCAA2D,CAAC;AAEpG,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAEhD,eAAO,MAAM,oBAAoB,wrDAmChC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CLAUDE_SKILL_CONTENT = exports.CLAUDE_SKILL_FILENAME = exports.CLAUDE_SKILL_DIR = exports.CLAUDE_SKILL_VERSION_MARKER = exports.CLAUDE_SKILL_VERSION = void 0;
4
- exports.CLAUDE_SKILL_VERSION = 4;
4
+ exports.CLAUDE_SKILL_VERSION = 5;
5
5
  exports.CLAUDE_SKILL_VERSION_MARKER = `[//]: # (rivet-skill-version: ${exports.CLAUDE_SKILL_VERSION})`;
6
6
  exports.CLAUDE_SKILL_DIR = 'rivet';
7
7
  exports.CLAUDE_SKILL_FILENAME = 'SKILL.md';
@@ -17,13 +17,8 @@ Use these tools to make visual changes to a running web app and apply them to so
17
17
 
18
18
  ## Starting a session
19
19
 
20
- 1. Call \`detect_project\` — returns \`detectedPort\` (the actual running port, may differ from \`defaultPort\`) and \`portActive\`
21
- 2. If \`portActive\` is false, start the dev server in the background:
22
- \`\`\`bash
23
- cd {projectPath} && {packageManager} run {devCommand} &
24
- \`\`\`
25
- Then call \`detect_project\` again until \`portActive\` is true
26
- 3. Call \`open_visual_editor({ port: detectedPort })\` — always pass \`detectedPort\`, never assume the default
20
+ 1. Call \`detect_project\` — returns project info including \`framework\` and \`projectPath\`
21
+ 2. Call \`open_visual_editor({ projectPath, framework })\` do NOT pass \`startPort\` or any port; the tool handles port selection automatically
27
22
  4. Tell the user: "Rivet is open — make your visual changes and click 'Send to Claude Code' when ready."
28
23
 
29
24
  ## Editing loop
@@ -1 +1 @@
1
- {"version":3,"file":"claude-skill.js","sourceRoot":"","sources":["../../../src/utils/skills/claude-skill.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,CAAC,CAAC;AACzB,QAAA,2BAA2B,GAAG,iCAAiC,4BAAoB,GAAG,CAAC;AAEvF,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAEnC,QAAA,oBAAoB,GAAG;;;;;EAKlC,mCAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC5B,CAAC"}
1
+ {"version":3,"file":"claude-skill.js","sourceRoot":"","sources":["../../../src/utils/skills/claude-skill.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,CAAC,CAAC;AACzB,QAAA,2BAA2B,GAAG,iCAAiC,4BAAoB,GAAG,CAAC;AAEvF,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAEnC,QAAA,oBAAoB,GAAG;;;;;EAKlC,mCAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8B5B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export declare const CURSOR_RULES_VERSION = 3;
2
2
  export declare const CURSOR_RULES_FILENAME = "rivet.mdc";
3
3
  export declare const CURSOR_RULES_VERSION_MARKER = "rivet-rules-version: 3";
4
- export declare const CURSOR_RULES_CONTENT = "---\ndescription: Rivet visual editor \u2014 apply when the user says \"open rivet\", \"open the visual editor\", or wants to make visual/UI changes to their web app\nalwaysApply: false\n---\n<!-- rivet-rules-version: 3 -->\n# Rivet Visual Editor\n\nUse these tools to make visual changes to a running web app and apply them to source code.\n\n> Tip: type `@rivet.mdc` in chat to invoke this rule manually.\n\n## Starting a session\n\n1. Call `detect_project` \u2014 returns `detectedPort` (the actual running port, may differ from `defaultPort`) and `portActive`\n2. If `portActive` is false, start the dev server in the background:\n ```bash\n cd {projectPath} && {packageManager} run {devCommand} &\n ```\n Then call `detect_project` again until `portActive` is true\n3. Call `open_visual_editor({ port: detectedPort })` \u2014 always pass `detectedPort`, never assume the default\n4. Tell the user: \"Rivet is open \u2014 make your visual changes and click 'Send to Cursor' when ready.\"\n\n## Editing loop\n\n1. Call `watch_for_changes({ sessionId })` \u2014 blocks until the user clicks \"Send to Cursor\" (up to 60s by default)\n2. If it times out (`hasChanges: false`), call it again to keep waiting\n3. When `hasChanges: true`, apply the changes to the source files listed in `sourceFiles`\n4. Hot reload happens automatically after file changes\n5. Tell the user what you changed, then loop back to step 1\n\n## Ending a session\n\nWhen the user says they're done, call `close_visual_editor({ sessionId })`.\n\n## Rules\n\n- **Always call `detect_project` first** \u2014 never assume the dev server is running\n- **Never auto-commit** after applying visual changes \u2014 let the user decide\n- Use `watch_for_changes` for interactive sessions, not `get_pending_changes`\n- `get_pending_changes` is a non-blocking immediate check \u2014 only use it to poll without blocking\n- The dev server stays running after `close_visual_editor`\n";
4
+ export declare const CURSOR_RULES_CONTENT = "---\ndescription: Rivet visual editor \u2014 apply when the user says \"open rivet\", \"open the visual editor\", or wants to make visual/UI changes to their web app\nalwaysApply: false\n---\n<!-- rivet-rules-version: 3 -->\n# Rivet Visual Editor\n\nUse these tools to make visual changes to a running web app and apply them to source code.\n\n> Tip: type `@rivet.mdc` in chat to invoke this rule manually.\n\n## Starting a session\n\n1. Call `detect_project` \u2014 returns project info including `framework` and `projectPath`\n2. Call `open_visual_editor({ projectPath, framework })` \u2014 do NOT pass `startPort` or any port; the tool handles port selection automatically\n4. Tell the user: \"Rivet is open \u2014 make your visual changes and click 'Send to Cursor' when ready.\"\n\n## Editing loop\n\n1. Call `watch_for_changes({ sessionId })` \u2014 blocks until the user clicks \"Send to Cursor\" (up to 60s by default)\n2. If it times out (`hasChanges: false`), call it again to keep waiting\n3. When `hasChanges: true`, apply the changes to the source files listed in `sourceFiles`\n4. Hot reload happens automatically after file changes\n5. Tell the user what you changed, then loop back to step 1\n\n## Ending a session\n\nWhen the user says they're done, call `close_visual_editor({ sessionId })`.\n\n## Rules\n\n- **Always call `detect_project` first** \u2014 never assume the dev server is running\n- **Never auto-commit** after applying visual changes \u2014 let the user decide\n- Use `watch_for_changes` for interactive sessions, not `get_pending_changes`\n- `get_pending_changes` is a non-blocking immediate check \u2014 only use it to poll without blocking\n- The dev server stays running after `close_visual_editor`\n";
5
5
  //# sourceMappingURL=cursor-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-rules.d.ts","sourceRoot":"","sources":["../../../src/utils/skills/cursor-rules.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,qBAAqB,cAAc,CAAC;AACjD,eAAO,MAAM,2BAA2B,2BAAiD,CAAC;AAE1F,eAAO,MAAM,oBAAoB,s6DAyChC,CAAC"}
1
+ {"version":3,"file":"cursor-rules.d.ts","sourceRoot":"","sources":["../../../src/utils/skills/cursor-rules.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,qBAAqB,cAAc,CAAC;AACjD,eAAO,MAAM,2BAA2B,2BAAiD,CAAC;AAE1F,eAAO,MAAM,oBAAoB,8sDAoChC,CAAC"}
@@ -17,13 +17,8 @@ Use these tools to make visual changes to a running web app and apply them to so
17
17
 
18
18
  ## Starting a session
19
19
 
20
- 1. Call \`detect_project\` — returns \`detectedPort\` (the actual running port, may differ from \`defaultPort\`) and \`portActive\`
21
- 2. If \`portActive\` is false, start the dev server in the background:
22
- \`\`\`bash
23
- cd {projectPath} && {packageManager} run {devCommand} &
24
- \`\`\`
25
- Then call \`detect_project\` again until \`portActive\` is true
26
- 3. Call \`open_visual_editor({ port: detectedPort })\` — always pass \`detectedPort\`, never assume the default
20
+ 1. Call \`detect_project\` — returns project info including \`framework\` and \`projectPath\`
21
+ 2. Call \`open_visual_editor({ projectPath, framework })\` do NOT pass \`startPort\` or any port; the tool handles port selection automatically
27
22
  4. Tell the user: "Rivet is open — make your visual changes and click 'Send to Cursor' when ready."
28
23
 
29
24
  ## Editing loop
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-rules.js","sourceRoot":"","sources":["../../../src/utils/skills/cursor-rules.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,CAAC,CAAC;AACzB,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,2BAA2B,GAAG,wBAAwB,4BAAoB,EAAE,CAAC;AAE7E,QAAA,oBAAoB,GAAG;;;;OAI7B,mCAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCjC,CAAC"}
1
+ {"version":3,"file":"cursor-rules.js","sourceRoot":"","sources":["../../../src/utils/skills/cursor-rules.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,CAAC,CAAC;AACzB,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,2BAA2B,GAAG,wBAAwB,4BAAoB,EAAE,CAAC;AAE7E,QAAA,oBAAoB,GAAG;;;;OAI7B,mCAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rivet-design",
3
- "version": "0.5.11",
3
+ "version": "0.5.13",
4
4
  "description": "Local visual web development tool with AI-powered code modification",
5
5
  "main": "dist/index.js",
6
6
  "workspaces": [
@@ -490,4 +490,4 @@ ${Sr}
490
490
  linear-gradient(-45deg, #e5e5e5 25%, transparent 25%),
491
491
  linear-gradient(45deg, transparent 75%, #e5e5e5 75%),
492
492
  linear-gradient(-45deg, transparent 75%, #e5e5e5 75%)
493
- `,backgroundSize:"12px 12px",backgroundPosition:"0 0, 0 6px, 6px -6px, -6px 0px"}}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 transition-[filter] duration-200 group-hover:brightness-75",style:{backgroundColor:Tl}})]}),jsxRuntimeExports.jsx("span",{className:`relative text-sm font-semibold ${Ll}`,children:Al}),Ol?jsxRuntimeExports.jsx("span",{className:"absolute right-3 top-3 rounded-full bg-black/45 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-white",children:"Current"}):null]})}),jsxRuntimeExports.jsx(Portal$2,{children:jsxRuntimeExports.jsxs(Content2$2,{className:"z-50 rounded-lg border border-white/10 shadow-xl",sideOffset:8,align:"start",children:[jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Close$1,{asChild:!0,children:jsxRuntimeExports.jsx("button",{className:"absolute right-2 top-2 z-10 rounded bg-black/50 p-1 text-white transition-colors hover:bg-black/70",title:"Close",children:jsxRuntimeExports.jsx(X,{className:"h-4 w-4"})})}),jsxRuntimeExports.jsx(ColorPicker,{value:Ur||wl,onChange:Fl,onCommit:Hl})]}),jsxRuntimeExports.jsx(Arrow2,{className:"fill-main"})]})})]},Cl)},_a=[],yl=[];return Object.entries($).forEach(([Al,Cl])=>{typeof Cl=="string"?_a.push([Al,Cl]):yl.push([Al,Cl])}),jsxRuntimeExports.jsxs("div",{className:"space-y-10 p-8",children:[yl.map(([Al,Cl])=>{const xl=Object.entries(Cl);return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"mb-4 text-base font-semibold capitalize text-white",children:Al}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 gap-6 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5",children:xl.map(([El,wl])=>{const Sl=`${Al}.${El}`;return $a(El==="DEFAULT"?"default":El,Sl,wl,!0)})})]},Al)}),_a.length>0&&jsxRuntimeExports.jsxs("div",{children:[yl.length>0&&jsxRuntimeExports.jsx("h3",{className:"mb-4 text-base font-semibold text-white",children:"Other Colors"}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 gap-6 sm:grid-cols-3 md:grid-cols-4",children:_a.map(([Al,Cl])=>$a(Al,Al,Cl,!1))})]})]})},TokenItem=({category:$,name:xr,value:Sr,isPending:Pr,isNested:Tr=!1,onUpdate:Rr})=>{const[Fr,Ur]=reactExports.useState(Sr),$r=()=>{switch($){case"colors":return"color";case"spacing":case"fontSize":case"borderRadius":return"spacing";case"boxShadow":return"text";default:return"text"}},ga=reactExports.useCallback($a=>{Ur($a)},[]),xa=reactExports.useCallback($a=>{Rr($a??Fr)},[Fr,Rr]),ba=()=>{switch($){case"colors":return jsxRuntimeExports.jsx("div",{className:"h-6 w-6 shrink-0 rounded border border-white/20",style:{backgroundColor:Fr}});case"boxShadow":return jsxRuntimeExports.jsx("div",{className:"h-6 w-6 shrink-0 rounded bg-white",style:{boxShadow:Fr}});case"borderRadius":return jsxRuntimeExports.jsx("div",{className:"bg-primary h-6 w-6 shrink-0",style:{borderRadius:Fr}});case"spacing":case"fontSize":return jsxRuntimeExports.jsx("span",{className:"text-content-subtle shrink-0 font-mono text-xs",children:Fr});default:return null}};return jsxRuntimeExports.jsxs("div",{className:`hover:bg-main-hover flex items-center justify-between px-4 py-2 ${Tr?"pl-8":""} ${Pr?"bg-primary/10":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[ba(),jsxRuntimeExports.jsxs("span",{className:`text-content text-sm ${Pr?"font-medium":""}`,children:[xr,Pr?jsxRuntimeExports.jsx("span",{className:"text-primary ml-2 text-xs",children:"(modified)"}):null]})]}),jsxRuntimeExports.jsx(PropertyInput,{type:$r(),value:Fr,onChange:ga,onApply:xa})]})},TokenList=({category:$,tokens:xr,pendingChanges:Sr,onUpdateToken:Pr})=>{if(!xr||Object.keys(xr).length===0)return jsxRuntimeExports.jsx("div",{className:"text-content-subtle flex items-center justify-center py-12 text-sm",children:"No tokens defined for this category"});const Tr=(Ur,$r)=>{const ga=`${$}.${Ur}`,xa=Sr.get(ga);return xa?xa.newValue:$r},Rr=Ur=>{const $r=`${$}.${Ur}`;return Sr.has($r)},Fr=(Ur,$r,ga)=>{const xa=Ur;return typeof $r=="string"?jsxRuntimeExports.jsx(TokenItem,{category:$,name:Ur,value:Tr(xa,$r),isPending:Rr(xa),isNested:!!ga,onUpdate:ba=>Pr($,xa,$r,ba)},xa):jsxRuntimeExports.jsxs("div",{className:"border-main-border border-b last:border-b-0",children:[jsxRuntimeExports.jsx("div",{className:"bg-main-hover/50 px-4 py-2",children:jsxRuntimeExports.jsx("span",{className:"text-content text-sm font-medium",children:Ur})}),jsxRuntimeExports.jsx("div",{children:Object.entries($r).map(([ba,$a])=>{const _a=`${Ur}.${ba}`,yl=ba==="DEFAULT"?"default":ba;return jsxRuntimeExports.jsx(TokenItem,{category:$,name:yl,value:Tr(_a,$a),isPending:Rr(_a),isNested:!0,onUpdate:Al=>Pr($,_a,$a,Al)},_a)})})]},xa)};return jsxRuntimeExports.jsx("div",{className:"divide-main-border divide-y",children:Object.entries(xr).map(([Ur,$r])=>Fr(Ur,$r))})},CATEGORIES=[{key:"colors",label:"Colors",isEnabled:!0},{key:"spacing",label:"Spacing",isEnabled:!1},{key:"fontSize",label:"Typography",isEnabled:!1},{key:"borderRadius",label:"Borders",isEnabled:!1},{key:"boxShadow",label:"Shadows",isEnabled:!1}],TokenCategoryTabs=({tokens:$,activeCategory:xr,onCategoryChange:Sr,pendingChanges:Pr,onUpdateToken:Tr,highlightToken:Rr})=>{const Fr=({key:$r,label:ga,isEnabled:xa})=>{const ba=jsxRuntimeExports.jsx(Trigger,{value:$r,disabled:!xa,className:"data-[state=active]:border-primary border-b-2 border-transparent px-4 py-3 text-sm font-medium text-white/60 transition-colors hover:text-white disabled:cursor-not-allowed disabled:opacity-30 data-[state=active]:text-white",children:ga},$r);return xa?ba:jsxRuntimeExports.jsxs(Root3,{children:[jsxRuntimeExports.jsx(Trigger$4,{asChild:!0,children:ba}),jsxRuntimeExports.jsx(Portal$3,{children:jsxRuntimeExports.jsxs(Content2$3,{className:"bg-main-input text-content z-50 rounded px-3 py-1.5 text-sm shadow-lg",sideOffset:5,children:["Coming soon",jsxRuntimeExports.jsx(Arrow2$1,{className:"fill-main-input"})]})})]},$r)},Ur=$r=>{const ga=$[$r];return ga&&Object.keys(ga).length>0?$r==="colors"?jsxRuntimeExports.jsx(ColorSwatchGrid,{tokens:ga,pendingChanges:Pr,category:$r,onUpdateToken:Tr,highlightToken:Rr}):jsxRuntimeExports.jsx("div",{className:"p-8",children:jsxRuntimeExports.jsx(TokenList,{category:$r,tokens:ga,pendingChanges:Pr,onUpdateToken:Tr})}):null};return jsxRuntimeExports.jsxs(Root2,{value:xr,onValueChange:$r=>Sr($r),className:"flex flex-1 flex-col overflow-hidden",children:[jsxRuntimeExports.jsx(List,{className:"border-main-border flex shrink-0 gap-1 border-b px-8",children:jsxRuntimeExports.jsx(Provider,{delayDuration:200,children:CATEGORIES.map(Fr)})}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto",children:jsxRuntimeExports.jsx("div",{className:"mx-auto max-w-7xl",children:CATEGORIES.map(({key:$r})=>jsxRuntimeExports.jsx(Content,{value:$r,className:"focus:outline-none",children:Ur($r)},$r))})})]})},TokenEditor=()=>{const{tokens:$,framework:xr,pendingChanges:Sr,isLoading:Pr,isSaving:Tr,error:Rr,updateToken:Fr,saveChanges:Ur,revertChanges:$r}=useTokenEditor(),[ga,xa]=reactExports.useState("colors"),ba=Sr.size>0,_a=new URLSearchParams(window.location.hash.split("?")[1]).get("highlight");reactExports.useEffect(()=>{_a&&ga!=="colors"&&xa("colors")},[_a,ga]);const yl=reactExports.useCallback(async()=>{await Ur()?toast.success("Tokens saved successfully"):toast.error("Failed to save some tokens")},[Ur]),Al=reactExports.useCallback(()=>{$r(),toast.info("Changes reverted")},[$r]),Cl=reactExports.useCallback(()=>{ba&&!window.confirm("You have unsaved changes. Are you sure you want to leave?")||(window.location.hash="")},[ba]);return reactExports.useEffect(()=>{const xl=El=>{El.key!=="Escape"||Tr||El.target.closest("[data-radix-popper-content-wrapper]")||(El.preventDefault(),Cl())};return window.addEventListener("keydown",xl),()=>window.removeEventListener("keydown",xl)},[Cl,Tr]),useKeyboardShortcuts({shortcuts:[{key:"s",metaKey:!0,handler:xl=>{xl.preventDefault(),ba&&!Tr&&yl()},description:"Save changes"}]}),reactExports.useEffect(()=>{const xl=El=>{ba&&(El.preventDefault(),El.returnValue="")};return window.addEventListener("beforeunload",xl),()=>window.removeEventListener("beforeunload",xl)},[ba]),Pr?jsxRuntimeExports.jsx("div",{className:"bg-main font-main flex h-screen items-center justify-center",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"text-primary h-6 w-6 animate-spin"}),jsxRuntimeExports.jsx("span",{className:"text-content",children:"Loading tokens..."})]})}):Rr?jsxRuntimeExports.jsxs("div",{className:"bg-main font-main flex h-screen flex-col items-center justify-center gap-4",children:[jsxRuntimeExports.jsx("p",{className:"text-red-500",children:Rr}),jsxRuntimeExports.jsx(Button,{title:"Retry loading tokens",onClick:()=>window.location.reload(),className:"bg-primary hover:bg-primary/90 flex items-center gap-2 rounded-lg px-4 py-2 text-sm text-white transition-colors",children:"Retry"})]}):!$||!xr?jsxRuntimeExports.jsxs("div",{className:"bg-main font-main flex h-screen flex-col items-center justify-center gap-4",children:[jsxRuntimeExports.jsx("p",{className:"text-content-subtle",children:"No design tokens found. Make sure you have a Tailwind config file with theme.extend defined."}),jsxRuntimeExports.jsxs(Button,{title:"Return to main editor",onClick:Cl,className:"bg-primary hover:bg-primary/90 flex items-center gap-2 rounded-lg px-4 py-2 text-sm text-white transition-colors",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"}),"Back to Editor"]})]}):jsxRuntimeExports.jsxs(motion.div,{className:"bg-main font-main flex h-screen flex-col",initial:{opacity:0},animate:{opacity:1},transition:{duration:.3},children:[jsxRuntimeExports.jsxs("header",{className:"border-main-border bg-main flex shrink-0 items-start justify-between border-b px-8 py-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsxs("button",{onClick:Cl,className:"text-content-subtle flex items-center gap-2 transition-colors hover:text-white",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{className:"text-sm",children:"Back"})]}),jsxRuntimeExports.jsx("div",{className:"bg-main-border h-6 w-px"})]}),jsxRuntimeExports.jsx("div",{className:"flex items-start gap-6",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[ba?jsxRuntimeExports.jsxs("span",{className:"text-content-subtle text-sm",children:[Sr.size," unsaved"," ",Sr.size===1?"change":"changes"]}):null,jsxRuntimeExports.jsxs(Button,{title:"Revert all changes",onClick:Al,disabled:!ba||Tr,className:"border-main-border hover:bg-main-hover flex items-center gap-2 rounded-lg border px-4 py-2 text-sm text-white transition-colors disabled:cursor-not-allowed disabled:opacity-50",children:[jsxRuntimeExports.jsx(RotateCcw,{className:"h-4 w-4"}),"Revert"]}),jsxRuntimeExports.jsxs(Button,{title:"Save changes (Cmd+S)",shortcut:"Cmd+S",onClick:yl,disabled:!ba||Tr,className:"bg-primary hover:bg-primary/90 flex items-center gap-2 rounded-lg px-4 py-2 text-sm text-white transition-colors disabled:cursor-not-allowed disabled:opacity-50",children:[Tr?jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin"}):null,"Save"]})]})})]}),jsxRuntimeExports.jsx(TokenCategoryTabs,{tokens:$,activeCategory:ga,onCategoryChange:xa,pendingChanges:Sr,onUpdateToken:Fr,highlightToken:_a||void 0}),jsxRuntimeExports.jsx(Toaster,{duration:3e3,richColors:!0})]})},log=createLogger("App"),MainEditor=()=>{const[$,xr]=useAtom(selectedElementAtom),Sr=useSetAtom(designTokensAtom),Pr=useSetAtom(elementScreenshotAtom),Tr=useSetAtom(modeAtom),[Rr,Fr]=useAtom(chatMessagesAtom),Ur=useOAuthCallback(),$r=reactExports.useRef(($==null?void 0:$.xpath)??null);reactExports.useEffect(()=>{(async()=>{try{const ba=await fetch("/api/tokens");if(ba.ok){const $a=await ba.json();Sr($a),$a.framework&&log.info(`Loaded ${$a.framework} design tokens`)}}catch(ba){log.error("Failed to fetch design tokens:",ba)}})()},[Sr]);const ga=()=>{const xa=document.getElementById("rivet-selection-overlay");xa&&(xa.style.opacity="0");const ba=document.getElementById("rivet-hover-overlay");ba&&(ba.style.opacity="0"),xr(null),Pr(null)};return useKeyboardShortcuts({shortcuts:[{key:"Escape",handler:xa=>{if(xa.target.closest("[data-radix-popper-content-wrapper]")){log.debug("Escape key pressed inside popover - letting Radix handle it");return}$&&(log.debug("Escape key pressed - closing inspector"),ga())},description:"Close inspector"},{key:"s",handler:()=>{log.debug("S key pressed - switching to view mode"),Tr("view")},description:"Switch to view mode"},{key:"d",handler:()=>{log.debug("D key pressed - switching to design mode"),Tr("edit")},description:"Switch to design mode"},{key:"c",handler:()=>{log.debug("C key pressed - switching to comment mode"),Tr("comment")},description:"Switch to comment mode"}]}),reactExports.useEffect(()=>{const xa=()=>{window.dispatchEvent(new CustomEvent("rivet:reposition-overlays"))};return window.addEventListener("resize",xa),()=>window.removeEventListener("resize",xa)},[]),reactExports.useEffect(()=>{const xa=($==null?void 0:$.xpath)??null,ba=$r.current;xa&&xa!==ba&&(Fr([]),$r.current=xa)},[$==null?void 0:$.xpath,Fr]),jsxRuntimeExports.jsxs(motion.div,{className:"flex h-screen",initial:{opacity:0},animate:{opacity:1},transition:{duration:.5,ease:"easeOut"},"data-cy":"rivet-app",children:[Ur.isProcessing?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-black/50",children:jsxRuntimeExports.jsx("div",{className:"bg-background-primary rounded-lg p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:"Completing authentication..."})})}):null,jsxRuntimeExports.jsx("div",{className:"relative flex flex-1 flex-col",children:jsxRuntimeExports.jsx(PreviewFrame,{})}),jsxRuntimeExports.jsx(ElementInspector,{chatMessages:Rr,setChatMessages:Fr}),jsxRuntimeExports.jsx(Toaster,{duration:5e3,richColors:!0,toastOptions:{style:{maxHeight:"150px",overflow:"hidden"}}})]})},App=()=>{const[$,xr]=reactExports.useState(window.location.hash),[Sr,Pr]=reactExports.useState(0),{config:Tr}=useConfig();return reactExports.useEffect(()=>{Tr!=null&&Tr.email&&aa$1.identify(Tr.email,{email:Tr.email})},[Tr==null?void 0:Tr.email]),reactExports.useEffect(()=>{const Rr=()=>{const Fr=window.location.hash;xr(Ur=>(Ur.startsWith("#tokens")&&!Fr.startsWith("#tokens")&&Pr($r=>$r+1),Fr))};return window.addEventListener("hashchange",Rr),()=>window.removeEventListener("hashchange",Rr)},[]),$.startsWith("#tokens")?jsxRuntimeExports.jsx(TokenEditor,{}):jsxRuntimeExports.jsx(MainEditor,{},Sr)},POSTHOG_PUBLIC_API_KEY="phc_Ntj9tXHbS64XgYxlTfhglRmFivFsfm0AERph4ZlnNH",POSTHOG_PUBLIC_HOST="https://us.i.posthog.com",ErrorFallback=()=>jsxRuntimeExports.jsx("div",{style:{display:"flex",height:"100vh",alignItems:"center",justifyContent:"center"},children:jsxRuntimeExports.jsx("p",{style:{fontSize:"14px",color:"#6b7280"},children:"Something went wrong. Please reload the page."})});client.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(React.StrictMode,{children:jsxRuntimeExports.jsx(PostHogProvider,{apiKey:POSTHOG_PUBLIC_API_KEY,options:{api_host:POSTHOG_PUBLIC_HOST,capture_exceptions:!0,loaded:$=>{$.register({source:"core",rivet_version:"0.5.11",env:"production"})}},children:jsxRuntimeExports.jsx(PostHogErrorBoundary,{fallback:jsxRuntimeExports.jsx(ErrorFallback,{}),children:jsxRuntimeExports.jsx(App,{})})})}));
493
+ `,backgroundSize:"12px 12px",backgroundPosition:"0 0, 0 6px, 6px -6px, -6px 0px"}}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 transition-[filter] duration-200 group-hover:brightness-75",style:{backgroundColor:Tl}})]}),jsxRuntimeExports.jsx("span",{className:`relative text-sm font-semibold ${Ll}`,children:Al}),Ol?jsxRuntimeExports.jsx("span",{className:"absolute right-3 top-3 rounded-full bg-black/45 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-white",children:"Current"}):null]})}),jsxRuntimeExports.jsx(Portal$2,{children:jsxRuntimeExports.jsxs(Content2$2,{className:"z-50 rounded-lg border border-white/10 shadow-xl",sideOffset:8,align:"start",children:[jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Close$1,{asChild:!0,children:jsxRuntimeExports.jsx("button",{className:"absolute right-2 top-2 z-10 rounded bg-black/50 p-1 text-white transition-colors hover:bg-black/70",title:"Close",children:jsxRuntimeExports.jsx(X,{className:"h-4 w-4"})})}),jsxRuntimeExports.jsx(ColorPicker,{value:Ur||wl,onChange:Fl,onCommit:Hl})]}),jsxRuntimeExports.jsx(Arrow2,{className:"fill-main"})]})})]},Cl)},_a=[],yl=[];return Object.entries($).forEach(([Al,Cl])=>{typeof Cl=="string"?_a.push([Al,Cl]):yl.push([Al,Cl])}),jsxRuntimeExports.jsxs("div",{className:"space-y-10 p-8",children:[yl.map(([Al,Cl])=>{const xl=Object.entries(Cl);return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"mb-4 text-base font-semibold capitalize text-white",children:Al}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 gap-6 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5",children:xl.map(([El,wl])=>{const Sl=`${Al}.${El}`;return $a(El==="DEFAULT"?"default":El,Sl,wl,!0)})})]},Al)}),_a.length>0&&jsxRuntimeExports.jsxs("div",{children:[yl.length>0&&jsxRuntimeExports.jsx("h3",{className:"mb-4 text-base font-semibold text-white",children:"Other Colors"}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 gap-6 sm:grid-cols-3 md:grid-cols-4",children:_a.map(([Al,Cl])=>$a(Al,Al,Cl,!1))})]})]})},TokenItem=({category:$,name:xr,value:Sr,isPending:Pr,isNested:Tr=!1,onUpdate:Rr})=>{const[Fr,Ur]=reactExports.useState(Sr),$r=()=>{switch($){case"colors":return"color";case"spacing":case"fontSize":case"borderRadius":return"spacing";case"boxShadow":return"text";default:return"text"}},ga=reactExports.useCallback($a=>{Ur($a)},[]),xa=reactExports.useCallback($a=>{Rr($a??Fr)},[Fr,Rr]),ba=()=>{switch($){case"colors":return jsxRuntimeExports.jsx("div",{className:"h-6 w-6 shrink-0 rounded border border-white/20",style:{backgroundColor:Fr}});case"boxShadow":return jsxRuntimeExports.jsx("div",{className:"h-6 w-6 shrink-0 rounded bg-white",style:{boxShadow:Fr}});case"borderRadius":return jsxRuntimeExports.jsx("div",{className:"bg-primary h-6 w-6 shrink-0",style:{borderRadius:Fr}});case"spacing":case"fontSize":return jsxRuntimeExports.jsx("span",{className:"text-content-subtle shrink-0 font-mono text-xs",children:Fr});default:return null}};return jsxRuntimeExports.jsxs("div",{className:`hover:bg-main-hover flex items-center justify-between px-4 py-2 ${Tr?"pl-8":""} ${Pr?"bg-primary/10":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[ba(),jsxRuntimeExports.jsxs("span",{className:`text-content text-sm ${Pr?"font-medium":""}`,children:[xr,Pr?jsxRuntimeExports.jsx("span",{className:"text-primary ml-2 text-xs",children:"(modified)"}):null]})]}),jsxRuntimeExports.jsx(PropertyInput,{type:$r(),value:Fr,onChange:ga,onApply:xa})]})},TokenList=({category:$,tokens:xr,pendingChanges:Sr,onUpdateToken:Pr})=>{if(!xr||Object.keys(xr).length===0)return jsxRuntimeExports.jsx("div",{className:"text-content-subtle flex items-center justify-center py-12 text-sm",children:"No tokens defined for this category"});const Tr=(Ur,$r)=>{const ga=`${$}.${Ur}`,xa=Sr.get(ga);return xa?xa.newValue:$r},Rr=Ur=>{const $r=`${$}.${Ur}`;return Sr.has($r)},Fr=(Ur,$r,ga)=>{const xa=Ur;return typeof $r=="string"?jsxRuntimeExports.jsx(TokenItem,{category:$,name:Ur,value:Tr(xa,$r),isPending:Rr(xa),isNested:!!ga,onUpdate:ba=>Pr($,xa,$r,ba)},xa):jsxRuntimeExports.jsxs("div",{className:"border-main-border border-b last:border-b-0",children:[jsxRuntimeExports.jsx("div",{className:"bg-main-hover/50 px-4 py-2",children:jsxRuntimeExports.jsx("span",{className:"text-content text-sm font-medium",children:Ur})}),jsxRuntimeExports.jsx("div",{children:Object.entries($r).map(([ba,$a])=>{const _a=`${Ur}.${ba}`,yl=ba==="DEFAULT"?"default":ba;return jsxRuntimeExports.jsx(TokenItem,{category:$,name:yl,value:Tr(_a,$a),isPending:Rr(_a),isNested:!0,onUpdate:Al=>Pr($,_a,$a,Al)},_a)})})]},xa)};return jsxRuntimeExports.jsx("div",{className:"divide-main-border divide-y",children:Object.entries(xr).map(([Ur,$r])=>Fr(Ur,$r))})},CATEGORIES=[{key:"colors",label:"Colors",isEnabled:!0},{key:"spacing",label:"Spacing",isEnabled:!1},{key:"fontSize",label:"Typography",isEnabled:!1},{key:"borderRadius",label:"Borders",isEnabled:!1},{key:"boxShadow",label:"Shadows",isEnabled:!1}],TokenCategoryTabs=({tokens:$,activeCategory:xr,onCategoryChange:Sr,pendingChanges:Pr,onUpdateToken:Tr,highlightToken:Rr})=>{const Fr=({key:$r,label:ga,isEnabled:xa})=>{const ba=jsxRuntimeExports.jsx(Trigger,{value:$r,disabled:!xa,className:"data-[state=active]:border-primary border-b-2 border-transparent px-4 py-3 text-sm font-medium text-white/60 transition-colors hover:text-white disabled:cursor-not-allowed disabled:opacity-30 data-[state=active]:text-white",children:ga},$r);return xa?ba:jsxRuntimeExports.jsxs(Root3,{children:[jsxRuntimeExports.jsx(Trigger$4,{asChild:!0,children:ba}),jsxRuntimeExports.jsx(Portal$3,{children:jsxRuntimeExports.jsxs(Content2$3,{className:"bg-main-input text-content z-50 rounded px-3 py-1.5 text-sm shadow-lg",sideOffset:5,children:["Coming soon",jsxRuntimeExports.jsx(Arrow2$1,{className:"fill-main-input"})]})})]},$r)},Ur=$r=>{const ga=$[$r];return ga&&Object.keys(ga).length>0?$r==="colors"?jsxRuntimeExports.jsx(ColorSwatchGrid,{tokens:ga,pendingChanges:Pr,category:$r,onUpdateToken:Tr,highlightToken:Rr}):jsxRuntimeExports.jsx("div",{className:"p-8",children:jsxRuntimeExports.jsx(TokenList,{category:$r,tokens:ga,pendingChanges:Pr,onUpdateToken:Tr})}):null};return jsxRuntimeExports.jsxs(Root2,{value:xr,onValueChange:$r=>Sr($r),className:"flex flex-1 flex-col overflow-hidden",children:[jsxRuntimeExports.jsx(List,{className:"border-main-border flex shrink-0 gap-1 border-b px-8",children:jsxRuntimeExports.jsx(Provider,{delayDuration:200,children:CATEGORIES.map(Fr)})}),jsxRuntimeExports.jsx("div",{className:"flex-1 overflow-auto",children:jsxRuntimeExports.jsx("div",{className:"mx-auto max-w-7xl",children:CATEGORIES.map(({key:$r})=>jsxRuntimeExports.jsx(Content,{value:$r,className:"focus:outline-none",children:Ur($r)},$r))})})]})},TokenEditor=()=>{const{tokens:$,framework:xr,pendingChanges:Sr,isLoading:Pr,isSaving:Tr,error:Rr,updateToken:Fr,saveChanges:Ur,revertChanges:$r}=useTokenEditor(),[ga,xa]=reactExports.useState("colors"),ba=Sr.size>0,_a=new URLSearchParams(window.location.hash.split("?")[1]).get("highlight");reactExports.useEffect(()=>{_a&&ga!=="colors"&&xa("colors")},[_a,ga]);const yl=reactExports.useCallback(async()=>{await Ur()?toast.success("Tokens saved successfully"):toast.error("Failed to save some tokens")},[Ur]),Al=reactExports.useCallback(()=>{$r(),toast.info("Changes reverted")},[$r]),Cl=reactExports.useCallback(()=>{ba&&!window.confirm("You have unsaved changes. Are you sure you want to leave?")||(window.location.hash="")},[ba]);return reactExports.useEffect(()=>{const xl=El=>{El.key!=="Escape"||Tr||El.target.closest("[data-radix-popper-content-wrapper]")||(El.preventDefault(),Cl())};return window.addEventListener("keydown",xl),()=>window.removeEventListener("keydown",xl)},[Cl,Tr]),useKeyboardShortcuts({shortcuts:[{key:"s",metaKey:!0,handler:xl=>{xl.preventDefault(),ba&&!Tr&&yl()},description:"Save changes"}]}),reactExports.useEffect(()=>{const xl=El=>{ba&&(El.preventDefault(),El.returnValue="")};return window.addEventListener("beforeunload",xl),()=>window.removeEventListener("beforeunload",xl)},[ba]),Pr?jsxRuntimeExports.jsx("div",{className:"bg-main font-main flex h-screen items-center justify-center",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(LoaderCircle,{className:"text-primary h-6 w-6 animate-spin"}),jsxRuntimeExports.jsx("span",{className:"text-content",children:"Loading tokens..."})]})}):Rr?jsxRuntimeExports.jsxs("div",{className:"bg-main font-main flex h-screen flex-col items-center justify-center gap-4",children:[jsxRuntimeExports.jsx("p",{className:"text-red-500",children:Rr}),jsxRuntimeExports.jsx(Button,{title:"Retry loading tokens",onClick:()=>window.location.reload(),className:"bg-primary hover:bg-primary/90 flex items-center gap-2 rounded-lg px-4 py-2 text-sm text-white transition-colors",children:"Retry"})]}):!$||!xr?jsxRuntimeExports.jsxs("div",{className:"bg-main font-main flex h-screen flex-col items-center justify-center gap-4",children:[jsxRuntimeExports.jsx("p",{className:"text-content-subtle",children:"No design tokens found. Make sure you have a Tailwind config file with theme.extend defined."}),jsxRuntimeExports.jsxs(Button,{title:"Return to main editor",onClick:Cl,className:"bg-primary hover:bg-primary/90 flex items-center gap-2 rounded-lg px-4 py-2 text-sm text-white transition-colors",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"}),"Back to Editor"]})]}):jsxRuntimeExports.jsxs(motion.div,{className:"bg-main font-main flex h-screen flex-col",initial:{opacity:0},animate:{opacity:1},transition:{duration:.3},children:[jsxRuntimeExports.jsxs("header",{className:"border-main-border bg-main flex shrink-0 items-start justify-between border-b px-8 py-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsxs("button",{onClick:Cl,className:"text-content-subtle flex items-center gap-2 transition-colors hover:text-white",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{className:"text-sm",children:"Back"})]}),jsxRuntimeExports.jsx("div",{className:"bg-main-border h-6 w-px"})]}),jsxRuntimeExports.jsx("div",{className:"flex items-start gap-6",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[ba?jsxRuntimeExports.jsxs("span",{className:"text-content-subtle text-sm",children:[Sr.size," unsaved"," ",Sr.size===1?"change":"changes"]}):null,jsxRuntimeExports.jsxs(Button,{title:"Revert all changes",onClick:Al,disabled:!ba||Tr,className:"border-main-border hover:bg-main-hover flex items-center gap-2 rounded-lg border px-4 py-2 text-sm text-white transition-colors disabled:cursor-not-allowed disabled:opacity-50",children:[jsxRuntimeExports.jsx(RotateCcw,{className:"h-4 w-4"}),"Revert"]}),jsxRuntimeExports.jsxs(Button,{title:"Save changes (Cmd+S)",shortcut:"Cmd+S",onClick:yl,disabled:!ba||Tr,className:"bg-primary hover:bg-primary/90 flex items-center gap-2 rounded-lg px-4 py-2 text-sm text-white transition-colors disabled:cursor-not-allowed disabled:opacity-50",children:[Tr?jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin"}):null,"Save"]})]})})]}),jsxRuntimeExports.jsx(TokenCategoryTabs,{tokens:$,activeCategory:ga,onCategoryChange:xa,pendingChanges:Sr,onUpdateToken:Fr,highlightToken:_a||void 0}),jsxRuntimeExports.jsx(Toaster,{duration:3e3,richColors:!0})]})},log=createLogger("App"),MainEditor=()=>{const[$,xr]=useAtom(selectedElementAtom),Sr=useSetAtom(designTokensAtom),Pr=useSetAtom(elementScreenshotAtom),Tr=useSetAtom(modeAtom),[Rr,Fr]=useAtom(chatMessagesAtom),Ur=useOAuthCallback(),$r=reactExports.useRef(($==null?void 0:$.xpath)??null);reactExports.useEffect(()=>{(async()=>{try{const ba=await fetch("/api/tokens");if(ba.ok){const $a=await ba.json();Sr($a),$a.framework&&log.info(`Loaded ${$a.framework} design tokens`)}}catch(ba){log.error("Failed to fetch design tokens:",ba)}})()},[Sr]);const ga=()=>{const xa=document.getElementById("rivet-selection-overlay");xa&&(xa.style.opacity="0");const ba=document.getElementById("rivet-hover-overlay");ba&&(ba.style.opacity="0"),xr(null),Pr(null)};return useKeyboardShortcuts({shortcuts:[{key:"Escape",handler:xa=>{if(xa.target.closest("[data-radix-popper-content-wrapper]")){log.debug("Escape key pressed inside popover - letting Radix handle it");return}$&&(log.debug("Escape key pressed - closing inspector"),ga())},description:"Close inspector"},{key:"s",handler:()=>{log.debug("S key pressed - switching to view mode"),Tr("view")},description:"Switch to view mode"},{key:"d",handler:()=>{log.debug("D key pressed - switching to design mode"),Tr("edit")},description:"Switch to design mode"},{key:"c",handler:()=>{log.debug("C key pressed - switching to comment mode"),Tr("comment")},description:"Switch to comment mode"}]}),reactExports.useEffect(()=>{const xa=()=>{window.dispatchEvent(new CustomEvent("rivet:reposition-overlays"))};return window.addEventListener("resize",xa),()=>window.removeEventListener("resize",xa)},[]),reactExports.useEffect(()=>{const xa=($==null?void 0:$.xpath)??null,ba=$r.current;xa&&xa!==ba&&(Fr([]),$r.current=xa)},[$==null?void 0:$.xpath,Fr]),jsxRuntimeExports.jsxs(motion.div,{className:"flex h-screen",initial:{opacity:0},animate:{opacity:1},transition:{duration:.5,ease:"easeOut"},"data-cy":"rivet-app",children:[Ur.isProcessing?jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-50 flex items-center justify-center bg-black/50",children:jsxRuntimeExports.jsx("div",{className:"bg-background-primary rounded-lg p-6 shadow-lg",children:jsxRuntimeExports.jsx(Progress,{message:"Completing authentication..."})})}):null,jsxRuntimeExports.jsx("div",{className:"relative flex flex-1 flex-col",children:jsxRuntimeExports.jsx(PreviewFrame,{})}),jsxRuntimeExports.jsx(ElementInspector,{chatMessages:Rr,setChatMessages:Fr}),jsxRuntimeExports.jsx(Toaster,{duration:5e3,richColors:!0,toastOptions:{style:{maxHeight:"150px",overflow:"hidden"}}})]})},App=()=>{const[$,xr]=reactExports.useState(window.location.hash),[Sr,Pr]=reactExports.useState(0),{config:Tr}=useConfig();return reactExports.useEffect(()=>{Tr!=null&&Tr.email&&aa$1.identify(Tr.email,{email:Tr.email})},[Tr==null?void 0:Tr.email]),reactExports.useEffect(()=>{const Rr=()=>{const Fr=window.location.hash;xr(Ur=>(Ur.startsWith("#tokens")&&!Fr.startsWith("#tokens")&&Pr($r=>$r+1),Fr))};return window.addEventListener("hashchange",Rr),()=>window.removeEventListener("hashchange",Rr)},[]),$.startsWith("#tokens")?jsxRuntimeExports.jsx(TokenEditor,{}):jsxRuntimeExports.jsx(MainEditor,{},Sr)},POSTHOG_PUBLIC_API_KEY="phc_Ntj9tXHbS64XgYxlTfhglRmFivFsfm0AERph4ZlnNH",POSTHOG_PUBLIC_HOST="https://us.i.posthog.com",ErrorFallback=()=>jsxRuntimeExports.jsx("div",{style:{display:"flex",height:"100vh",alignItems:"center",justifyContent:"center"},children:jsxRuntimeExports.jsx("p",{style:{fontSize:"14px",color:"#6b7280"},children:"Something went wrong. Please reload the page."})});client.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(React.StrictMode,{children:jsxRuntimeExports.jsx(PostHogProvider,{apiKey:POSTHOG_PUBLIC_API_KEY,options:{api_host:POSTHOG_PUBLIC_HOST,capture_exceptions:!0,loaded:$=>{$.register({source:"core",rivet_version:"0.5.13",env:"production"})}},children:jsxRuntimeExports.jsx(PostHogErrorBoundary,{fallback:jsxRuntimeExports.jsx(ErrorFallback,{}),children:jsxRuntimeExports.jsx(App,{})})})}));
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/x-icon" href="/rivet/favicon.ico" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Rivet - The visual editor for design</title>
8
- <script type="module" crossorigin src="/rivet/assets/main-fNNw0nHu.js"></script>
8
+ <script type="module" crossorigin src="/rivet/assets/main-DhJDeAnr.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/rivet/assets/main-BDHMbFy-.css">
10
10
  </head>
11
11
  <body>