@get-technology-inc/jamf-docs-mcp-server 1.4.1 → 1.5.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.
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -4
- package/dist/constants.js.map +1 -1
- package/dist/index.js +17 -5
- package/dist/index.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +3 -1
- package/dist/resources/index.js.map +1 -1
- package/dist/schemas/index.d.ts +30 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +49 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/output.d.ts +30 -0
- package/dist/schemas/output.d.ts.map +1 -1
- package/dist/schemas/output.js +27 -0
- package/dist/schemas/output.js.map +1 -1
- package/dist/services/cache.d.ts.map +1 -1
- package/dist/services/cache.js +3 -1
- package/dist/services/cache.js.map +1 -1
- package/dist/services/glossary.d.ts +45 -0
- package/dist/services/glossary.d.ts.map +1 -0
- package/dist/services/glossary.js +323 -0
- package/dist/services/glossary.js.map +1 -0
- package/dist/services/logging.d.ts +32 -0
- package/dist/services/logging.d.ts.map +1 -0
- package/dist/services/logging.js +61 -0
- package/dist/services/logging.js.map +1 -0
- package/dist/services/metadata.d.ts.map +1 -1
- package/dist/services/metadata.js +8 -6
- package/dist/services/metadata.js.map +1 -1
- package/dist/services/scraper.d.ts +7 -0
- package/dist/services/scraper.d.ts.map +1 -1
- package/dist/services/scraper.js +155 -149
- package/dist/services/scraper.js.map +1 -1
- package/dist/tools/batch-get-articles.d.ts +14 -0
- package/dist/tools/batch-get-articles.d.ts.map +1 -0
- package/dist/tools/batch-get-articles.js +240 -0
- package/dist/tools/batch-get-articles.js.map +1 -0
- package/dist/tools/get-article.d.ts.map +1 -1
- package/dist/tools/get-article.js +6 -4
- package/dist/tools/get-article.js.map +1 -1
- package/dist/tools/get-toc.d.ts.map +1 -1
- package/dist/tools/get-toc.js +27 -18
- package/dist/tools/get-toc.js.map +1 -1
- package/dist/tools/glossary-lookup.d.ts +7 -0
- package/dist/tools/glossary-lookup.d.ts.map +1 -0
- package/dist/tools/glossary-lookup.js +183 -0
- package/dist/tools/glossary-lookup.js.map +1 -0
- package/dist/tools/list-products.d.ts.map +1 -1
- package/dist/tools/list-products.js +8 -1
- package/dist/tools/list-products.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +93 -62
- package/dist/tools/search.js.map +1 -1
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +57 -8
- package/dist/transport/http.js.map +1 -1
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +4 -2
- package/dist/transport/index.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/concurrency.d.ts +6 -0
- package/dist/utils/concurrency.d.ts.map +1 -0
- package/dist/utils/concurrency.js +24 -0
- package/dist/utils/concurrency.js.map +1 -0
- package/dist/utils/progress.d.ts +7 -1
- package/dist/utils/progress.d.ts.map +1 -1
- package/dist/utils/progress.js +16 -5
- package/dist/utils/progress.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glossary service for parsing and looking up Jamf documentation glossary terms
|
|
3
|
+
*
|
|
4
|
+
* Jamf's glossary uses DITA glossentry format where each term is a separate page:
|
|
5
|
+
* <h1 class="glossterm">Term Name</h1>
|
|
6
|
+
* <div class="glossdef"><p>Definition text</p></div>
|
|
7
|
+
*
|
|
8
|
+
* Also supports fallback formats:
|
|
9
|
+
* - Definition list (<dl>/<dt>/<dd>)
|
|
10
|
+
* - Heading + paragraph (h2/h3 followed by <p>)
|
|
11
|
+
*
|
|
12
|
+
* Uses fuse.js for fuzzy ranking of collected entries.
|
|
13
|
+
*/
|
|
14
|
+
import Fuse from 'fuse.js';
|
|
15
|
+
import * as cheerio from 'cheerio';
|
|
16
|
+
import TurndownService from 'turndown';
|
|
17
|
+
import { CACHE_TTL, SELECTORS, TOKEN_CONFIG, DEFAULT_LOCALE, } from '../constants.js';
|
|
18
|
+
import { searchDocumentation, fetchHtml, transformToBackendUrl, transformToFrontendUrl, } from './scraper.js';
|
|
19
|
+
import { cache } from './cache.js';
|
|
20
|
+
import { createLogger } from './logging.js';
|
|
21
|
+
import { estimateTokens } from './tokenizer.js';
|
|
22
|
+
import { limitConcurrency } from '../utils/concurrency.js';
|
|
23
|
+
const log = createLogger('glossary');
|
|
24
|
+
const turndown = new TurndownService({
|
|
25
|
+
headingStyle: 'atx',
|
|
26
|
+
codeBlockStyle: 'fenced',
|
|
27
|
+
bulletListMarker: '-',
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Parse glossary entries from HTML content.
|
|
31
|
+
*
|
|
32
|
+
* Priority order:
|
|
33
|
+
* 1. DITA glossentry format (h1.glossterm + .glossdef) — Jamf's actual format
|
|
34
|
+
* 2. Definition list (<dl>/<dt>/<dd>)
|
|
35
|
+
* 3. Heading + paragraph (h2/h3 followed by <p>)
|
|
36
|
+
* 4. Fallback: h1 title + article body content
|
|
37
|
+
*/
|
|
38
|
+
export function parseGlossaryEntries(html, sourceUrl, product) {
|
|
39
|
+
const $ = cheerio.load(html);
|
|
40
|
+
// Remove unwanted elements
|
|
41
|
+
$(SELECTORS.REMOVE).remove();
|
|
42
|
+
// 1. Try DITA glossentry format (Jamf's actual structure)
|
|
43
|
+
const ditaEntries = parseDitaGlossentry($, sourceUrl, product);
|
|
44
|
+
if (ditaEntries.length > 0) {
|
|
45
|
+
return ditaEntries;
|
|
46
|
+
}
|
|
47
|
+
// 2. Try <dl>/<dt>/<dd> format
|
|
48
|
+
const dlEntries = parseDlFormat($, sourceUrl, product);
|
|
49
|
+
if (dlEntries.length > 0) {
|
|
50
|
+
return dlEntries;
|
|
51
|
+
}
|
|
52
|
+
// 3. Try heading + paragraph format
|
|
53
|
+
const headingEntries = parseHeadingFormat($, sourceUrl, product);
|
|
54
|
+
if (headingEntries.length > 0) {
|
|
55
|
+
return headingEntries;
|
|
56
|
+
}
|
|
57
|
+
// 4. Fallback: use h1 as term name + article body as definition
|
|
58
|
+
return parseFallbackFormat($, sourceUrl, product);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Parse DITA glossentry format:
|
|
62
|
+
* <h1 class="glossterm">Term</h1>
|
|
63
|
+
* <div class="glossdef"><p>Definition</p></div>
|
|
64
|
+
*
|
|
65
|
+
* Each Jamf glossary page contains exactly one term.
|
|
66
|
+
*/
|
|
67
|
+
function parseDitaGlossentry($, sourceUrl, product) {
|
|
68
|
+
// Look for the DITA glossterm heading
|
|
69
|
+
const glossterm = $('h1.glossterm, .glossterm').first();
|
|
70
|
+
if (glossterm.length === 0) {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
const term = glossterm.text().trim();
|
|
74
|
+
if (term === '') {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
// Look for the glossdef container
|
|
78
|
+
const glossdef = $('.glossdef, .abstract.glossdef, div.glossdef').first();
|
|
79
|
+
let definition = '';
|
|
80
|
+
if (glossdef.length > 0) {
|
|
81
|
+
const defHtml = glossdef.html() ?? '';
|
|
82
|
+
definition = turndown.turndown(defHtml).trim();
|
|
83
|
+
}
|
|
84
|
+
// If no glossdef, try to get any content after the heading
|
|
85
|
+
if (definition === '') {
|
|
86
|
+
const article = $('article').first();
|
|
87
|
+
if (article.length > 0) {
|
|
88
|
+
// Get all content except the h1 itself
|
|
89
|
+
const clone = article.clone();
|
|
90
|
+
clone.find('h1').remove();
|
|
91
|
+
const bodyHtml = clone.html() ?? '';
|
|
92
|
+
definition = turndown.turndown(bodyHtml).trim();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (definition === '') {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
return [{ term, definition, url: sourceUrl, product }];
|
|
99
|
+
}
|
|
100
|
+
function parseDlFormat($, sourceUrl, product) {
|
|
101
|
+
const entries = [];
|
|
102
|
+
const dlElements = $('dl');
|
|
103
|
+
if (dlElements.length === 0) {
|
|
104
|
+
return entries;
|
|
105
|
+
}
|
|
106
|
+
dlElements.each((_, dl) => {
|
|
107
|
+
const dtElements = $(dl).children('dt');
|
|
108
|
+
dtElements.each((_idx, dt) => {
|
|
109
|
+
const term = $(dt).text().trim();
|
|
110
|
+
if (term === '') {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const ddParts = [];
|
|
114
|
+
let next = $(dt).next();
|
|
115
|
+
while (next.length > 0 && next.is('dd')) {
|
|
116
|
+
const ddHtml = next.html() ?? '';
|
|
117
|
+
ddParts.push(turndown.turndown(ddHtml).trim());
|
|
118
|
+
next = next.next();
|
|
119
|
+
}
|
|
120
|
+
const definition = ddParts.join('\n\n');
|
|
121
|
+
if (definition !== '') {
|
|
122
|
+
entries.push({ term, definition, url: sourceUrl, product });
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
return entries;
|
|
127
|
+
}
|
|
128
|
+
function parseHeadingFormat($, sourceUrl, product) {
|
|
129
|
+
const entries = [];
|
|
130
|
+
const contentArea = $(SELECTORS.CONTENT).first();
|
|
131
|
+
if (contentArea.length === 0) {
|
|
132
|
+
return entries;
|
|
133
|
+
}
|
|
134
|
+
const headings = contentArea.find('h2, h3');
|
|
135
|
+
if (headings.length === 0) {
|
|
136
|
+
return entries;
|
|
137
|
+
}
|
|
138
|
+
headings.each((_, heading) => {
|
|
139
|
+
const term = $(heading).text().trim();
|
|
140
|
+
if (term === '') {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const level = heading.tagName;
|
|
144
|
+
const parts = [];
|
|
145
|
+
let next = $(heading).next();
|
|
146
|
+
while (next.length > 0) {
|
|
147
|
+
const tag = next.prop('tagName')?.toLowerCase() ?? '';
|
|
148
|
+
if ((level === 'h2' && (tag === 'h2' || tag === 'h1')) ||
|
|
149
|
+
(level === 'h3' && (tag === 'h3' || tag === 'h2' || tag === 'h1'))) {
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
const html = next.html() ?? '';
|
|
153
|
+
const text = turndown.turndown(html).trim();
|
|
154
|
+
if (text !== '') {
|
|
155
|
+
parts.push(text);
|
|
156
|
+
}
|
|
157
|
+
next = next.next();
|
|
158
|
+
}
|
|
159
|
+
const definition = parts.join('\n\n');
|
|
160
|
+
if (definition !== '') {
|
|
161
|
+
entries.push({ term, definition, url: sourceUrl, product });
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
return entries;
|
|
165
|
+
}
|
|
166
|
+
function parseFallbackFormat($, sourceUrl, product) {
|
|
167
|
+
// Try to use h1 as term name instead of generic "Glossary"
|
|
168
|
+
const h1 = $('h1').first().text().trim();
|
|
169
|
+
const termName = h1 !== '' ? h1 : 'Glossary';
|
|
170
|
+
const contentArea = $(SELECTORS.CONTENT).first();
|
|
171
|
+
if (contentArea.length === 0) {
|
|
172
|
+
return [];
|
|
173
|
+
}
|
|
174
|
+
const html = contentArea.html() ?? '';
|
|
175
|
+
const content = turndown.turndown(html).trim();
|
|
176
|
+
if (content === '') {
|
|
177
|
+
return [];
|
|
178
|
+
}
|
|
179
|
+
return [{
|
|
180
|
+
term: termName,
|
|
181
|
+
definition: content,
|
|
182
|
+
url: sourceUrl,
|
|
183
|
+
product,
|
|
184
|
+
}];
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Search for matching glossary entries using fuse.js fuzzy matching.
|
|
188
|
+
* Used to rank and filter entries collected from multiple glossary pages.
|
|
189
|
+
*/
|
|
190
|
+
export function searchGlossaryEntries(entries, term) {
|
|
191
|
+
if (entries.length === 0) {
|
|
192
|
+
return [];
|
|
193
|
+
}
|
|
194
|
+
const fuse = new Fuse(entries, {
|
|
195
|
+
keys: [
|
|
196
|
+
{ name: 'term', weight: 0.7 },
|
|
197
|
+
{ name: 'definition', weight: 0.3 },
|
|
198
|
+
],
|
|
199
|
+
threshold: 0.5,
|
|
200
|
+
includeScore: true,
|
|
201
|
+
ignoreLocation: true,
|
|
202
|
+
minMatchCharLength: 2,
|
|
203
|
+
});
|
|
204
|
+
const results = fuse.search(term);
|
|
205
|
+
// If fuse.js returns no results, return all entries as-is
|
|
206
|
+
// (the search API already filtered for relevance)
|
|
207
|
+
if (results.length === 0) {
|
|
208
|
+
return entries;
|
|
209
|
+
}
|
|
210
|
+
return results.map(r => r.item);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Look up a glossary term across Jamf documentation.
|
|
214
|
+
*
|
|
215
|
+
* Strategy:
|
|
216
|
+
* 1. Search via Zoomin API with docType=glossary to find glossary pages
|
|
217
|
+
* 2. Fetch and parse each glossary page (with caching)
|
|
218
|
+
* 3. Use fuse.js to rank matching terms
|
|
219
|
+
*/
|
|
220
|
+
export async function lookupGlossaryTerm(params) {
|
|
221
|
+
const { term, product, language, maxTokens = TOKEN_CONFIG.DEFAULT_MAX_TOKENS } = params;
|
|
222
|
+
const locale = language ?? DEFAULT_LOCALE;
|
|
223
|
+
log.info(`Looking up glossary term: "${term}" (product=${product ?? 'all'}, locale=${locale})`);
|
|
224
|
+
// Step 1: Search for glossary pages via Zoomin API
|
|
225
|
+
const searchParams = {
|
|
226
|
+
query: term,
|
|
227
|
+
product,
|
|
228
|
+
docType: 'glossary',
|
|
229
|
+
language: locale,
|
|
230
|
+
limit: 10,
|
|
231
|
+
page: 1,
|
|
232
|
+
};
|
|
233
|
+
const searchResult = await searchDocumentation(searchParams);
|
|
234
|
+
// If docType filter was relaxed, it means no actual glossary pages were found
|
|
235
|
+
const docTypeRelaxed = searchResult.filterRelaxation?.removed.includes('docType') === true;
|
|
236
|
+
if (searchResult.results.length === 0 || docTypeRelaxed) {
|
|
237
|
+
log.info(docTypeRelaxed
|
|
238
|
+
? 'docType filter was relaxed — no actual glossary pages found'
|
|
239
|
+
: 'No glossary pages found via search API');
|
|
240
|
+
return {
|
|
241
|
+
entries: [],
|
|
242
|
+
totalMatches: 0,
|
|
243
|
+
tokenInfo: { tokenCount: 0, truncated: false, maxTokens },
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
// Step 2: Fetch and parse glossary pages concurrently (with caching)
|
|
247
|
+
const seenUrls = new Set();
|
|
248
|
+
const uniqueResults = searchResult.results.filter(r => {
|
|
249
|
+
if (seenUrls.has(r.url)) {
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
seenUrls.add(r.url);
|
|
253
|
+
return true;
|
|
254
|
+
});
|
|
255
|
+
const tasks = uniqueResults.map(result => async () => {
|
|
256
|
+
try {
|
|
257
|
+
return await fetchAndParseGlossaryPage(result.url, locale, result.product ?? undefined);
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
log.warning(`Failed to fetch glossary page ${result.url}: ${String(error)}`);
|
|
261
|
+
return [];
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
const fetchedEntries = await limitConcurrency(tasks, 3);
|
|
265
|
+
const allEntries = fetchedEntries.flat();
|
|
266
|
+
if (allEntries.length === 0) {
|
|
267
|
+
return {
|
|
268
|
+
entries: [],
|
|
269
|
+
totalMatches: 0,
|
|
270
|
+
tokenInfo: { tokenCount: 0, truncated: false, maxTokens },
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
// Step 3: Rank with fuse.js (search API already filtered, fuse.js re-ranks)
|
|
274
|
+
const matchedEntries = searchGlossaryEntries(allEntries, term);
|
|
275
|
+
// Step 4: Apply token limit
|
|
276
|
+
const includedEntries = [];
|
|
277
|
+
let runningTokens = 0;
|
|
278
|
+
let truncated = false;
|
|
279
|
+
for (const entry of matchedEntries) {
|
|
280
|
+
const entryTokens = estimateTokens(`${entry.term}: ${entry.definition}`);
|
|
281
|
+
if (runningTokens + entryTokens > maxTokens) {
|
|
282
|
+
truncated = true;
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
includedEntries.push(entry);
|
|
286
|
+
runningTokens += entryTokens;
|
|
287
|
+
}
|
|
288
|
+
const tokenInfo = {
|
|
289
|
+
tokenCount: runningTokens,
|
|
290
|
+
truncated,
|
|
291
|
+
maxTokens,
|
|
292
|
+
};
|
|
293
|
+
log.info(`Found ${matchedEntries.length} matches, returning ${includedEntries.length} (truncated=${String(truncated)})`);
|
|
294
|
+
return {
|
|
295
|
+
entries: includedEntries,
|
|
296
|
+
totalMatches: matchedEntries.length,
|
|
297
|
+
tokenInfo,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Fetch a glossary page and parse its entries (with caching)
|
|
302
|
+
*/
|
|
303
|
+
async function fetchAndParseGlossaryPage(url, locale, product) {
|
|
304
|
+
const cacheKey = `${locale}:glossary:${url}`;
|
|
305
|
+
// Check cache
|
|
306
|
+
const cached = await cache.get(cacheKey);
|
|
307
|
+
if (cached !== null) {
|
|
308
|
+
log.info(`Cache hit for glossary page: ${url}`);
|
|
309
|
+
return cached;
|
|
310
|
+
}
|
|
311
|
+
// Fetch raw HTML (reuses scraper's throttle + error handling)
|
|
312
|
+
log.info(`Fetching glossary page: ${url}`);
|
|
313
|
+
const backendUrl = transformToBackendUrl(url);
|
|
314
|
+
const html = await fetchHtml(backendUrl, locale);
|
|
315
|
+
// Transform URL to frontend format for display
|
|
316
|
+
const displayUrl = transformToFrontendUrl(url);
|
|
317
|
+
const entries = parseGlossaryEntries(html, displayUrl, product);
|
|
318
|
+
// Cache parsed entries
|
|
319
|
+
await cache.set(cacheKey, entries, CACHE_TTL.ARTICLE_CONTENT);
|
|
320
|
+
log.info(`Cached ${entries.length} glossary entries from: ${url}`);
|
|
321
|
+
return entries;
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=glossary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glossary.js","sourceRoot":"","sources":["../../src/services/glossary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,eAAe,MAAM,UAAU,CAAC;AAEvC,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,GAGf,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAErC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;IACnC,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,QAAQ;IACxB,gBAAgB,EAAE,GAAG;CACtB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,SAAiB,EAAE,OAAgB;IACpF,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7B,2BAA2B;IAC3B,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IAE7B,0DAA0D;IAC1D,MAAM,WAAW,GAAG,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,+BAA+B;IAC/B,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oCAAoC;IACpC,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,gEAAgE;IAChE,OAAO,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,CAAqB,EAAE,SAAiB,EAAE,OAAgB;IACrF,sCAAsC;IACtC,MAAM,SAAS,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IACxD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAE/B,kCAAkC;IAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,6CAA6C,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1E,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACtC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,2DAA2D;IAC3D,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,uCAAuC;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACpC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAErC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,aAAa,CAAC,CAAqB,EAAE,SAAiB,EAAE,OAAgB;IAC/E,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE5B,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/C,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAqB,EAAE,SAAiB,EAAE,OAAgB;IACpF,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,OAAO,CAAC;IAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,OAAO,CAAC;IAAC,CAAC;IAE9C,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAE5B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;gBAClD,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAqB,EAAE,SAAiB,EAAE,OAAgB;IACrF,2DAA2D;IAC3D,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IAE7C,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAE5C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAElC,OAAO,CAAC;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,OAAO;YACnB,GAAG,EAAE,SAAS;YACd,OAAO;SACR,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAwB,EAAE,IAAY;IAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAExC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;QAC7B,IAAI,EAAE;YACJ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YAC7B,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE;SACpC;QACD,SAAS,EAAE,GAAG;QACd,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,CAAC;KACtB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,0DAA0D;IAC1D,kDAAkD;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAKxC;IACC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,GAAG,YAAY,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC;IACxF,MAAM,MAAM,GAAG,QAAQ,IAAI,cAAc,CAAC;IAE1C,GAAG,CAAC,IAAI,CAAC,8BAA8B,IAAI,cAAc,OAAO,IAAI,KAAK,YAAY,MAAM,GAAG,CAAC,CAAC;IAEhG,mDAAmD;IACnD,MAAM,YAAY,GAAiB;QACjC,KAAK,EAAE,IAAI;QACX,OAAO;QACP,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,CAAC;KACR,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAE7D,8EAA8E;IAC9E,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAE3F,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,cAAc;YACrB,CAAC,CAAC,6DAA6D;YAC/D,CAAC,CAAC,wCAAwC,CAAC,CAAC;QAC9C,OAAO;YACL,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;SAC1D,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACpD,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;QACnD,IAAI,CAAC;YACH,OAAO,MAAM,yBAAyB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,CAAC,iCAAiC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IAEzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;SAC1D,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,MAAM,cAAc,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAE/D,4BAA4B;IAC5B,MAAM,eAAe,GAAoB,EAAE,CAAC;IAC5C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACzE,IAAI,aAAa,GAAG,WAAW,GAAG,SAAS,EAAE,CAAC;YAC5C,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM;QACR,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,aAAa,IAAI,WAAW,CAAC;IAC/B,CAAC;IAED,MAAM,SAAS,GAAc;QAC3B,UAAU,EAAE,aAAa;QACzB,SAAS;QACT,SAAS;KACV,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,SAAS,cAAc,CAAC,MAAM,uBAAuB,eAAe,CAAC,MAAM,eAAe,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEzH,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,YAAY,EAAE,cAAc,CAAC,MAAM;QACnC,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,yBAAyB,CACtC,GAAW,EACX,MAAc,EACd,OAAgB;IAEhB,MAAM,QAAQ,GAAG,GAAG,MAAM,aAAa,GAAG,EAAE,CAAC;IAE7C,cAAc;IACd,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAkB,QAAQ,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8DAA8D;IAC9D,GAAG,CAAC,IAAI,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEjD,+CAA+C;IAC/C,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAEhE,uBAAuB;IACvB,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9D,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC,CAAC;IAEnE,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logging service for MCP protocol
|
|
3
|
+
*
|
|
4
|
+
* Provides dual output: MCP notifications (visible to AI clients) + stderr (visible to developers).
|
|
5
|
+
* Log level filtering for MCP notifications is handled by the SDK (logging/setLevel).
|
|
6
|
+
*/
|
|
7
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
+
/**
|
|
9
|
+
* Register the MCP server instance for sending log notifications.
|
|
10
|
+
* Must be called after server creation but before tools are invoked.
|
|
11
|
+
*/
|
|
12
|
+
export declare function setServer(server: McpServer): void;
|
|
13
|
+
/**
|
|
14
|
+
* Logger instance bound to a specific logger name.
|
|
15
|
+
*/
|
|
16
|
+
export interface Logger {
|
|
17
|
+
debug: (data: unknown) => void;
|
|
18
|
+
info: (data: unknown) => void;
|
|
19
|
+
notice: (data: unknown) => void;
|
|
20
|
+
warning: (data: unknown) => void;
|
|
21
|
+
error: (data: unknown) => void;
|
|
22
|
+
critical: (data: unknown) => void;
|
|
23
|
+
alert: (data: unknown) => void;
|
|
24
|
+
emergency: (data: unknown) => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a named logger instance.
|
|
28
|
+
*
|
|
29
|
+
* @param name - Logger name identifying the source module (e.g., 'search', 'cache', 'scraper')
|
|
30
|
+
*/
|
|
31
|
+
export declare function createLogger(name: string): Logger;
|
|
32
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/services/logging.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/B,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAiCD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWjD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured logging service for MCP protocol
|
|
3
|
+
*
|
|
4
|
+
* Provides dual output: MCP notifications (visible to AI clients) + stderr (visible to developers).
|
|
5
|
+
* Log level filtering for MCP notifications is handled by the SDK (logging/setLevel).
|
|
6
|
+
*/
|
|
7
|
+
let mcpServer = null;
|
|
8
|
+
/**
|
|
9
|
+
* Register the MCP server instance for sending log notifications.
|
|
10
|
+
* Must be called after server creation but before tools are invoked.
|
|
11
|
+
*/
|
|
12
|
+
export function setServer(server) {
|
|
13
|
+
mcpServer = server;
|
|
14
|
+
}
|
|
15
|
+
function writeStderr(level, loggerName, data) {
|
|
16
|
+
const label = level.toUpperCase();
|
|
17
|
+
let message;
|
|
18
|
+
if (typeof data === 'string') {
|
|
19
|
+
message = data;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
try {
|
|
23
|
+
message = JSON.stringify(data);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
message = String(data);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
console.error(`[${label}] [${loggerName}] ${message}`);
|
|
30
|
+
}
|
|
31
|
+
function sendMcpLog(level, loggerName, data) {
|
|
32
|
+
if (mcpServer === null) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Fire-and-forget: don't await, don't throw
|
|
36
|
+
mcpServer.sendLoggingMessage({ level, logger: loggerName, data }).catch(() => {
|
|
37
|
+
// Silently ignore send failures (server may not be connected yet)
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function log(level, loggerName, data) {
|
|
41
|
+
writeStderr(level, loggerName, data);
|
|
42
|
+
sendMcpLog(level, loggerName, data);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a named logger instance.
|
|
46
|
+
*
|
|
47
|
+
* @param name - Logger name identifying the source module (e.g., 'search', 'cache', 'scraper')
|
|
48
|
+
*/
|
|
49
|
+
export function createLogger(name) {
|
|
50
|
+
return {
|
|
51
|
+
debug: (data) => { log('debug', name, data); },
|
|
52
|
+
info: (data) => { log('info', name, data); },
|
|
53
|
+
notice: (data) => { log('notice', name, data); },
|
|
54
|
+
warning: (data) => { log('warning', name, data); },
|
|
55
|
+
error: (data) => { log('error', name, data); },
|
|
56
|
+
critical: (data) => { log('critical', name, data); },
|
|
57
|
+
alert: (data) => { log('alert', name, data); },
|
|
58
|
+
emergency: (data) => { log('emergency', name, data); },
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/services/logging.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,IAAI,SAAS,GAAqB,IAAI,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAiB;IACzC,SAAS,GAAG,MAAM,CAAC;AACrB,CAAC;AAgBD,SAAS,WAAW,CAAC,KAAmB,EAAE,UAAkB,EAAE,IAAa;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,OAAe,CAAC;IACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,UAAU,CAAC,KAAmB,EAAE,UAAkB,EAAE,IAAa;IACxE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,4CAA4C;IAC5C,SAAS,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QAC3E,kEAAkE;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,GAAG,CAAC,KAAmB,EAAE,UAAkB,EAAE,IAAa;IACjE,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACrC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO;QACL,KAAK,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3D,KAAK,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAChE,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/services/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/services/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAWzB,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA+HD;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CA+CtE;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBxB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIlF;AAmHD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CA8ClE;AAMD;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8B/E;AAMD;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAgBD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,EAAE,CAAC;IACJ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAeD"}
|
|
@@ -9,6 +9,8 @@ import * as cheerio from 'cheerio';
|
|
|
9
9
|
import { DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS, REQUEST_CONFIG, CACHE_TTL } from '../constants.js';
|
|
10
10
|
import { extractVersionFromBundleId } from '../utils/bundle.js';
|
|
11
11
|
import { cache } from './cache.js';
|
|
12
|
+
import { createLogger } from './logging.js';
|
|
13
|
+
const log = createLogger('metadata');
|
|
12
14
|
// ============================================================================
|
|
13
15
|
// API Helpers
|
|
14
16
|
// ============================================================================
|
|
@@ -49,7 +51,7 @@ async function discoverProductVersions(productId) {
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
catch (error) {
|
|
52
|
-
|
|
54
|
+
log.error(`Error discovering versions for ${productId}: ${String(error)}`);
|
|
53
55
|
}
|
|
54
56
|
// Sort versions in descending order (newest first)
|
|
55
57
|
return Array.from(versions).sort((a, b) => {
|
|
@@ -98,7 +100,7 @@ async function fetchProductMetadata(productId) {
|
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
catch (error) {
|
|
101
|
-
|
|
103
|
+
log.error(`Error fetching metadata for ${productId}: ${String(error)}`);
|
|
102
104
|
}
|
|
103
105
|
return null;
|
|
104
106
|
}
|
|
@@ -121,7 +123,7 @@ export async function getProductsMetadata() {
|
|
|
121
123
|
return { productId, metadata };
|
|
122
124
|
}
|
|
123
125
|
catch (error) {
|
|
124
|
-
|
|
126
|
+
log.error(`Failed to fetch metadata for ${productId}: ${String(error)}`);
|
|
125
127
|
return { productId, metadata: null };
|
|
126
128
|
}
|
|
127
129
|
}));
|
|
@@ -164,7 +166,7 @@ export async function getBundleIdForVersion(productId, version) {
|
|
|
164
166
|
}
|
|
165
167
|
// Check if requested version is available
|
|
166
168
|
if (!product.availableVersions.includes(version)) {
|
|
167
|
-
|
|
169
|
+
log.warning(`Version ${version} not available for ${productId}. Available: ${product.availableVersions.join(', ')}`);
|
|
168
170
|
return null;
|
|
169
171
|
}
|
|
170
172
|
// Construct versioned bundle ID
|
|
@@ -249,7 +251,7 @@ async function fetchTopicCategories(productId) {
|
|
|
249
251
|
return parseTocCategories(tocData);
|
|
250
252
|
}
|
|
251
253
|
catch (error) {
|
|
252
|
-
|
|
254
|
+
log.error(`Error fetching TOC categories for ${productId}: ${String(error)}`);
|
|
253
255
|
return [];
|
|
254
256
|
}
|
|
255
257
|
}
|
|
@@ -302,7 +304,7 @@ export async function getTopicsMetadata() {
|
|
|
302
304
|
return { productId, categories };
|
|
303
305
|
}
|
|
304
306
|
catch (error) {
|
|
305
|
-
|
|
307
|
+
log.error(`Error fetching TOC for ${productId}: ${String(error)}`);
|
|
306
308
|
return { productId, categories: [] };
|
|
307
309
|
}
|
|
308
310
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/services/metadata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/services/metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,18 @@
|
|
|
7
7
|
import { type ProductId, type LocaleId } from '../constants.js';
|
|
8
8
|
import { type SearchResult, type ParsedArticle, type TocEntry, type SearchParams, type TokenInfo, type PaginationInfo, type ArticleSection, type FilterRelaxation, type TruncatedContentInfo } from '../types.js';
|
|
9
9
|
export { ALLOWED_HOSTNAMES, isAllowedHostname } from '../utils/url.js';
|
|
10
|
+
export declare function transformToBackendUrl(urlStr: string): string;
|
|
11
|
+
export declare function transformToFrontendUrl(urlStr: string): string;
|
|
10
12
|
/**
|
|
11
13
|
* Clean and validate a search result snippet
|
|
12
14
|
* Filters navigation-only text and ensures minimum content quality
|
|
13
15
|
*/
|
|
14
16
|
export declare function cleanSnippet(snippet: string, title: string, product: string | null): string;
|
|
17
|
+
/**
|
|
18
|
+
* Build Accept-Language header value for a given locale
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildAcceptLanguage(locale: string): string;
|
|
21
|
+
export declare const fetchHtml: (url: string, locale?: string) => Promise<string>;
|
|
15
22
|
/**
|
|
16
23
|
* Search response with token and pagination info
|
|
17
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scraper.d.ts","sourceRoot":"","sources":["../../src/services/scraper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAYL,KAAK,SAAS,EAEd,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,YAAY,EAGjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"scraper.d.ts","sourceRoot":"","sources":["../../src/services/scraper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAYL,KAAK,SAAS,EAEd,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,YAAY,EAGjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAwDrB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGvE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM7D;AAkDD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAe3F;AAoBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK1D;AA4BD,eAAO,MAAM,SAAS,GAAU,KAAK,MAAM,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CACM,CAAC;AA6SpF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAiDD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAmFlG;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAsH7B;AAmFD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACtB;AA4DD;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,SAAS,EAClB,OAAO,SAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA2GzB"}
|