gravity-core 1.0.21 → 1.0.23

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.21',
115
+ version: '1.0.23',
116
116
  },
117
117
  },
118
118
  };
@@ -10,80 +10,17 @@
10
10
  * MCP Server ← WebSocket → Native Host ← Native Messaging → Extension ← CDP → Browser
11
11
  */
12
12
  import { WebSocketServer, WebSocket } from 'ws';
13
+ // @ts-ignore - no types available
14
+ import nativeMessage from 'chrome-native-messaging';
13
15
  const WS_PORT = 9224;
14
16
  let wsServer = null;
15
17
  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) {
26
- chunk.copy(headerBuffer, headerBytesRead);
27
- headerBytesRead += chunk.length;
28
- if (headerBytesRead === 4) {
29
- const messageLength = headerBuffer.readUInt32LE(0);
30
- readMessage(messageLength);
31
- }
32
- else {
33
- process.stdin.once('readable', readHeader);
34
- }
35
- }
36
- else {
37
- process.stdin.once('readable', readHeader);
38
- }
39
- };
40
- const readMessage = (length) => {
41
- const messageBuffer = Buffer.alloc(length);
42
- let messageBytesRead = 0;
43
- const readChunk = () => {
44
- const chunk = process.stdin.read(length - messageBytesRead);
45
- if (chunk) {
46
- chunk.copy(messageBuffer, messageBytesRead);
47
- messageBytesRead += chunk.length;
48
- if (messageBytesRead === length) {
49
- try {
50
- const message = JSON.parse(messageBuffer.toString('utf-8'));
51
- resolve(message);
52
- }
53
- catch (error) {
54
- reject(error);
55
- }
56
- }
57
- else {
58
- process.stdin.once('readable', readChunk);
59
- }
60
- }
61
- else {
62
- process.stdin.once('readable', readChunk);
63
- }
64
- };
65
- readChunk();
66
- };
67
- readHeader();
68
- });
69
- }
70
- /**
71
- * Send native messaging message to stdout
72
- */
73
- function sendNativeMessage(message) {
74
- const messageStr = JSON.stringify(message);
75
- const messageBuffer = Buffer.from(messageStr, 'utf-8');
76
- const headerBuffer = Buffer.alloc(4);
77
- headerBuffer.writeUInt32LE(messageBuffer.length, 0);
78
- process.stdout.write(headerBuffer);
79
- process.stdout.write(messageBuffer);
80
- }
81
18
  /**
82
19
  * Start WebSocket server for MCP connections
83
20
  */
