@farming-labs/docs 0.2.68 → 0.2.70
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-D2SsSct2.mjs → agent-CXkn2ihX.mjs} +1 -1
- package/dist/{agent-BIzynBvk.mjs → agent-MOuft73V.mjs} +2 -2
- package/dist/{agent-evals-DZR4J7Iz.mjs → agent-evals-BTh28hl-.mjs} +1 -1
- package/dist/{agent-export-C_zd18VF.mjs → agent-export-43XUqLf5.mjs} +7 -7
- package/dist/agent-skills-bundle.d.mts +1 -1
- package/dist/{agent-skills-server-iBfCLPOt.mjs → agent-skills-server-B4u3qy-1.mjs} +9 -5
- package/dist/{agent-skills-server-DJXdK_hS.d.mts → agent-skills-server-DTwblsLu.d.mts} +1 -1
- package/dist/agent-skills-spec.d.mts +51 -0
- package/dist/agent-skills-spec.mjs +284 -0
- package/dist/agent-skills-vite.d.mts +2 -2
- package/dist/agent-skills-vite.mjs +2 -2
- package/dist/{agents-BR5tSkbq.mjs → agents-C16sSxHU.mjs} +6 -6
- package/dist/cli/index.mjs +14 -14
- package/dist/docs-cloud-server.d.mts +1 -1
- package/dist/{doctor-CVhU0YKo.mjs → doctor-WjSas47Z.mjs} +32 -15
- package/dist/{golden-evaluations-DK1uqjlo.mjs → golden-evaluations-Cg0braJV.mjs} +1 -1
- package/dist/index.d.mts +5 -4
- package/dist/index.mjs +8 -7
- package/dist/{mcp-YWlNI2d4.mjs → mcp-BDPfedoh.mjs} +6 -6
- package/dist/mcp.d.mts +1 -1
- package/dist/mcp.mjs +3 -3
- package/dist/{metadata-CNjcFhQN.mjs → metadata-BMBvGASC.mjs} +1 -1
- package/dist/{reading-time-O8mYgLvH.mjs → reading-time-D0s9Osqw.mjs} +119 -7
- package/dist/{review-DdfvxMh2.mjs → review-_0G2gAtx.mjs} +6 -6
- package/dist/{robots-CD14j-mU.mjs → robots-DLl9Zizg.mjs} +3 -3
- package/dist/{robots-Dz5XeT8F.mjs → robots-DOnLGE0l.mjs} +2 -2
- package/dist/{search-DjN1Gfid.mjs → search-B9tkri5i.mjs} +6 -6
- package/dist/{search-DBlw9h3P.mjs → search-Boqkxa3T.mjs} +1 -1
- package/dist/{search-BBVD0A7O.d.mts → search-CozHzW7v.d.mts} +1 -1
- package/dist/server.d.mts +3 -3
- package/dist/server.mjs +6 -6
- package/dist/{sitemap-B0hlAZ8o.mjs → sitemap-FgXlxHEO.mjs} +6 -6
- package/dist/{sitemap-server-DQp8qUKN.mjs → sitemap-server-Bynukz-j.mjs} +1 -1
- package/dist/{standards-discovery-DSVKdQrl.mjs → standards-discovery-CYfiQE13.mjs} +8 -31
- package/package.json +7 -1
- /package/dist/{cloud-ask-ai-BD1SeVZv.d.mts → cloud-ask-ai-BfnX18rI.d.mts} +0 -0
- /package/dist/{standards-discovery-CQjJ-M2y.d.mts → standards-discovery-C0CIC4QI.d.mts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as resolveDocsDiscoveryApiRoute, O as buildDocsApiCatalog, P as isDocsStandardsDiscoveryRequest, S as DOCS_AGENT_MANIFEST_FORMAT, _ as DEFAULT_API_CATALOG_FORMAT, a as DEFAULT_A2A_AGENT_CARD_ROUTE, b as DEFAULT_LEGACY_SKILLS_INDEX_ROUTE, c as DEFAULT_AGENT_SKILLS_ARCHIVE_ROUTE_PATTERN, d as DEFAULT_AGENT_SKILLS_ROUTE_PATTERN, j as createDocsStandardsResponse, 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, w as DOCS_AGENT_MANIFEST_SCHEMA_URI } from "./standards-discovery-
|
|
1
|
+
import { F as resolveDocsDiscoveryApiRoute, O as buildDocsApiCatalog, P as isDocsStandardsDiscoveryRequest, S as DOCS_AGENT_MANIFEST_FORMAT, _ as DEFAULT_API_CATALOG_FORMAT, a as DEFAULT_A2A_AGENT_CARD_ROUTE, b as DEFAULT_LEGACY_SKILLS_INDEX_ROUTE, c as DEFAULT_AGENT_SKILLS_ARCHIVE_ROUTE_PATTERN, d as DEFAULT_AGENT_SKILLS_ROUTE_PATTERN, j as createDocsStandardsResponse, 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, w as DOCS_AGENT_MANIFEST_SCHEMA_URI } from "./standards-discovery-CYfiQE13.mjs";
|
|
2
2
|
import { createProcessor } from "@mdx-js/mdx";
|
|
3
3
|
|
|
4
4
|
//#region src/mcp-auth.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Jt as normalizePageAgentFrontmatter, L as findDocsMarkdownPage, Zt as stripGeneratedPageAgentContractMarkdown, tt as renderDocsMarkdownDocument } from "./agent-
|
|
2
|
-
import { _ as GENERATED_AGENT_PROVENANCE_VERSION, b as parseGeneratedAgentDocument, v as hashGeneratedAgentContent, x as serializeGeneratedAgentDocument } from "./search-
|
|
1
|
+
import { Jt as normalizePageAgentFrontmatter, L as findDocsMarkdownPage, Zt as stripGeneratedPageAgentContractMarkdown, tt as renderDocsMarkdownDocument } from "./agent-CXkn2ihX.mjs";
|
|
2
|
+
import { _ as GENERATED_AGENT_PROVENANCE_VERSION, b as parseGeneratedAgentDocument, v as hashGeneratedAgentContent, x as serializeGeneratedAgentDocument } from "./search-Boqkxa3T.mjs";
|
|
3
3
|
import { createFilesystemDocsMcpSource } from "./mcp.mjs";
|
|
4
4
|
import { _ as resolveDocsContentDir, a as loadDocsConfigModule, c as loadProjectEnv, d as readNavTitle, f as readNumberProperty, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral, u as readEnvReferenceProperty } from "./config-Wcdj-D0a.mjs";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as findDocsMarkdownSection, p as resolveSearchRequestConfig, t as buildDocsAskAIContext, u as performDocsSearch } from "./search-
|
|
1
|
+
import { m as findDocsMarkdownSection, p as resolveSearchRequestConfig, t as buildDocsAskAIContext, u as performDocsSearch } from "./search-Boqkxa3T.mjs";
|
|
2
2
|
import { a as normalizeAgentScopeValues, i as normalizeAgentLocale, n as agentVersionConstraintsOverlap, o as normalizeAgentVersion, r as normalizeAgentFramework, t as agentVersionConstraintMatches } from "./agent-scope-C_U--OZ7.mjs";
|
|
3
3
|
import { buildDocsMcpContext } from "./mcp.mjs";
|
|
4
4
|
import { i as validateCodeBlockPlans, n as planCodeBlockTargets, r as resolveDocsCodeBlocksValidateConfig, t as extractCodeBlocksFromMarkdown } from "./code-blocks-DnNVNK2M.mjs";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { $ as renderDocsAgentsDocument, At as buildDocsSitemapManifest, Ft as resolveDocsSitemapConfig, Nt as renderDocsSitemapMarkdown, Pt as renderDocsSitemapXml, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, a as DEFAULT_AGENT_MD_ROUTE, at as resolveDocsAgentFeedbackConfig, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, et as renderDocsLlmsTxt, g as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, k as buildDocsAgentDiscoverySpec, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, rt as renderDocsSkillDocument, t as DEFAULT_AGENTS_MD_ROUTE, tt as renderDocsMarkdownDocument, v as DEFAULT_LLMS_TXT_ROUTE, vt as toDocsMarkdownUrl, x as DEFAULT_SKILL_MD_ROUTE, y as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE } from "./agent-
|
|
2
|
-
import { D as buildDocsAgentSkillsIndex, E as buildDocsA2AAgentCard, I as resolveDocsPublishedAgentSkill, a as DEFAULT_A2A_AGENT_CARD_ROUTE, b as DEFAULT_LEGACY_SKILLS_INDEX_ROUTE, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, k as buildDocsLegacySkillsIndex, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, x as DEFAULT_LEGACY_SKILLS_ROUTE_PREFIX } from "./standards-discovery-
|
|
3
|
-
import "./search-
|
|
1
|
+
import { $ as renderDocsAgentsDocument, At as buildDocsSitemapManifest, Ft as resolveDocsSitemapConfig, Nt as renderDocsSitemapMarkdown, Pt as renderDocsSitemapXml, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, a as DEFAULT_AGENT_MD_ROUTE, at as resolveDocsAgentFeedbackConfig, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, et as renderDocsLlmsTxt, g as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, k as buildDocsAgentDiscoverySpec, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, rt as renderDocsSkillDocument, t as DEFAULT_AGENTS_MD_ROUTE, tt as renderDocsMarkdownDocument, v as DEFAULT_LLMS_TXT_ROUTE, vt as toDocsMarkdownUrl, x as DEFAULT_SKILL_MD_ROUTE, y as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE } from "./agent-CXkn2ihX.mjs";
|
|
2
|
+
import { D as buildDocsAgentSkillsIndex, E as buildDocsA2AAgentCard, I as resolveDocsPublishedAgentSkill, a as DEFAULT_A2A_AGENT_CARD_ROUTE, b as DEFAULT_LEGACY_SKILLS_INDEX_ROUTE, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, k as buildDocsLegacySkillsIndex, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, x as DEFAULT_LEGACY_SKILLS_ROUTE_PREFIX } from "./standards-discovery-CYfiQE13.mjs";
|
|
3
|
+
import "./search-Boqkxa3T.mjs";
|
|
4
4
|
import { t as resolveDocsI18n } from "./i18n-CCaFUnAN.mjs";
|
|
5
|
-
import { c as renderDocsRobotsGeneratedBlock, f as upsertDocsRobotsGeneratedBlock, i as DOCS_ROBOTS_GENERATED_BLOCK_START, r as DOCS_ROBOTS_GENERATED_BLOCK_END, u as resolveDocsRobotsConfig } from "./robots-
|
|
6
|
-
import "./sitemap-server-
|
|
7
|
-
import "./agent-evals-
|
|
5
|
+
import { c as renderDocsRobotsGeneratedBlock, f as upsertDocsRobotsGeneratedBlock, i as DOCS_ROBOTS_GENERATED_BLOCK_START, r as DOCS_ROBOTS_GENERATED_BLOCK_END, u as resolveDocsRobotsConfig } from "./robots-DOnLGE0l.mjs";
|
|
6
|
+
import "./sitemap-server-Bynukz-j.mjs";
|
|
7
|
+
import "./agent-evals-BTh28hl-.mjs";
|
|
8
8
|
import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
|
|
9
9
|
import "./code-blocks-DnNVNK2M.mjs";
|
|
10
|
-
import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-
|
|
10
|
+
import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-B4u3qy-1.mjs";
|
|
11
11
|
import "./server.mjs";
|
|
12
12
|
import { _ as resolveDocsContentDir, a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, m as readTopLevelBooleanProperty, p as readStringProperty, r as extractTopLevelConfigObject, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
|
|
13
13
|
import { t as detectFramework } from "./utils-DpiIioYb.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as buildDocsPublishedAgentSkill, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX } from "./standards-discovery-
|
|
1
|
+
import { A as buildDocsPublishedAgentSkill, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX } from "./standards-discovery-CYfiQE13.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";
|
|
@@ -329,8 +329,10 @@ function publishSkillDocumentSync(skillPath) {
|
|
|
329
329
|
const skillDocument = readFileSync(skillPath, "utf8");
|
|
330
330
|
const skillDocumentBytes = Buffer.byteLength(skillDocument, "utf8");
|
|
331
331
|
if (skillDocumentBytes > MAX_FILE_BYTES) throw new Error(`Agent Skill SKILL.md exceeds ${MAX_FILE_BYTES} bytes: ${skillPath}`);
|
|
332
|
-
const base = buildDocsPublishedAgentSkill(skillDocument, hashBytes(skillDocument)
|
|
333
|
-
|
|
332
|
+
const base = buildDocsPublishedAgentSkill(skillDocument, hashBytes(skillDocument), {
|
|
333
|
+
directoryName: path.basename(skillDir),
|
|
334
|
+
source: skillPath
|
|
335
|
+
});
|
|
334
336
|
const companions = readCompanionFiles(skillDir, base.name, skillDocumentBytes);
|
|
335
337
|
const files = [...base.files, ...companions].sort(compareSkillFilePath);
|
|
336
338
|
if (companions.length === 0) return {
|
|
@@ -356,8 +358,10 @@ async function publishSkillDocumentAsync(skillPath) {
|
|
|
356
358
|
const skillDocument = await readFile(skillPath, "utf8");
|
|
357
359
|
const skillDocumentBytes = Buffer.byteLength(skillDocument, "utf8");
|
|
358
360
|
if (skillDocumentBytes > MAX_FILE_BYTES) throw new Error(`Agent Skill SKILL.md exceeds ${MAX_FILE_BYTES} bytes: ${skillPath}`);
|
|
359
|
-
const base = buildDocsPublishedAgentSkill(skillDocument, hashBytes(skillDocument)
|
|
360
|
-
|
|
361
|
+
const base = buildDocsPublishedAgentSkill(skillDocument, hashBytes(skillDocument), {
|
|
362
|
+
directoryName: path.basename(skillDir),
|
|
363
|
+
source: skillPath
|
|
364
|
+
});
|
|
361
365
|
const companions = await readCompanionFilesAsync(skillDir, base.name, skillDocumentBytes);
|
|
362
366
|
const files = [...base.files, ...companions].sort(compareSkillFilePath);
|
|
363
367
|
if (companions.length === 0) return {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { $ as DocsAgentSkillsInput } from "./types-BQC05SQm.mjs";
|
|
2
|
-
import { I as DocsPublishedAgentSkill } from "./standards-discovery-
|
|
2
|
+
import { I as DocsPublishedAgentSkill } from "./standards-discovery-C0CIC4QI.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/agent-skills-server.d.ts
|
|
5
5
|
interface ResolveConfiguredAgentSkillsOptions {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
//#region src/agent-skills-spec.d.ts
|
|
2
|
+
declare const AGENT_SKILL_FRONTMATTER_FIELDS: readonly ["name", "description", "license", "compatibility", "metadata", "allowed-tools"];
|
|
3
|
+
declare const AGENT_SKILL_NAME_MAX_LENGTH = 64;
|
|
4
|
+
declare const AGENT_SKILL_DESCRIPTION_MAX_LENGTH = 1024;
|
|
5
|
+
declare const AGENT_SKILL_COMPATIBILITY_MAX_LENGTH = 500;
|
|
6
|
+
type DocsAgentSkillFrontmatterField = (typeof AGENT_SKILL_FRONTMATTER_FIELDS)[number] | "frontmatter";
|
|
7
|
+
interface DocsAgentSkillFrontmatter {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
license?: string;
|
|
11
|
+
compatibility?: string;
|
|
12
|
+
metadata?: Record<string, string>;
|
|
13
|
+
"allowed-tools"?: string;
|
|
14
|
+
}
|
|
15
|
+
interface DocsAgentSkillFrontmatterIssue {
|
|
16
|
+
code: "missing-frontmatter" | "unclosed-frontmatter" | "invalid-yaml" | "invalid-mapping" | "unexpected-field" | "missing-field" | "invalid-type" | "invalid-length" | "invalid-name" | "directory-mismatch";
|
|
17
|
+
field: DocsAgentSkillFrontmatterField;
|
|
18
|
+
message: string;
|
|
19
|
+
}
|
|
20
|
+
interface DocsAgentSkillFrontmatterValidationOptions {
|
|
21
|
+
/** Parent directory name, when the document came from a skill directory. */
|
|
22
|
+
directoryName?: string;
|
|
23
|
+
/** Human-readable file or generated-document label used in thrown diagnostics. */
|
|
24
|
+
source?: string;
|
|
25
|
+
}
|
|
26
|
+
type DocsAgentSkillFrontmatterValidation = {
|
|
27
|
+
valid: true;
|
|
28
|
+
data: DocsAgentSkillFrontmatter;
|
|
29
|
+
issues: readonly [];
|
|
30
|
+
} | {
|
|
31
|
+
valid: false;
|
|
32
|
+
data: null;
|
|
33
|
+
issues: readonly DocsAgentSkillFrontmatterIssue[];
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Check the Agent Skills name grammar after NFKC normalization.
|
|
37
|
+
*
|
|
38
|
+
* The official reference validator accepts Unicode lowercase letters and numbers
|
|
39
|
+
* in addition to the ASCII examples documented by the specification.
|
|
40
|
+
*/
|
|
41
|
+
declare function isDocsAgentSkillName(value: unknown): value is string;
|
|
42
|
+
/** Validate one SKILL.md document against the complete Agent Skills frontmatter contract. */
|
|
43
|
+
declare function validateDocsAgentSkillFrontmatter(document: string, options?: DocsAgentSkillFrontmatterValidationOptions): DocsAgentSkillFrontmatterValidation;
|
|
44
|
+
declare class DocsAgentSkillFrontmatterError extends Error {
|
|
45
|
+
readonly issues: readonly DocsAgentSkillFrontmatterIssue[];
|
|
46
|
+
constructor(issues: readonly DocsAgentSkillFrontmatterIssue[], options?: DocsAgentSkillFrontmatterValidationOptions);
|
|
47
|
+
}
|
|
48
|
+
/** Parse valid frontmatter or throw a structured, field-specific validation error. */
|
|
49
|
+
declare function parseDocsAgentSkillFrontmatter(document: string, options?: DocsAgentSkillFrontmatterValidationOptions): DocsAgentSkillFrontmatter;
|
|
50
|
+
//#endregion
|
|
51
|
+
export { AGENT_SKILL_COMPATIBILITY_MAX_LENGTH, AGENT_SKILL_DESCRIPTION_MAX_LENGTH, AGENT_SKILL_FRONTMATTER_FIELDS, AGENT_SKILL_NAME_MAX_LENGTH, DocsAgentSkillFrontmatter, DocsAgentSkillFrontmatterError, DocsAgentSkillFrontmatterField, DocsAgentSkillFrontmatterIssue, DocsAgentSkillFrontmatterValidation, DocsAgentSkillFrontmatterValidationOptions, isDocsAgentSkillName, parseDocsAgentSkillFrontmatter, validateDocsAgentSkillFrontmatter };
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { isMap, isScalar, parseDocument } from "yaml";
|
|
2
|
+
|
|
3
|
+
//#region src/agent-skills-spec.ts
|
|
4
|
+
const AGENT_SKILL_FRONTMATTER_FIELDS = [
|
|
5
|
+
"name",
|
|
6
|
+
"description",
|
|
7
|
+
"license",
|
|
8
|
+
"compatibility",
|
|
9
|
+
"metadata",
|
|
10
|
+
"allowed-tools"
|
|
11
|
+
];
|
|
12
|
+
const AGENT_SKILL_NAME_MAX_LENGTH = 64;
|
|
13
|
+
const AGENT_SKILL_DESCRIPTION_MAX_LENGTH = 1024;
|
|
14
|
+
const AGENT_SKILL_COMPATIBILITY_MAX_LENGTH = 500;
|
|
15
|
+
const AGENT_SKILL_FRONTMATTER_FIELD_SET = new Set(AGENT_SKILL_FRONTMATTER_FIELDS);
|
|
16
|
+
const FRONTMATTER_OPEN_PATTERN = /^---[ \t]*(?:\r?\n)/u;
|
|
17
|
+
const FRONTMATTER_CLOSE_PATTERN = /^---[ \t]*(?:\r?\n|$)/mu;
|
|
18
|
+
const UNICODE_ALPHANUMERIC_PATTERN = /^[\p{L}\p{N}]$/u;
|
|
19
|
+
function characterCount(value) {
|
|
20
|
+
return Array.from(value).length;
|
|
21
|
+
}
|
|
22
|
+
function asRecord(value) {
|
|
23
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
function hasOwn(value, field) {
|
|
27
|
+
return Object.prototype.hasOwnProperty.call(value, field);
|
|
28
|
+
}
|
|
29
|
+
function yamlErrorMessage(error) {
|
|
30
|
+
return (error instanceof Error ? error.message : String(error)).trim() || "unknown YAML parser error";
|
|
31
|
+
}
|
|
32
|
+
function findYamlMappingValue(mapping, field) {
|
|
33
|
+
return mapping.items.find((pair) => isScalar(pair.key) && pair.key.value === field)?.value;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check the Agent Skills name grammar after NFKC normalization.
|
|
37
|
+
*
|
|
38
|
+
* The official reference validator accepts Unicode lowercase letters and numbers
|
|
39
|
+
* in addition to the ASCII examples documented by the specification.
|
|
40
|
+
*/
|
|
41
|
+
function isDocsAgentSkillName(value) {
|
|
42
|
+
if (typeof value !== "string") return false;
|
|
43
|
+
const normalized = value.normalize("NFKC");
|
|
44
|
+
const characters = Array.from(normalized);
|
|
45
|
+
return characters.length > 0 && characters.length <= AGENT_SKILL_NAME_MAX_LENGTH && normalized === normalized.toLowerCase() && !normalized.startsWith("-") && !normalized.endsWith("-") && !normalized.includes("--") && characters.every((character) => character === "-" || UNICODE_ALPHANUMERIC_PATTERN.test(character));
|
|
46
|
+
}
|
|
47
|
+
function validateName(data, options, issues) {
|
|
48
|
+
if (!hasOwn(data, "name")) {
|
|
49
|
+
issues.push({
|
|
50
|
+
code: "missing-field",
|
|
51
|
+
field: "name",
|
|
52
|
+
message: "Missing required field in frontmatter: name"
|
|
53
|
+
});
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
if (typeof data.name !== "string" || data.name.trim().length === 0) {
|
|
57
|
+
issues.push({
|
|
58
|
+
code: "invalid-type",
|
|
59
|
+
field: "name",
|
|
60
|
+
message: "Field 'name' must be a non-empty string"
|
|
61
|
+
});
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const name = data.name.normalize("NFKC");
|
|
65
|
+
const length = characterCount(name);
|
|
66
|
+
if (length > AGENT_SKILL_NAME_MAX_LENGTH) issues.push({
|
|
67
|
+
code: "invalid-length",
|
|
68
|
+
field: "name",
|
|
69
|
+
message: `Skill name '${name}' exceeds ${AGENT_SKILL_NAME_MAX_LENGTH} character limit (${length} chars)`
|
|
70
|
+
});
|
|
71
|
+
if (name !== name.toLowerCase()) issues.push({
|
|
72
|
+
code: "invalid-name",
|
|
73
|
+
field: "name",
|
|
74
|
+
message: `Skill name '${name}' must be lowercase`
|
|
75
|
+
});
|
|
76
|
+
if (name.startsWith("-") || name.endsWith("-")) issues.push({
|
|
77
|
+
code: "invalid-name",
|
|
78
|
+
field: "name",
|
|
79
|
+
message: "Skill name cannot start or end with a hyphen"
|
|
80
|
+
});
|
|
81
|
+
if (name.includes("--")) issues.push({
|
|
82
|
+
code: "invalid-name",
|
|
83
|
+
field: "name",
|
|
84
|
+
message: "Skill name cannot contain consecutive hyphens"
|
|
85
|
+
});
|
|
86
|
+
if (!Array.from(name).every((character) => character === "-" || UNICODE_ALPHANUMERIC_PATTERN.test(character))) issues.push({
|
|
87
|
+
code: "invalid-name",
|
|
88
|
+
field: "name",
|
|
89
|
+
message: `Skill name '${name}' contains invalid characters. Only letters, digits, and hyphens are allowed.`
|
|
90
|
+
});
|
|
91
|
+
if (options.directoryName !== void 0 && options.directoryName.normalize("NFKC") !== name) issues.push({
|
|
92
|
+
code: "directory-mismatch",
|
|
93
|
+
field: "name",
|
|
94
|
+
message: `Agent Skill frontmatter name "${name}" must match its directory "${options.directoryName}".`
|
|
95
|
+
});
|
|
96
|
+
return name;
|
|
97
|
+
}
|
|
98
|
+
function validateDescription(data, issues) {
|
|
99
|
+
if (!hasOwn(data, "description")) {
|
|
100
|
+
issues.push({
|
|
101
|
+
code: "missing-field",
|
|
102
|
+
field: "description",
|
|
103
|
+
message: "Missing required field in frontmatter: description"
|
|
104
|
+
});
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
if (typeof data.description !== "string" || data.description.trim().length === 0) {
|
|
108
|
+
issues.push({
|
|
109
|
+
code: "invalid-type",
|
|
110
|
+
field: "description",
|
|
111
|
+
message: "Field 'description' must be a non-empty string"
|
|
112
|
+
});
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
const length = characterCount(data.description);
|
|
116
|
+
if (length > AGENT_SKILL_DESCRIPTION_MAX_LENGTH) issues.push({
|
|
117
|
+
code: "invalid-length",
|
|
118
|
+
field: "description",
|
|
119
|
+
message: `Description exceeds ${AGENT_SKILL_DESCRIPTION_MAX_LENGTH} character limit (${length} chars)`
|
|
120
|
+
});
|
|
121
|
+
return data.description;
|
|
122
|
+
}
|
|
123
|
+
function validateOptionalFields(data, frontmatter, issues) {
|
|
124
|
+
const result = {};
|
|
125
|
+
if (hasOwn(data, "license")) if (typeof data.license !== "string") issues.push({
|
|
126
|
+
code: "invalid-type",
|
|
127
|
+
field: "license",
|
|
128
|
+
message: "Field 'license' must be a string"
|
|
129
|
+
});
|
|
130
|
+
else result.license = data.license;
|
|
131
|
+
if (hasOwn(data, "compatibility")) if (typeof data.compatibility !== "string") issues.push({
|
|
132
|
+
code: "invalid-type",
|
|
133
|
+
field: "compatibility",
|
|
134
|
+
message: "Field 'compatibility' must be a string"
|
|
135
|
+
});
|
|
136
|
+
else {
|
|
137
|
+
const length = characterCount(data.compatibility);
|
|
138
|
+
if (data.compatibility.trim().length === 0) issues.push({
|
|
139
|
+
code: "invalid-length",
|
|
140
|
+
field: "compatibility",
|
|
141
|
+
message: "Field 'compatibility' must contain at least 1 character"
|
|
142
|
+
});
|
|
143
|
+
else if (length > AGENT_SKILL_COMPATIBILITY_MAX_LENGTH) issues.push({
|
|
144
|
+
code: "invalid-length",
|
|
145
|
+
field: "compatibility",
|
|
146
|
+
message: `Compatibility exceeds ${AGENT_SKILL_COMPATIBILITY_MAX_LENGTH} character limit (${length} chars)`
|
|
147
|
+
});
|
|
148
|
+
result.compatibility = data.compatibility;
|
|
149
|
+
}
|
|
150
|
+
if (hasOwn(data, "metadata")) {
|
|
151
|
+
const metadataNode = findYamlMappingValue(frontmatter, "metadata");
|
|
152
|
+
const metadata = asRecord(data.metadata);
|
|
153
|
+
if (!isMap(metadataNode) || !metadata) issues.push({
|
|
154
|
+
code: "invalid-type",
|
|
155
|
+
field: "metadata",
|
|
156
|
+
message: "Field 'metadata' must be a mapping from string keys to string values"
|
|
157
|
+
});
|
|
158
|
+
else {
|
|
159
|
+
if (metadataNode.items.some((pair) => !isScalar(pair.key) || typeof pair.key.value !== "string")) issues.push({
|
|
160
|
+
code: "invalid-type",
|
|
161
|
+
field: "metadata",
|
|
162
|
+
message: "Field 'metadata' keys must be strings"
|
|
163
|
+
});
|
|
164
|
+
const invalidKeys = Object.keys(metadata).filter((key) => typeof metadata[key] !== "string").sort();
|
|
165
|
+
for (const key of invalidKeys) issues.push({
|
|
166
|
+
code: "invalid-type",
|
|
167
|
+
field: "metadata",
|
|
168
|
+
message: `Field 'metadata.${key}' must be a string`
|
|
169
|
+
});
|
|
170
|
+
result.metadata = Object.fromEntries(Object.entries(metadata).filter((entry) => {
|
|
171
|
+
return typeof entry[1] === "string";
|
|
172
|
+
}));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (hasOwn(data, "allowed-tools")) if (typeof data["allowed-tools"] !== "string") issues.push({
|
|
176
|
+
code: "invalid-type",
|
|
177
|
+
field: "allowed-tools",
|
|
178
|
+
message: "Field 'allowed-tools' must be a space-separated string"
|
|
179
|
+
});
|
|
180
|
+
else result["allowed-tools"] = data["allowed-tools"];
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
/** Validate one SKILL.md document against the complete Agent Skills frontmatter contract. */
|
|
184
|
+
function validateDocsAgentSkillFrontmatter(document, options = {}) {
|
|
185
|
+
const issues = [];
|
|
186
|
+
const opening = document.match(FRONTMATTER_OPEN_PATTERN);
|
|
187
|
+
if (!opening) return {
|
|
188
|
+
valid: false,
|
|
189
|
+
data: null,
|
|
190
|
+
issues: [{
|
|
191
|
+
code: "missing-frontmatter",
|
|
192
|
+
field: "frontmatter",
|
|
193
|
+
message: "SKILL.md must start with YAML frontmatter (---)"
|
|
194
|
+
}]
|
|
195
|
+
};
|
|
196
|
+
const remainder = document.slice(opening[0].length);
|
|
197
|
+
const closing = FRONTMATTER_CLOSE_PATTERN.exec(remainder);
|
|
198
|
+
if (!closing) return {
|
|
199
|
+
valid: false,
|
|
200
|
+
data: null,
|
|
201
|
+
issues: [{
|
|
202
|
+
code: "unclosed-frontmatter",
|
|
203
|
+
field: "frontmatter",
|
|
204
|
+
message: "SKILL.md frontmatter not properly closed with ---"
|
|
205
|
+
}]
|
|
206
|
+
};
|
|
207
|
+
let data;
|
|
208
|
+
let frontmatter;
|
|
209
|
+
try {
|
|
210
|
+
const parsed = parseDocument(remainder.slice(0, closing.index), { uniqueKeys: true });
|
|
211
|
+
if (parsed.errors.length > 0) throw parsed.errors[0];
|
|
212
|
+
if (!isMap(parsed.contents)) return {
|
|
213
|
+
valid: false,
|
|
214
|
+
data: null,
|
|
215
|
+
issues: [{
|
|
216
|
+
code: "invalid-mapping",
|
|
217
|
+
field: "frontmatter",
|
|
218
|
+
message: "SKILL.md frontmatter must be a YAML mapping"
|
|
219
|
+
}]
|
|
220
|
+
};
|
|
221
|
+
frontmatter = parsed.contents;
|
|
222
|
+
data = asRecord(parsed.toJS());
|
|
223
|
+
} catch (error) {
|
|
224
|
+
return {
|
|
225
|
+
valid: false,
|
|
226
|
+
data: null,
|
|
227
|
+
issues: [{
|
|
228
|
+
code: "invalid-yaml",
|
|
229
|
+
field: "frontmatter",
|
|
230
|
+
message: `Invalid YAML in frontmatter: ${yamlErrorMessage(error)}`
|
|
231
|
+
}]
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
if (!data) return {
|
|
235
|
+
valid: false,
|
|
236
|
+
data: null,
|
|
237
|
+
issues: [{
|
|
238
|
+
code: "invalid-mapping",
|
|
239
|
+
field: "frontmatter",
|
|
240
|
+
message: "SKILL.md frontmatter must be a YAML mapping"
|
|
241
|
+
}]
|
|
242
|
+
};
|
|
243
|
+
const unexpectedFields = Object.keys(data).filter((field) => !AGENT_SKILL_FRONTMATTER_FIELD_SET.has(field)).sort();
|
|
244
|
+
if (unexpectedFields.length > 0) issues.push({
|
|
245
|
+
code: "unexpected-field",
|
|
246
|
+
field: "frontmatter",
|
|
247
|
+
message: `Unexpected fields in frontmatter: ${unexpectedFields.join(", ")}. Only ${JSON.stringify([...AGENT_SKILL_FRONTMATTER_FIELDS])} are allowed.`
|
|
248
|
+
});
|
|
249
|
+
const name = validateName(data, options, issues);
|
|
250
|
+
const description = validateDescription(data, issues);
|
|
251
|
+
const optionalFields = validateOptionalFields(data, frontmatter, issues);
|
|
252
|
+
if (issues.length > 0 || name === null || description === null) return {
|
|
253
|
+
valid: false,
|
|
254
|
+
data: null,
|
|
255
|
+
issues
|
|
256
|
+
};
|
|
257
|
+
return {
|
|
258
|
+
valid: true,
|
|
259
|
+
data: {
|
|
260
|
+
name,
|
|
261
|
+
description,
|
|
262
|
+
...optionalFields
|
|
263
|
+
},
|
|
264
|
+
issues: []
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
var DocsAgentSkillFrontmatterError = class extends Error {
|
|
268
|
+
issues;
|
|
269
|
+
constructor(issues, options = {}) {
|
|
270
|
+
const source = options.source ? ` in ${options.source}` : "";
|
|
271
|
+
super(`Invalid Agent Skill frontmatter${source}:\n${issues.map((issue) => `- ${issue.message}`).join("\n")}`);
|
|
272
|
+
this.name = "DocsAgentSkillFrontmatterError";
|
|
273
|
+
this.issues = issues;
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
/** Parse valid frontmatter or throw a structured, field-specific validation error. */
|
|
277
|
+
function parseDocsAgentSkillFrontmatter(document, options = {}) {
|
|
278
|
+
const validation = validateDocsAgentSkillFrontmatter(document, options);
|
|
279
|
+
if (!validation.valid) throw new DocsAgentSkillFrontmatterError(validation.issues, options);
|
|
280
|
+
return validation.data;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
//#endregion
|
|
284
|
+
export { AGENT_SKILL_COMPATIBILITY_MAX_LENGTH, AGENT_SKILL_DESCRIPTION_MAX_LENGTH, AGENT_SKILL_FRONTMATTER_FIELDS, AGENT_SKILL_NAME_MAX_LENGTH, DocsAgentSkillFrontmatterError, isDocsAgentSkillName, parseDocsAgentSkillFrontmatter, validateDocsAgentSkillFrontmatter };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { $ as DocsAgentSkillsInput } from "./types-BQC05SQm.mjs";
|
|
2
|
-
import { I as DocsPublishedAgentSkill } from "./standards-discovery-
|
|
3
|
-
import { t as ResolveConfiguredAgentSkillsOptions } from "./agent-skills-server-
|
|
2
|
+
import { I as DocsPublishedAgentSkill } from "./standards-discovery-C0CIC4QI.mjs";
|
|
3
|
+
import { t as ResolveConfiguredAgentSkillsOptions } from "./agent-skills-server-DTwblsLu.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 { t as resolveConfiguredAgentSkills } from "./agent-skills-server-
|
|
1
|
+
import "./standards-discovery-CYfiQE13.mjs";
|
|
2
|
+
import { t as resolveConfiguredAgentSkills } from "./agent-skills-server-B4u3qy-1.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,11 +1,11 @@
|
|
|
1
|
-
import { $ as renderDocsAgentsDocument, a as DEFAULT_AGENT_MD_ROUTE, at as resolveDocsAgentFeedbackConfig, b as DEFAULT_OPENAPI_SCHEMA_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE } from "./agent-
|
|
2
|
-
import "./standards-discovery-
|
|
3
|
-
import "./search-
|
|
4
|
-
import { S as resolveApiReferenceConfig } from "./sitemap-server-
|
|
5
|
-
import "./agent-evals-
|
|
1
|
+
import { $ as renderDocsAgentsDocument, a as DEFAULT_AGENT_MD_ROUTE, at as resolveDocsAgentFeedbackConfig, b as DEFAULT_OPENAPI_SCHEMA_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE } from "./agent-CXkn2ihX.mjs";
|
|
2
|
+
import "./standards-discovery-CYfiQE13.mjs";
|
|
3
|
+
import "./search-Boqkxa3T.mjs";
|
|
4
|
+
import { S as resolveApiReferenceConfig } from "./sitemap-server-Bynukz-j.mjs";
|
|
5
|
+
import "./agent-evals-BTh28hl-.mjs";
|
|
6
6
|
import { resolveDocsMcpConfig } from "./mcp.mjs";
|
|
7
7
|
import "./code-blocks-DnNVNK2M.mjs";
|
|
8
|
-
import "./agent-skills-server-
|
|
8
|
+
import "./agent-skills-server-B4u3qy-1.mjs";
|
|
9
9
|
import "./server.mjs";
|
|
10
10
|
import { a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
|
|
11
11
|
import { t as detectFramework } from "./utils-DpiIioYb.mjs";
|
package/dist/cli/index.mjs
CHANGED
|
@@ -139,10 +139,10 @@ async function main() {
|
|
|
139
139
|
printCloudHelp();
|
|
140
140
|
process.exit(1);
|
|
141
141
|
} else if (parsedCommand.command === "mcp") {
|
|
142
|
-
const { runMcp } = await import("../mcp-
|
|
142
|
+
const { runMcp } = await import("../mcp-BDPfedoh.mjs");
|
|
143
143
|
await runMcp(mcpOptions);
|
|
144
144
|
} else if (parsedCommand.command === "agent" && subcommand === "compact") {
|
|
145
|
-
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-
|
|
145
|
+
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-MOuft73V.mjs").then((n) => n.t);
|
|
146
146
|
const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
|
|
147
147
|
if (agentCompactOptions.help) {
|
|
148
148
|
printAgentCompactHelp();
|
|
@@ -150,7 +150,7 @@ async function main() {
|
|
|
150
150
|
}
|
|
151
151
|
await compactAgentDocs(agentCompactOptions);
|
|
152
152
|
} else if (parsedCommand.command === "agent" && subcommand === "export") {
|
|
153
|
-
const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-
|
|
153
|
+
const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-43XUqLf5.mjs");
|
|
154
154
|
const agentExportOptions = parseAgentExportArgs(args.slice(2));
|
|
155
155
|
if (agentExportOptions.help) {
|
|
156
156
|
printAgentExportHelp();
|
|
@@ -160,13 +160,13 @@ async function main() {
|
|
|
160
160
|
} else if (parsedCommand.command === "agent") {
|
|
161
161
|
console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
|
|
162
162
|
console.error();
|
|
163
|
-
const { printAgentCompactHelp } = await import("../agent-
|
|
164
|
-
const { printAgentExportHelp } = await import("../agent-export-
|
|
163
|
+
const { printAgentCompactHelp } = await import("../agent-MOuft73V.mjs").then((n) => n.t);
|
|
164
|
+
const { printAgentExportHelp } = await import("../agent-export-43XUqLf5.mjs");
|
|
165
165
|
printAgentCompactHelp();
|
|
166
166
|
printAgentExportHelp();
|
|
167
167
|
process.exit(1);
|
|
168
168
|
} else if (parsedCommand.command === "agents" && subcommand === "generate") {
|
|
169
|
-
const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-
|
|
169
|
+
const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-C16sSxHU.mjs");
|
|
170
170
|
const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
|
|
171
171
|
if (agentsOptions.help) {
|
|
172
172
|
printAgentsGenerateHelp();
|
|
@@ -176,11 +176,11 @@ async function main() {
|
|
|
176
176
|
} else if (parsedCommand.command === "agents") {
|
|
177
177
|
console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
|
|
178
178
|
console.error();
|
|
179
|
-
const { printAgentsGenerateHelp } = await import("../agents-
|
|
179
|
+
const { printAgentsGenerateHelp } = await import("../agents-C16sSxHU.mjs");
|
|
180
180
|
printAgentsGenerateHelp();
|
|
181
181
|
process.exit(1);
|
|
182
182
|
} else if (parsedCommand.command === "doctor") {
|
|
183
|
-
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-
|
|
183
|
+
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-WjSas47Z.mjs");
|
|
184
184
|
const doctorOptions = parseDoctorArgs(args.slice(1));
|
|
185
185
|
if (doctorOptions.help) {
|
|
186
186
|
printDoctorHelp();
|
|
@@ -188,7 +188,7 @@ async function main() {
|
|
|
188
188
|
}
|
|
189
189
|
await runDoctor(doctorOptions);
|
|
190
190
|
} else if (parsedCommand.command === "review") {
|
|
191
|
-
const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-
|
|
191
|
+
const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-_0G2gAtx.mjs");
|
|
192
192
|
const reviewOptions = parseReviewArgs(args.slice(1));
|
|
193
193
|
if (reviewOptions.help) {
|
|
194
194
|
printReviewHelp();
|
|
@@ -210,7 +210,7 @@ async function main() {
|
|
|
210
210
|
printCodeBlocksValidateHelp();
|
|
211
211
|
process.exit(1);
|
|
212
212
|
} else if (parsedCommand.command === "search" && subcommand === "sync") {
|
|
213
|
-
const { syncSearch } = await import("../search-
|
|
213
|
+
const { syncSearch } = await import("../search-B9tkri5i.mjs");
|
|
214
214
|
await syncSearch(searchSyncOptions);
|
|
215
215
|
} else if (parsedCommand.command === "search") {
|
|
216
216
|
console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
|
|
@@ -218,7 +218,7 @@ async function main() {
|
|
|
218
218
|
printHelp();
|
|
219
219
|
process.exit(1);
|
|
220
220
|
} else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
|
|
221
|
-
const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-
|
|
221
|
+
const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-FgXlxHEO.mjs");
|
|
222
222
|
const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
|
|
223
223
|
if (sitemapOptions.help) {
|
|
224
224
|
printSitemapGenerateHelp();
|
|
@@ -228,11 +228,11 @@ async function main() {
|
|
|
228
228
|
} else if (parsedCommand.command === "sitemap") {
|
|
229
229
|
console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
|
|
230
230
|
console.error();
|
|
231
|
-
const { printSitemapGenerateHelp } = await import("../sitemap-
|
|
231
|
+
const { printSitemapGenerateHelp } = await import("../sitemap-FgXlxHEO.mjs");
|
|
232
232
|
printSitemapGenerateHelp();
|
|
233
233
|
process.exit(1);
|
|
234
234
|
} else if (parsedCommand.command === "robots" && subcommand === "generate") {
|
|
235
|
-
const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-
|
|
235
|
+
const { generateRobots, parseRobotsGenerateArgs, printRobotsGenerateHelp } = await import("../robots-DLl9Zizg.mjs");
|
|
236
236
|
const robotsOptions = parseRobotsGenerateArgs(args.slice(2));
|
|
237
237
|
if (robotsOptions.help) {
|
|
238
238
|
printRobotsGenerateHelp();
|
|
@@ -242,7 +242,7 @@ async function main() {
|
|
|
242
242
|
} else if (parsedCommand.command === "robots") {
|
|
243
243
|
console.error(pc.red(`Unknown robots subcommand: ${subcommand ?? "(missing)"}`));
|
|
244
244
|
console.error();
|
|
245
|
-
const { printRobotsGenerateHelp } = await import("../robots-
|
|
245
|
+
const { printRobotsGenerateHelp } = await import("../robots-DLl9Zizg.mjs");
|
|
246
246
|
printRobotsGenerateHelp();
|
|
247
247
|
process.exit(1);
|
|
248
248
|
} else if (parsedCommand.command === "downgrade") {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { at as DocsAnalyticsEventInput, it as DocsAnalyticsEvent, rt as DocsAnalyticsConfig } from "./types-BQC05SQm.mjs";
|
|
2
|
-
import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-
|
|
2
|
+
import { n as DocsCloudAskAIResponseOptions, t as DocsCloudAskAIConfig } from "./cloud-ask-ai-BfnX18rI.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/docs-cloud-server.d.ts
|
|
5
5
|
type DocsCloudRuntimeValue<T = string> = T | undefined | null | (() => T | undefined | null);
|