@adcp/client 2.7.2 → 3.0.1

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 (62) hide show
  1. package/bin/adcp.js +84 -8
  2. package/dist/lib/advanced.d.ts +41 -0
  3. package/dist/lib/advanced.d.ts.map +1 -0
  4. package/dist/lib/advanced.js +49 -0
  5. package/dist/lib/advanced.js.map +1 -0
  6. package/dist/lib/auth/index.d.ts +4 -0
  7. package/dist/lib/auth/index.d.ts.map +1 -1
  8. package/dist/lib/auth/index.js +6 -7
  9. package/dist/lib/auth/index.js.map +1 -1
  10. package/dist/lib/core/ADCPMultiAgentClient.d.ts +54 -7
  11. package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
  12. package/dist/lib/core/ADCPMultiAgentClient.js +78 -1
  13. package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -1
  14. package/dist/lib/core/AgentClient.d.ts +11 -2
  15. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  16. package/dist/lib/core/AgentClient.js +13 -2
  17. package/dist/lib/core/AgentClient.js.map +1 -1
  18. package/dist/lib/core/CreativeAgentClient.d.ts +5 -5
  19. package/dist/lib/core/CreativeAgentClient.d.ts.map +1 -1
  20. package/dist/lib/core/CreativeAgentClient.js +3 -3
  21. package/dist/lib/core/CreativeAgentClient.js.map +1 -1
  22. package/dist/lib/core/{ADCPClient.d.ts → SingleAgentClient.d.ts} +13 -12
  23. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -0
  24. package/dist/lib/core/{ADCPClient.js → SingleAgentClient.js} +28 -52
  25. package/dist/lib/core/SingleAgentClient.js.map +1 -0
  26. package/dist/lib/discovery/property-crawler.js +2 -2
  27. package/dist/lib/discovery/property-crawler.js.map +1 -1
  28. package/dist/lib/index.d.ts +8 -32
  29. package/dist/lib/index.d.ts.map +1 -1
  30. package/dist/lib/index.js +14 -64
  31. package/dist/lib/index.js.map +1 -1
  32. package/dist/lib/protocols/mcp.d.ts.map +1 -1
  33. package/dist/lib/protocols/mcp.js +1 -0
  34. package/dist/lib/protocols/mcp.js.map +1 -1
  35. package/dist/lib/testing/index.d.ts +2 -0
  36. package/dist/lib/testing/index.d.ts.map +1 -0
  37. package/dist/lib/testing/index.js +22 -0
  38. package/dist/lib/testing/index.js.map +1 -0
  39. package/dist/lib/testing/test-helpers.d.ts +217 -0
  40. package/dist/lib/testing/test-helpers.d.ts.map +1 -0
  41. package/dist/lib/testing/test-helpers.js +258 -0
  42. package/dist/lib/testing/test-helpers.js.map +1 -0
  43. package/dist/lib/types/core.generated.d.ts +100 -58
  44. package/dist/lib/types/core.generated.d.ts.map +1 -1
  45. package/dist/lib/types/core.generated.js +1 -1
  46. package/dist/lib/types/schemas.generated.d.ts +1176 -588
  47. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  48. package/dist/lib/types/schemas.generated.js +291 -196
  49. package/dist/lib/types/schemas.generated.js.map +1 -1
  50. package/dist/lib/types/tools.generated.d.ts +487 -208
  51. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  52. package/dist/lib/types/tools.generated.js +1 -1
  53. package/dist/lib/types/tools.generated.js.map +1 -1
  54. package/dist/lib/utils/preview-utils.d.ts +5 -5
  55. package/dist/lib/utils/preview-utils.d.ts.map +1 -1
  56. package/dist/lib/utils/preview-utils.js +2 -2
  57. package/dist/lib/utils/preview-utils.js.map +1 -1
  58. package/dist/lib/version.d.ts +3 -3
  59. package/dist/lib/version.js +3 -3
  60. package/package.json +11 -1
  61. package/dist/lib/core/ADCPClient.d.ts.map +0 -1
  62. package/dist/lib/core/ADCPClient.js.map +0 -1
@@ -1240,20 +1240,110 @@ export type Pacing = 'even' | 'asap' | 'front_loaded';
1240
1240
  /**
1241
1241
  * VAST (Video Ad Serving Template) tag for third-party video ad serving
1242
1242
  */
