@adcp/client 4.20.0 → 4.22.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 (210) hide show
  1. package/AGENTS.md +278 -0
  2. package/README.md +96 -61
  3. package/bin/adcp.js +342 -4
  4. package/dist/lib/agents/index.generated.d.ts +9 -1
  5. package/dist/lib/agents/index.generated.d.ts.map +1 -1
  6. package/dist/lib/agents/index.generated.js +12 -0
  7. package/dist/lib/agents/index.generated.js.map +1 -1
  8. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  9. package/dist/lib/core/SingleAgentClient.d.ts +2 -1
  10. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  11. package/dist/lib/core/SingleAgentClient.js +10 -1
  12. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  13. package/dist/lib/discovery/property-crawler.d.ts +4 -0
  14. package/dist/lib/discovery/property-crawler.d.ts.map +1 -1
  15. package/dist/lib/discovery/property-crawler.js +10 -2
  16. package/dist/lib/discovery/property-crawler.js.map +1 -1
  17. package/dist/lib/index.d.ts +9 -9
  18. package/dist/lib/index.d.ts.map +1 -1
  19. package/dist/lib/index.js +13 -5
  20. package/dist/lib/index.js.map +1 -1
  21. package/dist/lib/protocols/index.d.ts.map +1 -1
  22. package/dist/lib/protocols/index.js +8 -6
  23. package/dist/lib/protocols/index.js.map +1 -1
  24. package/dist/lib/protocols/mcp.d.ts.map +1 -1
  25. package/dist/lib/protocols/mcp.js +24 -11
  26. package/dist/lib/protocols/mcp.js.map +1 -1
  27. package/dist/lib/registry/cursor-store.d.ts +19 -0
  28. package/dist/lib/registry/cursor-store.d.ts.map +1 -0
  29. package/dist/lib/registry/cursor-store.js +44 -0
  30. package/dist/lib/registry/cursor-store.js.map +1 -0
  31. package/dist/lib/registry/index.d.ts +21 -3
  32. package/dist/lib/registry/index.d.ts.map +1 -1
  33. package/dist/lib/registry/index.js +94 -1
  34. package/dist/lib/registry/index.js.map +1 -1
  35. package/dist/lib/registry/property-registry.d.ts +57 -0
  36. package/dist/lib/registry/property-registry.d.ts.map +1 -0
  37. package/dist/lib/registry/property-registry.js +92 -0
  38. package/dist/lib/registry/property-registry.js.map +1 -0
  39. package/dist/lib/registry/sync.d.ts +4 -0
  40. package/dist/lib/registry/sync.d.ts.map +1 -1
  41. package/dist/lib/registry/sync.js +14 -0
  42. package/dist/lib/registry/sync.js.map +1 -1
  43. package/dist/lib/registry/types.d.ts +35 -2
  44. package/dist/lib/registry/types.d.ts.map +1 -1
  45. package/dist/lib/registry/types.generated.d.ts +349 -321
  46. package/dist/lib/registry/types.generated.d.ts.map +1 -1
  47. package/dist/lib/registry/types.generated.js +1 -1
  48. package/dist/lib/server/index.d.ts +2 -0
  49. package/dist/lib/server/index.d.ts.map +1 -1
  50. package/dist/lib/server/index.js +3 -1
  51. package/dist/lib/server/index.js.map +1 -1
  52. package/dist/lib/server/serve.d.ts +45 -0
  53. package/dist/lib/server/serve.d.ts.map +1 -0
  54. package/dist/lib/server/serve.js +86 -0
  55. package/dist/lib/server/serve.js.map +1 -0
  56. package/dist/lib/testing/agent-tester.d.ts +1 -1
  57. package/dist/lib/testing/agent-tester.d.ts.map +1 -1
  58. package/dist/lib/testing/agent-tester.js +10 -1
  59. package/dist/lib/testing/agent-tester.js.map +1 -1
  60. package/dist/lib/testing/client.d.ts.map +1 -1
  61. package/dist/lib/testing/client.js +3 -0
  62. package/dist/lib/testing/client.js.map +1 -1
  63. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  64. package/dist/lib/testing/compliance/comply.js +158 -203
  65. package/dist/lib/testing/compliance/comply.js.map +1 -1
  66. package/dist/lib/testing/compliance/storyboard-tracks.d.ts +24 -0
  67. package/dist/lib/testing/compliance/storyboard-tracks.d.ts.map +1 -0
  68. package/dist/lib/testing/compliance/storyboard-tracks.js +157 -0
  69. package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -0
  70. package/dist/lib/testing/compliance/types.d.ts +1 -1
  71. package/dist/lib/testing/compliance/types.d.ts.map +1 -1
  72. package/dist/lib/testing/index.d.ts +2 -1
  73. package/dist/lib/testing/index.d.ts.map +1 -1
  74. package/dist/lib/testing/index.js +26 -1
  75. package/dist/lib/testing/index.js.map +1 -1
  76. package/dist/lib/testing/orchestrator.d.ts +8 -0
  77. package/dist/lib/testing/orchestrator.d.ts.map +1 -1
  78. package/dist/lib/testing/orchestrator.js +11 -0
  79. package/dist/lib/testing/orchestrator.js.map +1 -1
  80. package/dist/lib/testing/scenarios/brand-rights.d.ts +23 -0
  81. package/dist/lib/testing/scenarios/brand-rights.d.ts.map +1 -0
  82. package/dist/lib/testing/scenarios/brand-rights.js +144 -0
  83. package/dist/lib/testing/scenarios/brand-rights.js.map +1 -0
  84. package/dist/lib/testing/scenarios/capabilities.d.ts.map +1 -1
  85. package/dist/lib/testing/scenarios/capabilities.js +11 -2
  86. package/dist/lib/testing/scenarios/capabilities.js.map +1 -1
  87. package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
  88. package/dist/lib/testing/scenarios/governance.js +5 -0
  89. package/dist/lib/testing/scenarios/governance.js.map +1 -1
  90. package/dist/lib/testing/scenarios/index.d.ts +2 -0
  91. package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
  92. package/dist/lib/testing/scenarios/index.js +10 -2
  93. package/dist/lib/testing/scenarios/index.js.map +1 -1
  94. package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
  95. package/dist/lib/testing/scenarios/media-buy.js +22 -3
  96. package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
  97. package/dist/lib/testing/scenarios/trusted-match.d.ts +22 -0
  98. package/dist/lib/testing/scenarios/trusted-match.d.ts.map +1 -0
  99. package/dist/lib/testing/scenarios/trusted-match.js +128 -0
  100. package/dist/lib/testing/scenarios/trusted-match.js.map +1 -0
  101. package/dist/lib/testing/storyboard/context.d.ts +34 -0
  102. package/dist/lib/testing/storyboard/context.d.ts.map +1 -0
  103. package/dist/lib/testing/storyboard/context.js +257 -0
  104. package/dist/lib/testing/storyboard/context.js.map +1 -0
  105. package/dist/lib/testing/storyboard/index.d.ts +15 -0
  106. package/dist/lib/testing/storyboard/index.d.ts.map +1 -0
  107. package/dist/lib/testing/storyboard/index.js +48 -0
  108. package/dist/lib/testing/storyboard/index.js.map +1 -0
  109. package/dist/lib/testing/storyboard/loader.d.ts +53 -0
  110. package/dist/lib/testing/storyboard/loader.d.ts.map +1 -0
  111. package/dist/lib/testing/storyboard/loader.js +114 -0
  112. package/dist/lib/testing/storyboard/loader.js.map +1 -0
  113. package/dist/lib/testing/storyboard/path.d.ts +29 -0
  114. package/dist/lib/testing/storyboard/path.d.ts.map +1 -0
  115. package/dist/lib/testing/storyboard/path.js +121 -0
  116. package/dist/lib/testing/storyboard/path.js.map +1 -0
  117. package/dist/lib/testing/storyboard/request-builder.d.ts +28 -0
  118. package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -0
  119. package/dist/lib/testing/storyboard/request-builder.js +410 -0
  120. package/dist/lib/testing/storyboard/request-builder.js.map +1 -0
  121. package/dist/lib/testing/storyboard/runner.d.ts +24 -0
  122. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -0
  123. package/dist/lib/testing/storyboard/runner.js +280 -0
  124. package/dist/lib/testing/storyboard/runner.js.map +1 -0
  125. package/dist/lib/testing/storyboard/task-map.d.ts +21 -0
  126. package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -0
  127. package/dist/lib/testing/storyboard/task-map.js +84 -0
  128. package/dist/lib/testing/storyboard/task-map.js.map +1 -0
  129. package/dist/lib/testing/storyboard/types.d.ts +156 -0
  130. package/dist/lib/testing/storyboard/types.d.ts.map +1 -0
  131. package/dist/lib/testing/storyboard/types.js +10 -0
  132. package/dist/lib/testing/storyboard/types.js.map +1 -0
  133. package/dist/lib/testing/storyboard/validations.d.ts +17 -0
  134. package/dist/lib/testing/storyboard/validations.d.ts.map +1 -0
  135. package/dist/lib/testing/storyboard/validations.js +166 -0
  136. package/dist/lib/testing/storyboard/validations.js.map +1 -0
  137. package/dist/lib/testing/types.d.ts +4 -1
  138. package/dist/lib/testing/types.d.ts.map +1 -1
  139. package/dist/lib/types/core.generated.d.ts +36 -23
  140. package/dist/lib/types/core.generated.d.ts.map +1 -1
  141. package/dist/lib/types/core.generated.js +1 -1
  142. package/dist/lib/types/schemas.generated.d.ts +1098 -770
  143. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  144. package/dist/lib/types/schemas.generated.js +163 -76
  145. package/dist/lib/types/schemas.generated.js.map +1 -1
  146. package/dist/lib/types/tools.generated.d.ts +314 -24
  147. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  148. package/dist/lib/utils/capabilities.d.ts +4 -1
  149. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  150. package/dist/lib/utils/capabilities.js +25 -1
  151. package/dist/lib/utils/capabilities.js.map +1 -1
  152. package/dist/lib/utils/response-schemas.d.ts.map +1 -1
  153. package/dist/lib/utils/response-schemas.js +34 -3
  154. package/dist/lib/utils/response-schemas.js.map +1 -1
  155. package/dist/lib/utils/validate-user-agent.d.ts +8 -0
  156. package/dist/lib/utils/validate-user-agent.d.ts.map +1 -0
  157. package/dist/lib/utils/validate-user-agent.js +15 -0
  158. package/dist/lib/utils/validate-user-agent.js.map +1 -0
  159. package/dist/lib/version.d.ts +9 -3
  160. package/dist/lib/version.d.ts.map +1 -1
  161. package/dist/lib/version.js +10 -4
  162. package/dist/lib/version.js.map +1 -1
  163. package/docs/README.md +42 -0
  164. package/docs/guides/BUILD-AN-AGENT.md +292 -0
  165. package/docs/llms.txt +634 -0
  166. package/examples/README.md +106 -0
  167. package/examples/adcp.config.json +30 -0
  168. package/examples/basic-a2a.ts +76 -0
  169. package/examples/basic-mcp.ts +50 -0
  170. package/examples/batch-preview-test.ts +266 -0
  171. package/examples/conversation-client.ts +291 -0
  172. package/examples/debug-preview-response.ts +73 -0
  173. package/examples/debug-preview-with-logging.ts +50 -0
  174. package/examples/easy-config-demo.ts +242 -0
  175. package/examples/env-config.ts +51 -0
  176. package/examples/error-compliant-server.ts +237 -0
  177. package/examples/generative-creative-demo.ts +205 -0
  178. package/examples/inspect-card-formats.ts +161 -0
  179. package/examples/logger-usage.ts +165 -0
  180. package/examples/oauth-cli-example.ts +154 -0
  181. package/examples/pr78-async-patterns-demo.ts +247 -0
  182. package/examples/signals-agent.ts +162 -0
  183. package/examples/simple-getting-started.ts +225 -0
  184. package/examples/simple-protocol-demo.ts +75 -0
  185. package/examples/test-helpers-demo.ts +239 -0
  186. package/examples/zod-validation-example.ts +126 -0
  187. package/package.json +12 -2
  188. package/skills/adcp/SKILL.md +13 -2
  189. package/storyboards/audience_sync.yaml +199 -0
  190. package/storyboards/behavioral_analysis.yaml +244 -0
  191. package/storyboards/brand_rights.yaml +131 -0
  192. package/storyboards/creative_ad_server.yaml +171 -0
  193. package/storyboards/creative_sales_agent.yaml +169 -0
  194. package/storyboards/creative_template.yaml +306 -0
  195. package/storyboards/deterministic_testing.yaml +925 -0
  196. package/storyboards/error_compliance.yaml +231 -0
  197. package/storyboards/governance_content_standards.yaml +213 -0
  198. package/storyboards/governance_property_lists.yaml +372 -0
  199. package/storyboards/media_buy_catalog_creative.yaml +457 -0
  200. package/storyboards/media_buy_governance_escalation.yaml +467 -0
  201. package/storyboards/media_buy_guaranteed_approval.yaml +396 -0
  202. package/storyboards/media_buy_non_guaranteed.yaml +288 -0
  203. package/storyboards/media_buy_proposal_mode.yaml +369 -0
  204. package/storyboards/media_buy_seller.yaml +560 -0
  205. package/storyboards/media_buy_state_machine.yaml +254 -0
  206. package/storyboards/schema.yaml +65 -0
  207. package/storyboards/schema_validation.yaml +166 -0
  208. package/storyboards/si_session.yaml +384 -0
  209. package/storyboards/signal_marketplace.yaml +283 -0
  210. package/storyboards/signal_owned.yaml +211 -0
