@adcp/sdk 7.1.0 → 7.2.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.
Files changed (60) hide show
  1. package/bin/adcp-config.js +10 -1
  2. package/bin/adcp.js +376 -22
  3. package/dist/lib/auth/oauth/authorization-required.d.ts +17 -0
  4. package/dist/lib/auth/oauth/authorization-required.d.ts.map +1 -1
  5. package/dist/lib/auth/oauth/authorization-required.js +20 -0
  6. package/dist/lib/auth/oauth/authorization-required.js.map +1 -1
  7. package/dist/lib/auth/oauth/index.d.ts +1 -1
  8. package/dist/lib/auth/oauth/index.d.ts.map +1 -1
  9. package/dist/lib/auth/oauth/index.js +2 -1
  10. package/dist/lib/auth/oauth/index.js.map +1 -1
  11. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  12. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  13. package/dist/lib/core/SingleAgentClient.js +13 -2
  14. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  15. package/dist/lib/discovery/property-crawler.d.ts +13 -1
  16. package/dist/lib/discovery/property-crawler.d.ts.map +1 -1
  17. package/dist/lib/discovery/property-crawler.js +40 -14
  18. package/dist/lib/discovery/property-crawler.js.map +1 -1
  19. package/dist/lib/discovery/resolve-agent-properties.d.ts +103 -0
  20. package/dist/lib/discovery/resolve-agent-properties.d.ts.map +1 -0
  21. package/dist/lib/discovery/resolve-agent-properties.js +182 -0
  22. package/dist/lib/discovery/resolve-agent-properties.js.map +1 -0
  23. package/dist/lib/discovery/types.d.ts +41 -2
  24. package/dist/lib/discovery/types.d.ts.map +1 -1
  25. package/dist/lib/discovery/types.js +2 -1
  26. package/dist/lib/discovery/types.js.map +1 -1
  27. package/dist/lib/discovery/validate-adagents.d.ts +114 -0
  28. package/dist/lib/discovery/validate-adagents.d.ts.map +1 -0
  29. package/dist/lib/discovery/validate-adagents.js +417 -0
  30. package/dist/lib/discovery/validate-adagents.js.map +1 -0
  31. package/dist/lib/errors/index.d.ts +42 -5
  32. package/dist/lib/errors/index.d.ts.map +1 -1
  33. package/dist/lib/errors/index.js +64 -9
  34. package/dist/lib/errors/index.js.map +1 -1
  35. package/dist/lib/index.d.ts +3 -1
  36. package/dist/lib/index.d.ts.map +1 -1
  37. package/dist/lib/index.js +17 -10
  38. package/dist/lib/index.js.map +1 -1
  39. package/dist/lib/protocols/a2a.d.ts.map +1 -1
  40. package/dist/lib/protocols/a2a.js +70 -11
  41. package/dist/lib/protocols/a2a.js.map +1 -1
  42. package/dist/lib/protocols/mcp.d.ts.map +1 -1
  43. package/dist/lib/protocols/mcp.js +61 -5
  44. package/dist/lib/protocols/mcp.js.map +1 -1
  45. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  46. package/dist/lib/signing/fetch-async.d.ts.map +1 -1
  47. package/dist/lib/signing/fetch-async.js +5 -0
  48. package/dist/lib/signing/fetch-async.js.map +1 -1
  49. package/dist/lib/signing/fetch.d.ts.map +1 -1
  50. package/dist/lib/signing/fetch.js +11 -0
  51. package/dist/lib/signing/fetch.js.map +1 -1
  52. package/dist/lib/testing/compliance/comply.d.ts +17 -2
  53. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  54. package/dist/lib/testing/compliance/comply.js +10 -0
  55. package/dist/lib/testing/compliance/comply.js.map +1 -1
  56. package/dist/lib/version.d.ts +3 -3
  57. package/dist/lib/version.js +3 -3
  58. package/docs/llms.txt +10 -2
  59. package/package.json +1 -1
  60. package/skills/call-adcp-agent/SKILL.md +1 -1
@@ -8,7 +8,7 @@
8
8
  * 4. Building property → agents mapping
