gravity-core 1.0.22 → 1.0.24

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.
@@ -112,7 +112,7 @@ async function processRequest(request) {
112
112
  },
113
113
  serverInfo: {
114
114
  name: 'gravity',
115
- version: '1.0.22',
115
+ version: '1.0.24',
116
116
  },
117
117
  },
118
118
  };
@@ -10,94 +10,19 @@
10
10
  * MCP Server ← WebSocket → Native Host ← Native Messaging → Extension ← CDP → Browser
11
11
  */
12
12
  import { WebSocketServer, WebSocket } from 'ws';
13
+ import { createRequire } from 'module';
14
+ const require = createRequire(import.meta.url);
15
+ // @ts-ignore - no types available
16
+ const nativeMessage = require('chrome-native-messaging');
13
17
  const WS_PORT = 9224;
14
18
  let wsServer = null;
15
19
  let wsClient = null;
16
- /**
17
- * Read native messaging message from stdin
18
- */
19
- function readNativeMessage() {
20
- return new Promise((resolve, reject) => {
21
- const headerBuffer = Buffer.alloc(4);
22
- let headerBytesRead = 0;
23
- const readHeader = () => {
24
- const chunk = process.stdin.read(4 - headerBytesRead);
25
- if (chunk === null) {
26
- // No data available yet, wait for readable event
27
- process.stdin.once('readable', readHeader);
28
- return;
29
- }
30
- if (chunk.length === 0) {
31
- // EOF
32
- reject(new Error('EOF: stdin closed'));
33
- return;
34
- }
35
- chunk.copy(headerBuffer, headerBytesRead);
36
- headerBytesRead += chunk.length;
37
- if (headerBytesRead === 4) {
38
- const messageLength = headerBuffer.readUInt32LE(0);
39
- if (messageLength === 0 || messageLength > 1024 * 1024) {
40
- reject(new Error(`Invalid message length: ${messageLength}`));
41
- return;
42
- }
43
- readMessage(messageLength);
44
- }
45
- else {
46
- process.stdin.once('readable', readHeader);
47
- }
48
- };
49
- const readMessage = (length) => {
50
- const messageBuffer = Buffer.alloc(length);
51
- let messageBytesRead = 0;
52
- const readChunk = () => {
53
- const chunk = process.stdin.read(length - messageBytesRead);
54
- if (chunk === null) {
55
- // No data available yet, wait for readable event
56
- process.stdin.once('readable', readChunk);
57
- return;
58
- }
59
- if (chunk.length === 0) {
60
- // EOF
61
- reject(new Error('EOF: stdin closed during message read'));
62
- return;
63
- }
64
- chunk.copy(messageBuffer, messageBytesRead);
65
- messageBytesRead += chunk.length;
66
- if (messageBytesRead === length) {
67
- try {
68
- const message = JSON.parse(messageBuffer.toString('utf-8'));
69
- resolve(message);
70
- }
71
- catch (error) {
72
- reject(new Error(`Failed to parse JSON: ${error}`));
73
- }
74
- }
75
- else {
76
- process.stdin.once('readable', readChunk);
77
- }
78
- };
79
- readChunk();
80
- };
81
- readHeader();
82
- });
83
- }
84
- /**
85
- * Send native messaging message to stdout
86
- */
87
- function sendNativeMessage(message) {
88
- const messageStr = JSON.stringify(message);
89
- const messageBuffer = Buffer.from(messageStr, 'utf-8');
90
- const headerBuffer = Buffer.alloc(4);
91
- headerBuffer.writeUInt32LE(messageBuffer.length, 0);
92
- process.stdout.write(headerBuffer);
93
- process.stdout.write(messageBuffer);
94
- }
95
20
  /**
96
21
  * Start WebSocket server for MCP connections
97
22
  */