@@ -511,75 +511,6 @@ export interface paths {
511
511
  patch?: never;
512
512
  trace?: never;
513
513
  };
514
- "/api/registry/feed": {
515
- parameters: {
516
- query?: never;
517
- header?: never;
518
- path?: never;
519
- cookie?: never;
520
- };
521
- /**
522
- * Registry change feed
523
- * @description Poll the catalog event feed. Returns events since the provided cursor,
524
- * ordered by UUID v7 event_id. Consumers save cursor and pass it on
525
- * the next poll. When has_more is false, the consumer is caught up.
526
- *
527
- * Events are retained for 90 days. If the cursor refers to a deleted event,
528
- * cursor_expired is true and the client should re-bootstrap.
529
- */
530
- get: operations["getRegistryFeed"];
531
- put?: never;
532
- post?: never;
533
- delete?: never;
534
- options?: never;
535
- head?: never;
536
- patch?: never;
537
- trace?: never;
538
- };
539
- "/api/registry/agents/search": {
540
- parameters: {
541
- query?: never;
542
- header?: never;
543
- path?: never;
544
- cookie?: never;
545
- };
546
- /**
547
- * Search agents by inventory profile
548
- * @description Query the registry for agents matching a campaign profile. Returns a
549
- * ranked list with inventory profiles and match scores. All filters use
550
- * AND logic across dimensions; multiple values within a filter use OR.
551
- */
552
- get: operations["searchAgents"];
553
- put?: never;
554
- post?: never;
555
- delete?: never;
556
- options?: never;
557
- head?: never;
558
- patch?: never;
559
- trace?: never;
560
- };
561
- "/api/registry/crawl-request": {
562
- parameters: {
563
- query?: never;
564
- header?: never;
565
- path?: never;
566
- cookie?: never;
567
- };
568
- get?: never;
569
- put?: never;
570
- /**
571
- * Request domain re-crawl
572
- * @description Request immediate re-crawl of a domain's adagents.json. The requester
573
- * must be a member who owns the domain or an agent authorized for it.
574
- * Rate limited to one crawl per domain per 10 minutes.
575
- */
576
- post: operations["requestCrawl"];
577
- delete?: never;
578
- options?: never;
579
- head?: never;
580
- patch?: never;
581
- trace?: never;
582
- };
583
514
  "/api/adagents/validate": {
584
515
  parameters: {
585
516
  query?: never;
@@ -842,6 +773,70 @@ export interface paths {
842
773
  patch?: never;
843
774
  trace?: never;
844
775
  };
776
+ "/api/registry/feed": {
777
+ parameters: {
778
+ query?: never;
779
+ header?: never;
780
+ path?: never;
781
+ cookie?: never;
782
+ };
783
+ /**
784
+ * Registry change feed
785
+ * @description Poll a cursor-based feed of registry changes. Events are ordered by UUID v7 event_id for monotonic cursor progression. The feed retains events for 90 days.
786
+ *
787
+ * Type filtering supports glob patterns: `property.*` matches `property.created`, `property.updated`, etc.
788
+ */
789
+ get: operations["getRegistryFeed"];
790
+ put?: never;
791
+ post?: never;
792
+ delete?: never;
793
+ options?: never;
794
+ head?: never;
795
+ patch?: never;
796
+ trace?: never;
797
+ };
798
+ "/api/registry/agents/search": {
799
+ parameters: {
800
+ query?: never;
801
+ header?: never;
802
+ path?: never;
803
+ cookie?: never;
804
+ };
805
+ /**
806
+ * Search agent inventory profiles
807
+ * @description Search agents by inventory profile — channels, markets, content categories, property types, and more. Filters use AND across dimensions and OR within a dimension. Results are ranked by relevance score.
808
+ */
809
+ get: operations["searchAgentProfiles"];
810
+ put?: never;
811
+ post?: never;
812
+ delete?: never;
813
+ options?: never;
814
+ head?: never;
815
+ patch?: never;
816
+ trace?: never;
817
+ };
818
+ "/api/registry/crawl-request": {
819
+ parameters: {
820
+ query?: never;
821
+ header?: never;
822
+ path?: never;
823
+ cookie?: never;
824
+ };
825
+ get?: never;
826
+ put?: never;
827
+ /**
828
+ * Request domain re-crawl
829
+ * @description Trigger an immediate re-crawl of a publisher domain after updating adagents.json. The crawl runs asynchronously — returns 202 immediately.
830
+ *
831
+ * **Rate limits:** 5 minutes per domain, 30 requests per user per hour.
832
+ */
833
+ post: operations["requestCrawl"];
834
+ delete?: never;
835
+ options?: never;
836
+ head?: never;
837
+ patch?: never;
838
+ trace?: never;
839
+ };
845
840
  }
846
841
  export type webhooks = Record<string, never>;
847
842
  export interface components {
@@ -1291,121 +1286,6 @@ export interface components {
1291
1286
  created_at: string;
1292
1287
  }[];
1293
1288
  };
1294
- CatalogEvent: {
1295
- /**
1296
- * Format: uuid
1297
- * @description UUID v7, monotonically ordered
1298
- */
1299
- event_id: string;
1300
- /** @enum {string} */
1301
- event_type: "property.created" | "property.updated" | "property.merged" | "property.stale" | "property.reactivated" | "agent.discovered" | "agent.removed" | "agent.profile_updated" | "publisher.adagents_changed" | "authorization.granted" | "authorization.revoked";
1302
- /** @enum {string} */
1303
- entity_type: "property" | "agent" | "publisher" | "authorization";
1304
- /** @description property_rid, agent_url, or publisher_domain */
1305
- entity_id: string;
1306
- payload: {
1307
- [key: string]: unknown;
1308
- };
1309
- /** @description crawler, member_id, or system */
1310
- actor: string;
1311
- /** Format: date-time */
1312
- created_at: string;
1313
- };
1314
- FeedResponse: {
1315
- events: components["schemas"]["CatalogEvent"][];
1316
- /**
1317
- * Format: uuid
1318
- * @description Pass as cursor on next poll. Null when no events returned.
1319
- */
1320
- cursor: string | null;
1321
- has_more: boolean;
1322
- /** @description True when the provided cursor has been cleaned up. Client should re-bootstrap. */
1323
- cursor_expired?: boolean;
1324
- };
1325
- AgentInventoryProfile: {
1326
- /** @description Media channels: display, olv, ctv, dooh, etc. */
1327
- channels: string[];
1328
- /** @description Inventory surface types: website, mobile_app, ctv_app, etc. */
1329
- property_types: string[];
1330
- /** @description ISO 3166-1 alpha-2 country codes */
1331
- markets: string[];
1332
- /** @description IAB Content Taxonomy 3.0 categories */
1333
- categories: string[];
1334
- /** @default iab_content_3.0 */
1335
- category_taxonomy: string;
1336
- tags: string[];
1337
- /** @description guaranteed, non_guaranteed, etc. */
1338
- delivery_types: string[];
1339
- property_count: number;
1340
- publisher_count: number;
1341
- /** @description Whether the agent supports Trusted Match Protocol */
1342
- has_tmp: boolean;
1343
- };
1344
- AgentSearchResult: {
1345
- url: string;
1346
- name: string;
1347
- /** @enum {string} */
1348
- type: "creative" | "signals" | "sales" | "governance" | "si" | "unknown";
1349
- /** @enum {string} */
1350
- protocol?: "mcp" | "a2a";
1351
- /** @enum {string} */
1352
- source?: "registered" | "discovered";
1353
- member?: {
1354
- slug?: string;
1355
- display_name?: string;
1356
- };
1357
- inventory_profile: components["schemas"]["AgentInventoryProfile"];
1358
- match: {
1359
- score: number;
1360
- matched_filters: string[];
1361
- };
1362
- };
1363
- AgentSearchResponse: {
1364
- results: components["schemas"]["AgentSearchResult"][];
1365
- cursor?: string | null;
1366
- has_more: boolean;
1367
- filters_applied?: {
1368
- [key: string]: string[];
1369
- };
1370
- };
1371
- CrawlRequestResponse: {
1372
- /** @enum {string} */
1373
- status: "accepted" | "rate_limited";
1374
- domain: string;
1375
- /**
1376
- * Format: date-time
1377
- * @description Present when rate_limited
1378
- */
1379
- last_crawled?: string | null;
1380
- /** @description Seconds until next crawl allowed. Present when rate_limited. */
1381
- retry_after?: number | null;
1382
- };
1383
- /** @description Full authorization record from adagents.json, carried in authorization.granted/revoked event payloads. */
1384
- AuthorizationEntry: {
1385
- agent_url: string;
1386
- publisher_domain: string;
1387
- /** @enum {string} */
1388
- authorization_type: "full" | "property_ids" | "property_types" | "collections";
1389
- property_ids?: string[];
1390
- placement_ids?: string[];
1391
- collections?: {
1392
- publisher_domain: string;
1393
- collection_id: string;
1394
- }[];
1395
- /** @description ISO 3166-1 alpha-2 country codes */
1396
- countries?: string[];
1397
- /** @enum {string} */
1398
- delegation_type?: "direct" | "delegated";
1399
- exclusive?: boolean;
1400
- signing_keys?: {
1401
- algorithm: string;
1402
- public_key: string;
1403
- }[];
1404
- /** Format: date-time */
1405
- effective_from?: string | null;
1406
- /** Format: date-time */
1407
- effective_until?: string | null;
1408
- };
1409
1289
  };
