@farming-labs/docs 0.2.84 → 0.2.87
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-qJNbZUCZ.d.mts → agent-C598zLsD.d.mts} +6 -3
- package/dist/{agent-D68WI6-N.mjs → agent-CTOUI2BK.mjs} +30 -245
- package/dist/{agent-DuwSq3C7.mjs → agent-FyPQ2AZ4.mjs} +2 -2
- package/dist/{agent-evals-CEvUQb_Z.mjs → agent-evals-DCptRrdP.mjs} +2 -2
- package/dist/{agent-export-BMljO4ll.mjs → agent-export-Di1Ofstb.mjs} +41 -25
- package/dist/agent-skills-bundle.d.mts +1 -1
- package/dist/agent-skills-progressive-disclosure-BVvj7nM8.mjs +308 -0
- package/dist/{agent-skills-server-D5qYU19g.mjs → agent-skills-server-CwmzAzf_.mjs} +1 -1
- package/dist/{agent-skills-server-aKgt9CR9.d.mts → agent-skills-server-DEqyYAhL.d.mts} +2 -2
- package/dist/agent-skills-vite.d.mts +3 -3
- package/dist/agent-skills-vite.mjs +2 -2
- package/dist/{agents-D1j3fKjv.mjs → agents-DjUz5voa.mjs} +6 -6
- package/dist/cli/index.mjs +44 -17
- package/dist/client/react.d.mts +1 -1
- package/dist/{cloud-ask-ai-Bx-qtqHL.d.mts → cloud-ask-ai-uzDpy0um.d.mts} +1 -1
- package/dist/{content-change-hydration-CiMxs3LF.mjs → content-change-hydration-DLBinuFR.mjs} +2 -1
- package/dist/docs-cloud-server.d.mts +2 -2
- package/dist/{doctor-DaZp33gE.mjs → doctor-DUnOjP9T.mjs} +11 -10
- package/dist/{downgrade-w7e6Se0L.mjs → downgrade-Wcgqbfv_.mjs} +1 -1
- package/dist/{golden-evaluations-BKxcJ1qw.mjs → golden-evaluations-CNDwoUOe.mjs} +2 -306
- package/dist/index.d.mts +29 -5
- package/dist/index.mjs +6 -6
- package/dist/{mcp-CwTbgrZm.mjs → mcp-7bvRe9Da.mjs} +6 -6
- package/dist/mcp.d.mts +3 -3
- package/dist/mcp.mjs +3 -3
- package/dist/{prompt-references-ClTizbsa.mjs → prompt-references-B6gxePm8.mjs} +3 -3
- package/dist/{retrieval-digest-CG9QWgw-.d.mts → retrieval-digest-sY-uhDFJ.d.mts} +10 -7
- package/dist/{review-BMO-4X_5.mjs → review-DEnzotkg.mjs} +7 -6
- package/dist/{robots-CLtbWSEJ.mjs → robots-DXy1xW3D.mjs} +3 -3
- package/dist/{robots-HWKsiZQS.mjs → robots-DaU38DZw.mjs} +2 -2
- package/dist/{search-ZY4rf1fy.mjs → search-DznddPqw.mjs} +6 -6
- package/dist/server.d.mts +5 -5
- package/dist/server.mjs +6 -6
- package/dist/{sitemap-CAzZFDic.mjs → sitemap-DCsrVSPf.mjs} +6 -6
- package/dist/{sitemap-server-_AeFxJQB.mjs → sitemap-server-Ds5z4WQB.mjs} +1 -1
- package/dist/skills-CPDwsMq4.mjs +467 -0
- package/dist/{standards-discovery-UdXpOfmN.d.mts → standards-discovery-CG_cZRSx.d.mts} +5 -2
- package/dist/{standards-discovery-BKlEnK_H.mjs → standards-discovery-Ckx0tN7B.mjs} +342 -41
- package/dist/{upgrade-oz-GChgt.mjs → upgrade-BSCjUH0V.mjs} +1 -1
- package/package.json +1 -1
- /package/dist/{init-DAkI0Lkf.mjs → init-D0GcUKJ0.mjs} +0 -0
- /package/dist/{package-version-n5AFur8a.mjs → package-version-B3PJ6IDr.mjs} +0 -0
- /package/dist/{types-DQl2dvDl.d.mts → types-CigzkdLB.d.mts} +0 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { validateDocsAgentSkillFrontmatter } from "./agent-skills-spec.mjs";
|
|
2
|
+
import { n as resolveConfiguredAgentSkillPathsSync } from "./agent-skills-server-CwmzAzf_.mjs";
|
|
3
|
+
import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
|
|
6
|
+
//#region src/agent-skills-progressive-disclosure.ts
|
|
7
|
+
const DEFAULT_AGENT_SKILL_MAX_LINES = 500;
|
|
8
|
+
const DEFAULT_AGENT_SKILL_INSTRUCTION_TOKEN_BUDGET = 5e3;
|
|
9
|
+
const DEFAULT_AGENT_SKILL_MAX_REFERENCE_DEPTH = 1;
|
|
10
|
+
const MARKDOWN_LINK_PATTERN = /!?\[[^\]]*\]\(([^)\n]+)\)/gu;
|
|
11
|
+
const SKILL_PATH_PATTERN = /(?:^|[\s"'`(])((?:\.\/)?(?:references|scripts|assets)\/[\p{L}\p{N}@._+\-/]+)/gmu;
|
|
12
|
+
const REQUIREMENT_PATTERN = /\b(?:requires?|prerequisites?|node(?:\.js)?|python|npm|pnpm|yarn|bun|deno|docker|git|network access|internet access|api key|environment variables?|macos|linux|windows)\b/iu;
|
|
13
|
+
const DEPENDENCY_DOCUMENTATION_PATTERN = /\b(?:dependenc(?:y|ies)|requires?|prerequisites?|self-contained|standard library|no external dependencies)\b/iu;
|
|
14
|
+
const VALIDATION_DOCUMENTATION_PATTERN = /\b(?:validate|validation|verify|verification|tests?|expected (?:result|output)|--check|--dry-run)\b/iu;
|
|
15
|
+
const PUBLISHED_SKILL_ROOTS = new Set([
|
|
16
|
+
"references",
|
|
17
|
+
"scripts",
|
|
18
|
+
"assets"
|
|
19
|
+
]);
|
|
20
|
+
const MARKDOWN_EXTENSIONS = new Set([".md", ".mdx"]);
|
|
21
|
+
function positiveInteger(value, fallback) {
|
|
22
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 1 ? Math.floor(value) : fallback;
|
|
23
|
+
}
|
|
24
|
+
function nonNegativeInteger(value, fallback) {
|
|
25
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0 ? Math.floor(value) : fallback;
|
|
26
|
+
}
|
|
27
|
+
function readProgressiveDisclosureConfig(input) {
|
|
28
|
+
if (!input || typeof input === "string" || Array.isArray(input)) return void 0;
|
|
29
|
+
return input.progressiveDisclosure;
|
|
30
|
+
}
|
|
31
|
+
function resolveDocsAgentSkillsProgressiveDisclosureConfig(input) {
|
|
32
|
+
const config = readProgressiveDisclosureConfig(input);
|
|
33
|
+
return {
|
|
34
|
+
maxSkillLines: positiveInteger(config?.maxSkillLines, DEFAULT_AGENT_SKILL_MAX_LINES),
|
|
35
|
+
instructionTokenBudget: positiveInteger(config?.instructionTokenBudget, DEFAULT_AGENT_SKILL_INSTRUCTION_TOKEN_BUDGET),
|
|
36
|
+
maxReferenceDepth: nonNegativeInteger(config?.maxReferenceDepth, DEFAULT_AGENT_SKILL_MAX_REFERENCE_DEPTH),
|
|
37
|
+
compatibility: config?.compatibility === "always" || config?.compatibility === "off" || config?.compatibility === "when-needed" ? config.compatibility : "when-needed",
|
|
38
|
+
checkScripts: config?.checkScripts !== false
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function stripFrontmatter(document) {
|
|
42
|
+
if (!/^---[ \t]*(?:\r?\n)/u.test(document)) return document;
|
|
43
|
+
const closing = /^---[ \t]*(?:\r?\n|$)/gmu;
|
|
44
|
+
closing.lastIndex = document.indexOf("\n") + 1;
|
|
45
|
+
const match = closing.exec(document);
|
|
46
|
+
return match ? document.slice(match.index + match[0].length) : document;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Dependency-free estimate for diagnostics, deliberately using three UTF-8 bytes per token
|
|
50
|
+
* so code-heavy instructions are less likely to be under-counted.
|
|
51
|
+
*/
|
|
52
|
+
function estimateAgentSkillInstructionTokens(document) {
|
|
53
|
+
return Math.ceil(Buffer.byteLength(stripFrontmatter(document), "utf8") / 3);
|
|
54
|
+
}
|
|
55
|
+
function lineForIndex(source, index) {
|
|
56
|
+
return source.slice(0, index).split(/\r?\n/u).length;
|
|
57
|
+
}
|
|
58
|
+
function cleanReferenceTarget(rawTarget) {
|
|
59
|
+
let target = rawTarget.trim();
|
|
60
|
+
if (target.startsWith("<") && target.includes(">")) target = target.slice(1, target.indexOf(">"));
|
|
61
|
+
else target = target.split(/\s+(?=["'])/u, 1)[0] ?? "";
|
|
62
|
+
if (!target || target.startsWith("#") || target.startsWith("/") || /^[a-z][a-z\d+.-]*:/iu.test(target) || target.includes("{") || target.includes("}")) return null;
|
|
63
|
+
const withoutFragment = target.split("#", 1)[0]?.split("?", 1)[0] ?? "";
|
|
64
|
+
if (!withoutFragment) return null;
|
|
65
|
+
try {
|
|
66
|
+
return decodeURIComponent(withoutFragment).replace(/^\.\//u, "").replace(/[.,;:!?]+$/u, "");
|
|
67
|
+
} catch {
|
|
68
|
+
return withoutFragment.replace(/^\.\//u, "").replace(/[.,;:!?]+$/u, "");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function extractLocalReferences(source) {
|
|
72
|
+
const references = [];
|
|
73
|
+
const seen = /* @__PURE__ */ new Set();
|
|
74
|
+
let match;
|
|
75
|
+
MARKDOWN_LINK_PATTERN.lastIndex = 0;
|
|
76
|
+
while (match = MARKDOWN_LINK_PATTERN.exec(source)) {
|
|
77
|
+
if (match[0]?.startsWith("!")) continue;
|
|
78
|
+
const target = cleanReferenceTarget(match[1] ?? "");
|
|
79
|
+
if (!target) continue;
|
|
80
|
+
const index = match.index + (match[0]?.indexOf(match[1] ?? "") ?? 0);
|
|
81
|
+
const key = `${target}:${index}`;
|
|
82
|
+
if (seen.has(key)) continue;
|
|
83
|
+
seen.add(key);
|
|
84
|
+
references.push({
|
|
85
|
+
target,
|
|
86
|
+
index,
|
|
87
|
+
line: lineForIndex(source, index)
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
SKILL_PATH_PATTERN.lastIndex = 0;
|
|
91
|
+
while (match = SKILL_PATH_PATTERN.exec(source)) {
|
|
92
|
+
const target = cleanReferenceTarget(match[1] ?? "");
|
|
93
|
+
if (!target) continue;
|
|
94
|
+
const index = match.index + (match[0]?.lastIndexOf(match[1] ?? "") ?? 0);
|
|
95
|
+
const key = `${target}:${index}`;
|
|
96
|
+
if (seen.has(key)) continue;
|
|
97
|
+
seen.add(key);
|
|
98
|
+
references.push({
|
|
99
|
+
target,
|
|
100
|
+
index,
|
|
101
|
+
line: lineForIndex(source, index)
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return references.sort((left, right) => left.index - right.index);
|
|
105
|
+
}
|
|
106
|
+
function isInside(parent, candidate) {
|
|
107
|
+
const relative = path.relative(parent, candidate);
|
|
108
|
+
return relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative);
|
|
109
|
+
}
|
|
110
|
+
function toSkillRelativePath(skillDir, filePath) {
|
|
111
|
+
return path.relative(skillDir, filePath).replaceAll("\\", "/");
|
|
112
|
+
}
|
|
113
|
+
function isPublishedSkillPath(relativePath) {
|
|
114
|
+
if (relativePath === "SKILL.md") return true;
|
|
115
|
+
const [root] = relativePath.split("/");
|
|
116
|
+
return Boolean(root && PUBLISHED_SKILL_ROOTS.has(root));
|
|
117
|
+
}
|
|
118
|
+
function resolveReferencePath(skillDir, currentFilePath, target) {
|
|
119
|
+
const [root] = target.replaceAll("\\", "/").replace(/^\.\//u, "").split("/");
|
|
120
|
+
return path.resolve(root && PUBLISHED_SKILL_ROOTS.has(root) ? skillDir : path.dirname(currentFilePath), target);
|
|
121
|
+
}
|
|
122
|
+
function listRegularFiles(directory) {
|
|
123
|
+
if (!existsSync(directory)) return [];
|
|
124
|
+
const files = [];
|
|
125
|
+
for (const entry of readdirSync(directory, { withFileTypes: true }).sort((left, right) => left.name.localeCompare(right.name))) {
|
|
126
|
+
const entryPath = path.join(directory, entry.name);
|
|
127
|
+
if (entry.isSymbolicLink()) continue;
|
|
128
|
+
if (entry.isDirectory()) files.push(...listRegularFiles(entryPath));
|
|
129
|
+
else if (entry.isFile()) files.push(entryPath);
|
|
130
|
+
}
|
|
131
|
+
return files;
|
|
132
|
+
}
|
|
133
|
+
function issue(issues, input) {
|
|
134
|
+
issues.push(input);
|
|
135
|
+
}
|
|
136
|
+
function analyzeOneSkill(skillPath, config) {
|
|
137
|
+
const skillDir = path.dirname(skillPath);
|
|
138
|
+
const document = readFileSync(skillPath, "utf8");
|
|
139
|
+
const frontmatter = validateDocsAgentSkillFrontmatter(document, { directoryName: path.basename(skillDir) });
|
|
140
|
+
const name = frontmatter.valid ? frontmatter.data.name : path.basename(skillDir);
|
|
141
|
+
const issues = [];
|
|
142
|
+
const lineCount = document.split(/\r?\n/u).length;
|
|
143
|
+
const estimatedInstructionTokens = estimateAgentSkillInstructionTokens(document);
|
|
144
|
+
if (lineCount > config.maxSkillLines) issue(issues, {
|
|
145
|
+
code: "skill-lines-exceeded",
|
|
146
|
+
severity: "warning",
|
|
147
|
+
skill: name,
|
|
148
|
+
skillPath,
|
|
149
|
+
filePath: skillPath,
|
|
150
|
+
line: 1,
|
|
151
|
+
message: `SKILL.md has ${lineCount} lines, exceeding the configured ${config.maxSkillLines}-line limit; move detailed material into focused references/.`
|
|
152
|
+
});
|
|
153
|
+
if (estimatedInstructionTokens > config.instructionTokenBudget) issue(issues, {
|
|
154
|
+
code: "skill-token-budget-exceeded",
|
|
155
|
+
severity: "warning",
|
|
156
|
+
skill: name,
|
|
157
|
+
skillPath,
|
|
158
|
+
filePath: skillPath,
|
|
159
|
+
line: 1,
|
|
160
|
+
message: `SKILL.md instructions are approximately ${estimatedInstructionTokens} tokens, exceeding the configured ${config.instructionTokenBudget}-token budget.`
|
|
161
|
+
});
|
|
162
|
+
const referenceQueue = [{
|
|
163
|
+
filePath: skillPath,
|
|
164
|
+
depth: 0
|
|
165
|
+
}];
|
|
166
|
+
const visitedDepth = new Map([[skillPath, 0]]);
|
|
167
|
+
const markdownDocuments = new Map([[skillPath, document]]);
|
|
168
|
+
const validReferencePaths = /* @__PURE__ */ new Set();
|
|
169
|
+
const referencedTargets = /* @__PURE__ */ new Set();
|
|
170
|
+
for (let cursor = 0; cursor < referenceQueue.length; cursor += 1) {
|
|
171
|
+
const current = referenceQueue[cursor];
|
|
172
|
+
const source = markdownDocuments.get(current.filePath) ?? readFileSync(current.filePath, "utf8");
|
|
173
|
+
markdownDocuments.set(current.filePath, source);
|
|
174
|
+
for (const reference of extractLocalReferences(source)) {
|
|
175
|
+
referencedTargets.add(reference.target);
|
|
176
|
+
const resolved = resolveReferencePath(skillDir, current.filePath, reference.target);
|
|
177
|
+
if (!isInside(skillDir, resolved)) {
|
|
178
|
+
issue(issues, {
|
|
179
|
+
code: "skill-reference-outside-root",
|
|
180
|
+
severity: "error",
|
|
181
|
+
skill: name,
|
|
182
|
+
skillPath,
|
|
183
|
+
filePath: current.filePath,
|
|
184
|
+
line: reference.line,
|
|
185
|
+
message: `Local reference escapes the skill directory: ${reference.target}`
|
|
186
|
+
});
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
const relativeTarget = toSkillRelativePath(skillDir, resolved);
|
|
190
|
+
if (!isPublishedSkillPath(relativeTarget)) {
|
|
191
|
+
issue(issues, {
|
|
192
|
+
code: "skill-reference-unpublished",
|
|
193
|
+
severity: "error",
|
|
194
|
+
skill: name,
|
|
195
|
+
skillPath,
|
|
196
|
+
filePath: current.filePath,
|
|
197
|
+
line: reference.line,
|
|
198
|
+
message: `Local reference is outside SKILL.md, references/, scripts/, or assets/ and will not be published: ${reference.target}`
|
|
199
|
+
});
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
if (!existsSync(resolved) || !lstatSync(resolved).isFile()) {
|
|
203
|
+
issue(issues, {
|
|
204
|
+
code: "skill-reference-broken",
|
|
205
|
+
severity: "error",
|
|
206
|
+
skill: name,
|
|
207
|
+
skillPath,
|
|
208
|
+
filePath: current.filePath,
|
|
209
|
+
line: reference.line,
|
|
210
|
+
message: `Local skill reference does not resolve to a regular file: ${reference.target}`
|
|
211
|
+
});
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
validReferencePaths.add(relativeTarget);
|
|
215
|
+
if (!MARKDOWN_EXTENSIONS.has(path.extname(resolved).toLowerCase())) continue;
|
|
216
|
+
const nextDepth = current.depth + 1;
|
|
217
|
+
const previousDepth = visitedDepth.get(resolved);
|
|
218
|
+
if (resolved !== skillPath && previousDepth === void 0 && nextDepth > config.maxReferenceDepth) issue(issues, {
|
|
219
|
+
code: "skill-reference-depth-exceeded",
|
|
220
|
+
severity: "warning",
|
|
221
|
+
skill: name,
|
|
222
|
+
skillPath,
|
|
223
|
+
filePath: current.filePath,
|
|
224
|
+
line: reference.line,
|
|
225
|
+
message: `Reference chain reaches depth ${nextDepth}, exceeding the configured maximum of ${config.maxReferenceDepth}: ${reference.target}`
|
|
226
|
+
});
|
|
227
|
+
if (previousDepth !== void 0 && previousDepth <= nextDepth) continue;
|
|
228
|
+
visitedDepth.set(resolved, nextDepth);
|
|
229
|
+
referenceQueue.push({
|
|
230
|
+
filePath: resolved,
|
|
231
|
+
depth: nextDepth
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
const scriptPaths = listRegularFiles(path.join(skillDir, "scripts"));
|
|
236
|
+
const documentation = [...markdownDocuments.values()].join("\n\n");
|
|
237
|
+
if ((config.compatibility === "always" || config.compatibility === "when-needed" && (scriptPaths.length > 0 || REQUIREMENT_PATTERN.test(documentation))) && frontmatter.valid && !frontmatter.data.compatibility?.trim()) issue(issues, {
|
|
238
|
+
code: "skill-compatibility-missing",
|
|
239
|
+
severity: "warning",
|
|
240
|
+
skill: name,
|
|
241
|
+
skillPath,
|
|
242
|
+
filePath: skillPath,
|
|
243
|
+
line: 1,
|
|
244
|
+
message: "Skill instructions require tools, environment capabilities, or scripts but frontmatter does not declare compatibility requirements."
|
|
245
|
+
});
|
|
246
|
+
if (config.checkScripts && scriptPaths.length > 0) {
|
|
247
|
+
const dependencyDocumented = Boolean(frontmatter.valid && frontmatter.data.compatibility?.trim()) || DEPENDENCY_DOCUMENTATION_PATTERN.test(documentation);
|
|
248
|
+
const validationDocumented = VALIDATION_DOCUMENTATION_PATTERN.test(documentation);
|
|
249
|
+
for (const scriptPath of scriptPaths) {
|
|
250
|
+
const relativeScript = toSkillRelativePath(skillDir, scriptPath);
|
|
251
|
+
if (!validReferencePaths.has(relativeScript)) issue(issues, {
|
|
252
|
+
code: "skill-script-undocumented",
|
|
253
|
+
severity: "warning",
|
|
254
|
+
skill: name,
|
|
255
|
+
skillPath,
|
|
256
|
+
filePath: scriptPath,
|
|
257
|
+
line: 1,
|
|
258
|
+
message: `Script is bundled but never referenced by SKILL.md or a reachable reference: ${relativeScript}`
|
|
259
|
+
});
|
|
260
|
+
if (!dependencyDocumented) issue(issues, {
|
|
261
|
+
code: "skill-script-dependencies-undocumented",
|
|
262
|
+
severity: "warning",
|
|
263
|
+
skill: name,
|
|
264
|
+
skillPath,
|
|
265
|
+
filePath: scriptPath,
|
|
266
|
+
line: 1,
|
|
267
|
+
message: `Document required runtimes/packages or explicitly state that ${relativeScript} is self-contained.`
|
|
268
|
+
});
|
|
269
|
+
if (!validationDocumented) issue(issues, {
|
|
270
|
+
code: "skill-script-validation-undocumented",
|
|
271
|
+
severity: "warning",
|
|
272
|
+
skill: name,
|
|
273
|
+
skillPath,
|
|
274
|
+
filePath: scriptPath,
|
|
275
|
+
line: 1,
|
|
276
|
+
message: `Document how to validate ${relativeScript}, including an expected result, test, --check, or --dry-run command.`
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return {
|
|
281
|
+
summary: {
|
|
282
|
+
name,
|
|
283
|
+
skillPath,
|
|
284
|
+
lineCount,
|
|
285
|
+
estimatedInstructionTokens,
|
|
286
|
+
referenceCount: referencedTargets.size,
|
|
287
|
+
scriptCount: scriptPaths.length
|
|
288
|
+
},
|
|
289
|
+
issues
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
function analyzeConfiguredAgentSkillsProgressiveDisclosure(input, options = {}) {
|
|
293
|
+
const config = resolveDocsAgentSkillsProgressiveDisclosureConfig(input);
|
|
294
|
+
const analyses = resolveConfiguredAgentSkillPathsSync(input, options).map((skillPath) => analyzeOneSkill(skillPath, config));
|
|
295
|
+
return {
|
|
296
|
+
config,
|
|
297
|
+
skills: analyses.map((analysis) => analysis.summary),
|
|
298
|
+
issues: analyses.flatMap((analysis) => analysis.issues).sort((left, right) => {
|
|
299
|
+
const fileOrder = left.filePath.localeCompare(right.filePath);
|
|
300
|
+
if (fileOrder !== 0) return fileOrder;
|
|
301
|
+
const lineOrder = (left.line ?? 0) - (right.line ?? 0);
|
|
302
|
+
return lineOrder !== 0 ? lineOrder : left.code.localeCompare(right.code);
|
|
303
|
+
})
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
//#endregion
|
|
308
|
+
export { estimateAgentSkillInstructionTokens as n, resolveDocsAgentSkillsProgressiveDisclosureConfig as r, analyzeConfiguredAgentSkillsProgressiveDisclosure as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, j as buildDocsPublishedAgentSkill } from "./standards-discovery-
|
|
1
|
+
import { f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, j as buildDocsPublishedAgentSkill } from "./standards-discovery-Ckx0tN7B.mjs";
|
|
2
2
|
import { existsSync, lstatSync, readFileSync, readdirSync, realpathSync, statSync } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { tt as DocsAgentSkillsInput } from "./types-
|
|
2
|
-
import { z as DocsPublishedAgentSkill } from "./standards-discovery-
|
|
1
|
+
import { tt as DocsAgentSkillsInput } from "./types-CigzkdLB.mjs";
|
|
2
|
+
import { z as DocsPublishedAgentSkill } from "./standards-discovery-CG_cZRSx.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/agent-skills-server.d.ts
|
|
5
5
|
interface ResolveConfiguredAgentSkillsOptions {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { tt as DocsAgentSkillsInput } from "./types-
|
|
2
|
-
import { z as DocsPublishedAgentSkill } from "./standards-discovery-
|
|
3
|
-
import { t as ResolveConfiguredAgentSkillsOptions } from "./agent-skills-server-
|
|
1
|
+
import { tt as DocsAgentSkillsInput } from "./types-CigzkdLB.mjs";
|
|
2
|
+
import { z as DocsPublishedAgentSkill } from "./standards-discovery-CG_cZRSx.mjs";
|
|
3
|
+
import { t as ResolveConfiguredAgentSkillsOptions } from "./agent-skills-server-DEqyYAhL.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/agent-skills-vite.d.ts
|
|
6
6
|
declare const DOCS_AGENT_SKILLS_BUNDLE_MODULE = "@farming-labs/docs/agent-skills-bundle";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import "./standards-discovery-
|
|
2
|
-
import { r as resolveConfiguredAgentSkills } from "./agent-skills-server-
|
|
1
|
+
import "./standards-discovery-Ckx0tN7B.mjs";
|
|
2
|
+
import { r as resolveConfiguredAgentSkills } from "./agent-skills-server-CwmzAzf_.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/agent-skills-vite.ts
|
|
5
5
|
const DOCS_AGENT_SKILLS_BUNDLE_MODULE = "@farming-labs/docs/agent-skills-bundle";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as DEFAULT_AGENT_MD_ROUTE, lt as resolveDocsAgentFeedbackConfig, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, rt as renderDocsAgentsDocument, t as DEFAULT_AGENTS_MD_ROUTE } from "./agent-
|
|
1
|
+
import { a as DEFAULT_AGENT_MD_ROUTE, lt as resolveDocsAgentFeedbackConfig, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, rt as renderDocsAgentsDocument, t as DEFAULT_AGENTS_MD_ROUTE } from "./agent-CTOUI2BK.mjs";
|
|
2
2
|
import "./markdown-sections-7OoA7ylx.mjs";
|
|
3
|
-
import "./standards-discovery-
|
|
4
|
-
import "./content-change-hydration-
|
|
5
|
-
import { C as resolveApiReferenceOpenApiDiscovery } from "./sitemap-server-
|
|
6
|
-
import "./agent-skills-server-
|
|
7
|
-
import "./agent-evals-
|
|
3
|
+
import "./standards-discovery-Ckx0tN7B.mjs";
|
|
4
|
+
import "./content-change-hydration-DLBinuFR.mjs";
|
|
5
|
+
import { C as resolveApiReferenceOpenApiDiscovery } from "./sitemap-server-Ds5z4WQB.mjs";
|
|
6
|
+
import "./agent-skills-server-CwmzAzf_.mjs";
|
|
7
|
+
import "./agent-evals-DCptRrdP.mjs";
|
|
8
8
|
import { resolveDocsMcpConfig } from "./mcp.mjs";
|
|
9
9
|
import "./code-blocks-0wjOsqdJ.mjs";
|
|
10
10
|
import "./server.mjs";
|
package/dist/cli/index.mjs
CHANGED
|
@@ -108,7 +108,7 @@ async function main() {
|
|
|
108
108
|
]
|
|
109
109
|
};
|
|
110
110
|
if (!parsedCommand.command || parsedCommand.command === "init") {
|
|
111
|
-
const { init } = await import("../init-
|
|
111
|
+
const { init } = await import("../init-D0GcUKJ0.mjs");
|
|
112
112
|
await init(initOptions);
|
|
113
113
|
} else if (parsedCommand.command === "dev") {
|
|
114
114
|
const { dev } = await import("../dev-kjaxOOla.mjs");
|
|
@@ -141,10 +141,10 @@ async function main() {
|
|
|
141
141
|
printCloudHelp();
|
|
142
142
|
process.exit(1);
|
|
143
143
|
} else if (parsedCommand.command === "mcp") {
|
|
144
|
-
const { runMcp } = await import("../mcp-
|
|
144
|
+
const { runMcp } = await import("../mcp-7bvRe9Da.mjs");
|
|
145
145
|
await runMcp(mcpOptions);
|
|
146
146
|
} else if (parsedCommand.command === "agent" && subcommand === "compact") {
|
|
147
|
-
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-
|
|
147
|
+
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-FyPQ2AZ4.mjs").then((n) => n.t);
|
|
148
148
|
const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
|
|
149
149
|
if (agentCompactOptions.help) {
|
|
150
150
|
printAgentCompactHelp();
|
|
@@ -152,7 +152,7 @@ async function main() {
|
|
|
152
152
|
}
|
|
153
153
|
await compactAgentDocs(agentCompactOptions);
|
|
154
154
|
} else if (parsedCommand.command === "agent" && subcommand === "export") {
|
|
155
|
-
const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-
|
|
155
|
+
const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-Di1Ofstb.mjs");
|
|
156
156
|
const agentExportOptions = parseAgentExportArgs(args.slice(2));
|
|
157
157
|
if (agentExportOptions.help) {
|
|
158
158
|
printAgentExportHelp();
|
|
@@ -162,13 +162,13 @@ async function main() {
|
|
|
162
162
|
} else if (parsedCommand.command === "agent") {
|
|
163
163
|
console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
|
|
164
164
|
console.error();
|
|
165
|
-
const { printAgentCompactHelp } = await import("../agent-
|
|
166
|
-
const { printAgentExportHelp } = await import("../agent-export-
|
|
165
|
+
const { printAgentCompactHelp } = await import("../agent-FyPQ2AZ4.mjs").then((n) => n.t);
|
|
166
|
+
const { printAgentExportHelp } = await import("../agent-export-Di1Ofstb.mjs");
|
|
167
167
|
printAgentCompactHelp();
|
|
168
168
|
printAgentExportHelp();
|
|
169
169
|
process.exit(1);
|
|
170
170
|
} else if (parsedCommand.command === "agents" && subcommand === "generate") {
|
|
171
|
-
const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-
|
|
171
|
+
const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-DjUz5voa.mjs");
|
|
172
172
|
const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
|
|
173
173
|
if (agentsOptions.help) {
|
|
174
174
|
printAgentsGenerateHelp();
|
|
@@ -178,11 +178,28 @@ async function main() {
|
|
|
178
178
|
} else if (parsedCommand.command === "agents") {
|
|
179
179
|
console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
|
|
180
180
|
console.error();
|
|
181
|
-
const { printAgentsGenerateHelp } = await import("../agents-
|
|
181
|
+
const { printAgentsGenerateHelp } = await import("../agents-DjUz5voa.mjs");
|
|
182
182
|
printAgentsGenerateHelp();
|
|
183
183
|
process.exit(1);
|
|
184
|
+
} else if (parsedCommand.command === "skills" && subcommand === "scaffold") {
|
|
185
|
+
const { parseSkillScaffoldArgs, printSkillScaffoldHelp, scaffoldSkillFromContracts } = await import("../skills-CPDwsMq4.mjs");
|
|
186
|
+
const skillOptions = parseSkillScaffoldArgs(args.slice(2));
|
|
187
|
+
if (skillOptions.help) {
|
|
188
|
+
printSkillScaffoldHelp();
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
await scaffoldSkillFromContracts(skillOptions);
|
|
192
|
+
} else if (parsedCommand.command === "skills" && (subcommand === "--help" || subcommand === "-h")) {
|
|
193
|
+
const { printSkillScaffoldHelp } = await import("../skills-CPDwsMq4.mjs");
|
|
194
|
+
printSkillScaffoldHelp();
|
|
195
|
+
} else if (parsedCommand.command === "skills") {
|
|
196
|
+
console.error(pc.red(`Unknown skills subcommand: ${subcommand ?? "(missing)"}`));
|
|
197
|
+
console.error();
|
|
198
|
+
const { printSkillScaffoldHelp } = await import("../skills-CPDwsMq4.mjs");
|
|
199
|
+
printSkillScaffoldHelp();
|
|
200
|
+
process.exit(1);
|
|
184
201
|
} else if (parsedCommand.command === "doctor") {
|
|
185
|
-
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-
|
|
202
|
+
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-DUnOjP9T.mjs");
|
|
186
203
|
const doctorOptions = parseDoctorArgs(args.slice(1));
|
|
187
204
|
if (doctorOptions.help) {
|
|
188
205
|
printDoctorHelp();
|
|
@@ -190,7 +207,7 @@ async function main() {
|
|
|
190
207
|
}
|
|
191
208
|
await runDoctor(doctorOptions);
|
|
192
209
|
} else if (parsedCommand.command === "review") {
|
|
193
|
-
const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-
|
|
210
|
+
const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-DEnzotkg.mjs");
|
|
194
211
|
const reviewOptions = parseReviewArgs(args.slice(1));
|
|
195
212
|
if (reviewOptions.help) {
|
|
196
213
|
printReviewHelp();
|
|
@@ -212,7 +229,7 @@ async function main() {
|
|
|
212
229
|
printCodeBlocksValidateHelp();
|
|
213
230
|
process.exit(1);
|
|
214
231
|
} else if (parsedCommand.command === "search" && subcommand === "sync") {
|
|
215
|
-
const { syncSearch } = await import("../search-
|
|
232
|
+
const { syncSearch } = await import("../search-DznddPqw.mjs");
|
|
216
233
|
await syncSearch(searchSyncOptions);
|
|
217
234
|
} else if (parsedCommand.command === "search") {
|
|
218
235
|
console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
|
|
@@ -220,7 +237,7 @@ async function main() {
|
|
|
220
237
|
printHelp();
|
|
221
238
|
process.exit(1);
|
|
222
239
|
} else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
|
|
223
|
-
const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-
|
|
240
|
+
const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-DCsrVSPf.mjs");
|
|
224
241
|
const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
|
|
225
242
|
if (sitemapOptions.help) {
|
|
226
243
|
printSitemapGenerateHelp();
|
|
@@ -230,11 +247,11 @@ async function main() {
|
|
|
230
247
|
} else if (parsedCommand.command === "sitemap") {
|
|
231
248
|
console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
|
|
232
249
|
console.error();
|
|
233
|
-
const { printSitemapGenerateHelp } = await import("../sitemap-
|
|
250
|
+
const { printSitemapGenerateHelp } = await import("../sitemap-DCsrVSPf.mjs");
|
|
234
251
|
printSitemapGenerateHelp();
|
|
235
252
|
process.exit(1);
|
|
236
253
|
} else if (parsedCommand.command === "robots" && subcommand === "generate") {
|
|
237
|
-
const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-
|
|
254
|
+
const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-DXy1xW3D.mjs");
|
|
238
255
|
const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
|
|
239
256
|
if (robotsOptions.help) {
|
|
240
257
|
printRobotsGenerateHelp();
|
|
@@ -244,11 +261,11 @@ async function main() {
|
|
|
244
261
|
} else if (parsedCommand.command === "robots") {
|
|
245
262
|
console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
|
|
246
263
|
console.error();
|
|
247
|
-
const { printRobotsGenerateHelp } = await import("../robots-
|
|
264
|
+
const { printRobotsGenerateHelp } = await import("../robots-DXy1xW3D.mjs");
|
|
248
265
|
printRobotsGenerateHelp();
|
|
249
266
|
process.exit(1);
|
|
250
267
|
} else if (parsedCommand.command === "downgrade") {
|
|
251
|
-
const { downgrade } = await import("../downgrade-
|
|
268
|
+
const { downgrade } = await import("../downgrade-Wcgqbfv_.mjs");
|
|
252
269
|
const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
|
|
253
270
|
const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
|
|
254
271
|
await downgrade({
|
|
@@ -257,7 +274,7 @@ async function main() {
|
|
|
257
274
|
dryRun: flags["dry-run"] === true
|
|
258
275
|
});
|
|
259
276
|
} else if (parsedCommand.command === "upgrade") {
|
|
260
|
-
const { upgrade } = await import("../upgrade-
|
|
277
|
+
const { upgrade } = await import("../upgrade-BSCjUH0V.mjs");
|
|
261
278
|
const framework = (typeof flags.framework === "string" ? flags.framework : void 0) ?? (args[1] && !args[1].startsWith("--") ? args[1] : void 0);
|
|
262
279
|
const hasVersionFlag = args.includes("--version") || args.some((arg) => arg.startsWith("--version="));
|
|
263
280
|
const version = typeof flags.version === "string" ? flags.version : hasVersionFlag ? "" : void 0;
|
|
@@ -291,6 +308,7 @@ ${pc.dim("Commands:")}
|
|
|
291
308
|
${pc.cyan("cloud")} Docs Cloud utilities (${pc.dim("init")}, ${pc.dim("check")}, ${pc.dim("deploy")}, ${pc.dim("preview")}, ${pc.dim("sync")})
|
|
292
309
|
${pc.cyan("agent")} Agent utilities (${pc.dim("compact")} page context, ${pc.dim("export")} static bundles)
|
|
293
310
|
${pc.cyan("agents")} AGENTS.md utilities (${pc.dim("generate")} for static agent instructions)
|
|
311
|
+
${pc.cyan("skills")} Agent Skills utilities (${pc.dim("scaffold")} from structured page contracts)
|
|
294
312
|
${pc.cyan("doctor")} Inspect and score agent or reader-facing docs quality
|
|
295
313
|
${pc.cyan("review")} Review changed docs files and wire Docs Review CI
|
|
296
314
|
${pc.cyan("codeblocks")} Validate fenced MDX code blocks (${pc.dim("validate")})
|
|
@@ -365,6 +383,15 @@ ${pc.dim("Options for agent export:")}
|
|
|
365
383
|
${pc.cyan("agent export --check")} Fail when the static Agent Bundle is stale
|
|
366
384
|
${pc.cyan("--config <path>")} Use a custom docs config path instead of ${pc.dim("docs.config.ts[x]")}
|
|
367
385
|
|
|
386
|
+
${pc.dim("Options for skills scaffold:")}
|
|
387
|
+
${pc.cyan("skills scaffold [name]")} Compile page agent contracts into a compact ${pc.dim("SKILL.md")} router and focused references
|
|
388
|
+
${pc.cyan("--output <directory>")} Write to a full skill directory; defaults to ${pc.dim("skills/<name>")}
|
|
389
|
+
${pc.cyan("--include <route>")} Include a route prefix; repeat for multiple focused sections
|
|
390
|
+
${pc.cyan("--check")} Fail when generated skill files are missing or stale
|
|
391
|
+
${pc.cyan("--dry-run")} Preview generated skill changes without writing files
|
|
392
|
+
${pc.cyan("--force")} Replace colliding user-owned files in the selected directory
|
|
393
|
+
${pc.cyan("--config <path>")} Use a custom docs config path instead of ${pc.dim("docs.config.ts[x]")}
|
|
394
|
+
|
|
368
395
|
${pc.dim("Options for doctor:")}
|
|
369
396
|
${pc.cyan("doctor")} Score the current docs app for agent-readiness
|
|
370
397
|
${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 { bt as DocsCloudConfig, ot as DocsAnalyticsConfig, t as AIConfig } from "./types-
|
|
1
|
+
import { bt as DocsCloudConfig, ot as DocsAnalyticsConfig, t as AIConfig } from "./types-CigzkdLB.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/cloud-ask-ai.d.ts
|
|
4
4
|
interface DocsCloudAskAIConfig {
|
package/dist/{content-change-hydration-CiMxs3LF.mjs → content-change-hydration-DLBinuFR.mjs}
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { $t as buildDocsRetrievalDigestProjection, Fn as createDocsPaginationCursor, G as isDocsAgentDiscoveryRequest, Jt as resolveDocsContentChangesConfig, K as isDocsAgentsRequest, Ln as resolveDocsPaginationOffset, Pn as DocsPaginationCursorError, Q as isDocsSkillRequest,
|
|
1
|
+
import { $t as buildDocsRetrievalDigestProjection, Fn as createDocsPaginationCursor, G as isDocsAgentDiscoveryRequest, Jt as resolveDocsContentChangesConfig, K as isDocsAgentsRequest, Ln as resolveDocsPaginationOffset, Pn as DocsPaginationCursorError, Q as isDocsSkillRequest, _t as resolveDocsMarkdownRequest, dt as resolveDocsAgentsFormat, lt as resolveDocsAgentFeedbackConfig, pt as resolveDocsLlmsTxtRequest, qt as isDocsContentChangesRequest, ut as resolveDocsAgentFeedbackRequest, xt as resolveDocsSkillFormat } from "./agent-CTOUI2BK.mjs";
|
|
2
2
|
import { s as parseDocsMarkdownSections } from "./markdown-sections-7OoA7ylx.mjs";
|
|
3
|
+
import { K as digestDocsRetrievalContent } from "./standards-discovery-Ckx0tN7B.mjs";
|
|
3
4
|
import matter from "gray-matter";
|
|
4
5
|
|
|
5
6
|
//#region src/telemetry.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ct as DocsAnalyticsEventInput, ot as DocsAnalyticsConfig, st as DocsAnalyticsEvent } from "./types-
|
|
2
|
-
import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-
|
|
1
|
+
import { ct as DocsAnalyticsEventInput, ot as DocsAnalyticsConfig, st as DocsAnalyticsEvent } from "./types-CigzkdLB.mjs";
|
|
2
|
+
import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-uzDpy0um.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,21 +1,22 @@
|
|
|
1
|
-
import { i as scanDocsPageTargets, n as compactAgentDocs, r as inspectAgentCompactionState } from "./agent-
|
|
2
|
-
import { d as httpLinkHeaderHasTargetRelation, f as AGENT_SKILL_ARCHIVE_MAX_UNCOMPRESSED_BYTES, p as readAgentSkillDocumentFromTar } from "./prompt-references-
|
|
3
|
-
import { A as buildDocsAgentDiscoverySpec, At as DEFAULT_SITEMAP_XML_ROUTE, F as buildDocsMcpEndpointCandidates, Gn as
|
|
1
|
+
import { i as scanDocsPageTargets, n as compactAgentDocs, r as inspectAgentCompactionState } from "./agent-FyPQ2AZ4.mjs";
|
|
2
|
+
import { d as httpLinkHeaderHasTargetRelation, f as AGENT_SKILL_ARCHIVE_MAX_UNCOMPRESSED_BYTES, p as readAgentSkillDocumentFromTar } from "./prompt-references-B6gxePm8.mjs";
|
|
3
|
+
import { A as buildDocsAgentDiscoverySpec, At as DEFAULT_SITEMAP_XML_ROUTE, F as buildDocsMcpEndpointCandidates, Gn as getDocsMcpProtectedResourceMetadataRoutes, It as resolveDocsSitemapConfig, Jn as isDocsMcpOAuthScopeToken, M as buildDocsConfigMap, Ot as DEFAULT_SITEMAP_MD_ROUTE, Qn as normalizeDocsMcpAuthorizationServerUrls, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, T as DOCS_CONFIG_MAP_TOP_LEVEL_KEYS, Un as DEFAULT_MCP_WELL_KNOWN_ROUTE, Vn 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, kt as DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, pn as resolveAskAISearchRequestConfig, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE } from "./agent-CTOUI2BK.mjs";
|
|
4
4
|
import { f as PAGE_AGENT_CONTRACT_FIELDS } from "./markdown-sections-7OoA7ylx.mjs";
|
|
5
|
+
import { I as resolveDocsDiscoveryApiRoute, _ as DEFAULT_API_CATALOG_FORMAT, d as DEFAULT_AGENT_SKILLS_ROUTE_PATTERN, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, h as DEFAULT_AGENT_SKILL_FORMAT, l as DEFAULT_AGENT_SKILLS_INDEX_FORMAT, n as API_CATALOG_MEDIA_TYPE, r as API_CATALOG_PROFILE_URI, t as AGENT_SKILLS_DISCOVERY_SCHEMA_URI, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, v as DEFAULT_API_CATALOG_ROUTE } from "./standards-discovery-Ckx0tN7B.mjs";
|
|
5
6
|
import { isDocsAgentSkillName, validateDocsAgentSkillFrontmatter } from "./agent-skills-spec.mjs";
|
|
6
|
-
import
|
|
7
|
-
import "./
|
|
8
|
-
import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveDocsRobotsConfig } from "./robots-HWKsiZQS.mjs";
|
|
7
|
+
import "./content-change-hydration-DLBinuFR.mjs";
|
|
8
|
+
import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveDocsRobotsConfig } from "./robots-DaU38DZw.mjs";
|
|
9
9
|
import { a as resolveDocsMetadataBaseUrl } from "./metadata-N252j5_a.mjs";
|
|
10
|
-
import "./sitemap-server-
|
|
11
|
-
import { r as resolveConfiguredAgentSkills } from "./agent-skills-server-
|
|
12
|
-
import { t as runDocsGoldenTasks } from "./agent-evals-
|
|
10
|
+
import "./sitemap-server-Ds5z4WQB.mjs";
|
|
11
|
+
import { r as resolveConfiguredAgentSkills } from "./agent-skills-server-CwmzAzf_.mjs";
|
|
12
|
+
import { t as runDocsGoldenTasks } from "./agent-evals-DCptRrdP.mjs";
|
|
13
13
|
import { createFilesystemDocsMcpSource, getDocsConfigSchema, resolveDocsMcpConfig } from "./mcp.mjs";
|
|
14
14
|
import "./code-blocks-0wjOsqdJ.mjs";
|
|
15
15
|
import "./server.mjs";
|
|
16
16
|
import { _ as resolveDocsContentDir, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, r as extractTopLevelConfigObject, s as loadDocsConfigModuleResultWithProjectEnv, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
|
|
17
17
|
import { t as detectFramework } from "./utils-DpiIioYb.mjs";
|
|
18
|
-
import {
|
|
18
|
+
import { i as createAgentUsefulnessPagesFromMcp, n as analyzeAgentSurfaceDrift, r as analyzeAgentUsefulness, t as resolveGoldenEvaluationInput } from "./golden-evaluations-CNDwoUOe.mjs";
|
|
19
|
+
import { t as analyzeConfiguredAgentSkillsProgressiveDisclosure } from "./agent-skills-progressive-disclosure-BVvj7nM8.mjs";
|
|
19
20
|
import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
|
|
20
21
|
import path from "node:path";
|
|
21
22
|
import { createHash } from "node:crypto";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as fileExists, o as exec, s as execOutput } from "./utils-DpiIioYb.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-B3PJ6IDr.mjs";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import pc from "picocolors";
|