@farming-labs/docs 0.1.70 → 0.1.71
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-Pbf5iqr6.mjs → agent-BJxu7fth.mjs} +2 -2
- package/dist/{agent-BMOtZLMC.mjs → agent-BZ5t0H9t.mjs} +2 -74
- package/dist/cli/index.mjs +5 -5
- package/dist/{doctor-CndGrKwy.mjs → doctor-SBL9yJAm.mjs} +3 -3
- package/dist/index.mjs +2 -2
- package/dist/{mcp-vNQt0NUC.mjs → mcp-BCwCpF9Q.mjs} +1 -1
- package/dist/mcp.mjs +37 -3
- package/dist/{search-DcXwu_8y.mjs → search-CiQhHxl4.mjs} +1 -1
- package/dist/{search-BhXicuww.mjs → search-DQTtxgAV.mjs} +73 -1
- package/dist/server.mjs +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as renderDocsMarkdownDocument, g as findDocsMarkdownPage } from "./agent-
|
|
2
|
-
import { d as hashGeneratedAgentContent, m as serializeGeneratedAgentDocument, p as parseGeneratedAgentDocument, u as GENERATED_AGENT_PROVENANCE_VERSION } from "./search-
|
|
1
|
+
import { C as renderDocsMarkdownDocument, g as findDocsMarkdownPage } from "./agent-BZ5t0H9t.mjs";
|
|
2
|
+
import { d as hashGeneratedAgentContent, m as serializeGeneratedAgentDocument, p as parseGeneratedAgentDocument, u as GENERATED_AGENT_PROVENANCE_VERSION } from "./search-DQTtxgAV.mjs";
|
|
3
3
|
import "./index.mjs";
|
|
4
4
|
import "./prompt-utils-8nmFLQVH.mjs";
|
|
5
5
|
import { createFilesystemDocsMcpSource } from "./mcp.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { x as renderDocsRelatedMarkdownLines } from "./search-DQTtxgAV.mjs";
|
|
2
2
|
import matter from "gray-matter";
|
|
3
3
|
|
|
4
4
|
//#region src/define-docs.ts
|
|
@@ -309,78 +309,6 @@ function resolveReadingTimeFromSource(source, wordsPerMinute) {
|
|
|
309
309
|
return resolveReadingTimeFromContent(data, content, wordsPerMinute);
|
|
310
310
|
}
|
|
311
311
|
|
|
312
|
-
//#endregion
|
|
313
|
-
//#region src/sidebar.ts
|
|
314
|
-
function resolvePageSidebarFolderIndexBehavior(sidebar) {
|
|
315
|
-
if (!sidebar || typeof sidebar !== "object") return void 0;
|
|
316
|
-
const value = sidebar.folderIndexBehavior;
|
|
317
|
-
return value === "link" || value === "toggle" || value === "hidden" ? value : void 0;
|
|
318
|
-
}
|
|
319
|
-
function normalizeSidebarFolderBehaviorPath(path) {
|
|
320
|
-
if (!path) return void 0;
|
|
321
|
-
let value = path.trim();
|
|
322
|
-
if (!value) return void 0;
|
|
323
|
-
if (/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(value)) try {
|
|
324
|
-
value = new URL(value).pathname;
|
|
325
|
-
} catch {
|
|
326
|
-
return;
|
|
327
|
-
}
|
|
328
|
-
else value = value.split("#", 1)[0]?.split("?", 1)[0] ?? value;
|
|
329
|
-
if (!value.startsWith("/")) value = `/${value}`;
|
|
330
|
-
return value.replace(/\/$/, "") || "/";
|
|
331
|
-
}
|
|
332
|
-
function resolveSidebarFolderIndexBehavior(sidebar, defaultBehavior = "link") {
|
|
333
|
-
if (sidebar === void 0 || sidebar === true || sidebar === false) return defaultBehavior;
|
|
334
|
-
if (sidebar.folderIndexBehavior === "toggle") return "toggle";
|
|
335
|
-
if (sidebar.folderIndexBehavior === "hidden") return "hidden";
|
|
336
|
-
if (sidebar.folderIndexBehavior === "link") return "link";
|
|
337
|
-
return defaultBehavior;
|
|
338
|
-
}
|
|
339
|
-
function resolveSidebarFolderIndexBehaviorForPath(sidebar, folderPath, defaultBehavior = "link") {
|
|
340
|
-
const fallback = resolveSidebarFolderIndexBehavior(sidebar, defaultBehavior);
|
|
341
|
-
if (!sidebar || typeof sidebar !== "object") return fallback;
|
|
342
|
-
const normalizedPath = normalizeSidebarFolderBehaviorPath(folderPath);
|
|
343
|
-
if (!normalizedPath) return fallback;
|
|
344
|
-
for (const [rawPath, override] of Object.entries(sidebar.folderIndexBehaviorOverrides ?? {})) if (normalizeSidebarFolderBehaviorPath(rawPath) === normalizedPath) return override === "link" || override === "toggle" || override === "hidden" ? override : fallback;
|
|
345
|
-
return fallback;
|
|
346
|
-
}
|
|
347
|
-
function applySidebarFolderIndexBehavior(tree, behaviorOrOptions) {
|
|
348
|
-
const resolveBehavior = typeof behaviorOrOptions === "string" ? () => behaviorOrOptions : (folderPath) => resolveSidebarFolderIndexBehaviorForPath(behaviorOrOptions.sidebar, folderPath, behaviorOrOptions.defaultBehavior);
|
|
349
|
-
function mapNode(node) {
|
|
350
|
-
if (!node || typeof node !== "object") return node;
|
|
351
|
-
const candidate = node;
|
|
352
|
-
if (candidate.type !== "folder" || !Array.isArray(candidate.children)) return node;
|
|
353
|
-
const children = candidate.children.map(mapNode);
|
|
354
|
-
const index = candidate.index ? mapNode(candidate.index) : void 0;
|
|
355
|
-
const folderPath = (typeof candidate.url === "string" ? candidate.url : void 0) || (candidate.index && typeof candidate.index === "object" && "url" in candidate.index && typeof candidate.index.url === "string" ? candidate.index.url ?? void 0 : void 0);
|
|
356
|
-
const behavior = (candidate.folderIndexBehavior === "link" || candidate.folderIndexBehavior === "toggle" || candidate.folderIndexBehavior === "hidden" ? candidate.folderIndexBehavior : void 0) ?? resolveBehavior(folderPath);
|
|
357
|
-
if (behavior === "link") return {
|
|
358
|
-
...candidate,
|
|
359
|
-
folderIndexBehavior: void 0,
|
|
360
|
-
index,
|
|
361
|
-
children
|
|
362
|
-
};
|
|
363
|
-
if (behavior === "hidden") return {
|
|
364
|
-
...candidate,
|
|
365
|
-
folderIndexBehavior: void 0,
|
|
366
|
-
index: void 0,
|
|
367
|
-
url: void 0,
|
|
368
|
-
children
|
|
369
|
-
};
|
|
370
|
-
return {
|
|
371
|
-
...candidate,
|
|
372
|
-
folderIndexBehavior: void 0,
|
|
373
|
-
index: void 0,
|
|
374
|
-
url: void 0,
|
|
375
|
-
children: index ? [index, ...children] : children
|
|
376
|
-
};
|
|
377
|
-
}
|
|
378
|
-
return {
|
|
379
|
-
...tree,
|
|
380
|
-
children: tree.children.map(mapNode)
|
|
381
|
-
};
|
|
382
|
-
}
|
|
383
|
-
|
|
384
312
|
//#endregion
|
|
385
313
|
//#region src/agent.ts
|
|
386
314
|
const DEFAULT_DOCS_API_ROUTE = "/api/docs";
|
|
@@ -700,4 +628,4 @@ function toYamlString(value) {
|
|
|
700
628
|
}
|
|
701
629
|
|
|
702
630
|
//#endregion
|
|
703
|
-
export {
|
|
631
|
+
export { resolvePageReadingTime as A, resolveDocsPath as B, renderDocsMarkdownDocument as C, resolveDocsMarkdownRequest as D, resolveDocsLlmsTxtFormat as E, buildPageTwitter as F, defineDocs as G, extendTheme as H, resolveOGImage as I, resolveTitle as L, resolveReadingTimeFromSource as M, resolveReadingTimeOptions as N, resolveDocsSkillFormat as O, buildPageOpenGraph as P, resolveDocsI18n as R, normalizeDocsUrlPath as S, resolveDocsAgentMdxContent as T, deepMerge as U, createTheme as V, resolveChangelogConfig as W, isDocsAgentDiscoveryRequest as _, DEFAULT_DOCS_API_ROUTE as a, isDocsSkillRequest as b, DEFAULT_LLMS_TXT_ROUTE as c, DEFAULT_MCP_ROUTE as d, DEFAULT_MCP_WELL_KNOWN_ROUTE as f, findDocsMarkdownPage as g, buildDocsAgentDiscoverySpec as h, DEFAULT_AGENT_SPEC_WELL_KNOWN_ROUTE as i, resolveReadingTimeFromContent as j, estimateReadingTimeMinutes as k, DEFAULT_LLMS_TXT_WELL_KNOWN_ROUTE as l, DEFAULT_SKILL_MD_WELL_KNOWN_ROUTE as m, DEFAULT_AGENT_SPEC_ROUTE as n, DEFAULT_LLMS_FULL_TXT_ROUTE as o, DEFAULT_SKILL_MD_ROUTE as p, DEFAULT_AGENT_SPEC_WELL_KNOWN_JSON_ROUTE as r, DEFAULT_LLMS_FULL_TXT_WELL_KNOWN_ROUTE as s, DEFAULT_AGENT_FEEDBACK_ROUTE as t, DEFAULT_MCP_PUBLIC_ROUTE as u, isDocsMcpRequest as v, renderDocsSkillDocument as w, normalizeDocsPathSegment as x, isDocsPublicGetRequest as y, resolveDocsLocale as z };
|
package/dist/cli/index.mjs
CHANGED
|
@@ -83,10 +83,10 @@ async function main() {
|
|
|
83
83
|
const { dev } = await import("../dev-BQIDeAoL.mjs");
|
|
84
84
|
await dev(devOptions);
|
|
85
85
|
} else if (parsedCommand.command === "mcp") {
|
|
86
|
-
const { runMcp } = await import("../mcp-
|
|
86
|
+
const { runMcp } = await import("../mcp-BCwCpF9Q.mjs");
|
|
87
87
|
await runMcp(mcpOptions);
|
|
88
88
|
} else if (parsedCommand.command === "agent" && subcommand === "compact") {
|
|
89
|
-
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-
|
|
89
|
+
const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-BJxu7fth.mjs");
|
|
90
90
|
const agentCompactOptions = parseAgentCompactArgs(args.slice(2));
|
|
91
91
|
if (agentCompactOptions.help) {
|
|
92
92
|
printAgentCompactHelp();
|
|
@@ -96,11 +96,11 @@ async function main() {
|
|
|
96
96
|
} else if (parsedCommand.command === "agent") {
|
|
97
97
|
console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
|
|
98
98
|
console.error();
|
|
99
|
-
const { printAgentCompactHelp } = await import("../agent-
|
|
99
|
+
const { printAgentCompactHelp } = await import("../agent-BJxu7fth.mjs");
|
|
100
100
|
printAgentCompactHelp();
|
|
101
101
|
process.exit(1);
|
|
102
102
|
} else if (parsedCommand.command === "doctor") {
|
|
103
|
-
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-
|
|
103
|
+
const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-SBL9yJAm.mjs");
|
|
104
104
|
const doctorOptions = parseDoctorArgs(args.slice(1));
|
|
105
105
|
if (doctorOptions.help) {
|
|
106
106
|
printDoctorHelp();
|
|
@@ -108,7 +108,7 @@ async function main() {
|
|
|
108
108
|
}
|
|
109
109
|
await runDoctor(doctorOptions);
|
|
110
110
|
} else if (parsedCommand.command === "search" && subcommand === "sync") {
|
|
111
|
-
const { syncSearch } = await import("../search-
|
|
111
|
+
const { syncSearch } = await import("../search-CiQhHxl4.mjs");
|
|
112
112
|
await syncSearch(searchSyncOptions);
|
|
113
113
|
} else if (parsedCommand.command === "search") {
|
|
114
114
|
console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
|
|
@@ -1,10 +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 "./search-
|
|
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-BZ5t0H9t.mjs";
|
|
2
|
+
import "./search-DQTtxgAV.mjs";
|
|
3
3
|
import "./prompt-utils-8nmFLQVH.mjs";
|
|
4
4
|
import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
|
|
5
5
|
import "./server.mjs";
|
|
6
6
|
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";
|
|
7
|
-
import { inspectAgentCompactionState, scanDocsPageTargets } from "./agent-
|
|
7
|
+
import { inspectAgentCompactionState, scanDocsPageTargets } from "./agent-BJxu7fth.mjs";
|
|
8
8
|
import { t as detectFramework } from "./utils-DSMXVnEu.mjs";
|
|
9
9
|
import { existsSync, lstatSync, readFileSync, readdirSync } from "node:fs";
|
|
10
10
|
import path from "node:path";
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { _ as
|
|
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-BZ5t0H9t.mjs";
|
|
2
|
+
import { C as resolveDocsAnalyticsConfig, S as emitDocsAnalyticsEvent, _ as resolvePageSidebarFolderIndexBehavior, a as createSimpleSearchAdapter, b as normalizeDocsRelated, c as resolveSearchRequestConfig, d as hashGeneratedAgentContent, f as normalizeGeneratedAgentContent, g as applySidebarFolderIndexBehavior, 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, v as resolveSidebarFolderIndexBehavior, w as createDocsCloudAnalytics, x as renderDocsRelatedMarkdownLines, y as resolveSidebarFolderIndexBehaviorForPath } from "./search-DQTtxgAV.mjs";
|
|
3
3
|
|
|
4
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, applySidebarFolderIndexBehavior, buildDocsAgentDiscoverySpec, buildDocsSearchDocuments, buildPageOpenGraph, buildPageTwitter, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsCloudAnalytics, createMcpSearchAdapter, createSimpleSearchAdapter, createTheme, createTypesenseSearchAdapter, deepMerge, defineDocs, emitDocsAnalyticsEvent, estimateReadingTimeMinutes, extendTheme, findDocsMarkdownPage, hashGeneratedAgentContent, isDocsAgentDiscoveryRequest, isDocsMcpRequest, isDocsPublicGetRequest, isDocsSkillRequest, normalizeDocsPathSegment, normalizeDocsRelated, normalizeDocsUrlPath, normalizeGeneratedAgentContent, parseGeneratedAgentDocument, performDocsSearch, renderDocsMarkdownDocument, renderDocsRelatedMarkdownLines, renderDocsSkillDocument, resolveChangelogConfig, resolveDocsAgentMdxContent, resolveDocsAnalyticsConfig, resolveDocsI18n, resolveDocsLlmsTxtFormat, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsPath, resolveDocsSkillFormat, resolveOGImage, resolvePageReadingTime, resolvePageSidebarFolderIndexBehavior, resolveReadingTimeFromContent, resolveReadingTimeFromSource, resolveReadingTimeOptions, resolveSearchRequestConfig, resolveSidebarFolderIndexBehavior, resolveSidebarFolderIndexBehaviorForPath, resolveTitle, serializeGeneratedAgentDocument, stripGeneratedAgentProvenance };
|
package/dist/mcp.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as
|
|
1
|
+
import { S as emitDocsAnalyticsEvent, _ as resolvePageSidebarFolderIndexBehavior, b as normalizeDocsRelated, h as stripGeneratedAgentProvenance, s as performDocsSearch, x as renderDocsRelatedMarkdownLines } from "./search-DQTtxgAV.mjs";
|
|
2
2
|
import matter from "gray-matter";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
@@ -462,6 +462,39 @@ function resolveAgentMdxContent(content, audience) {
|
|
|
462
462
|
function stripMarkdownForMcp(content) {
|
|
463
463
|
return content.replace(/^(import|export)\s.*$/gm, "").replace(/<[^>]+\/>/g, "").replace(/<\/?[A-Z][^>]*>/g, "").replace(/<\/?[a-z][^>]*>/g, "").replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/^#{1,6}\s+/gm, "").replace(/(\*{1,3}|_{1,3})(.*?)\1/g, "$2").replace(/```[\s\S]*?```/g, "").replace(/`([^`]+)`/g, "$1").replace(/^>\s+/gm, "").replace(/^[-*_]{3,}\s*$/gm, "").replace(/\n{3,}/g, "\n\n").trim();
|
|
464
464
|
}
|
|
465
|
+
function resolveFilesystemDocsPageSource(dir) {
|
|
466
|
+
return [
|
|
467
|
+
"page.mdx",
|
|
468
|
+
"page.md",
|
|
469
|
+
"page.svx"
|
|
470
|
+
].map((fileName) => path.join(dir, fileName)).find((candidate) => fs.existsSync(candidate));
|
|
471
|
+
}
|
|
472
|
+
function hasVisibleDescendantFilesystemDocsPage(dir) {
|
|
473
|
+
let entries;
|
|
474
|
+
try {
|
|
475
|
+
entries = fs.readdirSync(dir);
|
|
476
|
+
} catch {
|
|
477
|
+
return false;
|
|
478
|
+
}
|
|
479
|
+
for (const name of entries.sort()) {
|
|
480
|
+
const full = path.join(dir, name);
|
|
481
|
+
try {
|
|
482
|
+
if (!fs.statSync(full).isDirectory()) continue;
|
|
483
|
+
} catch {
|
|
484
|
+
continue;
|
|
485
|
+
}
|
|
486
|
+
const pageSource = resolveFilesystemDocsPageSource(full);
|
|
487
|
+
if (pageSource) try {
|
|
488
|
+
const data = matter(fs.readFileSync(pageSource, "utf-8")).data;
|
|
489
|
+
const hiddenFolderIndex = resolvePageSidebarFolderIndexBehavior(data.sidebar) === "hidden";
|
|
490
|
+
if (data.hidden !== true && !hiddenFolderIndex) return true;
|
|
491
|
+
} catch {
|
|
492
|
+
return true;
|
|
493
|
+
}
|
|
494
|
+
if (hasVisibleDescendantFilesystemDocsPage(full)) return true;
|
|
495
|
+
}
|
|
496
|
+
return false;
|
|
497
|
+
}
|
|
465
498
|
function scanFilesystemDocsPages(contentDirAbs, entry) {
|
|
466
499
|
const pages = [];
|
|
467
500
|
function scan(dir, slugParts) {
|
|
@@ -476,11 +509,12 @@ function scanFilesystemDocsPages(contentDirAbs, entry) {
|
|
|
476
509
|
if (name === "agent.md") continue;
|
|
477
510
|
if (!name.endsWith(".md") && !name.endsWith(".mdx") && !name.endsWith(".svx")) continue;
|
|
478
511
|
const { data, content } = matter(fs.readFileSync(full, "utf-8"));
|
|
512
|
+
const baseName = name.replace(/\.(md|mdx|svx)$/, "");
|
|
513
|
+
const isIndex = baseName === "index" || baseName === "page" || baseName === "+page";
|
|
514
|
+
if (isIndex && resolvePageSidebarFolderIndexBehavior(data.sidebar) === "hidden" && hasVisibleDescendantFilesystemDocsPage(dir)) continue;
|
|
479
515
|
const humanRawContent = resolveAgentMdxContent(content, "human");
|
|
480
516
|
const pageAgentRawContent = resolveAgentMdxContent(content, "agent");
|
|
481
517
|
const pageAgentContent = pageAgentRawContent !== humanRawContent ? stripMarkdownForMcp(pageAgentRawContent) : void 0;
|
|
482
|
-
const baseName = name.replace(/\.(md|mdx|svx)$/, "");
|
|
483
|
-
const isIndex = baseName === "index" || baseName === "page" || baseName === "+page";
|
|
484
518
|
const slug = isIndex ? slugParts.join("/") : [...slugParts, baseName].join("/");
|
|
485
519
|
const url = slug ? `/${entry}/${slug}` : `/${entry}`;
|
|
486
520
|
const agentDoc = isIndex ? readFilesystemAgentDoc(dir) : void 0;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, t as buildDocsSearchDocuments } from "./search-
|
|
1
|
+
import { n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, t as buildDocsSearchDocuments } from "./search-DQTtxgAV.mjs";
|
|
2
2
|
import "./prompt-utils-8nmFLQVH.mjs";
|
|
3
3
|
import { createFilesystemDocsMcpSource } from "./mcp.mjs";
|
|
4
4
|
import "./server.mjs";
|
|
@@ -180,6 +180,78 @@ function normalizeInlineText(value) {
|
|
|
180
180
|
return value.replace(/\s+/g, " ").trim();
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/sidebar.ts
|
|
185
|
+
function resolvePageSidebarFolderIndexBehavior(sidebar) {
|
|
186
|
+
if (!sidebar || typeof sidebar !== "object") return void 0;
|
|
187
|
+
const value = sidebar.folderIndexBehavior;
|
|
188
|
+
return value === "link" || value === "toggle" || value === "hidden" ? value : void 0;
|
|
189
|
+
}
|
|
190
|
+
function normalizeSidebarFolderBehaviorPath(path) {
|
|
191
|
+
if (!path) return void 0;
|
|
192
|
+
let value = path.trim();
|
|
193
|
+
if (!value) return void 0;
|
|
194
|
+
if (/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(value)) try {
|
|
195
|
+
value = new URL(value).pathname;
|
|
196
|
+
} catch {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
else value = value.split("#", 1)[0]?.split("?", 1)[0] ?? value;
|
|
200
|
+
if (!value.startsWith("/")) value = `/${value}`;
|
|
201
|
+
return value.replace(/\/$/, "") || "/";
|
|
202
|
+
}
|
|
203
|
+
function resolveSidebarFolderIndexBehavior(sidebar, defaultBehavior = "link") {
|
|
204
|
+
if (sidebar === void 0 || sidebar === true || sidebar === false) return defaultBehavior;
|
|
205
|
+
if (sidebar.folderIndexBehavior === "toggle") return "toggle";
|
|
206
|
+
if (sidebar.folderIndexBehavior === "hidden") return "hidden";
|
|
207
|
+
if (sidebar.folderIndexBehavior === "link") return "link";
|
|
208
|
+
return defaultBehavior;
|
|
209
|
+
}
|
|
210
|
+
function resolveSidebarFolderIndexBehaviorForPath(sidebar, folderPath, defaultBehavior = "link") {
|
|
211
|
+
const fallback = resolveSidebarFolderIndexBehavior(sidebar, defaultBehavior);
|
|
212
|
+
if (!sidebar || typeof sidebar !== "object") return fallback;
|
|
213
|
+
const normalizedPath = normalizeSidebarFolderBehaviorPath(folderPath);
|
|
214
|
+
if (!normalizedPath) return fallback;
|
|
215
|
+
for (const [rawPath, override] of Object.entries(sidebar.folderIndexBehaviorOverrides ?? {})) if (normalizeSidebarFolderBehaviorPath(rawPath) === normalizedPath) return override === "link" || override === "toggle" || override === "hidden" ? override : fallback;
|
|
216
|
+
return fallback;
|
|
217
|
+
}
|
|
218
|
+
function applySidebarFolderIndexBehavior(tree, behaviorOrOptions) {
|
|
219
|
+
const resolveBehavior = typeof behaviorOrOptions === "string" ? () => behaviorOrOptions : (folderPath) => resolveSidebarFolderIndexBehaviorForPath(behaviorOrOptions.sidebar, folderPath, behaviorOrOptions.defaultBehavior);
|
|
220
|
+
function mapNode(node) {
|
|
221
|
+
if (!node || typeof node !== "object") return node;
|
|
222
|
+
const candidate = node;
|
|
223
|
+
if (candidate.type !== "folder" || !Array.isArray(candidate.children)) return node;
|
|
224
|
+
const children = candidate.children.map(mapNode);
|
|
225
|
+
const index = candidate.index ? mapNode(candidate.index) : void 0;
|
|
226
|
+
const folderPath = (typeof candidate.url === "string" ? candidate.url : void 0) || (candidate.index && typeof candidate.index === "object" && "url" in candidate.index && typeof candidate.index.url === "string" ? candidate.index.url ?? void 0 : void 0);
|
|
227
|
+
const behavior = (candidate.folderIndexBehavior === "link" || candidate.folderIndexBehavior === "toggle" || candidate.folderIndexBehavior === "hidden" ? candidate.folderIndexBehavior : void 0) ?? resolveBehavior(folderPath);
|
|
228
|
+
if (behavior === "link") return {
|
|
229
|
+
...candidate,
|
|
230
|
+
folderIndexBehavior: void 0,
|
|
231
|
+
index,
|
|
232
|
+
children
|
|
233
|
+
};
|
|
234
|
+
if (behavior === "hidden") return {
|
|
235
|
+
...candidate,
|
|
236
|
+
folderIndexBehavior: void 0,
|
|
237
|
+
index: void 0,
|
|
238
|
+
url: void 0,
|
|
239
|
+
children
|
|
240
|
+
};
|
|
241
|
+
return {
|
|
242
|
+
...candidate,
|
|
243
|
+
folderIndexBehavior: void 0,
|
|
244
|
+
index: void 0,
|
|
245
|
+
url: void 0,
|
|
246
|
+
children: index ? [index, ...children] : children
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
return {
|
|
250
|
+
...tree,
|
|
251
|
+
children: tree.children.map(mapNode)
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
183
255
|
//#endregion
|
|
184
256
|
//#region src/agent-provenance.ts
|
|
185
257
|
const GENERATED_AGENT_PROVENANCE_MARKER = "@farming-labs/docs:generated";
|
|
@@ -927,4 +999,4 @@ function createCustomSearchAdapter(adapter) {
|
|
|
927
999
|
}
|
|
928
1000
|
|
|
929
1001
|
//#endregion
|
|
930
|
-
export {
|
|
1002
|
+
export { resolveDocsAnalyticsConfig as C, emitDocsAnalyticsEvent as S, resolvePageSidebarFolderIndexBehavior as _, createSimpleSearchAdapter as a, normalizeDocsRelated as b, resolveSearchRequestConfig as c, hashGeneratedAgentContent as d, normalizeGeneratedAgentContent as f, applySidebarFolderIndexBehavior 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, resolveSidebarFolderIndexBehavior as v, createDocsCloudAnalytics as w, renderDocsRelatedMarkdownLines as x, resolveSidebarFolderIndexBehaviorForPath as y };
|
package/dist/server.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as resolveDocsAnalyticsConfig, S as emitDocsAnalyticsEvent, a as createSimpleSearchAdapter, c as resolveSearchRequestConfig, i as createMcpSearchAdapter, n as createAlgoliaSearchAdapter, o as createTypesenseSearchAdapter, r as createCustomSearchAdapter, s as performDocsSearch, t as buildDocsSearchDocuments, w as createDocsCloudAnalytics } from "./search-DQTtxgAV.mjs";
|
|
2
2
|
import { a as sanitizePromptText, c as serializeOpenDocsProviders, d as buildApiReferenceOpenApiDocument, f as buildApiReferenceOpenApiDocumentAsync, g as resolveApiReferenceRenderer, h as resolveApiReferenceConfig, i as resolvePromptProviderChoices, l as buildApiReferenceHtmlDocument, m as buildApiReferenceScalarCss, n as normalizePromptProviderName, o as serializeDocsIcon, p as buildApiReferencePageTitle, r as parsePromptStringArray, s as serializeDocsIconRegistry, t as DEFAULT_PROMPT_PROVIDER_TEMPLATES, u as buildApiReferenceHtmlDocumentAsync } from "./prompt-utils-8nmFLQVH.mjs";
|
|
3
3
|
import { createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, normalizeDocsMcpRoute, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
|
|
4
4
|
|