1410
1290
  responses: never;
1411
1291
  parameters: never;
@@ -2382,136 +2262,6 @@ export interface operations {
2382
2262
  };
2383
2263
  };
2384
2264
  };
2385
- getRegistryFeed: {
2386
- parameters: {
2387
- query?: {
2388
- /** @description Last event_id processed. Omit for start of retention window. */
2389
- cursor?: string;
2390
- /** @description Comma-separated event types. Supports glob: property.*, authorization.* */
2391
- types?: string;
2392
- limit?: number;
2393
- };
2394
- header?: never;
2395
- path?: never;
2396
- cookie?: never;
2397
- };
2398
- requestBody?: never;
2399
- responses: {
2400
- /** @description Feed events */
2401
- 200: {
2402
- headers: {
2403
- [name: string]: unknown;
2404
- };
2405
- content: {
2406
- "application/json": components["schemas"]["FeedResponse"];
2407
- };
2408
- };
2409
- /** @description Authentication required */
2410
- 401: {
2411
- headers: {
2412
- [name: string]: unknown;
2413
- };
2414
- content: {
2415
- "application/json": components["schemas"]["Error"];
2416
- };
2417
- };
2418
- };
2419
- };
2420
- searchAgents: {
2421
- parameters: {
2422
- query?: {
2423
- type?: "creative" | "signals" | "sales" | "governance" | "si";
2424
- /** @description Comma-separated media channels: ctv, olv, display, dooh */
2425
- channels?: string;
2426
- /** @description Comma-separated ISO 3166-1 alpha-2 codes: US, GB, CA */
2427
- markets?: string;
2428
- /** @description Comma-separated IAB categories: IAB-7, IAB-7-1 */
2429
- categories?: string;
2430
- /** @description Comma-separated: website, mobile_app, ctv_app */
2431
- property_types?: string;
2432
- /** @description Comma-separated property tags */
2433
- tags?: string;
2434
- /** @description Comma-separated: guaranteed, non_guaranteed */
2435
- delivery_types?: string;
2436
- /** @description Filter to agents supporting Trusted Match Protocol */
2437
- has_tmp?: boolean;
2438
- min_properties?: number;
2439
- sort?: "relevance" | "property_count" | "publisher_count";
2440
- limit?: number;
2441
- /** @description Pagination cursor from previous response */
2442
- cursor?: string;
2443
- };
2444
- header?: never;
2445
- path?: never;
2446
- cookie?: never;
2447
- };
2448
- requestBody?: never;
2449
- responses: {
2450
- /** @description Search results */
2451
- 200: {
2452
- headers: {
2453
- [name: string]: unknown;
2454
- };
2455
- content: {
2456
- "application/json": components["schemas"]["AgentSearchResponse"];
2457
- };
2458
- };
2459
- /** @description Authentication required */
2460
- 401: {
2461
- headers: {
2462
- [name: string]: unknown;
2463
- };
2464
- content: {
2465
- "application/json": components["schemas"]["Error"];
2466
- };
2467
- };
2468
- };
2469
- };
2470
- requestCrawl: {
2471
- parameters: {
2472
- query?: never;
2473
- header?: never;
2474
- path?: never;
2475
- cookie?: never;
2476
- };
2477
- requestBody: {
2478
- content: {
2479
- "application/json": {
2480
- /** @description Publisher domain to re-crawl */
2481
- domain: string;
2482
- };
2483
- };
2484
- };
2485
- responses: {
2486
- /** @description Crawl accepted or rate limited */
2487
- 200: {
2488
- headers: {
2489
- [name: string]: unknown;
2490
- };
2491
- content: {
2492
- "application/json": components["schemas"]["CrawlRequestResponse"];
2493
- };
2494
- };
2495
- /** @description Authentication required */
2496
- 401: {
2497
- headers: {
2498
- [name: string]: unknown;
2499
- };
2500
- content: {
2501
- "application/json": components["schemas"]["Error"];
2502
- };
2503
- };
2504
- /** @description Rate limit exceeded */
2505
- 429: {
2506
- headers: {
2507
- [name: string]: unknown;
2508
- };
2509
- content: {
2510
- "application/json": components["schemas"]["CrawlRequestResponse"];
2511
- };
2512
- };
2513
- };
2514
- };
2515
2265
  validateAdagents: {
2516
2266
  parameters: {
2517
2267
  query?: never;
@@ -3082,6 +2832,233 @@ export interface operations {
3082
2832
  };
3083
2833
  };
3084
2834
  };
