cache-overflow-mcp 0.3.4 → 0.3.6

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 (43) hide show
  1. package/.env.example +3 -3
  2. package/AGENTS.md +24 -3
  3. package/README.md +59 -0
  4. package/TROUBLESHOOTING.md +219 -0
  5. package/dist/cli.js +13 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +65 -10
  9. package/dist/client.js.map +1 -1
  10. package/dist/config.d.ts +3 -0
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +5 -0
  13. package/dist/config.js.map +1 -1
  14. package/dist/logger.d.ts +16 -0
  15. package/dist/logger.d.ts.map +1 -0
  16. package/dist/logger.js +127 -0
  17. package/dist/logger.js.map +1 -0
  18. package/dist/server.d.ts.map +1 -1
  19. package/dist/server.js +50 -7
  20. package/dist/server.js.map +1 -1
  21. package/dist/testing/mock-data.js +40 -40
  22. package/dist/ui/verification-dialog.d.ts.map +1 -1
  23. package/dist/ui/verification-dialog.js +307 -268
  24. package/dist/ui/verification-dialog.js.map +1 -1
  25. package/package.json +3 -2
  26. package/scripts/view-logs.js +125 -0
  27. package/src/cli.ts +23 -10
  28. package/src/client.test.ts +116 -116
  29. package/src/client.ts +138 -76
  30. package/src/config.ts +14 -9
  31. package/src/index.ts +3 -3
  32. package/src/logger.ts +150 -0
  33. package/src/server.ts +49 -7
  34. package/src/testing/mock-data.ts +142 -142
  35. package/src/testing/mock-server.ts +176 -176
  36. package/src/tools/index.ts +23 -23
  37. package/src/types.ts +39 -39
  38. package/src/ui/verification-dialog.ts +382 -342
  39. package/tsconfig.json +20 -20
  40. package/dist/tools/get-balance.d.ts +0 -3
  41. package/dist/tools/get-balance.d.ts.map +0 -1
  42. package/dist/tools/get-balance.js +0 -34
  43. package/dist/tools/get-balance.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAYA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAsB;;IAoBpC,OAAO,CAAC,aAAa;IA4Bf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAaA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAsB;;IAoBpC,OAAO,CAAC,aAAa;IA6Df,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
package/dist/server.js CHANGED
@@ -4,13 +4,14 @@ import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema
4
4
  import { CacheOverflowClient } from './client.js';
5
5
  import { tools } from './tools/index.js';
6
6
  import { prompts } from './prompts/index.js';
