@tostudy-ai/mcp-setup 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.
Files changed (42) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/ide-handlers.test.js +15 -11
  3. package/dist/__tests__/ide-handlers.test.js.map +1 -1
  4. package/dist/__tests__/install-command.test.js +106 -95
  5. package/dist/__tests__/install-command.test.js.map +1 -1
  6. package/dist/config.d.ts +15 -4
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +79 -29
  9. package/dist/config.js.map +1 -1
  10. package/dist/diagnose.d.ts +1 -1
  11. package/dist/diagnose.d.ts.map +1 -1
  12. package/dist/diagnose.js +154 -164
  13. package/dist/diagnose.js.map +1 -1
  14. package/dist/ide-handlers/antigravity.js +1 -1
  15. package/dist/ide-handlers/antigravity.js.map +1 -1
  16. package/dist/ide-handlers/base.d.ts +8 -8
  17. package/dist/ide-handlers/base.d.ts.map +1 -1
  18. package/dist/ide-handlers/base.js +29 -4
  19. package/dist/ide-handlers/base.js.map +1 -1
  20. package/dist/ide-handlers/claude-code.js +1 -1
  21. package/dist/ide-handlers/claude-code.js.map +1 -1
  22. package/dist/ide-handlers/codex.js +1 -1
  23. package/dist/ide-handlers/codex.js.map +1 -1
  24. package/dist/ide-handlers/cursor.js +1 -1
  25. package/dist/ide-handlers/cursor.js.map +1 -1
  26. package/dist/ide-handlers/desktop.d.ts +3 -3
  27. package/dist/ide-handlers/desktop.d.ts.map +1 -1
  28. package/dist/ide-handlers/desktop.js +32 -8
  29. package/dist/ide-handlers/desktop.js.map +1 -1
  30. package/dist/ide-handlers/manual.js +1 -1
  31. package/dist/ide-handlers/manual.js.map +1 -1
  32. package/dist/ide-handlers/opencode.js +1 -1
  33. package/dist/ide-handlers/opencode.js.map +1 -1
  34. package/dist/ide-handlers/vscode.js +1 -1
  35. package/dist/ide-handlers/vscode.js.map +1 -1
  36. package/dist/ide-handlers/windsurf.js +1 -1
  37. package/dist/ide-handlers/windsurf.js.map +1 -1
  38. package/dist/repair.d.ts +1 -1
  39. package/dist/repair.d.ts.map +1 -1
  40. package/dist/repair.js +213 -168
  41. package/dist/repair.js.map +1 -1
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @tostudy-ai/mcp-setup
2
2
 
3
- CLI to configure Claude Code to connect to the Catalyst MCP server.
3
+ CLI to configure Claude Code to connect to the ToStudy MCP server.
4
4
 
5
5
  ## Installation
6
6
 
