@adcp/client 4.18.2 → 4.20.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 (67) hide show
  1. package/dist/lib/adapters/governance-adapter.d.ts.map +1 -1
  2. package/dist/lib/adapters/governance-adapter.js +0 -1
  3. package/dist/lib/adapters/governance-adapter.js.map +1 -1
  4. package/dist/lib/core/GovernanceMiddleware.d.ts.map +1 -1
  5. package/dist/lib/core/GovernanceMiddleware.js +0 -2
  6. package/dist/lib/core/GovernanceMiddleware.js.map +1 -1
  7. package/dist/lib/core/GovernanceTypes.d.ts +1 -3
  8. package/dist/lib/core/GovernanceTypes.d.ts.map +1 -1
  9. package/dist/lib/core/GovernanceTypes.js +0 -10
  10. package/dist/lib/core/GovernanceTypes.js.map +1 -1
  11. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  12. package/dist/lib/core/TaskExecutor.js +2 -3
  13. package/dist/lib/core/TaskExecutor.js.map +1 -1
  14. package/dist/lib/index.d.ts +3 -2
  15. package/dist/lib/index.d.ts.map +1 -1
  16. package/dist/lib/index.js +6 -5
  17. package/dist/lib/index.js.map +1 -1
  18. package/dist/lib/registry/index.d.ts +81 -4
  19. package/dist/lib/registry/index.d.ts.map +1 -1
  20. package/dist/lib/registry/index.js +188 -3
  21. package/dist/lib/registry/index.js.map +1 -1
  22. package/dist/lib/registry/sync.d.ts +126 -0
  23. package/dist/lib/registry/sync.d.ts.map +1 -0
  24. package/dist/lib/registry/sync.js +345 -0
  25. package/dist/lib/registry/sync.js.map +1 -0
  26. package/dist/lib/registry/types.d.ts +7 -1
  27. package/dist/lib/registry/types.d.ts.map +1 -1
  28. package/dist/lib/registry/types.generated.d.ts +341 -0
  29. package/dist/lib/registry/types.generated.d.ts.map +1 -1
  30. package/dist/lib/registry/types.generated.js +1 -1
  31. package/dist/lib/testing/agent-tester.d.ts +1 -1
  32. package/dist/lib/testing/agent-tester.d.ts.map +1 -1
  33. package/dist/lib/testing/agent-tester.js +8 -2
  34. package/dist/lib/testing/agent-tester.js.map +1 -1
  35. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  36. package/dist/lib/testing/compliance/comply.js +1 -3
  37. package/dist/lib/testing/compliance/comply.js.map +1 -1
  38. package/dist/lib/testing/index.d.ts +1 -1
  39. package/dist/lib/testing/index.d.ts.map +1 -1
  40. package/dist/lib/testing/index.js +3 -2
  41. package/dist/lib/testing/index.js.map +1 -1
  42. package/dist/lib/testing/orchestrator.d.ts.map +1 -1
  43. package/dist/lib/testing/orchestrator.js +1 -0
  44. package/dist/lib/testing/orchestrator.js.map +1 -1
  45. package/dist/lib/testing/scenarios/index.d.ts +1 -1
  46. package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
  47. package/dist/lib/testing/scenarios/index.js +3 -2
  48. package/dist/lib/testing/scenarios/index.js.map +1 -1
  49. package/dist/lib/testing/scenarios/media-buy.d.ts +16 -0
  50. package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
  51. package/dist/lib/testing/scenarios/media-buy.js +183 -0
  52. package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
  53. package/dist/lib/testing/stubs/governance-agent-stub.d.ts.map +1 -1
  54. package/dist/lib/testing/stubs/governance-agent-stub.js +0 -2
  55. package/dist/lib/testing/stubs/governance-agent-stub.js.map +1 -1
  56. package/dist/lib/testing/types.d.ts +1 -1
  57. package/dist/lib/testing/types.d.ts.map +1 -1
  58. package/dist/lib/types/core.generated.d.ts +7 -7
  59. package/dist/lib/types/core.generated.d.ts.map +1 -1
  60. package/dist/lib/types/core.generated.js +1 -1
  61. package/dist/lib/types/schemas.generated.d.ts +113 -98
  62. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  63. package/dist/lib/types/schemas.generated.js +40 -31
  64. package/dist/lib/types/schemas.generated.js.map +1 -1
  65. package/dist/lib/types/tools.generated.d.ts +121 -80
  66. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  67. package/package.json +1 -1