1243
- export type VASTAsset = VASTAsset1 & VASTAsset2;
1244
- export type VASTAsset2 = {
1245
- [k: string]: unknown;
1243
+ export type VASTAsset = {
1244
+ /**
1245
+ * Discriminator indicating VAST is delivered via URL endpoint
1246
+ */
1247
+ delivery_type: 'url';
1248
+ /**
1249
+ * URL endpoint that returns VAST XML
1250
+ */
1251
+ url: string;
1252
+ /**
1253
+ * VAST specification version
1254
+ */
1255
+ vast_version?: '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
1256
+ /**
1257
+ * Whether VPAID (Video Player-Ad Interface Definition) is supported
1258
+ */
1259
+ vpaid_enabled?: boolean;
1260
+ /**
1261
+ * Expected video duration in milliseconds (if known)
1262
+ */
1263
+ duration_ms?: number;
1264
+ /**
1265
+ * Tracking events supported by this VAST tag
1266
+ */
1267
+ tracking_events?: ('start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'click' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute' | 'fullscreen' | 'exitFullscreen' | 'playerExpand' | 'playerCollapse')[];
1246
1268
  } | {
1247
- [k: string]: unknown;
1269
+ /**
1270
+ * Discriminator indicating VAST is delivered as inline XML content
1271
+ */
1272
+ delivery_type: 'inline';
1273
+ /**
1274
+ * Inline VAST XML content
1275
+ */
1276
+ content: string;
1277
+ /**
1278
+ * VAST specification version
1279
+ */
1280
+ vast_version?: '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
1281
+ /**
1282
+ * Whether VPAID (Video Player-Ad Interface Definition) is supported
1283
+ */
1284
+ vpaid_enabled?: boolean;
1285
+ /**
1286
+ * Expected video duration in milliseconds (if known)
1287
+ */
1288
+ duration_ms?: number;
1289
+ /**
1290
+ * Tracking events supported by this VAST tag
1291
+ */
1292
+ tracking_events?: ('start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'click' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute' | 'fullscreen' | 'exitFullscreen' | 'playerExpand' | 'playerCollapse')[];
1248
1293
  };
1249
1294
  /**
1250
1295
  * DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving
1251
1296
  */
1252
- export type DAASTAsset = DAASTAsset1 & DAASTAsset2;
1253
- export type DAASTAsset2 = {
1254
- [k: string]: unknown;
1297
+ export type DAASTAsset = {
1298
+ /**
1299
+ * Discriminator indicating DAAST is delivered via URL endpoint
1300
+ */
1301
+ delivery_type: 'url';
1302
+ /**
1303
+ * URL endpoint that returns DAAST XML
1304
+ */
1305
+ url: string;
1306
+ /**
1307
+ * DAAST specification version
1308
+ */
1309
+ daast_version?: '1.0' | '1.1';
1310
+ /**
1311
+ * Expected audio duration in milliseconds (if known)
1312
+ */
1313
+ duration_ms?: number;
1314
+ /**
1315
+ * Tracking events supported by this DAAST tag
1316
+ */
1317
+ tracking_events?: ('start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute')[];
1318
+ /**
1319
+ * Whether companion display ads are included
1320
+ */
1321
+ companion_ads?: boolean;
1255
1322
  } | {
1256
- [k: string]: unknown;
1323
+ /**
1324
+ * Discriminator indicating DAAST is delivered as inline XML content
1325
+ */
1326
+ delivery_type: 'inline';
1327
+ /**
1328
+ * Inline DAAST XML content
1329
+ */
1330
+ content: string;
1331
+ /**
1332
+ * DAAST specification version
1333
+ */
1334
+ daast_version?: '1.0' | '1.1';
1335
+ /**
1336
+ * Expected audio duration in milliseconds (if known)
1337
+ */
1338
+ duration_ms?: number;
1339
+ /**
1340
+ * Tracking events supported by this DAAST tag
1341
+ */
1342
+ tracking_events?: ('start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute')[];
1343
+ /**
1344
+ * Whether companion display ads are included
1345
+ */
1346
+ companion_ads?: boolean;
1257
1347
  };
1258
1348
  /**
1259
1349
  * Brand information manifest containing assets, themes, and guidelines. Can be provided inline or as a URL reference to a hosted manifest.
@@ -1548,58 +1638,6 @@ export interface JavaScriptAsset {
1548
1638
  */
1549
1639
  module_type?: 'esm' | 'commonjs' | 'script';
1550
1640
  }
1551
- export interface VASTAsset1 {
1552
- /**
1553
- * URL endpoint that returns VAST XML
1554
- */
1555
- url?: string;
1556
- /**
1557
- * Inline VAST XML content
1558
- */
1559
- content?: string;
1560
- /**
1561
- * VAST specification version
1562
- */
1563
- vast_version?: '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
1564
- /**
1565
- * Whether VPAID (Video Player-Ad Interface Definition) is supported
1566
- */
1567
- vpaid_enabled?: boolean;
1568
- /**
1569
- * Expected video duration in milliseconds (if known)
1570
- */
1571
- duration_ms?: number;
1572
- /**
1573
- * Tracking events supported by this VAST tag
1574
- */
1575
- tracking_events?: ('start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'click' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute' | 'fullscreen' | 'exitFullscreen' | 'playerExpand' | 'playerCollapse')[];
1576
- }
1577
- export interface DAASTAsset1 {
1578
- /**
1579
- * URL endpoint that returns DAAST XML
1580
- */
1581
- url?: string;
1582
- /**
1583
- * Inline DAAST XML content
1584
- */
1585
- content?: string;
1586
- /**
1587
- * DAAST specification version
1588
- */
1589
- daast_version?: '1.0' | '1.1';
1590
- /**
1591
- * Expected audio duration in milliseconds (if known)
1592
- */
1593
- duration_ms?: number;
1594
- /**
1595
- * Tracking events supported by this DAAST tag
1596
- */
1597
- tracking_events?: ('start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute')[];
1598
- /**
1599
- * Whether companion display ads are included
1600
- */
1601
- companion_ads?: boolean;
1602
- }
1603
1641
  /**
1604
1642
  * Complete offering specification combining brand manifest, product selectors, and asset filters. Provides all context needed for creative generation about what is being promoted.
1605
1643
  */
@@ -1708,13 +1746,13 @@ export interface PushNotificationConfig {
1708
1746
  };
1709
1747
  }
