research-powerpack-mcp 3.5.0 → 3.6.1

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 (68) hide show
  1. package/README.md +674 -63
  2. package/dist/clients/reddit.d.ts +6 -1
  3. package/dist/clients/reddit.d.ts.map +1 -1
  4. package/dist/clients/reddit.js +60 -24
  5. package/dist/clients/reddit.js.map +1 -1
  6. package/dist/clients/scraper.d.ts +6 -1
  7. package/dist/clients/scraper.d.ts.map +1 -1
  8. package/dist/clients/scraper.js +77 -38
  9. package/dist/clients/scraper.js.map +1 -1
  10. package/dist/clients/search.d.ts +2 -2
  11. package/dist/clients/search.d.ts.map +1 -1
  12. package/dist/clients/search.js +11 -6
  13. package/dist/clients/search.js.map +1 -1
  14. package/dist/config/index.d.ts.map +1 -1
  15. package/dist/config/index.js +5 -1
  16. package/dist/config/index.js.map +1 -1
  17. package/dist/config/loader.d.ts.map +1 -1
  18. package/dist/config/loader.js +6 -1
  19. package/dist/config/loader.js.map +1 -1
  20. package/dist/index.js +28 -86
  21. package/dist/index.js.map +1 -1
  22. package/dist/schemas/web-search.js +1 -1
  23. package/dist/schemas/web-search.js.map +1 -1
  24. package/dist/services/file-attachment.d.ts.map +1 -1
  25. package/dist/services/file-attachment.js +25 -22
  26. package/dist/services/file-attachment.js.map +1 -1
  27. package/dist/tools/reddit.d.ts.map +1 -1
  28. package/dist/tools/reddit.js +43 -55
  29. package/dist/tools/reddit.js.map +1 -1
  30. package/dist/tools/registry.js +2 -2
  31. package/dist/tools/registry.js.map +1 -1
  32. package/dist/tools/research.d.ts +1 -2
  33. package/dist/tools/research.d.ts.map +1 -1
  34. package/dist/tools/research.js +69 -59
  35. package/dist/tools/research.js.map +1 -1
  36. package/dist/tools/scrape.d.ts +1 -2
  37. package/dist/tools/scrape.d.ts.map +1 -1
  38. package/dist/tools/scrape.js +74 -96
  39. package/dist/tools/scrape.js.map +1 -1
  40. package/dist/tools/search.d.ts +1 -2
  41. package/dist/tools/search.d.ts.map +1 -1
  42. package/dist/tools/search.js +19 -21
  43. package/dist/tools/search.js.map +1 -1
  44. package/dist/tools/utils.d.ts +68 -16
  45. package/dist/tools/utils.d.ts.map +1 -1
  46. package/dist/tools/utils.js +75 -22
  47. package/dist/tools/utils.js.map +1 -1
  48. package/dist/utils/concurrency.d.ts +29 -0
  49. package/dist/utils/concurrency.d.ts.map +1 -0
  50. package/dist/utils/concurrency.js +73 -0
  51. package/dist/utils/concurrency.js.map +1 -0
  52. package/dist/utils/logger.d.ts +26 -23
  53. package/dist/utils/logger.d.ts.map +1 -1
  54. package/dist/utils/logger.js +41 -24
  55. package/dist/utils/logger.js.map +1 -1
  56. package/dist/utils/response.d.ts +49 -62
  57. package/dist/utils/response.d.ts.map +1 -1
  58. package/dist/utils/response.js +102 -134
  59. package/dist/utils/response.js.map +1 -1
  60. package/dist/utils/url-aggregator.d.ts.map +1 -1
  61. package/dist/utils/url-aggregator.js +6 -4
  62. package/dist/utils/url-aggregator.js.map +1 -1
  63. package/package.json +2 -8
  64. package/dist/config/env.d.ts +0 -75
  65. package/dist/config/env.d.ts.map +0 -1
  66. package/dist/config/env.js +0 -87
  67. package/dist/config/env.js.map +0 -1
  68. package/dist/config/yaml/tools-enhanced.yaml +0 -0