@@ -133,6 +133,10 @@ export type SignalID = {
133
133
  */
134
134
  id: string;
135
135
  };
136
+ /**
137
+ * Postal code system (e.g., 'us_zip', 'gb_outward')
138
+ */
139
+ export type PostalCodeSystem = 'us_zip' | 'us_zip_plus_four' | 'gb_outward' | 'gb_full' | 'ca_fsa' | 'ca_full' | 'de_plz' | 'fr_code_postal' | 'au_postcode' | 'ch_plz' | 'at_plz';
136
140
  /**
137
141
  * Request parameters for discovering or refining advertising products. buying_mode declares the buyer's intent: 'brief' for curated discovery, 'wholesale' for raw catalog access, or 'refine' to iterate on known products and proposals.
138
142
  */
@@ -439,6 +443,35 @@ export interface ProductFilters {
439
443
  * Filter to products supporting specific signals from data provider catalogs. Products must have the requested signals in their data_provider_signals and signal_targeting_allowed must be true (or all signals requested).
440
444
  */
441
445
  signal_targeting?: SignalTargeting[];
446
+ /**
447
+ * Filter by postal area coverage for locally-bound inventory (direct mail, DOOH, local campaigns). Use when products have postal-area-specific coverage. For digital inventory where products have broad coverage, use required_geo_targeting instead to filter by seller capability.
448
+ */
449
+ postal_areas?: {
450
+ system: PostalCodeSystem;
451
+ /**
452
+ * Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
453
+ */
454
+ values: string[];
455
+ }[];
456
+ /**
457
+ * Filter by proximity to geographic points. Returns products with inventory coverage near these locations. Follows the same format as the targeting overlay — each entry uses exactly one method: travel_time + transport_mode, radius, or geometry. For locally-bound inventory (DOOH, radio), filters to products with coverage in the area. For digital inventory, filters to products from sellers supporting geo_proximity targeting.
458
+ */
459
+ geo_proximity?: {
460
+ [k: string]: unknown | undefined;
461
+ }[];
462
+ /**
463
+ * Filter by keyword relevance for search and retail media platforms. Returns products that support keyword targeting for these terms. Allows the sell-side agent to assess keyword availability and recommend appropriate products. Use match_type to indicate the desired precision.
464
+ */
465
+ keywords?: {
466
+ /**
467
+ * The keyword to target
468
+ */
469
+ keyword: string;
470
+ /**
471
+ * Desired match type: broad matches related queries, phrase matches queries containing the keyword phrase, exact matches the query exactly. Defaults to broad.
472
+ */
473
+ match_type?: 'broad' | 'phrase' | 'exact';
474
+ }[];
442
475
  }
443
476
  /**
444
477
  * Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
@@ -603,9 +636,9 @@ export type PriceAdjustmentKind = 'fee' | 'discount' | 'commission' | 'settlemen
603
636
  */
604
637
  export type DemographicSystem = 'nielsen' | 'barb' | 'agf' | 'oztam' | 'mediametrie' | 'custom';
605
638
  /**
606
- * How to interpret the points array. 'spend' (default when omitted): points at ascending budget levels. 'reach_freq': points at ascending reach/frequency targets. 'weekly'/'daily': metrics are per-period values. 'clicks'/'conversions': points at ascending outcome targets.
639
+ * How to interpret the points array. 'spend' (default when omitted): points at ascending budget levels. 'availability': total available inventory, budget omitted. 'reach_freq': points at ascending reach/frequency targets. 'weekly'/'daily': metrics are per-period values. 'clicks'/'conversions': points at ascending outcome targets.
607
640
  */