98
23
  function startWebSocketServer() {
99
24
  wsServer = new WebSocketServer({ port: WS_PORT });
100
- console.error(`[Native Host] WebSocket server listening on port ${WS_PORT}`);
25
+ console.error('[Native Host] WebSocket server listening on port', WS_PORT);
101
26
  wsServer.on('connection', (ws) => {
102
27
  console.error('[Native Host] MCP server connected');
103
28
  wsClient = ws;
@@ -105,8 +30,8 @@ function startWebSocketServer() {
105
30
  try {
106
31
  const message = JSON.parse(data.toString());
107
32
  console.error('[Native Host] MCP → Extension:', message.type || message.method);
108
- // Forward to extension via native messaging
109
- sendNativeMessage(message);
33
+ // Forward to extension via native messaging (stdout)
34
+ output.write(message);
110
35
  }
111
36
  catch (error) {
112
37
  console.error('[Native Host] Error processing WebSocket message:', error.message);
@@ -126,57 +51,43 @@ function startWebSocketServer() {
126
51
  });
127
52
  }
128
53
  /**
129
- * Listen for messages from extension
54
+ * Setup Native Messaging streams
130
55
  */
131
- async function listenToExtension() {
132
- console.error('[Native Host] Listening for extension messages...');
133
- // Resume stdin to start reading
134
- process.stdin.resume();
135
- while (true) {
136
- try {
137
- const message = await readNativeMessage();
138
- console.error('[Native Host] Extension → MCP:', message.type);
139
- // Forward to MCP server via WebSocket
140
- if (wsClient && wsClient.readyState === WebSocket.OPEN) {
141
- wsClient.send(JSON.stringify(message));
142
- }
143
- else {
144
- console.error('[Native Host] No MCP client connected, message dropped');
145
- }
146
- }
147
- catch (error) {
148
- if (error.message.includes('EOF') || error.message.includes('end')) {
149
- console.error('[Native Host] Extension disconnected (stdin closed)');
150
- break;
151
- }
152
- console.error('[Native Host] Error reading from extension:', error.message);
153
- break;
154
- }
56
+ const input = new nativeMessage.Input();
57
+ const output = new nativeMessage.Output();
58
+ const transform = new nativeMessage.Transform((msg, push, done) => {
59
+ console.error('[Native Host] Extension → MCP:', msg.type);
60
+ // Forward to MCP server via WebSocket
61
+ if (wsClient && wsClient.readyState === WebSocket.OPEN) {
62
+ wsClient.send(JSON.stringify(msg));
155
63
  }
156
- // Cleanup on exit
157
- console.error('[Native Host] Shutting down...');
158
- if (wsServer) {
159
- wsServer.close();
64
+ else {
65
+ console.error('[Native Host] No MCP client connected, message dropped');
160
66
  }
161
- process.exit(0);
162
- }
67
+ done();
68
+ });
163
69
  /**
164
70
  * Main entry point
165
71
  */
166
- async function main() {
72
+ function main() {
167
73
  console.error('[Native Host] Starting Gravity Native Host...');
168
- // Set stdin to binary mode for Native Messaging
169
- process.stdin.setEncoding('binary');
170
- process.stdin.pause();
171
74
  // Start WebSocket server
172
75
  startWebSocketServer();
173
- // Listen for extension messages
174
- listenToExtension().catch((error) => {
175
- console.error('[Native Host] Fatal error in message loop:', error);
176
- process.exit(1);
177
- });
178
- // Keep process alive
76
+ // Setup Native Messaging pipeline
77
+ process.stdin
78
+ .pipe(input)
79
+ .pipe(transform)
80
+ .pipe(output)
81
+ .pipe(process.stdout);
179
82
  console.error('[Native Host] Ready and waiting for messages...');
83
+ // Handle stdin close
84
+ process.stdin.on('end', () => {
85
+ console.error('[Native Host] Extension disconnected (stdin closed)');
86
+ if (wsServer) {
87
+ wsServer.close();
88
+ }
89
+ process.exit(0);
90
+ });
180
91
  }
181
92
  // Handle graceful shutdown
182
93
  process.on('SIGINT', () => {
@@ -193,8 +104,5 @@ process.on('SIGTERM', () => {
193
104
  }
194
105
  process.exit(0);
195
106
  });
196
- main().catch((error) => {
197
- console.error('[Native Host] Fatal error:', error);
198
- process.exit(1);
199
- });
107
+ main();
200
108
  //# sourceMappingURL=native-host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native-host.js","sourceRoot":"","sources":["../src/native-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-host.js","sourceRoot":"","sources":["../src/native-host.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "Gravity",
4
- "version": "1.0.22",
4
+ "version": "1.0.24 ",
5
5
  "description": "Gravity - Browser DevTools integration for MCP server",
6
6
  "permissions": [
7
7
  "debugger",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gravity-core",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "Gravity - AI-powered CSS layout diagnostics for any IDE. Connect your browser to get real-time layout issue detection.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -46,6 +46,7 @@
46
46
  "node": ">=16.0.0"
47
47
  },
48
48
  "dependencies": {
49
+ "chrome-native-messaging": "^0.2.0",
49
50
  "ws": "^8.18.0"
50
51
  },
51
52
  "devDependencies": {