1710
1748
  /**
1711
- * Response payload for create_media_buy task
1749
+ * Response payload for create_media_buy task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - the media buy is either fully created or not created at all.
1712
1750
  */
1713
- export interface CreateMediaBuyResponse {
1751
+ export type CreateMediaBuyResponse = {
1714
1752
  /**
1715
1753
  * Publisher's unique identifier for the created media buy
1716
1754
  */
1717
- media_buy_id?: string;
1755
+ media_buy_id: string;
1718
1756
  /**
1719
1757
  * Buyer's reference identifier for this media buy
1720
1758
  */
@@ -1726,7 +1764,7 @@ export interface CreateMediaBuyResponse {
1726
1764
  /**
1727
1765
  * Array of created packages
1728
1766
  */
1729
- packages?: {
1767
+ packages: {
1730
1768
  /**
1731
1769
  * Publisher's unique identifier for the package
1732
1770
  */
@@ -1736,11 +1774,14 @@ export interface CreateMediaBuyResponse {
1736
1774
  */
1737
1775
  buyer_ref: string;
1738
1776
  }[];
1777
+ } | {
1739
1778
  /**
1740
- * Task-specific errors and warnings (e.g., partial package creation failures)
1779
+ * Array of errors explaining why the operation failed
1780
+ *
1781
+ * @minItems 1
1741
1782
  */
1742
- errors?: Error[];
1743
- }
1783
+ errors: [Error, ...Error[]];
1784
+ };
1744
1785
  /**
1745
1786
  * Standard error structure for task-specific errors and warnings
1746
1787
  */
@@ -1788,15 +1829,15 @@ export interface SyncCreativesRequest {
1788
1829
  * Creative asset for upload to library - supports static assets, generative formats, and third-party snippets
1789
1830
  */
1790
1831
  /**
1791
- * Response from creative sync operation with results for each creative
1832
+ * Response from creative sync operation. Returns either per-creative results (best-effort processing) OR operation-level errors (complete failure). This enforces atomic semantics at the operation level while allowing per-item failures within successful operations.
1792
1833
  */
1793
- export interface SyncCreativesResponse {
1834
+ export type SyncCreativesResponse = {
1794
1835
  /**
1795
1836
  * Whether this was a dry run (no actual changes made)
1796
1837
  */
1797
1838
  dry_run?: boolean;
1798
1839
  /**
1799
- * Results for each creative processed
1840
+ * Results for each creative processed. Items with action='failed' indicate per-item validation/processing failures, not operation-level failures.
1800
1841
  */
1801
1842
  creatives: {
1802
1843
  /**
@@ -1848,7 +1889,17 @@ export interface SyncCreativesResponse {
1848
1889
  [k: string]: string;
1849
1890
  };
1850
1891
  }[];
1851
- }
1892
+ } | {
1893
+ /**
1894
+ * Operation-level errors that prevented processing any creatives (e.g., authentication failure, service unavailable, invalid request format)
1895
+ *
1896
+ * @minItems 1
1897
+ */
1898
+ errors: [Error, ...Error[]];
1899
+ };
1900
+ /**
1901
+ * Standard error structure for task-specific errors and warnings
1902
+ */
1852
1903
  /**
1853
1904
  * Filter by creative approval status
1854
1905
  */
@@ -1975,11 +2026,40 @@ export interface ListCreativesRequest {
1975
2026
  /**
1976
2027
  * Current approval status of the creative
1977
2028
  */
1978
- export type SubAsset = SubAsset1 & SubAsset2;
1979
- export type SubAsset2 = {
1980
- [k: string]: unknown;
2029
+ export type SubAsset = {
2030
+ /**
2031
+ * Discriminator indicating this is a media asset with content_uri
2032
+ */
2033
+ asset_kind: 'media';
2034
+ /**
2035
+ * Type of asset. Common types: thumbnail_image, product_image, featured_image, logo
2036
+ */
2037
+ asset_type: string;
2038
+ /**
2039
+ * Unique identifier for the asset within the creative
2040
+ */
2041
+ asset_id: string;
2042
+ /**
2043
+ * URL for media assets (images, videos, etc.)
2044
+ */
2045
+ content_uri: string;
1981
2046
  } | {
1982
- [k: string]: unknown;
2047
+ /**
2048
+ * Discriminator indicating this is a text asset with content
2049
+ */
2050
+ asset_kind: 'text';
2051
+ /**
2052
+ * Type of asset. Common types: headline, body_text, cta_text, price_text, sponsor_name, author_name, click_url
2053
+ */
2054
+ asset_type: string;
2055
+ /**
2056
+ * Unique identifier for the asset within the creative
2057
+ */
2058
+ asset_id: string;
2059
+ /**
2060
+ * Text content for text-based assets like headlines, body text, CTA text, etc.
2061
+ */
2062
+ content: string | string[];
1983
2063
  };
1984
2064
  /**
1985
2065
  * Response from creative library query with filtered results, metadata, and optional enriched data
@@ -2191,24 +2271,6 @@ export interface ListCreativesResponse {
2191
2271
  /**
2192
2272
  * Format identifier specifying which format this creative conforms to
2193
2273
  */
2194
- export interface SubAsset1 {
2195
- /**
2196
- * Type of asset. Common types: headline, body_text, thumbnail_image, product_image, featured_image, logo, cta_text, price_text, sponsor_name, author_name, click_url
2197
- */
2198
- asset_type?: string;
2199
- /**
2200
- * Unique identifier for the asset within the creative
2201
- */
2202
- asset_id?: string;
2203
- /**
2204
- * URL for media assets (images, videos, etc.)
2205
- */
2206
- content_uri?: string;
2207
- /**
2208
- * Text content for text-based assets like headlines, body text, CTA text, etc.
2209
- */
2210
- content?: string | string[];
2211
- }
2212
2274
  /**
2213
2275
  * Request parameters for updating campaign and package settings
2214
2276
  */
@@ -2251,9 +2313,9 @@ export interface UpdateMediaBuyRequest1 {
2251
2313
  * Optional webhook configuration for async update notifications. Publisher will send webhook when update completes if operation takes longer than immediate response time.
2252
2314
  */
2253
2315
  /**
2254
- * Response payload for update_media_buy task
2316
+ * Response payload for update_media_buy task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - updates are either fully applied or not applied at all.
2255
2317
  */
2256
- export interface UpdateMediaBuyResponse {
2318
+ export type UpdateMediaBuyResponse = {
2257
2319
  /**
2258
2320
  * Publisher's identifier for the media buy
2259
2321
  */
@@ -2279,11 +2341,14 @@ export interface UpdateMediaBuyResponse {
2279
2341
  */
2280
2342
  buyer_ref: string;
2281
2343
  }[];
2344
+ } | {
2282
2345
  /**
2283
- * Task-specific errors and warnings (e.g., partial update failures)
2346
+ * Array of errors explaining why the operation failed
2347
+ *
2348
+ * @minItems 1
2284
2349
  */
2285
- errors?: Error[];
2286
- }
2350
+ errors: [Error, ...Error[]];
2351
+ };
2287
2352
  /**
2288
2353
  * Standard error structure for task-specific errors and warnings
2289
2354
  */
@@ -2685,18 +2750,21 @@ export interface ProvidePerformanceFeedbackRequest {
2685
2750
  feedback_source?: 'buyer_attribution' | 'third_party_measurement' | 'platform_analytics' | 'verification_partner';
2686
2751
  }
2687
2752
  /**
2688
- * Response payload for provide_performance_feedback task
2753
+ * Response payload for provide_performance_feedback task. Returns either success confirmation OR error information, never both.
2689
2754
  */
2690
- export interface ProvidePerformanceFeedbackResponse {
2755
+ export type ProvidePerformanceFeedbackResponse = {
2691
2756
  /**
2692
2757
  * Whether the performance feedback was successfully received
2693
2758
  */
2694
- success: boolean;
2759
+ success: true;
2760
+ } | {
2695
2761
  /**
2696
- * Task-specific errors and warnings (e.g., invalid measurement period, missing campaign data)
2762
+ * Array of errors explaining why feedback was rejected (e.g., invalid measurement period, missing campaign data)
2763
+ *
2764
+ * @minItems 1
2697
2765
  */
2698
- errors?: Error[];
2699
- }
2766
+ errors: [Error, ...Error[]];
2767
+ };
2700
2768
  /**
2701
2769
  * Standard error structure for task-specific errors and warnings
2702
2770
  */
@@ -2783,17 +2851,20 @@ export interface WebhookAsset {
2783
2851
  * CSS stylesheet asset
2784
2852
  */
2785
2853
  /**
2786
- * VAST (Video Ad Serving Template) tag for third-party video ad serving
2854
+ * Response containing the transformed or generated creative manifest, ready for use with preview_creative or sync_creatives. Returns either the complete creative manifest OR error information, never both.
2787
2855
  */
2788
- export interface BuildCreativeResponse {
2856
+ export type BuildCreativeResponse = {
2789
2857
  creative_manifest: CreativeManifest;
2858
+ } | {
2790
2859
  /**
2791
- * Task-specific errors and warnings
2860
+ * Array of errors explaining why creative generation failed
2861
+ *
2862
+ * @minItems 1
2792
2863
  */
2793
- errors?: Error[];
2794
- }
2864
+ errors: [Error, ...Error[]];
2865
+ };
2795
2866
  /**
2796
- * The generated or transformed creative manifest
2867
+ * VAST (Video Ad Serving Template) tag for third-party video ad serving
2797
2868
  */
2798
2869
  /**
2799
2870
  * Request to generate previews of one or more creative manifests. Accepts either a single creative request or an array of requests for batch processing.
@@ -2946,22 +3017,7 @@ export type PreviewCreativeResponse = {
2946
3017
  *
2947
3018
  * @minItems 1
2948
3019
  */
2949
- renders: [
2950
- {
2951
- [k: string]: unknown;
2952
- } & {
2953
- [k: string]: unknown;
2954
- } & {
2955
- [k: string]: unknown;
2956
- },
2957
- ...({
2958
- [k: string]: unknown;
2959
- } & {
2960
- [k: string]: unknown;
2961
- } & {
2962
- [k: string]: unknown;
2963
- })[]
2964
- ];
3020
+ renders: [PreviewRender, ...PreviewRender[]];
2965
3021
  /**
2966
3022
  * The input parameters that generated this preview variant. Echoes back the request input or shows defaults used.
2967
3023
  */
@@ -2992,22 +3048,7 @@ export type PreviewCreativeResponse = {
2992
3048
  *
2993
3049
  * @minItems 1
2994
3050
  */
2995
- renders: [
2996
- {
2997
- [k: string]: unknown;
2998
- } & {
2999
- [k: string]: unknown;
3000
- } & {
3001
- [k: string]: unknown;
3002
- },
3003
- ...({
3004
- [k: string]: unknown;
3005
- } & {
3006
- [k: string]: unknown;
3007
- } & {
3008
- [k: string]: unknown;
3009
- })[]
3010
- ];
3051
+ renders: [PreviewRender, ...PreviewRender[]];
3011
3052
  /**
3012
3053
  * The input parameters that generated this preview variant. Echoes back the request input or shows defaults used.
3013
3054
  */
@@ -3056,6 +3097,179 @@ export type PreviewCreativeResponse = {
3056
3097
  })[]
3057
3098
  ];
3058
3099
  };
3100
+ /**
3101
+ * A single rendered piece of a creative preview with discriminated output format
3102
+ */
3103
+ export type PreviewRender = {
3104
+ /**
3105
+ * Unique identifier for this rendered piece within the variant
3106
+ */
3107
+ render_id: string;
3108
+ /**
3109
+ * Discriminator indicating preview_url is provided
3110
+ */
3111
+ output_format: 'url';
3112
+ /**
3113
+ * URL to an HTML page that renders this piece. Can be embedded in an iframe.
3114
+ */
3115
+ preview_url: string;
3116
+ /**
3117
+ * Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
3118
+ */
3119
+ role: string;
3120
+ /**
3121
+ * Dimensions for this rendered piece
3122
+ */
3123
+ dimensions?: {
3124
+ width: number;
3125
+ height: number;
3126
+ };
3127
+ /**
3128
+ * Optional security and embedding metadata for safe iframe integration
3129
+ */
3130
+ embedding?: {
3131
+ /**
3132
+ * Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
3133
+ */
3134
+ recommended_sandbox?: string;
3135
+ /**
3136
+ * Whether this output requires HTTPS for secure embedding
3137
+ */
3138
+ requires_https?: boolean;
3139
+ /**
3140
+ * Whether this output supports fullscreen mode
3141
+ */
3142
+ supports_fullscreen?: boolean;
3143
+ /**
3144
+ * Content Security Policy requirements for embedding
3145
+ */
3146
+ csp_policy?: string;
3147
+ };
3148
+ } | {
3149
+ /**
3150
+ * Unique identifier for this rendered piece within the variant
3151
+ */
3152
+ render_id: string;
3153
+ /**
3154
+ * Discriminator indicating preview_html is provided
3155
+ */
3156
+ output_format: 'html';
3157
+ /**
3158
+ * Raw HTML for this rendered piece. Can be embedded directly in the page without iframe. Security warning: Only use with trusted creative agents as this bypasses iframe sandboxing.
3159
+ */
3160
+ preview_html: string;
3161
+ /**
3162
+ * Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
3163
+ */
3164
+ role: string;
3165
+ /**
3166
+ * Dimensions for this rendered piece
3167
+ */
3168
+ dimensions?: {
3169
+ width: number;
3170
+ height: number;
3171
+ };
3172
+ /**
3173
+ * Optional security and embedding metadata
3174
+ */
3175
+ embedding?: {
3176
+ /**
3177
+ * Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
3178
+ */
3179
+ recommended_sandbox?: string;
3180
+ /**
3181
+ * Whether this output requires HTTPS for secure embedding
3182
+ */
3183
+ requires_https?: boolean;
3184
+ /**
3185
+ * Whether this output supports fullscreen mode
3186
+ */
3187
+ supports_fullscreen?: boolean;
3188
+ /**
3189
+ * Content Security Policy requirements for embedding
3190
+ */
3191
+ csp_policy?: string;
3192
+ };
3193
+ } | {
3194
+ /**
3195
+ * Unique identifier for this rendered piece within the variant
3196
+ */
3197
+ render_id: string;
3198
+ /**
3199
+ * Discriminator indicating both preview_url and preview_html are provided
3200
+ */
3201
+ output_format: 'both';
3202
+ /**
3203
+ * URL to an HTML page that renders this piece. Can be embedded in an iframe.
3204
+ */
3205
+ preview_url: string;
3206
+ /**
3207
+ * Raw HTML for this rendered piece. Can be embedded directly in the page without iframe. Security warning: Only use with trusted creative agents as this bypasses iframe sandboxing.
3208
+ */
3209
+ preview_html: string;
3210
+ /**
3211
+ * Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
3212
+ */
3213
+ role: string;
3214
+ /**
3215
+ * Dimensions for this rendered piece
3216
+ */
3217
+ dimensions?: {
3218
+ width: number;
3219
+ height: number;
3220
+ };
3221
+ /**
3222
+ * Optional security and embedding metadata for safe iframe integration
3223
+ */
3224
+ embedding?: {
3225
+ /**
3226
+ * Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
3227
+ */
3228
+ recommended_sandbox?: string;
3229
+ /**
3230
+ * Whether this output requires HTTPS for secure embedding
3231
+ */
3232
+ requires_https?: boolean;
3233
+ /**
3234
+ * Whether this output supports fullscreen mode
3235
+ */
3236
+ supports_fullscreen?: boolean;
3237
+ /**
3238
+ * Content Security Policy requirements for embedding
3239
+ */
3240
+ csp_policy?: string;
3241
+ };
3242
+ };
3243
+ /**
3244
+ * A destination platform where signals can be activated (DSP, sales agent, etc.)
3245
+ */
3246
+ export type Destination = {
3247
+ /**
3248
+ * Discriminator indicating this is a platform-based destination
3249
+ */
3250
+ type: 'platform';
3251
+ /**
3252
+ * Platform identifier for DSPs (e.g., 'the-trade-desk', 'amazon-dsp')
3253
+ */
3254
+ platform: string;
3255
+ /**
3256
+ * Optional account identifier on the platform
3257
+ */
3258
+ account?: string;
3259
+ } | {
3260
+ /**
3261
+ * Discriminator indicating this is an agent URL-based destination
3262
+ */
3263
+ type: 'agent';
3264
+ /**
3265
+ * URL identifying the destination agent (for sales agents, etc.)
3266
+ */
3267
+ agent_url: string;
3268
+ /**
3269
+ * Optional account identifier on the agent
3270
+ */
3271
+ account?: string;
3272
+ };
3059
3273
  /**
3060
3274
  * Request parameters for discovering signals based on description
3061
3275
  */
@@ -3065,26 +3279,15 @@ export interface GetSignalsRequest {
3065
3279
  */
3066
3280
  signal_spec: string;
3067
3281
  /**
3068
- * Where the signals need to be delivered
3282
+ * Destination platforms where signals need to be activated
3069
3283
  */
3070
3284
  deliver_to: {
3071
3285
  /**
3072
- * Target platforms for signal deployment
3073
- */
3074
- platforms: 'all' | string[];
3075
- /**
3076
- * Specific platform-account combinations
3286
+ * List of destination platforms (DSPs, sales agents, etc.). If the authenticated caller matches one of these destinations, activation keys will be included in the response.
3287
+ *
3288
+ * @minItems 1
3077
3289
  */
3078
- accounts?: {
3079
- /**
3080
- * Platform identifier
3081
- */
3082
- platform: string;
3083
- /**
3084
- * Account identifier on that platform
3085
- */
3086
- account: string;
3087
- }[];
3290
+ destinations: [Destination, ...Destination[]];
3088
3291
  /**
3089
3292
  * Countries where signals will be used (ISO codes)
3090
3293
  */
@@ -3116,6 +3319,114 @@ export interface GetSignalsRequest {
3116
3319
  */
3117
3320
  max_results?: number;
3118
3321
  }
3322
+ /**
3323
+ * A signal deployment to a specific destination platform with activation status and key
3324
+ */
3325
+ export type Deployment = {
3326
+ /**
3327
+ * Discriminator indicating this is a platform-based deployment
3328
+ */
3329
+ type: 'platform';
3330
+ /**
3331
+ * Platform identifier for DSPs
3332
+ */
3333
+ platform: string;
3334
+ /**
3335
+ * Account identifier if applicable
3336
+ */
3337
+ account?: string;
3338
+ /**
3339
+ * Whether signal is currently active on this destination
3340
+ */
3341
+ is_live: boolean;
3342
+ activation_key?: ActivationKey;
3343
+ /**
3344
+ * Estimated time to activate if not live, or to complete activation if in progress
3345
+ */
3346
+ estimated_activation_duration_minutes?: number;
3347
+ /**
3348
+ * Timestamp when activation completed (if is_live=true)
3349
+ */
3350
+ deployed_at?: string;
3351
+ } | {
3352
+ /**
3353
+ * Discriminator indicating this is an agent URL-based deployment
3354
+ */
3355
+ type: 'agent';
3356
+ /**
3357
+ * URL identifying the destination agent
3358
+ */
3359
+ agent_url: string;
3360
+ /**
3361
+ * Account identifier if applicable
3362
+ */
3363
+ account?: string;
3364
+ /**
3365
+ * Whether signal is currently active on this destination
3366
+ */
3367
+ is_live: boolean;
3368
+ activation_key?: ActivationKey1;
3369
+ /**
3370
+ * Estimated time to activate if not live, or to complete activation if in progress
3371
+ */
3372
+ estimated_activation_duration_minutes?: number;
3373
+ /**
3374
+ * Timestamp when activation completed (if is_live=true)
3375
+ */
3376
+ deployed_at?: string;
3377
+ };
3378
+ /**
3379
+ * The key to use for targeting. Only present if is_live=true AND requester has access to this destination.
3380
+ */
3381
+ export type ActivationKey = {
3382
+ /**
3383
+ * Segment ID based targeting
3384
+ */
3385
+ type: 'segment_id';
3386
+ /**
3387
+ * The platform-specific segment identifier to use in campaign targeting
3388
+ */
3389
+ segment_id: string;
3390
+ } | {
3391
+ /**
3392
+ * Key-value pair based targeting
3393
+ */
3394
+ type: 'key_value';
3395
+ /**
3396
+ * The targeting parameter key
3397
+ */
3398
+ key: string;
3399
+ /**
3400
+ * The targeting parameter value
3401
+ */
3402
+ value: string;
3403
+ };
3404
+ /**
3405
+ * The key to use for targeting. Only present if is_live=true AND requester has access to this destination.
3406
+ */
3407
+ export type ActivationKey1 = {
3408
+ /**
3409
+ * Segment ID based targeting
3410
+ */
3411
+ type: 'segment_id';
3412
+ /**
3413
+ * The platform-specific segment identifier to use in campaign targeting
3414
+ */
3415
+ segment_id: string;
3416
+ } | {
3417
+ /**
3418
+ * Key-value pair based targeting
3419
+ */
3420
+ type: 'key_value';
3421
+ /**
3422
+ * The targeting parameter key
3423
+ */
3424
+ key: string;
3425
+ /**
3426
+ * The targeting parameter value
3427
+ */
3428
+ value: string;
3429
+ };
3119
3430
  /**
3120
3431
  * Response payload for get_signals task
3121
3432
  */
@@ -3149,34 +3460,9 @@ export interface GetSignalsResponse {
3149
3460
  */
3150
3461
  coverage_percentage: number;
3151
3462
  /**
3152
- * Array of platform deployments
3463
+ * Array of destination deployments
3153
3464
  */
3154
- deployments: {
3155
- /**
3156
- * Platform name
3157
- */
3158
- platform: string;
3159
- /**
3160
- * Specific account if applicable
3161
- */
3162
- account?: string | null;
3163
- /**
3164
- * Whether signal is currently active
3165
- */
3166
- is_live: boolean;
3167
- /**
3168
- * Deployment scope
3169
- */
3170
- scope: 'platform-wide' | 'account-specific';
3171
- /**
3172
- * Platform-specific segment ID
3173
- */
3174
- decisioning_platform_segment_id?: string;
3175
- /**
3176
- * Time to activate if not live
3177
- */
3178
- estimated_activation_duration_minutes?: number;
3179
- }[];
3465
+ deployments: Deployment[];
3180
3466
  /**
3181
3467
  * Pricing information
3182
3468
  */
@@ -3200,7 +3486,7 @@ export interface GetSignalsResponse {
3200
3486
  * Standard error structure for task-specific errors and warnings
3201
3487
  */
3202
3488
  /**
3203
- * Request parameters for activating a signal on a specific platform/account
3489
+ * A destination platform where signals can be activated (DSP, sales agent, etc.)
3204
3490
  */
3205
3491
  export interface ActivateSignalRequest {
3206
3492
  /**
@@ -3208,36 +3494,29 @@ export interface ActivateSignalRequest {
3208
3494
  */
3209
3495
  signal_agent_segment_id: string;
3210
3496
  /**
3211
- * The target platform for activation
3212
- */
3213
- platform: string;
3214
- /**
3215
- * Account identifier (required for account-specific activation)
3497
+ * Target destination(s) for activation. If the authenticated caller matches one of these destinations, activation keys will be included in the response.
3498
+ *
3499
+ * @minItems 1
3216
3500
  */
3217
- account?: string;
3501
+ destinations: [Destination, ...Destination[]];
3218
3502
  }
3219
3503
  /**
3220
- * Response payload for activate_signal task
3504
+ * Response payload for activate_signal task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - the signal is either fully activated or not activated at all.
3221
3505
  */
3222
- export interface ActivateSignalResponse {
3506
+ export type ActivateSignalResponse = {
3223
3507
  /**
3224
- * The platform-specific ID to use once activated
3508
+ * Array of deployment results for each destination
3225
3509
  */
3226
- decisioning_platform_segment_id?: string;
3227
- /**
3228
- * Estimated time to complete (optional)
3229
- */
3230
- estimated_activation_duration_minutes?: number;
3231
- /**
3232
- * Timestamp when activation completed (optional)
3233
- */
3234
- deployed_at?: string;
3510
+ deployments: Deployment[];
3511
+ } | {
3235
3512
  /**
3236
- * Task-specific errors and warnings (e.g., activation failures, platform issues)
3513
+ * Array of errors explaining why activation failed (e.g., platform connectivity issues, signal definition problems, authentication failures)
3514
+ *
3515
+ * @minItems 1
3237
3516
  */
3238
- errors?: Error[];
3239
- }
3517
+ errors: [Error, ...Error[]];
3518
+ };
3240
3519
  /**
3241
- * Standard error structure for task-specific errors and warnings
3520
+ * A signal deployment to a specific destination platform with activation status and key
3242
3521
  */
3243
3522
  //# sourceMappingURL=tools.generated.d.ts.map