@farming-labs/docs 0.2.71 → 0.2.72

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 (51) hide show
  1. package/dist/{agent-bof3qzKZ.mjs → agent-DbDfIqhe.mjs} +3 -3
  2. package/dist/{agent-evals-Cr9TAkmB.mjs → agent-evals-CjYzCQMZ.mjs} +90 -11
  3. package/dist/{agent-export-7Ws4KqDE.mjs → agent-export-CpQhD8eA.mjs} +9 -9
  4. package/dist/{agent-FIyl4-Oa.mjs → agent-pS2nNQS3.mjs} +31 -4
  5. package/dist/agent-skills-bundle.d.mts +1 -1
  6. package/dist/{agent-skills-server-DTwblsLu.d.mts → agent-skills-server-DZnNB4_S.d.mts} +2 -2
  7. package/dist/agent-skills-vite.d.mts +3 -3
  8. package/dist/agent-skills-vite.mjs +1 -1
  9. package/dist/{agents-Be2ntaFr.mjs → agents-B-1h9Jlm.mjs} +8 -8
  10. package/dist/cli/index.mjs +29 -29
  11. package/dist/client/react.d.mts +1 -1
  12. package/dist/{cloud-pdNC-tyj.mjs → cloud-CyysfDny.mjs} +3 -3
  13. package/dist/{cloud-ask-ai-BfnX18rI.d.mts → cloud-ask-ai-D9gIN4Vr.d.mts} +1 -1
  14. package/dist/{codeblocks-CFuurVIH.mjs → codeblocks-DAj7EAwt.mjs} +2 -2
  15. package/dist/{dev-Cc1cFFj-.mjs → dev-qE7MYEh9.mjs} +2 -2
  16. package/dist/docs-cloud-server.d.mts +2 -2
  17. package/dist/docs-cloud-server.mjs +1 -1
  18. package/dist/{doctor-DoPAofVP.mjs → doctor-CBy8-tPu.mjs} +13 -13
  19. package/dist/{downgrade-w7e6Se0L.mjs → downgrade-DCxezPZI.mjs} +2 -2
  20. package/dist/{golden-evaluations-CPGGnXOV.mjs → golden-evaluations-DGg_eHIY.mjs} +23 -3
  21. package/dist/index.d.mts +25 -4
  22. package/dist/index.mjs +6 -6
  23. package/dist/{init-DAkI0Lkf.mjs → init-p1MHf06G.mjs} +3 -3
  24. package/dist/{mcp-BLynUzE7.mjs → mcp-BNK45dzD.mjs} +7 -7
  25. package/dist/mcp.d.mts +7 -2
  26. package/dist/mcp.mjs +122 -18
  27. package/dist/{metadata-bw8k-9x-.mjs → metadata-D6qlWDu-.mjs} +1 -1
  28. package/dist/{package-version-n5AFur8a.mjs → package-version-BXHcIm1T.mjs} +1 -1
  29. package/dist/{reading-time-DtNegNiq.mjs → reading-time-DvTuW2Iy.mjs} +2 -2
  30. package/dist/{review-NFnYbMRI.mjs → review-Cace7A2c.mjs} +8 -8
  31. package/dist/{robots-DOqBwQw8.mjs → robots-C2SindI5.mjs} +1 -1
  32. package/dist/{robots-B3e-aWPy.mjs → robots-DmE_wXvG.mjs} +4 -4
  33. package/dist/{search-CozHzW7v.d.mts → search-1aftosa5.d.mts} +24 -9
  34. package/dist/{search-x5O0-9X3.mjs → search-BbArHODP.mjs} +691 -26
  35. package/dist/{search-DOGUUZvs.mjs → search-DB3svkNQ.mjs} +7 -7
  36. package/dist/server.d.mts +13 -5
  37. package/dist/server.mjs +8 -8
  38. package/dist/{sitemap-BpMKdDUd.mjs → sitemap-DPTLh_26.mjs} +8 -8
  39. package/dist/{sitemap-server-D_hayOp6.mjs → sitemap-server-PUoOhplO.mjs} +1 -1
  40. package/dist/{standards-discovery-C0CIC4QI.d.mts → standards-discovery-DRJ10g7B.d.mts} +1 -1
  41. package/dist/{types-BQC05SQm.d.mts → types-B9DNNAdT.d.mts} +49 -1
  42. package/dist/{upgrade-oz-GChgt.mjs → upgrade-DDJQ5l6n.mjs} +2 -2
  43. package/package.json +1 -1
  44. package/dist/agent-scope-C_U--OZ7.mjs +0 -283
  45. /package/dist/{agent-skills-server-B4u3qy-1.mjs → agent-skills-server-BPVv4gMg.mjs} +0 -0
  46. /package/dist/{cloud-ask-ai-sbpjOR2K.mjs → cloud-ask-ai-hnJfj8-X.mjs} +0 -0
  47. /package/dist/{code-blocks-DnNVNK2M.mjs → code-blocks-qe0T8-xe.mjs} +0 -0
  48. /package/dist/{config-Wcdj-D0a.mjs → config-z7_R0f86.mjs} +0 -0
  49. /package/dist/{errors-DbOhkE1h.mjs → errors-Cc_qplZU.mjs} +0 -0
  50. /package/dist/{templates-C6avM0U3.mjs → templates-BJnf6B8l.mjs} +0 -0
  51. /package/dist/{utils-DpiIioYb.mjs → utils-C4RC8Zq_.mjs} +0 -0
package/dist/mcp.mjs CHANGED
@@ -1,8 +1,7 @@
1
1
  import { a as emitDocsAnalyticsEvent, i as emitDocsAgentTraceEvent, n as createDocsAgentTraceContext, r as createDocsAgentTraceId } from "./analytics-Bx44lg6d.mjs";
