@farming-labs/docs 0.1.126 → 0.1.129

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/{agent-DO7T2pnN.mjs → agent-CJNYhzu7.mjs} +3 -3
  2. package/dist/{agents-B11bgT3b.mjs → agents-BuL01_U0.mjs} +1 -1
  3. package/dist/cli/index.mjs +52 -19
  4. package/dist/cloud-88xTLXn3.mjs +529 -0
  5. package/dist/{codeblocks-B4QzFqNC.mjs → codeblocks-DbJrclYa.mjs} +1 -1
  6. package/dist/{config-B8wA38OC.mjs → config-CBoixmrv.mjs} +9 -1
  7. package/dist/{dev-1VFeAWUi.mjs → dev-DdlhqXNU.mjs} +7 -1
  8. package/dist/{doctor-ylvdBm1D.mjs → doctor-D_c7vJCb.mjs} +3 -3
  9. package/dist/{downgrade-BGANzvQb.mjs → downgrade-BayU3nlg.mjs} +1 -1
  10. package/dist/index.d.mts +3 -3
  11. package/dist/index.mjs +1 -1
  12. package/dist/{init-DzQWiVN1.mjs → init-BJqy-LK2.mjs} +1 -1
  13. package/dist/{mcp-DxIxIGjq.mjs → mcp-CUAR3XfW.mjs} +1 -1
  14. package/dist/mcp.d.mts +1 -1
  15. package/dist/mcp.mjs +36 -0
  16. package/dist/{reading-time-HpTq-0VB.mjs → reading-time-DPAazAGu.mjs} +1 -0
  17. package/dist/{review-ClNDYRnn.mjs → review-CjyI-bVg.mjs} +1 -1
  18. package/dist/{robots-CNLiZCay.mjs → robots-Dx2uMF3g.mjs} +1 -1
  19. package/dist/{search-G0otDMfP.d.mts → search-CNoiftmI.d.mts} +1 -1
  20. package/dist/{search-D9iNWiKQ.mjs → search-Cekr2OyP.mjs} +1 -1
  21. package/dist/server.d.mts +2 -2
  22. package/dist/{sitemap-ChZG2_Bv.mjs → sitemap-BBfGr3tJ.mjs} +1 -1
  23. package/dist/{types-Dg82p0Fm.d.mts → types-C-C-9SMJ.d.mts} +65 -1
  24. package/dist/{upgrade-C7DvvfTR.mjs → upgrade-DDWolmHe.mjs} +1 -1
  25. package/package.json +1 -1
  26. /package/dist/{package-version-OrjpmqoR.mjs → package-version-CQm0KO-H.mjs} +0 -0
  27. /package/dist/{templates-CGaORZOY.mjs → templates-DomB3eeS.mjs} +0 -0
@@ -1,9 +1,9 @@
1
- import "./reading-time-HpTq-0VB.mjs";
1
+ import "./reading-time-DPAazAGu.mjs";
2
2
  import "./search-BL7o2rXk.mjs";
3
3
  import "./agent-BS39vnhS.mjs";
4
4
  import "./robots-B2BfoyVM.mjs";
5
5
  import "./sitemap-server-idLUrmmU.mjs";
6
- import "./config-B8wA38OC.mjs";
7
- import { a as readPageTokenBudget, i as printAgentCompactHelp, n as inspectAgentCompactionState, o as scanDocsPageTargets, r as parseAgentCompactArgs, t as compactAgentDocs } from "./codeblocks-B4QzFqNC.mjs";
6
+ import "./config-CBoixmrv.mjs";
7
+ import { a as readPageTokenBudget, i as printAgentCompactHelp, n as inspectAgentCompactionState, o as scanDocsPageTargets, r as parseAgentCompactArgs, t as compactAgentDocs } from "./codeblocks-DbJrclYa.mjs";
8
8
 
9
9
  export { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp };
