@farming-labs/docs 0.2.91 → 0.2.92

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.
@@ -2531,6 +2531,34 @@ async function evaluateTask(pages, task, configurationIssues = [], runOptions =
2531
2531
  * Configured external retrieval, HTTP answers, and runtime execution require explicit opt-in.
2532
2532
  * An empty task list is intentionally unmeasured so CI cannot turn absent coverage into a pass.
2533
2533
  */
2534
+ function buildGoldenEvaluationCoverage(tasks) {
2535
+ const totalTaskCount = tasks.length;
2536
+ const dimension = (measuredTaskCount) => {
2537
+ const coveragePercent = totalTaskCount === 0 ? 0 : Math.round(measuredTaskCount / totalTaskCount * 100);
2538
+ return {
2539
+ status: measuredTaskCount === 0 ? "unmeasured" : measuredTaskCount === totalTaskCount ? "measured" : "partially-measured",
2540
+ measuredTaskCount,
2541
+ totalTaskCount,
2542
+ coveragePercent
2543
+ };
2544
+ };
2545
+ const dimensions = {
2546
+ safety: dimension(tasks.filter((task) => task.safety.cases.length > 0 || task.safety.queryVariants.length > 0).length),
2547
+ answerQuality: dimension(tasks.filter((task) => task.answer.expected).length),
2548
+ executableExamples: dimension(tasks.filter((task) => task.examples.results.some((result) => result.verification === "execute")).length)
2549
+ };
2550
+ const dimensionValues = Object.values(dimensions);
2551
+ const measuredTaskDimensions = dimensionValues.reduce((total, value) => total + value.measuredTaskCount, 0);
2552
+ const totalTaskDimensions = totalTaskCount * dimensionValues.length;
2553
+ const coveragePercent = totalTaskDimensions === 0 ? 0 : Math.round(measuredTaskDimensions / totalTaskDimensions * 100);
2554
+ return {
2555
+ status: coveragePercent === 100 ? "measured" : coveragePercent === 0 ? "unmeasured" : "partially-measured",
2556
+ measuredTaskDimensions,
2557
+ totalTaskDimensions,
2558
+ coveragePercent,
2559
+ dimensions
2560
+ };
2561
+ }
2534
2562
  async function runDocsGoldenTasks(pages, tasks, options = {}) {
2535
2563
  const runtimeTasks = tasks;
2536
2564
  if (runtimeTasks === void 0 || Array.isArray(runtimeTasks) && runtimeTasks.length === 0) return {
@@ -2540,6 +2568,15 @@ async function runDocsGoldenTasks(pages, tasks, options = {}) {
2540
2568
  taskCount: 0,
2541
2569
  passedTaskCount: 0,
2542
2570
  failedTaskCount: 0,
2571
+ quality: {
2572
+ status: "unmeasured",
2573
+ passed: null,
2574
+ score: null,
2575
+ taskCount: 0,
2576
+ passedTaskCount: 0,
2577
+ failedTaskCount: 0
2578
+ },
2579
+ coverage: buildGoldenEvaluationCoverage([]),
2543
2580
  tasks: []
2544
2581
  };
2545
2582
  const normalizedTasks = Array.isArray(runtimeTasks) ? runtimeTasks.map((task, index) => normalizeGoldenTaskInput(task, index)) : [normalizeGoldenTaskInput(runtimeTasks, 0, ["agent.evaluations.tasks must be an array."])];
@@ -2551,13 +2588,18 @@ async function runDocsGoldenTasks(pages, tasks, options = {}) {
2551
2588
  const reports = await Promise.all(normalizedTasks.map(({ task, issues }) => evaluateTask(pages, task, issues, options)));
2552
2589
  const passedTaskCount = reports.filter((task) => task.passed).length;
2553
2590
  const failedTaskCount = reports.length - passedTaskCount;
2554
- return {
2591
+ const quality = {
2555
2592
  status: failedTaskCount === 0 ? "passed" : "failed",
2556
2593
  passed: failedTaskCount === 0,
2557
2594
  score: round(reports.reduce((sum, task) => sum + task.score, 0) / reports.length),
2558
2595
  taskCount: reports.length,
2559
2596
  passedTaskCount,
2560
- failedTaskCount,
2597
+ failedTaskCount
2598
+ };
2599
+ return {
2600
+ ...quality,
2601
+ quality,
2602
+ coverage: buildGoldenEvaluationCoverage(reports),
2561
2603
  tasks: reports
2562
2604
  };
2563
2605
  }
@@ -6,7 +6,7 @@ import { t as resolveDocsI18n } from "./i18n-hHVWcflJ.mjs";
6
6
  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-CQVNLcVS.mjs";
7
7
  import "./sitemap-server-rv00bP21.mjs";
8
8
  import { r as resolveConfiguredAgentSkills } from "./agent-skills-server-CwmzAzf_.mjs";
9
- import "./agent-evals-GFDpcXO3.mjs";
9
+ import "./agent-evals-CKZ7bPSp.mjs";
10
10
  import { createFilesystemDocsMcpSource, resolveDocsMcpConfig } from "./mcp.mjs";
11
11
  import "./code-blocks-0wjOsqdJ.mjs";
12
12
  import "./server.mjs";
@@ -4,7 +4,7 @@ import "./standards-discovery-Ckx0tN7B.mjs";
4
4
  import "./content-change-hydration-Cy2a7rb1.mjs";
5
5
  import { C as resolveApiReferenceOpenApiDiscovery } from "./sitemap-server-rv00bP21.mjs";
6
6
  import "./agent-skills-server-CwmzAzf_.mjs";
7
- import "./agent-evals-GFDpcXO3.mjs";
7
+ import "./agent-evals-CKZ7bPSp.mjs";
8
8
  import { resolveDocsMcpConfig } from "./mcp.mjs";
9
9
  import "./code-blocks-0wjOsqdJ.mjs";
10
10
  import "./server.mjs";
@@ -141,7 +141,7 @@ async function main() {
141
141
  printCloudHelp();
142
142
  process.exit(1);
143
143
  } else if (parsedCommand.command === "mcp") {
144
- const { runMcp } = await import("../mcp-DYVbyw5b.mjs");
144
+ const { runMcp } = await import("../mcp-id20k3ug.mjs");
145
145
  await runMcp(mcpOptions);
146
146
  } else if (parsedCommand.command === "agent" && subcommand === "compact") {
147
147
  const { compactAgentDocs, parseAgentCompactArgs, printAgentCompactHelp } = await import("../agent-BgamZBQ5.mjs").then((n) => n.t);
@@ -152,7 +152,7 @@ async function main() {
152
152
  }
153
153
  await compactAgentDocs(agentCompactOptions);
154
154
  } else if (parsedCommand.command === "agent" && subcommand === "export") {
155
- const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-CNDoSwv4.mjs");
155
+ const { exportAgentBundle, parseAgentExportArgs, printAgentExportHelp } = await import("../agent-export-Zmr4SVA0.mjs");
156
156
  const agentExportOptions = parseAgentExportArgs(args.slice(2));
157
157
  if (agentExportOptions.help) {
158
158
  printAgentExportHelp();
@@ -163,12 +163,12 @@ async function main() {
163
163
  console.error(pc.red(`Unknown agent subcommand: ${subcommand ?? "(missing)"}`));
164
164
  console.error();
165
165
  const { printAgentCompactHelp } = await import("../agent-BgamZBQ5.mjs").then((n) => n.t);
166
- const { printAgentExportHelp } = await import("../agent-export-CNDoSwv4.mjs");
166
+ const { printAgentExportHelp } = await import("../agent-export-Zmr4SVA0.mjs");
167
167
  printAgentCompactHelp();
168
168
  printAgentExportHelp();
169
169
  process.exit(1);
170
170
  } else if (parsedCommand.command === "agents" && subcommand === "generate") {
171
- const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-CUPf3vZe.mjs");
171
+ const { generateAgents, parseAgentsGenerateArgs, printAgentsGenerateHelp } = await import("../agents-Z9UjyDQ8.mjs");
172
172
  const agentsOptions = parseAgentsGenerateArgs(args.slice(2));
173
173
  if (agentsOptions.help) {
174
174
  printAgentsGenerateHelp();
@@ -178,11 +178,11 @@ async function main() {
178
178
  } else if (parsedCommand.command === "agents") {
179
179
  console.error(pc.red(`Unknown agents subcommand: ${subcommand ?? "(missing)"}`));
180
180
  console.error();
181
- const { printAgentsGenerateHelp } = await import("../agents-CUPf3vZe.mjs");
181
+ const { printAgentsGenerateHelp } = await import("../agents-Z9UjyDQ8.mjs");
182
182
  printAgentsGenerateHelp();
183
183
  process.exit(1);
184
184
  } else if (parsedCommand.command === "skills" && subcommand === "scaffold") {
185
- const { parseSkillScaffoldArgs, printSkillScaffoldHelp, scaffoldSkillFromContracts } = await import("../skills-Biq9Q7z4.mjs");
185
+ const { parseSkillScaffoldArgs, printSkillScaffoldHelp, scaffoldSkillFromContracts } = await import("../skills-BArErbqa.mjs");
186
186
  const skillOptions = parseSkillScaffoldArgs(args.slice(2));
187
187
  if (skillOptions.help) {
188
188
  printSkillScaffoldHelp();
@@ -190,16 +190,16 @@ async function main() {
190
190
  }
191
191
  await scaffoldSkillFromContracts(skillOptions);
192
192
  } else if (parsedCommand.command === "skills" && (subcommand === "--help" || subcommand === "-h")) {
193
- const { printSkillScaffoldHelp } = await import("../skills-Biq9Q7z4.mjs");
193
+ const { printSkillScaffoldHelp } = await import("../skills-BArErbqa.mjs");
194
194
  printSkillScaffoldHelp();
195
195
  } else if (parsedCommand.command === "skills") {
196
196
  console.error(pc.red(`Unknown skills subcommand: ${subcommand ?? "(missing)"}`));
197
197
  console.error();
198
- const { printSkillScaffoldHelp } = await import("../skills-Biq9Q7z4.mjs");
198
+ const { printSkillScaffoldHelp } = await import("../skills-BArErbqa.mjs");
199
199
  printSkillScaffoldHelp();
200
200
  process.exit(1);
201
201
  } else if (parsedCommand.command === "doctor") {
202
- const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-DTUnmCWU.mjs");
202
+ const { parseDoctorArgs, printDoctorHelp, runDoctor } = await import("../doctor-DcnXZI9e.mjs");
203
203
  const doctorOptions = parseDoctorArgs(args.slice(1));
204
204
  if (doctorOptions.help) {
205
205
  printDoctorHelp();
@@ -207,7 +207,7 @@ async function main() {
207
207
  }
208
208
  await runDoctor(doctorOptions);
209
209
  } else if (parsedCommand.command === "review") {
210
- const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-BjOfzbsm.mjs");
210
+ const { parseReviewArgs, printReviewHelp, runReview } = await import("../review-Det-z9TE.mjs");
211
211
  const reviewOptions = parseReviewArgs(args.slice(1));
212
212
  if (reviewOptions.help) {
213
213
  printReviewHelp();
@@ -229,7 +229,7 @@ async function main() {
229
229
  printCodeBlocksValidateHelp();
230
230
  process.exit(1);
231
231
  } else if (parsedCommand.command === "search" && subcommand === "sync") {
232
- const { syncSearch } = await import("../search-DRSqR1_k.mjs");
232
+ const { syncSearch } = await import("../search-CERhXATq.mjs");
233
233
  await syncSearch(searchSyncOptions);
234
234
  } else if (parsedCommand.command === "search") {
235
235
  console.error(pc.red(`Unknown search subcommand: ${subcommand ?? "(missing)"}`));
@@ -237,7 +237,7 @@ async function main() {
237
237
  printHelp();
238
238
  process.exit(1);
239
239
  } else if (parsedCommand.command === "sitemap" && subcommand === "generate") {
240
- const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-BiaR2pC_.mjs");
240
+ const { generateSitemap, parseSitemapGenerateArgs, printSitemapGenerateHelp } = await import("../sitemap-B8VOZwuG.mjs");
241
241
  const sitemapOptions = parseSitemapGenerateArgs(args.slice(2));
242
242
  if (sitemapOptions.help) {
243
243
  printSitemapGenerateHelp();
@@ -247,7 +247,7 @@ async function main() {
247
247
  } else if (parsedCommand.command === "sitemap") {
248
248
  console.error(pc.red(`Unknown sitemap subcommand: ${subcommand ?? "(missing)"}`));
249
249
  console.error();
250
- const { printSitemapGenerateHelp } = await import("../sitemap-BiaR2pC_.mjs");
250
+ const { printSitemapGenerateHelp } = await import("../sitemap-B8VOZwuG.mjs");
251
251
  printSitemapGenerateHelp();
252
252
  process.exit(1);
253
253
  } else if (parsedCommand.command === "robots" && subcommand === "generate") {
@@ -9,7 +9,7 @@ import { a as analyzeDocsRobotsTxt, n as DEFAULT_ROBOTS_TXT_ROUTE, u as resolveD
9
9
  import { a as resolveDocsMetadataBaseUrl } from "./metadata-N252j5_a.mjs";
10
10
  import "./sitemap-server-rv00bP21.mjs";
11
11
  import { r as resolveConfiguredAgentSkills } from "./agent-skills-server-CwmzAzf_.mjs";
12
- import { t as runDocsGoldenTasks } from "./agent-evals-GFDpcXO3.mjs";
12
+ import { t as runDocsGoldenTasks } from "./agent-evals-CKZ7bPSp.mjs";
13
13
  import { createFilesystemDocsMcpSource, getDocsConfigSchema, resolveDocsMcpConfig } from "./mcp.mjs";
14
14
  import "./code-blocks-0wjOsqdJ.mjs";
15
15
  import "./server.mjs";
@@ -636,7 +636,8 @@ const AGENT_OPTIMIZATION_BLOCKING_CHECKS = new Set([
636
636
  ]);
637
637
  function gradeForAgentScore(score, checks = []) {
638
638
  const hasBlockingFailure = checks.some((check) => check.status === "fail" && AGENT_OPTIMIZATION_BLOCKING_CHECKS.has(check.id));
639
- if (score >= 90 && !hasBlockingFailure) return "Agent-optimized";
639
+ const hasIncompleteEvaluationCoverage = checks.some((check) => check.id === "golden-task-coverage" && check.status !== "pass");
640
+ if (score >= 90 && !hasBlockingFailure && !hasIncompleteEvaluationCoverage) return "Agent-optimized";
640
641
  if (score >= 75) return "Agent-ready";
641
642
  if (score >= 60) return "Promising";
642
643
  return "Needs work";
@@ -1917,11 +1918,13 @@ async function inspectAgentReadiness(options = {}) {
1917
1918
  checks.push(makeCheck("related-coverage", "Related-page task coverage", relatedCoverageResult.status, relatedCoverageResult.score, 5, `${usefulness.metrics.related.coveredActionablePages}/${usefulness.metrics.actionablePages} actionable pages link to a valid related docs route; ${usefulness.metrics.related.brokenLinks} related links are broken.`, usefulness.metrics.actionablePages > 0 && usefulness.metrics.related.coverage >= 80 && usefulness.metrics.related.brokenLinks === 0 ? void 0 : "Add and validate related routes on actionable pages so agents can expand context without guessing."));
1918
1919
  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));
1919
1920
  const averageMetric = (values) => values.length === 0 ? 0 : Math.round(values.reduce((total, value) => total + value, 0) / values.length * 100) / 100;
1920
- const proportionalEvaluationScore = evaluations.score === null ? 0 : Math.round(evaluations.score / 100 * 15);
1921
- const evaluationScore = evaluations.status === "failed" ? Math.min(14, proportionalEvaluationScore) : proportionalEvaluationScore;
1922
- const safetyEvaluations = evaluations.tasks.filter((task) => task.safety.expected);
1923
- const safetyEvaluationSummary = safetyEvaluations.length ? `${safetyEvaluations.filter((task) => task.safety.passed).length}/${safetyEvaluations.length} adversarial safety suites passed` : "no adversarial safety suites configured";
1924
- checks.push(makeCheck("golden-tasks", "Golden agent tasks", evaluations.status === "passed" ? "pass" : evaluations.status === "failed" ? "fail" : "warn", evaluationScore, 15, evaluations.status === "unmeasured" ? "No golden agent tasks are configured; retrieval usefulness is unmeasured." : `${evaluations.passedTaskCount}/${evaluations.taskCount} golden tasks passed with ${evaluations.score}/100 average score, ${averageMetric(evaluations.tasks.map((task) => task.retrieval.recallAtK))} retrieval recall, ${averageMetric(evaluations.tasks.map((task) => task.citations.recall))} citation recall, ${safetyEvaluationSummary}, and ${evaluations.tasks.reduce((total, task) => total + task.usage.usedUtf8Bytes, 0)} UTF-8 context bytes used.`, evaluations.status === "passed" ? void 0 : evaluations.status === "unmeasured" ? "Configure agent.evaluations.tasks so doctor and review can measure retrieval, citations, framework/version selection, adversarial safety, executable examples, and token usage." : "Inspect the failed golden task metrics and fix retrieval ranking, citations, applicability metadata, adversarial safety, examples, or context budgets."));
1921
+ const evaluationQuality = evaluations.quality;
1922
+ const proportionalEvaluationScore = evaluationQuality.score === null ? 0 : Math.round(evaluationQuality.score / 100 * 10);
1923
+ const evaluationScore = evaluationQuality.status === "failed" ? Math.min(9, proportionalEvaluationScore) : proportionalEvaluationScore;
1924
+ checks.push(makeCheck("golden-tasks", "Golden task quality", evaluationQuality.status === "passed" ? "pass" : evaluationQuality.status === "failed" ? "fail" : "warn", evaluationScore, 10, evaluationQuality.status === "unmeasured" ? "No golden agent tasks are configured; evaluation quality is unmeasured." : `${evaluationQuality.passedTaskCount}/${evaluationQuality.taskCount} golden tasks passed with ${evaluationQuality.score}/100 average quality across configured expectations, ${averageMetric(evaluations.tasks.map((task) => task.retrieval.recallAtK))} retrieval recall, ${averageMetric(evaluations.tasks.map((task) => task.citations.recall))} citation recall, and ${evaluations.tasks.reduce((total, task) => total + task.usage.usedUtf8Bytes, 0)} UTF-8 context bytes used.`, evaluationQuality.status === "passed" ? void 0 : evaluationQuality.status === "unmeasured" ? "Configure agent.evaluations.tasks so doctor and review can measure retrieval, citations, framework/version selection, adversarial safety, executable examples, and token usage." : "Inspect the failed golden task metrics and fix retrieval ranking, citations, applicability metadata, adversarial safety, examples, or context budgets."));
1925
+ const evaluationCoverage = evaluations.coverage;
1926
+ const formatDimensionCoverage = (label, dimension) => `${label}: ${dimension.status} (${dimension.measuredTaskCount}/${dimension.totalTaskCount} tasks)`;
1927
+ checks.push(makeCheck("golden-task-coverage", "Golden evaluation coverage", evaluationCoverage.status === "measured" ? "pass" : "warn", Math.round(evaluationCoverage.coveragePercent / 100 * 5), 5, `${evaluationCoverage.status} coverage across optional confidence dimensions (${evaluationCoverage.measuredTaskDimensions}/${evaluationCoverage.totalTaskDimensions} task-dimensions, ${evaluationCoverage.coveragePercent}%): ${formatDimensionCoverage("safety", evaluationCoverage.dimensions.safety)}; ${formatDimensionCoverage("answer quality", evaluationCoverage.dimensions.answerQuality)}; ${formatDimensionCoverage("executable examples", evaluationCoverage.dimensions.executableExamples)}.`, evaluationCoverage.status === "measured" ? void 0 : "Add golden-task safety expectations, actual-answer assertions, and execute-level example checks so each confidence dimension is measured explicitly."));
1925
1928
  const hosted = options.url ? await buildHostedAgentChecks(options.url, pages) : void 0;
1926
1929
  if (hosted) checks.push(...hosted.checks);
1927
1930
  const { score, maxScore } = normalizedDoctorScore(checks.reduce((total, check) => total + check.score, 0), checks.reduce((total, check) => total + check.maxScore, 0));
@@ -2037,7 +2040,12 @@ function printAgentDoctorReport(report) {
2037
2040
  if (report.url) console.log(`${pc.bold("Hosted URL:")} ${report.url}`);
2038
2041
  console.log(`${pc.bold("Audience-tailored pages:")} ${report.coverage.explicitPages}/${report.coverage.totalPages} pages ${pc.dim(`(${report.coverage.explicitCoverage}%)`)}`);
2039
2042
  if (report.usefulness) console.log(`${pc.bold("Useful agent-only blocks:")} ${report.usefulness.agentBlocks.useful}/${report.usefulness.agentBlocks.total} ${pc.dim(`• ${report.usefulness.taskCompleteness.completePages}/${report.usefulness.actionablePages} actionable pages task-complete`)}`);
2040
- if (report.evaluations) console.log(`${pc.bold("Golden tasks:")} ${report.evaluations.status === "unmeasured" ? "unmeasured" : `${report.evaluations.passedTaskCount}/${report.evaluations.taskCount} passed (${report.evaluations.score}/100)`}`);
2043
+ if (report.evaluations) {
2044
+ const evaluationQuality = report.evaluations.quality;
2045
+ console.log(`${pc.bold("Golden task quality:")} ${evaluationQuality.status === "unmeasured" ? "unmeasured" : `${evaluationQuality.passedTaskCount}/${evaluationQuality.taskCount} passed (${evaluationQuality.score}/100)`}`);
2046
+ const evaluationCoverage = report.evaluations.coverage;
2047
+ console.log(`${pc.bold("Evaluation coverage:")} ${evaluationCoverage.status} ${pc.dim(`(${evaluationCoverage.measuredTaskDimensions}/${evaluationCoverage.totalTaskDimensions} task-dimensions, ${evaluationCoverage.coveragePercent}%)`)} ${pc.dim("•")} safety ${evaluationCoverage.dimensions.safety.status} ${pc.dim("•")} answer quality ${evaluationCoverage.dimensions.answerQuality.status} ${pc.dim("•")} executable examples ${evaluationCoverage.dimensions.executableExamples.status}`);
2048
+ }
2041
2049
  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`);
2042
2050
  if (report.fixes && report.fixes.length > 0) console.log(`${pc.bold("Fixes:")} ${report.fixes.map((fix) => `${fix.status === "applied" ? "applied" : "skipped"} ${fix.title}`).join(pc.dim(" • "))}`);
2043
2051
  console.log();
@@ -5,7 +5,7 @@ import "./content-change-hydration-Cy2a7rb1.mjs";
5
5
  import { a as resolveDocsMetadataBaseUrl } from "./metadata-N252j5_a.mjs";
6
6
  import "./sitemap-server-rv00bP21.mjs";
7
7
  import { r as resolveConfiguredAgentSkills } from "./agent-skills-server-CwmzAzf_.mjs";
8
- import "./agent-evals-GFDpcXO3.mjs";
8
+ import "./agent-evals-CKZ7bPSp.mjs";
9
9
  import { createFilesystemDocsMcpSource, resolveDocsMcpConfig, runDocsMcpStdio } from "./mcp.mjs";
10
10
  import "./code-blocks-0wjOsqdJ.mjs";
11
11
  import "./server.mjs";
@@ -4,7 +4,7 @@ import { I as resolveDocsDiscoveryApiRoute, _ as DEFAULT_API_CATALOG_FORMAT, d a
4
4
  import "./content-change-hydration-Cy2a7rb1.mjs";
5
5
  import { a as resolveDocsMetadataBaseUrl } from "./metadata-N252j5_a.mjs";
6
6
  import "./agent-skills-server-CwmzAzf_.mjs";
7
- import { c as resolveDocsReviewConfig, o as ensureDocsReviewWorkflow, s as readDocsReviewConfigFromSource, t as runDocsGoldenTasks } from "./agent-evals-GFDpcXO3.mjs";
7
+ import { c as resolveDocsReviewConfig, o as ensureDocsReviewWorkflow, s as readDocsReviewConfigFromSource, t as runDocsGoldenTasks } from "./agent-evals-CKZ7bPSp.mjs";
8
8
  import { createFilesystemDocsMcpSource, getDocsConfigSchema, resolveDocsMcpConfig } from "./mcp.mjs";
9
9
  import "./code-blocks-0wjOsqdJ.mjs";
10
10
  import { _ as resolveDocsContentDir, g as resolveDocsConfigPath, h as readTopLevelStringProperty, s as loadDocsConfigModuleResultWithProjectEnv } from "./config-BtxaQTPP.mjs";
@@ -6,7 +6,7 @@ import { t as resolveDocsI18n } from "./i18n-hHVWcflJ.mjs";
6
6
  import { a as resolveDocsMetadataBaseUrl } from "./metadata-N252j5_a.mjs";
7
7
  import "./sitemap-server-rv00bP21.mjs";
8
8
  import "./agent-skills-server-CwmzAzf_.mjs";
9
- import "./agent-evals-GFDpcXO3.mjs";
9
+ import "./agent-evals-CKZ7bPSp.mjs";
10
10
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
11
11
  import "./code-blocks-0wjOsqdJ.mjs";
12
12
  import "./server.mjs";
package/dist/server.d.mts CHANGED
@@ -186,6 +186,7 @@ declare global {
186
186
  //#endregion
187
187
  //#region src/agent-evals.d.ts
188
188
  type DocsGoldenEvaluationStatus = "unmeasured" | "passed" | "failed";
189
+ type DocsGoldenEvaluationCoverageStatus = "measured" | "partially-measured" | "unmeasured";
189
190
  type DocsGoldenTaskFilters = DocsAgentGoldenTaskFilters;
190
191
  type DocsGoldenExpectedExample = DocsAgentGoldenExpectedExample;
191
192
  type DocsGoldenTaskExpectation = DocsAgentGoldenTaskExpectation;
@@ -338,12 +339,42 @@ interface DocsGoldenTaskReport {
338
339
  interface DocsGoldenTasksReport {
339
340
  status: DocsGoldenEvaluationStatus;
340
341
  passed: boolean | null;
342
+ /** Compatibility alias for quality.score. */
341
343
  score: number | null;
342
344
  taskCount: number;
343
345
  passedTaskCount: number;
344
346
  failedTaskCount: number;
347
+ /** Quality across only the expectations configured by each task. */
348
+ quality: DocsGoldenEvaluationQuality;
349
+ /** Coverage is intentionally separate so absent evaluation dimensions cannot look perfect. */
350
+ coverage: DocsGoldenEvaluationCoverage;
345
351
  tasks: DocsGoldenTaskReport[];
346
352
  }
353
+ interface DocsGoldenEvaluationQuality {
354
+ status: DocsGoldenEvaluationStatus;
355
+ passed: boolean | null;
356
+ score: number | null;
357
+ taskCount: number;
358
+ passedTaskCount: number;
359
+ failedTaskCount: number;
360
+ }
361
+ interface DocsGoldenEvaluationDimensionCoverage {
362
+ status: DocsGoldenEvaluationCoverageStatus;
363
+ measuredTaskCount: number;
364
+ totalTaskCount: number;
365
+ coveragePercent: number;
366
+ }
367
+ interface DocsGoldenEvaluationCoverage {
368
+ status: DocsGoldenEvaluationCoverageStatus;
369
+ measuredTaskDimensions: number;
370
+ totalTaskDimensions: number;
371
+ coveragePercent: number;
372
+ dimensions: {
373
+ safety: DocsGoldenEvaluationDimensionCoverage;
374
+ answerQuality: DocsGoldenEvaluationDimensionCoverage;
375
+ executableExamples: DocsGoldenEvaluationDimensionCoverage;
376
+ };
377
+ }
347
378
  interface RunDocsGoldenTasksOptions {
348
379
  /** Default evaluation surface. Tasks may override this with `task.surface`. */
349
380
  surface?: DocsAgentEvaluationSurface;
@@ -363,14 +394,9 @@ interface RunDocsGoldenTasksOptions {
363
394
  /** Optional actual-answer runner. No model or HTTP request is made when omitted. */
364
395
  answer?: DocsAgentEvaluationAnswerProvider;
365
396
  }
366
- /**
367
- * Run offline-by-default golden-task evaluations against MCP-ready docs pages.
368
- * Configured external retrieval, HTTP answers, and runtime execution require explicit opt-in.
369
- * An empty task list is intentionally unmeasured so CI cannot turn absent coverage into a pass.
370
- */
371
397
  declare function runDocsGoldenTasks(pages: readonly DocsMcpPage[], tasks: readonly DocsGoldenTask[] | undefined, options?: RunDocsGoldenTasksOptions): Promise<DocsGoldenTasksReport>;
372
398
  //#endregion
373
399
  //#region src/sitemap-server.d.ts
374
400
  declare function readDocsSitemapManifest(rootDir: string, sitemap?: boolean | DocsSitemapConfig): DocsSitemapManifest | null;
375
401
  //#endregion
376
- export { type ApiReferenceFramework, type ApiReferenceOpenApiDiscovery, type ApiReferenceRenderer, type ApiReferenceRoute, type BuildDocsContentSnapshotOptions, type CreateDocsMcpServerOptions, DEFAULT_API_REFERENCE_OPENAPI_ROUTE, 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, DEFAULT_DOCS_REVIEW_SCORE_THRESHOLD, DEFAULT_DOCS_REVIEW_WORKFLOW_PATH, DEFAULT_OPEN_DOCS_PROMPT, DEFAULT_OPEN_DOCS_PROVIDER_IDS, DEFAULT_OPEN_DOCS_TARGET, DEFAULT_PROMPT_PROVIDER_TEMPLATES, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_DOCS_ROUTE, DEFAULT_SITEMAP_MD_ROUTE, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, DEFAULT_SITEMAP_XML_ROUTE, DOCS_AGENT_TRACE_EVENT_TYPES, DOCS_CONFIG_SCHEMA_OPTIONS, DOCS_CONTENT_CHANGES_FORMAT, DOCS_CONTENT_CHANGES_RESPONSE_VALUE, DOCS_CONTENT_CHANGE_HYDRATION_FORMAT, DOCS_CONTENT_SNAPSHOT_FORMAT, DOCS_MCP_CONTENT_CHANGES_CURRENT_URI, DOCS_MCP_CONTENT_CHANGES_URI_TEMPLATE, type DocsAgentContentChangesConfig, type DocsAgentEvaluationAnswerInput, type DocsAgentEvaluationAnswerProvider, type DocsAgentEvaluationAnswerRequest, type DocsAgentEvaluationAnswerResult, type DocsAgentEvaluationAnswerRunner, type DocsAgentEvaluationSourceReference, type DocsAgentEvaluationSurface, type DocsAgentEvaluationTaskInput, type DocsAgentGoldenAnswerExpectation, type DocsAgentGoldenAuthenticatedContentExpectation, type DocsAgentGoldenExampleVerification, type DocsAgentGoldenFreshnessExpectation, type DocsAgentGoldenPromptInjectionExpectation, type DocsAgentGoldenQueryVariant, type DocsAgentGoldenQueryVariantKind, type DocsAgentGoldenSafetyExpectation, type DocsAgentTraceContext, type DocsAgentTraceEventInput, type DocsAgentTraceEventType, type DocsAgentTraceStatus, type DocsAnalyticsConfig, type DocsAnalyticsEvent, type DocsAnalyticsEventInput, type DocsAskAIFeedbackConfig, type DocsAskAIFeedbackData, type DocsAskAIFeedbackMessage, type DocsAskAIFeedbackValue, type DocsAskAIMcpConfig, type DocsCloudAskAIConfig, type DocsCloudAskAIOptions, type DocsCloudAskAIResponseOptions, type DocsCloudPublicConfig, type DocsCloudRouteHandlerOptions, type DocsCloudRouteHandlers, type DocsCloudRuntimeEnv, type DocsCloudRuntimeValue, type DocsCloudServer, type DocsCloudServerOptions, type DocsCloudTrackEventOptions, type DocsContentChangeDocument, type DocsContentChangeFeed, type DocsContentChangeHydrationBudget, type DocsContentChangeHydrationContent, type DocsContentChangeHydrationResponse, type DocsContentChangeHydrationSection, type DocsContentChangeHydrationTombstone, type DocsContentChangeSnapshotContext, type DocsContentChangeSnapshotLoader, type DocsContentChangeSnapshotSaver, type DocsContentChangedDocument, type DocsContentChangesRequest, DocsContentChangesRequestError, type DocsContentChangesResponse, type DocsContentSnapshot, type DocsContentSnapshotDocument, type DocsGoldenAnswerMetrics, type DocsGoldenCitationMetrics, type DocsGoldenEvaluationStatus, type DocsGoldenExampleMetrics, type DocsGoldenExampleResult, type DocsGoldenExpectedExample, type DocsGoldenQueryVariantResult, type DocsGoldenRetrievalMetrics, type DocsGoldenRetrievedSource, type DocsGoldenSafetyCaseKind, type DocsGoldenSafetyCaseResult, type DocsGoldenSafetyMetrics, type DocsGoldenSelectionMetrics, type DocsGoldenTask, type DocsGoldenTaskExpectation, type DocsGoldenTaskFilters, type DocsGoldenTaskReport, type DocsGoldenTasksReport, type DocsGoldenUsageMetrics, type DocsLocalMcpSearchRuntimeConfig, type DocsLocalMcpSearchRuntimeInput, type DocsMarkdownPromptBlock, type DocsMcpAgentContractSummary, type DocsMcpCodeExample, type DocsMcpConfigSchema, type DocsMcpConfigSchemaOption, type DocsMcpContextResult, type DocsMcpContextSource, type DocsMcpDocsList, type DocsMcpDocsPageSummary, type DocsMcpDocsSection, type DocsMcpHttpHandlers, type DocsMcpNavigationNode, type DocsMcpNavigationTree, type DocsMcpPage, type DocsMcpPageSectionIndex, type DocsMcpPageSectionList, type DocsMcpPaginatedDocsList, type DocsMcpPagination, type DocsMcpRequestContext, type DocsMcpResolvedConfig, type DocsMcpResolvedCorsConfig, type DocsMcpResolvedPromptsConfig, type DocsMcpResolvedProtectedResourceConfig, type DocsMcpResolvedSecurityConfig, type DocsMcpSource, type DocsMcpTaskSummary, type DocsObservabilityConfig, type DocsObservabilityEvent, type DocsObservabilityEventInput, type DocsPaginatedSearchResponse, DocsPaginationCursorError, type DocsResolvedContentChangesConfig, type DocsRetrievalSourceProvenance, type DocsRetrievalSourceScope, type DocsSearchAdapter, type DocsSearchAdapterContext, type DocsSearchAdapterFactory, type DocsSearchAdapterPage, type DocsSearchAmbiguityDecision, type DocsSearchAmbiguityDecisionStatus, type DocsSearchAmbiguityResolution, type DocsSearchConfig, type DocsSearchDocument, type DocsSearchExplanation, type DocsSearchFilterDecision, type DocsSearchFilterDecisionOutcome, type DocsSearchFilterField, type DocsSearchFilterInput, type DocsSearchFilters, type DocsSearchMatchField, type DocsSearchMatchedTerm, type DocsSearchQuery, type DocsSearchRankingReason, type DocsSearchRankingReasonCode, type DocsSearchRankingStrategy, type DocsSearchRequest, DocsSearchRequestError, type DocsSearchRequestResolutionOptions, type DocsSearchResponse, type DocsSearchResult, type DocsSearchSourcePage, type DocsSearchWarning, type DocsSearchWarningCode, type DocsSitemapFormat, type DocsSitemapManifest, type DocsSitemapManifestPage, type DocsSitemapPageInput, type DocsSitemapResolvedConfig, type EnrichDocsSearchDocumentsWithProvenanceOptions, type ExtractedDocsMarkdownPromptBlocks, type HydrateDocsContentChangesOptions, MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, type McpDocsSearchConfig, type PerformDocsSearchOptions, type PromptAction, type PromptProviderChoice, type ResolveConfiguredAgentSkillsOptions, type ResolveDocsContentChangesOptions, type ResolvedApiReferenceConfig, type ResolvedDocsAnalyticsConfig, type ResolvedDocsObservabilityConfig, type ResolvedDocsReviewConfig, type RunDocsGoldenTasksOptions, type SerializeOpenDocsProviderOptions, type SerializedOpenDocsProvider, buildApiReferenceHtmlDocument, buildApiReferenceHtmlDocumentAsync, buildApiReferenceOpenApiDocument, buildApiReferenceOpenApiDocumentAsync, buildApiReferencePageTitle, buildApiReferenceScalarCss, buildDocsAskAIContext, buildDocsContentSnapshot, buildDocsRetrievalDigestProjection, buildDocsReviewWorkflow, buildDocsReviewWorkflowPathFilters, buildDocsSearchDocuments, buildDocsSitemapManifest, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAskAIResponse, createDocsCloudRouteHandler, createDocsCloudServer, createDocsContentChangeFeed, createDocsContentChangesHttpResponse, createDocsMcpHttpHandler, createDocsMcpServer, createDocsSitemapResponse, createFilesystemDocsMcpSource, createMcpSearchAdapter, createSimpleSearchAdapter, createTypesenseSearchAdapter, digestDocsRetrievalContent, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, enrichDocsSearchDocumentsWithProvenance, ensureDocsReviewWorkflow, extractDocsMarkdownPromptBlocks, formatDocsAskAIPackageHints, getDocsConfigSchema, getDocsRequestAnalyticsProperties, hydrateDocsContentChanges, inferDocsAskAIPackageHints, isApiReferenceOpenApiRequest, isDocsCloudAskAIProvider, isDocsContentChangeGeneration, isDocsContentChangesRequest, isDocsRetrievalCanonicalUrl, normalizeDocsMcpRoute, normalizeDocsSearchFilters, normalizePromptProviderName, parsePromptStringArray, performDocsSearch, performDocsSearchWithMetadata, readDocsReviewConfigFromSource, readDocsSitemapManifest, readDocsSitemapManifestFromContentMap, remarkCodeGroup, renderDocsAgentSkillsBundle, renderDocsSitemapMarkdown, renderDocsSitemapXml, resolveApiReferenceConfig, resolveApiReferenceOpenApiDiscovery, resolveApiReferenceRenderer, resolveAskAISearchRequestConfig, resolveConfiguredAgentSkills, resolveConfiguredAgentSkillsSync, resolveDocsAnalyticsConfig, resolveDocsContentChangesConfig, resolveDocsContentChangesRequest, resolveDocsMcpConfig, resolveDocsMcpPromptsConfig, resolveDocsObservabilityConfig, resolveDocsRetrievalLastModified, resolveDocsReviewConfig, resolveDocsSearchAudience, resolveDocsSearchError, resolveDocsSearchFilters, resolveDocsSearchRequest, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveLocalDocsMcpSearchConfig, resolvePromptProviderChoices, resolveSearchRequestConfig, runDocsGoldenTasks, runDocsMcpStdio, sanitizePromptText, serializeDocsIcon, serializeDocsIconRegistry, serializeOpenDocsProvider, serializeOpenDocsProviders, toDocsSitemapMarkdownUrl };
402
+ export { type ApiReferenceFramework, type ApiReferenceOpenApiDiscovery, type ApiReferenceRenderer, type ApiReferenceRoute, type BuildDocsContentSnapshotOptions, type CreateDocsMcpServerOptions, DEFAULT_API_REFERENCE_OPENAPI_ROUTE, 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, DEFAULT_DOCS_REVIEW_SCORE_THRESHOLD, DEFAULT_DOCS_REVIEW_WORKFLOW_PATH, DEFAULT_OPEN_DOCS_PROMPT, DEFAULT_OPEN_DOCS_PROVIDER_IDS, DEFAULT_OPEN_DOCS_TARGET, DEFAULT_PROMPT_PROVIDER_TEMPLATES, DEFAULT_SITEMAP_MANIFEST_PATH, DEFAULT_SITEMAP_MD_DOCS_ROUTE, DEFAULT_SITEMAP_MD_ROUTE, DEFAULT_SITEMAP_MD_WELL_KNOWN_ROUTE, DEFAULT_SITEMAP_XML_ROUTE, DOCS_AGENT_TRACE_EVENT_TYPES, DOCS_CONFIG_SCHEMA_OPTIONS, DOCS_CONTENT_CHANGES_FORMAT, DOCS_CONTENT_CHANGES_RESPONSE_VALUE, DOCS_CONTENT_CHANGE_HYDRATION_FORMAT, DOCS_CONTENT_SNAPSHOT_FORMAT, DOCS_MCP_CONTENT_CHANGES_CURRENT_URI, DOCS_MCP_CONTENT_CHANGES_URI_TEMPLATE, type DocsAgentContentChangesConfig, type DocsAgentEvaluationAnswerInput, type DocsAgentEvaluationAnswerProvider, type DocsAgentEvaluationAnswerRequest, type DocsAgentEvaluationAnswerResult, type DocsAgentEvaluationAnswerRunner, type DocsAgentEvaluationSourceReference, type DocsAgentEvaluationSurface, type DocsAgentEvaluationTaskInput, type DocsAgentGoldenAnswerExpectation, type DocsAgentGoldenAuthenticatedContentExpectation, type DocsAgentGoldenExampleVerification, type DocsAgentGoldenFreshnessExpectation, type DocsAgentGoldenPromptInjectionExpectation, type DocsAgentGoldenQueryVariant, type DocsAgentGoldenQueryVariantKind, type DocsAgentGoldenSafetyExpectation, type DocsAgentTraceContext, type DocsAgentTraceEventInput, type DocsAgentTraceEventType, type DocsAgentTraceStatus, type DocsAnalyticsConfig, type DocsAnalyticsEvent, type DocsAnalyticsEventInput, type DocsAskAIFeedbackConfig, type DocsAskAIFeedbackData, type DocsAskAIFeedbackMessage, type DocsAskAIFeedbackValue, type DocsAskAIMcpConfig, type DocsCloudAskAIConfig, type DocsCloudAskAIOptions, type DocsCloudAskAIResponseOptions, type DocsCloudPublicConfig, type DocsCloudRouteHandlerOptions, type DocsCloudRouteHandlers, type DocsCloudRuntimeEnv, type DocsCloudRuntimeValue, type DocsCloudServer, type DocsCloudServerOptions, type DocsCloudTrackEventOptions, type DocsContentChangeDocument, type DocsContentChangeFeed, type DocsContentChangeHydrationBudget, type DocsContentChangeHydrationContent, type DocsContentChangeHydrationResponse, type DocsContentChangeHydrationSection, type DocsContentChangeHydrationTombstone, type DocsContentChangeSnapshotContext, type DocsContentChangeSnapshotLoader, type DocsContentChangeSnapshotSaver, type DocsContentChangedDocument, type DocsContentChangesRequest, DocsContentChangesRequestError, type DocsContentChangesResponse, type DocsContentSnapshot, type DocsContentSnapshotDocument, type DocsGoldenAnswerMetrics, type DocsGoldenCitationMetrics, type DocsGoldenEvaluationCoverage, type DocsGoldenEvaluationCoverageStatus, type DocsGoldenEvaluationDimensionCoverage, type DocsGoldenEvaluationQuality, type DocsGoldenEvaluationStatus, type DocsGoldenExampleMetrics, type DocsGoldenExampleResult, type DocsGoldenExpectedExample, type DocsGoldenQueryVariantResult, type DocsGoldenRetrievalMetrics, type DocsGoldenRetrievedSource, type DocsGoldenSafetyCaseKind, type DocsGoldenSafetyCaseResult, type DocsGoldenSafetyMetrics, type DocsGoldenSelectionMetrics, type DocsGoldenTask, type DocsGoldenTaskExpectation, type DocsGoldenTaskFilters, type DocsGoldenTaskReport, type DocsGoldenTasksReport, type DocsGoldenUsageMetrics, type DocsLocalMcpSearchRuntimeConfig, type DocsLocalMcpSearchRuntimeInput, type DocsMarkdownPromptBlock, type DocsMcpAgentContractSummary, type DocsMcpCodeExample, type DocsMcpConfigSchema, type DocsMcpConfigSchemaOption, type DocsMcpContextResult, type DocsMcpContextSource, type DocsMcpDocsList, type DocsMcpDocsPageSummary, type DocsMcpDocsSection, type DocsMcpHttpHandlers, type DocsMcpNavigationNode, type DocsMcpNavigationTree, type DocsMcpPage, type DocsMcpPageSectionIndex, type DocsMcpPageSectionList, type DocsMcpPaginatedDocsList, type DocsMcpPagination, type DocsMcpRequestContext, type DocsMcpResolvedConfig, type DocsMcpResolvedCorsConfig, type DocsMcpResolvedPromptsConfig, type DocsMcpResolvedProtectedResourceConfig, type DocsMcpResolvedSecurityConfig, type DocsMcpSource, type DocsMcpTaskSummary, type DocsObservabilityConfig, type DocsObservabilityEvent, type DocsObservabilityEventInput, type DocsPaginatedSearchResponse, DocsPaginationCursorError, type DocsResolvedContentChangesConfig, type DocsRetrievalSourceProvenance, type DocsRetrievalSourceScope, type DocsSearchAdapter, type DocsSearchAdapterContext, type DocsSearchAdapterFactory, type DocsSearchAdapterPage, type DocsSearchAmbiguityDecision, type DocsSearchAmbiguityDecisionStatus, type DocsSearchAmbiguityResolution, type DocsSearchConfig, type DocsSearchDocument, type DocsSearchExplanation, type DocsSearchFilterDecision, type DocsSearchFilterDecisionOutcome, type DocsSearchFilterField, type DocsSearchFilterInput, type DocsSearchFilters, type DocsSearchMatchField, type DocsSearchMatchedTerm, type DocsSearchQuery, type DocsSearchRankingReason, type DocsSearchRankingReasonCode, type DocsSearchRankingStrategy, type DocsSearchRequest, DocsSearchRequestError, type DocsSearchRequestResolutionOptions, type DocsSearchResponse, type DocsSearchResult, type DocsSearchSourcePage, type DocsSearchWarning, type DocsSearchWarningCode, type DocsSitemapFormat, type DocsSitemapManifest, type DocsSitemapManifestPage, type DocsSitemapPageInput, type DocsSitemapResolvedConfig, type EnrichDocsSearchDocumentsWithProvenanceOptions, type ExtractedDocsMarkdownPromptBlocks, type HydrateDocsContentChangesOptions, MAX_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, type McpDocsSearchConfig, type PerformDocsSearchOptions, type PromptAction, type PromptProviderChoice, type ResolveConfiguredAgentSkillsOptions, type ResolveDocsContentChangesOptions, type ResolvedApiReferenceConfig, type ResolvedDocsAnalyticsConfig, type ResolvedDocsObservabilityConfig, type ResolvedDocsReviewConfig, type RunDocsGoldenTasksOptions, type SerializeOpenDocsProviderOptions, type SerializedOpenDocsProvider, buildApiReferenceHtmlDocument, buildApiReferenceHtmlDocumentAsync, buildApiReferenceOpenApiDocument, buildApiReferenceOpenApiDocumentAsync, buildApiReferencePageTitle, buildApiReferenceScalarCss, buildDocsAskAIContext, buildDocsContentSnapshot, buildDocsRetrievalDigestProjection, buildDocsReviewWorkflow, buildDocsReviewWorkflowPathFilters, buildDocsSearchDocuments, buildDocsSitemapManifest, createAlgoliaSearchAdapter, createCustomSearchAdapter, createDocsAgentTraceContext, createDocsAgentTraceId, createDocsCloudAskAIResponse, createDocsCloudRouteHandler, createDocsCloudServer, createDocsContentChangeFeed, createDocsContentChangesHttpResponse, createDocsMcpHttpHandler, createDocsMcpServer, createDocsSitemapResponse, createFilesystemDocsMcpSource, createMcpSearchAdapter, createSimpleSearchAdapter, createTypesenseSearchAdapter, digestDocsRetrievalContent, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, emitDocsObservabilityEvent, enrichDocsSearchDocumentsWithProvenance, ensureDocsReviewWorkflow, extractDocsMarkdownPromptBlocks, formatDocsAskAIPackageHints, getDocsConfigSchema, getDocsRequestAnalyticsProperties, hydrateDocsContentChanges, inferDocsAskAIPackageHints, isApiReferenceOpenApiRequest, isDocsCloudAskAIProvider, isDocsContentChangeGeneration, isDocsContentChangesRequest, isDocsRetrievalCanonicalUrl, normalizeDocsMcpRoute, normalizeDocsSearchFilters, normalizePromptProviderName, parsePromptStringArray, performDocsSearch, performDocsSearchWithMetadata, readDocsReviewConfigFromSource, readDocsSitemapManifest, readDocsSitemapManifestFromContentMap, remarkCodeGroup, renderDocsAgentSkillsBundle, renderDocsSitemapMarkdown, renderDocsSitemapXml, resolveApiReferenceConfig, resolveApiReferenceOpenApiDiscovery, resolveApiReferenceRenderer, resolveAskAISearchRequestConfig, resolveConfiguredAgentSkills, resolveConfiguredAgentSkillsSync, resolveDocsAnalyticsConfig, resolveDocsContentChangesConfig, resolveDocsContentChangesRequest, resolveDocsMcpConfig, resolveDocsMcpPromptsConfig, resolveDocsObservabilityConfig, resolveDocsRetrievalLastModified, resolveDocsReviewConfig, resolveDocsSearchAudience, resolveDocsSearchError, resolveDocsSearchFilters, resolveDocsSearchRequest, resolveDocsSitemapConfig, resolveDocsSitemapPageLastmod, resolveDocsSitemapRequest, resolveLocalDocsMcpSearchConfig, resolvePromptProviderChoices, resolveSearchRequestConfig, runDocsGoldenTasks, runDocsMcpStdio, sanitizePromptText, serializeDocsIcon, serializeDocsIconRegistry, serializeOpenDocsProvider, serializeOpenDocsProviders, toDocsSitemapMarkdownUrl };
package/dist/server.mjs CHANGED
@@ -5,7 +5,7 @@ import { K as digestDocsRetrievalContent, q as isDocsRetrievalCanonicalUrl } fro
5
5
  import { a as hydrateDocsContentChanges, i as MIN_DOCS_CONTENT_CHANGE_HYDRATION_TOKEN_BUDGET, 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 } from "./content-change-hydration-Cy2a7rb1.mjs";
6
6
  import { C as resolveApiReferenceOpenApiDiscovery, S as resolveApiReferenceConfig, T as remarkCodeGroup, _ as buildApiReferenceOpenApiDocument, a as DEFAULT_PROMPT_PROVIDER_TEMPLATES, b as buildApiReferenceScalarCss, c as resolvePromptProviderChoices, d as serializeDocsIconRegistry, f as serializeOpenDocsProvider, g as buildApiReferenceHtmlDocumentAsync, h as buildApiReferenceHtmlDocument, i as DEFAULT_OPEN_DOCS_TARGET, l as sanitizePromptText, m as DEFAULT_API_REFERENCE_OPENAPI_ROUTE, n as DEFAULT_OPEN_DOCS_PROMPT, o as normalizePromptProviderName, p as serializeOpenDocsProviders, r as DEFAULT_OPEN_DOCS_PROVIDER_IDS, s as parsePromptStringArray, t as readDocsSitemapManifest, u as serializeDocsIcon, v as buildApiReferenceOpenApiDocumentAsync, w as resolveApiReferenceRenderer, x as isApiReferenceOpenApiRequest, y as buildApiReferencePageTitle } from "./sitemap-server-rv00bP21.mjs";
7
7
  import { i as resolveConfiguredAgentSkillsSync, r as resolveConfiguredAgentSkills } from "./agent-skills-server-CwmzAzf_.mjs";
8
- import { a as buildDocsReviewWorkflowPathFilters, c as resolveDocsReviewConfig, i as buildDocsReviewWorkflow, n as DEFAULT_DOCS_REVIEW_SCORE_THRESHOLD, o as ensureDocsReviewWorkflow, r as DEFAULT_DOCS_REVIEW_WORKFLOW_PATH, s as readDocsReviewConfigFromSource, t as runDocsGoldenTasks } from "./agent-evals-GFDpcXO3.mjs";
8
+ import { a as buildDocsReviewWorkflowPathFilters, c as resolveDocsReviewConfig, i as buildDocsReviewWorkflow, n as DEFAULT_DOCS_REVIEW_SCORE_THRESHOLD, o as ensureDocsReviewWorkflow, r as DEFAULT_DOCS_REVIEW_WORKFLOW_PATH, s as readDocsReviewConfigFromSource, t as runDocsGoldenTasks } from "./agent-evals-CKZ7bPSp.mjs";
9
9
  import { 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, createDocsMcpHttpHandler, createDocsMcpServer, createFilesystemDocsMcpSource, getDocsConfigSchema, normalizeDocsMcpRoute, resolveDocsMcpConfig, resolveDocsMcpPromptsConfig, runDocsMcpStdio } from "./mcp.mjs";
10
10
  import { n as isDocsCloudAskAIProvider, t as createDocsCloudAskAIResponse } from "./cloud-ask-ai-BRBK4RBG.mjs";
11
11
  import { createDocsCloudRouteHandler, createDocsCloudServer } from "./docs-cloud-server.mjs";
@@ -4,7 +4,7 @@ import "./standards-discovery-Ckx0tN7B.mjs";
4
4
  import "./content-change-hydration-Cy2a7rb1.mjs";
5
5
  import "./sitemap-server-rv00bP21.mjs";
6
6
  import "./agent-skills-server-CwmzAzf_.mjs";
7
- import "./agent-evals-GFDpcXO3.mjs";
7
+ import "./agent-evals-CKZ7bPSp.mjs";
8
8
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
9
9
  import "./code-blocks-0wjOsqdJ.mjs";
10
10
  import "./server.mjs";
@@ -5,7 +5,7 @@ import { isDocsAgentSkillName, validateDocsAgentSkillFrontmatter } from "./agent
5
5
  import "./content-change-hydration-Cy2a7rb1.mjs";
6
6
  import "./sitemap-server-rv00bP21.mjs";
7
7
  import "./agent-skills-server-CwmzAzf_.mjs";
8
- import "./agent-evals-GFDpcXO3.mjs";
8
+ import "./agent-evals-CKZ7bPSp.mjs";
9
9
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
10
10
  import "./code-blocks-0wjOsqdJ.mjs";
11
11
  import "./server.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/docs",
3
- "version": "0.2.91",
3
+ "version": "0.2.92",
4
4
  "description": "Modern, flexible MDX-based docs framework — core types, config, and CLI",
5
5
  "keywords": [
6
6
  "docs",