@farming-labs/docs 0.2.55 → 0.2.57

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 (27) hide show
  1. package/dist/{agent-DXkXi-pS.mjs → agent-CxDzPqtl.mjs} +1121 -53
  2. package/dist/{agent-export-BYznnYed.mjs → agent-export-CZR20g0e.mjs} +11 -6
  3. package/dist/{agent-surface-drift-LS8zQgbq.mjs → agent-surface-drift-rGFS38Ak.mjs} +61 -63
  4. package/dist/{agent-BOOcHVDL.mjs → agent-v6R0V3lm.mjs} +4 -3
  5. package/dist/{agents-BHzeeY45.mjs → agents-BPonjolo.mjs} +4 -4
  6. package/dist/cli/index.mjs +25 -25
  7. package/dist/{cloud-HWFlbfLJ.mjs → cloud-C45jpBtp.mjs} +1 -1
  8. package/dist/{codeblocks-BzfkREEC.mjs → codeblocks-CSqgqbg-.mjs} +1 -1
  9. package/dist/{config-CydaZ5PB.mjs → config-DZbZiYEa.mjs} +18 -2
  10. package/dist/{doctor-CNIPJdxN.mjs → doctor-svA9Flsx.mjs} +12 -12
  11. package/dist/index.d.mts +7 -3
  12. package/dist/index.mjs +5 -5
  13. package/dist/{init-gnHQ_Pz9.mjs → init-Dm0yDz6v.mjs} +1 -1
  14. package/dist/{mcp-F9zkBHrU.mjs → mcp-BYIgKsPn.mjs} +4 -4
  15. package/dist/mcp.mjs +16 -59
  16. package/dist/{reading-time-BrTd3DIh.mjs → reading-time-W_Id2ayC.mjs} +2 -2
  17. package/dist/{review-Dlb8dRRx.mjs → review-DZ81wm7h.mjs} +15 -7
  18. package/dist/{robots-DAptQnkx.mjs → robots-DRpoiYAV.mjs} +1 -1
  19. package/dist/{robots-4BUJxlvV.mjs → robots-mSc98PMp.mjs} +3 -3
  20. package/dist/{search-BnQKgDbk.d.mts → search-9uEaC23e.d.mts} +28 -3
  21. package/dist/{search-B8cF77_i.mjs → search-AMEoabYU.mjs} +4 -4
  22. package/dist/{search-CEg1omHv.mjs → search-OHp36znm.mjs} +49 -33
  23. package/dist/server.d.mts +1 -1
  24. package/dist/server.mjs +3 -3
  25. package/dist/{sitemap-D9ivTLm8.mjs → sitemap-Cyc0Bbbn.mjs} +4 -4
  26. package/dist/{sitemap-server-wsNLyVkb.mjs → sitemap-server-zFYctvCa.mjs} +1 -1
  27. package/package.json +3 -2
@@ -1,4 +1,4 @@
1
- import { G as isDocsAgentsRequest, Ht as PAGE_AGENT_CONTRACT_START_MARKER, W as isDocsAgentDiscoveryRequest, Xt as upsertPageAgentContractMarkdown, Z as isDocsSkillRequest, _t as resolveDocsMarkdownRequest, ct as resolveDocsAgentFeedbackConfig, dt as resolveDocsAgentsFormat, lt as resolveDocsAgentFeedbackRequest, pt as resolveDocsLlmsTxtRequest, qt as renderPageAgentContractMarkdown, yt as resolveDocsSkillFormat, zt as PAGE_AGENT_CONTRACT_END_MARKER } from "./agent-DXkXi-pS.mjs";
1
+ import { G as isDocsAgentsRequest, Kt as PAGE_AGENT_CONTRACT_START_MARKER, Ut as PAGE_AGENT_CONTRACT_END_MARKER, W as isDocsAgentDiscoveryRequest, Z as isDocsSkillRequest, Zt as renderPageAgentContractMarkdown, ct as resolveDocsAgentFeedbackConfig, en as upsertPageAgentContractMarkdown, ft as resolveDocsLlmsTxtRequest, gt as resolveDocsMarkdownRequest, lt as resolveDocsAgentFeedbackRequest, ut as resolveDocsAgentsFormat, vt as resolveDocsSkillFormat } from "./agent-CxDzPqtl.mjs";
2
2
 
