@farming-labs/docs 0.2.52 → 0.2.53
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-2t4kZLGo.mjs +10 -0
- package/dist/{agent-CaOBIVFy.mjs → agent-BMxMpEa0.mjs} +194 -22
- package/dist/agent-contract-b0akaPcg.mjs +573 -0
- package/dist/agent-export--X9Go-wj.mjs +853 -0
- package/dist/{agents-DjhjZaNP.mjs → agents-CW-zTNKP.mjs} +6 -5
- package/dist/cli/index.mjs +43 -28
- package/dist/client/react.d.mts +1 -1
- package/dist/{cloud-ask-ai-DcMe6xOf.d.mts → cloud-ask-ai-CMzYVzVX.d.mts} +1 -1
- package/dist/{cloud-C_Ok9rC5.mjs → cloud-zs0qAnKJ.mjs} +3 -3
- package/dist/{codeblocks-z9iT794h.mjs → codeblocks-DWM4IJPL.mjs} +9 -12
- package/dist/{dev-Tm9Ss4D6.mjs → dev-DFeVU2Ui.mjs} +2 -2
- package/dist/docs-cloud-server.d.mts +2 -2
- package/dist/docs-cloud-server.mjs +1 -1
- package/dist/{doctor-O9o9kjN8.mjs → doctor-CkM5tKdD.mjs} +36 -24
- package/dist/{downgrade-CYEaOctn.mjs → downgrade-Dj_KXV11.mjs} +2 -2
- package/dist/i18n-CAlj1ADU.mjs +40 -0
- package/dist/index.d.mts +139 -3
- package/dist/index.mjs +7 -5
- package/dist/{init-Ch5On0zm.mjs → init-Cmz-oqnp.mjs} +3 -3
- package/dist/{mcp-DuCPNHS-.mjs → mcp-B4Q1PN93.mjs} +9 -5
- package/dist/mcp.d.mts +102 -4
- package/dist/mcp.mjs +1446 -66
- package/dist/{package-version-C8PigBZk.mjs → package-version-DxnTZH4m.mjs} +1 -1
- package/dist/{reading-time-CPAy1SWO.mjs → reading-time-BuK2YL23.mjs} +278 -33
- package/dist/{review-lm3dt7yy.mjs → review-BEsbm0l2.mjs} +38 -3
- package/dist/{robots-DV7u4Ire.mjs → robots-BOwkq9du.mjs} +5 -4
- package/dist/{robots-XVPs9lVz.mjs → robots-C6uQG-fS.mjs} +1 -1
- package/dist/{search-BWuU70B0.mjs → search-CJNLkdjX.mjs} +174 -79
- package/dist/{search-DFEhf9-s.d.mts → search-CTu6Bvq-.d.mts} +3 -1
- package/dist/{search-B6nEkx86.mjs → search-CtAXkk_J.mjs} +5 -4
- package/dist/server.d.mts +5 -5
- package/dist/server.mjs +8 -7
- package/dist/{sitemap-BEiKy4Iy.mjs → sitemap-OPb8EdNe.mjs} +6 -5
- package/dist/{sitemap-server-xEHtDUDB.mjs → sitemap-server-DnilMEiZ.mjs} +1 -1
- package/dist/{templates-uaauJcTO.mjs → templates-Bty9M6lA.mjs} +11 -5
- package/dist/{types-XqGLsmOD.d.mts → types-CdKu8KmO.d.mts} +118 -2
- package/dist/{upgrade-DzQtpgJM.mjs → upgrade-BNdBB9tQ.mjs} +2 -2
- package/package.json +1 -1
- package/dist/agent-DXDOMJBw.mjs +0 -9
- /package/dist/{cloud-ask-ai-Cl-xaV8j.mjs → cloud-ask-ai-BFlx8VMO.mjs} +0 -0
- /package/dist/{config-tiQCZ46q.mjs → config-DhIyFsy9.mjs} +0 -0
- /package/dist/{errors-CW1LnxaQ.mjs → errors-BxfYhp1L.mjs} +0 -0
- /package/dist/{review-B7goPYUb.mjs → review-BHdy75TE.mjs} +0 -0
- /package/dist/{utils-D-xTRNuh.mjs → utils-CMZTjRQT.mjs} +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "./
|
|
3
|
-
import
|
|
1
|
+
import "./agent-contract-b0akaPcg.mjs";
|
|
2
|
+
import { C as DEFAULT_OPENAPI_SCHEMA_ROUTE, a as DEFAULT_AGENT_MD_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, st as resolveDocsAgentFeedbackConfig, t as DEFAULT_AGENTS_MD_ROUTE, tt as renderDocsAgentsDocument } from "./agent-BMxMpEa0.mjs";
|
|
3
|
+
import "./search-CJNLkdjX.mjs";
|
|
4
|
+
import { S as resolveApiReferenceConfig } from "./sitemap-server-DnilMEiZ.mjs";
|
|
4
5
|
import { resolveDocsMcpConfig } from "./mcp.mjs";
|
|
5
6
|
import "./server.mjs";
|
|
6
|
-
import { c as readNavTitle, f as readTopLevelStringProperty, i as loadDocsConfigModule, o as readBooleanProperty, p as resolveDocsConfigPath, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-
|
|
7
|
-
import { t as detectFramework } from "./utils-
|
|
7
|
+
import { c as readNavTitle, f as readTopLevelStringProperty, i as loadDocsConfigModule, o as readBooleanProperty, p as resolveDocsConfigPath, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-DhIyFsy9.mjs";
|
|
8
|
+
import { t as detectFramework } from "./utils-CMZTjRQT.mjs";
|
|
8
9
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
9
10
|
import path from "node:path";
|
|
10
11
|
import pc from "picocolors";
|
package/dist/cli/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { i as wasCliErrorReported, r as shouldPrintStackTrace, t as formatCliError } from "../errors-
|
|
2
|
+
import { i as wasCliErrorReported, r as shouldPrintStackTrace, t as formatCliError } from "../errors-BxfYhp1L.mjs";
|
|
3
3
|
import pc from "picocolors";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/index.ts
|
|
@@ -105,57 +105,67 @@ async function main() {
|
|
|
105
105
|
]
|
|
106
106
|
};
|
|
107
107
|
if (!parsedCommand.command || parsedCommand.command === "init") {
|
|
108
|
-
const { init } = await import("../init-
|
|
108
|
+
const { init } = await import("../init-Cmz-oqnp.mjs");
|
|
109
109
|
await init(initOptions);
|
|
110
110
|
} else if (parsedCommand.command === "dev") {
|
|
111
|
-
const { dev } = await import("../dev-
|
|
111
|
+
const { dev } = await import("../dev-DFeVU2Ui.mjs");
|
|
112
112
|
await dev(devOptions);
|
|
113
113
|
} else if (parsedCommand.command === "deploy") {
|
|
114
|
-
const { runCloudDeploy } = await import("../cloud-
|
|
114
|
+
const { runCloudDeploy } = await import("../cloud-zs0qAnKJ.mjs");
|
|
115
115
|
await runCloudDeploy(cloudOptions);
|
|
116
116
|
} else if (parsedCommand.command === "preview") {
|
|
117
|
-
const { runCloudPreview } = await import("../cloud-
|
|
117
|
+
const { runCloudPreview } = await import("../cloud-zs0qAnKJ.mjs");
|
|
118
118
|
await runCloudPreview(cloudOptions);
|
|
119
119
|
} else if (parsedCommand.command === "cloud" && subcommand === "deploy") {
|
|
120
|
-
const { runCloudDeploy } = await import("../cloud-
|
|
120
|
+
const { runCloudDeploy } = await import("../cloud-zs0qAnKJ.mjs");
|
|
121
121
|
await runCloudDeploy(cloudOptions);
|
|
122
122
|
} else if (parsedCommand.command === "cloud" && subcommand === "preview") {
|
|
123
|
-
const { runCloudPreview } = await import("../cloud-
|
|
123
|
+
const { runCloudPreview } = await import("../cloud-zs0qAnKJ.mjs");
|
|
124
124
|
await runCloudPreview(cloudOptions);
|
|
125
125
|
} else if (parsedCommand.command === "cloud" && subcommand === "init") {
|
|
126
|
-
const { runCloudInit } = await import("../cloud-
|
|
126
|
+
const { runCloudInit } = await import("../cloud-zs0qAnKJ.mjs");
|
|
127
127
|
await runCloudInit(cloudOptions);
|
|
128
128
|
} else if (parsedCommand.command === "cloud" && subcommand === "sync") {
|
|
129
|
-
const { syncCloudConfig } = await import("../cloud-
|
|
129
|
+
const { syncCloudConfig } = await import("../cloud-zs0qAnKJ.mjs");
|
|
130
130
|
await syncCloudConfig(cloudOptions);
|
|
131
131
|
} else if (parsedCommand.command === "cloud" && subcommand === "check") {
|
|
132
|
-
const { runCloudCheck } = await import("../cloud-
|
|
132
|
+
const { runCloudCheck } = await import("../cloud-zs0qAnKJ.mjs");
|
|
133
133
|
await runCloudCheck(cloudOptions);
|
|
134
134
|
} else if (parsedCommand.command === "cloud") {
|
|
135
135
|
console.error(pc.red(`Unknown cloud subcommand: ${subcommand ?? "(missing)"}`));
|
|
136
136
|
console.error();
|
|
137
|
-
const { printCloudHelp } = await import("../cloud-
|
|
137
|
+
const { printCloudHelp } = await import("../cloud-zs0qAnKJ.mjs");
|
|
138
138
|
printCloudHelp();
|
|
139
139
|
process.exit(1);
|
|
140
140
|
} else if (parsedCommand.command === "mcp") {
|
|
141
|
-
const { runMcp } = await import("../mcp-
|
|
141
|
+
const { runMcp } = await import("../mcp-B4Q1PN93.mjs");
|
|
142
142
|
await runMcp(mcpOptions);
|
|
143
143
|
} else if (parsedCommand.command === "agent" && subcommand === "compact") {
|
|
144
|
-
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-
|
|
144
|
+
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-2t4kZLGo.mjs");
|
|
145
145
|
const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
|
|
146
146
|
if (agentCompactOptions.help) {
|
|
147
147
|
printAgentCompactHelp();
|
|
148
148
|
return;
|
|
149
149
|
}
|
|
150
150
|
await compactAgentDocs(agentCompactOptions);
|
|
151
|
+
} else if (parsedCommand.command === "agent" && subcommand === "export") {
|
|
152
|
+
const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export--X9Go-wj.mjs");
|
|
153
|
+
const agentExportOptions = parseAgentExportArgs(args.slice(2));
|
|
154
|
+
if (agentExportOptions.help) {
|
|
155
|
+
printAgentExportHelp();
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
await exportAgentBundle(agentExportOptions);
|
|
151
159
|
} else if (parsedCommand.command === "agent") {
|
|
152
160
|
console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
|
|
153
161
|
console.error();
|
|
154
|
-
const { printAgentCompactHelp } = await import("../agent-
|
|
162
|
+
const { printAgentCompactHelp } = await import("../agent-2t4kZLGo.mjs");
|
|
163
|
+
const { printAgentExportHelp } = await import("../agent-export--X9Go-wj.mjs");
|
|
155
164
|
printAgentCompactHelp();
|
|
165
|
+
printAgentExportHelp();
|
|
156
166
|
process.exit(1);
|
|
157
167
|
} else if (parsedCommand.command === "agents" && subcommand === "generate") {
|
|
158
|
-
const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-
|
|
168
|
+
const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-CW-zTNKP.mjs");
|
|
159
169
|
const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
|
|
160
170
|
if (agentsOptions.help) {
|
|
161
171
|
printAgentsGenerateHelp();
|
|
@@ -165,11 +175,11 @@ async function main() {
|
|
|
165
175
|
} else if (parsedCommand.command === "agents") {
|
|
166
176
|
console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
|
|
167
177
|
console.error();
|
|
168
|
-
const { printAgentsGenerateHelp } = await import("../agents-
|
|
178
|
+
const { printAgentsGenerateHelp } = await import("../agents-CW-zTNKP.mjs");
|
|
169
179
|
printAgentsGenerateHelp();
|
|
170
180
|
process.exit(1);
|
|
171
181
|
} else if (parsedCommand.command === "doctor") {
|
|
172
|
-
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-
|
|
182
|
+
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-CkM5tKdD.mjs");
|
|
173
183
|
const doctorOptions = parseDoctorArgs(args.slice(1));
|
|
174
184
|
if (doctorOptions.help) {
|
|
175
185
|
printDoctorHelp();
|
|
@@ -177,7 +187,7 @@ async function main() {
|
|
|
177
187
|
}
|
|
178
188
|
await runDoctor(doctorOptions);
|
|
179
189
|
} else if (parsedCommand.command === "review") {
|
|
180
|
-
const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-
|
|
190
|
+
const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-BEsbm0l2.mjs");
|
|
181
191
|
const reviewOptions = parseReviewArgs(args.slice(1));
|
|
182
192
|
if (reviewOptions.help) {
|
|
183
193
|
printReviewHelp();
|
|
@@ -185,7 +195,7 @@ async function main() {
|
|
|
185
195
|
}
|
|
186
196
|
await runReview(reviewOptions);
|
|
187
197
|
} else if ((parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") && subcommand === "validate") {
|
|
188
|
-
const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-
|
|
198
|
+
const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-DWM4IJPL.mjs");
|
|
189
199
|
const codeBlocksOptions = parseCodeBlocksValidateArgs(args.slice(2));
|
|
190
200
|
if (codeBlocksOptions.help) {
|
|
191
201
|
printCodeBlocksValidateHelp();
|
|
@@ -195,11 +205,11 @@ async function main() {
|
|
|
195
205
|
} else if (parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") {
|
|
196
206
|
console.error(pc.red(`Unknown codeblocks subcommand: ${subcommand ?? "(missing)"}`));
|
|
197
207
|
console.error();
|
|
198
|
-
const { printCodeBlocksValidateHelp } = await import("../codeblocks-
|
|
208
|
+
const { printCodeBlocksValidateHelp } = await import("../codeblocks-DWM4IJPL.mjs");
|
|
199
209
|
printCodeBlocksValidateHelp();
|
|
200
210
|
process.exit(1);
|
|
201
211
|
} else if (parsedCommand.command === "search" && subcommand === "sync") {
|
|
202
|
-
const { syncSearch } = await import("../search-
|
|
212
|
+
const { syncSearch } = await import("../search-CtAXkk_J.mjs");
|
|
203
213
|
await syncSearch(searchSyncOptions);
|
|
204
214
|
} else if (parsedCommand.command === "search") {
|
|
205
215
|
console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
|
|
@@ -207,7 +217,7 @@ async function main() {
|
|
|
207
217
|
printHelp();
|
|
208
218
|
process.exit(1);
|
|
209
219
|
} else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
|
|
210
|
-
const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-
|
|
220
|
+
const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-OPb8EdNe.mjs");
|
|
211
221
|
const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
|
|
212
222
|
if (sitemapOptions.help) {
|
|
213
223
|
printSitemapGenerateHelp();
|
|
@@ -217,11 +227,11 @@ async function main() {
|
|
|
217
227
|
} else if (parsedCommand.command === "sitemap") {
|
|
218
228
|
console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
|
|
219
229
|
console.error();
|
|
220
|
-
const { printSitemapGenerateHelp } = await import("../sitemap-
|
|
230
|
+
const { printSitemapGenerateHelp } = await import("../sitemap-OPb8EdNe.mjs");
|
|
221
231
|
printSitemapGenerateHelp();
|
|
222
232
|
process.exit(1);
|
|
223
233
|
} else if (parsedCommand.command === "robots" && subcommand === "generate") {
|
|
224
|
-
const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-
|
|
234
|
+
const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-BOwkq9du.mjs");
|
|
225
235
|
const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
|
|
226
236
|
if (robotsOptions.help) {
|
|
227
237
|
printRobotsGenerateHelp();
|
|
@@ -231,11 +241,11 @@ async function main() {
|
|
|
231
241
|
} else if (parsedCommand.command === "robots") {
|
|
232
242
|
console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
|
|
233
243
|
console.error();
|
|
234
|
-
const { printRobotsGenerateHelp } = await import("../robots-
|
|
244
|
+
const { printRobotsGenerateHelp } = await import("../robots-BOwkq9du.mjs");
|
|
235
245
|
printRobotsGenerateHelp();
|
|
236
246
|
process.exit(1);
|
|
237
247
|
} else if (parsedCommand.command === "downgrade") {
|
|
238
|
-
const { downgrade } = await import("../downgrade-
|
|
248
|
+
const { downgrade } = await import("../downgrade-Dj_KXV11.mjs");
|
|
239
249
|
const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
|
|
240
250
|
const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
|
|
241
251
|
await downgrade({
|
|
@@ -244,7 +254,7 @@ async function main() {
|
|
|
244
254
|
dryRun: flags["dry-run"] === true
|
|
245
255
|
});
|
|
246
256
|
} else if (parsedCommand.command === "upgrade") {
|
|
247
|
-
const { upgrade } = await import("../upgrade-
|
|
257
|
+
const { upgrade } = await import("../upgrade-BNdBB9tQ.mjs");
|
|
248
258
|
const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
|
|
249
259
|
const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
|
|
250
260
|
const version = typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0;
|
|
@@ -276,7 +286,7 @@ ${pc.dim("Commands:")}
|
|
|
276
286
|
${pc.cyan("deploy")} Sync cloud config and deploy hosted preview docs
|
|
277
287
|
${pc.cyan("preview")} Alias for ${pc.cyan("deploy")}
|
|
278
288
|
${pc.cyan("cloud")} Docs Cloud utilities (${pc.dim("init")}, ${pc.dim("check")}, ${pc.dim("deploy")}, ${pc.dim("preview")}, ${pc.dim("sync")})
|
|
279
|
-
${pc.cyan("agent")} Agent utilities (${pc.dim("compact")}
|
|
289
|
+
${pc.cyan("agent")} Agent utilities (${pc.dim("compact")} page context, ${pc.dim("export")} static bundles)
|
|
280
290
|
${pc.cyan("agents")} AGENTS.md utilities (${pc.dim("generate")} for static agent instructions)
|
|
281
291
|
${pc.cyan("doctor")} Inspect and score agent or reader-facing docs quality
|
|
282
292
|
${pc.cyan("review")} Review changed docs files and wire Docs Review CI
|
|
@@ -346,6 +356,11 @@ ${pc.dim("Options for agent compact:")}
|
|
|
346
356
|
${pc.cyan("--aggressiveness <0-1>")} Compression intensity for compacted output
|
|
347
357
|
${pc.cyan("--dry-run")} Resolve and compress pages without writing files
|
|
348
358
|
|
|
359
|
+
${pc.dim("Options for agent export:")}
|
|
360
|
+
${pc.cyan("agent export --public")} Export page Markdown, llms.txt, discovery, skills, AGENTS, sitemaps, robots, and a SHA-256 manifest
|
|
361
|
+
${pc.cyan("agent export --check")} Fail when the static Agent Bundle is stale
|
|
362
|
+
${pc.cyan("--config <path>")} Use a custom docs config path instead of ${pc.dim("docs.config.ts[x]")}
|
|
363
|
+
|
|
349
364
|
${pc.dim("Options for doctor:")}
|
|
350
365
|
${pc.cyan("doctor")} Score the current docs app for agent-readiness
|
|
351
366
|
${pc.cyan("doctor --agent")} Same as ${pc.cyan("doctor")}; explicit agent scoring mode
|
package/dist/client/react.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { M as DocsCloudConfig, t as AIConfig, v as DocsAnalyticsConfig } from "./types-
|
|
1
|
+
import { M as DocsCloudConfig, t as AIConfig, v as DocsAnalyticsConfig } from "./types-CdKu8KmO.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/cloud-ask-ai.d.ts
|
|
4
4
|
interface DocsCloudAskAIConfig {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as markCliErrorReported } from "./errors-
|
|
2
|
-
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-
|
|
3
|
-
import { i as detectPackageManagerFromProject, t as detectFramework } from "./utils-
|
|
1
|
+
import { n as markCliErrorReported } from "./errors-BxfYhp1L.mjs";
|
|
2
|
+
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-DhIyFsy9.mjs";
|
|
3
|
+
import { i as detectPackageManagerFromProject, t as detectFramework } from "./utils-CMZTjRQT.mjs";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import pc from "picocolors";
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { a as normalizePageAgentFrontmatter, c as stripGeneratedPageAgentContractMarkdown } from "./agent-contract-b0akaPcg.mjs";
|
|
2
|
+
import { R as findDocsMarkdownPage, rt as renderDocsMarkdownDocument } from "./agent-BMxMpEa0.mjs";
|
|
3
|
+
import { _ as hashGeneratedAgentContent, b as serializeGeneratedAgentDocument, g as GENERATED_AGENT_PROVENANCE_VERSION, y as parseGeneratedAgentDocument } from "./search-CJNLkdjX.mjs";
|
|
3
4
|
import "./index.mjs";
|
|
4
5
|
import { createFilesystemDocsMcpSource } from "./mcp.mjs";
|
|
5
6
|
import "./server.mjs";
|
|
6
|
-
import { a as loadProjectEnv, c as readNavTitle, f as readTopLevelStringProperty, i as loadDocsConfigModule, l as readNumberProperty, m as resolveDocsContentDir, o as readBooleanProperty, p as resolveDocsConfigPath, s as readEnvReferenceProperty, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-
|
|
7
|
+
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-DhIyFsy9.mjs";
|
|
7
8
|
import matter from "gray-matter";
|
|
8
9
|
import { existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
9
10
|
import path from "node:path";
|
|
@@ -290,13 +291,9 @@ function mergeAgentCompactOptions(defaults, overrides) {
|
|
|
290
291
|
...Object.fromEntries(Object.entries(overrides).filter(([, value]) => value !== void 0))
|
|
291
292
|
};
|
|
292
293
|
}
|
|
293
|
-
function normalizeTokenBudget(value) {
|
|
294
|
-
if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
|
|
295
|
-
return Math.max(1, Math.ceil(value));
|
|
296
|
-
}
|
|
297
294
|
function readPageTokenBudget(pagePath) {
|
|
298
295
|
const { data } = matter(readFileSync(pagePath, "utf-8"));
|
|
299
|
-
return
|
|
296
|
+
return normalizePageAgentFrontmatter(data.agent)?.tokenBudget;
|
|
300
297
|
}
|
|
301
298
|
function buildCompactionSettingsHash(options) {
|
|
302
299
|
return hashGeneratedAgentContent(JSON.stringify({
|
|
@@ -317,14 +314,14 @@ function buildPageOptions(defaults, pagePath) {
|
|
|
317
314
|
};
|
|
318
315
|
}
|
|
319
316
|
function buildResolvedPageSourceDocument(page) {
|
|
320
|
-
return renderDocsMarkdownDocument({
|
|
317
|
+
return stripGeneratedPageAgentContractMarkdown(renderDocsMarkdownDocument({
|
|
321
318
|
...page,
|
|
322
319
|
agentRawContent: void 0
|
|
323
|
-
});
|
|
320
|
+
}));
|
|
324
321
|
}
|
|
325
322
|
function buildAgentSourceDocument(page) {
|
|
326
|
-
if (typeof page.agentRawContent === "string") return page.agentRawContent;
|
|
327
|
-
return renderDocsMarkdownDocument(page);
|
|
323
|
+
if (typeof page.agentRawContent === "string") return stripGeneratedPageAgentContractMarkdown(page.agentRawContent);
|
|
324
|
+
return stripGeneratedPageAgentContractMarkdown(renderDocsMarkdownDocument(page));
|
|
328
325
|
}
|
|
329
326
|
function readCurrentAgentDocument(target) {
|
|
330
327
|
if (!target.hasAgentFile || !existsSync(target.agentPath)) return void 0;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as detectPackageManagerFromProject } from "./utils-
|
|
2
|
-
import { K as rootLayoutTemplate, W as postcssConfigTemplate, g as docsLayoutTemplate, v as globalCssTemplate, yt as tsconfigTemplate } from "./templates-
|
|
1
|
+
import { i as detectPackageManagerFromProject } from "./utils-CMZTjRQT.mjs";
|
|
2
|
+
import { K as rootLayoutTemplate, W as postcssConfigTemplate, g as docsLayoutTemplate, v as globalCssTemplate, yt as tsconfigTemplate } from "./templates-Bty9M6lA.mjs";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import pc from "picocolors";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { b as DocsAnalyticsEventInput, v as DocsAnalyticsConfig, y as DocsAnalyticsEvent } from "./types-
|
|
2
|
-
import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-
|
|
1
|
+
import { b as DocsAnalyticsEventInput, v as DocsAnalyticsConfig, y as DocsAnalyticsEvent } from "./types-CdKu8KmO.mjs";
|
|
2
|
+
import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-CMzYVzVX.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/docs-cloud-server.d.ts
|
|
5
5
|
type DocsCloudRuntimeValue<T = string> = T | undefined | null | (() => T | undefined | null);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as sendDocsCloudAnalyticsEvent } from "./cloud-analytics-Dlk_byos.mjs";
|
|
2
|
-
import { t as createDocsCloudAskAIResponse } from "./cloud-ask-ai-
|
|
2
|
+
import { t as createDocsCloudAskAIResponse } from "./cloud-ask-ai-BFlx8VMO.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/docs-cloud-server.ts
|
|
5
5
|
const DEFAULT_DOCS_CLOUD_API_BASE_URL = "https://api.farming-labs.dev";
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import "./reading-time-
|
|
2
|
-
import
|
|
3
|
-
import "./
|
|
4
|
-
import
|
|
5
|
-
import "./
|
|
1
|
+
import "./reading-time-BuK2YL23.mjs";
|
|
2
|
+
import "./agent-contract-b0akaPcg.mjs";
|
|
3
|
+
import { Et as DEFAULT_SITEMAP_XML_ROUTE, F as buildDocsMcpEndpointCandidates, Mt as resolveDocsSitemapConfig, S as DEFAULT_MCP_WELL_KNOWN_ROUTE, T as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Tt as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, b as DEFAULT_MCP_PUBLIC_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, w as DEFAULT_SKILL_MD_ROUTE, wt as DEFAULT_SITEMAP_MD_ROUTE } from "./agent-BMxMpEa0.mjs";
|
|
4
|
+
import "./search-CJNLkdjX.mjs";
|
|
5
|
+
import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveDocsRobotsConfig } from "./robots-C6uQG-fS.mjs";
|
|
6
|
+
import "./sitemap-server-DnilMEiZ.mjs";
|
|
6
7
|
import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
|
|
7
8
|
import "./server.mjs";
|
|
8
|
-
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-
|
|
9
|
-
import { t as detectFramework } from "./utils-
|
|
10
|
-
import { n as inspectAgentCompactionState, o as scanDocsPageTargets, t as compactAgentDocs } from "./codeblocks-
|
|
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-DhIyFsy9.mjs";
|
|
10
|
+
import { t as detectFramework } from "./utils-CMZTjRQT.mjs";
|
|
11
|
+
import { n as inspectAgentCompactionState, o as scanDocsPageTargets, t as compactAgentDocs } from "./codeblocks-DWM4IJPL.mjs";
|
|
11
12
|
import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
|
|
12
13
|
import path from "node:path";
|
|
13
14
|
import { LATEST_PROTOCOL_VERSION } from "@modelcontextprotocol/sdk/types.js";
|
|
@@ -962,7 +963,7 @@ async function postMcpJson(baseUrl, route, body, sessionId) {
|
|
|
962
963
|
body: JSON.stringify(body)
|
|
963
964
|
});
|
|
964
965
|
}
|
|
965
|
-
async function probeMcpRoute(baseUrl, route) {
|
|
966
|
+
async function probeMcpRoute(baseUrl, route, expectedTools) {
|
|
966
967
|
try {
|
|
967
968
|
const initializeResponse = await postMcpJson(baseUrl, route, {
|
|
968
969
|
jsonrpc: "2.0",
|
|
@@ -1008,15 +1009,7 @@ async function probeMcpRoute(baseUrl, route) {
|
|
|
1008
1009
|
};
|
|
1009
1010
|
const tools = toolsPayload.result?.tools;
|
|
1010
1011
|
const toolNames = Array.isArray(tools) ? tools.map((tool) => tool.name).filter((name) => typeof name === "string") : [];
|
|
1011
|
-
const missingTools =
|
|
1012
|
-
"list_docs",
|
|
1013
|
-
"list_pages",
|
|
1014
|
-
"get_navigation",
|
|
1015
|
-
"search_docs",
|
|
1016
|
-
"read_page",
|
|
1017
|
-
"get_code_examples",
|
|
1018
|
-
"get_config_schema"
|
|
1019
|
-
].filter((tool) => !toolNames.includes(tool));
|
|
1012
|
+
const missingTools = expectedTools.filter((tool) => !toolNames.includes(tool));
|
|
1020
1013
|
if (missingTools.length > 0) return {
|
|
1021
1014
|
ok: false,
|
|
1022
1015
|
detail: `${route} connected but is missing tools: ${missingTools.join(", ")}.`
|
|
@@ -1032,10 +1025,10 @@ async function probeMcpRoute(baseUrl, route) {
|
|
|
1032
1025
|
};
|
|
1033
1026
|
}
|
|
1034
1027
|
}
|
|
1035
|
-
async function probeMcpRouteCandidates(baseUrl, routes) {
|
|
1028
|
+
async function probeMcpRouteCandidates(baseUrl, routes, expectedTools) {
|
|
1036
1029
|
const candidates = buildDocsMcpEndpointCandidates(baseUrl, routes);
|
|
1037
1030
|
const probes = await Promise.all(candidates.map(async (candidate) => {
|
|
1038
|
-
const probe = await probeMcpRoute(candidate.baseUrl, candidate.route);
|
|
1031
|
+
const probe = await probeMcpRoute(candidate.baseUrl, candidate.route, expectedTools);
|
|
1039
1032
|
return {
|
|
1040
1033
|
...probe,
|
|
1041
1034
|
detail: `${candidate.label}: ${probe.detail}`
|
|
@@ -1085,6 +1078,22 @@ function hostedMcpRoutes(discoveryBody) {
|
|
|
1085
1078
|
if (declaredRoutes.length > 0) return Array.from(new Set(declaredRoutes));
|
|
1086
1079
|
return Array.from(new Set([readDiscoveryRoute(mcp?.publicEndpoint) ?? DEFAULT_MCP_PUBLIC_ROUTE, readDiscoveryRoute(mcp?.wellKnownEndpoint) ?? DEFAULT_MCP_WELL_KNOWN_ROUTE]));
|
|
1087
1080
|
}
|
|
1081
|
+
const MCP_DISCOVERY_TOOL_NAMES = [
|
|
1082
|
+
["listDocs", "list_docs"],
|
|
1083
|
+
["listPages", "list_pages"],
|
|
1084
|
+
["listTasks", "list_tasks"],
|
|
1085
|
+
["readTask", "read_task"],
|
|
1086
|
+
["getNavigation", "get_navigation"],
|
|
1087
|
+
["searchDocs", "search_docs"],
|
|
1088
|
+
["readPage", "read_page"],
|
|
1089
|
+
["getCodeExamples", "get_code_examples"],
|
|
1090
|
+
["getConfigSchema", "get_config_schema"],
|
|
1091
|
+
["getContext", "get_context"]
|
|
1092
|
+
];
|
|
1093
|
+
function hostedMcpExpectedTools(discoveryBody) {
|
|
1094
|
+
const tools = asRecord(asRecord(asRecord(discoveryBody)?.mcp)?.tools);
|
|
1095
|
+
return MCP_DISCOVERY_TOOL_NAMES.filter(([flag]) => tools?.[flag] !== false).map(([, name]) => name);
|
|
1096
|
+
}
|
|
1088
1097
|
function hostedCapability(discoveryBody, key) {
|
|
1089
1098
|
const root = asRecord(discoveryBody);
|
|
1090
1099
|
const capability = asRecord(root?.capabilities)?.[key];
|
|
@@ -1226,10 +1235,13 @@ async function buildHostedAgentChecks(url, pages) {
|
|
|
1226
1235
|
const markdownAlternateScore = hostedSurfaceScore(htmlPageProbes, (probe) => probe.hasMarkdownAlternate);
|
|
1227
1236
|
const markdownRoutesEnabled = hostedCapability(discovery.body, "markdownRoutes");
|
|
1228
1237
|
checks.push(makeCheck("hosted-markdown-alternate", "Hosted markdown alternate links", markdownRoutesEnabled === false ? "warn" : markdownAlternateScore.status, markdownRoutesEnabled === false ? 0 : markdownAlternateScore.score, 5, markdownRoutesEnabled === false ? "The hosted discovery spec reports markdown routes as disabled." : markdownAlternateScore.total > 0 ? `${markdownAlternateScore.passed}/${markdownAlternateScore.total} sampled hosted docs pages include <link rel="alternate" type="text/markdown"> pointing to .md routes.` : "No hosted docs pages were available to verify markdown alternate links.", markdownRoutesEnabled === false || markdownAlternateScore.status === "pass" ? void 0 : "Add a text/markdown alternate link in each docs page head, usually through `alternates.types['text/markdown']`, so agents can discover the page markdown URL from HTML."));
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1238
|
+
if (hostedCapability(discovery.body, "mcp") === false) checks.push(makeCheck("hosted-mcp", "Hosted MCP handshake", "warn", 0, 10, "The hosted discovery spec reports MCP as disabled.", "Enable MCP when agents should use structured list/search/read tools."));
|
|
1239
|
+
else {
|
|
1240
|
+
const mcp = await probeMcpRouteCandidates(baseUrl, hostedMcpRoutes(discovery.body), hostedMcpExpectedTools(discovery.body));
|
|
1241
|
+
const mcpPassed = mcp.probes.filter((result) => result.ok).length;
|
|
1242
|
+
const mcpDetailProbes = mcpPassed > 0 ? mcp.probes.filter((result) => result.ok) : mcp.probes;
|
|
1243
|
+
checks.push(makeCheck("hosted-mcp", "Hosted MCP handshake", mcpPassed > 0 ? "pass" : "fail", mcpPassed > 0 ? 10 : 0, 10, mcpDetailProbes.map((result) => result.detail).join(" "), mcpPassed > 0 ? void 0 : `Verify one of ${mcp.labels.join(" or ")} supports Streamable HTTP initialize and tools/list.`));
|
|
1244
|
+
}
|
|
1233
1245
|
return {
|
|
1234
1246
|
baseUrl,
|
|
1235
1247
|
checks
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as fileExists, o as exec, s as execOutput } from "./utils-
|
|
2
|
-
import { a as getPackagesForFramework, c as resolveDocsPackageManager, l as validateUpgradeVersion, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework } from "./package-version-
|
|
1
|
+
import { c as fileExists, o as exec, s as execOutput } from "./utils-CMZTjRQT.mjs";
|
|
2
|
+
import { a as getPackagesForFramework, c as resolveDocsPackageManager, l as validateUpgradeVersion, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework } from "./package-version-DxnTZH4m.mjs";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import pc from "picocolors";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//#region src/i18n.ts
|
|
2
|
+
function normalizeSegment(value) {
|
|
3
|
+
return value.replace(/^\/+|\/+$/g, "");
|
|
4
|
+
}
|
|
5
|
+
function splitSegments(value) {
|
|
6
|
+
const cleaned = normalizeSegment(value);
|
|
7
|
+
return cleaned ? cleaned.split("/").filter(Boolean) : [];
|
|
8
|
+
}
|
|
9
|
+
function resolveDocsI18n(config) {
|
|
10
|
+
if (!config || !Array.isArray(config.locales)) return null;
|
|
11
|
+
const locales = Array.from(new Set(config.locales.map((l) => l.trim()).filter(Boolean)));
|
|
12
|
+
if (locales.length === 0) return null;
|
|
13
|
+
return {
|
|
14
|
+
locales,
|
|
15
|
+
defaultLocale: config.defaultLocale && locales.includes(config.defaultLocale) ? config.defaultLocale : locales[0]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function resolveDocsLocale(searchParams, i18n) {
|
|
19
|
+
if (!i18n) return void 0;
|
|
20
|
+
const raw = searchParams.get("lang") ?? searchParams.get("locale");
|
|
21
|
+
if (!raw) return void 0;
|
|
22
|
+
if (i18n.locales.includes(raw)) return raw;
|
|
23
|
+
return i18n.defaultLocale;
|
|
24
|
+
}
|
|
25
|
+
function resolveDocsPath(pathname, entry) {
|
|
26
|
+
const entryBase = normalizeSegment(entry || "docs") || "docs";
|
|
27
|
+
const entryParts = splitSegments(entryBase);
|
|
28
|
+
const pathParts = splitSegments(pathname);
|
|
29
|
+
let rest = pathParts;
|
|
30
|
+
if (entryParts.length > 0) {
|
|
31
|
+
if (pathParts.slice(0, entryParts.length).join("/") === entryParts.join("/")) rest = pathParts.slice(entryParts.length);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
slug: rest.join("/"),
|
|
35
|
+
entryPath: entryBase
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//#endregion
|
|
40
|
+
export { resolveDocsLocale as n, resolveDocsPath as r, resolveDocsI18n as t };
|