The publisher domain the caller asked us to validate.
Which discovery path was used. Defaults to 'direct': a failure on
the publisher's own .well-known/adagents.json reports 'direct'
even when no file was retrieved. 'authoritative_location' and
'ads_txt_managerdomain' only appear once the validator has
committed to that path (followed the pointer / parsed a directive).
Optionalmanager_The manager domain consulted when discovery_method === 'ads_txt_managerdomain'. Populated even on manager-domain failure
so callers can surface "we tried
Note for chained validators: re-invoking validateAdAgents against
manager_domain to walk N hops re-enters the discovery flow from
scratch. This validator's one-hop guarantee is per-call, not
per-chain — callers stringing multiple invocations together are
responsible for their own loop guard.
Optionalresolved_URL the adagents.json was ultimately loaded from. Omitted when nothing loaded.
OptionaladagentsParsed authoritative file. Omitted on failure.
Counterparty-controlled. This JSON came verbatim from the
publisher (or their declared manager domain). Treat as untrusted
input: do NOT splice into LLM system prompts, log-aggregator
indices, or any context that interprets text as instructions
without first stripping or sanitizing. Field names like
authorized_for (free-text) and properties[].name are obvious
vectors; less-obvious ones include arbitrary $schema URLs and
structured tags.
One or more reasons validation failed. Empty when valid === true.
Whether a valid
adagents.jsonwas discovered for this publisher.