7
+ import { logger } from './logger.js';
7
8
  export class CacheOverflowServer {
8
9
  server;
9
10
  client;
10
11
  constructor() {
11
12
  this.server = new Server({
12
13
  name: 'cache-overflow',
13
- version: '0.3.0',
14
+ version: '0.3.5',
14
15
  }, {
15
16
  capabilities: {
16
17
  tools: {},
@@ -28,9 +29,28 @@ export class CacheOverflowServer {
28
29
  this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
29
30
  const tool = tools.find((t) => t.definition.name === request.params.name);
30
31
  if (!tool) {
31
- throw new Error(`Unknown tool: ${request.params.name}`);
32
+ const error = new Error(`Unknown tool: ${request.params.name}`);
33
+ logger.error('Unknown tool requested', error, {
34
+ toolName: request.params.name,
35
+ availableTools: tools.map(t => t.definition.name),
36
+ });
37
+ throw error;
38
+ }
39
+ try {
40
+ logger.info(`Executing tool: ${request.params.name}`, {
41
+ toolName: request.params.name,
42
+ // Don't log full arguments as they might contain sensitive data
43
+ hasArguments: Object.keys(request.params.arguments ?? {}).length > 0,
44
+ });
45
+ return await tool.handler(request.params.arguments ?? {}, this.client);
46
+ }
47
+ catch (error) {
48
+ logger.error(`Tool execution failed: ${request.params.name}`, error, {
49
+ toolName: request.params.name,
50
+ errorType: 'TOOL_EXECUTION_FAILURE',
51
+ });
52
+ throw error;
32
53
  }
33
- return tool.handler(request.params.arguments ?? {}, this.client);
34
54
  });
35
55
  // Prompt handlers
36
56
  this.server.setRequestHandler(ListPromptsRequestSchema, async () => ({
@@ -39,14 +59,37 @@ export class CacheOverflowServer {
39
59
  this.server.setRequestHandler(GetPromptRequestSchema, async (request) => {
40
60
  const prompt = prompts.find((p) => p.definition.name === request.params.name);
41
61
  if (!prompt) {
42
- throw new Error(`Unknown prompt: ${request.params.name}`);
62
+ const error = new Error(`Unknown prompt: ${request.params.name}`);
63
+ logger.error('Unknown prompt requested', error, {
64
+ promptName: request.params.name,
65
+ availablePrompts: prompts.map(p => p.definition.name),
66
+ });
67
+ throw error;
68
+ }
69
+ try {
70
+ return await prompt.handler(request.params.arguments ?? {});
71
+ }
72
+ catch (error) {
73
+ logger.error(`Prompt execution failed: ${request.params.name}`, error, {
74
+ promptName: request.params.name,
75
+ errorType: 'PROMPT_EXECUTION_FAILURE',
76
+ });
77
+ throw error;
43
78
  }
44
- return prompt.handler(request.params.arguments ?? {});
45
79
  });
46
80
  }
47
81
  async start() {
48
- const transport = new StdioServerTransport();
49
- await this.server.connect(transport);
82
+ try {
83
+ const transport = new StdioServerTransport();
84
+ await this.server.connect(transport);
85
+ logger.info('MCP server connected successfully via stdio transport');
86
+ }
87
+ catch (error) {
88
+ logger.error('Failed to connect MCP server', error, {
89
+ errorType: 'CONNECTION_FAILURE',
90
+ });
91
+ throw error;
92
+ }
50
93
  }
51
94
  }
52
95
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -3,16 +3,16 @@ export const mockSolutions = [
3
3
  id: 'sol_001',
4
4
  author_id: 'user_123',
5
5
  query_title: 'How to implement binary search in TypeScript',
6
- solution_body: `function binarySearch<T>(arr: T[], target: T): number {
7
- let left = 0;
8
- let right = arr.length - 1;
9
- while (left <= right) {
10
- const mid = Math.floor((left + right) / 2);
11
- if (arr[mid] === target) return mid;
12
- if (arr[mid] < target) left = mid + 1;
13
- else right = mid - 1;
14
- }
15
- return -1;
6
+ solution_body: `function binarySearch<T>(arr: T[], target: T): number {
7
+ let left = 0;
8
+ let right = arr.length - 1;
9
+ while (left <= right) {
10
+ const mid = Math.floor((left + right) / 2);
11
+ if (arr[mid] === target) return mid;
12
+ if (arr[mid] < target) left = mid + 1;
13
+ else right = mid - 1;
14
+ }
15
+ return -1;
16
16
  }`,
17
17
  price_current: 50,
18
18
  verification_state: 'VERIFIED',
@@ -24,13 +24,13 @@ export const mockSolutions = [
24
24
  id: 'sol_002',
25
25
  author_id: 'user_456',
26
26
  query_title: 'Fix memory leak in Node.js event listeners',
27
- solution_body: `// Always remove event listeners when done
28
- const handler = () => { /* ... */ };
29
- emitter.on('event', handler);
30
- // Later:
31
- emitter.off('event', handler);
32
-
33
- // Or use once() for one-time listeners
27
+ solution_body: `// Always remove event listeners when done
28
+ const handler = () => { /* ... */ };
29
+ emitter.on('event', handler);
30
+ // Later:
31
+ emitter.off('event', handler);
32
+
33
+ // Or use once() for one-time listeners
34
34
  emitter.once('event', () => { /* ... */ });`,
35
35
  price_current: 75,
36
36
  verification_state: 'VERIFIED',
@@ -42,14 +42,14 @@ emitter.once('event', () => { /* ... */ });`,
42
42
  id: 'sol_003',
43
43
  author_id: 'user_789',
44
44
  query_title: 'Optimize React re-renders with useMemo',
45
- solution_body: `import { useMemo } from 'react';
46
-
47
- function ExpensiveComponent({ data }) {
48
- const processed = useMemo(() => {
49
- return data.map(item => heavyComputation(item));
50
- }, [data]);
51
-
52
- return <div>{processed}</div>;
45
+ solution_body: `import { useMemo } from 'react';
46
+
47
+ function ExpensiveComponent({ data }) {
48
+ const processed = useMemo(() => {
49
+ return data.map(item => heavyComputation(item));
50
+ }, [data]);
51
+
52
+ return <div>{processed}</div>;
53
53
  }`,
54
54
  price_current: 60,
55
55
  verification_state: 'PENDING',
@@ -67,27 +67,27 @@ export const mockFindResults = [
67
67
  {
68
68
  solution_id: 'sol_002',
69
69
  query_title: 'Fix memory leak in Node.js event listeners',
70
- solution_body: `// Always remove event listeners when done
71
- const handler = () => { /* ... */ };
72
- emitter.on('event', handler);
73
- // Later:
74
- emitter.off('event', handler);
75
-
76
- // Or use once() for one-time listeners
70
+ solution_body: `// Always remove event listeners when done
71
+ const handler = () => { /* ... */ };
72
+ emitter.on('event', handler);
73
+ // Later:
74
+ emitter.off('event', handler);
75
+
76
+ // Or use once() for one-time listeners
77
77
  emitter.once('event', () => { /* ... */ });`,
78
78
  human_verification_required: true,
79
79
  },
80
80
  {
81
81
  solution_id: 'sol_003',
82
82
  query_title: 'Optimize React re-renders with useMemo',
83
- solution_body: `import { useMemo } from 'react';
84
-
85
- function ExpensiveComponent({ data }) {
86
- const processed = useMemo(() => {
87
- return data.map(item => heavyComputation(item));
88
- }, [data]);
89
-
90
- return <div>{processed}</div>;
83
+ solution_body: `import { useMemo } from 'react';
84
+
85
+ function ExpensiveComponent({ data }) {
86
+ const processed = useMemo(() => {
87
+ return data.map(item => heavyComputation(item));
88
+ }, [data]);
89
+
90
+ return <div>{processed}</div>;
91
91
  }`,
92
92
  human_verification_required: false,
93
93
  },
@@ -1 +1 @@
1
- {"version":3,"file":"verification-dialog.d.ts","sourceRoot":"","sources":["../../src/ui/verification-dialog.ts"],"names":[],"mappings":"AAyRA;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAmDzB"}
1
+ {"version":3,"file":"verification-dialog.d.ts","sourceRoot":"","sources":["../../src/ui/verification-dialog.ts"],"names":[],"mappings":"AA0RA;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA0FzB"}