2835
+ getRegistryFeed: {
2836
+ parameters: {
2837
+ query?: {
2838
+ /** @description Resume after this event ID */
2839
+ cursor?: string;
2840
+ /** @description Comma-separated event type filters with glob support (e.g. property.*) */
2841
+ types?: string;
2842
+ /** @description Max events per page (default 100, max 10,000) */
2843
+ limit?: number;
2844
+ };
2845
+ header?: never;
2846
+ path?: never;
2847
+ cookie?: never;
2848
+ };
2849
+ requestBody?: never;
2850
+ responses: {
2851
+ /** @description Feed page */
2852
+ 200: {
2853
+ headers: {
2854
+ [name: string]: unknown;
2855
+ };
2856
+ content: {
2857
+ "application/json": {
2858
+ events: {
2859
+ /** Format: uuid */
2860
+ event_id: string;
2861
+ /** @example property.created */
2862
+ event_type: string;
2863
+ /** @example property */
2864
+ entity_type: string;
2865
+ entity_id: string;
2866
+ payload: {
2867
+ [key: string]: unknown;
2868
+ };
2869
+ actor: string;
2870
+ /** Format: date-time */
2871
+ created_at: string;
2872
+ }[];
2873
+ /**
2874
+ * Format: uuid
2875
+ * @description Pass as cursor in the next request to continue polling
2876
+ */
2877
+ cursor: string | null;
2878
+ has_more: boolean;
2879
+ };
2880
+ };
2881
+ };
2882
+ /** @description Invalid cursor format or type filter */
2883
+ 400: {
2884
+ headers: {
2885
+ [name: string]: unknown;
2886
+ };
2887
+ content: {
2888
+ "application/json": components["schemas"]["Error"];
2889
+ };
2890
+ };
2891
+ /** @description Authentication required */
2892
+ 401: {
2893
+ headers: {
2894
+ [name: string]: unknown;
2895
+ };
2896
+ content: {
2897
+ "application/json": components["schemas"]["Error"];
2898
+ };
2899
+ };
2900
+ /** @description Cursor expired (older than 90-day retention window) */
2901
+ 410: {
2902
+ headers: {
2903
+ [name: string]: unknown;
2904
+ };
2905
+ content: {
2906
+ "application/json": {
2907
+ /** @enum {string} */
2908
+ error: "cursor_expired";
2909
+ message: string;
2910
+ };
2911
+ };
2912
+ };
2913
+ };
2914
+ };
2915
+ searchAgentProfiles: {
2916
+ parameters: {
2917
+ query?: {
2918
+ /** @description Comma-separated channel filter */
2919
+ channels?: string;
2920
+ /** @description Comma-separated property type filter */
2921
+ property_types?: string;
2922
+ /** @description Comma-separated market/country code filter */
2923
+ markets?: string;
2924
+ /** @description Comma-separated IAB content category filter */
2925
+ categories?: string;
2926
+ /** @description Comma-separated tag filter */
2927
+ tags?: string;
2928
+ /** @description Comma-separated delivery type filter */
2929
+ delivery_types?: string;
2930
+ /** @description Require TMP support */
2931
+ has_tmp?: "true" | "false";
2932
+ /** @description Minimum number of properties in inventory */
2933
+ min_properties?: number | null;
2934
+ /** @description Pagination cursor from a previous response */
2935
+ cursor?: string;
2936
+ /** @description Max results per page (default 50, max 200) */
2937
+ limit?: number;
2938
+ };
2939
+ header?: never;
2940
+ path?: never;
2941
+ cookie?: never;
2942
+ };
2943
+ requestBody?: never;
2944
+ responses: {
2945
+ /** @description Search results ranked by relevance */
2946
+ 200: {
2947
+ headers: {
2948
+ [name: string]: unknown;
2949
+ };
2950
+ content: {
2951
+ "application/json": {
2952
+ results: {
2953
+ /** Format: uri */
2954
+ agent_url: string;
2955
+ channels: string[];
2956
+ property_types: string[];
2957
+ markets: string[];
2958
+ categories: string[];
2959
+ tags: string[];
2960
+ delivery_types: string[];
2961
+ /** @description Creative format identifiers supported by this agent */
2962
+ format_ids: unknown[];
2963
+ property_count: number;
2964
+ publisher_count: number;
2965
+ has_tmp: boolean;
2966
+ category_taxonomy: string | null;
2967
+ relevance_score: number;
2968
+ matched_filters: string[];
2969
+ /** Format: date-time */
2970
+ updated_at: string;
2971
+ }[];
2972
+ cursor: string | null;
2973
+ has_more: boolean;
2974
+ };
2975
+ };
2976
+ };
2977
+ /** @description Invalid cursor or parameter */
2978
+ 400: {
2979
+ headers: {
2980
+ [name: string]: unknown;
2981
+ };
2982
+ content: {
2983
+ "application/json": components["schemas"]["Error"];
2984
+ };
2985
+ };
2986
+ /** @description Authentication required */
2987
+ 401: {
2988
+ headers: {
2989
+ [name: string]: unknown;
2990
+ };
2991
+ content: {
2992
+ "application/json": components["schemas"]["Error"];
2993
+ };
2994
+ };
2995
+ };
2996
+ };
2997
+ requestCrawl: {
2998
+ parameters: {
2999
+ query?: never;
3000
+ header?: never;
3001
+ path?: never;
3002
+ cookie?: never;
3003
+ };
3004
+ requestBody?: {
3005
+ content: {
3006
+ "application/json": {
3007
+ /**
3008
+ * @description Publisher domain to re-crawl
3009
+ * @example examplepub.com
3010
+ */
3011
+ domain: string;
3012
+ };
3013
+ };
3014
+ };
3015
+ responses: {
3016
+ /** @description Crawl request accepted */
3017
+ 202: {
3018
+ headers: {
3019
+ [name: string]: unknown;
3020
+ };
3021
+ content: {
3022
+ "application/json": {
3023
+ /** @enum {string} */
3024
+ message: "Crawl request accepted";
3025
+ domain: string;
3026
+ };
3027
+ };
3028
+ };
3029
+ /** @description Invalid domain format, private IP, or unresolvable domain */
3030
+ 400: {
3031
+ headers: {
3032
+ [name: string]: unknown;
3033
+ };
3034
+ content: {
3035
+ "application/json": components["schemas"]["Error"];
3036
+ };
3037
+ };
3038
+ /** @description Authentication required */
3039
+ 401: {
3040
+ headers: {
3041
+ [name: string]: unknown;
3042
+ };
3043
+ content: {
3044
+ "application/json": components["schemas"]["Error"];
3045
+ };
3046
+ };
3047
+ /** @description Rate limit exceeded */
3048
+ 429: {
3049
+ headers: {
3050
+ [name: string]: unknown;
3051
+ };
3052
+ content: {
3053
+ "application/json": {
3054
+ error: string;
3055
+ /** @description Seconds to wait before retrying */
3056
+ retry_after: number;
3057
+ };
3058
+ };
3059
+ };
3060
+ };
3061
+ };
3085
3062
  }
