gravity-core 1.0.21 → 1.0.22
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.
- package/dist/mcp-server.js +1 -1
- package/dist/native-host.js +57 -27
- package/dist/native-host.js.map +1 -1
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
package/dist/mcp-server.js
CHANGED
package/dist/native-host.js
CHANGED
|
@@ -22,16 +22,25 @@ function readNativeMessage() {
|
|
|
22
22
|
let headerBytesRead = 0;
|
|
23
23
|
const readHeader = () => {
|
|
24
24
|
const chunk = process.stdin.read(4 - headerBytesRead);
|
|
25
|
-
if (chunk) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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;
|
|
34
42
|
}
|
|
43
|
+
readMessage(messageLength);
|
|
35
44
|
}
|
|
36
45
|
else {
|
|
37
46
|
process.stdin.once('readable', readHeader);
|
|
@@ -42,20 +51,25 @@ function readNativeMessage() {
|
|
|
42
51
|
let messageBytesRead = 0;
|
|
43
52
|
const readChunk = () => {
|
|
44
53
|
const chunk = process.stdin.read(length - messageBytesRead);
|
|
45
|
-
if (chunk) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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);
|
|
56
70
|
}
|
|
57
|
-
|
|
58
|
-
|
|
71
|
+
catch (error) {
|
|
72
|
+
reject(new Error(`Failed to parse JSON: ${error}`));
|
|
59
73
|
}
|
|
60
74
|
}
|
|
61
75
|
else {
|
|
@@ -116,6 +130,8 @@ function startWebSocketServer() {
|
|
|
116
130
|
*/
|
|
117
131
|
async function listenToExtension() {
|
|
118
132
|
console.error('[Native Host] Listening for extension messages...');
|
|
133
|
+
// Resume stdin to start reading
|
|
134
|
+
process.stdin.resume();
|
|
119
135
|
while (true) {
|
|
120
136
|
try {
|
|
121
137
|
const message = await readNativeMessage();
|
|
@@ -129,24 +145,38 @@ async function listenToExtension() {
|
|
|
129
145
|
}
|
|
130
146
|
}
|
|
131
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
|
+
}
|
|
132
152
|
console.error('[Native Host] Error reading from extension:', error.message);
|
|
133
153
|
break;
|
|
134
154
|
}
|
|
135
155
|
}
|
|
156
|
+
// Cleanup on exit
|
|
157
|
+
console.error('[Native Host] Shutting down...');
|
|
158
|
+
if (wsServer) {
|
|
159
|
+
wsServer.close();
|
|
160
|
+
}
|
|
161
|
+
process.exit(0);
|
|
136
162
|
}
|
|
137
163
|
/**
|
|
138
164
|
* Main entry point
|
|
139
165
|
*/
|
|
140
166
|
async function main() {
|
|
141
167
|
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();
|
|
142
171
|
// Start WebSocket server
|
|
143
172
|
startWebSocketServer();
|
|
144
173
|
// Listen for extension messages
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
174
|
+
listenToExtension().catch((error) => {
|
|
175
|
+
console.error('[Native Host] Fatal error in message loop:', error);
|
|
176
|
+
process.exit(1);
|
|
177
|
+
});
|
|
178
|
+
// Keep process alive
|
|
179
|
+
console.error('[Native Host] Ready and waiting for messages...');
|
|
150
180
|
}
|
|
151
181
|
// Handle graceful shutdown
|
|
152
182
|
process.on('SIGINT', () => {
|
package/dist/native-host.js.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"native-host.js","sourceRoot":"","sources":["../src/native-host.ts"],"names":[],"mappings":"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"}
|
package/extension/manifest.json
CHANGED
package/package.json
CHANGED