@get-technology-inc/jamf-docs-mcp-server 4.3.6 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +3 -3
  2. package/dist/core/constants/doc-types.d.ts +13 -4
  3. package/dist/core/constants/doc-types.d.ts.map +1 -1
  4. package/dist/core/constants/doc-types.js +13 -4
  5. package/dist/core/constants/doc-types.js.map +1 -1
  6. package/dist/core/constants/products.d.ts +2 -2
  7. package/dist/core/constants/products.d.ts.map +1 -1
  8. package/dist/core/constants/products.js +10 -2
  9. package/dist/core/constants/products.js.map +1 -1
  10. package/dist/core/index.d.ts +2 -0
  11. package/dist/core/index.d.ts.map +1 -1
  12. package/dist/core/index.js +4 -0
  13. package/dist/core/index.js.map +1 -1
  14. package/dist/core/schemas/index.d.ts.map +1 -1
  15. package/dist/core/schemas/index.js +16 -4
  16. package/dist/core/schemas/index.js.map +1 -1
  17. package/dist/core/services/article-service.d.ts.map +1 -1
  18. package/dist/core/services/article-service.js +4 -3
  19. package/dist/core/services/article-service.js.map +1 -1
  20. package/dist/core/services/cache-key.d.ts +116 -0
  21. package/dist/core/services/cache-key.d.ts.map +1 -0
  22. package/dist/core/services/cache-key.js +100 -0
  23. package/dist/core/services/cache-key.js.map +1 -0
  24. package/dist/core/services/ft-internal-link.d.ts.map +1 -1
  25. package/dist/core/services/ft-internal-link.js +4 -6
  26. package/dist/core/services/ft-internal-link.js.map +1 -1
  27. package/dist/core/services/glossary.d.ts.map +1 -1
  28. package/dist/core/services/glossary.js +11 -10
  29. package/dist/core/services/glossary.js.map +1 -1
  30. package/dist/core/services/interfaces/cache.d.ts +20 -3
  31. package/dist/core/services/interfaces/cache.d.ts.map +1 -1
  32. package/dist/core/services/interfaces/index.d.ts +2 -0
  33. package/dist/core/services/interfaces/index.d.ts.map +1 -1
  34. package/dist/core/services/interfaces/index.js +1 -1
  35. package/dist/core/services/interfaces/index.js.map +1 -1
  36. package/dist/core/services/maps-registry.d.ts.map +1 -1
  37. package/dist/core/services/maps-registry.js +2 -1
  38. package/dist/core/services/maps-registry.js.map +1 -1
  39. package/dist/core/services/metadata.d.ts.map +1 -1
  40. package/dist/core/services/metadata.js +8 -7
  41. package/dist/core/services/metadata.js.map +1 -1
  42. package/dist/core/services/search-service.d.ts +44 -2
  43. package/dist/core/services/search-service.d.ts.map +1 -1
  44. package/dist/core/services/search-service.js +171 -48
  45. package/dist/core/services/search-service.js.map +1 -1
  46. package/dist/core/services/toc-service.d.ts +2 -1
  47. package/dist/core/services/toc-service.d.ts.map +1 -1
  48. package/dist/core/services/toc-service.js +6 -4
  49. package/dist/core/services/toc-service.js.map +1 -1
  50. package/dist/core/services/topic-resolver.d.ts.map +1 -1
  51. package/dist/core/services/topic-resolver.js +6 -5
  52. package/dist/core/services/topic-resolver.js.map +1 -1
  53. package/dist/core/tools/search.d.ts.map +1 -1
  54. package/dist/core/tools/search.js +11 -2
  55. package/dist/core/tools/search.js.map +1 -1
  56. package/dist/core/types.d.ts +0 -1
  57. package/dist/core/types.d.ts.map +1 -1
  58. package/dist/core/types.js.map +1 -1
  59. package/dist/transport/http-types.d.ts +1 -1
  60. package/dist/transport/http-types.d.ts.map +1 -1
  61. package/dist/transport/http-types.js +12 -9
  62. package/dist/transport/http-types.js.map +1 -1
  63. package/package.json +1 -1
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Search service — Fluid Topics powered search
3
3
  */
