@bulkpublishing/mcp-server 1.2.1 → 1.2.3
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.
package/dist/tools/research.d.ts
CHANGED
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
* BPAI MCP Server — Research Tool
|
|
3
3
|
*
|
|
4
4
|
* MCP tool handler for research_topic:
|
|
5
|
-
* Uses
|
|
6
|
-
*
|
|
5
|
+
* Uses provider-specific web search capabilities to fetch real-time research
|
|
6
|
+
* data with citations. Each provider has its own grounding/search mechanism:
|
|
7
|
+
* - Perplexity: sonar-pro with native citations
|
|
8
|
+
* - OpenAI: gpt-4o-search-preview with web_search_options
|
|
9
|
+
* - Grok: grok-3 with web_search tool + return_citations
|
|
10
|
+
* - Gemini: gemini-2.5-flash with google_search grounding
|
|
11
|
+
* - DeepSeek: deepseek-chat (no native search, extracts URLs from output)
|
|
7
12
|
*
|
|
8
13
|
* API keys are loaded from the authenticated user's BPAI account.
|
|
9
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoRzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QAyGtD"}
|
package/dist/tools/research.js
CHANGED
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
* BPAI MCP Server — Research Tool
|
|
3
3
|
*
|
|
4
4
|
* MCP tool handler for research_topic:
|
|
5
|
-
* Uses
|
|
6
|
-
*
|
|
5
|
+
* Uses provider-specific web search capabilities to fetch real-time research
|
|
6
|
+
* data with citations. Each provider has its own grounding/search mechanism:
|
|
7
|
+
* - Perplexity: sonar-pro with native citations
|
|
8
|
+
* - OpenAI: gpt-4o-search-preview with web_search_options
|
|
9
|
+
* - Grok: grok-3 with web_search tool + return_citations
|
|
10
|
+
* - Gemini: gemini-2.5-flash with google_search grounding
|
|
11
|
+
* - DeepSeek: deepseek-chat (no native search, extracts URLs from output)
|
|
7
12
|
*
|
|
8
13
|
* API keys are loaded from the authenticated user's BPAI account.
|
|
9
14
|
*/
|
|
@@ -11,6 +16,267 @@ import { z } from 'zod';
|
|
|
11
16
|
import { generateContent } from '../ai/engine.js';
|
|
12
17
|
import { RESEARCH_PROMPT } from '../ai/prompts.js';
|
|
13
18
|
import { getUserContext, getApiKey } from '../auth/context.js';
|
|
19
|
+
// ─── Research Prompts ─────────────────────────────────────────────────────────
|
|
20
|
+
const RESEARCH_SYSTEM = `You are an expert research assistant. Your goal is to gather the most recent, factual, and data-backed information on the user's topic. Focus on statistics, recent trends (2025-2026), and authoritative sources.
|
|
21
|
+
|
|
22
|
+
IMPORTANT: When citing sources, use inline numbered citations like [1], [2], [3] etc. The actual URLs will be provided separately.`;
|
|
23
|
+
function buildResearchPrompt(topic, focus) {
|
|
24
|
+
const focusBlock = focus ? `\n\nFocus specifically on: ${focus}` : '';
|
|
25
|
+
return `Research Topic: "${topic}"${focusBlock}
|
|
26
|
+
|
|
27
|
+
Provide a comprehensive research summary including:
|
|
28
|
+
1. Key statistics and data points (cite with [1], [2], etc.)
|
|
29
|
+
2. Recent trends and developments (2025-2026 data preferred)
|
|
30
|
+
3. Common user pain points and questions
|
|
31
|
+
4. Competitor analysis or market landscape
|
|
32
|
+
|
|
33
|
+
CITATION RULES:
|
|
34
|
+
- Use numbered citations [1], [2], [3] for ALL statistics, percentages, and factual claims
|
|
35
|
+
- Prefer authoritative sources: .gov, .edu, research institutions, major publications
|
|
36
|
+
- Avoid citing competitor businesses or e-commerce sites
|
|
37
|
+
|
|
38
|
+
Format the output as clear, bulleted text with inline citations.`;
|
|
39
|
+
}
|
|
40
|
+
// ─── Provider-Specific Research Functions ─────────────────────────────────────
|
|
41
|
+
/**
|
|
42
|
+
* Gemini Grounded Search — uses google_search tool for real web grounding.
|
|
43
|
+
* Uses gemini-2.5-flash by default because 3-preview models 503 persistently
|
|
44
|
+
* on grounding calls. Retries with exponential backoff on transient errors.
|
|
45
|
+
*/
|
|
46
|
+
async function researchWithGemini(topic, focus, keys) {
|
|
47
|
+
const apiKey = keys.gemini;
|
|
48
|
+
if (!apiKey)
|
|
49
|
+
throw new Error('Gemini API Key missing.');
|
|
50
|
+
const MAX_RETRIES = 3;
|
|
51
|
+
const BASE_DELAY_MS = 1500;
|
|
52
|
+
// Cheapest-first grounding models: 3-flash ($0.50/3.00) → 2.5-flash → 2.5-pro
|
|
53
|
+
const models = ['gemini-3-flash-preview', 'gemini-2.5-flash', 'gemini-2.5-pro'];
|
|
54
|
+
let lastError = '';
|
|
55
|
+
const userPrompt = buildResearchPrompt(topic, focus);
|
|
56
|
+
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
|
|
57
|
+
const model = models[attempt] || models[0];
|
|
58
|
+
if (attempt > 0) {
|
|
59
|
+
const delay = BASE_DELAY_MS * Math.pow(2, attempt - 1);
|
|
60
|
+
console.error(`[Gemini Research] Retry ${attempt}/${MAX_RETRIES - 1} in ${delay}ms (model: ${model})`);
|
|
61
|
+
await new Promise(r => setTimeout(r, delay));
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${apiKey}`;
|
|
65
|
+
const response = await fetch(url, {
|
|
66
|
+
method: 'POST',
|
|
67
|
+
headers: { 'Content-Type': 'application/json' },
|
|
68
|
+
signal: AbortSignal.timeout(120_000),
|
|
69
|
+
body: JSON.stringify({
|
|
70
|
+
contents: [{
|
|
71
|
+
parts: [{ text: `${RESEARCH_SYSTEM}\n\n${userPrompt}` }]
|
|
72
|
+
}],
|
|
73
|
+
tools: [{ google_search: {} }],
|
|
74
|
+
generationConfig: {
|
|
75
|
+
temperature: 0.2,
|
|
76
|
+
maxOutputTokens: 8192,
|
|
77
|
+
},
|
|
78
|
+
}),
|
|
79
|
+
});
|
|
80
|
+
if (!response.ok) {
|
|
81
|
+
const errText = await response.text().catch(() => '');
|
|
82
|
+
let errMsg = `Gemini API Error ${response.status}: ${response.statusText}`;
|
|
83
|
+
try {
|
|
84
|
+
const j = JSON.parse(errText);
|
|
85
|
+
if (j?.error?.message)
|
|
86
|
+
errMsg = j.error.message;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
if (errText)
|
|
90
|
+
errMsg += ` — ${errText.substring(0, 200)}`;
|
|
91
|
+
}
|
|
92
|
+
const isTransient = response.status === 503
|
|
93
|
+
|| errMsg.toLowerCase().includes('deadline expired')
|
|
94
|
+
|| errMsg.toLowerCase().includes('unavailable');
|
|
95
|
+
if (isTransient && attempt < MAX_RETRIES - 1) {
|
|
96
|
+
lastError = errMsg;
|
|
97
|
+
console.error(`[Gemini Research] Transient error (attempt ${attempt + 1}): ${errMsg}`);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
throw new Error(errMsg);
|
|
101
|
+
}
|
|
102
|
+
const data = await response.json();
|
|
103
|
+
const parts = data.candidates?.[0]?.content?.parts;
|
|
104
|
+
const text = parts?.map((p) => p.text).filter(Boolean).join('\n') || '';
|
|
105
|
+
// Extract grounding citations from groundingMetadata
|
|
106
|
+
const citations = [];
|
|
107
|
+
const groundingMeta = data.candidates?.[0]?.groundingMetadata;
|
|
108
|
+
if (groundingMeta?.groundingChunks) {
|
|
109
|
+
for (const chunk of groundingMeta.groundingChunks) {
|
|
110
|
+
if (chunk.web?.uri && !citations.includes(chunk.web.uri)) {
|
|
111
|
+
citations.push(chunk.web.uri);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (attempt > 0)
|
|
116
|
+
console.error(`[Gemini Research] Succeeded on retry ${attempt}`);
|
|
117
|
+
return { text, citations, model };
|
|
118
|
+
}
|
|
119
|
+
catch (e) {
|
|
120
|
+
const isNetworkTransient = e.name === 'TimeoutError' || e.message?.includes('Failed to fetch');
|
|
121
|
+
if (isNetworkTransient && attempt < MAX_RETRIES - 1) {
|
|
122
|
+
lastError = e.message;
|
|
123
|
+
console.error(`[Gemini Research] Network error (attempt ${attempt + 1}): ${e.message}`);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
throw e;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
throw new Error(`Gemini Grounded Search failed after ${MAX_RETRIES} retries. Last error: ${lastError}`);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* OpenAI Web Search — uses gpt-4o-search-preview with web_search_options
|
|
133
|
+
*/
|
|
134
|
+
async function researchWithOpenAI(topic, focus, keys) {
|
|
135
|
+
const apiKey = keys.openai;
|
|
136
|
+
if (!apiKey)
|
|
137
|
+
throw new Error('OpenAI API Key missing.');
|
|
138
|
+
const model = 'gpt-4o-search-preview';
|
|
139
|
+
const response = await fetch('https://api.openai.com/v1/chat/completions', {
|
|
140
|
+
method: 'POST',
|
|
141
|
+
headers: {
|
|
142
|
+
'Content-Type': 'application/json',
|
|
143
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
144
|
+
},
|
|
145
|
+
body: JSON.stringify({
|
|
146
|
+
model,
|
|
147
|
+
messages: [
|
|
148
|
+
{ role: 'system', content: RESEARCH_SYSTEM },
|
|
149
|
+
{ role: 'user', content: buildResearchPrompt(topic, focus) },
|
|
150
|
+
],
|
|
151
|
+
web_search_options: { search_context_size: 'high' },
|
|
152
|
+
temperature: 0.2,
|
|
153
|
+
}),
|
|
154
|
+
});
|
|
155
|
+
if (!response.ok) {
|
|
156
|
+
const errText = await response.text().catch(() => '');
|
|
157
|
+
let errMsg = `OpenAI API Error ${response.status}: ${response.statusText}`;
|
|
158
|
+
try {
|
|
159
|
+
const j = JSON.parse(errText);
|
|
160
|
+
if (j?.error?.message)
|
|
161
|
+
errMsg = j.error.message;
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
if (errText)
|
|
165
|
+
errMsg += ` — ${errText.substring(0, 200)}`;
|
|
166
|
+
}
|
|
167
|
+
throw new Error(errMsg);
|
|
168
|
+
}
|
|
169
|
+
const data = await response.json();
|
|
170
|
+
const text = data.choices?.[0]?.message?.content || '';
|
|
171
|
+
// OpenAI web search returns citations in annotations array
|
|
172
|
+
const citations = [];
|
|
173
|
+
const annotations = data.choices?.[0]?.message?.annotations;
|
|
174
|
+
if (Array.isArray(annotations)) {
|
|
175
|
+
for (const ann of annotations) {
|
|
176
|
+
if (ann.type === 'url_citation' && ann.url && !citations.includes(ann.url)) {
|
|
177
|
+
citations.push(ann.url);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return { text, citations, model };
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Grok Live Search — uses web_search tool with return_citations
|
|
185
|
+
*/
|
|
186
|
+
async function researchWithGrok(topic, focus, keys) {
|
|
187
|
+
const apiKey = keys.grok;
|
|
188
|
+
if (!apiKey)
|
|
189
|
+
throw new Error('Grok API Key missing.');
|
|
190
|
+
const model = 'grok-3';
|
|
191
|
+
const response = await fetch('https://api.x.ai/v1/chat/completions', {
|
|
192
|
+
method: 'POST',
|
|
193
|
+
headers: {
|
|
194
|
+
'Content-Type': 'application/json',
|
|
195
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
196
|
+
},
|
|
197
|
+
body: JSON.stringify({
|
|
198
|
+
model,
|
|
199
|
+
messages: [
|
|
200
|
+
{ role: 'system', content: RESEARCH_SYSTEM },
|
|
201
|
+
{ role: 'user', content: buildResearchPrompt(topic, focus) },
|
|
202
|
+
],
|
|
203
|
+
tools: [{ type: 'web_search' }],
|
|
204
|
+
temperature: 0.2,
|
|
205
|
+
search: {
|
|
206
|
+
mode: 'auto',
|
|
207
|
+
return_citations: true,
|
|
208
|
+
max_results: 20,
|
|
209
|
+
},
|
|
210
|
+
}),
|
|
211
|
+
});
|
|
212
|
+
if (!response.ok) {
|
|
213
|
+
const errText = await response.text().catch(() => '');
|
|
214
|
+
let errMsg = `Grok API Error ${response.status}: ${response.statusText}`;
|
|
215
|
+
try {
|
|
216
|
+
const j = JSON.parse(errText);
|
|
217
|
+
if (j?.error?.message)
|
|
218
|
+
errMsg = j.error.message;
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
if (errText)
|
|
222
|
+
errMsg += ` — ${errText.substring(0, 200)}`;
|
|
223
|
+
}
|
|
224
|
+
throw new Error(errMsg);
|
|
225
|
+
}
|
|
226
|
+
const data = await response.json();
|
|
227
|
+
const text = data.choices?.[0]?.message?.content || '';
|
|
228
|
+
const rawCitations = Array.isArray(data.citations) ? data.citations : [];
|
|
229
|
+
const citations = [...new Set(rawCitations)];
|
|
230
|
+
return { text, citations, model };
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* DeepSeek — no native web search; uses deepseek-chat and extracts URLs from output
|
|
234
|
+
*/
|
|
235
|
+
async function researchWithDeepSeek(topic, focus, keys) {
|
|
236
|
+
const apiKey = keys.deepseek;
|
|
237
|
+
if (!apiKey)
|
|
238
|
+
throw new Error('DeepSeek API Key missing.');
|
|
239
|
+
const model = 'deepseek-chat';
|
|
240
|
+
const response = await fetch('https://api.deepseek.com/chat/completions', {
|
|
241
|
+
method: 'POST',
|
|
242
|
+
headers: {
|
|
243
|
+
'Content-Type': 'application/json',
|
|
244
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
245
|
+
},
|
|
246
|
+
body: JSON.stringify({
|
|
247
|
+
model,
|
|
248
|
+
messages: [
|
|
249
|
+
{ role: 'system', content: RESEARCH_SYSTEM },
|
|
250
|
+
{ role: 'user', content: buildResearchPrompt(topic, focus) },
|
|
251
|
+
],
|
|
252
|
+
temperature: 0.2,
|
|
253
|
+
max_tokens: 8192,
|
|
254
|
+
stream: false,
|
|
255
|
+
}),
|
|
256
|
+
});
|
|
257
|
+
if (!response.ok) {
|
|
258
|
+
const errText = await response.text().catch(() => '');
|
|
259
|
+
let errMsg = `DeepSeek API Error ${response.status}: ${response.statusText}`;
|
|
260
|
+
try {
|
|
261
|
+
const j = JSON.parse(errText);
|
|
262
|
+
if (j?.error?.message)
|
|
263
|
+
errMsg = j.error.message;
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
if (errText)
|
|
267
|
+
errMsg += ` — ${errText.substring(0, 200)}`;
|
|
268
|
+
}
|
|
269
|
+
throw new Error(errMsg);
|
|
270
|
+
}
|
|
271
|
+
const data = await response.json();
|
|
272
|
+
const text = data.choices?.[0]?.message?.content || '';
|
|
273
|
+
// DeepSeek doesn't natively return citations, extract URLs from text
|
|
274
|
+
const urlRegex = /https?:\/\/[^\s)\]>,"']+/g;
|
|
275
|
+
const rawUrls = (text.match(urlRegex) || []);
|
|
276
|
+
const citations = [...new Set(rawUrls)];
|
|
277
|
+
return { text, citations, model };
|
|
278
|
+
}
|
|
279
|
+
// ─── Main Tool Registration ──────────────────────────────────────────────────
|
|
14
280
|
export function registerResearchTools(server) {
|
|
15
281
|
server.tool('research_topic', 'Perform live web research on a topic using Perplexity Sonar or another research-capable provider. Returns structured findings with source citations. API keys are loaded from your BPAI account.', {
|
|
16
282
|
topic: z.string().describe('Topic or keyword to research'),
|
|
@@ -39,50 +305,69 @@ export function registerResearchTools(server) {
|
|
|
39
305
|
}],
|
|
40
306
|
};
|
|
41
307
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
308
|
+
try {
|
|
309
|
+
let result;
|
|
310
|
+
switch (provider) {
|
|
311
|
+
case 'gemini':
|
|
312
|
+
result = await researchWithGemini(args.topic, args.focus, keys);
|
|
313
|
+
break;
|
|
314
|
+
case 'openai':
|
|
315
|
+
result = await researchWithOpenAI(args.topic, args.focus, keys);
|
|
316
|
+
break;
|
|
317
|
+
case 'grok':
|
|
318
|
+
result = await researchWithGrok(args.topic, args.focus, keys);
|
|
319
|
+
break;
|
|
320
|
+
case 'deepseek':
|
|
321
|
+
result = await researchWithDeepSeek(args.topic, args.focus, keys);
|
|
322
|
+
break;
|
|
323
|
+
case 'perplexity':
|
|
324
|
+
default: {
|
|
325
|
+
// Perplexity uses the existing generateContent engine (it has native citation support)
|
|
326
|
+
const userPrompt = buildResearchPrompt(args.topic, args.focus);
|
|
327
|
+
const settings = {
|
|
328
|
+
model: args.model || 'sonar-pro',
|
|
329
|
+
temperature: 0.2,
|
|
330
|
+
maxTokens: 8192,
|
|
331
|
+
};
|
|
332
|
+
const genResult = await generateContent({
|
|
333
|
+
provider: 'perplexity',
|
|
334
|
+
systemPrompt: RESEARCH_PROMPT,
|
|
335
|
+
userPrompt,
|
|
336
|
+
settings,
|
|
337
|
+
}, keys);
|
|
338
|
+
if (genResult.error)
|
|
339
|
+
throw new Error(genResult.error);
|
|
340
|
+
result = {
|
|
341
|
+
text: genResult.text,
|
|
342
|
+
citations: genResult.citations || [],
|
|
343
|
+
model: settings.model,
|
|
344
|
+
};
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return {
|
|
349
|
+
content: [{
|
|
350
|
+
type: 'text', text: JSON.stringify({
|
|
351
|
+
status: 'success',
|
|
352
|
+
topic: args.topic,
|
|
353
|
+
provider,
|
|
354
|
+
model: result.model,
|
|
355
|
+
research: result.text,
|
|
356
|
+
citations: result.citations,
|
|
357
|
+
citation_count: result.citations.length,
|
|
358
|
+
}, null, 2)
|
|
359
|
+
}],
|
|
360
|
+
};
|
|
45
361
|
}
|
|
46
|
-
|
|
47
|
-
perplexity: 'sonar-pro',
|
|
48
|
-
openai: 'gpt-5.2',
|
|
49
|
-
grok: 'grok-4.1-fast',
|
|
50
|
-
gemini: 'gemini-3-pro-preview',
|
|
51
|
-
deepseek: 'deepseek-chat',
|
|
52
|
-
};
|
|
53
|
-
const settings = {
|
|
54
|
-
model: args.model || defaultModels[provider],
|
|
55
|
-
temperature: 0.3,
|
|
56
|
-
maxTokens: 8192,
|
|
57
|
-
};
|
|
58
|
-
const result = await generateContent({
|
|
59
|
-
provider,
|
|
60
|
-
systemPrompt: RESEARCH_PROMPT,
|
|
61
|
-
userPrompt,
|
|
62
|
-
settings,
|
|
63
|
-
}, keys);
|
|
64
|
-
if (result.error) {
|
|
362
|
+
catch (err) {
|
|
65
363
|
return {
|
|
66
364
|
content: [{
|
|
67
365
|
type: 'text', text: JSON.stringify({
|
|
68
|
-
error:
|
|
366
|
+
error: err.message || 'Research failed. Check your API key and provider settings.',
|
|
69
367
|
}, null, 2)
|
|
70
368
|
}],
|
|
71
369
|
};
|
|
72
370
|
}
|
|
73
|
-
return {
|
|
74
|
-
content: [{
|
|
75
|
-
type: 'text', text: JSON.stringify({
|
|
76
|
-
status: 'success',
|
|
77
|
-
topic: args.topic,
|
|
78
|
-
provider,
|
|
79
|
-
model: settings.model,
|
|
80
|
-
research: result.text,
|
|
81
|
-
citations: result.citations || [],
|
|
82
|
-
citation_count: (result.citations || []).length,
|
|
83
|
-
}, null, 2)
|
|
84
|
-
}],
|
|
85
|
-
};
|
|
86
371
|
});
|
|
87
372
|
}
|
|
88
373
|
//# sourceMappingURL=research.js.map
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bulkpublishing/mcp-server",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "Bulk Publishing AI MCP Server - Content generation, WordPress publishing, and SEO indexing tools for MCP-compatible clients",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|