research-powerpack-mcp 3.4.8 → 3.6.0

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 (41) hide show
  1. package/dist/config/env.d.ts +75 -0
  2. package/dist/config/env.d.ts.map +1 -0
  3. package/dist/config/env.js +87 -0
  4. package/dist/config/env.js.map +1 -0
  5. package/dist/config/yaml/tools-enhanced.yaml +0 -0
  6. package/dist/index.js +3 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/services/llm-processor.js +0 -25
  9. package/dist/services/llm-processor.js.map +1 -1
  10. package/dist/tools/reddit.d.ts.map +1 -1
  11. package/dist/tools/reddit.js +76 -40
  12. package/dist/tools/reddit.js.map +1 -1
  13. package/dist/tools/research.d.ts +1 -6
  14. package/dist/tools/research.d.ts.map +1 -1
  15. package/dist/tools/research.js +63 -42
  16. package/dist/tools/research.js.map +1 -1
  17. package/dist/tools/scrape.d.ts +1 -6
  18. package/dist/tools/scrape.d.ts.map +1 -1
  19. package/dist/tools/scrape.js +53 -42
  20. package/dist/tools/scrape.js.map +1 -1
  21. package/dist/tools/search.d.ts +1 -6
  22. package/dist/tools/search.d.ts.map +1 -1
  23. package/dist/tools/search.js +26 -18
  24. package/dist/tools/search.js.map +1 -1
  25. package/dist/tools/utils.d.ts +13 -0
  26. package/dist/tools/utils.d.ts.map +1 -1
  27. package/dist/tools/utils.js +17 -0
  28. package/dist/tools/utils.js.map +1 -1
  29. package/dist/utils/logger.d.ts +32 -0
  30. package/dist/utils/logger.d.ts.map +1 -0
  31. package/dist/utils/logger.js +43 -0
  32. package/dist/utils/logger.js.map +1 -0
  33. package/dist/utils/mcp-logger.d.ts +8 -0
  34. package/dist/utils/mcp-logger.d.ts.map +1 -0
  35. package/dist/utils/mcp-logger.js +14 -0
  36. package/dist/utils/mcp-logger.js.map +1 -0
  37. package/dist/utils/response.d.ts +88 -0
  38. package/dist/utils/response.d.ts.map +1 -0
  39. package/dist/utils/response.js +151 -0
  40. package/dist/utils/response.js.map +1 -0
  41. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAMD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG9E;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAI1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAIR;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EAAE,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAQpB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,MAAM,CAMR"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,MAAM,EACN,OAAO,IAAI,aAAa,EACxB,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,UAAU,IAAI,gBAAgB,GACpC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,GACd,MAAM,sBAAsB,CAAC;AAM9B;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB,iCAAiC;;IAEjC,+BAA+B;;IAE/B,sCAAsC;;CAE9B,CAAC;AAMX;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAMD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG9E;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAI1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAIR;AAMD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EAAE,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAQpB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,MAAM,CAMR"}
@@ -2,6 +2,23 @@
2
2
  * Shared Tool Utilities
3
3
  * Extracted from individual handlers to eliminate duplication
4
4
  */
5
+ // Re-export from centralized modules
6
+ export { mcpLog, safeLog as safeLogSimple, createToolLogger, } from '../utils/logger.js';
7
+ export { formatSuccess, formatError, formatBatchHeader, formatList, formatDuration, truncateText, } from '../utils/response.js';
8
+ // ============================================================================
9
+ // Token Budget Constants
10
+ // ============================================================================
11
+ /**
12
+ * Centralized token budgets for all tools
13
+ */
14
+ export const TOKEN_BUDGETS = {
15
+ /** Deep research total budget */
16
+ RESEARCH: 32_000,
17
+ /** Web scraper total budget */
18
+ SCRAPER: 32_000,
19
+ /** Reddit comment budget per batch */
20
+ REDDIT_COMMENTS: 1_000,
21
+ };
5
22
  // ============================================================================
6
23
  // Logging Utilities
