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
@@ -9,7 +9,7 @@ import { REDDIT } from '../config/index.js';
9
9
  import { classifyError } from '../utils/errors.js';
10
10
  import { createLLMProcessor, processContentWithLLM } from '../services/llm-processor.js';
11
11
  import { getToolConfig } from '../config/loader.js';
12
- import { formatSuccess, formatError, formatBatchHeader, TOKEN_BUDGETS, } from './utils.js';
12
+ import { mcpLog, formatSuccess, formatError, formatBatchHeader, TOKEN_BUDGETS, } from './utils.js';
13
13
  // ============================================================================
14
14
  // Formatters
15
15
  // ============================================================================
@@ -56,13 +56,18 @@ export async function handleSearchReddit(queries, apiKey, dateAfter) {
56
56
  totalResults += items.length;
57
57
  }
58
58
  if (totalResults === 0) {
59
- return formatSuccess({
60
- title: 'Reddit Search Results',
61
- summary: `_No results found for any of the ${limited.length} queries._`,
62
- nextSteps: [
63
- 'Try broader search terms',
64
- 'Check spelling of subreddit names',
65
- 'Remove date filters to search all time',
59
+ return formatError({
60
+ code: 'NO_RESULTS',
61
+ message: `No results found for any of the ${limited.length} queries`,
62
+ toolName: 'search_reddit',
63
+ howToFix: [
64
+ 'Try broader or simpler search terms',
65
+ 'Check spelling of technical terms',
66
+ 'Remove date filters if using them',
67
+ ],
68
+ alternatives: [
69
+ 'web_search(keywords=[...]) for general web results',
70
+ 'deep_research(questions=[...]) for synthesized analysis',
66
71
  ],
67
72
  });
68
73
  }
@@ -78,8 +83,8 @@ export async function handleSearchReddit(queries, apiKey, dateAfter) {
78
83
  message: structuredError.message,
79
84
  retryable: structuredError.retryable,
80
85
  toolName: 'search_reddit',
81
- howToFix: ['Make sure SERPER_API_KEY is set in your environment variables'],
82
- alternatives: ['Try web_search() for general web results'],
86
+ howToFix: ['Verify SERPER_API_KEY is set correctly'],
87
+ alternatives: ['web_search(keywords=[...]) as backup'],
83
88
  });
84
89
  }
85
90
  }
