@farming-labs/docs 0.2.73 → 0.2.74

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 (33) hide show
  1. package/dist/{agent-o9OTadrf.mjs → agent-BJ0KXN-A.mjs} +7 -0
  2. package/dist/{agent-ClRpctMG.mjs → agent-D0LEY2Vy.mjs} +2 -2
  3. package/dist/{agent-evals-BFHGypqh.mjs → agent-evals-LIScgQVm.mjs} +56 -30
  4. package/dist/{agent-export-B9bah0AV.mjs → agent-export-B92pNe6g.mjs} +5 -5
  5. package/dist/agent-skills-bundle.d.mts +1 -1
  6. package/dist/{agent-skills-server-DCbAx5WU.d.mts → agent-skills-server-BqvIGQb1.d.mts} +2 -2
  7. package/dist/agent-skills-vite.d.mts +3 -3
  8. package/dist/{agents-CR-Uasbc.mjs → agents-C228QGbp.mjs} +4 -4
  9. package/dist/cli/index.mjs +19 -15
  10. package/dist/client/react.d.mts +1 -1
  11. package/dist/{cloud-ask-ai-yR9vZmSG.d.mts → cloud-ask-ai-6X9pVjIY.d.mts} +1 -1
  12. package/dist/docs-cloud-server.d.mts +2 -2
  13. package/dist/{doctor-BeyN3Ljh.mjs → doctor-CgrUZ3tY.mjs} +8 -8
  14. package/dist/{golden-evaluations-CloP0pAe.mjs → golden-evaluations-DTEPZeb0.mjs} +2 -2
  15. package/dist/index.d.mts +4 -4
  16. package/dist/index.mjs +5 -5
  17. package/dist/{mcp-BLLXvEXB.mjs → mcp-YD37HlPY.mjs} +7 -5
  18. package/dist/mcp.d.mts +13 -2
  19. package/dist/mcp.mjs +114 -54
  20. package/dist/{prompt-references-Cz35rlOa.mjs → prompt-references-BIS1eXt4.mjs} +2 -2
  21. package/dist/{search-D1n8Sf25.d.mts → retrieval-digest-9Kp3uSaZ.d.mts} +48 -5
  22. package/dist/{review-DaJLdPLh.mjs → review-Dbzkdl6K.mjs} +4 -4
  23. package/dist/{robots-DI-9MZz1.mjs → robots-DUO0r4UI.mjs} +2 -2
  24. package/dist/{robots-BcuxnZqZ.mjs → robots-RbgmSvPH.mjs} +1 -1
  25. package/dist/{search-RfPcG1if.mjs → search-DIyIl-tE.mjs} +1240 -136
  26. package/dist/{search-DeOJiMAy.mjs → search-hcqaEZVN.mjs} +62 -24
  27. package/dist/server.d.mts +5 -5
  28. package/dist/server.mjs +5 -5
  29. package/dist/{sitemap-BGGbX_KE.mjs → sitemap-jhkS_jYx.mjs} +4 -4
  30. package/dist/{sitemap-server-VefDnzEB.mjs → sitemap-server-BfyBM7_V.mjs} +1 -1
  31. package/dist/{standards-discovery-83lp1lew.d.mts → standards-discovery-CdrOE-05.d.mts} +1 -1
  32. package/dist/{types-_HCPD4wc.d.mts → types-clg5J1R4.d.mts} +60 -1
  33. package/package.json +1 -1
@@ -2786,6 +2786,13 @@ function validateDocsDiagnosticsSearchConfig(search, errors) {
2786
2786
  requireString("apiKey");
2787
2787
  }
2788
2788
  if (provider === "mcp") requireString("endpoint");