4
- import { JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPE_CONTENT_TYPE_MAP, DOC_TYPE_LABEL_MAP, DOC_TYPE_PRECEDENCE, LABEL_KEY_DOC_TYPE_MAP, CONTENT_LIMITS, TOKEN_CONFIG, PAGINATION_CONFIG, DEFAULT_LOCALE, } from '../constants.js';
4
+ import { JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPE_LABEL_MAP, DOC_TYPE_PRECEDENCE, LABEL_KEY_DOC_TYPE_MAP, CONTENT_LIMITS, TOKEN_CONFIG, PAGINATION_CONFIG, DEFAULT_LOCALE, } from '../constants.js';
5
5
  import { search as ftSearch } from './ft-client.js';
6
6
  import { buildDisplayUrl } from './topic-resolver.js';
7
7
  import { cleanSnippet } from './content-parser.js';
8
+ import { cacheKey } from './cache-key.js';
8
9
  import { getMetaValue, getMetaValues, FT_META } from '../utils/ft-metadata.js';
9
10
  import { compareVersions } from '../utils/bundle.js';
10
11
  import { estimateTokens, calculatePagination, truncateListByTokens, buildPaginationNote, } from './tokenizer.js';
@@ -86,9 +87,17 @@ function docTypeFromLabelKeys(labelKeys) {
86
87
  * Build Fluid Topics search filters from search params.
87
88
  *
88
89
  * - product → `zoominmetadata` filter using searchLabel
89
- * - docType → `jamf:contentType` filter using DOC_TYPE_CONTENT_TYPE_MAP
90
+ * - docType → `zoominmetadata` filter using DOC_TYPE_LABEL_MAP
90
91
  * - version → `version` filter (only when a specific version is requested)
91
92
  *
93
+ * Both `zoominmetadata` filters are pushed as *separate* entries. Fluid Topics
94
+ * intersects filter objects and unions the values inside one, measured against
95
+ * the live API on a zh-TW corpus: `product-protect` alone matched 1182 topics
96
+ * and `content-releasenotes` alone 940, two filter objects matched 387 (the
97
+ * intersection) and one object holding both values matched 1735 (the union,
98
+ * exactly 1182 + 940 − 387). Merging them into a single entry would therefore
99
+ * widen a product+docType search instead of narrowing it.
100
+ *
92
101
  * NOTE: we intentionally do NOT add `latestVersion=yes` when no version is given.
93
102
  * Jamf migrated all non-Pro products (School, Connect, Protect, Now, …) to an
94
103
  * unversioned documentation model with no `latestVersion` metadata, so that filter
@@ -106,13 +115,31 @@ export function buildSearchFilters(params) {
106
115
  values: [productDef.searchLabel],
107
116
  });
108
117
  }
