@get-technology-inc/jamf-docs-mcp-server 5.7.0 → 5.8.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/core/constants/sources.d.ts +68 -2
- package/dist/core/constants/sources.d.ts.map +1 -1
- package/dist/core/constants/sources.js +47 -0
- package/dist/core/constants/sources.js.map +1 -1
- package/dist/core/services/cache-key.d.ts +10 -0
- package/dist/core/services/cache-key.d.ts.map +1 -1
- package/dist/core/services/cache-key.js +2 -0
- package/dist/core/services/cache-key.js.map +1 -1
- package/dist/core/services/intercom-service.d.ts +85 -0
- package/dist/core/services/intercom-service.d.ts.map +1 -0
- package/dist/core/services/intercom-service.js +312 -0
- package/dist/core/services/intercom-service.js.map +1 -0
- package/dist/core/services/static-article-service.d.ts.map +1 -1
- package/dist/core/services/static-article-service.js +29 -0
- package/dist/core/services/static-article-service.js.map +1 -1
- package/dist/core/tools/get-toc.d.ts.map +1 -1
- package/dist/core/tools/get-toc.js +70 -8
- package/dist/core/tools/get-toc.js.map +1 -1
- package/dist/core/tools/list-products.d.ts.map +1 -1
- package/dist/core/tools/list-products.js +25 -2
- package/dist/core/tools/list-products.js.map +1 -1
- package/package.json +1 -1
|
@@ -38,7 +38,17 @@ export interface StaticDocSource {
|
|
|
38
38
|
readonly baseUrl: string;
|
|
39
39
|
/** Human name, for prose and error messages. */
|
|
40
40
|
readonly name: string;
|
|
41
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* How this source's pages are read.
|
|
43
|
+
*
|
|
44
|
+
* `html` parses the DOM with {@link StaticDocSource.selectors}. `intercom`
|
|
45
|
+
* ignores them entirely: an Intercom Help Center embeds its own data as
|
|
46
|
+
* JSON in `<script id="__NEXT_DATA__">`, and the content model is a block
|
|
47
|
+
* list rather than markup, so the rendered DOM is a view of the source of
|
|
48
|
+
* truth rather than the source itself.
|
|
49
|
+
*/
|
|
50
|
+
readonly parser: 'html' | 'intercom';
|
|
51
|
+
/** How to read this source's HTML. Unused when `parser` is not `html`. */
|
|
42
52
|
readonly selectors: SelectorSet;
|
|
43
53
|
/**
|
|
44
54
|
* Appended to every article served from this source.
|
|
@@ -58,8 +68,25 @@ export interface StaticDocSource {
|
|
|
58
68
|
* a hard gap, `/th` and `/th-TH` both 404.
|
|
59
69
|
*/
|
|
60
70
|
readonly locales: Readonly<Record<string, string>>;
|
|
61
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Browsable sections, exposed as publications.
|
|
73
|
+
*
|
|
74
|
+
* Empty for a source whose sections are not knowable without a request —
|
|
75
|
+
* an Intercom Help Center's collections are content, not configuration,
|
|
76
|
+
* and pinning their ids here would mean a registry edit whenever Jamf adds
|
|
77
|
+
* one. Those are discovered instead; see {@link StaticDocSource.dynamicSections}.
|
|
78
|
+
*/
|
|
62
79
|
readonly sections: readonly StaticSection[];
|
|
80
|
+
/**
|
|
81
|
+
* Set when sections come from the source at runtime rather than this table.
|
|
82
|
+
*
|
|
83
|
+
* The publication id is then `{prefix}-{slug}`, so a caller can still name
|
|
84
|
+
* one without knowing Intercom's numeric ids.
|
|
85
|
+
*/
|
|
86
|
+
readonly dynamicSections?: {
|
|
87
|
+
readonly kind: 'intercom-collections';
|
|
88
|
+
readonly idPrefix: string;
|
|
89
|
+
};
|
|
63
90
|
}
|
|
64
91
|
export declare const STATIC_DOC_SOURCES: {
|
|
65
92
|
readonly 'jamf-concepts': {
|
|
@@ -67,6 +94,7 @@ export declare const STATIC_DOC_SOURCES: {
|
|
|
67
94
|
readonly hostname: "concepts.jamf.com";
|
|
68
95
|
readonly baseUrl: "https://concepts.jamf.com";
|
|
69
96
|
readonly name: "Jamf Concepts";
|
|
97
|
+
readonly parser: "html";
|
|
70
98
|
readonly selectors: {
|
|
71
99
|
readonly CONTENT: "article, [class*=\"prose\"]";
|
|
72
100
|
readonly TITLE: "h1";
|
|
@@ -95,6 +123,34 @@ export declare const STATIC_DOC_SOURCES: {
|
|
|
95
123
|
readonly title: "Jamf Concepts: Open Source Tools";
|
|
96
124
|
}];
|
|
97
125
|
};
|
|
126
|
+
readonly 'jamf-support': {
|
|
127
|
+
readonly id: "jamf-support";
|
|
128
|
+
readonly hostname: "support.jamf.com";
|
|
129
|
+
readonly baseUrl: "https://support.jamf.com";
|
|
130
|
+
readonly name: "Jamf Support Knowledge Base";
|
|
131
|
+
readonly parser: "intercom";
|
|
132
|
+
readonly selectors: {
|
|
133
|
+
readonly CONTENT: "article, main";
|
|
134
|
+
readonly TITLE: "h1";
|
|
135
|
+
readonly BREADCRUMB: "[class*=\"breadcrumb\"] a";
|
|
136
|
+
readonly RELATED: "[class*=\"related\"] a";
|
|
137
|
+
readonly REMOVE: string;
|
|
138
|
+
};
|
|
139
|
+
readonly provenance: string;
|
|
140
|
+
readonly locales: {
|
|
141
|
+
readonly 'en-US': "en";
|
|
142
|
+
readonly 'de-DE': "de";
|
|
143
|
+
readonly 'es-ES': "es";
|
|
144
|
+
readonly 'fr-FR': "fr";
|
|
145
|
+
readonly 'ja-JP': "ja";
|
|
146
|
+
readonly 'zh-TW': "zh-TW";
|
|
147
|
+
};
|
|
148
|
+
readonly sections: readonly [];
|
|
149
|
+
readonly dynamicSections: {
|
|
150
|
+
readonly kind: "intercom-collections";
|
|
151
|
+
readonly idPrefix: "jamf-support";
|
|
152
|
+
};
|
|
153
|
+
};
|
|
98
154
|
};
|
|
99
155
|
export type StaticSourceId = keyof typeof STATIC_DOC_SOURCES;
|
|
100
156
|
/** Every non-Fluid-Topics hostname this server will fetch from. */
|
|
@@ -119,4 +175,14 @@ export declare function staticSectionById(id: string): {
|
|
|
119
175
|
source: StaticDocSource;
|
|
120
176
|
section: StaticSection;
|
|
121
177
|
} | undefined;
|
|
178
|
+
/** Sources whose sections are discovered at runtime rather than declared here. */
|
|
179
|
+
export declare const DYNAMIC_SECTION_SOURCES: readonly StaticDocSource[];
|
|
180
|
+
/**
|
|
181
|
+
* Publication id for a runtime-discovered section.
|
|
182
|
+
*
|
|
183
|
+
* Built from the slug rather than Intercom's numeric id so a caller can name
|
|
184
|
+
* a collection from its URL, and so recreating a collection upstream does not
|
|
185
|
+
* change the id this server publishes.
|
|
186
|
+
*/
|
|
187
|
+
export declare function dynamicSectionId(source: StaticDocSource, slug: string): string;
|
|
122
188
|
//# sourceMappingURL=sources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/core/constants/sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/core/constants/sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACjG;AAiBD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EqB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE7D,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EACa,CAAC;AAEnE,sEAAsE;AACtE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAErF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAM9E;AAED,8EAA8E;AAC9E,eAAO,MAAM,eAAe,EAAE,SAAS;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,EAEhC,CAAC;AAE3D,sFAAsF;AACtF,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,GACT;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GAAG,SAAS,CAEjE;AAED,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,EAAE,SAAS,eAAe,EAEH,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9E"}
|
|
@@ -31,6 +31,7 @@ export const STATIC_DOC_SOURCES = {
|
|
|
31
31
|
hostname: 'concepts.jamf.com',
|
|
32
32
|
baseUrl: 'https://concepts.jamf.com',
|
|
33
33
|
name: 'Jamf Concepts',
|
|
34
|
+
parser: 'html',
|
|
34
35
|
selectors: {
|
|
35
36
|
// Every page type — guide, concept, about — wraps its body in exactly
|
|
36
37
|
// one `<article class="prose">`. `main` is deliberately NOT listed:
|
|
@@ -62,6 +63,39 @@ export const STATIC_DOC_SOURCES = {
|
|
|
62
63
|
{ id: 'jamf-concepts-tools', path: 'concepts', title: 'Jamf Concepts: Open Source Tools' },
|
|
63
64
|
],
|
|
64
65
|
},
|
|
66
|
+
'jamf-support': {
|
|
67
|
+
id: 'jamf-support',
|
|
68
|
+
hostname: 'support.jamf.com',
|
|
69
|
+
baseUrl: 'https://support.jamf.com',
|
|
70
|
+
name: 'Jamf Support Knowledge Base',
|
|
71
|
+
parser: 'intercom',
|
|
72
|
+
// Unused: the Intercom parser reads __NEXT_DATA__, not the DOM. Present
|
|
73
|
+
// because the shape requires it and because a future HTML fallback would
|
|
74
|
+
// want somewhere sensible to start.
|
|
75
|
+
selectors: {
|
|
76
|
+
CONTENT: 'article, main',
|
|
77
|
+
TITLE: 'h1',
|
|
78
|
+
BREADCRUMB: '[class*="breadcrumb"] a',
|
|
79
|
+
RELATED: '[class*="related"] a',
|
|
80
|
+
REMOVE: STATIC_PAGE_REMOVE,
|
|
81
|
+
},
|
|
82
|
+
provenance: 'Source: Jamf Support Knowledge Base (support.jamf.com). Troubleshooting ' +
|
|
83
|
+
'and known-issue articles, edited separately from the product ' +
|
|
84
|
+
'documentation on learn.jamf.com.',
|
|
85
|
+
// Six locales route and carry content. `nl` and `th` route but return an
|
|
86
|
+
// empty collection list, so they are absent rather than listed and
|
|
87
|
+
// silently empty.
|
|
88
|
+
locales: {
|
|
89
|
+
'en-US': 'en',
|
|
90
|
+
'de-DE': 'de',
|
|
91
|
+
'es-ES': 'es',
|
|
92
|
+
'fr-FR': 'fr',
|
|
93
|
+
'ja-JP': 'ja',
|
|
94
|
+
'zh-TW': 'zh-TW',
|
|
95
|
+
},
|
|
96
|
+
sections: [],
|
|
97
|
+
dynamicSections: { kind: 'intercom-collections', idPrefix: 'jamf-support' },
|
|
98
|
+
},
|
|
65
99
|
};
|
|
66
100
|
/** Every non-Fluid-Topics hostname this server will fetch from. */
|
|
67
101
|
export const STATIC_SOURCE_HOSTNAMES = Object.values(STATIC_DOC_SOURCES).map(source => source.hostname);
|
|
@@ -90,4 +124,17 @@ export const STATIC_SECTIONS = Object.values(STATIC_DOC_SOURCES).flatMap(source
|
|
|
90
124
|
export function staticSectionById(id) {
|
|
91
125
|
return STATIC_SECTIONS.find(row => row.section.id === id);
|
|
92
126
|
}
|
|
127
|
+
/** Sources whose sections are discovered at runtime rather than declared here. */
|
|
128
|
+
export const DYNAMIC_SECTION_SOURCES = Object.values(STATIC_DOC_SOURCES)
|
|
129
|
+
.filter(source => source.dynamicSections !== undefined);
|
|
130
|
+
/**
|
|
131
|
+
* Publication id for a runtime-discovered section.
|
|
132
|
+
*
|
|
133
|
+
* Built from the slug rather than Intercom's numeric id so a caller can name
|
|
134
|
+
* a collection from its URL, and so recreating a collection upstream does not
|
|
135
|
+
* change the id this server publishes.
|
|
136
|
+
*/
|
|
137
|
+
export function dynamicSectionId(source, slug) {
|
|
138
|
+
return `${source.dynamicSections?.idPrefix ?? source.id}-${slug}`;
|
|
139
|
+
}
|
|
93
140
|
//# sourceMappingURL=sources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/core/constants/sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/core/constants/sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,6 +115,16 @@ export interface CacheKeySpaces {
|
|
|
115
115
|
'static-sitemap': {
|
|
116
116
|
source: string;
|
|
117
117
|
};
|
|
118
|
+
/** An Intercom Help Center's top-level collections, per locale. */
|
|
119
|
+
'intercom-collections': {
|
|
120
|
+
source: string;
|
|
121
|
+
locale: string;
|
|
122
|
+
};
|
|
123
|
+
/** One Intercom collection's article tree. Keyed on the collection, which is locale-specific. */
|
|
124
|
+
'intercom-collection-toc': {
|
|
125
|
+
source: string;
|
|
126
|
+
collection: string;
|
|
127
|
+
};
|
|
118
128
|
'maps-registry-v2': null;
|
|
119
129
|
'metadata-products-v2': null;
|
|
120
130
|
'metadata-topics': null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-key.d.ts","sourceRoot":"","sources":["../../../src/core/services/cache-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAErE,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,SAAS,aAAa,EAAE,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;AAEvF;;;;;;;;GAQG;AAMH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,EAAE,sBAAsB,CAAC;KACjC,CAAC;IASF,eAAe,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAQ1E,QAAQ,EAAE;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IASpC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,kBAAkB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD;;;;;;;;;OASG;IACH,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,+EAA+E;IAC/E,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,kBAAkB,EAAE,IAAI,CAAC;IACzB,sBAAsB,EAAE,IAAI,CAAC;IAC7B,iBAAiB,EAAE,IAAI,CAAC;IACxB,+BAA+B,EAAE,IAAI,CAAC;CACvC;AAID,MAAM,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cache-key.d.ts","sourceRoot":"","sources":["../../../src/core/services/cache-key.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,8 @@ const CACHE_NAMESPACE_REGISTRY = {
|
|
|
48
48
|
'glossary-content': true,
|
|
49
49
|
'static-article': true,
|
|
50
50
|
'static-sitemap': true,
|
|
51
|
+
'intercom-collections': true,
|
|
52
|
+
'intercom-collection-toc': true,
|
|
51
53
|
'maps-registry-v2': true,
|
|
52
54
|
'metadata-products-v2': true,
|
|
53
55
|
'metadata-topics': true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-key.js","sourceRoot":"","sources":["../../../src/core/services/cache-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;
|
|
1
|
+
{"version":3,"file":"cache-key.js","sourceRoot":"","sources":["../../../src/core/services/cache-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AA0IH;;;;;;GAMG;AACH,MAAM,wBAAwB,GAE1B;IACF,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,IAAI;IACd,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,IAAI;IACxB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,sBAAsB,EAAE,IAAI;IAC5B,yBAAyB,EAAE,IAAI;IAC/B,kBAAkB,EAAE,IAAI;IACxB,sBAAsB,EAAE,IAAI;IAC5B,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,IAAI;CACtC,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAC3B,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAqB,CAAC;AAM5D;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAuB;IAC3C,MAAM,SAAS,GAAkC,EAAE,CAAC;IACpD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,KAAoB,EAAE,IAAY;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,SAAS,CACjB,mBAAmB,IAAI,QAAQ,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAAC,YAAY,CAAC,IAAqB,EAAE,IAAI,CAAC,CAAC;QAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CACtB,SAAY,EACZ,GAAG,IAAqB;IAExB,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAoC,CAAC;IACrD,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACrF,OAAO,GAAG,SAAS,GAAG,OAAO,EAAc,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading an Intercom Help Center.
|
|
3
|
+
*
|
|
4
|
+
* support.jamf.com is a Next.js app whose every page embeds its own data as
|
|
5
|
+
* JSON in `<script id="__NEXT_DATA__">`. That is the source of truth: the
|
|
6
|
+
* rendered DOM is a view of it, and parsing the JSON avoids guessing at
|
|
7
|
+
* class names that change with any theme update.
|
|
8
|
+
*
|
|
9
|
+
* The content model is a block list, not HTML, so it is rendered to Markdown
|
|
10
|
+
* here rather than going through `content-parser`.
|
|
11
|
+
*/
|
|
12
|
+
import type { StaticDocSource } from '../constants/sources.js';
|
|
13
|
+
import type { ServerContext } from '../types/context.js';
|
|
14
|
+
import type { FetchTocOptions, FetchTocResult, TocEntry } from '../types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Pull the embedded page data out of an Intercom Help Center page.
|
|
17
|
+
*
|
|
18
|
+
* The opening tag carries a `nonce` attribute, so a regex anchored on
|
|
19
|
+
* `<script id="__NEXT_DATA__" type="application/json">` misses every page.
|
|
20
|
+
* Matching up to the first `>` is what makes it robust to attribute drift.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseNextData(html: string): Record<string, unknown> | null;
|
|
23
|
+
interface IntercomBlock {
|
|
24
|
+
type?: string;
|
|
25
|
+
text?: string;
|
|
26
|
+
items?: IntercomBlock[];
|
|
27
|
+
content?: IntercomBlock[];
|
|
28
|
+
summary?: string;
|
|
29
|
+
url?: string;
|
|
30
|
+
style?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Render one Intercom block.
|
|
34
|
+
*
|
|
35
|
+
* Ten types occur across the live corpus, not the four the integration notes
|
|
36
|
+
* listed. `callout` and `collapsibleSection` nest their body under `content`
|
|
37
|
+
* rather than `text`, and `subheading`, `unorderedNestedList`,
|
|
38
|
+
* `collapsibleSection`, `image`, `code` and `horizontalRule` would all be
|
|
39
|
+
* dropped by a renderer that only knew the four — silently, since a missing
|
|
40
|
+
* block leaves no trace in the output.
|
|
41
|
+
*/
|
|
42
|
+
export declare function renderBlock(block: IntercomBlock, depth?: number): string;
|
|
43
|
+
export declare function renderBlocks(blocks: IntercomBlock[], depth?: number): string;
|
|
44
|
+
export interface IntercomArticle {
|
|
45
|
+
title: string;
|
|
46
|
+
content: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
lastUpdated?: string;
|
|
49
|
+
breadcrumb: string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parse one Help Center article page.
|
|
53
|
+
*
|
|
54
|
+
* `articleContent.markdown` exists on every article and is `null` on every
|
|
55
|
+
* one measured — the body is in `blocks`. Reading the field that is named
|
|
56
|
+
* for what you want is the trap here.
|
|
57
|
+
*/
|
|
58
|
+
export declare function parseIntercomArticle(html: string): IntercomArticle | null;
|
|
59
|
+
export interface IntercomCollection {
|
|
60
|
+
id: string;
|
|
61
|
+
slug: string;
|
|
62
|
+
name: string;
|
|
63
|
+
description: string;
|
|
64
|
+
url: string;
|
|
65
|
+
articleCount: number;
|
|
66
|
+
}
|
|
67
|
+
/** The Help Center's top-level collections for one locale. */
|
|
68
|
+
export declare function listIntercomCollections(ctx: ServerContext, source: StaticDocSource, locale: string): Promise<IntercomCollection[]>;
|
|
69
|
+
/**
|
|
70
|
+
* The article tree of one collection.
|
|
71
|
+
*
|
|
72
|
+
* A collection page's `__NEXT_DATA__` carries the whole subtree —
|
|
73
|
+
* subcollections and every article summary — so one request answers what
|
|
74
|
+
* crawling 356 article pages would.
|
|
75
|
+
*/
|
|
76
|
+
export declare function fetchIntercomCollectionToc(ctx: ServerContext, source: StaticDocSource, collection: IntercomCollection): Promise<TocEntry[]>;
|
|
77
|
+
/**
|
|
78
|
+
* A `FetchTocResult` for one Intercom collection.
|
|
79
|
+
*
|
|
80
|
+
* Pagination and truncation match the other TOC paths, so a caller cannot
|
|
81
|
+
* tell from the response shape which kind of source answered.
|
|
82
|
+
*/
|
|
83
|
+
export declare function fetchIntercomToc(ctx: ServerContext, source: StaticDocSource, collection: IntercomCollection, options?: FetchTocOptions): Promise<FetchTocResult>;
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=intercom-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intercom-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/intercom-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAU7E;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAQ1E;AA0BD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+ED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,SAAI,GAAG,MAAM,CAuBnE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,SAAI,GAAG,MAAM,CAEvE;AAID,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAqBzE;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAqBD,8DAA8D;AAC9D,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAwB/B;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAiCrB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,kBAAkB,EAC9B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAgCzB"}
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading an Intercom Help Center.
|
|
3
|
+
*
|
|
4
|
+
* support.jamf.com is a Next.js app whose every page embeds its own data as
|
|
5
|
+
* JSON in `<script id="__NEXT_DATA__">`. That is the source of truth: the
|
|
6
|
+
* rendered DOM is a view of it, and parsing the JSON avoids guessing at
|
|
7
|
+
* class names that change with any theme update.
|
|
8
|
+
*
|
|
9
|
+
* The content model is a block list, not HTML, so it is rendered to Markdown
|
|
10
|
+
* here rather than going through `content-parser`.
|
|
11
|
+
*/
|
|
12
|
+
import * as cheerio from 'cheerio';
|
|
13
|
+
import { httpGetText } from '../http-client.js';
|
|
14
|
+
import { cacheKey } from './cache-key.js';
|
|
15
|
+
import { PAGINATION_CONFIG, TOKEN_CONFIG } from '../constants.js';
|
|
16
|
+
import { calculatePagination, truncateListByTokens, buildPaginationNote, } from './tokenizer.js';
|
|
17
|
+
// ─── __NEXT_DATA__ ──────────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Pull the embedded page data out of an Intercom Help Center page.
|
|
20
|
+
*
|
|
21
|
+
* The opening tag carries a `nonce` attribute, so a regex anchored on
|
|
22
|
+
* `<script id="__NEXT_DATA__" type="application/json">` misses every page.
|
|
23
|
+
* Matching up to the first `>` is what makes it robust to attribute drift.
|
|
24
|
+
*/
|
|
25
|
+
export function parseNextData(html) {
|
|
26
|
+
const match = /<script id="__NEXT_DATA__"[^>]*>([\s\S]*?)<\/script>/.exec(html);
|
|
27
|
+
if (match?.[1] === undefined) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse(match[1]);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** `props.pageProps`, or null when the page is not shaped like one. */
|
|
38
|
+
function pageProps(html) {
|
|
39
|
+
const data = parseNextData(html);
|
|
40
|
+
const props = data?.props?.pageProps;
|
|
41
|
+
return typeof props === 'object' && props !== null
|
|
42
|
+
? props
|
|
43
|
+
: null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A JSON value read back as a string, or the fallback.
|
|
47
|
+
*
|
|
48
|
+
* `String(value)` on an `unknown` renders an object as "[object Object]" and
|
|
49
|
+
* puts it straight into a title. These payloads come off the wire, so the
|
|
50
|
+
* narrowing has to happen at the boundary rather than being asserted.
|
|
51
|
+
*/
|
|
52
|
+
function asString(value, fallback = '') {
|
|
53
|
+
if (typeof value === 'string') {
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
if (typeof value === 'number') {
|
|
57
|
+
return String(value);
|
|
58
|
+
}
|
|
59
|
+
return fallback;
|
|
60
|
+
}
|
|
61
|
+
/** Inline HTML inside a block's `text`, flattened to Markdown-safe text. */
|
|
62
|
+
function inlineText(html) {
|
|
63
|
+
const $ = cheerio.load(`<div>${html}</div>`);
|
|
64
|
+
$('a[href]').each((_, el) => {
|
|
65
|
+
const href = $(el).attr('href') ?? '';
|
|
66
|
+
const label = $(el).text();
|
|
67
|
+
if (href !== '' && label !== '') {
|
|
68
|
+
$(el).replaceWith(`[${label}](${href})`);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
$('code').each((_, el) => { $(el).replaceWith(`\`${$(el).text()}\``); });
|
|
72
|
+
$('strong, b').each((_, el) => { $(el).replaceWith(`**${$(el).text()}**`); });
|
|
73
|
+
$('em, i').each((_, el) => { $(el).replaceWith(`*${$(el).text()}*`); });
|
|
74
|
+
return $('div').text().replace(/\s+/g, ' ').trim();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Render a nested list.
|
|
78
|
+
*
|
|
79
|
+
* A list item carries its text as a `content` block array — usually a single
|
|
80
|
+
* `paragraph` — not as `text`. The block's own `text` is a pre-rendered
|
|
81
|
+
* string of the whole list ("1. …\n2. …"), which is why reading `item.text`
|
|
82
|
+
* produces empty bullets rather than an obvious error: every item has the
|
|
83
|
+
* field, and it is undefined on all of them.
|
|
84
|
+
*
|
|
85
|
+
* Nested lists arrive as further list blocks inside that same `content`, so
|
|
86
|
+
* they are rendered by recursing through {@link renderBlocks} with the depth
|
|
87
|
+
* carried in the indent.
|
|
88
|
+
*/
|
|
89
|
+
function renderList(items, ordered, depth) {
|
|
90
|
+
const indent = ' '.repeat(depth);
|
|
91
|
+
return items
|
|
92
|
+
.map((item, index) => {
|
|
93
|
+
const bullet = ordered ? `${String(index + 1)}.` : '-';
|
|
94
|
+
const body = item.content !== undefined && item.content.length > 0
|
|
95
|
+
? renderBlocks(item.content, depth + 1).trim()
|
|
96
|
+
: inlineText(item.text ?? '');
|
|
97
|
+
if (body === '') {
|
|
98
|
+
return '';
|
|
99
|
+
}
|
|
100
|
+
const [first = '', ...rest] = body.split('\n');
|
|
101
|
+
const continuation = rest.map(line => `${indent} ${line}`).join('\n');
|
|
102
|
+
return `${indent}${bullet} ${first}\n${continuation === '' ? '' : `${continuation}\n`}`;
|
|
103
|
+
})
|
|
104
|
+
.join('');
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The blocks that map to one Markdown construct each.
|
|
108
|
+
*
|
|
109
|
+
* Split from {@link renderBlock} so the two nesting types — `callout` and
|
|
110
|
+
* `collapsibleSection`, which recurse — stay legible next to each other
|
|
111
|
+
* rather than at the bottom of one long switch. Returns null for anything it
|
|
112
|
+
* does not handle.
|
|
113
|
+
*/
|
|
114
|
+
function renderSimpleBlock(block, depth) {
|
|
115
|
+
switch (block.type) {
|
|
116
|
+
case 'heading':
|
|
117
|
+
return `## ${inlineText(block.text ?? '')}\n\n`;
|
|
118
|
+
case 'subheading':
|
|
119
|
+
return `### ${inlineText(block.text ?? '')}\n\n`;
|
|
120
|
+
case 'paragraph': {
|
|
121
|
+
const text = inlineText(block.text ?? '');
|
|
122
|
+
return text === '' ? '' : `${text}\n\n`;
|
|
123
|
+
}
|
|
124
|
+
case 'orderedNestedList':
|
|
125
|
+
return `${renderList(block.items ?? [], true, depth)}\n`;
|
|
126
|
+
case 'unorderedNestedList':
|
|
127
|
+
return `${renderList(block.items ?? [], false, depth)}\n`;
|
|
128
|
+
case 'code':
|
|
129
|
+
return `\`\`\`\n${block.text ?? ''}\n\`\`\`\n\n`;
|
|
130
|
+
case 'horizontalRule':
|
|
131
|
+
return '---\n\n';
|
|
132
|
+
case 'image':
|
|
133
|
+
return block.url !== undefined ? `\n\n` : '';
|
|
134
|
+
case undefined:
|
|
135
|
+
default:
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Render one Intercom block.
|
|
141
|
+
*
|
|
142
|
+
* Ten types occur across the live corpus, not the four the integration notes
|
|
143
|
+
* listed. `callout` and `collapsibleSection` nest their body under `content`
|
|
144
|
+
* rather than `text`, and `subheading`, `unorderedNestedList`,
|
|
145
|
+
* `collapsibleSection`, `image`, `code` and `horizontalRule` would all be
|
|
146
|
+
* dropped by a renderer that only knew the four — silently, since a missing
|
|
147
|
+
* block leaves no trace in the output.
|
|
148
|
+
*/
|
|
149
|
+
export function renderBlock(block, depth = 0) {
|
|
150
|
+
const simple = renderSimpleBlock(block, depth);
|
|
151
|
+
if (simple !== null) {
|
|
152
|
+
return simple;
|
|
153
|
+
}
|
|
154
|
+
switch (block.type) {
|
|
155
|
+
case 'callout':
|
|
156
|
+
// Rendered as a blockquote: a callout is emphasis, and losing it would
|
|
157
|
+
// turn "do not do this" into an ordinary sentence.
|
|
158
|
+
return `${renderBlocks(block.content ?? [])
|
|
159
|
+
.trimEnd()
|
|
160
|
+
.split('\n')
|
|
161
|
+
.map(line => `> ${line}`)
|
|
162
|
+
.join('\n')}\n\n`;
|
|
163
|
+
case 'collapsibleSection':
|
|
164
|
+
return `**${inlineText(block.summary ?? '')}**\n\n${renderBlocks(block.content ?? [])}`;
|
|
165
|
+
case undefined:
|
|
166
|
+
default:
|
|
167
|
+
// Unknown type: keep whatever text it has rather than dropping the
|
|
168
|
+
// block. Intercom adds types over time and silence is the worse
|
|
169
|
+
// failure — a reader cannot tell a missing paragraph from one that was
|
|
170
|
+
// never written.
|
|
171
|
+
return block.text !== undefined ? `${inlineText(block.text)}\n\n` : '';
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
export function renderBlocks(blocks, depth = 0) {
|
|
175
|
+
return blocks.map(block => renderBlock(block, depth)).join('');
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Parse one Help Center article page.
|
|
179
|
+
*
|
|
180
|
+
* `articleContent.markdown` exists on every article and is `null` on every
|
|
181
|
+
* one measured — the body is in `blocks`. Reading the field that is named
|
|
182
|
+
* for what you want is the trap here.
|
|
183
|
+
*/
|
|
184
|
+
export function parseIntercomArticle(html) {
|
|
185
|
+
const props = pageProps(html);
|
|
186
|
+
const article = props?.articleContent;
|
|
187
|
+
if (article === undefined) {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
const blocks = (article.blocks ?? []);
|
|
191
|
+
// `breadcrumbs` is a sibling of `articleContent` under pageProps, not a key
|
|
192
|
+
// of it.
|
|
193
|
+
const crumbs = (props?.breadcrumbs ?? []);
|
|
194
|
+
return {
|
|
195
|
+
title: asString(article.title, 'Untitled'),
|
|
196
|
+
content: renderBlocks(blocks).trim(),
|
|
197
|
+
...(typeof article.description === 'string' && article.description !== ''
|
|
198
|
+
? { description: article.description } : {}),
|
|
199
|
+
...(typeof article.lastUpdatedDate === 'string'
|
|
200
|
+
? { lastUpdated: article.lastUpdatedDate.slice(0, 10) } : {}),
|
|
201
|
+
breadcrumb: crumbs
|
|
202
|
+
.map(crumb => crumb.label ?? crumb.name ?? '')
|
|
203
|
+
.filter(label => label !== ''),
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function slugFromUrl(url) {
|
|
207
|
+
const last = url.replace(/\/$/, '').split('/').pop() ?? '';
|
|
208
|
+
// `/collections/12369024-jamf-pro` → `jamf-pro`. The numeric id is
|
|
209
|
+
// Intercom's and changes if a collection is recreated; the slug is what a
|
|
210
|
+
// reader recognises, so it is what publication ids are built from.
|
|
211
|
+
return last.replace(/^\d+-/, '');
|
|
212
|
+
}
|
|
213
|
+
/** The Help Center's top-level collections for one locale. */
|
|
214
|
+
export async function listIntercomCollections(ctx, source, locale) {
|
|
215
|
+
const key = cacheKey('intercom-collections', { source: source.id, locale });
|
|
216
|
+
const cached = await ctx.cache.get(key);
|
|
217
|
+
if (cached !== null) {
|
|
218
|
+
return cached;
|
|
219
|
+
}
|
|
220
|
+
const html = await httpGetText(`${source.baseUrl}/${locale}/`);
|
|
221
|
+
const props = pageProps(html);
|
|
222
|
+
const home = props?.home;
|
|
223
|
+
const collections = (home?.collections ?? []).map((collection) => {
|
|
224
|
+
const url = asString(collection.url);
|
|
225
|
+
return {
|
|
226
|
+
id: asString(collection.id),
|
|
227
|
+
slug: typeof collection.slug === 'string' && collection.slug !== ''
|
|
228
|
+
? collection.slug
|
|
229
|
+
: slugFromUrl(url),
|
|
230
|
+
name: asString(collection.name),
|
|
231
|
+
description: asString(collection.description),
|
|
232
|
+
url,
|
|
233
|
+
articleCount: typeof collection.articleCount === 'number' ? collection.articleCount : 0,
|
|
234
|
+
};
|
|
235
|
+
});
|
|
236
|
+
await ctx.cache.set(key, collections, ctx.config.cacheTtl.products);
|
|
237
|
+
return collections;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* The article tree of one collection.
|
|
241
|
+
*
|
|
242
|
+
* A collection page's `__NEXT_DATA__` carries the whole subtree —
|
|
243
|
+
* subcollections and every article summary — so one request answers what
|
|
244
|
+
* crawling 356 article pages would.
|
|
245
|
+
*/
|
|
246
|
+
export async function fetchIntercomCollectionToc(ctx, source, collection) {
|
|
247
|
+
const key = cacheKey('intercom-collection-toc', { source: source.id, collection: collection.id });
|
|
248
|
+
const cached = await ctx.cache.get(key);
|
|
249
|
+
if (cached !== null) {
|
|
250
|
+
return cached;
|
|
251
|
+
}
|
|
252
|
+
const html = await httpGetText(collection.url);
|
|
253
|
+
const props = pageProps(html);
|
|
254
|
+
const raw = props?.collection;
|
|
255
|
+
const toEntries = (summaries) => (summaries ?? []).map(summary => ({
|
|
256
|
+
title: asString(summary.title, 'Untitled'),
|
|
257
|
+
url: asString(summary.url),
|
|
258
|
+
}));
|
|
259
|
+
const entries = [
|
|
260
|
+
// Articles that sit directly in the collection come first: they are the
|
|
261
|
+
// ones with no subcollection to file them under, and dropping them is
|
|
262
|
+
// the easy mistake — Jamf Pro has 11 of them beside 24 subcollections.
|
|
263
|
+
...toEntries(raw?.articleSummaries),
|
|
264
|
+
...(raw?.subcollections ?? []).map((sub) => {
|
|
265
|
+
const children = toEntries(sub.articleSummaries);
|
|
266
|
+
const entry = {
|
|
267
|
+
title: asString(sub.name, 'Untitled'),
|
|
268
|
+
url: asString(sub.url),
|
|
269
|
+
};
|
|
270
|
+
if (children.length > 0) {
|
|
271
|
+
entry.children = children;
|
|
272
|
+
}
|
|
273
|
+
return entry;
|
|
274
|
+
}),
|
|
275
|
+
];
|
|
276
|
+
await ctx.cache.set(key, entries, ctx.config.cacheTtl.products);
|
|
277
|
+
return entries;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* A `FetchTocResult` for one Intercom collection.
|
|
281
|
+
*
|
|
282
|
+
* Pagination and truncation match the other TOC paths, so a caller cannot
|
|
283
|
+
* tell from the response shape which kind of source answered.
|
|
284
|
+
*/
|
|
285
|
+
export async function fetchIntercomToc(ctx, source, collection, options = {}) {
|
|
286
|
+
const page = options.page ?? PAGINATION_CONFIG.DEFAULT_PAGE;
|
|
287
|
+
const maxTokens = options.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
|
|
288
|
+
const allToc = await fetchIntercomCollectionToc(ctx, source, collection);
|
|
289
|
+
const count = (entries) => entries.reduce((total, entry) => total + 1 + (entry.children !== undefined ? count(entry.children) : 0), 0);
|
|
290
|
+
const serialise = (entry, depth = 0) => {
|
|
291
|
+
const indent = ' '.repeat(depth);
|
|
292
|
+
const children = entry.children?.map(child => serialise(child, depth + 1)).join('') ?? '';
|
|
293
|
+
return `${indent}- ${entry.title}\n${children}`;
|
|
294
|
+
};
|
|
295
|
+
const calc = calculatePagination(allToc.length, page, PAGINATION_CONFIG.DEFAULT_PAGE_SIZE);
|
|
296
|
+
const { items, tokenCount, truncated } = truncateListByTokens(allToc.slice(calc.startIndex, calc.endIndex), maxTokens, serialise);
|
|
297
|
+
const paginationNote = buildPaginationNote(calc);
|
|
298
|
+
return {
|
|
299
|
+
toc: items,
|
|
300
|
+
pagination: {
|
|
301
|
+
page: calc.page,
|
|
302
|
+
pageSize: calc.pageSize,
|
|
303
|
+
totalPages: calc.totalPages,
|
|
304
|
+
totalItems: count(allToc),
|
|
305
|
+
hasNext: calc.hasNext,
|
|
306
|
+
hasPrev: calc.hasPrev,
|
|
307
|
+
},
|
|
308
|
+
tokenInfo: { tokenCount, truncated, maxTokens },
|
|
309
|
+
...(paginationNote !== undefined ? { paginationNote } : {}),
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=intercom-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intercom-service.js","sourceRoot":"","sources":["../../../src/core/services/intercom-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;
|
|
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;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAa3E;;;;;;;;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"}
|
|
@@ -14,6 +14,8 @@ import { buildArticleView } from './article-view.js';
|
|
|
14
14
|
import { extractSections } from './tokenizer.js';
|
|
15
15
|
import { cacheKey } from './cache-key.js';
|
|
16
16
|
import { TOKEN_CONFIG } from '../constants.js';
|
|
17
|
+
import { JamfDocsError, JamfDocsErrorCode } from '../types.js';
|
|
18
|
+
import { parseIntercomArticle } from './intercom-service.js';
|
|
17
19
|
/**
|
|
18
20
|
* Canonicalise a URL for a static site.
|
|
19
21
|
*
|
|
@@ -77,6 +79,28 @@ export async function fetchStaticArticle(ctx, source, url, options = {}) {
|
|
|
77
79
|
let cached = await ctx.cache.get(key);
|
|
78
80
|
if (cached === null) {
|
|
79
81
|
const html = await httpGetText(displayUrl);
|
|
82
|
+
// An Intercom Help Center's body is a block list in `__NEXT_DATA__`, not
|
|
83
|
+
// markup — no selector set can read it, so the parser is chosen per
|
|
84
|
+
// source rather than per page.
|
|
85
|
+
if (source.parser === 'intercom') {
|
|
86
|
+
const article = parseIntercomArticle(html);
|
|
87
|
+
if (article === null) {
|
|
88
|
+
throw new JamfDocsError(`Could not read a ${source.name} article at ${displayUrl}`, JamfDocsErrorCode.PARSE_ERROR);
|
|
89
|
+
}
|
|
90
|
+
cached = {
|
|
91
|
+
title: article.title,
|
|
92
|
+
parsed: {
|
|
93
|
+
title: article.title,
|
|
94
|
+
content: article.content,
|
|
95
|
+
breadcrumb: article.breadcrumb,
|
|
96
|
+
relatedArticles: [],
|
|
97
|
+
},
|
|
98
|
+
displayUrl,
|
|
99
|
+
...(article.lastUpdated !== undefined ? { lastUpdated: article.lastUpdated } : {}),
|
|
100
|
+
};
|
|
101
|
+
await ctx.cache.set(key, cached, ctx.config.cacheTtl.article);
|
|
102
|
+
return renderStaticArticle(cached, source, options, maxTokens);
|
|
103
|
+
}
|
|
80
104
|
const documentTitle = extractDocumentTitle(html);
|
|
81
105
|
const parsed = parseArticle(html, displayUrl, {
|
|
82
106
|
// The source's own markup rules. Parsing a static page with Fluid
|
|
@@ -98,6 +122,10 @@ export async function fetchStaticArticle(ctx, source, url, options = {}) {
|
|
|
98
122
|
cached = { title, parsed, displayUrl };
|
|
99
123
|
await ctx.cache.set(key, cached, ctx.config.cacheTtl.article);
|
|
100
124
|
}
|
|
125
|
+
return renderStaticArticle(cached, source, options, maxTokens);
|
|
126
|
+
}
|
|
127
|
+
/** Assemble the response from a parsed page, whichever parser produced it. */
|
|
128
|
+
function renderStaticArticle(cached, source, options, maxTokens) {
|
|
101
129
|
const { title, parsed } = cached;
|
|
102
130
|
// Provenance is part of the content, not metadata: it has to survive
|
|
103
131
|
// section extraction and truncation, both of which slice `content`, and a
|
|
@@ -111,6 +139,7 @@ export async function fetchStaticArticle(ctx, source, url, options = {}) {
|
|
|
111
139
|
title,
|
|
112
140
|
url: cached.displayUrl,
|
|
113
141
|
product: source.name,
|
|
142
|
+
...(cached.lastUpdated !== undefined ? { lastUpdated: cached.lastUpdated } : {}),
|
|
114
143
|
breadcrumb: parsed.breadcrumb.length > 0 ? parsed.breadcrumb : undefined,
|
|
115
144
|
relatedArticles: options.includeRelated === true && parsed.relatedArticles.length > 0
|
|
116
145
|
? parsed.relatedArticles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-article-service.js","sourceRoot":"","sources":["../../../src/core/services/static-article-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
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":"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;
|
|
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;AA8gBzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CA4I9E"}
|
|
@@ -9,7 +9,8 @@ import { TocOutputSchema } from '../schemas/output.js';
|
|
|
9
9
|
import { ResponseFormat, OutputMode, JAMF_PRODUCTS, PRODUCT_ID_LIST, TOKEN_CONFIG, PAGINATION_CONFIG, DEFAULT_LOCALE } from '../constants.js';
|
|
10
10
|
import { fetchTableOfContents } from '../services/toc-service.js';
|
|
11
11
|
import { fetchStaticToc } from '../services/sitemap-service.js';
|
|
12
|
-
import { staticSectionById, } from '../constants/sources.js';
|
|
12
|
+
import { staticSectionById, dynamicSectionId, DYNAMIC_SECTION_SOURCES, } from '../constants/sources.js';
|
|
13
|
+
import { listIntercomCollections, fetchIntercomToc, } from '../services/intercom-service.js';
|
|
13
14
|
import { getAvailableVersions } from '../services/metadata.js';
|
|
14
15
|
import { sanitizeMarkdownText, sanitizeMarkdownUrl, getSafeErrorMessage } from '../utils/sanitize.js';
|
|
15
16
|
/**
|
|
@@ -258,6 +259,50 @@ function renderTocNotices(notices) {
|
|
|
258
259
|
}
|
|
259
260
|
return rendered;
|
|
260
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Resolve a publication id that names a runtime-discovered section.
|
|
264
|
+
*
|
|
265
|
+
* An Intercom Help Center's collections are content, not configuration —
|
|
266
|
+
* pinning their ids in the registry would mean a code change whenever Jamf
|
|
267
|
+
* adds one — so they are looked up. Tried before the Fluid Topics registry
|
|
268
|
+
* for the same reason the declared static sections are: that registry would
|
|
269
|
+
* report them unknown and suggest a bundle family instead.
|
|
270
|
+
*
|
|
271
|
+
* Returns null when the id names no dynamic source, so the caller falls
|
|
272
|
+
* through to the Fluid Topics path.
|
|
273
|
+
*/
|
|
274
|
+
async function resolveDynamicSection(ctx, publication, locale) {
|
|
275
|
+
for (const source of DYNAMIC_SECTION_SOURCES) {
|
|
276
|
+
const prefix = source.dynamicSections?.idPrefix ?? source.id;
|
|
277
|
+
if (!publication.startsWith(`${prefix}-`)) {
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
const sourceLocale = source.locales[locale];
|
|
281
|
+
if (sourceLocale === undefined) {
|
|
282
|
+
return {
|
|
283
|
+
error: `${source.name} does not publish in ${locale}. ` +
|
|
284
|
+
`Available: ${Object.keys(source.locales).join(', ')}.`,
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
const collections = await listIntercomCollections(ctx, source, sourceLocale);
|
|
288
|
+
const match = collections.find(c => dynamicSectionId(source, c.slug) === publication);
|
|
289
|
+
if (match === undefined) {
|
|
290
|
+
const available = collections.map(c => `- \`${dynamicSectionId(source, c.slug)}\``);
|
|
291
|
+
return {
|
|
292
|
+
error: available.length > 0
|
|
293
|
+
? `Unknown ${source.name} collection: "${publication}".\n\nAvailable in ${locale}:\n${available.join('\n')}`
|
|
294
|
+
: `Unknown ${source.name} collection: "${publication}".\n\n${source.name} publishes nothing in ${locale}.`,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
source: publication,
|
|
299
|
+
sourceLabel: `${source.name}: ${match.name}`,
|
|
300
|
+
availableVersions: [],
|
|
301
|
+
intercomCollection: { source, collection: match, sourceLocale },
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
return null;
|
|
305
|
+
}
|
|
261
306
|
/**
|
|
262
307
|
* Turn `product` / `publication` into one addressable source, or say why not.
|
|
263
308
|
*
|
|
@@ -313,6 +358,10 @@ async function resolveTocSource(ctx, params, version) {
|
|
|
313
358
|
staticSection: { ...staticRow, sourceLocale },
|
|
314
359
|
};
|
|
315
360
|
}
|
|
361
|
+
const dynamic = await resolveDynamicSection(ctx, publication, params.language ?? DEFAULT_LOCALE);
|
|
362
|
+
if (dynamic !== null) {
|
|
363
|
+
return dynamic;
|
|
364
|
+
}
|
|
316
365
|
// Not an enum: there are 97 families and the set is upstream's to change,
|
|
317
366
|
// so the check is a registry lookup and a miss carries suggestions rather
|
|
318
367
|
// than a wall of every id.
|
|
@@ -335,6 +384,24 @@ async function resolveTocSource(ctx, params, version) {
|
|
|
335
384
|
availableVersions: await ctx.mapsRegistry.getVersions(publication),
|
|
336
385
|
};
|
|
337
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* Fetch the TOC from whichever kind of source the request resolved to.
|
|
389
|
+
*
|
|
390
|
+
* Three shapes of upstream — a Fluid Topics map, a sitemap tree, an Intercom
|
|
391
|
+
* collection — behind one return type, so nothing downstream has to know
|
|
392
|
+
* which answered. Each path applies the same pagination and truncation.
|
|
393
|
+
*/
|
|
394
|
+
async function fetchTocFor(ctx, resolved, version, options) {
|
|
395
|
+
if (resolved.intercomCollection !== undefined) {
|
|
396
|
+
const { source, collection } = resolved.intercomCollection;
|
|
397
|
+
return await fetchIntercomToc(ctx, source, collection, options);
|
|
398
|
+
}
|
|
399
|
+
if (resolved.staticSection !== undefined) {
|
|
400
|
+
const { source, section, sourceLocale } = resolved.staticSection;
|
|
401
|
+
return await fetchStaticToc(ctx, source, section, sourceLocale, options);
|
|
402
|
+
}
|
|
403
|
+
return await fetchTableOfContents(ctx, resolved.source, version, options);
|
|
404
|
+
}
|
|
338
405
|
export function registerGetTocTool(server, ctx) {
|
|
339
406
|
server.registerTool(TOOL_NAME, {
|
|
340
407
|
title: 'Get Documentation Table of Contents',
|
|
@@ -366,7 +433,7 @@ export function registerGetTocTool(server, ctx) {
|
|
|
366
433
|
if ('error' in resolved) {
|
|
367
434
|
return { isError: true, content: [{ type: 'text', text: resolved.error }] };
|
|
368
435
|
}
|
|
369
|
-
const {
|
|
436
|
+
const { sourceLabel, availableVersions } = resolved;
|
|
370
437
|
// Validate version if specified
|
|
371
438
|
if (params.version !== undefined && params.version !== '' && params.version !== 'current') {
|
|
372
439
|
if (availableVersions.length > 0 && !availableVersions.includes(params.version)) {
|
|
@@ -385,12 +452,7 @@ export function registerGetTocTool(server, ctx) {
|
|
|
385
452
|
maxTokens: params.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS,
|
|
386
453
|
locale: params.language,
|
|
387
454
|
};
|
|
388
|
-
|
|
389
|
-
// the sitemap. Pagination and truncation are shared so both kinds of
|
|
390
|
-
// TOC behave the same once the entries exist.
|
|
391
|
-
const tocResult = resolved.staticSection !== undefined
|
|
392
|
-
? await fetchStaticToc(ctx, resolved.staticSection.source, resolved.staticSection.section, resolved.staticSection.sourceLocale, tocOptions)
|
|
393
|
-
: await fetchTableOfContents(ctx, source, version, tocOptions);
|
|
455
|
+
const tocResult = await fetchTocFor(ctx, resolved, version, tocOptions);
|
|
394
456
|
await reportProgress(extra, { progress: 1, total: 4, message: 'Processing entries...' });
|
|
395
457
|
const { toc, pagination, tokenInfo, paginationNote, mapId, resolvedLocale } = tocResult;
|
|
396
458
|
// Build response
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-toc.js","sourceRoot":"","sources":["../../../src/core/tools/get-toc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get-toc.js","sourceRoot":"","sources":["../../../src/core/tools/get-toc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-products.d.ts","sourceRoot":"","sources":["../../../src/core/tools/list-products.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"list-products.d.ts","sourceRoot":"","sources":["../../../src/core/tools/list-products.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmMzD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAqLpF"}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { ListProductsInputSchema } from '../schemas/index.js';
|
|
6
6
|
import { ProductListOutputSchema } from '../schemas/output.js';
|
|
7
|
-
import { JAMF_TOPICS, DOC_TYPES, ResponseFormat, OutputMode, TOKEN_CONFIG } from '../constants.js';
|
|
7
|
+
import { JAMF_TOPICS, DOC_TYPES, ResponseFormat, OutputMode, TOKEN_CONFIG, DEFAULT_LOCALE } from '../constants.js';
|
|
8
8
|
import { estimateTokens, createTokenInfo, truncateToTokenLimit } from '../services/tokenizer.js';
|
|
9
9
|
import { getProductAvailability, getProductsMetadata } from '../services/metadata.js';
|
|
10
|
-
import { STATIC_SECTIONS } from '../constants/sources.js';
|
|
10
|
+
import { STATIC_SECTIONS, DYNAMIC_SECTION_SOURCES, dynamicSectionId, } from '../constants/sources.js';
|
|
11
|
+
import { listIntercomCollections } from '../services/intercom-service.js';
|
|
11
12
|
import { getSafeErrorMessage } from '../utils/sanitize.js';
|
|
12
13
|
import { reportProgress } from '../utils/progress.js';
|
|
13
14
|
const TOOL_NAME = 'jamf_docs_list_products';
|
|
@@ -71,6 +72,28 @@ async function listPublicationsQuietly(ctx) {
|
|
|
71
72
|
locales: Object.keys(source.locales).sort(),
|
|
72
73
|
versions: [],
|
|
73
74
|
}));
|
|
75
|
+
// Sources whose sections come from the source itself. Best-effort per
|
|
76
|
+
// source: an unreachable Help Center costs its own rows, not the list.
|
|
77
|
+
for (const source of DYNAMIC_SECTION_SOURCES) {
|
|
78
|
+
const locale = source.locales[DEFAULT_LOCALE];
|
|
79
|
+
if (locale === undefined) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
for (const collection of await listIntercomCollections(ctx, source, locale)) {
|
|
84
|
+
staticRows.push({
|
|
85
|
+
id: dynamicSectionId(source, collection.slug),
|
|
86
|
+
title: `${source.name}: ${collection.name}`,
|
|
87
|
+
portal: source.name,
|
|
88
|
+
locales: Object.keys(source.locales).sort(),
|
|
89
|
+
versions: [],
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
ctx.logger.createLogger('list-products').warning(`Could not list ${source.name} collections: ${String(error)}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
74
97
|
try {
|
|
75
98
|
const pubs = await ctx.mapsRegistry.listPublications();
|
|
76
99
|
return [...staticRows, ...pubs.map(pub => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-products.js","sourceRoot":"","sources":["../../../src/core/tools/list-products.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"list-products.js","sourceRoot":"","sources":["../../../src/core/tools/list-products.ts"],"names":[],"mappings":"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"}
|