whatsapp-docs-mcp 1.0.3 → 1.0.5
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/LICENSE +2 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -2
- package/dist/index.js.map +1 -1
- package/dist/tools.d.ts +10 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +59 -0
- package/dist/tools.js.map +1 -1
- package/dist/utils/search.d.ts +18 -2
- package/dist/utils/search.d.ts.map +1 -1
- package/dist/utils/search.js +328 -93
- package/dist/utils/search.js.map +1 -1
- package/dist/utils/search.test.js +128 -0
- package/dist/utils/search.test.js.map +1 -1
- package/docs/catalogos/sell_products_and_services.md +1 -1
- package/docs/flows/changelog.md +613 -0
- package/docs/flows/gettingstarted/health_insurance.md +537 -0
- package/docs/flows/gettingstarted/personalised_offer.md +495 -0
- package/docs/flows/gettingstarted/pre_approved_loan.md +506 -0
- package/docs/flows/gettingstarted/purchase_intent.md +246 -0
- package/docs/flows/gettingstarted.md +52 -0
- package/docs/flows/guias.md +60 -0
- package/docs/flows/playground.md +135 -0
- package/docs/flows/referencia.md +102 -0
- package/docs/flows/support.md +32 -0
- package/docs/flows.md +98 -0
- package/docs/{mensagens/limites_de_mensagens → messaging_limits}/upcoming_changes.md +1 -1
- package/docs/suporte.md +408 -0
- package/package.json +9 -2
package/dist/utils/search.js
CHANGED
|
@@ -1,17 +1,199 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SYNONYMS = void 0;
|
|
3
4
|
exports.normalizeText = normalizeText;
|
|
5
|
+
exports.stemWord = stemWord;
|
|
6
|
+
exports.expandQueryTerms = expandQueryTerms;
|
|
4
7
|
exports.searchInContent = searchInContent;
|
|
5
8
|
exports.extractTitle = extractTitle;
|
|
6
9
|
exports.extractDescription = extractDescription;
|
|
7
10
|
exports.extractExcerpt = extractExcerpt;
|
|
8
11
|
exports.calculateRelevance = calculateRelevance;
|
|
12
|
+
/**
|
|
13
|
+
* Dicionário de sinônimos bilíngues (português/inglês) para termos da WhatsApp API
|
|
14
|
+
* Todos os termos devem estar normalizados (sem acentos, minúsculas)
|
|
15
|
+
*/
|
|
16
|
+
exports.SYNONYMS = {
|
|
17
|
+
// Typing/Digitação
|
|
18
|
+
'typing': ['digitacao', 'digitando', 'digitar', 'escrevendo', 'type'],
|
|
19
|
+
'digitacao': ['typing', 'digitando', 'digitar', 'type'],
|
|
20
|
+
'digitando': ['typing', 'digitacao', 'digitar', 'type'],
|
|
21
|
+
'type': ['typing', 'digitacao', 'tipo'],
|
|
22
|
+
// Indicator/Indicador
|
|
23
|
+
'indicator': ['indicador', 'indicadores', 'indicators'],
|
|
24
|
+
'indicators': ['indicador', 'indicadores', 'indicator'],
|
|
25
|
+
'indicador': ['indicator', 'indicators', 'indicadores'],
|
|
26
|
+
'indicadores': ['indicator', 'indicators', 'indicador'],
|
|
27
|
+
// Message/Mensagem
|
|
28
|
+
'message': ['mensagem', 'mensagens', 'msg', 'messages'],
|
|
29
|
+
'messages': ['mensagem', 'mensagens', 'msg', 'message'],
|
|
30
|
+
'mensagem': ['message', 'messages', 'msg', 'mensagens'],
|
|
31
|
+
'mensagens': ['message', 'messages', 'msg', 'mensagem'],
|
|
32
|
+
'msg': ['message', 'mensagem', 'messages', 'mensagens'],
|
|
33
|
+
// Audio/Áudio
|
|
34
|
+
'audio': ['som', 'voz', 'voice', 'sound'],
|
|
35
|
+
'voz': ['audio', 'voice', 'som'],
|
|
36
|
+
'voice': ['audio', 'voz', 'som'],
|
|
37
|
+
'som': ['audio', 'voz', 'voice', 'sound'],
|
|
38
|
+
// Webhook/Callback
|
|
39
|
+
'webhook': ['callback', 'notificacao', 'notification', 'webhooks'],
|
|
40
|
+
'webhooks': ['webhook', 'callback', 'notificacao'],
|
|
41
|
+
'callback': ['webhook', 'notificacao', 'notification'],
|
|
42
|
+
'notificacao': ['webhook', 'callback', 'notification', 'notificacoes'],
|
|
43
|
+
// Template/Modelo
|
|
44
|
+
'template': ['modelo', 'templates', 'modelos'],
|
|
45
|
+
'templates': ['modelo', 'template', 'modelos'],
|
|
46
|
+
'modelo': ['template', 'templates', 'modelos'],
|
|
47
|
+
'modelos': ['template', 'templates', 'modelo'],
|
|
48
|
+
// Send/Enviar
|
|
49
|
+
'send': ['enviar', 'envio', 'sending'],
|
|
50
|
+
'enviar': ['send', 'envio', 'sending'],
|
|
51
|
+
'envio': ['send', 'enviar', 'sending'],
|
|
52
|
+
// Receive/Receber
|
|
53
|
+
'receive': ['receber', 'recebimento', 'receiving'],
|
|
54
|
+
'receber': ['receive', 'recebimento', 'receiving'],
|
|
55
|
+
// Error/Erro
|
|
56
|
+
'error': ['erro', 'errors', 'erros'],
|
|
57
|
+
'errors': ['erro', 'erros', 'error'],
|
|
58
|
+
'erro': ['error', 'errors', 'erros'],
|
|
59
|
+
'erros': ['error', 'errors', 'erro'],
|
|
60
|
+
// Media/Mídia
|
|
61
|
+
'media': ['midia', 'midias'],
|
|
62
|
+
'midia': ['media', 'midias'],
|
|
63
|
+
// Image/Imagem
|
|
64
|
+
'image': ['imagem', 'images', 'imagens', 'foto', 'picture'],
|
|
65
|
+
'images': ['imagem', 'imagens', 'image', 'fotos'],
|
|
66
|
+
'imagem': ['image', 'images', 'imagens', 'foto'],
|
|
67
|
+
'imagens': ['image', 'images', 'imagem', 'fotos'],
|
|
68
|
+
// Video/Vídeo
|
|
69
|
+
'video': ['videos'],
|
|
70
|
+
'videos': ['video'],
|
|
71
|
+
// Document/Documento
|
|
72
|
+
'document': ['documento', 'documents', 'documentos', 'doc'],
|
|
73
|
+
'documents': ['documento', 'documentos', 'document'],
|
|
74
|
+
'documento': ['document', 'documents', 'documentos'],
|
|
75
|
+
'documentos': ['document', 'documents', 'documento'],
|
|
76
|
+
// Phone/Telefone
|
|
77
|
+
'phone': ['telefone', 'phones', 'telefones', 'numero'],
|
|
78
|
+
'telefone': ['phone', 'phones', 'telefones', 'numero'],
|
|
79
|
+
'numero': ['phone', 'telefone', 'number'],
|
|
80
|
+
'number': ['numero', 'phone', 'telefone'],
|
|
81
|
+
// Business/Negócio
|
|
82
|
+
'business': ['negocio', 'comercial', 'empresa'],
|
|
83
|
+
'negocio': ['business', 'comercial', 'empresa'],
|
|
84
|
+
// Account/Conta
|
|
85
|
+
'account': ['conta', 'accounts', 'contas'],
|
|
86
|
+
'conta': ['account', 'accounts', 'contas'],
|
|
87
|
+
// Status
|
|
88
|
+
'status': ['estado', 'situacao'],
|
|
89
|
+
'estado': ['status', 'situacao'],
|
|
90
|
+
// Read/Lido
|
|
91
|
+
'read': ['lido', 'leitura', 'ler'],
|
|
92
|
+
'lido': ['read', 'leitura'],
|
|
93
|
+
'leitura': ['read', 'lido'],
|
|
94
|
+
// Recording/Gravação
|
|
95
|
+
'recording': ['gravacao', 'gravando', 'gravar'],
|
|
96
|
+
'gravacao': ['recording', 'gravando', 'gravar'],
|
|
97
|
+
'gravando': ['recording', 'gravacao', 'gravar'],
|
|
98
|
+
'gravar': ['recording', 'gravacao', 'gravando'],
|
|
99
|
+
};
|
|
9
100
|
/**
|
|
10
101
|
* Normaliza texto removendo acentos e convertendo para minúsculas
|
|
11
102
|
*/
|
|
12
103
|
function normalizeText(text) {
|
|
13
104
|
return text.normalize('NFD').replace(/[\u0300-\u036f]/g, '').toLowerCase();
|
|
14
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Aplica stemming básico para português e inglês
|
|
108
|
+
* Retorna array com a palavra original e possíveis stems
|
|
109
|
+
*/
|
|
110
|
+
function stemWord(word) {
|
|
111
|
+
const stems = [word];
|
|
112
|
+
if (word.length < 4)
|
|
113
|
+
return stems;
|
|
114
|
+
// Português - verbos no gerúndio (-ando, -endo, -indo)
|
|
115
|
+
if (word.endsWith('ando') && word.length > 5) {
|
|
116
|
+
stems.push(word.slice(0, -4)); // raiz
|
|
117
|
+
stems.push(word.slice(0, -4) + 'ar'); // infinitivo
|
|
118
|
+
stems.push(word.slice(0, -4) + 'a'); // presente
|
|
119
|
+
}
|
|
120
|
+
if (word.endsWith('endo') && word.length > 5) {
|
|
121
|
+
stems.push(word.slice(0, -4));
|
|
122
|
+
stems.push(word.slice(0, -4) + 'er');
|
|
123
|
+
stems.push(word.slice(0, -4) + 'e');
|
|
124
|
+
}
|
|
125
|
+
if (word.endsWith('indo') && word.length > 5) {
|
|
126
|
+
stems.push(word.slice(0, -4));
|
|
127
|
+
stems.push(word.slice(0, -4) + 'ir');
|
|
128
|
+
stems.push(word.slice(0, -4) + 'e');
|
|
129
|
+
}
|
|
130
|
+
// Português - substantivos terminados em -ção/-cao (normalizado)
|
|
131
|
+
if ((word.endsWith('cao') || word.endsWith('coes')) && word.length > 4) {
|
|
132
|
+
const root = word.endsWith('coes') ? word.slice(0, -4) : word.slice(0, -3);
|
|
133
|
+
stems.push(root);
|
|
134
|
+
stems.push(root + 'c');
|
|
135
|
+
stems.push(root + 'cao');
|
|
136
|
+
stems.push(root + 'coes');
|
|
137
|
+
}
|
|
138
|
+
// Inglês - verbos no gerúndio (-ing)
|
|
139
|
+
if (word.endsWith('ing') && word.length > 5) {
|
|
140
|
+
stems.push(word.slice(0, -3)); // type
|
|
141
|
+
stems.push(word.slice(0, -3) + 'e'); // type (para typing -> type)
|
|
142
|
+
// Dobrar consoante: running -> run
|
|
143
|
+
if (word.length > 6 && word[word.length - 4] === word[word.length - 5]) {
|
|
144
|
+
stems.push(word.slice(0, -4));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Inglês - passado (-ed)
|
|
148
|
+
if (word.endsWith('ed') && word.length > 4) {
|
|
149
|
+
stems.push(word.slice(0, -2));
|
|
150
|
+
stems.push(word.slice(0, -2) + 'e'); // created -> create
|
|
151
|
+
// Dobrar consoante
|
|
152
|
+
if (word.length > 5 && word[word.length - 3] === word[word.length - 4]) {
|
|
153
|
+
stems.push(word.slice(0, -3));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Plural inglês (-s, -es, -ies)
|
|
157
|
+
if (word.endsWith('ies') && word.length > 4) {
|
|
158
|
+
stems.push(word.slice(0, -3) + 'y');
|
|
159
|
+
}
|
|
160
|
+
else if (word.endsWith('es') && word.length > 3) {
|
|
161
|
+
stems.push(word.slice(0, -2));
|
|
162
|
+
stems.push(word.slice(0, -1));
|
|
163
|
+
}
|
|
164
|
+
else if (word.endsWith('s') && !word.endsWith('ss') && word.length > 3) {
|
|
165
|
+
stems.push(word.slice(0, -1));
|
|
166
|
+
}
|
|
167
|
+
// Plural português (-ões -> -ão)
|
|
168
|
+
if (word.endsWith('oes') && word.length > 4) {
|
|
169
|
+
stems.push(word.slice(0, -3) + 'ao');
|
|
170
|
+
}
|
|
171
|
+
// Remove duplicatas e retorna
|
|
172
|
+
return [...new Set(stems)];
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Expande termos da query usando stemming e sinônimos
|
|
176
|
+
* Retorna um Set com todos os termos expandidos
|
|
177
|
+
*/
|
|
178
|
+
function expandQueryTerms(words) {
|
|
179
|
+
const expanded = new Set();
|
|
180
|
+
for (const word of words) {
|
|
181
|
+
// Adiciona palavra original
|
|
182
|
+
expanded.add(word);
|
|
183
|
+
// Adiciona stems
|
|
184
|
+
const stems = stemWord(word);
|
|
185
|
+
stems.forEach(s => expanded.add(s));
|
|
186
|
+
// Adiciona sinônimos (para palavra original e stems)
|
|
187
|
+
const allForms = [word, ...stems];
|
|
188
|
+
for (const form of allForms) {
|
|
189
|
+
const synonyms = exports.SYNONYMS[form];
|
|
190
|
+
if (synonyms) {
|
|
191
|
+
synonyms.forEach(s => expanded.add(s));
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return expanded;
|
|
196
|
+
}
|
|
15
197
|
/**
|
|
16
198
|
* Divide texto em palavras, considerando underscores, hífens e espaços como separadores
|
|
17
199
|
*/
|
|
@@ -39,10 +221,33 @@ function normalizeWord(word) {
|
|
|
39
221
|
}
|
|
40
222
|
return word;
|
|
41
223
|
}
|
|
224
|
+
/**
|
|
225
|
+
* Verifica se algum termo expandido está presente no texto
|
|
226
|
+
*/
|
|
227
|
+
function hasExpandedTermMatch(text, expandedTerms) {
|
|
228
|
+
for (const term of expandedTerms) {
|
|
229
|
+
if (text.includes(term)) {
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Conta quantos termos expandidos estão presentes no texto
|
|
237
|
+
*/
|
|
238
|
+
function countExpandedTermMatches(text, expandedTerms) {
|
|
239
|
+
let count = 0;
|
|
240
|
+
for (const term of expandedTerms) {
|
|
241
|
+
if (text.includes(term)) {
|
|
242
|
+
count++;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return count;
|
|
246
|
+
}
|
|
42
247
|
/**
|
|
43
248
|
* Busca textual melhorada em conteúdo markdown
|
|
44
|
-
*
|
|
45
|
-
*
|
|
249
|
+
* Usa expansão de termos (stemming + sinônimos) para busca mais flexível
|
|
250
|
+
* Remove duplicatas e considera nome do arquivo
|
|
46
251
|
*/
|
|
47
252
|
function searchInContent(content, query, filePath) {
|
|
48
253
|
const normalizedQuery = normalizeText(query.trim());
|
|
@@ -52,73 +257,69 @@ function searchInContent(content, query, filePath) {
|
|
|
52
257
|
if (filePath && normalizedFilePath.includes(normalizedQuery)) {
|
|
53
258
|
return true;
|
|
54
259
|
}
|
|
55
|
-
// Divide query em palavras
|
|
56
|
-
const queryWords = splitIntoWords(normalizedQuery).filter(w => w.length > 2);
|
|
57
|
-
// Se
|
|
58
|
-
if (queryWords.length
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
? 2 // Exige ambas quando há apenas 2
|
|
85
|
-
: Math.ceil(mainWords.length * 2 / 3); // Pelo menos 2/3 quando há 3+
|
|
86
|
-
if (foundMainWords.length >= requiredMainWords) {
|
|
87
|
-
return true;
|
|
260
|
+
// Divide query em palavras e REMOVE DUPLICATAS
|
|
261
|
+
const queryWords = [...new Set(splitIntoWords(normalizedQuery))].filter(w => w.length > 2);
|
|
262
|
+
// Se não tem palavras válidas, busca string completa
|
|
263
|
+
if (queryWords.length === 0) {
|
|
264
|
+
return normalizedContent.includes(normalizedQuery) ||
|
|
265
|
+
normalizedFilePath.includes(normalizedQuery);
|
|
266
|
+
}
|
|
267
|
+
// Expande termos usando stemming e sinônimos
|
|
268
|
+
const expandedTerms = expandQueryTerms(queryWords);
|
|
269
|
+
// Palavras do nome do arquivo
|
|
270
|
+
const fileWords = splitIntoWords(normalizedFilePath);
|
|
271
|
+
const expandedFileTerms = expandQueryTerms(fileWords);
|
|
272
|
+
// Verifica quantas palavras originais (ou seus equivalentes) foram encontradas
|
|
273
|
+
let matchedOriginalWords = 0;
|
|
274
|
+
let matchedInFileName = 0;
|
|
275
|
+
for (const qw of queryWords) {
|
|
276
|
+
const wordExpansions = expandQueryTerms([qw]);
|
|
277
|
+
// Verifica se alguma expansão está no conteúdo
|
|
278
|
+
const inContent = hasExpandedTermMatch(normalizedContent, wordExpansions);
|
|
279
|
+
// Verifica se alguma expansão está no nome do arquivo
|
|
280
|
+
// Também verifica se alguma expansão do arquivo corresponde às expansões da query
|
|
281
|
+
let inFile = hasExpandedTermMatch(normalizedFilePath, wordExpansions);
|
|
282
|
+
if (!inFile) {
|
|
283
|
+
// Verifica overlap entre expansões da query e do arquivo
|
|
284
|
+
for (const exp of wordExpansions) {
|
|
285
|
+
if (expandedFileTerms.has(exp)) {
|
|
286
|
+
inFile = true;
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
88
289
|
}
|
|
89
290
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
const foundWords = new Set();
|
|
95
|
-
queryWords.forEach((qw, idx) => {
|
|
96
|
-
const normalizedQw = normalizeWord(qw);
|
|
97
|
-
// Verifica no nome do arquivo
|
|
98
|
-
const inFile = wordsInFilePath.some(fw => {
|
|
99
|
-
const normalizedFw = normalizeWord(fw);
|
|
100
|
-
return fw === qw || fw === normalizedQw || normalizedFw === qw || normalizedFw === normalizedQw ||
|
|
101
|
-
fw.includes(qw) || fw.includes(normalizedQw) || normalizedFw.includes(qw) || normalizedFw.includes(normalizedQw) ||
|
|
102
|
-
(normalizedQw.length >= 4 && (normalizedQw.includes(fw) || qw.includes(fw) || normalizedQw.includes(normalizedFw)));
|
|
103
|
-
});
|
|
104
|
-
// Verifica no conteúdo
|
|
105
|
-
const inContent = normalizedContent.includes(qw) || normalizedContent.includes(normalizedQw);
|
|
106
|
-
if (inFile || inContent) {
|
|
107
|
-
foundWords.add(idx);
|
|
291
|
+
if (inContent || inFile) {
|
|
292
|
+
matchedOriginalWords++;
|
|
293
|
+
if (inFile) {
|
|
294
|
+
matchedInFileName++;
|
|
108
295
|
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// LÓGICA DE MATCH FLEXÍVEL:
|
|
299
|
+
// 1. Se encontrou 2+ palavras no nome do arquivo → MATCH (alta confiança)
|
|
300
|
+
if (matchedInFileName >= 2) {
|
|
301
|
+
return true;
|
|
302
|
+
}
|
|
303
|
+
// 2. Se encontrou 1 palavra no nome do arquivo E 1+ no conteúdo → MATCH
|
|
304
|
+
if (matchedInFileName >= 1 && matchedOriginalWords >= 2) {
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
// 3. Para queries com múltiplas palavras: precisa encontrar pelo menos 50%
|
|
308
|
+
if (queryWords.length > 1) {
|
|
309
|
+
const requiredMatches = Math.max(2, Math.ceil(queryWords.length * 0.5));
|
|
310
|
+
if (matchedOriginalWords >= requiredMatches) {
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
// Fallback: se encontrou pelo menos 2 palavras, aceita
|
|
314
|
+
if (matchedOriginalWords >= 2) {
|
|
112
315
|
return true;
|
|
113
316
|
}
|
|
114
|
-
return false;
|
|
115
317
|
}
|
|
116
|
-
//
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
normalizedFilePath.includes(normalizedQueryWord);
|
|
318
|
+
// 4. Para query de uma palavra: basta encontrar em algum lugar
|
|
319
|
+
if (queryWords.length === 1 && matchedOriginalWords >= 1) {
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
return false;
|
|
122
323
|
}
|
|
123
324
|
/**
|
|
124
325
|
* Extrai título do arquivo markdown (primeiro # ou nome do arquivo)
|
|
@@ -188,61 +389,95 @@ function extractExcerpt(content, query, contextLines = 3) {
|
|
|
188
389
|
}
|
|
189
390
|
/**
|
|
190
391
|
* Calcula relevância melhorada baseada em ocorrências, nome do arquivo e título
|
|
392
|
+
* Usa expansão de termos (stemming + sinônimos) para melhor scoring
|
|
191
393
|
*/
|
|
192
394
|
function calculateRelevance(content, query, filePath) {
|
|
193
395
|
const normalizedQuery = normalizeText(query);
|
|
194
396
|
const normalizedContent = normalizeText(content);
|
|
195
397
|
const normalizedFilePath = filePath ? normalizeText(filePath) : '';
|
|
196
|
-
|
|
398
|
+
// Remove duplicatas das palavras da query
|
|
399
|
+
const queryWords = [...new Set(splitIntoWords(normalizedQuery))].filter(w => w.length > 2);
|
|
197
400
|
let score = 0;
|
|
198
401
|
// Bônus alto se encontra no nome do arquivo (busca exata)
|
|
199
402
|
if (filePath && normalizedFilePath.includes(normalizedQuery)) {
|
|
200
403
|
score += 50;
|
|
201
404
|
}
|
|
202
|
-
//
|
|
405
|
+
// Expande termos do arquivo para comparação
|
|
406
|
+
const fileWords = splitIntoWords(normalizedFilePath);
|
|
407
|
+
const expandedFileTerms = expandQueryTerms(fileWords);
|
|
408
|
+
// Bônus se palavras da query (ou sinônimos/stems) correspondem ao nome do arquivo
|
|
203
409
|
if (filePath) {
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
if (
|
|
209
|
-
score +=
|
|
410
|
+
for (const qw of queryWords) {
|
|
411
|
+
const wordExpansions = expandQueryTerms([qw]);
|
|
412
|
+
// Verifica match direto
|
|
413
|
+
for (const exp of wordExpansions) {
|
|
414
|
+
if (normalizedFilePath.includes(exp)) {
|
|
415
|
+
score += 20; // Bônus alto por match no nome do arquivo
|
|
416
|
+
break;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
// Verifica overlap com expansões do arquivo
|
|
420
|
+
for (const exp of wordExpansions) {
|
|
421
|
+
if (expandedFileTerms.has(exp)) {
|
|
422
|
+
score += 15; // Bônus por sinônimo/stem encontrado
|
|
423
|
+
break;
|
|
210
424
|
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
213
427
|
}
|
|
214
428
|
// Bônus se encontra no título (primeiro H1)
|
|
215
429
|
const h1Match = content.match(/^#\s+(.+)$/m);
|
|
216
430
|
if (h1Match) {
|
|
217
431
|
const normalizedTitle = normalizeText(h1Match[1]);
|
|
432
|
+
const expandedTitleTerms = expandQueryTerms(splitIntoWords(normalizedTitle));
|
|
218
433
|
if (normalizedTitle.includes(normalizedQuery)) {
|
|
219
434
|
score += 30;
|
|
220
435
|
}
|
|
221
|
-
// Bônus adicional se cada palavra da query está no título
|
|
222
|
-
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
|
|
436
|
+
// Bônus adicional se cada palavra da query (ou sinônimo) está no título
|
|
437
|
+
for (const word of queryWords) {
|
|
438
|
+
const wordExpansions = expandQueryTerms([word]);
|
|
439
|
+
for (const exp of wordExpansions) {
|
|
440
|
+
if (normalizedTitle.includes(exp) || expandedTitleTerms.has(exp)) {
|
|
441
|
+
score += 8;
|
|
442
|
+
break;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
// Conta ocorrências de cada palavra (e seus sinônimos/stems) no conteúdo
|
|
448
|
+
for (const word of queryWords) {
|
|
449
|
+
const wordExpansions = expandQueryTerms([word]);
|
|
450
|
+
let wordScore = 0;
|
|
451
|
+
for (const exp of wordExpansions) {
|
|
452
|
+
const escapedExp = exp.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
453
|
+
const matches = (normalizedContent.match(new RegExp(escapedExp, 'g')) || []).length;
|
|
454
|
+
if (matches > 0) {
|
|
455
|
+
// Palavra original vale mais, sinônimos valem um pouco menos
|
|
456
|
+
if (exp === word) {
|
|
457
|
+
wordScore += matches * 3;
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
wordScore += matches * 1.5;
|
|
461
|
+
}
|
|
226
462
|
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// Conta ocorrências de cada palavra no conteúdo
|
|
230
|
-
queryWords.forEach(word => {
|
|
231
|
-
const normalizedWord = normalizeWord(word);
|
|
232
|
-
const contentMatches = (normalizedContent.match(new RegExp(word.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g')) || []).length;
|
|
233
|
-
const normalizedMatches = (normalizedContent.match(new RegExp(normalizedWord.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g')) || []).length;
|
|
234
|
-
score += (contentMatches + normalizedMatches) * 2;
|
|
463
|
+
}
|
|
464
|
+
score += Math.min(wordScore, 20); // Cap por palavra para evitar spam
|
|
235
465
|
// Bônus adicional se palavra está no nome do arquivo
|
|
236
|
-
|
|
237
|
-
|
|
466
|
+
for (const exp of wordExpansions) {
|
|
467
|
+
if (normalizedFilePath.includes(exp)) {
|
|
468
|
+
score += 10;
|
|
469
|
+
break;
|
|
470
|
+
}
|
|
238
471
|
}
|
|
239
|
-
}
|
|
472
|
+
}
|
|
240
473
|
// Se query de uma palavra, também conta ocorrências da query completa
|
|
241
474
|
if (queryWords.length === 0 && normalizedQuery.length > 2) {
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
475
|
+
const queryExpansions = expandQueryTerms([normalizedQuery]);
|
|
476
|
+
for (const exp of queryExpansions) {
|
|
477
|
+
const escapedExp = exp.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
478
|
+
const matches = (normalizedContent.match(new RegExp(escapedExp, 'g')) || []).length;
|
|
479
|
+
score += matches * 2;
|
|
480
|
+
}
|
|
246
481
|
}
|
|
247
482
|
// Normaliza para 0-100
|
|
248
483
|
return Math.min(100, score);
|
package/dist/utils/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/utils/search.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/utils/search.ts"],"names":[],"mappings":"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"}
|