cache-overflow-mcp 0.3.6 → 0.3.8

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 (65) hide show
  1. package/README.md +28 -76
  2. package/dist/client.d.ts +5 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +157 -9
  5. package/dist/client.js.map +1 -1
  6. package/dist/config.js +1 -1
  7. package/dist/config.js.map +1 -1
  8. package/dist/prompts/index.d.ts +6 -0
  9. package/dist/prompts/index.d.ts.map +1 -1
  10. package/dist/prompts/index.js +55 -1
  11. package/dist/prompts/index.js.map +1 -1
  12. package/dist/server.d.ts.map +1 -1
  13. package/dist/server.js +18 -10
  14. package/dist/server.js.map +1 -1
  15. package/dist/services/config-service.d.ts +27 -0
  16. package/dist/services/config-service.d.ts.map +1 -0
  17. package/dist/services/config-service.js +100 -0
  18. package/dist/services/config-service.js.map +1 -0
  19. package/dist/testing/mock-server.d.ts.map +1 -1
  20. package/dist/testing/mock-server.js +13 -5
  21. package/dist/testing/mock-server.js.map +1 -1
  22. package/dist/tools/find-solution.d.ts.map +1 -1
  23. package/dist/tools/find-solution.js +74 -3
  24. package/dist/tools/find-solution.js.map +1 -1
  25. package/dist/tools/index.d.ts +6 -0
  26. package/dist/tools/index.d.ts.map +1 -1
  27. package/dist/tools/index.js +53 -1
  28. package/dist/tools/index.js.map +1 -1
  29. package/dist/tools/publish-solution.d.ts.map +1 -1
  30. package/dist/tools/publish-solution.js +68 -3
  31. package/dist/tools/publish-solution.js.map +1 -1
  32. package/dist/tools/submit-feedback.d.ts.map +1 -1
  33. package/dist/tools/submit-feedback.js +62 -2
  34. package/dist/tools/submit-feedback.js.map +1 -1
  35. package/dist/tools/submit-verification.d.ts.map +1 -1
  36. package/dist/tools/submit-verification.js +62 -2
  37. package/dist/tools/submit-verification.js.map +1 -1
  38. package/dist/tools/unlock-solution.d.ts.map +1 -1
  39. package/dist/tools/unlock-solution.js +57 -2
  40. package/dist/tools/unlock-solution.js.map +1 -1
  41. package/dist/types.d.ts +38 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/ui/verification-dialog.d.ts +1 -1
  44. package/dist/ui/verification-dialog.d.ts.map +1 -1
  45. package/dist/ui/verification-dialog.js +78 -4
  46. package/dist/ui/verification-dialog.js.map +1 -1
  47. package/package.json +1 -1
  48. package/src/client.ts +177 -9
  49. package/src/config.ts +1 -1
  50. package/src/prompts/index.ts +67 -1
  51. package/src/server.ts +37 -19
  52. package/src/services/config-service.ts +119 -0
  53. package/src/testing/mock-server.ts +15 -7
  54. package/src/tools/find-solution.ts +75 -3
  55. package/src/tools/index.ts +70 -1
  56. package/src/tools/publish-solution.ts +71 -3
  57. package/src/tools/submit-feedback.ts +62 -2
  58. package/src/tools/submit-verification.ts +62 -2
  59. package/src/tools/unlock-solution.ts +56 -2
  60. package/src/types.ts +48 -0
  61. package/src/ui/verification-dialog.ts +84 -4
  62. package/E2E-TESTING.md +0 -195
  63. package/TROUBLESHOOTING.md +0 -219
  64. package/scripts/mock-server.js +0 -37
  65. package/scripts/view-logs.js +0 -125