@@ -59,19 +59,23 @@ function cleanupTempDir(dir) {
59
59
  async function testBaseUtilities() {
60
60
  log('\n── Base Utilities ──');
61
61
  await runTest('buildMcpRemoteArgs returns correct args', () => {
62
- const args = buildMcpRemoteArgs(TEST_API_KEY, TEST_MCP_URL);
62
+ const args = buildMcpRemoteArgs(TEST_API_KEY, TEST_MCP_URL, 'manual');
63
63
  assert(Array.isArray(args), 'Should return an array');
64
64
  assert(args[0] === '-y', 'First arg should be -y');
65
65
  assert(args[1] === 'mcp-remote', 'Second arg should be mcp-remote');
66
66
  assert(args[2] === `${TEST_MCP_URL}/mcp`, 'Third arg should be MCP URL + /mcp');
67
67
  assert(args[3] === '--header', 'Fourth arg should be --header');
68
68
  assert(args[4] === `Authorization:Bearer ${TEST_API_KEY}`, 'Fifth arg should be auth header');
69
+ assert(args[5] === '--header', 'Sixth arg should be --header');
70
+ assert(args[6] === 'X-Tostudy-Client-IDE:manual', 'Seventh arg should be IDE header');
71
+ assert(args[7] === '--header', 'Eighth arg should be --header');
72
+ assert(args[8].startsWith('X-Tostudy-Client-OS:'), 'Ninth arg should be OS header');
69
73
  });
70
74
  await runTest('buildTostudyServerEntry returns command + args', () => {
71
- const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
75
+ const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
72
76
  assert(entry.command === 'npx', 'Command should be npx');
73
77
  assert(Array.isArray(entry.args), 'Args should be an array');
74
- assert(entry.args.length === 5, 'Should have 5 args');
78
+ assert(entry.args.length === 9, 'Should have 9 args');
75
79
  assert(entry.args[1] === 'mcp-remote', 'Should include mcp-remote');
76
80
  });
77
81
  }
@@ -179,7 +183,7 @@ async function testCursorConfigMerge() {
179
183
  try {
180
184
  await runTest('Cursor: writes new config when none exists', () => {
181
185
  // Simulate what CursorHandler.writeConfig does
182
- const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
186
+ const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
183
187
  const config = { mcpServers: { tostudy: entry } };
184
188
  writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
185
189
  assert(existsSync(configPath), 'Config file should exist');
@@ -199,7 +203,7 @@ async function testCursorConfigMerge() {
199
203
  // Merge tostudy into existing
200
204
  const config = JSON.parse(readFileSync(configPath, 'utf-8'));
201
205
  const mcpServers = config.mcpServers ?? {};
202
- mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
206
+ mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
203
207
  config.mcpServers = mcpServers;
204
208
  writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
205
209
  const merged = JSON.parse(readFileSync(configPath, 'utf-8'));
@@ -219,7 +223,7 @@ async function testCursorConfigMerge() {
219
223
  // Update tostudy
220
224
  const config = JSON.parse(readFileSync(configPath, 'utf-8'));
221
225
  const mcpServers = config.mcpServers;
222
- mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
226
+ mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
223
227
  writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
224
228
  const updated = JSON.parse(readFileSync(configPath, 'utf-8'));
225
229
  assert(updated.mcpServers.tostudy.command === 'npx', 'tostudy should be updated to npx');
@@ -237,7 +241,7 @@ async function testCursorConfigMerge() {
237
241
  config = {};
238
242
  }
239
243
  const mcpServers = config.mcpServers ?? {};
240
- mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
244
+ mcpServers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
241
245
  config.mcpServers = mcpServers;
242
246
  writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
243
247
  const fixed = JSON.parse(readFileSync(configPath, 'utf-8'));
@@ -255,7 +259,7 @@ async function testVSCodeConfigMerge() {
255
259
  const configPath = join(tempDir, 'mcp.json');
256
260
  try {
257
261
  await runTest('VSCode: uses "servers" key (not "mcpServers")', () => {
258
- const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
262
+ const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
259
263
  const config = { servers: { tostudy: entry } };
260
264
  writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
261
265
  const written = JSON.parse(readFileSync(configPath, 'utf-8'));
@@ -268,7 +272,7 @@ async function testVSCodeConfigMerge() {
268
272
  writeFileSync(configPath, JSON.stringify(existing, null, 2), 'utf-8');
269
273
  const config = JSON.parse(readFileSync(configPath, 'utf-8'));
270
274
  const servers = config.servers ?? {};
271
- servers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
275
+ servers['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
272
276
  config.servers = servers;
273
277
  writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
274
278
  const merged = JSON.parse(readFileSync(configPath, 'utf-8'));
@@ -287,7 +291,7 @@ async function testOpenCodeConfigMerge() {
287
291
  const configPath = join(tempDir, 'opencode.json');
288
292
  try {
289
293
  await runTest('OpenCode: uses "mcp" key', () => {
290
- const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
294
+ const entry = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
291
295
  const config = { mcp: { tostudy: entry } };
292
296
  writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
293
297
  const written = JSON.parse(readFileSync(configPath, 'utf-8'));
@@ -302,7 +306,7 @@ async function testOpenCodeConfigMerge() {
302
306
  writeFileSync(configPath, JSON.stringify(existing, null, 2), 'utf-8');
303
307
  const config = JSON.parse(readFileSync(configPath, 'utf-8'));
304
308
  const mcp = config.mcp ?? {};
305
- mcp['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL);
309
+ mcp['tostudy'] = buildTostudyServerEntry(TEST_API_KEY, TEST_MCP_URL, 'manual');
306
310
  config.mcp = mcp;
307
311
  writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8');
308
312
  const merged = JSON.parse(readFileSync(configPath, 'utf-8'));
@@ -1 +1 @@
1
- {"version":3,"file":"ide-handlers.test.js","sourceRoot":"","sources":["../../src/__tests__/ide-handlers.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,4BAA4B;AAC5B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,aAAa,EACb,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;AAElC,iBAAiB;AACjB,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACnD,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAQ9C,MAAM,OAAO,GAAiB,EAAE,CAAC;AAEjC,SAAS,GAAG,CAAC,OAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,MAAM,CAAC,SAAkB,EAAE,OAAe;IACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,MAAkC;IACrE,IAAI,CAAC;QACH,MAAM,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,GAAG,CAAC,sBAAsB,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/D,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC;AAED,6CAA6C;AAE7C,KAAK,UAAU,iBAAiB;IAC9B,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAE9B,MAAM,OAAO,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC5D,MAAM,IAAI,GAAG,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,wBAAwB,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,iCAAiC,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,MAAM,EAAE,oCAAoC,CAAC,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,+BAA+B,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,wBAAwB,YAAY,EAAE,EAAE,iCAAiC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACnE,MAAM,KAAK,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE,uBAAuB,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,2BAA2B,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8CAA8C;AAE9C,KAAK,UAAU,kBAAkB;IAC/B,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAmB,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE3I,MAAM,OAAO,CAAC,kDAAkD,EAAE,GAAG,EAAE;QACrE,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;YACrF,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,EAAE,2BAA2B,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,WAAW,GAAG,qBAAqB,CAAC,CAAC;YAC9E,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,WAAW,GAAG,uBAAuB,CAAC,CAAC;YACpF,MAAM,CAAC,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE,WAAW,GAAG,8BAA8B,CAAC,CAAC;YAClG,MAAM,CAAC,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,WAAW,GAAG,4BAA4B,CAAC,CAAC;YAC9F,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,WAAW,GAAG,uBAAuB,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACzD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC;YACH,aAAa,CAAC,aAA6B,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,GAAG,IAAI,CAAC;YACb,MAAM,CACH,GAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC9C,kCAAkC,CACnC,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAC7D,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,iCAAiC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,CACJ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAChD,qBAAqB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iDAAiD;AAEjD,KAAK,UAAU,qBAAqB;IAClC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAElC,MAAM,OAAO,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC3D,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,+BAA+B,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,8BAA8B,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,sCAAsC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,kCAAkC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,6CAA6C,EAAE,GAAG,EAAE;QAChE,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,sCAAsC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACzD,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,QAAQ,EAAE,6CAA6C,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACtE,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,CACJ,OAAO,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC1D,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAClD,oDAAoD,CACrD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACpE,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,kDAAkD,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,qCAAqC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0DAA0D;AAE1D,KAAK,UAAU,qBAAqB;IAClC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEzC,mEAAmE;IACnE,mEAAmE;IAEnE,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAC/D,+CAA+C;YAC/C,MAAM,KAAK,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,yBAAyB,CAAC,CAAC;YACpE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,4BAA4B,CAAC,CAAC;YAC/E,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,+DAA+D,EAAE,GAAG,EAAE;YAClF,mCAAmC;YACnC,MAAM,QAAQ,GAAG;gBACf,UAAU,EAAE;oBACV,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;iBACvD;aACF,CAAC;YACF,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEtE,8BAA8B;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAI,MAAM,CAAC,UAAsC,IAAI,EAAE,CAAC;YACxE,UAAU,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC5E,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;YAC/B,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,kCAAkC,CAAC,CAAC;YACzF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,yBAAyB,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,KAAK,MAAM,EAAE,gCAAgC,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,2CAA2C,EAAE,GAAG,EAAE;YAC9D,gCAAgC;YAChC,MAAM,QAAQ,GAAG;gBACf,UAAU,EAAE;oBACV,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;oBAC1C,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;iBACzC;aACF,CAAC;YACF,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEtE,iBAAiB;YACjB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAqC,CAAC;YAChE,UAAU,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC5E,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,kCAAkC,CAAC,CAAC;YACzF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,6CAA6C,EAAE,GAAG,EAAE;YAChE,qBAAqB;YACrB,aAAa,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;YAEzD,qBAAqB;YACrB,IAAI,MAAM,GAA4B,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,EAAE,CAAC;YACd,CAAC;YAED,MAAM,UAAU,GAAI,MAAM,CAAC,UAAsC,IAAI,EAAE,CAAC;YACxE,UAAU,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC5E,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;YAC/B,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,4CAA4C,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,2DAA2D;AAE3D,KAAK,UAAU,qBAAqB;IAClC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,+CAA+C,EAAE,GAAG,EAAE;YAClE,MAAM,KAAK,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,0BAA0B,CAAC,CAAC;YAClE,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,kCAAkC,CAAC,CAAC;YAC7E,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,sCAAsC,EAAE,GAAG,EAAE;YACzD,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACtE,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAI,MAAM,CAAC,OAAmC,IAAI,EAAE,CAAC;YAClE,OAAO,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACzE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,yBAAyB,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,sBAAsB,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,4DAA4D;AAE5D,KAAK,UAAU,uBAAuB;IACpC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAC7C,MAAM,KAAK,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,sBAAsB,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,uBAAuB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAC/D,MAAM,QAAQ,GAAG;gBACf,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE;gBACzD,WAAW,EAAE,WAAW;aACzB,CAAC;YACF,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,GAAG,GAAI,MAAM,CAAC,GAA+B,IAAI,EAAE,CAAC;YAC1D,GAAG,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACrE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACjB,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,yBAAyB,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,qBAAqB,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,6BAA6B,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,sCAAsC;AAEtC,SAAS,YAAY;IACnB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACjC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAEvD,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,cAAc,MAAM,cAAc,MAAM,IAAI,CAAC,CAAC;IAE5E,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,sBAAsB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,aAAa,MAAM,0BAA0B,CAAC,CAAC;QACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,OAAO;AACP,KAAK,UAAU,IAAI;IACjB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,GAAG,CAAC,6CAA6C,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpB,MAAM,iBAAiB,EAAE,CAAC;IAC1B,MAAM,kBAAkB,EAAE,CAAC;IAC3B,MAAM,qBAAqB,EAAE,CAAC;IAC9B,MAAM,qBAAqB,EAAE,CAAC;IAC9B,MAAM,qBAAqB,EAAE,CAAC;IAC9B,MAAM,uBAAuB,EAAE,CAAC;IAEhC,YAAY,EAAE,CAAC;AACjB,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"ide-handlers.test.js","sourceRoot":"","sources":["../../src/__tests__/ide-handlers.test.ts"],"names":[],"mappings":"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"}
@@ -6,19 +6,19 @@
6
6
  *
7
7
  * Run with: npx tsx src/__tests__/install-command.test.ts
8
8
  */
9
- import { getIDEHandler, } from '../ide-handlers/index.js';
10
- import { buildTostudyServerEntry, buildMcpRemoteArgs } from '../ide-handlers/base.js';
9
+ import { getIDEHandler } from "../ide-handlers/index.js";
10
+ import { buildTostudyServerEntry, buildMcpRemoteArgs } from "../ide-handlers/base.js";
11
11
  // We can't import resolveMcpServerUrl directly since it's a module-scoped function in index.ts.
12
12
  // Replicate the logic here and test it.
13
13
  function resolveMcpServerUrl(platformUrl) {
14
- if (platformUrl.includes(':3700')) {
15
- return platformUrl.replace(':3700', ':3701');
14
+ if (platformUrl.includes(":3700")) {
15
+ return platformUrl.replace(":3700", ":3701");
16
16
  }
17
- if (platformUrl.includes('localhost') && !platformUrl.includes(':')) {
18
- return 'http://localhost:3701';
17
+ if (platformUrl.includes("localhost") && !platformUrl.includes(":")) {
18
+ return "http://localhost:3701";
19
19
  }
20
- if (platformUrl.includes('tostudy')) {
21
- return process.env.MCP_SERVER_URL || 'https://mcp.tostudy.ai';
20
+ if (platformUrl.includes("tostudy")) {
21
+ return process.env.MCP_SERVER_URL || "https://mcp.tostudy.ai";
22
22
  }
23
23
  return platformUrl;
24
24
  }
@@ -34,7 +34,7 @@ function assert(condition, message) {
34
34
  async function runTest(name, testFn) {
35
35
  try {
36
36
  await testFn();
37
- results.push({ name, passed: true, message: 'OK' });
37
+ results.push({ name, passed: true, message: "OK" });
38
38
  log(` \x1b[32m✓\x1b[0m ${name}`);
39
39
  }
40
40
  catch (error) {
@@ -45,36 +45,36 @@ async function runTest(name, testFn) {
45
45
  }
46
46
  // ───────────── resolveMcpServerUrl ─────────────
47
47
  async function testUrlResolution() {
48
- log('\n── resolveMcpServerUrl ──');
49
- await runTest('Resolves localhost:3700 to localhost:3701', () => {
50
- const result = resolveMcpServerUrl('http://localhost:3700');
51
- assert(result === 'http://localhost:3701', `Expected http://localhost:3701, got ${result}`);
48
+ log("\n── resolveMcpServerUrl ──");
49
+ await runTest("Resolves localhost:3700 to localhost:3701", () => {
50
+ const result = resolveMcpServerUrl("http://localhost:3700");
51
+ assert(result === "http://localhost:3701", `Expected http://localhost:3701, got ${result}`);
52
52
  });
53
- await runTest('Resolves https://localhost:3700 to https://localhost:3701', () => {
54
- const result = resolveMcpServerUrl('https://localhost:3700');
55
- assert(result === 'https://localhost:3701', `Expected https://localhost:3701, got ${result}`);
53
+ await runTest("Resolves https://localhost:3700 to https://localhost:3701", () => {
54
+ const result = resolveMcpServerUrl("https://localhost:3700");
55
+ assert(result === "https://localhost:3701", `Expected https://localhost:3701, got ${result}`);
56
56
  });
57
- await runTest('Bare localhost with protocol is returned as-is (has colon in URL)', () => {
57
+ await runTest("Bare localhost with protocol is returned as-is (has colon in URL)", () => {
58
58
  // "http://localhost" contains a colon (from http:), so the `!platformUrl.includes(':')` check fails.
59
59
  // This is expected — the function targets the edge case of literally "localhost" with no protocol.
60
- const result = resolveMcpServerUrl('http://localhost');
61
- assert(result === 'http://localhost', `Expected http://localhost unchanged, got ${result}`);
60
+ const result = resolveMcpServerUrl("http://localhost");
61
+ assert(result === "http://localhost", `Expected http://localhost unchanged, got ${result}`);
62
62
  });
63
- await runTest('Resolves tostudy.com to mcp.tostudy.ai', () => {
63
+ await runTest("Resolves tostudy.com to mcp.tostudy.ai", () => {
64
64
  // Clear env var to test default
65
65
  const saved = process.env.MCP_SERVER_URL;
66
66
  delete process.env.MCP_SERVER_URL;
67
- const result = resolveMcpServerUrl('https://tostudy.com');
68
- assert(result === 'https://mcp.tostudy.ai', `Expected https://mcp.tostudy.ai, got ${result}`);
67
+ const result = resolveMcpServerUrl("https://tostudy.com");
68
+ assert(result === "https://mcp.tostudy.ai", `Expected https://mcp.tostudy.ai, got ${result}`);
69
69
  // Restore
70
70
  if (saved !== undefined)
71
71
  process.env.MCP_SERVER_URL = saved;
72
72
  });
73
- await runTest('Respects MCP_SERVER_URL env var for tostudy URLs', () => {
73
+ await runTest("Respects MCP_SERVER_URL env var for tostudy URLs", () => {
74
74
  const saved = process.env.MCP_SERVER_URL;
75
- process.env.MCP_SERVER_URL = 'https://custom-mcp.example.com';
76
- const result = resolveMcpServerUrl('https://tostudy.com');
77
- assert(result === 'https://custom-mcp.example.com', `Expected custom URL, got ${result}`);
75
+ process.env.MCP_SERVER_URL = "https://custom-mcp.example.com";
76
+ const result = resolveMcpServerUrl("https://tostudy.com");
77
+ assert(result === "https://custom-mcp.example.com", `Expected custom URL, got ${result}`);
78
78
  // Restore
79
79
  if (saved !== undefined) {
80
80
  process.env.MCP_SERVER_URL = saved;
@@ -83,139 +83,150 @@ async function testUrlResolution() {
83
83
  delete process.env.MCP_SERVER_URL;
84
84
  }
85
85
  });
86
- await runTest('Returns unknown URLs unchanged', () => {
87
- const result = resolveMcpServerUrl('https://example.com/api');
88
- assert(result === 'https://example.com/api', `Expected unchanged URL, got ${result}`);
86
+ await runTest("Returns unknown URLs unchanged", () => {
87
+ const result = resolveMcpServerUrl("https://example.com/api");
88
+ assert(result === "https://example.com/api", `Expected unchanged URL, got ${result}`);
89
89
  });
90
90
  }
91
91
  // ───────────── Install Command Logic ─────────────
92
92
  async function testInstallCommandLogic() {
93
- log('\n── Install Command Logic ──');
94
- const SUPPORTED_IDES = ['claude-code', 'cursor', 'vscode', 'desktop', 'windsurf', 'opencode', 'codex', 'antigravity', 'manual'];
95
- await runTest('All supported IDEs can be resolved to a handler', () => {
93
+ log("\n── Install Command Logic ──");
94
+ const SUPPORTED_IDES = [
95
+ "claude-code",
96
+ "cursor",
97
+ "vscode",
98
+ "desktop",
99
+ "windsurf",
100
+ "opencode",
101
+ "codex",
102
+ "antigravity",
103
+ "manual",
104
+ ];
105
+ await runTest("All supported IDEs can be resolved to a handler", () => {
96
106
  for (const ide of SUPPORTED_IDES) {
97
107
  const handler = getIDEHandler(ide);
98
108
  assert(handler !== undefined, `Handler for ${ide} should be resolved`);
99
109
  assert(handler.id === ide, `Handler id should match ${ide}`);
100
110
  }
101
111
  });
102
- await runTest('Unsupported IDE throws error', () => {
112
+ await runTest("Unsupported IDE throws error", () => {
103
113
  let threw = false;
104
114
  try {
105
- getIDEHandler('vim');
115
+ getIDEHandler("vim");
106
116
  }
107
117
  catch {
108
118
  threw = true;
109
119
  }
110
- assert(threw, 'Should throw for unsupported IDE');
120
+ assert(threw, "Should throw for unsupported IDE");
111
121
  });
112
- await runTest('Handler writeConfig accepts key and URL', async () => {
122
+ await runTest("Handler writeConfig accepts key and URL", async () => {
113
123
  // Manual handler doesn't write to filesystem, safe to call
114
- const handler = getIDEHandler('manual');
124
+ const handler = getIDEHandler("manual");
115
125
  // Capture stdout to prevent output during test
116
126
  const originalWrite = process.stdout.write;
117
- let output = '';
127
+ let output = "";
118
128
  process.stdout.write = ((chunk) => {
119
129
  output += chunk;
120
130
  return true;
121
131
  });
122
132
  try {
123
- await handler.writeConfig('test-key-123', 'https://mcp.tostudy.ai');
124
- assert(output.includes('"command": "npx"'), 'Manual output should include npx command');
125
- assert(output.includes('mcp-remote'), 'Manual output should include mcp-remote');
126
- assert(output.includes('test-key-123'), 'Manual output should include the API key');
133
+ await handler.writeConfig("test-key-123", "https://mcp.tostudy.ai");
134
+ assert(output.includes('"command": "npx"'), "Manual output should include npx command");
135
+ assert(output.includes("mcp-remote"), "Manual output should include mcp-remote");
136
+ assert(output.includes("test-key-123"), "Manual output should include the API key");
127
137
  }
128
138
  finally {
129
139
  process.stdout.write = originalWrite;
130
140
  }
131
141
  });
132
- await runTest('Handler verify returns boolean', async () => {
142
+ await runTest("Handler verify returns boolean", async () => {
133
143
  // Verify against a non-existent server should return false
134
- const handler = getIDEHandler('manual');
135
- const result = await handler.verify('fake-key', 'http://localhost:99999');
136
- assert(typeof result === 'boolean', 'verify() should return boolean');
137
- assert(result === false, 'verify() against non-existent server should return false');
144
+ const handler = getIDEHandler("manual");
145
+ const result = await handler.verify("fake-key", "http://localhost:99999");
146
+ assert(typeof result === "boolean", "verify() should return boolean");
147
+ assert(result === false, "verify() against non-existent server should return false");
138
148
  });
139
149
  }
140
150
  // ───────────── Server Entry Structure ─────────────
141
151
  async function testServerEntryStructure() {
142
- log('\n── Server Entry Structure ──');
143
- await runTest('Entry has correct shape for IDE configs', () => {
144
- const entry = buildTostudyServerEntry('my-key', 'https://mcp.tostudy.ai');
145
- assert(typeof entry === 'object', 'Entry should be an object');
146
- assert(entry.command === 'npx', 'Command should be npx');
147
- assert(Array.isArray(entry.args), 'Args should be an array');
152
+ log("\n── Server Entry Structure ──");
153
+ await runTest("Entry has correct shape for IDE configs", () => {
154
+ const entry = buildTostudyServerEntry("my-key", "https://mcp.tostudy.ai", "manual");
155
+ assert(typeof entry === "object", "Entry should be an object");
156
+ assert(entry.command === "npx", "Command should be npx");
157
+ assert(Array.isArray(entry.args), "Args should be an array");
148
158
  // Verify args structure
149
159
  const args = entry.args;
150
- assert(args.includes('-y'), 'Should have -y flag');
151
- assert(args.includes('mcp-remote'), 'Should have mcp-remote');
152
- assert(args.includes('--header'), 'Should have --header flag');
153
- assert(args.some((a) => a.includes('Authorization:Bearer my-key')), 'Should have authorization header with key');
154
- assert(args.some((a) => a.includes('https://mcp.tostudy.ai/mcp')), 'Should have MCP URL with /mcp suffix');
155
- });
156
- await runTest('Args encode API key correctly', () => {
157
- const specialKey = 'key-with-special-chars!@#';
158
- const args = buildMcpRemoteArgs(specialKey, 'https://mcp.test.com');
159
- const authArg = args.find((a) => a.includes('Authorization'));
160
- assert(authArg !== undefined, 'Should have auth arg');
161
- assert(authArg === `Authorization:Bearer ${specialKey}`, 'Auth arg should contain exact key without encoding');
162
- });
163
- await runTest('MCP URL gets /mcp suffix', () => {
164
- const args = buildMcpRemoteArgs('key', 'https://mcp.tostudy.ai');
160
+ assert(args.includes("-y"), "Should have -y flag");
161
+ assert(args.includes("mcp-remote"), "Should have mcp-remote");
162
+ assert(args.includes("--header"), "Should have --header flag");
163
+ assert(args.some((a) => a.includes("Authorization:Bearer my-key")), "Should have authorization header with key");
164
+ assert(args.some((a) => a.includes("X-Tostudy-Client-IDE:manual")), "Should have IDE metadata header");
165
+ assert(args.some((a) => a.startsWith("X-Tostudy-Client-OS:")), "Should have OS metadata header");
166
+ assert(args.some((a) => a.includes("https://mcp.tostudy.ai/mcp")), "Should have MCP URL with /mcp suffix");
167
+ });
168
+ await runTest("Args encode API key correctly", () => {
169
+ const specialKey = "key-with-special-chars!@#";
170
+ const args = buildMcpRemoteArgs(specialKey, "https://mcp.test.com", "manual");
171
+ const authArg = args.find((a) => a.includes("Authorization"));
172
+ assert(authArg !== undefined, "Should have auth arg");
173
+ assert(authArg === `Authorization:Bearer ${specialKey}`, "Auth arg should contain exact key without encoding");
174
+ assert(args.includes("X-Tostudy-Client-IDE:manual"), "Should include IDE metadata");
175
+ });
176
+ await runTest("MCP URL gets /mcp suffix", () => {
177
+ const args = buildMcpRemoteArgs("key", "https://mcp.tostudy.ai", "manual");
165
178
  const urlArg = args[2];
166
- assert(urlArg === 'https://mcp.tostudy.ai/mcp', `URL should have /mcp suffix, got ${urlArg}`);
179
+ assert(urlArg === "https://mcp.tostudy.ai/mcp", `URL should have /mcp suffix, got ${urlArg}`);
167
180
  });
168
181
  }
169
182
  // ───────────── IDE-specific Config Formats ─────────────
170
183
  async function testIDEConfigFormats() {
171
- log('\n── IDE Config Formats ──');
172
- await runTest('Cursor uses mcpServers key', () => {
173
- const entry = buildTostudyServerEntry('key', 'https://mcp.tostudy.ai');
184
+ log("\n── IDE Config Formats ──");
185
+ await runTest("Cursor uses mcpServers key", () => {
186
+ const entry = buildTostudyServerEntry("key", "https://mcp.tostudy.ai", "manual");
174
187
  // Simulate Cursor config shape
175
188
  const config = { mcpServers: { tostudy: entry } };
176
189
  const json = JSON.stringify(config);
177
- assert(json.includes('"mcpServers"'), 'Cursor config should use mcpServers');
178
- assert(!json.includes('"servers"'), 'Cursor config should NOT use bare servers');
190
+ assert(json.includes('"mcpServers"'), "Cursor config should use mcpServers");
191
+ assert(!json.includes('"servers"'), "Cursor config should NOT use bare servers");
179
192
  });
180
- await runTest('VS Code uses servers key', () => {
181
- const entry = buildTostudyServerEntry('key', 'https://mcp.tostudy.ai');
193
+ await runTest("VS Code uses servers key", () => {
194
+ const entry = buildTostudyServerEntry("key", "https://mcp.tostudy.ai", "manual");
182
195
  // Simulate VS Code config shape
183
196
  const config = { servers: { tostudy: entry } };
184
197
  const json = JSON.stringify(config);
185
- assert(json.includes('"servers"'), 'VSCode config should use servers');
198
+ assert(json.includes('"servers"'), "VSCode config should use servers");
186
199
  });
187
- await runTest('OpenCode uses mcp key', () => {
188
- const entry = buildTostudyServerEntry('key', 'https://mcp.tostudy.ai');
200
+ await runTest("OpenCode uses mcp key", () => {
201
+ const entry = buildTostudyServerEntry("key", "https://mcp.tostudy.ai", "manual");
189
202
  // Simulate OpenCode config shape
190
203
  const config = { mcp: { tostudy: entry } };
191
204
  const json = JSON.stringify(config);
192
- assert(json.includes('"mcp"'), 'OpenCode config should use mcp');
205
+ assert(json.includes('"mcp"'), "OpenCode config should use mcp");
193
206
  });
194
- await runTest('Desktop uses SSE transport (different from other handlers)', () => {
195
- // Desktop handler uses addTostudyMcpServer which writes SSE config,
196
- // while other handlers use stdio (npx mcp-remote)
197
- const handler = getIDEHandler('desktop');
198
- assert(handler.name === 'Claude Desktop', 'Should be Claude Desktop handler');
199
- // The desktop handler's config includes SSE transport via addTostudyMcpServer
200
- // We can't easily test this without writing files, so just verify the handler exists
207
+ await runTest("Desktop uses stdio transport (command + args via mcp-remote)", () => {
208
+ // Desktop handler uses buildTostudyServerEntry which writes stdio config
209
+ // (command: npx, args: [...mcp-remote...]) matching all other handlers
210
+ const handler = getIDEHandler("desktop");
211
+ assert(handler.name === "Claude Desktop", "Should be Claude Desktop handler");
201
212
  });
202
213
  }
203
214
  // ───────────── Summary ─────────────
204
215
  function printSummary() {
205
- log('\n' + ''.repeat(50));
206
- log('INSTALL COMMAND TEST SUMMARY');
207
- log(''.repeat(50));
216
+ log("\n" + "".repeat(50));
217
+ log("INSTALL COMMAND TEST SUMMARY");
218
+ log("".repeat(50));
208
219
  const passed = results.filter((r) => r.passed).length;
209
220
  const failed = results.filter((r) => !r.passed).length;
210
221
  log(`\nTotal: ${results.length} | Passed: ${passed} | Failed: ${failed}\n`);
211
222
  if (failed > 0) {
212
- log('FAILED:');
223
+ log("FAILED:");
213
224
  for (const r of results.filter((r) => !r.passed)) {
214
225
  log(` \x1b[31m✗\x1b[0m ${r.name}: ${r.message}`);
215
226
  }
216
227
  }
217
228
  if (failed === 0) {
218
- log('\x1b[32m✓ All install command tests passed!\x1b[0m\n');
229
+ log("\x1b[32m✓ All install command tests passed!\x1b[0m\n");
219
230
  }
220
231
  else {
221
232
  log(`\x1b[31m✗ ${failed} test(s) failed\x1b[0m\n`);
@@ -224,9 +235,9 @@ function printSummary() {
224
235
  }
225
236
  // Main
226
237
  async function main() {
227
- log(''.repeat(50));
228
- log('TEST: CLI Install Command & URL Resolution');
229
- log(''.repeat(50));
238
+ log("".repeat(50));
239
+ log("TEST: CLI Install Command & URL Resolution");
240
+ log("".repeat(50));
230
241
  await testUrlResolution();
231
242
  await testInstallCommandLogic();
232
243
  await testServerEntryStructure();
@@ -1 +1 @@
1
- {"version":3,"file":"install-command.test.js","sourceRoot":"","sources":["../../src/__tests__/install-command.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-command.test.js","sourceRoot":"","sources":["../../src/__tests__/install-command.test.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -8,13 +8,21 @@ export interface ClaudeConfig {
8
8
  [key: string]: unknown;
9
9
  }
10
10
  export interface McpServerConfig {
11
- type?: 'sse' | 'stdio';
11
+ type?: "sse" | "stdio";
12
12
  url?: string;
13
13
  headers?: Record<string, string>;
14
14
  command?: string;
15
15
  args?: string[];
16
16
  env?: Record<string, string>;
17
17
  }
18
+ /**
19
+ * Extract the API key from either SSE (headers) or stdio (args) config format.
20
+ */
21
+ export declare function extractApiKey(config: McpServerConfig): string | null;
22
+ /**
23
+ * Extract the MCP server URL from either SSE (url) or stdio (args) config format.
24
+ */
25
+ export declare function extractMcpUrl(config: McpServerConfig): string | null;
18
26
  /**
19
27
  * Get the path to Claude Code's config file based on OS
20
28
  */
@@ -32,10 +40,13 @@ export declare function readClaudeConfig(): ClaudeConfig;
32
40
  */
33
41
  export declare function writeClaudeConfig(config: ClaudeConfig): void;
34
42
  /**
35
- * Add Catalyst MCP server to Claude config
36
- * Uses SSE transport - MCP server runs on port 3701
43
+ * Add Catalyst MCP server to Claude Desktop config
44
+ * Uses stdio transport via mcp-remote (Claude Desktop requires command + args)
37
45
  */
38
- export declare function addTostudyMcpServer(apiKey: string, platformUrl: string): void;
46
+ export declare function addTostudyMcpServer(apiKey: string, platformUrl: string, clientInfo?: {
47
+ ide?: string;
48
+ os?: "macos" | "windows" | "linux";
49
+ }): void;
39
50
  /**
40
51
  * Remove Catalyst MCP server from Claude config
41
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAE9B,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAc5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAc/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAiB5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAuB7E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAO7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,GAAG,IAAI,CAG5D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAE9B,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAEvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAoBpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAYpE;AAaD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkB5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAc/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAiB5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAA;CAAO,GACpE,IAAI,CA6BN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAO7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAGhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,GAAG,IAAI,CAG5D"}