@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.
- package/dist/{agent-DO7T2pnN.mjs → agent-CJNYhzu7.mjs} +3 -3
- package/dist/{agents-B11bgT3b.mjs → agents-BuL01_U0.mjs} +1 -1
- package/dist/cli/index.mjs +52 -19
- package/dist/cloud-88xTLXn3.mjs +529 -0
- package/dist/{codeblocks-B4QzFqNC.mjs → codeblocks-DbJrclYa.mjs} +1 -1
- package/dist/{config-B8wA38OC.mjs → config-CBoixmrv.mjs} +9 -1
- package/dist/{dev-1VFeAWUi.mjs → dev-DdlhqXNU.mjs} +7 -1
- package/dist/{doctor-ylvdBm1D.mjs → doctor-D_c7vJCb.mjs} +3 -3
- package/dist/{downgrade-BGANzvQb.mjs → downgrade-BayU3nlg.mjs} +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +1 -1
- package/dist/{init-DzQWiVN1.mjs → init-BJqy-LK2.mjs} +1 -1
- package/dist/{mcp-DxIxIGjq.mjs → mcp-CUAR3XfW.mjs} +1 -1
- package/dist/mcp.d.mts +1 -1
- package/dist/mcp.mjs +36 -0
- package/dist/{reading-time-HpTq-0VB.mjs → reading-time-DPAazAGu.mjs} +1 -0
- package/dist/{review-ClNDYRnn.mjs → review-CjyI-bVg.mjs} +1 -1
- package/dist/{robots-CNLiZCay.mjs → robots-Dx2uMF3g.mjs} +1 -1
- package/dist/{search-G0otDMfP.d.mts → search-CNoiftmI.d.mts} +1 -1
- package/dist/{search-D9iNWiKQ.mjs → search-Cekr2OyP.mjs} +1 -1
- package/dist/server.d.mts +2 -2
- package/dist/{sitemap-ChZG2_Bv.mjs → sitemap-BBfGr3tJ.mjs} +1 -1
- package/dist/{types-Dg82p0Fm.d.mts → types-C-C-9SMJ.d.mts} +65 -1
- package/dist/{upgrade-C7DvvfTR.mjs → upgrade-DDWolmHe.mjs} +1 -1
- package/package.json +1 -1
- /package/dist/{package-version-OrjpmqoR.mjs → package-version-CQm0KO-H.mjs} +0 -0
- /package/dist/{templates-CGaORZOY.mjs → templates-DomB3eeS.mjs} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import "./reading-time-
|
|
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-
|
|
7
|
-
import { a as readPageTokenBudget, i as printAgentCompactHelp, n as inspectAgentCompactionState, o as scanDocsPageTargets, r as parseAgentCompactArgs, t as compactAgentDocs } from "./codeblocks-
|
|
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,
|
|
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";
|
package/dist/cli/index.mjs
CHANGED
|
@@ -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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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,
|
|
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,
|
|
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-
|
|
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-
|
|
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,
|
|
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-
|
|
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-
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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,
|
|
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 {
|
|
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",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as ensureDocsReviewWorkflow, o as readDocsReviewConfigFromSource, s as resolveDocsReviewConfig } from "./review-B7goPYUb.mjs";
|
|
2
|
-
import {
|
|
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 {
|
|
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 {
|
|
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,
|
|
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
|
|
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-
|
|
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,
|
|
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 {
|
|
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-
|
|
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
|
File without changes
|
|
File without changes
|