109
- // Document type filter
118
+ // Document type filter.
119
+ //
120
+ // Filters on the `content-*` label rather than `jamf:contentType`, because
121
+ // the latter's *values* are translated per locale while its key is not:
122
+ // `jamf:contentType = 'Release Notes'` matched 1323 topics under en-US and 0
123
+ // under zh-TW, where the same topics carry '版本資訊' (940) — and ja-JP
124
+ // 'リリースノート' (1207), de-DE 'Versionshinweise', and so on for every
125
+ // locale this server supports. Sending the English string therefore returned
126
+ // an empty upstream result for seven of the eight supported locales, and
127
+ // because that emptiness arrives from the API, the client-side relaxation in
128
+ // {@link applyFiltersWithFallback} has nothing left to relax.
129
+ //
130
+ // The `content-*` vocabulary is locale-invariant (`content-releasenotes`:
131
+ // 1323 en-US / 940 zh-TW / 1207 ja-JP / 1207 de-DE) and is already what the
132
+ // docType post-filter matches on, so both ends now agree on one vocabulary.
110
133
  if (params.docType !== undefined) {
111
- const contentType = DOC_TYPE_CONTENT_TYPE_MAP[params.docType];
112
- if (contentType !== undefined) {
134
+ // Widened deliberately: DOC_TYPE_LABEL_MAP is total over DocTypeId, so the
135
+ // type says this cannot miss — but params reach here from a JSON-RPC
136
+ // payload, and a docType outside the enum would otherwise push
137
+ // `values: [undefined]` upstream. Same idiom as the docType post-filter.
138
+ const labelKey = DOC_TYPE_LABEL_MAP[params.docType];
139
+ if (labelKey !== undefined) {
113
140
  filters.push({
114
- key: FT_META.CONTENT_TYPE,
115
- values: [contentType],
141
+ key: FT_META.ZOOMIN_METADATA,
142
+ values: [labelKey],
116
143
  });
117
144
  }
118
145
  }
@@ -385,7 +412,23 @@ function truncateSearchResults(paginatedResults, maxTokens) {
385
412
  return { finalResults, finalTokenCount, truncated: true, truncatedContent };
386
413
  }
387
414
  // ─── Convert flat SearchResult to SearchResultWithMeta ─────────
388
- function toSearchResultWithMeta(result, needsTopicMatching, ftLabelKeys) {
415
+ /**
416
+ * `matchedTopics` is computed unconditionally, not only when the caller asked
417
+ * for a topic filter.
418
+ *
419
+ * It used to be gated on `params.topic !== undefined`, which made the cached
420
+ * value a function of something that is not in — and cannot be in — the FT
421
+ * request the cache is keyed on. A topic-less search wrote entries carrying
422
+ * `matchedTopics: []`, and the next search for the same query WITH a topic hit
423
+ * that entry, found nothing matching, and silently relaxed the topic filter it
424
+ * had never actually run. Same question, different answer depending on cache
425
+ * state; verified against the live path before this change.
426
+ *
427
+ * Computing it always costs 284 substring checks per result on a cache miss —
428
+ * 40 topics' keyword lists, and only on the write path — which is the cheaper
429
+ * half of the trade by a wide margin.
430
+ */
431
+ function toSearchResultWithMeta(result, ftLabelKeys) {
389
432
  // Derive bundleSlug from the product display name (extracted from
390
433
  // zoominmetadata). Do NOT use result.mapId — FT API mapIds are
391
434
  // opaque hashes (e.g. 'uRhiWJWbjHyL1vegaHmj8g'), not readable
@@ -400,9 +443,7 @@ function toSearchResultWithMeta(result, needsTopicMatching, ftLabelKeys) {
400
443
  return {
401
444
  result,
402
445
  bundleSlug,
403
- matchedTopics: needsTopicMatching
404
- ? matchTopics(result.title, result.snippet)
405
- : [],
446
+ matchedTopics: matchTopics(result.title, result.snippet),
406
447
  labelKeys,
407
448
  };
408
449
  }
@@ -504,60 +545,142 @@ export async function searchDocumentation(ctx, params) {
504
545
  /**
505
546
  * Build a deterministic cache key for FT search results.
506
547
  *
507
- * Derived from query + filters + locale (NOT page/limit, since
508
- * pagination is applied client-side after caching).
548
+ * Keyed off the *actual request object* rather than a hand-assembled string,
549
+ * which buys two properties the previous projection did not have.
550
+ *
551
+ * **Injective.** The old key was `ft-search:{locale}:{query}:{k}={v}|{k}={v}`
552
+ * with none of `: | = ,` escaped, while both `query` and `version` are
553
+ * caller-supplied free text. Searching `{product: 'jamf-pro', version: '11.5'}`
554
+ * and `{version: '11.5|zoominmetadata=product-pro'}` produced the byte-identical
555
+ * key `ft-search:en-US:FileVault:version=11.5|zoominmetadata=product-pro` while
556
+ * sending different filters upstream, so whichever ran first served its results
557
+ * to the other for the whole TTL. One `FileCache` is shared per process
558
+ * (src/index.ts), so under `--transport http` that crosses clients. JSON escapes
559
+ * the delimiters, so no input can forge a neighbouring key.
560
+ *
561
+ * **Total.** Every field of the request is in the key — `sortId` included — so
562
+ * a relevance-sorted and a last_update-sorted query cannot come to share one
563
+ * entry the moment sort becomes configurable.
564
+ *
565
+ * That holds only while the cached value is a function of this request and
566
+ * nothing else. `params.topic` is deliberately NOT here: it selects a
567
+ * client-side post-filter, and `matchedTopics` is computed unconditionally
568
+ * (see {@link toSearchResultWithMeta}) precisely so the stored value does not
569
+ * vary with it. It used to, and a topic-less search then served its entry to a
570
+ * topic search that silently relaxed the filter it never ran. Anything added to
571
+ * the cached value that comes from `SearchParams` rather than from this request
572
+ * reopens that hole and belongs in the key instead.
573
+ *
574
+ * `paging` is part of the keyed object but constant in practice: this layer
575
+ * always fetches one over-fetched page and paginates client-side.
509
576
  */
510
- function buildSearchCacheKey(query, filters, locale) {
511
- const sortedFilters = [...filters]
512
- .sort((a, b) => a.key.localeCompare(b.key))
513
- .map(f => `${f.key}=${f.values.sort().join(',')}`)
514
- .join('|');
515
- return `ft-search:${locale}:${query}:${sortedFilters}`;
577
+ export function buildSearchCacheKey(request) {
578
+ return cacheKey('ft-search', {
579
+ query: request.query,
580
+ // `?? null` rather than passing `undefined` through: the space declares
581
+ // these nullable so that "absent" is one value, not two. `cacheKey` drops
582
+ // undefined parts, so leaving them undefined would key an omitted locale
583
+ // identically to a present one only by accident of that dropping rule.
584
+ contentLocale: request.contentLocale ?? null,
585
+ sortId: request.sortId ?? null,
586
+ perPage: request.paging?.perPage ?? null,
587
+ page: request.paging?.page ?? null,
588
+ // Sorted into a canonical form here rather than in `cacheKey`, which must
589
+ // not reorder arrays: a filter list is a set upstream, but `['a','b']` and
590
+ // `['b','a']` are different data in general, and a helper that collapsed
591
+ // them would be the very non-injectivity this replaces. Compared by
592
+ // UTF-16 code unit on the serialized tuple, not `localeCompare` — a total
593
+ // order and it does not vary with the runtime's ICU locale.
594
+ filters: [...(request.filters ?? [])]
595
+ .map(f => [f.key, [...f.values].sort()])
596
+ .sort((a, b) => {
597
+ const left = JSON.stringify(a);
598
+ const right = JSON.stringify(b);
599
+ if (left < right) {
600
+ return -1;
601
+ }
602
+ return left > right ? 1 : 0;
603
+ }),
604
+ });
516
605
  }
517
606
  async function resolveSearchResults(ctx, params, log) {
518
- const needsTopicMatching = params.topic !== undefined;
519
607
  // 1. Try SearchProvider first (custom backend injection — no caching)
520
608
  if (ctx.searchProvider !== undefined) {
521
609
  const provided = await ctx.searchProvider.search(params);
522
610
  if (provided !== null) {
523
611
  return {
524
- results: provided.map(r => toSearchResultWithMeta(r, needsTopicMatching)),
612
+ results: provided.map(r => toSearchResultWithMeta(r)),
525
613
  fromProvider: true,
526
614
  };
527
615
  }
528
616
  }
529
617
  // 2. Build FT search request
530
618
  const locale = params.language ?? DEFAULT_LOCALE;
531
- const filters = buildSearchFilters(params);
532
- const cacheKey = buildSearchCacheKey(params.query, filters, locale);
533
- // 3. Check cache before hitting the FT API
534
- const cached = await ctx.cache.get(cacheKey);
535
- if (cached !== null) {
536
- log.debug(`Search cache hit: key="${cacheKey}", ${cached.length} results`);
537
- return { results: cached, fromProvider: false };
538
- }
539
619
  const perPage = Math.min(CONTENT_LIMITS.MAX_SEARCH_RESULTS, CONTENT_LIMITS.FILTER_OVERFETCH_CAP);
540
- log.debug(`FT search: query="${params.query}", product=${params.product ?? 'all'}, ` +
541
- `locale=${locale}, filters=${JSON.stringify(filters)}`);
542
- const ftResponse = await ftSearch({
543
- query: params.query,
544
- contentLocale: locale,
545
- paging: { perPage, page: 1 },
546
- filters,
547
- });
548
- // 4. Collapse version snapshots to the latest per topic, then transform.
549
- // Deduping before transform avoids running cleanSnippet etc. over every
550
- // Jamf Pro version variant (a broad query can return ~15 snapshots/topic).
551
- const results = [];
552
- for (const entry of dedupeToLatestVersions(ftResponse.results)) {
553
- const searchResult = transformFtSearchResult(entry);
554
- if (searchResult.url !== '') {
555
- results.push(toSearchResultWithMeta(searchResult, needsTopicMatching, docTypeLabelKeys(entryMetadata(entry))));
620
+ /** One cached round-trip to FT for a given filter set. */
621
+ const fetchFiltered = async (filters) => {
622
+ const request = {
623
+ query: params.query,
624
+ contentLocale: locale,
625
+ // Sent explicitly even though it matches Fluid Topics' default, so the
626
+ // ordering this server promises its callers is a stated request
627
+ // parameter rather than an undocumented upstream default that could
628
+ // change under us. Verified identical to omitting it, and clearly
629
+ // distinct from `last_update`, against the live corpus.
630
+ sortId: 'relevance',
631
+ paging: { perPage, page: 1 },
632
+ filters,
633
+ };
634
+ const key = buildSearchCacheKey(request);
635
+ const cached = await ctx.cache.get(key);
636
+ if (cached !== null) {
637
+ log.debug(`Search cache hit: key="${key}", ${cached.length} results`);
638
+ return cached;
639
+ }
640
+ log.debug(`FT search: query="${params.query}", product=${params.product ?? 'all'}, ` +
641
+ `locale=${locale}, filters=${JSON.stringify(filters)}`);
642
+ const ftResponse = await ftSearch(request);
643
+ // Collapse version snapshots to the latest per topic, then transform.
644
+ // Deduping before transform avoids running cleanSnippet etc. over every
645
+ // Jamf Pro version variant (a broad query can return ~15 snapshots/topic).
646
+ const out = [];
647
+ for (const entry of dedupeToLatestVersions(ftResponse.results)) {
648
+ const searchResult = transformFtSearchResult(entry);
649
+ if (searchResult.url !== '') {
650
+ out.push(toSearchResultWithMeta(searchResult, docTypeLabelKeys(entryMetadata(entry))));
651
+ }
556
652
  }
653
+ // Cache the raw results (before client-side filtering)
654
+ await ctx.cache.set(key, out, ctx.config.cacheTtl.search);
655
+ log.debug(`FT search returned ${out.length} results (cached)`);
656
+ return out;
657
+ };
658
+ let results = await fetchFiltered(buildSearchFilters(params));
659
+ // 3. Re-query without docType when narrowing by it emptied the result set
660
+ // upstream.
661
+ //
662
+ // docType is now a `content-*` filter on the API rather than a value of
663
+ // the much broader `jamf:contentType`, so a product+docType pair whose
664
+ // two labels never co-occur returns nothing at all instead of returning
665
+ // the product's topics for the post-filter to narrow. Measured on the
666
+ // live corpus for query "enrollment": `content-solutionguide` matches 40
667
+ // topics and `product-protect` 35, but their intersection is 0 — Jamf
668
+ // publishes no Jamf Protect solution guides.
669
+ //
670
+ // {@link applyFiltersWithFallback} is a *client-side* relaxation: it can
671
+ // only re-filter what was fetched, so an empty upstream response leaves it
672
+ // nothing to relax and the caller reports a bare "no results" that does not
673
+ // even name docType as the cause. Dropping the filter here restores the
674
+ // fetch the relaxation expects — the post-filter then empties it again and
675
+ // the existing relaxation reports `removed: ['docType']`, which is what the
676
+ // user needs to see.
677
+ if (results.length === 0 && params.docType !== undefined) {
678
+ log.debug(`Empty upstream result with docType="${params.docType}"; re-querying without it`);
679
+ results = await fetchFiltered(buildSearchFilters({
680
+ product: params.product,
681
+ version: params.version,
682
+ }));
557
683
  }
558
- // 5. Cache the raw results (before client-side filtering)
559
- await ctx.cache.set(cacheKey, results, ctx.config.cacheTtl.search);
560
- log.debug(`FT search returned ${results.length} results (cached)`);
561
684
  return { results, fromProvider: false };
562
685
  }
563
686
  //# sourceMappingURL=search-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-service.js","sourceRoot":"","sources":["../../../src/core/services/search-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-service.js","sourceRoot":"","sources":["../../../src/core/services/search-service.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ export declare function transformFtTocToTocEntries(nodes: FtTocNode[]): TocEntry
24
24
  * 2. MapsRegistry → mapId → ft-client.fetchMapToc
25
25
  * 3. Transform FtTocNode[] → TocEntry[]
26
26
  *
27
- * Results are cached under `ft-toc:{locale}:{product}:{version}`.
27
+ * Results are cached under the `ft-toc` namespace, keyed on locale, product
28
+ * and version — see {@link CacheKeySpaces}.
28
29
  */
29
30
  export declare function fetchTableOfContents(ctx: ServerContext, product: ProductId, version?: string, options?: FetchTocOptions): Promise<FetchTocResult>;
30
31
  //# sourceMappingURL=toc-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toc-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAkB,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKxG;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAmBzE;AAyDD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,SAAS,EAClB,OAAO,SAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA0EzB"}
1
+ {"version":3,"file":"toc-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAkB,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKxG;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAmBzE;AAyDD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,SAAS,EAClB,OAAO,SAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA0EzB"}
@@ -8,6 +8,7 @@ import { fetchMapToc } from './ft-client.js';
8
8
  import { buildDisplayUrl } from './topic-resolver.js';
9
9
  import { calculatePagination, truncateListByTokens, buildPaginationNote, } from './tokenizer.js';
10
10
  import { JAMF_PRODUCTS, DEFAULT_LOCALE, PAGINATION_CONFIG, TOKEN_CONFIG, } from '../constants.js';
11
+ import { cacheKey } from './cache-key.js';
11
12
  import { JamfDocsError, JamfDocsErrorCode } from '../types.js';
12
13
  // ─── Transform helpers ─────────────────────────────────────────
13
14
  /**
@@ -79,7 +80,8 @@ async function resolveMapIdQuietly(ctx, bundleId, version, locale) {
79
80
  * 2. MapsRegistry → mapId → ft-client.fetchMapToc
80
81
  * 3. Transform FtTocNode[] → TocEntry[]
81
82
  *
82
- * Results are cached under `ft-toc:{locale}:{product}:{version}`.
83
+ * Results are cached under the `ft-toc` namespace, keyed on locale, product
84
+ * and version — see {@link CacheKeySpaces}.
83
85
  */
84
86
  export async function fetchTableOfContents(ctx, product, version = 'current', options = {}) {
85
87
  if (ctx.tocProvider !== undefined) {
@@ -91,9 +93,9 @@ export async function fetchTableOfContents(ctx, product, version = 'current', op
91
93
  const page = options.page ?? PAGINATION_CONFIG.DEFAULT_PAGE;
92
94
  const maxTokens = options.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
93
95
  const locale = options.locale ?? DEFAULT_LOCALE;
94
- const cacheKey = `ft-toc:${locale}:${product}:${version}`;
96
+ const key = cacheKey('ft-toc', { locale, product, version });
95
97
  const { bundleId } = JAMF_PRODUCTS[product];
96
- let allToc = await ctx.cache.get(cacheKey);
98
+ let allToc = await ctx.cache.get(key);
97
99
  let mapId;
98
100
  if (allToc === null) {
99
101
  mapId = await ctx.mapsRegistry.resolveMapId(bundleId, version !== 'current' ? version : undefined, locale);
@@ -102,7 +104,7 @@ export async function fetchTableOfContents(ctx, product, version = 'current', op
102
104
  }
103
105
  const ftNodes = await fetchMapToc(mapId);
104
106
  allToc = transformFtTocToTocEntries(ftNodes);
105
- await ctx.cache.set(cacheKey, allToc, ctx.config.cacheTtl.article);
107
+ await ctx.cache.set(key, allToc, ctx.config.cacheTtl.article);
106
108
  }
107
109
  else {
108
110
  // The cache stores the tree, not the id it came from. Re-resolve so a
@@ -1 +1 @@
1
- {"version":3,"file":"toc-service.js","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toc-service.js","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"topic-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/services/topic-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAW3D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAID,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AA4CnD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAQtD;AAyCD,qBAAa,aAAa;IAetB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAfxB;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmD;IAC5E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,aAAa,EACrC,gBAAgB,CAAC,EAAE,OAAO,cAAc,EACxC,QAAQ,CAAC,EAAE,MAAM;YAML,aAAa;IAqC3B;;;;;;;OAOG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;YA2ClD,aAAa;YA0Bb,aAAa;CAoD5B;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzD"}
1
+ {"version":3,"file":"topic-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/services/topic-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAY3D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAID,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AA4CnD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAQtD;AAyCD,qBAAa,aAAa;IAetB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAfxB;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmD;IAC5E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,aAAa,EACrC,gBAAgB,CAAC,EAAE,OAAO,cAAc,EACxC,QAAQ,CAAC,EAAE,MAAM;YAML,aAAa;IAqC3B;;;;;;;OAOG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;YA2ClD,aAAa;YA0Bb,aAAa;CAoD5B;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzD"}
@@ -10,6 +10,7 @@ import { DOCS_BASE_URL, DEFAULT_LOCALE } from '../constants.js';
10
10
  import { toValidLocale } from '../constants/locales.js';
11
11
  import { JamfDocsError, JamfDocsErrorCode } from '../types.js';
12
12
  import { fetchMapTopics } from './ft-client.js';
13
+ import { cacheKey } from './cache-key.js';
13
14
  import { getMetaValue, FT_META } from '../utils/ft-metadata.js';
14
15
  import { isAllowedHostname } from '../utils/url.js';
15
16
  import { extractVersionFromBundleId, stripCurrentSuffix, stripVersionSuffix, } from '../utils/bundle.js';
@@ -81,7 +82,7 @@ export function parseUrl(url) {
81
82
  }
82
83
  // ─── Topic Index (slug → contentId) ────────────────────────────
83
84
  const DEFAULT_TOPICS_CACHE_TTL = 24 * 60 * 60 * 1000;
84
- async function fetchAndBuildIndex(mapId, cache, cacheKey, fetchTopicsFn, cacheTtl) {
85
+ async function fetchAndBuildIndex(mapId, cache, key, fetchTopicsFn, cacheTtl) {
85
86
  const topics = await fetchTopicsFn(mapId);
86
87
  const index = new Map();
87
88
  for (const topic of topics) {
@@ -101,7 +102,7 @@ async function fetchAndBuildIndex(mapId, cache, cacheKey, fetchTopicsFn, cacheTt
101
102
  }
102
103
  }
103
104
  }
104
- await cache.set(cacheKey, [...index.entries()], cacheTtl);
105
+ await cache.set(key, [...index.entries()], cacheTtl);
105
106
  return index;
106
107
  }
107
108
  // ─── Resolver ───────────────────────────────────────────────────
@@ -127,8 +128,8 @@ export class TopicResolver {
127
128
  this.cacheTtl = cacheTtl ?? DEFAULT_TOPICS_CACHE_TTL;
128
129
  }
129
130
  async getTopicIndex(mapId) {
130
- const cacheKey = `topic-index:${mapId}`;
131
- const cached = await this.cache.get(cacheKey);
131
+ const key = cacheKey('ft-topic-index', { mapId });
132
+ const cached = await this.cache.get(key);
132
133
  if (cached !== null) {
133
134
  return new Map(cached);
134
135
  }
@@ -137,7 +138,7 @@ export class TopicResolver {
137
138
  if (pending !== undefined) {
138
139
  return await pending;
139
140
  }
140
- const promise = fetchAndBuildIndex(mapId, this.cache, cacheKey, this.fetchMapTopicsFn, this.cacheTtl);
141
+ const promise = fetchAndBuildIndex(mapId, this.cache, key, this.fetchMapTopicsFn, this.cacheTtl);
141
142
  this.inflight.set(mapId, promise);
142
143
  // Clean up the in-flight entry once the promise settles.
143
144
  //
@@ -1 +1 @@
1
- {"version":3,"file":"topic-resolver.js","sourceRoot":"","sources":["../../../src/core/services/topic-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topic-resolver.js","sourceRoot":"","sources":["../../../src/core/services/topic-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAiB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAoC5B;;;GAGG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,KAAK,GAAG,uEAAuE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IACzD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IAC7D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IAC7D,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,KAAK,GAAG,gDAAgD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IACzD,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IACnE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC;IAAA,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;QACvB,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,kEAAkE;AAElE,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErD,KAAK,UAAU,kBAAkB,CAC/B,KAAa,EACb,KAAoB,EACpB,GAAa,EACb,aAAoC,EACpC,QAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,qCAAqC;QACrC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1E,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACtB,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,0EAA0E;QAC1E,wEAAwE;QACxE,2EAA2E;QAC3E,wEAAwE;QACxE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mEAAmE;AAEnE,MAAM,OAAO,aAAa;IAeL;IACA;IAfnB;;;;;;;;OAQG;IACc,QAAQ,GAAG,IAAI,GAAG,EAAwC,CAAC;IAC3D,gBAAgB,CAAwB;IACxC,QAAQ,CAAS;IAElC,YACmB,QAAsB,EACtB,KAAoB,EACrC,gBAAwC,EACxC,QAAiB;QAHA,aAAQ,GAAR,QAAQ,CAAc;QACtB,UAAK,GAAL,KAAK,CAAe;QAIrC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,cAAc,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,wBAAwB,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAa;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,GAAG,CAAC,CAAC;QAC7D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,8DAA8D;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAChC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAC7D,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAElC,yDAAyD;QACzD,EAAE;QACF,gEAAgE;QAChE,qEAAqE;QACrE,sEAAsE;QACtE,uEAAuE;QACvE,yEAAyE;QACzE,yEAAyE;QACzE,2BAA2B;QAC3B,EAAE;QACF,2EAA2E;QAC3E,mDAAmD;QACnD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,KAAyB;QACrC,qCAAqC;QACrC,IACE,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;YAC/C,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE,EACvD,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;gBAC9D,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7B,CAAC,CAAC,cAAc,CAAC;YACnB,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,MAAM;aACP,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,aAAa,CACrB,yDAAyD,EACzD,iBAAiB,CAAC,WAAW,CAC9B,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CACrB,4BAA4B,KAAK,CAAC,GAAG,EAAE,EACvC,iBAAiB,CAAC,WAAW,EAC7B,KAAK,CAAC,GAAG,CACV,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;YACtE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;YAC7B,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,MAAuB,EACvB,cAAyB;QAEzB,MAAM,MAAM,GAAG,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/E,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CACrB,4BAA4B,MAAM,CAAC,QAAQ,EAAE,EAC7C,iBAAiB,CAAC,SAAS,CAC5B,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CACrB,oBAAoB,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,QAAQ,EAAE,EAClE,iBAAiB,CAAC,SAAS,CAC5B,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,MAAuB,EACvB,cAAyB;QAEzB,MAAM,MAAM,GAAG,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9D,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,gEAAgE;QAChE,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,yEAAyE;QACzE,6BAA6B;QAC7B,EAAE;QACF,4CAA4C;QAC5C,4EAA4E;QAC5E,2EAA2E;QAC3E,qBAAqB;QACrB,0EAA0E;QAC1E,yEAAyE;QACzE,2DAA2D;QAC3D,2EAA2E;QAC3E,sEAAsE;QACtE,gEAAgE;QAChE,+DAA+D;QAC/D,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAC5C,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,EAClE,OAAO,IAAI,SAAS,EACpB,MAAM,CACP,CAAC;QACF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,CACrB,2BAA2B,MAAM,CAAC,WAAW,EAAE,EAC/C,iBAAiB,CAAC,SAAS,CAC5B,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,aAAa,CACrB,oBAAoB,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,WAAW,EAAE,EAC/D,iBAAiB,CAAC,SAAS,CAC5B,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;CACF;AAED,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC;AAC/E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/core/tools/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAuB,MAAM,iBAAiB,CAAC;AAuL/E;;;;;;;;GAQG;AACH,UAAU,aAAa;IACrB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAWnD,CAAC;AAkBF,eAAO,MAAM,gBAAgB,QAqDX,CAAC;AA0KnB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CA+J9E"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/core/tools/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAuB,MAAM,iBAAiB,CAAC;AAuL/E;;;;;;;;GAQG;AACH,UAAU,aAAa;IACrB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAWnD,CAAC;AAkBF,eAAO,MAAM,gBAAgB,QAqDX,CAAC;AA0KnB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAwK9E"}
@@ -423,10 +423,19 @@ export function registerSearchTool(server, ctx) {
423
423
  truncatedContent,
424
424
  });
425
425
  if (params.responseFormat === ResponseFormat.JSON) {
426
- // Add relevance note only in JSON format
426
+ // Add relevance note only in JSON format.
427
+ //
428
+ // States the ordering and nothing more. The previous wording promised
429
+ // "relevance scores ... higher values indicate stronger keyword
430
+ // matches", but Fluid Topics returns no score of any kind — a
431
+ // clustered-search entry carries only `type`, `missingTerms` and the
432
+ // topic/map payload, with no score, rank or weight field anywhere in
433
+ // the response — and no result this server emits has ever carried a
434
+ // numeric relevance. The ordering itself is real: `sortId:
435
+ // 'relevance'` is sent explicitly (see resolveSearchResults).
427
436
  const jsonResponse = {
428
437
  ...response,
429
- relevanceNote: 'Relevance scores are provided by the Fluid Topics Search API based on text matching. Higher values indicate stronger keyword matches.'
438
+ relevanceNote: 'Results are ordered by relevance, as ranked by the Fluid Topics search API. The API returns no numeric relevance score, so none is included.'
430
439
  };
431
440
  await reportProgress(extra, { progress: 3, total: 3 });
432
441
  return {