@get-technology-inc/jamf-docs-mcp-server 5.10.4 → 5.10.5

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.
@@ -5,15 +5,20 @@ export declare const DEFAULT_LOCALE = "en-US";
5
5
  /**
6
6
  * Every locale Jamf actually publishes documentation in.
7
7
  *
8
- * Measured against all 662 maps of `/api/khub/maps` on 2026-09-02, ordered by
8
+ * Measured against all 676 maps of `/api/khub/maps` on 2026-09-14, ordered by
9
9
  * how much content each carries:
10
10
  *
11
- * en-US 194 maps / 97 families nl-NL 10 / 10
12
- * fr-FR 92 / 55 pt-BR 2 / 2
13
- * de-DE 91 / 54 th-TH 2 / 2
14
- * es-ES 91 / 54 zh-CN 2 / 2
15
- * ja-JP 91 / 54 it-IT 2 / 2
16
- * zh-TW 85 / 48
11
+ * en-US 198 maps / 97 families nl-NL 10 / 10
12
+ * fr-FR 94 / 55 pt-BR 2 / 2
13
+ * de-DE 93 / 54 th-TH 2 / 2
14
+ * es-ES 93 / 54 zh-CN 2 / 2
15
+ * ja-JP 93 / 54 it-IT 2 / 2
16
+ * zh-TW 87 / 48
17
+ *
18
+ * The map column moves with every Jamf release — 11.32.0 alone added 14 maps
19
+ * between the 2026-09-02 and 2026-09-14 measurements — while the family column
20
+ * did not move at all. Only the ordering is load-bearing here, so a later
21
+ * mismatch in the map counts is Jamf publishing, not drift.
17
22
  *
18
23
  * `it-IT`, `pt-BR` and `zh-CN` were previously left undeclared on the reading
19
24
  * that Fluid Topics listed them in `availableContentLocales` without shipping
@@ -22,7 +27,8 @@ export declare const DEFAULT_LOCALE = "en-US";
22
27
  * language ("Introduzione a Jamf Parent", "Introdução ao Jamf Parent",
23
28
  * "开始使用Jamf Parent"). They sit at the bottom of the list for the same
24
29
  * reason th-TH does — those two guides are published in 11 locales, the
25
- * widest in the library, while everything else tops out at six.
30
+ * widest in the library, while everything else tops out at seven (the Jamf
31
+ * Parent, Jamf Teacher and Jamf School Blueprints configuration guides).
26
32
  */
