@farming-labs/docs 0.1.96 → 0.1.98

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,8 +1,8 @@
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-BL7o2rXk.mjs";
3
- import { O as findDocsMarkdownPage, V as renderDocsMarkdownDocument } from "./robots-5ywOPCZ-.mjs";
3
+ import { K as renderDocsMarkdownDocument, M as findDocsMarkdownPage } from "./robots-kWkyLc7r.mjs";
4
4
  import "./index.mjs";
5
- import "./sitemap-server-DwEPfk13.mjs";
5
+ import "./sitemap-server-CJEm6hr5.mjs";
6
6
  import { createFilesystemDocsMcpSource } 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, l as readNumberProperty, o as readBooleanProperty, p as resolveDocsContentDir, s as readEnvReferenceProperty, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-UI31_wlO.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-CO0TzicH.mjs");
80
+ const { init } = await import("../init-CrEmoE77.mjs");
81
81
  await init(initOptions);
82
82
  } else if (parsedCommand.command === "dev") {
83
- const { dev } = await import("../dev-B5L7k3b6.mjs");
83
+ const { dev } = await import("../dev-BYcuiPDT.mjs");
84
84
  await dev(devOptions);
85
85
  } else if (parsedCommand.command === "mcp") {
86
- const { runMcp } = await import("../mcp-B7x8mPrj.mjs");
86
+ const { runMcp } = await import("../mcp-B81O1ge_.mjs");
87
87
  await runMcp(mcpOptions);
88
88
  } else if (parsedCommand.command === "agent" && subcommand === "compact") {
89
- const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-DvxjrAXk.mjs");
89
+ const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-CrDjOj_r.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-DvxjrAXk.mjs");
99
+ const { printAgentCompactHelp } = await import("../agent-CrDjOj_r.mjs");
100
100
  printAgentCompactHelp();
101
101
  process.exit(1);
102
102
  } else if (parsedCommand.command === "doctor") {
103
- const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-Cz-fWNZa.mjs");
103
+ const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-DoAc0pk1.mjs");
104
104
  const doctorOptions = parseDoctorArgs(args.slice(1));
105
105
  if (doctorOptions.help) {
106
106
  printDoctorHelp();
@@ -108,7 +108,7 @@ async function main() {
108
108
  }
109
109
  await runDoctor(doctorOptions);
110
110
  } else if (parsedCommand.command === "search" && subcommand === "sync") {
111
- const { syncSearch } = await import("../search-o8jXDckl.mjs");
111
+ const { syncSearch } = await import("../search-DQoE9Ptd.mjs");
112
112
  await syncSearch(searchSyncOptions);
113
113
  } else if (parsedCommand.command === "search") {
114
114
  console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
@@ -116,7 +116,7 @@ async function main() {
116
116
  printHelp();
117
117
  process.exit(1);
118
118
  } else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
119
- const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-DFVo9yr0.mjs");
119
+ const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-BnvSrGc8.mjs");
120
120
  const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
121
121
  if (sitemapOptions.help) {
122
122
  printSitemapGenerateHelp();
@@ -126,11 +126,11 @@ async function main() {
126
126
  } else if (parsedCommand.command === "sitemap") {
127
127
  console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
128
128
  console.error();
129
- const { printSitemapGenerateHelp } = await import("../sitemap-DFVo9yr0.mjs");
129
+ const { printSitemapGenerateHelp } = await import("../sitemap-BnvSrGc8.mjs");
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-RfxmIgQV.mjs");
133
+ const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-BaXaw9yz.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-RfxmIgQV.mjs");
143
+ const { printRobotsGenerateHelp } = await import("../robots-BaXaw9yz.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-CmRJIDB9.mjs";
1
+ import { K as rootLayoutTemplate, W as postcssConfigTemplate, g as docsLayoutTemplate, v as globalCssTemplate, yt as tsconfigTemplate } from "./templates-WRMxbthG.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-BL7o2rXk.mjs";
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_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-5ywOPCZ-.mjs";
5
- import "./sitemap-server-DwEPfk13.mjs";
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-CnqcTdQg.mjs";
4
+ import { D as DEFAULT_SKILL_MD_ROUTE, E as DEFAULT_MCP_WELL_KNOWN_ROUTE, O as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, S as DEFAULT_LLMS_TXT_ROUTE, _ as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, a as analyzeDocsRobotsTxt, g as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, m as DEFAULT_AGENT_FEEDBACK_ROUTE, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveDocsRobotsConfig, w as DEFAULT_MCP_PUBLIC_ROUTE, y as DEFAULT_LLMS_FULL_TXT_ROUTE } from "./robots-kWkyLc7r.mjs";
5
+ import "./sitemap-server-CJEm6hr5.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-UI31_wlO.mjs";
9
- import { inspectAgentCompactionState, scanDocsPageTargets } from "./agent-DvxjrAXk.mjs";
9
+ import { inspectAgentCompactionState, scanDocsPageTargets } from "./agent-CrDjOj_r.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";
@@ -245,16 +245,21 @@ function resolveStaticExport(config, content) {
245
245
  }
246
246
  function resolveAgentFeedbackEnabled(config, content) {
247
247
  const feedback = config?.feedback;
248
+ if (feedback === false) return false;
249
+ if (feedback === true) return true;
248
250
  if (feedback && typeof feedback === "object") {
249
251
  const agent = feedback.agent;
250
252
  if (typeof agent === "boolean") return agent;
251
253
  if (agent && typeof agent === "object") return agent.enabled ?? true;
254
+ return true;
252
255
  }
256
+ const topLevelBoolean = readTopLevelBooleanProperty(content, "feedback");
257
+ if (typeof topLevelBoolean === "boolean") return topLevelBoolean;
253
258
  const feedbackBlock = extractNestedObjectLiteral(content, ["feedback"]);
254
- if (!feedbackBlock) return false;
259
+ if (!feedbackBlock) return true;
255
260
  const nestedAgentBlock = extractNestedObjectLiteral(content, ["feedback", "agent"]);
256
261
  if (nestedAgentBlock) return readBooleanProperty(nestedAgentBlock, "enabled") ?? true;
257
- return readBooleanProperty(feedbackBlock, "agent") ?? false;
262
+ return readBooleanProperty(feedbackBlock, "agent") ?? true;
258
263
  }
259
264
  function resolveHumanFeedbackEnabled(config, content) {
260
265
  const feedback = config?.feedback;
@@ -1231,7 +1236,7 @@ async function inspectAgentReadiness(options = {}) {
1231
1236
  const compactionResult = compactionFreshnessScore(compactionCoverage, compactConfigured);
1232
1237
  const routeSurface = detectRouteSurface(rootDir, framework, staticExport, files);
1233
1238
  const mcpConfig = resolveDocsMcpConfig(config?.mcp ?? void 0, { defaultName: siteTitle });
1234
- const sitemapConfig = resolveDocsSitemapConfig(config?.sitemap ?? readSitemapConfigFromStatic(configContent) ?? false);
1239
+ const sitemapConfig = resolveDocsSitemapConfig(config?.sitemap ?? readSitemapConfigFromStatic(configContent) ?? true);
1235
1240
  const robotsInput = config?.robots ?? readRobotsConfigFromStatic(configContent) ?? true;
1236
1241
  const robotsConfig = robotsInput === false ? resolveDocsRobotsConfig(false) : resolveDocsRobotsConfig(robotsInput, { baseUrl: (typeof robotsInput === "object" ? robotsInput.baseUrl : void 0) ?? sitemapConfig.baseUrl });
1237
1242
  const robotsPath = resolveRobotsFilePath(rootDir, framework, typeof robotsInput === "object" ? robotsInput : void 0);
@@ -1248,7 +1253,8 @@ async function inspectAgentReadiness(options = {}) {
1248
1253
  checks.push(sitemapConfig.enabled ? makeCheck("sitemap", "Sitemap discovery", "pass", 5, 5, `Enabled via ${sitemapConfig.xml.route}, ${sitemapConfig.markdown.route}, and ${sitemapConfig.markdown.wellKnownRoute}.`) : makeCheck("sitemap", "Sitemap discovery", "warn", 0, 5, "Generated sitemap routes are disabled in docs config.", "Enable sitemap so crawlers and agents can discover canonical docs URLs, semantic sections, and lastmod freshness metadata."));
1249
1254
  const relativeRobotsPath = path.relative(rootDir, robotsPath).replace(/\\/g, "/");
1250
1255
  if (!robotsConfig.enabled) checks.push(makeCheck("robots", "Robots agent policy", "warn", 0, 5, "Robots generation is disabled in docs config.", "Enable robots and run `docs robots generate` so crawlers can discover agent-readable docs routes."));
1251
- else if (!existsSync(robotsPath)) checks.push(makeCheck("robots", "Robots agent policy", "warn", 0, 5, `No robots.txt found at ${relativeRobotsPath}.`, `Run docs robots generate --path ${relativeRobotsPath} to publish an agent-friendly crawl policy.`));
1256
+ else if (!existsSync(robotsPath)) if (routeSurface.apiMounted && routeSurface.publicMounted && !staticExport) checks.push(makeCheck("robots", "Robots agent policy", "pass", 5, 5, "Runtime /robots.txt is served by the shared docs handler."));
1257
+ else checks.push(makeCheck("robots", "Robots agent policy", "warn", 0, 5, `No robots.txt found at ${relativeRobotsPath}.`, `Run docs robots generate --path ${relativeRobotsPath} to publish an agent-friendly crawl policy.`));
1252
1258
  else {
1253
1259
  const analysis = analyzeDocsRobotsTxt(readFileSync(robotsPath, "utf-8"), {
1254
1260
  entry,
@@ -1260,7 +1266,7 @@ async function inspectAgentReadiness(options = {}) {
1260
1266
  const complete = analysis.hasAgentRoutes && analysis.hasAiPolicy;
1261
1267
  checks.push(makeCheck("robots", "Robots agent policy", blocked ? "fail" : complete ? "pass" : "warn", blocked ? 0 : complete ? 5 : 3, 5, blocked ? `${relativeRobotsPath} blocks ${analysis.blocksAiAgents ? "common AI crawlers" : "agent-readable docs routes"}.` : complete ? `${relativeRobotsPath} advertises agent-readable routes and common AI crawler policy.` : `${relativeRobotsPath} exists, but is missing ${analysis.missingRoutes.length > 0 ? `agent routes (${analysis.missingRoutes.join(", ")})` : "common AI crawler policy"}.`, blocked || !complete ? `Run docs robots generate --append --path ${relativeRobotsPath} to add the generated agent policy without replacing the existing file.` : void 0));
1262
1268
  }
1263
- checks.push(skillFileExists ? makeCheck("skill", "Skill document", "pass", 5, 5, `Found root skill.md for ${DEFAULT_SKILL_MD_ROUTE} and ${DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE}.`) : makeCheck("skill", "Skill document", "warn", 3, 5, `No root skill.md found; the framework will serve the generated fallback at ${DEFAULT_SKILL_MD_ROUTE}.`, "Add a root skill.md if you want a custom site-specific bootstrap document instead of the generated fallback."));
1269
+ checks.push(skillFileExists ? makeCheck("skill", "Skill document", "pass", 5, 5, `Found root skill.md for ${DEFAULT_SKILL_MD_ROUTE} and ${DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE}.`) : makeCheck("skill", "Skill document", "pass", 5, 5, `No root skill.md found; the framework will serve the generated fallback at ${DEFAULT_SKILL_MD_ROUTE}.`));
1264
1270
  checks.push(mcpEnabled ? makeCheck("mcp", "MCP access", "pass", 10, 10, `Enabled with public aliases ${DEFAULT_MCP_PUBLIC_ROUTE} and ${DEFAULT_MCP_WELL_KNOWN_ROUTE} (canonical route ${mcpConfig.route}).`) : makeCheck("mcp", "MCP access", "warn", 0, 10, "MCP is disabled in docs config.", "Enable mcp so agents can use list/search/read tools directly instead of only scraping markdown routes."));
1265
1271
  checks.push(searchEnabled ? makeCheck("search", "Search surface", "pass", 5, 5, "Search is enabled for the shared docs API and agent flows.") : makeCheck("search", "Search surface", "warn", 0, 5, "Search is disabled in docs config.", "Enable search so agents can narrow retrieval before reading whole markdown pages."));
1266
1272
  checks.push(agentFeedbackEnabled ? makeCheck("feedback", "Agent feedback", "pass", 5, 5, `Structured agent feedback is enabled at ${feedbackRoute} with schema ${feedbackSchemaRoute}.`) : makeCheck("feedback", "Agent feedback", "warn", 0, 5, "Structured agent feedback is not enabled.", "Enable feedback.agent if you want agents to discover and post feedback through the shared docs API."));
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
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";
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-DlNKVpdX.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-CB4HlcPm.mjs";
3
3
  import { DocsMcpPage, DocsMcpResolvedConfig } from "./mcp.mjs";
4
4
 
5
5
  //#region src/define-docs.d.ts
@@ -215,7 +215,19 @@ declare const DEFAULT_LLMS_TXT_MAX_CHARS = 50000;
215
215
  declare const DEFAULT_SKILL_MD_ROUTE = "/skill.md";
216
216
  declare const DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE = "/.well-known/skill.md";
217
217
  declare const DEFAULT_AGENT_FEEDBACK_ROUTE = "/api/docs/agent/feedback";
218
+ declare const DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA: Record<string, unknown>;
218
219
  declare const DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER = "Signature-Agent";
220
+ interface DocsAgentFeedbackResolvedConfig {
221
+ enabled: boolean;
222
+ route: string;
223
+ schemaRoute: string;
224
+ payloadSchema: Record<string, unknown>;
225
+ schema: Record<string, unknown>;
226
+ onFeedback?: (data: DocsAgentFeedbackData) => void | Promise<void>;
227
+ }
228
+ interface DocsAgentFeedbackRequest {
229
+ kind: "schema" | "submit";
230
+ }
219
231
  interface DocsAgentFeedbackDiscoveryConfig {
220
232
  enabled?: boolean;
221
233
  route?: string;
@@ -331,6 +343,17 @@ interface DocsMarkdownCanonicalUrlOptions {
331
343
  }
332
344
  declare function normalizeDocsPathSegment(value: string): string;
333
345
  declare function normalizeDocsUrlPath(value: string): string;
346
+ declare function buildDocsAgentFeedbackSchema(payloadSchema: Record<string, unknown>): Record<string, unknown>;
347
+ declare function resolveDocsAgentFeedbackConfig(feedback?: boolean | FeedbackConfig): DocsAgentFeedbackResolvedConfig;
348
+ declare function resolveDocsAgentFeedbackRequest(url: URL, feedback: DocsAgentFeedbackResolvedConfig): DocsAgentFeedbackRequest | null;
349
+ declare function parseDocsAgentFeedbackData(request: Request): Promise<{
350
+ ok: true;
351
+ data: DocsAgentFeedbackData;
352
+ } | {
353
+ ok: false;
354
+ response: Response;
355
+ }>;
356
+ declare function validateDocsAgentFeedbackPayload(value: unknown, schema: Record<string, unknown>, valuePath?: string): string | undefined;
334
357
  declare function toDocsMarkdownUrl(url: string, options?: {
335
358
  locale?: string;
336
359
  }): string;
@@ -354,6 +377,7 @@ declare function resolveDocsSkillFormat(url: URL): "skill" | null;
354
377
  declare function isDocsPublicGetRequest(entry: string, url: URL, request: Request, options?: {
355
378
  sitemap?: boolean | DocsSitemapConfig;
356
379
  llms?: boolean | DocsLlmsDiscoveryConfig | LlmsTxtConfig;
380
+ robots?: boolean | DocsRobotsConfig;
357
381
  }): boolean;
358
382
  declare function resolveDocsLlmsTxtFormat(url: URL): "llms" | "llms-full" | null;
359
383
  declare function resolveDocsMarkdownRequest(entry: string, url: URL, request: Request): {
@@ -568,13 +592,21 @@ interface DocsRobotsAnalysis {
568
592
  hasAiPolicy: boolean;
569
593
  missingRoutes: string[];
570
594
  }
595
+ interface CreateDocsRobotsResponseOptions extends DocsRobotsRenderOptions {
596
+ request: Request;
597
+ }
571
598
  declare function resolveDocsRobotsConfig(input: boolean | DocsRobotsConfig | undefined, options?: {
572
599
  baseUrl?: string;
573
600
  }): DocsRobotsResolvedConfig;
574
601
  declare function getDocsRobotsAllowRoutes(options?: DocsRobotsRenderOptions): string[];
575
602
  declare function renderDocsRobotsTxt(options?: DocsRobotsRenderOptions): string;
603
+ declare function resolveDocsRobotsRequest(url: URL, robots?: boolean | DocsRobotsConfig): "robots" | null;
604
+ declare function createDocsRobotsResponse({
605
+ request,
606
+ ...options
607
+ }: CreateDocsRobotsResponseOptions): Response | null;
576
608
  declare function renderDocsRobotsGeneratedBlock(options?: DocsRobotsRenderOptions): string;
577
609
  declare function upsertDocsRobotsGeneratedBlock(existing: string, block: string): string;
578
610
  declare function analyzeDocsRobotsTxt(content: string, options?: DocsRobotsRenderOptions): DocsRobotsAnalysis;
579
611
  //#endregion
580
- 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, getDocsMarkdownCanonicalLinkHeader, 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, resolveDocsMarkdownCanonicalUrl, 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 };
612
+ 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_PAYLOAD_SCHEMA, 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 DocsAgentFeedbackRequest, type DocsAgentFeedbackResolvedConfig, 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, buildDocsAgentFeedbackSchema, buildDocsAskAIContext, buildDocsPageStructuredData, buildDocsSearchDocuments, buildDocsSitemapManifest, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAnalytics, createDocsRobotsResponse, createDocsSitemapResponse, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, formatDocsAskAIPackageHints, getDocsLlmsTxtMaxCharsIssue, getDocsMarkdownCanonicalLinkHeader, getDocsMarkdownVaryHeader, getDocsRobotsAllowRoutes, hasDocsMarkdownSignatureAgent, hashGeneratedAgentContent, inferDocsAskAIPackageHints, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, matchesDocsLlmsTxtSection, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseDocsAgentFeedbackData, parseGeneratedAgentDocument, performDocsSearch, readDocsSitemapManifestFromContentMap, renderDocsLlmsTxt, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsPageStructuredDataJson, renderDocsRelatedMarkdownLines, renderDocsRobotsGeneratedBlock, renderDocsRobotsTxt, renderDocsSitemapMarkdown, renderDocsSitemapXml, renderDocsSkillDocument, resolveAskAISearchRequestConfig, resolveChangelogConfig, resolveDocsAgentFeedbackConfig, resolveDocsAgentFeedbackRequest, resolveDocsAgentMdxContent, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLlmsTxtRequest, resolveDocsLlmsTxtSections, resolveDocsLocale, resolveDocsMarkdownCanonicalUrl, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsObservabilityConfig, resolveDocsPath, resolveDocsRobotsConfig, resolveDocsRobotsRequest, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolvePageSidebarFolderIndexBehavior, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveSidebarFolderIndexBehavior, resolveSidebarFolderIndexBehaviorForPath, resolveTitle, selectDocsLlmsTxtContent, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance, toDocsMarkdownUrl, toDocsSitemapMarkdownUrl, upsertDocsRobotsGeneratedBlock, validateDocsAgentFeedbackPayload };
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as extendTheme, a as resolveReadingTimeOptions, b as defineDocs, c as buildPageTwitter, d as resolveOGImage, f as resolveTitle, g as createTheme, h as resolveDocsPath, i as resolveReadingTimeFromSource, l as renderDocsPageStructuredDataJson, m as resolveDocsLocale, n as resolvePageReadingTime, o as buildDocsPageStructuredData, p as resolveDocsI18n, r as resolveReadingTimeFromContent, s as buildPageOpenGraph, t as estimateReadingTimeMinutes, u as resolveDocsMetadataBaseUrl, v as deepMerge, y as resolveChangelogConfig } from "./reading-time-CbbHNg9V.mjs";
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-BL7o2rXk.mjs";
3
3
  import { n as renderDocsRelatedMarkdownLines, t as normalizeDocsRelated } from "./related-BNj_NdHq.mjs";
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 getDocsMarkdownCanonicalLinkHeader, B as renderDocsLlmsTxt, C as DEFAULT_MCP_WELL_KNOWN_ROUTE, D as buildDocsAgentDiscoverySpec, E as DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER, F as isDocsPublicGetRequest, G as resolveDocsLlmsTxtFormat, H as renderDocsMarkdownNotFound, I as isDocsSkillRequest, J as resolveDocsMarkdownCanonicalUrl, K as resolveDocsLlmsTxtRequest, L as matchesDocsLlmsTxtSection, M as hasDocsMarkdownSignatureAgent, N as isDocsAgentDiscoveryRequest, O as findDocsMarkdownPage, P as isDocsMcpRequest, Q as toDocsMarkdownUrl, R as normalizeDocsPathSegment, S as DEFAULT_MCP_ROUTE, T as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, U as renderDocsSkillDocument, V as renderDocsMarkdownDocument, W as resolveDocsAgentMdxContent, X as resolveDocsSkillFormat, Y as resolveDocsMarkdownRequest, Z 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 getDocsMarkdownVaryHeader, 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 resolveDocsLlmsTxtSections, 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 normalizeDocsUrlPath } from "./robots-5ywOPCZ-.mjs";
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-CnqcTdQg.mjs";
5
+ import { $ as resolveDocsLlmsTxtRequest, A as buildDocsAgentDiscoverySpec, B as isDocsSkillRequest, C as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, D as DEFAULT_SKILL_MD_ROUTE, E as DEFAULT_MCP_WELL_KNOWN_ROUTE, F as getDocsMarkdownVaryHeader, G as renderDocsLlmsTxt, H as normalizeDocsPathSegment, I as hasDocsMarkdownSignatureAgent, J as renderDocsSkillDocument, K as renderDocsMarkdownDocument, L as isDocsAgentDiscoveryRequest, M as findDocsMarkdownPage, N as getDocsLlmsTxtMaxCharsIssue, O as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, P as getDocsMarkdownCanonicalLinkHeader, Q as resolveDocsLlmsTxtFormat, R as isDocsMcpRequest, S as DEFAULT_LLMS_TXT_ROUTE, T as DEFAULT_MCP_ROUTE, U as normalizeDocsUrlPath, V as matchesDocsLlmsTxtSection, W as parseDocsAgentFeedbackData, X as resolveDocsAgentFeedbackRequest, Y as resolveDocsAgentFeedbackConfig, Z as resolveDocsAgentMdxContent, _ as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, a as analyzeDocsRobotsTxt, at as toDocsMarkdownUrl, b as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, c as renderDocsRobotsGeneratedBlock, d as resolveDocsRobotsRequest, et as resolveDocsLlmsTxtSections, f as upsertDocsRobotsGeneratedBlock, g as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, h as DEFAULT_AGENT_SPEC_ROUTE, i as DOCS_ROBOTS_GENERATED_BLOCK_START, it as selectDocsLlmsTxtContent, j as buildDocsAgentFeedbackSchema, k as DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER, l as renderDocsRobotsTxt, m as DEFAULT_AGENT_FEEDBACK_ROUTE, n as DEFAULT_ROBOTS_TXT_ROUTE, nt as resolveDocsMarkdownRequest, o as createDocsRobotsResponse, ot as validateDocsAgentFeedbackPayload, p as DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA, q as renderDocsMarkdownNotFound, r as DOCS_ROBOTS_GENERATED_BLOCK_END, rt as resolveDocsSkillFormat, s as getDocsRobotsAllowRoutes, t as DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS, tt as resolveDocsMarkdownCanonicalUrl, u as resolveDocsRobotsConfig, v as DEFAULT_DOCS_API_ROUTE, w as DEFAULT_MCP_PUBLIC_ROUTE, x as DEFAULT_LLMS_TXT_MAX_CHARS, y as DEFAULT_LLMS_FULL_TXT_ROUTE, z as isDocsPublicGetRequest } from "./robots-kWkyLc7r.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_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, getDocsMarkdownCanonicalLinkHeader, 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, resolveDocsMarkdownCanonicalUrl, 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 };
7
+ export { DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA, 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, buildDocsAgentFeedbackSchema, buildDocsAskAIContext, buildDocsPageStructuredData, buildDocsSearchDocuments, buildDocsSitemapManifest, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAnalytics, createDocsRobotsResponse, createDocsSitemapResponse, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, formatDocsAskAIPackageHints, getDocsLlmsTxtMaxCharsIssue, getDocsMarkdownCanonicalLinkHeader, getDocsMarkdownVaryHeader, getDocsRobotsAllowRoutes, hasDocsMarkdownSignatureAgent, hashGeneratedAgentContent, inferDocsAskAIPackageHints, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, matchesDocsLlmsTxtSection, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseDocsAgentFeedbackData, parseGeneratedAgentDocument, performDocsSearch, readDocsSitemapManifestFromContentMap, renderDocsLlmsTxt, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsPageStructuredDataJson, renderDocsRelatedMarkdownLines, renderDocsRobotsGeneratedBlock, renderDocsRobotsTxt, renderDocsSitemapMarkdown, renderDocsSitemapXml, renderDocsSkillDocument, resolveAskAISearchRequestConfig, resolveChangelogConfig, resolveDocsAgentFeedbackConfig, resolveDocsAgentFeedbackRequest, resolveDocsAgentMdxContent, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLlmsTxtRequest, resolveDocsLlmsTxtSections, resolveDocsLocale, resolveDocsMarkdownCanonicalUrl, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsObservabilityConfig, resolveDocsPath, resolveDocsRobotsConfig, resolveDocsRobotsRequest, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolvePageSidebarFolderIndexBehavior, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveSidebarFolderIndexBehavior, resolveSidebarFolderIndexBehaviorForPath, resolveTitle, selectDocsLlmsTxtContent, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance, toDocsMarkdownUrl, toDocsSitemapMarkdownUrl, upsertDocsRobotsGeneratedBlock, validateDocsAgentFeedbackPayload };
@@ -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-CmRJIDB9.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-WRMxbthG.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";
@@ -1,5 +1,5 @@
1
1
  import "./search-BL7o2rXk.mjs";
2
- import "./sitemap-server-DwEPfk13.mjs";
2
+ import "./sitemap-server-CJEm6hr5.mjs";
3
3
  import { createFilesystemDocsMcpSource, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
4
4
  import "./server.mjs";
5
5
  import { c as readNavTitle, f as resolveDocsConfigPath, n as extractObjectLiteral, o as readBooleanProperty, p as resolveDocsContentDir, u as readStringProperty } from "./config-UI31_wlO.mjs";
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, gt as OrderingItem } from "./types-DHSYXDUB.mjs";
1
+ import { J as DocsSearchConfig, P as DocsMcpConfig, R as DocsObservabilityConfig, _ as DocsAnalyticsConfig, et as DocsSearchSourcePage, gt as OrderingItem } from "./types-DlNKVpdX.mjs";
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
 
4
4
  //#region src/mcp.d.ts
@@ -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-5ywOPCZ-.mjs";
1
+ import { c as renderDocsRobotsGeneratedBlock, f as upsertDocsRobotsGeneratedBlock, i as DOCS_ROBOTS_GENERATED_BLOCK_START, r as DOCS_ROBOTS_GENERATED_BLOCK_END, u as resolveDocsRobotsConfig } from "./robots-kWkyLc7r.mjs";
2
2
  import { d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-UI31_wlO.mjs";
3
3
  import { t as detectFramework } from "./utils-AmYxHDoz.mjs";
4
4
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
@@ -1,5 +1,5 @@
1
1
  import { n as renderDocsRelatedMarkdownLines } from "./related-BNj_NdHq.mjs";
2
- import { f as resolveDocsSitemapRequest, 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";
2
+ import { f as resolveDocsSitemapRequest, 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-CnqcTdQg.mjs";
3
3
 
4
4
  //#region src/agent.ts
5
5
  const DEFAULT_DOCS_API_ROUTE = "/api/docs";
@@ -18,6 +18,49 @@ const DEFAULT_SKILL_MD_ROUTE = "/skill.md";
18
18
  const DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE = "/.well-known/skill.md";
19
19
  const DEFAULT_AGENT_DISCOVERY_ROBOTS_TXT_ROUTE = "/robots.txt";
20
20
  const DEFAULT_AGENT_FEEDBACK_ROUTE = "/api/docs/agent/feedback";
21
+ const DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA = {
22
+ type: "object",
23
+ additionalProperties: false,
24
+ properties: {
25
+ task: {
26
+ type: "string",
27
+ description: "Short description of what the agent was trying to do."
28
+ },
29
+ understanding: {
30
+ type: "string",
31
+ description: "How well the docs supported the task, e.g. \"partial\" or \"clear\"."
32
+ },
33
+ outcome: {
34
+ type: "string",
35
+ description: "What happened after reading the docs, e.g. \"implemented\" or \"blocked\"."
36
+ },
37
+ confidence: {
38
+ type: "number",
39
+ minimum: 0,
40
+ maximum: 1,
41
+ description: "Confidence score from 0 to 1."
42
+ },
43
+ neededCodeReading: {
44
+ type: "boolean",
45
+ description: "Whether the agent still needed to inspect repository code."
46
+ },
47
+ missingContext: {
48
+ type: "array",
49
+ items: { type: "string" },
50
+ description: "Important details the docs did not provide clearly enough."
51
+ },
52
+ docIssues: {
53
+ type: "array",
54
+ items: { type: "string" },
55
+ description: "Specific documentation problems encountered during the task."
56
+ },
57
+ suggestedImprovement: {
58
+ type: "string",
59
+ description: "Concrete suggestion for improving the docs page or examples."
60
+ }
61
+ },
62
+ required: ["task", "outcome"]
63
+ };
21
64
  const DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER = "Signature-Agent";
22
65
  const DOCS_LLMS_TXT_DIRECTIVE_LINE = "LLM index: /llms.txt";
23
66
  function normalizeDocsPathSegment(value) {
@@ -28,6 +71,160 @@ function normalizeDocsUrlPath(value) {
28
71
  if (normalized === "/") return normalized;
29
72
  return normalized.replace(/\/+$/, "");
30
73
  }
74
+ function isPlainObject(value) {
75
+ return typeof value === "object" && value !== null && !Array.isArray(value);
76
+ }
77
+ function normalizeDocsAgentFeedbackRoute(route, fallback = DEFAULT_AGENT_FEEDBACK_ROUTE) {
78
+ if (!route || route.trim().length === 0) return fallback;
79
+ const normalized = `/${route}`.replace(/\/+/g, "/");
80
+ return normalized !== "/" ? normalized.replace(/\/+$/, "") : fallback;
81
+ }
82
+ function buildDocsAgentFeedbackSchema(payloadSchema) {
83
+ return {
84
+ type: "object",
85
+ additionalProperties: false,
86
+ properties: {
87
+ context: {
88
+ type: "object",
89
+ additionalProperties: false,
90
+ properties: {
91
+ page: { type: "string" },
92
+ url: { type: "string" },
93
+ slug: { type: "string" },
94
+ locale: { type: "string" },
95
+ source: { type: "string" }
96
+ }
97
+ },
98
+ payload: payloadSchema
99
+ },
100
+ required: ["payload"]
101
+ };
102
+ }
103
+ function resolveDocsAgentFeedbackConfig(feedback) {
104
+ const route = normalizeDocsAgentFeedbackRoute();
105
+ const enabled = {
106
+ enabled: true,
107
+ route,
108
+ schemaRoute: `${route}/schema`,
109
+ payloadSchema: DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA,
110
+ schema: buildDocsAgentFeedbackSchema(DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA)
111
+ };
112
+ const disabled = {
113
+ enabled: false,
114
+ route,
115
+ schemaRoute: `${route}/schema`,
116
+ payloadSchema: DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA,
117
+ schema: buildDocsAgentFeedbackSchema(DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA)
118
+ };
119
+ if (feedback === false) return disabled;
120
+ if (!feedback || feedback === true || typeof feedback !== "object") return enabled;
121
+ const agent = feedback.agent;
122
+ if (agent === false) return disabled;
123
+ if (!agent) return enabled;
124
+ if (agent === true) return enabled;
125
+ const resolvedRoute = normalizeDocsAgentFeedbackRoute(agent.route, route);
126
+ const resolvedSchemaRoute = normalizeDocsAgentFeedbackRoute(agent.schemaRoute, `${resolvedRoute}/schema`);
127
+ const payloadSchema = agent.schema ?? DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA;
128
+ return {
129
+ enabled: agent.enabled !== false,
130
+ route: resolvedRoute,
131
+ schemaRoute: resolvedSchemaRoute,
132
+ payloadSchema,
133
+ schema: buildDocsAgentFeedbackSchema(payloadSchema),
134
+ onFeedback: agent.onFeedback
135
+ };
136
+ }
137
+ function resolveDocsAgentFeedbackRequest(url, feedback) {
138
+ if (!feedback.enabled) return null;
139
+ const feedbackMode = url.searchParams.get("feedback")?.trim();
140
+ const schemaMode = url.searchParams.get("schema")?.trim();
141
+ if (feedbackMode === "agent") return { kind: schemaMode === "1" || schemaMode === "true" ? "schema" : "submit" };
142
+ const pathname = normalizeDocsUrlPath(url.pathname);
143
+ if (pathname === feedback.schemaRoute) return { kind: "schema" };
144
+ if (pathname === feedback.route) return { kind: "submit" };
145
+ return null;
146
+ }
147
+ function normalizeDocsAgentFeedbackContext(value) {
148
+ if (!isPlainObject(value)) return void 0;
149
+ const context = {};
150
+ if (typeof value.page === "string") context.page = value.page;
151
+ if (typeof value.url === "string") context.url = value.url;
152
+ if (typeof value.slug === "string") context.slug = value.slug;
153
+ if (typeof value.locale === "string") context.locale = value.locale;
154
+ if (typeof value.source === "string") context.source = value.source;
155
+ return Object.keys(context).length > 0 ? context : void 0;
156
+ }
157
+ async function parseDocsAgentFeedbackData(request) {
158
+ let body;
159
+ try {
160
+ body = await request.json();
161
+ } catch {
162
+ return {
163
+ ok: false,
164
+ response: Response.json({ error: "Agent feedback body must be valid JSON" }, { status: 400 })
165
+ };
166
+ }
167
+ if (!isPlainObject(body)) return {
168
+ ok: false,
169
+ response: Response.json({ error: "Agent feedback body must be an object" }, { status: 400 })
170
+ };
171
+ if (!isPlainObject(body.payload)) return {
172
+ ok: false,
173
+ response: Response.json({ error: "Agent feedback body must include a payload object" }, { status: 400 })
174
+ };
175
+ return {
176
+ ok: true,
177
+ data: {
178
+ context: normalizeDocsAgentFeedbackContext(body.context),
179
+ payload: body.payload
180
+ }
181
+ };
182
+ }
183
+ function validateDocsAgentFeedbackPayload(value, schema, valuePath = "payload") {
184
+ const schemaType = typeof schema.type === "string" ? schema.type : void 0;
185
+ if (Array.isArray(schema.enum) && !schema.enum.some((entry) => Object.is(entry, value))) return `${valuePath} must be one of the configured enum values`;
186
+ if (schemaType === "object" || !schemaType && (schema.properties || schema.required)) {
187
+ if (!isPlainObject(value)) return `${valuePath} must be an object`;
188
+ const properties = isPlainObject(schema.properties) ? schema.properties : {};
189
+ const required = Array.isArray(schema.required) ? schema.required.filter((entry) => typeof entry === "string") : [];
190
+ for (const key of required) if (!(key in value)) return `${valuePath}.${key} is required`;
191
+ if (schema.additionalProperties === false) {
192
+ for (const key of Object.keys(value)) if (!(key in properties)) return `${valuePath}.${key} is not allowed`;
193
+ }
194
+ for (const [key, propertySchema] of Object.entries(properties)) {
195
+ if (!(key in value)) continue;
196
+ if (!isPlainObject(propertySchema)) continue;
197
+ const error = validateDocsAgentFeedbackPayload(value[key], propertySchema, `${valuePath}.${key}`);
198
+ if (error) return error;
199
+ }
200
+ return;
201
+ }
202
+ if (schemaType === "array") {
203
+ if (!Array.isArray(value)) return `${valuePath} must be an array`;
204
+ if (!isPlainObject(schema.items)) return void 0;
205
+ for (const [index, item] of value.entries()) {
206
+ const error = validateDocsAgentFeedbackPayload(item, schema.items, `${valuePath}[${index}]`);
207
+ if (error) return error;
208
+ }
209
+ return;
210
+ }
211
+ if (schemaType === "string") {
212
+ if (typeof value !== "string") return `${valuePath} must be a string`;
213
+ if (typeof schema.minLength === "number" && value.length < schema.minLength) return `${valuePath} must be at least ${schema.minLength} characters`;
214
+ if (typeof schema.maxLength === "number" && value.length > schema.maxLength) return `${valuePath} must be at most ${schema.maxLength} characters`;
215
+ return;
216
+ }
217
+ if (schemaType === "number") {
218
+ if (typeof value !== "number" || !Number.isFinite(value)) return `${valuePath} must be a number`;
219
+ if (typeof schema.minimum === "number" && value < schema.minimum) return `${valuePath} must be >= ${schema.minimum}`;
220
+ if (typeof schema.maximum === "number" && value > schema.maximum) return `${valuePath} must be <= ${schema.maximum}`;
221
+ return;
222
+ }
223
+ if (schemaType === "boolean") {
224
+ if (typeof value !== "boolean") return `${valuePath} must be a boolean`;
225
+ return;
226
+ }
227
+ }
31
228
  function toDocsMarkdownUrl(url, options = {}) {
32
229
  const [withoutHash, hash = ""] = url.split("#", 2);
33
230
  const [pathname, query = ""] = withoutHash.split("?", 2);
@@ -272,7 +469,7 @@ function resolveDocsSkillFormat(url) {
272
469
  function isDocsPublicGetRequest(entry, url, request, options = {}) {
273
470
  const pathname = normalizeDocsUrlPath(url.pathname);
274
471
  if (pathname === DEFAULT_DOCS_API_ROUTE || pathname === DEFAULT_MCP_ROUTE) return false;
275
- return isDocsAgentDiscoveryRequest(url) || isDocsSkillRequest(url) || resolveDocsLlmsTxtRequest(url, options.llms) !== null || resolveDocsSitemapRequest(url, options.sitemap) !== null || resolveDocsMarkdownRequest(entry, url, request) !== null;
472
+ return isDocsAgentDiscoveryRequest(url) || isDocsSkillRequest(url) || pathname === DEFAULT_AGENT_DISCOVERY_ROBOTS_TXT_ROUTE && isRobotsDiscoveryEnabled(options.robots) || resolveDocsLlmsTxtRequest(url, options.llms) !== null || resolveDocsSitemapRequest(url, options.sitemap) !== null || resolveDocsMarkdownRequest(entry, url, request) !== null;
276
473
  }
277
474
  function resolveDocsLlmsTxtFormat(url) {
278
475
  return resolveDocsLlmsTxtRequest(url)?.format ?? null;
@@ -792,6 +989,26 @@ function renderDocsRobotsTxt(options = {}) {
792
989
  }
793
990
  return `${lines.join("\n")}\n`;
794
991
  }
992
+ function resolveDocsRobotsRequest(url, robots) {
993
+ const pathname = normalizeRoute(url.pathname);
994
+ const format = url.searchParams.get("format")?.trim();
995
+ if (pathname === "/api/docs" && format === "robots") return "robots";
996
+ if (!resolveDocsRobotsConfig(robots).enabled) return null;
997
+ return pathname === DEFAULT_ROBOTS_TXT_ROUTE ? "robots" : null;
998
+ }
999
+ function createDocsRobotsResponse({ request, ...options }) {
1000
+ const url = new URL(request.url);
1001
+ if (!resolveDocsRobotsRequest(url, options.robots)) return null;
1002
+ const content = renderDocsRobotsTxt({
1003
+ ...options,
1004
+ baseUrl: options.baseUrl ?? url.origin
1005
+ });
1006
+ if (!content) return null;
1007
+ return new Response(content, { headers: {
1008
+ "Content-Type": "text/plain; charset=utf-8",
1009
+ "Cache-Control": "public, max-age=0, s-maxage=3600"
1010
+ } });
1011
+ }
795
1012
  function renderDocsRobotsGeneratedBlock(options = {}) {
796
1013
  return `${DOCS_ROBOTS_GENERATED_BLOCK_START}\n${renderDocsRobotsTxt(options).trimEnd()}\n${DOCS_ROBOTS_GENERATED_BLOCK_END}\n`;
797
1014
  }
@@ -831,4 +1048,4 @@ function analyzeDocsRobotsTxt(content, options = {}) {
831
1048
  }
832
1049
 
833
1050
  //#endregion
834
- export { getDocsMarkdownCanonicalLinkHeader as A, renderDocsLlmsTxt as B, DEFAULT_MCP_WELL_KNOWN_ROUTE as C, buildDocsAgentDiscoverySpec as D, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER as E, isDocsPublicGetRequest as F, resolveDocsLlmsTxtFormat as G, renderDocsMarkdownNotFound as H, isDocsSkillRequest as I, resolveDocsMarkdownCanonicalUrl as J, resolveDocsLlmsTxtRequest as K, matchesDocsLlmsTxtSection as L, hasDocsMarkdownSignatureAgent as M, isDocsAgentDiscoveryRequest as N, findDocsMarkdownPage as O, isDocsMcpRequest as P, toDocsMarkdownUrl as Q, normalizeDocsPathSegment as R, DEFAULT_MCP_ROUTE as S, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE as T, renderDocsSkillDocument as U, renderDocsMarkdownDocument as V, resolveDocsAgentMdxContent as W, resolveDocsSkillFormat as X, resolveDocsMarkdownRequest as Y, selectDocsLlmsTxtContent as Z, 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, getDocsMarkdownVaryHeader 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, resolveDocsLlmsTxtSections 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, normalizeDocsUrlPath as z };
1051
+ export { resolveDocsLlmsTxtRequest as $, buildDocsAgentDiscoverySpec as A, isDocsSkillRequest as B, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE as C, DEFAULT_SKILL_MD_ROUTE as D, DEFAULT_MCP_WELL_KNOWN_ROUTE as E, getDocsMarkdownVaryHeader as F, renderDocsLlmsTxt as G, normalizeDocsPathSegment as H, hasDocsMarkdownSignatureAgent as I, renderDocsSkillDocument as J, renderDocsMarkdownDocument as K, isDocsAgentDiscoveryRequest as L, findDocsMarkdownPage as M, getDocsLlmsTxtMaxCharsIssue as N, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE as O, getDocsMarkdownCanonicalLinkHeader as P, resolveDocsLlmsTxtFormat as Q, isDocsMcpRequest as R, DEFAULT_LLMS_TXT_ROUTE as S, DEFAULT_MCP_ROUTE as T, normalizeDocsUrlPath as U, matchesDocsLlmsTxtSection as V, parseDocsAgentFeedbackData as W, resolveDocsAgentFeedbackRequest as X, resolveDocsAgentFeedbackConfig as Y, resolveDocsAgentMdxContent as Z, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE as _, analyzeDocsRobotsTxt as a, toDocsMarkdownUrl as at, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE as b, renderDocsRobotsGeneratedBlock as c, resolveDocsRobotsRequest as d, resolveDocsLlmsTxtSections as et, upsertDocsRobotsGeneratedBlock as f, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE as g, DEFAULT_AGENT_SPEC_ROUTE as h, DOCS_ROBOTS_GENERATED_BLOCK_START as i, selectDocsLlmsTxtContent as it, buildDocsAgentFeedbackSchema as j, DOCS_MARKDOWN_SIGNATURE_AGENT_HEADER as k, renderDocsRobotsTxt as l, DEFAULT_AGENT_FEEDBACK_ROUTE as m, DEFAULT_ROBOTS_TXT_ROUTE as n, resolveDocsMarkdownRequest as nt, createDocsRobotsResponse as o, validateDocsAgentFeedbackPayload as ot, DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA as p, renderDocsMarkdownNotFound as q, DOCS_ROBOTS_GENERATED_BLOCK_END as r, resolveDocsSkillFormat as rt, getDocsRobotsAllowRoutes as s, DEFAULT_DOCS_AI_ROBOTS_USER_AGENTS as t, resolveDocsMarkdownCanonicalUrl as tt, resolveDocsRobotsConfig as u, DEFAULT_DOCS_API_ROUTE as v, DEFAULT_MCP_PUBLIC_ROUTE as w, DEFAULT_LLMS_TXT_MAX_CHARS as x, DEFAULT_LLMS_FULL_TXT_ROUTE as y, isDocsPublicGetRequest as z };
@@ -1,4 +1,4 @@
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";
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-DlNKVpdX.mjs";
2
2
 
3
3
  //#region src/cloud-analytics.d.ts
4
4
  interface DocsCloudAnalyticsOptions {
@@ -1,5 +1,5 @@
1
1
  import { n as buildDocsSearchDocuments, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter } from "./search-BL7o2rXk.mjs";
2
- import "./sitemap-server-DwEPfk13.mjs";
2
+ import "./sitemap-server-CJEm6hr5.mjs";
3
3
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
4
4
  import "./server.mjs";
5
5
  import { a as loadProjectEnv, d as readTopLevelStringProperty, f as resolveDocsConfigPath, p as resolveDocsContentDir } from "./config-UI31_wlO.mjs";
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, 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";
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-DlNKVpdX.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-CB4HlcPm.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
package/dist/server.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { A as resolveDocsAnalyticsConfig, D as emitDocsAgentTraceEvent, E as createDocsAgentTraceId, M as createDocsCloudAnalytics, O as emitDocsAnalyticsEvent, T as createDocsAgentTraceContext, a as createMcpSearchAdapter, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, f as resolveSearchRequestConfig, i as createCustomSearchAdapter, j as resolveDocsObservabilityConfig, k as emitDocsObservabilityEvent, l as inferDocsAskAIPackageHints, n as buildDocsSearchDocuments, o as createSimpleSearchAdapter, r as createAlgoliaSearchAdapter, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, u as performDocsSearch, w as DOCS_AGENT_TRACE_EVENT_TYPES } from "./search-BL7o2rXk.mjs";
2
- 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";
3
- import { _ as resolveApiReferenceRenderer, a as resolvePromptProviderChoices, c as serializeDocsIconRegistry, d as buildApiReferenceHtmlDocumentAsync, f as buildApiReferenceOpenApiDocument, g as resolveApiReferenceConfig, h as buildApiReferenceScalarCss, i as parsePromptStringArray, l as serializeOpenDocsProviders, m as buildApiReferencePageTitle, n as DEFAULT_PROMPT_PROVIDER_TEMPLATES, o as sanitizePromptText, p as buildApiReferenceOpenApiDocumentAsync, r as normalizePromptProviderName, s as serializeDocsIcon, t as readDocsSitemapManifest, u as buildApiReferenceHtmlDocument } from "./sitemap-server-DwEPfk13.mjs";
2
+ 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-CnqcTdQg.mjs";
3
+ import { _ as resolveApiReferenceRenderer, a as resolvePromptProviderChoices, c as serializeDocsIconRegistry, d as buildApiReferenceHtmlDocumentAsync, f as buildApiReferenceOpenApiDocument, g as resolveApiReferenceConfig, h as buildApiReferenceScalarCss, i as parsePromptStringArray, l as serializeOpenDocsProviders, m as buildApiReferencePageTitle, n as DEFAULT_PROMPT_PROVIDER_TEMPLATES, o as sanitizePromptText, p as buildApiReferenceOpenApiDocumentAsync, r as normalizePromptProviderName, s as serializeDocsIcon, t as readDocsSitemapManifest, u as buildApiReferenceHtmlDocument } from "./sitemap-server-CJEm6hr5.mjs";
4
4
  import { createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
5
5
 
6
6
  export { DEFAULT_PROMPT_PROVIDER_TEMPLATES, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_ROUTE, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, DEFAULT_SITEMAP_XML_ROUTE, DOCS_AGENT_TRACE_EVENT_TYPES, buildApiReferenceHtmlDocument, buildApiReferenceHtmlDocumentAsync, buildApiReferenceOpenApiDocument, buildApiReferenceOpenApiDocumentAsync, buildApiReferencePageTitle, buildApiReferenceScalarCss, buildDocsAskAIContext, buildDocsSearchDocuments, buildDocsSitemapManifest, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAnalytics, createDocsMcpHttpHandler, createDocsMcpServer, createDocsSitemapResponse, createFilesystemDocsMcpSource, createMcpSearchAdapter, createSimpleSearchAdapter, createTypesenseSearchAdapter, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, formatDocsAskAIPackageHints, inferDocsAskAIPackageHints, normalizeDocsMcpRoute, normalizePromptProviderName, parsePromptStringArray, performDocsSearch, readDocsSitemapManifest, readDocsSitemapManifestFromContentMap, renderDocsSitemapMarkdown, renderDocsSitemapXml, resolveApiReferenceConfig, resolveApiReferenceRenderer, resolveAskAISearchRequestConfig, resolveDocsAnalyticsConfig, resolveDocsMcpConfig, resolveDocsObservabilityConfig, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolvePromptProviderChoices, resolveSearchRequestConfig, runDocsMcpStdio, sanitizePromptText, serializeDocsIcon, serializeDocsIconRegistry, serializeOpenDocsProviders, toDocsSitemapMarkdownUrl };
@@ -1,6 +1,6 @@
1
1
  import "./search-BL7o2rXk.mjs";
2
- import { a as buildDocsSitemapManifest, c as renderDocsSitemapMarkdown, l as renderDocsSitemapXml, u as resolveDocsSitemapConfig } from "./sitemap-BIQIYMKe.mjs";
3
- import "./sitemap-server-DwEPfk13.mjs";
2
+ import { a as buildDocsSitemapManifest, c as renderDocsSitemapMarkdown, l as renderDocsSitemapXml, u as resolveDocsSitemapConfig } from "./sitemap-CnqcTdQg.mjs";
3
+ import "./sitemap-server-CJEm6hr5.mjs";
4
4
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
5
5
  import "./server.mjs";
6
6
  import { c as readNavTitle, d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, p as resolveDocsContentDir, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-UI31_wlO.mjs";
@@ -31,7 +31,8 @@ function normalizeBaseUrl(value) {
31
31
  return value.trim().replace(/\/+$/, "") || void 0;
32
32
  }
33
33
  function isEnabledObject(config) {
34
- if (config === false || config === void 0) return false;
34
+ if (config === false) return false;
35
+ if (config === void 0) return true;
35
36
  if (config === true) return true;
36
37
  return config.enabled !== false;
37
38
  }
@@ -1,4 +1,4 @@
1
- import { u as resolveDocsSitemapConfig } from "./sitemap-BIQIYMKe.mjs";
1
+ import { u as resolveDocsSitemapConfig } from "./sitemap-CnqcTdQg.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";
@@ -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, llms: docsConfig.llmsTxt })) {
854
+ if (isDocsPublicGetRequest(${JSON.stringify(opts.entry)}, url, request, { sitemap: docsConfig.sitemap, llms: docsConfig.llmsTxt, robots: docsConfig.robots })) {
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, llms: docsConfig.llmsTxt })) {
933
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, url, request, { sitemap: docsConfig.sitemap, llms: docsConfig.llmsTxt, robots: docsConfig.robots })) {
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, llms: config.llmsTxt })) {
1352
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, event.url, event.request, { sitemap: config.sitemap, llms: config.llmsTxt, robots: config.robots })) {
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, llms: config.llmsTxt })) {
1400
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, event.url, event.request, { sitemap: docsConfig.sitemap, llms: docsConfig.llmsTxt, robots: docsConfig.robots })) {
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, llms: config.llmsTxt })) {
1816
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, context.url, context.request, { sitemap: config.sitemap, llms: config.llmsTxt, robots: config.robots })) {
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, llms: config.llmsTxt })) {
1864
+ if ((method === "GET" || method === "HEAD") && isDocsPublicGetRequest(docsEntry, context.url, context.request, { sitemap: docsConfig.sitemap, llms: docsConfig.llmsTxt, robots: docsConfig.robots })) {
1865
1865
  return docsGET({ request: context.request });
1866
1866
  }
1867
1867
 
@@ -854,7 +854,7 @@ interface SitemapMarkdownConfig {
854
854
  interface DocsSitemapConfig {
855
855
  /**
856
856
  * Whether to enable sitemap routes.
857
- * @default true when `sitemap` is an object
857
+ * @default true
858
858
  */
859
859
  enabled?: boolean;
860
860
  /**
@@ -1731,7 +1731,7 @@ interface DocsAgentFeedbackData {
1731
1731
  * route wrapper.
1732
1732
  */
1733
1733
  interface AgentFeedbackConfig {
1734
- /** Enable the agent feedback endpoints. Defaults to `true` when provided. */
1734
+ /** Enable the agent feedback endpoints. Defaults to `true`; set to `false` to opt out. */
1735
1735
  enabled?: boolean;
1736
1736
  /**
1737
1737
  * Public HTTP route for posting agent feedback.
@@ -1789,7 +1789,8 @@ interface FeedbackConfig {
1789
1789
  onFeedback?: (data: DocsFeedbackData) => void | Promise<void>;
1790
1790
  /**
1791
1791
  * Machine-oriented feedback endpoints exposed through the shared `/api/docs`
1792
- * route when configured.
1792
+ * route. The shared docs API exposes the default no-op schema/submit routes
1793
+ * unless this is set to `false`.
1793
1794
  *
1794
1795
  * This does not enable the human page feedback UI by itself. To show the
1795
1796
  * built-in footer prompt, keep using `feedback: true` or `feedback.enabled`.
@@ -2327,6 +2328,8 @@ interface DocsConfig {
2327
2328
  /**
2328
2329
  * Generated XML and Markdown sitemaps for crawlers, agents, and static export.
2329
2330
  *
2331
+ * Enabled by default. Set `sitemap: false` to opt out.
2332
+ *
2330
2333
  * @example
2331
2334
  * ```ts
2332
2335
  * sitemap: true
@@ -2341,6 +2344,10 @@ interface DocsConfig {
2341
2344
  /**
2342
2345
  * Generated robots.txt policy for docs and agent-readable routes.
2343
2346
  *
2347
+ * Served by the runtime by default when no static `robots.txt` exists. Use
2348
+ * `docs robots generate` for static export or when you want to append to an
2349
+ * existing file.
2350
+ *
2344
2351
  * @example
2345
2352
  * ```ts
2346
2353
  * robots: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/docs",
3
- "version": "0.1.96",
3
+ "version": "0.1.98",
4
4
  "description": "Modern, flexible MDX-based docs framework — core types, config, and CLI",
5
5
  "keywords": [
6
6
  "docs",