@farming-labs/docs 0.1.49 → 0.1.51
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-D6Fa41gs.mjs → agent-C3rj3o1l.mjs} +160 -10
- package/dist/{agent-CbAtuZAc.mjs → agent-Xh0UaY5I.mjs} +311 -2
- package/dist/cli/index.mjs +9 -7
- package/dist/{doctor-D0UYKEFN.mjs → doctor-BfBpzPir.mjs} +95 -7
- package/dist/index.d.mts +25 -3
- package/dist/index.mjs +3 -4
- package/dist/{init-CShiL8Ch.mjs → init-C1tsFxXo.mjs} +1 -1
- package/dist/{mcp-CYpMeMfi.mjs → mcp-C-TmMrdw.mjs} +2 -2
- package/dist/mcp.d.mts +1 -1
- package/dist/mcp.mjs +2 -2
- package/dist/{search-D7DS0MLc.mjs → search-C7mKYgqQ.mjs} +3 -3
- package/dist/{search-8oEskRtz.mjs → search-Cu_pxL8o.mjs} +77 -1
- package/dist/{search-BxJywXXB.d.mts → search-KMMtXPTi.d.mts} +1 -1
- package/dist/server.d.mts +2 -2
- package/dist/server.mjs +2 -2
- package/dist/{types-Boobvv2I.d.mts → types-Cl6WPIHa.d.mts} +9 -0
- package/dist/{upgrade-2xcgMsj6.mjs → upgrade-a185_G5A.mjs} +1 -1
- package/package.json +1 -1
- package/dist/reading-time-DCZXC6-3.mjs +0 -311
- /package/dist/{api-reference-y7cqtq4w.mjs → api-reference-GDAEzQn1.mjs} +0 -0
- /package/dist/{config-C7sUsMkm.mjs → config-Si-yUfM_.mjs} +0 -0
- /package/dist/{utils-DSMXVnEu.mjs → utils-CpTFbAiS.mjs} +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { c as DEFAULT_LLMS_TXT_ROUTE, f as DEFAULT_MCP_WELL_KNOWN_ROUTE, i as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, m as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, o as DEFAULT_LLMS_FULL_TXT_ROUTE, p as DEFAULT_SKILL_MD_ROUTE, r as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, t as DEFAULT_AGENT_FEEDBACK_ROUTE, u as DEFAULT_MCP_PUBLIC_ROUTE } from "./agent-
|
|
2
|
-
import "./api-reference-
|
|
1
|
+
import { c as DEFAULT_LLMS_TXT_ROUTE, f as DEFAULT_MCP_WELL_KNOWN_ROUTE, i as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, m as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, o as DEFAULT_LLMS_FULL_TXT_ROUTE, p as DEFAULT_SKILL_MD_ROUTE, r as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, t as DEFAULT_AGENT_FEEDBACK_ROUTE, u as DEFAULT_MCP_PUBLIC_ROUTE } from "./agent-Xh0UaY5I.mjs";
|
|
2
|
+
import "./api-reference-GDAEzQn1.mjs";
|
|
3
3
|
import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
|
|
4
4
|
import "./server.mjs";
|
|
5
|
-
import { a as loadProjectEnv, c as readNavTitle, d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, p as resolveDocsContentDir, r as extractTopLevelConfigObject, t as extractNestedObjectLiteral } from "./config-
|
|
6
|
-
import {
|
|
5
|
+
import { a as loadProjectEnv, c as readNavTitle, d as readTopLevelStringProperty, f as resolveDocsConfigPath, i as loadDocsConfigModule, o as readBooleanProperty, p as resolveDocsContentDir, r as extractTopLevelConfigObject, t as extractNestedObjectLiteral } from "./config-Si-yUfM_.mjs";
|
|
6
|
+
import { inspectAgentCompactionState, scanDocsPageTargets } from "./agent-C3rj3o1l.mjs";
|
|
7
|
+
import { t as detectFramework } from "./utils-CpTFbAiS.mjs";
|
|
7
8
|
import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
|
|
8
9
|
import path from "node:path";
|
|
9
10
|
import pc from "picocolors";
|
|
@@ -473,7 +474,82 @@ function buildCoverage(pages) {
|
|
|
473
474
|
pagesWithAgentFiles,
|
|
474
475
|
pagesWithAgentBlocks,
|
|
475
476
|
explicitPages,
|
|
476
|
-
explicitCoverage: totalPages === 0 ? 0 : Math.round(explicitPages / Math.max(totalPages, 1) * 100)
|
|
477
|
+
explicitCoverage: totalPages === 0 ? 0 : Math.round(explicitPages / Math.max(totalPages, 1) * 100),
|
|
478
|
+
compaction: {
|
|
479
|
+
freshGeneratedPages: 0,
|
|
480
|
+
staleGeneratedPages: 0,
|
|
481
|
+
modifiedGeneratedPages: 0,
|
|
482
|
+
unknownGeneratedPages: 0,
|
|
483
|
+
tokenBudgetMissingPages: 0,
|
|
484
|
+
otherMissingPages: 0
|
|
485
|
+
}
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
function buildCompactionCoverage(rootDir, contentDir, entry, pages, defaults) {
|
|
489
|
+
const targets = scanDocsPageTargets(rootDir, contentDir, entry);
|
|
490
|
+
const targetsBySlug = new Map(targets.map((target) => [target.slug, target]));
|
|
491
|
+
const coverage = {
|
|
492
|
+
freshGeneratedPages: 0,
|
|
493
|
+
staleGeneratedPages: 0,
|
|
494
|
+
modifiedGeneratedPages: 0,
|
|
495
|
+
unknownGeneratedPages: 0,
|
|
496
|
+
tokenBudgetMissingPages: 0,
|
|
497
|
+
otherMissingPages: 0
|
|
498
|
+
};
|
|
499
|
+
for (const page of pages) {
|
|
500
|
+
const target = targetsBySlug.get(page.slug);
|
|
501
|
+
if (!target) continue;
|
|
502
|
+
const state = inspectAgentCompactionState(page, target, defaults);
|
|
503
|
+
switch (state.status) {
|
|
504
|
+
case "fresh":
|
|
505
|
+
coverage.freshGeneratedPages += 1;
|
|
506
|
+
break;
|
|
507
|
+
case "stale":
|
|
508
|
+
coverage.staleGeneratedPages += 1;
|
|
509
|
+
break;
|
|
510
|
+
case "modified":
|
|
511
|
+
case "stale-modified":
|
|
512
|
+
coverage.modifiedGeneratedPages += 1;
|
|
513
|
+
break;
|
|
514
|
+
case "unknown":
|
|
515
|
+
coverage.unknownGeneratedPages += 1;
|
|
516
|
+
break;
|
|
517
|
+
case "missing":
|
|
518
|
+
if (state.tokenBudget !== void 0) coverage.tokenBudgetMissingPages += 1;
|
|
519
|
+
else coverage.otherMissingPages += 1;
|
|
520
|
+
break;
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
return coverage;
|
|
524
|
+
}
|
|
525
|
+
function compactionFreshnessScore(coverage, compactConfigured) {
|
|
526
|
+
if (coverage.staleGeneratedPages > 0 || coverage.modifiedGeneratedPages > 0 || coverage.tokenBudgetMissingPages > 0) {
|
|
527
|
+
const recommendations = [];
|
|
528
|
+
if (coverage.staleGeneratedPages > 0) recommendations.push("Run docs agent compact --stale to refresh stale generated agent.md files.");
|
|
529
|
+
if (coverage.modifiedGeneratedPages > 0) recommendations.push("Review modified generated agent.md files before overwriting them; --stale skips manual edits on purpose.");
|
|
530
|
+
if (coverage.tokenBudgetMissingPages > 0) recommendations.push("Run docs agent compact --stale --include-missing to create generated agent.md files for pages that opted into agent.tokenBudget.");
|
|
531
|
+
return {
|
|
532
|
+
status: "warn",
|
|
533
|
+
score: compactConfigured ? 2 : 0,
|
|
534
|
+
recommendation: recommendations.join(" ")
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
if (coverage.unknownGeneratedPages > 0) return {
|
|
538
|
+
status: "pass",
|
|
539
|
+
score: compactConfigured ? 4 : 3
|
|
540
|
+
};
|
|
541
|
+
if (coverage.freshGeneratedPages > 0) return {
|
|
542
|
+
status: "pass",
|
|
543
|
+
score: compactConfigured ? 5 : 4
|
|
544
|
+
};
|
|
545
|
+
if (compactConfigured) return {
|
|
546
|
+
status: "pass",
|
|
547
|
+
score: 5
|
|
548
|
+
};
|
|
549
|
+
return {
|
|
550
|
+
status: "warn",
|
|
551
|
+
score: 0,
|
|
552
|
+
recommendation: "Add agent.compact defaults if you want docs agent compact and stale detection to run without repeating model and key settings."
|
|
477
553
|
};
|
|
478
554
|
}
|
|
479
555
|
function buildMetadataCoverage(pages) {
|
|
@@ -573,7 +649,15 @@ async function inspectAgentReadiness(options = {}) {
|
|
|
573
649
|
pagesWithAgentFiles: 0,
|
|
574
650
|
pagesWithAgentBlocks: 0,
|
|
575
651
|
explicitPages: 0,
|
|
576
|
-
explicitCoverage: 0
|
|
652
|
+
explicitCoverage: 0,
|
|
653
|
+
compaction: {
|
|
654
|
+
freshGeneratedPages: 0,
|
|
655
|
+
staleGeneratedPages: 0,
|
|
656
|
+
modifiedGeneratedPages: 0,
|
|
657
|
+
unknownGeneratedPages: 0,
|
|
658
|
+
tokenBudgetMissingPages: 0,
|
|
659
|
+
otherMissingPages: 0
|
|
660
|
+
}
|
|
577
661
|
},
|
|
578
662
|
recommendations: checks.map((check) => check.recommendation).filter(Boolean)
|
|
579
663
|
};
|
|
@@ -601,8 +685,11 @@ async function inspectAgentReadiness(options = {}) {
|
|
|
601
685
|
});
|
|
602
686
|
const pages = await Promise.resolve(source.getPages());
|
|
603
687
|
const coverage = buildCoverage(pages);
|
|
688
|
+
const compactionCoverage = buildCompactionCoverage(rootDir, contentDir, entry, pages, config?.agent?.compact ?? {});
|
|
689
|
+
coverage.compaction = compactionCoverage;
|
|
604
690
|
const metadataCoverage = buildMetadataCoverage(pages);
|
|
605
691
|
const metadataResult = metadataScore(metadataCoverage.descriptionCoverage, metadataCoverage.relatedCoverage);
|
|
692
|
+
const compactionResult = compactionFreshnessScore(compactionCoverage, compactConfigured);
|
|
606
693
|
const routeSurface = detectRouteSurface(rootDir, framework, staticExport, files);
|
|
607
694
|
const mcpConfig = resolveDocsMcpConfig(config?.mcp ?? void 0, { defaultName: siteTitle });
|
|
608
695
|
const feedbackRoute = DEFAULT_AGENT_FEEDBACK_ROUTE;
|
|
@@ -622,7 +709,7 @@ async function inspectAgentReadiness(options = {}) {
|
|
|
622
709
|
checks.push(makeCheck("metadata", "Page metadata", metadataResult.status, metadataResult.score, 5, coverage.totalPages > 0 ? `${metadataCoverage.describedPages}/${coverage.totalPages} pages include descriptions and ${metadataCoverage.relatedPages}/${coverage.totalPages} pages include related links (${metadataCoverage.descriptionCoverage}% described, ${metadataCoverage.relatedCoverage}% related).` : "No docs pages were available to score page metadata.", metadataCoverage.descriptionCoverage >= 75 ? void 0 : "Add page descriptions and related links to more docs pages so agent markdown output carries better context and navigation hints."));
|
|
623
710
|
const coverageResult = coverageScore(coverage.explicitCoverage);
|
|
624
711
|
checks.push(makeCheck("coverage", "Explicit page optimization", coverageResult.status, coverageResult.score, 10, coverage.totalPages > 0 ? `${coverage.explicitPages}/${coverage.totalPages} pages define explicit machine-only context (${coverage.pagesWithAgentFiles} agent.md, ${coverage.pagesWithAgentBlocks} Agent blocks, ${coverage.explicitCoverage}% of pages).` : "No docs pages were available to score explicit page optimization.", coverage.explicitCoverage >= 50 ? void 0 : "Add agent.md files or <Agent> blocks to more pages, or run docs agent compact to create page-level machine docs."));
|
|
625
|
-
checks.push(
|
|
712
|
+
checks.push(makeCheck("compact", "Agent compaction freshness", compactionResult.status, compactionResult.score, 5, `${compactionCoverage.freshGeneratedPages} fresh, ${compactionCoverage.staleGeneratedPages} stale, ${compactionCoverage.modifiedGeneratedPages} modified, ${compactionCoverage.unknownGeneratedPages} unknown, ${compactionCoverage.tokenBudgetMissingPages} token-budget missing, and ${compactionCoverage.otherMissingPages} other missing page${compactionCoverage.otherMissingPages === 1 ? "" : "s"} across compactable docs pages.` + (compactConfigured ? " agent.compact defaults are configured." : " No agent.compact defaults were found in docs config."), compactionResult.recommendation));
|
|
626
713
|
const score = checks.reduce((total, check) => total + check.score, 0);
|
|
627
714
|
const maxScore = checks.reduce((total, check) => total + check.maxScore, 0);
|
|
628
715
|
return {
|
|
@@ -726,6 +813,7 @@ function printAgentDoctorReport(report) {
|
|
|
726
813
|
console.log(`${pc.bold("Score:")} ${pc.cyan(`${report.score}/${report.maxScore}`)} ${pc.dim(`(${report.grade})`)}`);
|
|
727
814
|
console.log(`${pc.bold("Framework:")} ${report.framework} ${pc.dim("•")} ${pc.bold("Entry:")} ${report.entry ?? "docs"} ${pc.dim("•")} ${pc.bold("Content:")} ${report.contentDir ?? "-"}`);
|
|
728
815
|
console.log(`${pc.bold("Explicit agent-friendly pages:")} ${report.coverage.explicitPages}/${report.coverage.totalPages} pages ${pc.dim(`(${report.coverage.explicitCoverage}%)`)}`);
|
|
816
|
+
console.log(`${pc.bold("Generated agent.md freshness:")} ${report.coverage.compaction.freshGeneratedPages} fresh ${pc.dim("•")} ${report.coverage.compaction.staleGeneratedPages} stale ${pc.dim("•")} ${report.coverage.compaction.modifiedGeneratedPages} modified ${pc.dim("•")} ${report.coverage.compaction.tokenBudgetMissingPages} token-budget missing`);
|
|
729
817
|
console.log();
|
|
730
818
|
for (const check of report.checks) {
|
|
731
819
|
console.log(`${formatStatus(check.status)} ${check.title} ${pc.dim(`(${check.score}/${check.maxScore})`)}`);
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $ as SidebarConfig, A as DocsSearchQuery, B as McpDocsSearchConfig, C as DocsSearchAdapter, D as DocsSearchConfig, E as DocsSearchChunkingConfig, F as FeedbackConfig, G as OrderingItem, H as OpenDocsConfig, I as FontStyle, J as PageOpenGraph, K as PageActionsConfig, L as GithubConfig, M as DocsSearchResultType, N as DocsSearchSourcePage, O as DocsSearchDocument, P as DocsTheme, Q as SidebarComponentProps, R as LastUpdatedConfig, S as DocsRelatedItem, T as DocsSearchAdapterFactory, U as OpenDocsProvider, V as OGConfig, W as OpenGraphImage, X as ReadingTimeConfig, Y as PageTwitter, Z as ResolvedDocsRelatedLink, _ as DocsI18nConfig, a as ApiReferenceRenderer, at as ThemeToggleConfig, b as DocsMetadata, c as ChangelogFrontmatter, ct as UIConfig, d as CustomDocsSearchConfig, et as SidebarFolderNode, f as DocsAgentFeedbackContext, g as DocsFeedbackValue, h as DocsFeedbackData, i as ApiReferenceConfig, it as SimpleDocsSearchConfig, j as DocsSearchResult, k as DocsSearchEmbeddingsConfig, l as CodeBlockCopyData, m as DocsConfig, n as AgentFeedbackConfig, nt as SidebarPageNode, o as BreadcrumbConfig, ot as TypesenseDocsSearchConfig, p as DocsAgentFeedbackData, q as PageFrontmatter, r as AlgoliaDocsSearchConfig, rt as SidebarTree, s as ChangelogConfig, st as TypographyConfig, t as AIConfig, tt as SidebarNode, u as CopyMarkdownConfig, v as DocsMcpConfig, w as DocsSearchAdapterContext, x as DocsNav, y as DocsMcpToolsConfig, z as LlmsTxtConfig } from "./types-
|
|
1
|
+
import { $ as SidebarConfig, A as DocsSearchQuery, B as McpDocsSearchConfig, C as DocsSearchAdapter, D as DocsSearchConfig, E as DocsSearchChunkingConfig, F as FeedbackConfig, G as OrderingItem, H as OpenDocsConfig, I as FontStyle, J as PageOpenGraph, K as PageActionsConfig, L as GithubConfig, M as DocsSearchResultType, N as DocsSearchSourcePage, O as DocsSearchDocument, P as DocsTheme, Q as SidebarComponentProps, R as LastUpdatedConfig, S as DocsRelatedItem, T as DocsSearchAdapterFactory, U as OpenDocsProvider, V as OGConfig, W as OpenGraphImage, X as ReadingTimeConfig, Y as PageTwitter, Z as ResolvedDocsRelatedLink, _ as DocsI18nConfig, a as ApiReferenceRenderer, at as ThemeToggleConfig, b as DocsMetadata, c as ChangelogFrontmatter, ct as UIConfig, d as CustomDocsSearchConfig, et as SidebarFolderNode, f as DocsAgentFeedbackContext, g as DocsFeedbackValue, h as DocsFeedbackData, i as ApiReferenceConfig, it as SimpleDocsSearchConfig, j as DocsSearchResult, k as DocsSearchEmbeddingsConfig, l as CodeBlockCopyData, m as DocsConfig, n as AgentFeedbackConfig, nt as SidebarPageNode, o as BreadcrumbConfig, ot as TypesenseDocsSearchConfig, p as DocsAgentFeedbackData, q as PageFrontmatter, r as AlgoliaDocsSearchConfig, rt as SidebarTree, s as ChangelogConfig, st as TypographyConfig, t as AIConfig, tt as SidebarNode, u as CopyMarkdownConfig, v as DocsMcpConfig, w as DocsSearchAdapterContext, x as DocsNav, y as DocsMcpToolsConfig, z as LlmsTxtConfig } from "./types-Cl6WPIHa.mjs";
|
|
2
2
|
import { DocsMcpPage, DocsMcpResolvedConfig } from "./mcp.mjs";
|
|
3
|
-
import { a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, i as createMcpSearchAdapter, n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, r as createCustomSearchAdapter, s as performDocsSearch, t as buildDocsSearchDocuments } from "./search-
|
|
3
|
+
import { a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, i as createMcpSearchAdapter, n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, r as createCustomSearchAdapter, s as performDocsSearch, t as buildDocsSearchDocuments } from "./search-KMMtXPTi.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/define-docs.d.ts
|
|
6
6
|
/**
|
|
@@ -134,6 +134,28 @@ declare function resolveReadingTimeFromSource(source: string, wordsPerMinute?: n
|
|
|
134
134
|
declare function normalizeDocsRelated(value: unknown): ResolvedDocsRelatedLink[];
|
|
135
135
|
declare function renderDocsRelatedMarkdownLines(related: ResolvedDocsRelatedLink[] | undefined): string[];
|
|
136
136
|
//#endregion
|
|
137
|
+
//#region src/agent-provenance.d.ts
|
|
138
|
+
declare const GENERATED_AGENT_PROVENANCE_MARKER = "@farming-labs/docs:generated";
|
|
139
|
+
declare const GENERATED_AGENT_PROVENANCE_VERSION = 1;
|
|
140
|
+
type GeneratedAgentSourceKind = "resolved-page" | "agent-md";
|
|
141
|
+
interface GeneratedAgentProvenance {
|
|
142
|
+
version: number;
|
|
143
|
+
sourceKind: GeneratedAgentSourceKind;
|
|
144
|
+
sourceHash: string;
|
|
145
|
+
settingsHash: string;
|
|
146
|
+
outputHash: string;
|
|
147
|
+
generatedAt: string;
|
|
148
|
+
}
|
|
149
|
+
interface ParsedGeneratedAgentDocument {
|
|
150
|
+
provenance?: GeneratedAgentProvenance;
|
|
151
|
+
content: string;
|
|
152
|
+
}
|
|
153
|
+
declare function normalizeGeneratedAgentContent(value: string): string;
|
|
154
|
+
declare function hashGeneratedAgentContent(value: string): string;
|
|
155
|
+
declare function parseGeneratedAgentDocument(raw: string): ParsedGeneratedAgentDocument;
|
|
156
|
+
declare function stripGeneratedAgentProvenance(raw: string): string;
|
|
157
|
+
declare function serializeGeneratedAgentDocument(content: string, provenance: GeneratedAgentProvenance): string;
|
|
158
|
+
//#endregion
|
|
137
159
|
//#region src/agent.d.ts
|
|
138
160
|
declare const DEFAULT_DOCS_API_ROUTE = "/api/docs";
|
|
139
161
|
declare const DEFAULT_AGENT_SPEC_ROUTE = "/api/docs/agent/spec";
|
|
@@ -338,4 +360,4 @@ declare function buildDocsAgentDiscoverySpec({
|
|
|
338
360
|
};
|
|
339
361
|
};
|
|
340
362
|
//#endregion
|
|
341
|
-
export { type AIConfig, type AgentFeedbackConfig, type AlgoliaDocsSearchConfig, type ApiReferenceConfig, type ApiReferenceRenderer, type BreadcrumbConfig, type ChangelogConfig, type ChangelogEntrySummary, type ChangelogFrontmatter, type CodeBlockCopyData, type CopyMarkdownConfig, type CustomDocsSearchConfig, DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_SPEC_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, DEFAULT_DOCS_API_ROUTE, DEFAULT_LLMS_FULL_TXT_ROUTE, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, DEFAULT_LLMS_TXT_ROUTE, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, DEFAULT_MCP_PUBLIC_ROUTE, DEFAULT_MCP_ROUTE, DEFAULT_MCP_WELL_KNOWN_ROUTE, DEFAULT_SKILL_MD_ROUTE, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, type DocsAgentDiscoverySpecOptions, type DocsAgentFeedbackContext, type DocsAgentFeedbackData, type DocsAgentFeedbackDiscoveryConfig, type DocsConfig, type DocsFeedbackData, type DocsFeedbackValue, type DocsI18nConfig, type DocsLlmsDiscoveryConfig, type DocsMarkdownPage, type DocsMcpConfig, type DocsMcpToolsConfig, type DocsMetadata, type DocsNav, type DocsPathMatch, type DocsRelatedItem, type DocsSearchAdapter, type DocsSearchAdapterContext, type DocsSearchAdapterFactory, type DocsSearchChunkingConfig, type DocsSearchConfig, type DocsSearchDocument, type DocsSearchEmbeddingsConfig, type DocsSearchQuery, type DocsSearchResult, type DocsSearchResultType, type DocsSearchSourcePage, type DocsSkillDocumentOptions, type DocsTheme, type FeedbackConfig, type FontStyle, type GithubConfig, type LastUpdatedConfig, type LlmsTxtConfig, type McpDocsSearchConfig, type OGConfig, type OpenDocsConfig, type OpenDocsProvider, type OpenGraphImage, type OrderingItem, type PageActionsConfig, type PageFrontmatter, type PageOpenGraph, type PageTwitter, type ReadingTimeConfig, type ResolvedChangelogConfig, type ResolvedDocsI18n, type ResolvedDocsRelatedLink, type SidebarComponentProps, type SidebarConfig, type SidebarFolderNode, type SidebarNode, type SidebarPageNode, type SidebarTree, type SimpleDocsSearchConfig, type ThemeToggleConfig, type TypesenseDocsSearchConfig, type TypographyConfig, type UIConfig, buildDocsAgentDiscoverySpec, buildDocsSearchDocuments, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, performDocsSearch, renderDocsMarkdownDocument, renderDocsRelatedMarkdownLines, renderDocsSkillDocument, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsPath, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveTitle };
|
|
363
|
+
export { type AIConfig, type AgentFeedbackConfig, type AlgoliaDocsSearchConfig, type ApiReferenceConfig, type ApiReferenceRenderer, type BreadcrumbConfig, type ChangelogConfig, type ChangelogEntrySummary, type ChangelogFrontmatter, type CodeBlockCopyData, type CopyMarkdownConfig, type CustomDocsSearchConfig, DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_SPEC_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, DEFAULT_DOCS_API_ROUTE, DEFAULT_LLMS_FULL_TXT_ROUTE, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, DEFAULT_LLMS_TXT_ROUTE, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, DEFAULT_MCP_PUBLIC_ROUTE, DEFAULT_MCP_ROUTE, DEFAULT_MCP_WELL_KNOWN_ROUTE, DEFAULT_SKILL_MD_ROUTE, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, type DocsAgentDiscoverySpecOptions, type DocsAgentFeedbackContext, type DocsAgentFeedbackData, type DocsAgentFeedbackDiscoveryConfig, type DocsConfig, type DocsFeedbackData, type DocsFeedbackValue, type DocsI18nConfig, type DocsLlmsDiscoveryConfig, type DocsMarkdownPage, type DocsMcpConfig, type DocsMcpToolsConfig, type DocsMetadata, type DocsNav, type DocsPathMatch, type DocsRelatedItem, type DocsSearchAdapter, type DocsSearchAdapterContext, type DocsSearchAdapterFactory, type DocsSearchChunkingConfig, type DocsSearchConfig, type DocsSearchDocument, type DocsSearchEmbeddingsConfig, type DocsSearchQuery, type DocsSearchResult, type DocsSearchResultType, type DocsSearchSourcePage, type DocsSkillDocumentOptions, type DocsTheme, type FeedbackConfig, type FontStyle, GENERATED_AGENT_PROVENANCE_MARKER, GENERATED_AGENT_PROVENANCE_VERSION, type GeneratedAgentProvenance, type GeneratedAgentSourceKind, type GithubConfig, type LastUpdatedConfig, type LlmsTxtConfig, type McpDocsSearchConfig, type OGConfig, type OpenDocsConfig, type OpenDocsProvider, type OpenGraphImage, type OrderingItem, type PageActionsConfig, type PageFrontmatter, type PageOpenGraph, type PageTwitter, type ReadingTimeConfig, type ResolvedChangelogConfig, type ResolvedDocsI18n, type ResolvedDocsRelatedLink, type SidebarComponentProps, type SidebarConfig, type SidebarFolderNode, type SidebarNode, type SidebarPageNode, type SidebarTree, type SimpleDocsSearchConfig, type ThemeToggleConfig, type TypesenseDocsSearchConfig, type TypographyConfig, type UIConfig, buildDocsAgentDiscoverySpec, buildDocsSearchDocuments, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, hashGeneratedAgentContent, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseGeneratedAgentDocument, performDocsSearch, renderDocsMarkdownDocument, renderDocsRelatedMarkdownLines, renderDocsSkillDocument, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsPath, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveTitle, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance };
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, i as createMcpSearchAdapter, l as
|
|
3
|
-
import { C as renderDocsMarkdownDocument, D as resolveDocsMarkdownRequest, E as resolveDocsLlmsTxtFormat, O as resolveDocsSkillFormat, S as normalizeDocsUrlPath, T as resolveDocsAgentMdxContent, _ as isDocsAgentDiscoveryRequest, a as DEFAULT_DOCS_API_ROUTE, b as isDocsSkillRequest, c as DEFAULT_LLMS_TXT_ROUTE, d as DEFAULT_MCP_ROUTE, f as DEFAULT_MCP_WELL_KNOWN_ROUTE, g as findDocsMarkdownPage, h as buildDocsAgentDiscoverySpec, i as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, l as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, m as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, n as DEFAULT_AGENT_SPEC_ROUTE, o as DEFAULT_LLMS_FULL_TXT_ROUTE, p as DEFAULT_SKILL_MD_ROUTE, r as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, s as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, t as DEFAULT_AGENT_FEEDBACK_ROUTE, u as DEFAULT_MCP_PUBLIC_ROUTE, v as isDocsMcpRequest, w as renderDocsSkillDocument, x as normalizeDocsPathSegment, y as isDocsPublicGetRequest } from "./agent-CbAtuZAc.mjs";
|
|
1
|
+
import { A as resolvePageReadingTime, B as resolveDocsPath, C as renderDocsMarkdownDocument, D as resolveDocsMarkdownRequest, E as resolveDocsLlmsTxtFormat, F as buildPageTwitter, G as defineDocs, H as extendTheme, I as resolveOGImage, L as resolveTitle, M as resolveReadingTimeFromSource, N as resolveReadingTimeOptions, O as resolveDocsSkillFormat, P as buildPageOpenGraph, R as resolveDocsI18n, S as normalizeDocsUrlPath, T as resolveDocsAgentMdxContent, U as deepMerge, V as createTheme, W as resolveChangelogConfig, _ as isDocsAgentDiscoveryRequest, a as DEFAULT_DOCS_API_ROUTE, b as isDocsSkillRequest, c as DEFAULT_LLMS_TXT_ROUTE, d as DEFAULT_MCP_ROUTE, f as DEFAULT_MCP_WELL_KNOWN_ROUTE, g as findDocsMarkdownPage, h as buildDocsAgentDiscoverySpec, i as DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, j as resolveReadingTimeFromContent, k as estimateReadingTimeMinutes, l as DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, m as DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, n as DEFAULT_AGENT_SPEC_ROUTE, o as DEFAULT_LLMS_FULL_TXT_ROUTE, p as DEFAULT_SKILL_MD_ROUTE, r as DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, s as DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, t as DEFAULT_AGENT_FEEDBACK_ROUTE, u as DEFAULT_MCP_PUBLIC_ROUTE, v as isDocsMcpRequest, w as renderDocsSkillDocument, x as normalizeDocsPathSegment, y as isDocsPublicGetRequest, z as resolveDocsLocale } from "./agent-Xh0UaY5I.mjs";
|
|
2
|
+
import { _ as renderDocsRelatedMarkdownLines, a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, d as hashGeneratedAgentContent, f as normalizeGeneratedAgentContent, g as normalizeDocsRelated, h as stripGeneratedAgentProvenance, i as createMcpSearchAdapter, l as GENERATED_AGENT_PROVENANCE_MARKER, m as serializeGeneratedAgentDocument, n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, p as parseGeneratedAgentDocument, r as createCustomSearchAdapter, s as performDocsSearch, t as buildDocsSearchDocuments, u as GENERATED_AGENT_PROVENANCE_VERSION } from "./search-Cu_pxL8o.mjs";
|
|
4
3
|
|
|
5
|
-
export { DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_SPEC_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, DEFAULT_DOCS_API_ROUTE, DEFAULT_LLMS_FULL_TXT_ROUTE, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, DEFAULT_LLMS_TXT_ROUTE, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, DEFAULT_MCP_PUBLIC_ROUTE, DEFAULT_MCP_ROUTE, DEFAULT_MCP_WELL_KNOWN_ROUTE, DEFAULT_SKILL_MD_ROUTE, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, buildDocsAgentDiscoverySpec, buildDocsSearchDocuments, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, performDocsSearch, renderDocsMarkdownDocument, renderDocsRelatedMarkdownLines, renderDocsSkillDocument, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsPath, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveTitle };
|
|
4
|
+
export { DEFAULT_AGENT_FEEDBACK_ROUTE, DEFAULT_AGENT_SPEC_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE, DEFAULT_DOCS_API_ROUTE, DEFAULT_LLMS_FULL_TXT_ROUTE, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE, DEFAULT_LLMS_TXT_ROUTE, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE, DEFAULT_MCP_PUBLIC_ROUTE, DEFAULT_MCP_ROUTE, DEFAULT_MCP_WELL_KNOWN_ROUTE, DEFAULT_SKILL_MD_ROUTE, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE, GENERATED_AGENT_PROVENANCE_MARKER, GENERATED_AGENT_PROVENANCE_VERSION, buildDocsAgentDiscoverySpec, buildDocsSearchDocuments, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, hashGeneratedAgentContent, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseGeneratedAgentDocument, performDocsSearch, renderDocsMarkdownDocument, renderDocsRelatedMarkdownLines, renderDocsSkillDocument, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsPath, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveTitle, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as devInstallCommand, c as installCommand, d as writeFileSafe, i as detectPackageManagerFromLockfile, l as readFileSafe, n as detectGlobalCssFiles, o as exec, r as detectNextAppDir, s as fileExists, t as detectFramework, u as spawnAndWaitFor } from "./utils-
|
|
1
|
+
import { a as devInstallCommand, c as installCommand, d as writeFileSafe, i as detectPackageManagerFromLockfile, l as readFileSafe, n as detectGlobalCssFiles, o as exec, r as detectNextAppDir, s as fileExists, t as detectFramework, u as spawnAndWaitFor } from "./utils-CpTFbAiS.mjs";
|
|
2
2
|
import fs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import pc from "picocolors";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "./api-reference-
|
|
1
|
+
import "./api-reference-GDAEzQn1.mjs";
|
|
2
2
|
import { createFilesystemDocsMcpSource, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
|
|
3
3
|
import "./server.mjs";
|
|
4
|
-
import { c as readNavTitle, f as resolveDocsConfigPath, n as extractObjectLiteral, o as readBooleanProperty, p as resolveDocsContentDir, u as readStringProperty } from "./config-
|
|
4
|
+
import { c as readNavTitle, f as resolveDocsConfigPath, n as extractObjectLiteral, o as readBooleanProperty, p as resolveDocsContentDir, u as readStringProperty } from "./config-Si-yUfM_.mjs";
|
|
5
5
|
import { readFileSync } from "node:fs";
|
|
6
6
|
|
|
7
7
|
//#region src/cli/mcp.ts
|
package/dist/mcp.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as DocsSearchConfig, G as OrderingItem, N as DocsSearchSourcePage, v as DocsMcpConfig } from "./types-
|
|
1
|
+
import { D as DocsSearchConfig, G as OrderingItem, N as DocsSearchSourcePage, v as DocsMcpConfig } from "./types-Cl6WPIHa.mjs";
|
|
2
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
3
|
|
|
4
4
|
//#region src/mcp.d.ts
|
package/dist/mcp.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as renderDocsRelatedMarkdownLines, g as normalizeDocsRelated, h as stripGeneratedAgentProvenance, s as performDocsSearch } from "./search-Cu_pxL8o.mjs";
|
|
2
2
|
import matter from "gray-matter";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
@@ -347,7 +347,7 @@ function scanFilesystemDocsPages(contentDirAbs, entry) {
|
|
|
347
347
|
function readFilesystemAgentDoc(dir) {
|
|
348
348
|
const agentPath = path.join(dir, "agent.md");
|
|
349
349
|
if (!fs.existsSync(agentPath)) return void 0;
|
|
350
|
-
const { content } = matter(fs.readFileSync(agentPath, "utf-8"));
|
|
350
|
+
const { content } = matter(stripGeneratedAgentProvenance(fs.readFileSync(agentPath, "utf-8")));
|
|
351
351
|
return {
|
|
352
352
|
agentContent: stripMarkdownForMcp(content),
|
|
353
353
|
agentRawContent: content
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, t as buildDocsSearchDocuments } from "./search-
|
|
2
|
-
import "./api-reference-
|
|
1
|
+
import { n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, t as buildDocsSearchDocuments } from "./search-Cu_pxL8o.mjs";
|
|
2
|
+
import "./api-reference-GDAEzQn1.mjs";
|
|
3
3
|
import { createFilesystemDocsMcpSource } from "./mcp.mjs";
|
|
4
4
|
import "./server.mjs";
|
|
5
|
-
import { a as loadProjectEnv, d as readTopLevelStringProperty, f as resolveDocsConfigPath, p as resolveDocsContentDir } from "./config-
|
|
5
|
+
import { a as loadProjectEnv, d as readTopLevelStringProperty, f as resolveDocsConfigPath, p as resolveDocsContentDir } from "./config-Si-yUfM_.mjs";
|
|
6
6
|
import { readFileSync } from "node:fs";
|
|
7
7
|
import pc from "picocolors";
|
|
8
8
|
|
|
@@ -46,6 +46,82 @@ function normalizeInlineText(value) {
|
|
|
46
46
|
return value.replace(/\s+/g, " ").trim();
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/agent-provenance.ts
|
|
51
|
+
const GENERATED_AGENT_PROVENANCE_MARKER = "@farming-labs/docs:generated";
|
|
52
|
+
const GENERATED_AGENT_PROVENANCE_VERSION = 1;
|
|
53
|
+
function normalizeLineEndings(value) {
|
|
54
|
+
return value.replace(/\r\n?/g, "\n").replace(/^\uFEFF/, "");
|
|
55
|
+
}
|
|
56
|
+
function normalizeGeneratedAgentContent(value) {
|
|
57
|
+
return normalizeLineEndings(value).trimEnd();
|
|
58
|
+
}
|
|
59
|
+
function hashGeneratedAgentContent(value) {
|
|
60
|
+
const normalized = normalizeGeneratedAgentContent(value);
|
|
61
|
+
const bytes = new TextEncoder().encode(normalized);
|
|
62
|
+
let hash = 14695981039346656037n;
|
|
63
|
+
for (const byte of bytes) {
|
|
64
|
+
hash ^= BigInt(byte);
|
|
65
|
+
hash = BigInt.asUintN(64, hash * 1099511628211n);
|
|
66
|
+
}
|
|
67
|
+
return `fnv1a64:${hash.toString(16).padStart(16, "0")}`;
|
|
68
|
+
}
|
|
69
|
+
function parseProvenanceBlock(rawBlock) {
|
|
70
|
+
const entries = /* @__PURE__ */ new Map();
|
|
71
|
+
for (const line of rawBlock.split("\n")) {
|
|
72
|
+
const trimmed = line.trim();
|
|
73
|
+
if (!trimmed) continue;
|
|
74
|
+
const separatorIndex = trimmed.indexOf("=");
|
|
75
|
+
if (separatorIndex <= 0) continue;
|
|
76
|
+
const key = trimmed.slice(0, separatorIndex).trim();
|
|
77
|
+
const value = trimmed.slice(separatorIndex + 1).trim();
|
|
78
|
+
if (!key || !value) continue;
|
|
79
|
+
entries.set(key, value);
|
|
80
|
+
}
|
|
81
|
+
const version = Number.parseInt(entries.get("version") ?? "", 10);
|
|
82
|
+
const sourceKind = entries.get("sourceKind");
|
|
83
|
+
const sourceHash = entries.get("sourceHash");
|
|
84
|
+
const settingsHash = entries.get("settingsHash");
|
|
85
|
+
const outputHash = entries.get("outputHash");
|
|
86
|
+
const generatedAt = entries.get("generatedAt");
|
|
87
|
+
if (!Number.isFinite(version) || sourceKind !== "resolved-page" && sourceKind !== "agent-md" || !sourceHash || !settingsHash || !outputHash || !generatedAt) return;
|
|
88
|
+
return {
|
|
89
|
+
version,
|
|
90
|
+
sourceKind,
|
|
91
|
+
sourceHash,
|
|
92
|
+
settingsHash,
|
|
93
|
+
outputHash,
|
|
94
|
+
generatedAt
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function parseGeneratedAgentDocument(raw) {
|
|
98
|
+
const normalized = normalizeLineEndings(raw);
|
|
99
|
+
const headerPattern = new RegExp(`^<!-- ${GENERATED_AGENT_PROVENANCE_MARKER}\\n([\\s\\S]*?)\\n-->\\n?`);
|
|
100
|
+
const match = normalized.match(headerPattern);
|
|
101
|
+
if (!match) return { content: normalized };
|
|
102
|
+
return {
|
|
103
|
+
provenance: parseProvenanceBlock(match[1]),
|
|
104
|
+
content: normalized.slice(match[0].length)
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function stripGeneratedAgentProvenance(raw) {
|
|
108
|
+
return parseGeneratedAgentDocument(raw).content;
|
|
109
|
+
}
|
|
110
|
+
function serializeGeneratedAgentDocument(content, provenance) {
|
|
111
|
+
const normalizedContent = normalizeGeneratedAgentContent(content);
|
|
112
|
+
return `${[
|
|
113
|
+
`<!-- ${GENERATED_AGENT_PROVENANCE_MARKER}`,
|
|
114
|
+
`version=${provenance.version}`,
|
|
115
|
+
`sourceKind=${provenance.sourceKind}`,
|
|
116
|
+
`sourceHash=${provenance.sourceHash}`,
|
|
117
|
+
`settingsHash=${provenance.settingsHash}`,
|
|
118
|
+
`outputHash=${provenance.outputHash}`,
|
|
119
|
+
`generatedAt=${provenance.generatedAt}`,
|
|
120
|
+
"-->",
|
|
121
|
+
normalizedContent
|
|
122
|
+
].join("\n")}\n`;
|
|
123
|
+
}
|
|
124
|
+
|
|
49
125
|
//#endregion
|
|
50
126
|
//#region src/search.ts
|
|
51
127
|
const DEFAULT_SEARCH_LIMIT = 10;
|
|
@@ -717,4 +793,4 @@ function createCustomSearchAdapter(adapter) {
|
|
|
717
793
|
}
|
|
718
794
|
|
|
719
795
|
//#endregion
|
|
720
|
-
export { createSimpleSearchAdapter as a, resolveSearchRequestConfig as c, createMcpSearchAdapter as i,
|
|
796
|
+
export { renderDocsRelatedMarkdownLines as _, createSimpleSearchAdapter as a, resolveSearchRequestConfig as c, hashGeneratedAgentContent as d, normalizeGeneratedAgentContent as f, normalizeDocsRelated as g, stripGeneratedAgentProvenance as h, createMcpSearchAdapter as i, GENERATED_AGENT_PROVENANCE_MARKER as l, serializeGeneratedAgentDocument as m, createAlgoliaSearchAdapter as n, createTypesenseSearchAdapter as o, parseGeneratedAgentDocument as p, createCustomSearchAdapter as r, performDocsSearch as s, buildDocsSearchDocuments as t, GENERATED_AGENT_PROVENANCE_VERSION as u };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as McpDocsSearchConfig, C as DocsSearchAdapter, D as DocsSearchConfig, E as DocsSearchChunkingConfig, N as DocsSearchSourcePage, O as DocsSearchDocument, T as DocsSearchAdapterFactory, d as CustomDocsSearchConfig, j as DocsSearchResult, ot as TypesenseDocsSearchConfig, r as AlgoliaDocsSearchConfig } from "./types-
|
|
1
|
+
import { B as McpDocsSearchConfig, C as DocsSearchAdapter, D as DocsSearchConfig, E as DocsSearchChunkingConfig, N as DocsSearchSourcePage, O as DocsSearchDocument, T as DocsSearchAdapterFactory, d as CustomDocsSearchConfig, j as DocsSearchResult, ot as TypesenseDocsSearchConfig, r as AlgoliaDocsSearchConfig } from "./types-Cl6WPIHa.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/search.d.ts
|
|
4
4
|
declare function buildDocsSearchDocuments(pages: DocsSearchSourcePage[], chunking?: DocsSearchChunkingConfig): DocsSearchDocument[];
|
package/dist/server.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as DocsSearchQuery, B as McpDocsSearchConfig, C as DocsSearchAdapter, D as DocsSearchConfig, N as DocsSearchSourcePage, O as DocsSearchDocument, T as DocsSearchAdapterFactory, a as ApiReferenceRenderer, j as DocsSearchResult, m as DocsConfig, w as DocsSearchAdapterContext } from "./types-
|
|
1
|
+
import { A as DocsSearchQuery, B as McpDocsSearchConfig, C as DocsSearchAdapter, D as DocsSearchConfig, N as DocsSearchSourcePage, O as DocsSearchDocument, T as DocsSearchAdapterFactory, a as ApiReferenceRenderer, j as DocsSearchResult, m as DocsConfig, w as DocsSearchAdapterContext } from "./types-Cl6WPIHa.mjs";
|
|
2
2
|
import { DocsMcpHttpHandlers, DocsMcpNavigationNode, DocsMcpNavigationTree, DocsMcpPage, DocsMcpResolvedConfig, DocsMcpSource, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
|
|
3
|
-
import { a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, i as createMcpSearchAdapter, n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, r as createCustomSearchAdapter, s as performDocsSearch, t as buildDocsSearchDocuments } from "./search-
|
|
3
|
+
import { a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, i as createMcpSearchAdapter, n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, r as createCustomSearchAdapter, s as performDocsSearch, t as buildDocsSearchDocuments } from "./search-KMMtXPTi.mjs";
|
|
4
4
|
|
|
5
5
|
//#region src/api-reference.d.ts
|
|
6
6
|
type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD";
|
package/dist/server.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, i as createMcpSearchAdapter, n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, r as createCustomSearchAdapter, s as performDocsSearch, t as buildDocsSearchDocuments } from "./search-
|
|
2
|
-
import { a as buildApiReferencePageTitle, c as resolveApiReferenceRenderer, i as buildApiReferenceOpenApiDocumentAsync, n as buildApiReferenceHtmlDocumentAsync, o as buildApiReferenceScalarCss, r as buildApiReferenceOpenApiDocument, s as resolveApiReferenceConfig, t as buildApiReferenceHtmlDocument } from "./api-reference-
|
|
1
|
+
import { a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, i as createMcpSearchAdapter, n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, r as createCustomSearchAdapter, s as performDocsSearch, t as buildDocsSearchDocuments } from "./search-Cu_pxL8o.mjs";
|
|
2
|
+
import { a as buildApiReferencePageTitle, c as resolveApiReferenceRenderer, i as buildApiReferenceOpenApiDocumentAsync, n as buildApiReferenceHtmlDocumentAsync, o as buildApiReferenceScalarCss, r as buildApiReferenceOpenApiDocument, s as resolveApiReferenceConfig, t as buildApiReferenceHtmlDocument } from "./api-reference-GDAEzQn1.mjs";
|
|
3
3
|
import { createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
|
|
4
4
|
|
|
5
5
|
export { buildApiReferenceHtmlDocument, buildApiReferenceHtmlDocumentAsync, buildApiReferenceOpenApiDocument, buildApiReferenceOpenApiDocumentAsync, buildApiReferencePageTitle, buildApiReferenceScalarCss, buildDocsSearchDocuments, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, createMcpSearchAdapter, createSimpleSearchAdapter, createTypesenseSearchAdapter, normalizeDocsMcpRoute, performDocsSearch, resolveApiReferenceConfig, resolveApiReferenceRenderer, resolveDocsMcpConfig, resolveSearchRequestConfig, runDocsMcpStdio };
|
|
@@ -246,11 +246,20 @@ type DocsRelatedItem = string;
|
|
|
246
246
|
interface ResolvedDocsRelatedLink {
|
|
247
247
|
href: string;
|
|
248
248
|
}
|
|
249
|
+
interface PageAgentFrontmatter {
|
|
250
|
+
/**
|
|
251
|
+
* Approximate output token target for machine-readable compaction on this page.
|
|
252
|
+
* Used by `docs agent compact` as a per-page override.
|
|
253
|
+
*/
|
|
254
|
+
tokenBudget?: number;
|
|
255
|
+
}
|
|
249
256
|
interface PageFrontmatter {
|
|
250
257
|
title: string;
|
|
251
258
|
description?: string;
|
|
252
259
|
/** Related doc URLs rendered into machine-readable markdown routes and MCP page output. */
|
|
253
260
|
related?: DocsRelatedItem[];
|
|
261
|
+
/** Per-page agent-oriented metadata used by machine-readable docs features. */
|
|
262
|
+
agent?: PageAgentFrontmatter;
|
|
254
263
|
/** Override or disable the estimated reading time for this page. */
|
|
255
264
|
readingTime?: boolean | number;
|
|
256
265
|
tags?: string[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as installCommand, i as detectPackageManagerFromLockfile, o as exec, s as fileExists, t as detectFramework } from "./utils-
|
|
1
|
+
import { c as installCommand, i as detectPackageManagerFromLockfile, o as exec, s as fileExists, t as detectFramework } from "./utils-CpTFbAiS.mjs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import pc from "picocolors";
|
|
4
4
|
import * as p from "@clack/prompts";
|