research-powerpack-mcp 3.3.1 → 3.3.4

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 (71) hide show
  1. package/README.md +43 -0
  2. package/dist/clients/reddit.d.ts +4 -3
  3. package/dist/clients/reddit.d.ts.map +1 -1
  4. package/dist/clients/research.d.ts +12 -2
  5. package/dist/clients/research.d.ts.map +1 -1
  6. package/dist/clients/research.js +108 -36
  7. package/dist/clients/research.js.map +1 -1
  8. package/dist/clients/scraper.d.ts +4 -3
  9. package/dist/clients/scraper.d.ts.map +1 -1
  10. package/dist/clients/search.d.ts +3 -2
  11. package/dist/clients/search.d.ts.map +1 -1
  12. package/dist/config/index.d.ts +3 -2
  13. package/dist/config/index.d.ts.map +1 -1
  14. package/dist/config/index.js +3 -3
  15. package/dist/config/index.js.map +1 -1
  16. package/dist/config/loader.d.ts +40 -0
  17. package/dist/config/loader.d.ts.map +1 -0
  18. package/dist/config/loader.js +300 -0
  19. package/dist/config/loader.js.map +1 -0
  20. package/dist/config/types.d.ts +80 -0
  21. package/dist/config/types.d.ts.map +1 -0
  22. package/dist/config/types.js +6 -0
  23. package/dist/config/types.js.map +1 -0
  24. package/dist/config/yaml/tools.yaml +1308 -0
  25. package/dist/index.js +13 -122
  26. package/dist/index.js.map +1 -1
  27. package/dist/schemas/deep-research.d.ts +0 -37
  28. package/dist/schemas/deep-research.d.ts.map +1 -1
  29. package/dist/schemas/deep-research.js +2 -1
  30. package/dist/schemas/deep-research.js.map +1 -1
  31. package/dist/schemas/scrape-links.d.ts +0 -6
  32. package/dist/schemas/scrape-links.d.ts.map +1 -1
  33. package/dist/schemas/scrape-links.js +1 -1
  34. package/dist/schemas/scrape-links.js.map +1 -1
  35. package/dist/schemas/web-search.d.ts +0 -3
  36. package/dist/schemas/web-search.d.ts.map +1 -1
  37. package/dist/schemas/web-search.js +3 -3
  38. package/dist/schemas/web-search.js.map +1 -1
  39. package/dist/services/llm-processor.d.ts +0 -10
  40. package/dist/services/llm-processor.d.ts.map +1 -1
  41. package/dist/services/llm-processor.js +2 -1
  42. package/dist/services/llm-processor.js.map +1 -1
  43. package/dist/tools/definitions.d.ts +12 -62
  44. package/dist/tools/definitions.d.ts.map +1 -1
  45. package/dist/tools/definitions.js +13 -121
  46. package/dist/tools/definitions.js.map +1 -1
  47. package/dist/tools/reddit.d.ts +2 -1
  48. package/dist/tools/reddit.d.ts.map +1 -1
  49. package/dist/tools/reddit.js +3 -3
  50. package/dist/tools/reddit.js.map +1 -1
  51. package/dist/tools/registry.d.ts +71 -0
  52. package/dist/tools/registry.d.ts.map +1 -0
  53. package/dist/tools/registry.js +238 -0
  54. package/dist/tools/registry.js.map +1 -0
  55. package/dist/tools/utils.d.ts +92 -0
  56. package/dist/tools/utils.d.ts.map +1 -0
  57. package/dist/tools/utils.js +142 -0
  58. package/dist/tools/utils.js.map +1 -0
  59. package/dist/utils/errors.d.ts +3 -51
  60. package/dist/utils/errors.d.ts.map +1 -1
  61. package/dist/utils/errors.js +10 -7
  62. package/dist/utils/errors.js.map +1 -1
  63. package/dist/utils/url-aggregator.d.ts +5 -4
  64. package/dist/utils/url-aggregator.d.ts.map +1 -1
  65. package/dist/utils/url-aggregator.js +30 -1
  66. package/dist/utils/url-aggregator.js.map +1 -1
  67. package/dist/version.d.ts +0 -10
  68. package/dist/version.d.ts.map +1 -1
  69. package/dist/version.js +1 -10
  70. package/dist/version.js.map +1 -1
  71. package/package.json +3 -2