3
3
  //#region src/telemetry.ts
4
4
  const DOCS_PACKAGE_NAME = "@farming-labs/docs";
@@ -706,7 +706,7 @@ function resolveAskAIContextUrl(value, baseUrl) {
706
706
  }
707
707
  }
708
708
  function getAskAIPageContent(page) {
709
- return upsertPageAgentContractMarkdown(page.agentRawContent ?? page.agentFallbackRawContent ?? page.rawContent ?? page.content, page.agent).replace(PAGE_AGENT_CONTRACT_START_MARKER, "").replace(PAGE_AGENT_CONTRACT_END_MARKER, "").replace(/^\r?\n+/, "");
709
+ return upsertPageAgentContractMarkdown(page.agentRawContent ?? page.agentFallbackRawContent ?? page.agentContent ?? page.agentFallbackContent ?? page.rawContent ?? page.content, page.agent).replace(PAGE_AGENT_CONTRACT_START_MARKER, "").replace(PAGE_AGENT_CONTRACT_END_MARKER, "").replace(/^\r?\n+/, "");
710
710
  }
711
711
  function getPageAgentContractSearchText(page) {
712
712
  return stripMarkdownText(renderPageAgentContractMarkdown(page.agent).replace(PAGE_AGENT_CONTRACT_START_MARKER, "").replace(PAGE_AGENT_CONTRACT_END_MARKER, ""));
@@ -838,12 +838,37 @@ function mergeSearchResults(...groups) {
838
838
  }
839
839
  return results;
840
840
  }
