@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
@@ -1,7 +1,7 @@
1
- import { B as findDocsMarkdownPage, an as stripGeneratedPageAgentContractMarkdown, at as renderDocsMarkdownDocument, nn as normalizePageAgentFrontmatter } from "./agent-FIyl4-Oa.mjs";
2
- import { g as hashGeneratedAgentContent, h as GENERATED_AGENT_PROVENANCE_VERSION, v as parseGeneratedAgentDocument, y as serializeGeneratedAgentDocument } from "./search-x5O0-9X3.mjs";
1
+ import { B as findDocsMarkdownPage, an as stripGeneratedPageAgentContractMarkdown, at as renderDocsMarkdownDocument, nn as normalizePageAgentFrontmatter } from "./agent-pS2nNQS3.mjs";
2
+ import { E as hashGeneratedAgentContent, O as parseGeneratedAgentDocument, T as GENERATED_AGENT_PROVENANCE_VERSION, k as serializeGeneratedAgentDocument } from "./search-BbArHODP.mjs";
3
3
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
4
- 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";
4
+ 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-z7_R0f86.mjs";
5
5
  import { createRequire } from "node:module";
6
6
  import matter from "gray-matter";
7
7
  import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from "node:fs";
@@ -1,8 +1,7 @@
1
- import { Gt as findDocsMarkdownSection } from "./agent-FIyl4-Oa.mjs";
2
- import { p as resolveSearchRequestConfig, t as buildDocsAskAIContext, u as performDocsSearch } from "./search-x5O0-9X3.mjs";
3
- import { a as normalizeAgentScopeValues, i as normalizeAgentLocale, n as agentVersionConstraintsOverlap, o as normalizeAgentVersion, r as normalizeAgentFramework, t as agentVersionConstraintMatches } from "./agent-scope-C_U--OZ7.mjs";
1
+ import { Gt as findDocsMarkdownSection } from "./agent-pS2nNQS3.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-BbArHODP.mjs";
4
3
  import { buildDocsMcpContext } from "./mcp.mjs";
5
- import { i as validateCodeBlockPlans, n as planCodeBlockTargets, r as resolveDocsCodeBlocksValidateConfig, t as extractCodeBlocksFromMarkdown } from "./code-blocks-DnNVNK2M.mjs";
4
+ import { i as validateCodeBlockPlans, n as planCodeBlockTargets, r as resolveDocsCodeBlocksValidateConfig, t as extractCodeBlocksFromMarkdown } from "./code-blocks-qe0T8-xe.mjs";
6
5
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
7
6
  import { dirname, isAbsolute, join, relative } from "node:path";
8
7
  import { createJiti } from "jiti";
@@ -631,13 +630,33 @@ function normalizeRuntimeFilters(value, path, issues) {
631
630
  }
632
631
  const framework = normalizeRuntimeString(value.framework, `${path}.framework`, issues);
633
632
  const version = normalizeRuntimeString(value.version, `${path}.version`, issues);
633
+ const packageName = normalizeRuntimeFilterValue(value.package, `${path}.package`, issues);
634
+ const tags = normalizeRuntimeFilterValue(value.tags, `${path}.tags`, issues);
634
635
  const locale = normalizeRuntimeString(value.locale, `${path}.locale`, issues);
635
- return framework || version || locale ? {
636
+ return framework || version || packageName || tags || locale ? {
636
637
  framework,
637
638
  version,
639
+ package: packageName,
640
+ tags,
638
641
  locale
639
642
  } : void 0;
640
643
  }
