@get-technology-inc/jamf-docs-mcp-server 3.0.6 → 3.0.7
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/core/constants/doc-types.d.ts +48 -0
- package/dist/core/constants/doc-types.d.ts.map +1 -0
- package/dist/core/constants/doc-types.js +58 -0
- package/dist/core/constants/doc-types.js.map +1 -0
- package/dist/core/constants/index.d.ts +16 -0
- package/dist/core/constants/index.d.ts.map +1 -0
- package/dist/core/constants/index.js +12 -0
- package/dist/core/constants/index.js.map +1 -0
- package/dist/core/constants/limits.d.ts +39 -0
- package/dist/core/constants/limits.d.ts.map +1 -0
- package/dist/core/constants/limits.js +51 -0
- package/dist/core/constants/limits.js.map +1 -0
- package/dist/core/constants/locales.d.ts +34 -0
- package/dist/core/constants/locales.d.ts.map +1 -0
- package/dist/core/constants/locales.js +20 -0
- package/dist/core/constants/locales.js.map +1 -0
- package/dist/core/constants/products.d.ts +127 -0
- package/dist/core/constants/products.d.ts.map +1 -0
- package/dist/core/constants/products.js +135 -0
- package/dist/core/constants/products.js.map +1 -0
- package/dist/core/constants/topics.d.ts +168 -0
- package/dist/core/constants/topics.d.ts.map +1 -0
- package/dist/core/constants/topics.js +186 -0
- package/dist/core/constants/topics.js.map +1 -0
- package/dist/core/constants.d.ts +7 -404
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +16 -427
- package/dist/core/constants.js.map +1 -1
- package/dist/core/http-client.d.ts +14 -2
- package/dist/core/http-client.d.ts.map +1 -1
- package/dist/core/http-client.js +148 -17
- package/dist/core/http-client.js.map +1 -1
- package/dist/core/index.d.ts +12 -12
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12 -13
- package/dist/core/index.js.map +1 -1
- package/dist/core/resources/index.js +1 -1
- package/dist/core/resources/index.js.map +1 -1
- package/dist/core/schemas/index.d.ts +3 -1
- package/dist/core/schemas/index.d.ts.map +1 -1
- package/dist/core/schemas/index.js +12 -1
- package/dist/core/schemas/index.js.map +1 -1
- package/dist/core/schemas/output.d.ts +7 -0
- package/dist/core/schemas/output.d.ts.map +1 -1
- package/dist/core/schemas/output.js +7 -0
- package/dist/core/schemas/output.js.map +1 -1
- package/dist/core/services/article-service.d.ts +24 -0
- package/dist/core/services/article-service.d.ts.map +1 -0
- package/dist/core/services/article-service.js +118 -0
- package/dist/core/services/article-service.js.map +1 -0
- package/dist/core/services/content-parser.d.ts +38 -0
- package/dist/core/services/content-parser.d.ts.map +1 -0
- package/dist/core/services/content-parser.js +146 -0
- package/dist/core/services/content-parser.js.map +1 -0
- package/dist/core/services/ft-client.d.ts +52 -0
- package/dist/core/services/ft-client.d.ts.map +1 -0
- package/dist/core/services/ft-client.js +87 -0
- package/dist/core/services/ft-client.js.map +1 -0
- package/dist/core/services/glossary.d.ts +9 -5
- package/dist/core/services/glossary.d.ts.map +1 -1
- package/dist/core/services/glossary.js +174 -107
- package/dist/core/services/glossary.js.map +1 -1
- package/dist/core/services/interfaces/cache.d.ts +6 -6
- package/dist/core/services/interfaces/cache.d.ts.map +1 -1
- package/dist/core/services/interfaces/index.d.ts +3 -3
- package/dist/core/services/interfaces/index.d.ts.map +1 -1
- package/dist/core/services/interfaces/logger.d.ts +17 -10
- package/dist/core/services/interfaces/logger.d.ts.map +1 -1
- package/dist/core/services/interfaces/metadata.d.ts +0 -10
- package/dist/core/services/interfaces/metadata.d.ts.map +1 -1
- package/dist/core/services/interfaces/providers.d.ts +23 -10
- package/dist/core/services/interfaces/providers.d.ts.map +1 -1
- package/dist/core/services/logging.d.ts +38 -18
- package/dist/core/services/logging.d.ts.map +1 -1
- package/dist/core/services/logging.js +78 -29
- package/dist/core/services/logging.js.map +1 -1
- package/dist/core/services/maps-registry.d.ts +82 -0
- package/dist/core/services/maps-registry.d.ts.map +1 -0
- package/dist/core/services/maps-registry.js +232 -0
- package/dist/core/services/maps-registry.js.map +1 -0
- package/dist/core/services/metadata.d.ts +18 -9
- package/dist/core/services/metadata.d.ts.map +1 -1
- package/dist/core/services/metadata.js +113 -254
- package/dist/core/services/metadata.js.map +1 -1
- package/dist/core/services/search-service.d.ts +31 -0
- package/dist/core/services/search-service.d.ts.map +1 -0
- package/dist/core/services/search-service.js +471 -0
- package/dist/core/services/search-service.js.map +1 -0
- package/dist/core/services/toc-service.d.ts +30 -0
- package/dist/core/services/toc-service.d.ts.map +1 -0
- package/dist/core/services/toc-service.js +101 -0
- package/dist/core/services/toc-service.js.map +1 -0
- package/dist/core/services/tokenizer.d.ts +1 -1
- package/dist/core/services/tokenizer.d.ts.map +1 -1
- package/dist/core/services/tokenizer.js +3 -3
- package/dist/core/services/tokenizer.js.map +1 -1
- package/dist/core/services/topic-resolver.d.ts +57 -0
- package/dist/core/services/topic-resolver.d.ts.map +1 -0
- package/dist/core/services/topic-resolver.js +185 -0
- package/dist/core/services/topic-resolver.js.map +1 -0
- package/dist/core/tools/batch-get-articles.d.ts +0 -2
- package/dist/core/tools/batch-get-articles.d.ts.map +1 -1
- package/dist/core/tools/batch-get-articles.js +12 -46
- package/dist/core/tools/batch-get-articles.js.map +1 -1
- package/dist/core/tools/get-article.d.ts.map +1 -1
- package/dist/core/tools/get-article.js +29 -112
- package/dist/core/tools/get-article.js.map +1 -1
- package/dist/core/tools/get-toc.js +1 -1
- package/dist/core/tools/get-toc.js.map +1 -1
- package/dist/core/tools/search.js +5 -5
- package/dist/core/tools/search.js.map +1 -1
- package/dist/core/types/context.d.ts +5 -2
- package/dist/core/types/context.d.ts.map +1 -1
- package/dist/core/types.d.ts +141 -31
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils/bundle.d.ts +14 -1
- package/dist/core/utils/bundle.d.ts.map +1 -1
- package/dist/core/utils/bundle.js +19 -2
- package/dist/core/utils/bundle.js.map +1 -1
- package/dist/core/utils/format-article.d.ts +45 -0
- package/dist/core/utils/format-article.d.ts.map +1 -0
- package/dist/core/utils/format-article.js +138 -0
- package/dist/core/utils/format-article.js.map +1 -0
- package/dist/core/utils/ft-metadata.d.ts +22 -0
- package/dist/core/utils/ft-metadata.d.ts.map +1 -0
- package/dist/core/utils/ft-metadata.js +30 -0
- package/dist/core/utils/ft-metadata.js.map +1 -0
- package/dist/core/utils/sanitize.d.ts.map +1 -1
- package/dist/core/utils/sanitize.js +0 -2
- package/dist/core/utils/sanitize.js.map +1 -1
- package/dist/core/utils/url.d.ts.map +1 -1
- package/dist/core/utils/url.js +0 -1
- package/dist/core/utils/url.js.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/platforms/node/http-server.d.ts +13 -0
- package/dist/platforms/node/http-server.d.ts.map +1 -0
- package/dist/platforms/node/http-server.js +231 -0
- package/dist/platforms/node/http-server.js.map +1 -0
- package/dist/platforms/node/index.d.ts +1 -1
- package/dist/platforms/node/index.d.ts.map +1 -1
- package/dist/platforms/node/index.js +1 -1
- package/dist/platforms/node/index.js.map +1 -1
- package/dist/platforms/node/logger.d.ts +13 -2
- package/dist/platforms/node/logger.d.ts.map +1 -1
- package/dist/platforms/node/logger.js +17 -4
- package/dist/platforms/node/logger.js.map +1 -1
- package/dist/transport/http-handler.d.ts +25 -0
- package/dist/transport/http-handler.d.ts.map +1 -0
- package/dist/transport/http-handler.js +193 -0
- package/dist/transport/http-handler.js.map +1 -0
- package/dist/transport/http-types.d.ts +22 -0
- package/dist/transport/http-types.d.ts.map +1 -0
- package/dist/transport/http-types.js +65 -0
- package/dist/transport/http-types.js.map +1 -0
- package/dist/transport/http.d.ts +4 -8
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +4 -376
- package/dist/transport/http.js.map +1 -1
- package/dist/transport/index.js +2 -2
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/rate-limiter.d.ts +16 -0
- package/dist/transport/rate-limiter.d.ts.map +1 -0
- package/dist/transport/rate-limiter.js +55 -0
- package/dist/transport/rate-limiter.js.map +1 -0
- package/package.json +3 -3
- package/dist/core/services/interfaces.d.ts +0 -94
- package/dist/core/services/interfaces.d.ts.map +0 -1
- package/dist/core/services/interfaces.js +0 -8
- package/dist/core/services/interfaces.js.map +0 -1
- package/dist/core/services/scraper.d.ts +0 -90
- package/dist/core/services/scraper.d.ts.map +0 -1
- package/dist/core/services/scraper.js +0 -990
- package/dist/core/services/scraper.js.map +0 -1
- package/dist/core/utils/doc-type.d.ts +0 -12
- package/dist/core/utils/doc-type.d.ts.map +0 -1
- package/dist/core/utils/doc-type.js +0 -24
- package/dist/core/utils/doc-type.js.map +0 -1
- package/dist/platforms/node/metadata.d.ts +0 -18
- package/dist/platforms/node/metadata.d.ts.map +0 -1
- package/dist/platforms/node/metadata.js +0 -35
- package/dist/platforms/node/metadata.js.map +0 -1
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Glossary service for parsing and looking up Jamf documentation glossary terms
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Uses Fluid Topics API on learn.jamf.com:
|
|
5
|
+
* - GET /api/khub/maps/{mapId}/toc — list all glossary terms
|
|
6
|
+
* - GET /api/khub/maps/{mapId}/topics/{contentId}/content — term HTML
|
|
7
|
+
*
|
|
8
|
+
* Jamf's glossary uses DITA glossentry format where each term is a separate topic:
|
|
6
9
|
* <div class="glossdef"><p>Definition text</p></div>
|
|
7
10
|
*
|
|
8
11
|
* Also supports fallback formats:
|
|
@@ -13,16 +16,62 @@
|
|
|
13
16
|
*/
|
|
14
17
|
import Fuse from 'fuse.js';
|
|
15
18
|
import * as cheerio from 'cheerio';
|
|
16
|
-
import TurndownService from 'turndown';
|
|
17
19
|
import { SELECTORS, TOKEN_CONFIG, DEFAULT_LOCALE, } from '../constants.js';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
+
import { fetchMapToc, fetchTopicContent } from './ft-client.js';
|
|
21
|
+
import { buildDisplayUrl } from './topic-resolver.js';
|
|
22
|
+
import { cleanHtml, htmlToMarkdown } from './content-parser.js';
|
|
23
|
+
import { truncateItemsToTokenLimit } from './tokenizer.js';
|
|
20
24
|
import { limitConcurrency } from '../utils/concurrency.js';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
/** Return a zero-entry result when there is nothing to report. */
|
|
26
|
+
function emptyGlossaryResult(maxTokens) {
|
|
27
|
+
return {
|
|
28
|
+
entries: [],
|
|
29
|
+
totalMatches: 0,
|
|
30
|
+
tokenInfo: { tokenCount: 0, truncated: false, maxTokens },
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// ─── Fluid Topics API helpers ───────────────────────────────────
|
|
34
|
+
/**
|
|
35
|
+
* Fetch the glossary TOC from Fluid Topics via ft-client.
|
|
36
|
+
* The TOC is a tree: root node has children, each child is a glossary term.
|
|
37
|
+
* Cached with article TTL to avoid repeated requests.
|
|
38
|
+
*/
|
|
39
|
+
async function fetchGlossaryToc(ctx, mapId, locale) {
|
|
40
|
+
const cacheKey = `${locale}:glossary-toc`;
|
|
41
|
+
const cached = await ctx.cache.get(cacheKey);
|
|
42
|
+
if (cached !== null) {
|
|
43
|
+
return cached;
|
|
44
|
+
}
|
|
45
|
+
const nodes = await fetchMapToc(mapId);
|
|
46
|
+
// Flatten: collect all leaf terms (children of the root)
|
|
47
|
+
const terms = [];
|
|
48
|
+
for (const node of nodes) {
|
|
49
|
+
// Skip non-term entries like "Glossary Revision History"
|
|
50
|
+
if (node.children && node.children.length > 0) {
|
|
51
|
+
for (const child of node.children) {
|
|
52
|
+
if (!child.title.toLowerCase().includes('revision history')) {
|
|
53
|
+
terms.push(child);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
await ctx.cache.set(cacheKey, terms, ctx.config.cacheTtl.article);
|
|
59
|
+
return terms;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Fetch the HTML content of a single glossary topic via ft-client.
|
|
63
|
+
*/
|
|
64
|
+
async function fetchGlossaryContent(ctx, mapId, contentId, locale) {
|
|
65
|
+
const cacheKey = `${locale}:glossary-content:${contentId}`;
|
|
66
|
+
const cached = await ctx.cache.get(cacheKey);
|
|
67
|
+
if (cached !== null) {
|
|
68
|
+
return cached;
|
|
69
|
+
}
|
|
70
|
+
const html = await fetchTopicContent(mapId, contentId);
|
|
71
|
+
await ctx.cache.set(cacheKey, html, ctx.config.cacheTtl.article);
|
|
72
|
+
return html;
|
|
73
|
+
}
|
|
74
|
+
// ─── HTML parsing ───────────────────────────────────────────────
|
|
26
75
|
/**
|
|
27
76
|
* Parse glossary entries from HTML content.
|
|
28
77
|
*
|
|
@@ -34,8 +83,7 @@ const turndown = new TurndownService({
|
|
|
34
83
|
*/
|
|
35
84
|
export function parseGlossaryEntries(html, sourceUrl, product) {
|
|
36
85
|
const $ = cheerio.load(html);
|
|
37
|
-
|
|
38
|
-
$(SELECTORS.REMOVE).remove();
|
|
86
|
+
cleanHtml($);
|
|
39
87
|
// 1. Try DITA glossentry format (Jamf's actual structure)
|
|
40
88
|
const ditaEntries = parseDitaGlossentry($, sourceUrl, product);
|
|
41
89
|
if (ditaEntries.length > 0) {
|
|
@@ -76,7 +124,7 @@ function parseDitaGlossentry($, sourceUrl, product) {
|
|
|
76
124
|
let definition = '';
|
|
77
125
|
if (glossdef.length > 0) {
|
|
78
126
|
const defHtml = glossdef.html() ?? '';
|
|
79
|
-
definition =
|
|
127
|
+
definition = htmlToMarkdown(defHtml).trim();
|
|
80
128
|
}
|
|
81
129
|
// If no glossdef, try to get any content after the heading
|
|
82
130
|
if (definition === '') {
|
|
@@ -86,7 +134,7 @@ function parseDitaGlossentry($, sourceUrl, product) {
|
|
|
86
134
|
const clone = article.clone();
|
|
87
135
|
clone.find('h1').remove();
|
|
88
136
|
const bodyHtml = clone.html() ?? '';
|
|
89
|
-
definition =
|
|
137
|
+
definition = htmlToMarkdown(bodyHtml).trim();
|
|
90
138
|
}
|
|
91
139
|
}
|
|
92
140
|
if (definition === '') {
|
|
@@ -111,7 +159,7 @@ function parseDlFormat($, sourceUrl, product) {
|
|
|
111
159
|
let next = $(dt).next();
|
|
112
160
|
while (next.length > 0 && next.is('dd')) {
|
|
113
161
|
const ddHtml = next.html() ?? '';
|
|
114
|
-
ddParts.push(
|
|
162
|
+
ddParts.push(htmlToMarkdown(ddHtml).trim());
|
|
115
163
|
next = next.next();
|
|
116
164
|
}
|
|
117
165
|
const definition = ddParts.join('\n\n');
|
|
@@ -147,7 +195,7 @@ function parseHeadingFormat($, sourceUrl, product) {
|
|
|
147
195
|
break;
|
|
148
196
|
}
|
|
149
197
|
const html = next.html() ?? '';
|
|
150
|
-
const text =
|
|
198
|
+
const text = htmlToMarkdown(html).trim();
|
|
151
199
|
if (text !== '') {
|
|
152
200
|
parts.push(text);
|
|
153
201
|
}
|
|
@@ -169,7 +217,7 @@ function parseFallbackFormat($, sourceUrl, product) {
|
|
|
169
217
|
return [];
|
|
170
218
|
}
|
|
171
219
|
const html = contentArea.html() ?? '';
|
|
172
|
-
const content =
|
|
220
|
+
const content = htmlToMarkdown(html).trim();
|
|
173
221
|
if (content === '') {
|
|
174
222
|
return [];
|
|
175
223
|
}
|
|
@@ -180,6 +228,38 @@ function parseFallbackFormat($, sourceUrl, product) {
|
|
|
180
228
|
product,
|
|
181
229
|
}];
|
|
182
230
|
}
|
|
231
|
+
const fuseCacheByServer = new WeakMap();
|
|
232
|
+
/** Get (or lazily create) the GlossaryFuseCache for the given context. */
|
|
233
|
+
function getFuseCacheForContext(ctx) {
|
|
234
|
+
let cache = fuseCacheByServer.get(ctx.cache);
|
|
235
|
+
if (cache === undefined) {
|
|
236
|
+
cache = new Map();
|
|
237
|
+
fuseCacheByServer.set(ctx.cache, cache);
|
|
238
|
+
}
|
|
239
|
+
return cache;
|
|
240
|
+
}
|
|
241
|
+
const TOC_FUSE_OPTIONS = {
|
|
242
|
+
keys: [{ name: 'title', weight: 1.0 }],
|
|
243
|
+
threshold: 0.4,
|
|
244
|
+
includeScore: true,
|
|
245
|
+
ignoreLocation: true,
|
|
246
|
+
minMatchCharLength: 2,
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* Get or create a Fuse index for the given TOC entries.
|
|
250
|
+
* Rebuilds the index when the entries array reference changes
|
|
251
|
+
* (i.e., the cache was refreshed).
|
|
252
|
+
*/
|
|
253
|
+
function getTocFuse(fuseCache, locale, entries) {
|
|
254
|
+
const cached = fuseCache.get(locale);
|
|
255
|
+
if (cached?.source === entries) {
|
|
256
|
+
return cached.fuse;
|
|
257
|
+
}
|
|
258
|
+
const fuse = new Fuse(entries, TOC_FUSE_OPTIONS);
|
|
259
|
+
fuseCache.set(locale, { source: entries, fuse });
|
|
260
|
+
return fuse;
|
|
261
|
+
}
|
|
262
|
+
// ─── Fuzzy matching ─────────────────────────────────────────────
|
|
183
263
|
/**
|
|
184
264
|
* Search for matching glossary entries using fuse.js fuzzy matching.
|
|
185
265
|
* Used to rank and filter entries collected from multiple glossary pages.
|
|
@@ -200,128 +280,115 @@ export function searchGlossaryEntries(entries, term) {
|
|
|
200
280
|
});
|
|
201
281
|
const results = fuse.search(term);
|
|
202
282
|
// If fuse.js returns no results, return all entries as-is
|
|
203
|
-
// (the search API already filtered for relevance)
|
|
204
283
|
if (results.length === 0) {
|
|
205
284
|
return entries;
|
|
206
285
|
}
|
|
207
286
|
return results.map(r => r.item);
|
|
208
287
|
}
|
|
288
|
+
// ─── Main lookup ────────────────────────────────────────────────
|
|
209
289
|
/**
|
|
210
290
|
* Look up a glossary term across Jamf documentation.
|
|
211
291
|
*
|
|
212
292
|
* Strategy:
|
|
213
|
-
* 1.
|
|
214
|
-
* 2.
|
|
215
|
-
* 3.
|
|
293
|
+
* 1. Fetch glossary TOC from Fluid Topics API (cached)
|
|
294
|
+
* 2. Fuzzy-match term against TOC titles
|
|
295
|
+
* 3. Fetch and parse matching glossary topics
|
|
296
|
+
* 4. Rank results with fuse.js and apply token limit
|
|
216
297
|
*/
|
|
217
298
|
export async function lookupGlossaryTerm(ctx, params) {
|
|
218
299
|
if (ctx.glossaryProvider) {
|
|
219
300
|
const provided = await ctx.glossaryProvider.lookup(params);
|
|
220
|
-
if (provided !== null)
|
|
301
|
+
if (provided !== null) {
|
|
221
302
|
return provided;
|
|
303
|
+
}
|
|
222
304
|
}
|
|
223
305
|
const log = ctx.logger.createLogger('glossary');
|
|
224
|
-
const { term,
|
|
225
|
-
const locale = language ?? DEFAULT_LOCALE;
|
|
226
|
-
log.info(`Looking up glossary term: "${term}"
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
language: locale,
|
|
233
|
-
limit: 10,
|
|
234
|
-
page: 1,
|
|
235
|
-
};
|
|
236
|
-
const searchResult = await searchDocumentation(ctx, searchParams);
|
|
237
|
-
// If docType filter was relaxed, it means no actual glossary pages were found
|
|
238
|
-
const docTypeRelaxed = searchResult.filterRelaxation?.removed.includes('docType') === true;
|
|
239
|
-
if (searchResult.results.length === 0 || docTypeRelaxed) {
|
|
240
|
-
log.info(docTypeRelaxed
|
|
241
|
-
? 'docType filter was relaxed — no actual glossary pages found'
|
|
242
|
-
: 'No glossary pages found via search API');
|
|
243
|
-
return {
|
|
244
|
-
entries: [],
|
|
245
|
-
totalMatches: 0,
|
|
246
|
-
tokenInfo: { tokenCount: 0, truncated: false, maxTokens },
|
|
247
|
-
};
|
|
306
|
+
const { term, maxTokens = TOKEN_CONFIG.DEFAULT_MAX_TOKENS } = params;
|
|
307
|
+
const locale = params.language ?? DEFAULT_LOCALE;
|
|
308
|
+
log.info(`Looking up glossary term: "${term}"` +
|
|
309
|
+
` (product=${params.product ?? 'all'}, locale=${locale})`);
|
|
310
|
+
// Resolve glossary mapId dynamically via MapsRegistry
|
|
311
|
+
let mapId;
|
|
312
|
+
try {
|
|
313
|
+
mapId = await ctx.mapsRegistry.resolveGlossaryMapId(locale);
|
|
248
314
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
});
|
|
258
|
-
|
|
315
|
+
catch (error) {
|
|
316
|
+
log.error(`Failed to resolve glossary mapId: ${String(error)}`);
|
|
317
|
+
return emptyGlossaryResult(maxTokens);
|
|
318
|
+
}
|
|
319
|
+
if (mapId === null) {
|
|
320
|
+
log.info(`No glossary map found for locale="${locale}"`);
|
|
321
|
+
return emptyGlossaryResult(maxTokens);
|
|
322
|
+
}
|
|
323
|
+
log.info(`Resolved glossary mapId: ${mapId} (locale=${locale})`);
|
|
324
|
+
// Step 1: Fetch glossary TOC (cached after first call)
|
|
325
|
+
let tocEntries;
|
|
326
|
+
try {
|
|
327
|
+
tocEntries = await fetchGlossaryToc(ctx, mapId, locale);
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
log.error(`Failed to fetch glossary TOC: ${String(error)}`);
|
|
331
|
+
return emptyGlossaryResult(maxTokens);
|
|
332
|
+
}
|
|
333
|
+
if (tocEntries.length === 0) {
|
|
334
|
+
log.info('Glossary TOC is empty');
|
|
335
|
+
return emptyGlossaryResult(maxTokens);
|
|
336
|
+
}
|
|
337
|
+
// Step 2: Fuzzy-match term against TOC titles (Fuse index is cached per locale)
|
|
338
|
+
const fuseCache = getFuseCacheForContext(ctx);
|
|
339
|
+
const tocFuse = getTocFuse(fuseCache, locale, tocEntries);
|
|
340
|
+
const tocMatches = tocFuse.search(term);
|
|
341
|
+
// If no fuzzy match, try exact substring match as fallback
|
|
342
|
+
const matchedTocEntries = tocMatches.length > 0
|
|
343
|
+
? tocMatches.map(m => m.item)
|
|
344
|
+
: tocEntries.filter(e => e.title.toLowerCase().includes(term.toLowerCase()));
|
|
345
|
+
if (matchedTocEntries.length === 0) {
|
|
346
|
+
log.info(`No matching glossary terms found for "${term}"`);
|
|
347
|
+
return emptyGlossaryResult(maxTokens);
|
|
348
|
+
}
|
|
349
|
+
log.info(`Found ${matchedTocEntries.length} TOC matches for "${term}"`);
|
|
350
|
+
// Step 3: Fetch and parse content for top matches (limit to 10)
|
|
351
|
+
const toFetch = matchedTocEntries.slice(0, 10);
|
|
352
|
+
const tasks = toFetch.map(tocNode => async () => {
|
|
259
353
|
try {
|
|
260
|
-
|
|
354
|
+
const html = await fetchGlossaryContent(ctx, mapId, tocNode.contentId, locale);
|
|
355
|
+
const displayUrl = buildDisplayUrl(tocNode.prettyUrl);
|
|
356
|
+
// Try parsing with the existing format parsers
|
|
357
|
+
const parsed = parseGlossaryEntries(html, displayUrl);
|
|
358
|
+
// If parsing returned nothing, use TOC title + raw HTML as fallback
|
|
359
|
+
if (parsed.length === 0 && html.trim() !== '') {
|
|
360
|
+
const definition = htmlToMarkdown(html).trim();
|
|
361
|
+
if (definition !== '') {
|
|
362
|
+
return [{
|
|
363
|
+
term: tocNode.title,
|
|
364
|
+
definition,
|
|
365
|
+
url: displayUrl,
|
|
366
|
+
}];
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return parsed;
|
|
261
370
|
}
|
|
262
371
|
catch (error) {
|
|
263
|
-
log.warning(`Failed to fetch glossary
|
|
372
|
+
log.warning(`Failed to fetch glossary entry "${tocNode.title}": ${String(error)}`);
|
|
264
373
|
return [];
|
|
265
374
|
}
|
|
266
375
|
});
|
|
267
376
|
const fetchedEntries = await limitConcurrency(tasks, 3);
|
|
268
377
|
const allEntries = fetchedEntries.flat();
|
|
269
378
|
if (allEntries.length === 0) {
|
|
270
|
-
return
|
|
271
|
-
entries: [],
|
|
272
|
-
totalMatches: 0,
|
|
273
|
-
tokenInfo: { tokenCount: 0, truncated: false, maxTokens },
|
|
274
|
-
};
|
|
379
|
+
return emptyGlossaryResult(maxTokens);
|
|
275
380
|
}
|
|
276
|
-
// Step
|
|
381
|
+
// Step 4: Rank with fuse.js and apply token limit
|
|
277
382
|
const matchedEntries = searchGlossaryEntries(allEntries, term);
|
|
278
|
-
|
|
279
|
-
const includedEntries =
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
const entryTokens = estimateTokens(`${entry.term}: ${entry.definition}`);
|
|
284
|
-
if (runningTokens + entryTokens > maxTokens) {
|
|
285
|
-
truncated = true;
|
|
286
|
-
break;
|
|
287
|
-
}
|
|
288
|
-
includedEntries.push(entry);
|
|
289
|
-
runningTokens += entryTokens;
|
|
290
|
-
}
|
|
291
|
-
const tokenInfo = {
|
|
292
|
-
tokenCount: runningTokens,
|
|
293
|
-
truncated,
|
|
294
|
-
maxTokens,
|
|
295
|
-
};
|
|
296
|
-
log.info(`Found ${matchedEntries.length} matches, returning ${includedEntries.length} (truncated=${String(truncated)})`);
|
|
383
|
+
const glossaryEntryToString = (e) => `${e.term}: ${e.definition}`;
|
|
384
|
+
const { items: includedEntries, tokenInfo } = truncateItemsToTokenLimit(matchedEntries, maxTokens, glossaryEntryToString, 1, matchedEntries.length);
|
|
385
|
+
log.info(`Found ${matchedEntries.length} matches, ` +
|
|
386
|
+
`returning ${includedEntries.length} ` +
|
|
387
|
+
`(truncated=${String(tokenInfo.truncated)})`);
|
|
297
388
|
return {
|
|
298
389
|
entries: includedEntries,
|
|
299
390
|
totalMatches: matchedEntries.length,
|
|
300
391
|
tokenInfo,
|
|
301
392
|
};
|
|
302
393
|
}
|
|
303
|
-
/**
|
|
304
|
-
* Fetch a glossary page and parse its entries (with caching)
|
|
305
|
-
*/
|
|
306
|
-
async function fetchAndParseGlossaryPage(ctx, url, locale, product) {
|
|
307
|
-
const log = ctx.logger.createLogger('glossary');
|
|
308
|
-
const cacheKey = `${locale}:glossary:${url}`;
|
|
309
|
-
// Check cache
|
|
310
|
-
const cached = await ctx.cache.get(cacheKey);
|
|
311
|
-
if (cached !== null) {
|
|
312
|
-
log.info(`Cache hit for glossary page: ${url}`);
|
|
313
|
-
return cached;
|
|
314
|
-
}
|
|
315
|
-
// Fetch raw HTML (reuses scraper's throttle + error handling)
|
|
316
|
-
log.info(`Fetching glossary page: ${url}`);
|
|
317
|
-
const backendUrl = transformToBackendUrl(url);
|
|
318
|
-
const html = await fetchHtml(ctx, backendUrl, locale);
|
|
319
|
-
// Transform URL to frontend format for display
|
|
320
|
-
const displayUrl = transformToFrontendUrl(url);
|
|
321
|
-
const entries = parseGlossaryEntries(html, displayUrl, product);
|
|
322
|
-
// Cache parsed entries
|
|
323
|
-
await ctx.cache.set(cacheKey, entries, ctx.config.cacheTtl.article);
|
|
324
|
-
log.info(`Cached ${entries.length} glossary entries from: ${url}`);
|
|
325
|
-
return entries;
|
|
326
|
-
}
|
|
327
394
|
//# sourceMappingURL=glossary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glossary.js","sourceRoot":"","sources":["../../../src/core/services/glossary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"glossary.js","sourceRoot":"","sources":["../../../src/core/services/glossary.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,11 +13,11 @@ export interface CacheStats {
|
|
|
13
13
|
* Platform-agnostic cache provider
|
|
14
14
|
*/
|
|
15
15
|
export interface CacheProvider {
|
|
16
|
-
get<T>(key: string)
|
|
17
|
-
set<T>(key: string, value: T, ttl?: number)
|
|
18
|
-
delete(key: string)
|
|
19
|
-
clear()
|
|
20
|
-
stats()
|
|
21
|
-
prune()
|
|
16
|
+
get: <T>(key: string) => Promise<T | null>;
|
|
17
|
+
set: <T>(key: string, value: T, ttl?: number) => Promise<void>;
|
|
18
|
+
delete: (key: string) => Promise<boolean>;
|
|
19
|
+
clear: () => Promise<void>;
|
|
20
|
+
stats: () => Promise<CacheStats>;
|
|
21
|
+
prune: () => Promise<number>;
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Re-exports all platform abstraction interfaces from domain-specific files.
|
|
5
5
|
*/
|
|
6
6
|
export type { CacheProvider, CacheStats } from './cache.js';
|
|
7
|
-
export type {
|
|
8
|
-
export type { Logger, LoggerFactory } from './logger.js';
|
|
9
|
-
export type { SearchProvider, ArticleProvider, GlossaryProvider, TocProvider, } from './providers.js';
|
|
7
|
+
export type { ProductMetadata, TopicMetadata, TocEntry, TocData, } from './metadata.js';
|
|
8
|
+
export type { Logger, LoggerFactory, WriteStderrFn } from './logger.js';
|
|
9
|
+
export type { SearchProvider, ArticleProvider, GlossaryProvider, TocProvider, MapsProvider, } from './providers.js';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EACV,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EACV,eAAe,EACf,aAAa,EACb,QAAQ,EACR,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC"}
|
|
@@ -6,20 +6,27 @@ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
6
6
|
* Logger instance bound to a specific module name
|
|
7
7
|
*/
|
|
8
8
|
export interface Logger {
|
|
9
|
-
debug(data: unknown)
|
|
10
|
-
info(data: unknown)
|
|
11
|
-
notice(data: unknown)
|
|
12
|
-
warning(data: unknown)
|
|
13
|
-
error(data: unknown)
|
|
14
|
-
critical(data: unknown)
|
|
15
|
-
alert(data: unknown)
|
|
16
|
-
emergency(data: unknown)
|
|
9
|
+
debug: (data: unknown) => void;
|
|
10
|
+
info: (data: unknown) => void;
|
|
11
|
+
notice: (data: unknown) => void;
|
|
12
|
+
warning: (data: unknown) => void;
|
|
13
|
+
error: (data: unknown) => void;
|
|
14
|
+
critical: (data: unknown) => void;
|
|
15
|
+
alert: (data: unknown) => void;
|
|
16
|
+
emergency: (data: unknown) => void;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Function signature for writing formatted log output.
|
|
20
|
+
* Defaults to `console.error` (stderr on Node.js).
|
|
21
|
+
* Platforms without stderr (e.g. Cloudflare Workers) can supply
|
|
22
|
+
* `console.log` or a no-op.
|
|
23
|
+
*/
|
|
24
|
+
export type WriteStderrFn = (formatted: string) => void;
|
|
18
25
|
/**
|
|
19
26
|
* Factory for creating named logger instances
|
|
20
27
|
*/
|
|
21
28
|
export interface LoggerFactory {
|
|
22
|
-
createLogger(name: string)
|
|
23
|
-
setServer(server: McpServer)
|
|
29
|
+
createLogger: (name: string) => Logger;
|
|
30
|
+
setServer: (server: McpServer) => void;
|
|
24
31
|
}
|
|
25
32
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE;;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;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;CACxC"}
|
|
@@ -38,14 +38,4 @@ export interface TocData {
|
|
|
38
38
|
product: string;
|
|
39
39
|
version: string;
|
|
40
40
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Platform-agnostic metadata store for Jamf documentation
|
|
43
|
-
*/
|
|
44
|
-
export interface MetadataStore {
|
|
45
|
-
getProducts(): Promise<ProductMetadata[]>;
|
|
46
|
-
getTopics(): Promise<TopicMetadata[]>;
|
|
47
|
-
getToc(productId: string, bundleId: string): Promise<TocData>;
|
|
48
|
-
getBundleIdForVersion(productId: string, version?: string): Promise<string | null>;
|
|
49
|
-
getAvailableVersions(productId: string): Promise<string[]>;
|
|
50
|
-
}
|
|
51
41
|
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,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;;GAEG;AACH,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;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,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;;GAEG;AACH,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;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -10,42 +10,55 @@
|
|
|
10
10
|
* - null: fall through to the default implementation.
|
|
11
11
|
*/
|
|
12
12
|
import type { ProductId, LocaleId } from '../../constants.js';
|
|
13
|
-
import type { SearchParams, SearchResult, GlossaryLookupResult } from '../../types.js';
|
|
14
|
-
import type { FetchArticleResult, FetchArticleOptions, FetchTocResult, FetchTocOptions } from '../scraper.js';
|
|
13
|
+
import type { SearchParams, SearchResult, GlossaryLookupResult, FetchArticleResult, FetchArticleOptions, FetchTocResult, FetchTocOptions, FtMapInfo } from '../../types.js';
|
|
15
14
|
/**
|
|
16
15
|
* Custom search backend (e.g., Vectorize semantic search).
|
|
17
16
|
*
|
|
18
17
|
* Return all matched results as a flat array. The core handles pagination,
|
|
19
18
|
* token truncation, version deduplication, and filter relaxation.
|
|
20
|
-
* Return `null` to fall through to the default
|
|
19
|
+
* Return `null` to fall through to the default Fluid Topics API search.
|
|
21
20
|
*/
|
|
22
21
|
export interface SearchProvider {
|
|
23
|
-
search(params: SearchParams)
|
|
22
|
+
search: (params: SearchParams) => Promise<SearchResult[] | null>;
|
|
24
23
|
}
|
|
25
24
|
/**
|
|
26
25
|
* Custom article provider (e.g., R2 local storage).
|
|
27
|
-
* Return null to fall through to the default
|
|
26
|
+
* Return null to fall through to the default Fluid Topics API fetch.
|
|
27
|
+
*
|
|
28
|
+
* Primary method is `getArticleByIds` — in the FT world, ID-based access
|
|
29
|
+
* is the fast path (mapId + contentId are always resolved first).
|
|
30
|
+
* The optional `getArticle` method provides a URL-based fallback.
|
|
28
31
|
*/
|
|
29
32
|
export interface ArticleProvider {
|
|
30
|
-
|
|
33
|
+
/** ID-based fetch — primary method, used when mapId+contentId are known. */
|
|
34
|
+
getArticleByIds: (mapId: string, contentId: string, options?: FetchArticleOptions) => Promise<FetchArticleResult | null>;
|
|
35
|
+
/** Optional URL-based fallback — used when ID-based fetch returns null. */
|
|
36
|
+
getArticle?: (url: string, options?: FetchArticleOptions) => Promise<FetchArticleResult | null>;
|
|
31
37
|
}
|
|
32
38
|
/**
|
|
33
39
|
* Custom glossary provider (e.g., D1 database).
|
|
34
|
-
* Return null to fall through to the default glossary
|
|
40
|
+
* Return null to fall through to the default Fluid Topics API glossary.
|
|
35
41
|
*/
|
|
36
42
|
export interface GlossaryProvider {
|
|
37
|
-
lookup(params: {
|
|
43
|
+
lookup: (params: {
|
|
38
44
|
term: string;
|
|
39
45
|
product?: ProductId | undefined;
|
|
40
46
|
language?: LocaleId | undefined;
|
|
41
47
|
maxTokens?: number | undefined;
|
|
42
|
-
})
|
|
48
|
+
}) => Promise<GlossaryLookupResult | null>;
|
|
43
49
|
}
|
|
44
50
|
/**
|
|
45
51
|
* Custom table-of-contents provider (e.g., D1/R2 stored TOC).
|
|
46
52
|
* Return null to fall through to the default TOC fetching.
|
|
47
53
|
*/
|
|
48
54
|
export interface TocProvider {
|
|
49
|
-
getTableOfContents(product: ProductId, version: string, options?: FetchTocOptions)
|
|
55
|
+
getTableOfContents: (product: ProductId, version: string, options?: FetchTocOptions) => Promise<FetchTocResult | null>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Custom maps provider (e.g., KV storage on Workers).
|
|
59
|
+
* When present, MapsRegistry uses this instead of the FT API fetchMaps().
|
|
60
|
+
*/
|
|
61
|
+
export interface MapsProvider {
|
|
62
|
+
getMaps: () => Promise<FtMapInfo[]>;
|
|
50
63
|
}
|
|
51
64
|
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../src/core/services/interfaces/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;CAClE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,eAAe,EAAE,CACf,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,mBAAmB,KAC1B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAExC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,CACX,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,KAC1B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,MAAM,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;QAChC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,KAAK,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,kBAAkB,EAAE,CAClB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,KACtB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CACrC"}
|