2
- import { At as resolveDocsAudienceMdxContent, Gt as findDocsMarkdownSection, Jt as renderDocsRelatedMarkdownLines, Kt as parseDocsMarkdownSections, Sn as resolveDocsMcpResourceLocation, bn as normalizeDocsMcpEndpointPath, gn as isDocsMcpProtectedResourceMetadataPath, hn as isDocsMcpOAuthScopeToken, nn as normalizePageAgentFrontmatter, on as upsertPageAgentContractMarkdown, qt as normalizeDocsRelated, tn as hasStructuredPageAgentContract, vn as isDocsMcpResourcePath, xn as resolveDocsMcpProtectedResourceMetadataLocation, yn as normalizeDocsMcpAuthorizationServerUrls } from "./agent-FIyl4-Oa.mjs";
2
+ import { At as resolveDocsAudienceMdxContent, Gt as findDocsMarkdownSection, Jt as renderDocsRelatedMarkdownLines, Kt as parseDocsMarkdownSections, Sn as resolveDocsMcpResourceLocation, bn as normalizeDocsMcpEndpointPath, gn as isDocsMcpProtectedResourceMetadataPath, hn as isDocsMcpOAuthScopeToken, nn as normalizePageAgentFrontmatter, on as upsertPageAgentContractMarkdown, qt as normalizeDocsRelated, tn as hasStructuredPageAgentContract, vn as isDocsMcpResourcePath, xn as resolveDocsMcpProtectedResourceMetadataLocation, yn as normalizeDocsMcpAuthorizationServerUrls } from "./agent-pS2nNQS3.mjs";
3
3
  import "./standards-discovery-CYfiQE13.mjs";
4
- import { D as emitDocsTelemetryMcpToolEvent, O as emitDocsTelemetryProjectEvent, S as resolvePageSidebarFolderIndexBehavior, T as emitDocsTelemetryAgentSurfaceEvent, b as stripGeneratedAgentProvenance, u as performDocsSearch } from "./search-x5O0-9X3.mjs";
5
- import { a as normalizeAgentScopeValues, i as normalizeAgentLocale, n as agentVersionConstraintsOverlap, r as normalizeAgentFramework, t as agentVersionConstraintMatches } from "./agent-scope-C_U--OZ7.mjs";
4
+ import { A as stripGeneratedAgentProvenance, F as emitDocsTelemetryAgentSurfaceEvent, L as emitDocsTelemetryMcpToolEvent, M as resolvePageSidebarFolderIndexBehavior, R as emitDocsTelemetryProjectEvent, S as normalizeAgentScopeValues, b as normalizeAgentFramework, d as performDocsSearch, f as performDocsSearchWithMetadata, u as normalizeDocsSearchFilters, v as agentVersionConstraintMatches, x as normalizeAgentLocale, y as agentVersionConstraintsOverlap } from "./search-BbArHODP.mjs";
6
5
  import matter from "gray-matter";
7
6
  import fs from "node:fs";
8
7
  import path from "node:path";