3086
3063
  export type ResolvedBrand = components['schemas']['ResolvedBrand'];
3087
3064
  export type LocalizedName = components['schemas']['LocalizedName'];
@@ -3099,11 +3076,62 @@ export type AgentCapabilities = components['schemas']['AgentCapabilities'];
3099
3076
  export type PropertySummary = components['schemas']['PropertySummary'];
3100
3077
  export type FederatedPublisher = components['schemas']['FederatedPublisher'];
3101
3078
  export type DomainLookupResult = components['schemas']['DomainLookupResult'];
3102
- export type CatalogEvent = components['schemas']['CatalogEvent'];
3103
- export type FeedResponse = components['schemas']['FeedResponse'];
3104
- export type AgentInventoryProfile = components['schemas']['AgentInventoryProfile'];
3105
- export type AgentSearchResult = components['schemas']['AgentSearchResult'];
3106
- export type AgentSearchResponse = components['schemas']['AgentSearchResponse'];
3107
- export type CrawlRequestResponse = components['schemas']['CrawlRequestResponse'];
3108
- export type AuthorizationEntry = components['schemas']['AuthorizationEntry'];
3079
+ export type BrandActivity = components['schemas']['BrandActivity'];
3080
+ export type PropertyActivity = components['schemas']['PropertyActivity'];
3081
+ export type PolicySummary = components['schemas']['PolicySummary'];
3082
+ export type Policy = components['schemas']['Policy'];
3083
+ export type PolicyHistory = components['schemas']['PolicyHistory'];
3084
+ /** A single event from the registry feed (inline in getRegistryFeed 200 response). */
3085
+ export type CatalogEvent = operations['getRegistryFeed']['responses']['200']['content']['application/json']['events'][number];
3086
+ /** Full response from GET /api/registry/feed. Includes optional cursor_expired for 410 handling. */
3087
+ export type FeedResponse = operations['getRegistryFeed']['responses']['200']['content']['application/json'] & {
3088
+ /** Set to true by the client when the server returns 410 (cursor expired). */
3089
+ cursor_expired?: boolean;
3090
+ };
3091
+ /** Raw search result from the searchAgentProfiles operation. */
3092
+ export type AgentProfileSearchResult = operations['searchAgentProfiles']['responses']['200']['content']['application/json']['results'][number];
3093
+ /** Full response from GET /api/registry/agents/search (raw operation type). */
3094
+ export type AgentProfileSearchResponse = operations['searchAgentProfiles']['responses']['200']['content']['application/json'];
3095
+ /** Response from POST /api/registry/crawl-request (202). */
3096
+ export type CrawlRequestResponse = operations['requestCrawl']['responses']['202']['content']['application/json'];
3097
+ /** Inventory profile for an agent (channels, markets, categories, etc.). */
3098
+ export type AgentInventoryProfile = {
3099
+ channels: string[];
3100
+ property_types: string[];
3101
+ markets: string[];
3102
+ categories: string[];
3103
+ category_taxonomy: string | null;
3104
+ tags: string[];
3105
+ delivery_types: string[];
3106
+ format_ids?: unknown[];
3107
+ property_count: number;
3108
+ publisher_count: number;
3109
+ has_tmp: boolean;
3110
+ };
3111
+ /** An agent search result in the client-facing shape used by RegistrySync. */
3112
+ export type AgentSearchResult = {
3113
+ url: string;
3114
+ name: string;
3115
+ type: string;
3116
+ inventory_profile: AgentInventoryProfile;
3117
+ match: {
3118
+ score: number;
3119
+ matched_filters: string[];
3120
+ };
3121
+ };
3122
+ /** Response shape for the searchAgents client method. */
3123
+ export type AgentSearchResponse = {
3124
+ results: AgentSearchResult[];
3125
+ cursor: string | null;
3126
+ has_more: boolean;
3127
+ };
3128
+ /** An authorization entry used by the sync module. Derived from authorization.granted event payloads. */
3129
+ export type AuthorizationEntry = {
3130
+ agent_url: string;
3131
+ publisher_domain: string;
3132
+ authorization_type: string;
3133
+ property_ids?: string[];
3134
+ effective_from?: string;
3135
+ effective_to?: string;
3136
+ };
3109
3137
  //# sourceMappingURL=types.generated.d.ts.map