644
+ function normalizeRuntimeFilterValue(value, path, issues) {
645
+ if (value === void 0) return void 0;
646
+ if (typeof value === "string") return normalizeRuntimeString(value, path, issues);
647
+ if (!Array.isArray(value)) {
648
+ issues.push(`${path} must be a non-empty string or string array.`);
649
+ return;
650
+ }
651
+ const normalized = value.filter((item) => typeof item === "string" && Boolean(item.trim())).map((item) => item.trim()).filter((item, index, items) => items.indexOf(item) === index);
652
+ const hasInvalidItem = value.some((item) => typeof item !== "string" || !item.trim());
653
+ if (hasInvalidItem) issues.push(`${path} must contain only non-empty strings.`);
654
+ if (normalized.length === 0) {
655
+ if (!hasInvalidItem) issues.push(`${path} must contain at least one non-empty string.`);
656
+ return;
657
+ }
658
+ return normalized;
659
+ }
641
660
  function normalizeRuntimeEnum(value, path, issues, allowed) {
642
661
  if (value === void 0) return void 0;
643
662
  if (typeof value !== "string" || !allowed.includes(value)) {
@@ -839,10 +858,14 @@ function getPageScope(page) {
839
858
  const contractFramework = normalizeAgentScopeValues(page.agent?.appliesTo?.framework).map(normalizeAgentFramework);
840
859
  const topVersion = normalizeAgentScopeValues(page.version).map(normalizeAgentVersion);
841
860
  const contractVersion = normalizeAgentScopeValues(page.agent?.appliesTo?.version).map(normalizeAgentVersion);
861
+ const packageValues = normalizeDocsSearchFilters({ package: page.agent?.appliesTo?.package }).package ?? [];
862
+ const tags = normalizeDocsSearchFilters({ tags: page.tags }).tags ?? [];
842
863
  const locale = normalizeAgentScopeValues(page.locale).map(normalizeAgentLocale);
843
864
  return {
844
865
  framework: Array.from(new Set([...topFramework, ...contractFramework])),
845
866
  version: Array.from(new Set([...topVersion, ...contractVersion])),
867
+ package: packageValues,
868
+ tags,
846
869
  locale,
847
870
  frameworkAmbiguous: topFramework.length > 0 && contractFramework.length > 0 && !valuesOverlap(topFramework, contractFramework, (left, right) => left === right),
848
871
  versionAmbiguous: topVersion.length > 0 && contractVersion.length > 0 && !valuesOverlap(topVersion, contractVersion, agentVersionConstraintsOverlap)
@@ -859,6 +882,8 @@ function toGoldenSources(sources, relevantSources, baseUrl) {
859
882
  title: source.section ?? source.title,
860
883
  framework: source.framework,
861
884
  version: source.version,
885
+ package: source.package,
886
+ tags: source.tags,
862
887
  utf8Bytes: source.utf8Bytes,
863
888
  relevant: relevantSources.some((expected) => sourceMatches(source.url, expected, baseUrl)),
864
889
  truncated: source.truncated
@@ -939,7 +964,8 @@ function hydrateSearchSource(result, index, pagesByUrl, contentMode, baseUrl) {
939
964
  locale: scope?.locale[0],
940
965
  framework: scope?.framework[0],
941
966
  version: scope?.version[0],
942
- tags: page?.tags ? [...page.tags] : void 0,
967
+ package: scope?.package.length ? [...scope.package] : void 0,
968
+ tags: scope?.tags.length ? [...scope.tags] : void 0,
943
969
  score: result.score,
944
970
  content,
945
971
  chars: content.length,
@@ -979,11 +1005,17 @@ function buildContextFromSources(options) {
979
1005
  }
980
1006
  const context = blocks.join(CONTEXT_SEPARATOR);
981
1007
  usedUtf8Bytes = Buffer.byteLength(context, "utf8");
1008
+ const normalizedFilters = normalizeDocsSearchFilters({
1009
+ package: options.filters?.package,
1010
+ tags: options.filters?.tags
1011
+ });
982
1012
  return {
983
1013
  query: options.query,
984
1014
  filters: {
985
1015
  framework: options.filters?.framework,
986
1016
  version: options.filters?.version,
1017
+ package: normalizedFilters.package,
1018
+ tags: normalizedFilters.tags,
987
1019
  locale: options.filters?.locale
988
1020
  },
989
1021
  budget: {
@@ -1078,11 +1110,17 @@ function createContextShell(options) {
1078
1110
  const context = options.context ?? "";
1079
1111
  const sources = options.sources ?? [];
1080
1112
  const usedUtf8Bytes = Buffer.byteLength(context, "utf8");
1113
+ const normalizedFilters = normalizeDocsSearchFilters({
1114
+ package: options.filters?.package,
1115
+ tags: options.filters?.tags
1116
+ });
1081
1117
  return {
1082
1118
  query: options.query,
1083
1119
  filters: {
1084
1120
  framework: options.filters?.framework,
1085
1121
  version: options.filters?.version,
1122
+ package: normalizedFilters.package,
1123
+ tags: normalizedFilters.tags,
1086
1124
  locale: options.filters?.locale
1087
1125
  },
1088
1126
  budget: {
@@ -1160,6 +1198,8 @@ async function buildGoldenSurface(options) {
1160
1198
  query: options.task.query,
1161
1199
  framework: options.task.filters?.framework,
1162
1200
  version: options.task.filters?.version,
1201
+ package: options.task.filters?.package,
1202
+ tags: options.task.filters?.tags,
1163
1203
  locale: options.task.filters?.locale,
1164
1204
  maxResults: options.topK
1165
1205
  };
@@ -1199,6 +1239,12 @@ async function buildGoldenSurface(options) {
1199
1239
  search: surfaceSearch,
1200
1240
  audience: "agent",
1201
1241
  locale: options.task.filters?.locale,
1242
+ filters: {
1243
+ framework: options.task.filters?.framework,
1244
+ version: options.task.filters?.version,
1245
+ package: options.task.filters?.package,
1246
+ tags: options.task.filters?.tags
1247
+ },
1202
1248
  siteTitle: options.runOptions.siteTitle,
1203
1249
  baseUrl: options.runOptions.baseUrl,
1204
1250
  limit: options.topK,
@@ -1239,6 +1285,12 @@ async function buildGoldenSurface(options) {
1239
1285
  query: options.task.query,
1240
1286
  search: surfaceSearch,
1241
1287
  locale: options.task.filters?.locale,
1288
+ filters: {
1289
+ framework: options.task.filters?.framework,
1290
+ version: options.task.filters?.version,
1291
+ package: options.task.filters?.package,
1292
+ tags: options.task.filters?.tags
1293
+ },
1242
1294
  siteTitle: options.runOptions.siteTitle,
1243
1295
  baseUrl: options.runOptions.baseUrl,
1244
1296
  limit: options.topK,
@@ -1879,17 +1931,27 @@ async function runAnswerProvider(options) {
1879
1931
  function buildSelectionMetrics(task, sources, pagesByUrl) {
1880
1932
  const requestedFramework = task.filters?.framework;
1881
1933
  const requestedVersion = task.filters?.version;
1934
+ const requestedPackage = task.filters?.package;
1935
+ const requestedTags = task.filters?.tags;
1882
1936
  const requestedLocale = task.filters?.locale;
1883
1937
  const expectedFramework = task.expect.scope?.framework ?? requestedFramework;
1884
1938
  const expectedVersion = task.expect.scope?.version ?? requestedVersion;
1939
+ const expectedPackage = task.expect.scope?.package ?? requestedPackage;
1940
+ const expectedTags = task.expect.scope?.tags ?? requestedTags;
1885
1941
  const expectedLocale = task.expect.scope?.locale ?? requestedLocale;
1886
1942
  const framework = expectedFramework ? normalizeAgentFramework(expectedFramework) : void 0;
1943
+ const expectedSearchScope = normalizeDocsSearchFilters({
1944
+ package: expectedPackage,
1945
+ tags: expectedTags
1946
+ });
1887
1947
  const locale = expectedLocale ? normalizeAgentLocale(expectedLocale) : void 0;
1888
1948
  const candidates = sources.map((source) => {
1889
1949
  const page = findPageForSource(pagesByUrl, source.pageUrl || source.url);
1890
1950
  const scope = page ? getPageScope(page) : {
1891
1951
  framework: normalizeAgentScopeValues(source.framework).map(normalizeAgentFramework),
1892
1952
  version: normalizeAgentScopeValues(source.version).map(normalizeAgentVersion),
1953
+ package: normalizeDocsSearchFilters({ package: source.package }).package ?? [],
1954
+ tags: normalizeDocsSearchFilters({ tags: source.tags }).tags ?? [],
1893
1955
  locale: normalizeAgentScopeValues(source.locale).map(normalizeAgentLocale),
1894
1956
  frameworkAmbiguous: false,
1895
1957
  versionAmbiguous: false
@@ -1901,22 +1963,34 @@ function buildSelectionMetrics(task, sources, pagesByUrl) {
1901
1963
  });
1902
1964
  const firstFrameworkMatchRank = framework ? candidates.findIndex((candidate) => candidate.scope.framework.includes(framework)) + 1 || null : null;
1903
1965
  const firstVersionMatchRank = expectedVersion ? candidates.findIndex((candidate) => candidate.scope.version.some((version) => agentVersionConstraintMatches(expectedVersion, version))) + 1 || null : null;
1966
+ const firstPackageMatchRank = expectedSearchScope.package ? candidates.findIndex((candidate) => valuesOverlap(expectedSearchScope.package ?? [], candidate.scope.package, (left, right) => left === right)) + 1 || null : null;
1967
+ const firstTagsMatchRank = expectedSearchScope.tags ? candidates.findIndex((candidate) => valuesOverlap(expectedSearchScope.tags ?? [], candidate.scope.tags, (left, right) => left === right)) + 1 || null : null;
1904
1968
  const firstLocaleMatchRank = locale ? candidates.findIndex((candidate) => candidate.scope.locale.includes(locale)) + 1 || null : null;
1905
- 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)) || locale && candidate.scope.locale.length > 0 && !candidate.scope.locale.includes(locale)).map((candidate) => candidate.source);
1906
- 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(locale && candidate.scope.locale.length === 0)).map((candidate) => candidate.source);
1969
+ 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);
1970
+ 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);
1971
+ const frameworkPassed = !framework || firstFrameworkMatchRank !== null;
1972
+ const versionPassed = !expectedVersion || firstVersionMatchRank !== null;
1973
+ const packagePassed = !expectedSearchScope.package || firstPackageMatchRank !== null;
1974
+ const tagsPassed = !expectedSearchScope.tags || firstTagsMatchRank !== null;
1907
1975
  return {
1908
1976
  requestedFramework,
1909
1977
  requestedVersion,
1978
+ requestedPackage,
1979
+ requestedTags,
1910
1980
  requestedLocale,
1911
1981
  expectedFramework,
1912
1982
  expectedVersion,
1983
+ expectedPackage,
1984
+ expectedTags,
1913
1985
  expectedLocale,
1914
1986
  firstFrameworkMatchRank,
1915
1987
  firstVersionMatchRank,
1988
+ firstPackageMatchRank,
1989
+ firstTagsMatchRank,
1916
1990
  firstLocaleMatchRank,
1917
1991
  conflictingSources,
1918
1992
  ambiguousSources,
1919
- passed: (!framework || firstFrameworkMatchRank !== null) && (!expectedVersion || firstVersionMatchRank !== null) && (!locale || firstLocaleMatchRank !== null) && conflictingSources.length === 0 && ambiguousSources.length === 0
1993
+ passed: frameworkPassed && versionPassed && packagePassed && tagsPassed && (!locale || firstLocaleMatchRank !== null) && conflictingSources.length === 0 && ambiguousSources.length === 0
1920
1994
  };
1921
1995
  }
1922
1996
  function buildUsageMetrics(task, tokenBudget, context, relevantSources, attributionUtf8Bytes, baseUrl) {
@@ -2056,6 +2130,8 @@ async function evaluateTask(pages, task, configurationIssues = [], runOptions =
2056
2130
  title: source.title,
2057
2131
  framework: source.framework,
2058
2132
  version: source.version,
2133
+ package: source.package,
2134
+ tags: source.tags,
2059
2135
  locale: source.locale
2060
2136
  }))
2061
2137
  }
@@ -2070,7 +2146,10 @@ async function evaluateTask(pages, task, configurationIssues = [], runOptions =
2070
2146
  if (!citations.passed) issues.push(`${citations.evidence === "results" ? "Search-result" : "Context"} citations are missing, unexpected, or do not match source records.`);
2071
2147
  if (task.expect.answer && !runOptions.answer) issues.push("Answer expectations require agent.evaluations.answer to be configured.");
2072
2148
  if (!answer.passed) issues.push("The actual answer is missing required text/citations or contains invalid evidence.");
2073
- if (!selection.passed) issues.push("Retrieved sources are ambiguous or do not explicitly match the expected framework/version/locale.");
2149
+ if (!selection.passed) {
2150
+ const checksPackageOrTags = Boolean(task.expect.scope?.package || task.expect.scope?.tags || task.filters?.package || task.filters?.tags);
2151
+ issues.push(checksPackageOrTags ? "Retrieved sources are ambiguous or do not explicitly match the expected framework/version/package/tags/locale." : "Retrieved sources are ambiguous or do not explicitly match the expected framework/version/locale.");
2152
+ }
2074
2153
  if (!examples.passed) issues.push("One or more expected examples did not meet the requested verification level.");
2075
2154
  if (!usage.passed) issues.push("Context exceeded its budget or did not meet the configured useful-byte ratio.");
2076
2155
  const passed = configurationIssues.length === 0 && !surfaceError && !answerError && relevantSources.length > 0 && retrieval.passed && citations.passed && answer.passed && selection.passed && examples.passed && usage.passed;
@@ -2081,7 +2160,7 @@ async function evaluateTask(pages, task, configurationIssues = [], runOptions =
2081
2160
  selection,
2082
2161
  examples,
2083
2162
  usage,
2084
- hasSelectionExpectation: Boolean(task.expect.scope?.framework || task.expect.scope?.version || task.expect.scope?.locale || task.filters?.framework || task.filters?.version || task.filters?.locale),
2163
+ hasSelectionExpectation: Boolean(task.expect.scope?.framework || task.expect.scope?.version || task.expect.scope?.package || task.expect.scope?.tags || task.expect.scope?.locale || task.filters?.framework || task.filters?.version || task.filters?.package || task.filters?.tags || task.filters?.locale),
2085
2164
  hasExampleExpectation: (task.expect.examples?.length ?? 0) > 0,
2086
2165
  hasAnswerExpectation: Boolean(task.expect.answer)
2087
2166
  });
@@ -1,16 +1,16 @@
1
- import { A as buildDocsAgentDiscoverySpec, Bt as renderDocsSitemapXml, It as buildDocsSitemapManifest, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Vt as resolveDocsSitemapConfig, 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, zt as renderDocsSitemapMarkdown } from "./agent-FIyl4-Oa.mjs";
1
+ import { A as buildDocsAgentDiscoverySpec, Bt as renderDocsSitemapXml, It as buildDocsSitemapManifest, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Vt as resolveDocsSitemapConfig, 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, zt as renderDocsSitemapMarkdown } from "./agent-pS2nNQS3.mjs";
2
2
  import { D as buildDocsAgentSkillsIndex, E as buildDocsA2AAgentCard, I as resolveDocsPublishedAgentSkill, a as DEFAULT_A2A_AGENT_CARD_ROUTE, b as DEFAULT_LEGACY_SKILLS_INDEX_ROUTE, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, k as buildDocsLegacySkillsIndex, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, x as DEFAULT_LEGACY_SKILLS_ROUTE_PREFIX } from "./standards-discovery-CYfiQE13.mjs";
3
- import "./search-x5O0-9X3.mjs";
3
+ import "./search-BbArHODP.mjs";
4
4
  import { t as resolveDocsI18n } from "./i18n-CCaFUnAN.mjs";
5
- 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";
6
- import "./sitemap-server-D_hayOp6.mjs";
7
- import "./agent-evals-Cr9TAkmB.mjs";
5
+ 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";
6
+ import "./sitemap-server-PUoOhplO.mjs";
7
+ import "./agent-evals-CjYzCQMZ.mjs";
8
8
  import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
9
- import "./code-blocks-DnNVNK2M.mjs";
10
- import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-B4u3qy-1.mjs";
9
+ import "./code-blocks-qe0T8-xe.mjs";
10
+ import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-BPVv4gMg.mjs";
11
11
  import "./server.mjs";
12
- import { _ as resolveDocsContentDir, a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, m as readTopLevelBooleanProperty, p as readStringProperty, r as extractTopLevelConfigObject, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
13
- import { t as detectFramework } from "./utils-DpiIioYb.mjs";
12
+ import { _ as resolveDocsContentDir, a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, m as readTopLevelBooleanProperty, p as readStringProperty, r as extractTopLevelConfigObject, t as extractNestedObjectLiteral } from "./config-z7_R0f86.mjs";
13
+ import { t as detectFramework } from "./utils-C4RC8Zq_.mjs";
14
14
  import { existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
15
15
  import path from "node:path";
16
16
  import { execFileSync } from "node:child_process";
@@ -2610,12 +2610,22 @@ function buildDocsDiagnostics(config, options = {}) {
2610
2610
  route: search.enabled ? apiQueryRoute("query={query}") : null,
2611
2611
  routes: {
2612
2612
  human: search.enabled ? apiQueryRoute("query={query}") : null,
2613
- agent: search.enabled ? apiQueryRoute("query={query}&audience=agent") : null
2613
+ agent: search.enabled ? apiQueryRoute("query={query}&audience=agent") : null,
2614
+ structuredAgent: search.enabled ? apiQueryRoute("query={query}&audience=agent&response=structured") : null
2614
2615
  },
2615
2616
  agentEndpoint: search.enabled ? apiQueryRoute("query={query}&audience=agent") : null,
2617
+ structuredAgentEndpoint: search.enabled ? apiQueryRoute("query={query}&audience=agent&response=structured") : null,
2616
2618
  audienceParam: "audience",
2617
2619
  defaultAudience: "human",
2618
2620
  supportedAudiences: ["human", "agent"],
2621
+ filterParams: {
2622
+ framework: "framework",
2623
+ version: "version",
2624
+ package: "package",
2625
+ tags: "tags"
2626
+ },
2627
+ responseFormat: "docs-search.v1",
2628
+ warningsField: "warnings",
2619
2629
  provider: search.provider,
2620
2630
  transport: "GET"
2621
2631
  },
@@ -4078,7 +4088,7 @@ function renderDocsMarkdownNotFound({ entry = "docs", apiRoute, requestedPath, o
4078
4088
  lines.push(`- [${match.title}](${match.markdownUrl}) (${confidence} confidence)${match.description ? ` - ${match.description}` : ""}`);
4079
4089
  }
4080
4090
  }
4081
- lines.push("", "## Recovery", "", "- If a closest match looks right, fetch that markdown URL directly.", "- If the match is uncertain, search the docs first and then fetch the smallest page that answers the task.", "- Use the sitemap routes below to browse the full docs index before guessing another slug.", "", "## Discovery Routes", "", "Use these discovery routes to find the right page:", "", `- Agent discovery spec: \`${DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE}\``, `- Agent discovery fallback: \`${DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE}\``, `- Agent discovery API: \`${agentSpecApiRoute}\``, `- API catalog: \`${DEFAULT_API_CATALOG_ROUTE}\``, `- Agent Skills index: \`${DEFAULT_AGENT_SKILLS_INDEX_ROUTE}\``, `- Agent instructions: \`${DEFAULT_AGENTS_MD_ROUTE}\``, `- Agent search endpoint: \`${resolvedApiRoute}?query={query}&audience=agent\``, `- Docs index markdown: \`/${normalizedEntry}.md\``, `- Requested markdown API route: \`${requestedApiRoute}\``);
4091
+ lines.push("", "## Recovery", "", "- If a closest match looks right, fetch that markdown URL directly.", "- If the match is uncertain, search the docs first and then fetch the smallest page that answers the task.", "- Use the sitemap routes below to browse the full docs index before guessing another slug.", "", "## Discovery Routes", "", "Use these discovery routes to find the right page:", "", `- Agent discovery spec: \`${DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE}\``, `- Agent discovery fallback: \`${DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE}\``, `- Agent discovery API: \`${agentSpecApiRoute}\``, `- API catalog: \`${DEFAULT_API_CATALOG_ROUTE}\``, `- Agent Skills index: \`${DEFAULT_AGENT_SKILLS_INDEX_ROUTE}\``, `- Agent instructions: \`${DEFAULT_AGENTS_MD_ROUTE}\``, `- Structured agent search: \`${resolvedApiRoute}?query={query}&audience=agent&response=structured\` (optionally repeat \`framework\`, \`version\`, \`package\`, or \`tags\`).`, `- Docs index markdown: \`/${normalizedEntry}.md\``, `- Requested markdown API route: \`${requestedApiRoute}\``);
4082
4092
  if (sitemapConfig.enabled) {
4083
4093
  if (sitemapConfig.markdown.enabled) {
4084
4094
  lines.push(`- Semantic sitemap: \`${sitemapConfig.markdown.route}\``);
@@ -4333,7 +4343,7 @@ function appendDocsMarkdownNegotiationStartLines(lines, context, variant) {
4333
4343
  }
4334
4344
  function appendDocsSearchStartLine(lines, context, variant) {
4335
4345
  if (!context.searchEnabled) return;
4336
- lines.push(variant === "skill" ? `- Search with ${context.apiRoute}?query={query}&audience=agent when you do not know the page.` : `- Search with ${context.apiRoute}?query={query}&audience=agent when the route is unknown.`);
4346
+ lines.push(variant === "skill" ? `- Search with ${context.apiRoute}?query={query}&audience=agent&response=structured when you do not know the page; optionally repeat framework, version, package, or tags filters.` : `- Search with ${context.apiRoute}?query={query}&audience=agent&response=structured when the route is unknown; optionally repeat framework, version, package, or tags filters.`);
4337
4347
  }
4338
4348
  function appendDocsOpenApiStartLine(lines, context, variant) {
4339
4349
  if (!context.openapiConfig.enabled || !context.openapiConfig.url) return;
@@ -4689,12 +4699,29 @@ function buildDocsAgentDiscoverySpec({ origin, entry = "docs", apiRoute, apiCata
4689
4699
  enabled: searchEnabled,
4690
4700
  endpoint: apiQueryRoute("query={query}"),
4691
4701
  agentEndpoint: apiQueryRoute("query={query}&audience=agent"),
4702
+ structuredAgentEndpoint: apiQueryRoute("query={query}&audience=agent&response=structured"),
4692
4703
  method: "GET",
4693
4704
  queryParam: "query",
4694
4705
  localeParam: "lang",
4695
4706
  audienceParam: "audience",
4696
4707
  defaultAudience: "human",
4697
- supportedAudiences: ["human", "agent"]
4708
+ supportedAudiences: ["human", "agent"],
4709
+ responseParam: "response",
4710
+ structuredResponseValue: "structured",
4711
+ responseFormat: "docs-search.v1",
4712
+ filterParams: {
4713
+ framework: "framework",
4714
+ version: "version",
4715
+ package: "package",
4716
+ tags: "tags"
4717
+ },
4718
+ repeatedFilterParams: [
4719
+ "framework",
4720
+ "version",
4721
+ "package",
4722
+ "tags"
4723
+ ],
4724
+ warningsField: "warnings"
4698
4725
  },
4699
4726
  agents: {
4700
4727
  enabled: true,
@@ -1,4 +1,4 @@
1
- import { I as DocsPublishedAgentSkill } from "./standards-discovery-C0CIC4QI.mjs";
1
+ import { I as DocsPublishedAgentSkill } from "./standards-discovery-DRJ10g7B.mjs";
2
2
 
3
3
  //#region src/agent-skills-bundle.d.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
- import { $ as DocsAgentSkillsInput } from "./types-BQC05SQm.mjs";
2
- import { I as DocsPublishedAgentSkill } from "./standards-discovery-C0CIC4QI.mjs";
1
+ import { $ as DocsAgentSkillsInput } from "./types-B9DNNAdT.mjs";
2
+ import { I as DocsPublishedAgentSkill } from "./standards-discovery-DRJ10g7B.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-BQC05SQm.mjs";
2
- import { I as DocsPublishedAgentSkill } from "./standards-discovery-C0CIC4QI.mjs";
3
- import { t as ResolveConfiguredAgentSkillsOptions } from "./agent-skills-server-DTwblsLu.mjs";
1
+ import { $ as DocsAgentSkillsInput } from "./types-B9DNNAdT.mjs";
2
+ import { I as DocsPublishedAgentSkill } from "./standards-discovery-DRJ10g7B.mjs";
3
+ import { t as ResolveConfiguredAgentSkillsOptions } from "./agent-skills-server-DZnNB4_S.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,5 +1,5 @@
1
1
  import "./standards-discovery-CYfiQE13.mjs";
2
- import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-B4u3qy-1.mjs";
2
+ import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-BPVv4gMg.mjs";
3
3
 
4
4
  //#region src/agent-skills-vite.ts
5
5
  const DOCS_AGENT_SKILLS_BUNDLE_MODULE = "@farming-labs/docs/agent-skills-bundle";
@@ -1,14 +1,14 @@
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-FIyl4-Oa.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-pS2nNQS3.mjs";
2
2
  import "./standards-discovery-CYfiQE13.mjs";
3
- import "./search-x5O0-9X3.mjs";
4
- import { S as resolveApiReferenceConfig } from "./sitemap-server-D_hayOp6.mjs";
5
- import "./agent-evals-Cr9TAkmB.mjs";
3
+ import "./search-BbArHODP.mjs";
4
+ import { S as resolveApiReferenceConfig } from "./sitemap-server-PUoOhplO.mjs";
5
+ import "./agent-evals-CjYzCQMZ.mjs";
6
6
  import { resolveDocsMcpConfig } from "./mcp.mjs";
7
- import "./code-blocks-DnNVNK2M.mjs";
8
- import "./agent-skills-server-B4u3qy-1.mjs";
7
+ import "./code-blocks-qe0T8-xe.mjs";
8
+ import "./agent-skills-server-BPVv4gMg.mjs";
9
9
  import "./server.mjs";
10
- import { a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
11
- import { t as detectFramework } from "./utils-DpiIioYb.mjs";
10
+ import { a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-z7_R0f86.mjs";
11
+ import { t as detectFramework } from "./utils-C4RC8Zq_.mjs";
12
12
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
13
13
  import path from "node:path";
14
14
  import pc from "picocolors";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as wasCliErrorReported, r as shouldPrintStackTrace, t as formatCliError } from "../errors-DbOhkE1h.mjs";
2
+ import { i as wasCliErrorReported, r as shouldPrintStackTrace, t as formatCliError } from "../errors-Cc_qplZU.mjs";
3
3
  import pc from "picocolors";
4
4
 
5
5
  //#region src/cli/index.ts
@@ -106,43 +106,43 @@ async function main() {
106
106
  ]
107
107
  };
108
108
  if (!parsedCommand.command || parsedCommand.command === "init") {
109
- const { init } = await import("../init-DAkI0Lkf.mjs");
109
+ const { init } = await import("../init-p1MHf06G.mjs");
110
110
  await init(initOptions);
111
111
  } else if (parsedCommand.command === "dev") {
112
- const { dev } = await import("../dev-Cc1cFFj-.mjs");
112
+ const { dev } = await import("../dev-qE7MYEh9.mjs");
113
113
  await dev(devOptions);
114
114
  } else if (parsedCommand.command === "deploy") {
115
- const { runCloudDeploy } = await import("../cloud-pdNC-tyj.mjs");
115
+ const { runCloudDeploy } = await import("../cloud-CyysfDny.mjs");
116
116
  await runCloudDeploy(cloudOptions);
117
117
  } else if (parsedCommand.command === "preview") {
118
- const { runCloudPreview } = await import("../cloud-pdNC-tyj.mjs");
118
+ const { runCloudPreview } = await import("../cloud-CyysfDny.mjs");
119
119
  await runCloudPreview(cloudOptions);
120
120
  } else if (parsedCommand.command === "cloud" && subcommand === "deploy") {
121
- const { runCloudDeploy } = await import("../cloud-pdNC-tyj.mjs");
121
+ const { runCloudDeploy } = await import("../cloud-CyysfDny.mjs");
122
122
  await runCloudDeploy(cloudOptions);
123
123
  } else if (parsedCommand.command === "cloud" && subcommand === "preview") {
124
- const { runCloudPreview } = await import("../cloud-pdNC-tyj.mjs");
124
+ const { runCloudPreview } = await import("../cloud-CyysfDny.mjs");
125
125
  await runCloudPreview(cloudOptions);
126
126
  } else if (parsedCommand.command === "cloud" && subcommand === "init") {
127
- const { runCloudInit } = await import("../cloud-pdNC-tyj.mjs");
127
+ const { runCloudInit } = await import("../cloud-CyysfDny.mjs");
128
128
  await runCloudInit(cloudOptions);
129
129
  } else if (parsedCommand.command === "cloud" && subcommand === "sync") {
130
- const { syncCloudConfig } = await import("../cloud-pdNC-tyj.mjs");
130
+ const { syncCloudConfig } = await import("../cloud-CyysfDny.mjs");
131
131
  await syncCloudConfig(cloudOptions);
132
132
  } else if (parsedCommand.command === "cloud" && subcommand === "check") {
133
- const { runCloudCheck } = await import("../cloud-pdNC-tyj.mjs");
133
+ const { runCloudCheck } = await import("../cloud-CyysfDny.mjs");
134
134
  await runCloudCheck(cloudOptions);
135
135
  } else if (parsedCommand.command === "cloud") {
136
136
  console.error(pc.red(`Unknown cloud subcommand: ${subcommand ?? "(missing)"}`));
137
137
  console.error();
138
- const { printCloudHelp } = await import("../cloud-pdNC-tyj.mjs");
138
+ const { printCloudHelp } = await import("../cloud-CyysfDny.mjs");
139
139
  printCloudHelp();
140
140
  process.exit(1);
141
141
  } else if (parsedCommand.command === "mcp") {
142
- const { runMcp } = await import("../mcp-BLynUzE7.mjs");
142
+ const { runMcp } = await import("../mcp-BNK45dzD.mjs");
143
143
  await runMcp(mcpOptions);
144
144
  } else if (parsedCommand.command === "agent" && subcommand === "compact") {
145
- const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-bof3qzKZ.mjs").then((n) => n.t);
145
+ const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-DbDfIqhe.mjs").then((n) => n.t);
146
146
  const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
147
147
  if (agentCompactOptions.help) {
148
148
  printAgentCompactHelp();
@@ -150,7 +150,7 @@ async function main() {
150
150
  }
151
151
  await compactAgentDocs(agentCompactOptions);
152
152
  } else if (parsedCommand.command === "agent" && subcommand === "export") {
153
- const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-7Ws4KqDE.mjs");
153
+ const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-CpQhD8eA.mjs");
154
154
  const agentExportOptions = parseAgentExportArgs(args.slice(2));
155
155
  if (agentExportOptions.help) {
156
156
  printAgentExportHelp();
@@ -160,13 +160,13 @@ async function main() {
160
160
  } else if (parsedCommand.command === "agent") {
161
161
  console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
162
162
  console.error();
163
- const { printAgentCompactHelp } = await import("../agent-bof3qzKZ.mjs").then((n) => n.t);
164
- const { printAgentExportHelp } = await import("../agent-export-7Ws4KqDE.mjs");
163
+ const { printAgentCompactHelp } = await import("../agent-DbDfIqhe.mjs").then((n) => n.t);
164
+ const { printAgentExportHelp } = await import("../agent-export-CpQhD8eA.mjs");
165
165
  printAgentCompactHelp();
166
166
  printAgentExportHelp();
167
167
  process.exit(1);
168
168
  } else if (parsedCommand.command === "agents" && subcommand === "generate") {
169
- const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-Be2ntaFr.mjs");
169
+ const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-B-1h9Jlm.mjs");
170
170
  const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
171
171
  if (agentsOptions.help) {
172
172
  printAgentsGenerateHelp();
@@ -176,11 +176,11 @@ async function main() {
176
176
  } else if (parsedCommand.command === "agents") {
177
177
  console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
178
178
  console.error();
179
- const { printAgentsGenerateHelp } = await import("../agents-Be2ntaFr.mjs");
179
+ const { printAgentsGenerateHelp } = await import("../agents-B-1h9Jlm.mjs");
180
180
  printAgentsGenerateHelp();
181
181
  process.exit(1);
182
182
  } else if (parsedCommand.command === "doctor") {
183
- const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-DoPAofVP.mjs");
183
+ const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-CBy8-tPu.mjs");
184
184
  const doctorOptions = parseDoctorArgs(args.slice(1));
185
185
  if (doctorOptions.help) {
186
186
  printDoctorHelp();
@@ -188,7 +188,7 @@ async function main() {
188
188
  }
189
189
  await runDoctor(doctorOptions);
190
190
  } else if (parsedCommand.command === "review") {
191
- const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-NFnYbMRI.mjs");
191
+ const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-Cace7A2c.mjs");
192
192
  const reviewOptions = parseReviewArgs(args.slice(1));
193
193
  if (reviewOptions.help) {
194
194
  printReviewHelp();
@@ -196,7 +196,7 @@ async function main() {
196
196
  }
197
197
  await runReview(reviewOptions);
198
198
  } else if ((parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") && subcommand === "validate") {
199
- const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-CFuurVIH.mjs");
199
+ const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-DAj7EAwt.mjs");
200
200
  const codeBlocksOptions = parseCodeBlocksValidateArgs(args.slice(2));
201
201
  if (codeBlocksOptions.help) {
202
202
  printCodeBlocksValidateHelp();
@@ -206,11 +206,11 @@ async function main() {
206
206
  } else if (parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") {
207
207
  console.error(pc.red(`Unknown codeblocks subcommand: ${subcommand ?? "(missing)"}`));
208
208
  console.error();
209
- const { printCodeBlocksValidateHelp } = await import("../codeblocks-CFuurVIH.mjs");
209
+ const { printCodeBlocksValidateHelp } = await import("../codeblocks-DAj7EAwt.mjs");
210
210
  printCodeBlocksValidateHelp();
211
211
  process.exit(1);
212
212
  } else if (parsedCommand.command === "search" && subcommand === "sync") {
213
- const { syncSearch } = await import("../search-DOGUUZvs.mjs");
213
+ const { syncSearch } = await import("../search-DB3svkNQ.mjs");
214
214
  await syncSearch(searchSyncOptions);
215
215
  } else if (parsedCommand.command === "search") {
216
216
  console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
@@ -218,7 +218,7 @@ async function main() {
218
218
  printHelp();
219
219
  process.exit(1);
220
220
  } else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
221
- const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-BpMKdDUd.mjs");
221
+ const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-DPTLh_26.mjs");
222
222
  const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
223
223
  if (sitemapOptions.help) {
224
224
  printSitemapGenerateHelp();
@@ -228,11 +228,11 @@ async function main() {
228
228
  } else if (parsedCommand.command === "sitemap") {
229
229
  console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
230
230
  console.error();
231
- const { printSitemapGenerateHelp } = await import("../sitemap-BpMKdDUd.mjs");
231
+ const { printSitemapGenerateHelp } = await import("../sitemap-DPTLh_26.mjs");
232
232
  printSitemapGenerateHelp();
233
233
  process.exit(1);
234
234
  } else if (parsedCommand.command === "robots" && subcommand === "generate") {
235
- const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-B3e-aWPy.mjs");
235
+ const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-DmE_wXvG.mjs");
236
236
  const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
237
237
  if (robotsOptions.help) {
238
238
  printRobotsGenerateHelp();
@@ -242,11 +242,11 @@ async function main() {
242
242
  } else if (parsedCommand.command === "robots") {
243
243
  console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
244
244
  console.error();
245
- const { printRobotsGenerateHelp } = await import("../robots-B3e-aWPy.mjs");
245
+ const { printRobotsGenerateHelp } = await import("../robots-DmE_wXvG.mjs");
246
246
  printRobotsGenerateHelp();
247
247
  process.exit(1);
248
248
  } else if (parsedCommand.command === "downgrade") {
249
- const { downgrade } = await import("../downgrade-w7e6Se0L.mjs");
249
+ const { downgrade } = await import("../downgrade-DCxezPZI.mjs");
250
250
  const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
251
251
  const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
252
252
  await downgrade({
@@ -255,7 +255,7 @@ async function main() {
255
255
  dryRun: flags["dry-run"] === true
256
256
  });
257
257
  } else if (parsedCommand.command === "upgrade") {
258
- const { upgrade } = await import("../upgrade-oz-GChgt.mjs");
258
+ const { upgrade } = await import("../upgrade-DDJQ5l6n.mjs");
259
259
  const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
260
260
  const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
261
261
  const version = typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0;
@@ -1,4 +1,4 @@
1
- import { rt as DocsAnalyticsConfig } from "../types-BQC05SQm.mjs";
1
+ import { rt as DocsAnalyticsConfig } from "../types-B9DNNAdT.mjs";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region src/docs-cloud-client.d.ts
@@ -1,6 +1,6 @@
1
- import { n as markCliErrorReported } from "./errors-DbOhkE1h.mjs";
2
- import { _ as resolveDocsContentDir, a as loadDocsConfigModule, c as loadProjectEnv, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, m as readTopLevelBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
3
- import { i as detectPackageManagerFromProject, t as detectFramework } from "./utils-DpiIioYb.mjs";
1
+ import { n as markCliErrorReported } from "./errors-Cc_qplZU.mjs";
2
+ import { _ as resolveDocsContentDir, a as loadDocsConfigModule, c as loadProjectEnv, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, m as readTopLevelBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-z7_R0f86.mjs";
3
+ import { i as detectPackageManagerFromProject, t as detectFramework } from "./utils-C4RC8Zq_.mjs";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
6
6
  import { execFileSync } from "node:child_process";