@@ -3,7 +3,7 @@ import { K as resolveDocsAgentFeedbackConfig, V as renderDocsAgentsDocument, a a
3
3
  import { S as resolveApiReferenceConfig } from "./sitemap-server-idLUrmmU.mjs";
4
4
  import { resolveDocsMcpConfig } from "./mcp.mjs";
5
5
  import "./server.mjs";
6
- import { c as readNavTitle, d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-B8wA38OC.mjs";
6
+ import { c as readNavTitle, f as readTopLevelStringProperty, i as loadDocsConfigModule, o as readBooleanProperty, p as resolveDocsConfigPath, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-CBoixmrv.mjs";
7
7
  import { t as detectFramework } from "./utils-x5EtYWjC.mjs";
8
8
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
9
9
  import path from "node:path";
@@ -24,7 +24,8 @@ function parseFlags(argv) {
24
24
  "typesense",
25
25
  "algolia",
26
26
  "verbose",
27
- "host"
27
+ "host",
28
+ "json"
28
29
  ]);
29
30
  for (let i = 0; i < argv.length; i++) {
30
31
  const arg = argv[i];
@@ -76,17 +77,38 @@ async function main() {
76
77
  indexName: typeof flags["index-name"] === "string" ? flags["index-name"] : void 0,
77
78
  searchApiKey: typeof flags["search-api-key"] === "string" ? flags["search-api-key"] : void 0
78
79
  };
80
+ const cloudOptions = {
81
+ configPath: typeof flags.config === "string" ? flags.config : void 0,
82
+ apiBaseUrl: typeof flags["api-base-url"] === "string" ? flags["api-base-url"] : typeof flags.url === "string" ? flags.url : void 0,
83
+ apiKey: typeof flags["api-key"] === "string" ? flags["api-key"] : void 0,
84
+ json: typeof flags.json === "boolean" ? flags.json : void 0
85
+ };
79
86
  if (!parsedCommand.command || parsedCommand.command === "init") {
80
- const { init } = await import("../init-DzQWiVN1.mjs");
87
+ const { init } = await import("../init-BJqy-LK2.mjs");
81
88
  await init(initOptions);
82
89
  } else if (parsedCommand.command === "dev") {
83
- const { dev } = await import("../dev-1VFeAWUi.mjs");
90
+ const { dev } = await import("../dev-DdlhqXNU.mjs");
84
91
  await dev(devOptions);
92
+ } else if (parsedCommand.command === "preview") {
93
+ const { runCloudPreview } = await import("../cloud-88xTLXn3.mjs");
94
+ await runCloudPreview(cloudOptions);
95
+ } else if (parsedCommand.command === "cloud" && subcommand === "preview") {
96
+ const { runCloudPreview } = await import("../cloud-88xTLXn3.mjs");
97
+ await runCloudPreview(cloudOptions);
98
+ } else if (parsedCommand.command === "cloud" && subcommand === "sync") {
99
+ const { syncCloudConfig } = await import("../cloud-88xTLXn3.mjs");
100
+ await syncCloudConfig(cloudOptions);
101
+ } else if (parsedCommand.command === "cloud") {
102
+ console.error(pc.red(`Unknown cloud subcommand: ${subcommand ?? "(missing)"}`));
103
+ console.error();
104
+ const { printCloudHelp } = await import("../cloud-88xTLXn3.mjs");
105
+ printCloudHelp();
106
+ process.exit(1);
85
107
  } else if (parsedCommand.command === "mcp") {
86
- const { runMcp } = await import("../mcp-DxIxIGjq.mjs");
108
+ const { runMcp } = await import("../mcp-CUAR3XfW.mjs");
87
109
  await runMcp(mcpOptions);
88
110
  } else if (parsedCommand.command === "agent" && subcommand === "compact") {
89
- const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-DO7T2pnN.mjs");
111
+ const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-CJNYhzu7.mjs");
90
112
  const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
91
113
  if (agentCompactOptions.help) {
92
114
  printAgentCompactHelp();
@@ -96,11 +118,11 @@ async function main() {
96
118
  } else if (parsedCommand.command === "agent") {
97
119
  console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
98
120
  console.error();
99
- const { printAgentCompactHelp } = await import("../agent-DO7T2pnN.mjs");
121
+ const { printAgentCompactHelp } = await import("../agent-CJNYhzu7.mjs");
100
122
  printAgentCompactHelp();
101
123
  process.exit(1);
102
124
  } else if (parsedCommand.command === "agents" && subcommand === "generate") {
103
- const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-B11bgT3b.mjs");
125
+ const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-BuL01_U0.mjs");
104
126
  const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
105
127
  if (agentsOptions.help) {
106
128
  printAgentsGenerateHelp();
@@ -110,11 +132,11 @@ async function main() {
110
132
  } else if (parsedCommand.command === "agents") {
111
133
  console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
112
134
  console.error();
113
- const { printAgentsGenerateHelp } = await import("../agents-B11bgT3b.mjs");
135
+ const { printAgentsGenerateHelp } = await import("../agents-BuL01_U0.mjs");
114
136
  printAgentsGenerateHelp();
115
137
  process.exit(1);
116
138
  } else if (parsedCommand.command === "doctor") {
117
- const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-ylvdBm1D.mjs");
139
+ const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-D_c7vJCb.mjs");
118
140
  const doctorOptions = parseDoctorArgs(args.slice(1));
119
141
  if (doctorOptions.help) {
120
142
  printDoctorHelp();
@@ -122,7 +144,7 @@ async function main() {
122
144
  }
123
145
  await runDoctor(doctorOptions);
124
146
  } else if (parsedCommand.command === "review") {
125
- const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-ClNDYRnn.mjs");
147
+ const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-CjyI-bVg.mjs");
126
148
  const reviewOptions = parseReviewArgs(args.slice(1));
127
149
  if (reviewOptions.help) {
128
150
  printReviewHelp();
@@ -130,7 +152,7 @@ async function main() {
130
152
  }
131
153
  await runReview(reviewOptions);
132
154
  } else if ((parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") && subcommand === "validate") {
133
- const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-B4QzFqNC.mjs");
155
+ const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-DbJrclYa.mjs");
134
156
  const codeBlocksOptions = parseCodeBlocksValidateArgs(args.slice(2));
135
157
  if (codeBlocksOptions.help) {
136
158
  printCodeBlocksValidateHelp();
@@ -140,11 +162,11 @@ async function main() {
140
162
  } else if (parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") {
141
163
  console.error(pc.red(`Unknown codeblocks subcommand: ${subcommand ?? "(missing)"}`));
142
164
  console.error();
143
- const { printCodeBlocksValidateHelp } = await import("../codeblocks-B4QzFqNC.mjs");
165
+ const { printCodeBlocksValidateHelp } = await import("../codeblocks-DbJrclYa.mjs");
144
166
  printCodeBlocksValidateHelp();
145
167
  process.exit(1);
146
168
  } else if (parsedCommand.command === "search" && subcommand === "sync") {
147
- const { syncSearch } = await import("../search-D9iNWiKQ.mjs");
169
+ const { syncSearch } = await import("../search-Cekr2OyP.mjs");
148
170
  await syncSearch(searchSyncOptions);
149
171
  } else if (parsedCommand.command === "search") {
150
172
  console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
@@ -152,7 +174,7 @@ async function main() {
152
174
  printHelp();
153
175
  process.exit(1);
154
176
  } else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
155
- const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-ChZG2_Bv.mjs");
177
+ const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-BBfGr3tJ.mjs");
156
178
  const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
157
179
  if (sitemapOptions.help) {
158
180
  printSitemapGenerateHelp();
@@ -162,11 +184,11 @@ async function main() {
162
184
  } else if (parsedCommand.command === "sitemap") {
163
185
  console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
164
186
  console.error();
165
- const { printSitemapGenerateHelp } = await import("../sitemap-ChZG2_Bv.mjs");
187
+ const { printSitemapGenerateHelp } = await import("../sitemap-BBfGr3tJ.mjs");
166
188
  printSitemapGenerateHelp();
167
189
  process.exit(1);
168
190
  } else if (parsedCommand.command === "robots" && subcommand === "generate") {
169
- const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-CNLiZCay.mjs");
191
+ const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-Dx2uMF3g.mjs");
170
192
  const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
171
193
  if (robotsOptions.help) {
172
194
  printRobotsGenerateHelp();
@@ -176,11 +198,11 @@ async function main() {
176
198
  } else if (parsedCommand.command === "robots") {
177
199
  console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
178
200
  console.error();
179
- const { printRobotsGenerateHelp } = await import("../robots-CNLiZCay.mjs");
201
+ const { printRobotsGenerateHelp } = await import("../robots-Dx2uMF3g.mjs");
180
202
  printRobotsGenerateHelp();
181
203
  process.exit(1);
182
204
  } else if (parsedCommand.command === "downgrade") {
183
- const { downgrade } = await import("../downgrade-BGANzvQb.mjs");
205
+ const { downgrade } = await import("../downgrade-BayU3nlg.mjs");
184
206
  const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
185
207
  const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
186
208
  await downgrade({
@@ -188,7 +210,7 @@ async function main() {
188
210
  version: typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0
189
211
  });
190
212
  } else if (parsedCommand.command === "upgrade") {
191
- const { upgrade } = await import("../upgrade-C7DvvfTR.mjs");
213
+ const { upgrade } = await import("../upgrade-DDWolmHe.mjs");
192
214
  const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
193
215
  const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
194
216
  const version = typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0;
@@ -216,6 +238,8 @@ ${pc.dim("Usage:")}
216
238
  ${pc.dim("Commands:")}
217
239
  ${pc.cyan("init")} Scaffold docs in your project (default)
218
240
  ${pc.cyan("dev")} Run frameworkless docs locally from ${pc.dim("docs.json")}
241
+ ${pc.cyan("preview")} Sync cloud config and request a hosted Docs Cloud preview
242
+ ${pc.cyan("cloud")} Docs Cloud utilities (${pc.dim("preview")}, ${pc.dim("sync")})
219
243
  ${pc.cyan("agent")} Agent utilities (${pc.dim("compact")} to generate sibling agent.md files)
220
244
  ${pc.cyan("agents")} AGENTS.md utilities (${pc.dim("generate")} for static agent instructions)
221
245
  ${pc.cyan("doctor")} Inspect and score agent or reader-facing docs quality
@@ -249,6 +273,15 @@ ${pc.dim("Options for dev:")}
249
273
  ${pc.cyan("--host [host]")} Expose the preview on your network; optionally pass a host value
250
274
  ${pc.cyan("--verbose")} Show raw runtime logs in addition to branded CLI output
251
275
 
276
+ ${pc.dim("Options for cloud preview:")}
277
+ ${pc.cyan("preview")} Sync ${pc.dim("docs.config.ts")} into ${pc.dim("docs.json")} and request a hosted preview
278
+ ${pc.cyan("cloud preview")} Same as ${pc.cyan("preview")}
279
+ ${pc.cyan("cloud sync")} Only materialize cloud settings into ${pc.dim("docs.json")}
280
+ ${pc.cyan("--config <path>")} Use a custom docs config path
281
+ ${pc.cyan("--api-base-url <url>")} Override the Docs Cloud API base URL
282
+ ${pc.cyan("--api-key <key>")} Use an API key directly; prefer ${pc.dim("cloud.apiKey.env")}
283
+ ${pc.cyan("--json")} Print machine-readable output
284
+
252
285
  ${pc.dim("Options for agent compact:")}
253
286
  ${pc.cyan("agent compact <page...>")} Compact pages and write sibling ${pc.dim("agent.md")} files
254
287
  ${pc.cyan("agent compact --all")} Compact every folder-based docs page
@@ -0,0 +1,529 @@
1
+ import { a as loadProjectEnv, c as readNavTitle, d as readTopLevelBooleanProperty, f as readTopLevelStringProperty, i as loadDocsConfigModule, m as resolveDocsContentDir, p as resolveDocsConfigPath, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-CBoixmrv.mjs";
2
+ import { t as detectFramework } from "./utils-x5EtYWjC.mjs";
3
+ import fs from "node:fs";
4
+ import path from "node:path";
5
+ import pc from "picocolors";
6
+ import { execFileSync } from "node:child_process";
7
+
8
+ //#region src/cli/cloud.ts
9
+ const DOCS_JSON_FILE = "docs.json";
10
+ const DOCS_CLOUD_SCHEMA_URL = "https://docs.farming-labs.dev/schema/docs.json";
11
+ const DOCS_CLOUD_DEFAULT_API_KEY_ENV = "DOCS_CLOUD_API_KEY";
12
+ const DEFAULT_DOCS_CLOUD_API_BASE_URL = "https://docs-app.farming-labs.dev";
13
+ const DEFAULT_PREVIEW_TIMEOUT_MS = 300 * 1e3;
14
+ const DEFAULT_PREVIEW_POLL_INTERVAL_MS = 2e3;
15
+ function isRecord(value) {
16
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
17
+ }
18
+ function isJsonRecord(value) {
19
+ return isRecord(value);
20
+ }
21
+ function toJsonRecord(value) {
22
+ if (!isRecord(value)) return void 0;
23
+ return JSON.parse(JSON.stringify(value));
24
+ }
25
+ function readPackageName(rootDir) {
26
+ const packagePath = path.join(rootDir, "package.json");
27
+ if (!fs.existsSync(packagePath)) return void 0;
28
+ try {
29
+ const parsed = JSON.parse(fs.readFileSync(packagePath, "utf-8"));
30
+ return typeof parsed.name === "string" && parsed.name.trim() ? parsed.name.trim() : void 0;
31
+ } catch {
32
+ return;
33
+ }
34
+ }
35
+ function runGit(rootDir, args) {
36
+ try {
37
+ return execFileSync("git", [
38
+ "-C",
39
+ rootDir,
40
+ ...args
41
+ ], {
42
+ encoding: "utf-8",
43
+ stdio: [
44
+ "ignore",
45
+ "pipe",
46
+ "ignore"
47
+ ]
48
+ }).trim();
49
+ } catch {
50
+ return;
51
+ }
52
+ }
53
+ function parseGitHubRemote(remoteUrl) {
54
+ const trimmed = remoteUrl.trim();
55
+ const match = trimmed.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/) ?? trimmed.match(/^https:\/\/github\.com\/([^/]+)\/(.+?)(?:\.git)?(?:\/)?$/);
56
+ if (!match?.[1] || !match[2]) return null;
57
+ return {
58
+ owner: match[1],
59
+ name: match[2].replace(/\.git$/i, "")
60
+ };
61
+ }
62
+ function resolveGitRepositoryMetadata(rootDir) {
63
+ const gitRoot = runGit(rootDir, ["rev-parse", "--show-toplevel"]);
64
+ const remoteUrl = runGit(rootDir, [
65
+ "remote",
66
+ "get-url",
67
+ "origin"
68
+ ]);
69
+ if (!gitRoot || !remoteUrl) return;
70
+ const parsedRemote = parseGitHubRemote(remoteUrl);
71
+ if (!parsedRemote) return;
72
+ const branch = runGit(rootDir, ["branch", "--show-current"]) ?? runGit(rootDir, [
73
+ "rev-parse",
74
+ "--abbrev-ref",
75
+ "HEAD"
76
+ ]);
77
+ const resolvedGitRoot = fs.realpathSync(gitRoot);
78
+ const resolvedRootDir = fs.realpathSync(rootDir);
79
+ const rootDirectory = path.relative(resolvedGitRoot, resolvedRootDir).split(path.sep).filter(Boolean).join("/");
80
+ return {
81
+ ...parsedRemote,
82
+ branch: branch && branch !== "HEAD" ? branch : void 0,
83
+ rootDirectory: rootDirectory || ".",
84
+ remoteUrl
85
+ };
86
+ }
87
+ function titleFromPackageName(name) {
88
+ if (!name) return void 0;
89
+ const normalized = name.replace(/^@[^/]+\//, "").replace(/[-_]+/g, " ").trim();
90
+ if (!normalized) return void 0;
91
+ return normalized.replace(/\b\w/g, (match) => match.toUpperCase());
92
+ }
93
+ function tryResolveDocsConfigPath(rootDir, explicitPath) {
94
+ if (explicitPath) return resolveDocsConfigPath(rootDir, explicitPath);
95
+ try {
96
+ return resolveDocsConfigPath(rootDir);
97
+ } catch {
98
+ return;
99
+ }
100
+ }
101
+ async function loadDocsConfigSnapshot(rootDir, explicitPath) {
102
+ const configPath = tryResolveDocsConfigPath(rootDir, explicitPath);
103
+ if (!configPath) return {};
104
+ return {
105
+ path: configPath,
106
+ content: fs.readFileSync(configPath, "utf-8"),
107
+ config: (await loadDocsConfigModule(rootDir, configPath, { silent: true }))?.config
108
+ };
109
+ }
110
+ function readExistingDocsJson(docsJsonPath) {
111
+ if (!fs.existsSync(docsJsonPath)) return void 0;
112
+ try {
113
+ const parsed = JSON.parse(fs.readFileSync(docsJsonPath, "utf-8"));
114
+ if (!isJsonRecord(parsed)) throw new Error(`${DOCS_JSON_FILE} must contain a JSON object.`);
115
+ return parsed;
116
+ } catch (error) {
117
+ const message = error instanceof Error ? error.message : String(error);
118
+ throw new Error(`Could not parse ${DOCS_JSON_FILE}: ${message}`);
119
+ }
120
+ }
121
+ function normalizeApiKeyConfig(apiKey) {
122
+ return { env: apiKey?.env?.trim() || DOCS_CLOUD_DEFAULT_API_KEY_ENV };
123
+ }
124
+ function normalizePreviewConfig(preview) {
125
+ return { enabled: preview?.enabled ?? true };
126
+ }
127
+ function normalizePublishConfig(publish) {
128
+ return {
129
+ mode: publish?.mode === "direct-commit" ? "direct-commit" : "draft-pr",
130
+ baseBranch: publish?.baseBranch?.trim() || "main"
131
+ };
132
+ }
133
+ function normalizeFeatureConfig(feature) {
134
+ if (!feature) return void 0;
135
+ return { enabled: feature.enabled ?? true };
136
+ }
137
+ function normalizeAnalyticsConfig(analytics) {
138
+ if (typeof analytics === "undefined") return void 0;
139
+ if (typeof analytics === "boolean") return analytics;
140
+ return {
141
+ enabled: analytics.enabled ?? true,
142
+ ...typeof analytics.console !== "undefined" ? { console: analytics.console } : {},
143
+ includeInputs: analytics.includeInputs ?? false
144
+ };
145
+ }
146
+ function normalizeCloudConfig(cloud) {
147
+ const normalized = {
148
+ apiKey: normalizeApiKeyConfig(cloud?.apiKey),
149
+ preview: normalizePreviewConfig(cloud?.preview),
150
+ publish: normalizePublishConfig(cloud?.publish)
151
+ };
152
+ if (cloud?.enabled === false) normalized.enabled = false;
153
+ const analytics = normalizeAnalyticsConfig(cloud?.analytics);
154
+ if (typeof analytics !== "undefined") normalized.analytics = analytics;
155
+ const ai = normalizeFeatureConfig(cloud?.ai);
156
+ if (ai) normalized.ai = ai;
157
+ const deploy = normalizeFeatureConfig(cloud?.deploy);
158
+ if (deploy) normalized.deploy = deploy;
159
+ return normalized;
160
+ }
161
+ function readStaticCloudConfig(content) {
162
+ if (!content || !extractNestedObjectLiteral(content, ["cloud"])) return void 0;
163
+ const cloudBlock = extractNestedObjectLiteral(content, ["cloud"]);
164
+ const apiKeyBlock = extractNestedObjectLiteral(content, ["cloud", "apiKey"]);
165
+ const previewBlock = extractNestedObjectLiteral(content, ["cloud", "preview"]);
166
+ const publishBlock = extractNestedObjectLiteral(content, ["cloud", "publish"]);
167
+ const analyticsBlock = extractNestedObjectLiteral(content, ["cloud", "analytics"]);
168
+ const aiBlock = extractNestedObjectLiteral(content, ["cloud", "ai"]);
169
+ const deployBlock = extractNestedObjectLiteral(content, ["cloud", "deploy"]);
170
+ const cloud = {};
171
+ const enabled = cloudBlock ? readTopLevelBooleanProperty(cloudBlock, "enabled") : void 0;
172
+ if (typeof enabled === "boolean") cloud.enabled = enabled;
173
+ const apiKeyEnv = apiKeyBlock ? readStringProperty(apiKeyBlock, "env") : void 0;
174
+ if (apiKeyEnv) cloud.apiKey = { env: apiKeyEnv };
175
+ const previewEnabled = previewBlock ? readTopLevelBooleanProperty(previewBlock, "enabled") : void 0;
176
+ if (typeof previewEnabled === "boolean") cloud.preview = { enabled: previewEnabled };
177
+ const publishMode = publishBlock ? readStringProperty(publishBlock, "mode") : void 0;
178
+ const baseBranch = publishBlock ? readStringProperty(publishBlock, "baseBranch") : void 0;
179
+ if (publishMode || baseBranch) cloud.publish = {
180
+ ...publishMode === "direct-commit" || publishMode === "draft-pr" ? { mode: publishMode } : {},
181
+ ...baseBranch ? { baseBranch } : {}
182
+ };
183
+ const analyticsEnabled = cloudBlock ? readTopLevelBooleanProperty(cloudBlock, "analytics") : void 0;
184
+ if (typeof analyticsEnabled === "boolean") cloud.analytics = analyticsEnabled;
185
+ else if (analyticsBlock) {
186
+ const analytics = {};
187
+ const enabledValue = readTopLevelBooleanProperty(analyticsBlock, "enabled");
188
+ const consoleBoolean = readTopLevelBooleanProperty(analyticsBlock, "console");
189
+ const consoleMode = readStringProperty(analyticsBlock, "console");
190
+ const includeInputs = readTopLevelBooleanProperty(analyticsBlock, "includeInputs");
191
+ if (typeof enabledValue === "boolean") analytics.enabled = enabledValue;
192
+ if (typeof consoleBoolean === "boolean") analytics.console = consoleBoolean;
193
+ else if (consoleMode === "log" || consoleMode === "info" || consoleMode === "debug") analytics.console = consoleMode;
194
+ if (typeof includeInputs === "boolean") analytics.includeInputs = includeInputs;
195
+ cloud.analytics = analytics;
196
+ }
197
+ const aiEnabled = aiBlock ? readTopLevelBooleanProperty(aiBlock, "enabled") : void 0;
198
+ if (typeof aiEnabled === "boolean") cloud.ai = { enabled: aiEnabled };
199
+ const deployEnabled = deployBlock ? readTopLevelBooleanProperty(deployBlock, "enabled") : void 0;
200
+ if (typeof deployEnabled === "boolean") cloud.deploy = { enabled: deployEnabled };
201
+ return cloud;
202
+ }
203
+ function resolveCloudConfig(snapshot, existing) {
204
+ const moduleCloud = snapshot.config?.cloud;
205
+ const staticCloud = readStaticCloudConfig(snapshot.content);
206
+ const existingCloud = existing?.cloud;
207
+ return normalizeCloudConfig(moduleCloud ?? staticCloud ?? existingCloud);
208
+ }
209
+ function resolveApiReferenceRoot(snapshot) {
210
+ const apiReference = snapshot.config?.apiReference;
211
+ if (isRecord(apiReference) && typeof apiReference.path === "string" && apiReference.path.trim()) return apiReference.path.trim();
212
+ const apiReferenceBlock = extractNestedObjectLiteral(snapshot.content ?? "", ["apiReference"]);
213
+ if (!apiReferenceBlock) return void 0;
214
+ return readStringProperty(apiReferenceBlock, "path");
215
+ }
216
+ function resolveSiteConfig(rootDir, snapshot, existing) {
217
+ const existingSite = toJsonRecord(existing?.site);
218
+ const navTitle = isRecord(snapshot.config?.nav) && typeof snapshot.config.nav.title === "string" ? snapshot.config.nav.title : readNavTitle(snapshot.content ?? "");
219
+ const metadata = isRecord(snapshot.config?.metadata) ? snapshot.config.metadata : void 0;
220
+ const metadataDescription = typeof metadata?.description === "string" && metadata.description.trim() ? metadata.description.trim() : void 0;
221
+ const packageTitle = titleFromPackageName(readPackageName(rootDir));
222
+ const name = navTitle?.trim() || existingSite?.name || packageTitle;
223
+ const description = metadataDescription || existingSite?.description;
224
+ if (!name && !description && !existingSite) return void 0;
225
+ return {
226
+ ...existingSite ?? {},
227
+ ...typeof name === "string" ? { name } : {},
228
+ ...typeof description === "string" ? { description } : {}
229
+ };
230
+ }
231
+ function resolveDocsRoot(rootDir, snapshot, existing) {
232
+ const entry = snapshot.config?.entry ?? readTopLevelStringProperty(snapshot.content ?? "", "entry") ?? "docs";
233
+ if (snapshot.config?.contentDir) return snapshot.config.contentDir;
234
+ if (snapshot.content) return resolveDocsContentDir(rootDir, snapshot.content, entry);
235
+ if (typeof existing?.content?.docsRoot === "string") return existing.content.docsRoot;
236
+ return fs.existsSync(path.join(rootDir, "app", entry)) ? path.join("app", entry) : entry;
237
+ }
238
+ function resolveDocsBlock(rootDir, snapshot, existing) {
239
+ const detectedFramework = detectFramework(rootDir);
240
+ const existingDocs = existing?.docs;
241
+ const runtime = detectedFramework ?? existingDocs?.runtime ?? "nextjs";
242
+ if (!Boolean(snapshot.path || detectedFramework) && existingDocs) return existingDocs;
243
+ return {
244
+ mode: "framework",
245
+ runtime,
246
+ root: existingDocs?.root || "."
247
+ };
248
+ }
249
+ function materializeDocsJsonObject(params) {
250
+ const cloud = resolveCloudConfig(params.snapshot, params.existing);
251
+ const docsRoot = resolveDocsRoot(params.rootDir, params.snapshot, params.existing);
252
+ const apiReferenceRoot = resolveApiReferenceRoot(params.snapshot);
253
+ const existingContent = toJsonRecord(params.existing?.content);
254
+ const site = resolveSiteConfig(params.rootDir, params.snapshot, params.existing);
255
+ const content = {
256
+ ...existingContent ?? {},
257
+ docsRoot,
258
+ ...apiReferenceRoot ? { apiReferenceRoot } : {}
259
+ };
260
+ return {
261
+ ...params.existing ?? {},
262
+ $schema: params.existing?.$schema ?? DOCS_CLOUD_SCHEMA_URL,
263
+ version: 1,
264
+ docs: resolveDocsBlock(params.rootDir, params.snapshot, params.existing),
265
+ content,
266
+ ...site ? { site } : {},
267
+ cloud
268
+ };
269
+ }
270
+ function serializeMaterializedDocsJson(config) {
271
+ return `${JSON.stringify(config, null, 2)}\n`;
272
+ }
273
+ async function materializeCloudConfig(options = {}) {
274
+ const rootDir = options.rootDir ?? process.cwd();
275
+ const docsJsonPath = path.join(rootDir, DOCS_JSON_FILE);
276
+ const existing = readExistingDocsJson(docsJsonPath);
277
+ const snapshot = await loadDocsConfigSnapshot(rootDir, options.configPath);
278
+ const config = materializeDocsJsonObject({
279
+ rootDir,
280
+ snapshot,
281
+ existing
282
+ });
283
+ const serialized = serializeMaterializedDocsJson(config);
284
+ const updated = (existing ? fs.readFileSync(docsJsonPath, "utf-8") : void 0) !== serialized;
285
+ if (updated) fs.writeFileSync(docsJsonPath, serialized, "utf-8");
286
+ return {
287
+ configPath: snapshot.path ?? docsJsonPath,
288
+ docsJsonPath,
289
+ config,
290
+ apiKeyEnv: config.cloud?.apiKey?.env ?? DOCS_CLOUD_DEFAULT_API_KEY_ENV,
291
+ created: !existing,
292
+ updated
293
+ };
294
+ }
295
+ function resolveApiBaseUrl(options) {
296
+ return (options.apiBaseUrl ?? process.env.DOCS_CLOUD_API_URL ?? process.env.NEXT_PUBLIC_DOCS_CLOUD_URL ?? DEFAULT_DOCS_CLOUD_API_BASE_URL).replace(/\/+$/, "");
297
+ }
298
+ function resolveApiKey(options, rootDir, envName) {
299
+ if (options.apiKey?.trim()) return options.apiKey.trim();
300
+ const token = {
301
+ ...loadProjectEnv(rootDir),
302
+ ...process.env
303
+ }[envName]?.trim();
304
+ if (token) return token;
305
+ throw new Error(`Missing Docs Cloud API key. Set ${envName} in your shell or .env.local, or configure cloud.apiKey.env in docs.config.ts.`);
306
+ }
307
+ async function readJsonResponse(response) {
308
+ const text = await response.text();
309
+ if (!text.trim()) return {};
310
+ try {
311
+ return JSON.parse(text);
312
+ } catch {
313
+ return { message: text };
314
+ }
315
+ }
316
+ function readResponseMessage(body, fallback) {
317
+ if (isRecord(body)) for (const key of [
318
+ "error",
319
+ "message",
320
+ "detail"
321
+ ]) {
322
+ const value = body[key];
323
+ if (typeof value === "string" && value.trim()) return value.trim();
324
+ }
325
+ return fallback;
326
+ }
327
+ async function fetchCloudJson(params) {
328
+ const headers = new Headers(params.init?.headers);
329
+ headers.set("authorization", `Bearer ${params.apiKey}`);
330
+ headers.set("accept", "application/json");
331
+ if (params.init?.body && !headers.has("content-type")) headers.set("content-type", "application/json");
332
+ const response = await fetch(params.url, {
333
+ ...params.init,
334
+ headers
335
+ });
336
+ const body = await readJsonResponse(response);
337
+ if (!response.ok) {
338
+ const requestPath = new URL(params.url).pathname;
339
+ if (response.status === 404 && requestPath === "/api/cloud/preview") throw new Error("Docs Cloud preview API is not available on this cloud host yet. The API key was validated, but the host did not expose /api/cloud/preview.");
340
+ const message = readResponseMessage(body, `Docs Cloud request failed with HTTP ${response.status}.`);
341
+ throw new Error(message);
342
+ }
343
+ return body;
344
+ }
345
+ function readPreviewUrl(body) {
346
+ if (!isRecord(body)) return void 0;
347
+ const direct = body.url ?? body.previewUrl;
348
+ if (typeof direct === "string" && direct.trim()) return direct.trim();
349
+ const preview = body.preview;
350
+ if (isRecord(preview) && typeof preview.url === "string" && preview.url.trim()) return preview.url.trim();
351
+ }
352
+ function readStatusUrl(body, apiBaseUrl) {
353
+ if (!isRecord(body)) return void 0;
354
+ const statusUrl = body.statusUrl ?? body.pollUrl;
355
+ if (typeof statusUrl !== "string" || !statusUrl.trim()) return void 0;
356
+ return new URL(statusUrl, apiBaseUrl).toString();
357
+ }
358
+ function readPreviewStatus(body) {
359
+ if (!isRecord(body)) return void 0;
360
+ const status = body.status;
361
+ return typeof status === "string" ? status : void 0;
362
+ }
363
+ async function requestPreview(params) {
364
+ const initial = await fetchCloudJson({
365
+ url: `${params.apiBaseUrl}/api/cloud/preview`,
366
+ apiKey: params.apiKey,
367
+ init: {
368
+ method: "POST",
369
+ body: JSON.stringify({
370
+ config: params.config,
371
+ configPath: path.relative(params.rootDir, params.configPath) || DOCS_JSON_FILE,
372
+ repository: resolveGitRepositoryMetadata(params.rootDir)
373
+ })
374
+ }
375
+ });
376
+ const initialUrl = readPreviewUrl(initial);
377
+ if (initialUrl) return {
378
+ url: initialUrl,
379
+ response: initial
380
+ };
381
+ const statusUrl = readStatusUrl(initial, params.apiBaseUrl);
382
+ if (!statusUrl) throw new Error("Docs Cloud accepted the preview request but did not return a preview URL or status URL.");
383
+ const startedAt = Date.now();
384
+ while (Date.now() - startedAt < params.timeoutMs) {
385
+ await new Promise((resolve) => setTimeout(resolve, params.pollIntervalMs));
386
+ params.spinner.update("Waiting for Docs Cloud preview deployment");
387
+ const statusBody = await fetchCloudJson({
388
+ url: statusUrl,
389
+ apiKey: params.apiKey
390
+ });
391
+ const url = readPreviewUrl(statusBody);
392
+ if (url) return {
393
+ url,
394
+ response: statusBody
395
+ };
396
+ const status = readPreviewStatus(statusBody);
397
+ if (status === "failed" || status === "error") throw new Error(readResponseMessage(statusBody, "Docs Cloud preview failed."));
398
+ }
399
+ throw new Error("Docs Cloud preview timed out before a URL was ready.");
400
+ }
401
+ function createSpinner(initialMessage, options = {}) {
402
+ const interactive = Boolean(process.stdout.isTTY && !options.json && process.env.NODE_ENV !== "test");
403
+ const frames = [
404
+ "-",
405
+ "\\",
406
+ "|",
407
+ "/"
408
+ ];
409
+ let frame = 0;
410
+ let message = initialMessage;
411
+ let timer;
412
+ const render = () => {
413
+ process.stdout.write(`\r${pc.cyan(frames[frame % frames.length])} ${message}`);
414
+ frame += 1;
415
+ };
416
+ if (interactive) {
417
+ render();
418
+ timer = setInterval(render, 90);
419
+ } else if (!options.json) console.log(`${pc.dim("-")} ${initialMessage}`);
420
+ const clear = () => {
421
+ if (timer) {
422
+ clearInterval(timer);
423
+ timer = void 0;
424
+ }
425
+ if (interactive) process.stdout.write("\r\x1B[K");
426
+ };
427
+ return {
428
+ update(nextMessage) {
429
+ message = nextMessage;
430
+ if (!interactive && !options.json) console.log(`${pc.dim("-")} ${nextMessage}`);
431
+ },
432
+ succeed(doneMessage) {
433
+ clear();
434
+ if (!options.json) console.log(`${pc.green("ok")} ${doneMessage}`);
435
+ },
436
+ fail(doneMessage) {
437
+ clear();
438
+ if (!options.json) console.log(`${pc.red("error")} ${doneMessage}`);
439
+ },
440
+ stop() {
441
+ clear();
442
+ }
443
+ };
444
+ }
445
+ async function syncCloudConfig(options = {}) {
446
+ const result = await materializeCloudConfig(options);
447
+ if (options.json) {
448
+ console.log(JSON.stringify(result, null, 2));
449
+ return result;
450
+ }
451
+ const action = result.created ? "Created" : result.updated ? "Synced" : "Checked";
452
+ console.log(`${pc.green("ok")} ${action} ${pc.cyan(path.relative(process.cwd(), result.docsJsonPath) || DOCS_JSON_FILE)}`);
453
+ console.log(`${pc.dim("api key env")} ${result.apiKeyEnv}`);
454
+ return result;
455
+ }
456
+ async function runCloudPreview(options = {}) {
457
+ const rootDir = options.rootDir ?? process.cwd();
458
+ const spinner = createSpinner("Preparing Docs Cloud preview", options);
459
+ try {
460
+ const materialized = await materializeCloudConfig({
461
+ ...options,
462
+ rootDir
463
+ });
464
+ spinner.update(`${materialized.created ? "Created" : "Synced"} ${DOCS_JSON_FILE}`);
465
+ if (materialized.config.cloud?.enabled === false) throw new Error("Docs Cloud is disabled in cloud.enabled. Remove that override or set cloud.enabled: true before requesting a preview.");
466
+ if (materialized.config.cloud?.preview?.enabled === false) throw new Error("Docs Cloud preview is disabled in cloud.preview.enabled. Set it to true before requesting a preview.");
467
+ const apiKey = resolveApiKey(options, rootDir, materialized.apiKeyEnv);
468
+ const apiBaseUrl = resolveApiBaseUrl(options);
469
+ spinner.update("Validating Docs Cloud API key");
470
+ const identity = await fetchCloudJson({
471
+ url: `${apiBaseUrl}/api/cloud/me`,
472
+ apiKey
473
+ });
474
+ spinner.update("Requesting Docs Cloud preview deployment");
475
+ const preview = await requestPreview({
476
+ apiBaseUrl,
477
+ apiKey,
478
+ config: materialized.config,
479
+ configPath: materialized.docsJsonPath,
480
+ rootDir,
481
+ spinner,
482
+ timeoutMs: options.timeoutMs ?? DEFAULT_PREVIEW_TIMEOUT_MS,
483
+ pollIntervalMs: options.pollIntervalMs ?? DEFAULT_PREVIEW_POLL_INTERVAL_MS
484
+ });
485
+ spinner.succeed("Docs Cloud preview is ready");
486
+ const result = {
487
+ url: preview.url,
488
+ docsJsonPath: materialized.docsJsonPath,
489
+ apiBaseUrl,
490
+ identity,
491
+ response: preview.response
492
+ };
493
+ if (options.json) console.log(JSON.stringify(result, null, 2));
494
+ else console.log(`${pc.bold("Preview")} ${pc.cyan(preview.url)}`);
495
+ return result;
496
+ } catch (error) {
497
+ const message = error instanceof Error ? error.message : String(error);
498
+ spinner.fail(message);
499
+ throw error;
500
+ } finally {
501
+ spinner.stop();
502
+ }
503
+ }
504
+ function printCloudHelp() {
505
+ console.log(`
506
+ ${pc.bold("@farming-labs/docs cloud")}
507
+
508
+ ${pc.dim("Usage:")}
509
+ ${pc.cyan("docs preview")} Sync ${pc.dim("docs.config.ts")} to ${pc.dim("docs.json")} and request a cloud preview
510
+ ${pc.cyan("docs cloud preview")} Same as ${pc.cyan("docs preview")}
511
+ ${pc.cyan("docs cloud sync")} Only materialize cloud settings into ${pc.dim("docs.json")}
512
+
513
+ ${pc.dim("Options:")}
514
+ ${pc.cyan("--config <path>")} Use a custom docs config path
515
+ ${pc.cyan("--api-base-url <url>")} Override Docs Cloud API base URL
516
+ ${pc.cyan("--api-key <key>")} Use an API key directly; prefer ${pc.dim("cloud.apiKey.env")}
517
+ ${pc.cyan("--json")} Print machine-readable output
518
+
519
+ ${pc.dim("Config example:")}
520
+ cloud: {
521
+ apiKey: { env: "DOCS_CLOUD_API_KEY" },
522
+ preview: { enabled: true },
523
+ publish: { mode: "draft-pr", baseBranch: "main" },
524
+ }
525
+ `);
526
+ }
527
+
528
+ //#endregion
529
+ export { printCloudHelp, runCloudPreview, syncCloudConfig };
@@ -3,7 +3,7 @@ import { E as findDocsMarkdownPage, U as renderDocsMarkdownDocument } from "./ag
3
3
  import "./index.mjs";
4
4
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
5
5
  import "./server.mjs";
6
- 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-B8wA38OC.mjs";
6
+ import { a as loadProjectEnv, c as readNavTitle, f as readTopLevelStringProperty, i as loadDocsConfigModule, l as readNumberProperty, m as resolveDocsContentDir, o as readBooleanProperty, p as resolveDocsConfigPath, s as readEnvReferenceProperty, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-CBoixmrv.mjs";
7
7
  import matter from "gray-matter";
8
8
  import { existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
9
9
  import path from "node:path";
@@ -230,6 +230,14 @@ function readTopLevelStringProperty(content, key) {
230
230
  if (match) return match[1];
231
231
  }
232
232
  }
233
+ function readTopLevelBooleanProperty(content, key) {
234
+ const source = extractTopLevelConfigObject(content) ?? content;
235
+ const propertyPattern = new RegExp(`^\\s*${escapeRegExp(key)}\\s*:\\s*(true|false)\\b`);
236
+ for (const property of splitTopLevelProperties(source)) {
237
+ const match = property.trim().match(propertyPattern);
238
+ if (match) return match[1] === "true";
239
+ }
240
+ }
233
241
  function readNavTitle(content) {
234
242
  const block = extractObjectLiteral(extractTopLevelConfigObject(content) ?? content, "nav");
235
243
  if (!block) return void 0;
@@ -295,4 +303,4 @@ async function loadDocsConfigModule(rootDir, explicitPath, options = {}) {
295
303
  }
296
304
 
297
305
  //#endregion
298
- export { loadProjectEnv as a, readNavTitle as c, readTopLevelStringProperty as d, resolveDocsConfigPath as f, loadDocsConfigModule as i, readNumberProperty as l, extractObjectLiteral as n, readBooleanProperty as o, resolveDocsContentDir as p, extractTopLevelConfigObject as r, readEnvReferenceProperty as s, extractNestedObjectLiteral as t, readStringProperty as u };
306
+ export { loadProjectEnv as a, readNavTitle as c, readTopLevelBooleanProperty as d, readTopLevelStringProperty as f, loadDocsConfigModule as i, readNumberProperty as l, resolveDocsContentDir as m, extractObjectLiteral as n, readBooleanProperty as o, resolveDocsConfigPath as p, extractTopLevelConfigObject as r, readEnvReferenceProperty as s, extractNestedObjectLiteral as t, readStringProperty as u };
@@ -1,5 +1,5 @@
1
1
  import { i as detectPackageManagerFromLockfile } from "./utils-x5EtYWjC.mjs";
2
- import { K as rootLayoutTemplate, W as postcssConfigTemplate, g as docsLayoutTemplate, v as globalCssTemplate, yt as tsconfigTemplate } from "./templates-CGaORZOY.mjs";
2
+ import { K as rootLayoutTemplate, W as postcssConfigTemplate, g as docsLayoutTemplate, v as globalCssTemplate, yt as tsconfigTemplate } from "./templates-DomB3eeS.mjs";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import pc from "picocolors";
@@ -203,6 +203,12 @@ const managedConfigSchema = z.object({
203
203
  theme: z.object({ preset: z.string().optional() }).passthrough().optional(),
204
204
  cloud: z.object({
205
205
  enabled: z.boolean().optional(),
206
+ apiKey: z.object({ env: z.string().min(1).optional() }).passthrough().optional(),
207
+ preview: z.object({ enabled: z.boolean().optional() }).passthrough().optional(),
208
+ publish: z.object({
209
+ mode: z.enum(["draft-pr", "direct-commit"]).optional(),
210
+ baseBranch: z.string().min(1).optional()
211
+ }).passthrough().optional(),
206
212
  analytics: z.union([z.boolean(), z.object({
207
213
  enabled: z.boolean().optional(),
208
214
  console: z.union([z.boolean(), z.enum([
@@ -1,4 +1,4 @@
1
- import "./reading-time-HpTq-0VB.mjs";
1
+ import "./reading-time-DPAazAGu.mjs";
2
2
  import "./search-BL7o2rXk.mjs";
3
3
  import { a as DEFAULT_SITEMAP_XML_ROUTE, d as resolveDocsSitemapConfig, i as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, r as DEFAULT_SITEMAP_MD_ROUTE } from "./sitemap-CMNj0Pt3.mjs";
4
4
  import { T as buildDocsMcpEndpointCandidates, b as DEFAULT_SKILL_MD_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, d as DEFAULT_LLMS_FULL_TXT_ROUTE, g as DEFAULT_MCP_PUBLIC_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, m as DEFAULT_LLMS_TXT_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_MCP_WELL_KNOWN_ROUTE, x as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE } from "./agent-BS39vnhS.mjs";
@@ -6,9 +6,9 @@ import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveD
6
6
  import "./sitemap-server-idLUrmmU.mjs";
7
7
  import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
8
8
  import "./server.mjs";
9
- 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-B8wA38OC.mjs";
9
+ import { a as loadProjectEnv, c as readNavTitle, f as readTopLevelStringProperty, i as loadDocsConfigModule, m as resolveDocsContentDir, o as readBooleanProperty, p as resolveDocsConfigPath, r as extractTopLevelConfigObject, t as extractNestedObjectLiteral } from "./config-CBoixmrv.mjs";
10
10
  import { t as detectFramework } from "./utils-x5EtYWjC.mjs";
11
- import { n as inspectAgentCompactionState, o as scanDocsPageTargets } from "./codeblocks-B4QzFqNC.mjs";
11
+ import { n as inspectAgentCompactionState, o as scanDocsPageTargets } from "./codeblocks-DbJrclYa.mjs";
12
12
  import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
13
13
  import path from "node:path";
14
14
  import { LATEST_PROTOCOL_VERSION } from "@modelcontextprotocol/sdk/types.js";
@@ -1,5 +1,5 @@
1
1
  import { c as fileExists, o as exec, s as execOutput } from "./utils-x5EtYWjC.mjs";
2
- import { a as getPackagesForFramework, c as resolveDocsPackageManager, l as validateUpgradeVersion, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework } from "./package-version-OrjpmqoR.mjs";
2
+ import { a as getPackagesForFramework, c as resolveDocsPackageManager, l as validateUpgradeVersion, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework } from "./package-version-CQm0KO-H.mjs";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import pc from "picocolors";
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as DocsReviewRulesConfig, A as DocsCodeBlocksConfig, At as OpenDocsProviderId, B as DocsFeedbackValue, Bt as ResolvedDocsRelatedLink, C as DocsAskAIActionData, Ct as LlmsTxtMaxCharsMode, D as DocsAskAIFeedbackMessage, Dt as OpenDocsConfig, E as DocsAskAIFeedbackData, Et as OGConfig, F as DocsCodeBlocksValidateConfig, Ft as PageFrontmatter, G as DocsNav, Gt as SidebarNode, H as DocsMcpConfig, Ht as SidebarConfig, I as DocsCodeBlocksValidationMode, It as PageOpenGraph, J as DocsObservabilityEventInput, Jt as SimpleDocsSearchConfig, K as DocsObservabilityConfig, Kt as SidebarPageNode, L as DocsCodeBlocksValidationPolicy, Lt as PageSidebarFrontmatter, M as DocsCodeBlocksPlannerProvider, Mt as OpenGraphImage, N as DocsCodeBlocksRunnerConfig, Nt as OrderingItem, O as DocsAskAIFeedbackValue, Ot as OpenDocsProvider, P as DocsCodeBlocksRunnerProvider, Pt as PageActionsConfig, Q as DocsReviewConfig, Qt as UIConfig, R as DocsConfig, Rt as PageTwitter, S as DocsAnalyticsSource, St as LlmsTxtMaxCharsConfig, T as DocsAskAIFeedbackConfig, Tt as McpDocsSearchConfig, U as DocsMcpToolsConfig, Ut as SidebarFolderIndexBehavior, V as DocsI18nConfig, Vt as SidebarComponentProps, W as DocsMetadata, Wt as SidebarFolderNode, X as DocsReviewCiConfig, Xt as TypesenseDocsSearchConfig, Y as DocsRelatedItem, Yt as ThemeToggleConfig, Z as DocsReviewCiMode, Zt as TypographyConfig, _ as DocsAnalyticsConfig, _t as FeedbackConfig, a as ApiReferenceRenderer, at as DocsSearchAdapterContext, b as DocsAnalyticsEventType, bt as LastUpdatedConfig, c as ChangelogFrontmatter, ct as DocsSearchConfig, d as CustomDocsSearchConfig, dt as DocsSearchQuery, et as DocsReviewScoreConfig, f as DocsAgentFeedbackContext, ft as DocsSearchResult, g as DocsAgentTraceStatus, gt as DocsTheme, h as DocsAgentTraceEventType, ht as DocsSitemapConfig, i as ApiReferenceConfig, it as DocsSearchAdapter, j as DocsCodeBlocksPlannerConfig, jt as OpenDocsTarget, k as DocsAskAIMcpConfig, kt as OpenDocsProviderConfig, l as CodeBlockCopyData, lt as DocsSearchDocument, m as DocsAgentTraceEventInput, mt as DocsSearchSourcePage, n as AgentFeedbackConfig, nt as DocsRobotsConfig, o as BreadcrumbConfig, ot as DocsSearchAdapterFactory, p as DocsAgentFeedbackData, pt as DocsSearchResultType, q as DocsObservabilityEvent, qt as SidebarTree, r as AlgoliaDocsSearchConfig, rt as DocsRobotsRule, s as ChangelogConfig, st as DocsSearchChunkingConfig, t as AIConfig, tt as DocsReviewSeverity, u as CopyMarkdownConfig, ut as DocsSearchEmbeddingsConfig, v as DocsAnalyticsEvent, vt as FontStyle, w as DocsAskAIActionType, wt as LlmsTxtSectionConfig, x as DocsAnalyticsInput, xt as LlmsTxtConfig, y as DocsAnalyticsEventInput, yt as GithubConfig, z as DocsFeedbackData, zt as ReadingTimeConfig } from "./types-Dg82p0Fm.mjs";
2
- import { $ as createDocsAgentTraceId, A as resolveDocsSitemapRequest, C as buildDocsSitemapManifest, D as renderDocsSitemapXml, E as renderDocsSitemapMarkdown, I as PromptAction, J as DOCS_AGENT_TRACE_EVENT_TYPES, L as PromptProviderChoice, O as resolveDocsSitemapConfig, Q as createDocsAgentTraceContext, R as SerializeOpenDocsProviderOptions, S as DocsSitemapResolvedConfig, T as readDocsSitemapManifestFromContentMap, X as ResolvedDocsAnalyticsConfig, Y as DocsAgentTraceContext, Z as ResolvedDocsObservabilityConfig, _ as DEFAULT_SITEMAP_XML_ROUTE, a as createMcpSearchAdapter, at as DocsCloudAnalyticsOptions, b as DocsSitemapManifestPage, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, et as emitDocsAgentTraceEvent, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, h as DEFAULT_SITEMAP_MD_ROUTE, i as createCustomSearchAdapter, it as resolveDocsObservabilityConfig, j as toDocsSitemapMarkdownUrl, k as resolveDocsSitemapPageLastmod, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_DOCS_ROUTE, n as buildDocsSearchDocuments, nt as emitDocsObservabilityEvent, o as createSimpleSearchAdapter, ot as createDocsCloudAnalytics, p as DEFAULT_SITEMAP_MANIFEST_PATH, r as createAlgoliaSearchAdapter, rt as resolveDocsAnalyticsConfig, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, tt as emitDocsAnalyticsEvent, u as performDocsSearch, v as DocsSitemapFormat, w as createDocsSitemapResponse, x as DocsSitemapPageInput, y as DocsSitemapManifest, z as SerializedOpenDocsProvider } from "./search-G0otDMfP.mjs";
1
+ import { $ as DocsObservabilityEventInput, $t as SimpleDocsSearchConfig, A as DocsCloudApiKeyConfig, At as McpDocsSearchConfig, B as DocsCodeBlocksValidateConfig, Bt as PageFrontmatter, C as DocsAskAIActionData, Ct as FontStyle, D as DocsAskAIFeedbackMessage, Dt as LlmsTxtMaxCharsConfig, E as DocsAskAIFeedbackData, Et as LlmsTxtConfig, F as DocsCodeBlocksConfig, Ft as OpenDocsProviderId, G as DocsFeedbackValue, Gt as ResolvedDocsRelatedLink, H as DocsCodeBlocksValidationPolicy, Ht as PageSidebarFrontmatter, I as DocsCodeBlocksPlannerConfig, It as OpenDocsTarget, J as DocsMcpToolsConfig, Jt as SidebarFolderIndexBehavior, K as DocsI18nConfig, Kt as SidebarComponentProps, L as DocsCodeBlocksPlannerProvider, Lt as OpenGraphImage, M as DocsCloudFeatureConfig, Mt as OpenDocsConfig, N as DocsCloudPreviewConfig, Nt as OpenDocsProvider, O as DocsAskAIFeedbackValue, Ot as LlmsTxtMaxCharsMode, P as DocsCloudPublishConfig, Pt as OpenDocsProviderConfig, Q as DocsObservabilityEvent, Qt as SidebarTree, R as DocsCodeBlocksRunnerConfig, Rt as OrderingItem, S as DocsAnalyticsSource, St as FeedbackConfig, T as DocsAskAIFeedbackConfig, Tt as LastUpdatedConfig, U as DocsConfig, Ut as PageTwitter, V as DocsCodeBlocksValidationMode, Vt as PageOpenGraph, W as DocsFeedbackData, Wt as ReadingTimeConfig, X as DocsNav, Xt as SidebarNode, Y as DocsMetadata, Yt as SidebarFolderNode, Z as DocsObservabilityConfig, Zt as SidebarPageNode, _ as DocsAnalyticsConfig, _t as DocsSearchResult, a as ApiReferenceRenderer, at as DocsReviewScoreConfig, b as DocsAnalyticsEventType, bt as DocsSitemapConfig, c as ChangelogFrontmatter, ct as DocsRobotsRule, d as CustomDocsSearchConfig, dt as DocsSearchAdapterFactory, en as ThemeToggleConfig, et as DocsRelatedItem, f as DocsAgentFeedbackContext, ft as DocsSearchChunkingConfig, g as DocsAgentTraceStatus, gt as DocsSearchQuery, h as DocsAgentTraceEventType, ht as DocsSearchEmbeddingsConfig, i as ApiReferenceConfig, it as DocsReviewRulesConfig, j as DocsCloudConfig, jt as OGConfig, k as DocsAskAIMcpConfig, kt as LlmsTxtSectionConfig, l as CodeBlockCopyData, lt as DocsSearchAdapter, m as DocsAgentTraceEventInput, mt as DocsSearchDocument, n as AgentFeedbackConfig, nn as TypographyConfig, nt as DocsReviewCiMode, o as BreadcrumbConfig, ot as DocsReviewSeverity, p as DocsAgentFeedbackData, pt as DocsSearchConfig, q as DocsMcpConfig, qt as SidebarConfig, r as AlgoliaDocsSearchConfig, rn as UIConfig, rt as DocsReviewConfig, s as ChangelogConfig, st as DocsRobotsConfig, t as AIConfig, tn as TypesenseDocsSearchConfig, tt as DocsReviewCiConfig, u as CopyMarkdownConfig, ut as DocsSearchAdapterContext, v as DocsAnalyticsEvent, vt as DocsSearchResultType, w as DocsAskAIActionType, wt as GithubConfig, x as DocsAnalyticsInput, xt as DocsTheme, y as DocsAnalyticsEventInput, yt as DocsSearchSourcePage, z as DocsCodeBlocksRunnerProvider, zt as PageActionsConfig } from "./types-C-C-9SMJ.mjs";
2
+ import { $ as createDocsAgentTraceId, A as resolveDocsSitemapRequest, C as buildDocsSitemapManifest, D as renderDocsSitemapXml, E as renderDocsSitemapMarkdown, I as PromptAction, J as DOCS_AGENT_TRACE_EVENT_TYPES, L as PromptProviderChoice, O as resolveDocsSitemapConfig, Q as createDocsAgentTraceContext, R as SerializeOpenDocsProviderOptions, S as DocsSitemapResolvedConfig, T as readDocsSitemapManifestFromContentMap, X as ResolvedDocsAnalyticsConfig, Y as DocsAgentTraceContext, Z as ResolvedDocsObservabilityConfig, _ as DEFAULT_SITEMAP_XML_ROUTE, a as createMcpSearchAdapter, at as DocsCloudAnalyticsOptions, b as DocsSitemapManifestPage, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, et as emitDocsAgentTraceEvent, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, h as DEFAULT_SITEMAP_MD_ROUTE, i as createCustomSearchAdapter, it as resolveDocsObservabilityConfig, j as toDocsSitemapMarkdownUrl, k as resolveDocsSitemapPageLastmod, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_DOCS_ROUTE, n as buildDocsSearchDocuments, nt as emitDocsObservabilityEvent, o as createSimpleSearchAdapter, ot as createDocsCloudAnalytics, p as DEFAULT_SITEMAP_MANIFEST_PATH, r as createAlgoliaSearchAdapter, rt as resolveDocsAnalyticsConfig, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, tt as emitDocsAnalyticsEvent, u as performDocsSearch, v as DocsSitemapFormat, w as createDocsSitemapResponse, x as DocsSitemapPageInput, y as DocsSitemapManifest, z as SerializedOpenDocsProvider } from "./search-CNoiftmI.mjs";
3
3
  import { DocsMcpPage, DocsMcpResolvedConfig } from "./mcp.mjs";
4
4
 
5
5
  //#region src/define-docs.d.ts
@@ -668,4 +668,4 @@ declare function renderDocsRobotsGeneratedBlock(options?: DocsRobotsRenderOption
668
668
  declare function upsertDocsRobotsGeneratedBlock(existing: string, block: string): string;
669
669
  declare function analyzeDocsRobotsTxt(content: string, options?: DocsRobotsRenderOptions): DocsRobotsAnalysis;
670
670
  //#endregion
671
- 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_AGENTS_MD_ROUTE, DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA, DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_MD_ROUTE, DEFAULT_AGENT_MD_WELL_KNOWN_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_OPENAPI_SCHEMA_ROUTE, DEFAULT_ROBOTS_TXT_ROUTE, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_DOCS_ROUTE, 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 DocsAgentsDocumentOptions, 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 DocsCodeBlocksConfig, type DocsCodeBlocksPlannerConfig, type DocsCodeBlocksPlannerProvider, type DocsCodeBlocksRunnerConfig, type DocsCodeBlocksRunnerProvider, type DocsCodeBlocksValidateConfig, type DocsCodeBlocksValidationMode, type DocsCodeBlocksValidationPolicy, 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 DocsMcpEndpointCandidate, type DocsMcpEndpointCandidateOptions, type DocsMcpToolsConfig, type DocsMetadata, type DocsNav, type DocsObservabilityConfig, type DocsObservabilityEvent, type DocsObservabilityEventInput, type DocsOpenApiDiscoveryConfig, type DocsOpenApiResolvedDiscoveryConfig, type DocsPageStructuredDataInput, type DocsPathMatch, type DocsRelatedItem, type DocsReviewCiConfig, type DocsReviewCiMode, type DocsReviewConfig, type DocsReviewRulesConfig, type DocsReviewScoreConfig, type DocsReviewSeverity, 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 OpenDocsProviderConfig, type OpenDocsProviderId, type OpenDocsTarget, type OpenGraphImage, type OrderingItem, type PageActionsConfig, type PageFrontmatter, type PageOpenGraph, type PageSidebarFrontmatter, type PageTwitter, type PromptAction, type PromptProviderChoice, type ReadingTimeConfig, type ResolvedChangelogConfig, type ResolvedDocsAnalyticsConfig, type ResolvedDocsI18n, type ResolvedDocsObservabilityConfig, type ResolvedDocsRelatedLink, type SerializeOpenDocsProviderOptions, type SerializedOpenDocsProvider, 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, buildDocsMcpEndpointCandidates, 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, isDocsAgentsRequest, isDocsLlmsTxtPublicRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, matchesDocsLlmsTxtSection, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseDocsAgentFeedbackData, parseGeneratedAgentDocument, performDocsSearch, readDocsSitemapManifestFromContentMap, renderDocsAgentsDocument, renderDocsLlmsTxt, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsPageStructuredDataJson, renderDocsRelatedMarkdownLines, renderDocsRobotsGeneratedBlock, renderDocsRobotsTxt, renderDocsSitemapMarkdown, renderDocsSitemapXml, renderDocsSkillDocument, resolveAskAISearchRequestConfig, resolveChangelogConfig, resolveDocsAgentFeedbackConfig, resolveDocsAgentFeedbackRequest, resolveDocsAgentMdxContent, resolveDocsAgentsFormat, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLlmsTxtRequest, resolveDocsLlmsTxtSections, resolveDocsLocale, resolveDocsMarkdownCanonicalUrl, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsObservabilityConfig, resolveDocsOpenApiDiscoveryConfig, resolveDocsPath, resolveDocsRobotsConfig, resolveDocsRobotsRequest, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolvePageSidebarFolderIndexBehavior, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveSidebarFolderIndexBehavior, resolveSidebarFolderIndexBehaviorForPath, resolveTitle, selectDocsLlmsTxtContent, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance, toDocsMarkdownUrl, toDocsSitemapMarkdownUrl, upsertDocsRobotsGeneratedBlock, validateDocsAgentFeedbackPayload };
671
+ 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_AGENTS_MD_ROUTE, DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, DEFAULT_AGENT_FEEDBACK_PAYLOAD_SCHEMA, DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_MD_ROUTE, DEFAULT_AGENT_MD_WELL_KNOWN_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_OPENAPI_SCHEMA_ROUTE, DEFAULT_ROBOTS_TXT_ROUTE, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_DOCS_ROUTE, 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 DocsAgentsDocumentOptions, 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 DocsCloudApiKeyConfig, type DocsCloudConfig, type DocsCloudFeatureConfig, type DocsCloudPreviewConfig, type DocsCloudPublishConfig, type DocsCodeBlocksConfig, type DocsCodeBlocksPlannerConfig, type DocsCodeBlocksPlannerProvider, type DocsCodeBlocksRunnerConfig, type DocsCodeBlocksRunnerProvider, type DocsCodeBlocksValidateConfig, type DocsCodeBlocksValidationMode, type DocsCodeBlocksValidationPolicy, 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 DocsMcpEndpointCandidate, type DocsMcpEndpointCandidateOptions, type DocsMcpToolsConfig, type DocsMetadata, type DocsNav, type DocsObservabilityConfig, type DocsObservabilityEvent, type DocsObservabilityEventInput, type DocsOpenApiDiscoveryConfig, type DocsOpenApiResolvedDiscoveryConfig, type DocsPageStructuredDataInput, type DocsPathMatch, type DocsRelatedItem, type DocsReviewCiConfig, type DocsReviewCiMode, type DocsReviewConfig, type DocsReviewRulesConfig, type DocsReviewScoreConfig, type DocsReviewSeverity, 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 OpenDocsProviderConfig, type OpenDocsProviderId, type OpenDocsTarget, type OpenGraphImage, type OrderingItem, type PageActionsConfig, type PageFrontmatter, type PageOpenGraph, type PageSidebarFrontmatter, type PageTwitter, type PromptAction, type PromptProviderChoice, type ReadingTimeConfig, type ResolvedChangelogConfig, type ResolvedDocsAnalyticsConfig, type ResolvedDocsI18n, type ResolvedDocsObservabilityConfig, type ResolvedDocsRelatedLink, type SerializeOpenDocsProviderOptions, type SerializedOpenDocsProvider, 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, buildDocsMcpEndpointCandidates, 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, isDocsAgentsRequest, isDocsLlmsTxtPublicRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, matchesDocsLlmsTxtSection, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseDocsAgentFeedbackData, parseGeneratedAgentDocument, performDocsSearch, readDocsSitemapManifestFromContentMap, renderDocsAgentsDocument, renderDocsLlmsTxt, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsPageStructuredDataJson, renderDocsRelatedMarkdownLines, renderDocsRobotsGeneratedBlock, renderDocsRobotsTxt, renderDocsSitemapMarkdown, renderDocsSitemapXml, renderDocsSkillDocument, resolveAskAISearchRequestConfig, resolveChangelogConfig, resolveDocsAgentFeedbackConfig, resolveDocsAgentFeedbackRequest, resolveDocsAgentMdxContent, resolveDocsAgentsFormat, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLlmsTxtRequest, resolveDocsLlmsTxtSections, resolveDocsLocale, resolveDocsMarkdownCanonicalUrl, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsObservabilityConfig, resolveDocsOpenApiDiscoveryConfig, 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,4 +1,4 @@
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-HpTq-0VB.mjs";
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-DPAazAGu.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
4
  import { a as DEFAULT_SITEMAP_XML_ROUTE, c as readDocsSitemapManifestFromContentMap, d as resolveDocsSitemapConfig, f as resolveDocsSitemapPageLastmod, i as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, l as renderDocsSitemapMarkdown, m as toDocsSitemapMarkdownUrl, n as DEFAULT_SITEMAP_MD_DOCS_ROUTE, o as buildDocsSitemapManifest, p as resolveDocsSitemapRequest, r as DEFAULT_SITEMAP_MD_ROUTE, s as createDocsSitemapResponse, t as DEFAULT_SITEMAP_MANIFEST_PATH, u as renderDocsSitemapXml } from "./sitemap-CMNj0Pt3.mjs";
@@ -1,5 +1,5 @@
1
1
  import { a as devInstallCommand, c as fileExists, d as spawnAndWaitFor, f as writeFileSafe, i as detectPackageManagerFromLockfile, l as installCommand, n as detectGlobalCssFiles, o as exec, r as detectNextAppDir, t as detectFramework, u as readFileSafe } from "./utils-x5EtYWjC.mjs";
2
- 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-CGaORZOY.mjs";
2
+ 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-DomB3eeS.mjs";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import pc from "picocolors";
@@ -2,7 +2,7 @@ import "./search-BL7o2rXk.mjs";
2
2
  import "./sitemap-server-idLUrmmU.mjs";
3
3
  import { createFilesystemDocsMcpSource, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
4
4
  import "./server.mjs";
5
- import { c as readNavTitle, f as resolveDocsConfigPath, n as extractObjectLiteral, o as readBooleanProperty, p as resolveDocsContentDir, u as readStringProperty } from "./config-B8wA38OC.mjs";
5
+ import { c as readNavTitle, m as resolveDocsContentDir, n as extractObjectLiteral, o as readBooleanProperty, p as resolveDocsConfigPath, u as readStringProperty } from "./config-CBoixmrv.mjs";
6
6
  import { readFileSync } from "node:fs";
7
7
 
8
8
  //#region src/cli/mcp.ts
package/dist/mcp.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { H as DocsMcpConfig, K as DocsObservabilityConfig, Nt as OrderingItem, _ as DocsAnalyticsConfig, ct as DocsSearchConfig, mt as DocsSearchSourcePage } from "./types-Dg82p0Fm.mjs";
1
+ import { Rt as OrderingItem, Z as DocsObservabilityConfig, _ as DocsAnalyticsConfig, pt as DocsSearchConfig, q as DocsMcpConfig, yt as DocsSearchSourcePage } from "./types-C-C-9SMJ.mjs";
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
 
4
4
  //#region src/mcp.d.ts
package/dist/mcp.mjs CHANGED
@@ -239,6 +239,42 @@ const DOCS_CONFIG_SCHEMA_OPTIONS = [
239
239
  description: "Maximum result count returned by search requests."
240
240
  }]
241
241
  },
242
+ {
243
+ path: "cloud",
244
+ name: "cloud",
245
+ type: "DocsCloudConfig",
246
+ description: "Docs Cloud integration settings mirrored into docs.json by cloud CLI commands.",
247
+ children: [
248
+ {
249
+ path: "cloud.apiKey.env",
250
+ name: "env",
251
+ type: "string",
252
+ default: "DOCS_CLOUD_API_KEY",
253
+ description: "Environment variable that stores the Docs Cloud API key. The key value is never written to docs.json."
254
+ },
255
+ {
256
+ path: "cloud.preview.enabled",
257
+ name: "enabled",
258
+ type: "boolean",
259
+ default: true,
260
+ description: "Request hosted preview deployments when running docs preview."
261
+ },
262
+ {
263
+ path: "cloud.publish.mode",
264
+ name: "mode",
265
+ type: "\"draft-pr\" | \"direct-commit\"",
266
+ default: "draft-pr",
267
+ description: "How Docs Cloud publishes generated docs changes."
268
+ },
269
+ {
270
+ path: "cloud.publish.baseBranch",
271
+ name: "baseBranch",
272
+ type: "string",
273
+ default: "main",
274
+ description: "Branch generated docs work should target."
275
+ }
276
+ ]
277
+ },
242
278
  {
243
279
  path: "llmsTxt",
244
280
  name: "llmsTxt",
@@ -18,6 +18,7 @@ function defineDocs(config) {
18
18
  sidebar: config.sidebar,
19
19
  components: config.components,
20
20
  analytics: config.analytics,
21
+ cloud: config.cloud,
21
22
  observability: config.observability,
22
23
  onCopyClick: config.onCopyClick,
23
24
  codeBlocks: config.codeBlocks,
@@ -1,5 +1,5 @@
1
1
  import { a as ensureDocsReviewWorkflow, o as readDocsReviewConfigFromSource, s as resolveDocsReviewConfig } from "./review-B7goPYUb.mjs";
2
- import { d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, p as resolveDocsContentDir } from "./config-B8wA38OC.mjs";
2
+ import { f as readTopLevelStringProperty, i as loadDocsConfigModule, m as resolveDocsContentDir, p as resolveDocsConfigPath } from "./config-CBoixmrv.mjs";
3
3
  import matter from "gray-matter";
4
4
  import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
5
5
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import "./agent-BS39vnhS.mjs";
2
2
  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-B2BfoyVM.mjs";
3
- import { d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-B8wA38OC.mjs";
3
+ import { f as readTopLevelStringProperty, i as loadDocsConfigModule, o as readBooleanProperty, p as resolveDocsConfigPath, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-CBoixmrv.mjs";
4
4
  import { t as detectFramework } from "./utils-x5EtYWjC.mjs";
5
5
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
6
6
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import { Bt as ResolvedDocsRelatedLink, J as DocsObservabilityEventInput, K as DocsObservabilityConfig, Ot as OpenDocsProvider, Tt as McpDocsSearchConfig, Xt as TypesenseDocsSearchConfig, _ as DocsAnalyticsConfig, ct as DocsSearchConfig, d as CustomDocsSearchConfig, ft as DocsSearchResult, ht as DocsSitemapConfig, it as DocsSearchAdapter, jt as OpenDocsTarget, k as DocsAskAIMcpConfig, lt as DocsSearchDocument, m as DocsAgentTraceEventInput, mt as DocsSearchSourcePage, ot as DocsSearchAdapterFactory, q as DocsObservabilityEvent, r as AlgoliaDocsSearchConfig, st as DocsSearchChunkingConfig, v as DocsAnalyticsEvent, y as DocsAnalyticsEventInput } from "./types-Dg82p0Fm.mjs";
1
+ import { $ as DocsObservabilityEventInput, At as McpDocsSearchConfig, Gt as ResolvedDocsRelatedLink, It as OpenDocsTarget, Nt as OpenDocsProvider, Q as DocsObservabilityEvent, Z as DocsObservabilityConfig, _ as DocsAnalyticsConfig, _t as DocsSearchResult, bt as DocsSitemapConfig, d as CustomDocsSearchConfig, dt as DocsSearchAdapterFactory, ft as DocsSearchChunkingConfig, k as DocsAskAIMcpConfig, lt as DocsSearchAdapter, m as DocsAgentTraceEventInput, mt as DocsSearchDocument, pt as DocsSearchConfig, r as AlgoliaDocsSearchConfig, tn as TypesenseDocsSearchConfig, v as DocsAnalyticsEvent, y as DocsAnalyticsEventInput, yt as DocsSearchSourcePage } from "./types-C-C-9SMJ.mjs";
2
2
 
3
3
  //#region src/cloud-analytics.d.ts
4
4
  interface DocsCloudAnalyticsOptions {
@@ -2,7 +2,7 @@ import { n as buildDocsSearchDocuments, r as createAlgoliaSearchAdapter, s as cr
2
2
  import "./sitemap-server-idLUrmmU.mjs";
3
3
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
4
4
  import "./server.mjs";
5
- import { a as loadProjectEnv, d as readTopLevelStringProperty, f as resolveDocsConfigPath, p as resolveDocsContentDir } from "./config-B8wA38OC.mjs";
5
+ import { a as loadProjectEnv, f as readTopLevelStringProperty, m as resolveDocsContentDir, p as resolveDocsConfigPath } from "./config-CBoixmrv.mjs";
6
6
  import { readFileSync } from "node:fs";
7
7
  import pc from "picocolors";
8
8
 
package/dist/server.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { $ as DocsReviewRulesConfig, D as DocsAskAIFeedbackMessage, E as DocsAskAIFeedbackData, J as DocsObservabilityEventInput, K as DocsObservabilityConfig, O as DocsAskAIFeedbackValue, Q as DocsReviewConfig, R as DocsConfig, T as DocsAskAIFeedbackConfig, Tt as McpDocsSearchConfig, Z as DocsReviewCiMode, _ as DocsAnalyticsConfig, a as ApiReferenceRenderer, at as DocsSearchAdapterContext, ct as DocsSearchConfig, dt as DocsSearchQuery, ft as DocsSearchResult, g as DocsAgentTraceStatus, h as DocsAgentTraceEventType, ht as DocsSitemapConfig, it as DocsSearchAdapter, k as DocsAskAIMcpConfig, lt as DocsSearchDocument, m as DocsAgentTraceEventInput, mt as DocsSearchSourcePage, ot as DocsSearchAdapterFactory, q as DocsObservabilityEvent, v as DocsAnalyticsEvent, y as DocsAnalyticsEventInput } from "./types-Dg82p0Fm.mjs";
2
- import { $ as createDocsAgentTraceId, A as resolveDocsSitemapRequest, B as normalizePromptProviderName, C as buildDocsSitemapManifest, D as renderDocsSitemapXml, E as renderDocsSitemapMarkdown, F as DEFAULT_PROMPT_PROVIDER_TEMPLATES, G as serializeDocsIconRegistry, H as resolvePromptProviderChoices, I as PromptAction, J as DOCS_AGENT_TRACE_EVENT_TYPES, K as serializeOpenDocsProvider, L as PromptProviderChoice, M as DEFAULT_OPEN_DOCS_PROMPT, N as DEFAULT_OPEN_DOCS_PROVIDER_IDS, O as resolveDocsSitemapConfig, P as DEFAULT_OPEN_DOCS_TARGET, Q as createDocsAgentTraceContext, R as SerializeOpenDocsProviderOptions, S as DocsSitemapResolvedConfig, T as readDocsSitemapManifestFromContentMap, U as sanitizePromptText, V as parsePromptStringArray, W as serializeDocsIcon, X as ResolvedDocsAnalyticsConfig, Y as DocsAgentTraceContext, Z as ResolvedDocsObservabilityConfig, _ as DEFAULT_SITEMAP_XML_ROUTE, a as createMcpSearchAdapter, at as DocsCloudAnalyticsOptions, b as DocsSitemapManifestPage, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, et as emitDocsAgentTraceEvent, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, h as DEFAULT_SITEMAP_MD_ROUTE, i as createCustomSearchAdapter, it as resolveDocsObservabilityConfig, j as toDocsSitemapMarkdownUrl, k as resolveDocsSitemapPageLastmod, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_DOCS_ROUTE, n as buildDocsSearchDocuments, nt as emitDocsObservabilityEvent, o as createSimpleSearchAdapter, ot as createDocsCloudAnalytics, p as DEFAULT_SITEMAP_MANIFEST_PATH, q as serializeOpenDocsProviders, r as createAlgoliaSearchAdapter, rt as resolveDocsAnalyticsConfig, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, tt as emitDocsAnalyticsEvent, u as performDocsSearch, v as DocsSitemapFormat, w as createDocsSitemapResponse, x as DocsSitemapPageInput, y as DocsSitemapManifest, z as SerializedOpenDocsProvider } from "./search-G0otDMfP.mjs";
1
+ import { $ as DocsObservabilityEventInput, At as McpDocsSearchConfig, D as DocsAskAIFeedbackMessage, E as DocsAskAIFeedbackData, O as DocsAskAIFeedbackValue, Q as DocsObservabilityEvent, T as DocsAskAIFeedbackConfig, U as DocsConfig, Z as DocsObservabilityConfig, _ as DocsAnalyticsConfig, _t as DocsSearchResult, a as ApiReferenceRenderer, bt as DocsSitemapConfig, dt as DocsSearchAdapterFactory, g as DocsAgentTraceStatus, gt as DocsSearchQuery, h as DocsAgentTraceEventType, it as DocsReviewRulesConfig, k as DocsAskAIMcpConfig, lt as DocsSearchAdapter, m as DocsAgentTraceEventInput, mt as DocsSearchDocument, nt as DocsReviewCiMode, pt as DocsSearchConfig, rt as DocsReviewConfig, ut as DocsSearchAdapterContext, v as DocsAnalyticsEvent, y as DocsAnalyticsEventInput, yt as DocsSearchSourcePage } from "./types-C-C-9SMJ.mjs";
2
+ import { $ as createDocsAgentTraceId, A as resolveDocsSitemapRequest, B as normalizePromptProviderName, C as buildDocsSitemapManifest, D as renderDocsSitemapXml, E as renderDocsSitemapMarkdown, F as DEFAULT_PROMPT_PROVIDER_TEMPLATES, G as serializeDocsIconRegistry, H as resolvePromptProviderChoices, I as PromptAction, J as DOCS_AGENT_TRACE_EVENT_TYPES, K as serializeOpenDocsProvider, L as PromptProviderChoice, M as DEFAULT_OPEN_DOCS_PROMPT, N as DEFAULT_OPEN_DOCS_PROVIDER_IDS, O as resolveDocsSitemapConfig, P as DEFAULT_OPEN_DOCS_TARGET, Q as createDocsAgentTraceContext, R as SerializeOpenDocsProviderOptions, S as DocsSitemapResolvedConfig, T as readDocsSitemapManifestFromContentMap, U as sanitizePromptText, V as parsePromptStringArray, W as serializeDocsIcon, X as ResolvedDocsAnalyticsConfig, Y as DocsAgentTraceContext, Z as ResolvedDocsObservabilityConfig, _ as DEFAULT_SITEMAP_XML_ROUTE, a as createMcpSearchAdapter, at as DocsCloudAnalyticsOptions, b as DocsSitemapManifestPage, c as formatDocsAskAIPackageHints, d as resolveAskAISearchRequestConfig, et as emitDocsAgentTraceEvent, f as resolveSearchRequestConfig, g as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, h as DEFAULT_SITEMAP_MD_ROUTE, i as createCustomSearchAdapter, it as resolveDocsObservabilityConfig, j as toDocsSitemapMarkdownUrl, k as resolveDocsSitemapPageLastmod, l as inferDocsAskAIPackageHints, m as DEFAULT_SITEMAP_MD_DOCS_ROUTE, n as buildDocsSearchDocuments, nt as emitDocsObservabilityEvent, o as createSimpleSearchAdapter, ot as createDocsCloudAnalytics, p as DEFAULT_SITEMAP_MANIFEST_PATH, q as serializeOpenDocsProviders, r as createAlgoliaSearchAdapter, rt as resolveDocsAnalyticsConfig, s as createTypesenseSearchAdapter, t as buildDocsAskAIContext, tt as emitDocsAnalyticsEvent, u as performDocsSearch, v as DocsSitemapFormat, w as createDocsSitemapResponse, x as DocsSitemapPageInput, y as DocsSitemapManifest, z as SerializedOpenDocsProvider } from "./search-CNoiftmI.mjs";
3
3
  import { DocsMcpCodeExample, DocsMcpConfigSchema, DocsMcpConfigSchemaOption, DocsMcpDocsList, DocsMcpDocsPageSummary, DocsMcpDocsSection, DocsMcpHttpHandlers, DocsMcpNavigationNode, DocsMcpNavigationTree, DocsMcpPage, DocsMcpResolvedConfig, DocsMcpSource, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
4
4
 
5
5
  //#region src/code-group-mdx.d.ts
@@ -3,7 +3,7 @@ import { d as resolveDocsSitemapConfig, l as renderDocsSitemapMarkdown, o as bui
3
3
  import "./sitemap-server-idLUrmmU.mjs";
4
4
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
5
5
  import "./server.mjs";
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-B8wA38OC.mjs";
6
+ import { c as readNavTitle, f as readTopLevelStringProperty, i as loadDocsConfigModule, m as resolveDocsContentDir, o as readBooleanProperty, p as resolveDocsConfigPath, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-CBoixmrv.mjs";
7
7
  import { t as detectFramework } from "./utils-x5EtYWjC.mjs";
8
8
  import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
9
9
  import path from "node:path";
@@ -753,6 +753,53 @@ interface DocsAnalyticsConfig {
753
753
  /** Callback fired for every emitted event. */
754
754
  onEvent?: (event: DocsAnalyticsEvent) => void | Promise<void>;
755
755
  }
756
+ interface DocsCloudApiKeyConfig {
757
+ /**
758
+ * Environment variable that stores the Docs Cloud API key.
759
+ *
760
+ * The key value is never written to docs.json; only this env var name is
761
+ * mirrored for CLI and CI workflows.
762
+ *
763
+ * @default "DOCS_CLOUD_API_KEY"
764
+ */
765
+ env?: string;
766
+ }
767
+ interface DocsCloudPreviewConfig {
768
+ /** Whether Docs Cloud should request live preview deployments. @default true */
769
+ enabled?: boolean;
770
+ }
771
+ interface DocsCloudPublishConfig {
772
+ /** How Docs Cloud should publish generated docs changes. @default "draft-pr" */
773
+ mode?: "draft-pr" | "direct-commit";
774
+ /** Branch that generated docs work should target. @default "main" */
775
+ baseBranch?: string;
776
+ }
777
+ interface DocsCloudFeatureConfig {
778
+ /** Whether the hosted cloud feature is enabled. @default true */
779
+ enabled?: boolean;
780
+ }
781
+ interface DocsCloudConfig {
782
+ /**
783
+ * Optional explicit cloud toggle.
784
+ *
785
+ * Prefer omitting this in new projects; the presence of `cloud` opts the
786
+ * project into cloud-aware CLI flows. This remains available for backwards
787
+ * compatibility with older docs.json files.
788
+ */
789
+ enabled?: boolean;
790
+ /** API key lookup used by `docs preview` and other cloud CLI commands. */
791
+ apiKey?: DocsCloudApiKeyConfig;
792
+ /** Hosted preview deployment settings. */
793
+ preview?: DocsCloudPreviewConfig;
794
+ /** Generated docs publishing settings. */
795
+ publish?: DocsCloudPublishConfig;
796
+ /** Hosted analytics settings that can be mirrored to docs.json. */
797
+ analytics?: boolean | Omit<DocsAnalyticsConfig, "onEvent">;
798
+ /** Hosted AI feature toggle. */
799
+ ai?: DocsCloudFeatureConfig;
800
+ /** Hosted deployment feature toggle. */
801
+ deploy?: DocsCloudFeatureConfig;
802
+ }
756
803
  interface DocsObservabilityConfig {
757
804
  /** Enable trace emission. Defaults to `true` when this object is provided. */
758
805
  enabled?: boolean;
@@ -2287,6 +2334,23 @@ interface DocsConfig {
2287
2334
  * included unless `includeInputs: true` is set.
2288
2335
  */
2289
2336
  analytics?: boolean | DocsAnalyticsConfig;
2337
+ /**
2338
+ * Docs Cloud integration settings.
2339
+ *
2340
+ * Use this to configure the API key env var and cloud preview defaults once
2341
+ * in `docs.config.ts`; cloud CLI commands mirror the serializable subset into
2342
+ * `docs.json` automatically.
2343
+ *
2344
+ * @example
2345
+ * ```ts
2346
+ * cloud: {
2347
+ * apiKey: { env: "DOCS_CLOUD_API_KEY" },
2348
+ * preview: { enabled: true },
2349
+ * publish: { mode: "draft-pr", baseBranch: "main" },
2350
+ * }
2351
+ * ```
2352
+ */
2353
+ cloud?: DocsCloudConfig;
2290
2354
  /**
2291
2355
  * Built-in observability stream for agent traces, timing, errors, and runtime debugging.
2292
2356
  * This is separate from `analytics`; it emits span-like Ask AI and MCP trace events.
@@ -2722,4 +2786,4 @@ interface DocsConfig {
2722
2786
  og?: OGConfig;
2723
2787
  }
2724
2788
  //#endregion
2725
- export { DocsReviewRulesConfig as $, DocsCodeBlocksConfig as A, OpenDocsProviderId as At, DocsFeedbackValue as B, ResolvedDocsRelatedLink as Bt, DocsAskAIActionData as C, LlmsTxtMaxCharsMode as Ct, DocsAskAIFeedbackMessage as D, OpenDocsConfig as Dt, DocsAskAIFeedbackData as E, OGConfig as Et, DocsCodeBlocksValidateConfig as F, PageFrontmatter as Ft, DocsNav as G, SidebarNode as Gt, DocsMcpConfig as H, SidebarConfig as Ht, DocsCodeBlocksValidationMode as I, PageOpenGraph as It, DocsObservabilityEventInput as J, SimpleDocsSearchConfig as Jt, DocsObservabilityConfig as K, SidebarPageNode as Kt, DocsCodeBlocksValidationPolicy as L, PageSidebarFrontmatter as Lt, DocsCodeBlocksPlannerProvider as M, OpenGraphImage as Mt, DocsCodeBlocksRunnerConfig as N, OrderingItem as Nt, DocsAskAIFeedbackValue as O, OpenDocsProvider as Ot, DocsCodeBlocksRunnerProvider as P, PageActionsConfig as Pt, DocsReviewConfig as Q, UIConfig as Qt, DocsConfig as R, PageTwitter as Rt, DocsAnalyticsSource as S, LlmsTxtMaxCharsConfig as St, DocsAskAIFeedbackConfig as T, McpDocsSearchConfig as Tt, DocsMcpToolsConfig as U, SidebarFolderIndexBehavior as Ut, DocsI18nConfig as V, SidebarComponentProps as Vt, DocsMetadata as W, SidebarFolderNode as Wt, DocsReviewCiConfig as X, TypesenseDocsSearchConfig as Xt, DocsRelatedItem as Y, ThemeToggleConfig as Yt, DocsReviewCiMode as Z, TypographyConfig as Zt, DocsAnalyticsConfig as _, FeedbackConfig as _t, ApiReferenceRenderer as a, DocsSearchAdapterContext as at, DocsAnalyticsEventType as b, LastUpdatedConfig as bt, ChangelogFrontmatter as c, DocsSearchConfig as ct, CustomDocsSearchConfig as d, DocsSearchQuery as dt, DocsReviewScoreConfig as et, DocsAgentFeedbackContext as f, DocsSearchResult as ft, DocsAgentTraceStatus as g, DocsTheme as gt, DocsAgentTraceEventType as h, DocsSitemapConfig as ht, ApiReferenceConfig as i, DocsSearchAdapter as it, DocsCodeBlocksPlannerConfig as j, OpenDocsTarget as jt, DocsAskAIMcpConfig as k, OpenDocsProviderConfig as kt, CodeBlockCopyData as l, DocsSearchDocument as lt, DocsAgentTraceEventInput as m, DocsSearchSourcePage as mt, AgentFeedbackConfig as n, DocsRobotsConfig as nt, BreadcrumbConfig as o, DocsSearchAdapterFactory as ot, DocsAgentFeedbackData as p, DocsSearchResultType as pt, DocsObservabilityEvent as q, SidebarTree as qt, AlgoliaDocsSearchConfig as r, DocsRobotsRule as rt, ChangelogConfig as s, DocsSearchChunkingConfig as st, AIConfig as t, DocsReviewSeverity as tt, CopyMarkdownConfig as u, DocsSearchEmbeddingsConfig as ut, DocsAnalyticsEvent as v, FontStyle as vt, DocsAskAIActionType as w, LlmsTxtSectionConfig as wt, DocsAnalyticsInput as x, LlmsTxtConfig as xt, DocsAnalyticsEventInput as y, GithubConfig as yt, DocsFeedbackData as z, ReadingTimeConfig as zt };
2789
+ export { DocsObservabilityEventInput as $, SimpleDocsSearchConfig as $t, DocsCloudApiKeyConfig as A, McpDocsSearchConfig as At, DocsCodeBlocksValidateConfig as B, PageFrontmatter as Bt, DocsAskAIActionData as C, FontStyle as Ct, DocsAskAIFeedbackMessage as D, LlmsTxtMaxCharsConfig as Dt, DocsAskAIFeedbackData as E, LlmsTxtConfig as Et, DocsCodeBlocksConfig as F, OpenDocsProviderId as Ft, DocsFeedbackValue as G, ResolvedDocsRelatedLink as Gt, DocsCodeBlocksValidationPolicy as H, PageSidebarFrontmatter as Ht, DocsCodeBlocksPlannerConfig as I, OpenDocsTarget as It, DocsMcpToolsConfig as J, SidebarFolderIndexBehavior as Jt, DocsI18nConfig as K, SidebarComponentProps as Kt, DocsCodeBlocksPlannerProvider as L, OpenGraphImage as Lt, DocsCloudFeatureConfig as M, OpenDocsConfig as Mt, DocsCloudPreviewConfig as N, OpenDocsProvider as Nt, DocsAskAIFeedbackValue as O, LlmsTxtMaxCharsMode as Ot, DocsCloudPublishConfig as P, OpenDocsProviderConfig as Pt, DocsObservabilityEvent as Q, SidebarTree as Qt, DocsCodeBlocksRunnerConfig as R, OrderingItem as Rt, DocsAnalyticsSource as S, FeedbackConfig as St, DocsAskAIFeedbackConfig as T, LastUpdatedConfig as Tt, DocsConfig as U, PageTwitter as Ut, DocsCodeBlocksValidationMode as V, PageOpenGraph as Vt, DocsFeedbackData as W, ReadingTimeConfig as Wt, DocsNav as X, SidebarNode as Xt, DocsMetadata as Y, SidebarFolderNode as Yt, DocsObservabilityConfig as Z, SidebarPageNode as Zt, DocsAnalyticsConfig as _, DocsSearchResult as _t, ApiReferenceRenderer as a, DocsReviewScoreConfig as at, DocsAnalyticsEventType as b, DocsSitemapConfig as bt, ChangelogFrontmatter as c, DocsRobotsRule as ct, CustomDocsSearchConfig as d, DocsSearchAdapterFactory as dt, ThemeToggleConfig as en, DocsRelatedItem as et, DocsAgentFeedbackContext as f, DocsSearchChunkingConfig as ft, DocsAgentTraceStatus as g, DocsSearchQuery as gt, DocsAgentTraceEventType as h, DocsSearchEmbeddingsConfig as ht, ApiReferenceConfig as i, DocsReviewRulesConfig as it, DocsCloudConfig as j, OGConfig as jt, DocsAskAIMcpConfig as k, LlmsTxtSectionConfig as kt, CodeBlockCopyData as l, DocsSearchAdapter as lt, DocsAgentTraceEventInput as m, DocsSearchDocument as mt, AgentFeedbackConfig as n, TypographyConfig as nn, DocsReviewCiMode as nt, BreadcrumbConfig as o, DocsReviewSeverity as ot, DocsAgentFeedbackData as p, DocsSearchConfig as pt, DocsMcpConfig as q, SidebarConfig as qt, AlgoliaDocsSearchConfig as r, UIConfig as rn, DocsReviewConfig as rt, ChangelogConfig as s, DocsRobotsConfig as st, AIConfig as t, TypesenseDocsSearchConfig as tn, DocsReviewCiConfig as tt, CopyMarkdownConfig as u, DocsSearchAdapterContext as ut, DocsAnalyticsEvent as v, DocsSearchResultType as vt, DocsAskAIActionType as w, GithubConfig as wt, DocsAnalyticsInput as x, DocsTheme as xt, DocsAnalyticsEventInput as y, DocsSearchSourcePage as yt, DocsCodeBlocksRunnerProvider as z, PageActionsConfig as zt };
@@ -1,5 +1,5 @@
1
1
  import { c as fileExists, o as exec } from "./utils-x5EtYWjC.mjs";
2
- import { a as getPackagesForFramework, c as resolveDocsPackageManager, i as frameworkFromPreset, l as validateUpgradeVersion, n as PRESETS, o as presetFromFramework, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework, t as PACKAGES_BY_FRAMEWORK } from "./package-version-OrjpmqoR.mjs";
2
+ import { a as getPackagesForFramework, c as resolveDocsPackageManager, i as frameworkFromPreset, l as validateUpgradeVersion, n as PRESETS, o as presetFromFramework, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework, t as PACKAGES_BY_FRAMEWORK } from "./package-version-CQm0KO-H.mjs";
3
3
  import path from "node:path";
4
4
  import pc from "picocolors";
5
5
  import * as p from "@clack/prompts";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/docs",
3
- "version": "0.1.126",
3
+ "version": "0.1.129",
4
4
  "description": "Modern, flexible MDX-based docs framework — core types, config, and CLI",
5
5
  "keywords": [
6
6
  "docs",