27
33
  export declare const SUPPORTED_LOCALES: {
28
34
  readonly 'en-US': {
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/core/constants/locales.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYpB,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,iBAAiB,CAAC;AACtD,eAAO,MAAM,oBAAoB,EAAqC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE5F,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAEzD"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/core/constants/locales.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYpB,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,iBAAiB,CAAC;AACtD,eAAO,MAAM,oBAAoB,EAAqC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE5F,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAEzD"}
@@ -6,15 +6,20 @@ export const DEFAULT_LOCALE = 'en-US';
6
6
  /**
7
7
  * Every locale Jamf actually publishes documentation in.
8
8
  *
9
- * Measured against all 662 maps of `/api/khub/maps` on 2026-09-02, ordered by
9
+ * Measured against all 676 maps of `/api/khub/maps` on 2026-09-14, ordered by
10
10
  * how much content each carries:
11
11
  *
12
- * en-US 194 maps / 97 families nl-NL 10 / 10
13
- * fr-FR 92 / 55 pt-BR 2 / 2
14
- * de-DE 91 / 54 th-TH 2 / 2
15
- * es-ES 91 / 54 zh-CN 2 / 2
16
- * ja-JP 91 / 54 it-IT 2 / 2
17
- * zh-TW 85 / 48
12
+ * en-US 198 maps / 97 families nl-NL 10 / 10
13
+ * fr-FR 94 / 55 pt-BR 2 / 2
14
+ * de-DE 93 / 54 th-TH 2 / 2
15
+ * es-ES 93 / 54 zh-CN 2 / 2
16
+ * ja-JP 93 / 54 it-IT 2 / 2
17
+ * zh-TW 87 / 48
18
+ *
19
+ * The map column moves with every Jamf release — 11.32.0 alone added 14 maps
20
+ * between the 2026-09-02 and 2026-09-14 measurements — while the family column
21
+ * did not move at all. Only the ordering is load-bearing here, so a later
22
+ * mismatch in the map counts is Jamf publishing, not drift.
18
23
  *
19
24
  * `it-IT`, `pt-BR` and `zh-CN` were previously left undeclared on the reading
20
25
  * that Fluid Topics listed them in `availableContentLocales` without shipping
@@ -23,7 +28,8 @@ export const DEFAULT_LOCALE = 'en-US';
23
28
  * language ("Introduzione a Jamf Parent", "Introdução ao Jamf Parent",
24
29
  * "开始使用Jamf Parent"). They sit at the bottom of the list for the same
25
30
  * reason th-TH does — those two guides are published in 11 locales, the
26
- * widest in the library, while everything else tops out at six.
31
+ * widest in the library, while everything else tops out at seven (the Jamf
32
+ * Parent, Jamf Teacher and Jamf School Blueprints configuration guides).
27
33
  */
28
34
  export const SUPPORTED_LOCALES = {
29
35
  'en-US': { name: 'English' },
@@ -1 +1 @@
1
- {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../../src/core/constants/locales.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;IAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;IACvC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;CACjB,CAAC;AAGX,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAA0B,CAAC;AAE5F,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,OAAO,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,SAAqB,CAAC,CAAC,CAAC,cAAc,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"locales.js","sourceRoot":"","sources":["../../../src/core/constants/locales.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;IAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE;IACvC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;CACjB,CAAC;AAGX,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAA0B,CAAC;AAE5F,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,OAAO,SAAS,IAAI,iBAAiB,CAAC,CAAC,CAAC,SAAqB,CAAC,CAAC,CAAC,cAAc,CAAC;AACjF,CAAC"}
@@ -16,10 +16,10 @@ export declare function search(request: FtSearchRequest): Promise<FtClusteredSea
16
16
  /**
17
17
  * GET /api/khub/maps
18
18
  *
19
- * Returns all publications: 662 maps across all locales and versions,
19
+ * Returns all publications: 676 maps across all locales and versions,
20
20
  * which collapse to 97 bundle families once the version suffix is
21
- * stripped. Measured against the live endpoint on 2026-09-02
22
- * (2,903,611 bytes); the previous "~577" in this comment predated
21
+ * stripped. Measured against the live endpoint on 2026-09-14
22
+ * (2,968,856 bytes); the previous "~577" in this comment predated
23
23
  * several publication families and was never a hard contract — the
24
24
  * scheduled upstream-contract job is what pins the real shape.
25
25
  *
@@ -34,10 +34,10 @@ export async function search(request) {
34
34
  /**
35
35
  * GET /api/khub/maps
36
36
  *
37
- * Returns all publications: 662 maps across all locales and versions,
37
+ * Returns all publications: 676 maps across all locales and versions,
38
38
  * which collapse to 97 bundle families once the version suffix is
39
- * stripped. Measured against the live endpoint on 2026-09-02
40
- * (2,903,611 bytes); the previous "~577" in this comment predated
39
+ * stripped. Measured against the live endpoint on 2026-09-14
40
+ * (2,968,856 bytes); the previous "~577" in this comment predated
41
41
  * several publication families and was never a hard contract — the
42
42
  * scheduled upstream-contract job is what pins the real shape.
43
43
  *
@@ -25,19 +25,77 @@ interface IntercomBlock {
25
25
  text?: string;
26
26
  items?: IntercomBlock[];
27
27
  content?: IntercomBlock[];
28
- summary?: string;
28
+ /**
29
+ * `collapsibleSection` — its label. Typed as a string here until 2026-09-14
30
+ * and an object on all 42 live sections: a `subheading` or `subheading3`
31
+ * block carrying the label in `text`.
32
+ */
33
+ summary?: string | IntercomBlock;
29
34
  url?: string;
30
35
  style?: string;
36
+ /** `table` — one entry per row, each holding its own cells. */
37
+ rows?: IntercomTableRow[];
38
+ /**
39
+ * `table` — presentation flags, declared because they are on the payload
40
+ * and not read because Markdown has no equivalent. Every one of the 36 live
41
+ * tables sends `container: false, responsive: false, stacked: true`.
42
+ */
43
+ container?: boolean;
44
+ responsive?: boolean;
45
+ stacked?: boolean;
46
+ /** `code` — a fence hint. Present on 1 of the 149 live code blocks. */
47
+ language?: string;
48
+ /** `video` — the hosting service and its id. No text, no url. */
49
+ provider?: string;
50
+ id?: string;
51
+ }
52
+ /** One row of a `table` block. */
53
+ interface IntercomTableRow {
54
+ cells?: IntercomTableCell[];
55
+ }
56
+ /**
57
+ * One cell of a `table` row.
58
+ *
59
+ * `content` is a block array, not a string — the same shape a list item uses.
60
+ * `style` carries presentation only (a background colour on header rows) and
61
+ * is deliberately not read here.
62
+ */
63
+ interface IntercomTableCell {
64
+ content?: IntercomBlock[];
65
+ style?: Record<string, string>;
31
66
  }
67
+ /**
68
+ * Every block type {@link renderBlock} has a case for.
69
+ *
70
+ * Exported so `test/integration/support-kb-contracts.test.ts` can hold the
71
+ * live corpus to it once a week. Reviewing the switch by hand is what failed
72
+ * twice — the docstring on renderBlock claimed a complete list while `table`,
73
+ * `subheading3` and `video` were all live and unhandled — and the two
74
+ * failures looked nothing alike: a table rendered to nothing, while a
75
+ * subheading3 rendered to a perfectly ordinary paragraph. Only an inventory
76
+ * check catches the second kind.
77
+ *
78
+ * Keep this in step with the switches below; a live type in neither is the
79
+ * failure it exists to produce.
80
+ */
81
+ export declare const HANDLED_BLOCK_TYPES: ReadonlySet<string>;
32
82
  /**
33
83
  * Render one Intercom block.
34
84
  *
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.
85
+ * Thirteen types reach this function, measured over all 817 live articles on
86
+ * 2026-09-14 and counting every path that arrives here: the article's own
87
+ * block list, `callout` and `collapsibleSection` bodies, list item bodies,
88
+ * and table cells. `callout` and `collapsibleSection` nest their body under
89
+ * `content` rather than `text`.
90
+ *
91
+ * That count has been wrong twice, in the same direction both times, because
92
+ * an unhandled type leaves no trace to notice: this comment claimed four,
93
+ * then ten, while `table` (36 blocks), `subheading3` (34) and `video` (2)
94
+ * were being dropped or flattened into body text. Counting by hand is what
95
+ * failed, so it is no longer the mechanism —
96
+ * `test/integration/support-kb-contracts.test.ts` asserts the inventory
97
+ * against the live corpus, and a fourteenth type fails a check instead of
98
+ * quietly costing content.
41
99
  */
42
100
  export declare function renderBlock(block: IntercomBlock, depth?: number): string;
43
101
  export declare function renderBlocks(blocks: IntercomBlock[], depth?: number): string;
@@ -1 +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"}
1
+ {"version":3,"file":"intercom-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/intercom-service.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,14 @@ function asString(value, fallback = '') {
58
58
  }
59
59
  return fallback;
60
60
  }
61
- /** Inline HTML inside a block's `text`, flattened to Markdown-safe text. */
61
+ /**
62
+ * Inline HTML inside a block's `text`, flattened to Markdown-safe text.
63
+ *
64
+ * Anything not converted here is stripped by the closing `.text()`, so a tag
65
+ * this does not know about is content lost without a trace. That is what
66
+ * happened to inline images: 221 of them across 15 live articles, and for 212
67
+ * the image was the entire paragraph, so the whole block rendered to nothing.
68
+ */
62
69
  function inlineText(html) {
63
70
  const $ = cheerio.load(`<div>${html}</div>`);
64
71
  $('a[href]').each((_, el) => {
@@ -68,11 +75,128 @@ function inlineText(html) {
68
75
  $(el).replaceWith(`[${label}](${href})`);
69
76
  }
70
77
  });
78
+ $('img[src]').each((_, el) => {
79
+ const src = $(el).attr('src') ?? '';
80
+ if (src !== '') {
81
+ $(el).replaceWith(`![${$(el).attr('alt') ?? ''}](${src})`);
82
+ }
83
+ });
71
84
  $('code').each((_, el) => { $(el).replaceWith(`\`${$(el).text()}\``); });
72
85
  $('strong, b').each((_, el) => { $(el).replaceWith(`**${$(el).text()}**`); });
73
86
  $('em, i').each((_, el) => { $(el).replaceWith(`*${$(el).text()}*`); });
74
87
  return $('div').text().replace(/\s+/g, ' ').trim();
75
88
  }
89
+ /**
90
+ * The label of a `collapsibleSection`.
91
+ *
92
+ * Every live section carries `summary` as a block, not a string, so handing
93
+ * it to {@link inlineText} interpolated it as "[object Object]" — and it is
94
+ * the section's title, the one line telling a reader what is folded away.
95
+ * 18 articles rendered that. The narrowing belongs here, at the boundary,
96
+ * for exactly the reason {@link asString} gives further down.
97
+ */
98
+ function summaryText(summary) {
99
+ if (typeof summary === 'string') {
100
+ return inlineText(summary);
101
+ }
102
+ return inlineText(summary?.text ?? '');
103
+ }
104
+ /**
105
+ * Render a `video` block as a link.
106
+ *
107
+ * `{provider, id}` — no `text` and no `url`, so this fell through to the
108
+ * default arm, which returns '' for a block with no text. The video left no
109
+ * trace at all. Only youtube occurs live (2 blocks); an unknown provider
110
+ * keeps the identifiers rather than inventing a URL scheme for it.
111
+ */
112
+ function renderVideo(block) {
113
+ const { provider, id } = block;
114
+ if (id === undefined || id === '') {
115
+ return '';
116
+ }
117
+ return provider === 'youtube'
118
+ ? `[Video](https://www.youtube.com/watch?v=${id})\n\n`
119
+ : `Video (${provider ?? 'unknown source'}): ${id}\n\n`;
120
+ }
121
+ /**
122
+ * The literal text of a `code` block.
123
+ *
124
+ * Upstream puts HTML in this field, so copying it into a fence verbatim
125
+ * emitted one unusable line — `fdesetup list -extended<br>sysadminctl …` —
126
+ * for exactly the content a reader means to copy. Measured across all 149
127
+ * code blocks in the live corpus on 2026-09-14: 826 `<br>` tags, no other
128
+ * tag, and `&lt;` / `&gt;` / `&amp;` as the only entities.
129
+ *
130
+ * `<br>` becomes a newline BEFORE the entities are decoded. The other order
131
+ * would give a line break to a sample that legitimately contains the text
132
+ * `&lt;br&gt;`, which plist and XML samples do.
133
+ */
134
+ function codeText(html) {
135
+ const withBreaks = html.replace(/<\s*br\s*\/?\s*>/gi, '\n');
136
+ return cheerio.load(`<div>${withBreaks}</div>`)('div').text();
137
+ }
138
+ /**
139
+ * Wrap code in a fence long enough to survive its own content.
140
+ *
141
+ * No live sample carries a backtick run today. One that did would not just
142
+ * break its own block — it would end the fence early and leave the rest of
143
+ * the article inside code formatting, so the cheap guard is worth it.
144
+ */
145
+ function fencedCode(text, language) {
146
+ const longest = [...text.matchAll(/`+/g)]
147
+ .reduce((n, match) => Math.max(n, match[0].length), 0);
148
+ const fence = '`'.repeat(Math.max(3, longest + 1));
149
+ return `${fence}${language ?? ''}\n${text}\n${fence}\n\n`;
150
+ }
151
+ /**
152
+ * One table cell, flattened to something a Markdown row can hold.
153
+ *
154
+ * A cell holds a block array, and 254 of the 1,118 live cells hold more than
155
+ * one block — 45 contain a list, 17 an image. Markdown has nowhere to put
156
+ * that, so the cell is rendered normally and then collapsed onto one line:
157
+ * every word survives, the bullets do not.
158
+ *
159
+ * Escaping runs last, after the rendering that could introduce a pipe, and
160
+ * backslashes go first: escaping only the pipe turns `a\|b` into `a\\|b`,
161
+ * which renders as a literal backslash followed by a column break — the
162
+ * escape defeated by the very character it is made of.
163
+ */
164
+ function cellText(cell) {
165
+ return renderBlocks(cell?.content ?? [])
166
+ .replace(/\s+/g, ' ')
167
+ .trim()
168
+ .replace(/\\/g, '\\\\')
169
+ .replace(/\|/g, '\\|');
170
+ }
171
+ /**
172
+ * Render a `table` block as a Markdown table.
173
+ *
174
+ * This type was dropped entirely until 2026-09-14: it carries no `text`, so
175
+ * it fell through to the default arm and returned the empty string, and a
176
+ * whole table left no trace in the output.
177
+ *
178
+ * Markdown demands a header row and Intercom marks none. Of the 36 live
179
+ * tables, 21 style their first row and 9 more bold it; the remaining 6 give
180
+ * no signal either way. The first row becomes the header regardless — it is
181
+ * the header wherever there is one, and for those 6 it costs presentation
182
+ * rather than data, since the row is still rendered.
183
+ *
184
+ * Rows are uniform in every live table, but a ragged one is padded to the
185
+ * widest rather than producing a table that renderers disagree about.
186
+ */
187
+ function renderTable(block) {
188
+ const rows = (block.rows ?? []).filter(row => (row.cells ?? []).length > 0);
189
+ const [header, ...body] = rows;
190
+ if (header === undefined) {
191
+ return '';
192
+ }
193
+ const width = rows.reduce((n, row) => Math.max(n, (row.cells ?? []).length), 0);
194
+ const line = (row) => {
195
+ const cells = row.cells ?? [];
196
+ return `| ${Array.from({ length: width }, (_, i) => cellText(cells[i])).join(' | ')} |\n`;
197
+ };
198
+ return `${line(header)}|${' --- |'.repeat(width)}\n${body.map(line).join('')}\n`;
199
+ }
76
200
  /**
77
201
  * Render a nested list.
78
202
  *
@@ -103,20 +227,62 @@ function renderList(items, ordered, depth) {
103
227
  })
104
228
  .join('');
105
229
  }
230
+ /**
231
+ * Every block type {@link renderBlock} has a case for.
232
+ *
233
+ * Exported so `test/integration/support-kb-contracts.test.ts` can hold the
234
+ * live corpus to it once a week. Reviewing the switch by hand is what failed
235
+ * twice — the docstring on renderBlock claimed a complete list while `table`,
236
+ * `subheading3` and `video` were all live and unhandled — and the two
237
+ * failures looked nothing alike: a table rendered to nothing, while a
238
+ * subheading3 rendered to a perfectly ordinary paragraph. Only an inventory
239
+ * check catches the second kind.
240
+ *
241
+ * Keep this in step with the switches below; a live type in neither is the
242
+ * failure it exists to produce.
243
+ */
244
+ export const HANDLED_BLOCK_TYPES = new Set([
245
+ 'callout',
246
+ 'code',
247
+ 'collapsibleSection',
248
+ 'heading',
249
+ 'horizontalRule',
250
+ 'image',
251
+ 'orderedNestedList',
252
+ 'paragraph',
253
+ 'subheading',
254
+ 'subheading3',
255
+ 'table',
256
+ 'unorderedNestedList',
257
+ 'video',
258
+ ]);
259
+ /**
260
+ * One construct at three depths.
261
+ *
262
+ * Kept as a table rather than three switch arms because that is what the
263
+ * upstream vocabulary is: `subheading3` was added after `subheading`, and was
264
+ * rendered as a plain paragraph for as long as this was a list of cases. A
265
+ * fourth level is now one line.
266
+ */
267
+ const HEADING_PREFIX = {
268
+ heading: '##',
269
+ subheading: '###',
270
+ subheading3: '####',
271
+ };
106
272
  /**
107
273
  * The blocks that map to one Markdown construct each.
108
274
  *
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.
275
+ * Split from {@link renderBlock} so the types that need a helper — `callout`
276
+ * and `collapsibleSection`, which recurse, and `table` — stay legible next to
277
+ * each other rather than at the bottom of one long switch. Returns null for
278
+ * anything it does not handle.
113
279
  */
114
280
  function renderSimpleBlock(block, depth) {
281
+ const prefix = HEADING_PREFIX[block.type ?? ''];
282
+ if (prefix !== undefined) {
283
+ return `${prefix} ${inlineText(block.text ?? '')}\n\n`;
284
+ }
115
285
  switch (block.type) {
116
- case 'heading':
117
- return `## ${inlineText(block.text ?? '')}\n\n`;
118
- case 'subheading':
119
- return `### ${inlineText(block.text ?? '')}\n\n`;
120
286
  case 'paragraph': {
121
287
  const text = inlineText(block.text ?? '');
122
288
  return text === '' ? '' : `${text}\n\n`;
@@ -126,11 +292,13 @@ function renderSimpleBlock(block, depth) {
126
292
  case 'unorderedNestedList':
127
293
  return `${renderList(block.items ?? [], false, depth)}\n`;
128
294
  case 'code':
129
- return `\`\`\`\n${block.text ?? ''}\n\`\`\`\n\n`;
295
+ return fencedCode(codeText(block.text ?? ''), block.language);
130
296
  case 'horizontalRule':
131
297
  return '---\n\n';
132
298
  case 'image':
133
299
  return block.url !== undefined ? `![](${block.url})\n\n` : '';
300
+ case 'video':
301
+ return renderVideo(block);
134
302
  case undefined:
135
303
  default:
136
304
  return null;
@@ -139,12 +307,20 @@ function renderSimpleBlock(block, depth) {
139
307
  /**
140
308
  * Render one Intercom block.
141
309
  *
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.
310
+ * Thirteen types reach this function, measured over all 817 live articles on
311
+ * 2026-09-14 and counting every path that arrives here: the article's own
312
+ * block list, `callout` and `collapsibleSection` bodies, list item bodies,
313
+ * and table cells. `callout` and `collapsibleSection` nest their body under
314
+ * `content` rather than `text`.
315
+ *
316
+ * That count has been wrong twice, in the same direction both times, because
317
+ * an unhandled type leaves no trace to notice: this comment claimed four,
318
+ * then ten, while `table` (36 blocks), `subheading3` (34) and `video` (2)
319
+ * were being dropped or flattened into body text. Counting by hand is what
320
+ * failed, so it is no longer the mechanism —
321
+ * `test/integration/support-kb-contracts.test.ts` asserts the inventory
322
+ * against the live corpus, and a fourteenth type fails a check instead of
323
+ * quietly costing content.
148
324
  */
149
325
  export function renderBlock(block, depth = 0) {
150
326
  const simple = renderSimpleBlock(block, depth);
@@ -161,7 +337,9 @@ export function renderBlock(block, depth = 0) {
161
337
  .map(line => `> ${line}`)
162
338
  .join('\n')}\n\n`;
163
339
  case 'collapsibleSection':
164
- return `**${inlineText(block.summary ?? '')}**\n\n${renderBlocks(block.content ?? [])}`;
340
+ return `**${summaryText(block.summary)}**\n\n${renderBlocks(block.content ?? [])}`;
341
+ case 'table':
342
+ return renderTable(block);
165
343
  case undefined:
166
344
  default:
167
345
  // Unknown type: keep whatever text it has rather than dropping the
@@ -1 +1 @@
1
- {"version":3,"file":"intercom-service.js","sourceRoot":"","sources":["../../../src/core/services/intercom-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intercom-service.js","sourceRoot":"","sources":["../../../src/core/services/intercom-service.ts"],"names":[],"mappings":"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"}
@@ -125,12 +125,12 @@ export declare class MapsRegistry {
125
125
  *
126
126
  * Sourced from the same `/api/khub/maps` payload the registry already
127
127
  * builds from, so it needs no extra request and cannot drift from what
128
- * `resolveMapId` can actually reach: 97 families as of 2026-09-02, against
128
+ * `resolveMapId` can actually reach: 97 families as of 2026-09-14, against
129
129
  * the 12 reachable through {@link JAMF_PRODUCTS}.
130
130
  *
131
131
  * `locale` selects which locale's title to report and nothing else — the
132
132
  * list is not filtered by it, because a caller asking in zh-TW still needs
133
- * to see the en-US-only families (24 of them) rather than have them
133
+ * to see the en-US-only families (42 of them) rather than have them
134
134
  * silently vanish. Each entry's `locales` says what it actually has.
135
135
  */
136
136
  listPublications(locale?: LocaleId): Promise<PublicationInfo[]>;
@@ -255,12 +255,12 @@ export class MapsRegistry {
255
255
  *
256
256
  * Sourced from the same `/api/khub/maps` payload the registry already
257
257
  * builds from, so it needs no extra request and cannot drift from what
258
- * `resolveMapId` can actually reach: 97 families as of 2026-09-02, against
258
+ * `resolveMapId` can actually reach: 97 families as of 2026-09-14, against
259
259
  * the 12 reachable through {@link JAMF_PRODUCTS}.
260
260
  *
261
261
  * `locale` selects which locale's title to report and nothing else — the
262
262
  * list is not filtered by it, because a caller asking in zh-TW still needs
263
- * to see the en-US-only families (24 of them) rather than have them
263
+ * to see the en-US-only families (42 of them) rather than have them
264
264
  * silently vanish. Each entry's `locales` says what it actually has.
265
265
  */
266
266
  async listPublications(locale) {
@@ -24,20 +24,28 @@ export declare const FT_META: {
24
24
  readonly PUBLICATION_ID: "ft:publicationId";
25
25
  readonly PRODNAME: "prodname";
26
26
  /**
27
- * Jamf's own publication classification, present on all 662 maps.
27
+ * Jamf's own publication classification, carried by 629 of the 676 maps.
28
28
  *
29
29
  * Unlike the `product-*` values inside `zoominmetadata` — a legacy Zoomin
30
30
  * vocabulary where one label covers many publications (`product-pro` alone
31
31
  * spans 38 bundle families) — these three name the platform, client app or
32
- * utility a publication documents, and each map carries at most one of
33
- * each. Measured across all 97 bundle families and 11 locales, every family
34
- * reports the same value in every locale: 0 disagreements. That is what
35
- * makes them usable as a stable classification rather than display text,
36
- * and it is the opposite of `jamf:contentType`, whose values ARE translated
37
- * (see DOC_TYPE_CONTENT_TYPE_MAP).
32
+ * utility a publication documents. Measured across all 97 bundle families
33
+ * and 11 locales, every family reports the same value in every locale: 0
34
+ * disagreements. That is what makes them usable as a stable classification
35
+ * rather than display text, and it is the opposite of `jamf:contentType`,
36
+ * whose values ARE translated (see DOC_TYPE_CONTENT_TYPE_MAP).
38
37
  *
39
- * Live distribution: portal 12 distinct values over 550 maps, app 9 over
40
- * 92, utility 9 over 25. A map may carry none of them.
38
+ * Two things this comment used to assert are false. A map may carry none of
39
+ * the three 17 of the 97 families never do — and it may carry several:
40
+ * 29 maps list two or three `jamf:portal` values and 12 list two `jamf:app`
41
+ * values, so Jamf files "Jamf 170 Course" under Jamf Pro and Jamf Protect
42
+ * alike. `jamf:utility` is the only genuinely single-valued one. The
43
+ * registry reads all three through {@link getMetaValue}, which keeps
44
+ * `values[0]` and discards the rest — a known defect tracked in #282, not
45
+ * the intent.
46
+ *
47
+ * Live distribution, measured 2026-09-14: portal 12 distinct values over
48
+ * 564 maps, app 9 over 92, utility 9 over 25.
41
49
  */
42
50
  readonly PORTAL: "jamf:portal";
43
51
  readonly APP: "jamf:app";
@@ -1 +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;;;;;;;;;;;IAWlB;;;;;OAKG;;;;;IAMH;;;;;;;;;;;;;;;OAeG;;;;CAIK,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5D"}
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;;;;;;;;;;;IAWlB;;;;;OAKG;;;;;IAMH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;;;CAIK,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5D"}
@@ -21,20 +21,28 @@ export const FT_META = {
21
21
  PUBLICATION_ID: 'ft:publicationId',
22
22
  PRODNAME: 'prodname',
23
23
  /**
24
- * Jamf's own publication classification, present on all 662 maps.
24
+ * Jamf's own publication classification, carried by 629 of the 676 maps.
25
25
  *
26
26
  * Unlike the `product-*` values inside `zoominmetadata` — a legacy Zoomin
27
27
  * vocabulary where one label covers many publications (`product-pro` alone
28
28
  * spans 38 bundle families) — these three name the platform, client app or
29
- * utility a publication documents, and each map carries at most one of
30
- * each. Measured across all 97 bundle families and 11 locales, every family
31
- * reports the same value in every locale: 0 disagreements. That is what
32
- * makes them usable as a stable classification rather than display text,
33
- * and it is the opposite of `jamf:contentType`, whose values ARE translated
34
- * (see DOC_TYPE_CONTENT_TYPE_MAP).
29
+ * utility a publication documents. Measured across all 97 bundle families
30
+ * and 11 locales, every family reports the same value in every locale: 0
31
+ * disagreements. That is what makes them usable as a stable classification
32
+ * rather than display text, and it is the opposite of `jamf:contentType`,
33
+ * whose values ARE translated (see DOC_TYPE_CONTENT_TYPE_MAP).
35
34
  *
36
- * Live distribution: portal 12 distinct values over 550 maps, app 9 over
37
- * 92, utility 9 over 25. A map may carry none of them.
35
+ * Two things this comment used to assert are false. A map may carry none of
36
+ * the three 17 of the 97 families never do — and it may carry several:
37
+ * 29 maps list two or three `jamf:portal` values and 12 list two `jamf:app`
38
+ * values, so Jamf files "Jamf 170 Course" under Jamf Pro and Jamf Protect
39
+ * alike. `jamf:utility` is the only genuinely single-valued one. The
40
+ * registry reads all three through {@link getMetaValue}, which keeps
41
+ * `values[0]` and discards the rest — a known defect tracked in #282, not
42
+ * the intent.
43
+ *
44
+ * Live distribution, measured 2026-09-14: portal 12 distinct values over
45
+ * 564 maps, app 9 over 92, utility 9 over 25.
38
46
  */
39
47
  PORTAL: 'jamf:portal',
40
48
  APP: 'jamf:app',
@@ -1 +1 @@
1
- {"version":3,"file":"ft-metadata.js","sourceRoot":"","sources":["../../../src/core/utils/ft-metadata.ts"],"names":[],"mappings":"AAKA,uDAAuD;AACvD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,mBAAmB,EAAE,qBAAqB;IAC1C,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,cAAc;IAC1B,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,kBAAkB;IACpC,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,gBAAgB;IACjC,YAAY,EAAE,kBAAkB;IAChC;;;;;OAKG;IACH,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAClC,QAAQ,EAAE,UAAU;IAEpB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,EAAE,aAAa;IACrB,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,cAAc;CACf,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,QAAuC,EAAE,GAAW;IAC/E,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAuC,EAAE,GAAW;IAChF,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"ft-metadata.js","sourceRoot":"","sources":["../../../src/core/utils/ft-metadata.ts"],"names":[],"mappings":"AAKA,uDAAuD;AACvD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,mBAAmB,EAAE,qBAAqB;IAC1C,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,cAAc;IAC1B,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,kBAAkB;IACpC,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,gBAAgB;IACjC,YAAY,EAAE,kBAAkB;IAChC;;;;;OAKG;IACH,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,cAAc;IAC1B,cAAc,EAAE,kBAAkB;IAClC,QAAQ,EAAE,UAAU;IAEpB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,EAAE,aAAa;IACrB,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,cAAc;CACf,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,QAAuC,EAAE,GAAW;IAC/E,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAuC,EAAE,GAAW;IAChF,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACjD,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@get-technology-inc/jamf-docs-mcp-server",
3
- "version": "5.10.4",
3
+ "version": "5.10.5",
4
4
  "description": "MCP Server for accessing Jamf Documentation (learn.jamf.com)",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -18,7 +18,7 @@
18
18
  "test:watch": "vitest",
19
19
  "test:unit": "vitest run test/unit",
20
20
  "test:integration": "ALLOW_LIVE_REQUESTS=1 vitest run test/integration",
21
- "test:contract": "ALLOW_LIVE_REQUESTS=1 vitest run test/integration/data-contracts.test.ts",
21
+ "test:contract": "ALLOW_LIVE_REQUESTS=1 vitest run test/integration/data-contracts.test.ts test/integration/support-kb-contracts.test.ts",
22
22
  "test:e2e": "ALLOW_LIVE_REQUESTS=1 vitest run test/e2e",
23
23
  "test:all": "vitest run test/unit && ALLOW_LIVE_REQUESTS=1 vitest run test/integration && ALLOW_LIVE_REQUESTS=1 vitest run test/e2e",
24
24
  "test:coverage": "ALLOW_LIVE_REQUESTS=1 vitest run --coverage",