@adcp/client 0.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 (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/dist/lib/agents/index.generated.d.ts +147 -0
  4. package/dist/lib/agents/index.generated.d.ts.map +1 -0
  5. package/dist/lib/agents/index.generated.js +218 -0
  6. package/dist/lib/agents/index.generated.js.map +1 -0
  7. package/dist/lib/auth/index.d.ts +22 -0
  8. package/dist/lib/auth/index.d.ts.map +1 -0
  9. package/dist/lib/auth/index.js +73 -0
  10. package/dist/lib/auth/index.js.map +1 -0
  11. package/dist/lib/core/ADCPClient.d.ts +233 -0
  12. package/dist/lib/core/ADCPClient.d.ts.map +1 -0
  13. package/dist/lib/core/ADCPClient.js +287 -0
  14. package/dist/lib/core/ADCPClient.js.map +1 -0
  15. package/dist/lib/core/ADCPMultiAgentClient.d.ts +308 -0
  16. package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -0
  17. package/dist/lib/core/ADCPMultiAgentClient.js +468 -0
  18. package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -0
  19. package/dist/lib/core/AgentClient.d.ts +124 -0
  20. package/dist/lib/core/AgentClient.d.ts.map +1 -0
  21. package/dist/lib/core/AgentClient.js +242 -0
  22. package/dist/lib/core/AgentClient.js.map +1 -0
  23. package/dist/lib/core/ConfigurationManager.d.ts +79 -0
  24. package/dist/lib/core/ConfigurationManager.d.ts.map +1 -0
  25. package/dist/lib/core/ConfigurationManager.js +254 -0
  26. package/dist/lib/core/ConfigurationManager.js.map +1 -0
  27. package/dist/lib/core/ConversationTypes.d.ts +242 -0
  28. package/dist/lib/core/ConversationTypes.d.ts.map +1 -0
  29. package/dist/lib/core/ConversationTypes.js +5 -0
  30. package/dist/lib/core/ConversationTypes.js.map +1 -0
  31. package/dist/lib/core/ProtocolResponseParser.d.ts +45 -0
  32. package/dist/lib/core/ProtocolResponseParser.d.ts.map +1 -0
  33. package/dist/lib/core/ProtocolResponseParser.js +82 -0
  34. package/dist/lib/core/ProtocolResponseParser.js.map +1 -0
  35. package/dist/lib/core/TaskExecutor.d.ts +108 -0
  36. package/dist/lib/core/TaskExecutor.d.ts.map +1 -0
  37. package/dist/lib/core/TaskExecutor.js +422 -0
  38. package/dist/lib/core/TaskExecutor.js.map +1 -0
  39. package/dist/lib/errors/index.d.ts +125 -0
  40. package/dist/lib/errors/index.d.ts.map +1 -0
  41. package/dist/lib/errors/index.js +211 -0
  42. package/dist/lib/errors/index.js.map +1 -0
  43. package/dist/lib/handlers/types.d.ts +119 -0
  44. package/dist/lib/handlers/types.d.ts.map +1 -0
  45. package/dist/lib/handlers/types.js +239 -0
  46. package/dist/lib/handlers/types.js.map +1 -0
  47. package/dist/lib/index.d.ts +51 -0
  48. package/dist/lib/index.d.ts.map +1 -0
  49. package/dist/lib/index.js +122 -0
  50. package/dist/lib/index.js.map +1 -0
  51. package/dist/lib/protocols/a2a.d.ts +2 -0
  52. package/dist/lib/protocols/a2a.d.ts.map +1 -0
  53. package/dist/lib/protocols/a2a.js +70 -0
  54. package/dist/lib/protocols/a2a.js.map +1 -0
  55. package/dist/lib/protocols/index.d.ts +22 -0
  56. package/dist/lib/protocols/index.d.ts.map +1 -0
  57. package/dist/lib/protocols/index.js +47 -0
  58. package/dist/lib/protocols/index.js.map +1 -0
  59. package/dist/lib/protocols/mcp.d.ts +2 -0
  60. package/dist/lib/protocols/mcp.d.ts.map +1 -0
  61. package/dist/lib/protocols/mcp.js +127 -0
  62. package/dist/lib/protocols/mcp.js.map +1 -0
  63. package/dist/lib/storage/MemoryStorage.d.ts +93 -0
  64. package/dist/lib/storage/MemoryStorage.d.ts.map +1 -0
  65. package/dist/lib/storage/MemoryStorage.js +219 -0
  66. package/dist/lib/storage/MemoryStorage.js.map +1 -0
  67. package/dist/lib/storage/interfaces.d.ts +195 -0
  68. package/dist/lib/storage/interfaces.d.ts.map +1 -0
  69. package/dist/lib/storage/interfaces.js +5 -0
  70. package/dist/lib/storage/interfaces.js.map +1 -0
  71. package/dist/lib/types/adcp.d.ts +407 -0
  72. package/dist/lib/types/adcp.d.ts.map +1 -0
  73. package/dist/lib/types/adcp.js +5 -0
  74. package/dist/lib/types/adcp.js.map +1 -0
  75. package/dist/lib/types/core.generated.d.ts +469 -0
  76. package/dist/lib/types/core.generated.d.ts.map +1 -0
  77. package/dist/lib/types/core.generated.js +5 -0
  78. package/dist/lib/types/core.generated.js.map +1 -0
  79. package/dist/lib/types/index.d.ts +3 -0
  80. package/dist/lib/types/index.d.ts.map +1 -0
  81. package/dist/lib/types/index.js +19 -0
  82. package/dist/lib/types/index.js.map +1 -0
  83. package/dist/lib/types/tools.generated.d.ts +1674 -0
  84. package/dist/lib/types/tools.generated.d.ts.map +1 -0
  85. package/dist/lib/types/tools.generated.js +8 -0
  86. package/dist/lib/types/tools.generated.js.map +1 -0
  87. package/dist/lib/utils/index.d.ts +25 -0
  88. package/dist/lib/utils/index.d.ts.map +1 -0
  89. package/dist/lib/utils/index.js +109 -0
  90. package/dist/lib/utils/index.js.map +1 -0
  91. package/dist/lib/validation/index.d.ts +29 -0
  92. package/dist/lib/validation/index.d.ts.map +1 -0
  93. package/dist/lib/validation/index.js +186 -0
  94. package/dist/lib/validation/index.js.map +1 -0
  95. package/dist/lib/version.d.ts +22 -0
  96. package/dist/lib/version.d.ts.map +1 -0
  97. package/dist/lib/version.js +32 -0
  98. package/dist/lib/version.js.map +1 -0
  99. package/package.json +108 -0
@@ -0,0 +1,1674 @@
1
+ /**
2
+ * Type of inventory delivery
3
+ */
4
+ export type DeliveryType = 'guaranteed' | 'non_guaranteed';
5
+ /**
6
+ * Request parameters for discovering available advertising products
7
+ */
8
+ export interface GetProductsRequest {
9
+ /**
10
+ * AdCP schema version for this request
11
+ */
12
+ adcp_version?: string;
13
+ /**
14
+ * Natural language description of campaign requirements
15
+ */
16
+ brief?: string;
17
+ /**
18
+ * Description of advertiser and what is being promoted
19
+ */
20
+ promoted_offering: string;
21
+ /**
22
+ * Structured filters for product discovery
23
+ */
24
+ filters?: {
25
+ delivery_type?: DeliveryType;
26
+ /**
27
+ * Filter for fixed price vs auction products
28
+ */
29
+ is_fixed_price?: boolean;
30
+ /**
31
+ * Filter by format types
32
+ */
33
+ format_types?: ('video' | 'display' | 'audio')[];
34
+ /**
35
+ * Filter by specific format IDs
36
+ */
37
+ format_ids?: string[];
38
+ /**
39
+ * Only return products accepting IAB standard formats
40
+ */
41
+ standard_formats_only?: boolean;
42
+ };
43
+ }
44
+ /**
45
+ * Current task state
46
+ */
47
+ export type TaskStatus = 'submitted' | 'working' | 'input-required' | 'completed' | 'canceled' | 'failed' | 'rejected' | 'auth-required' | 'unknown';
48
+ /**
49
+ * Represents available advertising inventory
50
+ */
51
+ export type Product = Product1 & Product2;
52
+ /**
53
+ * Type of identifier for this property
54
+ */
55
+ export type PropertyIdentifierTypes = 'domain' | 'subdomain' | 'network_id' | 'ios_bundle' | 'android_package' | 'apple_app_store_id' | 'google_play_id' | 'roku_store_id' | 'fire_tv_asin' | 'samsung_app_id' | 'apple_tv_bundle' | 'bundle_id' | 'venue_id' | 'screen_id' | 'openooh_venue_type' | 'rss_url' | 'apple_podcast_id' | 'spotify_show_id' | 'podcast_guid';
56
+ /**
57
+ * Type of inventory delivery
58
+ */
59
+ export type Product2 = {
60
+ [k: string]: unknown;
61
+ } | {
62
+ [k: string]: unknown;
63
+ };
64
+ /**
65
+ * Response payload for get_products task
66
+ */
67
+ export interface GetProductsResponse {
68
+ /**
69
+ * AdCP schema version used for this response
70
+ */
71
+ adcp_version: string;
72
+ status?: TaskStatus;
73
+ /**
74
+ * Array of matching products
75
+ */
76
+ products: Product[];
77
+ /**
78
+ * Task-specific errors and warnings (e.g., product filtering issues)
79
+ */
80
+ errors?: Error[];
81
+ }
82
+ export interface Product1 {
83
+ /**
84
+ * Unique identifier for the product
85
+ */
86
+ product_id: string;
87
+ /**
88
+ * Human-readable product name
89
+ */
90
+ name: string;
91
+ /**
92
+ * Detailed description of the product and its inventory
93
+ */
94
+ description: string;
95
+ /**
96
+ * Array of advertising properties covered by this product for adagents.json validation
97
+ *
98
+ * @minItems 1
99
+ */
100
+ properties?: [Property, ...Property[]];
101
+ /**
102
+ * Tags identifying groups of properties covered by this product (use list_authorized_properties to get full property details)
103
+ *
104
+ * @minItems 1
105
+ */
106
+ property_tags?: [string, ...string[]];
107
+ /**
108
+ * Array of supported creative format IDs - use list_creative_formats to get full format details
109
+ */
110
+ format_ids: string[];
111
+ delivery_type: DeliveryType;
112
+ /**
113
+ * Whether this product has fixed pricing (true) or uses auction (false)
114
+ */
115
+ is_fixed_price: boolean;
116
+ /**
117
+ * Cost per thousand impressions in USD
118
+ */
119
+ cpm?: number;
120
+ /**
121
+ * Minimum budget requirement in USD
122
+ */
123
+ min_spend?: number;
124
+ measurement?: Measurement;
125
+ creative_policy?: CreativePolicy;
126
+ /**
127
+ * Whether this is a custom product
128
+ */
129
+ is_custom?: boolean;
130
+ /**
131
+ * Explanation of why this product matches the brief (only included when brief is provided)
132
+ */
133
+ brief_relevance?: string;
134
+ /**
135
+ * Expiration timestamp for custom products
136
+ */
137
+ expires_at?: string;
138
+ }
139
+ /**
140
+ * An advertising property that can be validated via adagents.json
141
+ */
142
+ export interface Property {
143
+ /**
144
+ * Type of advertising property
145
+ */
146
+ property_type: 'website' | 'mobile_app' | 'ctv_app' | 'dooh' | 'podcast' | 'radio' | 'streaming_audio';
147
+ /**
148
+ * Human-readable property name
149
+ */
150
+ name: string;
151
+ /**
152
+ * Array of identifiers for this property
153
+ *
154
+ * @minItems 1
155
+ */
156
+ identifiers: [
157
+ {
158
+ type: PropertyIdentifierTypes;
159
+ /**
160
+ * The identifier value. For domain type: 'example.com' matches www.example.com and m.example.com only; 'subdomain.example.com' matches that specific subdomain; '*.example.com' matches all subdomains
161
+ */
162
+ value: string;
163
+ },
164
+ ...{
165
+ type: PropertyIdentifierTypes;
166
+ /**
167
+ * The identifier value. For domain type: 'example.com' matches www.example.com and m.example.com only; 'subdomain.example.com' matches that specific subdomain; '*.example.com' matches all subdomains
168
+ */
169
+ value: string;
170
+ }[]
171
+ ];
172
+ /**
173
+ * Tags for categorization and grouping (e.g., network membership, content categories)
174
+ */
175
+ tags?: string[];
176
+ /**
177
+ * Domain where adagents.json should be checked for authorization validation
178
+ */
179
+ publisher_domain: string;
180
+ }
181
+ /**
182
+ * Measurement capabilities included with a product
183
+ */
184
+ export interface Measurement {
185
+ /**
186
+ * Type of measurement
187
+ */
188
+ type: string;
189
+ /**
190
+ * Attribution methodology
191
+ */
192
+ attribution: string;
193
+ /**
194
+ * Attribution window
195
+ */
196
+ window?: string;
197
+ /**
198
+ * Reporting frequency and format
199
+ */
200
+ reporting: string;
201
+ }
202
+ /**
203
+ * Creative requirements and restrictions for a product
204
+ */
205
+ export interface CreativePolicy {
206
+ /**
207
+ * Co-branding requirement
208
+ */
209
+ co_branding: 'required' | 'optional' | 'none';
210
+ /**
211
+ * Landing page requirements
212
+ */
213
+ landing_page: 'any' | 'retailer_site_only' | 'must_include_retailer';
214
+ /**
215
+ * Whether creative templates are provided
216
+ */
217
+ templates_available: boolean;
218
+ }
219
+ /**
220
+ * Standard error structure for task-specific errors and warnings
221
+ */
222
+ export interface Error {
223
+ /**
224
+ * Error code for programmatic handling
225
+ */
226
+ code: string;
227
+ /**
228
+ * Human-readable error message
229
+ */
230
+ message: string;
231
+ /**
232
+ * Field path associated with the error (e.g., 'packages[0].targeting')
233
+ */
234
+ field?: string;
235
+ /**
236
+ * Suggested fix for the error
237
+ */
238
+ suggestion?: string;
239
+ /**
240
+ * Seconds to wait before retrying the operation
241
+ */
242
+ retry_after?: number;
243
+ /**
244
+ * Additional task-specific error details
245
+ */
246
+ details?: {
247
+ [k: string]: unknown;
248
+ };
249
+ }
250
+ /**
251
+ * Request parameters for discovering supported creative formats
252
+ */
253
+ export interface ListCreativeFormatsRequest {
254
+ /**
255
+ * AdCP schema version for this request
256
+ */
257
+ adcp_version?: string;
258
+ /**
259
+ * Filter by format type
260
+ */
261
+ type?: 'audio' | 'video' | 'display';
262
+ /**
263
+ * Only return IAB standard formats
264
+ */
265
+ standard_only?: boolean;
266
+ /**
267
+ * Filter by format category
268
+ */
269
+ category?: 'standard' | 'custom';
270
+ /**
271
+ * Filter by specific format IDs (e.g., from get_products response)
272
+ */
273
+ format_ids?: string[];
274
+ }
275
+ /**
276
+ * Current task state
277
+ */
278
+ export type CreativeAsset = CreativeAsset1 & CreativeAsset2;
279
+ /**
280
+ * Type of snippet content
281
+ */
282
+ export type SnippetType = 'vast_xml' | 'vast_url' | 'html' | 'javascript' | 'iframe' | 'daast_url';
283
+ /**
284
+ * Sub-asset for multi-asset creative formats, including carousel images and native ad template variables
285
+ */
286
+ export type SubAsset = SubAsset1 & SubAsset2;
287
+ export type SubAsset2 = {
288
+ [k: string]: unknown;
289
+ } | {
290
+ [k: string]: unknown;
291
+ };
292
+ export type CreativeAsset2 = {
293
+ [k: string]: unknown;
294
+ } | {
295
+ [k: string]: unknown;
296
+ };
297
+ /**
298
+ * Response payload for list_creative_formats task
299
+ */
300
+ export interface ListCreativeFormatsResponse {
301
+ /**
302
+ * AdCP schema version used for this response
303
+ */
304
+ adcp_version: string;
305
+ status?: TaskStatus;
306
+ /**
307
+ * Array of available creative formats
308
+ */
309
+ formats: Format[];
310
+ /**
311
+ * Task-specific errors and warnings (e.g., format availability issues)
312
+ */
313
+ errors?: Error[];
314
+ }
315
+ /**
316
+ * Represents a creative format with its requirements
317
+ */
318
+ export interface Format {
319
+ /**
320
+ * Unique identifier for the format
321
+ */
322
+ format_id: string;
323
+ /**
324
+ * Human-readable format name
325
+ */
326
+ name: string;
327
+ /**
328
+ * Media type of this format - determines rendering method and asset requirements
329
+ */
330
+ type: 'audio' | 'video' | 'display' | 'native' | 'dooh' | 'rich_media' | 'universal';
331
+ /**
332
+ * Format category
333
+ */
334
+ category?: 'standard' | 'custom';
335
+ /**
336
+ * Whether this format follows IAB specifications or AdCP standard format definitions (found in /schemas/v1/standard-formats/)
337
+ */
338
+ is_standard?: boolean;
339
+ /**
340
+ * Technical specifications for this format (e.g., dimensions, duration, file size limits, codecs)
341
+ */
342
+ requirements?: {
343
+ [k: string]: unknown;
344
+ };
345
+ /**
346
+ * Array of required assets for this format
347
+ */
348
+ assets_required?: CreativeAsset[];
349
+ /**
350
+ * Array of optional assets that may be included
351
+ */
352
+ optional_assets?: CreativeAsset2[];
353
+ /**
354
+ * Delivery method specifications (e.g., hosted, VAST, third-party tags)
355
+ */
356
+ delivery?: {
357
+ [k: string]: unknown;
358
+ };
359
+ /**
360
+ * Whether this format can accept third-party served creative tags as an alternative to hosted assets
361
+ */
362
+ accepts_3p_tags?: boolean;
363
+ }
364
+ export interface CreativeAsset1 {
365
+ /**
366
+ * Unique identifier for the creative
367
+ */
368
+ creative_id: string;
369
+ /**
370
+ * Human-readable creative name
371
+ */
372
+ name: string;
373
+ /**
374
+ * Creative format type (e.g., video, audio, display)
375
+ */
376
+ format: string;
377
+ /**
378
+ * URL of the creative file (for hosted assets)
379
+ */
380
+ media_url?: string;
381
+ /**
382
+ * Third-party tag, VAST XML, or code snippet (for third-party served assets)
383
+ */
384
+ snippet?: string;
385
+ snippet_type?: SnippetType;
386
+ /**
387
+ * Landing page URL for the creative
388
+ */
389
+ click_url?: string;
390
+ /**
391
+ * Duration in milliseconds (for video/audio)
392
+ */
393
+ duration?: number;
394
+ /**
395
+ * Width in pixels (for video/display)
396
+ */
397
+ width?: number;
398
+ /**
399
+ * Height in pixels (for video/display)
400
+ */
401
+ height?: number;
402
+ /**
403
+ * User-defined tags for organization and searchability
404
+ */
405
+ tags?: string[];
406
+ /**
407
+ * Sub-assets for multi-asset formats like carousels
408
+ */
409
+ assets?: SubAsset[];
410
+ }
411
+ export interface SubAsset1 {
412
+ /**
413
+ * 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
414
+ */
415
+ asset_type?: string;
416
+ /**
417
+ * Unique identifier for the asset within the creative
418
+ */
419
+ asset_id?: string;
420
+ /**
421
+ * URL for media assets (images, videos, etc.)
422
+ */
423
+ content_uri?: string;
424
+ /**
425
+ * Text content for text-based assets like headlines, body text, CTA text, etc.
426
+ */
427
+ content?: string | string[];
428
+ }
429
+ /**
430
+ * Standard error structure for task-specific errors and warnings
431
+ */
432
+ /**
433
+ * Budget pacing strategy
434
+ */
435
+ export type Pacing = 'even' | 'asap' | 'front_loaded';
436
+ /**
437
+ * Request parameters for creating a media buy
438
+ */
439
+ export interface CreateMediaBuyRequest {
440
+ /**
441
+ * AdCP schema version for this request
442
+ */
443
+ adcp_version?: string;
444
+ /**
445
+ * Buyer's reference identifier for this media buy
446
+ */
447
+ buyer_ref: string;
448
+ /**
449
+ * Array of package configurations
450
+ */
451
+ packages: ({
452
+ [k: string]: unknown;
453
+ } | {
454
+ [k: string]: unknown;
455
+ })[];
456
+ /**
457
+ * Description of advertiser and what is being promoted
458
+ */
459
+ promoted_offering: string;
460
+ /**
461
+ * Purchase order number for tracking
462
+ */
463
+ po_number?: string;
464
+ /**
465
+ * Campaign start date/time in ISO 8601 format
466
+ */
467
+ start_time: string;
468
+ /**
469
+ * Campaign end date/time in ISO 8601 format
470
+ */
471
+ end_time: string;
472
+ budget: Budget;
473
+ }
474
+ /**
475
+ * Budget configuration for a media buy or package
476
+ */
477
+ export interface Budget {
478
+ /**
479
+ * Total budget amount
480
+ */
481
+ total: number;
482
+ /**
483
+ * ISO 4217 currency code
484
+ */
485
+ currency: string;
486
+ pacing?: Pacing;
487
+ }
488
+ /**
489
+ * Current task state - typically 'completed' for successful creation or 'input-required' if approval needed
490
+ */
491
+ export interface CreateMediaBuyResponse {
492
+ /**
493
+ * AdCP schema version used for this response
494
+ */
495
+ adcp_version: string;
496
+ status?: TaskStatus;
497
+ /**
498
+ * Publisher's unique identifier for the created media buy
499
+ */
500
+ media_buy_id: string;
501
+ /**
502
+ * Buyer's reference identifier for this media buy
503
+ */
504
+ buyer_ref: string;
505
+ /**
506
+ * ISO 8601 timestamp for creative upload deadline
507
+ */
508
+ creative_deadline?: string;
509
+ /**
510
+ * Array of created packages
511
+ */
512
+ packages: {
513
+ /**
514
+ * Publisher's unique identifier for the package
515
+ */
516
+ package_id: string;
517
+ /**
518
+ * Buyer's reference identifier for the package
519
+ */
520
+ buyer_ref: string;
521
+ }[];
522
+ /**
523
+ * Task-specific errors and warnings (e.g., partial package creation failures)
524
+ */
525
+ errors?: Error[];
526
+ }
527
+ /**
528
+ * Standard error structure for task-specific errors and warnings
529
+ */
530
+ /**
531
+ * Creative asset for upload to library - supports both hosted assets and third-party snippets
532
+ */
533
+ export interface SyncCreativesRequest {
534
+ /**
535
+ * AdCP schema version for this request
536
+ */
537
+ adcp_version?: string;
538
+ /**
539
+ * Array of creative assets to sync (create or update)
540
+ *
541
+ * @maxItems 100
542
+ */
543
+ creatives: CreativeAsset[];
544
+ /**
545
+ * When true, only provided fields are updated (partial update). When false, entire creative is replaced (full upsert).
546
+ */
547
+ patch?: boolean;
548
+ /**
549
+ * Optional bulk assignment of creatives to packages
550
+ */
551
+ assignments?: {
552
+ /**
553
+ * Array of package IDs to assign this creative to
554
+ *
555
+ * This interface was referenced by `undefined`'s JSON-Schema definition
556
+ * via the `patternProperty` "^[a-zA-Z0-9_-]+$".
557
+ */
558
+ [k: string]: string[];
559
+ };
560
+ /**
561
+ * When true, creatives not included in this sync will be archived. Use with caution for full library replacement.
562
+ */
563
+ delete_missing?: boolean;
564
+ /**
565
+ * When true, preview changes without applying them. Returns what would be created/updated/deleted.
566
+ */
567
+ dry_run?: boolean;
568
+ /**
569
+ * Validation strictness. 'strict' fails entire sync on any validation error. 'lenient' processes valid creatives and reports errors.
570
+ */
571
+ validation_mode?: 'strict' | 'lenient';
572
+ }
573
+ /**
574
+ * Current approval status of the creative
575
+ */
576
+ export type CreativeStatus = 'processing' | 'approved' | 'rejected' | 'pending_review';
577
+ /**
578
+ * Response from creative sync operation with detailed results and bulk operation summary
579
+ */
580
+ export interface SyncCreativesResponse {
581
+ /**
582
+ * AdCP schema version used for this response
583
+ */
584
+ adcp_version: string;
585
+ /**
586
+ * Human-readable result message summarizing the sync operation
587
+ */
588
+ message: string;
589
+ /**
590
+ * Context ID for tracking async operations
591
+ */
592
+ context_id?: string;
593
+ /**
594
+ * Whether this was a dry run (no actual changes made)
595
+ */
596
+ dry_run?: boolean;
597
+ /**
598
+ * High-level summary of sync operation results
599
+ */
600
+ summary: {
601
+ /**
602
+ * Total number of creatives processed
603
+ */
604
+ total_processed: number;
605
+ /**
606
+ * Number of new creatives created
607
+ */
608
+ created: number;
609
+ /**
610
+ * Number of existing creatives updated
611
+ */
612
+ updated: number;
613
+ /**
614
+ * Number of creatives that were already up-to-date
615
+ */
616
+ unchanged: number;
617
+ /**
618
+ * Number of creatives that failed validation or processing
619
+ */
620
+ failed: number;
621
+ /**
622
+ * Number of creatives deleted/archived (when delete_missing=true)
623
+ */
624
+ deleted?: number;
625
+ };
626
+ /**
627
+ * Detailed results for each creative processed
628
+ */
629
+ results: {
630
+ /**
631
+ * Creative ID from the request
632
+ */
633
+ creative_id: string;
634
+ /**
635
+ * Action taken for this creative
636
+ */
637
+ action: 'created' | 'updated' | 'unchanged' | 'failed' | 'deleted';
638
+ status?: CreativeStatus;
639
+ /**
640
+ * Platform-specific ID assigned to the creative
641
+ */
642
+ platform_id?: string;
643
+ /**
644
+ * List of field names that were modified (for 'updated' action)
645
+ */
646
+ changes?: string[];
647
+ /**
648
+ * Validation or processing errors (for 'failed' action)
649
+ */
650
+ errors?: string[];
651
+ /**
652
+ * Non-fatal warnings about this creative
653
+ */
654
+ warnings?: string[];
655
+ /**
656
+ * Feedback from platform review process
657
+ */
658
+ review_feedback?: string;
659
+ /**
660
+ * Recommended creative adaptations for better performance
661
+ */
662
+ suggested_adaptations?: {
663
+ /**
664
+ * Unique identifier for this adaptation
665
+ */
666
+ adaptation_id: string;
667
+ /**
668
+ * Target format ID for the adaptation
669
+ */
670
+ format_id: string;
671
+ /**
672
+ * Suggested name for the adapted creative
673
+ */
674
+ name: string;
675
+ /**
676
+ * What this adaptation does
677
+ */
678
+ description: string;
679
+ /**
680
+ * Expected performance improvement (percentage)
681
+ */
682
+ estimated_performance_lift?: number;
683
+ }[];
684
+ }[];
685
+ /**
686
+ * Summary of assignment operations (when assignments were included in request)
687
+ */
688
+ assignments_summary?: {
689
+ /**
690
+ * Total number of creative-package assignment operations processed
691
+ */
692
+ total_assignments_processed: number;
693
+ /**
694
+ * Number of successful creative-package assignments
695
+ */
696
+ assigned: number;
697
+ /**
698
+ * Number of creative-package unassignments
699
+ */
700
+ unassigned: number;
701
+ /**
702
+ * Number of assignment operations that failed
703
+ */
704
+ failed: number;
705
+ };
706
+ /**
707
+ * Detailed assignment results (when assignments were included in request)
708
+ */
709
+ assignment_results?: {
710
+ /**
711
+ * Creative that was assigned/unassigned
712
+ */
713
+ creative_id: string;
714
+ /**
715
+ * Packages successfully assigned to this creative
716
+ */
717
+ assigned_packages?: string[];
718
+ /**
719
+ * Packages successfully unassigned from this creative
720
+ */
721
+ unassigned_packages?: string[];
722
+ /**
723
+ * Packages that failed to assign/unassign
724
+ */
725
+ failed_packages?: {
726
+ /**
727
+ * Package ID that failed
728
+ */
729
+ package_id: string;
730
+ /**
731
+ * Error message for the failed assignment
732
+ */
733
+ error: string;
734
+ }[];
735
+ }[];
736
+ }
737
+ /**
738
+ * Filter by creative approval status
739
+ */
740
+ export type CreativeStatus1 = 'processing' | 'approved' | 'rejected' | 'pending_review';
741
+ /**
742
+ * Filter by third-party snippet type
743
+ */
744
+ export interface ListCreativesRequest {
745
+ /**
746
+ * AdCP schema version for this request
747
+ */
748
+ adcp_version?: string;
749
+ /**
750
+ * Filter criteria for querying creatives
751
+ */
752
+ filters?: {
753
+ /**
754
+ * Filter by creative format type (e.g., video, audio, display)
755
+ */
756
+ format?: string;
757
+ /**
758
+ * Filter by multiple creative format types
759
+ */
760
+ formats?: string[];
761
+ status?: CreativeStatus;
762
+ /**
763
+ * Filter by multiple creative statuses
764
+ */
765
+ statuses?: CreativeStatus1[];
766
+ /**
767
+ * Filter by creative tags (all tags must match)
768
+ */
769
+ tags?: string[];
770
+ /**
771
+ * Filter by creative tags (any tag must match)
772
+ */
773
+ tags_any?: string[];
774
+ /**
775
+ * Filter by creative names containing this text (case-insensitive)
776
+ */
777
+ name_contains?: string;
778
+ /**
779
+ * Filter by specific creative IDs
780
+ *
781
+ * @maxItems 100
782
+ */
783
+ creative_ids?: string[];
784
+ /**
785
+ * Filter creatives created after this date (ISO 8601)
786
+ */
787
+ created_after?: string;
788
+ /**
789
+ * Filter creatives created before this date (ISO 8601)
790
+ */
791
+ created_before?: string;
792
+ /**
793
+ * Filter creatives last updated after this date (ISO 8601)
794
+ */
795
+ updated_after?: string;
796
+ /**
797
+ * Filter creatives last updated before this date (ISO 8601)
798
+ */
799
+ updated_before?: string;
800
+ /**
801
+ * Filter creatives assigned to this specific package
802
+ */
803
+ assigned_to_package?: string;
804
+ /**
805
+ * Filter creatives assigned to any of these packages
806
+ */
807
+ assigned_to_packages?: string[];
808
+ /**
809
+ * Filter for unassigned creatives when true, assigned creatives when false
810
+ */
811
+ unassigned?: boolean;
812
+ snippet_type?: SnippetType;
813
+ /**
814
+ * Filter creatives that have performance data when true
815
+ */
816
+ has_performance_data?: boolean;
817
+ };
818
+ /**
819
+ * Sorting parameters
820
+ */
821
+ sort?: {
822
+ /**
823
+ * Field to sort by
824
+ */
825
+ field?: 'created_date' | 'updated_date' | 'name' | 'status' | 'assignment_count' | 'performance_score';
826
+ /**
827
+ * Sort direction
828
+ */
829
+ direction?: 'asc' | 'desc';
830
+ };
831
+ /**
832
+ * Pagination parameters
833
+ */
834
+ pagination?: {
835
+ /**
836
+ * Maximum number of creatives to return
837
+ */
838
+ limit?: number;
839
+ /**
840
+ * Number of creatives to skip
841
+ */
842
+ offset?: number;
843
+ };
844
+ /**
845
+ * Include package assignment information in response
846
+ */
847
+ include_assignments?: boolean;
848
+ /**
849
+ * Include aggregated performance metrics in response
850
+ */
851
+ include_performance?: boolean;
852
+ /**
853
+ * Include sub-assets (for carousel/native formats) in response
854
+ */
855
+ include_sub_assets?: boolean;
856
+ /**
857
+ * Specific fields to include in response (omit for all fields)
858
+ */
859
+ fields?: ('creative_id' | 'name' | 'format' | 'status' | 'created_date' | 'updated_date' | 'tags' | 'assignments' | 'performance' | 'sub_assets')[];
860
+ }
861
+ /**
862
+ * Current approval status of the creative
863
+ */
864
+ export interface ListCreativesResponse {
865
+ /**
866
+ * AdCP schema version used for this response
867
+ */
868
+ adcp_version: string;
869
+ /**
870
+ * Human-readable result message
871
+ */
872
+ message: string;
873
+ /**
874
+ * Context ID for tracking related operations
875
+ */
876
+ context_id?: string;
877
+ /**
878
+ * Summary of the query that was executed
879
+ */
880
+ query_summary: {
881
+ /**
882
+ * Total number of creatives matching filters (across all pages)
883
+ */
884
+ total_matching: number;
885
+ /**
886
+ * Number of creatives returned in this response
887
+ */
888
+ returned: number;
889
+ /**
890
+ * List of filters that were applied to the query
891
+ */
892
+ filters_applied?: string[];
893
+ /**
894
+ * Sort order that was applied
895
+ */
896
+ sort_applied?: {
897
+ field?: string;
898
+ direction?: 'asc' | 'desc';
899
+ [k: string]: unknown;
900
+ };
901
+ };
902
+ /**
903
+ * Pagination information for navigating results
904
+ */
905
+ pagination: {
906
+ /**
907
+ * Maximum number of results requested
908
+ */
909
+ limit: number;
910
+ /**
911
+ * Number of results skipped
912
+ */
913
+ offset: number;
914
+ /**
915
+ * Whether more results are available
916
+ */
917
+ has_more: boolean;
918
+ /**
919
+ * Total number of pages available
920
+ */
921
+ total_pages?: number;
922
+ /**
923
+ * Current page number (1-based)
924
+ */
925
+ current_page?: number;
926
+ };
927
+ /**
928
+ * Array of creative assets matching the query
929
+ */
930
+ creatives: {
931
+ /**
932
+ * Unique identifier for the creative
933
+ */
934
+ creative_id: string;
935
+ /**
936
+ * Human-readable creative name
937
+ */
938
+ name: string;
939
+ /**
940
+ * Creative format type
941
+ */
942
+ format: string;
943
+ status: CreativeStatus;
944
+ /**
945
+ * When the creative was uploaded to the library
946
+ */
947
+ created_date: string;
948
+ /**
949
+ * When the creative was last modified
950
+ */
951
+ updated_date: string;
952
+ /**
953
+ * URL of the creative file (for hosted assets)
954
+ */
955
+ media_url?: string;
956
+ /**
957
+ * Third-party tag, VAST XML, or code snippet (for third-party assets)
958
+ */
959
+ snippet?: string;
960
+ snippet_type?: SnippetType;
961
+ /**
962
+ * Landing page URL for the creative
963
+ */
964
+ click_url?: string;
965
+ /**
966
+ * Duration in milliseconds (for video/audio)
967
+ */
968
+ duration?: number;
969
+ /**
970
+ * Width in pixels (for video/display)
971
+ */
972
+ width?: number;
973
+ /**
974
+ * Height in pixels (for video/display)
975
+ */
976
+ height?: number;
977
+ /**
978
+ * User-defined tags for organization and searchability
979
+ */
980
+ tags?: string[];
981
+ /**
982
+ * Current package assignments (included when include_assignments=true)
983
+ */
984
+ assignments?: {
985
+ /**
986
+ * Total number of active package assignments
987
+ */
988
+ assignment_count: number;
989
+ /**
990
+ * List of packages this creative is assigned to
991
+ */
992
+ assigned_packages?: {
993
+ /**
994
+ * Package identifier
995
+ */
996
+ package_id: string;
997
+ /**
998
+ * Human-readable package name
999
+ */
1000
+ package_name?: string;
1001
+ /**
1002
+ * When this assignment was created
1003
+ */
1004
+ assigned_date: string;
1005
+ /**
1006
+ * Status of this specific assignment
1007
+ */
1008
+ status: 'active' | 'paused' | 'ended';
1009
+ }[];
1010
+ };
1011
+ /**
1012
+ * Aggregated performance metrics (included when include_performance=true)
1013
+ */
1014
+ performance?: {
1015
+ /**
1016
+ * Total impressions across all assignments
1017
+ */
1018
+ impressions?: number;
1019
+ /**
1020
+ * Total clicks across all assignments
1021
+ */
1022
+ clicks?: number;
1023
+ /**
1024
+ * Click-through rate (clicks/impressions)
1025
+ */
1026
+ ctr?: number;
1027
+ /**
1028
+ * Conversion rate across all assignments
1029
+ */
1030
+ conversion_rate?: number;
1031
+ /**
1032
+ * Aggregated performance score (0-100)
1033
+ */
1034
+ performance_score?: number;
1035
+ /**
1036
+ * When performance data was last updated
1037
+ */
1038
+ last_updated: string;
1039
+ };
1040
+ /**
1041
+ * Sub-assets for multi-asset formats (included when include_sub_assets=true)
1042
+ */
1043
+ sub_assets?: SubAsset[];
1044
+ }[];
1045
+ /**
1046
+ * Breakdown of creatives by format type
1047
+ */
1048
+ format_summary?: {
1049
+ /**
1050
+ * Number of creatives with this format
1051
+ *
1052
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1053
+ * via the `patternProperty` "^[a-zA-Z0-9_-]+$".
1054
+ */
1055
+ [k: string]: number;
1056
+ };
1057
+ /**
1058
+ * Breakdown of creatives by status
1059
+ */
1060
+ status_summary?: {
1061
+ /**
1062
+ * Number of approved creatives
1063
+ */
1064
+ approved?: number;
1065
+ /**
1066
+ * Number of creatives pending review
1067
+ */
1068
+ pending_review?: number;
1069
+ /**
1070
+ * Number of rejected creatives
1071
+ */
1072
+ rejected?: number;
1073
+ /**
1074
+ * Number of archived creatives
1075
+ */
1076
+ archived?: number;
1077
+ };
1078
+ }
1079
+ /**
1080
+ * Request parameters for updating campaign and package settings
1081
+ */
1082
+ export type UpdateMediaBuyRequest = UpdateMediaBuyRequest1 & UpdateMediaBuyRequest2;
1083
+ /**
1084
+ * Budget pacing strategy
1085
+ */
1086
+ export type UpdateMediaBuyRequest2 = {
1087
+ [k: string]: unknown;
1088
+ };
1089
+ export interface UpdateMediaBuyRequest1 {
1090
+ /**
1091
+ * AdCP schema version for this request
1092
+ */
1093
+ adcp_version?: string;
1094
+ /**
1095
+ * Publisher's ID of the media buy to update
1096
+ */
1097
+ media_buy_id?: string;
1098
+ /**
1099
+ * Buyer's reference for the media buy to update
1100
+ */
1101
+ buyer_ref?: string;
1102
+ /**
1103
+ * Pause/resume the entire media buy
1104
+ */
1105
+ active?: boolean;
1106
+ /**
1107
+ * New start date/time in ISO 8601 format
1108
+ */
1109
+ start_time?: string;
1110
+ /**
1111
+ * New end date/time in ISO 8601 format
1112
+ */
1113
+ end_time?: string;
1114
+ budget?: Budget;
1115
+ /**
1116
+ * Package-specific updates
1117
+ */
1118
+ packages?: ({
1119
+ [k: string]: unknown;
1120
+ } | {
1121
+ [k: string]: unknown;
1122
+ })[];
1123
+ }
1124
+ /**
1125
+ * Budget configuration for a media buy or package
1126
+ */
1127
+ /**
1128
+ * Response payload for update_media_buy task
1129
+ */
1130
+ export interface UpdateMediaBuyResponse {
1131
+ /**
1132
+ * AdCP schema version used for this response
1133
+ */
1134
+ adcp_version: string;
1135
+ /**
1136
+ * Publisher's identifier for the media buy
1137
+ */
1138
+ media_buy_id: string;
1139
+ /**
1140
+ * Buyer's reference identifier for the media buy
1141
+ */
1142
+ buyer_ref: string;
1143
+ /**
1144
+ * ISO 8601 timestamp when changes take effect (null if pending approval)
1145
+ */
1146
+ implementation_date?: string | null;
1147
+ /**
1148
+ * Array of packages that were modified
1149
+ */
1150
+ affected_packages: {
1151
+ /**
1152
+ * Publisher's package identifier
1153
+ */
1154
+ package_id: string;
1155
+ /**
1156
+ * Buyer's reference for the package
1157
+ */
1158
+ buyer_ref: string;
1159
+ }[];
1160
+ /**
1161
+ * Task-specific errors and warnings (e.g., partial update failures)
1162
+ */
1163
+ errors?: Error[];
1164
+ }
1165
+ /**
1166
+ * Standard error structure for task-specific errors and warnings
1167
+ */
1168
+ /**
1169
+ * Request parameters for retrieving comprehensive delivery metrics
1170
+ */
1171
+ export interface GetMediaBuyDeliveryRequest {
1172
+ /**
1173
+ * AdCP schema version for this request
1174
+ */
1175
+ adcp_version?: string;
1176
+ /**
1177
+ * Array of publisher media buy IDs to get delivery data for
1178
+ */
1179
+ media_buy_ids?: string[];
1180
+ /**
1181
+ * Array of buyer reference IDs to get delivery data for
1182
+ */
1183
+ buyer_refs?: string[];
1184
+ /**
1185
+ * Filter by status. Can be a single status or array of statuses
1186
+ */
1187
+ status_filter?: ('active' | 'pending' | 'paused' | 'completed' | 'failed' | 'all') | ('active' | 'pending' | 'paused' | 'completed' | 'failed')[];
1188
+ /**
1189
+ * Start date for reporting period (YYYY-MM-DD)
1190
+ */
1191
+ start_date?: string;
1192
+ /**
1193
+ * End date for reporting period (YYYY-MM-DD)
1194
+ */
1195
+ end_date?: string;
1196
+ }
1197
+ /**
1198
+ * Response payload for get_media_buy_delivery task
1199
+ */
1200
+ export interface GetMediaBuyDeliveryResponse {
1201
+ /**
1202
+ * AdCP schema version used for this response
1203
+ */
1204
+ adcp_version: string;
1205
+ /**
1206
+ * Date range for the report
1207
+ */
1208
+ reporting_period: {
1209
+ /**
1210
+ * ISO 8601 start timestamp
1211
+ */
1212
+ start: string;
1213
+ /**
1214
+ * ISO 8601 end timestamp
1215
+ */
1216
+ end: string;
1217
+ };
1218
+ /**
1219
+ * ISO 4217 currency code
1220
+ */
1221
+ currency: string;
1222
+ /**
1223
+ * Combined metrics across all returned media buys
1224
+ */
1225
+ aggregated_totals: {
1226
+ /**
1227
+ * Total impressions delivered across all media buys
1228
+ */
1229
+ impressions: number;
1230
+ /**
1231
+ * Total amount spent across all media buys
1232
+ */
1233
+ spend: number;
1234
+ /**
1235
+ * Total clicks across all media buys (if applicable)
1236
+ */
1237
+ clicks?: number;
1238
+ /**
1239
+ * Total video completions across all media buys (if applicable)
1240
+ */
1241
+ video_completions?: number;
1242
+ /**
1243
+ * Number of media buys included in the response
1244
+ */
1245
+ media_buy_count: number;
1246
+ };
1247
+ /**
1248
+ * Array of delivery data for each media buy
1249
+ */
1250
+ deliveries: {
1251
+ /**
1252
+ * Publisher's media buy identifier
1253
+ */
1254
+ media_buy_id: string;
1255
+ /**
1256
+ * Buyer's reference identifier for this media buy
1257
+ */
1258
+ buyer_ref?: string;
1259
+ /**
1260
+ * Current media buy status
1261
+ */
1262
+ status: 'pending' | 'active' | 'paused' | 'completed' | 'failed';
1263
+ /**
1264
+ * Aggregate metrics for this media buy across all packages
1265
+ */
1266
+ totals: {
1267
+ /**
1268
+ * Total impressions delivered
1269
+ */
1270
+ impressions: number;
1271
+ /**
1272
+ * Total amount spent
1273
+ */
1274
+ spend: number;
1275
+ /**
1276
+ * Total clicks (if applicable)
1277
+ */
1278
+ clicks?: number;
1279
+ /**
1280
+ * Click-through rate (clicks/impressions)
1281
+ */
1282
+ ctr?: number;
1283
+ /**
1284
+ * Total video completions (if applicable)
1285
+ */
1286
+ video_completions?: number;
1287
+ /**
1288
+ * Video completion rate (completions/impressions)
1289
+ */
1290
+ completion_rate?: number;
1291
+ };
1292
+ /**
1293
+ * Metrics broken down by package
1294
+ */
1295
+ by_package: {
1296
+ /**
1297
+ * Publisher's package identifier
1298
+ */
1299
+ package_id: string;
1300
+ /**
1301
+ * Buyer's reference identifier for this package
1302
+ */
1303
+ buyer_ref?: string;
1304
+ /**
1305
+ * Package impressions
1306
+ */
1307
+ impressions: number;
1308
+ /**
1309
+ * Package spend
1310
+ */
1311
+ spend: number;
1312
+ /**
1313
+ * Package clicks
1314
+ */
1315
+ clicks?: number;
1316
+ /**
1317
+ * Package video completions
1318
+ */
1319
+ video_completions?: number;
1320
+ /**
1321
+ * Delivery pace (1.0 = on track, <1.0 = behind, >1.0 = ahead)
1322
+ */
1323
+ pacing_index?: number;
1324
+ }[];
1325
+ /**
1326
+ * Day-by-day delivery
1327
+ */
1328
+ daily_breakdown?: {
1329
+ /**
1330
+ * Date (YYYY-MM-DD)
1331
+ */
1332
+ date: string;
1333
+ /**
1334
+ * Daily impressions
1335
+ */
1336
+ impressions: number;
1337
+ /**
1338
+ * Daily spend
1339
+ */
1340
+ spend: number;
1341
+ }[];
1342
+ }[];
1343
+ /**
1344
+ * Task-specific errors and warnings (e.g., missing delivery data, reporting platform issues)
1345
+ */
1346
+ errors?: Error[];
1347
+ }
1348
+ /**
1349
+ * Standard error structure for task-specific errors and warnings
1350
+ */
1351
+ /**
1352
+ * Request parameters for discovering all properties this agent is authorized to represent
1353
+ */
1354
+ export interface ListAuthorizedPropertiesRequest {
1355
+ /**
1356
+ * AdCP schema version for this request
1357
+ */
1358
+ adcp_version?: string;
1359
+ /**
1360
+ * Filter properties by specific tags (optional)
1361
+ */
1362
+ tags?: string[];
1363
+ }
1364
+ /**
1365
+ * Type of identifier for this property
1366
+ */
1367
+ export interface ListAuthorizedPropertiesResponse {
1368
+ /**
1369
+ * AdCP schema version used for this response
1370
+ */
1371
+ adcp_version: string;
1372
+ /**
1373
+ * Array of all properties this agent is authorized to represent
1374
+ */
1375
+ properties: Property[];
1376
+ /**
1377
+ * Metadata for each tag referenced by properties
1378
+ */
1379
+ tags?: {
1380
+ [k: string]: {
1381
+ /**
1382
+ * Human-readable name for this tag
1383
+ */
1384
+ name: string;
1385
+ /**
1386
+ * Description of what this tag represents
1387
+ */
1388
+ description: string;
1389
+ };
1390
+ };
1391
+ /**
1392
+ * Task-specific errors and warnings (e.g., property availability issues)
1393
+ */
1394
+ errors?: Error[];
1395
+ }
1396
+ /**
1397
+ * An advertising property that can be validated via adagents.json
1398
+ */
1399
+ /**
1400
+ * Request payload for provide_performance_feedback task
1401
+ */
1402
+ export interface ProvidePerformanceFeedbackRequest {
1403
+ /**
1404
+ * AdCP schema version for this request
1405
+ */
1406
+ adcp_version?: string;
1407
+ /**
1408
+ * Publisher's media buy identifier
1409
+ */
1410
+ media_buy_id: string;
1411
+ /**
1412
+ * Time period for performance measurement
1413
+ */
1414
+ measurement_period: {
1415
+ /**
1416
+ * ISO 8601 start timestamp for measurement period
1417
+ */
1418
+ start: string;
1419
+ /**
1420
+ * ISO 8601 end timestamp for measurement period
1421
+ */
1422
+ end: string;
1423
+ };
1424
+ /**
1425
+ * Normalized performance score (0.0 = no value, 1.0 = expected, >1.0 = above expected)
1426
+ */
1427
+ performance_index: number;
1428
+ /**
1429
+ * Specific package within the media buy (if feedback is package-specific)
1430
+ */
1431
+ package_id?: string;
1432
+ /**
1433
+ * Specific creative asset (if feedback is creative-specific)
1434
+ */
1435
+ creative_id?: string;
1436
+ /**
1437
+ * The business metric being measured
1438
+ */
1439
+ metric_type?: 'overall_performance' | 'conversion_rate' | 'brand_lift' | 'click_through_rate' | 'completion_rate' | 'viewability' | 'brand_safety' | 'cost_efficiency';
1440
+ /**
1441
+ * Source of the performance data
1442
+ */
1443
+ feedback_source?: 'buyer_attribution' | 'third_party_measurement' | 'platform_analytics' | 'verification_partner';
1444
+ }
1445
+ /**
1446
+ * Response payload for provide_performance_feedback task
1447
+ */
1448
+ export interface ProvidePerformanceFeedbackResponse {
1449
+ /**
1450
+ * AdCP schema version used for this response
1451
+ */
1452
+ adcp_version: string;
1453
+ /**
1454
+ * Whether the performance feedback was successfully received
1455
+ */
1456
+ success: boolean;
1457
+ /**
1458
+ * Optional human-readable message about the feedback processing
1459
+ */
1460
+ message?: string;
1461
+ /**
1462
+ * Task-specific errors and warnings (e.g., invalid measurement period, missing campaign data)
1463
+ */
1464
+ errors?: Error[];
1465
+ }
1466
+ /**
1467
+ * Standard error structure for task-specific errors and warnings
1468
+ */
1469
+ /**
1470
+ * Request parameters for discovering signals based on description
1471
+ */
1472
+ export interface GetSignalsRequest {
1473
+ /**
1474
+ * AdCP schema version for this request
1475
+ */
1476
+ adcp_version?: string;
1477
+ /**
1478
+ * Natural language description of the desired signals
1479
+ */
1480
+ signal_spec: string;
1481
+ /**
1482
+ * Where the signals need to be delivered
1483
+ */
1484
+ deliver_to: {
1485
+ /**
1486
+ * Target platforms for signal deployment
1487
+ */
1488
+ platforms: 'all' | string[];
1489
+ /**
1490
+ * Specific platform-account combinations
1491
+ */
1492
+ accounts?: {
1493
+ /**
1494
+ * Platform identifier
1495
+ */
1496
+ platform: string;
1497
+ /**
1498
+ * Account identifier on that platform
1499
+ */
1500
+ account: string;
1501
+ }[];
1502
+ /**
1503
+ * Countries where signals will be used (ISO codes)
1504
+ */
1505
+ countries: string[];
1506
+ };
1507
+ /**
1508
+ * Filters to refine results
1509
+ */
1510
+ filters?: {
1511
+ /**
1512
+ * Filter by catalog type
1513
+ */
1514
+ catalog_types?: ('marketplace' | 'custom' | 'owned')[];
1515
+ /**
1516
+ * Filter by specific data providers
1517
+ */
1518
+ data_providers?: string[];
1519
+ /**
1520
+ * Maximum CPM price filter
1521
+ */
1522
+ max_cpm?: number;
1523
+ /**
1524
+ * Minimum coverage requirement
1525
+ */
1526
+ min_coverage_percentage?: number;
1527
+ };
1528
+ /**
1529
+ * Maximum number of results to return
1530
+ */
1531
+ max_results?: number;
1532
+ }
1533
+ /**
1534
+ * Response payload for get_signals task
1535
+ */
1536
+ export interface GetSignalsResponse {
1537
+ /**
1538
+ * AdCP schema version used for this response
1539
+ */
1540
+ adcp_version: string;
1541
+ /**
1542
+ * Array of matching signals
1543
+ */
1544
+ signals: {
1545
+ /**
1546
+ * Unique identifier for the signal
1547
+ */
1548
+ signal_agent_segment_id: string;
1549
+ /**
1550
+ * Human-readable signal name
1551
+ */
1552
+ name: string;
1553
+ /**
1554
+ * Detailed signal description
1555
+ */
1556
+ description: string;
1557
+ /**
1558
+ * Type of signal
1559
+ */
1560
+ signal_type: 'marketplace' | 'custom' | 'owned';
1561
+ /**
1562
+ * Name of the data provider
1563
+ */
1564
+ data_provider: string;
1565
+ /**
1566
+ * Percentage of audience coverage
1567
+ */
1568
+ coverage_percentage: number;
1569
+ /**
1570
+ * Array of platform deployments
1571
+ */
1572
+ deployments: {
1573
+ /**
1574
+ * Platform name
1575
+ */
1576
+ platform: string;
1577
+ /**
1578
+ * Specific account if applicable
1579
+ */
1580
+ account?: string | null;
1581
+ /**
1582
+ * Whether signal is currently active
1583
+ */
1584
+ is_live: boolean;
1585
+ /**
1586
+ * Deployment scope
1587
+ */
1588
+ scope: 'platform-wide' | 'account-specific';
1589
+ /**
1590
+ * Platform-specific segment ID
1591
+ */
1592
+ decisioning_platform_segment_id?: string;
1593
+ /**
1594
+ * Time to activate if not live
1595
+ */
1596
+ estimated_activation_duration_minutes?: number;
1597
+ }[];
1598
+ /**
1599
+ * Pricing information
1600
+ */
1601
+ pricing: {
1602
+ /**
1603
+ * Cost per thousand impressions
1604
+ */
1605
+ cpm: number;
1606
+ /**
1607
+ * Currency code
1608
+ */
1609
+ currency: string;
1610
+ };
1611
+ }[];
1612
+ /**
1613
+ * Task-specific errors and warnings (e.g., signal discovery or pricing issues)
1614
+ */
1615
+ errors?: Error[];
1616
+ }
1617
+ /**
1618
+ * Standard error structure for task-specific errors and warnings
1619
+ */
1620
+ /**
1621
+ * Request parameters for activating a signal on a specific platform/account
1622
+ */
1623
+ export interface ActivateSignalRequest {
1624
+ /**
1625
+ * AdCP schema version for this request
1626
+ */
1627
+ adcp_version?: string;
1628
+ /**
1629
+ * The universal identifier for the signal to activate
1630
+ */
1631
+ signal_agent_segment_id: string;
1632
+ /**
1633
+ * The target platform for activation
1634
+ */
1635
+ platform: string;
1636
+ /**
1637
+ * Account identifier (required for account-specific activation)
1638
+ */
1639
+ account?: string;
1640
+ }
1641
+ /**
1642
+ * Current activation state: 'submitted' (pending), 'working' (processing), 'completed' (deployed), 'failed', 'input-required' (needs auth), etc.
1643
+ */
1644
+ export interface ActivateSignalResponse {
1645
+ /**
1646
+ * AdCP schema version used for this response
1647
+ */
1648
+ adcp_version: string;
1649
+ /**
1650
+ * Unique identifier for tracking the activation
1651
+ */
1652
+ task_id: string;
1653
+ status: TaskStatus;
1654
+ /**
1655
+ * The platform-specific ID to use once activated
1656
+ */
1657
+ decisioning_platform_segment_id?: string;
1658
+ /**
1659
+ * Estimated time to complete (optional)
1660
+ */
1661
+ estimated_activation_duration_minutes?: number;
1662
+ /**
1663
+ * Timestamp when activation completed (optional)
1664
+ */
1665
+ deployed_at?: string;
1666
+ /**
1667
+ * Task-specific errors and warnings (e.g., activation failures, platform issues)
1668
+ */
1669
+ errors?: Error[];
1670
+ }
1671
+ /**
1672
+ * Standard error structure for task-specific errors and warnings
1673
+ */
1674
+ //# sourceMappingURL=tools.generated.d.ts.map