@@ -0,0 +1,300 @@
1
+ /**
2
+ * YAML Configuration Loader
3
+ * Loads tools.yaml and generates MCP-compatible tool definitions
4
+ */
5
+ import { readFileSync } from 'fs';
6
+ import { fileURLToPath } from 'url';
7
+ import { dirname, join } from 'path';
8
+ import { parse as parseYaml } from 'yaml';
9
+ import { z } from 'zod';
10
+ import { zodToJsonSchema } from 'zod-to-json-schema';
11
+ // Get directory of this file for relative YAML path
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = dirname(__filename);
14
+ // ============================================================================
15
+ // YAML to Zod Schema Conversion
16
+ // ============================================================================
17
+ /**
18
+ * Convert YAML validation rules to Zod string schema
19
+ */
20
+ function applyStringValidation(schema, validation) {
21
+ if (!validation)
22
+ return schema;
23
+ let result = schema;
24
+ if (validation.minLength !== undefined)
25
+ result = result.min(validation.minLength);
26
+ if (validation.maxLength !== undefined)
27
+ result = result.max(validation.maxLength);
28
+ if (validation.pattern)
29
+ result = result.regex(new RegExp(validation.pattern));
30
+ if (validation.format === 'uri')
31
+ result = result.url();
32
+ if (validation.format === 'email')
33
+ result = result.email();
34
+ if (validation.format === 'uuid')
35
+ result = result.uuid();
36
+ return result;
37
+ }
38
+ /**
39
+ * Convert YAML validation rules to Zod number schema
40
+ */
41
+ function applyNumberValidation(schema, validation) {
42
+ if (!validation)
43
+ return schema;
44
+ let result = schema;
45
+ if (validation.min !== undefined)
46
+ result = result.min(validation.min);
47
+ if (validation.max !== undefined)
48
+ result = result.max(validation.max);
49
+ if (validation.int)
50
+ result = result.int();
51
+ if (validation.positive)
52
+ result = result.positive();
53
+ if (validation.negative)
54
+ result = result.negative();
55
+ return result;
56
+ }
57
+ /**
58
+ * Convert YAML validation rules to Zod array schema
59
+ */
60
+ function applyArrayValidation(schema, validation) {
61
+ if (!validation)
62
+ return schema;
63
+ let result = schema;
64
+ if (validation.minItems !== undefined)
65
+ result = result.min(validation.minItems);
66
+ if (validation.maxItems !== undefined)
67
+ result = result.max(validation.maxItems);
68
+ return result;
69
+ }
70
+ /**
71
+ * Recursively convert YAML parameter to Zod schema
72
+ */
73
+ function yamlParamToZod(param) {
74
+ let schema;
75
+ switch (param.type) {
76
+ case 'string': {
77
+ let strSchema = z.string();
78
+ strSchema = applyStringValidation(strSchema, param.validation);
79
+ if (param.description)
80
+ strSchema = strSchema.describe(param.description);
81
+ schema = strSchema;
82
+ break;
83
+ }
84
+ case 'number': {
85
+ let numSchema = z.number();
86
+ numSchema = applyNumberValidation(numSchema, param.validation);
87
+ if (param.description)
88
+ numSchema = numSchema.describe(param.description);
89
+ schema = numSchema;
90
+ break;
91
+ }
92
+ case 'boolean': {
93
+ let boolSchema = z.boolean();
94
+ if (param.description)
95
+ boolSchema = boolSchema.describe(param.description);
96
+ schema = boolSchema;
97
+ break;
98
+ }
99
+ case 'array': {
100
+ if (!param.items) {
101
+ throw new Error('Array parameter must have items definition');
102
+ }
103
+ const itemSchema = yamlParamToZod(param.items);
104
+ let arrSchema = z.array(itemSchema);
105
+ arrSchema = applyArrayValidation(arrSchema, param.validation);
106
+ if (param.description)
107
+ arrSchema = arrSchema.describe(param.description);
108
+ schema = arrSchema;
109
+ break;
110
+ }
111
+ case 'object': {
112
+ if (!param.properties) {
113
+ throw new Error('Object parameter must have properties definition');
114
+ }
115
+ const shape = {};
116
+ for (const [key, propDef] of Object.entries(param.properties)) {
117
+ let propSchema = yamlParamToZod(propDef);
118
+ if (propDef.required === false) {
119
+ propSchema = propSchema.optional();
120
+ }
121
+ shape[key] = propSchema;
122
+ }
123
+ let objSchema = z.object(shape);
124
+ if (param.description)
125
+ objSchema = objSchema.describe(param.description);
126
+ schema = objSchema;
127
+ break;
128
+ }
129
+ default:
130
+ throw new Error(`Unknown parameter type: ${param.type}`);
131
+ }
132
+ // Apply optional/default
133
+ if (param.required === false && param.default !== undefined) {
134
+ schema = schema.default(param.default);
135
+ }
136
+ else if (param.required === false) {
137
+ schema = schema.optional();
138
+ }
139
+ return schema;
140
+ }
141
+ /**
142
+ * Convert YAML parameters to Zod object schema
143
+ */
144
+ function yamlParamsToZodSchema(params) {
145
+ const shape = {};
146
+ for (const [key, param] of Object.entries(params)) {
147
+ let schema = yamlParamToZod(param);
148
+ // Note: required is handled in yamlParamToZod via optional()
149
+ shape[key] = schema;
150
+ }
151
+ return z.object(shape);
152
+ }
153
+ /**
154
+ * Convert Zod schema to JSON Schema for MCP inputSchema
155
+ */
156
+ function zodToMcpInputSchema(schema) {
157
+ const jsonSchema = zodToJsonSchema(schema, { $refStrategy: 'none' });
158
+ // Extract properties and required from JSON Schema
159
+ if (typeof jsonSchema === 'object' && jsonSchema !== null) {
160
+ const obj = jsonSchema;
161
+ return {
162
+ type: 'object',
163
+ properties: obj.properties || {},
164
+ required: obj.required,
165
+ };
166
+ }
167
+ return { type: 'object', properties: {} };
168
+ }
169
+ // ============================================================================
170
+ // Tool Loading
171
+ // ============================================================================
172
+ /**
173
+ * Load and parse tools.yaml
174
+ */
175
+ export function loadYamlConfig() {
176
+ const yamlPath = join(__dirname, 'yaml', 'tools.yaml');
177
+ const yamlContent = readFileSync(yamlPath, 'utf8');
178
+ return parseYaml(yamlContent);
179
+ }
180
+ /**
181
+ * Convert a single YAML tool config to MCP Tool
182
+ * For tools with inline parameters only
183
+ */
184
+ function yamlToolToMcpTool(toolConfig) {
185
+ if (!toolConfig.parameters) {
186
+ throw new Error(`Tool ${toolConfig.name} must have parameters or useZodSchema`);
187
+ }
188
+ const zodSchema = yamlParamsToZodSchema(toolConfig.parameters);
189
+ const inputSchema = zodToMcpInputSchema(zodSchema);
190
+ return {
191
+ name: toolConfig.name,
192
+ description: toolConfig.description.trim(),
193
+ inputSchema,
194
+ category: toolConfig.category,
195
+ capability: toolConfig.capability,
196
+ useZodSchema: false,
197
+ };
198
+ }
199
+ /**
200
+ * Create placeholder for tools using existing Zod schemas
201
+ * These will be enriched with actual schemas at runtime
202
+ */
203
+ function createZodSchemaPlaceholder(toolConfig) {
204
+ return {
205
+ name: toolConfig.name,
206
+ description: toolConfig.description.trim(),
207
+ inputSchema: { type: 'object', properties: {} }, // Placeholder
208
+ category: toolConfig.category,
209
+ capability: toolConfig.capability,
210
+ useZodSchema: true,
211
+ zodSchemaRef: toolConfig.zodSchemaRef,
212
+ };
213
+ }
214
+ /**
215
+ * Load all tools from YAML configuration
216
+ */
217
+ export function loadToolsFromYaml() {
218
+ const config = loadYamlConfig();
219
+ return config.tools.map((toolConfig) => {
220
+ if (toolConfig.useZodSchema) {
221
+ // Tool uses existing Zod schema - return placeholder
222
+ return createZodSchemaPlaceholder(toolConfig);
223
+ }
224
+ else {
225
+ // Tool has inline parameters - generate schema from YAML
226
+ return yamlToolToMcpTool(toolConfig);
227
+ }
228
+ });
229
+ }
230
+ /**
231
+ * Get tool configuration by name
232
+ */
233
+ export function getToolConfig(name) {
234
+ const config = loadYamlConfig();
235
+ return config.tools.find((t) => t.name === name);
236
+ }
237
+ /**
238
+ * Get schema descriptions for a tool (for injecting into existing Zod schemas)
239
+ */
240
+ export function getSchemaDescriptions(name) {
241
+ const tool = getToolConfig(name);
242
+ return tool?.schemaDescriptions;
243
+ }
244
+ // ============================================================================
245
+ // Zod Schema Registry (for tools using existing schemas)
246
+ // ============================================================================
247
+ import { deepResearchParamsSchema } from '../schemas/deep-research.js';
248
+ import { scrapeLinksParamsSchema } from '../schemas/scrape-links.js';
249
+ import { webSearchParamsSchema } from '../schemas/web-search.js';
250
+ /**
251
+ * Registry of existing Zod schemas for complex tools
252
+ */
253
+ const zodSchemaRegistry = {
254
+ deepResearchParamsSchema,
255
+ scrapeLinksParamsSchema,
256
+ webSearchParamsSchema,
257
+ };
258
+ /**
259
+ * Get Zod schema by reference name
260
+ */
261
+ export function getZodSchemaByRef(ref) {
262
+ return zodSchemaRegistry[ref];
263
+ }
264
+ /**
265
+ * Generate complete MCP tools list with all schemas resolved
266
+ */
267
+ export function generateMcpTools() {
268
+ const loadedTools = loadToolsFromYaml();
269
+ return loadedTools.map((tool) => {
270
+ if (tool.useZodSchema && tool.zodSchemaRef) {
271
+ // Resolve the actual Zod schema
272
+ const schema = getZodSchemaByRef(tool.zodSchemaRef);
273
+ if (!schema) {
274
+ console.error(`[Loader] Schema not found: ${tool.zodSchemaRef}`);
275
+ return {
276
+ name: tool.name,
277
+ description: tool.description,
278
+ inputSchema: { type: 'object', properties: {} },
279
+ };
280
+ }
281
+ const inputSchema = zodToMcpInputSchema(schema);
282
+ return {
283
+ name: tool.name,
284
+ description: tool.description,
285
+ inputSchema,
286
+ };
287
+ }
288
+ // Tool already has generated inputSchema
289
+ return {
290
+ name: tool.name,
291
+ description: tool.description,
292
+ inputSchema: tool.inputSchema,
293
+ };
294
+ });
295
+ }
296
+ // ============================================================================
297
+ // Exports
298
+ // ============================================================================
299
+ export { yamlParamsToZodSchema, yamlParamToZod };
300
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * TypeScript interfaces for YAML tool configuration
3
+ * Matches structure defined in yaml/tools.yaml
4
+ */
5
+ import type { Capabilities } from './index.js';
6
+ /**
7
+ * Validation rules for parameters
8
+ */
9
+ export interface YamlValidation {
10
+ minLength?: number;
11
+ maxLength?: number;
12
+ pattern?: string;
13
+ format?: 'uri' | 'email' | 'uuid';
14
+ min?: number;
15
+ max?: number;
16
+ int?: boolean;
17
+ positive?: boolean;
18
+ negative?: boolean;
19
+ minItems?: number;
20
+ maxItems?: number;
21
+ nonempty?: boolean;
22
+ }
23
+ /**
24
+ * Parameter definition in YAML
25
+ */
26
+ export interface YamlParameter {
27
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object';
28
+ required?: boolean;
29
+ default?: unknown;
30
+ description?: string;
31
+ validation?: YamlValidation;
32
+ items?: YamlParameter;
33
+ properties?: Record<string, YamlParameter>;
34
+ }
35
+ /**
36
+ * Tool definition in YAML
37
+ */
38
+ export interface YamlToolConfig {
39
+ name: string;
40
+ category?: string;
41
+ capability?: keyof Capabilities;
42
+ description: string;
43
+ parameters?: Record<string, YamlParameter>;
44
+ useZodSchema?: boolean;
45
+ zodSchemaRef?: string;
46
+ schemaDescriptions?: Record<string, string>;
47
+ }
48
+ /**
49
+ * Root YAML configuration structure
50
+ */
51
+ export interface YamlConfig {
52
+ version: string;
53
+ metadata: {
54
+ name: string;
55
+ description: string;
56
+ };
57
+ tools: YamlToolConfig[];
58
+ }
59
+ /**
60
+ * MCP Tool definition (matches SDK)
61
+ */
62
+ export interface McpTool {
63
+ name: string;
64
+ description: string;
65
+ inputSchema: {
66
+ type: 'object';
67
+ properties: Record<string, unknown>;
68
+ required?: string[];
69
+ };
70
+ }
71
+ /**
72
+ * Loaded tool with additional metadata
73
+ */
74
+ export interface LoadedTool extends McpTool {
75
+ category?: string;
76
+ capability?: keyof Capabilities;
77
+ useZodSchema?: boolean;
78
+ zodSchemaRef?: string;
79
+ }
80
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,cAAc;IAE7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAGlC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,cAAc,CAAC;IAG5B,KAAK,CAAC,EAAE,aAAa,CAAC;IAGtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,YAAY,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAG3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,YAAY,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TypeScript interfaces for YAML tool configuration
3
+ * Matches structure defined in yaml/tools.yaml
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}