@adcp/client 3.16.0 → 3.18.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 (48) hide show
  1. package/dist/lib/adapters/property-list-adapter.js +2 -2
  2. package/dist/lib/adapters/property-list-adapter.js.map +1 -1
  3. package/dist/lib/adapters/proposal-manager.d.ts +3 -3
  4. package/dist/lib/adapters/proposal-manager.d.ts.map +1 -1
  5. package/dist/lib/adapters/proposal-manager.js.map +1 -1
  6. package/dist/lib/agents/index.generated.d.ts +9 -1
  7. package/dist/lib/agents/index.generated.d.ts.map +1 -1
  8. package/dist/lib/agents/index.generated.js +12 -0
  9. package/dist/lib/agents/index.generated.js.map +1 -1
  10. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  11. package/dist/lib/core/TaskExecutor.js +3 -2
  12. package/dist/lib/core/TaskExecutor.js.map +1 -1
  13. package/dist/lib/index.d.ts +3 -1
  14. package/dist/lib/index.d.ts.map +1 -1
  15. package/dist/lib/index.js +6 -4
  16. package/dist/lib/index.js.map +1 -1
  17. package/dist/lib/testing/client.d.ts +6 -0
  18. package/dist/lib/testing/client.d.ts.map +1 -1
  19. package/dist/lib/testing/client.js +13 -5
  20. package/dist/lib/testing/client.js.map +1 -1
  21. package/dist/lib/testing/scenarios/index.d.ts +1 -1
  22. package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
  23. package/dist/lib/testing/scenarios/index.js +2 -1
  24. package/dist/lib/testing/scenarios/index.js.map +1 -1
  25. package/dist/lib/testing/scenarios/media-buy.d.ts +8 -0
  26. package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
  27. package/dist/lib/testing/scenarios/media-buy.js +127 -12
  28. package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
  29. package/dist/lib/testing/types.d.ts +6 -1
  30. package/dist/lib/testing/types.d.ts.map +1 -1
  31. package/dist/lib/types/compat.d.ts +60 -0
  32. package/dist/lib/types/compat.d.ts.map +1 -0
  33. package/dist/lib/types/compat.js +29 -0
  34. package/dist/lib/types/compat.js.map +1 -0
  35. package/dist/lib/types/core.generated.d.ts +53 -322
  36. package/dist/lib/types/core.generated.d.ts.map +1 -1
  37. package/dist/lib/types/core.generated.js +1 -1
  38. package/dist/lib/types/schemas.generated.d.ts +303 -1294
  39. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  40. package/dist/lib/types/schemas.generated.js +114 -108
  41. package/dist/lib/types/schemas.generated.js.map +1 -1
  42. package/dist/lib/types/tools.generated.d.ts +334 -339
  43. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  44. package/dist/lib/utils/capabilities.d.ts +3 -1
  45. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  46. package/dist/lib/utils/capabilities.js +4 -0
  47. package/dist/lib/utils/capabilities.js.map +1 -1
  48. package/package.json +6 -4
@@ -133,6 +133,10 @@ export interface Account {
133
133
  amount: number;
134
134
  currency: string;
135
135
  };
136
+ /**
137
+ * When true, this is a sandbox account. All requests using this account_id are treated as sandbox — no real platform calls, no real spend.
138
+ */
139
+ sandbox?: boolean;
136
140
  ext?: ExtensionObject;
137
141
  [k: string]: unknown | undefined;
138
142
  }
