@get-technology-inc/jamf-docs-mcp-server 5.4.2 → 5.6.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.
Files changed (49) hide show
  1. package/dist/core/constants/limits.d.ts +21 -0
  2. package/dist/core/constants/limits.d.ts.map +1 -1
  3. package/dist/core/constants/limits.js +0 -1
  4. package/dist/core/constants/limits.js.map +1 -1
  5. package/dist/core/constants/sources.d.ts +65 -0
  6. package/dist/core/constants/sources.d.ts.map +1 -0
  7. package/dist/core/constants/sources.js +73 -0
  8. package/dist/core/constants/sources.js.map +1 -0
  9. package/dist/core/schemas/output.d.ts +1 -0
  10. package/dist/core/schemas/output.d.ts.map +1 -1
  11. package/dist/core/schemas/output.js +11 -0
  12. package/dist/core/schemas/output.js.map +1 -1
  13. package/dist/core/services/article-service.d.ts.map +1 -1
  14. package/dist/core/services/article-service.js +18 -27
  15. package/dist/core/services/article-service.js.map +1 -1
  16. package/dist/core/services/article-view.d.ts +21 -0
  17. package/dist/core/services/article-view.d.ts.map +1 -0
  18. package/dist/core/services/article-view.js +48 -0
  19. package/dist/core/services/article-view.js.map +1 -0
  20. package/dist/core/services/cache-key.d.ts +14 -0
  21. package/dist/core/services/cache-key.d.ts.map +1 -1
  22. package/dist/core/services/cache-key.js +1 -0
  23. package/dist/core/services/cache-key.js.map +1 -1
  24. package/dist/core/services/content-parser.d.ts +24 -1
  25. package/dist/core/services/content-parser.d.ts.map +1 -1
  26. package/dist/core/services/content-parser.js +24 -10
  27. package/dist/core/services/content-parser.js.map +1 -1
  28. package/dist/core/services/maps-registry.d.ts +16 -0
  29. package/dist/core/services/maps-registry.d.ts.map +1 -1
  30. package/dist/core/services/maps-registry.js +20 -8
  31. package/dist/core/services/maps-registry.js.map +1 -1
  32. package/dist/core/services/static-article-service.d.ts +38 -0
  33. package/dist/core/services/static-article-service.d.ts.map +1 -0
  34. package/dist/core/services/static-article-service.js +121 -0
  35. package/dist/core/services/static-article-service.js.map +1 -0
  36. package/dist/core/services/toc-service.d.ts.map +1 -1
  37. package/dist/core/services/toc-service.js +15 -7
  38. package/dist/core/services/toc-service.js.map +1 -1
  39. package/dist/core/tools/get-toc.d.ts.map +1 -1
  40. package/dist/core/tools/get-toc.js +26 -1
  41. package/dist/core/tools/get-toc.js.map +1 -1
  42. package/dist/core/types.d.ts +10 -0
  43. package/dist/core/types.d.ts.map +1 -1
  44. package/dist/core/types.js.map +1 -1
  45. package/dist/core/utils/url.d.ts +9 -1
  46. package/dist/core/utils/url.d.ts.map +1 -1
  47. package/dist/core/utils/url.js +11 -1
  48. package/dist/core/utils/url.js.map +1 -1
  49. package/package.json +1 -1
@@ -32,22 +32,32 @@ turndown.addRule('stripScripts', {
32
32
  filter: ['script', 'style', 'noscript'],
33
33
  replacement: () => '',
34
34
  });
35
- // ─── HTML cleaning ──────────────────────────────────────────────
36
35
  /**
37
36
  * Clean HTML content: remove unwanted elements, fix relative URLs.
37
+ *
38
+ * Both the selector set and the link base are parameters with learn.jamf.com
39
+ * defaults rather than module constants, so a caller reading a different site
40
+ * gets that site's markup rules. Existing single-argument callers — the
41
+ * glossary path among them — are unaffected.
38
42
  */