841
- function pageToSearchDocument(page) {
841
+ function sanitizeExternalAgentSearchResults(results, localAgentResults, preserveUnmatched) {
842
+ const localByKey = new Map(localAgentResults.map((result) => [getSearchResultKey(result), result]));
843
+ const localPageResults = /* @__PURE__ */ new Map();
844
+ for (const result of localAgentResults) {
845
+ const pageUrl = normalizeUrlPathname(result.url);
846
+ if (!localPageResults.get(pageUrl) || result.type === "page") localPageResults.set(pageUrl, result);
847
+ }
848
+ return results.flatMap((result) => {
849
+ const local = localByKey.get(getSearchResultKey(result)) ?? localPageResults.get(normalizeUrlPathname(result.url));
850
+ if (!local) return preserveUnmatched?.(result) ? [result] : [];
851
+ return [{
852
+ ...local,
853
+ id: result.id,
854
+ score: result.score ?? local.score
855
+ }];
856
+ });
857
+ }
858
+ function getPageAudienceRawContent(page, audience) {
859
+ if (audience === "agent") return page.agentRawContent ?? page.agentFallbackRawContent ?? page.agentContent ?? page.agentFallbackContent ?? page.rawContent ?? page.content;
860
+ return page.rawContent ?? page.content;
861
+ }
862
+ function getPageAudienceSearchText(page, audience) {
863
+ if (audience === "agent") return page.agentContent ?? page.agentFallbackContent ?? stripMarkdownText(getPageAudienceRawContent(page, audience));
864
+ return page.content || stripMarkdownText(getPageAudienceRawContent(page, audience));
865
+ }
866
+ function pageToSearchDocument(page, audience = "human") {
842
867
  return {
843
868
  id: makeDocumentId(page.url, "page"),
844
869
  url: page.url,
845
870
  title: page.title,
846
- content: normalizeWhitespace([page.content, getPageAgentContractSearchText(page)].join(" ")),
871
+ content: normalizeWhitespace([getPageAudienceSearchText(page, audience), getPageAgentContractSearchText(page)].join(" ")),
847
872
  description: page.description,
848
873
  type: "page",
849
874
  locale: page.locale,
@@ -852,12 +877,12 @@ function pageToSearchDocument(page) {
852
877
  tags: page.tags
853
878
  };
854
879
  }
855
- function buildExactPageSearchResults(query, pages) {
880
+ function buildExactPageSearchResults(query, pages, audience = "human") {
856
881
  const normalizedQuery = normalizeSearchPhrase(query);
857
882
  if (!normalizedQuery) return [];
858
883
  const results = [];
859
884
  for (const page of pages) {
860
- const document = pageToSearchDocument(page);
885
+ const document = pageToSearchDocument(page, audience);
861
886
  const title = normalizeSearchPhrase(page.title);
862
887
  const urlSegments = getUrlSearchSegments(page.url);
863
888
  if (!(title === normalizedQuery || urlSegments.includes(normalizedQuery))) continue;
@@ -890,9 +915,6 @@ function prioritizeLiteralInsideResults(query, results) {
890
915
  return 0;
891
916
  });
892
917
  }
893
- function shouldSupplementAskAIWithSimpleSearch(search) {
894
- return search.enabled && search.provider !== "simple";
895
- }
896
918
  function rankAskAIContextResult(query, result) {
897
919
  return scoreDocument(query, {
898
920
  id: result.id,
@@ -914,8 +936,8 @@ function buildAskAIContextBlock(result) {
914
936
  function makeDocumentId(url, suffix) {
915
937
  return `${url}#${suffix}`;
916
938
  }
917
- function splitPageIntoSections(page) {
918
- return parseDocsMarkdownSections(page.rawContent ?? page.content).flatMap((section, index) => {
939
+ function splitPageIntoSections(page, audience = "human") {
940
+ return parseDocsMarkdownSections(getPageAudienceRawContent(page, audience)).flatMap((section, index) => {
919
941
  const content = normalizeWhitespace(stripMarkdownText(section.content));
920
942
  if (!content) return [];
921
943
  return [{
@@ -933,12 +955,12 @@ function splitPageIntoSections(page) {
933
955
  }];
934
956
  });
935
957
  }
936
- function buildDocsSearchDocuments(pages, chunking = {}) {
958
+ function buildDocsSearchDocuments(pages, chunking = {}, audience = "human") {
937
959
  const strategy = chunking.strategy ?? "section";
938
960
  return pages.flatMap((page) => {
939
- const base = pageToSearchDocument(page);
961
+ const base = pageToSearchDocument(page, audience);
940
962
  if (strategy === "page") return [base];
941
- const sections = splitPageIntoSections(page);
963
+ const sections = splitPageIntoSections(page, audience);
942
964
  if (sections.length === 0) return [base];
943
965
  return [...base.content ? [base] : [], ...sections];
944
966
  });
@@ -1522,7 +1544,8 @@ async function maybeSyncSearchIndex(adapter, search, context) {
1522
1544
  async function performDocsSearch(options) {
1523
1545
  const search = normalizeDocsSearchConfig(options.search);
1524
1546
  if (!search.enabled) return [];
1525
- const documents = buildDocsSearchDocuments(options.pages, search.chunking);
1547
+ const audience = options.audience ?? "human";
1548
+ const documents = buildDocsSearchDocuments(options.pages, search.chunking, audience);
1526
1549
  const context = {
1527
1550
  pages: options.pages,
1528
1551
  documents,
@@ -1538,10 +1561,16 @@ async function performDocsSearch(options) {
1538
1561
  };
1539
1562
  try {
1540
1563
  const adapter = await resolveSearchAdapter(search, context);
1541
- await maybeSyncSearchIndex(adapter, search, context);
1564
+ await maybeSyncSearchIndex(adapter, search, audience === "agent" ? {
1565
+ ...context,
1566
+ documents: buildDocsSearchDocuments(options.pages, search.chunking, "human")
1567
+ } : context);
1542
1568
  const results = await adapter.search(query, context);
1543
1569
  if (search.provider === "simple") return results;
1544
- return prioritizeLiteralInsideResults(options.query, mergeSearchResults(buildExactPageSearchResults(options.query, options.pages), results)).slice(0, query.limit ?? search.maxResults ?? DEFAULT_SEARCH_LIMIT);
1570
+ const localAudienceResults = audience === "agent" ? await createSimpleSearchAdapter().search(query, context) : [];
1571
+ const localPagePaths = new Set(options.pages.map((page) => normalizeUrlPathname(page.url)));
1572
+ const safeAdapterResults = audience !== "agent" ? results : sanitizeExternalAgentSearchResults(results, localAudienceResults, search.provider === "mcp" ? (result) => !localPagePaths.has(normalizeUrlPathname(result.url)) : void 0);
1573
+ return prioritizeLiteralInsideResults(options.query, mergeSearchResults(buildExactPageSearchResults(options.query, options.pages, audience), safeAdapterResults, localAudienceResults)).slice(0, query.limit ?? search.maxResults ?? DEFAULT_SEARCH_LIMIT);
1545
1574
  } catch {
1546
1575
  return createSimpleSearchAdapter().search(query, context);
1547
1576
  }
@@ -1551,29 +1580,16 @@ async function buildDocsAskAIContext(options) {
1551
1580
  const searchLimit = Math.max(limit * 2, limit);
1552
1581
  const initialSearch = options.search === false ? true : options.search;
1553
1582
  const primarySearch = normalizeDocsSearchConfig(initialSearch).enabled ? initialSearch : true;
1554
- const primarySearchConfig = normalizeDocsSearchConfig(primarySearch);
1555
- const searchResults = mergeSearchResults(await performDocsSearch({
1583
+ const searchResults = await performDocsSearch({
1556
1584
  pages: options.pages,
1557
1585
  query: options.query,
1558
1586
  search: primarySearch,
1587
+ audience: "agent",
1559
1588
  locale: options.locale,
1560
1589
  pathname: options.pathname,
1561
1590
  siteTitle: options.siteTitle,
1562
1591
  limit: searchLimit
1563
- }), shouldSupplementAskAIWithSimpleSearch(primarySearchConfig) ? await performDocsSearch({
1564
- pages: options.pages,
1565
- query: options.query,
1566
- search: {
1567
- provider: "simple",
1568
- enabled: true,
1569
- chunking: primarySearchConfig.chunking,
1570
- maxResults: searchLimit
1571
- },
1572
- locale: options.locale,
1573
- pathname: options.pathname,
1574
- siteTitle: options.siteTitle,
1575
- limit: searchLimit
1576
- }) : []);
1592
+ });
1577
1593
  const seen = /* @__PURE__ */ new Set();
1578
1594
  const maxResultChars = options.maxResultChars ?? DEFAULT_ASK_AI_RESULT_CHARS;
1579
1595
  const rankedResults = searchResults.map((result, index) => {
package/dist/server.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { $t as McpDocsSearchConfig, At as DocsSearchDocument, C as DocsAgentTraceEventType, D as DocsAnalyticsEventInput, Dt as DocsSearchAdapterFactory, E as DocsAnalyticsEvent, Et as DocsSearchAdapterContext, F as DocsAskAIFeedbackMessage, Ft as DocsSearchSourcePage, I as DocsAskAIFeedbackValue, It as DocsSitemapConfig, L as DocsAskAIMcpConfig, Mt as DocsSearchQuery, N as DocsAskAIFeedbackConfig, Nt as DocsSearchResult, P as DocsAskAIFeedbackData, S as DocsAgentTraceEventInput, T as DocsAnalyticsConfig, Tt as DocsSearchAdapter, Z as DocsConfig, a as ApiReferenceRenderer, b as DocsAgentGoldenTaskExpectation, bt as DocsReviewRulesConfig, ht as DocsObservabilityEventInput, kt as DocsSearchConfig, mt as DocsObservabilityEvent, pt as DocsObservabilityConfig, v as DocsAgentGoldenExpectedExample, vt as DocsReviewCiMode, w as DocsAgentTraceStatus, x as DocsAgentGoldenTaskFilters, y as DocsAgentGoldenTask, yt as DocsReviewConfig } from "./types-R-DN23yw.mjs";
2
2
  import { i as isDocsCloudAskAIProvider, n as DocsCloudAskAIResponseOptions, r as createDocsCloudAskAIResponse, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-CvRVnwdK.mjs";
3
3
  import { DocsCloudAskAIOptions, DocsCloudPublicConfig, DocsCloudRouteHandlerOptions, DocsCloudRouteHandlers, DocsCloudRuntimeEnv, DocsCloudRuntimeValue, DocsCloudServer, DocsCloudServerOptions, DocsCloudTrackEventOptions, createDocsCloudRouteHandler, createDocsCloudServer } from "./docs-cloud-server.mjs";
4
- import { $ as createDocsAgentTraceId, A as resolveDocsSitemapRequest, B as normalizePromptProviderName, C as buildDocsSitemapManifest, D as renderDocsSitemapXml, E as renderDocsSitemapMarkdown, F as DEFAULT_PROMPT_PROVIDER_TEMPLATES, G as serializeDocsIconRegistry, H as resolvePromptProviderChoices, I as PromptAction, J as DOCS_AGENT_TRACE_EVENT_TYPES, K as serializeOpenDocsProvider, L as PromptProviderChoice, M as DEFAULT_OPEN_DOCS_PROMPT, N as DEFAULT_OPEN_DOCS_PROVIDER_IDS, O as resolveDocsSitemapConfig, P as DEFAULT_OPEN_DOCS_TARGET, Q as createDocsAgentTraceContext, R as SerializeOpenDocsProviderOptions, S as DocsSitemapResolvedConfig, T as readDocsSitemapManifestFromContentMap, U as sanitizePromptText, V as parsePromptStringArray, W as serializeDocsIcon, X as ResolvedDocsAnalyticsConfig, Y as DocsAgentTraceContext, Z as ResolvedDocsObservabilityConfig, _ as DEFAULT_SITEMAP_XML_ROUTE, a as createMcpSearchAdapter, at as resolveDocsObservabilityConfig, b as DocsSitemapManifestPage, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, et as emitDocsAgentTraceEvent, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, h as DEFAULT_SITEMAP_MD_ROUTE, i as createCustomSearchAdapter, it as resolveDocsAnalyticsConfig, j as toDocsSitemapMarkdownUrl, k as resolveDocsSitemapPageLastmod, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_DOCS_ROUTE, n as buildDocsSearchDocuments, nt as emitDocsObservabilityEvent, o as createSimpleSearchAdapter, p as DEFAULT_SITEMAP_MANIFEST_PATH, q as serializeOpenDocsProviders, r as createAlgoliaSearchAdapter, rt as getDocsRequestAnalyticsProperties, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, tt as emitDocsAnalyticsEvent, u as performDocsSearch, v as DocsSitemapFormat, w as createDocsSitemapResponse, x as DocsSitemapPageInput, y as DocsSitemapManifest, z as SerializedOpenDocsProvider } from "./search-BnQKgDbk.mjs";
4
+ import { A as resolveDocsSitemapRequest, B as normalizePromptProviderName, C as buildDocsSitemapManifest, D as renderDocsSitemapXml, E as renderDocsSitemapMarkdown, F as DEFAULT_PROMPT_PROVIDER_TEMPLATES, G as serializeDocsIconRegistry, H as resolvePromptProviderChoices, I as PromptAction, K as serializeOpenDocsProvider, L as PromptProviderChoice, M as DEFAULT_OPEN_DOCS_PROMPT, N as DEFAULT_OPEN_DOCS_PROVIDER_IDS, O as resolveDocsSitemapConfig, P as DEFAULT_OPEN_DOCS_TARGET, R as SerializeOpenDocsProviderOptions, S as DocsSitemapResolvedConfig, T as readDocsSitemapManifestFromContentMap, U as sanitizePromptText, V as parsePromptStringArray, W as serializeDocsIcon, _ as DEFAULT_SITEMAP_XML_ROUTE, a as createMcpSearchAdapter, at as createDocsAgentTraceId, b as DocsSitemapManifestPage, c as formatDocsAskAIPackageHints, ct as emitDocsObservabilityEvent, d as resolveAskAISearchRequestConfig, dt as resolveDocsObservabilityConfig, et as DOCS_AGENT_TRACE_EVENT_TYPES, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, h as DEFAULT_SITEMAP_MD_ROUTE, i as createCustomSearchAdapter, it as createDocsAgentTraceContext, j as toDocsSitemapMarkdownUrl, k as resolveDocsSitemapPageLastmod, l as inferDocsAskAIPackageHints, lt as getDocsRequestAnalyticsProperties, m as DEFAULT_SITEMAP_MD_DOCS_ROUTE, n as buildDocsSearchDocuments, nt as ResolvedDocsAnalyticsConfig, o as createSimpleSearchAdapter, ot as emitDocsAgentTraceEvent, p as DEFAULT_SITEMAP_MANIFEST_PATH, q as serializeOpenDocsProviders, r as createAlgoliaSearchAdapter, rt as ResolvedDocsObservabilityConfig, s as createTypesenseSearchAdapter, st as emitDocsAnalyticsEvent, t as buildDocsAskAIContext, tt as DocsAgentTraceContext, u as performDocsSearch, ut as resolveDocsAnalyticsConfig, v as DocsSitemapFormat, w as createDocsSitemapResponse, x as DocsSitemapPageInput, y as DocsSitemapManifest, z as SerializedOpenDocsProvider } from "./search-9uEaC23e.mjs";
5
5
  import { CreateDocsMcpServerOptions, DEFAULT_DOCS_MCP_CORS_ALLOWED_HEADERS, DEFAULT_DOCS_MCP_CORS_EXPOSED_HEADERS, DEFAULT_DOCS_MCP_CORS_MAX_AGE_SECONDS, DEFAULT_DOCS_MCP_MAX_BODY_BYTES, DOCS_CONFIG_SCHEMA_OPTIONS, DocsMcpAgentContractSummary, DocsMcpCodeExample, DocsMcpConfigSchema, DocsMcpConfigSchemaOption, DocsMcpContextResult, DocsMcpContextSource, DocsMcpDocsList, DocsMcpDocsPageSummary, DocsMcpDocsSection, DocsMcpHttpHandlers, DocsMcpNavigationNode, DocsMcpNavigationTree, DocsMcpPage, DocsMcpRequestContext, DocsMcpResolvedConfig, DocsMcpResolvedCorsConfig, DocsMcpResolvedSecurityConfig, DocsMcpSource, DocsMcpTaskSummary, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, getDocsConfigSchema, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
6
6
 
7
7
  //#region src/code-group-mdx.d.ts
package/dist/server.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { a as emitDocsAnalyticsEvent, c as resolveDocsAnalyticsConfig, i as emitDocsAgentTraceEvent, l as resolveDocsObservabilityConfig, n as createDocsAgentTraceContext, o as emitDocsObservabilityEvent, r as createDocsAgentTraceId, s as getDocsRequestAnalyticsProperties, t as DOCS_AGENT_TRACE_EVENT_TYPES } from "./analytics-Bx44lg6d.mjs";
2
- import { At as readDocsSitemapManifestFromContentMap, Ct as DEFAULT_SITEMAP_MANIFEST_PATH, Dt as DEFAULT_SITEMAP_XML_ROUTE, Et as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, Ft as resolveDocsSitemapRequest, It as toDocsSitemapMarkdownUrl, Mt as renderDocsSitemapXml, Nt as resolveDocsSitemapConfig, Ot as buildDocsSitemapManifest, Pt as resolveDocsSitemapPageLastmod, Tt as DEFAULT_SITEMAP_MD_ROUTE, jt as renderDocsSitemapMarkdown, kt as createDocsSitemapResponse, wt as DEFAULT_SITEMAP_MD_DOCS_ROUTE } from "./agent-DXkXi-pS.mjs";
3
- import { a as createMcpSearchAdapter, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, f as resolveSearchRequestConfig, i as createCustomSearchAdapter, l as inferDocsAskAIPackageHints, n as buildDocsSearchDocuments, o as createSimpleSearchAdapter, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, u as performDocsSearch } from "./search-CEg1omHv.mjs";
4
- import { C as resolveApiReferenceOpenApiDiscovery, S as resolveApiReferenceConfig, T as remarkCodeGroup, _ as buildApiReferenceOpenApiDocument, a as DEFAULT_PROMPT_PROVIDER_TEMPLATES, b as buildApiReferenceScalarCss, c as resolvePromptProviderChoices, d as serializeDocsIconRegistry, f as serializeOpenDocsProvider, g as buildApiReferenceHtmlDocumentAsync, h as buildApiReferenceHtmlDocument, i as DEFAULT_OPEN_DOCS_TARGET, l as sanitizePromptText, m as DEFAULT_API_REFERENCE_OPENAPI_ROUTE, n as DEFAULT_OPEN_DOCS_PROMPT, o as normalizePromptProviderName, p as serializeOpenDocsProviders, r as DEFAULT_OPEN_DOCS_PROVIDER_IDS, s as parsePromptStringArray, t as readDocsSitemapManifest, u as serializeDocsIcon, v as buildApiReferenceOpenApiDocumentAsync, w as resolveApiReferenceRenderer, x as isApiReferenceOpenApiRequest, y as buildApiReferencePageTitle } from "./sitemap-server-wsNLyVkb.mjs";
2
+ import { At as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, Bt as toDocsSitemapMarkdownUrl, Dt as DEFAULT_SITEMAP_MANIFEST_PATH, Ft as renderDocsSitemapMarkdown, It as renderDocsSitemapXml, Lt as resolveDocsSitemapConfig, Mt as buildDocsSitemapManifest, Nt as createDocsSitemapResponse, Ot as DEFAULT_SITEMAP_MD_DOCS_ROUTE, Pt as readDocsSitemapManifestFromContentMap, Rt as resolveDocsSitemapPageLastmod, jt as DEFAULT_SITEMAP_XML_ROUTE, kt as DEFAULT_SITEMAP_MD_ROUTE, zt as resolveDocsSitemapRequest } from "./agent-CxDzPqtl.mjs";
3
+ import { a as createMcpSearchAdapter, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, f as resolveSearchRequestConfig, i as createCustomSearchAdapter, l as inferDocsAskAIPackageHints, n as buildDocsSearchDocuments, o as createSimpleSearchAdapter, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, u as performDocsSearch } from "./search-OHp36znm.mjs";
4
+ import { C as resolveApiReferenceOpenApiDiscovery, S as resolveApiReferenceConfig, T as remarkCodeGroup, _ as buildApiReferenceOpenApiDocument, a as DEFAULT_PROMPT_PROVIDER_TEMPLATES, b as buildApiReferenceScalarCss, c as resolvePromptProviderChoices, d as serializeDocsIconRegistry, f as serializeOpenDocsProvider, g as buildApiReferenceHtmlDocumentAsync, h as buildApiReferenceHtmlDocument, i as DEFAULT_OPEN_DOCS_TARGET, l as sanitizePromptText, m as DEFAULT_API_REFERENCE_OPENAPI_ROUTE, n as DEFAULT_OPEN_DOCS_PROMPT, o as normalizePromptProviderName, p as serializeOpenDocsProviders, r as DEFAULT_OPEN_DOCS_PROVIDER_IDS, s as parsePromptStringArray, t as readDocsSitemapManifest, u as serializeDocsIcon, v as buildApiReferenceOpenApiDocumentAsync, w as resolveApiReferenceRenderer, x as isApiReferenceOpenApiRequest, y as buildApiReferencePageTitle } from "./sitemap-server-zFYctvCa.mjs";
5
5
  import { a as buildDocsReviewWorkflowPathFilters, c as resolveDocsReviewConfig, i as buildDocsReviewWorkflow, n as DEFAULT_DOCS_REVIEW_SCORE_THRESHOLD, o as ensureDocsReviewWorkflow, r as DEFAULT_DOCS_REVIEW_WORKFLOW_PATH, s as readDocsReviewConfigFromSource, t as runDocsGoldenTasks } from "./agent-evals-BD17jOqL.mjs";
6
6
  import { DEFAULT_DOCS_MCP_CORS_ALLOWED_HEADERS, DEFAULT_DOCS_MCP_CORS_EXPOSED_HEADERS, DEFAULT_DOCS_MCP_CORS_MAX_AGE_SECONDS, DEFAULT_DOCS_MCP_MAX_BODY_BYTES, DOCS_CONFIG_SCHEMA_OPTIONS, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, getDocsConfigSchema, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
7
7
  import { n as isDocsCloudAskAIProvider, t as createDocsCloudAskAIResponse } from "./cloud-ask-ai-1k0q6OAH.mjs";
@@ -1,11 +1,11 @@
1
- import { Mt as renderDocsSitemapXml, Nt as resolveDocsSitemapConfig, Ot as buildDocsSitemapManifest, jt as renderDocsSitemapMarkdown } from "./agent-DXkXi-pS.mjs";
2
- import "./search-CEg1omHv.mjs";
3
- import "./sitemap-server-wsNLyVkb.mjs";
1
+ import { Ft as renderDocsSitemapMarkdown, It as renderDocsSitemapXml, Lt as resolveDocsSitemapConfig, Mt as buildDocsSitemapManifest } from "./agent-CxDzPqtl.mjs";
2
+ import "./search-OHp36znm.mjs";
3
+ import "./sitemap-server-zFYctvCa.mjs";
4
4
  import "./agent-evals-BD17jOqL.mjs";
5
5
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
6
6
  import "./code-blocks-C9awWzEQ.mjs";
7
7
  import "./server.mjs";
8
- import { d as readStringProperty, h as resolveDocsContentDir, i as loadDocsConfigModule, l as readNavTitle, m as resolveDocsConfigPath, p as readTopLevelStringProperty, s as readBooleanProperty, t as extractNestedObjectLiteral } from "./config-CydaZ5PB.mjs";
8
+ import { d as readStringProperty, h as resolveDocsContentDir, i as loadDocsConfigModule, l as readNavTitle, m as resolveDocsConfigPath, p as readTopLevelStringProperty, s as readBooleanProperty, t as extractNestedObjectLiteral } from "./config-DZbZiYEa.mjs";
9
9
  import { t as detectFramework } from "./utils-DBCCkkJS.mjs";
10
10
  import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
11
11
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { Nt as resolveDocsSitemapConfig } from "./agent-DXkXi-pS.mjs";
1
+ import { Lt as resolveDocsSitemapConfig } from "./agent-CxDzPqtl.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
4
4
  import path, { basename, join, relative } from "node:path";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/docs",
3
- "version": "0.2.55",
3
+ "version": "0.2.57",
4
4
  "description": "Modern, flexible MDX-based docs framework — core types, config, and CLI",
5
5
  "keywords": [
6
6
  "docs",
@@ -48,11 +48,12 @@
48
48
  },
49
49
  "dependencies": {
50
50
  "@clack/prompts": "^0.9.1",
51
+ "@mdx-js/mdx": "^3.1.1",
51
52
  "@modelcontextprotocol/sdk": "1.29.0",
52
53
  "@scalar/core": "^0.4.3",
53
54
  "@vercel/sandbox": "^2.0.0",
54
55
  "gray-matter": "^4.0.3",
55
- "jiti": "^2.6.1",
56
+ "jiti": "^2.7.0",
56
57
  "picocolors": "^1.1.1",
57
58
  "zod": "^4.3.6"
58
59
  },