9
9
  */
10
10
  import { type LogLevel } from '../utils/logger';
11
- import type { Property } from './types';
11
+ import type { Property, AdAgentsJson } from './types';
12
12
  export interface AgentInfo {
13
13
  agent_url: string;
14
14
  protocol?: 'a2a' | 'mcp';
@@ -51,6 +51,15 @@ export declare class PropertyCrawler {
51
51
  */
52
52
  fetchPublisherProperties(domains: string[]): Promise<{
53
53
  properties: Record<string, Property[]>;
54
+ /**
55
+ * Raw `AdAgentsJson` per fetched domain. `PropertyCrawler.crawlAgents`
56
+ * needs `authorized_agents[]` (with their per-entry selectors) to do
57
+ * spec-correct per-agent attribution — the `properties` array alone
58
+ * doesn't carry the discriminator. Kept on a side map (instead of
59
+ * widening `properties`) so external callers that only consume
60
+ * `properties` keep the same shape.
61
+ */
62
+ adAgents: Record<string, AdAgentsJson>;
54
63
  warnings: Array<{
55
64
  domain: string;
56
65
  message: string;
@@ -77,6 +86,9 @@ export declare class PropertyCrawler {
77
86
  */
78
87
  fetchAdAgentsJson(domain: string): Promise<{
79
88
  properties: Property[];
89
+ /** Raw parsed adagents.json — needed for per-agent property resolution
90
+ * (#1721). Omitted when the response wasn't a parseable adagents.json. */
91
+ adAgents?: AdAgentsJson;
80
92
  warning?: string;
81
93
  }>;
82
94
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"property-crawler.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/property-crawler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAK9D,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAWtD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;uFACmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,MAAM,CAAC,EAAE,qBAAqB;IAS1C;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAqE5D;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2BzD;;OAEG;IACG,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACzD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvC,QAAQ,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACtD,CAAC;IA+BF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAO/C;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAIzB,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAK;IAE/C;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC/C,UAAU,EAAE,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAKF;;;;;;OAMG;YACW,wBAAwB;CAkJvC"}
1
+ {"version":3,"file":"property-crawler.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/property-crawler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAK9D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAYtD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;uFACmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,MAAM,CAAC,EAAE,qBAAqB;IAS1C;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA2F5D;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2BzD;;OAEG;IACG,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACzD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvC;;;;;;;WAOG;QACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACvC,QAAQ,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACtD,CAAC;IAmCF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAO/C;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAIzB,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAK;IAE/C;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC/C,UAAU,EAAE,QAAQ,EAAE,CAAC;QACvB;mFAC2E;QAC3E,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAKF;;;;;;OAMG;YACW,wBAAwB;CAsJvC"}
@@ -17,6 +17,7 @@ const version_1 = require("../version");
17
17
  const validate_user_agent_1 = require("../utils/validate-user-agent");
18
18
  const ssrf_fetch_1 = require("../net/ssrf-fetch");
19
19
  const probe_policy_1 = require("../utils/probe-policy");
20
+ const resolve_agent_properties_1 = require("./resolve-agent-properties");
20
21
  /**
21
22
  * Cap on a single adagents.json response body. The published advertising
22
23
  * networks we've sampled (CNN, Hearst, etc.) all sit well under 64 KiB;
@@ -79,20 +80,40 @@ class PropertyCrawler {
79
80
  }
80
81
  result.totalPublisherDomains = allPublisherDomains.size;
81
82
  // Step 2: Fetch adagents.json from each unique publisher domain
82
- const { properties: domainProperties, warnings } = await this.fetchPublisherProperties(Array.from(allPublisherDomains));
83
+ const { properties: domainProperties, adAgents: domainAdAgents, warnings, } = await this.fetchPublisherProperties(Array.from(allPublisherDomains));
83
84
  result.warnings = warnings;
84
- // Step 3: Build property → agents index
85
+ // Step 3: Build property → agents index. Per the AdCP schema
86
+ // (`adagents.json` — `authorized_agents[].authorization_type` +
87
+ // selector), which top-level properties an agent gets is a function
88
+ // of its entry in the file, NOT the file's mere presence. We dispatch
89
+ // through `resolveAgentProperties` to honor the per-agent selectors
90
+ // (`property_ids`, `property_tags`, `inline_properties`).
91
+ //
92
+ // Fallback: if the crawler had to infer a default property because
93
+ // the file declared `authorized_agents` but no `properties` array
94
+ // (graceful-degradation branch in `fetchAdAgentsJsonFromUrl`), the
95
+ // raw `AdAgentsJson` is intentionally NOT in `domainAdAgents` — we
96
+ // attribute the inferred property to every claiming agent (pre-#1721
97
+ // behavior). The file simply isn't strict-conformant enough to
98
+ // dispatch on.
85
99
  for (const [domain, properties] of Object.entries(domainProperties)) {
86
- for (const property of properties) {
87
- // Find which agents are authorized for this publisher domain
88
- const authorizedAgents = agents
89
- .map(a => a.agent_url)
90
- .filter(agentUrl => {
91
- const auth = index.getAgentAuthorizations(agentUrl);
92
- return auth?.publisher_domains.includes(domain);
93
- });
94
- // Add property to index for each authorized agent
95
- for (const agentUrl of authorizedAgents) {
100
+ const claimingAgents = agents
101
+ .map(a => a.agent_url)
102
+ .filter(agentUrl => {
103
+ const auth = index.getAgentAuthorizations(agentUrl);
104
+ return auth?.publisher_domains.includes(domain);
105
+ });
106
+ const adAgentsFile = domainAdAgents[domain];
107
+ for (const agentUrl of claimingAgents) {
108
+ let attributable;
109
+ if (adAgentsFile) {
110
+ const scope = (0, resolve_agent_properties_1.resolveAgentProperties)(adAgentsFile, agentUrl);
111
+ attributable = scope.properties;
112
+ }
113
+ else {
114
+ attributable = properties;
115
+ }
116
+ for (const property of attributable) {
96
117
  index.addProperty(property, agentUrl, domain);
97
118
  result.totalProperties++;
98
119
  }
@@ -129,13 +150,17 @@ class PropertyCrawler {
129
150
  */
130
151
  async fetchPublisherProperties(domains) {
131
152
  const result = {};
153
+ const adAgents = {};
132
154
  const warnings = [];
133
155
  await Promise.all(domains.map(async (domain) => {
134
156
  try {
135
- const { properties, warning } = await this.fetchAdAgentsJson(domain);
157
+ const { properties, warning, adAgents: raw } = await this.fetchAdAgentsJson(domain);
136
158
  if (properties.length > 0) {
137
159
  result[domain] = properties;
138
160
  }
161
+ if (raw) {
162
+ adAgents[domain] = raw;
163
+ }
139
164
  if (warning) {
140
165
  warnings.push({ domain, message: warning });
141
166
  }
@@ -152,7 +177,7 @@ class PropertyCrawler {
152
177
  }
153
178
  }
154
179
  }));
155
- return { properties: result, warnings };
180
+ return { properties: result, adAgents, warnings };
156
181
  }
157
182
  /**
158
183
  * Expected failure patterns for .well-known/adagents.json fetches.
@@ -297,6 +322,7 @@ class PropertyCrawler {
297
322
  }
298
323
  return {
299
324
  properties: normalized,
325
+ adAgents: data,
300
326
  ...(skipped > 0 && {
301
327
  warning: `Skipped ${skipped} ${skipped === 1 ? 'property' : 'properties'} with missing or empty identifiers`,
302
328
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"property-crawler.js","sourceRoot":"","sources":["../../../src/lib/discovery/property-crawler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"property-crawler.js","sourceRoot":"","sources":["../../../src/lib/discovery/property-crawler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Per-agent property resolution for `adagents.json` (adcp-client#1721).
3
+ *
4
+ * The schema (`schemas/cache/3.0.11/adagents.json`) requires every
5
+ * `authorized_agents[]` entry to carry `authorization_type` + the matching
6
+ * selector field. Which top-level `properties[]` an agent is authorized
7
+ * for is a function of that discriminator + selector — NOT a property of
8
+ * presence-in-the-list (the pre-#1721 SDK bug).
9
+ *
10
+ * This resolver dispatches on `authorization_type`:
11
+ *
12
+ * - `property_ids` → filter top-level `properties[]` by `property_id`
13
+ * - `property_tags` → filter top-level `properties[]` by tag intersection
14
+ * - `inline_properties` → return the agent entry's own `properties[]`
15
+ * - `publisher_properties` → cross-publisher; returned as `cross_publisher`
16
+ * for the caller to resolve against other publishers' adagents.json
17
+ * - `signal_ids` / `signal_tags` → signals agents; no property output
18
+ *
19
+ * Mirrors the Python SDK's `_resolve_agent_properties` (adcp-client-python).
20
+ * Fails closed: entries without `authorization_type` or with a missing
21
+ * selector return zero properties — matching the Python SDK and the
22
+ * schema's strict-conformance position. The pre-fix TS behavior of
23
+ * attributing every property to every listed agent is gone.
24
+ */
25
+ import type { AdAgentsJson, AuthorizedAgent, Property, PublisherPropertySelector } from './types';
26
+ /**
27
+ * Result of resolving a single agent's authorization scope against an
28
+ * `adagents.json` file. `properties` are the locally-resolved entries
29
+ * (in-file). `cross_publisher` selectors point at other publishers'
30
+ * files; resolving them to concrete `Property` objects requires
31
+ * fetching those publishers' adagents.json separately. `unresolvable`
32
+ * communicates why the agent's scope is empty when it is.
33
+ */
34
+ export interface ResolvedAgentScope {
35
+ /** Locally-resolved properties (subset of top-level `properties[]`, or inline). */
36
+ properties: Property[];
37
+ /** Cross-publisher selectors the caller must resolve against other files. */
38
+ cross_publisher: PublisherPropertySelector[];
39
+ /** The matched agent entry, or `undefined` if no entry matched the agent URL. */
40
+ matched_entry?: AuthorizedAgent;
41
+ /** Why the resolution returned an empty result, when it did. */
42
+ unresolvable?: ResolveUnresolvableReason;
43
+ }
44
+ export type ResolveUnresolvableReason =
45
+ /** The agent URL is not listed in `authorized_agents[]` at all. */
46
+ 'agent_not_listed'
47
+ /** Entry exists but has no `authorization_type` discriminator. */
48
+ | 'missing_authorization_type'
49
+ /** Entry has an `authorization_type` we do not recognize. */
50
+ | 'unknown_authorization_type'
51
+ /** Entry has a known `authorization_type` but the matching selector is missing/empty. */
52
+ | 'missing_selector'
53
+ /** Selector resolved to no properties (e.g., `property_ids` matched no top-level entry). */
54
+ | 'no_match'
55
+ /** Entry uses a signals authorization type — no property output is appropriate. */
56
+ | 'signals_only';
57
+ /**
58
+ * Canonicalize an agent URL for `authorized_agents[].url` comparison per
59
+ * the AdCP URL canonicalization rules
60
+ * (https://adcontextprotocol.org/docs/reference/url-canonicalization).
61
+ * Returns the canonical string or `null` if the input is unparseable.
62
+ *
63
+ * The full 8-step canonicalization (Punycode, percent-encoding decode,
64
+ * `remove_dot_segments`, etc.) is delegated to Node's WHATWG URL parser
65
+ * for most rules; this helper layers on the SDK-specific bits the parser
66
+ * doesn't do automatically: default-port stripping (already done by
67
+ * `URL.host`), unreserved-char percent-decoding, and fragment strip.
68
+ *
69
+ * Exported for callers building their own per-agent matching outside the
70
+ * resolver — e.g., TMP `seller_agent_url` validation.
71
+ */
72
+ export declare function canonicalizeAgentUrl(raw: string): string | null;
73
+ /**
74
+ * Resolve `agentUrl`'s authorization scope against an `adagents.json`
75
+ * file. The lookup uses canonicalized URL comparison — two URLs
76
+ * differing only in case, default port, percent-encoding of unreserved
77
+ * chars, or fragment are the same agent.
78
+ *
79
+ * Returns `{ properties: [], cross_publisher: [], unresolvable: '...' }`
80
+ * (never throws) when the agent isn't listed, when its entry is
81
+ * malformed, or when the agent uses a signals authorization type.
82
+ */
83
+ export declare function resolveAgentProperties(adAgents: AdAgentsJson, agentUrl: string): ResolvedAgentScope;
84
+ /**
85
+ * Convenience: list every locally-resolvable (`agent_url` →
86
+ * `Property[]`) pair from an `adagents.json` file. Agents listed with
87
+ * `signal_ids` / `signal_tags` or with no `authorization_type` are
88
+ * absent from the result. `publisher_properties` cross-references are
89
+ * reported separately so the caller can resolve them against other
90
+ * publishers' files.
91
+ */
92
+ export declare function listAgentPropertyMap(adAgents: AdAgentsJson): {
93
+ byAgent: Map<string, Property[]>;
94
+ unresolved: Array<{
95
+ agent_url: string;
96
+ reason: ResolveUnresolvableReason;
97
+ }>;
98
+ cross_publisher: Array<{
99
+ agent_url: string;
100
+ selectors: PublisherPropertySelector[];
101
+ }>;
102
+ };
103
+ //# sourceMappingURL=resolve-agent-properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-agent-properties.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/resolve-agent-properties.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAqB,QAAQ,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAErH;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,6EAA6E;IAC7E,eAAe,EAAE,yBAAyB,EAAE,CAAC;IAC7C,iFAAiF;IACjF,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,gEAAgE;IAChE,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,MAAM,yBAAyB;AACnC,mEAAmE;AACjE,kBAAkB;AACpB,kEAAkE;GAChE,4BAA4B;AAC9B,6DAA6D;GAC3D,4BAA4B;AAC9B,yFAAyF;GACvF,kBAAkB;AACpB,4FAA4F;GAC1F,UAAU;AACZ,mFAAmF;GACjF,cAAc,CAAC;AAEnB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmB/D;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAkFnG;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG;IAC5D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjC,UAAU,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,yBAAyB,CAAA;KAAE,CAAC,CAAC;IAC5E,eAAe,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,yBAAyB,EAAE,CAAA;KAAE,CAAC,CAAC;CACvF,CAuBA"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.canonicalizeAgentUrl = canonicalizeAgentUrl;
4
+ exports.resolveAgentProperties = resolveAgentProperties;
5
+ exports.listAgentPropertyMap = listAgentPropertyMap;
6
+ /**
7
+ * Canonicalize an agent URL for `authorized_agents[].url` comparison per
8
+ * the AdCP URL canonicalization rules
9
+ * (https://adcontextprotocol.org/docs/reference/url-canonicalization).
10
+ * Returns the canonical string or `null` if the input is unparseable.
11
+ *
12
+ * The full 8-step canonicalization (Punycode, percent-encoding decode,
13
+ * `remove_dot_segments`, etc.) is delegated to Node's WHATWG URL parser
14
+ * for most rules; this helper layers on the SDK-specific bits the parser
15
+ * doesn't do automatically: default-port stripping (already done by
16
+ * `URL.host`), unreserved-char percent-decoding, and fragment strip.
17
+ *
18
+ * Exported for callers building their own per-agent matching outside the
19
+ * resolver — e.g., TMP `seller_agent_url` validation.
20
+ */
21
+ function canonicalizeAgentUrl(raw) {
22
+ if (typeof raw !== 'string' || raw.length === 0)
23
+ return null;
24
+ let parsed;
25
+ try {
26
+ parsed = new URL(raw);
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ // Reject userinfo per the spec's step 3.
32
+ if (parsed.username || parsed.password)
33
+ return null;
34
+ // Reject non-http(s) schemes — `adagents.json` agent URLs are HTTPS-only
35
+ // in production, but we accept `http://` here so loopback fixtures parse.
36
+ if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:')
37
+ return null;
38
+ // `URL.host` already strips default ports and lowercases the hostname.
39
+ // Use `protocol + host` (NOT `origin`) so the assembled string keeps
40
+ // the IDN-A-label form Node produces.
41
+ const path = decodeUnreservedPercentEncoding(parsed.pathname);
42
+ const query = parsed.search ? decodeUnreservedPercentEncoding(parsed.search) : '';
43
+ return `${parsed.protocol}//${parsed.host}${path}${query}`;
44
+ }
45
+ /**
46
+ * Resolve `agentUrl`'s authorization scope against an `adagents.json`
47
+ * file. The lookup uses canonicalized URL comparison — two URLs
48
+ * differing only in case, default port, percent-encoding of unreserved
49
+ * chars, or fragment are the same agent.
50
+ *
51
+ * Returns `{ properties: [], cross_publisher: [], unresolvable: '...' }`
52
+ * (never throws) when the agent isn't listed, when its entry is
53
+ * malformed, or when the agent uses a signals authorization type.
54
+ */
55
+ function resolveAgentProperties(adAgents, agentUrl) {
56
+ const wanted = canonicalizeAgentUrl(agentUrl);
57
+ if (!wanted) {
58
+ return { properties: [], cross_publisher: [], unresolvable: 'agent_not_listed' };
59
+ }
60
+ const entries = Array.isArray(adAgents.authorized_agents) ? adAgents.authorized_agents : [];
61
+ const entry = entries.find(e => {
62
+ if (!e || typeof e.url !== 'string')
63
+ return false;
64
+ const canon = canonicalizeAgentUrl(e.url);
65
+ return canon !== null && canon === wanted;
66
+ });
67
+ if (!entry) {
68
+ return { properties: [], cross_publisher: [], unresolvable: 'agent_not_listed' };
69
+ }
70
+ const authType = entry.authorization_type;
71
+ if (!authType) {
72
+ return { properties: [], cross_publisher: [], matched_entry: entry, unresolvable: 'missing_authorization_type' };
73
+ }
74
+ const allProperties = Array.isArray(adAgents.properties) ? adAgents.properties : [];
75
+ switch (authType) {
76
+ case 'property_ids': {
77
+ const ids = entry.property_ids;
78
+ if (!Array.isArray(ids) || ids.length === 0) {
79
+ return { properties: [], cross_publisher: [], matched_entry: entry, unresolvable: 'missing_selector' };
80
+ }
81
+ const idSet = new Set(ids);
82
+ const matched = allProperties.filter(p => p.property_id !== undefined && idSet.has(p.property_id));
83
+ return {
84
+ properties: matched,
85
+ cross_publisher: [],
86
+ matched_entry: entry,
87
+ ...(matched.length === 0 ? { unresolvable: 'no_match' } : {}),
88
+ };
89
+ }
90
+ case 'property_tags': {
91
+ const tags = entry.property_tags;
92
+ if (!Array.isArray(tags) || tags.length === 0) {
93
+ return { properties: [], cross_publisher: [], matched_entry: entry, unresolvable: 'missing_selector' };
94
+ }
95
+ const tagSet = new Set(tags);
96
+ const matched = allProperties.filter(p => Array.isArray(p.tags) && p.tags.some(t => tagSet.has(t)));
97
+ return {
98
+ properties: matched,
99
+ cross_publisher: [],
100
+ matched_entry: entry,
101
+ ...(matched.length === 0 ? { unresolvable: 'no_match' } : {}),
102
+ };
103
+ }
104
+ case 'inline_properties': {
105
+ const inline = entry.properties;
106
+ if (!Array.isArray(inline) || inline.length === 0) {
107
+ return { properties: [], cross_publisher: [], matched_entry: entry, unresolvable: 'missing_selector' };
108
+ }
109
+ return { properties: inline, cross_publisher: [], matched_entry: entry };
110
+ }
111
+ case 'publisher_properties': {
112
+ const selectors = entry.publisher_properties;
113
+ if (!Array.isArray(selectors) || selectors.length === 0) {
114
+ return { properties: [], cross_publisher: [], matched_entry: entry, unresolvable: 'missing_selector' };
115
+ }
116
+ return { properties: [], cross_publisher: selectors, matched_entry: entry };
117
+ }
118
+ case 'signal_ids':
119
+ case 'signal_tags':
120
+ return { properties: [], cross_publisher: [], matched_entry: entry, unresolvable: 'signals_only' };
121
+ default:
122
+ // Exhaustiveness guard — if a new authorization_type lands on
123
+ // `AuthorizationType` without a branch here, TS won't compile.
124
+ // For runtime files carrying a string we don't recognize, return
125
+ // `unknown_authorization_type`.
126
+ return { properties: [], cross_publisher: [], matched_entry: entry, unresolvable: 'unknown_authorization_type' };
127
+ }
128
+ }
129
+ /**
130
+ * Convenience: list every locally-resolvable (`agent_url` →
131
+ * `Property[]`) pair from an `adagents.json` file. Agents listed with
132
+ * `signal_ids` / `signal_tags` or with no `authorization_type` are
133
+ * absent from the result. `publisher_properties` cross-references are
134
+ * reported separately so the caller can resolve them against other
135
+ * publishers' files.
136
+ */
137
+ function listAgentPropertyMap(adAgents) {
138
+ const byAgent = new Map();
139
+ const unresolved = [];
140
+ const cross_publisher = [];
141
+ const entries = Array.isArray(adAgents.authorized_agents) ? adAgents.authorized_agents : [];
142
+ for (const entry of entries) {
143
+ if (!entry || typeof entry.url !== 'string')
144
+ continue;
145
+ const scope = resolveAgentProperties(adAgents, entry.url);
146
+ const canon = canonicalizeAgentUrl(entry.url);
147
+ const key = canon ?? entry.url;
148
+ if (scope.properties.length > 0) {
149
+ byAgent.set(key, scope.properties);
150
+ }
151
+ if (scope.cross_publisher.length > 0) {
152
+ cross_publisher.push({ agent_url: key, selectors: scope.cross_publisher });
153
+ }
154
+ if (scope.unresolvable && scope.properties.length === 0 && scope.cross_publisher.length === 0) {
155
+ unresolved.push({ agent_url: key, reason: scope.unresolvable });
156
+ }
157
+ }
158
+ return { byAgent, unresolved, cross_publisher };
159
+ }
160
+ /**
161
+ * RFC 3986 §6.2.2.2: decode percent-encoded triplets that map to
162
+ * unreserved characters (`ALPHA / DIGIT / "-" / "." / "_" / "~"`).
163
+ * Leaves reserved characters and non-unreserved encodings byte-for-byte.
164
+ *
165
+ * Vendored from `src/lib/signing/canonicalize.ts` to keep this file
166
+ * dependency-free of the signing module (which is the source for
167
+ * request-signing canonicalization, not authorization).
168
+ */
169
+ function decodeUnreservedPercentEncoding(input) {
170
+ return input.replace(/%([0-9a-fA-F]{2})/g, (match, hex) => {
171
+ const code = parseInt(hex, 16);
172
+ const isUnreserved = (code >= 0x41 && code <= 0x5a) || // A–Z
173
+ (code >= 0x61 && code <= 0x7a) || // a–z
174
+ (code >= 0x30 && code <= 0x39) || // 0–9
175
+ code === 0x2d || // '-'
176
+ code === 0x2e || // '.'
177
+ code === 0x5f || // '_'
178
+ code === 0x7e; // '~'
179
+ return isUnreserved ? String.fromCharCode(code) : match.toUpperCase();
180
+ });
181
+ }
182
+ //# sourceMappingURL=resolve-agent-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-agent-properties.js","sourceRoot":"","sources":["../../../src/lib/discovery/resolve-agent-properties.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Property Discovery Types
3
- * Based on AdCP v2.2.0 specification
3
+ * Aligned with the AdCP `adagents.json` schema at
4
+ * `schemas/cache/3.0.11/adagents.json`.
4
5
  */
5
6
  /** Property identifier types from AdCP spec */
6
7
  export type PropertyIdentifierType = 'domain' | 'subdomain' | 'ios_bundle' | 'android_package' | 'apple_app_store_id' | 'google_play_id' | 'amazon_app_store_id' | 'roku_channel_id' | 'samsung_app_id' | 'lg_channel_id' | 'vizio_app_id' | 'fire_tv_app_id' | 'dooh_venue_id' | 'podcast_rss_feed' | 'spotify_show_id' | 'apple_podcast_id' | 'iab_tech_lab_domain_id' | 'custom';
@@ -20,11 +21,49 @@ export interface Property {
20
21
  tags?: string[];
21
22
  publisher_domain?: string;
22
23
  }
23
- /** Authorized agent from adagents.json */
24
+ /**
25
+ * Discriminator for the per-agent authorization scope on each
26
+ * `authorized_agents[]` entry. Drives `resolveAgentProperties()` —
27
+ * see `src/lib/discovery/resolve-agent-properties.ts`.
28
+ */
29
+ export type AuthorizationType = 'property_ids' | 'property_tags' | 'inline_properties' | 'publisher_properties' | 'signal_ids' | 'signal_tags';
30
+ /**
31
+ * Cross-publisher selector used by `authorization_type: 'publisher_properties'`.
32
+ * Each entry references properties from a different publisher's adagents.json
33
+ * (resolving the actual `Property` objects requires fetching that publisher's
34
+ * file separately).
35
+ */
36
+ export interface PublisherPropertySelector {
37
+ publisher_domain: string;
38
+ selection_type: 'all' | 'by_id' | 'by_tag';
39
+ property_ids?: string[];
40
+ property_tags?: string[];
41
+ }
42
+ /**
43
+ * Entry in `adagents.json` `authorized_agents[]`. The schema requires
44
+ * every entry to carry `authorization_type` plus the matching selector
45
+ * field — see the spec at `schemas/cache/3.0.11/adagents.json`. Files
46
+ * in the wild sometimes omit them, so both fields are typed as optional
47
+ * here. `resolveAgentProperties()` fails closed (returns no properties)
48
+ * when the discriminator or its selector is missing.
49
+ */
24
50
  export interface AuthorizedAgent {
25
51
  url: string;
26
52
  authorized_for: string;
53
+ /** Discriminator. Required by the schema; absent in pre-schema-3 files. */
54
+ authorization_type?: AuthorizationType;
55
+ /** Selector for `authorization_type: 'property_ids'`. */
27
56
  property_ids?: string[];
57
+ /** Selector for `authorization_type: 'property_tags'`. */
58
+ property_tags?: string[];
59
+ /** Selector for `authorization_type: 'inline_properties'`. */
60
+ properties?: Property[];
61
+ /** Selector for `authorization_type: 'publisher_properties'`. */
62
+ publisher_properties?: PublisherPropertySelector[];
63
+ /** Selector for `authorization_type: 'signal_ids'` (signals agents). */
64
+ signal_ids?: string[];
65
+ /** Selector for `authorization_type: 'signal_tags'` (signals agents). */
66
+ signal_tags?: string[];
28
67
  }
29
68
  /** adagents.json structure */
30
69
  export interface AdAgentsJson {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,wBAAwB,GACxB,QAAQ,CAAC;AAEb,0BAA0B;AAC1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAqB;AACrB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAEnH,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,YAAY,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,wBAAwB,GACxB,QAAQ,CAAC;AAEb,0BAA0B;AAC1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAqB;AACrB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAEnH,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,YAAY,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,eAAe,GACf,mBAAmB,GACnB,sBAAsB,GACtB,YAAY,GACZ,aAAa,CAAC;AAElB;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,iEAAiE;IACjE,oBAAoB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACnD,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Property Discovery Types
4
- * Based on AdCP v2.2.0 specification
4
+ * Aligned with the AdCP `adagents.json` schema at
5
+ * `schemas/cache/3.0.11/adagents.json`.
5
6
  */
6
7
  Object.defineProperty(exports, "__esModule", { value: true });
7
8
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/discovery/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/discovery/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}