rivet-design 0.5.7 → 0.5.8

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 (75) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +115 -16
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp/server.d.ts +1 -5
  5. package/dist/mcp/server.d.ts.map +1 -1
  6. package/dist/mcp/server.js +20 -6
  7. package/dist/mcp/server.js.map +1 -1
  8. package/dist/routes/agent.d.ts +8 -0
  9. package/dist/routes/agent.d.ts.map +1 -0
  10. package/dist/routes/agent.js +79 -0
  11. package/dist/routes/agent.js.map +1 -0
  12. package/dist/routes/comments.d.ts +2 -0
  13. package/dist/routes/comments.d.ts.map +1 -0
  14. package/dist/routes/comments.js +92 -0
  15. package/dist/routes/comments.js.map +1 -0
  16. package/dist/routes/onboarding.d.ts +6 -0
  17. package/dist/routes/onboarding.d.ts.map +1 -0
  18. package/dist/routes/onboarding.js +206 -0
  19. package/dist/routes/onboarding.js.map +1 -0
  20. package/dist/routes/selection.d.ts +2 -0
  21. package/dist/routes/selection.d.ts.map +1 -0
  22. package/dist/routes/selection.js +38 -0
  23. package/dist/routes/selection.js.map +1 -0
  24. package/dist/scripts/react-instrumentation.js +300 -0
  25. package/dist/server.d.ts +2 -0
  26. package/dist/server.d.ts.map +1 -1
  27. package/dist/server.js +12 -1
  28. package/dist/server.js.map +1 -1
  29. package/dist/services/AgentBridgeService.d.ts +89 -0
  30. package/dist/services/AgentBridgeService.d.ts.map +1 -0
  31. package/dist/services/AgentBridgeService.js +413 -0
  32. package/dist/services/AgentBridgeService.js.map +1 -0
  33. package/dist/services/AgentModService.d.ts +76 -0
  34. package/dist/services/AgentModService.d.ts.map +1 -0
  35. package/dist/services/AgentModService.js +494 -0
  36. package/dist/services/AgentModService.js.map +1 -0
  37. package/dist/services/CommentSessionManager.d.ts +94 -0
  38. package/dist/services/CommentSessionManager.d.ts.map +1 -0
  39. package/dist/services/CommentSessionManager.js +260 -0
  40. package/dist/services/CommentSessionManager.js.map +1 -0
  41. package/dist/services/ImportResolverService.d.ts +30 -0
  42. package/dist/services/ImportResolverService.d.ts.map +1 -0
  43. package/dist/services/ImportResolverService.js +136 -0
  44. package/dist/services/ImportResolverService.js.map +1 -0
  45. package/dist/services/ReactComponentPlugin.d.ts +44 -0
  46. package/dist/services/ReactComponentPlugin.d.ts.map +1 -0
  47. package/dist/services/ReactComponentPlugin.js +100 -0
  48. package/dist/services/ReactComponentPlugin.js.map +1 -0
  49. package/dist/types/agent-protocol.d.ts +55 -0
  50. package/dist/types/agent-protocol.d.ts.map +1 -0
  51. package/dist/types/agent-protocol.js +6 -0
  52. package/dist/types/agent-protocol.js.map +1 -0
  53. package/dist/types/agent-tools.d.ts +78 -0
  54. package/dist/types/agent-tools.d.ts.map +1 -0
  55. package/dist/types/agent-tools.js +7 -0
  56. package/dist/types/agent-tools.js.map +1 -0
  57. package/dist/types/types.d.ts +15 -0
  58. package/dist/types/types.d.ts.map +1 -0
  59. package/dist/types/types.js +3 -0
  60. package/dist/types/types.js.map +1 -0
  61. package/dist/utils/skillWriter.d.ts +10 -7
  62. package/dist/utils/skillWriter.d.ts.map +1 -1
  63. package/dist/utils/skillWriter.js +51 -53
  64. package/dist/utils/skillWriter.js.map +1 -1
  65. package/dist/utils/skills/claude-skill.d.ts +6 -0
  66. package/dist/utils/skills/claude-skill.d.ts.map +1 -0
  67. package/dist/utils/skills/claude-skill.js +49 -0
  68. package/dist/utils/skills/claude-skill.js.map +1 -0
  69. package/dist/utils/skills/cursor-rules.d.ts +5 -0
  70. package/dist/utils/skills/cursor-rules.d.ts.map +1 -0
  71. package/dist/utils/skills/cursor-rules.js +49 -0
  72. package/dist/utils/skills/cursor-rules.js.map +1 -0
  73. package/package.json +1 -1
  74. package/src/ui/dist/assets/{main-DAIpACRO.js → main-Ckx6ZPoZ.js} +26 -26
  75. package/src/ui/dist/index.html +1 -1
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createOnboardingRouter = void 0;
37
+ const express_1 = require("express");
38
+ const logger_1 = require("../utils/logger");
39
+ const agent_1 = require("../services/agent");
40
+ const ProjectConfigService_1 = require("../services/ProjectConfigService");
41
+ const log = (0, logger_1.createLogger)('OnboardingRoutes');
42
+ /**
43
+ * Create router for onboarding API endpoints.
44
+ * Handles project setup via agent and cached config management.
45
+ */
46
+ const createOnboardingRouter = (projectPath) => {
47
+ const router = (0, express_1.Router)();
48
+ const configService = new ProjectConfigService_1.ProjectConfigService();
49
+ /**
50
+ * POST /api/onboarding/start
51
+ * Start the onboarding agent to analyze and start the dev server.
52
+ * Returns SSE stream of agent progress.
53
+ */
54
+ router.post('/start', async (req, res) => {
55
+ log.info(`Starting onboarding for project: ${projectPath}`);
56
+ // Setup SSE headers
57
+ res.setHeader('Content-Type', 'text/event-stream');
58
+ res.setHeader('Cache-Control', 'no-cache');
59
+ res.setHeader('Connection', 'keep-alive');
60
+ res.setHeader('Access-Control-Allow-Origin', '*');
61
+ const agent = new agent_1.OnboardingAgent(projectPath);
62
+ try {
63
+ const result = await agent.execute((event) => {
64
+ if (event.type === 'step' && event.step) {
65
+ const step = event.step;
66
+ if (step.type === 'reasoning') {
67
+ const text = step.data.text;
68
+ res.write(`data: ${JSON.stringify({ type: 'thinking', content: text })}\n\n`);
69
+ }
70
+ else if (step.type === 'tool_call') {
71
+ const data = step.data;
72
+ res.write(`data: ${JSON.stringify({ type: 'tool_call', tool: data.name, input: data.input })}\n\n`);
73
+ }
74
+ }
75
+ else if (event.type === 'error') {
76
+ res.write(`data: ${JSON.stringify({ type: 'error', content: event.error })}\n\n`);
77
+ }
78
+ });
79
+ // Send final result
80
+ res.write(`data: ${JSON.stringify({ type: 'complete', result })}\n\n`);
81
+ res.end();
82
+ }
83
+ catch (error) {
84
+ const errorMsg = error instanceof Error ? error.message : 'Unknown error';
85
+ log.error('Onboarding failed:', errorMsg);
86
+ res.write(`data: ${JSON.stringify({ type: 'error', content: errorMsg })}\n\n`);
87
+ res.end();
88
+ }
89
+ });
90
+ /**
91
+ * GET /api/onboarding/status
92
+ * Check if project has a cached config.
93
+ */
94
+ router.get('/status', async (req, res) => {
95
+ try {
96
+ const config = await configService.getProjectConfig(projectPath);
97
+ res.json({
98
+ hasCachedConfig: !!config,
99
+ config,
100
+ });
101
+ }
102
+ catch (error) {
103
+ log.error('Failed to get onboarding status:', error);
104
+ res.status(500).json({
105
+ error: 'Failed to get status',
106
+ details: error instanceof Error ? error.message : 'Unknown error',
107
+ });
108
+ }
109
+ });
110
+ /**
111
+ * POST /api/onboarding/run-cached
112
+ * Run the cached start command to start the dev server.
113
+ * Returns SSE stream of progress.
114
+ */
115
+ router.post('/run-cached', async (req, res) => {
116
+ const config = await configService.getProjectConfig(projectPath);
117
+ if (!config) {
118
+ return res.status(404).json({ error: 'No cached config found' });
119
+ }
120
+ log.info(`Running cached start command: ${config.startCommand}`);
121
+ // Setup SSE headers
122
+ res.setHeader('Content-Type', 'text/event-stream');
123
+ res.setHeader('Cache-Control', 'no-cache');
124
+ res.setHeader('Connection', 'keep-alive');
125
+ try {
126
+ const { spawn } = await Promise.resolve().then(() => __importStar(require('child_process')));
127
+ res.write(`data: ${JSON.stringify({ type: 'status', content: `Running: ${config.startCommand}` })}\n\n`);
128
+ // Parse the start command
129
+ const parts = config.startCommand.split(' ');
130
+ const cmd = parts[0];
131
+ const args = parts.slice(1);
132
+ // Start the dev server in background
133
+ const child = spawn(cmd, args, {
134
+ cwd: projectPath,
135
+ detached: true,
136
+ stdio: 'ignore',
137
+ });
138
+ child.unref();
139
+ // Wait for server to be ready
140
+ res.write(`data: ${JSON.stringify({ type: 'status', content: 'Waiting for server to start...' })}\n\n`);
141
+ // Poll for server to be ready
142
+ const port = config.devServerPort;
143
+ let attempts = 0;
144
+ const maxAttempts = 30; // 30 seconds max
145
+ const checkServer = async () => {
146
+ try {
147
+ const response = await fetch(`http://localhost:${port}`, {
148
+ method: 'HEAD',
149
+ });
150
+ return response.ok || response.status < 500;
151
+ }
152
+ catch {
153
+ return false;
154
+ }
155
+ };
156
+ while (attempts < maxAttempts) {
157
+ if (await checkServer()) {
158
+ res.write(`data: ${JSON.stringify({
159
+ type: 'complete',
160
+ result: {
161
+ success: true,
162
+ devServerPort: port,
163
+ startCommand: config.startCommand,
164
+ },
165
+ })}\n\n`);
166
+ res.end();
167
+ return;
168
+ }
169
+ await new Promise((resolve) => setTimeout(resolve, 1000));
170
+ attempts++;
171
+ }
172
+ // Timeout
173
+ res.write(`data: ${JSON.stringify({
174
+ type: 'error',
175
+ content: `Server did not start within ${maxAttempts} seconds`,
176
+ })}\n\n`);
177
+ res.end();
178
+ }
179
+ catch (error) {
180
+ const errorMsg = error instanceof Error ? error.message : 'Unknown error';
181
+ log.error('Failed to run cached command:', errorMsg);
182
+ res.write(`data: ${JSON.stringify({ type: 'error', content: errorMsg })}\n\n`);
183
+ res.end();
184
+ }
185
+ });
186
+ /**
187
+ * DELETE /api/onboarding/config
188
+ * Clear cached config for the project.
189
+ */
190
+ router.delete('/config', async (req, res) => {
191
+ try {
192
+ await configService.clearProjectConfig(projectPath);
193
+ res.json({ success: true });
194
+ }
195
+ catch (error) {
196
+ log.error('Failed to clear config:', error);
197
+ res.status(500).json({
198
+ error: 'Failed to clear config',
199
+ details: error instanceof Error ? error.message : 'Unknown error',
200
+ });
201
+ }
202
+ });
203
+ return router;
204
+ };
205
+ exports.createOnboardingRouter = createOnboardingRouter;
206
+ //# sourceMappingURL=onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/routes/onboarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const createSelectionRouter: (userDevServerPort: number) => import("express-serve-static-core").Router;
2
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../src/routes/selection.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,qBAAqB,GAAI,mBAAmB,MAAM,+CAwB9D,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ // ABOUTME: Selection script and configuration API routes
3
+ // ABOUTME: Handles serving the element selection script and runtime configuration
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createSelectionRouter = void 0;
9
+ const express_1 = require("express");
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const logger_1 = require("../utils/logger");
13
+ const log = (0, logger_1.createLogger)('SelectionRoutes');
14
+ const createSelectionRouter = (userDevServerPort) => {
15
+ const router = (0, express_1.Router)();
16
+ // Configuration endpoint
17
+ router.get('/config', (req, res) => {
18
+ res.json({
19
+ userPort: userDevServerPort
20
+ });
21
+ });
22
+ // Serve selection script
23
+ router.get('/selection-script', (req, res) => {
24
+ try {
25
+ const scriptPath = path_1.default.join(__dirname, '../scripts/selection-script.js');
26
+ const scriptContent = fs_1.default.readFileSync(scriptPath, 'utf8');
27
+ res.setHeader('Content-Type', 'application/javascript');
28
+ res.send(scriptContent);
29
+ }
30
+ catch (error) {
31
+ log.error('Failed to serve selection script:', error);
32
+ res.status(500).send('// Selection script not found');
33
+ }
34
+ });
35
+ return router;
36
+ };
37
+ exports.createSelectionRouter = createSelectionRouter;
38
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/routes/selection.ts"],"names":[],"mappings":";AAAA,yDAAyD;AACzD,kFAAkF;;;;;;AAElF,qCAAiC;AACjC,4CAAoB;AACpB,gDAAwB;AACxB,4CAA+C;AAE/C,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,iBAAiB,CAAC,CAAC;AAErC,MAAM,qBAAqB,GAAG,CAAC,iBAAyB,EAAE,EAAE;IACjE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,yBAAyB;IACzB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACjC,GAAG,CAAC,IAAI,CAAC;YACP,QAAQ,EAAE,iBAAiB;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAC;YAC1E,MAAM,aAAa,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC1D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YACtD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxBW,QAAA,qBAAqB,yBAwBhC"}
@@ -0,0 +1,300 @@
1
+ // React DevTools instrumentation for Rivet
2
+ // Uses bippy library for reliable React Fiber tree access
3
+ (function () {
4
+ 'use strict';
5
+
6
+ console.log('[Rivet] React instrumentation loaded');
7
+
8
+ /**
9
+ * Check if React is present on the page by looking for React fiber on any element
10
+ */
11
+ function detectReact() {
12
+ // Check if any DOM element has React fiber attached
13
+ const elements = document.querySelectorAll('*');
14
+ for (let i = 0; i < elements.length; i++) {
15
+ const element = elements[i];
16
+ const hasFiber = Object.keys(element).some(
17
+ (key) =>
18
+ key.startsWith('__reactFiber$') ||
19
+ key.startsWith('__reactInternalInstance$'),
20
+ );
21
+ if (hasFiber) {
22
+ console.log('[Rivet] React detected on page');
23
+ return true;
24
+ }
25
+ }
26
+ return false;
27
+ }
28
+
29
+ /**
30
+ * Load bippy library dynamically
31
+ */
32
+ let bippyLoading = null;
33
+ async function loadBippy() {
34
+ if (window.Bippy) {
35
+ return window.Bippy;
36
+ }
37
+
38
+ // If already loading, wait for it
39
+ if (bippyLoading) {
40
+ return bippyLoading;
41
+ }
42
+
43
+ bippyLoading = new Promise((resolve, reject) => {
44
+ try {
45
+ // Load bippy from CDN (exposes window.Bippy)
46
+ const script = document.createElement('script');
47
+ script.src = 'https://unpkg.com/bippy';
48
+
49
+ script.onload = () => {
50
+ console.log('[Rivet] Bippy library loaded');
51
+ resolve(window.Bippy);
52
+ };
53
+
54
+ script.onerror = () => {
55
+ console.error('[Rivet] Failed to load bippy');
56
+ reject(new Error('Failed to load bippy'));
57
+ };
58
+
59
+ document.head.appendChild(script);
60
+ } catch (error) {
61
+ console.error('[Rivet] Error loading bippy:', error);
62
+ reject(error);
63
+ }
64
+ });
65
+
66
+ return bippyLoading;
67
+ }
68
+
69
+ /**
70
+ * Find the React Fiber node for a DOM element using bippy
71
+ */
72
+ async function getFiberFromElement(element) {
73
+ if (!element) return null;
74
+
75
+ try {
76
+ const Bippy = await loadBippy();
77
+
78
+ if (Bippy && Bippy.getNearestHostFiber) {
79
+ const fiber = Bippy.getNearestHostFiber(element);
80
+ if (fiber) {
81
+ console.log('[Rivet] Got fiber from bippy');
82
+ return fiber;
83
+ }
84
+ }
85
+ } catch (error) {
86
+ console.warn('[Rivet] Error using bippy, falling back to manual:', error);
87
+ }
88
+
89
+ // Fallback to manual method
90
+ console.log('[Rivet] Using manual fiber extraction');
91
+ const fiberKey = Object.keys(element).find(
92
+ (key) =>
93
+ key.startsWith('__reactFiber$') ||
94
+ key.startsWith('__reactInternalInstance$') ||
95
+ key.startsWith('__reactProps$'),
96
+ );
97
+
98
+ if (fiberKey && fiberKey.startsWith('__reactFiber')) {
99
+ return element[fiberKey];
100
+ }
101
+
102
+ if (fiberKey && fiberKey.startsWith('__reactProps')) {
103
+ const fiberId = fiberKey.replace('__reactProps$', '__reactFiber$');
104
+ if (element[fiberId]) {
105
+ return element[fiberId];
106
+ }
107
+ }
108
+
109
+ return null;
110
+ }
111
+
112
+ /**
113
+ * Walk up the Fiber tree to collect ALL parent components with source locations
114
+ */
115
+ async function findAllComponentsInTree(fiber) {
116
+ if (!fiber) return [];
117
+
118
+ const components = [];
119
+ let current = fiber;
120
+ const seenFiles = new Set(); // Avoid duplicates
121
+ let nodeCount = 0;
122
+ let debugInfo = { nodesChecked: 0, nodesWithSource: 0, nodesWithType: 0 };
123
+
124
+ console.log('[Rivet] Walking React Fiber tree...');
125
+
126
+ // Try to load bippy for better component names
127
+ let Bippy = null;
128
+ try {
129
+ Bippy = await loadBippy();
130
+ } catch (e) {
131
+ console.log('[Rivet] Bippy not available, using manual names');
132
+ }
133
+
134
+ while (current && nodeCount < 50) {
135
+ // Limit to prevent infinite loops
136
+ nodeCount++;
137
+ debugInfo.nodesChecked++;
138
+
139
+ // Log fiber node properties for debugging
140
+ if (nodeCount <= 5) {
141
+ console.log(`[Rivet] Fiber node ${nodeCount}:`, {
142
+ type:
143
+ current.type?.name ||
144
+ current.type?.displayName ||
145
+ typeof current.type,
146
+ tag: current.tag,
147
+ hasDebugSource: !!current._debugSource,
148
+ hasDebugOwner: !!current._debugOwner,
149
+ debugSourceFile: current._debugSource?.fileName,
150
+ debugOwnerSourceFile: current._debugOwner?._debugSource?.fileName,
151
+ });
152
+ }
153
+
154
+ // Check if this fiber has debug source (component source location)
155
+ const source = current._debugSource || current._debugOwner?._debugSource;
156
+
157
+ if (source && source.fileName) {
158
+ debugInfo.nodesWithSource++;
159
+
160
+ // Get component name - try bippy first for better names
161
+ let componentName = null;
162
+ if (Bippy && Bippy.getDisplayName) {
163
+ try {
164
+ componentName = Bippy.getDisplayName(current);
165
+ } catch (e) {
166
+ // Bippy failed, fall through to manual
167
+ }
168
+ }
169
+
170
+ // Fallback to manual name extraction
171
+ if (!componentName) {
172
+ if (current.type) {
173
+ debugInfo.nodesWithType++;
174
+ componentName = current.type.name || current.type.displayName;
175
+ } else if (current._debugOwner?.type) {
176
+ componentName =
177
+ current._debugOwner.type.name ||
178
+ current._debugOwner.type.displayName;
179
+ }
180
+ }
181
+
182
+ // Only add if we haven't seen this file yet
183
+ const fileKey = `${source.fileName}:${source.lineNumber}`;
184
+ if (!seenFiles.has(fileKey)) {
185
+ seenFiles.add(fileKey);
186
+ components.push({
187
+ filePath: source.fileName,
188
+ line: source.lineNumber,
189
+ column: source.columnNumber,
190
+ componentName: componentName || 'Unknown',
191
+ });
192
+ console.log(
193
+ `[Rivet] Found component: ${componentName || 'Unknown'} at ${source.fileName}:${source.lineNumber}`,
194
+ );
195
+ }
196
+ }
197
+
198
+ // Move up the tree (return fiber -> parent fiber)
199
+ current = current.return;
200
+ }
201
+
202
+ console.log('[Rivet] Fiber tree walk complete:', debugInfo);
203
+
204
+ return components;
205
+ }
206
+
207
+ /**
208
+ * Extract component information from a DOM element
209
+ * Returns ALL parent components in the tree hierarchy
210
+ */
211
+ async function getComponentInfo(element) {
212
+ if (!element || !(element instanceof HTMLElement)) {
213
+ return null;
214
+ }
215
+
216
+ try {
217
+ // Find the fiber node for this element (async with bippy)
218
+ const fiber = await getFiberFromElement(element);
219
+ if (!fiber) {
220
+ console.warn('[Rivet] No fiber found for element:', element);
221
+ return null;
222
+ }
223
+
224
+ // Find ALL components in the fiber tree (async with bippy)
225
+ const components = await findAllComponentsInTree(fiber);
226
+ if (components.length === 0) {
227
+ console.warn('[Rivet] No component source found for element:', element);
228
+ return null;
229
+ }
230
+
231
+ // Clean file paths for all components
232
+ const cleanedComponents = components.map((comp) => {
233
+ let filePath = comp.filePath;
234
+
235
+ // Remove webpack prefixes like "webpack://" or "webpack-internal:///"
236
+ filePath = filePath.replace(/^webpack(-internal)?:\/\/\//, '');
237
+ filePath = filePath.replace(/^\.\//, '');
238
+
239
+ // For Create React App and similar, remove the leading dot-slash
240
+ if (filePath.startsWith('./')) {
241
+ filePath = filePath.substring(2);
242
+ }
243
+
244
+ return {
245
+ filePath,
246
+ line: comp.line,
247
+ column: comp.column,
248
+ componentName: comp.componentName,
249
+ };
250
+ });
251
+
252
+ console.log(
253
+ `[Rivet] Found ${cleanedComponents.length} components in tree:`,
254
+ cleanedComponents,
255
+ );
256
+
257
+ // Return the component hierarchy
258
+ return {
259
+ components: cleanedComponents,
260
+ // Primary component is the first (closest to selected element)
261
+ primaryComponent: cleanedComponents[0],
262
+ };
263
+ } catch (error) {
264
+ console.error('[Rivet] Error extracting component info:', error);
265
+ return null;
266
+ }
267
+ }
268
+
269
+ /**
270
+ * Check if React is available
271
+ */
272
+ function isReactAvailable() {
273
+ return detectReact();
274
+ }
275
+
276
+ // Try to detect React on page load
277
+ if (document.readyState === 'loading') {
278
+ document.addEventListener('DOMContentLoaded', () => {
279
+ if (detectReact()) {
280
+ console.log('[Rivet] React instrumentation ready');
281
+ }
282
+ });
283
+ } else {
284
+ // Page already loaded, check now
285
+ if (detectReact()) {
286
+ console.log('[Rivet] React instrumentation ready');
287
+ }
288
+ }
289
+
290
+ // Expose API on window
291
+ window.__RIVET_REACT__ = {
292
+ getComponentInfo,
293
+ isReactAvailable,
294
+ version: '1.0.0',
295
+ };
296
+
297
+ console.log(
298
+ '[Rivet] React instrumentation API exposed on window.__RIVET_REACT__',
299
+ );
300
+ })();
package/dist/server.d.ts CHANGED
@@ -11,6 +11,8 @@ export type ServerOptions = Omit<CLIOptions, 'help' | 'version' | 'debug'> & {
11
11
  styleFramework?: 'tailwind';
12
12
  tailwindConfig?: string;
13
13
  sessionBridge?: SessionBridgeService;
14
+ /** The editor running the MCP session (e.g. 'claude', 'cursor', 'codex'). Shown in the UI button. */
15
+ mcpEditor?: string;
14
16
  /** Skip registering process-level exit/signal handlers. Set true when embedded in another process (e.g. MCP server). */
15
17
  skipProcessHandlers?: boolean;
16
18
  /** Explicit port for the Rivet Express server. Defaults to DEFAULT_PORT (4000). */
@@ -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,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,CA6QtB,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;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,CA2RtB,CAAC"}
package/dist/server.js CHANGED
@@ -77,7 +77,7 @@ const resolveUiPath = () => {
77
77
  };
78
78
  exports.DIST_UI_PATH = resolveUiPath();
79
79
  const startServer = async (options) => {
80
- const { userPort, telemetry, projectPath, framework, staticEntry, styleFramework, tailwindConfig, sessionBridge, skipProcessHandlers, } = options;
80
+ const { userPort, telemetry, projectPath, framework, staticEntry, styleFramework, tailwindConfig, sessionBridge, mcpEditor, skipProcessHandlers, } = options;
81
81
  const userPortWithFallback = userPort ?? _1.DEFAULT_USER_PORT;
82
82
  if (process.env.SENTRY_DSN) {
83
83
  Sentry.init({
@@ -194,6 +194,7 @@ const startServer = async (options) => {
194
194
  agentModeAvailable: configManager.isAuthenticated(),
195
195
  email: configManager.getEmail(),
196
196
  isMCPSession: sessionBridge?.isActive() ?? false,
197
+ mcpEditor: mcpEditor ?? null,
197
198
  });
198
199
  });
199
200
  // Store auth credentials locally after browser-based OAuth completion.
@@ -251,6 +252,7 @@ const startServer = async (options) => {
251
252
  }
252
253
  });
253
254
  // Start server
255
+ const activeSockets = new Set();
254
256
  const httpServer = await new Promise((resolve, reject) => {
255
257
  const server = app.listen(listenPort, () => {
256
258
  log.info(`🎨 Rivet server running on http://localhost:${listenPort}`);
@@ -259,6 +261,11 @@ const startServer = async (options) => {
259
261
  server.on('error', (err) => {
260
262
  reject(err);
261
263
  });
264
+ // Track connections so we can destroy them on close (prevents keep-alive hang)
265
+ server.on('connection', (socket) => {
266
+ activeSockets.add(socket);
267
+ socket.on('close', () => activeSockets.delete(socket));
268
+ });
262
269
  // Handle WebSocket upgrade requests
263
270
  server.on('upgrade', (req, socket, head) => {
264
271
  const pathname = req.url;
@@ -282,6 +289,10 @@ const startServer = async (options) => {
282
289
  else
283
290
  resolve();
284
291
  });
292
+ // Destroy all active connections so close() resolves immediately
293
+ for (const socket of activeSockets) {
294
+ socket.destroy();
295
+ }
285
296
  }),
286
297
  };
287
298
  };
@@ -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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"}