@get-technology-inc/jamf-docs-mcp-server 3.0.6 → 3.0.8
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/README.md +37 -2
- 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 +13 -3
- 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 +140 -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 +148 -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 +175 -108
- 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 +462 -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 +107 -0
- package/dist/core/services/toc-service.js.map +1 -0
- package/dist/core/services/tokenizer.d.ts +20 -1
- package/dist/core/services/tokenizer.d.ts.map +1 -1
- package/dist/core/services/tokenizer.js +32 -4
- package/dist/core/services/tokenizer.js.map +1 -1
- package/dist/core/services/topic-resolver.d.ts +74 -0
- package/dist/core/services/topic-resolver.d.ts.map +1 -0
- package/dist/core/services/topic-resolver.js +191 -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 +18 -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/glossary-lookup.d.ts.map +1 -1
- package/dist/core/tools/glossary-lookup.js +26 -7
- package/dist/core/tools/glossary-lookup.js.map +1 -1
- package/dist/core/tools/list-products.d.ts.map +1 -1
- package/dist/core/tools/list-products.js +5 -3
- package/dist/core/tools/list-products.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 +49 -0
- package/dist/core/utils/format-article.d.ts.map +1 -0
- package/dist/core/utils/format-article.js +188 -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
package/dist/core/types.d.ts
CHANGED
|
@@ -34,7 +34,6 @@ export interface JamfProduct {
|
|
|
34
34
|
id: ProductId;
|
|
35
35
|
name: string;
|
|
36
36
|
description: string;
|
|
37
|
-
urlPattern: string;
|
|
38
37
|
bundleId: string;
|
|
39
38
|
latestVersion: string;
|
|
40
39
|
versions: readonly string[];
|
|
@@ -71,6 +70,10 @@ export interface SearchResult {
|
|
|
71
70
|
version?: string;
|
|
72
71
|
relevance?: number;
|
|
73
72
|
docType?: DocTypeId;
|
|
73
|
+
mapId?: string;
|
|
74
|
+
contentId?: string;
|
|
75
|
+
breadcrumb?: string[];
|
|
76
|
+
mapTitle?: string;
|
|
74
77
|
}
|
|
75
78
|
export interface FilterRelaxation {
|
|
76
79
|
removed: string[];
|
|
@@ -100,6 +103,52 @@ export interface SearchResponse {
|
|
|
100
103
|
relevanceNote?: string;
|
|
101
104
|
truncatedContent?: TruncatedContentInfo;
|
|
102
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Options for fetching articles
|
|
108
|
+
*/
|
|
109
|
+
export interface FetchArticleOptions {
|
|
110
|
+
includeRelated?: boolean;
|
|
111
|
+
section?: string;
|
|
112
|
+
summaryOnly?: boolean;
|
|
113
|
+
maxTokens?: number;
|
|
114
|
+
locale?: LocaleId | undefined;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Article result with token and section info
|
|
118
|
+
*/
|
|
119
|
+
export interface FetchArticleResult extends ParsedArticle {
|
|
120
|
+
tokenInfo: TokenInfo;
|
|
121
|
+
sections: ArticleSection[];
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Options for fetching table of contents
|
|
125
|
+
*/
|
|
126
|
+
export interface FetchTocOptions {
|
|
127
|
+
page?: number;
|
|
128
|
+
maxTokens?: number;
|
|
129
|
+
locale?: LocaleId | undefined;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* TOC result with pagination and token info
|
|
133
|
+
*/
|
|
134
|
+
export interface FetchTocResult {
|
|
135
|
+
toc: TocEntry[];
|
|
136
|
+
pagination: PaginationInfo;
|
|
137
|
+
tokenInfo: TokenInfo;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Search response with token and pagination info
|
|
141
|
+
*/
|
|
142
|
+
export interface SearchDocumentationResult {
|
|
143
|
+
results: SearchResult[];
|
|
144
|
+
pagination: PaginationInfo;
|
|
145
|
+
tokenInfo: TokenInfo;
|
|
146
|
+
filterRelaxation?: FilterRelaxation;
|
|
147
|
+
versionNote?: string;
|
|
148
|
+
truncatedContent?: TruncatedContentInfo;
|
|
149
|
+
/** Set when the upstream search call failed; results will be empty. */
|
|
150
|
+
searchError?: string;
|
|
151
|
+
}
|
|
103
152
|
export interface GetArticleParams {
|
|
104
153
|
url: string;
|
|
105
154
|
language?: LocaleId | undefined;
|
|
@@ -120,6 +169,8 @@ export interface ParsedArticle {
|
|
|
120
169
|
title: string;
|
|
121
170
|
url: string;
|
|
122
171
|
}[] | undefined;
|
|
172
|
+
mapId?: string | undefined;
|
|
173
|
+
contentId?: string | undefined;
|
|
123
174
|
}
|
|
124
175
|
export interface ArticleResponse extends ParsedArticle {
|
|
125
176
|
format: ResponseFormat;
|
|
@@ -137,6 +188,93 @@ export interface GlossaryLookupResult {
|
|
|
137
188
|
totalMatches: number;
|
|
138
189
|
tokenInfo: TokenInfo;
|
|
139
190
|
}
|
|
191
|
+
export interface FtTocNode {
|
|
192
|
+
tocId: string;
|
|
193
|
+
contentId: string;
|
|
194
|
+
title: string;
|
|
195
|
+
prettyUrl: string;
|
|
196
|
+
hasRating?: boolean;
|
|
197
|
+
children: FtTocNode[];
|
|
198
|
+
}
|
|
199
|
+
export interface FtMetadataEntry {
|
|
200
|
+
key: string;
|
|
201
|
+
label: string;
|
|
202
|
+
values: string[];
|
|
203
|
+
}
|
|
204
|
+
export interface FtSearchTopic {
|
|
205
|
+
mapId: string;
|
|
206
|
+
contentId: string;
|
|
207
|
+
tocId: string;
|
|
208
|
+
title: string;
|
|
209
|
+
htmlTitle: string;
|
|
210
|
+
mapTitle: string;
|
|
211
|
+
breadcrumb: string[];
|
|
212
|
+
htmlExcerpt: string;
|
|
213
|
+
metadata: FtMetadataEntry[];
|
|
214
|
+
}
|
|
215
|
+
export interface FtSearchMap {
|
|
216
|
+
mapId: string;
|
|
217
|
+
mapUrl: string;
|
|
218
|
+
readerUrl: string;
|
|
219
|
+
title: string;
|
|
220
|
+
htmlTitle: string;
|
|
221
|
+
htmlExcerpt: string;
|
|
222
|
+
metadata: FtMetadataEntry[];
|
|
223
|
+
editorialType: string;
|
|
224
|
+
lastEditionDate?: string;
|
|
225
|
+
lastPublicationDate?: string;
|
|
226
|
+
openMode: string;
|
|
227
|
+
}
|
|
228
|
+
export interface FtSearchEntry {
|
|
229
|
+
type: 'TOPIC' | 'MAP';
|
|
230
|
+
missingTerms: string[];
|
|
231
|
+
topic?: FtSearchTopic;
|
|
232
|
+
map?: FtSearchMap;
|
|
233
|
+
}
|
|
234
|
+
export interface FtSearchCluster {
|
|
235
|
+
metadataVariableAxis: string;
|
|
236
|
+
entries: FtSearchEntry[];
|
|
237
|
+
}
|
|
238
|
+
export interface FtSearchPaging {
|
|
239
|
+
currentPage: number;
|
|
240
|
+
isLastPage: boolean;
|
|
241
|
+
totalResultsCount: number;
|
|
242
|
+
totalClustersCount: number;
|
|
243
|
+
}
|
|
244
|
+
export interface FtClusteredSearchResponse {
|
|
245
|
+
facets: unknown[];
|
|
246
|
+
results: FtSearchCluster[];
|
|
247
|
+
announcements: unknown[];
|
|
248
|
+
paging: FtSearchPaging;
|
|
249
|
+
}
|
|
250
|
+
export interface FtSearchFilter {
|
|
251
|
+
key: string;
|
|
252
|
+
values: string[];
|
|
253
|
+
}
|
|
254
|
+
export interface FtSearchRequest {
|
|
255
|
+
query: string;
|
|
256
|
+
contentLocale?: string;
|
|
257
|
+
paging?: {
|
|
258
|
+
perPage: number;
|
|
259
|
+
page: number;
|
|
260
|
+
};
|
|
261
|
+
filters?: FtSearchFilter[];
|
|
262
|
+
sortId?: string;
|
|
263
|
+
}
|
|
264
|
+
export interface FtMapInfo {
|
|
265
|
+
title: string;
|
|
266
|
+
id: string;
|
|
267
|
+
mapApiEndpoint: string;
|
|
268
|
+
metadata: FtMetadataEntry[];
|
|
269
|
+
}
|
|
270
|
+
export interface FtTopicInfo {
|
|
271
|
+
title: string;
|
|
272
|
+
id: string;
|
|
273
|
+
contentApiEndpoint: string;
|
|
274
|
+
readerUrl?: string;
|
|
275
|
+
breadcrumb?: string[];
|
|
276
|
+
metadata: FtMetadataEntry[];
|
|
277
|
+
}
|
|
140
278
|
export interface GetTocParams {
|
|
141
279
|
product: ProductId;
|
|
142
280
|
language?: LocaleId | undefined;
|
|
@@ -147,6 +285,8 @@ export interface GetTocParams {
|
|
|
147
285
|
export interface TocEntry {
|
|
148
286
|
title: string;
|
|
149
287
|
url: string;
|
|
288
|
+
contentId?: string;
|
|
289
|
+
tocId?: string;
|
|
150
290
|
children?: TocEntry[];
|
|
151
291
|
}
|
|
152
292
|
export interface TocResponse {
|
|
@@ -190,34 +330,4 @@ export interface ToolResult {
|
|
|
190
330
|
isError?: boolean;
|
|
191
331
|
structuredContent?: Record<string, unknown>;
|
|
192
332
|
}
|
|
193
|
-
export interface ZoominSearchResponse {
|
|
194
|
-
status: string;
|
|
195
|
-
Results: ZoominSearchResultWrapper[];
|
|
196
|
-
Pagination?: ZoominPagination;
|
|
197
|
-
}
|
|
198
|
-
export interface ZoominSearchResultWrapper {
|
|
199
|
-
leading_result?: ZoominLeadingResult | null;
|
|
200
|
-
follower_result?: ZoominLeadingResult[];
|
|
201
|
-
bundle_data?: unknown;
|
|
202
|
-
}
|
|
203
|
-
export interface ZoominLeadingResult {
|
|
204
|
-
title: string;
|
|
205
|
-
url: string;
|
|
206
|
-
snippet: string;
|
|
207
|
-
bundle_id: string;
|
|
208
|
-
page_id: string;
|
|
209
|
-
publication_title: string;
|
|
210
|
-
score?: number;
|
|
211
|
-
labels?: ZoominLabel[];
|
|
212
|
-
}
|
|
213
|
-
export interface ZoominLabel {
|
|
214
|
-
key: string;
|
|
215
|
-
navtitle: string;
|
|
216
|
-
}
|
|
217
|
-
export interface ZoominPagination {
|
|
218
|
-
CurrentPage: number;
|
|
219
|
-
TotalPages: number;
|
|
220
|
-
ResultsPerPage: number;
|
|
221
|
-
TotalResults: number;
|
|
222
|
-
}
|
|
223
333
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM9F;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiWH,cAAc;AACd,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGpB;IACA;IACA;IAJlB,YACE,OAAe,EACC,IAAuB,EACvB,GAAY,EACZ,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAmB;QACvB,QAAG,GAAH,GAAG,CAAS;QACZ,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,4CAAuB,CAAA;IACvB,kDAA6B,CAAA;IAC7B,gDAA2B,CAAA;IAC3B,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,wDAAmC,CAAA;IACnC,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;AACrB,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B"}
|
|
@@ -8,10 +8,23 @@ import { type ProductId } from '../constants.js';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function compareVersions(a: string, b: string): number;
|
|
10
10
|
/**
|
|
11
|
-
* Extract version number from a bundle_id
|
|
11
|
+
* Extract version number from a bundle_id (2-part or 3-part).
|
|
12
12
|
* e.g., "jamf-pro-documentation-11.25.0" -> "11.25.0"
|
|
13
|
+
* "jamf-school-documentation-2.45" -> "2.45"
|
|
13
14
|
*/
|
|
14
15
|
export declare function extractVersionFromBundleId(bundleId: string): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Return the bundleId with its version suffix removed.
|
|
18
|
+
* e.g., "jamf-pro-documentation-11.25.0" -> "jamf-pro-documentation"
|
|
19
|
+
* "jamf-pro-documentation" -> "jamf-pro-documentation"
|
|
20
|
+
*/
|
|
21
|
+
export declare function stripVersionSuffix(bundleId: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Strip the "-current" suffix from a bundle identifier.
|
|
24
|
+
* e.g., "jamf-pro-documentation-current" -> "jamf-pro-documentation"
|
|
25
|
+
* "jamf-pro-documentation" -> "jamf-pro-documentation"
|
|
26
|
+
*/
|
|
27
|
+
export declare function stripCurrentSuffix(s: string): string;
|
|
15
28
|
/**
|
|
16
29
|
* Extract product slug from any bundle_id format.
|
|
17
30
|
* Matches against known product IDs so it works for documentation, release-notes, etc.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../src/core/utils/bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB5D;AAED
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../src/core/utils/bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB5D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpD;AAOD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAOrE"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Bundle ID utilities
|
|
3
3
|
*/
|
|
4
4
|
import { JAMF_PRODUCTS } from '../constants.js';
|
|
5
|
-
const BUNDLE_VERSION_REGEX = /-(\d+\.\d
|
|
5
|
+
const BUNDLE_VERSION_REGEX = /-(\d+\.\d+(?:\.\d+)?)$/;
|
|
6
6
|
/**
|
|
7
7
|
* Compare two version strings. Returns positive if a > b, negative if a < b, 0 if equal.
|
|
8
8
|
* "current" is always treated as the maximum value.
|
|
@@ -33,13 +33,30 @@ export function compareVersions(a, b) {
|
|
|
33
33
|
return 0;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
* Extract version number from a bundle_id
|
|
36
|
+
* Extract version number from a bundle_id (2-part or 3-part).
|
|
37
37
|
* e.g., "jamf-pro-documentation-11.25.0" -> "11.25.0"
|
|
38
|
+
* "jamf-school-documentation-2.45" -> "2.45"
|
|
38
39
|
*/
|
|
39
40
|
export function extractVersionFromBundleId(bundleId) {
|
|
40
41
|
const match = BUNDLE_VERSION_REGEX.exec(bundleId);
|
|
41
42
|
return match?.[1] ?? null;
|
|
42
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Return the bundleId with its version suffix removed.
|
|
46
|
+
* e.g., "jamf-pro-documentation-11.25.0" -> "jamf-pro-documentation"
|
|
47
|
+
* "jamf-pro-documentation" -> "jamf-pro-documentation"
|
|
48
|
+
*/
|
|
49
|
+
export function stripVersionSuffix(bundleId) {
|
|
50
|
+
return bundleId.replace(BUNDLE_VERSION_REGEX, '');
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Strip the "-current" suffix from a bundle identifier.
|
|
54
|
+
* e.g., "jamf-pro-documentation-current" -> "jamf-pro-documentation"
|
|
55
|
+
* "jamf-pro-documentation" -> "jamf-pro-documentation"
|
|
56
|
+
*/
|
|
57
|
+
export function stripCurrentSuffix(s) {
|
|
58
|
+
return s.replace(/-current$/, '');
|
|
59
|
+
}
|
|
43
60
|
// Product IDs sorted by length descending to match longest prefix first
|
|
44
61
|
// (e.g., "jamf-protect" before "jamf-pro")
|
|
45
62
|
const SORTED_PRODUCT_IDS = Object.keys(JAMF_PRODUCTS)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../src/core/utils/bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AAEhE,MAAM,oBAAoB,GAAG,
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../src/core/utils/bundle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AAEhE,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAClC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAAC,OAAO,CAAC,CAAC,CAAC;IAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAAC,OAAO,IAAI,GAAG,IAAI,CAAC;QAAC,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC1C,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,wEAAwE;AACxE,2CAA2C;AAC3C,MAAM,kBAAkB,GAAiB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAiB;KAChF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared article formatting utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent Markdown formatting for article output
|
|
5
|
+
* used by both get-article and batch-get-articles tools.
|
|
6
|
+
*/
|
|
7
|
+
import type { ArticleSection, FetchArticleResult } from '../types.js';
|
|
8
|
+
interface RelatedArticle {
|
|
9
|
+
title: string;
|
|
10
|
+
url: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Options for full (non-compact) article formatting.
|
|
14
|
+
* All fields are optional so that batch-get-articles can omit them.
|
|
15
|
+
*/
|
|
16
|
+
export interface FormatArticleFullOptions {
|
|
17
|
+
/** Show breadcrumb trail above the title */
|
|
18
|
+
breadcrumb?: string[] | undefined;
|
|
19
|
+
/** Show "Last Updated" in metadata line */
|
|
20
|
+
lastUpdated?: string | undefined;
|
|
21
|
+
/** Show "Showing section: ..." note */
|
|
22
|
+
section?: string | undefined;
|
|
23
|
+
/** Show the sections list when content is truncated */
|
|
24
|
+
sections?: ArticleSection[] | undefined;
|
|
25
|
+
/** Include related article links at the bottom */
|
|
26
|
+
relatedArticles?: RelatedArticle[] | undefined;
|
|
27
|
+
/** Use brief footer (source link only, no token count line). Default: false */
|
|
28
|
+
briefFooter?: boolean | undefined;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Format an article in compact mode.
|
|
32
|
+
*
|
|
33
|
+
* Shows only a preview (~500 tokens) of the content plus a list of all
|
|
34
|
+
* available sections so the AI knows what can be retrieved in full.
|
|
35
|
+
*
|
|
36
|
+
* Output: title, compact metadata, content preview, truncation notice,
|
|
37
|
+
* available sections list, compact footer.
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatArticleCompact(article: FetchArticleResult): string;
|
|
40
|
+
/**
|
|
41
|
+
* Format an article in full mode.
|
|
42
|
+
*
|
|
43
|
+
* Output: breadcrumb (optional), title, full metadata, section note (optional),
|
|
44
|
+
* separator, content, sections list (optional), related articles (optional),
|
|
45
|
+
* full footer.
|
|
46
|
+
*/
|
|
47
|
+
export declare function formatArticleFull(article: FetchArticleResult, options?: FormatArticleFullOptions): string;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=format-article.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-article.d.ts","sourceRoot":"","sources":["../../../src/core/utils/format-article.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAa,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQjF,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IACxC,kDAAkD;IAClD,eAAe,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC/C,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACnC;AA8JD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,kBAAkB,GAC1B,MAAM,CAiBR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAoCR"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared article formatting utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent Markdown formatting for article output
|
|
5
|
+
* used by both get-article and batch-get-articles tools.
|
|
6
|
+
*/
|
|
7
|
+
import { sanitizeMarkdownText, sanitizeMarkdownUrl } from './sanitize.js';
|
|
8
|
+
import { estimateTokens } from '../services/tokenizer.js';
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Internal helpers
|
|
11
|
+
// ============================================================================
|
|
12
|
+
function formatBreadcrumb(breadcrumb) {
|
|
13
|
+
if (breadcrumb === undefined || breadcrumb.length === 0) {
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
return `*${breadcrumb.join(' > ')}*\n\n`;
|
|
17
|
+
}
|
|
18
|
+
function formatFullMetadata(product, version, lastUpdated, tokenInfo) {
|
|
19
|
+
const meta = [];
|
|
20
|
+
if (product !== undefined && product !== '') {
|
|
21
|
+
meta.push(`**Product**: ${product}`);
|
|
22
|
+
}
|
|
23
|
+
if (version !== undefined && version !== '') {
|
|
24
|
+
meta.push(`**Version**: ${version}`);
|
|
25
|
+
}
|
|
26
|
+
if (lastUpdated !== undefined && lastUpdated !== '') {
|
|
27
|
+
meta.push(`**Last Updated**: ${lastUpdated}`);
|
|
28
|
+
}
|
|
29
|
+
meta.push(`**Tokens**: ${tokenInfo.tokenCount.toLocaleString()}/${tokenInfo.maxTokens.toLocaleString()}`);
|
|
30
|
+
if (tokenInfo.truncated) {
|
|
31
|
+
meta.push('*(truncated)*');
|
|
32
|
+
}
|
|
33
|
+
return meta.length > 0 ? `${meta.join(' | ')}\n\n` : '';
|
|
34
|
+
}
|
|
35
|
+
function formatCompactMetadata(product, version) {
|
|
36
|
+
const meta = [];
|
|
37
|
+
if (product !== undefined && product !== '') {
|
|
38
|
+
meta.push(product);
|
|
39
|
+
}
|
|
40
|
+
if (version !== undefined && version !== '') {
|
|
41
|
+
meta.push(`v${version}`);
|
|
42
|
+
}
|
|
43
|
+
return meta.length > 0 ? `*${meta.join(' | ')}*\n\n` : '';
|
|
44
|
+
}
|
|
45
|
+
function formatSectionsList(sections, tokenInfo) {
|
|
46
|
+
if (sections.length === 0 || !tokenInfo.truncated) {
|
|
47
|
+
return '';
|
|
48
|
+
}
|
|
49
|
+
let result = '\n\n---\n\n## Available Sections\n\n';
|
|
50
|
+
for (const section of sections.slice(0, 15)) {
|
|
51
|
+
const indent = ' '.repeat(Math.max(0, section.level - 1));
|
|
52
|
+
result += `${indent}- **${section.title}** (~${String(section.tokenCount)} tokens)\n`;
|
|
53
|
+
}
|
|
54
|
+
if (sections.length > 15) {
|
|
55
|
+
result += `\n*...and ${String(sections.length - 15)} more sections*\n`;
|
|
56
|
+
}
|
|
57
|
+
result += '\n*Use `section` parameter to retrieve a specific section.*\n';
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
function formatRelatedArticles(articles) {
|
|
61
|
+
if (articles === undefined || articles.length === 0) {
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
let result = '\n\n---\n\n## Related Articles\n\n';
|
|
65
|
+
for (const related of articles) {
|
|
66
|
+
result += `- [${sanitizeMarkdownText(related.title)}](${sanitizeMarkdownUrl(related.url)})\n`;
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
function formatFullFooter(url, tokenInfo) {
|
|
71
|
+
const safeUrl = sanitizeMarkdownUrl(url);
|
|
72
|
+
let result = '\n\n---\n\n';
|
|
73
|
+
result += `*Source: [${sanitizeMarkdownText(url)}](${safeUrl})*\n`;
|
|
74
|
+
result += `*${tokenInfo.tokenCount.toLocaleString()} tokens`;
|
|
75
|
+
if (tokenInfo.truncated) {
|
|
76
|
+
result += ` (truncated from original, max: ${tokenInfo.maxTokens.toLocaleString()})`;
|
|
77
|
+
}
|
|
78
|
+
result += '*\n';
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Brief footer: source link only, no token count line.
|
|
83
|
+
* Used by batch-get-articles in full mode.
|
|
84
|
+
*/
|
|
85
|
+
function formatBriefFooter(url) {
|
|
86
|
+
const safeUrl = sanitizeMarkdownUrl(url);
|
|
87
|
+
return `\n\n---\n*Source: [${sanitizeMarkdownText(url)}](${safeUrl})*\n`;
|
|
88
|
+
}
|
|
89
|
+
function formatCompactFooter(url, tokenInfo) {
|
|
90
|
+
const safeUrl = sanitizeMarkdownUrl(url);
|
|
91
|
+
return `\n---\n*[Source](${safeUrl}) | ${tokenInfo.tokenCount} tokens${tokenInfo.truncated ? ' (truncated)' : ''}*\n`;
|
|
92
|
+
}
|
|
93
|
+
const COMPACT_PREVIEW_TOKENS = 500;
|
|
94
|
+
/** Break at paragraph boundaries so the preview reads cleanly. */
|
|
95
|
+
function truncateContentForPreview(content, maxTokens) {
|
|
96
|
+
if (estimateTokens(content) <= maxTokens) {
|
|
97
|
+
return content;
|
|
98
|
+
}
|
|
99
|
+
const paragraphs = content.split(/\n\n+/);
|
|
100
|
+
const included = [];
|
|
101
|
+
let running = 0;
|
|
102
|
+
for (const para of paragraphs) {
|
|
103
|
+
const paraTokens = estimateTokens(para);
|
|
104
|
+
if (running + paraTokens > maxTokens && included.length > 0) {
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
included.push(para);
|
|
108
|
+
running += paraTokens;
|
|
109
|
+
if (running >= maxTokens) {
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return included.join('\n\n');
|
|
114
|
+
}
|
|
115
|
+
/** Always shown so the AI knows which sections can be fetched individually. */
|
|
116
|
+
function formatCompactSectionsList(sections) {
|
|
117
|
+
if (sections.length === 0) {
|
|
118
|
+
return '';
|
|
119
|
+
}
|
|
120
|
+
let result = `\n## Available Sections (${String(sections.length)})\n\n`;
|
|
121
|
+
for (const section of sections.slice(0, 15)) {
|
|
122
|
+
const indent = ' '.repeat(Math.max(0, section.level - 1));
|
|
123
|
+
result += `${indent}- ${section.title}\n`;
|
|
124
|
+
}
|
|
125
|
+
if (sections.length > 15) {
|
|
126
|
+
result += `\n*...and ${String(sections.length - 15)} more sections*\n`;
|
|
127
|
+
}
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
// ============================================================================
|
|
131
|
+
// Public API
|
|
132
|
+
// ============================================================================
|
|
133
|
+
/**
|
|
134
|
+
* Format an article in compact mode.
|
|
135
|
+
*
|
|
136
|
+
* Shows only a preview (~500 tokens) of the content plus a list of all
|
|
137
|
+
* available sections so the AI knows what can be retrieved in full.
|
|
138
|
+
*
|
|
139
|
+
* Output: title, compact metadata, content preview, truncation notice,
|
|
140
|
+
* available sections list, compact footer.
|
|
141
|
+
*/
|
|
142
|
+
export function formatArticleCompact(article) {
|
|
143
|
+
const preview = truncateContentForPreview(article.content, COMPACT_PREVIEW_TOKENS);
|
|
144
|
+
const isPreviewTruncated = preview.length < article.content.length;
|
|
145
|
+
let markdown = `# ${article.title}\n\n`;
|
|
146
|
+
markdown += formatCompactMetadata(article.product, article.version);
|
|
147
|
+
markdown += preview;
|
|
148
|
+
if (isPreviewTruncated) {
|
|
149
|
+
markdown += '\n\n*[Showing preview. '
|
|
150
|
+
+ 'Use outputMode="full" for complete content, '
|
|
151
|
+
+ 'or section="<name>" for specific section.]*';
|
|
152
|
+
}
|
|
153
|
+
markdown += formatCompactSectionsList(article.sections);
|
|
154
|
+
markdown += formatCompactFooter(article.url, article.tokenInfo);
|
|
155
|
+
return markdown;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Format an article in full mode.
|
|
159
|
+
*
|
|
160
|
+
* Output: breadcrumb (optional), title, full metadata, section note (optional),
|
|
161
|
+
* separator, content, sections list (optional), related articles (optional),
|
|
162
|
+
* full footer.
|
|
163
|
+
*/
|
|
164
|
+
export function formatArticleFull(article, options = {}) {
|
|
165
|
+
const { tokenInfo } = article;
|
|
166
|
+
let markdown = '';
|
|
167
|
+
markdown += formatBreadcrumb(options.breadcrumb);
|
|
168
|
+
markdown += `# ${article.title}\n\n`;
|
|
169
|
+
markdown += formatFullMetadata(article.product, article.version, options.lastUpdated, tokenInfo);
|
|
170
|
+
if (options.section !== undefined && options.section !== '') {
|
|
171
|
+
markdown += `*Showing section: "${options.section}"*\n\n`;
|
|
172
|
+
}
|
|
173
|
+
markdown += '---\n\n';
|
|
174
|
+
markdown += article.content;
|
|
175
|
+
if (options.sections !== undefined &&
|
|
176
|
+
(options.section === undefined || options.section === '')) {
|
|
177
|
+
markdown += formatSectionsList(options.sections, tokenInfo);
|
|
178
|
+
}
|
|
179
|
+
markdown += formatRelatedArticles(options.relatedArticles);
|
|
180
|
+
if (options.briefFooter === true) {
|
|
181
|
+
markdown += formatBriefFooter(article.url);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
markdown += formatFullFooter(article.url, tokenInfo);
|
|
185
|
+
}
|
|
186
|
+
return markdown;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=format-article.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-article.js","sourceRoot":"","sources":["../../../src/core/utils/format-article.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for working with Fluid Topics metadata entries.
|
|
3
|
+
*/
|
|
4
|
+
import type { FtMetadataEntry } from '../types.js';
|
|
5
|
+
export declare const FT_META: {
|
|
6
|
+
readonly VERSION_BUNDLE_STEM: "version_bundle_stem";
|
|
7
|
+
readonly VERSION: "version";
|
|
8
|
+
readonly LATEST_VERSION: "latestVersion";
|
|
9
|
+
readonly LOCALE: "ft:locale";
|
|
10
|
+
readonly PRETTY_URL: "ft:prettyUrl";
|
|
11
|
+
readonly BUNDLE: "bundle";
|
|
12
|
+
readonly LEGACY_TOPICNAME: "legacy_topicname";
|
|
13
|
+
readonly LEGACY_URL: "legacy_url";
|
|
14
|
+
readonly ZOOMIN_METADATA: "zoominmetadata";
|
|
15
|
+
readonly CONTENT_TYPE: "jamf:contentType";
|
|
16
|
+
readonly CLUSTER_ID: "ft:clusterId";
|
|
17
|
+
readonly PUBLICATION_ID: "ft:publicationId";
|
|
18
|
+
};
|
|
19
|
+
export declare function getMetaValue(metadata: FtMetadataEntry[], key: string): string;
|
|
20
|
+
export declare function getMetaValues(metadata: FtMetadataEntry[], key: string): string[];
|
|
21
|
+
export declare function bundleStemToDisplayName(stem: string): string;
|
|
22
|
+
//# sourceMappingURL=ft-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ft-metadata.d.ts","sourceRoot":"","sources":["../../../src/core/utils/ft-metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,eAAO,MAAM,OAAO;;;;;;;;;;;;;CAaV,CAAC;AAEX,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7E;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAGhF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Well-known FT metadata keys used across the codebase
|
|
2
|
+
export const FT_META = {
|
|
3
|
+
VERSION_BUNDLE_STEM: 'version_bundle_stem',
|
|
4
|
+
VERSION: 'version',
|
|
5
|
+
LATEST_VERSION: 'latestVersion',
|
|
6
|
+
LOCALE: 'ft:locale',
|
|
7
|
+
PRETTY_URL: 'ft:prettyUrl',
|
|
8
|
+
BUNDLE: 'bundle',
|
|
9
|
+
LEGACY_TOPICNAME: 'legacy_topicname',
|
|
10
|
+
LEGACY_URL: 'legacy_url',
|
|
11
|
+
ZOOMIN_METADATA: 'zoominmetadata',
|
|
12
|
+
CONTENT_TYPE: 'jamf:contentType',
|
|
13
|
+
CLUSTER_ID: 'ft:clusterId',
|
|
14
|
+
PUBLICATION_ID: 'ft:publicationId',
|
|
15
|
+
};
|
|
16
|
+
export function getMetaValue(metadata, key) {
|
|
17
|
+
const entry = metadata.find(m => m.key === key);
|
|
18
|
+
return entry?.values[0] ?? '';
|
|
19
|
+
}
|
|
20
|
+
export function getMetaValues(metadata, key) {
|
|
21
|
+
const entry = metadata.find(m => m.key === key);
|
|
22
|
+
return entry?.values ?? [];
|
|
23
|
+
}
|
|
24
|
+
export function bundleStemToDisplayName(stem) {
|
|
25
|
+
return stem
|
|
26
|
+
.replace(/-documentation$/, '')
|
|
27
|
+
.replace(/-/g, ' ')
|
|
28
|
+
.replace(/\b\w/g, c => c.toUpperCase());
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=ft-metadata.js.map
|