gravity-core 1.0.2 → 1.0.3

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/cli.js CHANGED
@@ -1,60 +1,82 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Gravity MCP Server
3
+ * Gravity CLI
4
4
  *
5
- * This is the entry point for the npm package when used as an MCP server.
6
- * It connects to the Chrome extension via WebSocket and provides MCP tools
7
- * for layout diagnostics.
5
+ * Commands:
6
+ * - gravity setup-extension Extract and setup Chrome extension
7
+ * - gravity setup-native-host Setup native messaging host
8
+ * - gravity test-connection Test connection to extension
9
+ * - gravity Start MCP server
10
+ * - gravity --help Show help
8
11
  */
9
- import { Gravity } from './index.js';
10
- import { existsSync, cpSync } from 'fs';
11
- import { dirname, join, resolve } from 'path';
12
+ import { getGravityExtensionDir, getGravityHostDir, detectGravityExtensionId, patchManifest, writeRegistryKey, registryKeyExists, promptConfirm, promptRestartChrome, validateManifest, nativeHostExists, testWebSocketConnection, } from './cli-utils.js';
13
+ import { existsSync, cpSync, readFileSync } from 'fs';
14
+ import { dirname, join } from 'path';
12
15
  import { fileURLToPath } from 'url';
16
+ import { platform } from 'os';
13
17
  const __filename = fileURLToPath(import.meta.url);
14
18
  const __dirname = dirname(__filename);
15
- // Check for setup-extension command
19
+ // Parse command line arguments
16
20
  const args = process.argv.slice(2);