@@ -1,87 +0,0 @@
1
- /**
2
- * Centralized Environment Variable Validation
3
- * Uses Zod for type-safe parsing with helpful error messages
4
- */
5
- import { z } from 'zod';
6
- // ============================================================================
7
- // Environment Schema
8
- // ============================================================================
9
- const envSchema = z.object({
10
- // Scraper API (required for scrape_links)
11
- SCRAPEDO_API_KEY: z.string().optional(),
12
- // Search API (required for web_search and search_reddit)
13
- SERPER_API_KEY: z.string().optional(),
14
- // Reddit API (required for get_reddit_post)
15
- REDDIT_CLIENT_ID: z.string().optional(),
16
- REDDIT_CLIENT_SECRET: z.string().optional(),
17
- // OpenRouter API (required for deep_research and LLM extraction)
18
- OPENROUTER_API_KEY: z.string().optional(),
19
- OPENROUTER_BASE_URL: z.string().url().optional().default('https://openrouter.ai/api/v1'),
20
- // Research configuration
21
- RESEARCH_MODEL: z.string().optional().default('x-ai/grok-4-fast'),
22
- RESEARCH_FALLBACK_MODEL: z.string().optional().default('google/gemini-2.5-flash'),
23
- DEFAULT_REASONING_EFFORT: z.enum(['low', 'medium', 'high']).optional().default('high'),
24
- DEFAULT_MAX_URLS: z.coerce.number().min(10).max(200).optional().default(100),
25
- API_TIMEOUT_MS: z.coerce.number().min(1000).max(3600000).optional().default(1800000),
26
- // LLM extraction configuration
27
- LLM_EXTRACTION_MODEL: z.string().optional().default('openai/gpt-oss-120b:nitro'),
28
- LLM_ENABLE_REASONING: z.string().transform(v => v !== 'false').optional().default('true'),
29
- });
30
- // ============================================================================
31
- // Parse and Validate Environment
32
- // ============================================================================
33
- let cachedEnv = null;
34
- /**
35
- * Parse and validate environment variables
36
- * Returns cached result on subsequent calls
37
- */
38
- export function getEnv() {
39
- if (cachedEnv)
40
- return cachedEnv;
41
- try {
42
- cachedEnv = envSchema.parse(process.env);
43
- return cachedEnv;
44
- }
45
- catch (error) {
46
- if (error instanceof z.ZodError) {
47
- const issues = error.issues.map(i => ` - ${i.path.join('.')}: ${i.message}`).join('\n');
48
- console.error(`[Config] Environment validation failed:\n${issues}`);
49
- }
50
- // Return defaults on error to avoid crashing
51
- cachedEnv = envSchema.parse({});
52
- return cachedEnv;
53
- }
54
- }
55
- /**
56
- * Clear cached environment (useful for testing)
57
- */
58
- export function clearEnvCache() {
59
- cachedEnv = null;
60
- }
61
- /**
62
- * Get available capabilities based on configured API keys
63
- */
64
- export function getCapabilitiesFromEnv() {
65
- const env = getEnv();
66
- return {
67
- reddit: !!(env.REDDIT_CLIENT_ID && env.REDDIT_CLIENT_SECRET),
68
- search: !!env.SERPER_API_KEY,
69
- scraping: !!env.SCRAPEDO_API_KEY,
70
- deepResearch: !!env.OPENROUTER_API_KEY,
71
- llmExtraction: !!env.OPENROUTER_API_KEY,
72
- };
73
- }
74
- /**
75
- * Get user-friendly message for missing capability
76
- */
77
- export function getMissingCapabilityMessage(capability) {
78
- const messages = {
79
- reddit: 'āŒ **Reddit tools unavailable.** Set `REDDIT_CLIENT_ID` and `REDDIT_CLIENT_SECRET` to enable.\n\nšŸ‘‰ Create a Reddit app at: https://www.reddit.com/prefs/apps (select "script" type)',
80
- search: 'āŒ **Search unavailable.** Set `SERPER_API_KEY` to enable web search and Reddit search.\n\nšŸ‘‰ Get your free API key at: https://serper.dev (2,500 free queries)',
81
- scraping: 'āŒ **Web scraping unavailable.** Set `SCRAPEDO_API_KEY` to enable URL content extraction.\n\nšŸ‘‰ Sign up at: https://scrape.do (1,000 free credits)',
82
- deepResearch: 'āŒ **Deep research unavailable.** Set `OPENROUTER_API_KEY` to enable AI-powered research.\n\nšŸ‘‰ Get your API key at: https://openrouter.ai/keys',
83
- llmExtraction: 'āš ļø **AI extraction disabled.** The `use_llm` and `what_to_extract` features require `OPENROUTER_API_KEY`.\n\nScraping will work but without intelligent content filtering.',
84
- };
85
- return messages[capability];
86
- }
87
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
File without changes