Context
PR adcontextprotocol/adcp#1979 adds User-Agent headers to all automated outbound requests from the AAO server. However, two code paths in @adcp/client create their own HTTP clients internally and don't expose a userAgent option:
PropertyCrawler — PropertyCrawlerConfig only accepts logLevel. The server's crawler (server/src/crawler.ts) can't pass a User-Agent through.
comply() / testAllScenarios() — TestOptions doesn't support userAgent. The compliance heartbeat job can't identify itself to agent endpoints.
Both currently send the default AdCP-Testing-Framework/1.0.0 User-Agent, which is generic and unhelpful for agent operators trying to identify traffic sources.
Requested changes
- Add
userAgent?: string to PropertyCrawlerConfig and thread it through to internal fetch() / AdCPClient calls
- Add
userAgent?: string to TestOptions (or OrchestratorOptions) and thread it through createTestClient
This lets the server pass purpose-specific User-Agent strings like AAO-PropertyCrawler/1.0 and AAO-ComplianceCheck/1.0.
Why
A member (Equativ) reported thousands of unexplained pings to their agent endpoint. Proper User-Agent identification helps agent operators understand and filter automated traffic from AAO.
Context
PR adcontextprotocol/adcp#1979 adds
User-Agentheaders to all automated outbound requests from the AAO server. However, two code paths in@adcp/clientcreate their own HTTP clients internally and don't expose auserAgentoption:PropertyCrawler—PropertyCrawlerConfigonly acceptslogLevel. The server's crawler (server/src/crawler.ts) can't pass a User-Agent through.comply()/testAllScenarios()—TestOptionsdoesn't supportuserAgent. The compliance heartbeat job can't identify itself to agent endpoints.Both currently send the default
AdCP-Testing-Framework/1.0.0User-Agent, which is generic and unhelpful for agent operators trying to identify traffic sources.Requested changes
userAgent?: stringtoPropertyCrawlerConfigand thread it through to internalfetch()/AdCPClientcallsuserAgent?: stringtoTestOptions(orOrchestratorOptions) and thread it throughcreateTestClientThis lets the server pass purpose-specific User-Agent strings like
AAO-PropertyCrawler/1.0andAAO-ComplianceCheck/1.0.Why
A member (Equativ) reported thousands of unexplained pings to their agent endpoint. Proper User-Agent identification helps agent operators understand and filter automated traffic from AAO.