@farming-labs/docs 0.1.87 → 0.1.89

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.
@@ -1,6 +1,6 @@
1
1
  import "./reading-time-CbbHNg9V.mjs";
2
2
  import { _ as parseGeneratedAgentDocument, h as hashGeneratedAgentContent, m as GENERATED_AGENT_PROVENANCE_VERSION, v as serializeGeneratedAgentDocument } from "./search-B5ze-heM.mjs";
3
- import { D as findDocsMarkdownPage, I as renderDocsMarkdownDocument } from "./robots-T0sATQRa.mjs";
3
+ import { B as renderDocsMarkdownDocument, O as findDocsMarkdownPage } from "./robots-DR-Gy1Hs.mjs";
4
4
  import "./index.mjs";
5
5
  import "./sitemap-server-DwEPfk13.mjs";
6
6
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
@@ -77,16 +77,16 @@ async function main() {
77
77
  searchApiKey: typeof flags["search-api-key"] === "string" ? flags["search-api-key"] : void 0
78
78
  };
79
79
  if (!parsedCommand.command || parsedCommand.command === "init") {
80
- const { init } = await import("../init-Bt-RwmSW.mjs");
80
+ const { init } = await import("../init-CO0TzicH.mjs");
81
81
  await init(initOptions);
82
82
  } else if (parsedCommand.command === "dev") {
83
- const { dev } = await import("../dev-D4aVZkZl.mjs");
83
+ const { dev } = await import("../dev-B5L7k3b6.mjs");
84
84
  await dev(devOptions);
85
85
  } else if (parsedCommand.command === "mcp") {
86
86
  const { runMcp } = await import("../mcp-RBCFEtoX.mjs");
87
87
  await runMcp(mcpOptions);
88
88
  } else if (parsedCommand.command === "agent" && subcommand === "compact") {
89
- const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-M9imRSUO.mjs");
89
+ const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-B-CYVd4D.mjs");
90
90
  const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
91
91
  if (agentCompactOptions.help) {
92
92
  printAgentCompactHelp();
@@ -96,11 +96,11 @@ async function main() {
96
96
  } else if (parsedCommand.command === "agent") {
97
97
  console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
98
98
  console.error();
99
- const { printAgentCompactHelp } = await import("../agent-M9imRSUO.mjs");
99
+ const { printAgentCompactHelp } = await import("../agent-B-CYVd4D.mjs");
100
100
  printAgentCompactHelp();
101
101
  process.exit(1);
102
102
  } else if (parsedCommand.command === "doctor") {
103
- const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-CRqpb_Rv.mjs");
103
+ const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-B8bT0Aol.mjs");
104
104
  const doctorOptions = parseDoctorArgs(args.slice(1));
105
105
  if (doctorOptions.help) {
106
106
  printDoctorHelp();
@@ -130,7 +130,7 @@ async function main() {
130
130
  printSitemapGenerateHelp();
131
131
  process.exit(1);
132
132
  } else if (parsedCommand.command === "robots" && subcommand === "generate") {
133
- const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-BO8yD7N7.mjs");
133
+ const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-NI6VU8rj.mjs");
134
134
  const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
135
135
  if (robotsOptions.help) {
136
136
  printRobotsGenerateHelp();
@@ -140,7 +140,7 @@ async function main() {
140
140
  } else if (parsedCommand.command === "robots") {
141
141
  console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
142
142
  console.error();
143
- const { printRobotsGenerateHelp } = await import("../robots-BO8yD7N7.mjs");
143
+ const { printRobotsGenerateHelp } = await import("../robots-NI6VU8rj.mjs");
144
144
  printRobotsGenerateHelp();
145
145
  process.exit(1);
146
146
  } else if (parsedCommand.command === "upgrade") {
@@ -1,4 +1,4 @@
1
- import { K as rootLayoutTemplate, W as postcssConfigTemplate, g as docsLayoutTemplate, v as globalCssTemplate, yt as tsconfigTemplate } from "./templates-CtPtjNu5.mjs";
1
+ import { K as rootLayoutTemplate, W as postcssConfigTemplate, g as docsLayoutTemplate, v as globalCssTemplate, yt as tsconfigTemplate } from "./templates-CmRJIDB9.mjs";
2
2
  import { i as detectPackageManagerFromLockfile } from "./utils-AmYxHDoz.mjs";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
@@ -1,12 +1,12 @@
1
1
  import "./reading-time-CbbHNg9V.mjs";
2
2
  import "./search-B5ze-heM.mjs";
3
3
  import { i as DEFAULT_SITEMAP_XML_ROUTE, n as DEFAULT_SITEMAP_MD_ROUTE, r as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, u as resolveDocsSitemapConfig } from "./sitemap-BIQIYMKe.mjs";
4
- import { C as DEFAULT_SKILL_MD_ROUTE, S as DEFAULT_MCP_WELL_KNOWN_ROUTE, a as analyzeDocsRobotsTxt, b as DEFAULT_MCP_PUBLIC_ROUTE, d as DEFAULT_AGENT_FEEDBACK_ROUTE, g as DEFAULT_LLMS_FULL_TXT_ROUTE, l as resolveDocsRobotsConfig, m as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_ROBOTS_TXT_ROUTE, p as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, w as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE } from "./robots-T0sATQRa.mjs";
4
+ import { C as DEFAULT_MCP_WELL_KNOWN_ROUTE, T as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, a as analyzeDocsRobotsTxt, d as DEFAULT_AGENT_FEEDBACK_ROUTE, g as DEFAULT_LLMS_FULL_TXT_ROUTE, l as resolveDocsRobotsConfig, m as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_ROBOTS_TXT_ROUTE, p as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, w as DEFAULT_SKILL_MD_ROUTE, x as DEFAULT_MCP_PUBLIC_ROUTE, y as DEFAULT_LLMS_TXT_ROUTE } from "./robots-DR-Gy1Hs.mjs";
5
5
  import "./sitemap-server-DwEPfk13.mjs";
6
6
  import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
7
7
  import "./server.mjs";
8
8
  import { a as loadProjectEnv, c as readNavTitle, d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, p as resolveDocsContentDir, r as extractTopLevelConfigObject, t as extractNestedObjectLiteral } from "./config-BR6CcCfr.mjs";
9
- import { inspectAgentCompactionState, scanDocsPageTargets } from "./agent-M9imRSUO.mjs";
9
+ import { inspectAgentCompactionState, scanDocsPageTargets } from "./agent-B-CYVd4D.mjs";
10
10
  import { t as detectFramework } from "./utils-AmYxHDoz.mjs";
11
11
  import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
12
12
  import path from "node:path";
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as DocsSearchResultType, A as DocsConfig, At as TypesenseDocsSearchConfig, B as DocsObservabilityEventInput, C as DocsAskAIActionData, Ct as SidebarFolderIndexBehavior, D as DocsAskAIFeedbackMessage, Dt as SidebarTree, E as DocsAskAIFeedbackData, Et as SidebarPageNode, F as DocsMcpToolsConfig, G as DocsSearchAdapterContext, H as DocsRobotsConfig, I as DocsMetadata, J as DocsSearchConfig, K as DocsSearchAdapterFactory, L as DocsNav, M as DocsFeedbackValue, Mt as UIConfig, N as DocsI18nConfig, O as DocsAskAIFeedbackValue, Ot as SimpleDocsSearchConfig, P as DocsMcpConfig, Q as DocsSearchResult, R as DocsObservabilityConfig, S as DocsAnalyticsSource, St as SidebarConfig, T as DocsAskAIFeedbackConfig, Tt as SidebarNode, U as DocsRobotsRule, V as DocsRelatedItem, W as DocsSearchAdapter, X as DocsSearchEmbeddingsConfig, Y as DocsSearchDocument, Z as DocsSearchQuery, _ as DocsAnalyticsConfig, _t as PageSidebarFrontmatter, a as ApiReferenceRenderer, at as GithubConfig, b as DocsAnalyticsEventType, bt as ResolvedDocsRelatedLink, c as ChangelogFrontmatter, ct as McpDocsSearchConfig, d as CustomDocsSearchConfig, dt as OpenDocsProvider, et as DocsSearchSourcePage, f as DocsAgentFeedbackContext, ft as OpenGraphImage, g as DocsAgentTraceStatus, gt as PageOpenGraph, h as DocsAgentTraceEventType, ht as PageFrontmatter, i as ApiReferenceConfig, it as FontStyle, j as DocsFeedbackData, jt as TypographyConfig, k as DocsAskAIMcpConfig, kt as ThemeToggleConfig, l as CodeBlockCopyData, lt as OGConfig, m as DocsAgentTraceEventInput, mt as PageActionsConfig, n as AgentFeedbackConfig, nt as DocsTheme, o as BreadcrumbConfig, ot as LastUpdatedConfig, p as DocsAgentFeedbackData, pt as OrderingItem, q as DocsSearchChunkingConfig, r as AlgoliaDocsSearchConfig, rt as FeedbackConfig, s as ChangelogConfig, st as LlmsTxtConfig, t as AIConfig, tt as DocsSitemapConfig, u as CopyMarkdownConfig, ut as OpenDocsConfig, v as DocsAnalyticsEvent, vt as PageTwitter, w as DocsAskAIActionType, wt as SidebarFolderNode, x as DocsAnalyticsInput, xt as SidebarComponentProps, y as DocsAnalyticsEventInput, yt as ReadingTimeConfig, z as DocsObservabilityEvent } from "./types-BFITL514.mjs";
2
- import { A as toDocsSitemapMarkdownUrl, B as resolveDocsAnalyticsConfig, C as createDocsSitemapResponse, D as resolveDocsSitemapConfig, E as renderDocsSitemapXml, F as createDocsAgentTraceContext, H as DocsCloudAnalyticsOptions, I as createDocsAgentTraceId, L as emitDocsAgentTraceEvent, M as DocsAgentTraceContext, N as ResolvedDocsAnalyticsConfig, O as resolveDocsSitemapPageLastmod, P as ResolvedDocsObservabilityConfig, R as emitDocsAnalyticsEvent, S as buildDocsSitemapManifest, T as renderDocsSitemapMarkdown, U as createDocsCloudAnalytics, V as resolveDocsObservabilityConfig, _ as DocsSitemapFormat, a as createMcpSearchAdapter, b as DocsSitemapPageInput, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_XML_ROUTE, h as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, i as createCustomSearchAdapter, j as DOCS_AGENT_TRACE_EVENT_TYPES, k as resolveDocsSitemapRequest, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_ROUTE, n as buildDocsSearchDocuments, o as createSimpleSearchAdapter, p as DEFAULT_SITEMAP_MANIFEST_PATH, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, u as performDocsSearch, v as DocsSitemapManifest, w as readDocsSitemapManifestFromContentMap, x as DocsSitemapResolvedConfig, y as DocsSitemapManifestPage, z as emitDocsObservabilityEvent } from "./search-KKfRRUDR.mjs";
1
+ import { $ as DocsSearchResultType, A as DocsConfig, At as SidebarTree, B as DocsObservabilityEventInput, C as DocsAskAIActionData, Ct as ResolvedDocsRelatedLink, D as DocsAskAIFeedbackMessage, Dt as SidebarFolderNode, E as DocsAskAIFeedbackData, Et as SidebarFolderIndexBehavior, F as DocsMcpToolsConfig, Ft as UIConfig, G as DocsSearchAdapterContext, H as DocsRobotsConfig, I as DocsMetadata, J as DocsSearchConfig, K as DocsSearchAdapterFactory, L as DocsNav, M as DocsFeedbackValue, Mt as ThemeToggleConfig, N as DocsI18nConfig, Nt as TypesenseDocsSearchConfig, O as DocsAskAIFeedbackValue, Ot as SidebarNode, P as DocsMcpConfig, Pt as TypographyConfig, Q as DocsSearchResult, R as DocsObservabilityConfig, S as DocsAnalyticsSource, St as ReadingTimeConfig, T as DocsAskAIFeedbackConfig, Tt as SidebarConfig, U as DocsRobotsRule, V as DocsRelatedItem, W as DocsSearchAdapter, X as DocsSearchEmbeddingsConfig, Y as DocsSearchDocument, Z as DocsSearchQuery, _ as DocsAnalyticsConfig, _t as PageActionsConfig, a as ApiReferenceRenderer, at as GithubConfig, b as DocsAnalyticsEventType, bt as PageSidebarFrontmatter, c as ChangelogFrontmatter, ct as LlmsTxtMaxCharsConfig, d as CustomDocsSearchConfig, dt as McpDocsSearchConfig, et as DocsSearchSourcePage, f as DocsAgentFeedbackContext, ft as OGConfig, g as DocsAgentTraceStatus, gt as OrderingItem, h as DocsAgentTraceEventType, ht as OpenGraphImage, i as ApiReferenceConfig, it as FontStyle, j as DocsFeedbackData, jt as SimpleDocsSearchConfig, k as DocsAskAIMcpConfig, kt as SidebarPageNode, l as CodeBlockCopyData, lt as LlmsTxtMaxCharsMode, m as DocsAgentTraceEventInput, mt as OpenDocsProvider, n as AgentFeedbackConfig, nt as DocsTheme, o as BreadcrumbConfig, ot as LastUpdatedConfig, p as DocsAgentFeedbackData, pt as OpenDocsConfig, q as DocsSearchChunkingConfig, r as AlgoliaDocsSearchConfig, rt as FeedbackConfig, s as ChangelogConfig, st as LlmsTxtConfig, t as AIConfig, tt as DocsSitemapConfig, u as CopyMarkdownConfig, ut as LlmsTxtSectionConfig, v as DocsAnalyticsEvent, vt as PageFrontmatter, w as DocsAskAIActionType, wt as SidebarComponentProps, x as DocsAnalyticsInput, xt as PageTwitter, y as DocsAnalyticsEventInput, yt as PageOpenGraph, z as DocsObservabilityEvent } from "./types-DHSYXDUB.mjs";
2
+ import { A as toDocsSitemapMarkdownUrl, B as resolveDocsAnalyticsConfig, C as createDocsSitemapResponse, D as resolveDocsSitemapConfig, E as renderDocsSitemapXml, F as createDocsAgentTraceContext, H as DocsCloudAnalyticsOptions, I as createDocsAgentTraceId, L as emitDocsAgentTraceEvent, M as DocsAgentTraceContext, N as ResolvedDocsAnalyticsConfig, O as resolveDocsSitemapPageLastmod, P as ResolvedDocsObservabilityConfig, R as emitDocsAnalyticsEvent, S as buildDocsSitemapManifest, T as renderDocsSitemapMarkdown, U as createDocsCloudAnalytics, V as resolveDocsObservabilityConfig, _ as DocsSitemapFormat, a as createMcpSearchAdapter, b as DocsSitemapPageInput, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_XML_ROUTE, h as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, i as createCustomSearchAdapter, j as DOCS_AGENT_TRACE_EVENT_TYPES, k as resolveDocsSitemapRequest, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_ROUTE, n as buildDocsSearchDocuments, o as createSimpleSearchAdapter, p as DEFAULT_SITEMAP_MANIFEST_PATH, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, u as performDocsSearch, v as DocsSitemapManifest, w as readDocsSitemapManifestFromContentMap, x as DocsSitemapResolvedConfig, y as DocsSitemapManifestPage, z as emitDocsObservabilityEvent } from "./search-DuOq8JqA.mjs";
3
3
  import { DocsMcpPage, DocsMcpResolvedConfig } from "./mcp.mjs";
4
4
 
5
5
  //#region src/define-docs.d.ts
@@ -211,6 +211,7 @@ declare const DEFAULT_LLMS_TXT_ROUTE = "/llms.txt";
211
211
  declare const DEFAULT_LLMS_FULL_TXT_ROUTE = "/llms-full.txt";
212
212
  declare const DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE = "/.well-known/llms.txt";
213
213
  declare const DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE = "/.well-known/llms-full.txt";
214
+ declare const DEFAULT_LLMS_TXT_MAX_CHARS = 50000;
214
215
  declare const DEFAULT_SKILL_MD_ROUTE = "/skill.md";
215
216
  declare const DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE = "/.well-known/skill.md";
216
217
  declare const DEFAULT_AGENT_FEEDBACK_ROUTE = "/api/docs/agent/feedback";
@@ -225,6 +226,52 @@ interface DocsLlmsDiscoveryConfig {
225
226
  baseUrl?: string;
226
227
  siteTitle?: string;
227
228
  siteDescription?: string;
229
+ maxChars?: LlmsTxtMaxCharsConfig;
230
+ sections?: LlmsTxtSectionConfig[];
231
+ }
232
+ interface DocsLlmsTxtResolvedMaxChars {
233
+ mode: LlmsTxtMaxCharsMode;
234
+ chars: number;
235
+ }
236
+ interface DocsLlmsTxtResolvedSection {
237
+ title: string;
238
+ description?: string;
239
+ match: string[];
240
+ route: string;
241
+ fullRoute: string;
242
+ maxChars: DocsLlmsTxtResolvedMaxChars;
243
+ }
244
+ interface DocsLlmsTxtRequest {
245
+ format: "llms" | "llms-full";
246
+ section?: DocsLlmsTxtResolvedSection;
247
+ }
248
+ interface DocsLlmsTxtPageInput {
249
+ url: string;
250
+ title: string;
251
+ description?: string;
252
+ content: string;
253
+ }
254
+ interface DocsLlmsTxtGeneratedSection extends DocsLlmsTxtResolvedSection {
255
+ llmsTxt: string;
256
+ llmsFullTxt: string;
257
+ }
258
+ interface DocsLlmsTxtGeneratedContent {
259
+ llmsTxt: string;
260
+ llmsFullTxt: string;
261
+ maxChars: DocsLlmsTxtResolvedMaxChars;
262
+ sections: DocsLlmsTxtGeneratedSection[];
263
+ }
264
+ interface DocsLlmsTxtSelectedContent {
265
+ content: string;
266
+ label: string;
267
+ maxChars: DocsLlmsTxtResolvedMaxChars;
268
+ }
269
+ interface DocsLlmsTxtMaxCharsIssue {
270
+ mode: Exclude<LlmsTxtMaxCharsMode, "off">;
271
+ chars: number;
272
+ actual: number;
273
+ label: string;
274
+ message: string;
228
275
  }
229
276
  interface DocsAgentDiscoverySpecOptions {
230
277
  origin: string;
@@ -278,12 +325,19 @@ declare function normalizeDocsUrlPath(value: string): string;
278
325
  declare function toDocsMarkdownUrl(url: string, options?: {
279
326
  locale?: string;
280
327
  }): string;
328
+ declare function resolveDocsLlmsTxtSections(llms?: boolean | DocsLlmsDiscoveryConfig | LlmsTxtConfig): DocsLlmsTxtResolvedSection[];
329
+ declare function matchesDocsLlmsTxtSection(pageUrl: string, section: DocsLlmsTxtResolvedSection): boolean;
330
+ declare function resolveDocsLlmsTxtRequest(url: URL, llms?: boolean | DocsLlmsDiscoveryConfig | LlmsTxtConfig): DocsLlmsTxtRequest | null;
331
+ declare function renderDocsLlmsTxt(pages: DocsLlmsTxtPageInput[], options?: DocsLlmsDiscoveryConfig): DocsLlmsTxtGeneratedContent;
332
+ declare function selectDocsLlmsTxtContent(content: DocsLlmsTxtGeneratedContent, request: DocsLlmsTxtRequest): DocsLlmsTxtSelectedContent | null;
333
+ declare function getDocsLlmsTxtMaxCharsIssue(label: string, content: string, maxChars: DocsLlmsTxtResolvedMaxChars): DocsLlmsTxtMaxCharsIssue | null;
281
334
  declare function isDocsAgentDiscoveryRequest(url: URL): boolean;
282
335
  declare function isDocsMcpRequest(url: URL): boolean;
283
336
  declare function isDocsSkillRequest(url: URL): boolean;
284
337
  declare function resolveDocsSkillFormat(url: URL): "skill" | null;
285
338
  declare function isDocsPublicGetRequest(entry: string, url: URL, request: Request, options?: {
286
339
  sitemap?: boolean | DocsSitemapConfig;
340
+ llms?: boolean | DocsLlmsDiscoveryConfig | LlmsTxtConfig;
287
341
  }): boolean;
288
342
  declare function resolveDocsLlmsTxtFormat(url: URL): "llms" | "llms-full" | null;
289
343
  declare function resolveDocsMarkdownRequest(entry: string, url: URL, request: Request): {
@@ -372,6 +426,13 @@ declare function buildDocsAgentDiscoverySpec({
372
426
  resolutionOrder: string[];
373
427
  };
374
428
  llms: {
429
+ sections?: {
430
+ title: string;
431
+ description: string | undefined;
432
+ match: string[];
433
+ txt: string;
434
+ full: string;
435
+ }[] | undefined;
375
436
  enabled: boolean;
376
437
  defaultTxt: string;
377
438
  defaultFull: string;
@@ -500,4 +561,4 @@ declare function renderDocsRobotsGeneratedBlock(options?: DocsRobotsRenderOption
500
561
  declare function upsertDocsRobotsGeneratedBlock(existing: string, block: string): string;
501
562
  declare function analyzeDocsRobotsTxt(content: string, options?: DocsRobotsRenderOptions): DocsRobotsAnalysis;
502
563
  //#endregion
503
- export { type AIConfig, type AgentFeedbackConfig, type AlgoliaDocsSearchConfig, type ApiReferenceConfig, type ApiReferenceRenderer, type BreadcrumbConfig, type ChangelogConfig, type ChangelogEntrySummary, type ChangelogFrontmatter, type CodeBlockCopyData, type CopyMarkdownConfig, type CustomDocsSearchConfig, DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_SPEC_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS, DEFAULT_DOCS_API_ROUTE, DEFAULT_LLMS_FULL_TXT_ROUTE, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, DEFAULT_LLMS_TXT_ROUTE, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, DEFAULT_MCP_PUBLIC_ROUTE, DEFAULT_MCP_ROUTE, DEFAULT_MCP_WELL_KNOWN_ROUTE, DEFAULT_ROBOTS_TXT_ROUTE, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_ROUTE, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, DEFAULT_SITEMAP_XML_ROUTE, DEFAULT_SKILL_MD_ROUTE, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, DOCS_AGENT_TRACE_EVENT_TYPES, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER, DOCS_ROBOTS_GENERATED_BLOCK_END, DOCS_ROBOTS_GENERATED_BLOCK_START, type DocsAgentDiscoverySpecOptions, type DocsAgentFeedbackContext, type DocsAgentFeedbackData, type DocsAgentFeedbackDiscoveryConfig, type DocsAgentTraceContext, type DocsAgentTraceEventInput, type DocsAgentTraceEventType, type DocsAgentTraceStatus, type DocsAnalyticsConfig, type DocsAnalyticsEvent, type DocsAnalyticsEventInput, type DocsAnalyticsEventType, type DocsAnalyticsInput, type DocsAnalyticsSource, type DocsAskAIActionData, type DocsAskAIActionType, type DocsAskAIFeedbackConfig, type DocsAskAIFeedbackData, type DocsAskAIFeedbackMessage, type DocsAskAIFeedbackValue, type DocsAskAIMcpConfig, type DocsCloudAnalyticsOptions, type DocsConfig, type DocsFeedbackData, type DocsFeedbackValue, type DocsI18nConfig, type DocsLlmsDiscoveryConfig, type DocsMarkdownPage, type DocsMcpConfig, type DocsMcpToolsConfig, type DocsMetadata, type DocsNav, type DocsObservabilityConfig, type DocsObservabilityEvent, type DocsObservabilityEventInput, type DocsPageStructuredDataInput, type DocsPathMatch, type DocsRelatedItem, type DocsRobotsConfig, type DocsRobotsRenderOptions, type DocsRobotsResolvedConfig, type DocsRobotsRule, type DocsSearchAdapter, type DocsSearchAdapterContext, type DocsSearchAdapterFactory, type DocsSearchChunkingConfig, type DocsSearchConfig, type DocsSearchDocument, type DocsSearchEmbeddingsConfig, type DocsSearchQuery, type DocsSearchResult, type DocsSearchResultType, type DocsSearchSourcePage, type DocsSitemapConfig, type DocsSitemapFormat, type DocsSitemapManifest, type DocsSitemapManifestPage, type DocsSitemapPageInput, type DocsSitemapResolvedConfig, type DocsSkillDocumentOptions, type DocsStructuredDataBreadcrumb, type DocsTheme, type FeedbackConfig, type FontStyle, GENERATED_AGENT_PROVENANCE_MARKER, GENERATED_AGENT_PROVENANCE_VERSION, type GeneratedAgentProvenance, type GeneratedAgentSourceKind, type GithubConfig, type LastUpdatedConfig, type LlmsTxtConfig, type McpDocsSearchConfig, type OGConfig, type OpenDocsConfig, type OpenDocsProvider, type OpenGraphImage, type OrderingItem, type PageActionsConfig, type PageFrontmatter, type PageOpenGraph, type PageSidebarFrontmatter, type PageTwitter, type ReadingTimeConfig, type ResolvedChangelogConfig, type ResolvedDocsAnalyticsConfig, type ResolvedDocsI18n, type ResolvedDocsObservabilityConfig, type ResolvedDocsRelatedLink, type SidebarComponentProps, type SidebarConfig, type SidebarFolderIndexBehavior, type SidebarFolderNode, type SidebarNode, type SidebarPageNode, type SidebarTree, type SimpleDocsSearchConfig, type ThemeToggleConfig, type TypesenseDocsSearchConfig, type TypographyConfig, type UIConfig, analyzeDocsRobotsTxt, applySidebarFolderIndexBehavior, buildDocsAgentDiscoverySpec, buildDocsAskAIContext, buildDocsPageStructuredData, buildDocsSearchDocuments, buildDocsSitemapManifest, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAnalytics, createDocsSitemapResponse, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, formatDocsAskAIPackageHints, getDocsMarkdownVaryHeader, getDocsRobotsAllowRoutes, hasDocsMarkdownSignatureAgent, hashGeneratedAgentContent, inferDocsAskAIPackageHints, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseGeneratedAgentDocument, performDocsSearch, readDocsSitemapManifestFromContentMap, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsPageStructuredDataJson, renderDocsRelatedMarkdownLines, renderDocsRobotsGeneratedBlock, renderDocsRobotsTxt, renderDocsSitemapMarkdown, renderDocsSitemapXml, renderDocsSkillDocument, resolveAskAISearchRequestConfig, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsObservabilityConfig, resolveDocsPath, resolveDocsRobotsConfig, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolvePageSidebarFolderIndexBehavior, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveSidebarFolderIndexBehavior, resolveSidebarFolderIndexBehaviorForPath, resolveTitle, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance, toDocsMarkdownUrl, toDocsSitemapMarkdownUrl, upsertDocsRobotsGeneratedBlock };
564
+ export { type AIConfig, type AgentFeedbackConfig, type AlgoliaDocsSearchConfig, type ApiReferenceConfig, type ApiReferenceRenderer, type BreadcrumbConfig, type ChangelogConfig, type ChangelogEntrySummary, type ChangelogFrontmatter, type CodeBlockCopyData, type CopyMarkdownConfig, type CustomDocsSearchConfig, DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_SPEC_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS, DEFAULT_DOCS_API_ROUTE, DEFAULT_LLMS_FULL_TXT_ROUTE, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, DEFAULT_LLMS_TXT_MAX_CHARS, DEFAULT_LLMS_TXT_ROUTE, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, DEFAULT_MCP_PUBLIC_ROUTE, DEFAULT_MCP_ROUTE, DEFAULT_MCP_WELL_KNOWN_ROUTE, DEFAULT_ROBOTS_TXT_ROUTE, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_ROUTE, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, DEFAULT_SITEMAP_XML_ROUTE, DEFAULT_SKILL_MD_ROUTE, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, DOCS_AGENT_TRACE_EVENT_TYPES, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER, DOCS_ROBOTS_GENERATED_BLOCK_END, DOCS_ROBOTS_GENERATED_BLOCK_START, type DocsAgentDiscoverySpecOptions, type DocsAgentFeedbackContext, type DocsAgentFeedbackData, type DocsAgentFeedbackDiscoveryConfig, type DocsAgentTraceContext, type DocsAgentTraceEventInput, type DocsAgentTraceEventType, type DocsAgentTraceStatus, type DocsAnalyticsConfig, type DocsAnalyticsEvent, type DocsAnalyticsEventInput, type DocsAnalyticsEventType, type DocsAnalyticsInput, type DocsAnalyticsSource, type DocsAskAIActionData, type DocsAskAIActionType, type DocsAskAIFeedbackConfig, type DocsAskAIFeedbackData, type DocsAskAIFeedbackMessage, type DocsAskAIFeedbackValue, type DocsAskAIMcpConfig, type DocsCloudAnalyticsOptions, type DocsConfig, type DocsFeedbackData, type DocsFeedbackValue, type DocsI18nConfig, type DocsLlmsDiscoveryConfig, type DocsLlmsTxtGeneratedContent, type DocsLlmsTxtGeneratedSection, type DocsLlmsTxtMaxCharsIssue, type DocsLlmsTxtPageInput, type DocsLlmsTxtRequest, type DocsLlmsTxtResolvedMaxChars, type DocsLlmsTxtResolvedSection, type DocsLlmsTxtSelectedContent, type DocsMarkdownPage, type DocsMcpConfig, type DocsMcpToolsConfig, type DocsMetadata, type DocsNav, type DocsObservabilityConfig, type DocsObservabilityEvent, type DocsObservabilityEventInput, type DocsPageStructuredDataInput, type DocsPathMatch, type DocsRelatedItem, type DocsRobotsConfig, type DocsRobotsRenderOptions, type DocsRobotsResolvedConfig, type DocsRobotsRule, type DocsSearchAdapter, type DocsSearchAdapterContext, type DocsSearchAdapterFactory, type DocsSearchChunkingConfig, type DocsSearchConfig, type DocsSearchDocument, type DocsSearchEmbeddingsConfig, type DocsSearchQuery, type DocsSearchResult, type DocsSearchResultType, type DocsSearchSourcePage, type DocsSitemapConfig, type DocsSitemapFormat, type DocsSitemapManifest, type DocsSitemapManifestPage, type DocsSitemapPageInput, type DocsSitemapResolvedConfig, type DocsSkillDocumentOptions, type DocsStructuredDataBreadcrumb, type DocsTheme, type FeedbackConfig, type FontStyle, GENERATED_AGENT_PROVENANCE_MARKER, GENERATED_AGENT_PROVENANCE_VERSION, type GeneratedAgentProvenance, type GeneratedAgentSourceKind, type GithubConfig, type LastUpdatedConfig, type LlmsTxtConfig, type LlmsTxtMaxCharsConfig, type LlmsTxtMaxCharsMode, type LlmsTxtSectionConfig, type McpDocsSearchConfig, type OGConfig, type OpenDocsConfig, type OpenDocsProvider, type OpenGraphImage, type OrderingItem, type PageActionsConfig, type PageFrontmatter, type PageOpenGraph, type PageSidebarFrontmatter, type PageTwitter, type ReadingTimeConfig, type ResolvedChangelogConfig, type ResolvedDocsAnalyticsConfig, type ResolvedDocsI18n, type ResolvedDocsObservabilityConfig, type ResolvedDocsRelatedLink, type SidebarComponentProps, type SidebarConfig, type SidebarFolderIndexBehavior, type SidebarFolderNode, type SidebarNode, type SidebarPageNode, type SidebarTree, type SimpleDocsSearchConfig, type ThemeToggleConfig, type TypesenseDocsSearchConfig, type TypographyConfig, type UIConfig, analyzeDocsRobotsTxt, applySidebarFolderIndexBehavior, buildDocsAgentDiscoverySpec, buildDocsAskAIContext, buildDocsPageStructuredData, buildDocsSearchDocuments, buildDocsSitemapManifest, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAnalytics, createDocsSitemapResponse, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, formatDocsAskAIPackageHints, getDocsLlmsTxtMaxCharsIssue, getDocsMarkdownVaryHeader, getDocsRobotsAllowRoutes, hasDocsMarkdownSignatureAgent, hashGeneratedAgentContent, inferDocsAskAIPackageHints, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, matchesDocsLlmsTxtSection, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseGeneratedAgentDocument, performDocsSearch, readDocsSitemapManifestFromContentMap, renderDocsLlmsTxt, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsPageStructuredDataJson, renderDocsRelatedMarkdownLines, renderDocsRobotsGeneratedBlock, renderDocsRobotsTxt, renderDocsSitemapMarkdown, renderDocsSitemapXml, renderDocsSkillDocument, resolveAskAISearchRequestConfig, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLlmsTxtRequest, resolveDocsLlmsTxtSections, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsObservabilityConfig, resolveDocsPath, resolveDocsRobotsConfig, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolvePageSidebarFolderIndexBehavior, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveSidebarFolderIndexBehavior, resolveSidebarFolderIndexBehaviorForPath, resolveTitle, selectDocsLlmsTxtContent, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance, toDocsMarkdownUrl, toDocsSitemapMarkdownUrl, upsertDocsRobotsGeneratedBlock };
package/dist/index.mjs CHANGED
@@ -2,6 +2,6 @@ import { _ as extendTheme, a as resolveReadingTimeOptions, b as defineDocs, c as
2
2
  import { A as resolveDocsAnalyticsConfig, C as resolveSidebarFolderIndexBehaviorForPath, D as emitDocsAgentTraceEvent, E as createDocsAgentTraceId, M as createDocsCloudAnalytics, O as emitDocsAnalyticsEvent, S as resolveSidebarFolderIndexBehavior, T as createDocsAgentTraceContext, _ as parseGeneratedAgentDocument, a as createMcpSearchAdapter, b as applySidebarFolderIndexBehavior, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, f as resolveSearchRequestConfig, g as normalizeGeneratedAgentContent, h as hashGeneratedAgentContent, i as createCustomSearchAdapter, j as resolveDocsObservabilityConfig, k as emitDocsObservabilityEvent, l as inferDocsAskAIPackageHints, m as GENERATED_AGENT_PROVENANCE_VERSION, n as buildDocsSearchDocuments, o as createSimpleSearchAdapter, p as GENERATED_AGENT_PROVENANCE_MARKER, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, u as performDocsSearch, v as serializeGeneratedAgentDocument, w as DOCS_AGENT_TRACE_EVENT_TYPES, x as resolvePageSidebarFolderIndexBehavior, y as stripGeneratedAgentProvenance } from "./search-B5ze-heM.mjs";
3
3
  import { n as renderDocsRelatedMarkdownLines, t as normalizeDocsRelated } from "./related-BNj_NdHq.mjs";
4
4
  import { a as buildDocsSitemapManifest, c as renderDocsSitemapMarkdown, d as resolveDocsSitemapPageLastmod, f as resolveDocsSitemapRequest, i as DEFAULT_SITEMAP_XML_ROUTE, l as renderDocsSitemapXml, n as DEFAULT_SITEMAP_MD_ROUTE, o as createDocsSitemapResponse, p as toDocsSitemapMarkdownUrl, r as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, s as readDocsSitemapManifestFromContentMap, t as DEFAULT_SITEMAP_MANIFEST_PATH, u as resolveDocsSitemapConfig } from "./sitemap-BIQIYMKe.mjs";
5
- import { A as isDocsAgentDiscoveryRequest, B as resolveDocsLlmsTxtFormat, C as DEFAULT_SKILL_MD_ROUTE, D as findDocsMarkdownPage, E as buildDocsAgentDiscoverySpec, F as normalizeDocsUrlPath, H as resolveDocsSkillFormat, I as renderDocsMarkdownDocument, L as renderDocsMarkdownNotFound, M as isDocsPublicGetRequest, N as isDocsSkillRequest, O as getDocsMarkdownVaryHeader, P as normalizeDocsPathSegment, R as renderDocsSkillDocument, S as DEFAULT_MCP_WELL_KNOWN_ROUTE, T as DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER, U as toDocsMarkdownUrl, V as resolveDocsMarkdownRequest, _ as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, a as analyzeDocsRobotsTxt, b as DEFAULT_MCP_PUBLIC_ROUTE, c as renderDocsRobotsTxt, d as DEFAULT_AGENT_FEEDBACK_ROUTE, f as DEFAULT_AGENT_SPEC_ROUTE, g as DEFAULT_LLMS_FULL_TXT_ROUTE, h as DEFAULT_DOCS_API_ROUTE, i as DOCS_ROBOTS_GENERATED_BLOCK_START, j as isDocsMcpRequest, k as hasDocsMarkdownSignatureAgent, l as resolveDocsRobotsConfig, m as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_ROBOTS_TXT_ROUTE, o as getDocsRobotsAllowRoutes, p as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, r as DOCS_ROBOTS_GENERATED_BLOCK_END, s as renderDocsRobotsGeneratedBlock, t as DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS, u as upsertDocsRobotsGeneratedBlock, v as DEFAULT_LLMS_TXT_ROUTE, w as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, x as DEFAULT_MCP_ROUTE, y as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, z as resolveDocsAgentMdxContent } from "./robots-T0sATQRa.mjs";
5
+ import { A as getDocsMarkdownVaryHeader, B as renderDocsMarkdownDocument, C as DEFAULT_MCP_WELL_KNOWN_ROUTE, D as buildDocsAgentDiscoverySpec, E as DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER, F as isDocsSkillRequest, G as resolveDocsLlmsTxtRequest, H as renderDocsSkillDocument, I as matchesDocsLlmsTxtSection, J as resolveDocsSkillFormat, K as resolveDocsLlmsTxtSections, L as normalizeDocsPathSegment, M as isDocsAgentDiscoveryRequest, N as isDocsMcpRequest, O as findDocsMarkdownPage, P as isDocsPublicGetRequest, R as normalizeDocsUrlPath, S as DEFAULT_MCP_ROUTE, T as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, U as resolveDocsAgentMdxContent, V as renderDocsMarkdownNotFound, W as resolveDocsLlmsTxtFormat, X as toDocsMarkdownUrl, Y as selectDocsLlmsTxtContent, _ as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, a as analyzeDocsRobotsTxt, b as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, c as renderDocsRobotsTxt, d as DEFAULT_AGENT_FEEDBACK_ROUTE, f as DEFAULT_AGENT_SPEC_ROUTE, g as DEFAULT_LLMS_FULL_TXT_ROUTE, h as DEFAULT_DOCS_API_ROUTE, i as DOCS_ROBOTS_GENERATED_BLOCK_START, j as hasDocsMarkdownSignatureAgent, k as getDocsLlmsTxtMaxCharsIssue, l as resolveDocsRobotsConfig, m as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_ROBOTS_TXT_ROUTE, o as getDocsRobotsAllowRoutes, p as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, q as resolveDocsMarkdownRequest, r as DOCS_ROBOTS_GENERATED_BLOCK_END, s as renderDocsRobotsGeneratedBlock, t as DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS, u as upsertDocsRobotsGeneratedBlock, v as DEFAULT_LLMS_TXT_MAX_CHARS, w as DEFAULT_SKILL_MD_ROUTE, x as DEFAULT_MCP_PUBLIC_ROUTE, y as DEFAULT_LLMS_TXT_ROUTE, z as renderDocsLlmsTxt } from "./robots-DR-Gy1Hs.mjs";
6
6
 
7
- export { DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_SPEC_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS, DEFAULT_DOCS_API_ROUTE, DEFAULT_LLMS_FULL_TXT_ROUTE, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, DEFAULT_LLMS_TXT_ROUTE, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, DEFAULT_MCP_PUBLIC_ROUTE, DEFAULT_MCP_ROUTE, DEFAULT_MCP_WELL_KNOWN_ROUTE, DEFAULT_ROBOTS_TXT_ROUTE, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_ROUTE, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, DEFAULT_SITEMAP_XML_ROUTE, DEFAULT_SKILL_MD_ROUTE, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, DOCS_AGENT_TRACE_EVENT_TYPES, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER, DOCS_ROBOTS_GENERATED_BLOCK_END, DOCS_ROBOTS_GENERATED_BLOCK_START, GENERATED_AGENT_PROVENANCE_MARKER, GENERATED_AGENT_PROVENANCE_VERSION, analyzeDocsRobotsTxt, applySidebarFolderIndexBehavior, buildDocsAgentDiscoverySpec, buildDocsAskAIContext, buildDocsPageStructuredData, buildDocsSearchDocuments, buildDocsSitemapManifest, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAnalytics, createDocsSitemapResponse, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, formatDocsAskAIPackageHints, getDocsMarkdownVaryHeader, getDocsRobotsAllowRoutes, hasDocsMarkdownSignatureAgent, hashGeneratedAgentContent, inferDocsAskAIPackageHints, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseGeneratedAgentDocument, performDocsSearch, readDocsSitemapManifestFromContentMap, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsPageStructuredDataJson, renderDocsRelatedMarkdownLines, renderDocsRobotsGeneratedBlock, renderDocsRobotsTxt, renderDocsSitemapMarkdown, renderDocsSitemapXml, renderDocsSkillDocument, resolveAskAISearchRequestConfig, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsObservabilityConfig, resolveDocsPath, resolveDocsRobotsConfig, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolvePageSidebarFolderIndexBehavior, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveSidebarFolderIndexBehavior, resolveSidebarFolderIndexBehaviorForPath, resolveTitle, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance, toDocsMarkdownUrl, toDocsSitemapMarkdownUrl, upsertDocsRobotsGeneratedBlock };
7
+ export { DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_SPEC_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS, DEFAULT_DOCS_API_ROUTE, DEFAULT_LLMS_FULL_TXT_ROUTE, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, DEFAULT_LLMS_TXT_MAX_CHARS, DEFAULT_LLMS_TXT_ROUTE, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, DEFAULT_MCP_PUBLIC_ROUTE, DEFAULT_MCP_ROUTE, DEFAULT_MCP_WELL_KNOWN_ROUTE, DEFAULT_ROBOTS_TXT_ROUTE, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_ROUTE, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, DEFAULT_SITEMAP_XML_ROUTE, DEFAULT_SKILL_MD_ROUTE, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, DOCS_AGENT_TRACE_EVENT_TYPES, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER, DOCS_ROBOTS_GENERATED_BLOCK_END, DOCS_ROBOTS_GENERATED_BLOCK_START, GENERATED_AGENT_PROVENANCE_MARKER, GENERATED_AGENT_PROVENANCE_VERSION, analyzeDocsRobotsTxt, applySidebarFolderIndexBehavior, buildDocsAgentDiscoverySpec, buildDocsAskAIContext, buildDocsPageStructuredData, buildDocsSearchDocuments, buildDocsSitemapManifest, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAnalytics, createDocsSitemapResponse, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, formatDocsAskAIPackageHints, getDocsLlmsTxtMaxCharsIssue, getDocsMarkdownVaryHeader, getDocsRobotsAllowRoutes, hasDocsMarkdownSignatureAgent, hashGeneratedAgentContent, inferDocsAskAIPackageHints, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, matchesDocsLlmsTxtSection, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseGeneratedAgentDocument, performDocsSearch, readDocsSitemapManifestFromContentMap, renderDocsLlmsTxt, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsPageStructuredDataJson, renderDocsRelatedMarkdownLines, renderDocsRobotsGeneratedBlock, renderDocsRobotsTxt, renderDocsSitemapMarkdown, renderDocsSitemapXml, renderDocsSkillDocument, resolveAskAISearchRequestConfig, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLlmsTxtRequest, resolveDocsLlmsTxtSections, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsObservabilityConfig, resolveDocsPath, resolveDocsRobotsConfig, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolvePageSidebarFolderIndexBehavior, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveSidebarFolderIndexBehavior, resolveSidebarFolderIndexBehaviorForPath, resolveTitle, selectDocsLlmsTxtContent, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance, toDocsMarkdownUrl, toDocsSitemapMarkdownUrl, upsertDocsRobotsGeneratedBlock };
@@ -1,4 +1,4 @@
1
- import { $ as svelteDocsPublicHookTemplate, A as nextConfigMergedTemplate, B as nuxtServerApiDocsRouteTemplate, C as injectRootProviderIntoLayout, D as injectTanstackVitePlugins, E as injectTanstackRootProviderIntoRoute, F as nuxtDocsConfigTemplate, G as quickstartPageTemplate, H as nuxtServerDocsPublicMiddlewareTemplate, I as nuxtDocsPageTemplate, J as svelteDocsApiRouteTemplate, K as rootLayoutTemplate, L as nuxtGlobalCssTemplate, M as nextLocaleDocPageTemplate, N as nextLocalizedPageTemplate, O as installationPageTemplate, P as nuxtConfigTemplate, Q as svelteDocsPageTemplate, R as nuxtInstallationPageTemplate, S as injectNuxtCssImport, T as injectSvelteDocsPublicHook, U as nuxtWelcomePageTemplate, V as nuxtServerApiReferenceRouteTemplate, W as postcssConfigTemplate, X as svelteDocsLayoutServerTemplate, Y as svelteDocsConfigTemplate, Z as svelteDocsLayoutTemplate, _ as getAstroAdapterPkg, _t as tanstackViteConfigTemplate, a as astroDocsIndexTemplate, at as svelteWelcomePageTemplate, b as injectAstroDocsMiddleware, bt as welcomePageTemplate, c as astroDocsServerTemplate, ct as tanstackDocsCatchAllRouteTemplate, d as astroQuickstartPageTemplate, dt as tanstackDocsIndexRouteTemplate, et as svelteDocsServerTemplate, f as astroWelcomePageTemplate, ft as tanstackDocsPublicRouteTemplate, g as docsLayoutTemplate, gt as tanstackRootRouteTemplate, h as docsConfigTemplate, ht as tanstackQuickstartPageTemplate, i as astroDocsConfigTemplate, it as svelteRootLayoutTemplate, j as nextConfigTemplate, k as nextApiReferencePageTemplate, l as astroGlobalCssTemplate, lt as tanstackDocsConfigTemplate, m as customThemeTsTemplate, mt as tanstackInstallationPageTemplate, n as astroApiRouteTemplate, nt as svelteInstallationPageTemplate, o as astroDocsMiddlewareTemplate, ot as tanstackApiDocsRouteTemplate, p as customThemeCssTemplate, pt as tanstackDocsServerTemplate, q as svelteApiReferenceRouteTemplate, r as astroConfigTemplate, rt as svelteQuickstartPageTemplate, s as astroDocsPageTemplate, st as tanstackApiReferenceRouteTemplate, t as astroApiReferenceRouteTemplate, tt as svelteGlobalCssTemplate, u as astroInstallationPageTemplate, ut as tanstackDocsFunctionsTemplate, v as globalCssTemplate, vt as tanstackWelcomePageTemplate, w as injectSvelteCssImport, x as injectCssImport, y as injectAstroCssImport, yt as tsconfigTemplate, z as nuxtQuickstartPageTemplate } from "./templates-CtPtjNu5.mjs";
1
+ import { $ as svelteDocsPublicHookTemplate, A as nextConfigMergedTemplate, B as nuxtServerApiDocsRouteTemplate, C as injectRootProviderIntoLayout, D as injectTanstackVitePlugins, E as injectTanstackRootProviderIntoRoute, F as nuxtDocsConfigTemplate, G as quickstartPageTemplate, H as nuxtServerDocsPublicMiddlewareTemplate, I as nuxtDocsPageTemplate, J as svelteDocsApiRouteTemplate, K as rootLayoutTemplate, L as nuxtGlobalCssTemplate, M as nextLocaleDocPageTemplate, N as nextLocalizedPageTemplate, O as installationPageTemplate, P as nuxtConfigTemplate, Q as svelteDocsPageTemplate, R as nuxtInstallationPageTemplate, S as injectNuxtCssImport, T as injectSvelteDocsPublicHook, U as nuxtWelcomePageTemplate, V as nuxtServerApiReferenceRouteTemplate, W as postcssConfigTemplate, X as svelteDocsLayoutServerTemplate, Y as svelteDocsConfigTemplate, Z as svelteDocsLayoutTemplate, _ as getAstroAdapterPkg, _t as tanstackViteConfigTemplate, a as astroDocsIndexTemplate, at as svelteWelcomePageTemplate, b as injectAstroDocsMiddleware, bt as welcomePageTemplate, c as astroDocsServerTemplate, ct as tanstackDocsCatchAllRouteTemplate, d as astroQuickstartPageTemplate, dt as tanstackDocsIndexRouteTemplate, et as svelteDocsServerTemplate, f as astroWelcomePageTemplate, ft as tanstackDocsPublicRouteTemplate, g as docsLayoutTemplate, gt as tanstackRootRouteTemplate, h as docsConfigTemplate, ht as tanstackQuickstartPageTemplate, i as astroDocsConfigTemplate, it as svelteRootLayoutTemplate, j as nextConfigTemplate, k as nextApiReferencePageTemplate, l as astroGlobalCssTemplate, lt as tanstackDocsConfigTemplate, m as customThemeTsTemplate, mt as tanstackInstallationPageTemplate, n as astroApiRouteTemplate, nt as svelteInstallationPageTemplate, o as astroDocsMiddlewareTemplate, ot as tanstackApiDocsRouteTemplate, p as customThemeCssTemplate, pt as tanstackDocsServerTemplate, q as svelteApiReferenceRouteTemplate, r as astroConfigTemplate, rt as svelteQuickstartPageTemplate, s as astroDocsPageTemplate, st as tanstackApiReferenceRouteTemplate, t as astroApiReferenceRouteTemplate, tt as svelteGlobalCssTemplate, u as astroInstallationPageTemplate, ut as tanstackDocsFunctionsTemplate, v as globalCssTemplate, vt as tanstackWelcomePageTemplate, w as injectSvelteCssImport, x as injectCssImport, y as injectAstroCssImport, yt as tsconfigTemplate, z as nuxtQuickstartPageTemplate } from "./templates-CmRJIDB9.mjs";
2
2
  import { a as devInstallCommand, c as installCommand, d as writeFileSafe, i as detectPackageManagerFromLockfile, l as readFileSafe, n as detectGlobalCssFiles, o as exec, r as detectNextAppDir, s as fileExists, t as detectFramework, u as spawnAndWaitFor } from "./utils-AmYxHDoz.mjs";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
package/dist/mcp.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { J as DocsSearchConfig, P as DocsMcpConfig, R as DocsObservabilityConfig, _ as DocsAnalyticsConfig, et as DocsSearchSourcePage, pt as OrderingItem } from "./types-BFITL514.mjs";
1
+ import { J as DocsSearchConfig, P as DocsMcpConfig, R as DocsObservabilityConfig, _ as DocsAnalyticsConfig, et as DocsSearchSourcePage, gt as OrderingItem } from "./types-DHSYXDUB.mjs";
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
 
4
4
  //#region src/mcp.d.ts
@@ -13,6 +13,7 @@ const DEFAULT_LLMS_TXT_ROUTE = "/llms.txt";
13
13
  const DEFAULT_LLMS_FULL_TXT_ROUTE = "/llms-full.txt";
14
14
  const DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE = "/.well-known/llms.txt";
15
15
  const DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE = "/.well-known/llms-full.txt";
16
+ const DEFAULT_LLMS_TXT_MAX_CHARS = 5e4;
16
17
  const DEFAULT_SKILL_MD_ROUTE = "/skill.md";
17
18
  const DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE = "/.well-known/skill.md";
18
19
  const DEFAULT_AGENT_DISCOVERY_ROBOTS_TXT_ROUTE = "/robots.txt";
@@ -36,6 +37,211 @@ function toDocsMarkdownUrl(url, options = {}) {
36
37
  const search = params.toString();
37
38
  return `${markdownPath}${search ? `?${search}` : ""}${hash ? `#${hash}` : ""}`;
38
39
  }
40
+ function joinDocsPublicRoute(prefix, suffix) {
41
+ const normalizedPrefix = normalizeDocsUrlPath(`/${normalizeDocsPathSegment(prefix)}`);
42
+ const normalizedSuffix = `/${normalizeDocsPathSegment(suffix)}`;
43
+ if (normalizedPrefix === "/") return normalizedSuffix;
44
+ return normalizeDocsUrlPath(`${normalizedPrefix}${normalizedSuffix}`);
45
+ }
46
+ function normalizeLlmsTxtMatch(value) {
47
+ const trimmed = value.trim();
48
+ if (!trimmed) return "/";
49
+ return normalizeDocsUrlPath(trimmed.startsWith("/") ? trimmed : `/${trimmed}`);
50
+ }
51
+ function llmsTxtMatchPrefix(value) {
52
+ const normalized = normalizeLlmsTxtMatch(value);
53
+ const wildcardIndex = normalized.indexOf("*");
54
+ return normalizeDocsUrlPath((wildcardIndex >= 0 ? normalized.slice(0, wildcardIndex) : normalized).replace(/\/+$/, "") || "/");
55
+ }
56
+ function deriveLlmsTxtSectionRoute(match) {
57
+ return joinDocsPublicRoute(llmsTxtMatchPrefix(match[0] ?? "/"), "llms.txt");
58
+ }
59
+ function deriveLlmsTxtSectionFullRoute(route) {
60
+ const normalized = normalizeDocsUrlPath(route);
61
+ if (normalized.endsWith("/llms.txt")) return `${normalized.slice(0, -9)}/llms-full.txt`;
62
+ return joinDocsPublicRoute(normalized, "llms-full.txt");
63
+ }
64
+ function normalizeLlmsTxtMaxChars(value, fallback) {
65
+ const mode = value?.mode ?? fallback?.mode ?? "warn";
66
+ const chars = value?.chars ?? fallback?.chars ?? DEFAULT_LLMS_TXT_MAX_CHARS;
67
+ return {
68
+ mode,
69
+ chars: Number.isFinite(chars) && chars > 0 ? Math.floor(chars) : DEFAULT_LLMS_TXT_MAX_CHARS
70
+ };
71
+ }
72
+ function resolveDocsLlmsTxtSections(llms) {
73
+ if (!llms || typeof llms !== "object" || !Array.isArray(llms.sections)) return [];
74
+ const rootMaxChars = normalizeLlmsTxtMaxChars(llms.maxChars);
75
+ return llms.sections.flatMap((section) => {
76
+ const match = (Array.isArray(section.match) ? section.match : [section.match]).map(normalizeLlmsTxtMatch).filter(Boolean);
77
+ if (match.length === 0) return [];
78
+ const route = deriveLlmsTxtSectionRoute(match);
79
+ const resolved = {
80
+ title: section.title,
81
+ match,
82
+ route,
83
+ fullRoute: deriveLlmsTxtSectionFullRoute(route),
84
+ maxChars: normalizeLlmsTxtMaxChars(section.maxChars, rootMaxChars)
85
+ };
86
+ if (section.description !== void 0) resolved.description = section.description;
87
+ return [resolved];
88
+ });
89
+ }
90
+ function matchesDocsLlmsTxtSection(pageUrl, section) {
91
+ const pathname = normalizeDocsUrlPath(pageUrl.split(/[?#]/, 1)[0] || "/");
92
+ return section.match.some((pattern) => {
93
+ const normalized = normalizeLlmsTxtMatch(pattern);
94
+ if (normalized.endsWith("/**")) {
95
+ const prefix = normalizeDocsUrlPath(normalized.slice(0, -3) || "/");
96
+ if (prefix === "/") return true;
97
+ return pathname === prefix || pathname.startsWith(`${prefix}/`);
98
+ }
99
+ if (normalized.endsWith("/*")) {
100
+ const prefix = normalizeDocsUrlPath(normalized.slice(0, -2) || "/");
101
+ if (prefix === "/") {
102
+ const directChild = pathname.slice(1);
103
+ return directChild.length > 0 && !directChild.includes("/");
104
+ }
105
+ if (!pathname.startsWith(`${prefix}/`)) return false;
106
+ return !pathname.slice(prefix.length + 1).includes("/");
107
+ }
108
+ return pathname === normalized;
109
+ });
110
+ }
111
+ function resolveDocsLlmsTxtRequest(url, llms) {
112
+ const pathname = normalizeDocsUrlPath(url.pathname);
113
+ const sections = resolveDocsLlmsTxtSections(llms);
114
+ for (const section of sections) {
115
+ if (pathname === section.route) return {
116
+ format: "llms",
117
+ section
118
+ };
119
+ if (pathname === section.fullRoute) return {
120
+ format: "llms-full",
121
+ section
122
+ };
123
+ }
124
+ const format = url.searchParams.get("format");
125
+ if (pathname === DEFAULT_DOCS_API_ROUTE && (format === "llms" || format === "llms-full")) {
126
+ const sectionRoute = url.searchParams.get("section")?.trim();
127
+ const normalizedSectionRoute = sectionRoute ? normalizeDocsUrlPath(sectionRoute) : void 0;
128
+ return {
129
+ format,
130
+ section: normalizedSectionRoute ? sections.find((candidate) => candidate.route === normalizedSectionRoute || candidate.fullRoute === normalizedSectionRoute) ?? {
131
+ title: "",
132
+ match: [],
133
+ route: normalizedSectionRoute,
134
+ fullRoute: normalizedSectionRoute,
135
+ maxChars: normalizeLlmsTxtMaxChars(void 0)
136
+ } : void 0
137
+ };
138
+ }
139
+ if (pathname === DEFAULT_LLMS_TXT_ROUTE || pathname === DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE) return { format: "llms" };
140
+ if (pathname === DEFAULT_LLMS_FULL_TXT_ROUTE || pathname === DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE) return { format: "llms-full" };
141
+ return null;
142
+ }
143
+ function renderLlmsTxtPageList(pages, baseUrl) {
144
+ let content = "";
145
+ for (const page of pages) {
146
+ content += `- [${page.title}](${baseUrl}${toDocsMarkdownUrl(page.url)})`;
147
+ if (page.description) content += `: ${page.description}`;
148
+ content += "\n";
149
+ }
150
+ return content;
151
+ }
152
+ function renderLlmsFullTxtPages(pages, baseUrl) {
153
+ let content = "";
154
+ for (const page of pages) {
155
+ content += `## ${page.title}\n\n`;
156
+ content += `URL: ${baseUrl}${page.url}\n\n`;
157
+ if (page.description) content += `${page.description}\n\n`;
158
+ content += `${page.content}\n\n---\n\n`;
159
+ }
160
+ return content;
161
+ }
162
+ function renderDocsLlmsTxt(pages, options = {}) {
163
+ const siteTitle = options.siteTitle ?? "Documentation";
164
+ const siteDescription = options.siteDescription;
165
+ const baseUrl = options.baseUrl ?? "";
166
+ const maxChars = normalizeLlmsTxtMaxChars(options.maxChars);
167
+ const sections = resolveDocsLlmsTxtSections(options);
168
+ const matchedPageUrls = /* @__PURE__ */ new Set();
169
+ const generatedSections = sections.map((section) => {
170
+ const sectionPages = pages.filter((page) => matchesDocsLlmsTxtSection(page.url, section));
171
+ for (const page of sectionPages) matchedPageUrls.add(normalizeDocsUrlPath(page.url));
172
+ let llmsTxt = `# ${siteTitle} - ${section.title}\n\n`;
173
+ if (section.description) llmsTxt += `> ${section.description}\n\n`;
174
+ else if (siteDescription) llmsTxt += `> ${siteDescription}\n\n`;
175
+ llmsTxt += "## Pages\n\n";
176
+ llmsTxt += renderLlmsTxtPageList(sectionPages, baseUrl);
177
+ let llmsFullTxt = `# ${siteTitle} - ${section.title}\n\n`;
178
+ if (section.description) llmsFullTxt += `> ${section.description}\n\n`;
179
+ else if (siteDescription) llmsFullTxt += `> ${siteDescription}\n\n`;
180
+ llmsFullTxt += renderLlmsFullTxtPages(sectionPages, baseUrl);
181
+ return {
182
+ ...section,
183
+ llmsTxt,
184
+ llmsFullTxt
185
+ };
186
+ });
187
+ const rootPages = generatedSections.length > 0 ? pages.filter((page) => !matchedPageUrls.has(normalizeDocsUrlPath(page.url))) : pages;
188
+ let llmsTxt = `# ${siteTitle}\n\n`;
189
+ if (siteDescription) llmsTxt += `> ${siteDescription}\n\n`;
190
+ if (generatedSections.length > 0) {
191
+ llmsTxt += "## Sections\n\n";
192
+ for (const section of generatedSections) {
193
+ llmsTxt += `- [${section.title}](${baseUrl}${section.route})`;
194
+ if (section.description) llmsTxt += `: ${section.description}`;
195
+ llmsTxt += "\n";
196
+ }
197
+ llmsTxt += "\n";
198
+ }
199
+ if (rootPages.length > 0 || generatedSections.length === 0) {
200
+ llmsTxt += "## Pages\n\n";
201
+ llmsTxt += renderLlmsTxtPageList(rootPages, baseUrl);
202
+ }
203
+ let llmsFullTxt = `# ${siteTitle}\n\n`;
204
+ if (siteDescription) llmsFullTxt += `> ${siteDescription}\n\n`;
205
+ llmsFullTxt += renderLlmsFullTxtPages(pages, baseUrl);
206
+ return {
207
+ llmsTxt,
208
+ llmsFullTxt,
209
+ maxChars,
210
+ sections: generatedSections
211
+ };
212
+ }
213
+ function selectDocsLlmsTxtContent(content, request) {
214
+ if (request.section) {
215
+ const section = content.sections.find((candidate) => candidate.route === request.section?.route);
216
+ if (!section) return null;
217
+ return {
218
+ content: request.format === "llms-full" ? section.llmsFullTxt : section.llmsTxt,
219
+ label: request.format === "llms-full" ? section.fullRoute : section.route,
220
+ maxChars: request.format === "llms-full" ? {
221
+ ...section.maxChars,
222
+ mode: "off"
223
+ } : section.maxChars
224
+ };
225
+ }
226
+ return {
227
+ content: request.format === "llms-full" ? content.llmsFullTxt : content.llmsTxt,
228
+ label: request.format === "llms-full" ? DEFAULT_LLMS_FULL_TXT_ROUTE : DEFAULT_LLMS_TXT_ROUTE,
229
+ maxChars: request.format === "llms-full" ? {
230
+ ...content.maxChars,
231
+ mode: "off"
232
+ } : content.maxChars
233
+ };
234
+ }
235
+ function getDocsLlmsTxtMaxCharsIssue(label, content, maxChars) {
236
+ if (maxChars.mode === "off" || content.length <= maxChars.chars) return null;
237
+ return {
238
+ mode: maxChars.mode,
239
+ chars: maxChars.chars,
240
+ actual: content.length,
241
+ label,
242
+ message: `${label} is ${content.length.toLocaleString()} chars, above the configured ${maxChars.chars.toLocaleString()} char llms.txt budget.`
243
+ };
244
+ }
39
245
  function isDocsAgentDiscoveryRequest(url) {
40
246
  const pathname = normalizeDocsUrlPath(url.pathname);
41
247
  if (pathname === DEFAULT_DOCS_API_ROUTE && url.searchParams.get("agent")?.trim() === "spec") return true;
@@ -56,14 +262,10 @@ function resolveDocsSkillFormat(url) {
56
262
  function isDocsPublicGetRequest(entry, url, request, options = {}) {
57
263
  const pathname = normalizeDocsUrlPath(url.pathname);
58
264
  if (pathname === DEFAULT_DOCS_API_ROUTE || pathname === DEFAULT_MCP_ROUTE) return false;
59
- return isDocsAgentDiscoveryRequest(url) || isDocsSkillRequest(url) || resolveDocsLlmsTxtFormat(url) !== null || resolveDocsSitemapRequest(url, options.sitemap) !== null || resolveDocsMarkdownRequest(entry, url, request) !== null;
265
+ return isDocsAgentDiscoveryRequest(url) || isDocsSkillRequest(url) || resolveDocsLlmsTxtRequest(url, options.llms) !== null || resolveDocsSitemapRequest(url, options.sitemap) !== null || resolveDocsMarkdownRequest(entry, url, request) !== null;
60
266
  }
61
267
  function resolveDocsLlmsTxtFormat(url) {
62
- const pathname = normalizeDocsUrlPath(url.pathname);
63
- if (pathname === DEFAULT_LLMS_TXT_ROUTE || pathname === DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE) return "llms";
64
- if (pathname === DEFAULT_LLMS_FULL_TXT_ROUTE || pathname === DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE) return "llms-full";
65
- const format = url.searchParams.get("format");
66
- return pathname === DEFAULT_DOCS_API_ROUTE && (format === "llms" || format === "llms-full") ? format : null;
268
+ return resolveDocsLlmsTxtRequest(url)?.format ?? null;
67
269
  }
68
270
  function resolveDocsMarkdownRequest(entry, url, request) {
69
271
  const pathname = normalizeDocsUrlPath(url.pathname);
@@ -146,6 +348,7 @@ function renderDocsSkillDocument({ origin, entry = "docs", search, mcp, feedback
146
348
  const robotsEnabled = isRobotsDiscoveryEnabled(robots);
147
349
  const feedbackRoute = feedback?.route ?? DEFAULT_AGENT_FEEDBACK_ROUTE;
148
350
  const feedbackSchemaRoute = feedback?.schemaRoute ?? `${feedbackRoute}/schema`;
351
+ const llmsSections = resolveDocsLlmsTxtSections(llms);
149
352
  const description = truncateSkillDescription(`Use ${siteTitle} through markdown routes, llms.txt, robots.txt, agent discovery, search, and MCP when available.`);
150
353
  const markdownAcceptHeader = markdown?.acceptHeader === false ? null : "text/markdown";
151
354
  const markdownSignatureAgentHeader = markdown?.signatureAgentHeader === false ? null : DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER;
@@ -164,7 +367,10 @@ function renderDocsSkillDocument({ origin, entry = "docs", search, mcp, feedback
164
367
  if (markdownAcceptHeader) lines.push(`- You can also request ${markdownAcceptHeader} from normal page URLs.`);
165
368
  if (markdownSignatureAgentHeader) lines.push(`- Requests with ${markdownSignatureAgentHeader} on normal page URLs receive markdown automatically.`);
166
369
  if (searchEnabled) lines.push(`- Search with ${DEFAULT_DOCS_API_ROUTE}?query={query} when you do not know the page.`);
167
- if (llmsEnabled) lines.push(`- Use ${DEFAULT_LLMS_TXT_ROUTE} for a compact docs index.`, `- Use ${DEFAULT_LLMS_FULL_TXT_ROUTE} for full markdown context.`);
370
+ if (llmsEnabled) {
371
+ lines.push(`- Use ${DEFAULT_LLMS_TXT_ROUTE} for a compact docs index.`, `- Use ${DEFAULT_LLMS_FULL_TXT_ROUTE} for full markdown context.`);
372
+ for (const section of llmsSections) lines.push(`- Use ${section.route} for the ${section.title} llms.txt section.`);
373
+ }
168
374
  if (sitemapConfig.enabled) {
169
375
  if (sitemapConfig.xml.enabled) lines.push(`- Use ${sitemapConfig.xml.route} to check canonical page freshness.`);
170
376
  if (sitemapConfig.markdown.enabled) lines.push(`- Use ${sitemapConfig.markdown.route} for a semantic docs map.`);
@@ -174,7 +380,13 @@ function renderDocsSkillDocument({ origin, entry = "docs", search, mcp, feedback
174
380
  if (feedbackEnabled) lines.push(`- Read ${feedbackSchemaRoute} before posting agent feedback to ${feedbackRoute}.`);
175
381
  lines.push("", "## Routes", `- Skill document: ${DEFAULT_SKILL_MD_ROUTE}`, `- Skill well-known alias: ${DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE}`, `- Skill API format: ${DEFAULT_DOCS_API_ROUTE}?format=skill`, `- Agent discovery: ${DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE}`, `- Agent discovery fallback: ${DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE}`, `- Markdown root: /${normalizedEntry}.md`, `- Markdown pages: /${normalizedEntry}/{slug}.md`);
176
382
  if (robotsEnabled) lines.push(`- Robots policy: ${DEFAULT_AGENT_DISCOVERY_ROBOTS_TXT_ROUTE}`);
177
- if (llmsEnabled) lines.push(`- llms.txt: ${DEFAULT_LLMS_TXT_ROUTE}`, `- llms-full.txt: ${DEFAULT_LLMS_FULL_TXT_ROUTE}`, `- llms well-known aliases: ${DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE}, ${DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE}`);
383
+ if (llmsEnabled) {
384
+ lines.push(`- llms.txt: ${DEFAULT_LLMS_TXT_ROUTE}`, `- llms-full.txt: ${DEFAULT_LLMS_FULL_TXT_ROUTE}`, `- llms well-known aliases: ${DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE}, ${DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE}`);
385
+ for (const section of llmsSections) {
386
+ lines.push(`- ${section.title} llms.txt: ${section.route}`);
387
+ lines.push(`- ${section.title} llms-full.txt: ${section.fullRoute}`);
388
+ }
389
+ }
178
390
  if (sitemapConfig.enabled) {
179
391
  if (sitemapConfig.xml.enabled) lines.push(`- Sitemap XML: ${sitemapConfig.xml.route}`);
180
392
  if (sitemapConfig.markdown.enabled) lines.push(`- Sitemap Markdown: ${sitemapConfig.markdown.route}`, `- Sitemap well-known alias: ${sitemapConfig.markdown.wellKnownRoute}`);
@@ -237,6 +449,7 @@ function buildDocsAgentDiscoverySpec({ origin, entry = "docs", i18n = null, sear
237
449
  const feedbackRoute = feedback?.route ?? DEFAULT_AGENT_FEEDBACK_ROUTE;
238
450
  const feedbackSchemaRoute = feedback?.schemaRoute ?? `${feedbackRoute}/schema`;
239
451
  const llmsEnabled = llms?.enabled ?? true;
452
+ const llmsSections = resolveDocsLlmsTxtSections(llms);
240
453
  const sitemapConfig = resolveDocsSitemapConfig(sitemap, { baseUrl: llms?.baseUrl });
241
454
  const robotsEnabled = isRobotsDiscoveryEnabled(robots);
242
455
  return {
@@ -301,7 +514,14 @@ function buildDocsAgentDiscoverySpec({ origin, entry = "docs", i18n = null, sear
301
514
  publicTxt: DEFAULT_LLMS_TXT_ROUTE,
302
515
  publicFull: DEFAULT_LLMS_FULL_TXT_ROUTE,
303
516
  wellKnownTxt: DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE,
304
- wellKnownFull: DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE
517
+ wellKnownFull: DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE,
518
+ ...llmsSections.length > 0 ? { sections: llmsSections.map((section) => ({
519
+ title: section.title,
520
+ description: section.description,
521
+ match: section.match,
522
+ txt: section.route,
523
+ full: section.fullRoute
524
+ })) } : {}
305
525
  },
306
526
  sitemap: {
307
527
  enabled: sitemapConfig.enabled,
@@ -595,4 +815,4 @@ function analyzeDocsRobotsTxt(content, options = {}) {
595
815
  }
596
816
 
597
817
  //#endregion
598
- export { isDocsAgentDiscoveryRequest as A, resolveDocsLlmsTxtFormat as B, DEFAULT_SKILL_MD_ROUTE as C, findDocsMarkdownPage as D, buildDocsAgentDiscoverySpec as E, normalizeDocsUrlPath as F, resolveDocsSkillFormat as H, renderDocsMarkdownDocument as I, renderDocsMarkdownNotFound as L, isDocsPublicGetRequest as M, isDocsSkillRequest as N, getDocsMarkdownVaryHeader as O, normalizeDocsPathSegment as P, renderDocsSkillDocument as R, DEFAULT_MCP_WELL_KNOWN_ROUTE as S, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER as T, toDocsMarkdownUrl as U, resolveDocsMarkdownRequest as V, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE as _, analyzeDocsRobotsTxt as a, DEFAULT_MCP_PUBLIC_ROUTE as b, renderDocsRobotsTxt as c, DEFAULT_AGENT_FEEDBACK_ROUTE as d, DEFAULT_AGENT_SPEC_ROUTE as f, DEFAULT_LLMS_FULL_TXT_ROUTE as g, DEFAULT_DOCS_API_ROUTE as h, DOCS_ROBOTS_GENERATED_BLOCK_START as i, isDocsMcpRequest as j, hasDocsMarkdownSignatureAgent as k, resolveDocsRobotsConfig as l, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE as m, DEFAULT_ROBOTS_TXT_ROUTE as n, getDocsRobotsAllowRoutes as o, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE as p, DOCS_ROBOTS_GENERATED_BLOCK_END as r, renderDocsRobotsGeneratedBlock as s, DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS as t, upsertDocsRobotsGeneratedBlock as u, DEFAULT_LLMS_TXT_ROUTE as v, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE as w, DEFAULT_MCP_ROUTE as x, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE as y, resolveDocsAgentMdxContent as z };
818
+ export { getDocsMarkdownVaryHeader as A, renderDocsMarkdownDocument as B, DEFAULT_MCP_WELL_KNOWN_ROUTE as C, buildDocsAgentDiscoverySpec as D, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER as E, isDocsSkillRequest as F, resolveDocsLlmsTxtRequest as G, renderDocsSkillDocument as H, matchesDocsLlmsTxtSection as I, resolveDocsSkillFormat as J, resolveDocsLlmsTxtSections as K, normalizeDocsPathSegment as L, isDocsAgentDiscoveryRequest as M, isDocsMcpRequest as N, findDocsMarkdownPage as O, isDocsPublicGetRequest as P, normalizeDocsUrlPath as R, DEFAULT_MCP_ROUTE as S, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE as T, resolveDocsAgentMdxContent as U, renderDocsMarkdownNotFound as V, resolveDocsLlmsTxtFormat as W, toDocsMarkdownUrl as X, selectDocsLlmsTxtContent as Y, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE as _, analyzeDocsRobotsTxt as a, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE as b, renderDocsRobotsTxt as c, DEFAULT_AGENT_FEEDBACK_ROUTE as d, DEFAULT_AGENT_SPEC_ROUTE as f, DEFAULT_LLMS_FULL_TXT_ROUTE as g, DEFAULT_DOCS_API_ROUTE as h, DOCS_ROBOTS_GENERATED_BLOCK_START as i, hasDocsMarkdownSignatureAgent as j, getDocsLlmsTxtMaxCharsIssue as k, resolveDocsRobotsConfig as l, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE as m, DEFAULT_ROBOTS_TXT_ROUTE as n, getDocsRobotsAllowRoutes as o, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE as p, resolveDocsMarkdownRequest as q, DOCS_ROBOTS_GENERATED_BLOCK_END as r, renderDocsRobotsGeneratedBlock as s, DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS as t, upsertDocsRobotsGeneratedBlock as u, DEFAULT_LLMS_TXT_MAX_CHARS as v, DEFAULT_SKILL_MD_ROUTE as w, DEFAULT_MCP_PUBLIC_ROUTE as x, DEFAULT_LLMS_TXT_ROUTE as y, renderDocsLlmsTxt as z };
@@ -1,4 +1,4 @@
1
- import { i as DOCS_ROBOTS_GENERATED_BLOCK_START, l as resolveDocsRobotsConfig, r as DOCS_ROBOTS_GENERATED_BLOCK_END, s as renderDocsRobotsGeneratedBlock, u as upsertDocsRobotsGeneratedBlock } from "./robots-T0sATQRa.mjs";
1
+ import { i as DOCS_ROBOTS_GENERATED_BLOCK_START, l as resolveDocsRobotsConfig, r as DOCS_ROBOTS_GENERATED_BLOCK_END, s as renderDocsRobotsGeneratedBlock, u as upsertDocsRobotsGeneratedBlock } from "./robots-DR-Gy1Hs.mjs";
2
2
  import { d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-BR6CcCfr.mjs";
3
3
  import { t as detectFramework } from "./utils-AmYxHDoz.mjs";
4
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
@@ -1,4 +1,4 @@
1
- import { At as TypesenseDocsSearchConfig, B as DocsObservabilityEventInput, J as DocsSearchConfig, K as DocsSearchAdapterFactory, Q as DocsSearchResult, R as DocsObservabilityConfig, W as DocsSearchAdapter, Y as DocsSearchDocument, _ as DocsAnalyticsConfig, bt as ResolvedDocsRelatedLink, ct as McpDocsSearchConfig, d as CustomDocsSearchConfig, et as DocsSearchSourcePage, k as DocsAskAIMcpConfig, m as DocsAgentTraceEventInput, q as DocsSearchChunkingConfig, r as AlgoliaDocsSearchConfig, tt as DocsSitemapConfig, v as DocsAnalyticsEvent, y as DocsAnalyticsEventInput, z as DocsObservabilityEvent } from "./types-BFITL514.mjs";
1
+ import { B as DocsObservabilityEventInput, Ct as ResolvedDocsRelatedLink, J as DocsSearchConfig, K as DocsSearchAdapterFactory, Nt as TypesenseDocsSearchConfig, Q as DocsSearchResult, R as DocsObservabilityConfig, W as DocsSearchAdapter, Y as DocsSearchDocument, _ as DocsAnalyticsConfig, d as CustomDocsSearchConfig, dt as McpDocsSearchConfig, et as DocsSearchSourcePage, k as DocsAskAIMcpConfig, m as DocsAgentTraceEventInput, q as DocsSearchChunkingConfig, r as AlgoliaDocsSearchConfig, tt as DocsSitemapConfig, v as DocsAnalyticsEvent, y as DocsAnalyticsEventInput, z as DocsObservabilityEvent } from "./types-DHSYXDUB.mjs";
2
2
 
3
3
  //#region src/cloud-analytics.d.ts
4
4
  interface DocsCloudAnalyticsOptions {
package/dist/server.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as DocsConfig, B as DocsObservabilityEventInput, D as DocsAskAIFeedbackMessage, E as DocsAskAIFeedbackData, G as DocsSearchAdapterContext, J as DocsSearchConfig, K as DocsSearchAdapterFactory, O as DocsAskAIFeedbackValue, Q as DocsSearchResult, R as DocsObservabilityConfig, T as DocsAskAIFeedbackConfig, W as DocsSearchAdapter, Y as DocsSearchDocument, Z as DocsSearchQuery, _ as DocsAnalyticsConfig, a as ApiReferenceRenderer, ct as McpDocsSearchConfig, dt as OpenDocsProvider, et as DocsSearchSourcePage, g as DocsAgentTraceStatus, h as DocsAgentTraceEventType, k as DocsAskAIMcpConfig, m as DocsAgentTraceEventInput, tt as DocsSitemapConfig, v as DocsAnalyticsEvent, y as DocsAnalyticsEventInput, z as DocsObservabilityEvent } from "./types-BFITL514.mjs";
2
- import { A as toDocsSitemapMarkdownUrl, B as resolveDocsAnalyticsConfig, C as createDocsSitemapResponse, D as resolveDocsSitemapConfig, E as renderDocsSitemapXml, F as createDocsAgentTraceContext, H as DocsCloudAnalyticsOptions, I as createDocsAgentTraceId, L as emitDocsAgentTraceEvent, M as DocsAgentTraceContext, N as ResolvedDocsAnalyticsConfig, O as resolveDocsSitemapPageLastmod, P as ResolvedDocsObservabilityConfig, R as emitDocsAnalyticsEvent, S as buildDocsSitemapManifest, T as renderDocsSitemapMarkdown, U as createDocsCloudAnalytics, V as resolveDocsObservabilityConfig, _ as DocsSitemapFormat, a as createMcpSearchAdapter, b as DocsSitemapPageInput, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_XML_ROUTE, h as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, i as createCustomSearchAdapter, j as DOCS_AGENT_TRACE_EVENT_TYPES, k as resolveDocsSitemapRequest, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_ROUTE, n as buildDocsSearchDocuments, o as createSimpleSearchAdapter, p as DEFAULT_SITEMAP_MANIFEST_PATH, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, u as performDocsSearch, v as DocsSitemapManifest, w as readDocsSitemapManifestFromContentMap, x as DocsSitemapResolvedConfig, y as DocsSitemapManifestPage, z as emitDocsObservabilityEvent } from "./search-KKfRRUDR.mjs";
1
+ import { A as DocsConfig, B as DocsObservabilityEventInput, D as DocsAskAIFeedbackMessage, E as DocsAskAIFeedbackData, G as DocsSearchAdapterContext, J as DocsSearchConfig, K as DocsSearchAdapterFactory, O as DocsAskAIFeedbackValue, Q as DocsSearchResult, R as DocsObservabilityConfig, T as DocsAskAIFeedbackConfig, W as DocsSearchAdapter, Y as DocsSearchDocument, Z as DocsSearchQuery, _ as DocsAnalyticsConfig, a as ApiReferenceRenderer, dt as McpDocsSearchConfig, et as DocsSearchSourcePage, g as DocsAgentTraceStatus, h as DocsAgentTraceEventType, k as DocsAskAIMcpConfig, m as DocsAgentTraceEventInput, mt as OpenDocsProvider, tt as DocsSitemapConfig, v as DocsAnalyticsEvent, y as DocsAnalyticsEventInput, z as DocsObservabilityEvent } from "./types-DHSYXDUB.mjs";
2
+ import { A as toDocsSitemapMarkdownUrl, B as resolveDocsAnalyticsConfig, C as createDocsSitemapResponse, D as resolveDocsSitemapConfig, E as renderDocsSitemapXml, F as createDocsAgentTraceContext, H as DocsCloudAnalyticsOptions, I as createDocsAgentTraceId, L as emitDocsAgentTraceEvent, M as DocsAgentTraceContext, N as ResolvedDocsAnalyticsConfig, O as resolveDocsSitemapPageLastmod, P as ResolvedDocsObservabilityConfig, R as emitDocsAnalyticsEvent, S as buildDocsSitemapManifest, T as renderDocsSitemapMarkdown, U as createDocsCloudAnalytics, V as resolveDocsObservabilityConfig, _ as DocsSitemapFormat, a as createMcpSearchAdapter, b as DocsSitemapPageInput, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_XML_ROUTE, h as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, i as createCustomSearchAdapter, j as DOCS_AGENT_TRACE_EVENT_TYPES, k as resolveDocsSitemapRequest, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_ROUTE, n as buildDocsSearchDocuments, o as createSimpleSearchAdapter, p as DEFAULT_SITEMAP_MANIFEST_PATH, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, u as performDocsSearch, v as DocsSitemapManifest, w as readDocsSitemapManifestFromContentMap, x as DocsSitemapResolvedConfig, y as DocsSitemapManifestPage, z as emitDocsObservabilityEvent } from "./search-DuOq8JqA.mjs";
3
3
  import { DocsMcpHttpHandlers, DocsMcpNavigationNode, DocsMcpNavigationTree, DocsMcpPage, DocsMcpResolvedConfig, DocsMcpSource, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
4
4
 
5
5
  //#region src/api-reference.d.ts
@@ -851,7 +851,7 @@ export const Route = createFileRoute("${entryUrl}/$")({
851
851
  handlers: {
852
852
  GET: async ({ request }) => {
853
853
  const url = new URL(request.url);
854
- if (isDocsPublicGetRequest(${JSON.stringify(opts.entry)}, url, request, { sitemap: docsConfig.sitemap })) {
854
+ if (isDocsPublicGetRequest(${JSON.stringify(opts.entry)}, url, request, { sitemap: docsConfig.sitemap, llms: docsConfig.llmsTxt })) {
855
855
  return docsServer.GET({ request });
856
856
  }
857
857
  return undefined;
@@ -930,7 +930,7 @@ async function handlePublicDocsRequest(request: Request) {
930
930
  });
931
931
  }
932
932
 
933
- if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, url, request, { sitemap: docsConfig.sitemap })) {
933
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, url, request, { sitemap: docsConfig.sitemap, llms: docsConfig.llmsTxt })) {
934
934
  return docsServer.GET({ request });
935
935
  }
936
936
 
@@ -1349,7 +1349,7 @@ export const handle: Handle = async ({ event, resolve }) => {
1349
1349
  });
1350
1350
  }
1351
1351
 
1352
- if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, event.url, event.request, { sitemap: config.sitemap })) {
1352
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, event.url, event.request, { sitemap: config.sitemap, llms: config.llmsTxt })) {
1353
1353
  return GET({ url: event.url, request: event.request });
1354
1354
  }
1355
1355
 
@@ -1397,7 +1397,7 @@ const docsPublicHandle: Handle = async ({ event, resolve }) => {
1397
1397
  });
1398
1398
  }
1399
1399
 
1400
- if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, event.url, event.request, { sitemap: config.sitemap })) {
1400
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, event.url, event.request, { sitemap: config.sitemap, llms: config.llmsTxt })) {
1401
1401
  return docsGET({ url: event.url, request: event.request });
1402
1402
  }
1403
1403
 
@@ -1813,7 +1813,7 @@ export const onRequest: MiddlewareHandler = async (context, next) => {
1813
1813
  });
1814
1814
  }
1815
1815
 
1816
- if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, context.url, context.request, { sitemap: config.sitemap })) {
1816
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, context.url, context.request, { sitemap: config.sitemap, llms: config.llmsTxt })) {
1817
1817
  return GET({ request: context.request });
1818
1818
  }
1819
1819
 
@@ -1861,7 +1861,7 @@ const docsPublicMiddleware: MiddlewareHandler = async (context, next) => {
1861
1861
  });
1862
1862
  }
1863
1863
 
1864
- if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, context.url, context.request, { sitemap: config.sitemap })) {
1864
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, context.url, context.request, { sitemap: config.sitemap, llms: config.llmsTxt })) {
1865
1865
  return docsGET({ request: context.request });
1866
1866
  }
1867
1867
 
@@ -757,6 +757,61 @@ interface LlmsTxtConfig {
757
757
  * Site description shown below the title.
758
758
  */
759
759
  siteDescription?: string;
760
+ /**
761
+ * Character budget for generated compact `llms.txt` files.
762
+ *
763
+ * `mode: "warn"` logs a warning when the generated content is over budget.
764
+ * `mode: "error"` returns an error response for that generated file.
765
+ * `mode: "off"` disables the budget check.
766
+ *
767
+ * @default { mode: "warn", chars: 50000 }
768
+ */
769
+ maxChars?: LlmsTxtMaxCharsConfig;
770
+ /**
771
+ * Optional section-level llms.txt files for progressive disclosure.
772
+ *
773
+ * Each section is matched against public docs URLs, for example
774
+ * `/docs/api/**` derives `/docs/api/llms.txt` and
775
+ * `/docs/api/llms-full.txt`.
776
+ */
777
+ sections?: LlmsTxtSectionConfig[];
778
+ }
779
+ type LlmsTxtMaxCharsMode = "warn" | "error" | "off";
780
+ interface LlmsTxtMaxCharsConfig {
781
+ /**
782
+ * How to handle generated llms.txt content that exceeds `chars`.
783
+ *
784
+ * @default "warn"
785
+ */
786
+ mode?: LlmsTxtMaxCharsMode;
787
+ /**
788
+ * Maximum recommended character count.
789
+ *
790
+ * @default 50000
791
+ */
792
+ chars?: number;
793
+ }
794
+ interface LlmsTxtSectionConfig {
795
+ /**
796
+ * Human-readable section title shown in the root and section files.
797
+ */
798
+ title: string;
799
+ /**
800
+ * Optional description shown next to the section link in root llms.txt.
801
+ */
802
+ description?: string;
803
+ /**
804
+ * Public URL matcher for pages included in this section.
805
+ *
806
+ * Supported forms include exact paths such as `/docs/reference` and
807
+ * prefix globs such as `/docs/api/**`.
808
+ */
809
+ match: string | string[];
810
+ /**
811
+ * Optional section-specific character budget. Inherits `llmsTxt.maxChars`
812
+ * when omitted.
813
+ */
814
+ maxChars?: LlmsTxtMaxCharsConfig;
760
815
  }
761
816
  interface SitemapXmlConfig {
762
817
  /**
@@ -2353,4 +2408,4 @@ interface DocsConfig {
2353
2408
  og?: OGConfig;
2354
2409
  }
2355
2410
  //#endregion
2356
- export { DocsSearchResultType as $, DocsConfig as A, TypesenseDocsSearchConfig as At, DocsObservabilityEventInput as B, DocsAskAIActionData as C, SidebarFolderIndexBehavior as Ct, DocsAskAIFeedbackMessage as D, SidebarTree as Dt, DocsAskAIFeedbackData as E, SidebarPageNode as Et, DocsMcpToolsConfig as F, DocsSearchAdapterContext as G, DocsRobotsConfig as H, DocsMetadata as I, DocsSearchConfig as J, DocsSearchAdapterFactory as K, DocsNav as L, DocsFeedbackValue as M, UIConfig as Mt, DocsI18nConfig as N, DocsAskAIFeedbackValue as O, SimpleDocsSearchConfig as Ot, DocsMcpConfig as P, DocsSearchResult as Q, DocsObservabilityConfig as R, DocsAnalyticsSource as S, SidebarConfig as St, DocsAskAIFeedbackConfig as T, SidebarNode as Tt, DocsRobotsRule as U, DocsRelatedItem as V, DocsSearchAdapter as W, DocsSearchEmbeddingsConfig as X, DocsSearchDocument as Y, DocsSearchQuery as Z, DocsAnalyticsConfig as _, PageSidebarFrontmatter as _t, ApiReferenceRenderer as a, GithubConfig as at, DocsAnalyticsEventType as b, ResolvedDocsRelatedLink as bt, ChangelogFrontmatter as c, McpDocsSearchConfig as ct, CustomDocsSearchConfig as d, OpenDocsProvider as dt, DocsSearchSourcePage as et, DocsAgentFeedbackContext as f, OpenGraphImage as ft, DocsAgentTraceStatus as g, PageOpenGraph as gt, DocsAgentTraceEventType as h, PageFrontmatter as ht, ApiReferenceConfig as i, FontStyle as it, DocsFeedbackData as j, TypographyConfig as jt, DocsAskAIMcpConfig as k, ThemeToggleConfig as kt, CodeBlockCopyData as l, OGConfig as lt, DocsAgentTraceEventInput as m, PageActionsConfig as mt, AgentFeedbackConfig as n, DocsTheme as nt, BreadcrumbConfig as o, LastUpdatedConfig as ot, DocsAgentFeedbackData as p, OrderingItem as pt, DocsSearchChunkingConfig as q, AlgoliaDocsSearchConfig as r, FeedbackConfig as rt, ChangelogConfig as s, LlmsTxtConfig as st, AIConfig as t, DocsSitemapConfig as tt, CopyMarkdownConfig as u, OpenDocsConfig as ut, DocsAnalyticsEvent as v, PageTwitter as vt, DocsAskAIActionType as w, SidebarFolderNode as wt, DocsAnalyticsInput as x, SidebarComponentProps as xt, DocsAnalyticsEventInput as y, ReadingTimeConfig as yt, DocsObservabilityEvent as z };
2411
+ export { DocsSearchResultType as $, DocsConfig as A, SidebarTree as At, DocsObservabilityEventInput as B, DocsAskAIActionData as C, ResolvedDocsRelatedLink as Ct, DocsAskAIFeedbackMessage as D, SidebarFolderNode as Dt, DocsAskAIFeedbackData as E, SidebarFolderIndexBehavior as Et, DocsMcpToolsConfig as F, UIConfig as Ft, DocsSearchAdapterContext as G, DocsRobotsConfig as H, DocsMetadata as I, DocsSearchConfig as J, DocsSearchAdapterFactory as K, DocsNav as L, DocsFeedbackValue as M, ThemeToggleConfig as Mt, DocsI18nConfig as N, TypesenseDocsSearchConfig as Nt, DocsAskAIFeedbackValue as O, SidebarNode as Ot, DocsMcpConfig as P, TypographyConfig as Pt, DocsSearchResult as Q, DocsObservabilityConfig as R, DocsAnalyticsSource as S, ReadingTimeConfig as St, DocsAskAIFeedbackConfig as T, SidebarConfig as Tt, DocsRobotsRule as U, DocsRelatedItem as V, DocsSearchAdapter as W, DocsSearchEmbeddingsConfig as X, DocsSearchDocument as Y, DocsSearchQuery as Z, DocsAnalyticsConfig as _, PageActionsConfig as _t, ApiReferenceRenderer as a, GithubConfig as at, DocsAnalyticsEventType as b, PageSidebarFrontmatter as bt, ChangelogFrontmatter as c, LlmsTxtMaxCharsConfig as ct, CustomDocsSearchConfig as d, McpDocsSearchConfig as dt, DocsSearchSourcePage as et, DocsAgentFeedbackContext as f, OGConfig as ft, DocsAgentTraceStatus as g, OrderingItem as gt, DocsAgentTraceEventType as h, OpenGraphImage as ht, ApiReferenceConfig as i, FontStyle as it, DocsFeedbackData as j, SimpleDocsSearchConfig as jt, DocsAskAIMcpConfig as k, SidebarPageNode as kt, CodeBlockCopyData as l, LlmsTxtMaxCharsMode as lt, DocsAgentTraceEventInput as m, OpenDocsProvider as mt, AgentFeedbackConfig as n, DocsTheme as nt, BreadcrumbConfig as o, LastUpdatedConfig as ot, DocsAgentFeedbackData as p, OpenDocsConfig as pt, DocsSearchChunkingConfig as q, AlgoliaDocsSearchConfig as r, FeedbackConfig as rt, ChangelogConfig as s, LlmsTxtConfig as st, AIConfig as t, DocsSitemapConfig as tt, CopyMarkdownConfig as u, LlmsTxtSectionConfig as ut, DocsAnalyticsEvent as v, PageFrontmatter as vt, DocsAskAIActionType as w, SidebarComponentProps as wt, DocsAnalyticsInput as x, PageTwitter as xt, DocsAnalyticsEventInput as y, PageOpenGraph as yt, DocsObservabilityEvent as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/docs",
3
- "version": "0.1.87",
3
+ "version": "0.1.89",
4
4
  "description": "Modern, flexible MDX-based docs framework — core types, config, and CLI",
5
5
  "keywords": [
6
6
  "docs",