84
21
  function startWebSocketServer() {
85
22
  wsServer = new WebSocketServer({ port: WS_PORT });
86
- console.error(`[Native Host] WebSocket server listening on port ${WS_PORT}`);
23
+ console.error('[Native Host] WebSocket server listening on port', WS_PORT);
87
24
  wsServer.on('connection', (ws) => {
88
25
  console.error('[Native Host] MCP server connected');
89
26
  wsClient = ws;
@@ -91,8 +28,8 @@ function startWebSocketServer() {
91
28
  try {
92
29
  const message = JSON.parse(data.toString());
93
30
  console.error('[Native Host] MCP → Extension:', message.type || message.method);
94
- // Forward to extension via native messaging
95
- sendNativeMessage(message);
31
+ // Forward to extension via native messaging (stdout)
32
+ output.write(message);
96
33
  }
97
34
  catch (error) {
98
35
  console.error('[Native Host] Error processing WebSocket message:', error.message);
@@ -112,41 +49,43 @@ function startWebSocketServer() {
112
49
  });
113
50
  }
114
51
  /**
115
- * Listen for messages from extension
52
+ * Setup Native Messaging streams
116
53
  */
117
- async function listenToExtension() {
118
- console.error('[Native Host] Listening for extension messages...');
119
- while (true) {
120
- try {
121
- const message = await readNativeMessage();
122
- console.error('[Native Host] Extension MCP:', message.type);
123
- // Forward to MCP server via WebSocket
124
- if (wsClient && wsClient.readyState === WebSocket.OPEN) {
125
- wsClient.send(JSON.stringify(message));
126
- }
127
- else {
128
- console.error('[Native Host] No MCP client connected, message dropped');
129
- }
130
- }
131
- catch (error) {
132
- console.error('[Native Host] Error reading from extension:', error.message);
133
- break;
134
- }
54
+ const input = new nativeMessage.Input();
55
+ const output = new nativeMessage.Output();
56
+ const transform = new nativeMessage.Transform((msg, push, done) => {
57
+ console.error('[Native Host] Extension → MCP:', msg.type);
58
+ // Forward to MCP server via WebSocket
59
+ if (wsClient && wsClient.readyState === WebSocket.OPEN) {
60
+ wsClient.send(JSON.stringify(msg));
135
61
  }
136
- }
62
+ else {
63
+ console.error('[Native Host] No MCP client connected, message dropped');
64
+ }
65
+ done();
66
+ });
137
67
  /**
138
68
  * Main entry point
139
69
  */
140
- async function main() {
70
+ function main() {
141
71
  console.error('[Native Host] Starting Gravity Native Host...');
142
72
  // Start WebSocket server
143
73
  startWebSocketServer();
144
- // Listen for extension messages
145
- await listenToExtension();
146
- // Cleanup
147
- if (wsServer) {
148
- wsServer.close();
149
- }
74
+ // Setup Native Messaging pipeline
75
+ process.stdin
76
+ .pipe(input)
77
+ .pipe(transform)
78
+ .pipe(output)
79
+ .pipe(process.stdout);
80
+ console.error('[Native Host] Ready and waiting for messages...');
81
+ // Handle stdin close
82
+ process.stdin.on('end', () => {
83
+ console.error('[Native Host] Extension disconnected (stdin closed)');
84
+ if (wsServer) {
85
+ wsServer.close();
86
+ }
87
+ process.exit(0);
88
+ });
150
89
  }
151
90
  // Handle graceful shutdown
152
91
  process.on('SIGINT', () => {
@@ -163,8 +102,5 @@ process.on('SIGTERM', () => {
163
102
  }
164
103
  process.exit(0);
165
104
  });
166
- main().catch((error) => {
167
- console.error('[Native Host] Fatal error:', error);
168
- process.exit(1);
169
- });
105
+ main();
170
106
  //# sourceMappingURL=native-host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native-host.js","sourceRoot":"","sources":["../src/native-host.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,IAAI,QAAQ,GAA2B,IAAI,CAAC;AAC5C,IAAI,QAAQ,GAAqB,IAAI,CAAC;AAEtC;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;YACtD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;gBAC1C,eAAe,IAAI,KAAK,CAAC,MAAM,CAAC;gBAEhC,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBACnD,WAAW,CAAC,aAAa,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE;YACrC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,gBAAgB,GAAG,CAAC,CAAC;YAEzB,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC;gBAC5D,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;oBAC5C,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC;oBAEjC,IAAI,gBAAgB,KAAK,MAAM,EAAE,CAAC;wBAChC,IAAI,CAAC;4BACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;4BAC5D,OAAO,CAAC,OAAO,CAAC,CAAC;wBACnB,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,MAAM,CAAC,KAAK,CAAC,CAAC;wBAChB,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC;YAEF,SAAS,EAAE,CAAC;QACd,CAAC,CAAC;QAEF,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAY;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB;IAC3B,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAElD,OAAO,CAAC,KAAK,CAAC,oDAAoD,OAAO,EAAE,CAAC,CAAC;IAE7E,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,EAAE;QAC1C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,QAAQ,GAAG,EAAE,CAAC;QAEd,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;gBAEhF,4CAA4C;gBAC5C,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACpF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB;IAC9B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEnE,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAE9D,sCAAsC;YACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5E,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAE/D,yBAAyB;IACzB,oBAAoB,EAAE,CAAC;IAEvB,gCAAgC;IAChC,MAAM,iBAAiB,EAAE,CAAC;IAE1B,UAAU;IACV,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"native-host.js","sourceRoot":"","sources":["../src/native-host.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAChD,kCAAkC;AAClC,OAAO,aAAa,MAAM,yBAAyB,CAAC;AAEpD,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,IAAI,QAAQ,GAA2B,IAAI,CAAC;AAC5C,IAAI,QAAQ,GAAqB,IAAI,CAAC;AAEtC;;GAEG;AACH,SAAS,oBAAoB;IAC3B,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAElD,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,OAAO,CAAC,CAAC;IAE3E,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,EAAE;QAC1C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,QAAQ,GAAG,EAAE,CAAC;QAEd,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;gBAEhF,qDAAqD;gBACrD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACpF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACvD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;AAC1C,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,IAAwB,EAAE,IAAgB,EAAE,EAAE;IACrG,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1D,sCAAsC;IACtC,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,IAAI;IACX,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAE/D,yBAAyB;IACzB,oBAAoB,EAAE,CAAC;IAEvB,kCAAkC;IAClC,OAAO,CAAC,KAAK;SACV,IAAI,CAAC,KAAK,CAAC;SACX,IAAI,CAAC,SAAS,CAAC;SACf,IAAI,CAAC,MAAM,CAAC;SACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAEjE,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2BAA2B;AAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,IAAI,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "Gravity",
4
- "version": "1.0.21",
4
+ "version": "1.0.23",
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.21",
3
+ "version": "1.0.23",
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": {