@@ -334,6 +338,18 @@ export interface TargetingOverlay {
334
338
  * AXE segment ID to exclude from targeting
335
339
  */
336
340
  axe_exclude_segment?: string;
341
+ /**
342
+ * Restrict delivery to members of these first-party CRM audiences. Only users present in the uploaded lists are eligible. References audience_id values from sync_audiences on the same seller account — audience IDs are not portable across sellers. Not for lookalike expansion — express that intent in the campaign brief. Seller must declare support in get_adcp_capabilities.
343
+ *
344
+ * @minItems 1
345
+ */
346
+ audience_include?: [string, ...string[]];
347
+ /**
348
+ * Suppress delivery to members of these first-party CRM audiences. Matched users are excluded regardless of other targeting. References audience_id values from sync_audiences on the same seller account — audience IDs are not portable across sellers. Seller must declare support in get_adcp_capabilities.
349
+ *
350
+ * @minItems 1
351
+ */
352
+ audience_exclude?: [string, ...string[]];
337
353
  frequency_cap?: FrequencyCap;
338
354
  property_list?: PropertyListReference;
339
355
  /**
@@ -651,13 +667,9 @@ export type DAASTTrackingEvent = 'start' | 'firstQuartile' | 'midpoint' | 'third
651
667
  */
652
668
  export type DAASTVersion1 = '1.0' | '1.1';
653
669
  /**
654
- * Brand information manifest containing assets, themes, and guidelines. Can be provided inline or as a URL reference to a hosted manifest.
655
- */
656
- export type BrandManifestReference = BrandManifest | string;
657
- /**
658
- * Type of asset. Note: Brand manifests typically contain basic media assets (image, video, audio, text). Code assets (html, javascript, css) and ad markup (vast, daast) are usually not part of brand asset libraries.
670
+ * Brand identifier within the house portfolio. Optional for single-brand domains.
659
671
  */
660
- export type AssetContentType = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
672
+ export type BrandID = string;
661
673
  /**
662
674
  * Type of URL asset: 'clickthrough' for user click destination (landing page), 'tracker_pixel' for impression/event tracking via HTTP request (fires GET, expects pixel/204 response), 'tracker_script' for measurement SDKs that must load as <script> tag (OMID verification, native event trackers using method:2)
663
675
  */
@@ -1020,10 +1032,10 @@ export interface JavaScriptAsset {
1020
1032
  [k: string]: unknown | undefined;
1021
1033
  }
1022
1034
  /**
1023
- * Complete offering specification combining brand manifest, product selectors, and optional SI agent endpoint. Provides all context needed for creative generation and/or conversational experiences about what is being promoted. When si_agent_url is present, hosts can connect users to conversational experiences about any of the offerings.
1035
+ * Complete offering specification combining brand reference, product selectors, and optional SI agent endpoint. Provides all context needed for creative generation and/or conversational experiences about what is being promoted. When si_agent_url is present, hosts can connect users to conversational experiences about any of the offerings.
1024
1036
  */
1025
1037
  export interface PromotedOfferings {
1026
- brand_manifest: BrandManifestReference;
1038
+ brand: BrandReference;
1027
1039
  /**
1028
1040
  * MCP endpoint URL for the brand's SI agent. When present, hosts can connect users to conversational experiences about any of the offerings. The agent handles si_get_offering lookups and full conversations.
1029
1041
  */
@@ -1034,7 +1046,7 @@ export interface PromotedOfferings {
1034
1046
  */
1035
1047
  offerings?: Offering[];
1036
1048
  /**
1037
- * Selectors to choose specific assets from the brand manifest
1049
+ * Selectors to choose specific assets from the brand's asset library
1038
1050
  */
1039
1051
  asset_selectors?: {
1040
1052
  /**
@@ -1054,318 +1066,17 @@ export interface PromotedOfferings {
1054
1066
  [k: string]: unknown | undefined;
1055
1067
  }
1056
1068
  /**
1057
- * Inline brand manifest object
1069
+ * Brand reference. Resolved to full brand identity (logos, colors, tone, assets) at execution time for creative generation.
1058
1070
  */
1059
- export interface BrandManifest {
1060
- /**
1061
- * Primary brand URL for context and asset discovery. Creative agents can infer brand information from this URL.
1062
- */
1063
- url?: string;
1064
- /**
1065
- * URL to the brand's privacy policy. Used for consumer consent flows when personal data may be shared with the advertiser. AI platforms can use this to present explicit privacy choices to users before data handoff.
1066
- */
1067
- privacy_policy_url?: string;
1068
- /**
1069
- * Brand or business name
1070
- */
1071
- name: string;
1072
- /**
1073
- * Brand logo assets with structured fields for orientation, background compatibility, and variant type. Use the orientation, background, and variant enum fields for reliable filtering by creative agents.
1074
- */
1075
- logos?: {
1076
- /**
1077
- * URL to the logo asset
1078
- */
1079
- url: string;
1080
- /**
1081
- * Logo aspect ratio orientation. square: ~1:1, horizontal: wide, vertical: tall, stacked: vertically arranged elements
1082
- */
1083
- orientation?: 'square' | 'horizontal' | 'vertical' | 'stacked';
1084
- /**
1085
- * Background compatibility. dark-bg: use on dark backgrounds, light-bg: use on light backgrounds, transparent-bg: has transparent background
1086
- */
1087
- background?: 'dark-bg' | 'light-bg' | 'transparent-bg';
1088
- /**
1089
- * Logo variant type. primary: main logo, secondary: alternative, icon: symbol only, wordmark: text only, full-lockup: complete logo
1090
- */
1091
- variant?: 'primary' | 'secondary' | 'icon' | 'wordmark' | 'full-lockup';
1092
- /**
1093
- * Additional semantic tags for custom categorization beyond the standard orientation, background, and variant fields.
1094
- */
1095
- tags?: string[];
1096
- /**
1097
- * Human-readable description of when to use this logo variant (e.g., 'Primary logo for use on light backgrounds', 'Icon-only variant for small formats')
1098
- */
1099
- usage?: string;
1100
- /**
1101
- * Logo width in pixels
1102
- */
1103
- width?: number;
1104
- /**
1105
- * Logo height in pixels
1106
- */
1107
- height?: number;
1108
- }[];
1109
- /**
1110
- * Brand color palette. Each role accepts a single hex color or an array of hex colors for brands with multiple values per role.
1111
- */
1112
- colors?: {
1113
- /**
1114
- * Primary brand color(s)
1115
- */
1116
- primary?: string | [string, ...string[]];
1117
- /**
1118
- * Secondary brand color(s)
1119
- */
1120
- secondary?: string | [string, ...string[]];
1121
- /**
1122
- * Accent color(s)
1123
- */
1124
- accent?: string | [string, ...string[]];
1125
- /**
1126
- * Background color(s)
1127
- */
1128
- background?: string | [string, ...string[]];
1129
- /**
1130
- * Text color(s)
1131
- */
1132
- text?: string | [string, ...string[]];
1133
- };
1134
- /**
1135
- * Brand typography guidelines
1136
- */
1137
- fonts?: {
1138
- /**
1139
- * Primary font family name
1140
- */
1141
- primary?: string;
1142
- /**
1143
- * Secondary font family name
1144
- */
1145
- secondary?: string;
1146
- /**
1147
- * URLs to web font files if using custom fonts
1148
- */
1149
- font_urls?: string[];
1150
- };
1151
- /**
1152
- * Brand voice and messaging tone guidelines for creative agents.
1153
- */
1154
- tone?: string | {
1155
- /**
1156
- * High-level voice descriptor (e.g., 'warm and inviting', 'professional and trustworthy')
1157
- */
1158
- voice?: string;
1159
- /**
1160
- * Personality traits that characterize the brand voice
1161
- */
1162
- attributes?: string[];
1163
- /**
1164
- * Specific guidance for copy generation - what TO do
1165
- */
1166
- dos?: string[];
1167
- /**
1168
- * Guardrails to avoid brand violations - what NOT to do
1169
- */
1170
- donts?: string[];
1171
- };
1172
- /**
1173
- * Brand voice configuration for audio/conversational experiences
1174
- */
1175
- voice?: {
1176
- /**
1177
- * TTS provider (e.g., 'elevenlabs', 'openai', 'amazon_polly')
1178
- */
1179
- provider?: string;
1180
- /**
1181
- * Provider-specific voice identifier
1182
- */
1183
- voice_id?: string;
1184
- /**
1185
- * Provider-specific voice settings (speed, pitch, etc.)
1186
- */
1187
- settings?: {
1188
- [k: string]: unknown | undefined;
1189
- };
1190
- };
1191
- /**
1192
- * Brand avatar configuration for visual conversational experiences
1193
- */
1194
- avatar?: {
1195
- /**
1196
- * Avatar provider (e.g., 'd-id', 'heygen', 'synthesia')
1197
- */
1198
- provider?: string;
1199
- /**
1200
- * Provider-specific avatar identifier
1201
- */
1202
- avatar_id?: string;
1203
- /**
1204
- * Provider-specific avatar settings
1205
- */
1206
- settings?: {
1207
- [k: string]: unknown | undefined;
1208
- };
1209
- };
1071
+ export interface BrandReference {
1210
1072
  /**
1211
- * Brand tagline or slogan
1073
+ * Domain where /.well-known/brand.json is hosted, or the brand's operating domain
1212
1074
  */
1213
- tagline?: string;
1214
- /**
1215
- * Brand asset library with explicit assets and tags. Assets are referenced inline with URLs pointing to CDN-hosted files.
1216
- */
1217
- assets?: {
1218
- /**
1219
- * Unique identifier for this asset
1220
- */
1221
- asset_id: string;
1222
- asset_type: AssetContentType;
1223
- /**
1224
- * URL to CDN-hosted asset file
1225
- */
1226
- url: string;
1227
- /**
1228
- * Tags for asset discovery (e.g., 'holiday', 'lifestyle', 'product_shot')
1229
- */
1230
- tags?: string[];
1231
- /**
1232
- * Human-readable asset name
1233
- */
1234
- name?: string;
1235
- /**
1236
- * Asset description or usage notes
1237
- */
1238
- description?: string;
1239
- /**
1240
- * Image/video width in pixels
1241
- */
1242
- width?: number;
1243
- /**
1244
- * Image/video height in pixels
1245
- */
1246
- height?: number;
1247
- /**
1248
- * Video/audio duration in seconds
1249
- */
1250
- duration_seconds?: number;
1251
- /**
1252
- * File size in bytes
1253
- */
1254
- file_size_bytes?: number;
1255
- /**
1256
- * File format (e.g., 'jpg', 'mp4', 'mp3')
1257
- */
1258
- format?: string;
1259
- /**
1260
- * Additional asset-specific metadata
1261
- */
1262
- metadata?: {
1263
- [k: string]: unknown | undefined;
1264
- };
1265
- [k: string]: unknown | undefined;
1266
- }[];
1267
- /**
1268
- * Product catalog information for e-commerce advertisers. Enables SKU-level creative generation and product selection.
1269
- */
1270
- product_catalog?: {
1271
- /**
1272
- * URL to product catalog feed
1273
- */
1274
- feed_url: string;
1275
- /**
1276
- * Format of the product feed. Use 'openai_product_feed' for feeds conforming to the OpenAI Commerce Product Feed specification.
1277
- */
1278
- feed_format?: 'google_merchant_center' | 'facebook_catalog' | 'openai_product_feed' | 'custom';
1279
- /**
1280
- * Product categories available in the catalog (for filtering)
1281
- */
1282
- categories?: string[];
1283
- /**
1284
- * When the product catalog was last updated
1285
- */
1286
- last_updated?: string;
1287
- /**
1288
- * How frequently the product catalog is updated
1289
- */
1290
- update_frequency?: 'realtime' | 'hourly' | 'daily' | 'weekly';
1291
- /**
1292
- * Agentic checkout endpoint configuration. Enables AI agents to complete purchases on behalf of users through a structured checkout API.
1293
- */
1294
- agentic_checkout?: {
1295
- /**
1296
- * Base URL for checkout session API (e.g., https://merchant.com/api/checkout_sessions)
1297
- */
1298
- endpoint: string;
1299
- /**
1300
- * Checkout API specification implemented by the endpoint
1301
- */
1302
- spec: 'openai_agentic_checkout_v1';
1303
- /**
1304
- * Payment providers supported by this checkout endpoint
1305
- */
1306
- supported_payment_providers?: string[];
1307
- };
1308
- [k: string]: unknown | undefined;
1309
- };
1310
- /**
1311
- * Legal disclaimers or required text that must appear in creatives
1312
- */
1313
- disclaimers?: {
1314
- /**
1315
- * Disclaimer text
1316
- */
1317
- text: string;
1318
- /**
1319
- * When this disclaimer applies (e.g., 'financial_products', 'health_claims', 'all')
1320
- */
1321
- context?: string;
1322
- /**
1323
- * Whether this disclaimer must appear
1324
- */
1325
- required?: boolean;
1326
- }[];
1327
- /**
1328
- * Industry or vertical (e.g., 'retail', 'automotive', 'finance', 'healthcare')
1329
- */
1330
- industry?: string;
1331
- /**
1332
- * Primary target audience description
1333
- */
1334
- target_audience?: string;
1335
- /**
1336
- * Brand contact information
1337
- */
1338
- contact?: {
1339
- /**
1340
- * Contact email
1341
- */
1342
- email?: string;
1343
- /**
1344
- * Contact phone number
1345
- */
1346
- phone?: string;
1347
- };
1348
- /**
1349
- * Additional brand metadata
1350
- */
1351
- metadata?: {
1352
- /**
1353
- * When this brand manifest was created
1354
- */
1355
- created_date?: string;
1356
- /**
1357
- * When this brand manifest was last updated
1358
- */
1359
- updated_date?: string;
1360
- /**
1361
- * Brand card version number
1362
- */
1363
- version?: string;
1364
- };
1365
- [k: string]: unknown | undefined;
1075
+ domain: string;
1076
+ brand_id?: BrandID;
1366
1077
  }
1367
1078
  /**
1368
- * Selectors to choose which products/offerings from the brand manifest product catalog to promote
1079
+ * Selectors to choose which products/offerings from the brand's product catalog to promote
1369
1080
  */
1370
1081
  export interface PromotedProducts {
1371
1082
  /**
@@ -1373,19 +1084,19 @@ export interface PromotedProducts {
1373
1084
  */
1374
1085
  manifest_gtins?: string[];
1375
1086
  /**
1376
- * Direct product SKU references from the brand manifest product catalog
1087
+ * Direct product SKU references from the brand's product catalog
1377
1088
  */
1378
1089
  manifest_skus?: string[];
1379
1090
  /**
1380
- * Select products by tags from the brand manifest product catalog (e.g., 'organic', 'sauces', 'holiday')
1091
+ * Select products by tags from the brand's product catalog (e.g., 'organic', 'sauces', 'holiday')
1381
1092
  */
1382
1093
  manifest_tags?: string[];
1383
1094
  /**
1384
- * Select products from a specific category in the brand manifest product catalog (e.g., 'beverages/soft-drinks', 'food/sauces')
1095
+ * Select products from a specific category in the brand's product catalog (e.g., 'beverages/soft-drinks', 'food/sauces')
1385
1096
  */
1386
1097
  manifest_category?: string;
1387
1098
  /**
1388
- * Natural language query to select products from the brand manifest (e.g., 'all Kraft Heinz pasta sauces', 'organic products under $20')
1099
+ * Natural language query to select products from the brand's catalog (e.g., 'all pasta sauces', 'organic products under $20')
1389
1100
  */
1390
1101
  manifest_query?: string;
1391
1102
  [k: string]: unknown | undefined;
@@ -1702,7 +1413,7 @@ export interface Product {
1702
1413
  platform_managed?: boolean;
1703
1414
  };
1704
1415
  /**
1705
- * When the buyer provides a brand_manifest with product_catalog, indicates which of the buyer's catalog items are eligible for this product. Enables buyers to make informed product_selector choices in create_media_buy. Only present for products where catalog matching is relevant (e.g. sponsored product listings on retail media). Sellers SHOULD include at least one of matched_gtins or matched_skus.
1416
+ * When the buyer provides a brand with product_catalog, indicates which of the buyer's catalog items are eligible for this product. Enables buyers to make informed product_selector choices in create_media_buy. Only present for products where catalog matching is relevant (e.g. sponsored product listings on retail media). Sellers SHOULD include at least one of matched_gtins or matched_skus.
1706
1417
  */
1707
1418
  catalog_match?: {
1708
1419
  /**
@@ -2550,7 +2261,7 @@ export interface Property {
2550
2261
  /**
2551
2262
  * Type of AdCP operation that triggered this webhook. Enables webhook handlers to route to appropriate processing logic.
2552
2263
  */
2553
- export type TaskType = 'create_media_buy' | 'update_media_buy' | 'sync_creatives' | 'activate_signal' | 'get_signals' | 'create_property_list' | 'update_property_list' | 'get_property_list' | 'list_property_lists' | 'delete_property_list' | 'sync_accounts' | 'get_creative_delivery' | 'sync_event_sources' | 'log_event';
2264
+ export type TaskType = 'create_media_buy' | 'update_media_buy' | 'sync_creatives' | 'activate_signal' | 'get_signals' | 'create_property_list' | 'update_property_list' | 'get_property_list' | 'list_property_lists' | 'delete_property_list' | 'sync_accounts' | 'get_creative_delivery' | 'sync_event_sources' | 'sync_audiences' | 'log_event';
2554
2265
  /**
2555
2266
  * AdCP domain this task belongs to. Helps classify the operation type at a high level.
2556
2267
  */
@@ -2637,6 +2348,10 @@ export interface GetProductsResponse {
2637
2348
  */
2638
2349
  product_selectors_applied?: boolean;
2639
2350
  pagination?: PaginationResponse;
2351
+ /**
2352
+ * When true, this response contains simulated data from sandbox mode.
2353
+ */
2354
+ sandbox?: boolean;
2640
2355
  context?: ContextObject;
2641
2356
  ext?: ExtensionObject;
2642
2357
  [k: string]: unknown | undefined;
@@ -2933,6 +2648,10 @@ export interface CreateMediaBuySuccess {
2933
2648
  * Array of created packages with complete state information
2934
2649
  */
2935
2650
  packages: Package[];
2651
+ /**
2652
+ * When true, this response contains simulated data from sandbox mode.
2653
+ */
2654
+ sandbox?: boolean;
2936
2655
  context?: ContextObject;
2937
2656
  ext?: ExtensionObject;
2938
2657
  [k: string]: unknown | undefined;
@@ -3019,6 +2738,10 @@ export interface UpdateMediaBuySuccess {
3019
2738
  * Array of packages that were modified with complete state information
3020
2739
  */
3021
2740
  affected_packages?: Package[];
2741
+ /**
2742
+ * When true, this response contains simulated data from sandbox mode.
2743
+ */
2744
+ sandbox?: boolean;
3022
2745
  context?: ContextObject;
3023
2746
  ext?: ExtensionObject;
3024
2747
  [k: string]: unknown | undefined;
@@ -3135,6 +2858,10 @@ export interface SyncCreativesSuccess {
3135
2858
  };
3136
2859
  [k: string]: unknown | undefined;
3137
2860
  }[];
2861
+ /**
2862
+ * When true, this response contains simulated data from sandbox mode.
2863
+ */
2864
+ sandbox?: boolean;
3138
2865
  context?: ContextObject;
3139
2866
  ext?: ExtensionObject;
3140
2867
  [k: string]: unknown | undefined;
@@ -3194,6 +2921,10 @@ export interface Account1 {
3194
2921
  amount: number;
3195
2922
  currency: string;
3196
2923
  };
2924
+ /**
2925
+ * When true, this is a sandbox account. All requests using this account_id are treated as sandbox — no real platform calls, no real spend.
2926
+ */
2927
+ sandbox?: boolean;
3197
2928
  ext?: ExtensionObject;
3198
2929
  [k: string]: unknown | undefined;
3199
2930
  }