@@ -1,3 +1,41 @@
1
+ import { config } from '../config.js';
2
+ // #6 - Improve error messages with context
3
+ function getErrorTitle(error) {
4
+ if (error.includes('timeout') || error.includes('timed out'))
5
+ return 'Request Timed Out';
6
+ if (error.includes('network') || error.includes('fetch'))
7
+ return 'Network Connection Failed';
8
+ if (error.includes('auth') || error.includes('Authentication'))
9
+ return 'Authentication Failed';
10
+ if (error.includes('Rate limit'))
11
+ return 'Rate Limit Exceeded';
12
+ if (error.includes('not found') || error.includes('404'))
13
+ return 'Solution Not Found';
14
+ if (error.includes('already verified'))
15
+ return 'Already Verified';
16
+ return 'Operation Failed';
17
+ }
18
+ function getRecoverySuggestions(error) {
19
+ if (error.includes('timeout') || error.includes('timed out')) {
20
+ return '- Check your internet connection\n- Try again in a moment\n- The server may be experiencing high load';
21
+ }
22
+ if (error.includes('auth') || error.includes('Authentication')) {
23
+ return '- Verify your CACHE_OVERFLOW_TOKEN environment variable is set correctly\n- Token should start with "co_"\n- Check if your token has expired';
24
+ }
25
+ if (error.includes('Rate limit')) {
26
+ return '- Wait the specified time before retrying';
27
+ }
28
+ if (error.includes('not found') || error.includes('404')) {
29
+ return '- Verify the solution_id is correct\n- The solution may have been deleted';
30
+ }
31
+ if (error.includes('already verified')) {
32
+ return '- You have already verified this solution\n- No action needed';
33
+ }
34
+ if (error.includes('network') || error.includes('fetch')) {
35
+ return '- Check your internet connection\n- Verify the CACHE_OVERFLOW_URL is correct\n- Try again in a moment';
36
+ }
37
+ return '- Check the log file for details\n- Verify your CACHE_OVERFLOW_TOKEN is valid\n- Try again in a moment';
38
+ }
1
39
  export const submitVerification = {
2
40
  definition: {
3
41
  name: 'submit_verification',
@@ -18,12 +56,34 @@ export const submitVerification = {
18
56
  },
19
57
  },
20
58
  handler: async (args, client) => {
21
- const solutionId = args.solution_id;
59
+ // #5 - Add input validation
60
+ const solutionId = (args.solution_id || '').trim();
22
61
  const isSafe = args.is_safe;
62
+ if (!solutionId) {
63
+ return {
64
+ content: [{ type: 'text', text: 'Error: solution_id cannot be empty. Please provide a valid solution ID.' }],
65
+ };
66
+ }
67
+ if (typeof isSafe !== 'boolean') {
68
+ return {
69
+ content: [{ type: 'text', text: 'Error: is_safe must be a boolean (true or false).' }],
70
+ };
71
+ }
23
72
  const result = await client.submitVerification(solutionId, isSafe);
24
73
  if (!result.success) {
74
+ // #6 - Improve error messages with context
75
+ const errorMessage = [
76
+ `❌ ${getErrorTitle(result.error || '')}`,
77
+ '',
78
+ result.error,
79
+ '',
80
+ '💡 **What to try:**',
81
+ getRecoverySuggestions(result.error || ''),
82
+ '',
83
+ `📋 **Logs**: Check ${config.logging.logDir || '~/.cache-overflow'}/cache-overflow-mcp.log for details`,
84
+ ].join('\n');
25
85
  return {
26
- content: [{ type: 'text', text: `Error: ${result.error}` }],
86
+ content: [{ type: 'text', text: errorMessage }],
27
87
  };
28
88
  }
29
89
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"submit-verification.js","sourceRoot":"","sources":["../../src/tools/submit-verification.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,UAAU,EAAE;QACV,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,yQAAyQ;QAC3Q,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;iBAChD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,qKAAqK;iBACnL;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;SACrC;KACF;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAqB,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAkB,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC5D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sCAAsC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"submit-verification.js","sourceRoot":"","sources":["../../src/tools/submit-verification.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"unlock-solution.d.ts","sourceRoot":"","sources":["../../src/tools/unlock-solution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,cAAc,EAAE,cAgC5B,CAAC"}
1
+ {"version":3,"file":"unlock-solution.d.ts","sourceRoot":"","sources":["../../src/tools/unlock-solution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAoC5C,eAAO,MAAM,cAAc,EAAE,cAoD5B,CAAC"}
@@ -1,3 +1,41 @@
1
+ import { config } from '../config.js';
2
+ // #6 - Improve error messages with context
3
+ function getErrorTitle(error) {
4
+ if (error.includes('timeout') || error.includes('timed out'))
5
+ return 'Request Timed Out';
6
+ if (error.includes('network') || error.includes('fetch'))
7
+ return 'Network Connection Failed';
8
+ if (error.includes('balance') || error.includes('insufficient'))
9
+ return 'Insufficient Token Balance';
10
+ if (error.includes('auth') || error.includes('Authentication'))
11
+ return 'Authentication Failed';
12
+ if (error.includes('Rate limit'))
13
+ return 'Rate Limit Exceeded';
14
+ if (error.includes('not found') || error.includes('404'))
15
+ return 'Solution Not Found';
16
+ return 'Operation Failed';
17
+ }
18
+ function getRecoverySuggestions(error) {
19
+ if (error.includes('timeout') || error.includes('timed out')) {
20
+ return '- Check your internet connection\n- Try again in a moment\n- The server may be experiencing high load';
21
+ }
22
+ if (error.includes('balance') || error.includes('insufficient')) {
23
+ return '- Check your balance with another tool or API call\n- Earn tokens by publishing solutions\n- Look for solutions with human_verification_required=false';
24
+ }
25
+ if (error.includes('auth') || error.includes('Authentication')) {
26
+ return '- Verify your CACHE_OVERFLOW_TOKEN environment variable is set correctly\n- Token should start with "co_"\n- Check if your token has expired';
27
+ }
28
+ if (error.includes('Rate limit')) {
29
+ return '- Wait the specified time before retrying\n- Consider using solutions with human_verification_required=false to avoid token costs';
30
+ }
31
+ if (error.includes('not found') || error.includes('404')) {
32
+ return '- Verify the solution_id is correct\n- The solution may have been deleted\n- Try searching again with find_solution';
33
+ }
34
+ if (error.includes('network') || error.includes('fetch')) {
35
+ return '- Check your internet connection\n- Verify the CACHE_OVERFLOW_URL is correct\n- Try again in a moment';
36
+ }
37
+ return '- Check the log file for details\n- Verify your CACHE_OVERFLOW_TOKEN is valid\n- Try again in a moment';
38
+ }
1
39
  export const unlockSolution = {
2
40
  definition: {
3
41
  name: 'unlock_solution',
@@ -14,11 +52,28 @@ export const unlockSolution = {
14
52
  },
15
53
  },
16
54
  handler: async (args, client) => {
17
- const solutionId = args.solution_id;
55
+ // #5 - Add input validation
56
+ const solutionId = (args.solution_id || '').trim();
57
+ if (!solutionId) {
58
+ return {
59
+ content: [{ type: 'text', text: 'Error: solution_id cannot be empty. Please provide a valid solution ID from find_solution results.' }],
60
+ };
61
+ }
18
62
  const result = await client.unlockSolution(solutionId);
19
63
  if (!result.success) {
64
+ // #6 - Improve error messages with context
65
+ const errorMessage = [
66
+ `❌ ${getErrorTitle(result.error || '')}`,
67
+ '',
68
+ result.error,
69
+ '',
70
+ '💡 **What to try:**',
71
+ getRecoverySuggestions(result.error || ''),
72
+ '',
73
+ `📋 **Logs**: Check ${config.logging.logDir || '~/.cache-overflow'}/cache-overflow-mcp.log for details`,
74
+ ].join('\n');
20
75
  return {
21
- content: [{ type: 'text', text: `Error: ${result.error}` }],
76
+ content: [{ type: 'text', text: errorMessage }],
22
77
  };
23
78
  }
24
79
  const feedbackReminder = '\n\n⚠️ REQUIRED: You MUST now call submit_feedback with this solution_id after you have tried applying the solution. Report whether it was helpful (is_useful=true/false).';
@@ -1 +1 @@
1
- {"version":3,"file":"unlock-solution.js","sourceRoot":"","sources":["../../src/tools/unlock-solution.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,UAAU,EAAE;QACV,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,4lBAA4lB;QAC9lB,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wEAAwE;iBACtF;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;KACF;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAqB,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAEvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC5D,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,4KAA4K,CAAC;QAEtM,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,gBAAgB,EAAE,CAAC;SAC3F,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"unlock-solution.js","sourceRoot":"","sources":["../../src/tools/unlock-solution.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -36,4 +36,42 @@ export type ApiResponse<T> = {
36
36
  success: false;
37
37
  error: string;
38
38
  };
39
+ export interface RemoteInputProperty {
40
+ type: string;
41
+ description: string;
42
+ }
43
+ export interface RemoteInputSchema {
44
+ type: string;
45
+ properties: Record<string, RemoteInputProperty>;
46
+ required: string[];
47
+ }
48
+ export interface RemoteToolDefinition {
49
+ name: string;
50
+ description: string;
51
+ inputSchema: RemoteInputSchema;
52
+ }
53
+ export interface RemotePromptArgument {
54
+ name: string;
55
+ description: string;
56
+ required: boolean;
57
+ }
58
+ export interface RemotePromptMessageContent {
59
+ type: string;
60
+ text: string;
61
+ }
62
+ export interface RemotePromptMessage {
63
+ role: string;
64
+ content: RemotePromptMessageContent;
65
+ }
66
+ export interface RemotePromptDefinition {
67
+ name: string;
68
+ description: string;
69
+ arguments: RemotePromptArgument[];
70
+ messages: RemotePromptMessage[];
71
+ }
72
+ export interface McpConfigResponse {
73
+ schema_version: string;
74
+ tools: RemoteToolDefinition[];
75
+ prompts: RemotePromptDefinition[];
76
+ }
39
77
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAItC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAChD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,0BAA0B,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC"}
@@ -2,7 +2,7 @@
2
2
  * Shows a modern verification dialog in the browser.
3
3
  * @param title The solution's query title
4
4
  * @param body The solution body (if available/unlocked)
5
- * @returns true if user clicked "Safe", false if "Unsafe", null if cancelled
5
+ * @returns true if user clicked "Safe", false if "Unsafe", null if cancelled, or error object if failed
6
6
  */
7
7
  export declare function showVerificationDialog(title: string, body?: string): Promise<boolean | null>;
8
8
  //# sourceMappingURL=verification-dialog.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"verification-dialog.d.ts","sourceRoot":"","sources":["../../src/ui/verification-dialog.ts"],"names":[],"mappings":"AAuUA;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA6HzB"}
@@ -224,9 +224,35 @@ const generateHTML = (title, body) => `
224
224
  font-size: 18px;
225
225
  color: rgba(255, 255, 255, 0.5);
226
226
  }
227
+
228
+ .timer {
229
+ position: fixed;
230
+ top: 20px;
231
+ right: 20px;
232
+ background: rgba(139, 92, 246, 0.2);
233
+ border: 1px solid rgba(139, 92, 246, 0.4);
234
+ padding: 12px 20px;
235
+ border-radius: 8px;
236
+ font-weight: 600;
237
+ font-size: 14px;
238
+ color: #A78BFA;
239
+ box-shadow: 0 4px 12px rgba(0,0,0,0.2);
240
+ transition: all 0.3s ease;
241
+ }
242
+ .timer.warning {
243
+ background: rgba(255, 68, 68, 0.25);
244
+ border-color: rgba(255, 68, 68, 0.5);
245
+ color: #FF6B6B;
246
+ animation: pulse-warning 1s ease-in-out infinite;
247
+ }
248
+ @keyframes pulse-warning {
249
+ 0%, 100% { transform: scale(1); }
250
+ 50% { transform: scale(1.05); }
251
+ }
227
252
  </style>
228
253
  </head>
229
254
  <body>
255
+ <div class="timer" id="timer">Time remaining: <span id="countdown">55</span>s</div>
230
256
  <div class="card" id="main-card">
231
257
  <div class="badge">Verification Required</div>
232
258
 
@@ -265,6 +291,22 @@ const generateHTML = (title, body) => `
265
291
  if (e.key === 's' || e.key === 'S') submit('safe');
266
292
  if (e.key === 'u' || e.key === 'U') submit('unsafe');
267
293
  });
294
+
295
+ // #9 - Add countdown timer
296
+ let timeLeft = 55;
297
+ const countdown = document.getElementById('countdown');
298
+ const timer = document.getElementById('timer');
299
+
300
+ const interval = setInterval(() => {
301
+ timeLeft--;
302
+ if (countdown) countdown.textContent = timeLeft.toString();
303
+ if (timeLeft <= 10 && timer) {
304
+ timer.classList.add('warning');
305
+ }
306
+ if (timeLeft <= 0) {
307
+ clearInterval(interval);
308
+ }
309
+ }, 1000);
268
310
  </script>
269
311
  </body>
270
312
  </html>
@@ -281,7 +323,7 @@ function escapeHtml(text) {
281
323
  * Shows a modern verification dialog in the browser.
282
324
  * @param title The solution's query title
283
325
  * @param body The solution body (if available/unlocked)
284
- * @returns true if user clicked "Safe", false if "Unsafe", null if cancelled
326
+ * @returns true if user clicked "Safe", false if "Unsafe", null if cancelled, or error object if failed
285
327
  */
286
328
  export async function showVerificationDialog(title, body) {
287
329
  return new Promise((resolve) => {
@@ -291,11 +333,33 @@ export async function showVerificationDialog(title, body) {
291
333
  const url = new URL(req.url || '/', `http://localhost`);
292
334
  if (url.pathname === '/result') {
293
335
  const value = url.searchParams.get('value');
294
- res.writeHead(200, { 'Content-Type': 'text/plain', 'Access-Control-Allow-Origin': '*' });
295
- res.end('OK');
336
+ // #4 - Handle HTTP response errors
337
+ try {
338
+ res.writeHead(200, { 'Content-Type': 'text/plain', 'Access-Control-Allow-Origin': '*' });
339
+ res.end('OK');
340
+ }
341
+ catch (error) {
342
+ logger.error('Error sending response to verification dialog', error, {
343
+ solutionTitle: title,
344
+ errorType: 'RESPONSE_WRITE_ERROR',
345
+ });
346
+ // Continue with resolution anyway - user already made choice
347
+ }
296
348
  if (!resolved) {
297
349
  resolved = true;
298
- server.close();
350
+ // #14 - Improve server cleanup
351
+ server.close((err) => {
352
+ if (err) {
353
+ logger.error('Error closing verification dialog server', err, {
354
+ solutionTitle: title,
355
+ errorType: 'SERVER_CLOSE_ERROR',
356
+ });
357
+ }
358
+ });
359
+ // Destroy all active sockets to speed up cleanup (Node 18.2+)
360
+ if (typeof server.closeAllConnections === 'function') {
361
+ server.closeAllConnections();
362
+ }
299
363
  switch (value) {
300
364
  case 'safe':
301
365
  logger.info('User verified solution as safe', { solutionTitle: title });
@@ -319,6 +383,7 @@ export async function showVerificationDialog(title, body) {
319
383
  res.end(html);
320
384
  }
321
385
  });
386
+ // #15 - Distinguish error types
322
387
  server.on('error', (error) => {
323
388
  logger.error('Verification dialog HTTP server error', error, {
324
389
  solutionTitle: title,
@@ -326,6 +391,7 @@ export async function showVerificationDialog(title, body) {
326
391
  });
327
392
  if (!resolved) {
328
393
  resolved = true;
394
+ // Return null for errors (treated same as cancellation for now)
329
395
  resolve(null);
330
396
  }
331
397
  });
@@ -337,12 +403,19 @@ export async function showVerificationDialog(title, body) {
337
403
  port: address.port,
338
404
  solutionTitle: title
339
405
  });
406
+ // #3 - Fix verification dialog browser open failure
340
407
  open(url).catch((error) => {
341
408
  logger.error('Failed to open verification dialog in browser', error, {
342
409
  url,
343
410
  solutionTitle: title,
344
411
  errorType: 'BROWSER_OPEN_FAILURE',
345
412
  });
413
+ // Provide fallback manual URL when browser open fails
414
+ console.error(`\n${'='.repeat(60)}`);
415
+ console.error('⚠️ Could not open browser automatically');
416
+ console.error('Please open this URL manually to verify the solution:');
417
+ console.error(`\n ${url}\n`);
418
+ console.error(`${'='.repeat(60)}\n`);
346
419
  });
347
420
  // Timeout after 55 seconds (within MCP client default 60s limit)
348
421
  setTimeout(() => {
@@ -350,6 +423,7 @@ export async function showVerificationDialog(title, body) {
350
423
  resolved = true;
351
424
  server.close();
352
425
  logger.warn('Verification dialog timed out', { solutionTitle: title });
426
+ // Return null for timeout (treated as cancellation)
353
427
  resolve(null);
354
428
  }
355
429
  }, 55 * 1000);
@@ -1 +1 @@
1
- {"version":3,"file":"verification-dialog.js","sourceRoot":"","sources":["../../src/ui/verification-dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-dialog.js","sourceRoot":"","sources":["../../src/ui/verification-dialog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cache-overflow-mcp",
3
- "version": "0.3.6",
3
+ "version": "0.3.8",
4
4
  "type": "module",
5
5
  "description": "MCP server for cache.overflow - AI agents sharing knowledge with AI agents",
6
6
  "main": "dist/index.js",