@farming-labs/docs 0.2.120 → 0.2.122
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/README.md +8 -0
- package/dist/access.d.mts +13 -0
- package/dist/access.mjs +56 -0
- package/dist/agent-conformance.d.mts +60 -0
- package/dist/agent-conformance.mjs +538 -0
- package/dist/agent-contract.d.mts +47 -0
- package/dist/agent-contract.mjs +645 -0
- package/dist/agent-detection.d.mts +6 -0
- package/dist/agent-detection.mjs +83 -0
- package/dist/agent-evals.d.mts +224 -0
- package/dist/{agent-evals-BLNLvXbG.mjs → agent-evals.mjs} +7 -565
- package/dist/agent-feedback-evaluations-node.mjs +38 -0
- package/dist/agent-feedback-evaluations.d.mts +91 -0
- package/dist/{agent-feedback-evaluations-CcMGlgsO.mjs → agent-feedback-evaluations.mjs} +2 -2
- package/dist/agent-feedback-loop.d.mts +45 -0
- package/dist/{agent-feedback-loop-CcZL_sb1.mjs → agent-feedback-loop.mjs} +1 -1
- package/dist/agent-maintenance.d.mts +71 -0
- package/dist/{agent-maintenance-CuZ7iAKq.mjs → agent-maintenance.mjs} +1 -1
- package/dist/agent-provenance.d.mts +23 -0
- package/dist/agent-provenance.mjs +77 -0
- package/dist/agent-scope.mjs +321 -0
- package/dist/agent-skills-archive.mjs +86 -0
- package/dist/agent-skills-bundle.d.mts +1 -1
- package/dist/{agent-skills-progressive-disclosure-PjPtTYL-.mjs → agent-skills-progressive-disclosure.mjs} +2 -2
- package/dist/{agent-skills-server-D5IuvwM7.d.mts → agent-skills-server.d.mts} +3 -3
- package/dist/{agent-skills-server-BC7md56k.mjs → agent-skills-server.mjs} +2 -2
- package/dist/agent-skills-vite.d.mts +3 -3
- package/dist/agent-skills-vite.mjs +1 -2
- package/dist/agent-surface-drift.mjs +236 -0
- package/dist/{golden-evaluations-CLUViycJ.mjs → agent-usefulness.mjs} +5 -290
- package/dist/{content-change-hydration-wqXIZHp6.d.mts → agent.d.mts} +10 -411
- package/dist/agent.mjs +2729 -0
- package/dist/{analytics-w3FDOksr.d.mts → analytics.d.mts} +2 -2
- package/dist/{analytics-p8Vhhu2P.mjs → analytics.mjs} +2 -2
- package/dist/{sitemap-server-BUdPBcGs.d.mts → api-reference.d.mts} +2 -6
- package/dist/api-reference.mjs +1481 -0
- package/dist/{audience-exposure-DBrFWULA.d.mts → audience-exposure.d.mts} +1 -1
- package/dist/audience-exposure.mjs +8 -0
- package/dist/audience.d.mts +44 -0
- package/dist/audience.mjs +1654 -0
- package/dist/authoring-mcp.d.mts +44 -0
- package/dist/{authoring-mcp-CiCUQe3o.mjs → authoring-mcp.mjs} +3 -3
- package/dist/browser.d.mts +6 -4
- package/dist/browser.mjs +6 -7
- package/dist/build.d.mts +8 -0
- package/dist/build.mjs +8 -0
- package/dist/changelog.d.mts +20 -0
- package/dist/changelog.mjs +39 -0
- package/dist/{agent-export-CA6IUQ7T.mjs → cli/agent-export.mjs} +19 -45
- package/dist/{agent-CYk2DxY7.mjs → cli/agent.mjs} +6 -35
- package/dist/{agents-BUiVmj8i.mjs → cli/agents.mjs} +5 -18
- package/dist/cli/api-doctor.mjs +206 -0
- package/dist/{authoring-C2ymvYWl.mjs → cli/authoring.mjs} +2 -8
- package/dist/{cloud-6eKrlmKd.mjs → cli/cloud.mjs} +3 -3
- package/dist/{codeblocks-CHpgAwY-.mjs → cli/codeblocks.mjs} +2 -2
- package/dist/cli/config.d.mts +11 -0
- package/dist/{config-BZnKAj_Y.mjs → cli/config.mjs} +1 -1
- package/dist/cli/dev-banner.mjs +58 -0
- package/dist/{dev-Bnn-NUNa.mjs → cli/dev.mjs} +3 -57
- package/dist/{doctor-Bfkrkzad.mjs → cli/doctor.mjs} +41 -226
- package/dist/{downgrade-CHMta85e.mjs → cli/downgrade.mjs} +2 -2
- package/dist/cli/errors.d.mts +4 -0
- package/dist/{errors-BtnVLhNF.mjs → cli/errors.mjs} +1 -1
- package/dist/{feedback-evals-DMilg9pY.mjs → cli/feedback-evals.mjs} +3 -36
- package/dist/{feedback-DL4T5oIO.mjs → cli/feedback.mjs} +1 -1
- package/dist/cli/git-dates.mjs +35 -0
- package/dist/cli/golden-evaluations.mjs +52 -0
- package/dist/cli/index.d.mts +2 -3
- package/dist/cli/index.mjs +38 -38
- package/dist/{init-K0LmXDZ5.mjs → cli/init.mjs} +3 -3
- package/dist/{mcp-iLCmnPJI.mjs → cli/mcp.mjs} +7 -19
- package/dist/{openapi-diff-HcpUNjA-.mjs → cli/openapi-diff.mjs} +2 -7
- package/dist/{openapi-sdk-BQKC6H-_.mjs → cli/openapi-sdk.mjs} +2 -7
- package/dist/{openapi-source-DK6ts_Bk.mjs → cli/openapi-source.mjs} +2 -2
- package/dist/{package-version-HJhYeq4M.mjs → cli/package-version.mjs} +2 -2
- package/dist/{propose-JmUv_BTt.mjs → cli/propose.mjs} +1 -1
- package/dist/{review-C6EmbV0l.mjs → cli/review.mjs} +16 -15
- package/dist/{robots-DteZB8vl.mjs → cli/robots.mjs} +3 -7
- package/dist/{search-Bhuv_YsL.mjs → cli/search.mjs} +7 -20
- package/dist/{sitemap-DW5LDKDa.mjs → cli/sitemap.mjs} +7 -42
- package/dist/{skills-BAPQLSCm.mjs → cli/skills.mjs} +5 -19
- package/dist/{templates-BuQ8YsGv.mjs → cli/templates.mjs} +1 -1
- package/dist/{upgrade-DlQMOFV1.mjs → cli/upgrade.mjs} +2 -2
- package/dist/{utils-C7KDrPpA.mjs → cli/utils.mjs} +1 -1
- package/dist/client/react.d.mts +2 -18
- package/dist/client/react.mjs +1 -157
- package/dist/{cloud-analytics-D14HplI7.mjs → cloud-analytics.mjs} +1 -1
- package/dist/{cloud-ask-ai-BrsTXQf6.d.mts → cloud-ask-ai.d.mts} +2 -2
- package/dist/{cloud-ask-ai-BqKhjpS5.mjs → cloud-ask-ai.mjs} +3 -3
- package/dist/code-blocks.d.mts +51 -0
- package/dist/{code-blocks-GYdvS3BH.mjs → code-blocks.mjs} +2 -2
- package/dist/code-group-mdx.d.mts +11 -0
- package/dist/code-group-mdx.mjs +57 -0
- package/dist/content-change-hydration.d.mts +87 -0
- package/dist/{openapi-mcp-BIOTLiA7.mjs → content-change-hydration.mjs} +5 -210
- package/dist/content-changes.d.mts +47 -0
- package/dist/content-changes.mjs +216 -0
- package/dist/create-theme.d.mts +48 -0
- package/dist/create-theme.mjs +57 -0
- package/dist/date.d.mts +5 -0
- package/dist/date.mjs +17 -0
- package/dist/define-docs.d.mts +9 -0
- package/dist/define-docs.mjs +46 -0
- package/dist/docs-cloud-client.d.mts +18 -0
- package/dist/docs-cloud-client.mjs +161 -0
- package/dist/docs-cloud-server.d.mts +2 -2
- package/dist/docs-cloud-server.mjs +2 -3
- package/dist/heading-toc.d.mts +10 -0
- package/dist/heading-toc.mjs +23 -0
- package/dist/http-body.d.mts +14 -0
- package/dist/{http-body-DkAPk6D5.mjs → http-body.mjs} +1 -1
- package/dist/http-cache.d.mts +25 -0
- package/dist/http-cache.mjs +140 -0
- package/dist/http-link.mjs +81 -0
- package/dist/i18n.d.mts +18 -0
- package/dist/{i18n-B1gJ9EW0.mjs → i18n.mjs} +1 -1
- package/dist/index.d.mts +42 -674
- package/dist/index.mjs +40 -14
- package/dist/markdown-rendering.mjs +1 -1
- package/dist/markdown-section-cache.mjs +49 -0
- package/dist/markdown-sections.d.mts +47 -0
- package/dist/{markdown-sections-9Oxr33b-.mjs → markdown-sections.mjs} +29 -703
- package/dist/mcp-auth.d.mts +14 -0
- package/dist/mcp-auth.mjs +99 -0
- package/dist/mcp.d.mts +5 -3
- package/dist/mcp.mjs +21 -9
- package/dist/mdx.d.mts +6 -0
- package/dist/mdx.mjs +7 -0
- package/dist/metadata.d.mts +60 -0
- package/dist/{metadata-BOHn0Y5K.mjs → metadata.mjs} +2 -2
- package/dist/native-api-reference.mjs +968 -0
- package/dist/okf.d.mts +42 -0
- package/dist/okf.mjs +145 -0
- package/dist/openapi-contract.mjs +154 -0
- package/dist/{openapi-mcp-node-C4jUpZG6.mjs → openapi-mcp-node.mjs} +1 -1
- package/dist/openapi-mcp.d.mts +26 -0
- package/dist/openapi-mcp.mjs +132 -0
- package/dist/openapi-operations.d.mts +71 -0
- package/dist/{openapi-operations-DFpaqOqA.mjs → openapi-operations.mjs} +1 -1
- package/dist/openapi-overlays.mjs +221 -0
- package/dist/openapi-references.mjs +233 -0
- package/dist/pagination.d.mts +7 -0
- package/dist/pagination.mjs +100 -0
- package/dist/prompt-references.d.mts +12 -0
- package/dist/prompt-references.mjs +132 -0
- package/dist/prompt-utils.d.mts +36 -0
- package/dist/{prompt-utils-B5g-bv7o.mjs → prompt-utils.mjs} +1 -57
- package/dist/reading-time.d.mts +23 -0
- package/dist/reading-time.mjs +58 -0
- package/dist/related.d.mts +7 -0
- package/dist/related.mjs +50 -0
- package/dist/retrieval-digest.d.mts +16 -0
- package/dist/{retrieval-digest-CT-eIEcp.mjs → retrieval-digest.mjs} +1 -1
- package/dist/review.d.mts +69 -0
- package/dist/review.mjs +562 -0
- package/dist/robots.d.mts +54 -0
- package/dist/{robots-BYJAVeI6.mjs → robots.mjs} +5 -3
- package/dist/runtime.d.mts +3 -3
- package/dist/runtime.mjs +3 -9
- package/dist/search.d.mts +210 -0
- package/dist/search.mjs +3401 -0
- package/dist/server.d.mts +22 -198
- package/dist/server.mjs +21 -19
- package/dist/sidebar.d.mts +15 -0
- package/dist/sidebar.mjs +73 -0
- package/dist/sitemap-server.d.mts +7 -0
- package/dist/{sitemap-server-Lg3YhUx4.mjs → sitemap-server.mjs} +2 -2
- package/dist/{sitemap-Cl8vrixd.d.mts → sitemap.d.mts} +3 -3
- package/dist/sitemap.mjs +254 -0
- package/dist/{standards-discovery-BHPc7YIX.d.mts → standards-discovery.d.mts} +2 -2
- package/dist/{standards-discovery-sSEojU80.mjs → standards-discovery.mjs} +3 -139
- package/dist/telemetry-runtime.d.mts +42 -0
- package/dist/telemetry-runtime.mjs +238 -0
- package/dist/telemetry.d.mts +15 -0
- package/dist/telemetry.mjs +117 -0
- package/dist/{types-BJFeMXWZ.d.mts → types.d.mts} +3 -2
- package/dist/urls.d.mts +7 -0
- package/dist/urls.mjs +21 -0
- package/dist/utils.d.mts +8 -0
- package/dist/utils.mjs +22 -0
- package/package.json +21 -3
- package/dist/agent-DkAidqtV.mjs +0 -9026
- package/dist/api-reference-BYee4zMo.mjs +0 -3046
- package/dist/prompt-references-DMgbu_dz.mjs +0 -1082
- package/dist/retrieval-digest-AOx2-LbC.d.mts +0 -367
- package/dist/sidebar-CFHBj29f.mjs +0 -421
- package/dist/sidebar-CMPbVfGP.d.mts +0 -63
- /package/dist/{openapi-CfCzX_a1.mjs → cli/openapi.mjs} +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
//#region src/agent-detection.ts
|
|
2
|
+
const DOCS_AI_AGENT_USER_AGENT_PATTERNS = [
|
|
3
|
+
"claudebot",
|
|
4
|
+
"claude-searchbot",
|
|
5
|
+
"claude-user",
|
|
6
|
+
"anthropic-ai",
|
|
7
|
+
"claude-web",
|
|
8
|
+
"chatgpt",
|
|
9
|
+
"gptbot",
|
|
10
|
+
"oai-searchbot",
|
|
11
|
+
"openai",
|
|
12
|
+
"gemini",
|
|
13
|
+
"bard",
|
|
14
|
+
"google-cloudvertexbot",
|
|
15
|
+
"google-extended",
|
|
16
|
+
"meta-externalagent",
|
|
17
|
+
"meta-externalfetcher",
|
|
18
|
+
"meta-webindexer",
|
|
19
|
+
"perplexity",
|
|
20
|
+
"youbot",
|
|
21
|
+
"you.com",
|
|
22
|
+
"deepseekbot",
|
|
23
|
+
"cursor",
|
|
24
|
+
"github-copilot",
|
|
25
|
+
"codeium",
|
|
26
|
+
"tabnine",
|
|
27
|
+
"sourcegraph",
|
|
28
|
+
"cohere-ai",
|
|
29
|
+
"bytespider",
|
|
30
|
+
"amazonbot",
|
|
31
|
+
"ai2bot",
|
|
32
|
+
"diffbot",
|
|
33
|
+
"omgili",
|
|
34
|
+
"omgilibot"
|
|
35
|
+
];
|
|
36
|
+
const DOCS_TRADITIONAL_BOT_USER_AGENT_PATTERNS = [
|
|
37
|
+
"googlebot",
|
|
38
|
+
"bingbot",
|
|
39
|
+
"yandexbot",
|
|
40
|
+
"baiduspider",
|
|
41
|
+
"duckduckbot",
|
|
42
|
+
"slurp",
|
|
43
|
+
"msnbot",
|
|
44
|
+
"facebot",
|
|
45
|
+
"twitterbot",
|
|
46
|
+
"linkedinbot",
|
|
47
|
+
"whatsapp",
|
|
48
|
+
"telegrambot",
|
|
49
|
+
"pingdom",
|
|
50
|
+
"uptimerobot",
|
|
51
|
+
"newrelic",
|
|
52
|
+
"datadog",
|
|
53
|
+
"statuspage",
|
|
54
|
+
"site24x7",
|
|
55
|
+
"applebot"
|
|
56
|
+
];
|
|
57
|
+
const DOCS_BOT_LIKE_USER_AGENT_PATTERN = /bot|agent|fetch|crawl|spider|search/i;
|
|
58
|
+
const DOCS_BOT_LIKE_USER_AGENT_TERMS = [
|
|
59
|
+
"bot",
|
|
60
|
+
"agent",
|
|
61
|
+
"fetch",
|
|
62
|
+
"crawl",
|
|
63
|
+
"spider",
|
|
64
|
+
"search"
|
|
65
|
+
];
|
|
66
|
+
const DOCS_AI_AGENT_USER_AGENT_HEADER_PATTERN = buildDocsUserAgentHeaderPattern(DOCS_AI_AGENT_USER_AGENT_PATTERNS);
|
|
67
|
+
const DOCS_TRADITIONAL_BOT_USER_AGENT_HEADER_PATTERN = buildDocsUserAgentHeaderPattern(DOCS_TRADITIONAL_BOT_USER_AGENT_PATTERNS);
|
|
68
|
+
const DOCS_BOT_LIKE_USER_AGENT_HEADER_PATTERN = buildDocsUserAgentHeaderPattern(DOCS_BOT_LIKE_USER_AGENT_TERMS);
|
|
69
|
+
function buildDocsUserAgentHeaderPattern(patterns) {
|
|
70
|
+
return `.*(?:${patterns.map(toCaseInsensitiveHeaderPattern).join("|")}).*`;
|
|
71
|
+
}
|
|
72
|
+
function toCaseInsensitiveHeaderPattern(value) {
|
|
73
|
+
return value.split("").map((char) => {
|
|
74
|
+
if (/^[a-z]$/i.test(char)) return `[${char.toLowerCase()}${char.toUpperCase()}]`;
|
|
75
|
+
return escapeRegex(char);
|
|
76
|
+
}).join("");
|
|
77
|
+
}
|
|
78
|
+
function escapeRegex(value) {
|
|
79
|
+
return value.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&");
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
export { DOCS_AI_AGENT_USER_AGENT_HEADER_PATTERN, DOCS_AI_AGENT_USER_AGENT_PATTERNS, DOCS_BOT_LIKE_USER_AGENT_HEADER_PATTERN, DOCS_BOT_LIKE_USER_AGENT_PATTERN, DOCS_TRADITIONAL_BOT_USER_AGENT_HEADER_PATTERN, DOCS_TRADITIONAL_BOT_USER_AGENT_PATTERNS };
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { DocsAgentEvaluationAnswerProvider, DocsAgentEvaluationSurface, DocsAgentGoldenCoverageApplicability, DocsAgentGoldenExpectedExample, DocsAgentGoldenQueryVariant, DocsAgentGoldenTask, DocsAgentGoldenTaskExpectation, DocsAgentGoldenTaskFilters, DocsCodeBlocksValidateConfig, DocsSearchConfig } from "./types.mjs";
|
|
2
|
+
import { DocsCodeBlockValidationResult } from "./code-blocks.mjs";
|
|
3
|
+
import { DocsMcpPage } from "./mcp.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/agent-evals.d.ts
|
|
6
|
+
type DocsGoldenEvaluationStatus = "unmeasured" | "passed" | "failed";
|
|
7
|
+
type DocsGoldenEvaluationCoverageStatus = "measured" | "partially-measured" | "unmeasured" | "not-applicable";
|
|
8
|
+
type DocsGoldenTaskFilters = DocsAgentGoldenTaskFilters;
|
|
9
|
+
type DocsGoldenExpectedExample = DocsAgentGoldenExpectedExample;
|
|
10
|
+
type DocsGoldenTaskExpectation = DocsAgentGoldenTaskExpectation;
|
|
11
|
+
type DocsGoldenTask = DocsAgentGoldenTask;
|
|
12
|
+
interface DocsGoldenRetrievedSource {
|
|
13
|
+
rank: number;
|
|
14
|
+
url: string;
|
|
15
|
+
title: string;
|
|
16
|
+
framework?: string;
|
|
17
|
+
version?: string;
|
|
18
|
+
package?: string[];
|
|
19
|
+
tags?: string[];
|
|
20
|
+
utf8Bytes: number;
|
|
21
|
+
relevant: boolean;
|
|
22
|
+
truncated: boolean;
|
|
23
|
+
}
|
|
24
|
+
interface DocsGoldenRetrievalMetrics {
|
|
25
|
+
expectedRelevant: number;
|
|
26
|
+
retrievedRelevant: number;
|
|
27
|
+
recallAtK: number;
|
|
28
|
+
firstRelevantRank: number | null;
|
|
29
|
+
reciprocalRank: number;
|
|
30
|
+
forbiddenSources: string[];
|
|
31
|
+
passed: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface DocsGoldenCitationMetrics {
|
|
34
|
+
/** Where the citation evidence came from. Context/results are not model-answer citations. */
|
|
35
|
+
evidence: "context" | "results";
|
|
36
|
+
expected: string[];
|
|
37
|
+
actual: string[];
|
|
38
|
+
missing: string[];
|
|
39
|
+
unexpected: string[];
|
|
40
|
+
precision: number;
|
|
41
|
+
recall: number;
|
|
42
|
+
/** True when every rendered Source line maps one-to-one to a returned source record. */
|
|
43
|
+
integrity: boolean;
|
|
44
|
+
passed: boolean;
|
|
45
|
+
}
|
|
46
|
+
interface DocsGoldenSelectionMetrics {
|
|
47
|
+
requestedFramework?: string;
|
|
48
|
+
requestedVersion?: string;
|
|
49
|
+
requestedPackage?: string | readonly string[];
|
|
50
|
+
requestedTags?: string | readonly string[];
|
|
51
|
+
requestedLocale?: string;
|
|
52
|
+
expectedFramework?: string;
|
|
53
|
+
expectedVersion?: string;
|
|
54
|
+
expectedPackage?: string | readonly string[];
|
|
55
|
+
expectedTags?: string | readonly string[];
|
|
56
|
+
expectedLocale?: string;
|
|
57
|
+
firstFrameworkMatchRank: number | null;
|
|
58
|
+
firstVersionMatchRank: number | null;
|
|
59
|
+
firstPackageMatchRank?: number | null;
|
|
60
|
+
firstTagsMatchRank?: number | null;
|
|
61
|
+
firstLocaleMatchRank: number | null;
|
|
62
|
+
conflictingSources: string[];
|
|
63
|
+
ambiguousSources: string[];
|
|
64
|
+
passed: boolean;
|
|
65
|
+
}
|
|
66
|
+
interface DocsGoldenExampleResult {
|
|
67
|
+
expected: DocsGoldenExpectedExample;
|
|
68
|
+
matchedId?: string;
|
|
69
|
+
source?: string;
|
|
70
|
+
verification: "present" | "syntax" | "execute";
|
|
71
|
+
status: "passed" | "failed" | "skipped";
|
|
72
|
+
reason?: string;
|
|
73
|
+
syntaxValid: boolean;
|
|
74
|
+
executed: boolean;
|
|
75
|
+
executionStatus?: DocsCodeBlockValidationResult["status"];
|
|
76
|
+
/** @deprecated Static/planner executability signal retained for report compatibility. */
|
|
77
|
+
executable: boolean;
|
|
78
|
+
passed: boolean;
|
|
79
|
+
}
|
|
80
|
+
interface DocsGoldenExampleMetrics {
|
|
81
|
+
expected: number;
|
|
82
|
+
matched: number;
|
|
83
|
+
syntaxValid: number;
|
|
84
|
+
executed: number;
|
|
85
|
+
/** @deprecated Count of statically/planner-executable examples retained for compatibility. */
|
|
86
|
+
executable: number;
|
|
87
|
+
results: DocsGoldenExampleResult[];
|
|
88
|
+
passed: boolean;
|
|
89
|
+
}
|
|
90
|
+
interface DocsGoldenUsageMetrics {
|
|
91
|
+
budgetUnit: "utf8-bytes";
|
|
92
|
+
tokenBudget: number;
|
|
93
|
+
usedUtf8Bytes: number;
|
|
94
|
+
remainingUtf8Bytes: number;
|
|
95
|
+
estimatedTokens: number;
|
|
96
|
+
/** Exact conservative upper bound: one token per UTF-8 byte. */
|
|
97
|
+
conservativeTokenUpperBound: number;
|
|
98
|
+
usefulUtf8Bytes: number;
|
|
99
|
+
usefulByteRatio: number;
|
|
100
|
+
truncated: boolean;
|
|
101
|
+
withinBudget: boolean;
|
|
102
|
+
passed: boolean;
|
|
103
|
+
}
|
|
104
|
+
interface DocsGoldenAnswerMetrics {
|
|
105
|
+
evidence: "answer";
|
|
106
|
+
expected: boolean;
|
|
107
|
+
provided: boolean;
|
|
108
|
+
textIncludesMissing: string[];
|
|
109
|
+
textExcludesPresent: string[];
|
|
110
|
+
citations: string[];
|
|
111
|
+
requiredCitations: string[];
|
|
112
|
+
missingCitations: string[];
|
|
113
|
+
unexpectedCitations: string[];
|
|
114
|
+
forbiddenCitations: string[];
|
|
115
|
+
passed: boolean;
|
|
116
|
+
}
|
|
117
|
+
type DocsGoldenSafetyCaseKind = "prompt-injection" | "poisoned-citations" | "authenticated-content" | "freshness" | "framework-version-conflict" | "deleted-section-tombstones";
|
|
118
|
+
interface DocsGoldenSafetyCaseResult {
|
|
119
|
+
kind: DocsGoldenSafetyCaseKind;
|
|
120
|
+
passed: boolean;
|
|
121
|
+
issues: string[];
|
|
122
|
+
}
|
|
123
|
+
interface DocsGoldenQueryVariantResult {
|
|
124
|
+
kind: DocsAgentGoldenQueryVariant["kind"];
|
|
125
|
+
query: string;
|
|
126
|
+
passed: boolean;
|
|
127
|
+
score: number;
|
|
128
|
+
firstRelevantRank: number | null;
|
|
129
|
+
citationIntegrity: boolean;
|
|
130
|
+
issues: string[];
|
|
131
|
+
}
|
|
132
|
+
interface DocsGoldenSafetyMetrics {
|
|
133
|
+
expected: boolean;
|
|
134
|
+
passed: boolean;
|
|
135
|
+
cases: DocsGoldenSafetyCaseResult[];
|
|
136
|
+
queryVariants: DocsGoldenQueryVariantResult[];
|
|
137
|
+
}
|
|
138
|
+
interface DocsGoldenTaskReport {
|
|
139
|
+
id: string;
|
|
140
|
+
query: string;
|
|
141
|
+
surface: DocsAgentEvaluationSurface;
|
|
142
|
+
provider: string;
|
|
143
|
+
status: "passed" | "failed";
|
|
144
|
+
passed: boolean;
|
|
145
|
+
score: number;
|
|
146
|
+
context: string;
|
|
147
|
+
sources: DocsGoldenRetrievedSource[];
|
|
148
|
+
retrieval: DocsGoldenRetrievalMetrics;
|
|
149
|
+
citations: DocsGoldenCitationMetrics;
|
|
150
|
+
answer: DocsGoldenAnswerMetrics;
|
|
151
|
+
safety: DocsGoldenSafetyMetrics;
|
|
152
|
+
selection: DocsGoldenSelectionMetrics;
|
|
153
|
+
examples: DocsGoldenExampleMetrics;
|
|
154
|
+
usage: DocsGoldenUsageMetrics;
|
|
155
|
+
coverageApplicability: {
|
|
156
|
+
executableExamples: DocsAgentGoldenCoverageApplicability;
|
|
157
|
+
};
|
|
158
|
+
issues: string[];
|
|
159
|
+
}
|
|
160
|
+
interface DocsGoldenTasksReport {
|
|
161
|
+
status: DocsGoldenEvaluationStatus;
|
|
162
|
+
passed: boolean | null;
|
|
163
|
+
/** Compatibility alias for quality.score. */
|
|
164
|
+
score: number | null;
|
|
165
|
+
taskCount: number;
|
|
166
|
+
passedTaskCount: number;
|
|
167
|
+
failedTaskCount: number;
|
|
168
|
+
/** Quality across only the expectations configured by each task. */
|
|
169
|
+
quality: DocsGoldenEvaluationQuality;
|
|
170
|
+
/** Coverage is intentionally separate so absent evaluation dimensions cannot look perfect. */
|
|
171
|
+
coverage: DocsGoldenEvaluationCoverage;
|
|
172
|
+
tasks: DocsGoldenTaskReport[];
|
|
173
|
+
}
|
|
174
|
+
interface DocsGoldenEvaluationQuality {
|
|
175
|
+
status: DocsGoldenEvaluationStatus;
|
|
176
|
+
passed: boolean | null;
|
|
177
|
+
score: number | null;
|
|
178
|
+
taskCount: number;
|
|
179
|
+
passedTaskCount: number;
|
|
180
|
+
failedTaskCount: number;
|
|
181
|
+
}
|
|
182
|
+
interface DocsGoldenEvaluationDimensionCoverage {
|
|
183
|
+
status: DocsGoldenEvaluationCoverageStatus;
|
|
184
|
+
measuredTaskCount: number;
|
|
185
|
+
applicableTaskCount: number;
|
|
186
|
+
notApplicableTaskCount: number;
|
|
187
|
+
totalTaskCount: number;
|
|
188
|
+
coveragePercent: number;
|
|
189
|
+
}
|
|
190
|
+
interface DocsGoldenEvaluationCoverage {
|
|
191
|
+
status: DocsGoldenEvaluationCoverageStatus;
|
|
192
|
+
measuredTaskDimensions: number;
|
|
193
|
+
applicableTaskDimensions: number;
|
|
194
|
+
notApplicableTaskDimensions: number;
|
|
195
|
+
totalTaskDimensions: number;
|
|
196
|
+
coveragePercent: number;
|
|
197
|
+
dimensions: {
|
|
198
|
+
safety: DocsGoldenEvaluationDimensionCoverage;
|
|
199
|
+
answerQuality: DocsGoldenEvaluationDimensionCoverage;
|
|
200
|
+
executableExamples: DocsGoldenEvaluationDimensionCoverage;
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
interface RunDocsGoldenTasksOptions {
|
|
204
|
+
/** Default evaluation surface. Tasks may override this with `task.surface`. */
|
|
205
|
+
surface?: DocsAgentEvaluationSurface;
|
|
206
|
+
/** Search configuration used by configured-search and ask-ai-context. */
|
|
207
|
+
search?: boolean | DocsSearchConfig;
|
|
208
|
+
/** Production-resolved Ask AI retrieval config, including `ai.useMcp`. */
|
|
209
|
+
askAISearch?: boolean | DocsSearchConfig;
|
|
210
|
+
siteTitle?: string;
|
|
211
|
+
baseUrl?: string;
|
|
212
|
+
rootDir?: string;
|
|
213
|
+
/** Permit external configured search or HTTP answer calls. @default false */
|
|
214
|
+
allowNetwork?: boolean;
|
|
215
|
+
/** Per-attempt configured-search/Ask-AI retrieval timeout in milliseconds. @default 30000 */
|
|
216
|
+
searchTimeoutMs?: number;
|
|
217
|
+
/** Project code-block validation config used only by explicit execute expectations. */
|
|
218
|
+
codeBlocksValidate?: boolean | DocsCodeBlocksValidateConfig;
|
|
219
|
+
/** Optional actual-answer runner. No model or HTTP request is made when omitted. */
|
|
220
|
+
answer?: DocsAgentEvaluationAnswerProvider;
|
|
221
|
+
}
|
|
222
|
+
declare function runDocsGoldenTasks(pages: readonly DocsMcpPage[], tasks: readonly DocsGoldenTask[] | undefined, options?: RunDocsGoldenTasksOptions): Promise<DocsGoldenTasksReport>;
|
|
223
|
+
//#endregion
|
|
224
|
+
export { DocsGoldenAnswerMetrics, DocsGoldenCitationMetrics, DocsGoldenEvaluationCoverage, DocsGoldenEvaluationCoverageStatus, DocsGoldenEvaluationDimensionCoverage, DocsGoldenEvaluationQuality, DocsGoldenEvaluationStatus, DocsGoldenExampleMetrics, DocsGoldenExampleResult, DocsGoldenExpectedExample, DocsGoldenQueryVariantResult, DocsGoldenRetrievalMetrics, DocsGoldenRetrievedSource, DocsGoldenSafetyCaseKind, DocsGoldenSafetyCaseResult, DocsGoldenSafetyMetrics, DocsGoldenSelectionMetrics, DocsGoldenTask, DocsGoldenTaskExpectation, DocsGoldenTaskFilters, DocsGoldenTaskReport, DocsGoldenTasksReport, DocsGoldenUsageMetrics, RunDocsGoldenTasksOptions, runDocsGoldenTasks };
|