7
24
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * MCP-Compatible Logging Utility
3
+ *
4
+ * Uses stderr for logging to avoid polluting MCP protocol messages on stdout.
5
+ * All MCP servers MUST use stderr for debug/info/warning output.
6
+ */
7
+ export type LogLevel = 'debug' | 'info' | 'warning' | 'error';
8
+ /**
9
+ * Log message to stderr (MCP-compatible)
10
+ * @param level - Log level
11
+ * @param message - Message to log
12
+ * @param tool - Tool name for context
13
+ */
14
+ export declare function mcpLog(level: LogLevel, message: string, tool?: string): void;
15
+ /**
16
+ * Safe log that catches any errors (never crashes)
17
+ * @param level - Log level
18
+ * @param message - Message to log
19
+ * @param tool - Tool name for context
20
+ */
21
+ export declare function safeLog(level: LogLevel, message: string, tool?: string): void;
22
+ /**
23
+ * Create a bound logger for a specific tool
24
+ */
25
+ export declare function createToolLogger(tool: string): {
26
+ debug: (msg: string) => void;
27
+ info: (msg: string) => void;
28
+ warning: (msg: string) => void;
29
+ error: (msg: string) => void;
30
+ };
31
+ export type ToolLogger = ReturnType<typeof createToolLogger>;
32
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAI5E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAM7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM;iBAE5B,MAAM;gBACP,MAAM;mBACH,MAAM;iBACR,MAAM;EAEtB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * MCP-Compatible Logging Utility
3
+ *
4
+ * Uses stderr for logging to avoid polluting MCP protocol messages on stdout.
5
+ * All MCP servers MUST use stderr for debug/info/warning output.
6
+ */
7
+ /**
8
+ * Log message to stderr (MCP-compatible)
9
+ * @param level - Log level
10
+ * @param message - Message to log
11
+ * @param tool - Tool name for context
12
+ */
13
+ export function mcpLog(level, message, tool) {
14
+ const prefix = tool ? `[${tool}]` : '';
15
+ const levelPrefix = level === 'error' ? '❌' : level === 'warning' ? '⚠️' : level === 'debug' ? '🔍' : 'ℹ️';
16
+ console.error(`${levelPrefix} ${prefix} ${message}`);
17
+ }
18
+ /**
19
+ * Safe log that catches any errors (never crashes)
20
+ * @param level - Log level
21
+ * @param message - Message to log
22
+ * @param tool - Tool name for context
23
+ */
24
+ export function safeLog(level, message, tool) {
25
+ try {
26
+ mcpLog(level, message, tool);
27
+ }
28
+ catch {
29
+ // Swallow logging errors - never crash
30
+ }
31
+ }
32
+ /**
33
+ * Create a bound logger for a specific tool
34
+ */
35
+ export function createToolLogger(tool) {
36
+ return {
37
+ debug: (msg) => safeLog('debug', msg, tool),
38
+ info: (msg) => safeLog('info', msg, tool),
39
+ warning: (msg) => safeLog('warning', msg, tool),
40
+ error: (msg) => safeLog('error', msg, tool),
41
+ };
42
+ }
43
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,KAAe,EAAE,OAAe,EAAE,IAAa;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3G,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,KAAe,EAAE,OAAe,EAAE,IAAa;IACrE,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO;QACL,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;QACnD,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;QACjD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;KACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP SDK structured logging wrapper
3
+ * Sends log messages to MCP clients via server.sendLoggingMessage()
4
+ */
5
+ import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
+ export declare function initLogger(server: Server): void;
7
+ export declare function mcpLog(level: 'debug' | 'info' | 'warning' | 'error', message: string, logger?: string): void;
8
+ //# sourceMappingURL=mcp-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-logger.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAIxE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAG5G"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * MCP SDK structured logging wrapper
3
+ * Sends log messages to MCP clients via server.sendLoggingMessage()
4
+ */
5
+ let serverRef = null;
6
+ export function initLogger(server) {
7
+ serverRef = server;
8
+ }
9
+ export function mcpLog(level, message, logger) {
10
+ if (!serverRef)
11
+ return;
12
+ serverRef.sendLoggingMessage({ level, data: message, logger: logger ?? 'research-powerpack' }).catch(() => { });
13
+ }
14
+ //# sourceMappingURL=mcp-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-logger.js","sourceRoot":"","sources":["../../src/utils/mcp-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,IAAI,SAAS,GAAkB,IAAI,CAAC;AAEpC,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,SAAS,GAAG,MAAM,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAA6C,EAAE,OAAe,EAAE,MAAe;IACpG,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,SAAS,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACjH,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * MCP Response Formatters - 70/20/10 Pattern
3
+ *
4
+ * All tool responses should follow this structure:
5
+ * - 70% Summary: Key insights, status, metrics
6
+ * - 20% Data: Structured results (lists, tables)
7
+ * - 10% Next Steps: Actionable follow-up commands
8
+ */
9
+ export interface SuccessOptions {
10
+ /** Title/header for the response */
11
+ title: string;
12
+ /** Summary section (70% of content) */
13
+ summary: string;
14
+ /** Optional data section (20% of content) */
15
+ data?: string;
16
+ /** Optional next steps (10% of content) */
17
+ nextSteps?: string[];
18
+ /** Optional metadata footer */
19
+ metadata?: Record<string, string | number>;
20
+ }
21
+ /**
22
+ * Format a successful response using 70/20/10 pattern
23
+ */
24
+ export declare function formatSuccess(opts: SuccessOptions): string;
25
+ export interface ErrorOptions {
26
+ /** Error code (e.g., RATE_LIMITED, TIMEOUT) */
27
+ code: string;
28
+ /** Human-readable error message */
29
+ message: string;
30
+ /** Is this error retryable? */
31
+ retryable?: boolean;
32
+ /** How to fix the error */
33
+ howToFix?: string[];
34
+ /** Alternative actions */
35
+ alternatives?: string[];
36
+ /** Tool name for context */
37
+ toolName?: string;
38
+ }
39
+ /**
40
+ * Format an error response with recovery guidance
41
+ */
42
+ export declare function formatError(opts: ErrorOptions): string;
43
+ export interface BatchHeaderOptions {
44
+ /** Batch operation title */
45
+ title: string;
46
+ /** Total items attempted */
47
+ totalItems: number;
48
+ /** Successfully processed count */
49
+ successful: number;
50
+ /** Failed count */
51
+ failed: number;
52
+ /** Optional tokens per item */
53
+ tokensPerItem?: number;
54
+ /** Optional batch count */
55
+ batches?: number;
56
+ /** Extra stats to include */
57
+ extras?: Record<string, string | number>;
58
+ }
59
+ /**
60
+ * Format a batch operation header with stats
61
+ */
62
+ export declare function formatBatchHeader(opts: BatchHeaderOptions): string;
63
+ export interface ListItem {
64
+ /** Item title/name */
65
+ title: string;
66
+ /** Optional description */
67
+ description?: string;
68
+ /** Optional metadata */
69
+ meta?: string;
70
+ /** Optional URL */
71
+ url?: string;
72
+ }
73
+ /**
74
+ * Format a numbered list with optional metadata
75
+ */
76
+ export declare function formatList(items: ListItem[], options?: {
77
+ maxItems?: number;
78
+ numbered?: boolean;
79
+ }): string;
80
+ /**
81
+ * Format duration in human-readable form
82
+ */
83
+ export declare function formatDuration(ms: number): string;
84
+ /**
85
+ * Truncate text to max length with ellipsis
86
+ */
87
+ export declare function truncateText(text: string, maxLength: number): string;
88
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAoC1D;AAMD,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA4BtD;AAMD,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CA8BlE;AAMD,MAAM,WAAW,QAAQ;IACvB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CA0BzG;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAIjD;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGpE"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * MCP Response Formatters - 70/20/10 Pattern
3
+ *
4
+ * All tool responses should follow this structure:
5
+ * - 70% Summary: Key insights, status, metrics
6
+ * - 20% Data: Structured results (lists, tables)
7
+ * - 10% Next Steps: Actionable follow-up commands
8
+ */
9
+ /**
10
+ * Format a successful response using 70/20/10 pattern
11
+ */
12
+ export function formatSuccess(opts) {
13
+ const parts = [];
14
+ // Title
15
+ parts.push(`✓ ${opts.title}`);
16
+ parts.push('');
17
+ // Summary (70%)
18
+ parts.push(opts.summary);
19
+ // Data section (20%)
20
+ if (opts.data) {
21
+ parts.push('');
22
+ parts.push('---');
23
+ parts.push(opts.data);
24
+ }
25
+ // Next steps (10%)
26
+ if (opts.nextSteps?.length) {
27
+ parts.push('');
28
+ parts.push('---');
29
+ parts.push('**Next Steps:**');
30
+ opts.nextSteps.forEach(step => parts.push(`→ ${step}`));
31
+ }
32
+ // Metadata footer
33
+ if (opts.metadata && Object.keys(opts.metadata).length > 0) {
34
+ parts.push('');
35
+ parts.push('---');
36
+ const metaStr = Object.entries(opts.metadata)
37
+ .map(([k, v]) => `${k}: ${v}`)
38
+ .join(' | ');
39
+ parts.push(`*${metaStr}*`);
40
+ }
41
+ return parts.join('\n');
42
+ }
43
+ /**
44
+ * Format an error response with recovery guidance
45
+ */
46
+ export function formatError(opts) {
47
+ const parts = [];
48
+ // Error header
49
+ const prefix = opts.toolName ? `[${opts.toolName}] ` : '';
50
+ parts.push(`❌ ${prefix}${opts.code}: ${opts.message}`);
51
+ // Retryable hint
52
+ if (opts.retryable) {
53
+ parts.push('');
54
+ parts.push('*This error is retryable. Wait a moment and try again.*');
55
+ }
56
+ // How to fix
57
+ if (opts.howToFix?.length) {
58
+ parts.push('');
59
+ parts.push('**How to Fix:**');
60
+ opts.howToFix.forEach((step, i) => parts.push(`${i + 1}. ${step}`));
61
+ }
62
+ // Alternatives
63
+ if (opts.alternatives?.length) {
64
+ parts.push('');
65
+ parts.push('**Alternatives:**');
66
+ opts.alternatives.forEach(alt => parts.push(`• ${alt}`));
67
+ }
68
+ return parts.join('\n');
69
+ }
70
+ /**
71
+ * Format a batch operation header with stats
72
+ */
73
+ export function formatBatchHeader(opts) {
74
+ const parts = [];
75
+ // Title with emoji based on success rate
76
+ const successRate = opts.totalItems > 0 ? opts.successful / opts.totalItems : 0;
77
+ const emoji = successRate === 1 ? '✓' : successRate >= 0.5 ? '⚠️' : '❌';
78
+ parts.push(`${emoji} ${opts.title}`);
79
+ parts.push('');
80
+ // Stats
81
+ parts.push(`• Total: ${opts.totalItems}`);
82
+ parts.push(`• Successful: ${opts.successful}`);
83
+ if (opts.failed > 0) {
84
+ parts.push(`• Failed: ${opts.failed}`);
85
+ }
86
+ if (opts.tokensPerItem) {
87
+ parts.push(`• Tokens/item: ~${opts.tokensPerItem.toLocaleString()}`);
88
+ }
89
+ if (opts.batches) {
90
+ parts.push(`• Batches: ${opts.batches}`);
91
+ }
92
+ // Extra stats
93
+ if (opts.extras) {
94
+ Object.entries(opts.extras).forEach(([key, val]) => {
95
+ parts.push(`• ${key}: ${val}`);
96
+ });
97
+ }
98
+ return parts.join('\n');
99
+ }
100
+ /**
101
+ * Format a numbered list with optional metadata
102
+ */
103
+ export function formatList(items, options) {
104
+ const max = options?.maxItems ?? 20;
105
+ const numbered = options?.numbered ?? true;
106
+ const toShow = items.slice(0, max);
107
+ const remaining = items.length - max;
108
+ const lines = toShow.map((item, i) => {
109
+ const prefix = numbered ? `${i + 1}. ` : '• ';
110
+ let line = `${prefix}**${item.title}**`;
111
+ if (item.meta) {
112
+ line += ` (${item.meta})`;
113
+ }
114
+ if (item.description) {
115
+ line += `\n ${item.description}`;
116
+ }
117
+ if (item.url) {
118
+ line += `\n ${item.url}`;
119
+ }
120
+ return line;
121
+ });
122
+ if (remaining > 0) {
123
+ lines.push(`\n*...and ${remaining} more*`);
124
+ }
125
+ return lines.join('\n');
126
+ }
127
+ // ============================================================================
128
+ // Duration Formatter
129
+ // ============================================================================
130
+ /**
131
+ * Format duration in human-readable form
132
+ */
133
+ export function formatDuration(ms) {
134
+ if (ms < 1000)
135
+ return `${ms}ms`;
136
+ if (ms < 60000)
137
+ return `${(ms / 1000).toFixed(1)}s`;
138
+ return `${(ms / 60000).toFixed(1)}m`;
139
+ }
140
+ // ============================================================================
141
+ // Text Truncation
142
+ // ============================================================================
143
+ /**
144
+ * Truncate text to max length with ellipsis
145
+ */
146
+ export function truncateText(text, maxLength) {
147
+ if (text.length <= maxLength)
148
+ return text;
149
+ return text.slice(0, maxLength - 3) + '...';
150
+ }
151
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "research-powerpack-mcp",
3
- "version": "3.4.8",
3
+ "version": "3.6.0",
4
4
  "description": "The ultimate research MCP toolkit: Reddit mining, web search with CTR aggregation, AI-powered deep research, and intelligent web scraping - all in one modular package",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",