ax-audit 3.6.0 → 4.0.0
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/CHANGELOG.md +138 -0
- package/LICENSE +1 -1
- package/README.md +58 -36
- package/dist/baseline.d.ts +2 -0
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +42 -4
- package/dist/baseline.js.map +1 -1
- package/dist/check-ids.d.ts +19 -0
- package/dist/check-ids.d.ts.map +1 -0
- package/dist/check-ids.js +53 -0
- package/dist/check-ids.js.map +1 -0
- package/dist/checks/agent-access.d.ts +23 -6
- package/dist/checks/agent-access.d.ts.map +1 -1
- package/dist/checks/agent-access.js +200 -54
- package/dist/checks/agent-access.js.map +1 -1
- package/dist/checks/agent-card.d.ts +37 -0
- package/dist/checks/agent-card.d.ts.map +1 -0
- package/dist/checks/agent-card.js +352 -0
- package/dist/checks/agent-card.js.map +1 -0
- package/dist/checks/agent-operability.d.ts +66 -0
- package/dist/checks/agent-operability.d.ts.map +1 -0
- package/dist/checks/agent-operability.js +383 -0
- package/dist/checks/agent-operability.js.map +1 -0
- package/dist/checks/agent-skills.d.ts +24 -0
- package/dist/checks/agent-skills.d.ts.map +1 -0
- package/dist/checks/agent-skills.js +316 -0
- package/dist/checks/agent-skills.js.map +1 -0
- package/dist/checks/ai-catalog.d.ts +28 -0
- package/dist/checks/ai-catalog.d.ts.map +1 -0
- package/dist/checks/ai-catalog.js +254 -0
- package/dist/checks/ai-catalog.js.map +1 -0
- package/dist/checks/ai-directives.d.ts +57 -0
- package/dist/checks/ai-directives.d.ts.map +1 -0
- package/dist/checks/ai-directives.js +263 -0
- package/dist/checks/ai-directives.js.map +1 -0
- package/dist/checks/api-discovery.d.ts +26 -0
- package/dist/checks/api-discovery.d.ts.map +1 -0
- package/dist/checks/api-discovery.js +432 -0
- package/dist/checks/api-discovery.js.map +1 -0
- package/dist/checks/auth-discovery.d.ts +28 -0
- package/dist/checks/auth-discovery.d.ts.map +1 -0
- package/dist/checks/auth-discovery.js +213 -0
- package/dist/checks/auth-discovery.js.map +1 -0
- package/dist/checks/commerce-discovery.d.ts +40 -0
- package/dist/checks/commerce-discovery.d.ts.map +1 -0
- package/dist/checks/commerce-discovery.js +295 -0
- package/dist/checks/commerce-discovery.js.map +1 -0
- package/dist/checks/content-negotiation.d.ts.map +1 -1
- package/dist/checks/content-negotiation.js +135 -20
- package/dist/checks/content-negotiation.js.map +1 -1
- package/dist/checks/crawl-efficiency.d.ts +13 -1
- package/dist/checks/crawl-efficiency.d.ts.map +1 -1
- package/dist/checks/crawl-efficiency.js +65 -1
- package/dist/checks/crawl-efficiency.js.map +1 -1
- package/dist/checks/frontmatter.d.ts +34 -0
- package/dist/checks/frontmatter.d.ts.map +1 -0
- package/dist/checks/frontmatter.js +100 -0
- package/dist/checks/frontmatter.js.map +1 -0
- package/dist/checks/html-rendering.d.ts.map +1 -1
- package/dist/checks/html-rendering.js +0 -1
- package/dist/checks/html-rendering.js.map +1 -1
- package/dist/checks/html-utils.d.ts +10 -0
- package/dist/checks/html-utils.d.ts.map +1 -1
- package/dist/checks/html-utils.js +19 -0
- package/dist/checks/html-utils.js.map +1 -1
- package/dist/checks/http-headers.d.ts.map +1 -1
- package/dist/checks/http-headers.js +82 -10
- package/dist/checks/http-headers.js.map +1 -1
- package/dist/checks/http-hygiene.d.ts +26 -0
- package/dist/checks/http-hygiene.d.ts.map +1 -0
- package/dist/checks/http-hygiene.js +257 -0
- package/dist/checks/http-hygiene.js.map +1 -0
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +24 -8
- package/dist/checks/index.js.map +1 -1
- package/dist/checks/llms-txt.d.ts +15 -0
- package/dist/checks/llms-txt.d.ts.map +1 -1
- package/dist/checks/llms-txt.js +162 -2
- package/dist/checks/llms-txt.js.map +1 -1
- package/dist/checks/mcp-discovery.d.ts +30 -0
- package/dist/checks/mcp-discovery.d.ts.map +1 -0
- package/dist/checks/mcp-discovery.js +523 -0
- package/dist/checks/mcp-discovery.js.map +1 -0
- package/dist/checks/meta-tags.d.ts.map +1 -1
- package/dist/checks/meta-tags.js +6 -5
- package/dist/checks/meta-tags.js.map +1 -1
- package/dist/checks/robots-parser.d.ts +110 -0
- package/dist/checks/robots-parser.d.ts.map +1 -0
- package/dist/checks/robots-parser.js +277 -0
- package/dist/checks/robots-parser.js.map +1 -0
- package/dist/checks/robots-txt.d.ts +2 -20
- package/dist/checks/robots-txt.d.ts.map +1 -1
- package/dist/checks/robots-txt.js +219 -120
- package/dist/checks/robots-txt.js.map +1 -1
- package/dist/checks/rsl.d.ts +0 -2
- package/dist/checks/rsl.d.ts.map +1 -1
- package/dist/checks/rsl.js +1 -11
- package/dist/checks/rsl.js.map +1 -1
- package/dist/checks/security-txt.d.ts.map +1 -1
- package/dist/checks/security-txt.js +0 -1
- package/dist/checks/security-txt.js.map +1 -1
- package/dist/checks/seo-basics.d.ts.map +1 -1
- package/dist/checks/seo-basics.js +0 -1
- package/dist/checks/seo-basics.js.map +1 -1
- package/dist/checks/sitemap.d.ts.map +1 -1
- package/dist/checks/sitemap.js +0 -1
- package/dist/checks/sitemap.js.map +1 -1
- package/dist/checks/structured-data.d.ts.map +1 -1
- package/dist/checks/structured-data.js +215 -4
- package/dist/checks/structured-data.js.map +1 -1
- package/dist/checks/structured-fields.d.ts +46 -0
- package/dist/checks/structured-fields.d.ts.map +1 -0
- package/dist/checks/structured-fields.js +112 -0
- package/dist/checks/structured-fields.js.map +1 -0
- package/dist/checks/surface.d.ts +59 -0
- package/dist/checks/surface.d.ts.map +1 -0
- package/dist/checks/surface.js +106 -0
- package/dist/checks/surface.js.map +1 -0
- package/dist/checks/tls-https.d.ts.map +1 -1
- package/dist/checks/tls-https.js +0 -1
- package/dist/checks/tls-https.js.map +1 -1
- package/dist/checks/usage-policy.d.ts +53 -0
- package/dist/checks/usage-policy.d.ts.map +1 -0
- package/dist/checks/usage-policy.js +339 -0
- package/dist/checks/usage-policy.js.map +1 -0
- package/dist/checks/utils.d.ts +25 -1
- package/dist/checks/utils.d.ts.map +1 -1
- package/dist/checks/utils.js +33 -1
- package/dist/checks/utils.js.map +1 -1
- package/dist/checks/waf.d.ts +75 -0
- package/dist/checks/waf.d.ts.map +1 -0
- package/dist/checks/waf.js +203 -0
- package/dist/checks/waf.js.map +1 -0
- package/dist/checks/webmcp.d.ts +55 -0
- package/dist/checks/webmcp.d.ts.map +1 -0
- package/dist/checks/webmcp.js +209 -0
- package/dist/checks/webmcp.js.map +1 -0
- package/dist/checks/well-known.d.ts +38 -0
- package/dist/checks/well-known.d.ts.map +1 -0
- package/dist/checks/well-known.js +202 -0
- package/dist/checks/well-known.js.map +1 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +124 -4
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +195 -14
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +598 -70
- package/dist/constants.js.map +1 -1
- package/dist/fetcher.d.ts.map +1 -1
- package/dist/fetcher.js +44 -14
- package/dist/fetcher.js.map +1 -1
- package/dist/guide-urls.js +1 -1
- package/dist/guide-urls.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +5 -1
- package/dist/orchestrator.js.map +1 -1
- package/dist/reporter/html.d.ts +9 -0
- package/dist/reporter/html.d.ts.map +1 -1
- package/dist/reporter/html.js +49 -11
- package/dist/reporter/html.js.map +1 -1
- package/dist/reporter/markdown.d.ts.map +1 -1
- package/dist/reporter/markdown.js +36 -6
- package/dist/reporter/markdown.js.map +1 -1
- package/dist/reporter/terminal.d.ts.map +1 -1
- package/dist/reporter/terminal.js +36 -1
- package/dist/reporter/terminal.js.map +1 -1
- package/dist/scorer.d.ts +10 -0
- package/dist/scorer.d.ts.map +1 -1
- package/dist/scorer.js +22 -5
- package/dist/scorer.js.map +1 -1
- package/dist/types.d.ts +90 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/architecture.md +27 -11
- package/docs/checks.md +285 -52
- package/docs/cli.md +36 -0
- package/docs/concepts.md +27 -13
- package/docs/faq.md +18 -6
- package/docs/getting-started.md +20 -13
- package/docs/roadmap.md +367 -0
- package/package.json +13 -5
- package/dist/checks/agent-json.d.ts +0 -14
- package/dist/checks/agent-json.d.ts.map +0 -1
- package/dist/checks/agent-json.js +0 -167
- package/dist/checks/agent-json.js.map +0 -1
- package/dist/checks/mcp.d.ts +0 -4
- package/dist/checks/mcp.d.ts.map +0 -1
- package/dist/checks/mcp.js +0 -162
- package/dist/checks/mcp.js.map +0 -1
- package/dist/checks/openapi.d.ts +0 -4
- package/dist/checks/openapi.d.ts.map +0 -1
- package/dist/checks/openapi.js +0 -121
- package/dist/checks/openapi.js.map +0 -1
- package/dist/checks/well-known-ai.d.ts +0 -17
- package/dist/checks/well-known-ai.d.ts.map +0 -1
- package/dist/checks/well-known-ai.js +0 -123
- package/dist/checks/well-known-ai.js.map +0 -1
package/dist/constants.d.ts
CHANGED
|
@@ -1,29 +1,133 @@
|
|
|
1
|
-
import type { Grade, SecurityHeader } from './types.js';
|
|
1
|
+
import type { CheckCategory, Grade, SecurityHeader } from './types.js';
|
|
2
2
|
export declare const VERSION: string;
|
|
3
3
|
export declare const USER_AGENT: string;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* What an AI client does with a page, and therefore what a site loses by
|
|
6
|
+
* blocking it. This distinction is the single most important thing an audit can
|
|
7
|
+
* tell an operator: blocking a training crawler is a policy choice, while
|
|
8
|
+
* blocking a search crawler removes the site from that assistant's answers.
|
|
8
9
|
*
|
|
9
|
-
* - `training` —
|
|
10
|
-
* - `search` —
|
|
11
|
-
* - `
|
|
10
|
+
* - `training` — builds model training corpora.
|
|
11
|
+
* - `search` — builds the index a live assistant cites from.
|
|
12
|
+
* - `user-fetch` — retrieves one URL because a human asked for it, right now.
|
|
13
|
+
* - `agent` — an autonomous browser acting on a user's behalf.
|
|
12
14
|
*/
|
|
13
|
-
export
|
|
15
|
+
export type CrawlerPurpose = 'training' | 'search' | 'user-fetch' | 'agent';
|
|
16
|
+
export interface CrawlerInfo {
|
|
17
|
+
vendor: string;
|
|
18
|
+
purpose: CrawlerPurpose;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the vendor documents that this client obeys robots.txt.
|
|
21
|
+
* `partial` covers clients documented as "may not apply" — chiefly
|
|
22
|
+
* user-triggered fetchers, which most vendors exempt.
|
|
23
|
+
*/
|
|
24
|
+
honorsRobots: boolean | 'partial';
|
|
25
|
+
/** One sentence on what blocking this client costs. Surfaced directly in findings. */
|
|
26
|
+
impact: string;
|
|
27
|
+
/** Vendor documentation for the token. */
|
|
28
|
+
docUrl: string;
|
|
29
|
+
/** Published IP-range list, where the vendor offers one for reverse verification. */
|
|
30
|
+
ipListUrl?: string;
|
|
31
|
+
/** Vendor signs requests with Web Bot Auth (RFC 9421 HTTP Message Signatures). */
|
|
32
|
+
signsRequests?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* A robots.txt control token that never appears in a request. `Google-Extended`
|
|
35
|
+
* and `Applebot-Extended` govern how an already-crawled page may be used; no
|
|
36
|
+
* user agent carries these strings, so probing a site with them tests nothing.
|
|
37
|
+
*/
|
|
38
|
+
tokenOnly?: boolean;
|
|
39
|
+
/** Extra context: renames, documentation changes, unusual behaviour. */
|
|
40
|
+
note?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Per-token metadata for the crawlers worth explaining. Tokens in
|
|
44
|
+
* `AI_CRAWLERS` without an entry here are recognised for matching but carry no
|
|
45
|
+
* tailored advice — the long tail of data brokers and regional assistants.
|
|
46
|
+
*
|
|
47
|
+
* Every entry was verified against vendor documentation on 2026-09-04.
|
|
48
|
+
*/
|
|
49
|
+
export declare const CRAWLER_META: Record<string, CrawlerInfo>;
|
|
50
|
+
/**
|
|
51
|
+
* Known AI clients grouped by what they do with a page. Matching is
|
|
52
|
+
* case-insensitive, per RFC 9309 §2.2.1, so the casing here is cosmetic and
|
|
53
|
+
* follows each vendor's own documentation.
|
|
54
|
+
*
|
|
55
|
+
* Verified against vendor documentation on 2026-09-04. Tokens that turned out
|
|
56
|
+
* never to have existed (`Gemini`, `GeminiBot`, `DeepSeek-AI`) or to belong to
|
|
57
|
+
* discontinued products (`NeevaBot`, `GoogleAgent-Mariner`) moved to
|
|
58
|
+
* `LEGACY_AI_CRAWLERS`.
|
|
59
|
+
*/
|
|
60
|
+
export declare const AI_CRAWLERS: Record<CrawlerPurpose, string[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Tokens recognised for matching but never recommended: renamed, retired, or
|
|
63
|
+
* never real. A site that lists these is not wrong, but the rules are inert, so
|
|
64
|
+
* the audit says so rather than counting them as coverage.
|
|
65
|
+
*/
|
|
66
|
+
export declare const LEGACY_AI_CRAWLERS: Record<string, string>;
|
|
14
67
|
export declare const ALL_AI_CRAWLERS: string[];
|
|
15
68
|
/**
|
|
16
|
-
* The
|
|
17
|
-
* (
|
|
18
|
-
*
|
|
69
|
+
* The crawlers that matter most as of September 2026, by request share
|
|
70
|
+
* (Cloudflare Radar) and by what a site loses when each is blocked. Used for
|
|
71
|
+
* reporting, access probes, and remediation advice.
|
|
72
|
+
*
|
|
73
|
+
* Composition: the six highest-volume clients (Googlebot's AI use is governed
|
|
74
|
+
* by Google-Extended, Applebot's by Applebot-Extended, hence the opt-out tokens
|
|
75
|
+
* standing in for them), the broadest training corpus (CCBot), the three search
|
|
76
|
+
* bots whose absence costs citations, and the one user-triggered fetcher with
|
|
77
|
+
* material volume.
|
|
19
78
|
*/
|
|
20
79
|
export declare const CORE_AI_CRAWLERS: string[];
|
|
21
80
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
81
|
+
* Core crawlers that actually issue HTTP requests.
|
|
82
|
+
*
|
|
83
|
+
* `Google-Extended` and `Applebot-Extended` are robots.txt control tokens: they
|
|
84
|
+
* govern how an already-crawled page may be used, and no request ever carries
|
|
85
|
+
* them as a user agent. Probing a site with those strings tests nothing, so
|
|
86
|
+
* access checks use this list instead of the full core set.
|
|
87
|
+
*/
|
|
88
|
+
export declare const PROBEABLE_CORE_CRAWLERS: string[];
|
|
89
|
+
/** Look up a crawler's metadata case-insensitively. */
|
|
90
|
+
export declare function crawlerInfo(token: string): CrawlerInfo | undefined;
|
|
91
|
+
/** Purpose bucket a token belongs to, or `undefined` when it is not a known AI client. */
|
|
92
|
+
export declare function crawlerPurpose(token: string): CrawlerPurpose | undefined;
|
|
93
|
+
/** Explanation for a retired or fictional token, or `undefined` when the token is current. */
|
|
94
|
+
export declare function legacyCrawlerNote(token: string): string | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Weight per check, summing to 100. A check's own `meta.weight` overrides this
|
|
97
|
+
* map.
|
|
98
|
+
*
|
|
99
|
+
* The 4.0 distribution follows the evidence about what actually stops an agent,
|
|
100
|
+
* rather than what is easiest to check:
|
|
101
|
+
*
|
|
102
|
+
* - **Content (33)** leads, because the failure that breaks the most agents is
|
|
103
|
+
* a page with nothing in the HTML. Most crawlers do not run JavaScript, and a
|
|
104
|
+
* site whose content only appears after hydration is invisible to them no
|
|
105
|
+
* matter how many discovery files it publishes. `agent-operability` joins it
|
|
106
|
+
* at 7: browser agents read the accessibility tree, and a page of unnamed
|
|
107
|
+
* controls cannot be operated at all.
|
|
108
|
+
* - **Access (24)** is second, because a WAF rule or a `nosnippet` directive
|
|
109
|
+
* silently undoes everything else. These are also the failures operators are
|
|
110
|
+
* least likely to know about.
|
|
111
|
+
* - **Discovery (21)** carries robots.txt at 9 and llms.txt at 5. llms.txt was
|
|
112
|
+
* the highest-weighted check in 3.x at 11; it is demoted because the evidence
|
|
113
|
+
* is that most published files are never fetched by an AI search crawler, and
|
|
114
|
+
* the vendors that do read it are coding agents. It matters, but not twice as
|
|
115
|
+
* much as whether the page has content.
|
|
116
|
+
* - **Protocols (13)** are all conditional: a site without the surface reports
|
|
117
|
+
* N/A and the weight leaves the denominator, so a blog is never marked down
|
|
118
|
+
* for lacking an API description.
|
|
119
|
+
* - **Policy (9)** covers declared usage rights and security contact.
|
|
120
|
+
*
|
|
121
|
+
* Checks on draft specifications (`ai-catalog`, `webmcp`, `commerce-discovery`)
|
|
122
|
+
* stay at 0. Scoring a site against a specification that may be renamed next
|
|
123
|
+
* quarter would make the number less trustworthy, not more.
|
|
25
124
|
*/
|
|
26
125
|
export declare const CHECK_WEIGHTS: Record<string, number>;
|
|
126
|
+
/**
|
|
127
|
+
* Report grouping per check. A check's own `meta.category` takes precedence.
|
|
128
|
+
* Mirrors the `CHECK_WEIGHTS` pattern: data lives here, overrides live on the check.
|
|
129
|
+
*/
|
|
130
|
+
export declare const CHECK_CATEGORIES: Record<string, CheckCategory>;
|
|
27
131
|
export declare const GRADES: Grade[];
|
|
28
132
|
/**
|
|
29
133
|
* Content Signals Policy vocabulary (https://contentsignals.org, CC0): machine-readable
|
|
@@ -31,6 +135,28 @@ export declare const GRADES: Grade[];
|
|
|
31
135
|
* Absence of a signal is neutral — it neither grants nor restricts.
|
|
32
136
|
*/
|
|
33
137
|
export declare const CONTENT_SIGNALS: string[];
|
|
138
|
+
/**
|
|
139
|
+
* Values of the optional fourth Content Signals field `use`, introduced by
|
|
140
|
+
* Cloudflare on 2026-07-01 and now emitted by its managed robots.txt:
|
|
141
|
+
* `immediate` (interact, store nothing), `reference` (index, excerpt, link
|
|
142
|
+
* back — the stated default) and `full` (summarize and reproduce).
|
|
143
|
+
* https://blog.cloudflare.com/content-independence-day-ai-options/
|
|
144
|
+
*/
|
|
145
|
+
export declare const CONTENT_SIGNAL_USE_VALUES: string[];
|
|
146
|
+
/**
|
|
147
|
+
* IETF AIPREF vocabulary (draft-ietf-aipref-vocab-07, 2026-08-19). Two
|
|
148
|
+
* categories only: `train-ai` (modifying model parameters) and `search`
|
|
149
|
+
* (retrieval that links back to the original). Values are `y` / `n`; an absent
|
|
150
|
+
* token means "unknown", never "allowed".
|
|
151
|
+
*
|
|
152
|
+
* The drafts are pre-working-group-last-call and carry the "DO NOT REFLECT
|
|
153
|
+
* CONSENSUS" boilerplate, so ax-audit reports these directives without ever
|
|
154
|
+
* requiring them. Note the token order is inverted against Content Signals
|
|
155
|
+
* (`train-ai` here, `ai-train` there).
|
|
156
|
+
* https://datatracker.ietf.org/wg/aipref/documents/
|
|
157
|
+
*/
|
|
158
|
+
export declare const AIPREF_TOKENS: string[];
|
|
159
|
+
export declare const AIPREF_VALUES: string[];
|
|
34
160
|
/**
|
|
35
161
|
* Really Simple Licensing 1.0 (https://rslstandard.org/rsl): machine-readable licensing
|
|
36
162
|
* terms for content, discovered via robots.txt `License:`, HTTP `Link: rel="license"`,
|
|
@@ -42,7 +168,62 @@ export declare const RSL_PERMIT_TYPES: string[];
|
|
|
42
168
|
export declare const RSL_USAGE_TOKENS: string[];
|
|
43
169
|
export declare const RSL_USER_TOKENS: string[];
|
|
44
170
|
export declare const RSL_PAYMENT_TYPES: string[];
|
|
171
|
+
/**
|
|
172
|
+
* A2A Agent Card (https://a2a-protocol.org).
|
|
173
|
+
*
|
|
174
|
+
* Two generations are in the wild. A2A 1.0 (2026-03-12) replaced the top-level
|
|
175
|
+
* `url`, `protocolVersion`, `preferredTransport` and `additionalInterfaces`
|
|
176
|
+
* fields with one `supportedInterfaces[]` array; 0.3-shaped cards are still the
|
|
177
|
+
* majority deployed. Required-field lists are taken from `specification/a2a.proto`
|
|
178
|
+
* (1.0) and `specification/json/a2a.json` at tag v0.3.0.
|
|
179
|
+
*/
|
|
180
|
+
export declare const AGENT_CARD_REQUIRED_V1: string[];
|
|
181
|
+
export declare const AGENT_CARD_REQUIRED_V03: string[];
|
|
182
|
+
/** Transport bindings a 1.0 interface may declare. */
|
|
183
|
+
export declare const A2A_PROTOCOL_BINDINGS: string[];
|
|
184
|
+
/** Media type registered for A2A payloads (spec §14.1.1). */
|
|
185
|
+
export declare const A2A_MEDIA_TYPE = "application/a2a+json";
|
|
186
|
+
/** @deprecated Superseded by AGENT_CARD_REQUIRED_V03 / _V1 in 3.7. Kept for one minor. */
|
|
45
187
|
export declare const AGENT_JSON_REQUIRED_FIELDS: string[];
|
|
188
|
+
/**
|
|
189
|
+
* Model Context Protocol.
|
|
190
|
+
*
|
|
191
|
+
* `/.well-known/mcp.json` was never part of the specification; ax-audit
|
|
192
|
+
* recommended it before the ecosystem settled. The actual discovery work is
|
|
193
|
+
* SEP-2127 (open draft) and the `experimental-ext-server-card` repository,
|
|
194
|
+
* which recommend a **server card** at `<streamable-http-url>/server-card` and
|
|
195
|
+
* an entry in `/.well-known/ai-catalog.json`. Cloudflare and Mintlify serve one
|
|
196
|
+
* at `/.well-known/mcp/server-card.json`.
|
|
197
|
+
*
|
|
198
|
+
* Server cards deliberately carry no `tools[]`: tool lists come from a live
|
|
199
|
+
* `tools/list` call, not from a static document that would immediately drift.
|
|
200
|
+
*/
|
|
201
|
+
export declare const MCP_SERVER_CARD_MEDIA_TYPE = "application/mcp-server-card+json";
|
|
202
|
+
export declare const MCP_SERVER_CARD_REQUIRED: string[];
|
|
203
|
+
export declare const MCP_REMOTE_TYPES: string[];
|
|
204
|
+
/**
|
|
205
|
+
* Released MCP protocol versions, newest first. `2026-07-28` removed sessions
|
|
206
|
+
* and `initialize`, made `MCP-Protocol-Version`, `Mcp-Method` and `Mcp-Name`
|
|
207
|
+
* mandatory on every POST, and added the `server/discover` RPC.
|
|
208
|
+
* https://modelcontextprotocol.io/specification/versioning
|
|
209
|
+
*/
|
|
210
|
+
export declare const MCP_PROTOCOL_VERSIONS: string[];
|
|
211
|
+
/** Versions old enough that a card advertising only these is worth flagging. */
|
|
212
|
+
export declare const MCP_STALE_PROTOCOL_VERSIONS: string[];
|
|
213
|
+
/** Media types an ai-catalog entry may declare, per the Agent Card WG draft. */
|
|
214
|
+
export declare const AI_CATALOG_ENTRY_TYPES: Record<string, string>;
|
|
215
|
+
/**
|
|
216
|
+
* Where API descriptions live, in order of authority.
|
|
217
|
+
*
|
|
218
|
+
* `/.well-known/openapi.json` is a folk convention: it is not IANA-registered,
|
|
219
|
+
* and the OpenAPI specification recommends the file name `openapi.json` /
|
|
220
|
+
* `openapi.yaml` without prescribing a location. It stays first because
|
|
221
|
+
* ax-audit recommended it before 3.7 and sites followed that advice, but the
|
|
222
|
+
* common real-world locations are probed too.
|
|
223
|
+
*/
|
|
224
|
+
export declare const API_DESCRIPTION_PATHS: string[];
|
|
225
|
+
/** RFC 9264 linkset media type, required by RFC 9727 for the API catalog. */
|
|
226
|
+
export declare const LINKSET_MEDIA_TYPE = "application/linkset+json";
|
|
46
227
|
export declare const SECURITY_TXT_REQUIRED_FIELDS: string[];
|
|
47
228
|
export declare const SECURITY_HEADERS: SecurityHeader[];
|
|
48
229
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|