39
- export function cleanHtml($) {
40
- $(SELECTORS.REMOVE).remove();
43
+ export function cleanHtml($, options) {
44
+ const selectors = options?.selectors ?? SELECTORS;
45
+ // Root-relative links resolve against the site they came from. Hard-coding
46
+ // learn.jamf.com here is what would point every internal link and image of
47
+ // a second source at the wrong host — silently, since both produce a valid
48
+ // absolute URL.
49
+ const linkBase = options?.linkBase ?? DOCS_BASE_URL;
50
+ $(selectors.REMOVE).remove();
41
51
  $('a[href^="/"]').each((_, el) => {
42
52
  const href = $(el).attr('href');
43
53
  if (href !== undefined && href !== '') {
44
- $(el).attr('href', `${DOCS_BASE_URL}${href}`);
54
+ $(el).attr('href', `${linkBase}${href}`);
45
55
  }
46
56
  });
47
57
  $('img[src^="/"]').each((_, el) => {
48
58
  const src = $(el).attr('src');
49
59
  if (src !== undefined && src !== '') {
50
- $(el).attr('src', `${DOCS_BASE_URL}${src}`);
60
+ $(el).attr('src', `${linkBase}${src}`);
51
61
  }
52
62
  });
53
63
  }
@@ -85,7 +95,11 @@ export function linkInternalSpans($, resolve) {
85
95
  */
86
96
  export function parseArticle(html, displayUrl, options) {
87
97
  const $ = cheerio.load(html);
88
- cleanHtml($);
98
+ const selectors = options?.selectors ?? SELECTORS;
99
+ cleanHtml($, {
100
+ selectors,
101
+ ...(options?.linkBase !== undefined ? { linkBase: options.linkBase } : {}),
102
+ });
89
103
  // Before anything reads anchors: internal links are spans until this runs.
90
104
  const resolveInternalLink = options?.resolveInternalLink;
91
105
  if (resolveInternalLink !== undefined) {
@@ -99,7 +113,7 @@ export function parseArticle(html, displayUrl, options) {
99
113
  // Checked before body wrappers because <article> is semantically broader
100
114
  // and should take priority when both exist as siblings.
101
115
  if (contentHtml === '') {
102
- contentHtml = $(SELECTORS.CONTENT).html() ?? '';
116
+ contentHtml = $(selectors.CONTENT).html() ?? '';
103
117
  }
104
118
  // 3. Common FT body wrappers (taskbody, conbody, refbody, etc.)
105
119
  if (contentHtml === '') {
@@ -113,19 +127,19 @@ export function parseArticle(html, displayUrl, options) {
113
127
  if (contentHtml === '') {
114
128
  contentHtml = html;
115
129
  }
116
- const extractedTitle = $(SELECTORS.TITLE).first().text().trim();
130
+ const extractedTitle = $(selectors.TITLE).first().text().trim();
117
131
  const title = extractedTitle !== '' ? extractedTitle : 'Untitled';
118
132
  // Convert to Markdown and strip Turndown anchor artifacts from headings
119
133
  const content = turndown.turndown(contentHtml)
120
134
  .replace(/^(#{1,6}\s+)\[([^\]]*)\]\(#[^)]*\)/gm, '$1$2');
121
135
  // Extract breadcrumb
122
- const breadcrumb = $(SELECTORS.BREADCRUMB)
136
+ const breadcrumb = $(selectors.BREADCRUMB)
123
137
  .map((_, el) => $(el).text().trim())
124
138
  .get()
125
139
  .filter(Boolean);
126
140
  // Extract related articles
127
141
  const relatedArticles = options?.includeRelated === true
128
- ? $(SELECTORS.RELATED).map((_, el) => {
142
+ ? $(selectors.RELATED).map((_, el) => {
129
143
  const rawHref = $(el).attr('href') ?? '';
130
144
  if (rawHref === '' || rawHref.startsWith('#')) {
131
145
  return { title: '', url: '' };
@@ -1 +1 @@
1
- {"version":3,"file":"content-parser.js","sourceRoot":"","sources":["../../../src/core/services/content-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-parser.js","sourceRoot":"","sources":["../../../src/core/services/content-parser.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,22 @@ export declare class MapsRegistry {
88
88
  * Returns null if not found.
89
89
  */
90
90
  resolveMapId(bundleStem: string, version?: string, locale?: LocaleId): Promise<string | null>;
91
+ /**
92
+ * Resolve to the map itself, saying which locale actually answered.
93
+ *
94
+ * The fallback to en-US has always been here; what was missing is any way
95
+ * for a caller to know it happened. Jamf does not publish every family in
96
+ * every locale — 42 of the 97 are en-US only, `jamf-school-documentation`
97
+ * has no zh-TW map at all (de/en/es/fr/ja/nl), and nl-NL covers 10 families
98
+ * against en-US's 97 — so a zh-TW request silently returning English is a
99
+ * routine outcome, not an edge case. Returning `resolvedLocale` lets the
100
+ * tool say so instead of implying the content is translated.
101
+ */
102
+ resolveMap(bundleStem: string, version?: string, locale?: LocaleId): Promise<{
103
+ mapId: string;
104
+ title: string;
105
+ resolvedLocale: string;
106
+ } | null>;
91
107
  private findMap;
92
108
  /**
93
109
  * Resolve a legacy bundleId (e.g., "jamf-pro-documentation-11.12.0")
@@ -1 +1 @@
1
- {"version":3,"file":"maps-registry.d.ts","sourceRoot":"","sources":["../../../src/core/services/maps-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maps-registry.d.ts","sourceRoot":"","sources":["../../../src/core/services/maps-registry.ts"],"names":[],"mappings":"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"}
@@ -133,6 +133,20 @@ export class MapsRegistry {
133
133
  * Returns null if not found.
134
134
  */
135
135
  async resolveMapId(bundleStem, version, locale) {
136
+ return (await this.resolveMap(bundleStem, version, locale))?.mapId ?? null;
137
+ }
138
+ /**
139
+ * Resolve to the map itself, saying which locale actually answered.
140
+ *
141
+ * The fallback to en-US has always been here; what was missing is any way
142
+ * for a caller to know it happened. Jamf does not publish every family in
143
+ * every locale — 42 of the 97 are en-US only, `jamf-school-documentation`
144
+ * has no zh-TW map at all (de/en/es/fr/ja/nl), and nl-NL covers 10 families
145
+ * against en-US's 97 — so a zh-TW request silently returning English is a
146
+ * routine outcome, not an edge case. Returning `resolvedLocale` lets the
147
+ * tool say so instead of implying the content is translated.
148
+ */
149
+ async resolveMap(bundleStem, version, locale) {
136
150
  await this.ensureBuilt();
137
151
  const loc = locale ?? DEFAULT_LOCALE;
138
152
  // Normalize: strip -current suffix if present
@@ -141,8 +155,11 @@ export class MapsRegistry {
141
155
  const match = this.findMap(normalizedStem, version, loc)
142
156
  ?? (loc !== DEFAULT_LOCALE
143
157
  ? this.findMap(normalizedStem, version, DEFAULT_LOCALE)
144
- : null);
145
- return match?.mapId ?? null;
158
+ : undefined);
159
+ if (match === undefined) {
160
+ return null;
161
+ }
162
+ return { mapId: match.mapId, title: match.title, resolvedLocale: match.locale };
146
163
  }
147
164
  findMap(bundleStem, version, locale) {
148
165
  const candidates = this.entries.filter(e => e.bundleStem === bundleStem && e.locale === locale);
@@ -318,12 +335,7 @@ export class MapsRegistry {
318
335
  * uses, locale fallback included.
319
336
  */
320
337
  async resolveTitle(bundleStem, version, locale) {
321
- await this.ensureBuilt();
322
- const loc = locale ?? DEFAULT_LOCALE;
323
- const normalized = stripCurrentSuffix(bundleStem);
324
- const match = this.findMap(normalized, version, loc)
325
- ?? (loc !== DEFAULT_LOCALE ? this.findMap(normalized, version, DEFAULT_LOCALE) : null);
326
- return match?.title ?? null;
338
+ return (await this.resolveMap(bundleStem, version, locale))?.title ?? null;
327
339
  }
328
340
  /**
329
341
  * Whether a bundle family exists at all, in any locale.
@@ -1 +1 @@
1
- {"version":3,"file":"maps-registry.js","sourceRoot":"","sources":["../../../src/core/services/maps-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maps-registry.js","sourceRoot":"","sources":["../../../src/core/services/maps-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Article retrieval for documentation sources outside Fluid Topics.
3
+ *
4
+ * The Fluid Topics path addresses a topic by `mapId` + `contentId` and gets
5
+ * an HTML fragment back. A static site has neither: the address is the URL,
6
+ * and the response is a whole page whose navigation has to be stripped before
7
+ * anything else. Everything downstream of that — sections, summaries,
8
+ * truncation — is shared with the FT path through
9
+ * {@link buildArticleView}, so the two cannot drift on what a caller sees.
10
+ */
11
+ import type { StaticDocSource } from '../constants/sources.js';
12
+ import type { ServerContext } from '../types/context.js';
13
+ import type { FetchArticleOptions, FetchArticleResult } from '../types.js';
14
+ /**
15
+ * Canonicalise a URL for a static site.
16
+ *
17
+ * concepts.jamf.com's sitemap emits paths without a trailing slash while the
18
+ * site itself redirects to the slashed form — all 990 entries, so fetching
19
+ * them as listed is 990 redirects. Adding the slash up front is one line here
20
+ * and saves a round trip per article. Paths that look like a file (`.html`,
21
+ * `.json`) are left alone, as is anything with a query or fragment.
22
+ */
23
+ export declare function canonicalStaticUrl(urlStr: string): string;
24
+ /**
25
+ * The page's own title, preferring Open Graph over `<title>`.
26
+ *
27
+ * `<title>` on these sites carries a site-name suffix ("API Utility | Jamf
28
+ * Concepts"); `og:title` is the same string without it, so it is tried first
29
+ * and the suffix trimmed only as a fallback.
30
+ */
31
+ export declare function extractDocumentTitle(html: string): string | undefined;
32
+ /**
33
+ * Fetch and parse one article from a static documentation source.
34
+ *
35
+ * @param source the registry row for the hostname in `url`
36
+ */
37
+ export declare function fetchStaticArticle(ctx: ServerContext, source: StaticDocSource, url: string, options?: FetchArticleOptions): Promise<FetchArticleResult>;
38
+ //# sourceMappingURL=static-article-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-article-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/static-article-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAU3E;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASrE;AAYD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA2D7B"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Article retrieval for documentation sources outside Fluid Topics.
3
+ *
4
+ * The Fluid Topics path addresses a topic by `mapId` + `contentId` and gets
5
+ * an HTML fragment back. A static site has neither: the address is the URL,
6
+ * and the response is a whole page whose navigation has to be stripped before
7
+ * anything else. Everything downstream of that — sections, summaries,
8
+ * truncation — is shared with the FT path through
9
+ * {@link buildArticleView}, so the two cannot drift on what a caller sees.
10
+ */
11
+ import { httpGetText } from '../http-client.js';
12
+ import { parseArticle } from './content-parser.js';
13
+ import { buildArticleView } from './article-view.js';
14
+ import { extractSections } from './tokenizer.js';
15
+ import { cacheKey } from './cache-key.js';
16
+ import { TOKEN_CONFIG } from '../constants.js';
17
+ /**
18
+ * Canonicalise a URL for a static site.
19
+ *
20
+ * concepts.jamf.com's sitemap emits paths without a trailing slash while the
21
+ * site itself redirects to the slashed form — all 990 entries, so fetching
22
+ * them as listed is 990 redirects. Adding the slash up front is one line here
23
+ * and saves a round trip per article. Paths that look like a file (`.html`,
24
+ * `.json`) are left alone, as is anything with a query or fragment.
25
+ */
26
+ export function canonicalStaticUrl(urlStr) {
27
+ try {
28
+ const url = new URL(urlStr);
29
+ const last = url.pathname.split('/').pop() ?? '';
30
+ if (!url.pathname.endsWith('/') && !last.includes('.')) {
31
+ url.pathname = `${url.pathname}/`;
32
+ }
33
+ return url.toString();
34
+ }
35
+ catch {
36
+ return urlStr;
37
+ }
38
+ }
39
+ /**
40
+ * The page's own title, preferring Open Graph over `<title>`.
41
+ *
42
+ * `<title>` on these sites carries a site-name suffix ("API Utility | Jamf
43
+ * Concepts"); `og:title` is the same string without it, so it is tried first
44
+ * and the suffix trimmed only as a fallback.
45
+ */
46
+ export function extractDocumentTitle(html) {
47
+ const og = /<meta[^>]+property=["']og:title["'][^>]+content=["']([^"']+)["']/i.exec(html)
48
+ ?? /<meta[^>]+content=["']([^"']+)["'][^>]+property=["']og:title["']/i.exec(html);
49
+ if (og?.[1] !== undefined && og[1].trim() !== '') {
50
+ return decodeEntities(og[1].trim());
51
+ }
52
+ const title = /<title[^>]*>([^<]*)<\/title>/i.exec(html);
53
+ if (title?.[1] === undefined) {
54
+ return undefined;
55
+ }
56
+ const trimmed = title[1].split('|')[0]?.trim() ?? '';
57
+ return trimmed !== '' ? decodeEntities(trimmed) : undefined;
58
+ }
59
+ /** The handful of entities that survive into a title attribute. */
60
+ function decodeEntities(text) {
61
+ return text
62
+ .replace(/&amp;/g, '&')
63
+ .replace(/&lt;/g, '<')
64
+ .replace(/&gt;/g, '>')
65
+ .replace(/&quot;/g, '"')
66
+ .replace(/&#(?:39|x27);/g, "'");
67
+ }
68
+ /**
69
+ * Fetch and parse one article from a static documentation source.
70
+ *
71
+ * @param source the registry row for the hostname in `url`
72
+ */
73
+ export async function fetchStaticArticle(ctx, source, url, options = {}) {
74
+ const maxTokens = options.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
75
+ const displayUrl = canonicalStaticUrl(url);
76
+ const key = cacheKey('static-article', { source: source.id, url: displayUrl });
77
+ let cached = await ctx.cache.get(key);
78
+ if (cached === null) {
79
+ const html = await httpGetText(displayUrl);
80
+ const documentTitle = extractDocumentTitle(html);
81
+ const parsed = parseArticle(html, displayUrl, {
82
+ // The source's own markup rules. Parsing a static page with Fluid
83
+ // Topics' selectors finds no content wrapper and falls through to
84
+ // <body>, which is the whole site chrome.
85
+ selectors: source.selectors,
86
+ // Root-relative links belong to this source, not learn.jamf.com.
87
+ linkBase: source.baseUrl,
88
+ ...(options.includeRelated !== undefined ? { includeRelated: options.includeRelated } : {}),
89
+ });
90
+ // `parseArticle` reads the first surviving <h1>. On a static site the
91
+ // page heading often lives in a hero section outside the content wrapper,
92
+ // and stripping the chrome takes it with it — concepts.jamf.com's tool
93
+ // pages put their only <h1> there, so every one of the 37 came back
94
+ // "Untitled". The document's own title is the reliable answer when the
95
+ // body has none of its own; Fluid Topics never needs this because its
96
+ // titles arrive as metadata.
97
+ const title = parsed.title !== 'Untitled' ? parsed.title : documentTitle ?? parsed.title;
98
+ cached = { title, parsed, displayUrl };
99
+ await ctx.cache.set(key, cached, ctx.config.cacheTtl.article);
100
+ }
101
+ const { title, parsed } = cached;
102
+ // Provenance is part of the content, not metadata: it has to survive
103
+ // section extraction and truncation, both of which slice `content`, and a
104
+ // reader who asked for one section still needs to know what they are
105
+ // reading.
106
+ const content = source.provenance !== undefined
107
+ ? `${parsed.content}\n\n---\n\n*${source.provenance}*\n`
108
+ : parsed.content;
109
+ const allSections = extractSections(content);
110
+ return buildArticleView({
111
+ title,
112
+ url: cached.displayUrl,
113
+ product: source.name,
114
+ breadcrumb: parsed.breadcrumb.length > 0 ? parsed.breadcrumb : undefined,
115
+ relatedArticles: options.includeRelated === true && parsed.relatedArticles.length > 0
116
+ ? parsed.relatedArticles
117
+ : undefined,
118
+ sections: allSections,
119
+ }, content, options, maxTokens, allSections);
120
+ }
121
+ //# sourceMappingURL=static-article-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-article-service.js","sourceRoot":"","sources":["../../../src/core/services/static-article-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toc-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAkB,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKxG;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAmBzE;AAyDD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAgBlD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,SAAS,EACjB,OAAO,SAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA0EzB"}
1
+ {"version":3,"file":"toc-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAkB,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKxG;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAmBzE;AAyDD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAgBlD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,SAAS,EACjB,OAAO,SAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAkFzB"}
@@ -54,7 +54,7 @@ function tocEntryToString(entry, depth = 0) {
54
54
  }
55
55
  // ─── Map id resolution ─────────────────────────────────────────
56
56
  /**
57
- * Resolve the map id for a product without letting the registry take the
57
+ * Resolve the map for a product without letting the registry take the
58
58
  * request down with it.
59
59
  *
60
60
  * Used on the cache-hit path, where the TOC is already in hand: the cached
@@ -62,9 +62,9 @@ function tocEntryToString(entry, depth = 0) {
62
62
  * re-resolved, and a registry that cannot answer should cost the caller the
63
63
  * `mapId` field only — not the table of contents it already has.
64
64
  */
65
- async function resolveMapIdQuietly(ctx, bundleId, version, locale) {
65
+ async function resolveMapQuietly(ctx, bundleId, version, locale) {
66
66
  try {
67
- return await ctx.mapsRegistry.resolveMapId(bundleId, version !== 'current' ? version : undefined, locale);
67
+ return await ctx.mapsRegistry.resolveMap(bundleId, version !== 'current' ? version : undefined, locale);
68
68
  }
69
69
  catch (error) {
70
70
  ctx.logger.createLogger('toc-service').warning(`Could not resolve mapId for a cached TOC (${bundleId}/${version}/${locale}): ${String(error)}`);
@@ -109,11 +109,14 @@ export async function fetchTableOfContents(ctx, source, version = 'current', opt
109
109
  const bundleId = bundleStemFor(source);
110
110
  let allToc = await ctx.cache.get(key);
111
111
  let mapId;
112
+ let resolvedLocale;
112
113
  if (allToc === null) {
113
- mapId = await ctx.mapsRegistry.resolveMapId(bundleId, version !== 'current' ? version : undefined, locale);
114
- if (mapId === null) {
114
+ const resolved = await ctx.mapsRegistry.resolveMap(bundleId, version !== 'current' ? version : undefined, locale);
115
+ if (resolved === null) {
115
116
  throw new JamfDocsError(`Could not resolve map for ${source} version ${version} locale ${locale}`, JamfDocsErrorCode.NOT_FOUND);
116
117
  }
118
+ mapId = resolved.mapId;
119
+ resolvedLocale = resolved.resolvedLocale;
117
120
  const ftNodes = await fetchMapToc(mapId);
118
121
  allToc = transformFtTocToTocEntries(ftNodes);
119
122
  await ctx.cache.set(key, allToc, ctx.config.cacheTtl.article);
@@ -121,8 +124,12 @@ export async function fetchTableOfContents(ctx, source, version = 'current', opt
121
124
  else {
122
125
  // The cache stores the tree, not the id it came from. Re-resolve so a
123
126
  // caller reading a cached TOC gets the same `mapId` a cold one would —
124
- // it is half of the pair `jamf_docs_get_article` documents.
125
- mapId = await resolveMapIdQuietly(ctx, bundleId, version, locale);
127
+ // it is half of the pair `jamf_docs_get_article` documents. The locale
128
+ // that answered is re-resolved with it: a cached English tree served to a
129
+ // zh-TW request must still say it is English.
130
+ const resolved = await resolveMapQuietly(ctx, bundleId, version, locale);
131
+ mapId = resolved?.mapId ?? null;
132
+ resolvedLocale = resolved?.resolvedLocale ?? null;
126
133
  }
127
134
  // ─── Pagination & token truncation ───────────────────────────
128
135
  const totalItems = countTocEntries(allToc);
@@ -146,6 +153,7 @@ export async function fetchTableOfContents(ctx, source, version = 'current', opt
146
153
  pagination,
147
154
  tokenInfo,
148
155
  ...(mapId !== null ? { mapId } : {}),
156
+ ...(resolvedLocale !== null ? { resolvedLocale } : {}),
149
157
  ...(paginationNote !== undefined ? { paginationNote } : {}),
150
158
  };
151
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toc-service.js","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toc-service.js","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-toc.d.ts","sourceRoot":"","sources":["../../../src/core/tools/get-toc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAoXzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAyI9E"}
1
+ {"version":3,"file":"get-toc.d.ts","sourceRoot":"","sources":["../../../src/core/tools/get-toc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA8YzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CA0I9E"}
@@ -209,6 +209,26 @@ function getVersionNote(requestedVersion, availableVersions) {
209
209
  }
210
210
  return `Version "${requestedVersion}" is not among the versions Jamf publishes as its own documentation map, so these results may come from a different version.`;
211
211
  }
212
+ /**
213
+ * Say so when the answer is not in the language that was asked for.
214
+ *
215
+ * The registry has always fallen back to en-US, and Jamf genuinely does not
216
+ * translate everything: 42 of the 97 publication families are en-US only, and
217
+ * `jamf-school-documentation` has no zh-TW map at all (de/en/es/fr/ja/nl). A
218
+ * silent fallback presents English as though it were the translation, and the
219
+ * reader has no way to tell that from a document that simply happens to have
220
+ * English headings.
221
+ */
222
+ function getLocaleNote(requested, resolved) {
223
+ if (requested === undefined || resolved === undefined) {
224
+ return undefined;
225
+ }
226
+ if (requested === resolved) {
227
+ return undefined;
228
+ }
229
+ return `Jamf does not publish this document in ${requested}. Showing the ` +
230
+ `${resolved} edition instead.`;
231
+ }
212
232
  /**
213
233
  * The notices that are actually set, as a plain bag ready to spread into
214
234
  * either the JSON response or `structuredContent`.
@@ -216,6 +236,7 @@ function getVersionNote(requestedVersion, availableVersions) {
216
236
  function noticeFields(notices) {
217
237
  return {
218
238
  ...(notices.versionNote !== undefined ? { versionNote: notices.versionNote } : {}),
239
+ ...(notices.localeNote !== undefined ? { localeNote: notices.localeNote } : {}),
219
240
  ...(notices.paginationNote !== undefined ? { paginationNote: notices.paginationNote } : {}),
220
241
  };
221
242
  }
@@ -227,6 +248,9 @@ function renderTocNotices(notices) {
227
248
  if (notices.versionNote !== undefined) {
228
249
  rendered += `\n> **Version Note:** ${notices.versionNote}\n`;
229
250
  }
251
+ if (notices.localeNote !== undefined) {
252
+ rendered += `\n> **Language Note:** ${notices.localeNote}\n`;
253
+ }
230
254
  if (notices.paginationNote !== undefined) {
231
255
  rendered += `\n> **Pagination Note:** ${notices.paginationNote}\n`;
232
256
  }
@@ -340,7 +364,7 @@ export function registerGetTocTool(server, ctx) {
340
364
  locale: params.language
341
365
  });
342
366
  await reportProgress(extra, { progress: 1, total: 4, message: 'Processing entries...' });
343
- const { toc, pagination, tokenInfo, paginationNote, mapId } = tocResult;
367
+ const { toc, pagination, tokenInfo, paginationNote, mapId, resolvedLocale } = tocResult;
344
368
  // Build response
345
369
  const response = {
346
370
  product: sourceLabel,
@@ -373,6 +397,7 @@ export function registerGetTocTool(server, ctx) {
373
397
  // Two arguments, not one: the note is only truthful when the version
374
398
  // asked for is absent from the maps Jamf actually publishes.
375
399
  versionNote: getVersionNote(params.version, availableVersions),
400
+ localeNote: getLocaleNote(params.language, resolvedLocale),
376
401
  paginationNote
377
402
  };
378
403
  await reportProgress(extra, { progress: 3, total: 4, message: 'Formatting output...' });