whatsapp-docs-mcp 1.0.0 → 1.0.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/prompts.test.d.ts +2 -0
- package/dist/prompts.test.d.ts.map +1 -0
- package/dist/prompts.test.js +228 -0
- package/dist/prompts.test.js.map +1 -0
- package/dist/resources.test.d.ts +2 -0
- package/dist/resources.test.d.ts.map +1 -0
- package/dist/resources.test.js +104 -0
- package/dist/resources.test.js.map +1 -0
- package/dist/tools.d.ts +37 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +10 -3
- package/dist/tools.js.map +1 -1
- package/dist/tools.test.d.ts +2 -0
- package/dist/tools.test.d.ts.map +1 -0
- package/dist/tools.test.js +364 -0
- package/dist/tools.test.js.map +1 -0
- package/dist/utils/fileLoader.test.d.ts +2 -0
- package/dist/utils/fileLoader.test.d.ts.map +1 -0
- package/dist/utils/fileLoader.test.js +147 -0
- package/dist/utils/fileLoader.test.js.map +1 -0
- package/dist/utils/search.d.ts +10 -4
- package/dist/utils/search.d.ts.map +1 -1
- package/dist/utils/search.js +176 -17
- package/dist/utils/search.js.map +1 -1
- package/dist/utils/search.test.d.ts +2 -0
- package/dist/utils/search.test.d.ts.map +1 -0
- package/dist/utils/search.test.js +196 -0
- package/dist/utils/search.test.js.map +1 -0
- package/package.json +9 -3
- package/docs/index.md +0 -318
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.test.d.ts","sourceRoot":"","sources":["../src/prompts.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const vitest_1 = require("vitest");
|
|
37
|
+
const prompts_1 = require("./prompts");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
// Mock do fileLoader
|
|
40
|
+
vitest_1.vi.mock('./utils/fileLoader');
|
|
41
|
+
// Mock do fs
|
|
42
|
+
vitest_1.vi.mock('fs', async () => {
|
|
43
|
+
const actual = await vitest_1.vi.importActual('fs');
|
|
44
|
+
return {
|
|
45
|
+
...actual,
|
|
46
|
+
default: {
|
|
47
|
+
...actual,
|
|
48
|
+
existsSync: vitest_1.vi.fn(),
|
|
49
|
+
},
|
|
50
|
+
existsSync: vitest_1.vi.fn(),
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
// Mock do fileLoader
|
|
54
|
+
vitest_1.vi.mock('./utils/fileLoader', () => {
|
|
55
|
+
return {
|
|
56
|
+
getDocsPath: vitest_1.vi.fn(() => '/mock/docs'),
|
|
57
|
+
loadMarkdownFile: vitest_1.vi.fn((filePath) => {
|
|
58
|
+
const mockFiles = {
|
|
59
|
+
'/mock/docs/QUICK_REFERENCE.md': `## 📤 Enviar Mensagens
|
|
60
|
+
|
|
61
|
+
Como enviar mensagens via API.
|
|
62
|
+
|
|
63
|
+
## 📥 Webhooks
|
|
64
|
+
|
|
65
|
+
Como configurar webhooks.`,
|
|
66
|
+
'/mock/docs/mensagens/visao_geral/send_messages.md': '# Como Enviar Mensagens\n\nGuia completo.',
|
|
67
|
+
'/mock/docs/mensagens/tipos_de_mensagens/audio_messages.md': '# Mensagens de áudio\n\nComo enviar áudio.',
|
|
68
|
+
'/mock/docs/webhooks/visao_geral/overview.md': '# Visão Geral de Webhooks\n\nComo configurar.',
|
|
69
|
+
'/mock/docs/webhooks/referencia/messages/messages.md': `# Webhook Messages
|
|
70
|
+
|
|
71
|
+
## JavaScript Example
|
|
72
|
+
\`\`\`javascript
|
|
73
|
+
// Exemplo em JavaScript
|
|
74
|
+
\`\`\`
|
|
75
|
+
|
|
76
|
+
## Python Example
|
|
77
|
+
\`\`\`python
|
|
78
|
+
# Exemplo em Python
|
|
79
|
+
\`\`\``,
|
|
80
|
+
'/mock/docs/modelos/visao_geral/overview.md': '# Visão Geral de Templates\n\nComo criar templates.',
|
|
81
|
+
'/mock/docs/modelos/gerenciamento_de_modelos/template_management.md': '# Gerenciamento de Templates\n\nComo gerenciar.',
|
|
82
|
+
'/mock/docs/modelos/modelos_de_utilidade/utility_templates.md': '# Templates de Utilidade\n\nTemplates úteis.',
|
|
83
|
+
'/mock/docs/suporte/error_codes.md': '100 - Rate limit exceeded\n200 - Invalid token',
|
|
84
|
+
};
|
|
85
|
+
return mockFiles[filePath] || '';
|
|
86
|
+
}),
|
|
87
|
+
};
|
|
88
|
+
});
|
|
89
|
+
(0, vitest_1.describe)('listPrompts', () => {
|
|
90
|
+
(0, vitest_1.it)('deve retornar lista de prompts disponíveis', async () => {
|
|
91
|
+
const prompts = await (0, prompts_1.listPrompts)();
|
|
92
|
+
(0, vitest_1.expect)(Array.isArray(prompts)).toBe(true);
|
|
93
|
+
(0, vitest_1.expect)(prompts.length).toBeGreaterThan(0);
|
|
94
|
+
// Verifica estrutura dos prompts
|
|
95
|
+
prompts.forEach(prompt => {
|
|
96
|
+
(0, vitest_1.expect)(prompt.name).toBeDefined();
|
|
97
|
+
(0, vitest_1.expect)(prompt.description).toBeDefined();
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
(0, vitest_1.it)('deve incluir prompts principais', async () => {
|
|
101
|
+
const prompts = await (0, prompts_1.listPrompts)();
|
|
102
|
+
const names = prompts.map(p => p.name);
|
|
103
|
+
(0, vitest_1.expect)(names).toContain('send_message_guide');
|
|
104
|
+
(0, vitest_1.expect)(names).toContain('webhook_setup');
|
|
105
|
+
(0, vitest_1.expect)(names).toContain('template_creation');
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
(0, vitest_1.describe)('getPrompt - send_message_guide', () => {
|
|
109
|
+
(0, vitest_1.beforeEach)(() => {
|
|
110
|
+
vitest_1.vi.clearAllMocks();
|
|
111
|
+
vitest_1.vi.mocked(fs.existsSync).mockReturnValue(true);
|
|
112
|
+
});
|
|
113
|
+
(0, vitest_1.it)('deve retornar guia de envio de mensagens', async () => {
|
|
114
|
+
const content = await (0, prompts_1.getPrompt)('send_message_guide', {});
|
|
115
|
+
// Verifica que retorna conteúdo não vazio (comportamento, não conteúdo específico)
|
|
116
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
117
|
+
(0, vitest_1.expect)(typeof content).toBe('string');
|
|
118
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
119
|
+
// Verifica estrutura básica (markdown válido ou instruções)
|
|
120
|
+
(0, vitest_1.expect)(content.trim().length).toBeGreaterThan(0);
|
|
121
|
+
});
|
|
122
|
+
(0, vitest_1.it)('deve incluir tipo específico quando especificado', async () => {
|
|
123
|
+
const content = await (0, prompts_1.getPrompt)('send_message_guide', { message_type: 'audio' });
|
|
124
|
+
// Verifica que retorna conteúdo (comportamento)
|
|
125
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
126
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
127
|
+
// Verifica que conteúdo é diferente quando tipo especificado (comportamento)
|
|
128
|
+
const defaultContent = await (0, prompts_1.getPrompt)('send_message_guide', {});
|
|
129
|
+
// Pode ser igual ou diferente, mas ambos devem ser válidos
|
|
130
|
+
(0, vitest_1.expect)(typeof content).toBe('string');
|
|
131
|
+
});
|
|
132
|
+
(0, vitest_1.it)('deve usar fallback quando arquivos não existem', async () => {
|
|
133
|
+
vitest_1.vi.mocked(fs.existsSync).mockReturnValue(false);
|
|
134
|
+
const content = await (0, prompts_1.getPrompt)('send_message_guide', {});
|
|
135
|
+
(0, vitest_1.expect)(content).toContain('get_document_by_path');
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
(0, vitest_1.describe)('getPrompt - webhook_setup', () => {
|
|
139
|
+
(0, vitest_1.beforeEach)(() => {
|
|
140
|
+
vitest_1.vi.clearAllMocks();
|
|
141
|
+
vitest_1.vi.mocked(fs.existsSync).mockReturnValue(true);
|
|
142
|
+
});
|
|
143
|
+
(0, vitest_1.it)('deve retornar guia de configuração de webhooks', async () => {
|
|
144
|
+
const content = await (0, prompts_1.getPrompt)('webhook_setup', {});
|
|
145
|
+
// Verifica comportamento: retorna conteúdo válido
|
|
146
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
147
|
+
(0, vitest_1.expect)(typeof content).toBe('string');
|
|
148
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
149
|
+
});
|
|
150
|
+
(0, vitest_1.it)('deve incluir exemplos na linguagem especificada', async () => {
|
|
151
|
+
const content = await (0, prompts_1.getPrompt)('webhook_setup', { language: 'javascript' });
|
|
152
|
+
// Verifica comportamento: retorna conteúdo quando linguagem especificada
|
|
153
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
154
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
155
|
+
// Verifica que conteúdo pode variar com linguagem (comportamento)
|
|
156
|
+
const contentWithoutLang = await (0, prompts_1.getPrompt)('webhook_setup', {});
|
|
157
|
+
(0, vitest_1.expect)(typeof content).toBe('string');
|
|
158
|
+
(0, vitest_1.expect)(typeof contentWithoutLang).toBe('string');
|
|
159
|
+
});
|
|
160
|
+
(0, vitest_1.it)('deve incluir exemplos em Python quando especificado', async () => {
|
|
161
|
+
const content = await (0, prompts_1.getPrompt)('webhook_setup', { language: 'python' });
|
|
162
|
+
// Verifica comportamento: retorna conteúdo válido
|
|
163
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
164
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
(0, vitest_1.describe)('getPrompt - template_creation', () => {
|
|
168
|
+
(0, vitest_1.beforeEach)(() => {
|
|
169
|
+
vitest_1.vi.clearAllMocks();
|
|
170
|
+
vitest_1.vi.mocked(fs.existsSync).mockReturnValue(true);
|
|
171
|
+
});
|
|
172
|
+
(0, vitest_1.it)('deve retornar guia de criação de templates', async () => {
|
|
173
|
+
const content = await (0, prompts_1.getPrompt)('template_creation', {});
|
|
174
|
+
// Verifica comportamento: retorna conteúdo válido
|
|
175
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
176
|
+
(0, vitest_1.expect)(typeof content).toBe('string');
|
|
177
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
178
|
+
});
|
|
179
|
+
(0, vitest_1.it)('deve incluir categoria específica quando especificada', async () => {
|
|
180
|
+
const content = await (0, prompts_1.getPrompt)('template_creation', { template_category: 'utility' });
|
|
181
|
+
// Verifica comportamento: retorna conteúdo quando categoria especificada
|
|
182
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
183
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
184
|
+
// Verifica que diferentes categorias podem retornar conteúdo diferente
|
|
185
|
+
const contentDefault = await (0, prompts_1.getPrompt)('template_creation', {});
|
|
186
|
+
(0, vitest_1.expect)(typeof content).toBe('string');
|
|
187
|
+
(0, vitest_1.expect)(typeof contentDefault).toBe('string');
|
|
188
|
+
});
|
|
189
|
+
(0, vitest_1.it)('deve usar categoria padrão quando não especificada', async () => {
|
|
190
|
+
const content = await (0, prompts_1.getPrompt)('template_creation', {});
|
|
191
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
192
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
(0, vitest_1.describe)('getPrompt - error_troubleshooting', () => {
|
|
196
|
+
(0, vitest_1.beforeEach)(() => {
|
|
197
|
+
vitest_1.vi.clearAllMocks();
|
|
198
|
+
vitest_1.vi.mocked(fs.existsSync).mockReturnValue(true);
|
|
199
|
+
});
|
|
200
|
+
(0, vitest_1.it)('deve retornar guia de resolução de problemas', async () => {
|
|
201
|
+
const content = await (0, prompts_1.getPrompt)('error_troubleshooting', {});
|
|
202
|
+
// Verifica comportamento: retorna conteúdo válido
|
|
203
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
204
|
+
(0, vitest_1.expect)(typeof content).toBe('string');
|
|
205
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
206
|
+
});
|
|
207
|
+
(0, vitest_1.it)('deve incluir código de erro específico quando fornecido', async () => {
|
|
208
|
+
const content = await (0, prompts_1.getPrompt)('error_troubleshooting', { error_code: 100 });
|
|
209
|
+
// Verifica comportamento: retorna conteúdo quando código especificado
|
|
210
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
211
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
212
|
+
// Verifica que conteúdo contém o código (comportamento esperado)
|
|
213
|
+
(0, vitest_1.expect)(content).toContain('100');
|
|
214
|
+
// Verifica que é diferente quando código não especificado
|
|
215
|
+
const contentWithoutCode = await (0, prompts_1.getPrompt)('error_troubleshooting', {});
|
|
216
|
+
(0, vitest_1.expect)(content).not.toBe(contentWithoutCode);
|
|
217
|
+
});
|
|
218
|
+
(0, vitest_1.it)('deve retornar conteúdo completo quando código não especificado', async () => {
|
|
219
|
+
const content = await (0, prompts_1.getPrompt)('error_troubleshooting', {});
|
|
220
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
(0, vitest_1.describe)('getPrompt - casos de erro', () => {
|
|
224
|
+
(0, vitest_1.it)('deve lançar erro para prompt inexistente', async () => {
|
|
225
|
+
await (0, vitest_1.expect)((0, prompts_1.getPrompt)('nonexistent_prompt', {})).rejects.toThrow();
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
//# sourceMappingURL=prompts.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.test.js","sourceRoot":"","sources":["../src/prompts.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.test.d.ts","sourceRoot":"","sources":["../src/resources.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const resources_1 = require("./resources");
|
|
5
|
+
const fileLoader_1 = require("./utils/fileLoader");
|
|
6
|
+
// Mock do fileLoader
|
|
7
|
+
vitest_1.vi.mock('./utils/fileLoader', () => {
|
|
8
|
+
return {
|
|
9
|
+
getDocsPath: vitest_1.vi.fn(() => '/mock/docs'),
|
|
10
|
+
findAllMarkdownFiles: vitest_1.vi.fn(() => [
|
|
11
|
+
'/mock/docs/mensagens/tipos_de_mensagens/audio_messages.md',
|
|
12
|
+
'/mock/docs/mensagens/tipos_de_mensagens/text_messages.md',
|
|
13
|
+
]),
|
|
14
|
+
loadMarkdownFile: vitest_1.vi.fn((filePath) => {
|
|
15
|
+
const mockFiles = {
|
|
16
|
+
'/mock/docs/mensagens/tipos_de_mensagens/audio_messages.md': `# Mensagens de áudio
|
|
17
|
+
|
|
18
|
+
É possível usar a API para enviar mensagens de voz.`,
|
|
19
|
+
'/mock/docs/mensagens/tipos_de_mensagens/text_messages.md': `# Mensagens de texto
|
|
20
|
+
|
|
21
|
+
Os SMS contêm somente um corpo de texto.`,
|
|
22
|
+
};
|
|
23
|
+
return mockFiles[filePath] || '';
|
|
24
|
+
}),
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.describe)('scanDocuments', () => {
|
|
28
|
+
(0, vitest_1.beforeEach)(() => {
|
|
29
|
+
vitest_1.vi.clearAllMocks();
|
|
30
|
+
});
|
|
31
|
+
(0, vitest_1.it)('deve escanear e retornar todos os documentos', () => {
|
|
32
|
+
const resources = (0, resources_1.scanDocuments)();
|
|
33
|
+
(0, vitest_1.expect)(resources.length).toBe(2);
|
|
34
|
+
(0, vitest_1.expect)(resources[0].uri).toContain('whatsapp-docs://docs/');
|
|
35
|
+
(0, vitest_1.expect)(resources[0].mimeType).toBe('text/markdown');
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.it)('deve extrair título e descrição dos documentos', () => {
|
|
38
|
+
const resources = (0, resources_1.scanDocuments)();
|
|
39
|
+
const audioResource = resources.find(r => r.uri.includes('audio'));
|
|
40
|
+
(0, vitest_1.expect)(audioResource).toBeDefined();
|
|
41
|
+
// Verifica estrutura, não conteúdo específico
|
|
42
|
+
(0, vitest_1.expect)(audioResource?.name).toBeDefined();
|
|
43
|
+
(0, vitest_1.expect)(typeof audioResource?.name).toBe('string');
|
|
44
|
+
(0, vitest_1.expect)(audioResource?.name.length).toBeGreaterThan(0);
|
|
45
|
+
(0, vitest_1.expect)(audioResource?.description).toBeDefined();
|
|
46
|
+
(0, vitest_1.expect)(typeof audioResource?.description).toBe('string');
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.it)('deve usar cache na segunda chamada', () => {
|
|
49
|
+
vitest_1.vi.clearAllMocks();
|
|
50
|
+
const firstCall = (0, resources_1.scanDocuments)();
|
|
51
|
+
const callCount1 = vitest_1.vi.mocked(fileLoader_1.findAllMarkdownFiles).mock.calls.length;
|
|
52
|
+
const secondCall = (0, resources_1.scanDocuments)();
|
|
53
|
+
const callCount2 = vitest_1.vi.mocked(fileLoader_1.findAllMarkdownFiles).mock.calls.length;
|
|
54
|
+
// Segunda chamada não deve aumentar o número de chamadas (usa cache)
|
|
55
|
+
(0, vitest_1.expect)(callCount2).toBe(callCount1);
|
|
56
|
+
(0, vitest_1.expect)(firstCall).toBe(secondCall); // Mesma referência (cache)
|
|
57
|
+
});
|
|
58
|
+
(0, vitest_1.it)('deve criar URIs corretas', () => {
|
|
59
|
+
const resources = (0, resources_1.scanDocuments)();
|
|
60
|
+
resources.forEach(resource => {
|
|
61
|
+
(0, vitest_1.expect)(resource.uri).toMatch(/^whatsapp-docs:\/\/docs\//);
|
|
62
|
+
(0, vitest_1.expect)(resource.uri).not.toContain('\\'); // Sem barras invertidas
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
(0, vitest_1.describe)('listResources', () => {
|
|
67
|
+
(0, vitest_1.it)('deve retornar lista de recursos', async () => {
|
|
68
|
+
const resources = await (0, resources_1.listResources)();
|
|
69
|
+
(0, vitest_1.expect)(Array.isArray(resources)).toBe(true);
|
|
70
|
+
(0, vitest_1.expect)(resources.length).toBeGreaterThan(0);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
(0, vitest_1.describe)('readResource', () => {
|
|
74
|
+
(0, vitest_1.beforeEach)(() => {
|
|
75
|
+
vitest_1.vi.clearAllMocks();
|
|
76
|
+
});
|
|
77
|
+
(0, vitest_1.it)('deve ler conteúdo de recurso válido', async () => {
|
|
78
|
+
const uri = 'whatsapp-docs://docs/mensagens/tipos_de_mensagens/audio_messages.md';
|
|
79
|
+
const content = await (0, resources_1.readResource)(uri);
|
|
80
|
+
// Verifica comportamento: retorna conteúdo válido
|
|
81
|
+
(0, vitest_1.expect)(content).toBeDefined();
|
|
82
|
+
(0, vitest_1.expect)(typeof content).toBe('string');
|
|
83
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
84
|
+
(0, vitest_1.expect)(fileLoader_1.loadMarkdownFile).toHaveBeenCalled();
|
|
85
|
+
});
|
|
86
|
+
(0, vitest_1.it)('deve lançar erro para URI inválida', async () => {
|
|
87
|
+
const invalidUri = 'invalid://path/to/file.md';
|
|
88
|
+
await (0, vitest_1.expect)((0, resources_1.readResource)(invalidUri)).rejects.toThrow('Invalid URI format');
|
|
89
|
+
});
|
|
90
|
+
(0, vitest_1.it)('deve validar que caminho está dentro de docs/', async () => {
|
|
91
|
+
// Mock para simular path traversal
|
|
92
|
+
vitest_1.vi.mocked(fileLoader_1.getDocsPath).mockReturnValueOnce('/mock/docs');
|
|
93
|
+
const maliciousUri = 'whatsapp-docs://docs/../../../etc/passwd';
|
|
94
|
+
await (0, vitest_1.expect)((0, resources_1.readResource)(maliciousUri)).rejects.toThrow('Invalid path');
|
|
95
|
+
});
|
|
96
|
+
(0, vitest_1.it)('deve lançar erro quando arquivo não existe', async () => {
|
|
97
|
+
vitest_1.vi.mocked(fileLoader_1.loadMarkdownFile).mockImplementation(() => {
|
|
98
|
+
throw new Error('File not found');
|
|
99
|
+
});
|
|
100
|
+
const uri = 'whatsapp-docs://docs/nonexistent.md';
|
|
101
|
+
await (0, vitest_1.expect)((0, resources_1.readResource)(uri)).rejects.toThrow('Failed to read resource');
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=resources.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.test.js","sourceRoot":"","sources":["../src/resources.test.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,4 +1,41 @@
|
|
|
1
1
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
import { SearchResult } from './utils/search';
|
|
3
|
+
/**
|
|
4
|
+
* Busca textual em todos os documentos
|
|
5
|
+
*/
|
|
6
|
+
export declare function searchDocumentation(query: string, section?: string): Promise<SearchResult[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Obtém documento por caminho
|
|
9
|
+
*/
|
|
10
|
+
export declare function getDocumentByPath(docPath: string): Promise<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Lista seções da documentação
|
|
13
|
+
*/
|
|
14
|
+
export declare function listDocumentationSections(filterSection?: string): Promise<{
|
|
15
|
+
sections: Array<{
|
|
16
|
+
name: string;
|
|
17
|
+
path: string;
|
|
18
|
+
documentCount: number;
|
|
19
|
+
}>;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Busca referência de endpoint
|
|
23
|
+
*/
|
|
24
|
+
export declare function getEndpointReference(endpoint: string): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Busca informações sobre código de erro
|
|
27
|
+
*/
|
|
28
|
+
export declare function getErrorCodeInfo(errorCode: number): Promise<{
|
|
29
|
+
code: number;
|
|
30
|
+
message: string;
|
|
31
|
+
description: string;
|
|
32
|
+
solution: string;
|
|
33
|
+
relatedDocs: string[];
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Obtém referência rápida para operação comum
|
|
37
|
+
*/
|
|
38
|
+
export declare function getQuickReference(operation: string): Promise<string>;
|
|
2
39
|
/**
|
|
3
40
|
* Registra handlers de ferramentas no servidor MCP
|
|
4
41
|
*/
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,EAKL,YAAY,EACb,MAAM,gBAAgB,CAAC;AAIxB;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAoClG;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxE;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/E,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxE,CAAC,CAyBD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA2B5E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC,CA2BD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAoMzD"}
|
package/dist/tools.js
CHANGED
|
@@ -33,6 +33,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.searchDocumentation = searchDocumentation;
|
|
37
|
+
exports.getDocumentByPath = getDocumentByPath;
|
|
38
|
+
exports.listDocumentationSections = listDocumentationSections;
|
|
39
|
+
exports.getEndpointReference = getEndpointReference;
|
|
40
|
+
exports.getErrorCodeInfo = getErrorCodeInfo;
|
|
41
|
+
exports.getQuickReference = getQuickReference;
|
|
36
42
|
exports.registerToolHandlers = registerToolHandlers;
|
|
37
43
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
38
44
|
const fileLoader_1 = require("./utils/fileLoader");
|
|
@@ -52,11 +58,12 @@ async function searchDocumentation(query, section) {
|
|
|
52
58
|
const results = [];
|
|
53
59
|
for (const filePath of markdownFiles) {
|
|
54
60
|
const content = (0, fileLoader_1.loadMarkdownFile)(filePath);
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
const relativePath = path.relative(docsPath, filePath).replace(/\\/g, '/');
|
|
62
|
+
// Passa filePath para busca melhorada
|
|
63
|
+
if ((0, search_1.searchInContent)(content, query, relativePath)) {
|
|
57
64
|
const title = (0, search_1.extractTitle)(content, relativePath);
|
|
58
65
|
const excerpt = (0, search_1.extractExcerpt)(content, query);
|
|
59
|
-
const relevance = (0, search_1.calculateRelevance)(content, query);
|
|
66
|
+
const relevance = (0, search_1.calculateRelevance)(content, query, relativePath);
|
|
60
67
|
results.push({
|
|
61
68
|
path: relativePath,
|
|
62
69
|
title,
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.d.ts","sourceRoot":"","sources":["../src/tools.test.ts"],"names":[],"mappings":""}
|