@@ -801,7 +800,7 @@ const DOCS_CONFIG_SCHEMA_OPTIONS_TEMPLATE = [
801
800
  path: "agent.evaluations.tasks[].filters",
802
801
  name: "filters",
803
802
  type: "DocsAgentGoldenTaskFilters",
804
- description: "Framework, version, and locale retrieval scope.",
803
+ description: "Framework, version, package, tags, and locale retrieval scope.",
805
804
  children: [
806
805
  {
807
806
  path: "agent.evaluations.tasks[].filters.framework",
@@ -815,6 +814,18 @@ const DOCS_CONFIG_SCHEMA_OPTIONS_TEMPLATE = [
815
814
  type: "string",
816
815
  description: "Exact version requested by the task."
817
816
  },
817
+ {
818
+ path: "agent.evaluations.tasks[].filters.package",
819
+ name: "package",
820
+ type: "string | readonly string[]",
821
+ description: "Package name or names requested by the task."
822
+ },
823
+ {
824
+ path: "agent.evaluations.tasks[].filters.tags",
825
+ name: "tags",
826
+ type: "string | readonly string[]",
827
+ description: "Page tag or tags requested by the task."
828
+ },
818
829
  {
819
830
  path: "agent.evaluations.tasks[].filters.locale",
820
831
  name: "locale",
@@ -876,7 +887,7 @@ const DOCS_CONFIG_SCHEMA_OPTIONS_TEMPLATE = [
876
887
  path: "agent.evaluations.tasks[].expect.scope",
877
888
  name: "scope",
878
889
  type: "DocsAgentGoldenTaskFilters",
879
- description: "Framework, version, and locale assertions checked against returned sources without pre-filtering retrieval.",
890
+ description: "Framework, version, package, tags, and locale assertions checked against returned sources without pre-filtering retrieval.",
880
891
  children: [
881
892
  {
882
893
  path: "agent.evaluations.tasks[].expect.scope.framework",
@@ -890,6 +901,18 @@ const DOCS_CONFIG_SCHEMA_OPTIONS_TEMPLATE = [
890
901
  type: "string",
891
902
  description: "Version the returned sources must select."
892
903
  },
904
+ {
905
+ path: "agent.evaluations.tasks[].expect.scope.package",
906
+ name: "package",
907
+ type: "string | readonly string[]",
908
+ description: "Package name or names the returned sources must select."
909
+ },
910
+ {
911
+ path: "agent.evaluations.tasks[].expect.scope.tags",
912
+ name: "tags",
913
+ type: "string | readonly string[]",
914
+ description: "Page tag or tags the returned sources must select."
915
+ },
893
916
  {
894
917
  path: "agent.evaluations.tasks[].expect.scope.locale",
895
918
  name: "locale",
@@ -1663,11 +1686,16 @@ export default defineDocs({
1663
1686
  });`
1664
1687
  }
1665
1688
  ]);
1689
+ const searchFilterValueSchema = z.union([z.string().trim().min(1).max(128), z.array(z.string().trim().min(1).max(128)).min(1).max(16)]);
1666
1690
  const searchDocsInputSchema = z.object({
1667
1691
  query: z.string().trim().min(1),
1668
1692
  limit: z.number().int().min(1).max(25).optional(),
1669
1693
  locale: z.string().min(1).optional(),
1670
- audience: z.enum(["human", "agent"]).optional()
1694
+ audience: z.enum(["human", "agent"]).optional(),
1695
+ framework: searchFilterValueSchema.optional(),
1696
+ version: searchFilterValueSchema.optional(),
1697
+ package: searchFilterValueSchema.optional(),
1698
+ tags: searchFilterValueSchema.optional()
1671
1699
  });
1672
1700
  const readPageInputSchema = z.object({
1673
1701
  path: z.string().min(1),
@@ -1763,6 +1791,8 @@ const getContextInputSchema = z.object({
1763
1791
  query: z.string().trim().min(1),
1764
1792
  framework: z.string().trim().min(1).optional(),
1765
1793
  version: z.string().trim().min(1).optional(),
1794
+ package: searchFilterValueSchema.optional(),
1795
+ tags: searchFilterValueSchema.optional(),
1766
1796
  locale: z.string().trim().min(1).optional(),
1767
1797
  tokenBudget: z.number().int().min(MIN_MCP_CONTEXT_TOKEN_BUDGET).max(MAX_MCP_CONTEXT_TOKEN_BUDGET).default(DEFAULT_MCP_CONTEXT_TOKEN_BUDGET)
1768
1798
  });
@@ -1836,7 +1866,39 @@ const searchResultOutputSchema = z.object({
1836
1866
  score: z.number().optional(),
1837
1867
  section: z.string().optional()
1838
1868
  });
1839
- const searchDocsOutputSchema = z.object({ results: z.array(searchResultOutputSchema) });
1869
+ const searchFiltersOutputSchema = z.object({
1870
+ framework: z.array(z.string()).optional(),
1871
+ version: z.array(z.string()).optional(),
1872
+ package: z.array(z.string()).optional(),
1873
+ tags: z.array(z.string()).optional()
1874
+ });
1875
+ const searchWarningOutputSchema = z.object({
1876
+ code: z.enum([
1877
+ "ambiguous_scope",
1878
+ "unknown_filter_value",
1879
+ "missing_scope_metadata",
1880
+ "conflicting_scope_metadata"
1881
+ ]),
1882
+ field: z.enum([
1883
+ "framework",
1884
+ "version",
1885
+ "package",
1886
+ "tags"
1887
+ ]),
1888
+ message: z.string(),
1889
+ values: z.array(z.string()).optional(),
1890
+ pageUrls: z.array(z.string()).optional(),
1891
+ count: z.number().int().nonnegative().optional()
1892
+ });
1893
+ const searchDocsOutputSchema = z.object({
1894
+ format: z.literal("docs-search.v1"),
1895
+ query: z.string(),
1896
+ audience: z.enum(["human", "agent"]),
1897
+ filters: searchFiltersOutputSchema,
1898
+ resultCount: z.number().int().nonnegative(),
1899
+ results: z.array(searchResultOutputSchema),
1900
+ warnings: z.array(searchWarningOutputSchema)
1901
+ });
1840
1902
  const codeExampleOutputSchema = z.object({
1841
1903
  id: z.string(),
1842
1904
  page: z.object({
@@ -1920,6 +1982,7 @@ const contextSourceOutputSchema = z.object({
1920
1982
  locale: z.string().optional(),
1921
1983
  framework: z.string().optional(),
1922
1984
  version: z.string().optional(),
1985
+ package: z.array(z.string()).optional(),
1923
1986
  tags: z.array(z.string()).optional(),
1924
1987
  score: z.number().optional(),
1925
1988
  content: z.string(),
@@ -1932,6 +1995,8 @@ const contextOutputSchema = z.object({
1932
1995
  filters: z.object({
1933
1996
  framework: z.string().optional(),
1934
1997
  version: z.string().optional(),
1998
+ package: z.array(z.string()).optional(),
1999
+ tags: z.array(z.string()).optional(),
1935
2000
  locale: z.string().optional()
1936
2001
  }),
1937
2002
  budget: z.object({
@@ -2737,14 +2802,20 @@ async function createDocsMcpServer(options) {
2737
2802
  });
2738
2803
  if (resolved.tools.searchDocs) server.registerTool("search_docs", {
2739
2804
  title: "Search documentation",
2740
- description: "Search the docs by keyword across titles, descriptions, and page content.",
2805
+ description: "Search the docs by keyword with optional framework, version, package, and tag filters. Returns structured ambiguity and metadata warnings.",
2741
2806
  inputSchema: searchDocsInputSchema,
2742
2807
  outputSchema: searchDocsOutputSchema,
2743
2808
  annotations: { readOnlyHint: true }
2744
- }, async ({ query, limit, locale, audience }) => {
2809
+ }, async ({ query, limit, locale, audience, framework, version, package: packageName, tags }) => {
2745
2810
  const startedAt = nowMs();
2746
2811
  const resolvedLimit = limit ?? 10;
2747
2812
  const resolvedAudience = audience ?? "agent";
2813
+ const filters = {
2814
+ framework,
2815
+ version,
2816
+ package: packageName,
2817
+ tags
2818
+ };
2748
2819
  const trace = createDocsAgentTraceContext("mcp.tool.search_docs");
2749
2820
  const callSpanId = createDocsAgentTraceId("span");
2750
2821
  await emitDocsAgentTraceEvent(options.observability, {
@@ -2760,16 +2831,18 @@ async function createDocsMcpServer(options) {
2760
2831
  queryLength: query.length,
2761
2832
  limit: resolvedLimit,
2762
2833
  locale,
2763
- audience: resolvedAudience
2834
+ audience: resolvedAudience,
2835
+ filterFields: Object.entries(filters).filter(([, value]) => value !== void 0).map(([field]) => field)
2764
2836
  },
2765
2837
  metadata: { tool: "search_docs" }
2766
2838
  });
2767
2839
  try {
2768
- const results = await performDocsSearch({
2840
+ const searchResponse = await performDocsSearchWithMetadata({
2769
2841
  pages: toSearchSourcePages(dedupePages(await getSourcePages(locale))),
2770
2842
  query,
2771
2843
  search: toolSearchConfig ?? true,
2772
2844
  audience: resolvedAudience,
2845
+ filters,
2773
2846
  locale,
2774
2847
  siteTitle: options.source.siteTitle,
2775
2848
  limit: resolvedLimit
@@ -2785,13 +2858,14 @@ async function createDocsMcpServer(options) {
2785
2858
  queryLength: query.length,
2786
2859
  limit: resolvedLimit,
2787
2860
  audience: resolvedAudience,
2788
- resultCount: results.length,
2861
+ resultCount: searchResponse.resultCount,
2862
+ warningCount: searchResponse.warnings.length,
2789
2863
  durationMs: elapsed
2790
2864
  }
2791
2865
  });
2792
2866
  trackMcpTool("search_docs", {
2793
2867
  locale,
2794
- resultCount: results.length
2868
+ resultCount: searchResponse.resultCount
2795
2869
  });
2796
2870
  await emitDocsAgentTraceEvent(options.observability, {
2797
2871
  type: "tool.result",
@@ -2804,10 +2878,13 @@ async function createDocsMcpServer(options) {
2804
2878
  durationMs: elapsed,
2805
2879
  status: "success",
2806
2880
  locale,
2807
- outputPreview: { resultCount: results.length },
2881
+ outputPreview: {
2882
+ resultCount: searchResponse.resultCount,
2883
+ warningCount: searchResponse.warnings.length
2884
+ },
2808
2885
  metadata: { tool: "search_docs" }
2809
2886
  });
2810
- return createStructuredTextResult({ results });
2887
+ return createStructuredTextResult(searchResponse);
2811
2888
  } catch (error) {
2812
2889
  const elapsed = durationMs(startedAt);
2813
2890
  await emitDocsAgentTraceEvent(options.observability, {
@@ -2932,7 +3009,7 @@ async function createDocsMcpServer(options) {
2932
3009
  inputSchema: getContextInputSchema,
2933
3010
  outputSchema: contextOutputSchema,
2934
3011
  annotations: { readOnlyHint: true }
2935
- }, async ({ query, framework, version, locale, tokenBudget }) => {
3012
+ }, async ({ query, framework, version, package: packageName, tags, locale, tokenBudget }) => {
2936
3013
  const startedAt = nowMs();
2937
3014
  const trace = createDocsAgentTraceContext("mcp.tool.get_context");
2938
3015
  const callSpanId = createDocsAgentTraceId("span");
@@ -2949,6 +3026,8 @@ async function createDocsMcpServer(options) {
2949
3026
  queryLength: query.length,
2950
3027
  framework,
2951
3028
  version,
3029
+ package: packageName,
3030
+ tags,
2952
3031
  locale,
2953
3032
  tokenBudget
2954
3033
  },
@@ -2960,6 +3039,8 @@ async function createDocsMcpServer(options) {
2960
3039
  query,
2961
3040
  framework,
2962
3041
  version,
3042
+ package: packageName,
3043
+ tags,
2963
3044
  locale,
2964
3045
  tokenBudget,
2965
3046
  entry: options.source.entry,
@@ -2976,6 +3057,8 @@ async function createDocsMcpServer(options) {
2976
3057
  queryLength: query.length,
2977
3058
  framework,
2978
3059
  version,
3060
+ package: packageName,
3061
+ tags,
2979
3062
  tokenBudget,
2980
3063
  usedUtf8Bytes: result.budget.usedUtf8Bytes,
2981
3064
  conservativeTokenUpperBound: result.budget.conservativeTokenUpperBound,
@@ -4504,16 +4587,26 @@ function resolveDocsMcpScopeField(pageValue, contractValue, filter, overlaps, ma
4504
4587
  };
4505
4588
  }
4506
4589
  function resolveDocsMcpEffectiveScope(page, filters) {
4590
+ const normalizedFilters = normalizeDocsSearchFilters({
4591
+ package: filters.package,
4592
+ tags: filters.tags
4593
+ });
4507
4594
  const framework = resolveDocsMcpScopeField(page.framework, page.agent?.appliesTo?.framework, filters.framework, (left, right) => normalizeAgentFramework(left) === normalizeAgentFramework(right), (filter, candidate) => normalizeAgentFramework(filter) === normalizeAgentFramework(candidate));
4508
4595
  const version = resolveDocsMcpScopeField(page.version, page.agent?.appliesTo?.version, filters.version, agentVersionConstraintsOverlap, agentVersionConstraintMatches);
4509
4596
  const locale = page.locale?.trim() || void 0;
4510
4597
  const localeMatches = !filters.locale || !locale || normalizeAgentLocale(locale) === normalizeAgentLocale(filters.locale);
4598
+ const packageValues = normalizeDocsSearchFilters({ package: page.agent?.appliesTo?.package }).package ?? [];
4599
+ const tagValues = normalizeDocsSearchFilters({ tags: page.tags }).tags ?? [];
4600
+ const packageMatches = !normalizedFilters.package || packageValues.length > 0 && normalizedFilters.package.some((value) => packageValues.includes(value));
4601
+ const tagsMatch = !normalizedFilters.tags || tagValues.length > 0 && normalizedFilters.tags.some((value) => tagValues.includes(value));
4511
4602
  return {
4512
4603
  framework: framework.value,
4513
4604
  version: version.value,
4605
+ package: packageValues,
4606
+ tags: tagValues,
4514
4607
  locale,
4515
4608
  conflict: framework.conflict || version.conflict,
4516
- matches: framework.matches && version.matches && localeMatches
4609
+ matches: framework.matches && version.matches && packageMatches && tagsMatch && localeMatches
4517
4610
  };
4518
4611
  }
4519
4612
  function getDocsMcpResultPageUrl(value) {
@@ -4533,6 +4626,8 @@ async function buildDocsMcpContext(options) {
4533
4626
  const scope = resolveDocsMcpEffectiveScope(page, {
4534
4627
  framework: options.framework,
4535
4628
  version: options.version,
4629
+ package: options.package,
4630
+ tags: options.tags,
4536
4631
  locale: options.locale
4537
4632
  });
4538
4633
  return scope.matches && !scope.conflict ? [{
@@ -4605,6 +4700,8 @@ async function buildDocsMcpContext(options) {
4605
4700
  if (selectedSection?.title) headerLines.push(`Section: ${selectedSection.title}`);
4606
4701
  if (scope.framework) headerLines.push(`Framework: ${scope.framework}`);
4607
4702
  if (scope.version) headerLines.push(`Version: ${scope.version}`);
4703
+ if (scope.package.length > 0) headerLines.push(`Package: ${scope.package.join(", ")}`);
4704
+ if (scope.tags.length > 0) headerLines.push(`Tags: ${scope.tags.join(", ")}`);
4608
4705
  if (scope.locale) headerLines.push(`Locale: ${scope.locale}`);
4609
4706
  const header = headerLines.join("\n");
4610
4707
  const separatorBytes = blocks.length === 0 ? 0 : separatorUtf8Bytes;
@@ -4629,7 +4726,8 @@ async function buildDocsMcpContext(options) {
4629
4726
  locale: scope.locale,
4630
4727
  framework: scope.framework,
4631
4728
  version: scope.version,
4632
- tags: page.tags ? [...page.tags] : void 0,
4729
+ package: scope.package.length > 0 ? [...scope.package] : void 0,
4730
+ tags: scope.tags.length > 0 ? [...scope.tags] : void 0,
4633
4731
  score: result.score,
4634
4732
  content: limited.text,
4635
4733
  chars: limited.text.length,
@@ -4642,11 +4740,17 @@ async function buildDocsMcpContext(options) {
4642
4740
  usedUtf8Bytes = docsMcpUtf8Bytes(context);
4643
4741
  const remainingUtf8Bytes = Math.max(0, maxUtf8Bytes - usedUtf8Bytes);
4644
4742
  const truncated = sources.some((source) => source.truncated) || sources.length < resolvedCandidates.length;
4743
+ const normalizedFilters = normalizeDocsSearchFilters({
4744
+ package: options.package,
4745
+ tags: options.tags
4746
+ });
4645
4747
  return {
4646
4748
  query: options.query,
4647
4749
  filters: {
4648
4750
  framework: options.framework,
4649
4751
  version: options.version,
4752
+ package: normalizedFilters.package,
4753
+ tags: normalizedFilters.tags,
4650
4754
  locale: options.locale
4651
4755
  },
4652
4756
  budget: {
@@ -1,4 +1,4 @@
1
- import { nn as normalizePageAgentFrontmatter, tn as hasStructuredPageAgentContract } from "./agent-FIyl4-Oa.mjs";
1
+ import { nn as normalizePageAgentFrontmatter, tn as hasStructuredPageAgentContract } from "./agent-pS2nNQS3.mjs";
2
2
 
3
3
  //#region src/metadata.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { i as detectPackageManagerFromProject, l as formatPackageManagerDetection, t as detectFramework, u as installCommand } from "./utils-DpiIioYb.mjs";
1
+ import { i as detectPackageManagerFromProject, l as formatPackageManagerDetection, t as detectFramework, u as installCommand } from "./utils-C4RC8Zq_.mjs";
2
2
  import pc from "picocolors";
3
3
  import * as p from "@clack/prompts";
4
4
 
@@ -1,7 +1,7 @@
1
- import { Ft as DEFAULT_SITEMAP_XML_ROUTE, Nt as DEFAULT_SITEMAP_MD_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, f as DEFAULT_DOCS_CONFIG_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, m as DEFAULT_DOCS_DIAGNOSTICS_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, un as DEFAULT_MCP_WELL_KNOWN_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE } from "./agent-FIyl4-Oa.mjs";
1
+ import { Ft as DEFAULT_SITEMAP_XML_ROUTE, Nt as DEFAULT_SITEMAP_MD_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, f as DEFAULT_DOCS_CONFIG_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, m as DEFAULT_DOCS_DIAGNOSTICS_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, un as DEFAULT_MCP_WELL_KNOWN_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE } from "./agent-pS2nNQS3.mjs";
2
2
  import { isDocsAgentSkillName, validateDocsAgentSkillFrontmatter } from "./agent-skills-spec.mjs";
3
3
  import { C as DOCS_AGENT_MANIFEST_SCHEMA_MEDIA_TYPE, S as DOCS_AGENT_MANIFEST_FORMAT, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, n as API_CATALOG_MEDIA_TYPE, r as API_CATALOG_PROFILE_URI, t as AGENT_SKILLS_DISCOVERY_SCHEMA_URI, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, v as DEFAULT_API_CATALOG_ROUTE, w as DOCS_AGENT_MANIFEST_SCHEMA_URI } from "./standards-discovery-CYfiQE13.mjs";
4
- import { n as DEFAULT_ROBOTS_TXT_ROUTE } from "./robots-DOqBwQw8.mjs";
4
+ import { n as DEFAULT_ROBOTS_TXT_ROUTE } from "./robots-C2SindI5.mjs";
5
5
  import matter from "gray-matter";
6
6
 
7
7
  //#region src/define-docs.ts
@@ -1,13 +1,13 @@
1
- import { A as buildDocsAgentDiscoverySpec, Et as findDocsAudienceMdxIssues, M as buildDocsConfigMap, T as DOCS_CONFIG_MAP_TOP_LEVEL_KEYS, Xt as PAGE_AGENT_CONTRACT_FIELDS, en as getPageAgentFrontmatterIssues, fn as getDocsMcpProtectedResourceMetadataRoutes, nn as normalizePageAgentFrontmatter, tn as hasStructuredPageAgentContract } from "./agent-FIyl4-Oa.mjs";
1
+ import { A as buildDocsAgentDiscoverySpec, Et as findDocsAudienceMdxIssues, M as buildDocsConfigMap, T as DOCS_CONFIG_MAP_TOP_LEVEL_KEYS, Xt as PAGE_AGENT_CONTRACT_FIELDS, en as getPageAgentFrontmatterIssues, fn as getDocsMcpProtectedResourceMetadataRoutes, nn as normalizePageAgentFrontmatter, tn as hasStructuredPageAgentContract } from "./agent-pS2nNQS3.mjs";
2
2
  import { F as resolveDocsDiscoveryApiRoute, _ as DEFAULT_API_CATALOG_FORMAT, d as DEFAULT_AGENT_SKILLS_ROUTE_PATTERN, h as DEFAULT_AGENT_SKILL_FORMAT, l as DEFAULT_AGENT_SKILLS_INDEX_FORMAT, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, v as DEFAULT_API_CATALOG_ROUTE } from "./standards-discovery-CYfiQE13.mjs";
3
- import { d as resolveAskAISearchRequestConfig } from "./search-x5O0-9X3.mjs";
4
- import { a as resolveDocsMetadataBaseUrl } from "./metadata-bw8k-9x-.mjs";
5
- import { c as resolveDocsReviewConfig, o as ensureDocsReviewWorkflow, s as readDocsReviewConfigFromSource, t as runDocsGoldenTasks } from "./agent-evals-Cr9TAkmB.mjs";
3
+ import { p as resolveAskAISearchRequestConfig } from "./search-BbArHODP.mjs";
4
+ import { a as resolveDocsMetadataBaseUrl } from "./metadata-D6qlWDu-.mjs";
5
+ import { c as resolveDocsReviewConfig, o as ensureDocsReviewWorkflow, s as readDocsReviewConfigFromSource, t as runDocsGoldenTasks } from "./agent-evals-CjYzCQMZ.mjs";
6
6
  import { createFilesystemDocsMcpSource, getDocsConfigSchema, resolveDocsMcpConfig } from "./mcp.mjs";
7
- import "./code-blocks-DnNVNK2M.mjs";
8
- import { _ as resolveDocsContentDir, g as resolveDocsConfigPath, h as readTopLevelStringProperty, s as loadDocsConfigModuleResultWithProjectEnv } from "./config-Wcdj-D0a.mjs";
9
- import { t as detectFramework } from "./utils-DpiIioYb.mjs";
10
- import { a as extractAgentBlocks, i as createAgentUsefulnessPagesFromMcp, n as analyzeAgentSurfaceDrift, r as analyzeAgentUsefulness, t as resolveGoldenEvaluationInput } from "./golden-evaluations-CPGGnXOV.mjs";
7
+ import "./code-blocks-qe0T8-xe.mjs";
8
+ import { _ as resolveDocsContentDir, g as resolveDocsConfigPath, h as readTopLevelStringProperty, s as loadDocsConfigModuleResultWithProjectEnv } from "./config-z7_R0f86.mjs";
9
+ import { t as detectFramework } from "./utils-C4RC8Zq_.mjs";
10
+ import { a as extractAgentBlocks, i as createAgentUsefulnessPagesFromMcp, n as analyzeAgentSurfaceDrift, r as analyzeAgentUsefulness, t as resolveGoldenEvaluationInput } from "./golden-evaluations-DGg_eHIY.mjs";
11
11
  import matter from "gray-matter";
12
12
  import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
13
13
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Vt as resolveDocsSitemapConfig, a as DEFAULT_AGENT_MD_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, cn as DEFAULT_MCP_PUBLIC_ROUTE, et as normalizeDocsPathSegment, g as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, un as DEFAULT_MCP_WELL_KNOWN_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE, y as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE } from "./agent-FIyl4-Oa.mjs";
1
+ import { S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Vt as resolveDocsSitemapConfig, a as DEFAULT_AGENT_MD_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, cn as DEFAULT_MCP_PUBLIC_ROUTE, et as normalizeDocsPathSegment, g as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, un as DEFAULT_MCP_WELL_KNOWN_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE, y as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE } from "./agent-pS2nNQS3.mjs";
2
2
  import { a as DEFAULT_A2A_AGENT_CARD_ROUTE, b as DEFAULT_LEGACY_SKILLS_INDEX_ROUTE, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, v as DEFAULT_API_CATALOG_ROUTE, x as DEFAULT_LEGACY_SKILLS_ROUTE_PREFIX } from "./standards-discovery-CYfiQE13.mjs";
3
3
 
4
4
  //#region src/robots.ts
@@ -1,8 +1,8 @@
1
- import "./agent-FIyl4-Oa.mjs";
1
+ import "./agent-pS2nNQS3.mjs";
2
2
  import "./standards-discovery-CYfiQE13.mjs";
3
- import { c as renderDocsRobotsGeneratedBlock, f as upsertDocsRobotsGeneratedBlock, i as DOCS_ROBOTS_GENERATED_BLOCK_START, r as DOCS_ROBOTS_GENERATED_BLOCK_END, u as resolveDocsRobotsConfig } from "./robots-DOqBwQw8.mjs";
4
- import { a as loadDocsConfigModule, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, m as readTopLevelBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
5
- import { t as detectFramework } from "./utils-DpiIioYb.mjs";
3
+ import { c as renderDocsRobotsGeneratedBlock, f as upsertDocsRobotsGeneratedBlock, i as DOCS_ROBOTS_GENERATED_BLOCK_START, r as DOCS_ROBOTS_GENERATED_BLOCK_END, u as resolveDocsRobotsConfig } from "./robots-C2SindI5.mjs";
4
+ import { a as loadDocsConfigModule, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, m as readTopLevelBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-z7_R0f86.mjs";
5
+ import { t as detectFramework } from "./utils-C4RC8Zq_.mjs";
6
6
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
7
7
  import path from "node:path";
8
8
  import pc from "picocolors";
@@ -1,5 +1,5 @@
1
- import { $n as ResolvedDocsRelatedLink, Fn as OpenDocsProvider, Jt as DocsObservabilityEventInput, Kt as DocsObservabilityConfig, Mn as McpDocsSearchConfig, Rn as OpenDocsTarget, at as DocsAnalyticsEventInput, cn as DocsSearchConfig, et as DocsAgentTraceEventInput, f as CustomDocsSearchConfig, fn as DocsSearchResult, hn as DocsSitemapConfig, ht as DocsAskAIMcpConfig, in as DocsSearchAdapter, it as DocsAnalyticsEvent, ln as DocsSearchDocument, lr as TypesenseDocsSearchConfig, mn as DocsSearchSourcePage, on as DocsSearchAdapterFactory, qt as DocsObservabilityEvent, r as AlgoliaDocsSearchConfig, rt as DocsAnalyticsConfig, sn as DocsSearchChunkingConfig } from "./types-BQC05SQm.mjs";
2
- import { F as DocsDiscoveryApiRouteOptions } from "./standards-discovery-C0CIC4QI.mjs";
1
+ import { Gn as OpenDocsTarget, Hn as OpenDocsProvider, Jt as DocsObservabilityEventInput, Kt as DocsObservabilityConfig, Sn as DocsSitemapConfig, _n as DocsSearchResult, at as DocsAnalyticsEventInput, cn as DocsSearchConfig, et as DocsAgentTraceEventInput, f as CustomDocsSearchConfig, fn as DocsSearchFilterInput, gn as DocsSearchResponse, gr as TypesenseDocsSearchConfig, hn as DocsSearchRequest, ht as DocsAskAIMcpConfig, in as DocsSearchAdapter, it as DocsAnalyticsEvent, ln as DocsSearchDocument, on as DocsSearchAdapterFactory, or as ResolvedDocsRelatedLink, pn as DocsSearchFilters, qt as DocsObservabilityEvent, r as AlgoliaDocsSearchConfig, rt as DocsAnalyticsConfig, sn as DocsSearchChunkingConfig, yn as DocsSearchSourcePage, zn as McpDocsSearchConfig } from "./types-B9DNNAdT.mjs";
2
+ import { F as DocsDiscoveryApiRouteOptions } from "./standards-discovery-DRJ10g7B.mjs";
3
3
 
4
4
  //#region src/analytics.d.ts
5
5
  declare const DOCS_AGENT_TRACE_EVENT_TYPES: readonly ["run.start", "run.end", "run.error", "user.input", "prompt.build", "retrieval.query", "retrieval.result", "retrieval.error", "model.call", "model.response", "model.stream", "model.error", "tool.call", "tool.result", "tool.error", "retry", "timeout", "error", "agent.final"];
@@ -214,6 +214,12 @@ interface DocsAskAIPackageHints {
214
214
  imports: string[];
215
215
  installCommands: string[];
216
216
  }
217
+ /** Normalize scalar or array-valued scope filters for programmatic, HTTP, and MCP callers. */
218
+ declare function normalizeDocsSearchFilters(input?: DocsSearchFilterInput | DocsSearchFilters): DocsSearchFilters;
219
+ /** Parse the public search scope parameters from a URL query string. */
220
+ declare function resolveDocsSearchFilters(searchParams: URLSearchParams): DocsSearchFilters;
221
+ /** Resolve search filters and the backwards-compatible structured response opt-in. */
222
+ declare function resolveDocsSearchRequest(searchParams: URLSearchParams): DocsSearchRequest;
217
223
  declare function inferDocsAskAIPackageHints(content: string): DocsAskAIPackageHints;
218
224
  declare function formatDocsAskAIPackageHints(hints: DocsAskAIPackageHints, packageName?: string): string | undefined;
219
225
  declare function buildDocsSearchDocuments(pages: DocsSearchSourcePage[], chunking?: DocsSearchChunkingConfig, audience?: DocsContentAudience): DocsSearchDocument[];
@@ -235,16 +241,20 @@ declare function resolveAskAISearchRequestConfig(options: {
235
241
  }): boolean | DocsSearchConfig | undefined;
236
242
  declare function createMcpSearchAdapter(config: McpDocsSearchConfig): DocsSearchAdapter;
237
243
  declare function createAlgoliaSearchAdapter(config: AlgoliaDocsSearchConfig): DocsSearchAdapter;
238
- declare function performDocsSearch(options: {
244
+ interface PerformDocsSearchOptions {
239
245
  pages: DocsSearchSourcePage[];
240
246
  query: string;
241
- search?: boolean | DocsSearchConfig; /** Selects which audience projection is searchable. Public site search defaults to human. */
247
+ search?: boolean | DocsSearchConfig;
248
+ /** Selects which audience projection is searchable. Public site search defaults to human. */
242
249
  audience?: DocsContentAudience;
243
250
  locale?: string;
244
251
  pathname?: string;
245
- siteTitle?: string; /** Canonical docs URL used to distinguish same-site absolute hits from foreign MCP results. */
252
+ siteTitle?: string;
253
+ /** Canonical docs URL used to distinguish same-site absolute hits from foreign MCP results. */
246
254
  baseUrl?: string;
247
255
  limit?: number;
256
+ /** Optional framework, version, package, and tag constraints. */
257
+ filters?: DocsSearchFilterInput;
248
258
  /**
249
259
  * Controls provider failures. Runtime search keeps the resilient `fallback` default;
250
260
  * diagnostics can request `throw` so a broken configured provider cannot be scored as
@@ -255,10 +265,14 @@ declare function performDocsSearch(options: {
255
265
  * Whether non-simple provider hits are supplemented with exact/local simple results.
256
266
  * Runtime search defaults to true; provider diagnostics can disable supplementation.
257
267
  */
258
- supplementExternalResults?: boolean; /** Fail closed on absolute provider hits when no canonical docs origin is available. */
259
- strictExternalOrigins?: boolean; /** Optional cancellation signal forwarded to adapters and their managed requests. */
268
+ supplementExternalResults?: boolean;
269
+ /** Fail closed on absolute provider hits when no canonical docs origin is available. */
270
+ strictExternalOrigins?: boolean;
271
+ /** Optional cancellation signal forwarded to adapters and their managed requests. */
260
272
  signal?: AbortSignal;
261
- }): Promise<DocsSearchResult[]>;
273
+ }
274
+ declare function performDocsSearch(options: PerformDocsSearchOptions): Promise<DocsSearchResult[]>;
275
+ declare function performDocsSearchWithMetadata(options: PerformDocsSearchOptions): Promise<DocsSearchResponse>;
262
276
  declare function buildDocsAskAIContext(options: {
263
277
  pages: DocsSearchSourcePage[];
264
278
  query: string;
@@ -268,6 +282,7 @@ declare function buildDocsAskAIContext(options: {
268
282
  siteTitle?: string;
269
283
  baseUrl?: string;
270
284
  limit?: number;
285
+ filters?: DocsSearchFilterInput;
271
286
  maxContextChars?: number;
272
287
  maxResultChars?: number; /** See `performDocsSearch.failureMode`. Defaults to resilient runtime fallback. */
273
288
  searchFailureMode?: "fallback" | "throw"; /** See `performDocsSearch.strictExternalOrigins`. */
@@ -276,4 +291,4 @@ declare function buildDocsAskAIContext(options: {
276
291
  }): Promise<DocsAskAIContext>;
277
292
  declare function createCustomSearchAdapter(adapter: DocsSearchAdapter | DocsSearchAdapterFactory): CustomDocsSearchConfig;
278
293
  //#endregion
279
- export { resolveDocsAudienceExposure as $, resolveDocsSitemapPageLastmod as A, SerializedOpenDocsProvider as B, DocsSitemapResolvedConfig as C, renderDocsSitemapMarkdown as D, readDocsSitemapManifestFromContentMap as E, DEFAULT_OPEN_DOCS_TARGET as F, serializeDocsIcon as G, parsePromptStringArray as H, DEFAULT_PROMPT_PROVIDER_TEMPLATES as I, serializeOpenDocsProviders as J, serializeDocsIconRegistry as K, PromptAction as L, toDocsSitemapMarkdownUrl as M, DEFAULT_OPEN_DOCS_PROMPT as N, renderDocsSitemapXml as O, DEFAULT_OPEN_DOCS_PROVIDER_IDS as P, resolveDocsAgentMdxContent as Q, PromptProviderChoice as R, DocsSitemapPageInput as S, createDocsSitemapResponse as T, resolvePromptProviderChoices as U, normalizePromptProviderName as V, sanitizePromptText as W, DocsContentAudience as X, DocsAudienceMdxIssue as Y, findDocsAudienceMdxIssues as Z, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE as _, createMcpSearchAdapter as a, createDocsAgentTraceContext as at, DocsSitemapManifest as b, formatDocsAskAIPackageHints as c, emitDocsAnalyticsEvent as ct, resolveAskAISearchRequestConfig as d, resolveDocsAnalyticsConfig as dt, resolveDocsAudienceMdxContent as et, resolveDocsSearchAudience as f, resolveDocsObservabilityConfig as ft, DEFAULT_SITEMAP_MD_ROUTE as g, DEFAULT_SITEMAP_MD_DOCS_ROUTE as h, createCustomSearchAdapter as i, ResolvedDocsObservabilityConfig as it, resolveDocsSitemapRequest as j, resolveDocsSitemapConfig as k, inferDocsAskAIPackageHints as l, emitDocsObservabilityEvent as lt, DEFAULT_SITEMAP_MANIFEST_PATH as m, buildDocsSearchDocuments as n, DocsAgentTraceContext as nt, createSimpleSearchAdapter as o, createDocsAgentTraceId as ot, resolveSearchRequestConfig as p, serializeOpenDocsProvider as q, createAlgoliaSearchAdapter as r, ResolvedDocsAnalyticsConfig as rt, createTypesenseSearchAdapter as s, emitDocsAgentTraceEvent as st, buildDocsAskAIContext as t, DOCS_AGENT_TRACE_EVENT_TYPES as tt, performDocsSearch as u, getDocsRequestAnalyticsProperties as ut, DEFAULT_SITEMAP_XML_ROUTE as v, buildDocsSitemapManifest as w, DocsSitemapManifestPage as x, DocsSitemapFormat as y, SerializeOpenDocsProviderOptions as z };
294
+ export { serializeOpenDocsProviders as $, createDocsSitemapResponse as A, DEFAULT_OPEN_DOCS_TARGET as B, DEFAULT_SITEMAP_XML_ROUTE as C, DocsSitemapPageInput as D, DocsSitemapManifestPage as E, resolveDocsSitemapPageLastmod as F, SerializedOpenDocsProvider as G, PromptAction as H, resolveDocsSitemapRequest as I, resolvePromptProviderChoices as J, normalizePromptProviderName as K, toDocsSitemapMarkdownUrl as L, renderDocsSitemapMarkdown as M, renderDocsSitemapXml as N, DocsSitemapResolvedConfig as O, resolveDocsSitemapConfig as P, serializeOpenDocsProvider as Q, DEFAULT_OPEN_DOCS_PROMPT as R, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE as S, DocsSitemapManifest as T, PromptProviderChoice as U, DEFAULT_PROMPT_PROVIDER_TEMPLATES as V, SerializeOpenDocsProviderOptions as W, serializeDocsIcon as X, sanitizePromptText as Y, serializeDocsIconRegistry as Z, resolveDocsSearchRequest as _, resolveDocsObservabilityConfig as _t, createCustomSearchAdapter as a, resolveDocsAudienceMdxContent as at, DEFAULT_SITEMAP_MD_DOCS_ROUTE as b, createTypesenseSearchAdapter as c, ResolvedDocsAnalyticsConfig as ct, normalizeDocsSearchFilters as d, createDocsAgentTraceId as dt, DocsAudienceMdxIssue as et, performDocsSearch as f, emitDocsAgentTraceEvent as ft, resolveDocsSearchFilters as g, resolveDocsAnalyticsConfig as gt, resolveDocsSearchAudience as h, getDocsRequestAnalyticsProperties as ht, createAlgoliaSearchAdapter as i, resolveDocsAudienceExposure as it, readDocsSitemapManifestFromContentMap as j, buildDocsSitemapManifest as k, formatDocsAskAIPackageHints as l, ResolvedDocsObservabilityConfig as lt, resolveAskAISearchRequestConfig as m, emitDocsObservabilityEvent as mt, buildDocsAskAIContext as n, findDocsAudienceMdxIssues as nt, createMcpSearchAdapter as o, DOCS_AGENT_TRACE_EVENT_TYPES as ot, performDocsSearchWithMetadata as p, emitDocsAnalyticsEvent as pt, parsePromptStringArray as q, buildDocsSearchDocuments as r, resolveDocsAgentMdxContent as rt, createSimpleSearchAdapter as s, DocsAgentTraceContext as st, PerformDocsSearchOptions as t, DocsContentAudience as tt, inferDocsAskAIPackageHints as u, createDocsAgentTraceContext as ut, resolveSearchRequestConfig as v, DocsSitemapFormat as w, DEFAULT_SITEMAP_MD_ROUTE as x, DEFAULT_SITEMAP_MANIFEST_PATH as y, DEFAULT_OPEN_DOCS_PROVIDER_IDS as z };