2789
+ const syncNamespace = stringConfigValue(search.syncNamespace);
2790
+ if (syncNamespace && syncNamespace.length > 1024) errors.push({
2791
+ severity: "error",
2792
+ code: "invalid-search-sync-namespace",
2793
+ path: "/search/syncNamespace",
2794
+ message: "search.syncNamespace must be 1024 characters or fewer."
2795
+ });
2789
2796
  if (provider === "custom" && !("adapter" in search)) errors.push({
2790
2797
  severity: "error",
2791
2798
  code: "missing-search-adapter",
@@ -1,6 +1,6 @@
1
- import { B as findDocsMarkdownPage, at as renderDocsMarkdownDocument } from "./agent-o9OTadrf.mjs";
1
+ import { B as findDocsMarkdownPage, at as renderDocsMarkdownDocument } from "./agent-BJ0KXN-A.mjs";
2
2
  import { v as normalizePageAgentFrontmatter, x as stripGeneratedPageAgentContractMarkdown } from "./markdown-sections-7OoA7ylx.mjs";
3
- import { E as hashGeneratedAgentContent, O as parseGeneratedAgentDocument, T as GENERATED_AGENT_PROVENANCE_VERSION, k as serializeGeneratedAgentDocument } from "./search-RfPcG1if.mjs";
3
+ import { F as serializeGeneratedAgentDocument, M as hashGeneratedAgentContent, P as parseGeneratedAgentDocument, j as GENERATED_AGENT_PROVENANCE_VERSION } from "./search-DIyIl-tE.mjs";
4
4
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
5
5
  import { _ as resolveDocsContentDir, a as loadDocsConfigModule, c as loadProjectEnv, d as readNavTitle, f as readNumberProperty, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral, u as readEnvReferenceProperty } from "./config-Wcdj-D0a.mjs";
6
6
  import { createRequire } from "node:module";
@@ -1,5 +1,5 @@
1
1
  import { S as upsertPageAgentContractMarkdown, l as stripDocsGeneratedAgentContractMarkers, o as findDocsMarkdownSection } from "./markdown-sections-7OoA7ylx.mjs";
2
- import { C as normalizeAgentVersion, S as normalizeAgentScopeValues, _ as resolveSearchRequestConfig, b as normalizeAgentFramework, d as performDocsSearch, t as buildDocsAskAIContext, u as normalizeDocsSearchFilters, v as agentVersionConstraintMatches, x as normalizeAgentLocale, y as agentVersionConstraintsOverlap } from "./search-RfPcG1if.mjs";
2
+ import { C as agentVersionConstraintsOverlap, D as normalizeAgentVersion, E as normalizeAgentScopeValues, S as agentVersionConstraintMatches, T as normalizeAgentLocale, b as resolveSearchRequestConfig, f as normalizeDocsSearchFilters, p as performDocsSearch, t as buildDocsAskAIContext, w as normalizeAgentFramework, x as agentVersionConstraintGroupsOverlap } from "./search-DIyIl-tE.mjs";
3
3
  import { buildDocsMcpContext } from "./mcp.mjs";
4
4
  import { i as validateCodeBlockPlans, n as planCodeBlockTargets, r as resolveDocsCodeBlocksValidateConfig, t as extractCodeBlocksFromMarkdown } from "./code-blocks-DnNVNK2M.mjs";
5
5
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
@@ -813,6 +813,7 @@ function safeDecode(value) {
813
813
  function canonicalizeSource(value, baseUrl) {
814
814
  const rawValue = value.trim();
815
815
  let pathname;
816
+ let search;
816
817
  let hash;
817
818
  let origin = "";
818
819
  try {
@@ -824,6 +825,7 @@ function canonicalizeSource(value, baseUrl) {
824
825
  const base = configuredBase ?? new URL("https://docs.local");
825
826
  const parsed = new URL(rawValue, base);
826
827
  pathname = parsed.pathname;
828
+ search = parsed.search;
827
829
  hash = parsed.hash;
828
830
  const explicitlySchemed = /^[a-z][a-z\d+.-]*:/iu.test(rawValue);
829
831
  if ((explicitlySchemed && (parsed.protocol === "http:" || parsed.protocol === "https:") || /^[\\/]{2}/u.test(rawValue)) && (!configuredBase || parsed.origin !== configuredBase.origin)) origin = parsed.origin;
@@ -832,7 +834,9 @@ function canonicalizeSource(value, baseUrl) {
832
834
  const hashIndex = rawValue.indexOf("#");
833
835
  const pathAndQuery = hashIndex >= 0 ? rawValue.slice(0, hashIndex) : rawValue || "/";
834
836
  const fragment = hashIndex >= 0 ? rawValue.slice(hashIndex + 1) : "";
835
- pathname = pathAndQuery.split("?", 1)[0] || "/";
837
+ const queryIndex = pathAndQuery.indexOf("?");
838
+ pathname = (queryIndex >= 0 ? pathAndQuery.slice(0, queryIndex) : pathAndQuery) || "/";
839
+ search = queryIndex >= 0 ? pathAndQuery.slice(queryIndex) : "";
836
840
  hash = fragment ? `#${fragment}` : "";
837
841
  }
838
842
  pathname = pathname.replace(/\/{2,}/gu, "/").replace(/\.md$/iu, "");
@@ -840,14 +844,19 @@ function canonicalizeSource(value, baseUrl) {
840
844
  if (!pathname.startsWith("/")) pathname = `/${pathname}`;
841
845
  const decodedHash = hash ? safeDecode(hash.slice(1)).trim() : "";
842
846
  const normalizedHash = decodedHash ? `#${encodeURIComponent(decodedHash)}` : "";
843
- return `${origin}${pathname || "/"}${normalizedHash === "#" ? "" : normalizedHash}`;
847
+ return `${origin}${pathname || "/"}${search}${normalizedHash === "#" ? "" : normalizedHash}`;
844
848
  }
845
849
  function sourcePage(value) {
846
850
  return canonicalizeSource(value).split("#", 1)[0] ?? "/";
847
851
  }
848
852
  function sourceMatches(actual, expected, baseUrl) {
849
- const canonicalActual = canonicalizeSource(actual, baseUrl);
853
+ let canonicalActual = canonicalizeSource(actual, baseUrl);
850
854
  const canonicalExpected = canonicalizeSource(expected, baseUrl);
855
+ if (!(canonicalExpected.split("#", 1)[0] ?? canonicalExpected).includes("?")) {
856
+ const hashIndex = canonicalActual.indexOf("#");
857
+ const hash = hashIndex >= 0 ? canonicalActual.slice(hashIndex) : "";
858
+ canonicalActual = `${(hashIndex >= 0 ? canonicalActual.slice(0, hashIndex) : canonicalActual).split("?", 1)[0]}${hash}`;
859
+ }
851
860
  return canonicalExpected.includes("#") ? canonicalActual === canonicalExpected : sourcePage(canonicalActual) === sourcePage(canonicalExpected);
852
861
  }
853
862
  function uniqueCanonicalSources(values, baseUrl) {
@@ -867,11 +876,14 @@ function getPageScope(page) {
867
876
  return {
868
877
  framework: Array.from(new Set([...topFramework, ...contractFramework])),
869
878
  version: Array.from(new Set([...topVersion, ...contractVersion])),
879
+ versionGroups: [topVersion, contractVersion].filter((group) => group.length > 0),
870
880
  package: packageValues,
871
881
  tags,
872
882
  locale,
873
883
  frameworkAmbiguous: topFramework.length > 0 && contractFramework.length > 0 && !valuesOverlap(topFramework, contractFramework, (left, right) => left === right),
874
- versionAmbiguous: topVersion.length > 0 && contractVersion.length > 0 && !valuesOverlap(topVersion, contractVersion, agentVersionConstraintsOverlap)
884
+ versionAmbiguous: topVersion.length > 0 && contractVersion.length > 0 && !valuesOverlap(topVersion, contractVersion, agentVersionConstraintsOverlap),
885
+ packageAmbiguous: false,
886
+ tagsAmbiguous: false
875
887
  };
876
888
  }
877
889
  function compareCodePoints(left, right) {
@@ -894,7 +906,7 @@ function toGoldenSources(sources, relevantSources, baseUrl) {
894
906
  }
895
907
  function toContextCandidates(sources, pagesByUrl) {
896
908
  return sources.flatMap((source) => {
897
- const page = pagesByUrl.get(sourcePage(source.pageUrl));
909
+ const page = findPageForSource(pagesByUrl, source.pageUrl);
898
910
  if (!page) return [];
899
911
  return [{
900
912
  page,
@@ -950,7 +962,8 @@ function getPageAgentMarkdown(page) {
950
962
  return cleanPageAgentContractMarkers(getPageAgentSectionMarkdown(page));
951
963
  }
952
964
  function findPageForSource(pagesByUrl, value) {
953
- return pagesByUrl.get(sourcePage(value));
965
+ const canonicalPage = sourcePage(value);
966
+ return pagesByUrl.get(canonicalPage) ?? pagesByUrl.get(canonicalPage.split("?", 1)[0] ?? "/");
954
967
  }
955
968
  function getResultAnchor(value) {
956
969
  const canonical = canonicalizeSource(value);
@@ -959,15 +972,17 @@ function getResultAnchor(value) {
959
972
  }
960
973
  /** @internal */
961
974
  function hydrateDocsEvaluationSearchSource(result, index, pagesByUrl, contentMode, baseUrl) {
962
- const normalizedResultUrl = canonicalizeSource(result.url, baseUrl);
963
- const page = findPageForSource(pagesByUrl, normalizedResultUrl);
964
- const anchor = getResultAnchor(result.url);
975
+ const normalizedTransportUrl = canonicalizeSource(result.url, baseUrl);
976
+ const normalizedResultUrl = canonicalizeSource(result.source?.canonicalUrl ?? result.url, baseUrl);
977
+ const page = findPageForSource(pagesByUrl, normalizedResultUrl) ?? findPageForSource(pagesByUrl, normalizedTransportUrl);
978
+ const anchor = getResultAnchor(result.source?.canonicalUrl ?? result.url);
965
979
  const section = anchor ?? result.section;
966
980
  const sectionMarkdown = page ? getPageAgentSectionMarkdown(page) : void 0;
967
981
  const pageSection = sectionMarkdown && section ? findDocsMarkdownSection(sectionMarkdown, section) : void 0;
968
982
  if (contentMode === "page-section" && page && section && !pageSection) return void 0;
969
983
  const content = contentMode === "page-section" && page ? cleanPageAgentContractMarkers(pageSection?.content ?? getPageAgentMarkdown(page), pageSection ? sectionMarkdown : void 0, pageSection?.startLine).trim() : [result.content, result.description].filter(Boolean).join("\n\n").trim();
970
984
  const scope = page ? getPageScope(page) : void 0;
985
+ const provenanceScope = result.source?.scope;
971
986
  const url = normalizedResultUrl;
972
987
  return {
973
988
  id: result.id || `evaluation-result-${index + 1}`,
@@ -977,12 +992,13 @@ function hydrateDocsEvaluationSearchSource(result, index, pagesByUrl, contentMod
977
992
  section: pageSection?.title ?? result.section,
978
993
  anchor: pageSection?.anchor ?? anchor,
979
994
  sourcePath: page?.sourcePath,
980
- lastModified: page?.lastModified,
981
- locale: scope?.locale[0],
982
- framework: scope?.framework[0],
983
- version: scope?.version[0],
984
- package: scope?.package.length ? [...scope.package] : void 0,
985
- tags: scope?.tags.length ? [...scope.tags] : void 0,
995
+ lastModified: result.source?.lastModified ?? page?.lastModified,
996
+ locale: scope?.locale[0] ?? provenanceScope?.locale?.[0],
997
+ framework: scope?.framework[0] ?? provenanceScope?.framework?.[0],
998
+ version: scope?.version[0] ?? provenanceScope?.version?.[0],
999
+ package: scope?.package.length ? [...scope.package] : provenanceScope?.package?.length ? [...provenanceScope.package] : void 0,
1000
+ tags: scope?.tags.length ? [...scope.tags] : provenanceScope?.tags?.length ? [...provenanceScope.tags] : void 0,
1001
+ source: result.source,
986
1002
  score: result.score,
987
1003
  content,
988
1004
  chars: content.length,
@@ -1172,9 +1188,12 @@ function parseAskAIContextSources(options) {
1172
1188
  integrity = false;
1173
1189
  continue;
1174
1190
  }
1175
- const urlLines = block.slice(0, contentStart).split(/\r?\n/u).map((line) => line.match(/^URL:\s+(.+)$/u)?.[1]?.trim()).filter((value) => Boolean(value));
1191
+ const headerLines = block.slice(0, contentStart).split(/\r?\n/u);
1192
+ const urlLines = headerLines.map((line) => line.match(/^URL:\s+(.+)$/u)?.[1]?.trim()).filter((value) => Boolean(value));
1193
+ const canonicalUrlLines = headerLines.map((line) => line.match(/^Canonical URL:\s+(.+)$/u)?.[1]?.trim()).filter((value) => Boolean(value));
1176
1194
  if (urlLines.length !== 1) integrity = false;
1177
- const url = canonicalizeSource(urlLines[0] ?? "/", options.baseUrl);
1195
+ if (canonicalUrlLines.length > 1) integrity = false;
1196
+ const url = canonicalizeSource(canonicalUrlLines[0] ?? urlLines[0] ?? "/", options.baseUrl);
1178
1197
  const expected = options.results[index];
1179
1198
  if (!expected || !sourceMatches(url, expected.url) || canonicalizeSource(expected.url) !== url) integrity = false;
1180
1199
  const content = block.slice(contentStart + 2);
@@ -1218,7 +1237,8 @@ async function buildGoldenSurface(options) {
1218
1237
  package: options.task.filters?.package,
1219
1238
  tags: options.task.filters?.tags,
1220
1239
  locale: options.task.filters?.locale,
1221
- maxResults: options.topK
1240
+ maxResults: options.topK,
1241
+ baseUrl: options.runOptions.baseUrl
1222
1242
  };
1223
1243
  const [rankedContext, budgetedContext] = await Promise.all([buildDocsMcpContext({
1224
1244
  ...contextOptions,
@@ -1290,7 +1310,7 @@ async function buildGoldenSurface(options) {
1290
1310
  citationEvidence: {
1291
1311
  mode: "results",
1292
1312
  actual: rankedSources.map((source) => canonicalizeSource(source.url)),
1293
- integrity: rankedSources.every((source, index) => source.url === canonicalizeSource(results[index]?.url ?? "", options.runOptions.baseUrl))
1313
+ integrity: rankedSources.every((source, index) => source.url === canonicalizeSource(results[index]?.source?.canonicalUrl ?? results[index]?.url ?? "", options.runOptions.baseUrl))
1294
1314
  }
1295
1315
  };
1296
1316
  }
@@ -1964,14 +1984,20 @@ function buildSelectionMetrics(task, sources, pagesByUrl) {
1964
1984
  const locale = expectedLocale ? normalizeAgentLocale(expectedLocale) : void 0;
1965
1985
  const candidates = sources.map((source) => {
1966
1986
  const page = findPageForSource(pagesByUrl, source.pageUrl || source.url);
1987
+ const provenance = source.source?.scope;
1988
+ const conflicts = new Set(provenance?.conflicts ?? []);
1989
+ const truncated = new Set(provenance?.truncated ?? []);
1967
1990
  const scope = page ? getPageScope(page) : {
1968
- framework: normalizeAgentScopeValues(source.framework).map(normalizeAgentFramework),
1969
- version: normalizeAgentScopeValues(source.version).map(normalizeAgentVersion),
1970
- package: normalizeDocsSearchFilters({ package: source.package }).package ?? [],
1971
- tags: normalizeDocsSearchFilters({ tags: source.tags }).tags ?? [],
1972
- locale: normalizeAgentScopeValues(source.locale).map(normalizeAgentLocale),
1973
- frameworkAmbiguous: false,
1974
- versionAmbiguous: false
1991
+ framework: Array.from(new Set([...normalizeAgentScopeValues(source.framework), ...provenance?.framework ?? []].map(normalizeAgentFramework))),
1992
+ version: Array.from(new Set([...normalizeAgentScopeValues(source.version), ...provenance?.version ?? []].map(normalizeAgentVersion))),
1993
+ versionGroups: provenance?.versionGroups?.map((group) => group.map(normalizeAgentVersion)),
1994
+ package: normalizeDocsSearchFilters({ package: provenance?.package?.length ? provenance.package : source.package }).package ?? [],
1995
+ tags: normalizeDocsSearchFilters({ tags: provenance?.tags?.length ? provenance.tags : source.tags }).tags ?? [],
1996
+ locale: Array.from(new Set([...normalizeAgentScopeValues(source.locale), ...provenance?.locale ?? []].map(normalizeAgentLocale))),
1997
+ frameworkAmbiguous: conflicts.has("framework") || truncated.has("framework"),
1998
+ versionAmbiguous: conflicts.has("version") || truncated.has("version"),
1999
+ packageAmbiguous: conflicts.has("package") || truncated.has("package"),
2000
+ tagsAmbiguous: conflicts.has("tags") || truncated.has("tags")
1975
2001
  };
1976
2002
  return {
1977
2003
  source: canonicalizeSource(source.url),
@@ -1979,12 +2005,12 @@ function buildSelectionMetrics(task, sources, pagesByUrl) {
1979
2005
  };
1980
2006
  });
1981
2007
  const firstFrameworkMatchRank = framework ? candidates.findIndex((candidate) => candidate.scope.framework.includes(framework)) + 1 || null : null;
1982
- const firstVersionMatchRank = expectedVersion ? candidates.findIndex((candidate) => candidate.scope.version.some((version) => agentVersionConstraintMatches(expectedVersion, version))) + 1 || null : null;
2008
+ const firstVersionMatchRank = expectedVersion ? candidates.findIndex((candidate) => candidate.scope.versionGroups?.length ? agentVersionConstraintGroupsOverlap([[normalizeAgentVersion(expectedVersion)], ...candidate.scope.versionGroups]) : candidate.scope.version.some((version) => agentVersionConstraintMatches(expectedVersion, version))) + 1 || null : null;
1983
2009
  const firstPackageMatchRank = expectedSearchScope.package ? candidates.findIndex((candidate) => valuesOverlap(expectedSearchScope.package ?? [], candidate.scope.package, (left, right) => left === right)) + 1 || null : null;
1984
2010
  const firstTagsMatchRank = expectedSearchScope.tags ? candidates.findIndex((candidate) => valuesOverlap(expectedSearchScope.tags ?? [], candidate.scope.tags, (left, right) => left === right)) + 1 || null : null;
1985
2011
  const firstLocaleMatchRank = locale ? candidates.findIndex((candidate) => candidate.scope.locale.includes(locale)) + 1 || null : null;
1986
- const conflictingSources = candidates.filter((candidate) => framework && candidate.scope.framework.length > 0 && !candidate.scope.framework.includes(framework) || expectedVersion && candidate.scope.version.length > 0 && !candidate.scope.version.some((version) => agentVersionConstraintMatches(expectedVersion, version)) || expectedSearchScope.package && candidate.scope.package.length > 0 && !valuesOverlap(expectedSearchScope.package, candidate.scope.package, (left, right) => left === right) || expectedSearchScope.tags && candidate.scope.tags.length > 0 && !valuesOverlap(expectedSearchScope.tags, candidate.scope.tags, (left, right) => left === right) || locale && candidate.scope.locale.length > 0 && !candidate.scope.locale.includes(locale)).map((candidate) => candidate.source);
1987
- const ambiguousSources = candidates.filter((candidate) => candidate.scope.frameworkAmbiguous || candidate.scope.versionAmbiguous || Boolean(framework && candidate.scope.framework.length === 0) || Boolean(expectedVersion && candidate.scope.version.length === 0) || Boolean(expectedSearchScope.package && candidate.scope.package.length === 0) || Boolean(expectedSearchScope.tags && candidate.scope.tags.length === 0) || Boolean(locale && candidate.scope.locale.length === 0)).map((candidate) => candidate.source);
2012
+ const conflictingSources = candidates.filter((candidate) => framework && candidate.scope.framework.length > 0 && !candidate.scope.framework.includes(framework) || expectedVersion && candidate.scope.version.length > 0 && !(candidate.scope.versionGroups?.length ? agentVersionConstraintGroupsOverlap([[normalizeAgentVersion(expectedVersion)], ...candidate.scope.versionGroups]) : candidate.scope.version.some((version) => agentVersionConstraintMatches(expectedVersion, version))) || expectedSearchScope.package && candidate.scope.package.length > 0 && !valuesOverlap(expectedSearchScope.package, candidate.scope.package, (left, right) => left === right) || expectedSearchScope.tags && candidate.scope.tags.length > 0 && !valuesOverlap(expectedSearchScope.tags, candidate.scope.tags, (left, right) => left === right) || locale && candidate.scope.locale.length > 0 && !candidate.scope.locale.includes(locale)).map((candidate) => candidate.source);
2013
+ const ambiguousSources = candidates.filter((candidate) => candidate.scope.frameworkAmbiguous || candidate.scope.versionAmbiguous || Boolean(expectedSearchScope.package && candidate.scope.packageAmbiguous) || Boolean(expectedSearchScope.tags && candidate.scope.tagsAmbiguous) || Boolean(framework && candidate.scope.framework.length === 0) || Boolean(expectedVersion && candidate.scope.version.length === 0) || Boolean(expectedSearchScope.package && candidate.scope.package.length === 0) || Boolean(expectedSearchScope.tags && candidate.scope.tags.length === 0) || Boolean(locale && candidate.scope.locale.length === 0)).map((candidate) => candidate.source);
1988
2014
  const frameworkPassed = !framework || firstFrameworkMatchRank !== null;
1989
2015
  const versionPassed = !expectedVersion || firstVersionMatchRank !== null;
1990
2016
  const packagePassed = !expectedSearchScope.package || firstPackageMatchRank !== null;
@@ -1,11 +1,11 @@
1
- import { A as buildDocsAgentDiscoverySpec, Bt as renderDocsSitemapMarkdown, Ht as resolveDocsSitemapConfig, Lt as buildDocsSitemapManifest, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Vt as renderDocsSitemapXml, a as DEFAULT_AGENT_MD_ROUTE, at as renderDocsMarkdownDocument, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, g as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, it as renderDocsLlmsTxt, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, lt as resolveDocsAgentFeedbackConfig, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, rt as renderDocsAgentsDocument, st as renderDocsSkillDocument, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, wt as toDocsMarkdownUrl, x as DEFAULT_SKILL_MD_ROUTE, y as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE } from "./agent-o9OTadrf.mjs";
1
+ import { A as buildDocsAgentDiscoverySpec, Bt as renderDocsSitemapMarkdown, Ht as resolveDocsSitemapConfig, Lt as buildDocsSitemapManifest, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Vt as renderDocsSitemapXml, a as DEFAULT_AGENT_MD_ROUTE, at as renderDocsMarkdownDocument, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, g as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, it as renderDocsLlmsTxt, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, lt as resolveDocsAgentFeedbackConfig, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, rt as renderDocsAgentsDocument, st as renderDocsSkillDocument, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, wt as toDocsMarkdownUrl, x as DEFAULT_SKILL_MD_ROUTE, y as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE } from "./agent-BJ0KXN-A.mjs";
2
2
  import "./markdown-sections-7OoA7ylx.mjs";
3
3
  import { A as buildDocsLegacySkillsIndex, D as buildDocsA2AAgentCard, L as resolveDocsPublishedAgentSkill, O as buildDocsAgentSkillsIndex, 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, x as DEFAULT_LEGACY_SKILLS_ROUTE_PREFIX } from "./standards-discovery-BwL5ffGx.mjs";
4
- import "./search-RfPcG1if.mjs";
4
+ import "./search-DIyIl-tE.mjs";
5
5
  import { t as resolveDocsI18n } from "./i18n-hHVWcflJ.mjs";
6
- 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-BcuxnZqZ.mjs";
7
- import "./sitemap-server-VefDnzEB.mjs";
8
- import "./agent-evals-BFHGypqh.mjs";
6
+ 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-RbgmSvPH.mjs";
7
+ import "./sitemap-server-BfyBM7_V.mjs";
8
+ import "./agent-evals-LIScgQVm.mjs";
9
9
  import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
10
10
  import "./code-blocks-DnNVNK2M.mjs";
11
11
  import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-noFn1l_p.mjs";
@@ -1,4 +1,4 @@
1
- import { L as DocsPublishedAgentSkill } from "./standards-discovery-83lp1lew.mjs";
1
+ import { L as DocsPublishedAgentSkill } from "./standards-discovery-CdrOE-05.mjs";
2
2
 
3
3
  //#region src/agent-skills-bundle.d.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
- import { $ as DocsAgentSkillsInput } from "./types-_HCPD4wc.mjs";
2
- import { L as DocsPublishedAgentSkill } from "./standards-discovery-83lp1lew.mjs";
1
+ import { $ as DocsAgentSkillsInput } from "./types-clg5J1R4.mjs";
2
+ import { L as DocsPublishedAgentSkill } from "./standards-discovery-CdrOE-05.mjs";
3
3
 
4
4
  //#region src/agent-skills-server.d.ts
5
5
  interface ResolveConfiguredAgentSkillsOptions {
@@ -1,6 +1,6 @@
1
- import { $ as DocsAgentSkillsInput } from "./types-_HCPD4wc.mjs";
2
- import { L as DocsPublishedAgentSkill } from "./standards-discovery-83lp1lew.mjs";
3
- import { t as ResolveConfiguredAgentSkillsOptions } from "./agent-skills-server-DCbAx5WU.mjs";
1
+ import { $ as DocsAgentSkillsInput } from "./types-clg5J1R4.mjs";
2
+ import { L as DocsPublishedAgentSkill } from "./standards-discovery-CdrOE-05.mjs";
3
+ import { t as ResolveConfiguredAgentSkillsOptions } from "./agent-skills-server-BqvIGQb1.mjs";
4
4
 
5
5
  //#region src/agent-skills-vite.d.ts
6
6
  declare const DOCS_AGENT_SKILLS_BUNDLE_MODULE = "@farming-labs/docs/agent-skills-bundle";
@@ -1,9 +1,9 @@
1
- import { a as DEFAULT_AGENT_MD_ROUTE, b as DEFAULT_OPENAPI_SCHEMA_ROUTE, lt as resolveDocsAgentFeedbackConfig, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, rt as renderDocsAgentsDocument, t as DEFAULT_AGENTS_MD_ROUTE } from "./agent-o9OTadrf.mjs";
1
+ import { a as DEFAULT_AGENT_MD_ROUTE, b as DEFAULT_OPENAPI_SCHEMA_ROUTE, lt as resolveDocsAgentFeedbackConfig, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, rt as renderDocsAgentsDocument, t as DEFAULT_AGENTS_MD_ROUTE } from "./agent-BJ0KXN-A.mjs";
2
2
  import "./markdown-sections-7OoA7ylx.mjs";
3
3
  import "./standards-discovery-BwL5ffGx.mjs";
4
- import "./search-RfPcG1if.mjs";
5
- import { S as resolveApiReferenceConfig } from "./sitemap-server-VefDnzEB.mjs";
6
- import "./agent-evals-BFHGypqh.mjs";
4
+ import "./search-DIyIl-tE.mjs";
5
+ import { S as resolveApiReferenceConfig } from "./sitemap-server-BfyBM7_V.mjs";
6
+ import "./agent-evals-LIScgQVm.mjs";
7
7
  import { resolveDocsMcpConfig } from "./mcp.mjs";
8
8
  import "./code-blocks-DnNVNK2M.mjs";
9
9
  import "./agent-skills-server-noFn1l_p.mjs";
@@ -82,6 +82,7 @@ async function main() {
82
82
  typesense: typeof flags.typesense === "boolean" ? flags.typesense : void 0,
83
83
  algolia: typeof flags.algolia === "boolean" ? flags.algolia : void 0,
84
84
  baseUrl: typeof flags["base-url"] === "string" ? flags["base-url"] : void 0,
85
+ siteUrl: typeof flags["site-url"] === "string" ? flags["site-url"] : void 0,
85
86
  collection: typeof flags.collection === "string" ? flags.collection : void 0,
86
87
  apiKey: typeof flags["api-key"] === "string" ? flags["api-key"] : void 0,
87
88
  adminApiKey: typeof flags["admin-api-key"] === "string" ? flags["admin-api-key"] : void 0,
@@ -90,7 +91,8 @@ async function main() {
90
91
  ollamaBaseUrl: typeof flags["ollama-base-url"] === "string" ? flags["ollama-base-url"] : void 0,
91
92
  appId: typeof flags["app-id"] === "string" ? flags["app-id"] : void 0,
92
93
  indexName: typeof flags["index-name"] === "string" ? flags["index-name"] : void 0,
93
- searchApiKey: typeof flags["search-api-key"] === "string" ? flags["search-api-key"] : void 0
94
+ searchApiKey: typeof flags["search-api-key"] === "string" ? flags["search-api-key"] : void 0,
95
+ syncNamespace: typeof flags["sync-namespace"] === "string" ? flags["sync-namespace"] : void 0
94
96
  };
95
97
  const cloudOptions = {
96
98
  configPath: typeof flags.config === "string" ? flags.config : void 0,
@@ -139,10 +141,10 @@ async function main() {
139
141
  printCloudHelp();
140
142
  process.exit(1);
141
143
  } else if (parsedCommand.command === "mcp") {
142
- const { runMcp } = await import("../mcp-BLLXvEXB.mjs");
144
+ const { runMcp } = await import("../mcp-YD37HlPY.mjs");
143
145
  await runMcp(mcpOptions);
144
146
  } else if (parsedCommand.command === "agent" && subcommand === "compact") {
145
- const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-ClRpctMG.mjs").then((n) => n.t);
147
+ const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-D0LEY2Vy.mjs").then((n) => n.t);
146
148
  const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
147
149
  if (agentCompactOptions.help) {
148
150
  printAgentCompactHelp();
@@ -150,7 +152,7 @@ async function main() {
150
152
  }
151
153
  await compactAgentDocs(agentCompactOptions);
152
154
  } else if (parsedCommand.command === "agent" && subcommand === "export") {
153
- const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-B9bah0AV.mjs");
155
+ const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-B92pNe6g.mjs");
154
156
  const agentExportOptions = parseAgentExportArgs(args.slice(2));
155
157
  if (agentExportOptions.help) {
156
158
  printAgentExportHelp();
@@ -160,13 +162,13 @@ async function main() {
160
162
  } else if (parsedCommand.command === "agent") {
161
163
  console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
162
164
  console.error();
163
- const { printAgentCompactHelp } = await import("../agent-ClRpctMG.mjs").then((n) => n.t);
164
- const { printAgentExportHelp } = await import("../agent-export-B9bah0AV.mjs");
165
+ const { printAgentCompactHelp } = await import("../agent-D0LEY2Vy.mjs").then((n) => n.t);
166
+ const { printAgentExportHelp } = await import("../agent-export-B92pNe6g.mjs");
165
167
  printAgentCompactHelp();
166
168
  printAgentExportHelp();
167
169
  process.exit(1);
168
170
  } else if (parsedCommand.command === "agents" && subcommand === "generate") {
169
- const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-CR-Uasbc.mjs");
171
+ const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-C228QGbp.mjs");
170
172
  const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
171
173
  if (agentsOptions.help) {
172
174
  printAgentsGenerateHelp();
@@ -176,11 +178,11 @@ async function main() {
176
178
  } else if (parsedCommand.command === "agents") {
177
179
  console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
178
180
  console.error();
179
- const { printAgentsGenerateHelp } = await import("../agents-CR-Uasbc.mjs");
181
+ const { printAgentsGenerateHelp } = await import("../agents-C228QGbp.mjs");
180
182
  printAgentsGenerateHelp();
181
183
  process.exit(1);
182
184
  } else if (parsedCommand.command === "doctor") {
183
- const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-BeyN3Ljh.mjs");
185
+ const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-CgrUZ3tY.mjs");
184
186
  const doctorOptions = parseDoctorArgs(args.slice(1));
185
187
  if (doctorOptions.help) {
186
188
  printDoctorHelp();
@@ -188,7 +190,7 @@ async function main() {
188
190
  }
189
191
  await runDoctor(doctorOptions);
190
192
  } else if (parsedCommand.command === "review") {
191
- const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-DaJLdPLh.mjs");
193
+ const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-Dbzkdl6K.mjs");
192
194
  const reviewOptions = parseReviewArgs(args.slice(1));
193
195
  if (reviewOptions.help) {
194
196
  printReviewHelp();
@@ -210,7 +212,7 @@ async function main() {
210
212
  printCodeBlocksValidateHelp();
211
213
  process.exit(1);
212
214
  } else if (parsedCommand.command === "search" && subcommand === "sync") {
213
- const { syncSearch } = await import("../search-DeOJiMAy.mjs");
215
+ const { syncSearch } = await import("../search-hcqaEZVN.mjs");
214
216
  await syncSearch(searchSyncOptions);
215
217
  } else if (parsedCommand.command === "search") {
216
218
  console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
@@ -218,7 +220,7 @@ async function main() {
218
220
  printHelp();
219
221
  process.exit(1);
220
222
  } else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
221
- const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-BGGbX_KE.mjs");
223
+ const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-jhkS_jYx.mjs");
222
224
  const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
223
225
  if (sitemapOptions.help) {
224
226
  printSitemapGenerateHelp();
@@ -228,11 +230,11 @@ async function main() {
228
230
  } else if (parsedCommand.command === "sitemap") {
229
231
  console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
230
232
  console.error();
231
- const { printSitemapGenerateHelp } = await import("../sitemap-BGGbX_KE.mjs");
233
+ const { printSitemapGenerateHelp } = await import("../sitemap-jhkS_jYx.mjs");
232
234
  printSitemapGenerateHelp();
233
235
  process.exit(1);
234
236
  } else if (parsedCommand.command === "robots" && subcommand === "generate") {
235
- const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-DI-9MZz1.mjs");
237
+ const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-DUO0r4UI.mjs");
236
238
  const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
237
239
  if (robotsOptions.help) {
238
240
  printRobotsGenerateHelp();
@@ -242,7 +244,7 @@ async function main() {
242
244
  } else if (parsedCommand.command === "robots") {
243
245
  console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
244
246
  console.error();
245
- const { printRobotsGenerateHelp } = await import("../robots-DI-9MZz1.mjs");
247
+ const { printRobotsGenerateHelp } = await import("../robots-DUO0r4UI.mjs");
246
248
  printRobotsGenerateHelp();
247
249
  process.exit(1);
248
250
  } else if (parsedCommand.command === "downgrade") {
@@ -395,6 +397,8 @@ ${pc.dim("Options for search sync:")}
395
397
  ${pc.cyan("--typesense")} Shortcut for ${pc.cyan("--provider typesense")}
396
398
  ${pc.cyan("--algolia")} Shortcut for ${pc.cyan("--provider algolia")}
397
399
  ${pc.cyan("--base-url <url>")} Typesense base URL (or use ${pc.dim("TYPESENSE_URL")})
400
+ ${pc.cyan("--site-url <url>")} Canonical public docs URL for source provenance
401
+ ${pc.cyan("--sync-namespace <name>")} Stable ownership namespace for a shared hosted index
398
402
  ${pc.cyan("--collection <name>")} Typesense collection name (default ${pc.dim("docs")})
399
403
  ${pc.cyan("--api-key <key>")} Typesense search/api key (or use ${pc.dim("TYPESENSE_API_KEY")})
400
404
  ${pc.cyan("--admin-api-key <key>")} Admin-capable sync key for Typesense/Algolia
@@ -1,4 +1,4 @@
1
- import { rt as DocsAnalyticsConfig } from "../types-_HCPD4wc.mjs";
1
+ import { rt as DocsAnalyticsConfig } from "../types-clg5J1R4.mjs";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/docs-cloud-client.d.ts
@@ -1,4 +1,4 @@
1
- import { _t as DocsCloudConfig, rt as DocsAnalyticsConfig, t as AIConfig } from "./types-_HCPD4wc.mjs";
1
+ import { _t as DocsCloudConfig, rt as DocsAnalyticsConfig, t as AIConfig } from "./types-clg5J1R4.mjs";
2
2
 
3
3
  //#region src/cloud-ask-ai.d.ts
4
4
  interface DocsCloudAskAIConfig {
@@ -1,5 +1,5 @@
1
- import { at as DocsAnalyticsEventInput, it as DocsAnalyticsEvent, rt as DocsAnalyticsConfig } from "./types-_HCPD4wc.mjs";
2
- import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-yR9vZmSG.mjs";
1
+ import { at as DocsAnalyticsEventInput, it as DocsAnalyticsEvent, rt as DocsAnalyticsConfig } from "./types-clg5J1R4.mjs";
2
+ import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-6X9pVjIY.mjs";
3
3
 
4
4
  //#region src/docs-cloud-server.d.ts
5
5
  type DocsCloudRuntimeValue<T = string> = T | undefined | null | (() => T | undefined | null);
@@ -1,21 +1,21 @@
1
- import { i as scanDocsPageTargets, n as compactAgentDocs, r as inspectAgentCompactionState } from "./agent-ClRpctMG.mjs";
2
- import { d as httpLinkHeaderHasTargetRelation, f as AGENT_SKILL_ARCHIVE_MAX_UNCOMPRESSED_BYTES, p as readAgentSkillDocumentFromTar } from "./prompt-references-Cz35rlOa.mjs";
3
- import { $t as getDocsMcpProtectedResourceMetadataRoutes, A as buildDocsAgentDiscoverySpec, F as buildDocsMcpEndpointCandidates, Ft as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, Ht as resolveDocsSitemapConfig, It as DEFAULT_SITEMAP_XML_ROUTE, M as buildDocsConfigMap, Pt as DEFAULT_SITEMAP_MD_ROUTE, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, T as DOCS_CONFIG_MAP_TOP_LEVEL_KEYS, Yt as DEFAULT_MCP_PUBLIC_ROUTE, Zt as DEFAULT_MCP_WELL_KNOWN_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, nn as isDocsMcpOAuthScopeToken, on as normalizeDocsMcpAuthorizationServerUrls, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE } from "./agent-o9OTadrf.mjs";
1
+ import { i as scanDocsPageTargets, n as compactAgentDocs, r as inspectAgentCompactionState } from "./agent-D0LEY2Vy.mjs";
2
+ import { d as httpLinkHeaderHasTargetRelation, f as AGENT_SKILL_ARCHIVE_MAX_UNCOMPRESSED_BYTES, p as readAgentSkillDocumentFromTar } from "./prompt-references-BIS1eXt4.mjs";
3
+ import { $t as getDocsMcpProtectedResourceMetadataRoutes, A as buildDocsAgentDiscoverySpec, F as buildDocsMcpEndpointCandidates, Ft as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, Ht as resolveDocsSitemapConfig, It as DEFAULT_SITEMAP_XML_ROUTE, M as buildDocsConfigMap, Pt as DEFAULT_SITEMAP_MD_ROUTE, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, T as DOCS_CONFIG_MAP_TOP_LEVEL_KEYS, Yt as DEFAULT_MCP_PUBLIC_ROUTE, Zt as DEFAULT_MCP_WELL_KNOWN_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, nn as isDocsMcpOAuthScopeToken, on as normalizeDocsMcpAuthorizationServerUrls, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE } from "./agent-BJ0KXN-A.mjs";
4
4
  import { f as PAGE_AGENT_CONTRACT_FIELDS } from "./markdown-sections-7OoA7ylx.mjs";
5
5
  import { isDocsAgentSkillName, validateDocsAgentSkillFrontmatter } from "./agent-skills-spec.mjs";
6
6
  import { I as resolveDocsDiscoveryApiRoute, _ as DEFAULT_API_CATALOG_FORMAT, d as DEFAULT_AGENT_SKILLS_ROUTE_PATTERN, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, h as DEFAULT_AGENT_SKILL_FORMAT, l as DEFAULT_AGENT_SKILLS_INDEX_FORMAT, 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 } from "./standards-discovery-BwL5ffGx.mjs";
7
- import { p as resolveAskAISearchRequestConfig } from "./search-RfPcG1if.mjs";
8
- import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveDocsRobotsConfig } from "./robots-BcuxnZqZ.mjs";
7
+ import { h as resolveAskAISearchRequestConfig } from "./search-DIyIl-tE.mjs";
8
+ import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveDocsRobotsConfig } from "./robots-RbgmSvPH.mjs";
9
9
  import { a as resolveDocsMetadataBaseUrl } from "./metadata-N252j5_a.mjs";
10
- import "./sitemap-server-VefDnzEB.mjs";
11
- import { t as runDocsGoldenTasks } from "./agent-evals-BFHGypqh.mjs";
10
+ import "./sitemap-server-BfyBM7_V.mjs";
11
+ import { t as runDocsGoldenTasks } from "./agent-evals-LIScgQVm.mjs";
12
12
  import { createFilesystemDocsMcpSource, getDocsConfigSchema, resolveDocsMcpConfig } from "./mcp.mjs";
13
13
  import "./code-blocks-DnNVNK2M.mjs";
14
14
  import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-noFn1l_p.mjs";
15
15
  import "./server.mjs";
16
16
  import { _ as resolveDocsContentDir, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, r as extractTopLevelConfigObject, s as loadDocsConfigModuleResultWithProjectEnv, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
17
17
  import { t as detectFramework } from "./utils-DpiIioYb.mjs";
18
- import { i as createAgentUsefulnessPagesFromMcp, n as analyzeAgentSurfaceDrift, r as analyzeAgentUsefulness, t as resolveGoldenEvaluationInput } from "./golden-evaluations-CloP0pAe.mjs";
18
+ import { i as createAgentUsefulnessPagesFromMcp, n as analyzeAgentSurfaceDrift, r as analyzeAgentUsefulness, t as resolveGoldenEvaluationInput } from "./golden-evaluations-DTEPZeb0.mjs";
19
19
  import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
20
20
  import path from "node:path";
21
21
  import { LATEST_PROTOCOL_VERSION } from "@modelcontextprotocol/sdk/types.js";
@@ -1,6 +1,6 @@
1
- import { Ot as findDocsAudienceMdxTags, jt as resolveDocsAudienceMdxContent } from "./agent-o9OTadrf.mjs";
1
+ import { Ot as findDocsAudienceMdxTags, jt as resolveDocsAudienceMdxContent } from "./agent-BJ0KXN-A.mjs";
2
2
  import { _ as hasStructuredPageAgentContract, v as normalizePageAgentFrontmatter } from "./markdown-sections-7OoA7ylx.mjs";
3
- import { C as normalizeAgentVersion, b as normalizeAgentFramework, y as agentVersionConstraintsOverlap } from "./search-RfPcG1if.mjs";
3
+ import { C as agentVersionConstraintsOverlap, D as normalizeAgentVersion, w as normalizeAgentFramework } from "./search-DIyIl-tE.mjs";
4
4
  import { t as extractCodeBlocksFromMarkdown } from "./code-blocks-DnNVNK2M.mjs";
5
5
  import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
6
6
  import path from "node:path";