@farming-labs/docs 0.1.123 → 0.1.125
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-cmkIPvWo.mjs → agent-CBhuGaVu.mjs} +3 -3
- package/dist/agents-BPX4YRPs.mjs +209 -0
- package/dist/cli/index.mjs +31 -16
- package/dist/codeblocks-B4QzFqNC.mjs +1706 -0
- package/dist/{config-BHRL4R2v.mjs → config-B8wA38OC.mjs} +2 -2
- package/dist/{dev-C03tUSTz.mjs → dev-1VFeAWUi.mjs} +2 -2
- package/dist/{doctor-C9wz-4CE.mjs → doctor-lV9lhqGA.mjs} +3 -3
- package/dist/{downgrade-Bv7E5LV2.mjs → downgrade-BGANzvQb.mjs} +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +1 -1
- package/dist/{init-_HAuo5Dv.mjs → init-DzQWiVN1.mjs} +1 -1
- package/dist/{mcp-veym29Yc.mjs → mcp-BvERlrP_.mjs} +1 -1
- package/dist/mcp.d.mts +1 -1
- package/dist/mcp.mjs +68 -7
- package/dist/{reading-time-Io7iRZ7S.mjs → reading-time-HpTq-0VB.mjs} +1 -0
- package/dist/{review-DEG_UnxV.mjs → review-ClNDYRnn.mjs} +1 -1
- package/dist/{robots-BkRZN-56.mjs → robots-CNLiZCay.mjs} +1 -1
- package/dist/{search-HqdPzNb3.mjs → search-BjyDm30M.mjs} +1 -1
- package/dist/{search-XmPPiA0V.d.mts → search-G0otDMfP.d.mts} +1 -1
- package/dist/server.d.mts +2 -2
- package/dist/{sitemap-wtr3w_D2.mjs → sitemap-BdSdcAmS.mjs} +1 -1
- package/dist/{types-CLofDwjw.d.mts → types-Dg82p0Fm.d.mts} +137 -1
- package/dist/{upgrade-DrOWQIKI.mjs → upgrade-C7DvvfTR.mjs} +1 -1
- package/package.json +2 -1
- package/dist/agents-B3kj54S3.mjs +0 -795
- /package/dist/{package-version-L4GZowaF.mjs → package-version-OrjpmqoR.mjs} +0 -0
- /package/dist/{templates-CakZBXK8.mjs → templates-CGaORZOY.mjs} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import "./reading-time-
|
|
1
|
+
import "./reading-time-HpTq-0VB.mjs";
|
|
2
2
|
import "./search-BL7o2rXk.mjs";
|
|
3
3
|
import "./agent-BS39vnhS.mjs";
|
|
4
4
|
import "./robots-B2BfoyVM.mjs";
|
|
5
5
|
import "./sitemap-server-BZHoJHqC.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 "./
|
|
6
|
+
import "./config-B8wA38OC.mjs";
|
|
7
|
+
import { a as readPageTokenBudget, i as printAgentCompactHelp, n as inspectAgentCompactionState, o as scanDocsPageTargets, r as parseAgentCompactArgs, t as compactAgentDocs } from "./codeblocks-B4QzFqNC.mjs";
|
|
8
8
|
|
|
9
9
|
export { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp };
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import "./search-BL7o2rXk.mjs";
|
|
2
|
+
import { K as resolveDocsAgentFeedbackConfig, V as renderDocsAgentsDocument, a as DEFAULT_AGENT_MD_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, y as DEFAULT_OPENAPI_SCHEMA_ROUTE } from "./agent-BS39vnhS.mjs";
|
|
3
|
+
import { S as resolveApiReferenceConfig } from "./sitemap-server-BZHoJHqC.mjs";
|
|
4
|
+
import { resolveDocsMcpConfig } from "./mcp.mjs";
|
|
5
|
+
import "./server.mjs";
|
|
6
|
+
import { c as readNavTitle, d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, t as extractNestedObjectLiteral, u as readStringProperty } from "./config-B8wA38OC.mjs";
|
|
7
|
+
import { t as detectFramework } from "./utils-x5EtYWjC.mjs";
|
|
8
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
import pc from "picocolors";
|
|
11
|
+
|
|
12
|
+
//#region src/cli/agents.ts
|
|
13
|
+
const AGENTS_GENERATED_MARKER = "<!-- Generated by @farming-labs/docs agents generate. -->";
|
|
14
|
+
function parseInlineFlag(arg) {
|
|
15
|
+
const [rawKey, value] = arg.slice(2).split("=", 2);
|
|
16
|
+
return {
|
|
17
|
+
key: rawKey.trim(),
|
|
18
|
+
value
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function parseAgentsGenerateArgs(argv) {
|
|
22
|
+
const parsed = {};
|
|
23
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
24
|
+
const arg = argv[index];
|
|
25
|
+
if (arg === "--help" || arg === "-h") {
|
|
26
|
+
parsed.help = true;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (arg === "--force") {
|
|
30
|
+
parsed.force = true;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (arg === "--check") {
|
|
34
|
+
parsed.check = true;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (arg.startsWith("--config=")) {
|
|
38
|
+
const value = parseInlineFlag(arg).value;
|
|
39
|
+
if (!value) throw new Error("Missing value for --config.");
|
|
40
|
+
parsed.configPath = value;
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (arg === "--config") {
|
|
44
|
+
const value = argv[index + 1];
|
|
45
|
+
if (!value || value.startsWith("--")) throw new Error("Missing value for --config.");
|
|
46
|
+
parsed.configPath = value;
|
|
47
|
+
index += 1;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (arg.startsWith("--path=")) {
|
|
51
|
+
const value = parseInlineFlag(arg).value;
|
|
52
|
+
if (!value) throw new Error("Missing value for --path.");
|
|
53
|
+
parsed.path = value;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (arg === "--path") {
|
|
57
|
+
const value = argv[index + 1];
|
|
58
|
+
if (!value || value.startsWith("--")) throw new Error("Missing value for --path.");
|
|
59
|
+
parsed.path = value;
|
|
60
|
+
index += 1;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (!arg.startsWith("--") && !parsed.path) {
|
|
64
|
+
parsed.path = arg;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
throw new Error(`Unknown agents generate flag: ${arg}.`);
|
|
68
|
+
}
|
|
69
|
+
return parsed;
|
|
70
|
+
}
|
|
71
|
+
function readTopLevelBooleanProperty(content, key) {
|
|
72
|
+
const match = content.match(new RegExp(`\\b${key}\\b\\s*:\\s*(true|false)`));
|
|
73
|
+
return match ? match[1] === "true" : void 0;
|
|
74
|
+
}
|
|
75
|
+
function readLlmsBaseUrlFromConfig(content, config) {
|
|
76
|
+
if (config?.llmsTxt && typeof config.llmsTxt === "object") return config.llmsTxt.baseUrl;
|
|
77
|
+
const block = extractNestedObjectLiteral(content, ["llmsTxt"]);
|
|
78
|
+
return block ? readStringProperty(block, "baseUrl") : void 0;
|
|
79
|
+
}
|
|
80
|
+
function readSitemapBaseUrlFromConfig(content, config) {
|
|
81
|
+
if (config?.sitemap && typeof config.sitemap === "object") return config.sitemap.baseUrl;
|
|
82
|
+
const block = extractNestedObjectLiteral(content, ["sitemap"]);
|
|
83
|
+
return block ? readStringProperty(block, "baseUrl") : void 0;
|
|
84
|
+
}
|
|
85
|
+
function readRobotsConfigFromStatic(content) {
|
|
86
|
+
const topLevelBoolean = readTopLevelBooleanProperty(content, "robots");
|
|
87
|
+
if (typeof topLevelBoolean === "boolean") return topLevelBoolean;
|
|
88
|
+
const block = extractNestedObjectLiteral(content, ["robots"]);
|
|
89
|
+
if (!block) return void 0;
|
|
90
|
+
return { enabled: readBooleanProperty(block, "enabled") ?? true };
|
|
91
|
+
}
|
|
92
|
+
function resolvePublicDir(rootDir) {
|
|
93
|
+
if (detectFramework(rootDir) === "sveltekit") return path.join(rootDir, "static");
|
|
94
|
+
return path.join(rootDir, "public");
|
|
95
|
+
}
|
|
96
|
+
function resolveAgentsPath(rootDir, options) {
|
|
97
|
+
if (options.path) return path.isAbsolute(options.path) ? options.path : path.resolve(rootDir, options.path);
|
|
98
|
+
return path.join(rootDir, "AGENTS.md");
|
|
99
|
+
}
|
|
100
|
+
function publicFilePath(rootDir, route) {
|
|
101
|
+
return path.join(resolvePublicDir(rootDir), route.replace(/^\/+/, ""));
|
|
102
|
+
}
|
|
103
|
+
function normalizeGeneratedContent(content) {
|
|
104
|
+
return `${AGENTS_GENERATED_MARKER}\n${content.trimEnd()}\n`;
|
|
105
|
+
}
|
|
106
|
+
function normalizeCustomContent(content) {
|
|
107
|
+
return content.endsWith("\n") ? content : `${content}\n`;
|
|
108
|
+
}
|
|
109
|
+
function isManagedAgentsFile(content) {
|
|
110
|
+
return content.includes(AGENTS_GENERATED_MARKER);
|
|
111
|
+
}
|
|
112
|
+
function writeIfNeeded(filePath, content, options) {
|
|
113
|
+
const current = existsSync(filePath) ? readFileSync(filePath, "utf-8") : void 0;
|
|
114
|
+
if (current === content) return "current";
|
|
115
|
+
if (current !== void 0 && !options.force && !isManagedAgentsFile(current)) return "kept";
|
|
116
|
+
if (options.check) return "changed";
|
|
117
|
+
mkdirSync(path.dirname(filePath), { recursive: true });
|
|
118
|
+
writeFileSync(filePath, content, "utf-8");
|
|
119
|
+
return "changed";
|
|
120
|
+
}
|
|
121
|
+
function resolveOpenApiDiscovery(config) {
|
|
122
|
+
const apiReference = resolveApiReferenceConfig(config?.apiReference);
|
|
123
|
+
if (!apiReference.enabled) return { enabled: false };
|
|
124
|
+
return {
|
|
125
|
+
enabled: true,
|
|
126
|
+
url: DEFAULT_OPENAPI_SCHEMA_ROUTE,
|
|
127
|
+
source: apiReference.specUrl ? "configured" : "generated",
|
|
128
|
+
specUrl: apiReference.specUrl,
|
|
129
|
+
apiReferencePath: `/${apiReference.path}`
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
async function generateAgents(options = {}) {
|
|
133
|
+
const rootDir = process.cwd();
|
|
134
|
+
const loadedConfigModule = await loadDocsConfigModule(rootDir, options.configPath);
|
|
135
|
+
const configContent = readFileSync(loadedConfigModule?.path ?? resolveDocsConfigPath(rootDir, options.configPath), "utf-8");
|
|
136
|
+
const config = loadedConfigModule?.config;
|
|
137
|
+
const entry = config?.entry ?? readTopLevelStringProperty(configContent, "entry") ?? "docs";
|
|
138
|
+
const siteTitle = typeof config?.nav?.title === "string" ? config.nav.title : readNavTitle(configContent) ?? "Documentation";
|
|
139
|
+
const siteDescription = typeof config?.metadata?.description === "string" ? config.metadata.description : void 0;
|
|
140
|
+
const baseUrl = readLlmsBaseUrlFromConfig(configContent, config) ?? readSitemapBaseUrlFromConfig(configContent, config);
|
|
141
|
+
const llmsTxt = config?.llmsTxt;
|
|
142
|
+
const llmsEnabled = llmsTxt === false ? false : typeof llmsTxt === "object" ? llmsTxt.enabled ?? true : true;
|
|
143
|
+
const llmsConfig = typeof llmsTxt === "object" ? llmsTxt : void 0;
|
|
144
|
+
const robotsInput = config?.robots ?? readRobotsConfigFromStatic(configContent) ?? true;
|
|
145
|
+
const rootAgentsPath = resolveAgentsPath(rootDir, options);
|
|
146
|
+
const generatedContent = normalizeGeneratedContent(renderDocsAgentsDocument({
|
|
147
|
+
origin: baseUrl ?? "http://localhost",
|
|
148
|
+
entry,
|
|
149
|
+
search: config?.search,
|
|
150
|
+
mcp: resolveDocsMcpConfig(config?.mcp),
|
|
151
|
+
feedback: resolveDocsAgentFeedbackConfig(config?.feedback),
|
|
152
|
+
llms: {
|
|
153
|
+
enabled: llmsEnabled,
|
|
154
|
+
baseUrl,
|
|
155
|
+
siteTitle,
|
|
156
|
+
siteDescription,
|
|
157
|
+
maxChars: llmsConfig?.maxChars,
|
|
158
|
+
sections: llmsConfig?.sections
|
|
159
|
+
},
|
|
160
|
+
sitemap: config?.sitemap,
|
|
161
|
+
robots: robotsInput,
|
|
162
|
+
openapi: resolveOpenApiDiscovery(config),
|
|
163
|
+
markdown: { acceptHeader: false }
|
|
164
|
+
}));
|
|
165
|
+
const existingRoot = existsSync(rootAgentsPath) ? readFileSync(rootAgentsPath, "utf-8") : null;
|
|
166
|
+
const sourceContent = existingRoot !== null && !options.force && !isManagedAgentsFile(existingRoot) ? normalizeCustomContent(existingRoot) : generatedContent;
|
|
167
|
+
const writes = [];
|
|
168
|
+
const kept = [];
|
|
169
|
+
const rootStatus = writeIfNeeded(rootAgentsPath, sourceContent, options);
|
|
170
|
+
if (rootStatus === "changed") writes.push(rootAgentsPath);
|
|
171
|
+
if (rootStatus === "kept") kept.push(rootAgentsPath);
|
|
172
|
+
for (const route of [
|
|
173
|
+
DEFAULT_AGENTS_MD_ROUTE,
|
|
174
|
+
DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE,
|
|
175
|
+
DEFAULT_AGENT_MD_ROUTE,
|
|
176
|
+
DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE
|
|
177
|
+
]) {
|
|
178
|
+
const filePath = publicFilePath(rootDir, route);
|
|
179
|
+
const status = writeIfNeeded(filePath, sourceContent, options);
|
|
180
|
+
if (status === "changed") writes.push(filePath);
|
|
181
|
+
if (status === "kept") kept.push(filePath);
|
|
182
|
+
}
|
|
183
|
+
if (options.check && writes.length > 0) throw new Error("AGENTS.md output is stale. Run `docs agents generate` to update it.");
|
|
184
|
+
const relativeRoot = path.relative(rootDir, rootAgentsPath).replace(/\\/g, "/");
|
|
185
|
+
console.log(writes.length > 0 ? pc.green(`Generated agent instructions at ${relativeRoot}.`) : pc.green(`Agent instructions are current at ${relativeRoot}.`));
|
|
186
|
+
for (const filePath of writes) {
|
|
187
|
+
if (filePath === rootAgentsPath) continue;
|
|
188
|
+
console.log(pc.dim(path.relative(rootDir, filePath).replace(/\\/g, "/")));
|
|
189
|
+
}
|
|
190
|
+
for (const filePath of kept) console.log(pc.yellow(`Kept user-owned ${path.relative(rootDir, filePath).replace(/\\/g, "/")}.`));
|
|
191
|
+
}
|
|
192
|
+
function printAgentsGenerateHelp() {
|
|
193
|
+
console.log(`
|
|
194
|
+
${pc.bold("docs agents generate")} — Generate AGENTS.md instructions for coding agents.
|
|
195
|
+
|
|
196
|
+
${pc.dim("Usage:")}
|
|
197
|
+
pnpm exec docs ${pc.cyan("agents generate")} ${pc.dim("[path]")}
|
|
198
|
+
|
|
199
|
+
${pc.dim("Options:")}
|
|
200
|
+
${pc.cyan("--path <path>")} Write the root instructions file; defaults to ${pc.dim("AGENTS.md")}
|
|
201
|
+
${pc.cyan("--force")} Replace existing AGENTS.md/static files
|
|
202
|
+
${pc.cyan("--check")} Fail if generated output would change
|
|
203
|
+
${pc.cyan("--config <path>")} Use a custom docs config path instead of ${pc.dim("docs.config.ts[x]")}
|
|
204
|
+
${pc.cyan("-h, --help")} Show this help message
|
|
205
|
+
`);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
//#endregion
|
|
209
|
+
export { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp };
|
package/dist/cli/index.mjs
CHANGED
|
@@ -77,16 +77,16 @@ async function main() {
|
|
|
77
77
|
searchApiKey: typeof flags["search-api-key"] === "string" ? flags["search-api-key"] : void 0
|
|
78
78
|
};
|
|
79
79
|
if (!parsedCommand.command || parsedCommand.command === "init") {
|
|
80
|
-
const { init } = await import("../init-
|
|
80
|
+
const { init } = await import("../init-DzQWiVN1.mjs");
|
|
81
81
|
await init(initOptions);
|
|
82
82
|
} else if (parsedCommand.command === "dev") {
|
|
83
|
-
const { dev } = await import("../dev-
|
|
83
|
+
const { dev } = await import("../dev-1VFeAWUi.mjs");
|
|
84
84
|
await dev(devOptions);
|
|
85
85
|
} else if (parsedCommand.command === "mcp") {
|
|
86
|
-
const { runMcp } = await import("../mcp-
|
|
86
|
+
const { runMcp } = await import("../mcp-BvERlrP_.mjs");
|
|
87
87
|
await runMcp(mcpOptions);
|
|
88
88
|
} else if (parsedCommand.command === "agent" && subcommand === "compact") {
|
|
89
|
-
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-
|
|
89
|
+
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-CBhuGaVu.mjs");
|
|
90
90
|
const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
|
|
91
91
|
if (agentCompactOptions.help) {
|
|
92
92
|
printAgentCompactHelp();
|
|
@@ -96,11 +96,11 @@ async function main() {
|
|
|
96
96
|
} else if (parsedCommand.command === "agent") {
|
|
97
97
|
console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
|
|
98
98
|
console.error();
|
|
99
|
-
const { printAgentCompactHelp } = await import("../agent-
|
|
99
|
+
const { printAgentCompactHelp } = await import("../agent-CBhuGaVu.mjs");
|
|
100
100
|
printAgentCompactHelp();
|
|
101
101
|
process.exit(1);
|
|
102
102
|
} else if (parsedCommand.command === "agents" && subcommand === "generate") {
|
|
103
|
-
const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-
|
|
103
|
+
const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-BPX4YRPs.mjs");
|
|
104
104
|
const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
|
|
105
105
|
if (agentsOptions.help) {
|
|
106
106
|
printAgentsGenerateHelp();
|
|
@@ -110,11 +110,11 @@ async function main() {
|
|
|
110
110
|
} else if (parsedCommand.command === "agents") {
|
|
111
111
|
console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
|
|
112
112
|
console.error();
|
|
113
|
-
const { printAgentsGenerateHelp } = await import("../agents-
|
|
113
|
+
const { printAgentsGenerateHelp } = await import("../agents-BPX4YRPs.mjs");
|
|
114
114
|
printAgentsGenerateHelp();
|
|
115
115
|
process.exit(1);
|
|
116
116
|
} else if (parsedCommand.command === "doctor") {
|
|
117
|
-
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-
|
|
117
|
+
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-lV9lhqGA.mjs");
|
|
118
118
|
const doctorOptions = parseDoctorArgs(args.slice(1));
|
|
119
119
|
if (doctorOptions.help) {
|
|
120
120
|
printDoctorHelp();
|
|
@@ -122,15 +122,29 @@ async function main() {
|
|
|
122
122
|
}
|
|
123
123
|
await runDoctor(doctorOptions);
|
|
124
124
|
} else if (parsedCommand.command === "review") {
|
|
125
|
-
const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-
|
|
125
|
+
const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-ClNDYRnn.mjs");
|
|
126
126
|
const reviewOptions = parseReviewArgs(args.slice(1));
|
|
127
127
|
if (reviewOptions.help) {
|
|
128
128
|
printReviewHelp();
|
|
129
129
|
return;
|
|
130
130
|
}
|
|
131
131
|
await runReview(reviewOptions);
|
|
132
|
+
} else if ((parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") && subcommand === "validate") {
|
|
133
|
+
const { parseCodeBlocksValidateArgs, printCodeBlocksValidateHelp, runCodeBlocksValidate } = await import("../codeblocks-B4QzFqNC.mjs");
|
|
134
|
+
const codeBlocksOptions = parseCodeBlocksValidateArgs(args.slice(2));
|
|
135
|
+
if (codeBlocksOptions.help) {
|
|
136
|
+
printCodeBlocksValidateHelp();
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
await runCodeBlocksValidate(codeBlocksOptions);
|
|
140
|
+
} else if (parsedCommand.command === "codeblocks" || parsedCommand.command === "code-blocks") {
|
|
141
|
+
console.error(pc.red(`Unknown codeblocks subcommand: ${subcommand ?? "(missing)"}`));
|
|
142
|
+
console.error();
|
|
143
|
+
const { printCodeBlocksValidateHelp } = await import("../codeblocks-B4QzFqNC.mjs");
|
|
144
|
+
printCodeBlocksValidateHelp();
|
|
145
|
+
process.exit(1);
|
|
132
146
|
} else if (parsedCommand.command === "search" && subcommand === "sync") {
|
|
133
|
-
const { syncSearch } = await import("../search-
|
|
147
|
+
const { syncSearch } = await import("../search-BjyDm30M.mjs");
|
|
134
148
|
await syncSearch(searchSyncOptions);
|
|
135
149
|
} else if (parsedCommand.command === "search") {
|
|
136
150
|
console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
|
|
@@ -138,7 +152,7 @@ async function main() {
|
|
|
138
152
|
printHelp();
|
|
139
153
|
process.exit(1);
|
|
140
154
|
} else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
|
|
141
|
-
const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-
|
|
155
|
+
const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-BdSdcAmS.mjs");
|
|
142
156
|
const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
|
|
143
157
|
if (sitemapOptions.help) {
|
|
144
158
|
printSitemapGenerateHelp();
|
|
@@ -148,11 +162,11 @@ async function main() {
|
|
|
148
162
|
} else if (parsedCommand.command === "sitemap") {
|
|
149
163
|
console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
|
|
150
164
|
console.error();
|
|
151
|
-
const { printSitemapGenerateHelp } = await import("../sitemap-
|
|
165
|
+
const { printSitemapGenerateHelp } = await import("../sitemap-BdSdcAmS.mjs");
|
|
152
166
|
printSitemapGenerateHelp();
|
|
153
167
|
process.exit(1);
|
|
154
168
|
} else if (parsedCommand.command === "robots" && subcommand === "generate") {
|
|
155
|
-
const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-
|
|
169
|
+
const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-CNLiZCay.mjs");
|
|
156
170
|
const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
|
|
157
171
|
if (robotsOptions.help) {
|
|
158
172
|
printRobotsGenerateHelp();
|
|
@@ -162,11 +176,11 @@ async function main() {
|
|
|
162
176
|
} else if (parsedCommand.command === "robots") {
|
|
163
177
|
console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
|
|
164
178
|
console.error();
|
|
165
|
-
const { printRobotsGenerateHelp } = await import("../robots-
|
|
179
|
+
const { printRobotsGenerateHelp } = await import("../robots-CNLiZCay.mjs");
|
|
166
180
|
printRobotsGenerateHelp();
|
|
167
181
|
process.exit(1);
|
|
168
182
|
} else if (parsedCommand.command === "downgrade") {
|
|
169
|
-
const { downgrade } = await import("../downgrade-
|
|
183
|
+
const { downgrade } = await import("../downgrade-BGANzvQb.mjs");
|
|
170
184
|
const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
|
|
171
185
|
const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
|
|
172
186
|
await downgrade({
|
|
@@ -174,7 +188,7 @@ async function main() {
|
|
|
174
188
|
version: typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0
|
|
175
189
|
});
|
|
176
190
|
} else if (parsedCommand.command === "upgrade") {
|
|
177
|
-
const { upgrade } = await import("../upgrade-
|
|
191
|
+
const { upgrade } = await import("../upgrade-C7DvvfTR.mjs");
|
|
178
192
|
const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
|
|
179
193
|
const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
|
|
180
194
|
const version = typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0;
|
|
@@ -206,6 +220,7 @@ ${pc.dim("Commands:")}
|
|
|
206
220
|
${pc.cyan("agents")} AGENTS.md utilities (${pc.dim("generate")} for static agent instructions)
|
|
207
221
|
${pc.cyan("doctor")} Inspect and score agent or reader-facing docs quality
|
|
208
222
|
${pc.cyan("review")} Review changed docs files and wire Docs Review CI
|
|
223
|
+
${pc.cyan("codeblocks")} Validate fenced MDX code blocks (${pc.dim("validate")})
|
|
209
224
|
${pc.cyan("mcp")} Run the built-in docs MCP server over stdio
|
|
210
225
|
${pc.cyan("robots")} Robots.txt utilities (${pc.dim("generate")} for agent access policy)
|
|
211
226
|
${pc.cyan("search")} Search utilities (${pc.dim("sync")} for external indexes)
|