@@ -109,18 +114,16 @@ export async function handleGetRedditPosts(urls, clientId, clientSecret, maxComm
109
114
  const { fetchComments = true, maxCommentsOverride, use_llm = false, what_to_extract } = options;
110
115
  if (urls.length < REDDIT.MIN_POSTS) {
111
116
  return formatError({
112
- code: 'INVALID_INPUT',
117
+ code: 'MIN_POSTS',
113
118
  message: `Minimum ${REDDIT.MIN_POSTS} Reddit posts required. Received: ${urls.length}`,
114
- retryable: false,
115
119
  toolName: 'get_reddit_post',
116
- howToFix: [`Add at least ${REDDIT.MIN_POSTS - urls.length} more URLs`],
120
+ howToFix: [`Add at least ${REDDIT.MIN_POSTS - urls.length} more Reddit URL(s)`],
117
121
  });
118
122
  }
119
123
  if (urls.length > REDDIT.MAX_POSTS) {
120
124
  return formatError({
121
- code: 'INVALID_INPUT',
125
+ code: 'MAX_POSTS',
122
126
  message: `Maximum ${REDDIT.MAX_POSTS} Reddit posts allowed. Received: ${urls.length}`,
123
- retryable: false,
124
127
  toolName: 'get_reddit_post',
125
128
  howToFix: [`Remove ${urls.length - REDDIT.MAX_POSTS} URL(s) and retry`],
126
129
  });
@@ -131,21 +134,10 @@ export async function handleGetRedditPosts(urls, clientId, clientSecret, maxComm
131
134
  const client = new RedditClient(clientId, clientSecret);
132
135
  const batchResult = await client.batchGetPosts(urls, commentsPerPost, fetchComments);
133
136
  const results = batchResult.results;
134
- // Initialize LLM processor if needed (before the loop for per-URL processing)
137
+ // Initialize LLM processor if needed
135
138
  const llmProcessor = use_llm ? createLLMProcessor() : null;
136
139
  const tokensPerUrl = use_llm ? Math.floor(TOKEN_BUDGETS.RESEARCH / urls.length) : 0;
137
140
  const enhancedInstruction = use_llm ? enhanceExtractionInstruction(what_to_extract) : undefined;
138
- // Build header info
139
- const headerParts = [];
140
- if (fetchComments) {
141
- headerParts.push(`**Comment Allocation:** ${commentsPerPost} comments/post (${urls.length} posts, ${REDDIT.MAX_COMMENT_BUDGET} total budget)`);
142
- }
143
- else {
144
- headerParts.push(`**Comments:** Not fetched (fetch_comments=false)`);
145
- }
146
- if (use_llm) {
147
- headerParts.push(`**Token Allocation:** ${tokensPerUrl.toLocaleString()} tokens/post (${urls.length} posts, ${TOKEN_BUDGETS.RESEARCH.toLocaleString()} total budget)`);
148
- }
149
141
  let successful = 0;
150
142
  let failed = 0;
151
143
  let llmErrors = 0;
@@ -160,52 +152,49 @@ export async function handleGetRedditPosts(urls, clientId, clientSecret, maxComm
160
152
  let postContent = formatPost(result, fetchComments);
161
153
  // Apply LLM extraction per-URL if enabled
162
154
  if (use_llm && llmProcessor) {
163
- console.error(`[Reddit Tool] [${successful}/${urls.length}] Applying LLM extraction to ${url} (${tokensPerUrl} tokens)...`);
155
+ mcpLog('info', `[${successful}/${urls.length}] Applying LLM extraction to ${url}`, 'reddit');
164
156
  const llmResult = await processContentWithLLM(postContent, { use_llm: true, what_to_extract: enhancedInstruction, max_tokens: tokensPerUrl }, llmProcessor);
165
157
  if (llmResult.processed) {
166
158
  postContent = `## LLM Analysis: ${result.post.title}\n\n**r/${result.post.subreddit}** • u/${result.post.author} • ⬆️ ${result.post.score} • 💬 ${result.post.commentCount} comments\n🔗 ${result.post.url}\n\n${llmResult.content}`;
167
- console.error(`[Reddit Tool] [${successful}/${urls.length}] LLM extraction complete`);
159
+ mcpLog('debug', `[${successful}/${urls.length}] LLM extraction complete`, 'reddit');
168
160
  }
169
161
  else {
170
162
  llmErrors++;
171
- console.error(`[Reddit Tool] [${successful}/${urls.length}] LLM extraction failed: ${llmResult.error || 'unknown reason'}`);
172
- // Continue with original content - graceful degradation
163
+ mcpLog('warning', `[${successful}/${urls.length}] LLM extraction failed: ${llmResult.error || 'unknown'}`, 'reddit');
173
164
  }
174
165
  }
175
166
  contents.push(postContent);
176
167
  }
177
168
  }
178
- // Build status extras
179
- const statusExtras = [];
180
- if (batchResult.rateLimitHits > 0) {
181
- statusExtras.push(`⚠️ ${batchResult.rateLimitHits} rate limit retries`);
182
- }
183
- if (use_llm && !llmProcessor) {
184
- statusExtras.push(`⚠️ LLM unavailable (no API key)`);
185
- }
186
- else if (use_llm && llmErrors > 0) {
187
- statusExtras.push(`⚠️ ${llmErrors} LLM extraction failures`);
188
- }
169
+ // Build 70/20/10 response
189
170
  const batchHeader = formatBatchHeader({
190
- title: 'Reddit Posts',
171
+ title: `Reddit Posts`,
191
172
  totalItems: urls.length,
192
173
  successful,
193
174
  failed,
175
+ ...(fetchComments ? { extras: { 'Comments/post': commentsPerPost } } : {}),
176
+ ...(use_llm ? { tokensPerItem: tokensPerUrl } : {}),
194
177
  batches: totalBatches,
195
- extras: statusExtras.length > 0 ? statusExtras : undefined,
196
178
  });
197
- // Build next steps
198
- const nextSteps = [];
199
- if (successful > 0) {
200
- nextSteps.push('Use `deep_research()` to explore topics from comments further');
201
- nextSteps.push('Search for related discussions with `search_reddit()`');
179
+ const statusExtras = [];
180
+ if (batchResult.rateLimitHits > 0) {
181
+ statusExtras.push(`⚠️ ${batchResult.rateLimitHits} rate limit retries`);
182
+ }
183
+ if (use_llm && !llmProcessor) {
184
+ statusExtras.push('⚠️ LLM unavailable (OPENROUTER_API_KEY not set)');
202
185
  }
203
- if (failed > 0) {
204
- nextSteps.push('Check failed URLs - they may be deleted or private');
186
+ else if (llmErrors > 0) {
187
+ statusExtras.push(`⚠️ ${llmErrors} LLM extraction failures`);
205
188
  }
189
+ const nextSteps = [
190
+ successful > 0 ? 'Research further: deep_research(questions=[{question: "Based on Reddit discussion..."}])' : null,
191
+ failed > 0 ? 'Retry failed URLs individually' : null,
192
+ 'Search related topics: search_reddit(queries=[...related terms...])',
193
+ ].filter(Boolean);
194
+ const extraStatus = statusExtras.length > 0 ? `\n${statusExtras.join(' | ')}` : '';
206
195
  return formatSuccess({
207
- title: `Reddit Posts (${urls.length} posts)`,
208
- summary: `${headerParts.join('\n')}\n\n${batchHeader}`,
196
+ title: `Reddit Posts Fetched (${successful}/${urls.length})`,
197
+ summary: batchHeader + extraStatus,
209
198
  data: contents.join('\n\n---\n\n'),
210
199
  nextSteps,
211
200
  });
@@ -217,8 +206,7 @@ export async function handleGetRedditPosts(urls, clientId, clientSecret, maxComm
217
206
  message: structuredError.message,
218
207
  retryable: structuredError.retryable,
219
208
  toolName: 'get_reddit_post',
220
- howToFix: ['Make sure REDDIT_CLIENT_ID and REDDIT_CLIENT_SECRET are set in your environment variables'],
221
- alternatives: ['Use scrape_links() as fallback for reading Reddit post content'],
209
+ howToFix: ['Verify REDDIT_CLIENT_ID and REDDIT_CLIENT_SECRET are set'],
222
210
  });
223
211
  }
224
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reddit.js","sourceRoot":"","sources":["../../src/tools/reddit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reddit.js","sourceRoot":"","sources":["../../src/tools/reddit.ts"],"names":[],"mappings":"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"}
@@ -38,14 +38,14 @@ const env = parseEnv();
38
38
  */
39
39
  async function searchRedditHandler(params) {
40
40
  const p = params;
41
- return handleSearchReddit(p.queries, env.SEARCH_API_KEY, p.date_after);
41
+ return handleSearchReddit(p.queries, env.SEARCH_API_KEY || '', p.date_after);
42
42
  }
43
43
  /**
44
44
  * Wrapper for get_reddit_post handler
45
45
  */
46
46
  async function getRedditPostHandler(params) {
47
47
  const p = params;
48
- return handleGetRedditPosts(p.urls, env.REDDIT_CLIENT_ID, env.REDDIT_CLIENT_SECRET, p.max_comments, {
48
+ return handleGetRedditPosts(p.urls, env.REDDIT_CLIENT_ID || '', env.REDDIT_CLIENT_SECRET || '', p.max_comments, {
49
49
  fetchComments: p.fetch_comments,
50
50
  maxCommentsOverride: p.max_comments !== 100 ? p.max_comments : undefined,
51
51
  use_llm: p.use_llm,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,11 @@
3
3
  * Implements robust error handling that NEVER crashes
4
4
  */
5
5
  import type { DeepResearchParams } from '../schemas/deep-research.js';
6
- import { type ToolOptions } from './utils.js';
7
6
  /**
8
7
  * Handle deep research request
9
8
  * NEVER throws - always returns a valid response
10
9
  */
11
- export declare function handleDeepResearch(params: DeepResearchParams, options?: ToolOptions): Promise<{
10
+ export declare function handleDeepResearch(params: DeepResearchParams): Promise<{
12
11
  content: string;
13
12
  structuredContent: object;
14
13
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKtE,OAAO,EAEL,KAAK,WAAW,EAOjB,MAAM,YAAY,CAAC;AA+BpB;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC,CA6KzD"}
1
+ {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AA8CtE;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC,CA6KzD"}
@@ -6,7 +6,8 @@ import { ResearchClient } from '../clients/research.js';
6
6
  import { FileAttachmentService } from '../services/file-attachment.js';
7
7
  import { RESEARCH } from '../config/index.js';
8
8
  import { classifyError } from '../utils/errors.js';
9
- import { safeLog, calculateTokenAllocation, TOKEN_BUDGETS, formatSuccess, formatError, formatBatchHeader, formatDuration, } from './utils.js';
9
+ import { pMap } from '../utils/concurrency.js';
10
+ import { mcpLog, formatSuccess, formatError, formatBatchHeader, formatDuration, truncateText, TOKEN_BUDGETS, calculateTokenAllocation, } from './utils.js';
10
11
  // Constants
11
12
  const MIN_QUESTIONS = 1; // Allow single question for flexibility
12
13
  const MAX_QUESTIONS = 10;
@@ -30,32 +31,34 @@ Be dense with insights, light on filler. Use examples and citations.`;
30
31
  * Handle deep research request
31
32
  * NEVER throws - always returns a valid response
32
33
  */
33
- export async function handleDeepResearch(params, options = {}) {
34
- const { sessionId, logger } = options;
35
- const questions = params.questions || [];
34
+ export async function handleDeepResearch(params) {
36
35
  const startTime = Date.now();
37
- // Helper to create error response using standardized formatter
38
- const createErrorResponse = (message, code = 'RESEARCH_ERROR') => {
39
- const errorContent = formatError({
40
- code,
41
- message,
42
- retryable: false,
43
- toolName: 'Deep Research',
44
- });
45
- return {
46
- content: errorContent,
47
- structuredContent: { error: true, message },
48
- };
49
- };
36
+ const questions = params.questions || [];
50
37
  // Validation
51
38
  if (questions.length < MIN_QUESTIONS) {
52
- return createErrorResponse(`Minimum ${MIN_QUESTIONS} research question(s) required. Received: ${questions.length}`, 'INVALID_INPUT');
39
+ return {
40
+ content: formatError({
41
+ code: 'MIN_QUESTIONS',
42
+ message: `Minimum ${MIN_QUESTIONS} research question(s) required. Received: ${questions.length}`,
43
+ toolName: 'deep_research',
44
+ howToFix: ['Add at least one question with detailed context'],
45
+ }),
46
+ structuredContent: { error: true, message: `Minimum ${MIN_QUESTIONS} question(s) required` },
47
+ };
53
48
  }
54
49
  if (questions.length > MAX_QUESTIONS) {
55
- return createErrorResponse(`Maximum ${MAX_QUESTIONS} research questions allowed. Received: ${questions.length}`, 'INVALID_INPUT');
50
+ return {
51
+ content: formatError({
52
+ code: 'MAX_QUESTIONS',
53
+ message: `Maximum ${MAX_QUESTIONS} research questions allowed. Received: ${questions.length}`,
54
+ toolName: 'deep_research',
55
+ howToFix: [`Remove ${questions.length - MAX_QUESTIONS} question(s)`],
56
+ }),
57
+ structuredContent: { error: true, message: `Maximum ${MAX_QUESTIONS} questions allowed` },
58
+ };
56
59
  }
57
60
  const tokensPerQuestion = calculateTokenAllocation(questions.length, TOKEN_BUDGETS.RESEARCH);
58
- await safeLog(logger, sessionId, 'info', `Starting batch research: ${questions.length} questions, ${tokensPerQuestion.toLocaleString()} tokens/question`, 'Research');
61
+ mcpLog('info', `Starting batch research: ${questions.length} questions, ${tokensPerQuestion.toLocaleString()} tokens/question`, 'research');
59
62
  // Initialize client safely
60
63
  let client;
61
64
  try {
@@ -63,12 +66,20 @@ export async function handleDeepResearch(params, options = {}) {
63
66
  }
64
67
  catch (error) {
65
68
  const err = classifyError(error);
66
- return createErrorResponse(`Failed to initialize research client: ${err.message}`, 'INIT_ERROR');
69
+ return {
70
+ content: formatError({
71
+ code: 'CLIENT_INIT_FAILED',
72
+ message: `Failed to initialize research client: ${err.message}`,
73
+ toolName: 'deep_research',
74
+ howToFix: ['Check OPENROUTER_API_KEY is set'],
75
+ }),
76
+ structuredContent: { error: true, message: `Failed to initialize: ${err.message}` },
77
+ };
67
78
  }
68
79
  const fileService = new FileAttachmentService();
69
80
  const results = [];
70
- // Process all questions in parallel - each handler NEVER throws
71
- const researchPromises = questions.map(async (q, index) => {
81
+ // Process questions with bounded concurrency (max 3 concurrent LLM calls)
82
+ const allResults = await pMap(questions, async (q, index) => {
72
83
  try {
73
84
  // Enhance question with file attachments if present
74
85
  let enhancedQuestion = q.question;
@@ -79,10 +90,10 @@ export async function handleDeepResearch(params, options = {}) {
79
90
  }
80
91
  catch {
81
92
  // If attachment processing fails, continue with original question
82
- console.error(`[Research] Failed to process attachments for question ${index + 1}`);
93
+ mcpLog('warning', `Failed to process attachments for question ${index + 1}`, 'research');
83
94
  }
84
95
  }
85
- // ResearchClient.research() now returns error in response instead of throwing
96
+ // ResearchClient.research() returns error in response instead of throwing
86
97
  const response = await client.research({
87
98
  question: enhancedQuestion,
88
99
  systemPrompt: SYSTEM_PROMPT,
@@ -108,7 +119,7 @@ export async function handleDeepResearch(params, options = {}) {
108
119
  };
109
120
  }
110
121
  catch (error) {
111
- // This catch is a safety net - ResearchClient should not throw
122
+ // Safety net - ResearchClient should not throw
112
123
  const structuredError = classifyError(error);
113
124
  return {
114
125
  question: q.question,
@@ -117,57 +128,57 @@ export async function handleDeepResearch(params, options = {}) {
117
128
  error: structuredError.message,
118
129
  };
119
130
  }
120
- });
121
- const allResults = await Promise.all(researchPromises);
131
+ }, 3); // Max 3 concurrent research calls
122
132
  results.push(...allResults);
123
- const executionTime = Date.now() - startTime;
124
- // Build statistics
133
+ // Build markdown output
125
134
  const successful = results.filter(r => r.success);
126
135
  const failed = results.filter(r => !r.success);
127
136
  const totalTokens = successful.reduce((sum, r) => sum + (r.tokensUsed || 0), 0);
128
- await safeLog(logger, sessionId, 'info', `Research completed: ${successful.length}/${questions.length} successful, ${totalTokens.toLocaleString()} tokens`, 'Research');
129
- // Build header using standardized formatter
130
- const headerInfo = formatBatchHeader({
131
- title: 'Deep Research Results',
137
+ const executionTime = Date.now() - startTime;
138
+ // Build 70/20/10 response
139
+ const batchHeader = formatBatchHeader({
140
+ title: `Deep Research Results`,
132
141
  totalItems: questions.length,
133
142
  successful: successful.length,
134
143
  failed: failed.length,
135
144
  tokensPerItem: tokensPerQuestion,
136
- totalBudget: TOKEN_BUDGETS.RESEARCH,
137
- extras: [`📊 ${totalTokens.toLocaleString()} tokens used`],
145
+ extras: {
146
+ 'Total tokens used': totalTokens.toLocaleString(),
147
+ },
138
148
  });
139
- // Build data section with individual results
140
- const dataSection = results.map((r, i) => {
141
- const questionPreview = r.question.substring(0, 100) + (r.question.length > 100 ? '...' : '');
142
- let section = `## Question ${i + 1}: ${questionPreview}\n\n`;
149
+ // Build questions data section
150
+ const questionsData = [];
151
+ for (let i = 0; i < results.length; i++) {
152
+ const r = results[i];
153
+ const preview = truncateText(r.question, 100);
154
+ questionsData.push(`## Question ${i + 1}: ${preview}\n`);
143
155
  if (r.success) {
144
- section += r.content + '\n\n';
156
+ questionsData.push(r.content);
145
157
  if (r.tokensUsed) {
146
- section += `_Tokens used: ${r.tokensUsed.toLocaleString()}_`;
158
+ questionsData.push(`\n*Tokens used: ${r.tokensUsed.toLocaleString()}*`);
147
159
  }
148
160
  }
149
161
  else {
150
- section += `**❌ Error:** ${r.error}`;
162
+ questionsData.push(`**❌ Error:** ${r.error}`);
151
163
  }
152
- return section;
153
- }).join('\n\n---\n\n');
154
- // Build next steps
155
- const nextSteps = [];
156
- if (successful.length > 0) {
157
- nextSteps.push('Follow up with more specific questions on interesting findings');
158
- nextSteps.push('Use `web_search()` to find additional sources on key topics');
159
- nextSteps.push('Use `scrape_links()` to get full content from cited URLs');
160
- }
161
- if (failed.length > 0) {
162
- nextSteps.push('Retry failed questions with simpler phrasing');
163
- nextSteps.push('Check API quota if multiple failures occurred');
164
+ questionsData.push('\n---\n');
164
165
  }
166
+ const nextSteps = [
167
+ successful.length > 0 ? 'Scrape mentioned sources: scrape_links(urls=[...extracted URLs...], use_llm=true)' : null,
168
+ failed.length > 0 ? 'Retry failed questions with more specific context' : null,
169
+ 'Search Reddit for community perspective: search_reddit(queries=[...related topics...])',
170
+ ].filter(Boolean);
165
171
  const formattedContent = formatSuccess({
166
- title: `Deep Research Results (${questions.length} questions)`,
167
- summary: `${headerInfo}\n\n**Execution Time:** ${formatDuration(executionTime)}`,
168
- data: dataSection,
172
+ title: `Research Complete (${successful.length}/${questions.length})`,
173
+ summary: batchHeader,
174
+ data: questionsData.join('\n'),
169
175
  nextSteps,
176
+ metadata: {
177
+ 'Execution time': formatDuration(executionTime),
178
+ 'Token budget': TOKEN_BUDGETS.RESEARCH.toLocaleString(),
179
+ },
170
180
  });
181
+ mcpLog('info', `Research completed: ${successful.length}/${questions.length} successful, ${totalTokens.toLocaleString()} tokens`, 'research');
171
182
  return {
172
183
  content: formattedContent,
173
184
  structuredContent: {
@@ -176,7 +187,6 @@ export async function handleDeepResearch(params, options = {}) {
176
187
  failed: failed.length,
177
188
  tokensPerQuestion,
178
189
  totalTokensUsed: totalTokens,
179
- executionTimeMs: executionTime,
180
190
  results,
181
191
  },
182
192
  };
@@ -1 +1 @@
1
- {"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,11 @@
3
3
  * Implements robust error handling that NEVER crashes the MCP server
4
4
  */
5
5
  import type { ScrapeLinksParams, ScrapeLinksOutput } from '../schemas/scrape-links.js';
6
- import { type ToolOptions } from './utils.js';
7
6
  /**
8
7
  * Handle scrape links request
9
8
  * NEVER throws - always returns a valid response with content and metadata
10
9
  */
11
- export declare function handleScrapeLinks(params: ScrapeLinksParams, options?: ToolOptions): Promise<{
10
+ export declare function handleScrapeLinks(params: ScrapeLinksParams): Promise<{
12
11
  content: string;
13
12
  structuredContent: ScrapeLinksOutput;
14
13
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAQvF,OAAO,EAEL,KAAK,WAAW,EAOjB,MAAM,YAAY,CAAC;AAapB;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAAE,CAAC,CA0OpE"}
1
+ {"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../src/tools/scrape.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAiCvF;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAoNpE"}