@farming-labs/docs 0.2.80 → 0.2.82
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-aWl_O6xn.mjs → agent-Biyd8A98.mjs} +2 -2
- package/dist/{agent-Cj50nyeV.mjs → agent-Dze2Cy5B.mjs} +1 -1
- package/dist/{agent-DGALg9hQ.d.mts → agent-WS4GXGh6.d.mts} +88 -3
- package/dist/{agent-evals-DvQQtN62.mjs → agent-evals-Burrzyam.mjs} +19 -4
- package/dist/{agent-export-BISSb83U.mjs → agent-export-whKAZQUI.mjs} +8 -8
- package/dist/agent-skills-bundle.d.mts +1 -1
- package/dist/{agent-skills-server-B2EXn2QD.mjs → agent-skills-server-D5qYU19g.mjs} +16 -7
- package/dist/{agent-skills-server-Daq-FOay.d.mts → agent-skills-server-q4B9kRGg.d.mts} +2 -2
- package/dist/agent-skills-vite.d.mts +3 -3
- package/dist/agent-skills-vite.mjs +1 -1
- package/dist/{agents-DLNUgcgU.mjs → agents-B_980VCs.mjs} +6 -6
- package/dist/cli/index.mjs +16 -16
- package/dist/client/react.d.mts +1 -1
- package/dist/{cloud-ask-ai-o41WfOTk.d.mts → cloud-ask-ai-BQAeHkpZ.d.mts} +1 -1
- package/dist/{codeblocks-CFuurVIH.mjs → codeblocks-CPA6Ae5r.mjs} +1 -1
- package/dist/{agent-provenance-C_jgqNTW.mjs → content-change-hydration-DpQ0KdAD.mjs} +218 -2
- package/dist/docs-cloud-server.d.mts +2 -2
- package/dist/docs-cloud-server.mjs +1 -1
- package/dist/{doctor-BxP-UHaE.mjs → doctor-WjuyRWYT.mjs} +32 -15
- package/dist/{golden-evaluations-Bk8MBi3Z.mjs → golden-evaluations-B2GHnoFa.mjs} +307 -3
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +5 -5
- package/dist/{mcp-BU63wzaM.mjs → mcp-bhIsgqxy.mjs} +6 -6
- package/dist/mcp.d.mts +6 -5
- package/dist/mcp.mjs +199 -25
- package/dist/{prompt-references-CMMoF6AY.mjs → prompt-references-embiJdYt.mjs} +2 -2
- package/dist/{retrieval-digest-DIbiu0TW.d.mts → retrieval-digest-DRRHA1B3.d.mts} +2 -2
- package/dist/{review-D14mUw5D.mjs → review-2e4TXoGS.mjs} +71 -10
- package/dist/{robots-DmczzidR.mjs → robots-BIySk2gE.mjs} +2 -2
- package/dist/{robots-BukukxNm.mjs → robots-D96X6eVX.mjs} +1 -1
- package/dist/{search-DP96dV3e.mjs → search-DfB3LQ4s.mjs} +6 -6
- package/dist/server.d.mts +6 -6
- package/dist/server.mjs +8 -8
- package/dist/{sitemap-DuosRvmn.mjs → sitemap-AcwP8jIo.mjs} +6 -6
- package/dist/{sitemap-server-DzlV1NOB.mjs → sitemap-server-BefXEox6.mjs} +1 -1
- package/dist/{standards-discovery-C2cUIQzW.d.mts → standards-discovery-DPUEcUmb.d.mts} +1 -1
- package/dist/{types-o-ULHPK6.d.mts → types-lGEHcx_6.d.mts} +44 -1
- package/package.json +1 -1
- /package/dist/{cloud-ask-ai-sbpjOR2K.mjs → cloud-ask-ai-BRBK4RBG.mjs} +0 -0
- /package/dist/{code-blocks-DnNVNK2M.mjs → code-blocks-0wjOsqdJ.mjs} +0 -0
package/dist/mcp.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { z as DocsPublishedAgentSkill } from "./standards-discovery-
|
|
3
|
-
import { it as DocsMarkdownSectionIndex, wn as
|
|
1
|
+
import { Cn as DocsSearchConfig, F as DocsAgentContentChangesConfig, Gt as DocsMcpAuthPrincipal, Hn as DocsTelemetryConfig, Kt as DocsMcpAuthenticate, Ln as DocsSearchSourcePage, Wt as DocsMcpAllowedOrigins, Yt as DocsMcpConfig, cn as DocsRetrievalSourceProvenance, dr as OrderingItem, gr as PageAgentFrontmatter, ot as DocsAnalyticsConfig, qn as DocsTelemetryFramework, rn as DocsObservabilityConfig } from "./types-lGEHcx_6.mjs";
|
|
2
|
+
import { z as DocsPublishedAgentSkill } from "./standards-discovery-DPUEcUmb.mjs";
|
|
3
|
+
import { An as MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, Cn as DocsContentChangeHydrationBudget, Dn as DocsContentChangeHydrationTombstone, En as DocsContentChangeHydrationSection, Fn as DocsContentChangeFeed, On as HydrateDocsContentChangesOptions, Sn as DOCS_CONTENT_CHANGE_HYDRATION_FORMAT, Tn as DocsContentChangeHydrationResponse, it as DocsMarkdownSectionIndex, jn as hydrateDocsContentChanges, kn as MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, wn as DocsContentChangeHydrationContent, xn as DEFAULT_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET } from "./agent-WS4GXGh6.mjs";
|
|
4
4
|
import { McpServer } from "@modelcontextprotocol/server";
|
|
5
5
|
|
|
6
6
|
//#region src/mcp.d.ts
|
|
@@ -273,7 +273,8 @@ interface DocsMcpResolvedConfig {
|
|
|
273
273
|
readTask?: boolean;
|
|
274
274
|
searchDocs: boolean; /** Optional so manually constructed resolved configs from older releases remain assignable. */
|
|
275
275
|
searchFacets?: boolean; /** Optional so manually constructed resolved configs from older releases remain assignable. */
|
|
276
|
-
listContentChanges?: boolean;
|
|
276
|
+
listContentChanges?: boolean; /** Optional so manually constructed resolved configs from older releases remain assignable. */
|
|
277
|
+
hydrateContentChanges?: boolean;
|
|
277
278
|
getNavigation: boolean;
|
|
278
279
|
getCodeExamples: boolean;
|
|
279
280
|
getConfigSchema: boolean;
|
|
@@ -349,4 +350,4 @@ declare function getDocsConfigSchema(filters?: {
|
|
|
349
350
|
}): DocsMcpConfigSchema;
|
|
350
351
|
declare function buildDocsMcpContext(options: DocsMcpContextOptions): Promise<DocsMcpContextResult>;
|
|
351
352
|
//#endregion
|
|
352
|
-
export { CreateDocsMcpServerOptions, DEFAULT_DOCS_MCP_CONTENT_CHANGE_POLL_INTERVAL_MS, DEFAULT_DOCS_MCP_CORS_ALLOWED_HEADERS, DEFAULT_DOCS_MCP_CORS_EXPOSED_HEADERS, DEFAULT_DOCS_MCP_CORS_MAX_AGE_SECONDS, DEFAULT_DOCS_MCP_MAX_BODY_BYTES, DOCS_CONFIG_SCHEMA_OPTIONS, DOCS_MCP_CONTENT_CHANGES_CURRENT_URI, DOCS_MCP_CONTENT_CHANGES_URI_TEMPLATE, DocsMcpAgentContractSummary, DocsMcpCodeExample, DocsMcpConfigSchema, DocsMcpConfigSchemaOption, DocsMcpContextOptions, DocsMcpContextResult, DocsMcpContextSource, DocsMcpDocsList, DocsMcpDocsPageSummary, DocsMcpDocsSection, DocsMcpFolderNode, DocsMcpHttpHandlers, DocsMcpNavigationNode, DocsMcpNavigationTree, DocsMcpPage, DocsMcpPageNode, DocsMcpPageSectionIndex, DocsMcpPageSectionList, DocsMcpPaginatedDocsList, DocsMcpPagination, DocsMcpRequestContext, DocsMcpResolvedConfig, DocsMcpResolvedCorsConfig, DocsMcpResolvedProtectedResourceConfig, DocsMcpResolvedSecurityConfig, DocsMcpSource, DocsMcpTaskSummary, buildDocsMcpContext, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, getDocsConfigSchema, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio };
|
|
353
|
+
export { CreateDocsMcpServerOptions, DEFAULT_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, DEFAULT_DOCS_MCP_CONTENT_CHANGE_POLL_INTERVAL_MS, DEFAULT_DOCS_MCP_CORS_ALLOWED_HEADERS, DEFAULT_DOCS_MCP_CORS_EXPOSED_HEADERS, DEFAULT_DOCS_MCP_CORS_MAX_AGE_SECONDS, DEFAULT_DOCS_MCP_MAX_BODY_BYTES, DOCS_CONFIG_SCHEMA_OPTIONS, DOCS_CONTENT_CHANGE_HYDRATION_FORMAT, DOCS_MCP_CONTENT_CHANGES_CURRENT_URI, DOCS_MCP_CONTENT_CHANGES_URI_TEMPLATE, type DocsContentChangeHydrationBudget, type DocsContentChangeHydrationContent, type DocsContentChangeHydrationResponse, type DocsContentChangeHydrationSection, type DocsContentChangeHydrationTombstone, DocsMcpAgentContractSummary, DocsMcpCodeExample, DocsMcpConfigSchema, DocsMcpConfigSchemaOption, DocsMcpContextOptions, DocsMcpContextResult, DocsMcpContextSource, DocsMcpDocsList, DocsMcpDocsPageSummary, DocsMcpDocsSection, DocsMcpFolderNode, DocsMcpHttpHandlers, DocsMcpNavigationNode, DocsMcpNavigationTree, DocsMcpPage, DocsMcpPageNode, DocsMcpPageSectionIndex, DocsMcpPageSectionList, DocsMcpPaginatedDocsList, DocsMcpPagination, DocsMcpRequestContext, DocsMcpResolvedConfig, DocsMcpResolvedCorsConfig, DocsMcpResolvedProtectedResourceConfig, DocsMcpResolvedSecurityConfig, DocsMcpSource, DocsMcpTaskSummary, type HydrateDocsContentChangesOptions, MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, buildDocsMcpContext, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, getDocsConfigSchema, hydrateDocsContentChanges, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio };
|
package/dist/mcp.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as emitDocsAnalyticsEvent, i as emitDocsAgentTraceEvent, n as createDocsAgentTraceContext, r as createDocsAgentTraceId } from "./analytics-Bx44lg6d.mjs";
|
|
2
|
-
import { $n as
|
|
2
|
+
import { $n as isDocsMcpResourcePath, An as normalizeAgentFramework, Bn as normalizeDocsRelated, E as DOCS_MARKDOWN_SECTION_INDEX_FORMAT, En as resolveDocsAudienceMdxContent, In as paginateDocsItems, Jt as resolveDocsContentChangesConfig, Kt as isDocsContentChangeGeneration, Mn as normalizeAgentScopeValues, On as agentVersionConstraintMatches, P as buildDocsMarkdownSectionIndex, Pn as DocsPaginationCursorError, Ut as DocsContentChangesRequestError, Vn as renderDocsRelatedMarkdownLines, Wt as createDocsContentChangeFeed, Xn as isDocsMcpOAuthScopeToken, Zn as isDocsMcpProtectedResourceMetadataPath, dn as performDocsSearch, er as normalizeDocsMcpAuthorizationServerUrls, fn as performDocsSearchWithMetadata, jn as normalizeAgentLocale, kn as agentVersionConstraintsOverlap, nr as resolveDocsMcpProtectedResourceMetadataLocation, rr as resolveDocsMcpResourceLocation, tn as buildDocsSearchFacets, tr as normalizeDocsMcpEndpointPath, un as normalizeDocsSearchFilters, wt as toDocsMarkdownUrl, yn as resolveLocalDocsMcpSearchConfig, zn as isDocsRetrievalCanonicalUrl } from "./agent-Dze2Cy5B.mjs";
|
|
3
3
|
import { S as upsertPageAgentContractMarkdown, _ as hasStructuredPageAgentContract, o as findDocsMarkdownSection, s as parseDocsMarkdownSections, v as normalizePageAgentFrontmatter } from "./markdown-sections-7OoA7ylx.mjs";
|
|
4
4
|
import "./standards-discovery-BKlEnK_H.mjs";
|
|
5
|
-
import {
|
|
5
|
+
import { _ as emitDocsTelemetryAgentSurfaceEvent, a as hydrateDocsContentChanges, b as emitDocsTelemetryProjectEvent, f as stripGeneratedAgentProvenance, i as MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, m as resolvePageSidebarFolderIndexBehavior, n as DOCS_CONTENT_CHANGE_HYDRATION_FORMAT, r as MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, t as DEFAULT_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, y as emitDocsTelemetryMcpToolEvent } from "./content-change-hydration-DpQ0KdAD.mjs";
|
|
6
6
|
import matter from "gray-matter";
|
|
7
7
|
import fs from "node:fs";
|
|
8
8
|
import path from "node:path";
|
|
@@ -269,17 +269,68 @@ const DOCS_CONFIG_SCHEMA_OPTIONS_TEMPLATE = [
|
|
|
269
269
|
name: "skills",
|
|
270
270
|
type: "string | readonly string[] | DocsAgentSkillsConfig",
|
|
271
271
|
description: "Project skill files or collection directories published through discovery, static export, and MCP.",
|
|
272
|
-
children: [
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
272
|
+
children: [
|
|
273
|
+
{
|
|
274
|
+
path: "agent.skills.paths",
|
|
275
|
+
name: "paths",
|
|
276
|
+
type: "string | readonly string[]",
|
|
277
|
+
description: "Workspace-contained SKILL.md file, skill directory, or collection directory paths."
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
path: "agent.skills.paths[]",
|
|
281
|
+
name: "path",
|
|
282
|
+
type: "string",
|
|
283
|
+
description: "One workspace-contained Agent Skill path."
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
path: "agent.skills.progressiveDisclosure",
|
|
287
|
+
name: "progressiveDisclosure",
|
|
288
|
+
type: "DocsAgentSkillsProgressiveDisclosureConfig",
|
|
289
|
+
description: "Thresholds used by doctor and review to keep SKILL.md instructions compact, references shallow, and scripts documented.",
|
|
290
|
+
children: [
|
|
291
|
+
{
|
|
292
|
+
path: "agent.skills.progressiveDisclosure.maxSkillLines",
|
|
293
|
+
name: "maxSkillLines",
|
|
294
|
+
type: "number",
|
|
295
|
+
default: 500,
|
|
296
|
+
description: "Maximum recommended line count for the complete SKILL.md document."
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
path: "agent.skills.progressiveDisclosure.instructionTokenBudget",
|
|
300
|
+
name: "instructionTokenBudget",
|
|
301
|
+
type: "number",
|
|
302
|
+
default: 5e3,
|
|
303
|
+
description: "Approximate token budget for SKILL.md instructions after frontmatter."
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
path: "agent.skills.progressiveDisclosure.maxReferenceDepth",
|
|
307
|
+
name: "maxReferenceDepth",
|
|
308
|
+
type: "number",
|
|
309
|
+
default: 1,
|
|
310
|
+
description: "Maximum local Markdown reference hops from SKILL.md before doctor and review warn."
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
path: "agent.skills.progressiveDisclosure.compatibility",
|
|
314
|
+
name: "compatibility",
|
|
315
|
+
type: "\"when-needed\" | \"always\" | \"off\"",
|
|
316
|
+
default: "when-needed",
|
|
317
|
+
values: [
|
|
318
|
+
"when-needed",
|
|
319
|
+
"always",
|
|
320
|
+
"off"
|
|
321
|
+
],
|
|
322
|
+
description: "Whether compatibility frontmatter is expected only for environment-dependent skills, always, or never."
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
path: "agent.skills.progressiveDisclosure.checkScripts",
|
|
326
|
+
name: "checkScripts",
|
|
327
|
+
type: "boolean",
|
|
328
|
+
default: true,
|
|
329
|
+
description: "Diagnose bundled scripts without dependency and validation guidance."
|
|
330
|
+
}
|
|
331
|
+
]
|
|
332
|
+
}
|
|
333
|
+
]
|
|
283
334
|
},
|
|
284
335
|
{
|
|
285
336
|
path: "agent.a2a",
|
|
@@ -1193,7 +1244,8 @@ const DOCS_CONFIG_SCHEMA_OPTIONS_TEMPLATE = [
|
|
|
1193
1244
|
["relatedCoverage", "suggestion"],
|
|
1194
1245
|
["configConfidence", "warn"],
|
|
1195
1246
|
["agentSurfaceDrift", "error"],
|
|
1196
|
-
["goldenTasks", "warn"]
|
|
1247
|
+
["goldenTasks", "warn"],
|
|
1248
|
+
["agentSkills", "warn"]
|
|
1197
1249
|
].map(([name, defaultValue]) => ({
|
|
1198
1250
|
path: `review.rules.${name}`,
|
|
1199
1251
|
name,
|
|
@@ -1578,6 +1630,13 @@ const DOCS_CONFIG_SCHEMA_OPTIONS_TEMPLATE = [
|
|
|
1578
1630
|
default: true,
|
|
1579
1631
|
description: "Expose list_content_changes polling and docs://changes resources when agent.contentChanges is enabled."
|
|
1580
1632
|
},
|
|
1633
|
+
{
|
|
1634
|
+
path: "mcp.tools.hydrateContentChanges",
|
|
1635
|
+
name: "hydrateContentChanges",
|
|
1636
|
+
type: "boolean",
|
|
1637
|
+
default: true,
|
|
1638
|
+
description: "Expose hydrate_content_changes for budget-aware changed section bodies, deletion tombstones, digests, and continuation cursors."
|
|
1639
|
+
},
|
|
1581
1640
|
{
|
|
1582
1641
|
path: "mcp.tools.readPage",
|
|
1583
1642
|
name: "readPage",
|
|
@@ -1894,6 +1953,12 @@ const listContentChangesInputSchema = z.object({
|
|
|
1894
1953
|
since: z.string().refine(isDocsContentChangeGeneration, "Expected a SHA-256 index generation").optional(),
|
|
1895
1954
|
locale: z.string().trim().min(1).max(128).optional()
|
|
1896
1955
|
});
|
|
1956
|
+
const hydrateContentChangesInputSchema = z.object({
|
|
1957
|
+
since: z.string().refine(isDocsContentChangeGeneration, "Expected a SHA-256 index generation"),
|
|
1958
|
+
tokenBudget: z.number().int().min(MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET).max(MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET).default(DEFAULT_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET),
|
|
1959
|
+
cursor: paginationCursorInputSchema,
|
|
1960
|
+
locale: z.string().trim().min(1).max(128).optional()
|
|
1961
|
+
});
|
|
1897
1962
|
const getConfigSchemaInputSchema = z.object({
|
|
1898
1963
|
option: z.string().trim().min(1).optional(),
|
|
1899
1964
|
query: z.string().trim().min(1).optional()
|
|
@@ -2032,6 +2097,59 @@ const contentChangesOutputSchema = z.object({
|
|
|
2032
2097
|
})),
|
|
2033
2098
|
deleted: z.array(contentChangeDocumentOutputSchema)
|
|
2034
2099
|
});
|
|
2100
|
+
const contentChangeHydrationContentOutputSchema = contentChangeDocumentOutputSchema.extend({
|
|
2101
|
+
type: z.literal("content"),
|
|
2102
|
+
change: z.enum(["added", "changed"]),
|
|
2103
|
+
previousDigest: retrievalSourceDigestOutputSchema.optional(),
|
|
2104
|
+
previousLastModified: z.string().optional(),
|
|
2105
|
+
section: z.object({
|
|
2106
|
+
id: z.string(),
|
|
2107
|
+
heading: z.string(),
|
|
2108
|
+
level: z.number().int().positive()
|
|
2109
|
+
}),
|
|
2110
|
+
sectionDigest: retrievalSourceDigestOutputSchema,
|
|
2111
|
+
chunkDigest: retrievalSourceDigestOutputSchema,
|
|
2112
|
+
chunk: z.object({
|
|
2113
|
+
index: z.number().int().nonnegative(),
|
|
2114
|
+
count: z.number().int().positive()
|
|
2115
|
+
}),
|
|
2116
|
+
content: z.string(),
|
|
2117
|
+
utf8Bytes: z.number().int().nonnegative()
|
|
2118
|
+
});
|
|
2119
|
+
const contentChangeHydrationTombstoneOutputSchema = contentChangeDocumentOutputSchema.extend({
|
|
2120
|
+
type: z.literal("tombstone"),
|
|
2121
|
+
change: z.literal("deleted")
|
|
2122
|
+
});
|
|
2123
|
+
const contentChangeHydrationOutputSchema = z.object({
|
|
2124
|
+
format: z.literal(DOCS_CONTENT_CHANGE_HYDRATION_FORMAT),
|
|
2125
|
+
audience: z.literal("agent"),
|
|
2126
|
+
locale: z.string().optional(),
|
|
2127
|
+
since: retrievalSourceDigestOutputSchema,
|
|
2128
|
+
indexGeneration: retrievalSourceDigestOutputSchema,
|
|
2129
|
+
mode: z.enum([
|
|
2130
|
+
"snapshot",
|
|
2131
|
+
"delta",
|
|
2132
|
+
"reset"
|
|
2133
|
+
]),
|
|
2134
|
+
resetRequired: z.boolean(),
|
|
2135
|
+
documentCount: z.number().int().nonnegative(),
|
|
2136
|
+
counts: z.object({
|
|
2137
|
+
added: z.number().int().nonnegative(),
|
|
2138
|
+
changed: z.number().int().nonnegative(),
|
|
2139
|
+
deleted: z.number().int().nonnegative()
|
|
2140
|
+
}),
|
|
2141
|
+
budget: z.object({
|
|
2142
|
+
requestedTokens: z.number().int().positive(),
|
|
2143
|
+
strategy: z.literal("utf8-bytes"),
|
|
2144
|
+
maxUtf8Bytes: z.number().int().positive(),
|
|
2145
|
+
usedUtf8Bytes: z.number().int().nonnegative(),
|
|
2146
|
+
conservativeTokenUpperBound: z.number().int().nonnegative(),
|
|
2147
|
+
remainingUtf8Bytes: z.number().int().nonnegative()
|
|
2148
|
+
}),
|
|
2149
|
+
...paginationOutputShape,
|
|
2150
|
+
content: z.array(contentChangeHydrationContentOutputSchema),
|
|
2151
|
+
tombstones: z.array(contentChangeHydrationTombstoneOutputSchema)
|
|
2152
|
+
});
|
|
2035
2153
|
const retrievalSourceOutputSchema = z.object({
|
|
2036
2154
|
canonicalUrl: z.string().max(4096).refine(isDocsRetrievalCanonicalUrl, "Expected a safe HTTP(S) URL or root-relative path"),
|
|
2037
2155
|
scope: retrievalSourceScopeOutputSchema,
|
|
@@ -2274,6 +2392,7 @@ function resolveDocsMcpConfig(mcp, defaults = {}) {
|
|
|
2274
2392
|
searchDocs: true,
|
|
2275
2393
|
searchFacets: true,
|
|
2276
2394
|
listContentChanges: true,
|
|
2395
|
+
hydrateContentChanges: true,
|
|
2277
2396
|
getNavigation: true,
|
|
2278
2397
|
getCodeExamples: true,
|
|
2279
2398
|
getConfigSchema: true,
|
|
@@ -2297,6 +2416,7 @@ function resolveDocsMcpConfig(mcp, defaults = {}) {
|
|
|
2297
2416
|
searchDocs: config.tools?.searchDocs ?? true,
|
|
2298
2417
|
searchFacets: config.tools?.searchFacets ?? true,
|
|
2299
2418
|
listContentChanges: config.tools?.listContentChanges ?? true,
|
|
2419
|
+
hydrateContentChanges: config.tools?.hydrateContentChanges ?? true,
|
|
2300
2420
|
getNavigation: config.tools?.getNavigation ?? true,
|
|
2301
2421
|
getCodeExamples: config.tools?.getCodeExamples ?? true,
|
|
2302
2422
|
getConfigSchema: config.tools?.getConfigSchema ?? true,
|
|
@@ -2608,6 +2728,7 @@ async function createDocsMcpServer(options) {
|
|
|
2608
2728
|
version: resolved.version
|
|
2609
2729
|
});
|
|
2610
2730
|
const contentChangesEnabled = resolveDocsContentChangesConfig(options.contentChanges).enabled && resolved.tools.listContentChanges !== false;
|
|
2731
|
+
const contentChangeHydrationEnabled = contentChangesEnabled && resolved.tools.hydrateContentChanges !== false;
|
|
2611
2732
|
const server = new McpServer({
|
|
2612
2733
|
name: resolved.name,
|
|
2613
2734
|
version: resolved.version
|
|
@@ -2651,25 +2772,33 @@ async function createDocsMcpServer(options) {
|
|
|
2651
2772
|
const defaultTree = await getSourceNavigation();
|
|
2652
2773
|
const defaultSkills = await getSourceSkills();
|
|
2653
2774
|
const contentChangeFeed = options.contentChangeFeed ?? createDocsContentChangeFeed(options.contentChanges);
|
|
2654
|
-
async function
|
|
2775
|
+
async function resolveContentChangeState(since, locale) {
|
|
2655
2776
|
if (!contentChangesEnabled) throw new ProtocolError(ProtocolErrorCode.MethodNotFound, "Content changes are disabled.");
|
|
2656
2777
|
if (since && !isDocsContentChangeGeneration(since)) throw new ProtocolError(ProtocolErrorCode.InvalidParams, "Content-change `since` must be a SHA-256 index generation.");
|
|
2657
2778
|
const resolvedLocale = resolveSourceLocale(locale);
|
|
2779
|
+
const pages = dedupePages(await options.source.getPages(resolvedLocale, options.requestContext));
|
|
2658
2780
|
try {
|
|
2659
|
-
return
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2781
|
+
return {
|
|
2782
|
+
result: await contentChangeFeed.resolve({
|
|
2783
|
+
pages: toSearchSourcePages(pages),
|
|
2784
|
+
search: options.search,
|
|
2785
|
+
audience: "agent",
|
|
2786
|
+
locale: resolvedLocale,
|
|
2787
|
+
baseUrl: options.source.baseUrl ?? (options.requestContext?.request ? new URL(options.requestContext.request.url).origin : void 0),
|
|
2788
|
+
...since ? { since } : {},
|
|
2789
|
+
...options.requestContext?.request ? { request: options.requestContext.request.clone() } : {}
|
|
2790
|
+
}),
|
|
2791
|
+
pages,
|
|
2792
|
+
...resolvedLocale ? { resolvedLocale } : {}
|
|
2793
|
+
};
|
|
2668
2794
|
} catch (error) {
|
|
2669
2795
|
if (error instanceof DocsContentChangesRequestError) throw new ProtocolError(ProtocolErrorCode.InvalidParams, error.message);
|
|
2670
2796
|
throw error;
|
|
2671
2797
|
}
|
|
2672
2798
|
}
|
|
2799
|
+
async function resolveContentChanges(since, locale) {
|
|
2800
|
+
return (await resolveContentChangeState(since, locale)).result;
|
|
2801
|
+
}
|
|
2673
2802
|
registerResource("docs-navigation", "docs://navigation", {
|
|
2674
2803
|
title: "Docs Navigation",
|
|
2675
2804
|
description: "Structured navigation tree for the documentation site.",
|
|
@@ -2737,6 +2866,51 @@ async function createDocsMcpServer(options) {
|
|
|
2737
2866
|
});
|
|
2738
2867
|
return createStructuredTextResult(result);
|
|
2739
2868
|
});
|
|
2869
|
+
if (contentChangeHydrationEnabled) registerTool("hydrate_content_changes", {
|
|
2870
|
+
title: "Hydrate docs content changes",
|
|
2871
|
+
description: "Fetch only added and changed agent-facing sections after list_content_changes. Returns deletion tombstones and digest-bound continuation cursors under a conservative token budget.",
|
|
2872
|
+
inputSchema: hydrateContentChangesInputSchema,
|
|
2873
|
+
outputSchema: contentChangeHydrationOutputSchema,
|
|
2874
|
+
annotations: { readOnlyHint: true }
|
|
2875
|
+
}, async ({ since, tokenBudget, cursor, locale }) => {
|
|
2876
|
+
const startedAt = nowMs();
|
|
2877
|
+
const state = await resolveContentChangeState(since, locale);
|
|
2878
|
+
let result;
|
|
2879
|
+
try {
|
|
2880
|
+
result = hydrateDocsContentChanges({
|
|
2881
|
+
changes: state.result,
|
|
2882
|
+
pages: state.pages,
|
|
2883
|
+
since,
|
|
2884
|
+
tokenBudget,
|
|
2885
|
+
cursor,
|
|
2886
|
+
cursorScope: protocolScope
|
|
2887
|
+
});
|
|
2888
|
+
} catch (error) {
|
|
2889
|
+
if (error instanceof DocsPaginationCursorError) throw new ProtocolError(ProtocolErrorCode.InvalidParams, error.message);
|
|
2890
|
+
throw error;
|
|
2891
|
+
}
|
|
2892
|
+
trackMcpTool("hydrate_content_changes", {
|
|
2893
|
+
locale: state.resolvedLocale,
|
|
2894
|
+
resultCount: result.resultCount
|
|
2895
|
+
});
|
|
2896
|
+
await emitDocsAnalyticsEvent(options.analytics, {
|
|
2897
|
+
type: "mcp_tool",
|
|
2898
|
+
source: "mcp",
|
|
2899
|
+
locale: state.resolvedLocale,
|
|
2900
|
+
properties: {
|
|
2901
|
+
tool: "hydrate_content_changes",
|
|
2902
|
+
mode: result.mode,
|
|
2903
|
+
resetRequired: result.resetRequired,
|
|
2904
|
+
resultCount: result.resultCount,
|
|
2905
|
+
total: result.total,
|
|
2906
|
+
hasMore: result.hasMore,
|
|
2907
|
+
tokenBudget,
|
|
2908
|
+
usedUtf8Bytes: result.budget.usedUtf8Bytes,
|
|
2909
|
+
durationMs: durationMs(startedAt)
|
|
2910
|
+
}
|
|
2911
|
+
});
|
|
2912
|
+
return createStructuredTextResult(result);
|
|
2913
|
+
});
|
|
2740
2914
|
}
|
|
2741
2915
|
for (const page of defaultPages) {
|
|
2742
2916
|
const resourceUri = toPageResourceUri(page.url);
|
|
@@ -5843,4 +6017,4 @@ function toPageResourceUri(url) {
|
|
|
5843
6017
|
}
|
|
5844
6018
|
|
|
5845
6019
|
//#endregion
|
|
5846
|
-
export { DEFAULT_DOCS_MCP_CONTENT_CHANGE_POLL_INTERVAL_MS, DEFAULT_DOCS_MCP_CORS_ALLOWED_HEADERS, DEFAULT_DOCS_MCP_CORS_EXPOSED_HEADERS, DEFAULT_DOCS_MCP_CORS_MAX_AGE_SECONDS, DEFAULT_DOCS_MCP_MAX_BODY_BYTES, DOCS_CONFIG_SCHEMA_OPTIONS, DOCS_MCP_CONTENT_CHANGES_CURRENT_URI, DOCS_MCP_CONTENT_CHANGES_URI_TEMPLATE, buildDocsMcpContext, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, getDocsConfigSchema, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio };
|
|
6020
|
+
export { DEFAULT_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, DEFAULT_DOCS_MCP_CONTENT_CHANGE_POLL_INTERVAL_MS, DEFAULT_DOCS_MCP_CORS_ALLOWED_HEADERS, DEFAULT_DOCS_MCP_CORS_EXPOSED_HEADERS, DEFAULT_DOCS_MCP_CORS_MAX_AGE_SECONDS, DEFAULT_DOCS_MCP_MAX_BODY_BYTES, DOCS_CONFIG_SCHEMA_OPTIONS, DOCS_CONTENT_CHANGE_HYDRATION_FORMAT, DOCS_MCP_CONTENT_CHANGES_CURRENT_URI, DOCS_MCP_CONTENT_CHANGES_URI_TEMPLATE, MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, buildDocsMcpContext, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, getDocsConfigSchema, hydrateDocsContentChanges, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { At as DEFAULT_SITEMAP_XML_ROUTE,
|
|
1
|
+
import { At as DEFAULT_SITEMAP_XML_ROUTE, Gn as DEFAULT_MCP_WELL_KNOWN_ROUTE, Ot as DEFAULT_SITEMAP_MD_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, f as DEFAULT_DOCS_CONFIG_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, i as DEFAULT_AGENT_FEEDBACK_ROUTE, m as DEFAULT_DOCS_DIAGNOSTICS_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE } from "./agent-Dze2Cy5B.mjs";
|
|
2
2
|
import { isDocsAgentSkillName, validateDocsAgentSkillFrontmatter } from "./agent-skills-spec.mjs";
|
|
3
3
|
import { C as DOCS_AGENT_MANIFEST_SCHEMA_MEDIA_TYPE, S as DOCS_AGENT_MANIFEST_FORMAT, T as DOCS_AGENT_MANIFEST_VERSION, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, 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-BKlEnK_H.mjs";
|
|
4
|
-
import { n as DEFAULT_ROBOTS_TXT_ROUTE } from "./robots-
|
|
4
|
+
import { n as DEFAULT_ROBOTS_TXT_ROUTE } from "./robots-D96X6eVX.mjs";
|
|
5
5
|
import matter from "gray-matter";
|
|
6
6
|
|
|
7
7
|
//#region src/define-docs.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { R as DocsDiscoveryApiRouteOptions } from "./standards-discovery-
|
|
1
|
+
import { Bn as DocsSitemapConfig, an as DocsObservabilityEventInput, ct as DocsAnalyticsEventInput, in as DocsObservabilityEvent, lr as OpenDocsTarget, or as OpenDocsProvider, ot as DocsAnalyticsConfig, rn as DocsObservabilityConfig, rt as DocsAgentTraceEventInput, st as DocsAnalyticsEvent, wr as ResolvedDocsRelatedLink } from "./types-lGEHcx_6.mjs";
|
|
2
|
+
import { R as DocsDiscoveryApiRouteOptions } from "./standards-discovery-DPUEcUmb.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/analytics.d.ts
|
|
5
5
|
declare const DOCS_AGENT_TRACE_EVENT_TYPES: readonly ["run.start", "run.end", "run.error", "user.input", "prompt.build", "retrieval.query", "retrieval.result", "retrieval.error", "model.call", "model.response", "model.stream", "model.error", "tool.call", "tool.result", "tool.error", "retry", "timeout", "error", "agent.final"];
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { A as buildDocsAgentDiscoverySpec,
|
|
1
|
+
import { A as buildDocsAgentDiscoverySpec, M as buildDocsConfigMap, Sn as findDocsAudienceMdxIssues, T as DOCS_CONFIG_MAP_TOP_LEVEL_KEYS, pn as resolveAskAISearchRequestConfig, qn as getDocsMcpProtectedResourceMetadataRoutes } from "./agent-Dze2Cy5B.mjs";
|
|
2
2
|
import { _ as hasStructuredPageAgentContract, f as PAGE_AGENT_CONTRACT_FIELDS, g as getPageAgentFrontmatterIssues, v as normalizePageAgentFrontmatter } from "./markdown-sections-7OoA7ylx.mjs";
|
|
3
3
|
import { I as resolveDocsDiscoveryApiRoute, _ as DEFAULT_API_CATALOG_FORMAT, d as DEFAULT_AGENT_SKILLS_ROUTE_PATTERN, h as DEFAULT_AGENT_SKILL_FORMAT, l as DEFAULT_AGENT_SKILLS_INDEX_FORMAT, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, v as DEFAULT_API_CATALOG_ROUTE } from "./standards-discovery-BKlEnK_H.mjs";
|
|
4
|
-
import "./
|
|
4
|
+
import "./content-change-hydration-DpQ0KdAD.mjs";
|
|
5
5
|
import { a as resolveDocsMetadataBaseUrl } from "./metadata-N252j5_a.mjs";
|
|
6
|
-
import
|
|
6
|
+
import "./agent-skills-server-D5qYU19g.mjs";
|
|
7
|
+
import { c as resolveDocsReviewConfig, o as ensureDocsReviewWorkflow, s as readDocsReviewConfigFromSource, t as runDocsGoldenTasks } from "./agent-evals-Burrzyam.mjs";
|
|
7
8
|
import { createFilesystemDocsMcpSource, getDocsConfigSchema, resolveDocsMcpConfig } from "./mcp.mjs";
|
|
8
|
-
import "./code-blocks-
|
|
9
|
+
import "./code-blocks-0wjOsqdJ.mjs";
|
|
9
10
|
import { _ as resolveDocsContentDir, g as resolveDocsConfigPath, h as readTopLevelStringProperty, s as loadDocsConfigModuleResultWithProjectEnv } from "./config-Wcdj-D0a.mjs";
|
|
10
11
|
import { t as detectFramework } from "./utils-DpiIioYb.mjs";
|
|
11
|
-
import { a as
|
|
12
|
+
import { a as createAgentUsefulnessPagesFromMcp, i as analyzeAgentUsefulness, n as analyzeConfiguredAgentSkillsProgressiveDisclosure, o as extractAgentBlocks, r as analyzeAgentSurfaceDrift, t as resolveGoldenEvaluationInput } from "./golden-evaluations-B2GHnoFa.mjs";
|
|
12
13
|
import matter from "gray-matter";
|
|
13
14
|
import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
|
|
14
15
|
import path from "node:path";
|
|
@@ -133,6 +134,20 @@ async function runReview(options = {}) {
|
|
|
133
134
|
rootDir,
|
|
134
135
|
contentDir
|
|
135
136
|
});
|
|
137
|
+
let skillDisclosure;
|
|
138
|
+
let skillDisclosureError;
|
|
139
|
+
if (config?.agent?.skills) try {
|
|
140
|
+
skillDisclosure = analyzeConfiguredAgentSkillsProgressiveDisclosure(config.agent.skills, { rootDir });
|
|
141
|
+
} catch (error) {
|
|
142
|
+
skillDisclosureError = error instanceof Error ? error.message : String(error);
|
|
143
|
+
}
|
|
144
|
+
const relevantSkillFiles = selectReviewSkillFiles({
|
|
145
|
+
rootDir,
|
|
146
|
+
configPath: path.relative(rootDir, configPath),
|
|
147
|
+
changedFiles,
|
|
148
|
+
report: skillDisclosure
|
|
149
|
+
});
|
|
150
|
+
const reviewedFiles = [...new Set([...relevantFiles, ...relevantSkillFiles])].sort();
|
|
136
151
|
const mcpSource = createFilesystemDocsMcpSource({
|
|
137
152
|
rootDir,
|
|
138
153
|
entry,
|
|
@@ -152,6 +167,30 @@ async function runReview(options = {}) {
|
|
|
152
167
|
files: relevantFiles,
|
|
153
168
|
review
|
|
154
169
|
});
|
|
170
|
+
if (skillDisclosureError) pushFinding(findings, review, {
|
|
171
|
+
rule: "agentSkills",
|
|
172
|
+
code: "agent-skills-analysis-failed",
|
|
173
|
+
severity: "error",
|
|
174
|
+
file: toPosixPath(path.relative(rootDir, configPath)),
|
|
175
|
+
line: 1,
|
|
176
|
+
message: `Configured Agent Skills could not be analyzed: ${skillDisclosureError}`
|
|
177
|
+
});
|
|
178
|
+
if (skillDisclosure) {
|
|
179
|
+
const relevantSkillSet = new Set(relevantSkillFiles);
|
|
180
|
+
for (const issue of skillDisclosure.issues) {
|
|
181
|
+
const file = toPosixPath(path.relative(rootDir, issue.filePath));
|
|
182
|
+
const skillFile = toPosixPath(path.relative(rootDir, issue.skillPath));
|
|
183
|
+
if (!relevantSkillSet.has(file) && !relevantSkillSet.has(skillFile)) continue;
|
|
184
|
+
pushFinding(findings, review, {
|
|
185
|
+
rule: "agentSkills",
|
|
186
|
+
code: issue.code,
|
|
187
|
+
severity: issue.severity === "error" ? "error" : issue.severity === "warning" ? "warn" : "suggestion",
|
|
188
|
+
file,
|
|
189
|
+
line: issue.line,
|
|
190
|
+
message: issue.message
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
155
194
|
const relevantSet = new Set(relevantFiles);
|
|
156
195
|
for (const issue of usefulness.findings) {
|
|
157
196
|
if (!relevantSet.has(issue.file)) continue;
|
|
@@ -274,7 +313,7 @@ async function runReview(options = {}) {
|
|
|
274
313
|
score,
|
|
275
314
|
threshold: review.score.threshold,
|
|
276
315
|
mode,
|
|
277
|
-
reviewedFiles
|
|
316
|
+
reviewedFiles,
|
|
278
317
|
changedFiles,
|
|
279
318
|
findings,
|
|
280
319
|
usefulness: usefulness.metrics,
|
|
@@ -513,7 +552,7 @@ function printReviewReport(report) {
|
|
|
513
552
|
console.log(`Threshold: ${report.threshold}`);
|
|
514
553
|
console.log(`Mode: ${modeLabel}`);
|
|
515
554
|
console.log(`Changed files: ${report.changedFiles.length}`);
|
|
516
|
-
console.log(`Reviewed docs files: ${report.reviewedFiles.length}`);
|
|
555
|
+
console.log(`Reviewed docs and skill files: ${report.reviewedFiles.length}`);
|
|
517
556
|
console.log(`Findings: ${counts.error} error${counts.error === 1 ? "" : "s"}, ${counts.warn} warning${counts.warn === 1 ? "" : "s"}, ${counts.suggestion} suggestion${counts.suggestion === 1 ? "" : "s"}`);
|
|
518
557
|
if (report.usefulness) console.log(`Useful agent-only blocks: ${report.usefulness.agentBlocks.useful}/${report.usefulness.agentBlocks.total}; task-complete pages: ${report.usefulness.taskCompleteness.completePages}/${report.usefulness.actionablePages}`);
|
|
519
558
|
if (report.evaluations) console.log(`Golden tasks: ${report.evaluations.status === "unmeasured" ? "unmeasured" : `${report.evaluations.passedTaskCount}/${report.evaluations.taskCount} passed (${report.evaluations.score}/100)`}`);
|
|
@@ -577,6 +616,25 @@ function selectReviewFiles(options) {
|
|
|
577
616
|
}
|
|
578
617
|
return Array.from(selected).sort();
|
|
579
618
|
}
|
|
619
|
+
function selectReviewSkillFiles(options) {
|
|
620
|
+
if (!options.report) return [];
|
|
621
|
+
const normalizedConfigPath = toPosixPath(options.configPath);
|
|
622
|
+
const configChanged = options.changedFiles.includes(normalizedConfigPath);
|
|
623
|
+
const changed = new Set(options.changedFiles.map(toPosixPath));
|
|
624
|
+
const selected = /* @__PURE__ */ new Set();
|
|
625
|
+
for (const skill of options.report.skills) {
|
|
626
|
+
const skillPath = toPosixPath(path.relative(options.rootDir, skill.skillPath));
|
|
627
|
+
const skillDir = `${toPosixPath(path.dirname(skillPath)).replace(/\/+$/u, "")}/`;
|
|
628
|
+
if (!(configChanged || changed.has(skillPath) || [...changed].some((file) => file.startsWith(skillDir)))) continue;
|
|
629
|
+
selected.add(skillPath);
|
|
630
|
+
for (const file of changed) if (file.startsWith(skillDir)) selected.add(file);
|
|
631
|
+
for (const issue of options.report.issues) {
|
|
632
|
+
if (issue.skillPath !== skill.skillPath) continue;
|
|
633
|
+
selected.add(toPosixPath(path.relative(options.rootDir, issue.filePath)));
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
return [...selected].sort();
|
|
637
|
+
}
|
|
580
638
|
function getChangedFiles(rootDir, options) {
|
|
581
639
|
const ranges = [
|
|
582
640
|
options.base && options.head ? `${options.base}...${options.head}` : void 0,
|
|
@@ -585,17 +643,20 @@ function getChangedFiles(rootDir, options) {
|
|
|
585
643
|
void 0
|
|
586
644
|
].filter((range, index, allRanges) => range !== void 0 || index === allRanges.length - 1);
|
|
587
645
|
for (const range of ranges) try {
|
|
646
|
+
const repoRoot = execFileSync("git", ["rev-parse", "--show-toplevel"], {
|
|
647
|
+
cwd: rootDir,
|
|
648
|
+
encoding: "utf-8"
|
|
649
|
+
}).trim();
|
|
588
650
|
const args = [
|
|
589
651
|
"diff",
|
|
590
|
-
"--relative",
|
|
591
652
|
"--name-only",
|
|
592
653
|
"--diff-filter=ACMRTUXB"
|
|
593
654
|
];
|
|
594
655
|
if (range) args.push(range);
|
|
595
656
|
const files = execFileSync("git", args, {
|
|
596
|
-
cwd:
|
|
657
|
+
cwd: repoRoot,
|
|
597
658
|
encoding: "utf-8"
|
|
598
|
-
}).split(/\r?\n/).map((file) => file.trim()).filter(Boolean).map(toPosixPath);
|
|
659
|
+
}).split(/\r?\n/).map((file) => file.trim()).filter(Boolean).map((file) => toPosixPath(path.relative(rootDir, path.resolve(repoRoot, file))));
|
|
599
660
|
if (files.length > 0 || range === void 0) return files;
|
|
600
661
|
} catch {}
|
|
601
662
|
return [];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "./agent-
|
|
1
|
+
import "./agent-Dze2Cy5B.mjs";
|
|
2
2
|
import "./markdown-sections-7OoA7ylx.mjs";
|
|
3
3
|
import "./standards-discovery-BKlEnK_H.mjs";
|
|
4
|
-
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-
|
|
4
|
+
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-D96X6eVX.mjs";
|
|
5
5
|
import { a as loadDocsConfigModule, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, m as readTopLevelBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-Wcdj-D0a.mjs";
|
|
6
6
|
import { t as detectFramework } from "./utils-DpiIioYb.mjs";
|
|
7
7
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { It as resolveDocsSitemapConfig, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Un as
|
|
1
|
+
import { Gn as DEFAULT_MCP_WELL_KNOWN_ROUTE, It as resolveDocsSitemapConfig, S as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, Un as DEFAULT_MCP_PUBLIC_ROUTE, a as DEFAULT_AGENT_MD_ROUTE, c as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, et as normalizeDocsPathSegment, g as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, h as DEFAULT_LLMS_FULL_TXT_ROUTE, l as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, n as DEFAULT_AGENTS_MD_WELL_KNOWN_ROUTE, o as DEFAULT_AGENT_MD_WELL_KNOWN_ROUTE, t as DEFAULT_AGENTS_MD_ROUTE, v as DEFAULT_LLMS_TXT_ROUTE, x as DEFAULT_SKILL_MD_ROUTE, y as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE } from "./agent-Dze2Cy5B.mjs";
|
|
2
2
|
import { a as DEFAULT_A2A_AGENT_CARD_ROUTE, b as DEFAULT_LEGACY_SKILLS_INDEX_ROUTE, f as DEFAULT_AGENT_SKILLS_ROUTE_PREFIX, u as DEFAULT_AGENT_SKILLS_INDEX_ROUTE, v as DEFAULT_API_CATALOG_ROUTE, x as DEFAULT_LEGACY_SKILLS_ROUTE_PREFIX } from "./standards-discovery-BKlEnK_H.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/robots.ts
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { en as buildDocsSearchDocuments, nn as createAlgoliaSearchAdapter, on as createTypesenseSearchAdapter } from "./agent-
|
|
1
|
+
import { en as buildDocsSearchDocuments, nn as createAlgoliaSearchAdapter, on as createTypesenseSearchAdapter } from "./agent-Dze2Cy5B.mjs";
|
|
2
2
|
import "./markdown-sections-7OoA7ylx.mjs";
|
|
3
3
|
import "./standards-discovery-BKlEnK_H.mjs";
|
|
4
|
-
import "./
|
|
4
|
+
import "./content-change-hydration-DpQ0KdAD.mjs";
|
|
5
5
|
import { t as resolveDocsI18n } from "./i18n-hHVWcflJ.mjs";
|
|
6
6
|
import { a as resolveDocsMetadataBaseUrl } from "./metadata-N252j5_a.mjs";
|
|
7
|
-
import "./sitemap-server-
|
|
8
|
-
import "./agent-
|
|
7
|
+
import "./sitemap-server-BefXEox6.mjs";
|
|
8
|
+
import "./agent-skills-server-D5qYU19g.mjs";
|
|
9
|
+
import "./agent-evals-Burrzyam.mjs";
|
|
9
10
|
import { createFilesystemDocsMcpSource } from "./mcp.mjs";
|
|
10
|
-
import "./code-blocks-
|
|
11
|
-
import "./agent-skills-server-B2EXn2QD.mjs";
|
|
11
|
+
import "./code-blocks-0wjOsqdJ.mjs";
|
|
12
12
|
import "./server.mjs";
|
|
13
13
|
import { _ as resolveDocsContentDir, c as loadProjectEnv, g as resolveDocsConfigPath, h as readTopLevelStringProperty, s as loadDocsConfigModuleResultWithProjectEnv } from "./config-Wcdj-D0a.mjs";
|
|
14
14
|
import { readFileSync } from "node:fs";
|