17
- if (args.includes('--setup-extension') || args.includes('setup-extension')) {
18
- setupExtension();
21
+ const command = args[0];
22
+ // Route to appropriate handler
23
+ if (command === 'setup-extension') {
24
+ handleSetupExtension();
19
25
  }
20
- else if (args.includes('--help') || args.includes('-h')) {
26
+ else if (command === 'setup-native-host') {
27
+ handleSetupNativeHost();
28
+ }
29
+ else if (command === 'test-connection') {
30
+ handleTestConnection();
31
+ }
32
+ else if (command === '--help' || command === '-h' || command === 'help') {
21
33
  showHelp();
22
34
  }
23
- else {
24
- // Default: run MCP server
35
+ else if (!command) {
25
36
  runMCPServer();
26
37
  }
38
+ else {
39
+ console.error(`❌ Unknown command: ${command}`);
40
+ console.error('Run "gravity --help" for usage information');
41
+ process.exit(1);
42
+ }
27
43
  /**
28
44
  * Show help message
29
45
  */
30
46
  function showHelp() {
31
- console.log(`
47
+ console.error(`
32
48
  🌌 Gravity - AI-powered CSS layout diagnostics
33
49
 
34
50
  Usage:
35
- npx gravity-core Start the MCP server
36
- npx gravity-core setup-extension Extract Chrome extension to ./gravity-extension
37
- npx gravity-core --help Show this help message
51
+ gravity Start the MCP server
52
+ gravity setup-extension Extract Chrome extension to ~/.gravity-extension
53
+ gravity setup-native-host Setup native messaging host for Chrome
54
+ gravity test-connection Test connection to extension
55
+ gravity --help Show this help message
38
56
 
39
- Setup:
40
- 1. Run: npx gravity-core setup-extension
41
- 2. Open Chrome and go to chrome://extensions
42
- 3. Enable "Developer mode" (toggle in top right)
43
- 4. Click "Load unpacked"
44
- 5. Select the ./gravity-extension folder
45
- 6. Click the Gravity extension icon and "Connect to Tab"
57
+ Setup Instructions:
58
+ 1. Run: gravity setup-extension
59
+ 2. Run: gravity setup-native-host
60
+ 3. Open Chrome and go to: chrome://extensions
61
+ 4. Enable "Developer mode" (toggle in top right)
62
+ 5. Click "Load unpacked"
63
+ 6. Select the ~/.gravity-extension folder
64
+ 7. Run: gravity test-connection
65
+ 8. Configure your IDE with the MCP server
46
66
 
47
67
  Environment Variables:
48
68
  GRAVITY_PORT WebSocket port (default: 9224)
49
69
  GRAVITY_TIMEOUT Connection timeout in ms (default: 10000)
70
+
71
+ For more information, visit: https://github.com/DharuNamikaze/Gravity-Package
50
72
  `);
51
73
  process.exit(0);
52
74
  }
53
75
  /**
54
- * Setup/extract the Chrome extension to the current directory
76
+ * Handle setup-extension command
55
77
  */
56
- function setupExtension() {
57
- console.log('🌌 Gravity Extension Setup\n');
78
+ async function handleSetupExtension() {
79
+ console.error('🌌 Gravity Extension Setup\n');
58
80
  // Find the extension folder in the package
59
81
  const packageExtensionPath = join(__dirname, '..', 'extension');
60
82
  if (!existsSync(packageExtensionPath)) {
@@ -63,253 +85,224 @@ function setupExtension() {
63
85
  console.error(' https://github.com/DharuNamikaze/Gravity-Package/issues');
64
86
  process.exit(1);
65
87
  }
66
- // Target directory in user's current working directory
67
- const targetDir = resolve(process.cwd(), 'gravity-extension');
88
+ // Target directory in user's home
89
+ const targetDir = getGravityExtensionDir();
68
90
  if (existsSync(targetDir)) {
69
- console.log(`📁 Extension folder already exists at: ${targetDir}`);
70
- console.log(' Delete it first if you want to reinstall.\n');
71
- }
72
- else {
73
- try {
74
- // Copy extension folder
75
- cpSync(packageExtensionPath, targetDir, { recursive: true });
76
- console.log(`✅ Extension extracted to: ${targetDir}\n`);
77
- }
78
- catch (error) {
79
- console.error('❌ Failed to extract extension:', error.message);
80
- process.exit(1);
91
+ console.error(`📁 Extension folder already exists at: ${targetDir}`);
92
+ const overwrite = await promptConfirm(' Overwrite existing extension?');
93
+ if (!overwrite) {
94
+ console.error(' Skipped.');
95
+ process.exit(0);
81
96
  }
97
+ // Remove existing folder
98
+ require('fs').rmSync(targetDir, { recursive: true, force: true });
99
+ }
100
+ try {
101
+ // Copy extension folder
102
+ cpSync(packageExtensionPath, targetDir, { recursive: true });
103
+ console.error(`✅ Extension extracted to: ${targetDir}\n`);
104
+ }
105
+ catch (error) {
106
+ console.error('❌ Failed to extract extension:', error.message);
107
+ process.exit(1);
82
108
  }
83
109
  // Show next steps
84
- console.log('📋 Next Steps:');
85
- console.log('');
86
- console.log(' 1. Open Chrome and go to: chrome://extensions');
87
- console.log(' 2. Enable "Developer mode" (toggle in top right)');
88
- console.log(' 3. Click "Load unpacked"');
89
- console.log(` 4. Select this folder: ${targetDir}`);
90
- console.log(' 5. Click the Gravity extension icon in your toolbar');
91
- console.log(' 6. Click "Connect to Tab" on the page you want to debug');
92
- console.log('');
93
- console.log('🎉 Once connected, Gravity tools will be available in your AI assistant!');
110
+ console.error('📋 Next Steps:');
111
+ console.error('');
112
+ console.error(' 1. Run: gravity setup-native-host');
113
+ console.error(' 2. Open Chrome and go to: chrome://extensions');
114
+ console.error(' 3. Enable "Developer mode" (toggle in top right)');
115
+ console.error(' 4. Click "Load unpacked"');
116
+ console.error(` 5. Select this folder: ${targetDir}`);
117
+ console.error(' 6. Run: gravity test-connection');
118
+ console.error('');
119
+ console.error('🎉 Then configure your IDE with the MCP server!');
94
120
  }
95
121
  /**
96
- * Run the MCP server (original functionality)
122
+ * Handle setup-native-host command
97
123
  */
98
- async function runMCPServer() {
99
- // Get port from environment or use default
100
- const port = parseInt(process.env.GRAVITY_PORT || '9224', 10);
101
- const timeout = parseInt(process.env.GRAVITY_TIMEOUT || '10000', 10);
102
- // Initialize bridge
103
- const bridge = new Gravity({ port, timeout });
104
- // Tool definitions for MCP
105
- const tools = [
106
- {
107
- name: 'diagnose_layout',
108
- description: 'Diagnose CSS layout issues for a DOM element',
109
- inputSchema: {
110
- type: 'object',
111
- properties: {
112
- selector: {
113
- type: 'string',
114
- description: 'CSS selector for the element to diagnose (e.g., "#modal", ".button")',
115
- },
116
- },
117
- required: ['selector'],
118
- },
119
- },
120
- {
121
- name: 'check_connection',
122
- description: 'Check if browser is connected',
123
- inputSchema: {
124
- type: 'object',
125
- properties: {},
126
- },
127
- },
128
- {
129
- name: 'highlight_element',
130
- description: 'Highlight an element in the browser',
131
- inputSchema: {
132
- type: 'object',
133
- properties: {
134
- selector: {
135
- type: 'string',
136
- description: 'CSS selector for the element to highlight',
137
- },
138
- color: {
139
- type: 'string',
140
- description: 'Color for the highlight (default: red)',
141
- },
142
- duration: {
143
- type: 'number',
144
- description: 'Duration in milliseconds (default: 3000)',
145
- },
146
- },
147
- required: ['selector'],
148
- },
149
- },
150
- ];
151
- /**
152
- * Handle MCP tool calls
153
- */
154
- async function handleToolCall(toolName, params) {
155
- switch (toolName) {
156
- case 'diagnose_layout': {
157
- if (!bridge.isConnected()) {
158
- throw new Error('Not connected to browser. Make sure the Gravity extension is loaded and you clicked "Connect to Tab".');
159
- }
160
- const result = await bridge.diagnoseLayout(params.selector);
161
- return result;
162
- }
163
- case 'check_connection': {
164
- const status = bridge.getStatus();
165
- return {
166
- connected: status.connected,
167
- message: status.message,
168
- timestamp: status.timestamp,
169
- };
170
- }
171
- case 'highlight_element': {
172
- if (!bridge.isConnected()) {
173
- throw new Error('Not connected to browser');
174
- }
175
- // This would require additional implementation in the bridge
176
- // For now, return a message
177
- return {
178
- success: true,
179
- message: `Highlight request sent for ${params.selector}`,
180
- };
181
- }
182
- default:
183
- throw new Error(`Unknown tool: ${toolName}`);
184
- }
124
+ async function handleSetupNativeHost() {
125
+ console.error('🌌 Gravity Native Host Setup\n');
126
+ if (platform() !== 'win32') {
127
+ console.error('❌ Native host setup is currently only supported on Windows.');
128
+ console.error(' macOS and Linux support coming soon.');
129
+ process.exit(1);
185
130
  }
186
- /**
187
- * Process MCP request
188
- */
189
- async function processRequest(request) {
190
- try {
191
- if (request.method === 'initialize') {
192
- return {
193
- jsonrpc: '2.0',
194
- id: request.id,
195
- result: {
196
- protocolVersion: '2024-11-05',
197
- capabilities: {
198
- tools: {},
199
- },
200
- serverInfo: {
201
- name: 'gravity',
202
- version: '1.0.2',
203
- },
204
- },
205
- };
206
- }
207
- if (request.method === 'tools/list') {
208
- return {
209
- jsonrpc: '2.0',
210
- id: request.id,
211
- result: {
212
- tools,
213
- },
214
- };
215
- }
216
- if (request.method === 'tools/call') {
217
- const { name, arguments: args } = request.params;
218
- const result = await handleToolCall(name, args);
219
- return {
220
- jsonrpc: '2.0',
221
- id: request.id,
222
- result: {
223
- type: 'text',
224
- text: JSON.stringify(result, null, 2),
225
- },
226
- };
227
- }
228
- return {
229
- jsonrpc: '2.0',
230
- id: request.id,
231
- error: {
232
- code: -32601,
233
- message: 'Method not found',
234
- },
235
- };
236
- }
237
- catch (error) {
238
- return {
239
- jsonrpc: '2.0',
240
- id: request.id,
241
- error: {
242
- code: -32603,
243
- message: error.message || 'Internal error',
244
- data: {
245
- type: error.constructor.name,
246
- },
247
- },
248
- };
249
- }
131
+ // Step 1: Detect extension ID
132
+ console.error('🔍 Detecting Gravity extension ID...');
133
+ const extensionId = detectGravityExtensionId();
134
+ if (!extensionId) {
135
+ console.error('❌ Could not find Gravity extension.');
136
+ console.error(' Please run: gravity setup-extension');
137
+ console.error(' Then load the extension in Chrome first.');
138
+ process.exit(1);
139
+ }
140
+ console.error(`✅ Found extension ID: ${extensionId}\n`);
141
+ // Step 2: Confirm registry modification
142
+ const confirmed = await promptConfirm('⚠️ Gravity needs to add a native-messaging registry entry. Proceed?');
143
+ if (!confirmed) {
144
+ console.error(' Cancelled.');
145
+ process.exit(0);
146
+ }
147
+ console.error('');
148
+ // Step 3: Copy native host files
149
+ console.error('📋 Setting up native host...');
150
+ const packageHostPath = join(__dirname, '..', 'native-host');
151
+ const targetHostDir = getGravityHostDir();
152
+ if (!existsSync(packageHostPath)) {
153
+ console.error('❌ Native host files not found in package.');
154
+ process.exit(1);
155
+ }
156
+ if (existsSync(targetHostDir)) {
157
+ require('fs').rmSync(targetHostDir, { recursive: true, force: true });
250
158
  }
251
- console.log('🚀 Gravity MCP Server starting...');
252
- console.log(`📡 Connecting to extension on port ${port}...`);
253
- // Connect to browser
254
159
  try {
255
- await bridge.connectBrowser(port);
256
- console.log('✅ Connected to Gravity extension');
160
+ cpSync(packageHostPath, targetHostDir, { recursive: true });
161
+ console.error(`✅ Native host copied to: ${targetHostDir}`);
257
162
  }
258
163
  catch (error) {
259
- console.error('❌ Failed to connect to extension:', error.message);
260
- console.error('');
261
- console.error('Make sure:');
262
- console.error('1. Chrome/Edge is open');
263
- console.error('2. Gravity extension is loaded (chrome://extensions)');
264
- console.error('3. You clicked "Connect to Tab" in the extension popup');
265
- console.error('4. Port 9224 is not blocked by firewall');
266
- console.error('');
267
- console.error('Need to install the extension? Run:');
268
- console.error(' npx gravity-core setup-extension');
164
+ console.error('❌ Failed to copy native host:', error.message);
269
165
  process.exit(1);
270
166
  }
271
- // Listen for stdin (MCP protocol)
272
- process.stdin.setEncoding('utf-8');
273
- let buffer = '';
274
- process.stdin.on('data', async (chunk) => {
275
- buffer += chunk;
276
- // Process complete JSON objects
277
- const lines = buffer.split('\n');
278
- buffer = lines[lines.length - 1]; // Keep incomplete line in buffer
279
- for (let i = 0; i < lines.length - 1; i++) {
280
- const line = lines[i].trim();
281
- if (!line)
282
- continue;
283
- try {
284
- const request = JSON.parse(line);
285
- const response = await processRequest(request);
286
- console.log(JSON.stringify(response));
287
- }
288
- catch (error) {
289
- console.error('Error processing request:', error.message);
167
+ // Step 4: Patch manifest with extension ID and path
168
+ const manifestPath = join(targetHostDir, 'manifest.json');
169
+ const hostBatPath = join(targetHostDir, 'devtools-bridge-host.bat');
170
+ try {
171
+ patchManifest(manifestPath, extensionId, hostBatPath);
172
+ console.error('✅ Manifest patched with extension ID and path');
173
+ }
174
+ catch (error) {
175
+ console.error('❌ Failed to patch manifest:', error.message);
176
+ process.exit(1);
177
+ }
178
+ // Step 5: Write registry key
179
+ console.error('📝 Writing registry key...');
180
+ try {
181
+ writeRegistryKey('com.devtools.bridge', manifestPath);
182
+ console.error('✅ Registry key written successfully');
183
+ }
184
+ catch (error) {
185
+ console.error(' Failed to write registry key:', error.message);
186
+ console.error(' You may need to run as Administrator.');
187
+ process.exit(1);
188
+ }
189
+ console.error('');
190
+ console.error('✅ Native host setup complete!\n');
191
+ // Step 6: Prompt to restart Chrome
192
+ await promptRestartChrome();
193
+ console.error('');
194
+ console.error('📋 Next Steps:');
195
+ console.error(' 1. Open Chrome and go to: chrome://extensions');
196
+ console.error(' 2. Enable "Developer mode" (toggle in top right)');
197
+ console.error(' 3. Click "Load unpacked"');
198
+ console.error(` 4. Select this folder: ${getGravityExtensionDir()}`);
199
+ console.error(' 5. Run: gravity test-connection');
200
+ }
201
+ /**
202
+ * Handle test-connection command
203
+ */
204
+ async function handleTestConnection() {
205
+ console.error('🌌 Gravity Connection Test\n');
206
+ const checks = [];
207
+ // Check 1: Registry key exists
208
+ console.error('🔍 Checking registry key...');
209
+ const regKeyExists = registryKeyExists('com.devtools.bridge');
210
+ checks.push({ name: 'Registry key exists', passed: regKeyExists });
211
+ if (regKeyExists) {
212
+ console.error(' ✅ Registry key found');
213
+ }
214
+ else {
215
+ console.error(' ❌ Registry key not found');
216
+ console.error(' Run: gravity setup-native-host');
217
+ }
218
+ // Check 2: Manifest file exists
219
+ console.error('🔍 Checking manifest file...');
220
+ const manifestPath = join(getGravityHostDir(), 'manifest.json');
221
+ const manifestExists = existsSync(manifestPath);
222
+ checks.push({ name: 'Manifest file exists', passed: manifestExists });
223
+ if (manifestExists) {
224
+ console.error(' ✅ Manifest file found');
225
+ }
226
+ else {
227
+ console.error(' ❌ Manifest file not found');
228
+ }
229
+ // Check 3: Validate manifest
230
+ if (manifestExists) {
231
+ console.error('🔍 Validating manifest...');
232
+ const validation = validateManifest(manifestPath);
233
+ checks.push({ name: 'Manifest valid', passed: validation.valid });
234
+ if (validation.valid) {
235
+ console.error(' ✅ Manifest is valid');
236
+ // Check extension ID in manifest
237
+ const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
238
+ if (manifest.allowed_origins && manifest.allowed_origins.length > 0) {
239
+ console.error(` ✅ Extension ID configured: ${manifest.allowed_origins[0]}`);
290
240
  }
291
241
  }
242
+ else {
243
+ console.error(' ❌ Manifest validation failed:');
244
+ validation.errors.forEach((err) => console.error(` - ${err}`));
245
+ }
246
+ }
247
+ // Check 4: Native host executable exists
248
+ console.error('🔍 Checking native host executable...');
249
+ const hostPath = join(getGravityHostDir(), 'devtools-bridge-host.bat');
250
+ const hostExists = nativeHostExists(hostPath);
251
+ checks.push({ name: 'Native host executable found', passed: hostExists });
252
+ if (hostExists) {
253
+ console.error(' ✅ Native host executable found');
254
+ }
255
+ else {
256
+ console.error(' ❌ Native host executable not found');
257
+ }
258
+ // Check 5: WebSocket connection
259
+ console.error('🔍 Testing WebSocket connection...');
260
+ const wsConnected = await testWebSocketConnection(9224);
261
+ checks.push({ name: 'WebSocket connection', passed: wsConnected });
262
+ if (wsConnected) {
263
+ console.error(' ✅ WebSocket connection successful');
264
+ }
265
+ else {
266
+ console.error(' ❌ WebSocket connection failed');
267
+ console.error(' Make sure the MCP server is running: gravity');
268
+ }
269
+ // Summary
270
+ console.error('\n📊 Connection Status:\n');
271
+ checks.forEach((check) => {
272
+ const icon = check.passed ? '✅' : '❌';
273
+ console.error(` ${icon} ${check.name}`);
292
274
  });
293
- process.stdin.on('end', async () => {
294
- console.log('Shutting down...');
295
- await bridge.disconnectBrowser();
275
+ const allPassed = checks.every((c) => c.passed);
276
+ console.error('');
277
+ if (allPassed) {
278
+ console.error('🎉 Gravity is ready! All checks passed.\n');
279
+ console.error(' You can now use Gravity in your IDE.');
296
280
  process.exit(0);
297
- });
298
- // Handle errors
299
- process.on('error', (error) => {
300
- console.error('Fatal error:', error);
281
+ }
282
+ else {
283
+ console.error('⚠️ Some checks failed. Please review the errors above.\n');
301
284
  process.exit(1);
285
+ }
286
+ }
287
+ /**
288
+ * Run the MCP server
289
+ * Delegates to mcp-server.ts for strict JSON-RPC protocol compliance
290
+ */
291
+ async function runMCPServer() {
292
+ // Import the dedicated MCP server module
293
+ const { spawn } = await import('child_process');
294
+ // Run mcp-server.js directly as a subprocess
295
+ // This ensures strict JSON-RPC protocol compliance with no CLI output
296
+ const mcpServer = spawn('node', [require.resolve('./mcp-server.js')], {
297
+ stdio: ['inherit', 'inherit', 'inherit'],
298
+ env: process.env,
302
299
  });
303
- // Graceful shutdown
304
- process.on('SIGINT', async () => {
305
- console.log('\nShutting down gracefully...');
306
- await bridge.disconnectBrowser();
307
- process.exit(0);
300
+ mcpServer.on('exit', (code) => {
301
+ process.exit(code || 0);
308
302
  });
309
- process.on('SIGTERM', async () => {
310
- console.log('\nShutting down gracefully...');
311
- await bridge.disconnectBrowser();
312
- process.exit(0);
303
+ mcpServer.on('error', (error) => {
304
+ console.error('Failed to start MCP server:', error.message);
305
+ process.exit(1);
313
306
  });
314
307
  }
315
308
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AAGH,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EAEjB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAE9B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,+BAA+B;AAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,+BAA+B;AAC/B,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;IAClC,oBAAoB,EAAE,CAAC;AACzB,CAAC;KAAM,IAAI,OAAO,KAAK,mBAAmB,EAAE,CAAC;IAC3C,qBAAqB,EAAE,CAAC;AAC1B,CAAC;KAAM,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;IACzC,oBAAoB,EAAE,CAAC;AACzB,CAAC;KAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IAC1E,QAAQ,EAAE,CAAC;AACb,CAAC;KAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC;AACjB,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ;IACf,OAAO,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBf,CAAC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB;IACjC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAE9C,2CAA2C;IAC3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAEhE,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kCAAkC;IAClC,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAE3C,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,kCAAkC,CAAC,CAAC;QAE1E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,yBAAyB;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,6BAA6B,SAAS,IAAI,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAClE,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACrE,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB;IAClC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAEhD,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8BAA8B;IAC9B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,wBAAwB,EAAE,CAAC;IAE/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,yBAAyB,WAAW,IAAI,CAAC,CAAC;IAExD,wCAAwC;IACxC,MAAM,SAAS,GAAG,MAAM,aAAa,CACnC,sEAAsE,CACvE,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElB,iCAAiC;IACjC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,4BAA4B,aAAa,EAAE,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,oDAAoD;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;IAEpE,IAAI,CAAC;QACH,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,gBAAgB,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAEjD,mCAAmC;IACnC,MAAM,mBAAmB,EAAE,CAAC;IAE5B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAClE,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACrE,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,6BAA6B,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB;IACjC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAwD,EAAE,CAAC;IAEvE,+BAA+B;IAC/B,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAEnE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACxD,CAAC;IAED,gCAAgC;IAChC,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,eAAe,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAEtE,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChD,CAAC;IAED,6BAA6B;IAC7B,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAElE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAExC,iCAAiC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;YACjE,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpE,OAAO,CAAC,KAAK,CAAC,iCAAiC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,0BAA0B,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAE1E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACzD,CAAC;IAED,gCAAgC;IAChC,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAEnE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACtE,CAAC;IAED,UAAU;IACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAEhD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY;IACzB,yCAAyC;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAEhD,6CAA6C;IAC7C,sEAAsE;IACtE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE;QACpE,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QACxC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE;QAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;QACrC,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Gravity MCP Server
3
+ *
4
+ * Strict JSON-RPC 2.0 protocol implementation
5
+ * - STDOUT: JSON-RPC messages only
6
+ * - STDERR: Diagnostics and errors only
7
+ * - No banners, emojis, or human-readable output on STDOUT
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}