@adcp/sdk 6.8.0 → 6.9.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.
- package/ADCP_VERSION +1 -1
- package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/inventory_list_targeting.yaml +5 -0
- package/compliance/cache/{3.0.5 → 3.0.6}/index.json +2 -2
- package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +5 -0
- package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-guaranteed/index.yaml +1 -1
- package/compliance/cache/{3.0.5 → 3.0.6}/universal/storyboard-schema.yaml +15 -0
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/AgentClient.js +20 -0
- package/dist/lib/core/AgentClient.js.map +1 -1
- package/dist/lib/mock-server/creative-template/seed-data.d.ts +1 -1
- package/dist/lib/mock-server/creative-template/seed-data.d.ts.map +1 -1
- package/dist/lib/mock-server/creative-template/seed-data.js +53 -0
- package/dist/lib/mock-server/creative-template/seed-data.js.map +1 -1
- package/dist/lib/mock-server/creative-template/server.d.ts.map +1 -1
- package/dist/lib/mock-server/creative-template/server.js +12 -0
- package/dist/lib/mock-server/creative-template/server.js.map +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/bound-value.json +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/component.json +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/si-catalog.json +25 -25
- package/dist/lib/schemas-data/3.0/a2ui/surface.json +2 -2
- package/dist/lib/schemas-data/3.0/a2ui/user-action.json +1 -1
- package/dist/lib/schemas-data/3.0/account/get-account-financials-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/get-account-financials-response.json +10 -10
- package/dist/lib/schemas-data/3.0/account/list-accounts-request.json +4 -4
- package/dist/lib/schemas-data/3.0/account/list-accounts-response.json +6 -6
- package/dist/lib/schemas-data/3.0/account/report-usage-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/report-usage-response.json +4 -4
- package/dist/lib/schemas-data/3.0/account/sync-accounts-request.json +9 -9
- package/dist/lib/schemas-data/3.0/account/sync-accounts-response.json +12 -12
- package/dist/lib/schemas-data/3.0/account/sync-governance-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/sync-governance-response.json +8 -8
- package/dist/lib/schemas-data/3.0/adagents.json +32 -32
- package/dist/lib/schemas-data/3.0/brand/acquire-rights-request.json +8 -8
- package/dist/lib/schemas-data/3.0/brand/acquire-rights-response.json +14 -14
- package/dist/lib/schemas-data/3.0/brand/creative-approval-request.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/creative-approval-response.json +10 -10
- package/dist/lib/schemas-data/3.0/brand/get-brand-identity-request.json +3 -3
- package/dist/lib/schemas-data/3.0/brand/get-brand-identity-response.json +8 -8
- package/dist/lib/schemas-data/3.0/brand/get-rights-request.json +7 -7
- package/dist/lib/schemas-data/3.0/brand/get-rights-response.json +9 -9
- package/dist/lib/schemas-data/3.0/brand/revocation-notification.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/rights-pricing-option.json +5 -5
- package/dist/lib/schemas-data/3.0/brand/rights-terms.json +3 -3
- package/dist/lib/schemas-data/3.0/brand/update-rights-request.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/update-rights-response.json +9 -9
- package/dist/lib/schemas-data/3.0/brand.json +14 -14
- package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/package-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-response.json +2 -2
- package/dist/lib/schemas-data/3.0/collection/base-collection-source.json +3 -3
- package/dist/lib/schemas-data/3.0/collection/collection-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.0/collection/collection-list-filters.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/collection-list.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/create-collection-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/create-collection-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/delete-collection-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/delete-collection-list-response.json +3 -3
- package/dist/lib/schemas-data/3.0/collection/get-collection-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/get-collection-list-response.json +10 -10
- package/dist/lib/schemas-data/3.0/collection/list-collection-lists-request.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/list-collection-lists-response.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/update-collection-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/update-collection-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/artifact-webhook-payload.json +3 -3
- package/dist/lib/schemas-data/3.0/content-standards/artifact.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/content-standards.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-request.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-response.json +6 -6
- package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-request.json +3 -3
- package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-response.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-request.json +5 -5
- package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-request.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-response.json +6 -6
- package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-response.json +8 -8
- package/dist/lib/schemas-data/3.0/core/account-ref.json +2 -2
- package/dist/lib/schemas-data/3.0/core/account.json +9 -9
- package/dist/lib/schemas-data/3.0/core/activation-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/ad-inventory-config.json +1 -1
- package/dist/lib/schemas-data/3.0/core/agent-encryption-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/agent-signing-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/app-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/asset-union.json +15 -15
- package/dist/lib/schemas-data/3.0/core/assets/audio-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/brief-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/catalog-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/css-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/daast-asset.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/html-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/image-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/javascript-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/markdown-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/text-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/url-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/vast-asset.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/video-asset.json +7 -7
- package/dist/lib/schemas-data/3.0/core/assets/webhook-asset.json +7 -7
- package/dist/lib/schemas-data/3.0/core/async-response-data.json +25 -25
- package/dist/lib/schemas-data/3.0/core/attribution-window.json +4 -4
- package/dist/lib/schemas-data/3.0/core/audience-member.json +3 -3
- package/dist/lib/schemas-data/3.0/core/audience-selector.json +4 -4
- package/dist/lib/schemas-data/3.0/core/brand-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/brand-ref.json +2 -2
- package/dist/lib/schemas-data/3.0/core/business-entity.json +2 -2
- package/dist/lib/schemas-data/3.0/core/cancellation-policy.json +2 -2
- package/dist/lib/schemas-data/3.0/core/catalog-field-mapping.json +2 -2
- package/dist/lib/schemas-data/3.0/core/catalog.json +7 -7
- package/dist/lib/schemas-data/3.0/core/catchment.json +5 -5
- package/dist/lib/schemas-data/3.0/core/collection-distribution.json +2 -2
- package/dist/lib/schemas-data/3.0/core/collection-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/collection-selector.json +1 -1
- package/dist/lib/schemas-data/3.0/core/collection.json +13 -13
- package/dist/lib/schemas-data/3.0/core/content-rating.json +2 -2
- package/dist/lib/schemas-data/3.0/core/context.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-asset.json +6 -6
- package/dist/lib/schemas-data/3.0/core/creative-assignment.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-brief.json +4 -4
- package/dist/lib/schemas-data/3.0/core/creative-consumption.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-filters.json +4 -4
- package/dist/lib/schemas-data/3.0/core/creative-item.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-manifest.json +7 -7
- package/dist/lib/schemas-data/3.0/core/creative-policy.json +3 -3
- package/dist/lib/schemas-data/3.0/core/creative-variable.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-variant.json +5 -5
- package/dist/lib/schemas-data/3.0/core/data-provider-signal-selector.json +1 -1
- package/dist/lib/schemas-data/3.0/core/date-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/datetime-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/daypart-target.json +2 -2
- package/dist/lib/schemas-data/3.0/core/deadline-policy.json +1 -1
- package/dist/lib/schemas-data/3.0/core/delivery-forecast.json +7 -7
- package/dist/lib/schemas-data/3.0/core/delivery-metrics.json +5 -5
- package/dist/lib/schemas-data/3.0/core/deployment.json +3 -3
- package/dist/lib/schemas-data/3.0/core/destination-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/destination.json +1 -1
- package/dist/lib/schemas-data/3.0/core/diagnostic-issue.json +1 -1
- package/dist/lib/schemas-data/3.0/core/duration.json +1 -1
- package/dist/lib/schemas-data/3.0/core/education-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/error.json +1 -1
- package/dist/lib/schemas-data/3.0/core/event-custom-data.json +2 -2
- package/dist/lib/schemas-data/3.0/core/event-source-health.json +3 -3
- package/dist/lib/schemas-data/3.0/core/event.json +6 -6
- package/dist/lib/schemas-data/3.0/core/ext.json +1 -1
- package/dist/lib/schemas-data/3.0/core/feature-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/core/flight-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/forecast-point.json +18 -18
- package/dist/lib/schemas-data/3.0/core/forecast-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/format-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/format.json +42 -42
- package/dist/lib/schemas-data/3.0/core/frequency-cap.json +4 -4
- package/dist/lib/schemas-data/3.0/core/generation-credential.json +3 -3
- package/dist/lib/schemas-data/3.0/core/geo-breakdown-support.json +3 -3
- package/dist/lib/schemas-data/3.0/core/hotel-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/identifier.json +2 -2
- package/dist/lib/schemas-data/3.0/core/industry-identifier.json +2 -2
- package/dist/lib/schemas-data/3.0/core/insertion-order.json +1 -1
- package/dist/lib/schemas-data/3.0/core/installment-deadlines.json +2 -2
- package/dist/lib/schemas-data/3.0/core/installment.json +9 -9
- package/dist/lib/schemas-data/3.0/core/job-item.json +3 -3
- package/dist/lib/schemas-data/3.0/core/limited-series.json +1 -1
- package/dist/lib/schemas-data/3.0/core/material-deadline.json +1 -1
- package/dist/lib/schemas-data/3.0/core/mcp-webhook-payload.json +5 -5
- package/dist/lib/schemas-data/3.0/core/measurement-readiness.json +5 -5
- package/dist/lib/schemas-data/3.0/core/measurement-terms.json +3 -3
- package/dist/lib/schemas-data/3.0/core/measurement-window.json +1 -1
- package/dist/lib/schemas-data/3.0/core/media-buy-features.json +1 -1
- package/dist/lib/schemas-data/3.0/core/media-buy.json +7 -7
- package/dist/lib/schemas-data/3.0/core/offering-asset-group.json +15 -15
- package/dist/lib/schemas-data/3.0/core/offering.json +5 -5
- package/dist/lib/schemas-data/3.0/core/optimization-goal.json +6 -6
- package/dist/lib/schemas-data/3.0/core/outcome-measurement.json +2 -2
- package/dist/lib/schemas-data/3.0/core/overlay.json +1 -1
- package/dist/lib/schemas-data/3.0/core/package.json +14 -14
- package/dist/lib/schemas-data/3.0/core/pagination-request.json +1 -1
- package/dist/lib/schemas-data/3.0/core/pagination-response.json +1 -1
- package/dist/lib/schemas-data/3.0/core/performance-feedback.json +3 -3
- package/dist/lib/schemas-data/3.0/core/performance-standard.json +4 -4
- package/dist/lib/schemas-data/3.0/core/placement-definition.json +5 -5
- package/dist/lib/schemas-data/3.0/core/placement.json +2 -2
- package/dist/lib/schemas-data/3.0/core/planned-delivery.json +5 -5
- package/dist/lib/schemas-data/3.0/core/price.json +1 -1
- package/dist/lib/schemas-data/3.0/core/pricing-option.json +10 -10
- package/dist/lib/schemas-data/3.0/core/product-allocation.json +4 -4
- package/dist/lib/schemas-data/3.0/core/product-filters.json +16 -16
- package/dist/lib/schemas-data/3.0/core/product.json +28 -28
- package/dist/lib/schemas-data/3.0/core/property-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property-tag.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property.json +6 -6
- package/dist/lib/schemas-data/3.0/core/proposal.json +6 -6
- package/dist/lib/schemas-data/3.0/core/protocol-envelope.json +3 -3
- package/dist/lib/schemas-data/3.0/core/provenance.json +6 -6
- package/dist/lib/schemas-data/3.0/core/publisher-property-selector.json +3 -3
- package/dist/lib/schemas-data/3.0/core/push-notification-config.json +2 -2
- package/dist/lib/schemas-data/3.0/core/real-estate-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/reference-asset.json +1 -1
- package/dist/lib/schemas-data/3.0/core/reporting-capabilities.json +5 -5
- package/dist/lib/schemas-data/3.0/core/reporting-webhook.json +3 -3
- package/dist/lib/schemas-data/3.0/core/requirements/asset-requirements.json +13 -13
- package/dist/lib/schemas-data/3.0/core/requirements/audio-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/catalog-field-binding.json +4 -4
- package/dist/lib/schemas-data/3.0/core/requirements/catalog-requirements.json +5 -5
- package/dist/lib/schemas-data/3.0/core/requirements/css-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/daast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/html-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/image-asset-requirements.json +2 -2
- package/dist/lib/schemas-data/3.0/core/requirements/javascript-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/markdown-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/offering-asset-constraint.json +4 -4
- package/dist/lib/schemas-data/3.0/core/requirements/text-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/url-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/vast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/video-asset-requirements.json +6 -6
- package/dist/lib/schemas-data/3.0/core/requirements/webhook-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/response.json +1 -1
- package/dist/lib/schemas-data/3.0/core/rights-constraint.json +4 -4
- package/dist/lib/schemas-data/3.0/core/seller-agent-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/signal-definition.json +3 -3
- package/dist/lib/schemas-data/3.0/core/signal-filters.json +2 -2
- package/dist/lib/schemas-data/3.0/core/signal-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/signal-pricing-option.json +2 -2
- package/dist/lib/schemas-data/3.0/core/signal-pricing.json +6 -6
- package/dist/lib/schemas-data/3.0/core/signal-targeting.json +4 -4
- package/dist/lib/schemas-data/3.0/core/special.json +2 -2
- package/dist/lib/schemas-data/3.0/core/start-timing.json +1 -1
- package/dist/lib/schemas-data/3.0/core/store-item.json +3 -3
- package/dist/lib/schemas-data/3.0/core/talent.json +2 -2
- package/dist/lib/schemas-data/3.0/core/targeting.json +20 -20
- package/dist/lib/schemas-data/3.0/core/tasks-get-request.json +3 -3
- package/dist/lib/schemas-data/3.0/core/tasks-get-response.json +7 -7
- package/dist/lib/schemas-data/3.0/core/tasks-list-request.json +11 -11
- package/dist/lib/schemas-data/3.0/core/tasks-list-response.json +6 -6
- package/dist/lib/schemas-data/3.0/core/user-match.json +3 -3
- package/dist/lib/schemas-data/3.0/core/vehicle-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/vendor-pricing-option.json +2 -2
- package/dist/lib/schemas-data/3.0/core/x-entity-types.json +1 -1
- package/dist/lib/schemas-data/3.0/creative/asset-types/index.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/creative-feature-result.json +2 -2
- package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-request.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-response.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/get-creative-features-request.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/get-creative-features-response.json +8 -8
- package/dist/lib/schemas-data/3.0/creative/list-creative-formats-request.json +11 -11
- package/dist/lib/schemas-data/3.0/creative/list-creative-formats-response.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/list-creatives-request.json +8 -8
- package/dist/lib/schemas-data/3.0/creative/list-creatives-response.json +14 -14
- package/dist/lib/schemas-data/3.0/creative/preview-creative-request.json +11 -11
- package/dist/lib/schemas-data/3.0/creative/preview-creative-response.json +12 -12
- package/dist/lib/schemas-data/3.0/creative/preview-render.json +1 -1
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-request.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-response.json +13 -13
- package/dist/lib/schemas-data/3.0/enums/account-scope.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/account-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/action-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/adcp-protocol.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/adjustment-kind.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/advertiser-industry.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/age-verification-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/assessment-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/asset-content-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/attribution-model.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audience-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audience-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audio-channel-layout.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/auth-scheme.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/available-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/billing-party.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/binary-verdict.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/brand-agent-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/canceled-by.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-item-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/channels.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/cloud-storage-protocol.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/co-branding-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-cadence.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-kind.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-relationship.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/consent-basis.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/content-id-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/content-rating-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-agent-capability.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-approval-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-quality.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-sort-field.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/daast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/daast-version.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/day-of-week.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/delegation-authority.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/delivery-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/demographic-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/derivative-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/device-platform.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/device-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/digital-source-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/dimension-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/disclosure-persistence.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/disclosure-position.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/distance-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/distribution-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/error-code.json +3 -3
- package/dist/lib/schemas-data/3.0/enums/escalation-severity.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/event-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/exclusivity.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feature-check-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feed-format.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feedback-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecast-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecast-range-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecastable-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/format-id-parameter.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/frame-rate-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/frequency-cap-scope.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/genre-taxonomy.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/geo-level.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/gop-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-decision.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-domain.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-phase.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/history-entry-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/http-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/installment-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/javascript-module-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/landing-page-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/makegood-remedy.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/markdown-flavor.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/match-id-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/match-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/media-buy-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/media-buy-valid-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/metric-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/metro-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/moov-atom-position.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/notification-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/outcome-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/pacing.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/payment-terms.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/performance-standard-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/policy-category.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/policy-enforcement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/postal-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/preview-output-format.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/pricing-model.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/production-quality.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/property-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/proposal-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/publisher-identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/purchase-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/reach-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/reporting-frequency.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/response-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/restricted-attribute.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/right-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/right-use.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/rights-billing-period.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/scan-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/si-session-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-value-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/snapshot-unavailable-reason.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/sort-direction.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/sort-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/special-category.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/specialism.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/talent-role.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/task-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/task-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/transport-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/travel-time-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/uid-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/universal-macro.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/update-frequency.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/url-asset-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/validation-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/vast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/vast-version.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/viewability-standard.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/wcag-level.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/webhook-response-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/webhook-security-method.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/account-setup-required.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/audience-too-small.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/budget-too-low.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/conflict.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/creative-rejected.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/policy-violation.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/rate-limited.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/vendor-error-codes.json +1 -1
- package/dist/lib/schemas-data/3.0/extensions/extension-meta.json +1 -1
- package/dist/lib/schemas-data/3.0/extensions/index.json +2 -2
- package/dist/lib/schemas-data/3.0/governance/attribute-definition.json +1 -1
- package/dist/lib/schemas-data/3.0/governance/audience-constraints.json +3 -3
- package/dist/lib/schemas-data/3.0/governance/check-governance-request.json +7 -7
- package/dist/lib/schemas-data/3.0/governance/check-governance-response.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-request.json +4 -4
- package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-response.json +9 -9
- package/dist/lib/schemas-data/3.0/governance/policy-category-definition.json +2 -2
- package/dist/lib/schemas-data/3.0/governance/policy-entry.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/policy-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-request.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-response.json +4 -4
- package/dist/lib/schemas-data/3.0/governance/sync-plans-request.json +13 -13
- package/dist/lib/schemas-data/3.0/governance/sync-plans-response.json +4 -4
- package/dist/lib/schemas-data/3.0/index.json +364 -364
- package/dist/lib/schemas-data/3.0/manifest.json +5 -5
- package/dist/lib/schemas-data/3.0/manifest.schema.json +1 -1
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-response.json +17 -17
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-request.json +12 -12
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-response.json +15 -15
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-request.json +17 -17
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-response.json +24 -24
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-response.json +19 -19
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/get-products-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/get-products-response.json +8 -8
- package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-response.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/log-event-request.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/log-event-response.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/package-request.json +12 -12
- package/dist/lib/schemas-data/3.0/media-buy/package-update.json +13 -13
- package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-request.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-response.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-response.json +9 -9
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-response.json +9 -9
- package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-request.json +5 -5
- package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-response.json +10 -10
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-request.json +10 -10
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-response.json +10 -10
- package/dist/lib/schemas-data/3.0/pricing-options/cpa-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpc-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpcv-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpm-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpp-option.json +5 -5
- package/dist/lib/schemas-data/3.0/pricing-options/cpv-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/flat-rate-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/price-breakdown.json +2 -2
- package/dist/lib/schemas-data/3.0/pricing-options/price-guidance.json +1 -1
- package/dist/lib/schemas-data/3.0/pricing-options/time-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/vcpm-option.json +4 -4
- package/dist/lib/schemas-data/3.0/property/authorization-result.json +1 -1
- package/dist/lib/schemas-data/3.0/property/base-property-source.json +4 -4
- package/dist/lib/schemas-data/3.0/property/create-property-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/property/create-property-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/delete-property-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/property/delete-property-list-response.json +3 -3
- package/dist/lib/schemas-data/3.0/property/delivery-record.json +3 -3
- package/dist/lib/schemas-data/3.0/property/get-property-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/property/get-property-list-response.json +7 -7
- package/dist/lib/schemas-data/3.0/property/list-property-lists-request.json +5 -5
- package/dist/lib/schemas-data/3.0/property/list-property-lists-response.json +5 -5
- package/dist/lib/schemas-data/3.0/property/property-error.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature-definition.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature-result.json +4 -4
- package/dist/lib/schemas-data/3.0/property/property-feature-value.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature.json +1 -1
- package/dist/lib/schemas-data/3.0/property/property-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-list-filters.json +5 -5
- package/dist/lib/schemas-data/3.0/property/property-list.json +6 -6
- package/dist/lib/schemas-data/3.0/property/update-property-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/property/update-property-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/validate-property-delivery-request.json +5 -5
- package/dist/lib/schemas-data/3.0/property/validate-property-delivery-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/validation-result.json +5 -5
- package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-request.json +3 -3
- package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-response.json +25 -25
- package/dist/lib/schemas-data/3.0/signals/activate-signal-request.json +5 -5
- package/dist/lib/schemas-data/3.0/signals/activate-signal-response.json +7 -7
- package/dist/lib/schemas-data/3.0/signals/get-signals-request.json +8 -8
- package/dist/lib/schemas-data/3.0/signals/get-signals-response.json +10 -10
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-capabilities.json +1 -1
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-response.json +4 -4
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-identity.json +1 -1
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-request.json +5 -5
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-response.json +7 -7
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-response.json +7 -7
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-response.json +5 -5
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-ui-element.json +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/decisioning/account.d.ts +14 -0
- package/dist/lib/server/decisioning/account.d.ts.map +1 -1
- package/dist/lib/server/decisioning/account.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +36 -11
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/index.d.ts +1 -0
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +7 -1
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/socket-mode/conformance-client.d.ts +83 -0
- package/dist/lib/server/socket-mode/conformance-client.d.ts.map +1 -0
- package/dist/lib/server/socket-mode/conformance-client.js +117 -0
- package/dist/lib/server/socket-mode/conformance-client.js.map +1 -0
- package/dist/lib/server/socket-mode/index.d.ts +15 -0
- package/dist/lib/server/socket-mode/index.d.ts.map +1 -0
- package/dist/lib/server/socket-mode/index.js +20 -0
- package/dist/lib/server/socket-mode/index.js.map +1 -0
- package/dist/lib/server/socket-mode/ws-transport.d.ts +26 -0
- package/dist/lib/server/socket-mode/ws-transport.d.ts.map +1 -0
- package/dist/lib/server/socket-mode/ws-transport.js +93 -0
- package/dist/lib/server/socket-mode/ws-transport.js.map +1 -0
- package/dist/lib/testing/comply-controller.d.ts +42 -1
- package/dist/lib/testing/comply-controller.d.ts.map +1 -1
- package/dist/lib/testing/comply-controller.js +13 -1
- package/dist/lib/testing/comply-controller.js.map +1 -1
- package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/request-builder.js +63 -40
- package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
- package/dist/lib/types/core.generated.d.ts +54 -14
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +2 -2
- package/dist/lib/types/error-codes.d.ts +2 -2
- package/dist/lib/types/index.d.ts +1 -1
- package/dist/lib/types/index.d.ts.map +1 -1
- package/dist/lib/types/index.js.map +1 -1
- package/dist/lib/types/manifest.generated.d.ts +5 -5
- package/dist/lib/types/manifest.generated.js +3 -3
- package/dist/lib/types/manifest.generated.js.map +1 -1
- package/dist/lib/types/schemas.generated.d.ts +465 -381
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +171 -143
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +42 -14
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/version.d.ts +7 -7
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +6 -5
- package/dist/lib/version.js.map +1 -1
- package/docs/llms.txt +4 -3
- package/examples/hello_creative_adapter_ad_server.ts +22 -3
- package/examples/hello_creative_adapter_template.ts +61 -6
- package/examples/hello_seller_adapter_guaranteed.ts +85 -10
- package/examples/hello_seller_adapter_multi_tenant.ts +39 -5
- package/examples/hello_seller_adapter_non_guaranteed.ts +54 -3
- package/examples/hello_seller_adapter_social.ts +1 -1
- package/examples/hello_signals_adapter_marketplace.ts +34 -29
- package/package.json +5 -4
- package/skills/SHAPE-GOTCHAS.md +18 -0
- package/skills/build-brand-rights-agent/SKILL.md +61 -597
- package/skills/build-creative-agent/SKILL.md +69 -750
- package/skills/build-generative-seller-agent/SKILL.md +43 -583
- package/skills/build-governance-agent/SKILL.md +63 -959
- package/skills/build-holdco-agent/SKILL.md +8 -0
- package/skills/build-retail-media-agent/SKILL.md +46 -480
- package/skills/build-seller-agent/SKILL.md +53 -1797
- package/skills/build-si-agent/SKILL.md +50 -368
- package/skills/build-signals-agent/SKILL.md +49 -539
- package/skills/cross-cutting.md +84 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/creative/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/creative-reception.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/state-machine.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/domains/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/creative/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/creative-reception.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/state-machine.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/audience-sync/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/brand-rights/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/collection-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/content-standards/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-ad-server/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-generative/generative-seller.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-generative/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-template/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-aware-seller/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-delivery-monitor/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-spend-authority/denied.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-spend-authority/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/property-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-broadcast-tv/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-catalog-driven/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-non-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-proposal-mode/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-social/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-marketplace/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-owned/index.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/acme-outdoor.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/bistro-oranje.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/nova-motors.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/osei-natural.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/signed-requests-runner.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/substitution-observer-runner.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/summit-foods.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/webhook-receiver-runner.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/002-full-plan.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/README.md +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/canonicalization.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/README.md +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/capability-discovery.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/collection-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/content-standards-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/deterministic-testing.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/error-compliance.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/fictional-entities.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/get-media-buys-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/get-signals-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/idempotency.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity-creative-formats.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity-list-accounts.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/property-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/runner-output-contract.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/schema-validation.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/security.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/signed-requests.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/v3-envelope-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.5 → 3.0.6}/universal/webhook-emission.yaml +0 -0
|
@@ -5,617 +5,77 @@ description: Use when building an AdCP generative seller — an AI ad network, g
|
|
|
5
5
|
|
|
6
6
|
# Build a Generative Seller Agent
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
A generative seller does everything a standard seller does (products, media buys, delivery) plus generates creatives from briefs. The buyer sends a creative brief instead of uploading pre-built assets. Your platform resolves the brand identity, generates the creative, and serves it.
|
|
8
|
+
A generative seller does everything a standard seller does (products, media buys, delivery) **plus** generates creatives from briefs. The buyer sends a creative brief instead of uploading pre-built assets. Your platform resolves the brand identity, generates the creative, and serves it.
|
|
11
9
|
|
|
12
10
|
A generative seller that sells programmatic inventory MUST also accept standard IAB formats (display images, VAST tags, HTML banners). The generative capability is additive — buyers who already have creatives need to upload them directly.
|
|
13
11
|
|
|
14
|
-
##
|
|
15
|
-
|
|
16
|
-
- User wants to build a generative DSP or AI ad network
|
|
17
|
-
- User's platform both sells inventory and creates/generates creatives
|
|
18
|
-
- User mentions "creative from brief", "AI-generated ads", or "generative"
|
|
19
|
-
|
|
20
|
-
**Not this skill:**
|
|
21
|
-
|
|
22
|
-
- Standard seller (no creative generation) → `skills/build-seller-agent/`
|
|
23
|
-
- Standalone creative agent (renders but doesn't sell) → creative agent
|
|
24
|
-
- Signals/audience data → `skills/build-signals-agent/`
|
|
25
|
-
|
|
26
|
-
**Often claimed alongside:** [`creative-template`](../build-creative-agent/SKILL.md) — hybrid creative platforms (Celtra, Bannerflow) claim both; template-driven and AI-driven generation share the same creative library. See [Common multi-specialism bundles](../../examples/README.md#common-multi-specialism-bundles).
|
|
27
|
-
|
|
28
|
-
## Specialisms This Skill Covers
|
|
29
|
-
|
|
30
|
-
A generative seller inherits every sales specialism it supports (usually `sales-non-guaranteed`, optionally `sales-catalog-driven`) **plus** `creative-generative`. Declare all three in your `get_adcp_capabilities` response so buyers can filter correctly.
|
|
31
|
-
|
|
32
|
-
| Specialism | Status | Delta |
|
|
33
|
-
| ---------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
34
|
-
| `creative-generative` | stable | Generate creatives from `message` + `brand.domain`; honor `quality: draft\|production`; support refinement. See the `build-creative-agent` skill's `§ creative-generative` section for the full `build_creative` contract. |
|
|
35
|
-
| `sales-non-guaranteed` | stable | Standard seller baseline with `bid_price` and `update_media_buy`. See `build-seller-agent` `§ sales-non-guaranteed`. |
|
|
36
|
-
| `sales-catalog-driven` | stable (optional) | If you ingest catalogs for dynamic creative generation, see `build-retail-media-agent`. |
|
|
37
|
-
|
|
38
|
-
## Protocol-Wide Requirements
|
|
39
|
-
|
|
40
|
-
Every production seller — generative or otherwise — must wire these regardless of specialism. See `skills/build-seller-agent/SKILL.md` for the full treatment; minimum viable pointers:
|
|
41
|
-
|
|
42
|
-
- **`idempotency_key`** on every mutating request (`create_media_buy`, `sync_creatives`, `build_creative`, `sync_catalogs`). Pass `createIdempotencyStore({ backend, ttlSeconds })` to `createAdcpServerFromPlatform(platform, { idempotency })` — framework handles replay.
|
|
43
|
-
- **Authentication** (`serve({ authenticate: verifyApiKey(...)/verifyBearer(...) })`). A non-authenticated agent fails the `security_baseline` universal storyboard.
|
|
44
|
-
- **Signature-header transparency**: even if you don't claim `signed-requests`, don't reject requests that carry `Signature-Input`/`Signature` headers.
|
|
45
|
-
|
|
46
|
-
## Before Writing Code
|
|
12
|
+
## Pick your fork target
|
|
47
13
|
|
|
48
|
-
|
|
14
|
+
There's no dedicated `hello_generative_seller_adapter_*.ts` yet — generative-seller is `sales-non-guaranteed` + `creative-generative`, so adopters fork the seller adapter and add the `build_creative` surface.
|
|
49
15
|
|
|
50
|
-
|
|
16
|
+
| Specialism | Status | Fork this | Add | Storyboard |
|
|
17
|
+
| --- | --- | --- | --- | --- |
|
|
18
|
+
| `creative-generative` | stable | [`hello_seller_adapter_non_guaranteed.ts`](../../examples/hello_seller_adapter_non_guaranteed.ts) | `creatives.buildCreative`, `creatives.previewCreative`, brand-resolution logic | `creative_generative` |
|
|
51
19
|
|
|
52
|
-
-
|
|
53
|
-
- **Generative DSP** — programmatic buying + AI creative generation
|
|
54
|
-
- **Retail media with creative** — retail inventory + dynamic ad generation from catalogs
|
|
20
|
+
Declare all your claims (`['sales-non-guaranteed', 'creative-generative']`, plus `'sales-catalog-driven'` if you ingest catalogs for dynamic creative) on `createAdcpServerFromPlatform`'s `capabilities.specialisms`. Missing the claim fails the grader with "No applicable tracks found" even if every tool works.
|
|
55
21
|
|
|
56
|
-
|
|
22
|
+
For exact response shapes, error codes, and optional fields, `docs/llms.txt` is the canonical reference.
|
|
57
23
|
|
|
58
|
-
|
|
24
|
+
## When to use this skill
|
|
59
25
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- **Display** — generated static images (300x250, 728x90, etc.)
|
|
65
|
-
- **Video** — generated video ads (15s, 30s pre-roll)
|
|
66
|
-
- **HTML** — generated interactive/rich media
|
|
67
|
-
|
|
68
|
-
Each generative format needs a brief asset slot. Standard formats need traditional asset slots (image, video, VAST).
|
|
69
|
-
|
|
70
|
-
### 4. What inputs does the brief accept?
|
|
71
|
-
|
|
72
|
-
At minimum: `name`, `objective`, `tone`, `messaging` (headline, cta, key_messages).
|
|
73
|
-
Optional: `audience`, `territory`, `compliance` (required_disclosures, prohibited_claims).
|
|
74
|
-
|
|
75
|
-
### 5. Brand resolution
|
|
76
|
-
|
|
77
|
-
The buyer's brand domain should be resolvable. If the brand domain is invalid, reject the creative — don't generate with unknown brand identity.
|
|
78
|
-
|
|
79
|
-
Brands should be registered dynamically through `sync_accounts` — when a buyer syncs an account with a `brand.domain`, treat that domain as resolvable. Do not hardcode a brand allowlist. Storyboards use fictional brand domains with the `.example` TLD (e.g., `acmeoutdoor.example`) from `storyboards/fictional-entities.yaml`, so a hardcoded list will fail validation.
|
|
80
|
-
|
|
81
|
-
## Tools and Required Response Shapes
|
|
82
|
-
|
|
83
|
-
> **Before writing any handler's return statement, fetch [`docs/llms.txt`](../../docs/llms.txt) and grep for `#### \`<tool_name>\``(e.g.`#### \`build_creative\``) to read the exact required + optional field list.** The schema-derived contract lives there; this skill covers patterns, gotchas, and domain-specific examples. Strict response validation is on by default in dev — it will tell you the exact field path if you drift, so write the obvious thing and trust the contract.
|
|
84
|
-
>
|
|
85
|
-
> **Cross-cutting pitfalls matrix runs keep catching:**
|
|
86
|
-
>
|
|
87
|
-
> - **Declare `capabilities.specialisms: ['creative-generative'] as const` on the `DecisioningPlatform` you pass to `createAdcpServerFromPlatform`.** The value is `string[]` of enum ids (not `[{id, version}]`). Agents that don't declare their specialism fail the grader with "No applicable tracks found" even if every tool works — tracks are gated on the specialism claim.
|
|
88
|
-
> - `build_creative` response is `{ creative_manifest: { format_id, assets } }` — NOT `{ creative_id, status, quality, preview_url }`. Those are `sync_creatives` fields; don't leak them in.
|
|
89
|
-
> - Each asset in `creative_manifest.assets` requires an `asset_type` discriminator — use the typed factories (`imageAsset({...})`, `videoAsset({...})`, `htmlAsset({...})`, `urlAsset({...})`) instead of writing the literal; discriminator is injected for you.
|
|
90
|
-
> - `preview_creative` renders have the same pattern: use `urlRender({...})` / `htmlRender({...})` / `bothRender({...})` — they inject `output_format` and enforce the matching `preview_url` / `preview_html` at the type level.
|
|
91
|
-
> - `get_media_buy_delivery` requires **top-level `currency: string`** (ISO 4217), and each `media_buy_deliveries[i]/by_package[j]` row requires `package_id`, `spend`, `pricing_model`, `rate`, `currency` (billing quintet).
|
|
92
|
-
> - `reporting_period/start` and `/end` are ISO 8601 **date-time** strings (`new Date().toISOString()`), not date-only — `'2026-04-21'` fails GA validation.
|
|
93
|
-
> - `videoAsset({...})` requires `width` + `height` in GA (previously optional). Omitting them fails validation at `/creative_manifest/assets/<name>/width` when the asset is constructed from video content.
|
|
94
|
-
> - `get_media_buys /media_buys[i]` rows require `media_buy_id`, `status`, `currency`, `total_budget`, `packages`. Persist `currency` + `total_budget` from the `create_media_buy` request so they can be echoed back verbatim.
|
|
95
|
-
> - `sync_accounts` response: each `accounts[]` row requires `action: 'created' | 'updated' | 'unchanged' | 'failed'` (same shape as `sync_creatives`). Omitting `action` fails schema validation and blocks every downstream stateful step.
|
|
96
|
-
|
|
97
|
-
Everything from the standard seller skill applies. The delta is in `list_creative_formats` and `sync_creatives`.
|
|
98
|
-
|
|
99
|
-
**`get_adcp_capabilities`** — auto-generated by `createAdcpServerFromPlatform` from the typed `DecisioningPlatform` you provide. Do not implement manually.
|
|
100
|
-
|
|
101
|
-
**`sync_accounts`** — `SyncAccountsRequestSchema.shape`
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
taskToolResponse({
|
|
105
|
-
accounts: [{
|
|
106
|
-
account_id: string,
|
|
107
|
-
brand: { domain: string },
|
|
108
|
-
operator: string,
|
|
109
|
-
action: 'created' | 'updated',
|
|
110
|
-
status: 'active' | 'pending_approval',
|
|
111
|
-
}]
|
|
112
|
-
})
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**`get_products`** — `GetProductsRequestSchema.shape`
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
productsResponse({
|
|
119
|
-
products: [{
|
|
120
|
-
product_id: 'prod-1',
|
|
121
|
-
name: 'AI Display Network',
|
|
122
|
-
description: 'AI-generated display ads across premium publishers',
|
|
123
|
-
publisher_properties: [{ publisher_domain: 'example.com', selection_type: 'all' }],
|
|
124
|
-
format_ids: [{ agent_url: 'https://your-agent.example/mcp', id: 'display_300x250_generative' }],
|
|
125
|
-
delivery_type: 'non_guaranteed',
|
|
126
|
-
pricing_options: [{
|
|
127
|
-
pricing_option_id: 'cpm-standard',
|
|
128
|
-
pricing_model: 'cpm',
|
|
129
|
-
fixed_price: 15.00,
|
|
130
|
-
currency: 'USD',
|
|
131
|
-
}],
|
|
132
|
-
reporting_capabilities: DEFAULT_REPORTING_CAPABILITIES, // from @adcp/sdk/server — stays in sync with schema
|
|
133
|
-
}],
|
|
134
|
-
sandbox: true,
|
|
135
|
-
})
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Import: `import { DEFAULT_REPORTING_CAPABILITIES } from '@adcp/sdk/server';`. Hand-rolling `reporting_capabilities: { ... }` on every product is the biggest source of schema-drift failures — the constant stays in sync with the spec.
|
|
139
|
-
|
|
140
|
-
**`create_media_buy`** — `CreateMediaBuyRequestSchema.shape`
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
// revision, confirmed_at, and valid_actions are auto-set:
|
|
144
|
-
mediaBuyResponse({
|
|
145
|
-
media_buy_id: string,
|
|
146
|
-
status: 'pending_creatives',
|
|
147
|
-
packages: [{ package_id, product_id, pricing_option_id, budget }],
|
|
148
|
-
})
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
**`list_creative_formats`** — `ListCreativeFormatsRequestSchema.shape`
|
|
152
|
-
|
|
153
|
-
Return BOTH generative and standard formats:
|
|
154
|
-
|
|
155
|
-
```
|
|
156
|
-
listCreativeFormatsResponse({
|
|
157
|
-
formats: [
|
|
158
|
-
// Generative format — accepts brief input
|
|
159
|
-
{
|
|
160
|
-
format_id: { agent_url: string, id: 'display_300x250_generative' },
|
|
161
|
-
name: 'Generated Display 300x250',
|
|
162
|
-
description: 'AI-generated display ad from creative brief',
|
|
163
|
-
renders: [{ role: 'primary', dimensions: { width: 300, height: 250 } }], // role + dimensions (oneOf)
|
|
164
|
-
assets: [{
|
|
165
|
-
item_type: 'individual',
|
|
166
|
-
asset_id: 'brief',
|
|
167
|
-
asset_type: 'brief',
|
|
168
|
-
required: true,
|
|
169
|
-
description: 'Creative brief with messaging and brand guidelines',
|
|
170
|
-
}],
|
|
171
|
-
},
|
|
172
|
-
// Standard format — accepts pre-built assets
|
|
173
|
-
{
|
|
174
|
-
format_id: { agent_url: string, id: 'display_300x250' },
|
|
175
|
-
name: 'Display 300x250',
|
|
176
|
-
description: 'Standard IAB display banner',
|
|
177
|
-
renders: [{ role: 'primary', dimensions: { width: 300, height: 250 } }], // role + dimensions (oneOf)
|
|
178
|
-
assets: [{
|
|
179
|
-
item_type: 'individual',
|
|
180
|
-
asset_id: 'image',
|
|
181
|
-
asset_type: 'image',
|
|
182
|
-
required: true,
|
|
183
|
-
accepted_media_types: ['image/jpeg', 'image/png'],
|
|
184
|
-
}],
|
|
185
|
-
},
|
|
186
|
-
],
|
|
187
|
-
})
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
#### Format requirements as generation constraints
|
|
191
|
-
|
|
192
|
-
Generative sellers consume `requirements` as the input spec the generator must satisfy. When you declare a format, its requirements are the contract for what your generator will produce — so the field names and units have to match the spec exactly or downstream validators will reject what you generate even when the bytes are correct.
|
|
193
|
-
|
|
194
|
-
Four constraints that recur on every generative format declaration:
|
|
195
|
-
|
|
196
|
-
1. **Image** uses `formats: ('jpg' | 'png' | 'gif' | 'webp' | 'svg' | 'avif' | 'tiff' | 'pdf' | 'eps')[]` — not `file_types`. Image `aspect_ratio` matches `^\d+(\.\d+)?:\d+(\.\d+)?$` (decimals allowed, e.g. `1.91:1`), single-valued.
|
|
197
|
-
2. **Video** uses `containers: ('mp4' | 'webm' | 'mov' | 'avi' | 'mkv')[]` — not `file_types`. Video `aspect_ratio` is integer-only `^\d+:\d+$`. Durations are `min_duration_ms` / `max_duration_ms`.
|
|
198
|
-
3. **Audio** uses `formats: ('mp3' | 'aac' | 'wav' | 'ogg' | 'flac')[]`. Durations are `min_duration_ms` / `max_duration_ms`.
|
|
199
|
-
4. **`min_count` / `max_count`** live on the `repeatable_group` wrapper for formats that generate multiple items (carousel packs, product collections). Never on an individual asset.
|
|
200
|
-
|
|
201
|
-
Use the typed slot builders to declare format slots — the `requirements` object is strictly typed per `asset_type`, so misnamed fields and wrong units fail at compile time:
|
|
202
|
-
|
|
203
|
-
```typescript
|
|
204
|
-
import {
|
|
205
|
-
briefAssetSlot,
|
|
206
|
-
imageAssetSlot,
|
|
207
|
-
videoAssetSlot,
|
|
208
|
-
repeatableGroup,
|
|
209
|
-
imageGroupAsset,
|
|
210
|
-
textGroupAsset,
|
|
211
|
-
} from '@adcp/sdk';
|
|
212
|
-
|
|
213
|
-
// Generative display format — brief in, spec-compliant image out
|
|
214
|
-
{
|
|
215
|
-
format_id: { agent_url, id: 'display_300x250_generative' },
|
|
216
|
-
name: 'Generated Display 300x250',
|
|
217
|
-
renders: [{ role: 'primary', dimensions: { width: 300, height: 250 } }],
|
|
218
|
-
assets: [
|
|
219
|
-
briefAssetSlot({ asset_id: 'brief', required: true }),
|
|
220
|
-
],
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
// Generative carousel pack — generator produces 3–6 image+headline cards
|
|
224
|
-
{
|
|
225
|
-
format_id: { agent_url, id: 'carousel_generative' },
|
|
226
|
-
name: 'Generated Product Carousel',
|
|
227
|
-
renders: [{ role: 'primary', dimensions: { width: 1080, height: 1080 } }],
|
|
228
|
-
assets: [
|
|
229
|
-
briefAssetSlot({ asset_id: 'brief', required: true }),
|
|
230
|
-
repeatableGroup({
|
|
231
|
-
asset_group_id: 'cards',
|
|
232
|
-
required: true,
|
|
233
|
-
min_count: 3,
|
|
234
|
-
max_count: 6,
|
|
235
|
-
selection_mode: 'sequential',
|
|
236
|
-
assets: [
|
|
237
|
-
imageGroupAsset({ asset_id: 'card_image', required: true, requirements: { aspect_ratio: '1:1', formats: ['jpg', 'png'] } }),
|
|
238
|
-
textGroupAsset({ asset_id: 'card_headline', required: true, requirements: { max_length: 40 } }),
|
|
239
|
-
],
|
|
240
|
-
}),
|
|
241
|
-
],
|
|
242
|
-
}
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
Reading requirements on the generation path — discriminate by `asset_type` to narrow to the correct requirements shape, then feed it to the generator:
|
|
246
|
-
|
|
247
|
-
```typescript
|
|
248
|
-
import type { IndividualAssetSlot } from '@adcp/sdk';
|
|
249
|
-
|
|
250
|
-
function constraintsFor(slot: IndividualAssetSlot) {
|
|
251
|
-
switch (slot.asset_type) {
|
|
252
|
-
case 'image':
|
|
253
|
-
return slot.requirements; // ImageAssetRequirements — formats, aspect_ratio, max_file_size_kb
|
|
254
|
-
case 'video':
|
|
255
|
-
return slot.requirements; // VideoAssetRequirements — containers, *_duration_ms, aspect_ratio
|
|
256
|
-
case 'audio':
|
|
257
|
-
return slot.requirements; // AudioAssetRequirements — formats, *_duration_ms
|
|
258
|
-
default:
|
|
259
|
-
return undefined;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
**`sync_creatives`** — `SyncCreativesRequestSchema.shape`
|
|
265
|
-
|
|
266
|
-
Handle both brief-based and standard creatives:
|
|
267
|
-
|
|
268
|
-
```
|
|
269
|
-
syncCreativesResponse({
|
|
270
|
-
creatives: [{
|
|
271
|
-
creative_id: string, // echo from request
|
|
272
|
-
action: 'created' | 'updated', // required
|
|
273
|
-
preview_url: string, // optional — URL to preview generative creative
|
|
274
|
-
}],
|
|
275
|
-
})
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
For invalid brand domains, return failure:
|
|
279
|
-
|
|
280
|
-
```
|
|
281
|
-
syncCreativesResponse({
|
|
282
|
-
creatives: [{
|
|
283
|
-
creative_id: string,
|
|
284
|
-
action: 'failed',
|
|
285
|
-
errors: [{ code: 'INVALID_BRAND', message: 'Brand domain not found: nonexistent-brand.example' }],
|
|
286
|
-
}],
|
|
287
|
-
})
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
**`get_media_buys`** — `GetMediaBuysRequestSchema.shape`
|
|
291
|
-
|
|
292
|
-
```
|
|
293
|
-
getMediaBuysResponse({
|
|
294
|
-
media_buys: [{
|
|
295
|
-
media_buy_id: string,
|
|
296
|
-
status: 'active' | 'pending_start' | ...,
|
|
297
|
-
currency: 'USD',
|
|
298
|
-
packages: [{ package_id: string }],
|
|
299
|
-
}]
|
|
300
|
-
})
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
**`get_media_buy_delivery`** — `GetMediaBuyDeliveryRequestSchema.shape`
|
|
304
|
-
|
|
305
|
-
```
|
|
306
|
-
deliveryResponse({
|
|
307
|
-
reporting_period: { start: string, end: string },
|
|
308
|
-
media_buy_deliveries: [{
|
|
309
|
-
media_buy_id: string,
|
|
310
|
-
status: 'active',
|
|
311
|
-
totals: { impressions: number, spend: number },
|
|
312
|
-
by_package: [],
|
|
313
|
-
}]
|
|
314
|
-
})
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### Context and Ext Passthrough
|
|
318
|
-
|
|
319
|
-
The framework auto-echoes the request's `context` into every response — **do not set `context` yourself in your handler return values.** It's injected post-handler only when the field isn't already present.
|
|
320
|
-
|
|
321
|
-
**Crucial:** `context` is schema-typed as an object. If your handler hand-sets a string or narrative description, validation fails with `/context: must be object` and the framework does not overwrite. Leave the field out entirely.
|
|
322
|
-
|
|
323
|
-
Some schemas also define an `ext` field for vendor-namespaced extensions. If your request schema includes `ext`, accept it without error. Tools with explicit `ext` support: `sync_governance`, `provide_performance_feedback`.
|
|
324
|
-
|
|
325
|
-
## Compliance Testing (Optional)
|
|
326
|
-
|
|
327
|
-
Add `registerTestController` so the comply framework can deterministically test your state machines. One function call — the SDK handles request parsing, status validation, and response formatting.
|
|
328
|
-
|
|
329
|
-
```
|
|
330
|
-
import { registerTestController, TestControllerError } from '@adcp/sdk';
|
|
331
|
-
import type { TestControllerStore } from '@adcp/sdk';
|
|
332
|
-
|
|
333
|
-
const store: TestControllerStore = {
|
|
334
|
-
async forceAccountStatus(accountId, status) {
|
|
335
|
-
const prev = accounts.get(accountId);
|
|
336
|
-
if (!prev) throw new TestControllerError('NOT_FOUND', `Account ${accountId} not found`);
|
|
337
|
-
accounts.set(accountId, status);
|
|
338
|
-
return { success: true, previous_state: prev, current_state: status };
|
|
339
|
-
},
|
|
340
|
-
async forceMediaBuyStatus(mediaBuyId, status) { /* same pattern */ },
|
|
341
|
-
async forceCreativeStatus(creativeId, status) { /* same pattern */ },
|
|
342
|
-
// simulateDelivery, simulateBudgetSpend — implement as needed
|
|
343
|
-
};
|
|
344
|
-
|
|
345
|
-
registerTestController(server, store);
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
`registerTestController` auto-emits the `capabilities.compliance_testing.scenarios` block per AdCP 3.0 — no manual `supported_protocols` edit. Only implement the store methods for scenarios your agent supports; unimplemented methods are excluded from `list_scenarios` automatically.
|
|
349
|
-
|
|
350
|
-
Validate with: `adcp storyboard run <agent> deterministic_testing --json`
|
|
351
|
-
|
|
352
|
-
## SDK Quick Reference
|
|
353
|
-
|
|
354
|
-
| SDK piece | Usage |
|
|
355
|
-
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
356
|
-
| `createAdcpServerFromPlatform(platform, opts)` | Create server from a typed `DecisioningPlatform` — compile-time specialism enforcement, auto-generated capabilities, ctx_metadata round-trip |
|
|
357
|
-
| `createAdcpServer(config)` _(legacy)_ | v5 handler-bag entry. Mid-migration / escape-hatch only; reach via `@adcp/sdk/server/legacy/v5` |
|
|
358
|
-
| `serve(() => createAdcpServerFromPlatform(platform, opts))` | Start HTTP server on `:3001/mcp` |
|
|
359
|
-
| `ctx.store` | State persistence — `get/put/patch/delete/list` domain objects |
|
|
360
|
-
| `adcpError(code, { message })` | Structured error |
|
|
361
|
-
| `registerTestController(server, store)` | Add `comply_test_controller` for deterministic testing |
|
|
362
|
-
|
|
363
|
-
Response builders (`productsResponse`, `mediaBuyResponse`, `syncCreativesResponse`, etc.) are auto-applied by the framework. Handlers return raw data objects — the framework wraps them.
|
|
364
|
-
|
|
365
|
-
`get_adcp_capabilities` is auto-generated from registered handlers. Do not register it manually.
|
|
366
|
-
|
|
367
|
-
Import: `import { createAdcpServerFromPlatform, serve, adcpError } from '@adcp/sdk/server';`
|
|
368
|
-
|
|
369
|
-
## Setup
|
|
370
|
-
|
|
371
|
-
```bash
|
|
372
|
-
npm init -y
|
|
373
|
-
npm install @adcp/sdk
|
|
374
|
-
npm install -D typescript @types/node
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
Minimal `tsconfig.json`:
|
|
378
|
-
|
|
379
|
-
```json
|
|
380
|
-
{
|
|
381
|
-
"compilerOptions": {
|
|
382
|
-
"target": "ES2022",
|
|
383
|
-
"module": "Node16",
|
|
384
|
-
"moduleResolution": "Node16",
|
|
385
|
-
"strict": true,
|
|
386
|
-
"skipLibCheck": true,
|
|
387
|
-
"outDir": "dist"
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
`skipLibCheck: true` avoids false-positive errors from transitive `.d.ts` files (e.g., `@opentelemetry/api`).
|
|
393
|
-
|
|
394
|
-
## Implementation
|
|
395
|
-
|
|
396
|
-
1. Single `.ts` file — all tools in one file
|
|
397
|
-
2. Use `createAdcpServerFromPlatform` with `sales` and `creative` typed sub-platforms on a `DecisioningPlatform` class
|
|
398
|
-
3. Handlers return raw data objects — the framework auto-applies response builders
|
|
399
|
-
4. `get_adcp_capabilities` is auto-generated from registered handlers — do not register it manually
|
|
400
|
-
5. Use `ctx.store` for state persistence (accounts, media buys, creatives)
|
|
401
|
-
6. Set `sandbox: true` on all mock/demo responses
|
|
402
|
-
|
|
403
|
-
Creative tools (`listCreativeFormats`, `syncCreatives`, `buildCreative`, `listCreatives`, `getCreativeDelivery`) belong in the `creative` domain group. Media buy tools (`getProducts`, `createMediaBuy`, `getMediaBuys`, `getMediaBuyDelivery`) belong in `mediaBuy`.
|
|
404
|
-
|
|
405
|
-
```typescript
|
|
406
|
-
import { randomUUID } from 'node:crypto';
|
|
407
|
-
import {
|
|
408
|
-
createAdcpServerFromPlatform,
|
|
409
|
-
serve,
|
|
410
|
-
adcpError,
|
|
411
|
-
createIdempotencyStore,
|
|
412
|
-
memoryBackend,
|
|
413
|
-
type DecisioningPlatform,
|
|
414
|
-
type SalesPlatform,
|
|
415
|
-
type CreativeBuilderPlatform,
|
|
416
|
-
type AccountStore,
|
|
417
|
-
} from '@adcp/sdk/server';
|
|
418
|
-
|
|
419
|
-
// Idempotency — required for v3. Generative creation is expensive and
|
|
420
|
-
// non-deterministic, so caching successful responses per key is critical:
|
|
421
|
-
// a buyer retry must replay the same ad, not re-burn model tokens.
|
|
422
|
-
const idempotency = createIdempotencyStore({
|
|
423
|
-
backend: memoryBackend(), // pgBackend(pool) for production
|
|
424
|
-
ttlSeconds: 86400, // 24 hours (spec bounds: 1h–7d)
|
|
425
|
-
});
|
|
426
|
-
|
|
427
|
-
class MyGenerativeSeller implements DecisioningPlatform {
|
|
428
|
-
capabilities = {
|
|
429
|
-
specialisms: ['sales-non-guaranteed', 'creative-generative'] as const,
|
|
430
|
-
creative_agents: [{ agent_url: 'https://example.com/creative/mcp' }],
|
|
431
|
-
pricingModels: ['cpm'] as const,
|
|
432
|
-
channels: ['display'] as const,
|
|
433
|
-
config: {},
|
|
434
|
-
};
|
|
435
|
-
|
|
436
|
-
accounts: AccountStore = {
|
|
437
|
-
resolve: async ref => ({
|
|
438
|
-
id: 'account_id' in ref ? ref.account_id : 'gen_acc_1',
|
|
439
|
-
operator: 'me',
|
|
440
|
-
ctx_metadata: {},
|
|
441
|
-
}),
|
|
442
|
-
upsert: async () => ({ ok: true, items: [] }),
|
|
443
|
-
list: async () => ({ items: [], nextCursor: null }),
|
|
444
|
-
};
|
|
445
|
-
|
|
446
|
-
sales: SalesPlatform = {
|
|
447
|
-
getProducts: async (req, ctx) => ({ products: PRODUCTS, sandbox: true }),
|
|
448
|
-
createMediaBuy: async (req, ctx) => {
|
|
449
|
-
const buy = {
|
|
450
|
-
media_buy_id: `mb_${randomUUID()}`,
|
|
451
|
-
status: 'pending_creatives' as const,
|
|
452
|
-
packages:
|
|
453
|
-
req.packages?.map(p => ({
|
|
454
|
-
package_id: `pkg_${randomUUID()}`,
|
|
455
|
-
product_id: p.product_id,
|
|
456
|
-
pricing_option_id: p.pricing_option_id,
|
|
457
|
-
budget: p.budget,
|
|
458
|
-
})) ?? [],
|
|
459
|
-
};
|
|
460
|
-
await ctx.store.put('media_buys', buy.media_buy_id, buy);
|
|
461
|
-
return buy;
|
|
462
|
-
},
|
|
463
|
-
updateMediaBuy: async (id, patch, ctx) => ({ media_buy_id: id, status: 'active' }),
|
|
464
|
-
getMediaBuys: async () => ({ media_buys: [] }),
|
|
465
|
-
getMediaBuyDelivery: async () => ({ deliveries: [] }),
|
|
466
|
-
listCreativeFormats: async () => ({ formats: FORMATS }),
|
|
467
|
-
// syncCreatives: generative formats take a `brief`; standard formats
|
|
468
|
-
// carry assets. Check format_id to decide processing. Framework
|
|
469
|
-
// idempotency ensures a retry of the same (key, payload) replays the
|
|
470
|
-
// prior response instead of re-running generation.
|
|
471
|
-
syncCreatives: async (creatives, ctx) =>
|
|
472
|
-
creatives.map(c => ({
|
|
473
|
-
creative_id: (c as { creative_id?: string }).creative_id ?? `cr_${randomUUID()}`,
|
|
474
|
-
action: 'created' as const,
|
|
475
|
-
})),
|
|
476
|
-
};
|
|
477
|
-
|
|
478
|
-
creative: CreativeBuilderPlatform = {
|
|
479
|
-
buildCreative: async (req, ctx) => {
|
|
480
|
-
// Generative path — read brief, call your model, return assets.
|
|
481
|
-
// Framework auto-stores the build for refine/lookup via ctx_metadata.
|
|
482
|
-
return {
|
|
483
|
-
creative_manifest: {
|
|
484
|
-
/* generated assets */
|
|
485
|
-
},
|
|
486
|
-
};
|
|
487
|
-
},
|
|
488
|
-
previewCreative: async (req, ctx) => {
|
|
489
|
-
return { preview_url: '...' };
|
|
490
|
-
},
|
|
491
|
-
};
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
const platform = new MyGenerativeSeller();
|
|
495
|
-
|
|
496
|
-
serve(() =>
|
|
497
|
-
createAdcpServerFromPlatform(platform, {
|
|
498
|
-
name: 'My Generative Seller',
|
|
499
|
-
version: '1.0.0',
|
|
500
|
-
idempotency,
|
|
501
|
-
})
|
|
502
|
-
);
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
The skill contains everything you need. Do not read additional docs before writing code.
|
|
506
|
-
|
|
507
|
-
### Key implementation detail: sync_creatives handler
|
|
508
|
-
|
|
509
|
-
The sync_creatives handler must check the format_id to decide how to process:
|
|
510
|
-
|
|
511
|
-
- If the format is generative (e.g., id contains "generative"): read the `brief` asset from the creative's assets
|
|
512
|
-
- If the format is standard: read the image/video/html asset
|
|
513
|
-
- Validate the brand domain from the account — return `action: 'failed'` with an error if invalid
|
|
514
|
-
- Return `action: 'created'` for both generative and standard creatives
|
|
515
|
-
|
|
516
|
-
## Idempotency
|
|
26
|
+
- User wants to build a generative DSP or AI ad network
|
|
27
|
+
- User's platform both sells inventory and creates/generates creatives
|
|
28
|
+
- User mentions "creative from brief", "AI-generated ads", or "generative"
|
|
517
29
|
|
|
518
|
-
|
|
30
|
+
**Not this skill:**
|
|
519
31
|
|
|
520
|
-
-
|
|
521
|
-
-
|
|
522
|
-
-
|
|
523
|
-
- Cache hits replay the cached envelope with `replayed: true` injected
|
|
524
|
-
- `adcp.idempotency.replay_ttl_seconds` auto-declared on `get_adcp_capabilities`
|
|
525
|
-
- Only successful responses cache — a failed generation re-executes on retry without locking the key
|
|
526
|
-
- Atomic claim so concurrent retries with the same key don't all race to generate
|
|
32
|
+
- Standard seller, no creative generation → `skills/build-seller-agent/`
|
|
33
|
+
- Standalone creative agent (renders but doesn't sell) → `skills/build-creative-agent/`
|
|
34
|
+
- Signals/audience data → `skills/build-signals-agent/`
|
|
527
35
|
|
|
528
|
-
|
|
36
|
+
**Often claimed alongside:** `creative-template` — hybrid creative platforms (Celtra, Bannerflow) claim both; template-driven and AI-driven generation share the same creative library. See [Common multi-specialism bundles](../../examples/README.md#common-multi-specialism-bundles).
|
|
529
37
|
|
|
530
|
-
##
|
|
38
|
+
## Cross-cutting rules
|
|
531
39
|
|
|
532
|
-
|
|
40
|
+
Every generative seller hits the cross-cutting rules in [`../cross-cutting.md`](../cross-cutting.md). Plus the seller cross-cutting from [`../build-seller-agent/SKILL.md`](../build-seller-agent/SKILL.md) — generative-seller is additive on top of the seller baseline. The high-traffic ones for generative-seller (deep-linked to the rule):
|
|
533
41
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
import { verifyApiKey, verifyBearer, anyOf } from '@adcp/sdk/server';
|
|
42
|
+
- [`idempotency_key`](../cross-cutting.md#idempotency_key-is-required-on-every-mutating-call) on `build_creative` and `sync_creatives` (in addition to the seller-side mutating tools)
|
|
43
|
+
- [Webhooks](../cross-cutting.md#webhooks-stable-operation_id-across-retries) — for async generation completions, use `creative_review.${creative_id}` as a stable `operation_id`
|
|
537
44
|
|
|
538
|
-
|
|
539
|
-
serve(createAgent, {
|
|
540
|
-
authenticate: verifyApiKey({
|
|
541
|
-
verify: async token => {
|
|
542
|
-
const row = await db.api_keys.findUnique({ where: { token } });
|
|
543
|
-
return row ? { principal: row.account_id } : null;
|
|
544
|
-
},
|
|
545
|
-
}),
|
|
546
|
-
});
|
|
45
|
+
## Specialism deltas at a glance
|
|
547
46
|
|
|
548
|
-
|
|
549
|
-
const AGENT_URL = 'https://my-agent.example.com/mcp';
|
|
550
|
-
serve(createAgent, {
|
|
551
|
-
publicUrl: AGENT_URL, // canonical RFC 8707 audience — also served as `resource` in protected-resource metadata
|
|
552
|
-
authenticate: verifyBearer({
|
|
553
|
-
jwksUri: 'https://auth.example.com/.well-known/jwks.json',
|
|
554
|
-
issuer: 'https://auth.example.com',
|
|
555
|
-
audience: AGENT_URL, // MUST equal publicUrl
|
|
556
|
-
}),
|
|
557
|
-
protectedResource: { authorization_servers: ['https://auth.example.com'] },
|
|
558
|
-
});
|
|
47
|
+
**`creative-generative`** —
|
|
559
48
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
});
|
|
566
|
-
```
|
|
49
|
+
- `build_creative` accepts `message` + `brand.domain` + optional `quality: draft|production`; supports refinement (re-send manifest in)
|
|
50
|
+
- Response is `{ creative_manifest: { format_id, assets } }` — **not** `{ creative_id, status, quality, preview_url }` (those are `sync_creatives` fields; don't leak them in)
|
|
51
|
+
- Each asset in `creative_manifest.assets` requires an `asset_type` discriminator — use the typed factories (`imageAsset({...})`, `videoAsset({...})`, `htmlAsset({...})`, `urlAsset({...})`)
|
|
52
|
+
- `preview_creative` renders use `urlRender({...})` / `htmlRender({...})` / `bothRender({...})` — they inject `output_format` and enforce the matching `preview_url` / `preview_html` at the type level
|
|
53
|
+
- Brand resolution: brands register dynamically through `sync_accounts` (a buyer syncs an account with `brand.domain`; treat that domain as resolvable). Don't hardcode a brand allowlist. Storyboards use fictional `.example` TLD brands; a hardcoded list will fail validation.
|
|
567
54
|
|
|
568
|
-
|
|
55
|
+
**`sales-non-guaranteed`** baseline applies — see [`../build-seller-agent/specialisms/sales-non-guaranteed.md`](../build-seller-agent/specialisms/sales-non-guaranteed.md).
|
|
569
56
|
|
|
570
|
-
|
|
57
|
+
**`sales-catalog-driven`** (optional) — if you ingest catalogs for dynamic creative generation, see [`../build-retail-media-agent/SKILL.md`](../build-retail-media-agent/SKILL.md).
|
|
571
58
|
|
|
572
|
-
|
|
59
|
+
## Validate locally
|
|
573
60
|
|
|
574
61
|
```bash
|
|
575
|
-
#
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
# Happy paths — sells inventory AND generates creatives
|
|
579
|
-
npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp creative_generative/seller --auth $TOKEN
|
|
580
|
-
npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp media_buy_seller --auth $TOKEN
|
|
62
|
+
# Run the fork-matrix gate against the seller-non-guaranteed baseline
|
|
63
|
+
npm run compliance:fork-matrix -- --test-name-pattern="hello-seller-adapter-non-guaranteed"
|
|
581
64
|
|
|
582
|
-
#
|
|
583
|
-
|
|
584
|
-
--
|
|
585
|
-
|
|
586
|
-
# Rejection-surface fuzz
|
|
587
|
-
npx @adcp/sdk@latest fuzz http://localhost:3001/mcp \
|
|
588
|
-
--tools get_products,list_creative_formats,get_creative_features,preview_creative \
|
|
589
|
-
--auth-token $TOKEN
|
|
65
|
+
# Or validate your forked agent directly against the generative storyboard
|
|
66
|
+
adcp storyboard run http://127.0.0.1:3005/mcp creative_generative \
|
|
67
|
+
--bearer "$ADCP_AUTH_TOKEN" --include-bundles --json
|
|
590
68
|
```
|
|
591
69
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
- `response_schema` → response doesn't match Zod schema
|
|
595
|
-
- `field_present` → required field missing (often `creative_manifest` on generated output)
|
|
596
|
-
- `mcp_error` → check tool registration; generative formats must be in `list_creative_formats`
|
|
70
|
+
The fork-matrix gate is the three-gate contract from [`docs/guides/EXAMPLE-TEST-CONTRACT.md`](../../docs/guides/EXAMPLE-TEST-CONTRACT.md): tsc strict / storyboard zero-failures / upstream façade.
|
|
597
71
|
|
|
598
|
-
|
|
72
|
+
For deeper validation: [`docs/guides/VALIDATE-YOUR-AGENT.md`](../../docs/guides/VALIDATE-YOUR-AGENT.md).
|
|
599
73
|
|
|
600
|
-
## Common
|
|
74
|
+
## Common shape gotchas
|
|
601
75
|
|
|
602
|
-
|
|
603
|
-
| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
604
|
-
| Only generative formats, no standard IAB | Programmatic sellers must accept pre-built assets too |
|
|
605
|
-
| Ignore brand domain on brief sync | Validate brand, reject if unresolvable |
|
|
606
|
-
| Same handler for brief and standard creatives | Check format_id to decide processing path |
|
|
607
|
-
| format_ids in products don't match list_creative_formats | Buyers echo format_ids from products into sync_creatives — if your validation rejects your own format_ids, the buyer can't fulfill creative requirements |
|
|
608
|
-
| Manually registering `get_adcp_capabilities` | Auto-generated by `createAdcpServerFromPlatform` from your typed `DecisioningPlatform` — do not register it |
|
|
609
|
-
| Using `server.tool()` instead of typed sub-platforms | Implement `sales: SalesPlatform` + `creative: CreativeBuilderPlatform` on a `DecisioningPlatform` class |
|
|
610
|
-
| Calling `createAdcpServer` directly in new code | Reach for `createAdcpServerFromPlatform`; `createAdcpServer` lives at `@adcp/sdk/server/legacy/v5` for mid-migration / escape-hatch only |
|
|
611
|
-
| `sandbox: false` on mock data | Buyers may treat mock data as real |
|
|
612
|
-
| Dropping `context` from responses | Echo `args.context` back unchanged in every response — buyers use it for correlation |
|
|
76
|
+
`BuildCreativeReturn` has 4 valid shapes (framework auto-wraps the bare manifest). Asset discriminators are required — use the typed factories. `get_media_buy_delivery` requires top-level `currency`; per-package rows require the billing quintet (`package_id`, `spend`, `pricing_model`, `rate`, `currency`). See [`../SHAPE-GOTCHAS.md`](../SHAPE-GOTCHAS.md).
|
|
613
77
|
|
|
614
|
-
##
|
|
78
|
+
## Migration notes
|
|
615
79
|
|
|
616
|
-
- `
|
|
617
|
-
- `
|
|
618
|
-
- `skills/build-seller-agent/SKILL.md` — standard seller skill (generative extends this)
|
|
619
|
-
- `docs/guides/BUILD-AN-AGENT.md` — SDK patterns
|
|
620
|
-
- `docs/TYPE-SUMMARY.md` — curated type signatures
|
|
621
|
-
- `docs/llms.txt` — full protocol reference
|
|
80
|
+
- 6.6 → 6.7: [`docs/migration-6.6-to-6.7.md`](../../docs/migration-6.6-to-6.7.md)
|
|
81
|
+
- 4.x → 5.x: [`docs/migration-4.x-to-5.x.md`](../../docs/migration-4.x-to-5.x.md)
|