608
- export type ForecastRangeUnit = 'spend' | 'reach_freq' | 'weekly' | 'daily' | 'clicks' | 'conversions';
641
+ export type ForecastRangeUnit = 'spend' | 'availability' | 'reach_freq' | 'weekly' | 'daily' | 'clicks' | 'conversions';
609
642
  /**
610
643
  * Method used to produce this forecast
611
644
  */
@@ -1504,7 +1537,7 @@ export interface TimeBasedPricingOption {
1504
1537
  */
1505
1538
  export interface DeliveryForecast {
1506
1539
  /**
1507
- * Forecasted delivery at one or more budget levels. A single point is a standard forecast; multiple points ordered by ascending budget form a curve showing how metrics scale with spend. Each point pairs a budget with metric ranges.
1540
+ * Forecasted delivery data points. For spend curves (default), points at ascending budget levels show how metrics scale with spend. For availability forecasts, points represent total available inventory independent of budget. See forecast_range_unit for interpretation.
1508
1541
  */
1509
1542
  points: ForecastPoint[];
1510
1543
  forecast_range_unit?: ForecastRangeUnit;
@@ -1530,15 +1563,15 @@ export interface DeliveryForecast {
1530
1563
  ext?: ExtensionObject;
1531
1564
  }
1532
1565
  /**
1533
- * A forecast at a specific budget level. A single point represents a standard forecast; multiple points ordered by ascending budget form a curve showing how delivery metrics scale with spend.
1566
+ * A forecast data point. When budget is present, the point pairs a spend level with expected delivery — multiple points at ascending budgets form a curve. When budget is omitted, the point represents total available inventory for the requested targeting and dates, independent of spend.
1534
1567
  */
1535
1568
  export interface ForecastPoint {
1536
1569
  /**
1537
- * Budget amount for this forecast point. For allocation-level forecasts, this is the absolute budget for that allocation (not the percentage). For proposal-level forecasts, this is the total proposal budget.
1570
+ * Budget amount for this forecast point. Required for spend curves; omit for availability forecasts where the metrics represent total available inventory. For allocation-level forecasts, this is the absolute budget for that allocation (not the percentage). For proposal-level forecasts, this is the total proposal budget. When omitted, use metrics.spend to express the estimated cost of the available inventory.
1538
1571
  */
1539
- budget: number;
1572
+ budget?: number;
1540
1573
  /**
1541
- * Forecasted metric values at this budget level. Keys are forecastable-metric enum values for delivery/engagement or event-type enum values for outcomes. Values are ForecastRange objects (low/mid/high). Use { "mid": value } for point estimates. Include spend when the platform predicts it will differ from budget. Additional keys beyond the documented properties are allowed for event-type values (purchase, lead, app_install, etc.).
1574
+ * Forecasted metric values. Keys are forecastable-metric enum values for delivery/engagement or event-type enum values for outcomes. Values are ForecastRange objects (low/mid/high). Use { "mid": value } for point estimates. When budget is present, these are the expected metrics at that spend level. When budget is omitted, these represent total available inventory — use spend to express the estimated cost. Additional keys beyond the documented properties are allowed for event-type values (purchase, lead, app_install, etc.).
1542
1575
  */
1543
1576
  metrics: {
1544
1577
  audience_size?: ForecastRange;
@@ -2578,10 +2611,6 @@ export type OptimizationGoal = {
2578
2611
  */
2579
2612
  priority?: number;
2580
2613
  };
2581
- /**
2582
- * Postal code system (e.g., 'us_zip', 'gb_outward'). System name encodes country and precision.
2583
- */
2584
- export type PostalCodeSystem = 'us_zip' | 'us_zip_plus_four' | 'gb_outward' | 'gb_full' | 'ca_fsa' | 'ca_full' | 'de_plz' | 'fr_code_postal' | 'au_postcode' | 'ch_plz' | 'at_plz';
2585
2614
  /**
2586
2615
  * Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. When both suppress and max_impressions are set, an impression is delivered only if both constraints permit it (AND semantics). At least one of suppress, suppress_minutes, or max_impressions must be set.
2587
2616
  */
@@ -2801,6 +2830,10 @@ export type CatalogAsset = Catalog;
2801
2830
  * For generative creatives: set to 'approved' to finalize, 'rejected' to request regeneration with updated assets/message. Omit for non-generative creatives (system will set based on processing state).
2802
2831
  */
2803
2832
  export type CreativeStatus = 'processing' | 'pending_review' | 'approved' | 'rejected' | 'archived';
2833
+ /**
2834
+ * Industry classification for this specific campaign. A brand may operate across multiple industries (brand.json industries field), but each media buy targets one. For example, a consumer health company running a wellness campaign sends 'healthcare.wellness', not 'cpg'. Sellers map this to platform-native codes (e.g., Spotify ADV categories, LinkedIn industry IDs). When omitted, sellers may infer from the brand manifest's industries field.
2835
+ */
2836
+ export type AdvertiserIndustry = 'automotive' | 'automotive.electric_vehicles' | 'automotive.parts_accessories' | 'automotive.luxury' | 'beauty_cosmetics' | 'beauty_cosmetics.skincare' | 'beauty_cosmetics.fragrance' | 'beauty_cosmetics.haircare' | 'cannabis' | 'cpg' | 'cpg.personal_care' | 'cpg.household' | 'dating' | 'education' | 'education.higher_education' | 'education.online_learning' | 'education.k12' | 'energy_utilities' | 'energy_utilities.renewable' | 'fashion_apparel' | 'fashion_apparel.luxury' | 'fashion_apparel.sportswear' | 'finance' | 'finance.banking' | 'finance.insurance' | 'finance.investment' | 'finance.cryptocurrency' | 'food_beverage' | 'food_beverage.alcohol' | 'food_beverage.restaurants' | 'food_beverage.packaged_goods' | 'gambling_betting' | 'gambling_betting.sports_betting' | 'gambling_betting.casino' | 'gaming' | 'gaming.mobile' | 'gaming.console_pc' | 'gaming.esports' | 'government_nonprofit' | 'government_nonprofit.political' | 'government_nonprofit.charity' | 'healthcare' | 'healthcare.pharmaceutical' | 'healthcare.medical_devices' | 'healthcare.wellness' | 'home_garden' | 'home_garden.furniture' | 'home_garden.home_improvement' | 'media_entertainment' | 'media_entertainment.podcasts' | 'media_entertainment.music' | 'media_entertainment.film_tv' | 'media_entertainment.publishing' | 'media_entertainment.live_events' | 'pets' | 'professional_services' | 'professional_services.legal' | 'professional_services.consulting' | 'real_estate' | 'real_estate.residential' | 'real_estate.commercial' | 'recruitment_hr' | 'retail' | 'retail.ecommerce' | 'retail.department_stores' | 'sports_fitness' | 'sports_fitness.equipment' | 'sports_fitness.teams_leagues' | 'technology' | 'technology.software' | 'technology.hardware' | 'technology.ai_ml' | 'telecom' | 'telecom.mobile_carriers' | 'telecom.internet_providers' | 'transportation_logistics' | 'travel_hospitality' | 'travel_hospitality.airlines' | 'travel_hospitality.hotels' | 'travel_hospitality.cruise' | 'travel_hospitality.tourism';
2804
2837
  /**
2805
2838
  * Campaign start timing: 'asap' or ISO 8601 date-time
2806
2839
  */
@@ -2844,6 +2877,7 @@ export interface CreateMediaBuyRequest {
2844
2877
  */
2845
2878
  packages?: PackageRequest[];
2846
2879
  brand: BrandReference;
2880
+ advertiser_industry?: AdvertiserIndustry;
2847
2881
  invoice_recipient?: BusinessEntity;
2848
2882
  /**
2849
2883
  * Acceptance of an insertion order from a committed proposal. Required when the proposal's insertion_order has requires_signature: true. References the io_id from the proposal's insertion_order.
@@ -8438,7 +8472,10 @@ export interface ContentStandards {
8438
8472
  * Content artifact for safety and suitability evaluation. An artifact represents content adjacent to an ad placement - a news article, podcast segment, video chapter, or social post. Artifacts are collections of assets (text, images, video, audio) plus metadata and signals.
8439
8473
  */
8440
8474
  export interface Artifact {
8441
- property_id: Identifier;
8475
+ /**
8476
+ * Stable property identifier from the property catalog. Globally unique across the ecosystem.
8477
+ */
8478
+ property_rid: string;
8442
8479
  /**
8443
8480
  * Identifier for this artifact within the property. The property owner defines the scheme (e.g., 'article_12345', 'episode_42_segment_3', 'post_abc123').
8444
8481
  */
@@ -8470,9 +8507,13 @@ export interface Artifact {
8470
8507
  */
8471
8508
  role?: 'title' | 'paragraph' | 'heading' | 'caption' | 'quote' | 'list_item' | 'description';
8472
8509
  /**
8473
- * Text content
8510
+ * Text content. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.
8474
8511
  */
8475
8512
  content: string;
8513
+ /**
8514
+ * MIME type indicating how to parse the content field. Default: text/plain.
8515
+ */
8516
+ content_format?: 'text/plain' | 'text/markdown' | 'text/html' | 'application/json';
8476
8517
  /**
8477
8518
  * BCP 47 language tag for this text (e.g., 'en', 'es-MX'). Useful when artifact contains mixed-language content.
8478
8519
  */
@@ -8518,9 +8559,13 @@ export interface Artifact {
8518
8559
  */
8519
8560
  duration_ms?: number;
8520
8561
  /**
8521
- * Video transcript
8562
+ * Video transcript. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.
8522
8563
  */
8523
8564
  transcript?: string;
8565
+ /**
8566
+ * MIME type indicating how to parse the transcript field. Default: text/plain.
8567
+ */
8568
+ transcript_format?: 'text/plain' | 'text/markdown' | 'application/json';
8524
8569
  /**
8525
8570
  * How the transcript was generated
8526
8571
  */
@@ -8542,9 +8587,13 @@ export interface Artifact {
8542
8587
  */
8543
8588
  duration_ms?: number;
8544
8589
  /**
8545
- * Audio transcript
8590
+ * Audio transcript. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.
8546
8591
  */
8547
8592
  transcript?: string;
8593
+ /**
8594
+ * MIME type indicating how to parse the transcript field. Default: text/plain.
8595
+ */
8596
+ transcript_format?: 'text/plain' | 'text/markdown' | 'application/json';
8548
8597
  /**
8549
8598
  * How the transcript was generated
8550
8599
  */
@@ -9010,18 +9059,9 @@ export interface GetMediaBuyArtifactsRequest {
9010
9059
  */
9011
9060
  package_ids?: string[];
9012
9061
  /**
9013
- * Sampling parameters. Defaults to the sampling rate agreed in the media buy.
9062
+ * When true, only return artifacts where the seller's local model returned local_verdict: 'fail'. Useful for auditing false positives. Not useful when the seller does not run a local evaluation model (all verdicts are 'unevaluated').
9014
9063
  */
9015
- sampling?: {
9016
- /**
9017
- * Sampling rate (0-1). 1.0 = all deliveries, 0.25 = 25% sample.
9018
- */
9019
- rate?: number;
9020
- /**
9021
- * How to select the sample
9022
- */
9023
- method?: 'random' | 'stratified' | 'recent' | 'failures_only';
9024
- };
9064
+ failures_only?: boolean;
9025
9065
  /**
9026
9066
  * Filter to specific time period
9027
9067
  */
@@ -9103,25 +9143,25 @@ export type GetMediaBuyArtifactsResponse = {
9103
9143
  local_verdict?: 'pass' | 'fail' | 'unevaluated';
9104
9144
  }[];
9105
9145
  /**
9106
- * Information about how the sample was generated
9146
+ * Information about artifact collection for this media buy. Sampling is configured at buy creation time — this reports what was actually collected.
9107
9147
  */
9108
- sampling_info?: {
9148
+ collection_info?: {
9109
9149
  /**
9110
- * Total deliveries in the time range
9150
+ * Total deliveries in the requested time range
9111
9151
  */
9112
9152
  total_deliveries?: number;
9113
9153
  /**
9114
- * Number of artifacts in this response
9154
+ * Total artifacts collected (per the buy's sampling configuration)
9115
9155
  */
9116
- sampled_count?: number;
9156
+ total_collected?: number;
9117
9157
  /**
9118
- * Actual sampling rate achieved
9158
+ * Number of artifacts in this response (may be less than total_collected due to pagination or filters)
9119
9159
  */
9120
- effective_rate?: number;
9160
+ returned_count?: number;
9121
9161
  /**
9122
- * Sampling method used
9162
+ * Actual collection rate achieved (total_collected / total_deliveries)
9123
9163
  */
9124
- method?: 'random' | 'stratified' | 'recent' | 'failures_only';
9164
+ effective_rate?: number;
9125
9165
  };
9126
9166
  pagination?: PaginationResponse;
9127
9167
  context?: ContextObject;
@@ -9213,10 +9253,6 @@ export type RestrictedAttribute = 'racial_ethnic_origin' | 'political_opinions'
9213
9253
  * Authority level granted to this agent.
9214
9254
  */
9215
9255
  export type DelegationAuthority = 'full' | 'execute_only' | 'propose_only';
9216
- /**
9217
- * Governance enforcement mode for this plan. 'enforce': denied actions are blocked. 'advisory': denied actions proceed with findings logged. 'audit': all actions proceed, findings logged. Defaults to 'enforce' if omitted.
9218
- */
9219
- export type GovernanceMode = 'audit' | 'advisory' | 'enforce';
9220
9256
  /**
9221
9257
  * Push campaign plans to the governance agent. A plan defines the authorized parameters for a campaign -- budget limits, channels, flight dates, and authorized markets.
9222
9258
  */
@@ -9377,7 +9413,6 @@ export interface SyncPlansRequest {
9377
9413
  */
9378
9414
  shared_exclusions?: string[];
9379
9415
  };
9380
- mode?: GovernanceMode;
9381
9416
  ext?: ExtensionObject;
9382
9417
  }[];
9383
9418
  }
@@ -9696,7 +9731,10 @@ export interface GetPlanAuditLogsResponse {
9696
9731
  approved?: number;
9697
9732
  denied?: number;
9698
9733
  conditions?: number;
9699
- escalated?: number;
9734
+ /**
9735
+ * Supplementary count of checks that went through internal human review. These checks are also counted in approved or denied.
9736
+ */
9737
+ human_reviewed?: number;
9700
9738
  };
9701
9739
  /**
9702
9740
  * Total findings across all checks and outcomes.
@@ -9801,11 +9839,11 @@ export interface GetPlanAuditLogsResponse {
9801
9839
  /**
9802
9840
  * Governance check status (present for check entries).
9803
9841
  */
9804
- status?: 'approved' | 'denied' | 'conditions' | 'escalated';
9842
+ status?: 'approved' | 'denied' | 'conditions';
9805
9843
  /**
9806
- * Whether the check was proposed or committed (present for check entries).
9844
+ * Whether the check was an intent check (orchestrator) or execution check (seller). Inferred from the fields present on the original check request. Present for check entries.
9807
9845
  */
9808
- binding?: 'proposed' | 'committed';
9846
+ check_type?: 'intent' | 'execution';
9809
9847
  /**
9810
9848
  * Human-readable explanation of the governance decision (present for check entries).
9811
9849
  */
@@ -9870,7 +9908,7 @@ export interface GetPlanAuditLogsResponse {
9870
9908
  */
9871
9909
  export type GovernancePhase = 'purchase' | 'modification' | 'delivery';
9872
9910
  /**
9873
- * Universal governance check for campaign actions. Called by the orchestrator before sending to a seller (proposed) or by the seller before executing (committed). The governance agent evaluates the action against the campaign plan and returns a status.
9911
+ * Universal governance check for campaign actions. The governance agent infers the check type from the fields present: tool+payload (intent check, orchestrator) or media_buy_id+planned_delivery (execution check, seller).
9874
9912
  */
9875
9913
  export interface CheckGovernanceRequest {
9876
9914
  /**
@@ -9878,19 +9916,15 @@ export interface CheckGovernanceRequest {
9878
9916
  */
9879
9917
  plan_id: string;
9880
9918
  /**
9881
- * Whether this is an advisory check or a binding commitment. 'proposed': the orchestrator is checking before sending to a seller — no budget is committed. 'committed': the seller is about to execute — the governance agent validates the planned delivery against the plan. Budget is committed later via report_plan_outcome, not on approval.
9882
- */
9883
- binding: 'proposed' | 'committed';
9884
- /**
9885
- * URL of the agent making the request (orchestrator for proposed, seller for committed).
9919
+ * URL of the agent making the request.
9886
9920
  */
9887
9921
  caller: string;
9888
9922
  /**
9889
- * The AdCP tool being checked (e.g., 'create_media_buy', 'get_products'). Expected for proposed checks. The governance agent uses this to apply tool-specific validation rules.
9923
+ * The AdCP tool being checked (e.g., 'create_media_buy', 'get_products'). Present on intent checks (orchestrator). The governance agent uses the presence of tool+payload to identify an intent check.
9890
9924
  */
9891
9925
  tool?: string;
9892
9926
  /**
9893
- * The full tool arguments as they would be sent to the seller. Expected for proposed checks. The governance agent can inspect any field to validate against the plan.
9927
+ * The full tool arguments as they would be sent to the seller. Present on intent checks. The governance agent can inspect any field to validate against the plan.
9894
9928
  */
9895
9929
  payload?: {};
9896
9930
  /**
@@ -9898,7 +9932,7 @@ export interface CheckGovernanceRequest {
9898
9932
  */
9899
9933
  governance_context?: string;
9900
9934
  /**
9901
- * The seller's identifier for the media buy. Expected for committed checks.
9935
+ * The seller's identifier for the media buy. Present on execution checks (seller). The governance agent uses the presence of media_buy_id+planned_delivery to identify an execution check.
9902
9936
  */
9903
9937
  media_buy_id?: string;
9904
9938
  phase?: GovernancePhase;
@@ -9987,13 +10021,9 @@ export interface CheckGovernanceResponse {
9987
10021
  */
9988
10022
  check_id: string;
9989
10023
  /**
9990
- * Governance decision. 'approved': proceed as planned. 'denied': do not proceed. 'conditions': approved if the caller accepts the listed conditions, then re-calls check_governance with the adjusted parameters. 'escalated': halted pending human review.
9991
- */
9992
- status: 'approved' | 'denied' | 'conditions' | 'escalated';
9993
- /**
9994
- * Echoed from request. Lets the caller confirm the governance agent understood the commitment level.
10024
+ * Governance decision. 'approved': proceed as planned. 'denied': do not proceed. 'conditions': approved if the caller accepts the listed conditions, then re-calls check_governance with the adjusted parameters.
9995
10025
  */
9996
- binding: 'proposed' | 'committed';
10026
+ status: 'approved' | 'denied' | 'conditions';
9997
10027
  /**
9998
10028
  * Echoed from request.
9999
10029
  */
@@ -10002,9 +10032,8 @@ export interface CheckGovernanceResponse {
10002
10032
  * Human-readable explanation of the governance decision.
10003
10033
  */
10004
10034
  explanation: string;
10005
- mode?: GovernanceMode;
10006
10035
  /**
10007
- * Specific issues found during the governance check. Present when status is 'denied', 'conditions', or 'escalated'. MAY also be present on 'approved' for advisory findings (e.g., budget approaching limit).
10036
+ * Specific issues found during the governance check. Present when status is 'denied' or 'conditions'. MAY also be present on 'approved' for informational findings (e.g., budget approaching limit).
10008
10037
  */
10009
10038
  findings?: {
10010
10039
  /**
@@ -10052,24 +10081,6 @@ export interface CheckGovernanceResponse {
10052
10081
  */
10053
10082
  reason: string;
10054
10083
  }[];
10055
- /**
10056
- * Present when status is 'escalated'. The action is halted pending human review.
10057
- */
10058
- escalation?: {
10059
- /**
10060
- * Human-readable explanation of why the action was escalated.
10061
- */
10062
- reason: string;
10063
- severity: EscalationSeverity;
10064
- /**
10065
- * Whether human approval is required before proceeding.
10066
- */
10067
- requires_human: boolean;
10068
- /**
10069
- * Organizational role or tier required to resolve this escalation. The value is organization-defined; the governance agent infers the tier from the escalation context. Common values include 'manager', 'director', 'legal', 'cfo'. Enables programmatic routing of escalations to the right person.
10070
- */
10071
- approval_tier?: string;
10072
- };
10073
10084
  /**
10074
10085
  * When this approval expires. Present when status is 'approved' or 'conditions'. The caller must act before this time or re-call check_governance. A lapsed approval is no approval.
10075
10086
  */
@@ -10791,7 +10802,20 @@ export interface GetAdCPCapabilitiesResponse {
10791
10802
  */
10792
10803
  execution?: {
10793
10804
  /**
10794
- * Agentic ad exchange (AXE) integrations supported. URLs are canonical identifiers for exchanges this seller can execute through.
10805
+ * Trusted Match Protocol (TMP) support. When present, this seller supports real-time contextual and/or identity matching. Check individual products via get_products for per-product TMP capabilities.
10806
+ */
10807
+ trusted_match?: {
10808
+ /**
10809
+ * Whether this seller has TMP infrastructure deployed.
10810
+ */
10811
+ supported?: boolean;
10812
+ /**
10813
+ * Surface types this seller supports via TMP.
10814
+ */
10815
+ surfaces?: ('website' | 'mobile_app' | 'ctv_app' | 'desktop_app' | 'dooh' | 'podcast' | 'radio' | 'streaming_audio' | 'ai_assistant')[];
10816
+ };
10817
+ /**
10818
+ * Deprecated. Legacy AXE integrations. Use trusted_match for new integrations.
10795
10819
  */
10796
10820
  axe_integrations?: string[];
10797
10821
  /**
@@ -11038,6 +11062,23 @@ export interface GetAdCPCapabilitiesResponse {
11038
11062
  post_view?: Duration[];
11039
11063
  }[];
11040
11064
  };
11065
+ /**
11066
+ * Content standards implementation details. Only meaningful when features.content_standards is true. Gives buyers pre-buy visibility into local evaluation and artifact delivery capabilities.
11067
+ */
11068
+ content_standards_detail?: {
11069
+ /**
11070
+ * Whether the seller runs a local evaluation model. When false, all artifacts will have local_verdict: 'unevaluated' and the failures_only filter on get_media_buy_artifacts is not useful.
11071
+ */
11072
+ supports_local_evaluation?: boolean;
11073
+ /**
11074
+ * Channels for which the seller can provide content artifacts. Helps buyers understand which parts of a mixed-channel buy will have content standards coverage.
11075
+ */
11076
+ supported_channels?: MediaChannel[];
11077
+ /**
11078
+ * Whether the seller supports push-based artifact delivery via artifact_webhook configured at buy creation time.
11079
+ */
11080
+ supports_webhook_delivery?: boolean;
11081
+ };
11041
11082
  /**
11042
11083
  * Information about the seller's media inventory portfolio
11043
11084
  */