@adcp/sdk 13.0.0-rc.7 → 13.0.0-rc.8
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/bin/adcp.js +29 -0
- package/compliance/cache/{3.1.10.previous/protocols → 3.1.11/domains}/media-buy/scenarios/creative_fate_after_cancellation.yaml +46 -24
- package/compliance/cache/{3.1.10 → 3.1.11}/index.json +3 -3
- package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +46 -24
- package/compliance/cache/{3.1.10 → 3.1.11}/universal/storyboard-schema.yaml +19 -6
- package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +46 -24
- package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/index.json +3 -3
- package/compliance/cache/{3.1.10/domains → 3.1.11.previous/protocols}/media-buy/scenarios/creative_fate_after_cancellation.yaml +46 -24
- package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/storyboard-schema.yaml +19 -6
- package/dist/lib/auth/oauth/ClientCredentialsFlow.d.mts +2 -0
- package/dist/lib/auth/oauth/ClientCredentialsFlow.d.ts +2 -0
- package/dist/lib/auth/oauth/ClientCredentialsFlow.d.ts.map +1 -1
- package/dist/lib/auth/oauth/ClientCredentialsFlow.js +69 -24
- package/dist/lib/auth/oauth/ClientCredentialsFlow.js.map +1 -1
- package/dist/lib/auth/oauth/ClientCredentialsFlow.mjs +69 -24
- package/dist/lib/auth/oauth/ClientCredentialsFlow.mjs.map +1 -1
- package/dist/lib/auth/oauth/authorization-required.d.mts +3 -0
- package/dist/lib/auth/oauth/authorization-required.d.ts +3 -0
- package/dist/lib/auth/oauth/authorization-required.d.ts.map +1 -1
- package/dist/lib/auth/oauth/authorization-required.js +37 -7
- package/dist/lib/auth/oauth/authorization-required.js.map +1 -1
- package/dist/lib/auth/oauth/authorization-required.mjs +37 -7
- package/dist/lib/auth/oauth/authorization-required.mjs.map +1 -1
- package/dist/lib/auth/oauth/discovery.d.mts +2 -0
- package/dist/lib/auth/oauth/discovery.d.ts +2 -0
- package/dist/lib/auth/oauth/discovery.d.ts.map +1 -1
- package/dist/lib/auth/oauth/discovery.js +7 -5
- package/dist/lib/auth/oauth/discovery.js.map +1 -1
- package/dist/lib/auth/oauth/discovery.mjs +7 -5
- package/dist/lib/auth/oauth/discovery.mjs.map +1 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/ConversationTypes.d.mts +6 -2
- package/dist/lib/core/ConversationTypes.d.ts +6 -2
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
- package/dist/lib/core/ConversationTypes.js.map +1 -1
- package/dist/lib/core/GovernanceMiddleware.d.mts +3 -3
- package/dist/lib/core/GovernanceMiddleware.d.ts +3 -3
- package/dist/lib/core/GovernanceMiddleware.d.ts.map +1 -1
- package/dist/lib/core/GovernanceMiddleware.js +8 -4
- package/dist/lib/core/GovernanceMiddleware.js.map +1 -1
- package/dist/lib/core/GovernanceMiddleware.mjs +8 -4
- package/dist/lib/core/GovernanceMiddleware.mjs.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.mts +12 -1
- package/dist/lib/core/SingleAgentClient.d.ts +12 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +89 -12
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.mjs +89 -12
- package/dist/lib/core/SingleAgentClient.mjs.map +1 -1
- package/dist/lib/core/TaskExecutor.d.mts +2 -4
- package/dist/lib/core/TaskExecutor.d.ts +2 -4
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +90 -14
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/core/TaskExecutor.mjs +95 -14
- package/dist/lib/core/TaskExecutor.mjs.map +1 -1
- package/dist/lib/core/task-deadline.d.mts +20 -0
- package/dist/lib/core/task-deadline.d.ts +21 -0
- package/dist/lib/core/task-deadline.d.ts.map +1 -0
- package/dist/lib/core/task-deadline.js +74 -0
- package/dist/lib/core/task-deadline.js.map +1 -0
- package/dist/lib/core/task-deadline.mjs +47 -0
- package/dist/lib/core/task-deadline.mjs.map +1 -0
- package/dist/lib/errors/index.d.mts +11 -0
- package/dist/lib/errors/index.d.ts +11 -0
- package/dist/lib/errors/index.d.ts.map +1 -1
- package/dist/lib/errors/index.js +6 -0
- package/dist/lib/errors/index.js.map +1 -1
- package/dist/lib/errors/index.mjs +6 -0
- package/dist/lib/errors/index.mjs.map +1 -1
- package/dist/lib/net/ssrf-fetch.d.ts.map +1 -1
- package/dist/lib/net/ssrf-fetch.js +11 -0
- package/dist/lib/net/ssrf-fetch.js.map +1 -1
- package/dist/lib/net/ssrf-fetch.mjs +11 -0
- package/dist/lib/net/ssrf-fetch.mjs.map +1 -1
- package/dist/lib/protocols/abort.d.mts +3 -1
- package/dist/lib/protocols/abort.d.ts +3 -1
- package/dist/lib/protocols/abort.d.ts.map +1 -1
- package/dist/lib/protocols/abort.js +19 -17
- package/dist/lib/protocols/abort.js.map +1 -1
- package/dist/lib/protocols/abort.mjs +19 -17
- package/dist/lib/protocols/abort.mjs.map +1 -1
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +13 -10
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/protocols/index.mjs +13 -10
- package/dist/lib/protocols/index.mjs.map +1 -1
- package/dist/lib/protocols/mcp.d.ts.map +1 -1
- package/dist/lib/protocols/mcp.js +8 -7
- package/dist/lib/protocols/mcp.js.map +1 -1
- package/dist/lib/protocols/mcp.mjs +8 -7
- package/dist/lib/protocols/mcp.mjs.map +1 -1
- package/dist/lib/schemas-data/3.1/a2ui/bound-value.json +1 -1
- package/dist/lib/schemas-data/3.1/a2ui/component.json +1 -1
- package/dist/lib/schemas-data/3.1/a2ui/si-catalog.json +25 -25
- package/dist/lib/schemas-data/3.1/a2ui/surface.json +2 -2
- package/dist/lib/schemas-data/3.1/a2ui/user-action.json +1 -1
- package/dist/lib/schemas-data/3.1/aao/agent-publishers.json +1 -1
- package/dist/lib/schemas-data/3.1/account/get-account-financials-request.json +6 -6
- package/dist/lib/schemas-data/3.1/account/get-account-financials-response.json +12 -12
- package/dist/lib/schemas-data/3.1/account/list-accounts-request.json +6 -6
- package/dist/lib/schemas-data/3.1/account/list-accounts-response.json +8 -8
- package/dist/lib/schemas-data/3.1/account/report-usage-request.json +6 -6
- package/dist/lib/schemas-data/3.1/account/report-usage-response.json +6 -6
- package/dist/lib/schemas-data/3.1/account/sync-accounts-request.json +12 -12
- package/dist/lib/schemas-data/3.1/account/sync-accounts-response.json +16 -16
- package/dist/lib/schemas-data/3.1/account/sync-governance-request.json +6 -6
- package/dist/lib/schemas-data/3.1/account/sync-governance-response.json +10 -10
- package/dist/lib/schemas-data/3.1/adagents.json +29 -29
- package/dist/lib/schemas-data/3.1/brand/acquire-rights-request.json +10 -10
- package/dist/lib/schemas-data/3.1/brand/acquire-rights-response.json +16 -16
- package/dist/lib/schemas-data/3.1/brand/creative-approval-request.json +5 -5
- package/dist/lib/schemas-data/3.1/brand/creative-approval-response.json +12 -12
- package/dist/lib/schemas-data/3.1/brand/get-brand-identity-request.json +4 -4
- package/dist/lib/schemas-data/3.1/brand/get-brand-identity-response.json +10 -10
- package/dist/lib/schemas-data/3.1/brand/get-rights-request.json +8 -8
- package/dist/lib/schemas-data/3.1/brand/get-rights-response.json +11 -11
- package/dist/lib/schemas-data/3.1/brand/revocation-notification.json +4 -4
- package/dist/lib/schemas-data/3.1/brand/rights-pricing-option.json +5 -5
- package/dist/lib/schemas-data/3.1/brand/rights-terms.json +3 -3
- package/dist/lib/schemas-data/3.1/brand/search-brands-request.json +6 -6
- package/dist/lib/schemas-data/3.1/brand/search-brands-response.json +11 -11
- package/dist/lib/schemas-data/3.1/brand/update-rights-request.json +6 -6
- package/dist/lib/schemas-data/3.1/brand/update-rights-response.json +11 -11
- package/dist/lib/schemas-data/3.1/brand/verification-status.json +1 -1
- package/dist/lib/schemas-data/3.1/brand/verify-brand-claim-request.json +2 -2
- package/dist/lib/schemas-data/3.1/brand/verify-brand-claim-response.json +13 -13
- package/dist/lib/schemas-data/3.1/brand/verify-brand-claims-request.json +2 -2
- package/dist/lib/schemas-data/3.1/brand/verify-brand-claims-response.json +13 -13
- package/dist/lib/schemas-data/3.1/brand.json +21 -21
- package/dist/lib/schemas-data/3.1/bundled/content-standards/calibrate-content-request.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/content-standards/calibrate-content-response.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/content-standards/create-content-standards-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/content-standards/create-content-standards-response.json +10 -10
- package/dist/lib/schemas-data/3.1/bundled/content-standards/get-content-standards-request.json +5 -5
- package/dist/lib/schemas-data/3.1/bundled/content-standards/get-content-standards-response.json +23 -23
- package/dist/lib/schemas-data/3.1/bundled/content-standards/get-media-buy-artifacts-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/content-standards/get-media-buy-artifacts-response.json +18 -18
- package/dist/lib/schemas-data/3.1/bundled/content-standards/list-content-standards-request.json +7 -7
- package/dist/lib/schemas-data/3.1/bundled/content-standards/list-content-standards-response.json +24 -24
- package/dist/lib/schemas-data/3.1/bundled/content-standards/update-content-standards-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/content-standards/update-content-standards-response.json +10 -10
- package/dist/lib/schemas-data/3.1/bundled/content-standards/validate-content-delivery-request.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/content-standards/validate-content-delivery-response.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/core/tasks-get-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/core/tasks-get-response.json +181 -181
- package/dist/lib/schemas-data/3.1/bundled/core/tasks-list-request.json +21 -21
- package/dist/lib/schemas-data/3.1/bundled/core/tasks-list-response.json +11 -11
- package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-delivery-request.json +17 -17
- package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-delivery-response.json +56 -56
- package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-features-request.json +44 -44
- package/dist/lib/schemas-data/3.1/bundled/creative/get-creative-features-response.json +13 -13
- package/dist/lib/schemas-data/3.1/bundled/creative/list-creative-formats-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/creative/list-creative-formats-response.json +48 -48
- package/dist/lib/schemas-data/3.1/bundled/creative/list-creatives-request.json +17 -17
- package/dist/lib/schemas-data/3.1/bundled/creative/list-creatives-response.json +58 -58
- package/dist/lib/schemas-data/3.1/bundled/creative/list-transformers-request.json +18 -18
- package/dist/lib/schemas-data/3.1/bundled/creative/list-transformers-response.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/creative/preview-creative-request.json +44 -44
- package/dist/lib/schemas-data/3.1/bundled/creative/preview-creative-response.json +50 -50
- package/dist/lib/schemas-data/3.1/bundled/creative/sync-creatives-request.json +46 -46
- package/dist/lib/schemas-data/3.1/bundled/creative/sync-creatives-response.json +27 -27
- package/dist/lib/schemas-data/3.1/bundled/creative/validate-input-request.json +42 -42
- package/dist/lib/schemas-data/3.1/bundled/creative/validate-input-response.json +10 -10
- package/dist/lib/schemas-data/3.1/bundled/media-buy/build-creative-request.json +53 -53
- package/dist/lib/schemas-data/3.1/bundled/media-buy/build-creative-response.json +54 -54
- package/dist/lib/schemas-data/3.1/bundled/media-buy/create-media-buy-request.json +83 -83
- package/dist/lib/schemas-data/3.1/bundled/media-buy/create-media-buy-response.json +77 -77
- package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buy-delivery-request.json +25 -25
- package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buy-delivery-response.json +40 -40
- package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buys-request.json +18 -18
- package/dist/lib/schemas-data/3.1/bundled/media-buy/get-media-buys-response.json +65 -65
- package/dist/lib/schemas-data/3.1/bundled/media-buy/get-products-request.json +49 -49
- package/dist/lib/schemas-data/3.1/bundled/media-buy/get-products-response.json +99 -99
- package/dist/lib/schemas-data/3.1/bundled/media-buy/list-creative-formats-request.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/media-buy/list-creative-formats-response.json +48 -48
- package/dist/lib/schemas-data/3.1/bundled/media-buy/log-event-request.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/media-buy/log-event-response.json +10 -10
- package/dist/lib/schemas-data/3.1/bundled/media-buy/package-request.json +79 -79
- package/dist/lib/schemas-data/3.1/bundled/media-buy/provide-performance-feedback-request.json +8 -8
- package/dist/lib/schemas-data/3.1/bundled/media-buy/provide-performance-feedback-response.json +10 -10
- package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-audiences-request.json +18 -18
- package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-audiences-response.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-catalogs-request.json +26 -26
- package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-catalogs-response.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-event-sources-request.json +19 -19
- package/dist/lib/schemas-data/3.1/bundled/media-buy/sync-event-sources-response.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/media-buy/update-media-buy-request.json +79 -79
- package/dist/lib/schemas-data/3.1/bundled/media-buy/update-media-buy-response.json +71 -71
- package/dist/lib/schemas-data/3.1/bundled/property/create-property-list-request.json +18 -18
- package/dist/lib/schemas-data/3.1/bundled/property/create-property-list-response.json +26 -26
- package/dist/lib/schemas-data/3.1/bundled/property/delete-property-list-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/property/delete-property-list-response.json +10 -10
- package/dist/lib/schemas-data/3.1/bundled/property/get-property-list-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/property/get-property-list-response.json +27 -27
- package/dist/lib/schemas-data/3.1/bundled/property/list-property-lists-request.json +17 -17
- package/dist/lib/schemas-data/3.1/bundled/property/list-property-lists-response.json +27 -27
- package/dist/lib/schemas-data/3.1/bundled/property/update-property-list-request.json +18 -18
- package/dist/lib/schemas-data/3.1/bundled/property/update-property-list-response.json +26 -26
- package/dist/lib/schemas-data/3.1/bundled/property/validate-property-delivery-request.json +19 -19
- package/dist/lib/schemas-data/3.1/bundled/property/validate-property-delivery-response.json +15 -15
- package/dist/lib/schemas-data/3.1/bundled/protocol/get-adcp-capabilities-request.json +5 -5
- package/dist/lib/schemas-data/3.1/bundled/protocol/get-adcp-capabilities-response.json +35 -35
- package/dist/lib/schemas-data/3.1/bundled/protocol/get-task-status-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/protocol/get-task-status-response.json +181 -181
- package/dist/lib/schemas-data/3.1/bundled/protocol/list-tasks-request.json +21 -21
- package/dist/lib/schemas-data/3.1/bundled/protocol/list-tasks-response.json +11 -11
- package/dist/lib/schemas-data/3.1/bundled/signals/activate-signal-request.json +17 -17
- package/dist/lib/schemas-data/3.1/bundled/signals/activate-signal-response.json +12 -12
- package/dist/lib/schemas-data/3.1/bundled/signals/get-signals-request.json +24 -24
- package/dist/lib/schemas-data/3.1/bundled/signals/get-signals-response.json +53 -53
- package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-get-offering-request.json +5 -5
- package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-get-offering-response.json +23 -23
- package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-initiate-session-request.json +18 -18
- package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-initiate-session-response.json +25 -25
- package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-send-message-request.json +16 -16
- package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-send-message-response.json +26 -26
- package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-terminate-session-request.json +5 -5
- package/dist/lib/schemas-data/3.1/bundled/sponsored-intelligence/si-terminate-session-response.json +11 -11
- package/dist/lib/schemas-data/3.1/collection/base-collection-source.json +3 -3
- package/dist/lib/schemas-data/3.1/collection/collection-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.1/collection/collection-list-filters.json +7 -7
- package/dist/lib/schemas-data/3.1/collection/collection-list.json +5 -5
- package/dist/lib/schemas-data/3.1/collection/create-collection-list-request.json +8 -8
- package/dist/lib/schemas-data/3.1/collection/create-collection-list-response.json +6 -6
- package/dist/lib/schemas-data/3.1/collection/delete-collection-list-request.json +5 -5
- package/dist/lib/schemas-data/3.1/collection/delete-collection-list-response.json +5 -5
- package/dist/lib/schemas-data/3.1/collection/get-collection-list-request.json +5 -5
- package/dist/lib/schemas-data/3.1/collection/get-collection-list-response.json +12 -12
- package/dist/lib/schemas-data/3.1/collection/list-collection-lists-request.json +6 -6
- package/dist/lib/schemas-data/3.1/collection/list-collection-lists-response.json +7 -7
- package/dist/lib/schemas-data/3.1/collection/update-collection-list-request.json +8 -8
- package/dist/lib/schemas-data/3.1/collection/update-collection-list-response.json +6 -6
- package/dist/lib/schemas-data/3.1/content-standards/artifact-webhook-payload.json +3 -3
- package/dist/lib/schemas-data/3.1/content-standards/artifact.json +7 -7
- package/dist/lib/schemas-data/3.1/content-standards/calibrate-content-request.json +5 -5
- package/dist/lib/schemas-data/3.1/content-standards/calibrate-content-response.json +10 -10
- package/dist/lib/schemas-data/3.1/content-standards/content-standards.json +7 -7
- package/dist/lib/schemas-data/3.1/content-standards/create-content-standards-request.json +8 -8
- package/dist/lib/schemas-data/3.1/content-standards/create-content-standards-response.json +8 -8
- package/dist/lib/schemas-data/3.1/content-standards/get-content-standards-request.json +4 -4
- package/dist/lib/schemas-data/3.1/content-standards/get-content-standards-response.json +9 -9
- package/dist/lib/schemas-data/3.1/content-standards/get-media-buy-artifacts-request.json +5 -5
- package/dist/lib/schemas-data/3.1/content-standards/get-media-buy-artifacts-response.json +10 -10
- package/dist/lib/schemas-data/3.1/content-standards/list-content-standards-request.json +6 -6
- package/dist/lib/schemas-data/3.1/content-standards/list-content-standards-response.json +10 -10
- package/dist/lib/schemas-data/3.1/content-standards/update-content-standards-request.json +8 -8
- package/dist/lib/schemas-data/3.1/content-standards/update-content-standards-response.json +8 -8
- package/dist/lib/schemas-data/3.1/content-standards/validate-content-delivery-request.json +5 -5
- package/dist/lib/schemas-data/3.1/content-standards/validate-content-delivery-response.json +10 -10
- package/dist/lib/schemas-data/3.1/core/account-authorization.json +1 -1
- package/dist/lib/schemas-data/3.1/core/account-ref.json +2 -2
- package/dist/lib/schemas-data/3.1/core/account-with-authorization.json +3 -3
- package/dist/lib/schemas-data/3.1/core/account.json +10 -10
- package/dist/lib/schemas-data/3.1/core/activation-key.json +1 -1
- package/dist/lib/schemas-data/3.1/core/ad-inventory-config.json +1 -1
- package/dist/lib/schemas-data/3.1/core/agent-encryption-key.json +1 -1
- package/dist/lib/schemas-data/3.1/core/agent-signing-key.json +1 -1
- package/dist/lib/schemas-data/3.1/core/app-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/asset-group-vocabulary.json +1 -1
- package/dist/lib/schemas-data/3.1/core/assets/asset-union.json +21 -21
- package/dist/lib/schemas-data/3.1/core/assets/audio-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/brief-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/card-asset.json +6 -6
- package/dist/lib/schemas-data/3.1/core/assets/catalog-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/css-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/daast-asset.json +4 -4
- package/dist/lib/schemas-data/3.1/core/assets/daast-tracker-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/html-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/image-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/javascript-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/markdown-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/pixel-tracker-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/published-post-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/text-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/assets/url-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/vast-asset.json +4 -4
- package/dist/lib/schemas-data/3.1/core/assets/vast-tracker-asset.json +3 -3
- package/dist/lib/schemas-data/3.1/core/assets/video-asset.json +7 -7
- package/dist/lib/schemas-data/3.1/core/assets/webhook-asset.json +7 -7
- package/dist/lib/schemas-data/3.1/core/assets/zip-asset.json +2 -2
- package/dist/lib/schemas-data/3.1/core/async-response-data.json +29 -29
- package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/creative/sync-creatives-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/build-creative-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/create-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/get-products-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/sync-catalogs-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/media-buy/update-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/async-response-refs/signals/get-signals-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/core/async-response-refs/signals/get-signals-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/core/attribution-window.json +4 -4
- package/dist/lib/schemas-data/3.1/core/audience-member.json +3 -3
- package/dist/lib/schemas-data/3.1/core/audience-selector.json +7 -7
- package/dist/lib/schemas-data/3.1/core/authorized-agent-base.json +3 -3
- package/dist/lib/schemas-data/3.1/core/brand-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/brand-ref.json +3 -3
- package/dist/lib/schemas-data/3.1/core/business-entity.json +2 -2
- package/dist/lib/schemas-data/3.1/core/cancellation-policy.json +2 -2
- package/dist/lib/schemas-data/3.1/core/canonical-format-kind.json +1 -1
- package/dist/lib/schemas-data/3.1/core/canonical-projection-ref.json +3 -3
- package/dist/lib/schemas-data/3.1/core/canonical-projection-slot-override.json +1 -1
- package/dist/lib/schemas-data/3.1/core/catalog-field-mapping.json +2 -2
- package/dist/lib/schemas-data/3.1/core/catalog-item-delivery-metrics.json +3 -3
- package/dist/lib/schemas-data/3.1/core/catalog.json +7 -7
- package/dist/lib/schemas-data/3.1/core/catchment.json +5 -5
- package/dist/lib/schemas-data/3.1/core/collection-distribution.json +2 -2
- package/dist/lib/schemas-data/3.1/core/collection-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/collection-selector.json +1 -1
- package/dist/lib/schemas-data/3.1/core/collection.json +13 -13
- package/dist/lib/schemas-data/3.1/core/committed-metric.json +9 -9
- package/dist/lib/schemas-data/3.1/core/content-rating.json +2 -2
- package/dist/lib/schemas-data/3.1/core/context.json +1 -1
- package/dist/lib/schemas-data/3.1/core/creative-asset.json +10 -10
- package/dist/lib/schemas-data/3.1/core/creative-assignment.json +2 -2
- package/dist/lib/schemas-data/3.1/core/creative-brief.json +4 -4
- package/dist/lib/schemas-data/3.1/core/creative-consumption.json +1 -1
- package/dist/lib/schemas-data/3.1/core/creative-delivery-metrics.json +2 -2
- package/dist/lib/schemas-data/3.1/core/creative-filters.json +5 -5
- package/dist/lib/schemas-data/3.1/core/creative-item.json +1 -1
- package/dist/lib/schemas-data/3.1/core/creative-manifest.json +11 -11
- package/dist/lib/schemas-data/3.1/core/creative-policy.json +3 -3
- package/dist/lib/schemas-data/3.1/core/creative-variable.json +1 -1
- package/dist/lib/schemas-data/3.1/core/creative-variant.json +5 -5
- package/dist/lib/schemas-data/3.1/core/data-provider-signal-selector.json +1 -1
- package/dist/lib/schemas-data/3.1/core/date-range.json +1 -1
- package/dist/lib/schemas-data/3.1/core/datetime-range.json +1 -1
- package/dist/lib/schemas-data/3.1/core/daypart-target.json +2 -2
- package/dist/lib/schemas-data/3.1/core/deadline-policy.json +1 -1
- package/dist/lib/schemas-data/3.1/core/delivery-forecast.json +7 -7
- package/dist/lib/schemas-data/3.1/core/delivery-metric-aggregate.json +9 -9
- package/dist/lib/schemas-data/3.1/core/delivery-metrics.json +8 -8
- package/dist/lib/schemas-data/3.1/core/deployment.json +3 -3
- package/dist/lib/schemas-data/3.1/core/destination-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/destination.json +1 -1
- package/dist/lib/schemas-data/3.1/core/diagnostic-issue.json +1 -1
- package/dist/lib/schemas-data/3.1/core/downstream-connection-requirement.json +1 -1
- package/dist/lib/schemas-data/3.1/core/duration.json +1 -1
- package/dist/lib/schemas-data/3.1/core/education-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/error.json +1 -1
- package/dist/lib/schemas-data/3.1/core/evaluator-spec.json +5 -5
- package/dist/lib/schemas-data/3.1/core/event-custom-data.json +2 -2
- package/dist/lib/schemas-data/3.1/core/event-source-health.json +3 -3
- package/dist/lib/schemas-data/3.1/core/event-surface.json +2 -2
- package/dist/lib/schemas-data/3.1/core/event.json +8 -8
- package/dist/lib/schemas-data/3.1/core/ext.json +1 -1
- package/dist/lib/schemas-data/3.1/core/feature-requirement.json +1 -1
- package/dist/lib/schemas-data/3.1/core/flight-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-audience.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-device-platform.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-device-type.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-geo.json +5 -5
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-placement.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-dimension-signal.json +2 -2
- package/dist/lib/schemas-data/3.1/core/forecast-point-dimensions.json +7 -7
- package/dist/lib/schemas-data/3.1/core/forecast-point.json +27 -27
- package/dist/lib/schemas-data/3.1/core/forecast-range.json +1 -1
- package/dist/lib/schemas-data/3.1/core/forecast-vendor-metric-value.json +5 -5
- package/dist/lib/schemas-data/3.1/core/format-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/format-option-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/format-shape-vocabulary.json +1 -1
- package/dist/lib/schemas-data/3.1/core/format.json +44 -44
- package/dist/lib/schemas-data/3.1/core/frequency-cap.json +4 -4
- package/dist/lib/schemas-data/3.1/core/generation-credential.json +3 -3
- package/dist/lib/schemas-data/3.1/core/geo-breakdown-support.json +3 -3
- package/dist/lib/schemas-data/3.1/core/geo-delivery-metrics.json +6 -6
- package/dist/lib/schemas-data/3.1/core/hotel-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/identifier.json +2 -2
- package/dist/lib/schemas-data/3.1/core/impairment.json +3 -3
- package/dist/lib/schemas-data/3.1/core/industry-identifier.json +2 -2
- package/dist/lib/schemas-data/3.1/core/insertion-order.json +1 -1
- package/dist/lib/schemas-data/3.1/core/installment-deadlines.json +2 -2
- package/dist/lib/schemas-data/3.1/core/installment.json +9 -9
- package/dist/lib/schemas-data/3.1/core/job-item.json +3 -3
- package/dist/lib/schemas-data/3.1/core/keyword-delivery-metrics.json +3 -3
- package/dist/lib/schemas-data/3.1/core/limited-series.json +1 -1
- package/dist/lib/schemas-data/3.1/core/material-deadline.json +1 -1
- package/dist/lib/schemas-data/3.1/core/mcp-webhook-payload.json +5 -5
- package/dist/lib/schemas-data/3.1/core/measurement-readiness.json +5 -5
- package/dist/lib/schemas-data/3.1/core/measurement-terms.json +3 -3
- package/dist/lib/schemas-data/3.1/core/measurement-window.json +1 -1
- package/dist/lib/schemas-data/3.1/core/media-buy-available-action.json +4 -4
- package/dist/lib/schemas-data/3.1/core/media-buy-features.json +1 -1
- package/dist/lib/schemas-data/3.1/core/media-buy.json +10 -10
- package/dist/lib/schemas-data/3.1/core/missing-metric.json +9 -9
- package/dist/lib/schemas-data/3.1/core/notification-config.json +4 -4
- package/dist/lib/schemas-data/3.1/core/offering-asset-group.json +16 -16
- package/dist/lib/schemas-data/3.1/core/offering.json +5 -5
- package/dist/lib/schemas-data/3.1/core/optimization-goal.json +7 -7
- package/dist/lib/schemas-data/3.1/core/outcome-measurement.json +2 -2
- package/dist/lib/schemas-data/3.1/core/overlay.json +1 -1
- package/dist/lib/schemas-data/3.1/core/package-signal-targeting-group.json +2 -2
- package/dist/lib/schemas-data/3.1/core/package-signal-targeting-groups.json +2 -2
- package/dist/lib/schemas-data/3.1/core/package-signal-targeting.json +3 -3
- package/dist/lib/schemas-data/3.1/core/package.json +17 -17
- package/dist/lib/schemas-data/3.1/core/pagination-request.json +1 -1
- package/dist/lib/schemas-data/3.1/core/pagination-response.json +1 -1
- package/dist/lib/schemas-data/3.1/core/performance-feedback.json +12 -12
- package/dist/lib/schemas-data/3.1/core/performance-standard.json +4 -4
- package/dist/lib/schemas-data/3.1/core/placement-definition.json +10 -10
- package/dist/lib/schemas-data/3.1/core/placement-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/placement.json +7 -7
- package/dist/lib/schemas-data/3.1/core/planned-delivery.json +5 -5
- package/dist/lib/schemas-data/3.1/core/platform-extension-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/postal-area-support.json +2 -2
- package/dist/lib/schemas-data/3.1/core/postal-area.json +4 -4
- package/dist/lib/schemas-data/3.1/core/postal-country-system.json +2 -2
- package/dist/lib/schemas-data/3.1/core/price.json +1 -1
- package/dist/lib/schemas-data/3.1/core/pricing-option.json +10 -10
- package/dist/lib/schemas-data/3.1/core/product-allocation.json +4 -4
- package/dist/lib/schemas-data/3.1/core/product-allowed-action.json +5 -5
- package/dist/lib/schemas-data/3.1/core/product-filters.json +27 -27
- package/dist/lib/schemas-data/3.1/core/product-format-declaration.json +16 -16
- package/dist/lib/schemas-data/3.1/core/product-signal-targeting-option.json +3 -3
- package/dist/lib/schemas-data/3.1/core/product.json +40 -40
- package/dist/lib/schemas-data/3.1/core/property-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/property-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/property-tag.json +1 -1
- package/dist/lib/schemas-data/3.1/core/property.json +6 -6
- package/dist/lib/schemas-data/3.1/core/proposal.json +6 -6
- package/dist/lib/schemas-data/3.1/core/protocol-envelope.json +5 -5
- package/dist/lib/schemas-data/3.1/core/provenance.json +9 -9
- package/dist/lib/schemas-data/3.1/core/publisher-property-selector.json +3 -3
- package/dist/lib/schemas-data/3.1/core/push-notification-config.json +2 -2
- package/dist/lib/schemas-data/3.1/core/real-estate-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/reference-asset.json +1 -1
- package/dist/lib/schemas-data/3.1/core/registry-event.json +13 -13
- package/dist/lib/schemas-data/3.1/core/registry-feed-response.json +2 -2
- package/dist/lib/schemas-data/3.1/core/reporting-capabilities.json +8 -8
- package/dist/lib/schemas-data/3.1/core/reporting-webhook.json +3 -3
- package/dist/lib/schemas-data/3.1/core/requirements/asset-requirements.json +13 -13
- package/dist/lib/schemas-data/3.1/core/requirements/audio-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/catalog-field-binding.json +4 -4
- package/dist/lib/schemas-data/3.1/core/requirements/catalog-requirements.json +5 -5
- package/dist/lib/schemas-data/3.1/core/requirements/css-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/daast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/html-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/image-asset-requirements.json +2 -2
- package/dist/lib/schemas-data/3.1/core/requirements/javascript-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/markdown-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/offering-asset-constraint.json +4 -4
- package/dist/lib/schemas-data/3.1/core/requirements/text-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/url-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/vast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/requirements/video-asset-requirements.json +6 -6
- package/dist/lib/schemas-data/3.1/core/requirements/webhook-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.1/core/response-payload-jws-envelope.json +1 -1
- package/dist/lib/schemas-data/3.1/core/response.json +1 -1
- package/dist/lib/schemas-data/3.1/core/rights-constraint.json +4 -4
- package/dist/lib/schemas-data/3.1/core/seller-agent-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-coverage-forecast.json +5 -5
- package/dist/lib/schemas-data/3.1/core/signal-definition-enrichment.json +4 -4
- package/dist/lib/schemas-data/3.1/core/signal-definition.json +5 -5
- package/dist/lib/schemas-data/3.1/core/signal-filters.json +3 -3
- package/dist/lib/schemas-data/3.1/core/signal-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-listing.json +4 -4
- package/dist/lib/schemas-data/3.1/core/signal-modeling-disclosure.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-pricing-option.json +2 -2
- package/dist/lib/schemas-data/3.1/core/signal-pricing.json +6 -6
- package/dist/lib/schemas-data/3.1/core/signal-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-selection-group-rule.json +1 -1
- package/dist/lib/schemas-data/3.1/core/signal-targeting-expression.json +4 -4
- package/dist/lib/schemas-data/3.1/core/signal-targeting-rules.json +2 -2
- package/dist/lib/schemas-data/3.1/core/signal-targeting.json +7 -7
- package/dist/lib/schemas-data/3.1/core/sla-window.json +1 -1
- package/dist/lib/schemas-data/3.1/core/special.json +2 -2
- package/dist/lib/schemas-data/3.1/core/start-timing.json +1 -1
- package/dist/lib/schemas-data/3.1/core/store-item.json +3 -3
- package/dist/lib/schemas-data/3.1/core/talent.json +2 -2
- package/dist/lib/schemas-data/3.1/core/targeting.json +22 -22
- package/dist/lib/schemas-data/3.1/core/tasks-get-request.json +5 -5
- package/dist/lib/schemas-data/3.1/core/tasks-get-response.json +10 -10
- package/dist/lib/schemas-data/3.1/core/tasks-list-request.json +13 -13
- package/dist/lib/schemas-data/3.1/core/tasks-list-response.json +8 -8
- package/dist/lib/schemas-data/3.1/core/transformer-param.json +1 -1
- package/dist/lib/schemas-data/3.1/core/transformer.json +5 -5
- package/dist/lib/schemas-data/3.1/core/truncation-sentinel.json +1 -1
- package/dist/lib/schemas-data/3.1/core/user-match.json +3 -3
- package/dist/lib/schemas-data/3.1/core/vehicle-item.json +4 -4
- package/dist/lib/schemas-data/3.1/core/vendor-metric-id.json +1 -1
- package/dist/lib/schemas-data/3.1/core/vendor-metric-optimization-supported-metric.json +3 -3
- package/dist/lib/schemas-data/3.1/core/vendor-metric-optimization.json +2 -2
- package/dist/lib/schemas-data/3.1/core/vendor-metric-value.json +3 -3
- package/dist/lib/schemas-data/3.1/core/vendor-pricing-option.json +3 -3
- package/dist/lib/schemas-data/3.1/core/version-envelope.json +1 -1
- package/dist/lib/schemas-data/3.1/core/webhook-activity-record.json +3 -3
- package/dist/lib/schemas-data/3.1/core/webhook-challenge-response.json +1 -1
- package/dist/lib/schemas-data/3.1/core/webhook-challenge.json +2 -2
- package/dist/lib/schemas-data/3.1/core/wholesale-feed-event.json +17 -17
- package/dist/lib/schemas-data/3.1/core/wholesale-feed-webhook.json +3 -3
- package/dist/lib/schemas-data/3.1/core/x-entity-types.json +1 -1
- package/dist/lib/schemas-data/3.1/creative/asset-types/index.json +6 -6
- package/dist/lib/schemas-data/3.1/creative/audit-observation.json +2 -2
- package/dist/lib/schemas-data/3.1/creative/creative-feature-result.json +2 -2
- package/dist/lib/schemas-data/3.1/creative/creative-purged-webhook.json +3 -3
- package/dist/lib/schemas-data/3.1/creative/creative-status-changed-webhook.json +4 -4
- package/dist/lib/schemas-data/3.1/creative/get-creative-delivery-request.json +6 -6
- package/dist/lib/schemas-data/3.1/creative/get-creative-delivery-response.json +9 -9
- package/dist/lib/schemas-data/3.1/creative/get-creative-features-request.json +6 -6
- package/dist/lib/schemas-data/3.1/creative/get-creative-features-response.json +11 -11
- package/dist/lib/schemas-data/3.1/creative/list-creative-formats-request.json +13 -13
- package/dist/lib/schemas-data/3.1/creative/list-creative-formats-response.json +9 -9
- package/dist/lib/schemas-data/3.1/creative/list-creatives-request.json +9 -9
- package/dist/lib/schemas-data/3.1/creative/list-creatives-response.json +21 -21
- package/dist/lib/schemas-data/3.1/creative/list-transformers-request.json +8 -8
- package/dist/lib/schemas-data/3.1/creative/list-transformers-response.json +8 -8
- package/dist/lib/schemas-data/3.1/creative/preview-creative-request.json +12 -12
- package/dist/lib/schemas-data/3.1/creative/preview-creative-response.json +14 -14
- package/dist/lib/schemas-data/3.1/creative/preview-render.json +1 -1
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-request.json +8 -8
- package/dist/lib/schemas-data/3.1/creative/sync-creatives-response.json +15 -15
- package/dist/lib/schemas-data/3.1/creative/validate-input-request.json +4 -4
- package/dist/lib/schemas-data/3.1/creative/validate-input-response.json +4 -4
- package/dist/lib/schemas-data/3.1/creative/validate-input-result.json +1 -1
- package/dist/lib/schemas-data/3.1/creative/video-brief.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/account-scope.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/account-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/action-not-allowed-reason.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/action-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/adcp-protocol.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/adjustment-kind.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/advertiser-industry.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/age-verification-method.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/assessment-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/asset-content-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/attestation-claim.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/attribution-methodology.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/attribution-model.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/audience-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/audience-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/audio-channel-layout.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/audio-distribution-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/auth-scheme.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/available-metric.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/billing-party.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/binary-verdict.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/brand-agent-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/c2pa-watermark-action.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/canceled-by.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/catalog-action.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/catalog-item-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/channels.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/cloud-storage-protocol.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/co-branding-requirement.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/collection-cadence.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/collection-kind.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/collection-relationship.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/collection-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/completion-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/consent-basis.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/content-id-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/content-rating-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-action.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-agent-capability.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-approval-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-event-reason-code.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-quality.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-selection-strategy.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-sort-field.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/creative-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/daast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/daast-version.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/day-of-week.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/delegation-authority.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/delivery-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/demographic-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/derivative-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/device-platform.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/device-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/digital-source-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/dimension-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/disclosure-persistence.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/disclosure-position.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/distance-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/distribution-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/embedded-provenance-method.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/error-code.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/error-scope.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/escalation-severity.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/event-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/exclusivity.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/feature-check-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/feed-format.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/feedback-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/forecast-method.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/forecast-range-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/forecastable-metric.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/format-id-parameter.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/frame-rate-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/frequency-cap-scope.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/genre-taxonomy.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/geo-level.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/gop-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/governance-decision.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/governance-domain.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/governance-mode.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/governance-phase.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/history-entry-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/http-method.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/impairment-offline-state.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/impairment-reason-code.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/installment-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/javascript-module-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/landing-page-requirement.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/legacy-postal-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/lift-dimension.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/logo-slot.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/makegood-remedy.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/markdown-flavor.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/match-id-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/match-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/media-buy-action-mode.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/media-buy-health.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/media-buy-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/media-buy-valid-action.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/metric-scope.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/metric-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/metro-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/moov-atom-position.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/notification-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/offering-availability-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/outcome-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/pacing.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/payment-terms.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/performance-standard-metric.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/policy-category.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/policy-enforcement.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/postal-system.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/preview-output-format.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/pricing-model.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/production-quality.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/property-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/proposal-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/publisher-identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/purchase-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/reach-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/reporting-frequency.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/response-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/restricted-attribute.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/right-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/right-use.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/rights-billing-period.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/scan-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/si-session-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/signal-catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/signal-source.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/signal-value-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/snapshot-unavailable-reason.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/social-placement-surface.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/sort-direction.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/sort-metric.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/special-category.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/specialism.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/sponsored-placement-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/talent-role.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/task-status.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/task-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/transport-mode.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/travel-time-unit.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/uid-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/universal-macro.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/update-frequency.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/url-asset-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/validation-mode.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/vast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/vast-version.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/video-placement-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/viewability-standard.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/watermark-media-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/wcag-level.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/webhook-response-type.json +1 -1
- package/dist/lib/schemas-data/3.1/enums/webhook-security-method.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/account-setup-required.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/action-not-allowed.json +4 -4
- package/dist/lib/schemas-data/3.1/error-details/agent-permission-denied.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/audience-too-small.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/authorization-required.json +3 -3
- package/dist/lib/schemas-data/3.1/error-details/billing-not-permitted-for-agent.json +3 -3
- package/dist/lib/schemas-data/3.1/error-details/billing-not-supported.json +2 -2
- package/dist/lib/schemas-data/3.1/error-details/budget-too-low.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/conflict.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/creative-rejected.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/policy-violation.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/rate-limited.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/stale-response.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/vendor-error-codes.json +1 -1
- package/dist/lib/schemas-data/3.1/error-details/version-unsupported.json +2 -2
- package/dist/lib/schemas-data/3.1/extensions/extension-meta.json +1 -1
- package/dist/lib/schemas-data/3.1/extensions/index.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/_base.json +5 -5
- package/dist/lib/schemas-data/3.1/formats/canonical/agent_placement.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/audio_daast.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/audio_hosted.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/display_tag.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/html5.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/image.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/image_carousel.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/native_in_feed.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/responsive_creative.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/sponsored_placement.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/video_hosted.json +2 -2
- package/dist/lib/schemas-data/3.1/formats/canonical/video_vast.json +2 -2
- package/dist/lib/schemas-data/3.1/governance/attribute-definition.json +1 -1
- package/dist/lib/schemas-data/3.1/governance/audience-constraints.json +3 -3
- package/dist/lib/schemas-data/3.1/governance/check-governance-request.json +8 -8
- package/dist/lib/schemas-data/3.1/governance/check-governance-response.json +7 -7
- package/dist/lib/schemas-data/3.1/governance/get-plan-audit-logs-request.json +5 -5
- package/dist/lib/schemas-data/3.1/governance/get-plan-audit-logs-response.json +11 -11
- package/dist/lib/schemas-data/3.1/governance/policy-category-definition.json +2 -2
- package/dist/lib/schemas-data/3.1/governance/policy-entry.json +6 -6
- package/dist/lib/schemas-data/3.1/governance/policy-ref.json +1 -1
- package/dist/lib/schemas-data/3.1/governance/report-plan-outcome-request.json +7 -7
- package/dist/lib/schemas-data/3.1/governance/report-plan-outcome-response.json +5 -5
- package/dist/lib/schemas-data/3.1/governance/sync-plans-request.json +14 -14
- package/dist/lib/schemas-data/3.1/governance/sync-plans-response.json +6 -6
- package/dist/lib/schemas-data/3.1/index.json +443 -443
- package/dist/lib/schemas-data/3.1/manifest.json +3 -3
- package/dist/lib/schemas-data/3.1/manifest.schema.json +1 -1
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-request.json +16 -16
- package/dist/lib/schemas-data/3.1/media-buy/build-creative-response.json +35 -35
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-request.json +13 -13
- package/dist/lib/schemas-data/3.1/media-buy/create-media-buy-response.json +19 -19
- package/dist/lib/schemas-data/3.1/media-buy/get-media-buy-delivery-request.json +23 -23
- package/dist/lib/schemas-data/3.1/media-buy/get-media-buy-delivery-response.json +27 -27
- package/dist/lib/schemas-data/3.1/media-buy/get-media-buys-request.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/get-media-buys-response.json +30 -30
- package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/get-products-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/get-products-request.json +13 -13
- package/dist/lib/schemas-data/3.1/media-buy/get-products-response.json +10 -10
- package/dist/lib/schemas-data/3.1/media-buy/list-creative-formats-request.json +13 -13
- package/dist/lib/schemas-data/3.1/media-buy/list-creative-formats-response.json +9 -9
- package/dist/lib/schemas-data/3.1/media-buy/log-event-request.json +5 -5
- package/dist/lib/schemas-data/3.1/media-buy/log-event-response.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/media-buy-delivery-webhook-result.json +9 -9
- package/dist/lib/schemas-data/3.1/media-buy/package-request.json +23 -23
- package/dist/lib/schemas-data/3.1/media-buy/package-update.json +13 -13
- package/dist/lib/schemas-data/3.1/media-buy/provide-performance-feedback-request.json +7 -7
- package/dist/lib/schemas-data/3.1/media-buy/provide-performance-feedback-response.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/sync-audiences-request.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/sync-audiences-response.json +14 -14
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-request.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/sync-catalogs-response.json +14 -14
- package/dist/lib/schemas-data/3.1/media-buy/sync-event-sources-request.json +8 -8
- package/dist/lib/schemas-data/3.1/media-buy/sync-event-sources-response.json +14 -14
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-request.json +11 -11
- package/dist/lib/schemas-data/3.1/media-buy/update-media-buy-response.json +17 -17
- package/dist/lib/schemas-data/3.1/pricing-options/cpa-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/cpc-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/cpcv-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/cpm-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/cpp-option.json +5 -5
- package/dist/lib/schemas-data/3.1/pricing-options/cpv-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/flat-rate-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/price-breakdown.json +2 -2
- package/dist/lib/schemas-data/3.1/pricing-options/price-guidance.json +1 -1
- package/dist/lib/schemas-data/3.1/pricing-options/time-option.json +4 -4
- package/dist/lib/schemas-data/3.1/pricing-options/vcpm-option.json +4 -4
- package/dist/lib/schemas-data/3.1/property/authorization-result.json +1 -1
- package/dist/lib/schemas-data/3.1/property/base-property-source.json +4 -4
- package/dist/lib/schemas-data/3.1/property/create-property-list-request.json +8 -8
- package/dist/lib/schemas-data/3.1/property/create-property-list-response.json +6 -6
- package/dist/lib/schemas-data/3.1/property/delete-property-list-request.json +5 -5
- package/dist/lib/schemas-data/3.1/property/delete-property-list-response.json +5 -5
- package/dist/lib/schemas-data/3.1/property/delivery-record.json +3 -3
- package/dist/lib/schemas-data/3.1/property/get-property-list-request.json +5 -5
- package/dist/lib/schemas-data/3.1/property/get-property-list-response.json +9 -9
- package/dist/lib/schemas-data/3.1/property/list-property-lists-request.json +6 -6
- package/dist/lib/schemas-data/3.1/property/list-property-lists-response.json +7 -7
- package/dist/lib/schemas-data/3.1/property/property-error.json +2 -2
- package/dist/lib/schemas-data/3.1/property/property-feature-definition.json +2 -2
- package/dist/lib/schemas-data/3.1/property/property-feature-result.json +4 -4
- package/dist/lib/schemas-data/3.1/property/property-feature-value.json +2 -2
- package/dist/lib/schemas-data/3.1/property/property-feature.json +1 -1
- package/dist/lib/schemas-data/3.1/property/property-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.1/property/property-list-filters.json +5 -5
- package/dist/lib/schemas-data/3.1/property/property-list.json +6 -6
- package/dist/lib/schemas-data/3.1/property/update-property-list-request.json +8 -8
- package/dist/lib/schemas-data/3.1/property/update-property-list-response.json +6 -6
- package/dist/lib/schemas-data/3.1/property/validate-property-delivery-request.json +6 -6
- package/dist/lib/schemas-data/3.1/property/validate-property-delivery-response.json +6 -6
- package/dist/lib/schemas-data/3.1/property/validation-result.json +5 -5
- package/dist/lib/schemas-data/3.1/protocol/get-adcp-capabilities-request.json +4 -4
- package/dist/lib/schemas-data/3.1/protocol/get-adcp-capabilities-response.json +33 -33
- package/dist/lib/schemas-data/3.1/protocol/get-task-status-request.json +5 -5
- package/dist/lib/schemas-data/3.1/protocol/get-task-status-response.json +10 -10
- package/dist/lib/schemas-data/3.1/protocol/list-tasks-request.json +13 -13
- package/dist/lib/schemas-data/3.1/protocol/list-tasks-response.json +8 -8
- package/dist/lib/schemas-data/3.1/registries/v1-canonical-mapping.json +5 -5
- package/dist/lib/schemas-data/3.1/signals/activate-signal-request.json +6 -6
- package/dist/lib/schemas-data/3.1/signals/activate-signal-response.json +9 -9
- package/dist/lib/schemas-data/3.1/signals/get-signals-async-response-submitted.json +4 -4
- package/dist/lib/schemas-data/3.1/signals/get-signals-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.1/signals/get-signals-request.json +11 -11
- package/dist/lib/schemas-data/3.1/signals/get-signals-response.json +17 -17
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-capabilities.json +1 -1
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-context-use.json +1 -1
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-get-offering-request.json +4 -4
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-get-offering-response.json +9 -9
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-identity.json +1 -1
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-initiate-session-request.json +7 -7
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-initiate-session-response.json +10 -10
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-send-message-request.json +5 -5
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-send-message-response.json +10 -10
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-sponsored-context-receipt.json +4 -4
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-sponsored-context.json +4 -4
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-terminate-session-request.json +4 -4
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-terminate-session-response.json +7 -7
- package/dist/lib/schemas-data/3.1/sponsored-intelligence/si-ui-element.json +1 -1
- package/dist/lib/schemas-data/3.1/trusted-match/available-package.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/context-match-request.json +5 -5
- package/dist/lib/schemas-data/3.1/trusted-match/context-match-response.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/error.json +1 -1
- package/dist/lib/schemas-data/3.1/trusted-match/identity-match-request.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/identity-match-response.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/offer-price.json +1 -1
- package/dist/lib/schemas-data/3.1/trusted-match/offer.json +5 -5
- package/dist/lib/schemas-data/3.1/trusted-match/provider-identity-match-response.json +4 -4
- package/dist/lib/schemas-data/3.1/trusted-match/provider-registration.json +2 -2
- package/dist/lib/schemas-data/3.1/trusted-match/publisher-tmpx-config.json +1 -1
- package/dist/lib/schemas-data/3.1/trusted-match/tmpx-chunk.json +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/entity-hydration.generated.mjs.map +1 -1
- package/dist/lib/server/wire-spec-fields.generated.d.mts +29 -29
- package/dist/lib/server/wire-spec-fields.generated.d.ts +29 -29
- package/dist/lib/server/wire-spec-fields.generated.js +29 -29
- package/dist/lib/server/wire-spec-fields.generated.js.map +1 -1
- package/dist/lib/server/wire-spec-fields.generated.mjs +29 -29
- package/dist/lib/server/wire-spec-fields.generated.mjs.map +1 -1
- package/dist/lib/testing/index.d.mts +1 -1
- package/dist/lib/testing/index.d.ts +1 -1
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js +12 -0
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/index.mjs +12 -0
- package/dist/lib/testing/index.mjs.map +1 -1
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.d.mts +6 -0
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.d.ts +6 -0
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.js +11 -0
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.js.map +1 -1
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.mjs +10 -0
- package/dist/lib/testing/storyboard/canonical-format-satisfaction.mjs.map +1 -1
- package/dist/lib/testing/storyboard/creative-assets.d.mts +5 -0
- package/dist/lib/testing/storyboard/creative-assets.d.ts +6 -0
- package/dist/lib/testing/storyboard/creative-assets.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/creative-assets.js +180 -0
- package/dist/lib/testing/storyboard/creative-assets.js.map +1 -0
- package/dist/lib/testing/storyboard/creative-assets.mjs +154 -0
- package/dist/lib/testing/storyboard/creative-assets.mjs.map +1 -0
- package/dist/lib/testing/storyboard/fixture-resolution.d.mts +37 -0
- package/dist/lib/testing/storyboard/fixture-resolution.d.ts +38 -0
- package/dist/lib/testing/storyboard/fixture-resolution.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/fixture-resolution.js +424 -0
- package/dist/lib/testing/storyboard/fixture-resolution.js.map +1 -0
- package/dist/lib/testing/storyboard/fixture-resolution.mjs +395 -0
- package/dist/lib/testing/storyboard/fixture-resolution.mjs.map +1 -0
- package/dist/lib/testing/storyboard/index.d.mts +2 -1
- package/dist/lib/testing/storyboard/index.d.ts +2 -1
- package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/index.js +13 -0
- package/dist/lib/testing/storyboard/index.js.map +1 -1
- package/dist/lib/testing/storyboard/index.mjs +14 -0
- package/dist/lib/testing/storyboard/index.mjs.map +1 -1
- package/dist/lib/testing/storyboard/junit.js +14 -1
- package/dist/lib/testing/storyboard/junit.js.map +1 -1
- package/dist/lib/testing/storyboard/junit.mjs +14 -1
- package/dist/lib/testing/storyboard/junit.mjs.map +1 -1
- package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/loader.js +2 -0
- package/dist/lib/testing/storyboard/loader.js.map +1 -1
- package/dist/lib/testing/storyboard/loader.mjs +2 -0
- package/dist/lib/testing/storyboard/loader.mjs.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +170 -12
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.mjs +175 -13
- package/dist/lib/testing/storyboard/runner.mjs.map +1 -1
- package/dist/lib/testing/storyboard/seeding.d.mts +10 -3
- package/dist/lib/testing/storyboard/seeding.d.ts +10 -3
- package/dist/lib/testing/storyboard/seeding.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/seeding.js +550 -2
- package/dist/lib/testing/storyboard/seeding.js.map +1 -1
- package/dist/lib/testing/storyboard/seeding.mjs +555 -2
- package/dist/lib/testing/storyboard/seeding.mjs.map +1 -1
- package/dist/lib/testing/storyboard/types.d.mts +106 -0
- package/dist/lib/testing/storyboard/types.d.ts +106 -0
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/types.js +1 -0
- package/dist/lib/testing/storyboard/types.js.map +1 -1
- package/dist/lib/testing/storyboard/types.mjs +1 -0
- package/dist/lib/testing/storyboard/types.mjs.map +1 -1
- package/dist/lib/testing/stubs/governance-agent-stub.d.ts.map +1 -1
- package/dist/lib/testing/stubs/governance-agent-stub.js +4 -1
- package/dist/lib/testing/stubs/governance-agent-stub.js.map +1 -1
- package/dist/lib/testing/stubs/governance-agent-stub.mjs +4 -1
- package/dist/lib/testing/stubs/governance-agent-stub.mjs.map +1 -1
- package/dist/lib/types/core.generated.d.mts +3 -1
- package/dist/lib/types/core.generated.d.ts +3 -1
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js.map +1 -1
- package/dist/lib/types/inline-enums.generated.d.mts +2 -0
- package/dist/lib/types/inline-enums.generated.d.ts +2 -0
- package/dist/lib/types/inline-enums.generated.d.ts.map +1 -1
- package/dist/lib/types/inline-enums.generated.js +3 -0
- package/dist/lib/types/inline-enums.generated.js.map +1 -1
- package/dist/lib/types/inline-enums.generated.mjs +2 -0
- package/dist/lib/types/inline-enums.generated.mjs.map +1 -1
- package/dist/lib/types/manifest.generated.d.mts +3 -3
- package/dist/lib/types/manifest.generated.d.ts +3 -3
- package/dist/lib/types/manifest.generated.js.map +1 -1
- package/dist/lib/types/manifest.generated.mjs.map +1 -1
- package/dist/lib/types/per-tool-index.json +1 -1
- package/dist/lib/validation/schema-loader.d.mts +16 -0
- package/dist/lib/validation/schema-loader.d.ts +16 -0
- package/dist/lib/validation/schema-loader.d.ts.map +1 -1
- package/dist/lib/validation/schema-loader.js +116 -0
- package/dist/lib/validation/schema-loader.js.map +1 -1
- package/dist/lib/validation/schema-loader.mjs +115 -0
- package/dist/lib/validation/schema-loader.mjs.map +1 -1
- package/dist/lib/version.d.mts +7 -7
- package/dist/lib/version.d.ts +7 -7
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +7 -6
- package/dist/lib/version.js.map +1 -1
- package/dist/lib/version.mjs +7 -6
- package/dist/lib/version.mjs.map +1 -1
- package/docs/llms.txt +3 -3
- package/package.json +2 -2
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/brand/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/creative/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/creative/scenarios/billing_out_of_band.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/creative/scenarios/canonical_supported_formats.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/creative/scenarios/evaluator_auth.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/creative/scenarios/native_in_feed.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/governance/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/available_actions.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/canonical_formats.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/creative_reception.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/dependency_impairment.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/dependency_impairment_audience.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/get_products_async.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/measurement_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/media-buy/state-machine.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/signals/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/signals/scenarios/get_signals_async.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/brand/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/creative/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/creative/scenarios/billing_out_of_band.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/creative/scenarios/evaluator_auth.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/creative/scenarios/native_in_feed.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/governance/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/available_actions.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/canonical_formats.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/creative_reception.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/get_products_async.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/media-buy/state-machine.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/signals/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/signals/scenarios/get_signals_async.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/audience-sync/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/brand-rights/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/collection-lists/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/content-standards/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/creative-ad-server/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/creative-generative/generative-seller.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/creative-generative/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/creative-template/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/creative-transformers/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/governance-aware-seller/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/governance-delivery-monitor/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/governance-spend-authority/denied.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/governance-spend-authority/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/property-lists/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/sales-broadcast-tv/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/sales-catalog-driven/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/sales-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/sales-non-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/sales-proposal-mode/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/sales-social/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/signal-marketplace/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/signal-owned/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/specialisms/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/acme-outdoor-live.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/acme-outdoor.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/billing-gate-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/bistro-oranje.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/distributed-brand-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/nova-motors.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/osei-natural.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/parallel-dispatch-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/rate-limit-trip-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/signed-requests-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/single-side-trust-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/substitution-observer-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/summit-foods.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-kits/webhook-receiver-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/catalog-macro-substitution.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/002-full-plan.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/README.md +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/canonicalization.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/keys.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-receiver-envelope.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/README.md +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/keys.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/billing-gate-dispatch.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/canonical-format-validate-input.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/capability-discovery.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/collection-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/comply-controller-mode-gate.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/content-standards-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/deterministic-testing.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/error-compliance-signals.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/error-compliance.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/fictional-entities.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/get-media-buys-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/get-products-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/get-signals-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/idempotency.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/notification-config-event-scope.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/notification-config-lifecycle.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/notification-config-rejections.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/pagination-integrity-creative-formats.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/pagination-integrity-list-accounts.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/property-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/read-tool-idempotency.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/runner-output-contract.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/schema-validation-signals.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/schema-validation.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/security.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/signed-requests.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/stale-response-advisory.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/v3-envelope-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/version-negotiation.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/webhook-emission.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/webhook-receiver-envelope.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/wholesale-feed-product-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/wholesale-feed-products.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10 → 3.1.11}/universal/wholesale-feed-signals.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/brand/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/creative/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/creative/scenarios/billing_out_of_band.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/creative/scenarios/canonical_supported_formats.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/creative/scenarios/evaluator_auth.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/creative/scenarios/native_in_feed.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/governance/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/available_actions.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/canonical_formats.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/creative_reception.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/dependency_impairment.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/dependency_impairment_audience.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/get_products_async.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/measurement_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/media-buy/state-machine.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/signals/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/signals/scenarios/get_signals_async.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/brand/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/creative/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/creative/scenarios/billing_out_of_band.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/creative/scenarios/evaluator_auth.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/creative/scenarios/native_in_feed.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/governance/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/available_actions.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/canonical_formats.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/creative_reception.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/get_products_async.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/media-buy/state-machine.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/signals/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/signals/scenarios/get_signals_async.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/audience-sync/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/brand-rights/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/collection-lists/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/content-standards/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/creative-ad-server/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/creative-generative/generative-seller.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/creative-generative/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/creative-template/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/creative-transformers/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/governance-aware-seller/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/governance-delivery-monitor/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/governance-spend-authority/denied.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/governance-spend-authority/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/property-lists/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/sales-broadcast-tv/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/sales-catalog-driven/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/sales-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/sales-non-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/sales-proposal-mode/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/sales-social/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/signal-marketplace/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/signal-owned/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/specialisms/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/acme-outdoor-live.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/acme-outdoor.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/billing-gate-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/bistro-oranje.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/distributed-brand-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/nova-motors.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/osei-natural.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/parallel-dispatch-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/rate-limit-trip-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/signed-requests-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/single-side-trust-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/substitution-observer-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/summit-foods.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-kits/webhook-receiver-runner.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/catalog-macro-substitution.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/002-full-plan.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/README.md +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/canonicalization.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/keys.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-receiver-envelope.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/README.md +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/keys.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/billing-gate-dispatch.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/canonical-format-validate-input.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/capability-discovery.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/collection-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/comply-controller-mode-gate.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/content-standards-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/deterministic-testing.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/error-compliance-signals.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/error-compliance.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/fictional-entities.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/get-media-buys-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/get-products-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/get-signals-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/idempotency.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/notification-config-event-scope.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/notification-config-lifecycle.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/notification-config-rejections.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/pagination-integrity-creative-formats.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/pagination-integrity-list-accounts.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/property-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/read-tool-idempotency.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/runner-output-contract.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/schema-validation-signals.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/schema-validation.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/security.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/signed-requests.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/stale-response-advisory.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/v3-envelope-integrity.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/version-negotiation.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/webhook-emission.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/webhook-receiver-envelope.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/wholesale-feed-product-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/wholesale-feed-products.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
- /package/compliance/cache/{3.1.10.previous → 3.1.11.previous}/universal/wholesale-feed-signals.yaml +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/testing/storyboard/seeding.ts"],"sourcesContent":["/**\n * Pre-flight `comply_test_controller` seeding.\n *\n * Spec: adcontextprotocol/adcp#2585 (fixtures block + `controller_seeding`\n * flag) + adcontextprotocol/adcp#2584 (seed_* scenarios on\n * `comply_test_controller`). Storyboards such as `sales_non_guaranteed`,\n * `creative_ad_server`, `governance_delivery_monitor`,\n * `media_buy_governance_escalation`, and `governance_spend_authority`\n * reference fixture IDs (product_ids, pricing_option_ids, creative_ids,\n * plan_ids, media_buy_ids) that the seller must already hold before the\n * buyer-side flow runs. This module fires the `seed_*` scenarios derived\n * from the storyboard's top-level `fixtures:` block before the first real\n * phase, so the seller's buyer-agent ledger and catalog are populated ahead\n * of any `sync_accounts` / `create_media_buy` / `sync_creatives` / etc. call\n * that would otherwise fail or route through the wrong commercial-state gate.\n *\n * Failures here surface as a dedicated synthetic phase (`__controller_seeding__`)\n * so an implementor reading the report can distinguish \"setup broke\" from\n * \"buyer did something wrong\" — the runner short-circuits the rest of the\n * phases on any seed failure, emitting a cascade skip with reason\n * `controller_seeding_failed`.\n */\n\nimport type { TestClient } from '../client';\nimport { callControllerRaw } from '../test-controller';\nimport type {\n Storyboard,\n StoryboardContext,\n StoryboardFixtures,\n StoryboardPhaseResult,\n StoryboardRunOptions,\n StoryboardStepResult,\n} from './types';\n\n/** Synthetic phase id used in `StoryboardResult.phases[]` for the seed pass. */\nexport const CONTROLLER_SEEDING_PHASE_ID = '__controller_seeding__';\n\n/** Seed scenario names. Kept local — the server-side `SEED_SCENARIOS`\n * constant from `src/lib/server/test-controller.ts` is authoritative, but\n * importing it here would cross the testing ⇄ server module boundary. */\ntype SeedScenario =\n | 'seed_account'\n | 'seed_product'\n | 'seed_pricing_option'\n | 'seed_creative_format'\n | 'seed_creative'\n | 'seed_plan'\n | 'seed_media_buy';\ntype BuyerAgentSeedScenario = 'seed_buyer_agent';\n\ninterface SeedCall {\n step_id: string;\n title: string;\n scenario: SeedScenario | BuyerAgentSeedScenario;\n params: Record<string, unknown>;\n /** Authoring error (e.g. missing required id). When set, the call fails at\n * build time — no controller request is issued. */\n authoring_error?: string;\n}\n\n/**\n * Translate a storyboard `fixtures:` block into an ordered list of seed\n * calls. Each entry's id field(s) are lifted into the scenario params; every\n * remaining field rides in `params.fixture` verbatim. Missing required ids\n * produce an authoring-error marker the runner surfaces as a failed seed\n * step (rather than crashing or silently skipping).\n */\n// Top-level fixture keys are forwarded to the server verbatim inside\n// `params.fixture`. Prototype-pollution rejection (`__proto__`, `constructor`,\n// `prototype`) is enforced by the server-side `dispatchSeed` at a single\n// canonical point (`src/lib/server/test-controller.ts`), NOT re-guarded here:\n// surfacing the rejection through the normal seed-error path keeps one source\n// of truth for the check, and the server-side handler is where a seed request\n// can actually land from any client implementation. A future refactor that\n// removes the server check must add the client guard before removing it.\nexport function buildSeedCalls(fixtures: StoryboardFixtures | undefined): SeedCall[] {\n if (!fixtures) return [];\n const calls: SeedCall[] = [];\n\n (fixtures.accounts ?? []).forEach((entry, i) => {\n const { account_id, ...fixtureFields } = entry;\n const label = account_id ?? `#${i}`;\n if (typeof account_id !== 'string' || account_id.length === 0) {\n calls.push({\n step_id: `seed_account.${label}`,\n title: `Seed account ${label}`,\n scenario: 'seed_account',\n params: { fixture: seedFixtureFromFields(fixtureFields) },\n authoring_error: `fixtures.accounts[${i}] requires a non-empty string 'account_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_account.${account_id}`,\n title: `Seed account ${account_id}`,\n scenario: 'seed_account',\n params: { account_id, fixture: seedFixtureFromFields(fixtureFields) },\n });\n });\n\n (fixtures.buyer_agents ?? []).forEach((entry, i) => {\n const { agent_url, ...params } = entry;\n const label = agent_url ?? `#${i}`;\n if (typeof agent_url !== 'string' || agent_url.length === 0) {\n calls.push({\n step_id: `seed_buyer_agent.${label}`,\n title: `Seed buyer agent ${label}`,\n scenario: 'seed_buyer_agent',\n params,\n authoring_error: `fixtures.buyer_agents[${i}] requires a non-empty string 'agent_url'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_buyer_agent.${agent_url}`,\n title: `Seed buyer agent ${agent_url}`,\n scenario: 'seed_buyer_agent',\n params: { agent_url, ...params },\n });\n });\n\n (fixtures.products ?? []).forEach((entry, i) => {\n const { product_id, ...fixture } = entry;\n const label = product_id ?? `#${i}`;\n if (typeof product_id !== 'string' || product_id.length === 0) {\n calls.push({\n step_id: `seed_product.${label}`,\n title: `Seed product ${label}`,\n scenario: 'seed_product',\n params: { fixture },\n authoring_error: `fixtures.products[${i}] requires a non-empty string 'product_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_product.${product_id}`,\n title: `Seed product ${product_id}`,\n scenario: 'seed_product',\n params: { product_id, fixture },\n });\n });\n\n (fixtures.pricing_options ?? []).forEach((entry, i) => {\n const { product_id, pricing_option_id, ...fixture } = entry;\n const label =\n pricing_option_id && product_id\n ? `${product_id}:${pricing_option_id}`\n : (pricing_option_id ?? product_id ?? `#${i}`);\n const missing: string[] = [];\n if (typeof product_id !== 'string' || product_id.length === 0) missing.push('product_id');\n if (typeof pricing_option_id !== 'string' || pricing_option_id.length === 0) missing.push('pricing_option_id');\n if (missing.length > 0) {\n calls.push({\n step_id: `seed_pricing_option.${label}`,\n title: `Seed pricing option ${label}`,\n scenario: 'seed_pricing_option',\n params: { ...(product_id && { product_id }), ...(pricing_option_id && { pricing_option_id }), fixture },\n authoring_error: `fixtures.pricing_options[${i}] requires non-empty string(s) for: ${missing.join(', ')}`,\n });\n return;\n }\n calls.push({\n step_id: `seed_pricing_option.${product_id}.${pricing_option_id}`,\n title: `Seed pricing option ${pricing_option_id} on ${product_id}`,\n scenario: 'seed_pricing_option',\n params: { product_id, pricing_option_id, fixture },\n });\n });\n\n (fixtures.creative_formats ?? []).forEach((entry, i) => {\n const { format_id, ...fixtureFields } = entry;\n const label = format_id ?? `#${i}`;\n if (typeof format_id !== 'string' || format_id.length === 0) {\n calls.push({\n step_id: `seed_creative_format.${label}`,\n title: `Seed creative format ${label}`,\n scenario: 'seed_creative_format',\n params: { fixture: seedFixtureFromFields(fixtureFields) },\n authoring_error: `fixtures.creative_formats[${i}] requires a non-empty string 'format_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_creative_format.${format_id}`,\n title: `Seed creative format ${format_id}`,\n scenario: 'seed_creative_format',\n params: { format_id, fixture: seedFixtureFromFields(fixtureFields) },\n });\n });\n\n (fixtures.creatives ?? []).forEach((entry, i) => {\n const { creative_id, ...fixture } = entry;\n const label = creative_id ?? `#${i}`;\n if (typeof creative_id !== 'string' || creative_id.length === 0) {\n calls.push({\n step_id: `seed_creative.${label}`,\n title: `Seed creative ${label}`,\n scenario: 'seed_creative',\n params: { fixture },\n authoring_error: `fixtures.creatives[${i}] requires a non-empty string 'creative_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_creative.${creative_id}`,\n title: `Seed creative ${creative_id}`,\n scenario: 'seed_creative',\n params: { creative_id, fixture },\n });\n });\n\n (fixtures.plans ?? []).forEach((entry, i) => {\n const { plan_id, ...fixture } = entry;\n const label = plan_id ?? `#${i}`;\n if (typeof plan_id !== 'string' || plan_id.length === 0) {\n calls.push({\n step_id: `seed_plan.${label}`,\n title: `Seed plan ${label}`,\n scenario: 'seed_plan',\n params: { fixture },\n authoring_error: `fixtures.plans[${i}] requires a non-empty string 'plan_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_plan.${plan_id}`,\n title: `Seed plan ${plan_id}`,\n scenario: 'seed_plan',\n params: { plan_id, fixture },\n });\n });\n\n (fixtures.media_buys ?? []).forEach((entry, i) => {\n const { media_buy_id, ...fixture } = entry;\n const label = media_buy_id ?? `#${i}`;\n if (typeof media_buy_id !== 'string' || media_buy_id.length === 0) {\n calls.push({\n step_id: `seed_media_buy.${label}`,\n title: `Seed media buy ${label}`,\n scenario: 'seed_media_buy',\n params: { fixture },\n authoring_error: `fixtures.media_buys[${i}] requires a non-empty string 'media_buy_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_media_buy.${media_buy_id}`,\n title: `Seed media buy ${media_buy_id}`,\n scenario: 'seed_media_buy',\n params: { media_buy_id, fixture },\n });\n });\n\n return calls;\n}\n\nfunction seedFixtureFromFields(fields: Record<string, unknown>): unknown {\n if (Object.keys(fields).length === 1 && Object.hasOwn(fields, 'fixture')) {\n return fields.fixture;\n }\n return fields;\n}\n\nexport interface ControllerSeedingResult {\n /** Synthetic pre-flight phase to prepend to `StoryboardResult.phases[]`. */\n phase: StoryboardPhaseResult;\n /** True when every seed call succeeded; false means downstream phases must cascade-skip. */\n allPassed: boolean;\n /** Step counts to fold into the storyboard-level totals. */\n passedCount: number;\n failedCount: number;\n /**\n * Agent didn't advertise `comply_test_controller` — the storyboard can't\n * be graded against this seller. The runner cascade-skips real phases\n * with canonical `missing_test_controller` instead of the seeding-failed\n * path. Implements the spec's `fixture_seed_unsupported` not_applicable\n * grade (storyboard-schema.yaml `skip_reasons`).\n */\n missingController?: boolean;\n /**\n * Agent advertised `comply_test_controller`, but not one of the generated\n * seed_* scenarios this storyboard requires. This is a coverage gap, not\n * a failed agent behavior.\n */\n seedUnsupported?: boolean;\n}\n\n/**\n * Fire every seed call for this storyboard. Returns `null` when seeding is\n * not applicable (opt-out, no declaration, empty fixtures) so the runner can\n * treat a no-op identically to a non-seeding storyboard.\n */\nexport async function runControllerSeeding(\n client: TestClient,\n storyboard: Storyboard,\n options: StoryboardRunOptions,\n context: StoryboardContext\n): Promise<ControllerSeedingResult | null> {\n if (options.skip_controller_seeding === true) return null;\n if (storyboard.prerequisites?.controller_seeding !== true) return null;\n const calls = buildSeedCalls(storyboard.fixtures);\n if (calls.length === 0) return null;\n\n // If we can see the agent's tool list and `comply_test_controller` is\n // absent, grade as not_applicable rather than issuing calls that are\n // guaranteed to fail on the wire. Spec: `fixture_seed_unsupported` in\n // storyboard-schema.yaml — missing test-controller is a coverage gap, not\n // a setup break. `options.agentTools` is discovered from the agent profile\n // or passed explicitly by the caller; we don't enforce when it's absent\n // because some harnesses skip tool discovery.\n if (options.agentTools && !options.agentTools.includes('comply_test_controller')) {\n return buildMissingControllerResult(storyboard, calls, context);\n }\n\n const start = Date.now();\n const steps: StoryboardStepResult[] = [];\n let passedCount = 0;\n let failedCount = 0;\n let allPassed = true;\n const seedContext = { correlation_id: `${storyboardCorrelationPrefix(storyboard)}--__seeding__` };\n const authoringErrorResult = buildAuthoringErrorResult(storyboard, calls, context, start);\n if (authoringErrorResult) return authoringErrorResult;\n const unsupportedScenario = await findUnsupportedSeedScenario(client, calls, options, seedContext);\n if (unsupportedScenario) {\n return buildUnsupportedSeedResult(\n storyboard,\n calls,\n context,\n unsupportedScenario.scenario,\n unsupportedScenario.detail\n );\n }\n\n for (const call of calls) {\n const stepStart = Date.now();\n let passed = false;\n let error: string | undefined;\n\n if (call.authoring_error) {\n error = call.authoring_error;\n } else {\n try {\n const raw = await callControllerRaw(\n client,\n { scenario: call.scenario, params: call.params, context: seedContext },\n options\n );\n const data = raw.data as { success?: boolean; error?: string; error_detail?: string } | undefined;\n if (raw.success && data?.success === true) {\n passed = true;\n } else if (raw.success && data?.success === false && data.error === 'UNKNOWN_SCENARIO') {\n return buildUnsupportedSeedResult(storyboard, calls, context, call.scenario, data.error_detail);\n } else {\n error = formatControllerError(call.scenario, raw, data);\n }\n } catch (err) {\n error = err instanceof Error ? err.message : String(err);\n }\n }\n\n const step: StoryboardStepResult = {\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed,\n duration_ms: Date.now() - stepStart,\n validations: [],\n context,\n extraction: { path: 'none' },\n ...(error !== undefined && { error }),\n };\n steps.push(step);\n if (passed) {\n passedCount++;\n } else {\n failedCount++;\n allPassed = false;\n }\n }\n\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Controller seeding (pre-flight)',\n passed: allPassed,\n steps,\n duration_ms: Date.now() - start,\n },\n allPassed,\n passedCount,\n failedCount,\n };\n}\n\nfunction storyboardCorrelationPrefix(storyboard: Storyboard): string {\n for (const phase of storyboard.phases) {\n for (const step of phase.steps) {\n const requestContext = step.sample_request?.context;\n if (!requestContext || typeof requestContext !== 'object' || Array.isArray(requestContext)) continue;\n const correlationId = (requestContext as { correlation_id?: unknown }).correlation_id;\n if (typeof correlationId !== 'string' || correlationId.length === 0) continue;\n const suffixSeparator = correlationId.lastIndexOf('--');\n return suffixSeparator > 0 ? correlationId.slice(0, suffixSeparator) : correlationId;\n }\n }\n return storyboard.id;\n}\n\nfunction buildAuthoringErrorResult(\n storyboard: Storyboard,\n calls: SeedCall[],\n context: StoryboardContext,\n start: number\n): ControllerSeedingResult | null {\n const authoringErrors = calls.filter((call): call is SeedCall & { authoring_error: string } =>\n Boolean(call.authoring_error)\n );\n if (authoringErrors.length === 0) return null;\n const steps: StoryboardStepResult[] = authoringErrors.map(call => ({\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: false,\n duration_ms: 0,\n validations: [],\n context,\n extraction: { path: 'none' },\n error: call.authoring_error,\n }));\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Controller seeding (pre-flight) — invalid storyboard fixtures',\n passed: false,\n steps,\n duration_ms: Date.now() - start,\n },\n allPassed: false,\n passedCount: 0,\n failedCount: steps.length,\n };\n}\n\nasync function findUnsupportedSeedScenario(\n client: TestClient,\n calls: SeedCall[],\n options: StoryboardRunOptions,\n seedContext: Record<string, unknown>\n): Promise<{ scenario: SeedScenario | BuyerAgentSeedScenario; detail: string } | null> {\n const requiredScenarios = [...new Set(calls.filter(call => !call.authoring_error).map(call => call.scenario))];\n if (requiredScenarios.length === 0) return null;\n\n let advertisedScenarios = controllerScenarioSetFromOptions(options);\n if (!advertisedScenarios) {\n advertisedScenarios = await fetchControllerScenarioSet(client, options, seedContext);\n }\n if (!advertisedScenarios) return null;\n\n for (const scenario of requiredScenarios) {\n if (!advertisedScenarios.has(scenario)) {\n return {\n scenario,\n detail: `list_scenarios did not advertise required seed scenario \"${scenario}\".`,\n };\n }\n }\n return null;\n}\n\nfunction controllerScenarioSetFromOptions(options: StoryboardRunOptions): Set<string> | null {\n const capabilities = options._controllerCapabilities;\n if (capabilities?.detected !== true) return null;\n return new Set((capabilities.scenarios as readonly string[]).filter(scenario => typeof scenario === 'string'));\n}\n\nasync function fetchControllerScenarioSet(\n client: TestClient,\n options: StoryboardRunOptions,\n seedContext: Record<string, unknown>\n): Promise<Set<string> | null> {\n try {\n const raw = await callControllerRaw(client, { scenario: 'list_scenarios', context: seedContext }, options);\n const data = raw.data as { success?: boolean; scenarios?: unknown } | undefined;\n if (!raw.success || data?.success !== true) return null;\n if (Array.isArray(data.scenarios)) {\n return new Set(data.scenarios.filter((scenario): scenario is string => typeof scenario === 'string'));\n }\n if (data.scenarios && typeof data.scenarios === 'object') {\n return new Set(Object.keys(data.scenarios));\n }\n return null;\n } catch {\n return null;\n }\n}\n\nconst UNSUPPORTED_SEED_DETAIL =\n 'Skipped: agent advertised comply_test_controller, but does not implement a seed_* scenario required by this storyboard (`fixture_seed_unsupported`). Storyboard grades not_applicable — the buyer-side flow depends on pre-seeded state the agent has no way to accept.';\n\nfunction buildUnsupportedSeedResult(\n storyboard: Storyboard,\n calls: Array<{ step_id: string; title: string }>,\n context: StoryboardContext,\n scenario: SeedScenario | BuyerAgentSeedScenario,\n detail?: string\n): ControllerSeedingResult {\n const skipDetail = detail\n ? `${UNSUPPORTED_SEED_DETAIL} Unsupported scenario ${scenario}: ${detail}`\n : `${UNSUPPORTED_SEED_DETAIL} Unsupported scenario: ${scenario}.`;\n const steps: StoryboardStepResult[] = calls.map(call => ({\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: true,\n skipped: true,\n skip_reason: 'fixture_seed_unsupported',\n skip: { reason: 'not_applicable', detail: skipDetail },\n duration_ms: 0,\n validations: [],\n context,\n extraction: { path: 'none' },\n }));\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Controller seeding (pre-flight) — agent lacks required seed scenario',\n passed: true,\n steps,\n duration_ms: 0,\n },\n allPassed: true,\n passedCount: 0,\n failedCount: 0,\n seedUnsupported: true,\n };\n}\n\nfunction formatControllerError(\n scenario: SeedScenario | BuyerAgentSeedScenario,\n raw: { success: boolean; error?: string },\n data: { success?: boolean; error?: string; error_detail?: string } | undefined\n): string {\n if (data?.error_detail) return data.error ? `${data.error}: ${data.error_detail}` : data.error_detail;\n if (data?.error) return data.error;\n return raw.error ?? `comply_test_controller ${scenario} call failed`;\n}\n\nconst MISSING_CONTROLLER_DETAIL =\n 'Skipped: agent did not advertise comply_test_controller, so fixture seeding (`fixture_seed_unsupported`) cannot run. Storyboard grades not_applicable — the buyer-side flow depends on pre-seeded state the agent has no way to accept.';\n\nfunction buildMissingControllerResult(\n storyboard: Storyboard,\n calls: Array<{ step_id: string; title: string }>,\n context: StoryboardContext\n): ControllerSeedingResult {\n const steps: StoryboardStepResult[] = calls.map(call => ({\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: true,\n skipped: true,\n skip_reason: 'missing_test_controller',\n skip: { reason: 'missing_test_controller', detail: MISSING_CONTROLLER_DETAIL },\n duration_ms: 0,\n validations: [],\n context,\n extraction: { path: 'none' },\n }));\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Controller seeding (pre-flight) — agent lacks comply_test_controller',\n passed: true,\n steps,\n duration_ms: 0,\n },\n allPassed: true,\n passedCount: 0,\n failedCount: 0,\n missingController: true,\n };\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/testing/storyboard/seeding.ts"],"sourcesContent":["/**\n * Pre-flight `comply_test_controller` seeding.\n *\n * Spec: adcontextprotocol/adcp#2585 (fixtures block + `controller_seeding`\n * flag) + adcontextprotocol/adcp#2584 (seed_* scenarios on\n * `comply_test_controller`). Storyboards such as `sales_non_guaranteed`,\n * `creative_ad_server`, `governance_delivery_monitor`,\n * `media_buy_governance_escalation`, and `governance_spend_authority`\n * reference fixture IDs (product_ids, pricing_option_ids, creative_ids,\n * plan_ids, media_buy_ids) that the seller must already hold before the\n * buyer-side flow runs. This module fires the `seed_*` scenarios derived\n * from the storyboard's top-level `fixtures:` block before the first real\n * phase, so the seller's buyer-agent ledger and catalog are populated ahead\n * of any `sync_accounts` / `create_media_buy` / `sync_creatives` / etc. call\n * that would otherwise fail or route through the wrong commercial-state gate.\n *\n * Failures here surface as a dedicated synthetic phase (`__controller_seeding__`)\n * so an implementor reading the report can distinguish \"setup broke\" from\n * \"buyer did something wrong\" — the runner short-circuits the rest of the\n * phases on any seed failure, emitting a cascade skip with reason\n * `controller_seeding_failed`.\n */\n\nimport { resolveAccount, resolveBrand, validateResponseSchema, type TestClient } from '../client';\nimport { getValidator } from '../../validation/schema-loader';\nimport { ADCP_VERSION } from '../../version';\nimport { injectLegacyEnvelopeStatus } from '../../utils/envelope-status-compat';\nimport { callControllerRaw } from '../test-controller';\nimport { executeStoryboardTask } from './task-map';\nimport {\n buildFixtureResolutionSpecs,\n applyFixtureBindingsToRequest,\n FixtureBindingRegistry,\n matchesFixtureRequirements,\n type FixtureResolutionSpec,\n} from './fixture-resolution';\nimport type {\n FixtureResolutionAttempt,\n FixtureResolutionRecord,\n Storyboard,\n StoryboardContext,\n StoryboardFixtures,\n StoryboardPhaseResult,\n StoryboardRunOptions,\n StoryboardStepResult,\n} from './types';\n\n/** Synthetic phase id used in `StoryboardResult.phases[]` for the seed pass. */\nexport const CONTROLLER_SEEDING_PHASE_ID = '__controller_seeding__';\n\n/** Seed scenario names. Kept local — the server-side `SEED_SCENARIOS`\n * constant from `src/lib/server/test-controller.ts` is authoritative, but\n * importing it here would cross the testing ⇄ server module boundary. */\ntype SeedScenario =\n | 'seed_account'\n | 'seed_product'\n | 'seed_pricing_option'\n | 'seed_creative_format'\n | 'seed_creative'\n | 'seed_plan'\n | 'seed_media_buy';\ntype BuyerAgentSeedScenario = 'seed_buyer_agent';\n\ninterface SeedCall {\n step_id: string;\n title: string;\n scenario: SeedScenario | BuyerAgentSeedScenario;\n params: Record<string, unknown>;\n /** Authoring error (e.g. missing required id). When set, the call fails at\n * build time — no controller request is issued. */\n authoring_error?: string;\n}\n\n/**\n * Translate a storyboard `fixtures:` block into an ordered list of seed\n * calls. Each entry's id field(s) are lifted into the scenario params; every\n * remaining field rides in `params.fixture` verbatim. Missing required ids\n * produce an authoring-error marker the runner surfaces as a failed seed\n * step (rather than crashing or silently skipping).\n */\n// Top-level fixture keys are forwarded to the server verbatim inside\n// `params.fixture`. Prototype-pollution rejection (`__proto__`, `constructor`,\n// `prototype`) is enforced by the server-side `dispatchSeed` at a single\n// canonical point (`src/lib/server/test-controller.ts`), NOT re-guarded here:\n// surfacing the rejection through the normal seed-error path keeps one source\n// of truth for the check, and the server-side handler is where a seed request\n// can actually land from any client implementation. A future refactor that\n// removes the server check must add the client guard before removing it.\nexport function buildSeedCalls(fixtures: StoryboardFixtures | undefined): SeedCall[] {\n if (!fixtures) return [];\n const calls: SeedCall[] = [];\n\n (fixtures.accounts ?? []).forEach((entry, i) => {\n const { account_id, ...fixtureFields } = entry;\n const label = account_id ?? `#${i}`;\n if (typeof account_id !== 'string' || account_id.length === 0) {\n calls.push({\n step_id: `seed_account.${label}`,\n title: `Seed account ${label}`,\n scenario: 'seed_account',\n params: { fixture: seedFixtureFromFields(fixtureFields) },\n authoring_error: `fixtures.accounts[${i}] requires a non-empty string 'account_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_account.${account_id}`,\n title: `Seed account ${account_id}`,\n scenario: 'seed_account',\n params: { account_id, fixture: seedFixtureFromFields(fixtureFields) },\n });\n });\n\n (fixtures.buyer_agents ?? []).forEach((entry, i) => {\n const { agent_url, ...params } = entry;\n const label = agent_url ?? `#${i}`;\n if (typeof agent_url !== 'string' || agent_url.length === 0) {\n calls.push({\n step_id: `seed_buyer_agent.${label}`,\n title: `Seed buyer agent ${label}`,\n scenario: 'seed_buyer_agent',\n params,\n authoring_error: `fixtures.buyer_agents[${i}] requires a non-empty string 'agent_url'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_buyer_agent.${agent_url}`,\n title: `Seed buyer agent ${agent_url}`,\n scenario: 'seed_buyer_agent',\n params: { agent_url, ...params },\n });\n });\n\n (fixtures.products ?? []).forEach((entry, i) => {\n const { product_id, ...fixture } = entry;\n const label = product_id ?? `#${i}`;\n if (typeof product_id !== 'string' || product_id.length === 0) {\n calls.push({\n step_id: `seed_product.${label}`,\n title: `Seed product ${label}`,\n scenario: 'seed_product',\n params: { fixture },\n authoring_error: `fixtures.products[${i}] requires a non-empty string 'product_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_product.${product_id}`,\n title: `Seed product ${product_id}`,\n scenario: 'seed_product',\n params: { product_id, fixture },\n });\n });\n\n (fixtures.pricing_options ?? []).forEach((entry, i) => {\n const { product_id, pricing_option_id, ...fixture } = entry;\n const label =\n pricing_option_id && product_id\n ? `${product_id}:${pricing_option_id}`\n : (pricing_option_id ?? product_id ?? `#${i}`);\n const missing: string[] = [];\n if (typeof product_id !== 'string' || product_id.length === 0) missing.push('product_id');\n if (typeof pricing_option_id !== 'string' || pricing_option_id.length === 0) missing.push('pricing_option_id');\n if (missing.length > 0) {\n calls.push({\n step_id: `seed_pricing_option.${label}`,\n title: `Seed pricing option ${label}`,\n scenario: 'seed_pricing_option',\n params: { ...(product_id && { product_id }), ...(pricing_option_id && { pricing_option_id }), fixture },\n authoring_error: `fixtures.pricing_options[${i}] requires non-empty string(s) for: ${missing.join(', ')}`,\n });\n return;\n }\n calls.push({\n step_id: `seed_pricing_option.${product_id}.${pricing_option_id}`,\n title: `Seed pricing option ${pricing_option_id} on ${product_id}`,\n scenario: 'seed_pricing_option',\n params: { product_id, pricing_option_id, fixture },\n });\n });\n\n (fixtures.creative_formats ?? []).forEach((entry, i) => {\n const { format_id, ...fixtureFields } = entry;\n const label = format_id ?? `#${i}`;\n if (typeof format_id !== 'string' || format_id.length === 0) {\n calls.push({\n step_id: `seed_creative_format.${label}`,\n title: `Seed creative format ${label}`,\n scenario: 'seed_creative_format',\n params: { fixture: seedFixtureFromFields(fixtureFields) },\n authoring_error: `fixtures.creative_formats[${i}] requires a non-empty string 'format_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_creative_format.${format_id}`,\n title: `Seed creative format ${format_id}`,\n scenario: 'seed_creative_format',\n params: { format_id, fixture: seedFixtureFromFields(fixtureFields) },\n });\n });\n\n (fixtures.creatives ?? []).forEach((entry, i) => {\n const { creative_id, ...fixture } = entry;\n const label = creative_id ?? `#${i}`;\n if (typeof creative_id !== 'string' || creative_id.length === 0) {\n calls.push({\n step_id: `seed_creative.${label}`,\n title: `Seed creative ${label}`,\n scenario: 'seed_creative',\n params: { fixture },\n authoring_error: `fixtures.creatives[${i}] requires a non-empty string 'creative_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_creative.${creative_id}`,\n title: `Seed creative ${creative_id}`,\n scenario: 'seed_creative',\n params: { creative_id, fixture },\n });\n });\n\n (fixtures.plans ?? []).forEach((entry, i) => {\n const { plan_id, ...fixture } = entry;\n const label = plan_id ?? `#${i}`;\n if (typeof plan_id !== 'string' || plan_id.length === 0) {\n calls.push({\n step_id: `seed_plan.${label}`,\n title: `Seed plan ${label}`,\n scenario: 'seed_plan',\n params: { fixture },\n authoring_error: `fixtures.plans[${i}] requires a non-empty string 'plan_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_plan.${plan_id}`,\n title: `Seed plan ${plan_id}`,\n scenario: 'seed_plan',\n params: { plan_id, fixture },\n });\n });\n\n (fixtures.media_buys ?? []).forEach((entry, i) => {\n const { media_buy_id, ...fixture } = entry;\n const label = media_buy_id ?? `#${i}`;\n if (typeof media_buy_id !== 'string' || media_buy_id.length === 0) {\n calls.push({\n step_id: `seed_media_buy.${label}`,\n title: `Seed media buy ${label}`,\n scenario: 'seed_media_buy',\n params: { fixture },\n authoring_error: `fixtures.media_buys[${i}] requires a non-empty string 'media_buy_id'`,\n });\n return;\n }\n calls.push({\n step_id: `seed_media_buy.${media_buy_id}`,\n title: `Seed media buy ${media_buy_id}`,\n scenario: 'seed_media_buy',\n params: { media_buy_id, fixture },\n });\n });\n\n return calls;\n}\n\nfunction seedFixtureFromFields(fields: Record<string, unknown>): unknown {\n if (Object.keys(fields).length === 1 && Object.hasOwn(fields, 'fixture')) {\n return fields.fixture;\n }\n return fields;\n}\n\nexport interface ControllerSeedingResult {\n /** Synthetic pre-flight phase to prepend to `StoryboardResult.phases[]`. */\n phase: StoryboardPhaseResult;\n /** True when every seed call succeeded; false means downstream phases must cascade-skip. */\n allPassed: boolean;\n /** Step counts to fold into the storyboard-level totals. */\n passedCount: number;\n failedCount: number;\n /**\n * Agent didn't advertise `comply_test_controller` — the storyboard can't\n * be graded against this seller. The runner cascade-skips real phases\n * with canonical `missing_test_controller` instead of the seeding-failed\n * path. Implements the spec's `fixture_seed_unsupported` not_applicable\n * grade (storyboard-schema.yaml `skip_reasons`).\n */\n missingController?: boolean;\n /**\n * Agent advertised `comply_test_controller`, but not one of the generated\n * seed_* scenarios this storyboard requires. This is a coverage gap, not\n * a failed agent behavior.\n */\n seedUnsupported?: boolean;\n /** At least one declared strategy ladder exhausted without a binding. */\n fixtureUnsatisfied?: boolean;\n /** Run-scoped bindings pinned for all subsequent storyboard phases. */\n bindings?: FixtureBindingRegistry;\n /** Machine-readable AdCP 3.2 resolution evidence. */\n resolutionRecords?: FixtureResolutionRecord[];\n}\n\n/**\n * Fire every seed call for this storyboard. Returns `null` when seeding is\n * not applicable (opt-out, no declaration, empty fixtures) so the runner can\n * treat a no-op identically to a non-seeding storyboard.\n */\nexport async function runControllerSeeding(\n client: TestClient,\n storyboard: Storyboard,\n options: StoryboardRunOptions,\n context: StoryboardContext,\n discoveryClient: TestClient = client\n): Promise<ControllerSeedingResult | null> {\n if (options.skip_controller_seeding === true) return null;\n const calls = buildSeedCalls(storyboard.fixtures);\n if (calls.length === 0) return null;\n if (storyboard.fixture_resolution !== undefined) {\n const resolutionCalls =\n storyboard.prerequisites?.controller_seeding === true\n ? calls\n : calls.filter(call => call.scenario === 'seed_product' || call.scenario === 'seed_pricing_option');\n if (resolutionCalls.length === 0) return null;\n return runDeclaredFixtureResolution(client, discoveryClient, storyboard, options, context, resolutionCalls);\n }\n if (storyboard.prerequisites?.controller_seeding !== true) return null;\n\n // If we can see the agent's tool list and `comply_test_controller` is\n // absent, grade as not_applicable rather than issuing calls that are\n // guaranteed to fail on the wire. Spec: `fixture_seed_unsupported` in\n // storyboard-schema.yaml — missing test-controller is a coverage gap, not\n // a setup break. `options.agentTools` is discovered from the agent profile\n // or passed explicitly by the caller; we don't enforce when it's absent\n // because some harnesses skip tool discovery.\n if (options.agentTools && !options.agentTools.includes('comply_test_controller')) {\n return buildMissingControllerResult(storyboard, calls, context);\n }\n\n const start = Date.now();\n const steps: StoryboardStepResult[] = [];\n let passedCount = 0;\n let failedCount = 0;\n let allPassed = true;\n const seedContext = { correlation_id: `${storyboardCorrelationPrefix(storyboard)}--__seeding__` };\n const authoringErrorResult = buildAuthoringErrorResult(storyboard, calls, context, start);\n if (authoringErrorResult) return authoringErrorResult;\n const unsupportedScenario = await findUnsupportedSeedScenario(client, calls, options, seedContext);\n if (unsupportedScenario) {\n return buildUnsupportedSeedResult(\n storyboard,\n calls,\n context,\n unsupportedScenario.scenario,\n unsupportedScenario.detail\n );\n }\n\n for (const call of calls) {\n const stepStart = Date.now();\n let passed = false;\n let error: string | undefined;\n\n if (call.authoring_error) {\n error = call.authoring_error;\n } else {\n try {\n const raw = await callControllerRaw(\n client,\n { scenario: call.scenario, params: call.params, context: seedContext },\n options\n );\n const data = raw.data as { success?: boolean; error?: string; error_detail?: string } | undefined;\n if (raw.success && data?.success === true) {\n passed = true;\n } else if (raw.success && data?.success === false && data.error === 'UNKNOWN_SCENARIO') {\n return buildUnsupportedSeedResult(storyboard, calls, context, call.scenario, data.error_detail);\n } else {\n error = formatControllerError(call.scenario, raw, data);\n }\n } catch (err) {\n error = err instanceof Error ? err.message : String(err);\n }\n }\n\n const step: StoryboardStepResult = {\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed,\n duration_ms: Date.now() - stepStart,\n validations: [],\n context,\n extraction: { path: 'none' },\n ...(error !== undefined && { error }),\n };\n steps.push(step);\n if (passed) {\n passedCount++;\n } else {\n failedCount++;\n allPassed = false;\n }\n }\n\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Controller seeding (pre-flight)',\n passed: allPassed,\n steps,\n duration_ms: Date.now() - start,\n },\n allPassed,\n passedCount,\n failedCount,\n };\n}\n\ninterface DiscoveryCatalog {\n products: Array<Record<string, unknown>>;\n evidence: { page_count: number; product_count: number; cursors: string[] };\n}\n\ntype DiscoveryCatalogResult =\n | { ok: true; catalog: DiscoveryCatalog }\n | { ok: false; error: string; evidence?: unknown };\n\n/** AdCP 3.2 ordered per-handle seed/discover state machine. */\nasync function runDeclaredFixtureResolution(\n seedClient: TestClient,\n discoveryClient: TestClient,\n storyboard: Storyboard,\n options: StoryboardRunOptions,\n context: StoryboardContext,\n calls: SeedCall[]\n): Promise<ControllerSeedingResult> {\n const start = Date.now();\n const authoringErrorResult = buildAuthoringErrorResult(storyboard, calls, context, start);\n if (authoringErrorResult) return authoringErrorResult;\n\n const specs = buildFixtureResolutionSpecs(storyboard);\n const specByKey = new Map<string, FixtureResolutionSpec>();\n for (const spec of specs) {\n specByKey.set(\n spec.entityType === 'product'\n ? `seed_product\\0${spec.handle}`\n : `seed_pricing_option\\0${spec.parentProductHandle}\\0${spec.handle}`,\n spec\n );\n }\n const declaredCalls = new Map<string, SeedCall>();\n for (const call of calls) {\n const spec = resolutionSpecForCall(call, specByKey);\n if (spec) declaredCalls.set(resolutionSpecKey(spec), call);\n }\n const orderedDeclaredCalls = specs\n .map(spec => declaredCalls.get(resolutionSpecKey(spec)))\n .filter((call): call is SeedCall => call !== undefined);\n let declaredCallIndex = 0;\n const orderedCalls = calls.map(call =>\n resolutionSpecForCall(call, specByKey) ? orderedDeclaredCalls[declaredCallIndex++]! : call\n );\n\n const bindings = new FixtureBindingRegistry();\n const records: FixtureResolutionRecord[] = [];\n const steps: StoryboardStepResult[] = [];\n const claimedProducts = new Map<string, boolean>();\n const claimedPricingOptions = new Map<string, boolean>();\n const productStatuses = new Map<string, FixtureResolutionRecord['status']>();\n const seedContext = { correlation_id: `${storyboardCorrelationPrefix(storyboard)}--__seeding__` };\n const controllerMissing = options.agentTools?.includes('comply_test_controller') === false;\n let advertisedScenarios = controllerMissing ? new Set<string>() : controllerScenarioSetFromOptions(options);\n let scenarioLookupAttempted = advertisedScenarios !== null;\n const legacyCalls = calls.filter(call => resolutionSpecForCall(call, specByKey) === undefined);\n if (legacyCalls.length > 0) {\n if (controllerMissing) return buildMissingControllerResult(storyboard, legacyCalls, context);\n if (!advertisedScenarios) {\n advertisedScenarios = await fetchControllerScenarioSet(seedClient, options, seedContext);\n scenarioLookupAttempted = true;\n }\n if (advertisedScenarios) {\n const unsupported = legacyCalls.find(call => !call.authoring_error && !advertisedScenarios!.has(call.scenario));\n if (unsupported) {\n return buildUnsupportedSeedResult(\n storyboard,\n legacyCalls,\n context,\n unsupported.scenario,\n `list_scenarios did not advertise required seed scenario \"${unsupported.scenario}\".`\n );\n }\n }\n }\n const needsSeedStrategy = orderedCalls.some(call => {\n const spec = resolutionSpecForCall(call, specByKey);\n return !spec || spec.strategies.includes('seed');\n });\n if (needsSeedStrategy && !controllerMissing && !advertisedScenarios && !scenarioLookupAttempted) {\n advertisedScenarios = await fetchControllerScenarioSet(seedClient, options, seedContext);\n }\n let catalogPromise: Promise<DiscoveryCatalogResult> | undefined;\n const catalog = () => (catalogPromise ??= discoverProductCatalog(discoveryClient, options, context));\n\n let passedCount = 0;\n let failedCount = 0;\n let fixtureUnsatisfied = false;\n\n for (const call of orderedCalls) {\n const spec = resolutionSpecForCall(call, specByKey);\n // The first production slice only changes product and product-pricing\n // handles. Every other entity keeps the legacy seed-only behavior.\n if (!spec) {\n const legacy = await executeLegacySeedCall(seedClient, storyboard, call, options, context, seedContext);\n if (legacy.step.skip_reason === 'fixture_unsatisfied') {\n return buildUnsupportedSeedResult(storyboard, legacyCalls, context, call.scenario, legacy.step.skip?.detail);\n }\n steps.push(legacy.step);\n if (legacy.step.passed) passedCount++;\n else failedCount++;\n continue;\n }\n\n const attempts: FixtureResolutionAttempt[] = [];\n let boundIds: FixtureResolutionRecord['seller_ids'];\n let chosenStrategy: FixtureResolutionRecord['strategy'];\n let failure: string | undefined;\n const stepStart = Date.now();\n const parentStatus = spec.parentProductHandle ? productStatuses.get(spec.parentProductHandle) : undefined;\n const parentUnavailable = spec.entityType === 'product_pricing_option' && parentStatus !== 'resolved';\n if (parentUnavailable) {\n const strategy = spec.strategies[0]!;\n const detail =\n parentStatus === 'failed'\n ? `parent product handle \"${spec.parentProductHandle}\" failed resolution`\n : `parent product handle \"${spec.parentProductHandle}\" is unavailable`;\n attempts.push({ strategy, disposition: parentStatus === 'failed' ? 'failed' : 'unavailable', detail });\n if (parentStatus === 'failed') failure = detail;\n }\n\n for (const strategy of parentUnavailable ? [] : spec.strategies) {\n if (strategy === 'seed') {\n const advertised = advertisedScenarios?.has(call.scenario);\n if (controllerMissing || advertised === false) {\n attempts.push({\n strategy,\n disposition: 'unavailable',\n detail: controllerMissing\n ? 'comply_test_controller is not advertised'\n : `list_scenarios did not advertise ${call.scenario}`,\n });\n continue;\n }\n try {\n const controllerRequest = applyFixtureBindingsToRequest(\n { scenario: call.scenario, params: call.params },\n 'comply_test_controller',\n bindings,\n options.adcpVersion ?? ADCP_VERSION\n );\n const raw = await callControllerRaw(\n seedClient,\n {\n scenario: call.scenario,\n params: isPlainRecord(controllerRequest.params) ? controllerRequest.params : call.params,\n context: seedContext,\n },\n options\n );\n const data = raw.data as { success?: boolean; error?: string; error_detail?: string } | undefined;\n if (raw.success && data?.success === true) {\n boundIds = bindSeededFixture(spec, bindings);\n if (spec.entityType === 'product') {\n recordIdentityClaim(claimedProducts, boundIds.product_id!, spec.allowReuse);\n } else {\n recordIdentityClaim(\n claimedPricingOptions,\n `${boundIds.product_id}\\0${boundIds.pricing_option_id}`,\n spec.allowReuse\n );\n }\n chosenStrategy = strategy;\n attempts.push({\n strategy,\n disposition: 'resolved',\n detail: `${call.scenario} accepted the authored literal id`,\n });\n break;\n }\n if (raw.success && data?.success === false && data.error === 'UNKNOWN_SCENARIO' && advertised !== true) {\n attempts.push({\n strategy,\n disposition: 'unavailable',\n detail: data.error_detail ?? `${call.scenario} returned UNKNOWN_SCENARIO`,\n });\n continue;\n }\n failure = formatControllerError(call.scenario, raw, data);\n attempts.push({ strategy, disposition: 'failed', detail: failure });\n break;\n } catch (err) {\n failure = err instanceof Error ? err.message : String(err);\n attempts.push({ strategy, disposition: 'failed', detail: failure });\n break;\n }\n }\n\n if (strategy === 'discover') {\n if (options.agentTools && !options.agentTools.includes('get_products')) {\n attempts.push({\n strategy,\n disposition: 'unavailable',\n detail: 'agent did not advertise get_products',\n });\n continue;\n }\n const discovered = await catalog();\n if (!discovered.ok) {\n failure = discovered.error;\n attempts.push({ strategy, disposition: 'failed', detail: failure, response: discovered.evidence });\n break;\n }\n const selected = selectDiscoveredFixture(\n spec,\n discovered.catalog.products,\n bindings,\n claimedProducts,\n claimedPricingOptions\n );\n if (!selected.ok) {\n if (selected.failed) {\n failure = selected.detail;\n attempts.push({\n strategy,\n disposition: 'failed',\n detail: selected.detail,\n response: discovered.catalog.evidence,\n });\n break;\n }\n attempts.push({\n strategy,\n disposition: 'unavailable',\n detail: selected.detail,\n response: discovered.catalog.evidence,\n });\n continue;\n }\n boundIds = selected.boundIds;\n chosenStrategy = strategy;\n attempts.push({\n strategy,\n disposition: 'resolved',\n detail: selected.detail,\n response: { ...discovered.catalog.evidence, selected: selected.boundIds },\n });\n break;\n }\n }\n\n const status: FixtureResolutionRecord['status'] = boundIds ? 'resolved' : failure ? 'failed' : 'unsatisfied';\n if (spec.entityType === 'product') productStatuses.set(spec.handle, status);\n const record: FixtureResolutionRecord = {\n fixture_type: spec.entityType === 'product' ? 'product' : 'pricing_option',\n handle: spec.handle,\n ...(spec.parentProductHandle && { product_handle: spec.parentProductHandle }),\n requirements: spec.clauses,\n strategies_attempted: attempts,\n status,\n ...(chosenStrategy && { strategy: chosenStrategy }),\n ...(boundIds && { seller_ids: boundIds }),\n };\n records.push(record);\n\n if (status !== 'unsatisfied') {\n steps.push({\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: chosenStrategy === 'discover' ? 'get_products' : 'comply_test_controller',\n passed: status !== 'failed',\n duration_ms: Date.now() - stepStart,\n validations: [],\n context,\n extraction: { path: 'none' },\n ...(failure && { error: failure }),\n });\n }\n if (status === 'failed') failedCount++;\n else if (status === 'unsatisfied') fixtureUnsatisfied = true;\n else passedCount++;\n }\n\n const allPassed = failedCount === 0;\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Fixture resolution (pre-flight)',\n passed: allPassed,\n steps,\n duration_ms: Date.now() - start,\n },\n allPassed,\n passedCount,\n failedCount,\n fixtureUnsatisfied,\n bindings,\n resolutionRecords: records,\n };\n}\n\nfunction resolutionSpecKey(spec: FixtureResolutionSpec): string {\n return spec.entityType === 'product'\n ? `seed_product\\0${spec.handle}`\n : `seed_pricing_option\\0${spec.parentProductHandle}\\0${spec.handle}`;\n}\n\nfunction resolutionSpecForCall(\n call: SeedCall,\n specs: ReadonlyMap<string, FixtureResolutionSpec>\n): FixtureResolutionSpec | undefined {\n if (call.scenario === 'seed_product') {\n return specs.get(`seed_product\\0${String(call.params.product_id ?? '')}`);\n }\n if (call.scenario === 'seed_pricing_option') {\n return specs.get(\n `seed_pricing_option\\0${String(call.params.product_id ?? '')}\\0${String(call.params.pricing_option_id ?? '')}`\n );\n }\n return undefined;\n}\n\nfunction bindSeededFixture(\n spec: FixtureResolutionSpec,\n bindings: FixtureBindingRegistry\n): NonNullable<FixtureResolutionRecord['seller_ids']> {\n if (spec.entityType === 'product') {\n bindings.bindProduct(spec.handle, spec.handle);\n return { product_id: spec.handle };\n }\n const parent = spec.parentProductHandle!;\n bindings.bindPricingOption(parent, spec.handle, spec.handle);\n return { product_id: bindings.productId(parent) ?? parent, pricing_option_id: spec.handle };\n}\n\nasync function executeLegacySeedCall(\n client: TestClient,\n storyboard: Storyboard,\n call: SeedCall,\n options: StoryboardRunOptions,\n context: StoryboardContext,\n seedContext: Record<string, unknown>\n): Promise<{ step: StoryboardStepResult }> {\n const started = Date.now();\n try {\n const raw = await callControllerRaw(\n client,\n { scenario: call.scenario, params: call.params, context: seedContext },\n options\n );\n const data = raw.data as { success?: boolean; error?: string; error_detail?: string } | undefined;\n if (raw.success && data?.success === true) {\n return {\n step: {\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: true,\n duration_ms: Date.now() - started,\n validations: [],\n context,\n extraction: { path: 'none' },\n },\n };\n }\n const unknown = raw.success && data?.success === false && data.error === 'UNKNOWN_SCENARIO';\n const detail = unknown\n ? `fixture_unsatisfied: ${call.scenario} is unavailable and no alternate strategy is declared`\n : formatControllerError(call.scenario, raw, data);\n return {\n step: {\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: unknown,\n ...(unknown && {\n skipped: true,\n skip_reason: 'fixture_unsatisfied' as const,\n skip: { reason: 'not_applicable' as const, detail },\n }),\n duration_ms: Date.now() - started,\n validations: [],\n context,\n extraction: { path: 'none' },\n ...(!unknown && { error: detail }),\n },\n };\n } catch (err) {\n const detail = err instanceof Error ? err.message : String(err);\n return {\n step: {\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: false,\n duration_ms: Date.now() - started,\n validations: [],\n context,\n extraction: { path: 'none' },\n error: detail,\n },\n };\n }\n}\n\nasync function discoverProductCatalog(\n client: TestClient,\n options: StoryboardRunOptions,\n context: StoryboardContext\n): Promise<DiscoveryCatalogResult> {\n const contextAccount = isPlainRecord(context.account) ? context.account : undefined;\n const baseAccount = contextAccount ?? resolveAccount(options);\n const account: Record<string, unknown> = { ...baseAccount };\n if (!('account_id' in account)) {\n account.sandbox = options.disable_sandbox === true || options.sandbox === false ? false : true;\n }\n const accountBrand = isPlainRecord(account.brand) ? account.brand : undefined;\n const brand = isPlainRecord(context.brand) ? context.brand : (accountBrand ?? resolveBrand(options));\n const products: Array<Record<string, unknown>> = [];\n const seenProductIds = new Set<string>();\n const cursors: string[] = [];\n const seenCursors = new Set<string>();\n let cursor: string | undefined;\n let pageCount = 0;\n do {\n if (pageCount >= 1_000) {\n return { ok: false, error: 'fixture discovery pagination exceeded the 1,000-page safety limit' };\n }\n const request: Record<string, unknown> = {\n buying_mode: 'wholesale',\n brand,\n account,\n pagination: { max_results: 100, ...(cursor && { cursor }) },\n };\n let result;\n try {\n result = await executeStoryboardTask(client, 'get_products', request, { signal: options.signal });\n } catch (err) {\n return {\n ok: false,\n error: `fixture discovery transport failure: ${err instanceof Error ? err.message : String(err)}`,\n };\n }\n pageCount++;\n if (!result.success) {\n return {\n ok: false,\n error: `fixture discovery get_products rejected: ${result.error ?? result.adcp_error?.code ?? 'unknown error'}`,\n evidence: { page_count: pageCount, request },\n };\n }\n let schemaFailure: string | undefined;\n try {\n const validator = getValidator('get_products', 'sync', options.adcpVersion ?? ADCP_VERSION);\n if (validator) {\n const responseData: unknown = result.data;\n const schemaData = isPlainRecord(responseData)\n ? injectLegacyEnvelopeStatus(responseData, { toolName: 'get_products' })\n : responseData;\n if (!validator(schemaData)) {\n schemaFailure = (validator.errors ?? [])\n .map(error => `${error.instancePath || '/'} ${error.message ?? error.keyword}`)\n .join('; ');\n }\n } else {\n const schema = validateResponseSchema('get_products', result.data, options.adcpVersion);\n if (!schema.passed) schemaFailure = schema.error ?? schema.details ?? 'schema validation failed';\n }\n } catch (err) {\n schemaFailure = `response schema unavailable: ${err instanceof Error ? err.message : String(err)}`;\n }\n if (schemaFailure) {\n return {\n ok: false,\n error: `fixture discovery returned malformed get_products response: ${schemaFailure}`,\n evidence: { page_count: pageCount },\n };\n }\n if (!isPlainRecord(result.data)) {\n return { ok: false, error: 'fixture discovery returned a non-object get_products response' };\n }\n const pageProducts = result.data.products;\n if (pageProducts !== undefined && !Array.isArray(pageProducts)) {\n return { ok: false, error: 'fixture discovery get_products.products is not an array' };\n }\n for (const product of pageProducts ?? []) {\n if (!isPlainRecord(product) || typeof product.product_id !== 'string' || product.product_id.length === 0) {\n return { ok: false, error: 'fixture discovery returned a product without a non-empty product_id' };\n }\n if (seenProductIds.has(product.product_id)) {\n return {\n ok: false,\n error: `fixture discovery returned duplicate product_id \"${product.product_id}\"; response order cannot resolve duplicate identities`,\n };\n }\n seenProductIds.add(product.product_id);\n if (Array.isArray(product.pricing_options)) {\n const seenPricingIds = new Set<string>();\n for (const option of product.pricing_options) {\n if (!isPlainRecord(option) || typeof option.pricing_option_id !== 'string') continue;\n if (seenPricingIds.has(option.pricing_option_id)) {\n return {\n ok: false,\n error: `fixture discovery returned duplicate pricing option identity \"${product.product_id}\\u0000${option.pricing_option_id}\"`,\n };\n }\n seenPricingIds.add(option.pricing_option_id);\n }\n }\n products.push(product);\n if (products.length > 100_000) {\n return { ok: false, error: 'fixture discovery exceeded the 100,000-product safety limit' };\n }\n }\n const pagination = isPlainRecord(result.data.pagination) ? result.data.pagination : undefined;\n if (pagination?.has_more === true) {\n const next = pagination.cursor;\n if (typeof next !== 'string' || next.length === 0) {\n return { ok: false, error: 'fixture discovery pagination is broken: has_more=true without cursor' };\n }\n if (seenCursors.has(next)) {\n return { ok: false, error: `fixture discovery pagination is broken: repeated cursor \"${next}\"` };\n }\n seenCursors.add(next);\n cursors.push(next);\n cursor = next;\n } else {\n cursor = undefined;\n }\n } while (cursor);\n return {\n ok: true,\n catalog: { products, evidence: { page_count: pageCount, product_count: products.length, cursors } },\n };\n}\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction utf8Compare(a: string, b: string): number {\n return Buffer.compare(Buffer.from(a, 'utf8'), Buffer.from(b, 'utf8'));\n}\n\ntype SelectedFixture =\n | { ok: true; boundIds: NonNullable<FixtureResolutionRecord['seller_ids']>; detail: string }\n | { ok: false; failed: boolean; detail: string };\n\nfunction selectDiscoveredFixture(\n spec: FixtureResolutionSpec,\n products: Array<Record<string, unknown>>,\n bindings: FixtureBindingRegistry,\n claimedProducts: Map<string, boolean>,\n claimedPricingOptions: Map<string, boolean>\n): SelectedFixture {\n if (spec.entityType === 'product') {\n const candidates = products\n .filter(product => matchesFixtureRequirements(product, spec.clauses))\n .filter(product => identityCanBeClaimed(claimedProducts, product.product_id as string, spec.allowReuse))\n .sort((a, b) => utf8Compare(a.product_id as string, b.product_id as string));\n const selected = candidates[0];\n if (!selected)\n return { ok: false, failed: false, detail: 'no discovered product satisfied the authored requirements' };\n const productId = selected.product_id as string;\n bindings.bindProduct(spec.handle, productId);\n recordIdentityClaim(claimedProducts, productId, spec.allowReuse);\n return {\n ok: true,\n boundIds: { product_id: productId },\n detail: `selected product_id \"${productId}\" by UTF-8 bytewise order`,\n };\n }\n\n const parentHandle = spec.parentProductHandle!;\n const sellerProductId = bindings.productId(parentHandle);\n if (!sellerProductId) {\n return {\n ok: false,\n failed: true,\n detail: `pricing-option discovery requires bound parent product handle \"${parentHandle}\"`,\n };\n }\n const product = products.find(candidate => candidate.product_id === sellerProductId);\n if (!product) {\n return {\n ok: false,\n failed: true,\n detail: `bound parent product_id \"${sellerProductId}\" was absent from the completed discovery catalog`,\n };\n }\n const options = Array.isArray(product.pricing_options) ? product.pricing_options : [];\n const candidates = options\n .filter(isPlainRecord)\n .filter(option => typeof option.pricing_option_id === 'string' && option.pricing_option_id.length > 0)\n .filter(option => matchesFixtureRequirements(option, spec.clauses))\n .filter(option => {\n const identity = `${sellerProductId}\\0${option.pricing_option_id as string}`;\n return identityCanBeClaimed(claimedPricingOptions, identity, spec.allowReuse);\n })\n .sort((a, b) =>\n utf8Compare(\n `${sellerProductId}\\0${a.pricing_option_id as string}`,\n `${sellerProductId}\\0${b.pricing_option_id as string}`\n )\n );\n const selected = candidates[0];\n if (!selected) {\n return {\n ok: false,\n failed: false,\n detail: 'no pricing option on the bound product satisfied the authored requirements',\n };\n }\n const pricingOptionId = selected.pricing_option_id as string;\n bindings.bindPricingOption(parentHandle, spec.handle, pricingOptionId);\n recordIdentityClaim(claimedPricingOptions, `${sellerProductId}\\0${pricingOptionId}`, spec.allowReuse);\n return {\n ok: true,\n boundIds: { product_id: sellerProductId, pricing_option_id: pricingOptionId },\n detail: `selected pricing option \"${sellerProductId}\\u0000${pricingOptionId}\" by UTF-8 bytewise order`,\n };\n}\n\n/** A seller identity may be shared only when every claimant opts into reuse. */\nfunction identityCanBeClaimed(claims: ReadonlyMap<string, boolean>, identity: string, allowReuse: boolean): boolean {\n const existingAllowsReuse = claims.get(identity);\n return existingAllowsReuse === undefined || (existingAllowsReuse && allowReuse);\n}\n\nfunction recordIdentityClaim(claims: Map<string, boolean>, identity: string, allowReuse: boolean): void {\n claims.set(identity, (claims.get(identity) ?? true) && allowReuse);\n}\n\nfunction storyboardCorrelationPrefix(storyboard: Storyboard): string {\n for (const phase of storyboard.phases) {\n for (const step of phase.steps) {\n const requestContext = step.sample_request?.context;\n if (!requestContext || typeof requestContext !== 'object' || Array.isArray(requestContext)) continue;\n const correlationId = (requestContext as { correlation_id?: unknown }).correlation_id;\n if (typeof correlationId !== 'string' || correlationId.length === 0) continue;\n const suffixSeparator = correlationId.lastIndexOf('--');\n return suffixSeparator > 0 ? correlationId.slice(0, suffixSeparator) : correlationId;\n }\n }\n return storyboard.id;\n}\n\nfunction buildAuthoringErrorResult(\n storyboard: Storyboard,\n calls: SeedCall[],\n context: StoryboardContext,\n start: number\n): ControllerSeedingResult | null {\n const authoringErrors = calls.filter((call): call is SeedCall & { authoring_error: string } =>\n Boolean(call.authoring_error)\n );\n if (authoringErrors.length === 0) return null;\n const steps: StoryboardStepResult[] = authoringErrors.map(call => ({\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: false,\n duration_ms: 0,\n validations: [],\n context,\n extraction: { path: 'none' },\n error: call.authoring_error,\n }));\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Controller seeding (pre-flight) — invalid storyboard fixtures',\n passed: false,\n steps,\n duration_ms: Date.now() - start,\n },\n allPassed: false,\n passedCount: 0,\n failedCount: steps.length,\n };\n}\n\nasync function findUnsupportedSeedScenario(\n client: TestClient,\n calls: SeedCall[],\n options: StoryboardRunOptions,\n seedContext: Record<string, unknown>\n): Promise<{ scenario: SeedScenario | BuyerAgentSeedScenario; detail: string } | null> {\n const requiredScenarios = [...new Set(calls.filter(call => !call.authoring_error).map(call => call.scenario))];\n if (requiredScenarios.length === 0) return null;\n\n let advertisedScenarios = controllerScenarioSetFromOptions(options);\n if (!advertisedScenarios) {\n advertisedScenarios = await fetchControllerScenarioSet(client, options, seedContext);\n }\n if (!advertisedScenarios) return null;\n\n for (const scenario of requiredScenarios) {\n if (!advertisedScenarios.has(scenario)) {\n return {\n scenario,\n detail: `list_scenarios did not advertise required seed scenario \"${scenario}\".`,\n };\n }\n }\n return null;\n}\n\nfunction controllerScenarioSetFromOptions(options: StoryboardRunOptions): Set<string> | null {\n const capabilities = options._controllerCapabilities;\n if (capabilities?.detected !== true) return null;\n return new Set((capabilities.scenarios as readonly string[]).filter(scenario => typeof scenario === 'string'));\n}\n\nasync function fetchControllerScenarioSet(\n client: TestClient,\n options: StoryboardRunOptions,\n seedContext: Record<string, unknown>\n): Promise<Set<string> | null> {\n try {\n const raw = await callControllerRaw(client, { scenario: 'list_scenarios', context: seedContext }, options);\n const data = raw.data as { success?: boolean; scenarios?: unknown } | undefined;\n if (!raw.success || data?.success !== true) return null;\n if (Array.isArray(data.scenarios)) {\n return new Set(data.scenarios.filter((scenario): scenario is string => typeof scenario === 'string'));\n }\n if (data.scenarios && typeof data.scenarios === 'object') {\n return new Set(Object.keys(data.scenarios));\n }\n return null;\n } catch {\n return null;\n }\n}\n\nconst UNSUPPORTED_SEED_DETAIL =\n 'Skipped: agent advertised comply_test_controller, but does not implement a seed_* scenario required by this storyboard (`fixture_seed_unsupported`). Storyboard grades not_applicable — the buyer-side flow depends on pre-seeded state the agent has no way to accept.';\n\nfunction buildUnsupportedSeedResult(\n storyboard: Storyboard,\n calls: Array<{ step_id: string; title: string }>,\n context: StoryboardContext,\n scenario: SeedScenario | BuyerAgentSeedScenario,\n detail?: string\n): ControllerSeedingResult {\n const skipDetail = detail\n ? `${UNSUPPORTED_SEED_DETAIL} Unsupported scenario ${scenario}: ${detail}`\n : `${UNSUPPORTED_SEED_DETAIL} Unsupported scenario: ${scenario}.`;\n const steps: StoryboardStepResult[] = calls.map(call => ({\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: true,\n skipped: true,\n skip_reason: 'fixture_seed_unsupported',\n skip: { reason: 'not_applicable', detail: skipDetail },\n duration_ms: 0,\n validations: [],\n context,\n extraction: { path: 'none' },\n }));\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Controller seeding (pre-flight) — agent lacks required seed scenario',\n passed: true,\n steps,\n duration_ms: 0,\n },\n allPassed: true,\n passedCount: 0,\n failedCount: 0,\n seedUnsupported: true,\n };\n}\n\nfunction formatControllerError(\n scenario: SeedScenario | BuyerAgentSeedScenario,\n raw: { success: boolean; error?: string },\n data: { success?: boolean; error?: string; error_detail?: string } | undefined\n): string {\n if (data?.error_detail) return data.error ? `${data.error}: ${data.error_detail}` : data.error_detail;\n if (data?.error) return data.error;\n return raw.error ?? `comply_test_controller ${scenario} call failed`;\n}\n\nconst MISSING_CONTROLLER_DETAIL =\n 'Skipped: agent did not advertise comply_test_controller, so fixture seeding (`fixture_seed_unsupported`) cannot run. Storyboard grades not_applicable — the buyer-side flow depends on pre-seeded state the agent has no way to accept.';\n\nfunction buildMissingControllerResult(\n storyboard: Storyboard,\n calls: Array<{ step_id: string; title: string }>,\n context: StoryboardContext\n): ControllerSeedingResult {\n const steps: StoryboardStepResult[] = calls.map(call => ({\n storyboard_id: storyboard.id,\n step_id: call.step_id,\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n title: call.title,\n task: 'comply_test_controller',\n passed: true,\n skipped: true,\n skip_reason: 'missing_test_controller',\n skip: { reason: 'missing_test_controller', detail: MISSING_CONTROLLER_DETAIL },\n duration_ms: 0,\n validations: [],\n context,\n extraction: { path: 'none' },\n }));\n return {\n phase: {\n phase_id: CONTROLLER_SEEDING_PHASE_ID,\n phase_title: 'Controller seeding (pre-flight) — agent lacks comply_test_controller',\n passed: true,\n steps,\n duration_ms: 0,\n },\n allPassed: true,\n passedCount: 0,\n failedCount: 0,\n missingController: true,\n };\n}\n"],"mappings":"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","names":["candidates","product","selected"]}
|
|
@@ -197,6 +197,13 @@ export interface Storyboard {
|
|
|
197
197
|
* field(s) into `params.fixture` verbatim.
|
|
198
198
|
*/
|
|
199
199
|
fixtures?: StoryboardFixtures;
|
|
200
|
+
/**
|
|
201
|
+
* AdCP 3.2 fixture-handle resolution policy. Fixture ids remain authored in
|
|
202
|
+
* `fixtures:` and in step payloads, but declarations here may allow the
|
|
203
|
+
* runner to bind those run-scoped handles to real seller catalog ids.
|
|
204
|
+
* Omitted handles retain the compatibility strategy `["seed"]`.
|
|
205
|
+
*/
|
|
206
|
+
fixture_resolution?: StoryboardFixtureResolution;
|
|
200
207
|
/**
|
|
201
208
|
* Initial context values declared by the storyboard YAML. Runner callers may
|
|
202
209
|
* override these defaults with `StoryboardRunOptions.context`.
|
|
@@ -333,6 +340,99 @@ export interface StoryboardFixtures {
|
|
|
333
340
|
}>;
|
|
334
341
|
buyer_agents?: StoryboardBuyerAgentFixture[];
|
|
335
342
|
}
|
|
343
|
+
/** Ordered setup strategies supported by the first AdCP 3.2 runner slice. */
|
|
344
|
+
export type FixtureResolutionStrategy = 'seed' | 'discover';
|
|
345
|
+
/** Operators supported by the closed AdCP 3.2 fixture predicate DSL. */
|
|
346
|
+
export type FixtureMatchOperator = 'equals' | 'present' | 'contains_all' | 'any_match' | 'canonical_format_satisfies';
|
|
347
|
+
export interface FixtureCanonicalFormatSelector extends Record<string, unknown> {
|
|
348
|
+
format_kind: string;
|
|
349
|
+
params?: Record<string, unknown>;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* One fixture-discovery predicate. `path` is an RFC 6901 JSON Pointer
|
|
353
|
+
* relative to the candidate entity. `any_match` uses `where` recursively,
|
|
354
|
+
* `present` is valueless, and the remaining operators use `value`.
|
|
355
|
+
*/
|
|
356
|
+
export type FixtureMatchClause = {
|
|
357
|
+
path: string;
|
|
358
|
+
operator: 'equals';
|
|
359
|
+
value: unknown;
|
|
360
|
+
where?: never;
|
|
361
|
+
} | {
|
|
362
|
+
path: string;
|
|
363
|
+
operator: 'present';
|
|
364
|
+
value?: never;
|
|
365
|
+
where?: never;
|
|
366
|
+
} | {
|
|
367
|
+
path: string;
|
|
368
|
+
operator: 'contains_all';
|
|
369
|
+
value: unknown[];
|
|
370
|
+
where?: never;
|
|
371
|
+
} | {
|
|
372
|
+
path: string;
|
|
373
|
+
operator: 'canonical_format_satisfies';
|
|
374
|
+
value: FixtureCanonicalFormatSelector;
|
|
375
|
+
where?: never;
|
|
376
|
+
} | {
|
|
377
|
+
path: string;
|
|
378
|
+
operator: 'any_match';
|
|
379
|
+
where: FixtureMatchClause[];
|
|
380
|
+
value?: never;
|
|
381
|
+
};
|
|
382
|
+
export interface FixtureResolutionDeclaration {
|
|
383
|
+
/** Authored run-scoped fixture handle. */
|
|
384
|
+
handle: string;
|
|
385
|
+
/** Ordered strategy ladder. Omission means `["seed"]`. */
|
|
386
|
+
strategies?: FixtureResolutionStrategy[];
|
|
387
|
+
/** Requirements a discovered seller entity must satisfy. */
|
|
388
|
+
match?: FixtureMatchClause[];
|
|
389
|
+
/** Default false: one seller entity cannot satisfy two handles. */
|
|
390
|
+
allow_reuse?: boolean;
|
|
391
|
+
}
|
|
392
|
+
export type ProductFixtureResolutionDeclaration = FixtureResolutionDeclaration;
|
|
393
|
+
export interface PricingOptionFixtureResolutionDeclaration extends FixtureResolutionDeclaration {
|
|
394
|
+
/** Parent authored product handle for root-level pricing-option declarations. */
|
|
395
|
+
product_handle: string;
|
|
396
|
+
}
|
|
397
|
+
export interface StoryboardFixtureResolution {
|
|
398
|
+
products?: ProductFixtureResolutionDeclaration[];
|
|
399
|
+
pricing_options?: PricingOptionFixtureResolutionDeclaration[];
|
|
400
|
+
}
|
|
401
|
+
export type FixtureResolutionStatus = 'resolved' | 'unsatisfied' | 'failed';
|
|
402
|
+
export interface FixtureResolutionAttempt {
|
|
403
|
+
strategy: FixtureResolutionStrategy;
|
|
404
|
+
disposition: 'resolved' | 'unavailable' | 'failed';
|
|
405
|
+
detail: string;
|
|
406
|
+
request?: Record<string, unknown>;
|
|
407
|
+
response?: unknown;
|
|
408
|
+
}
|
|
409
|
+
/** @deprecated Use FixtureResolutionAttempt. */
|
|
410
|
+
export type FixtureResolutionEvidence = FixtureResolutionAttempt;
|
|
411
|
+
/** Machine-readable record emitted exactly once for every fixture handle. */
|
|
412
|
+
export interface FixtureResolutionRecord {
|
|
413
|
+
fixture_type: 'product' | 'pricing_option';
|
|
414
|
+
handle: string;
|
|
415
|
+
product_handle?: string;
|
|
416
|
+
requirements: FixtureMatchClause[];
|
|
417
|
+
strategies_attempted: FixtureResolutionAttempt[];
|
|
418
|
+
status: FixtureResolutionStatus;
|
|
419
|
+
strategy?: FixtureResolutionStrategy;
|
|
420
|
+
seller_ids?: {
|
|
421
|
+
product_id: string;
|
|
422
|
+
pricing_option_id?: string;
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
/** One storyboard-scoped coverage gap produced by fixture resolution. */
|
|
426
|
+
export interface FixtureResolutionCoverageGap {
|
|
427
|
+
reason: 'fixture_unsatisfied';
|
|
428
|
+
detail: string;
|
|
429
|
+
fixtures: Array<{
|
|
430
|
+
fixture_type: FixtureResolutionRecord['fixture_type'];
|
|
431
|
+
handle: string;
|
|
432
|
+
product_handle?: string;
|
|
433
|
+
requirements: FixtureMatchClause[];
|
|
434
|
+
}>;
|
|
435
|
+
}
|
|
336
436
|
export interface StoryboardBuyerAgentFixture {
|
|
337
437
|
agent_url?: string;
|
|
338
438
|
display_name?: string;
|
|
@@ -1601,6 +1701,8 @@ export type RunnerDetailedSkipReason = 'probe_skipped' | 'rate_abuse_opt_out' |
|
|
|
1601
1701
|
* setup, so the storyboard is out of scope rather than failed.
|
|
1602
1702
|
*/
|
|
1603
1703
|
| 'fixture_seed_unsupported'
|
|
1704
|
+
/** A valid fixture strategy ladder exhausted without finding a binding. */
|
|
1705
|
+
| 'fixture_unsatisfied'
|
|
1604
1706
|
/**
|
|
1605
1707
|
* A `requires_capability` predicate on the storyboard evaluated to false —
|
|
1606
1708
|
* the agent explicitly declared it does not support the capability this
|
|
@@ -2409,6 +2511,10 @@ export interface StoryboardResult {
|
|
|
2409
2511
|
*/
|
|
2410
2512
|
agent_map?: Record<string, string>;
|
|
2411
2513
|
overall_passed: boolean;
|
|
2514
|
+
/** AdCP 3.2 fixture-handle setup/discovery evidence, one row per handle. */
|
|
2515
|
+
fixture_resolutions?: FixtureResolutionRecord[];
|
|
2516
|
+
/** Storyboard-level fixture coverage gaps, emitted once per cause. */
|
|
2517
|
+
coverage_gaps?: FixtureResolutionCoverageGap[];
|
|
2412
2518
|
/**
|
|
2413
2519
|
* Phases from the first pass. In `multi-pass` mode see `passes` for the full
|
|
2414
2520
|
* per-pass detail; `passed_count`/`failed_count`/`skipped_count` and
|
|
@@ -197,6 +197,13 @@ export interface Storyboard {
|
|
|
197
197
|
* field(s) into `params.fixture` verbatim.
|
|
198
198
|
*/
|
|
199
199
|
fixtures?: StoryboardFixtures;
|
|
200
|
+
/**
|
|
201
|
+
* AdCP 3.2 fixture-handle resolution policy. Fixture ids remain authored in
|
|
202
|
+
* `fixtures:` and in step payloads, but declarations here may allow the
|
|
203
|
+
* runner to bind those run-scoped handles to real seller catalog ids.
|
|
204
|
+
* Omitted handles retain the compatibility strategy `["seed"]`.
|
|
205
|
+
*/
|
|
206
|
+
fixture_resolution?: StoryboardFixtureResolution;
|
|
200
207
|
/**
|
|
201
208
|
* Initial context values declared by the storyboard YAML. Runner callers may
|
|
202
209
|
* override these defaults with `StoryboardRunOptions.context`.
|
|
@@ -333,6 +340,99 @@ export interface StoryboardFixtures {
|
|
|
333
340
|
}>;
|
|
334
341
|
buyer_agents?: StoryboardBuyerAgentFixture[];
|
|
335
342
|
}
|
|
343
|
+
/** Ordered setup strategies supported by the first AdCP 3.2 runner slice. */
|
|
344
|
+
export type FixtureResolutionStrategy = 'seed' | 'discover';
|
|
345
|
+
/** Operators supported by the closed AdCP 3.2 fixture predicate DSL. */
|
|
346
|
+
export type FixtureMatchOperator = 'equals' | 'present' | 'contains_all' | 'any_match' | 'canonical_format_satisfies';
|
|
347
|
+
export interface FixtureCanonicalFormatSelector extends Record<string, unknown> {
|
|
348
|
+
format_kind: string;
|
|
349
|
+
params?: Record<string, unknown>;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* One fixture-discovery predicate. `path` is an RFC 6901 JSON Pointer
|
|
353
|
+
* relative to the candidate entity. `any_match` uses `where` recursively,
|
|
354
|
+
* `present` is valueless, and the remaining operators use `value`.
|
|
355
|
+
*/
|
|
356
|
+
export type FixtureMatchClause = {
|
|
357
|
+
path: string;
|
|
358
|
+
operator: 'equals';
|
|
359
|
+
value: unknown;
|
|
360
|
+
where?: never;
|
|
361
|
+
} | {
|
|
362
|
+
path: string;
|
|
363
|
+
operator: 'present';
|
|
364
|
+
value?: never;
|
|
365
|
+
where?: never;
|
|
366
|
+
} | {
|
|
367
|
+
path: string;
|
|
368
|
+
operator: 'contains_all';
|
|
369
|
+
value: unknown[];
|
|
370
|
+
where?: never;
|
|
371
|
+
} | {
|
|
372
|
+
path: string;
|
|
373
|
+
operator: 'canonical_format_satisfies';
|
|
374
|
+
value: FixtureCanonicalFormatSelector;
|
|
375
|
+
where?: never;
|
|
376
|
+
} | {
|
|
377
|
+
path: string;
|
|
378
|
+
operator: 'any_match';
|
|
379
|
+
where: FixtureMatchClause[];
|
|
380
|
+
value?: never;
|
|
381
|
+
};
|
|
382
|
+
export interface FixtureResolutionDeclaration {
|
|
383
|
+
/** Authored run-scoped fixture handle. */
|
|
384
|
+
handle: string;
|
|
385
|
+
/** Ordered strategy ladder. Omission means `["seed"]`. */
|
|
386
|
+
strategies?: FixtureResolutionStrategy[];
|
|
387
|
+
/** Requirements a discovered seller entity must satisfy. */
|
|
388
|
+
match?: FixtureMatchClause[];
|
|
389
|
+
/** Default false: one seller entity cannot satisfy two handles. */
|
|
390
|
+
allow_reuse?: boolean;
|
|
391
|
+
}
|
|
392
|
+
export type ProductFixtureResolutionDeclaration = FixtureResolutionDeclaration;
|
|
393
|
+
export interface PricingOptionFixtureResolutionDeclaration extends FixtureResolutionDeclaration {
|
|
394
|
+
/** Parent authored product handle for root-level pricing-option declarations. */
|
|
395
|
+
product_handle: string;
|
|
396
|
+
}
|
|
397
|
+
export interface StoryboardFixtureResolution {
|
|
398
|
+
products?: ProductFixtureResolutionDeclaration[];
|
|
399
|
+
pricing_options?: PricingOptionFixtureResolutionDeclaration[];
|
|
400
|
+
}
|
|
401
|
+
export type FixtureResolutionStatus = 'resolved' | 'unsatisfied' | 'failed';
|
|
402
|
+
export interface FixtureResolutionAttempt {
|
|
403
|
+
strategy: FixtureResolutionStrategy;
|
|
404
|
+
disposition: 'resolved' | 'unavailable' | 'failed';
|
|
405
|
+
detail: string;
|
|
406
|
+
request?: Record<string, unknown>;
|
|
407
|
+
response?: unknown;
|
|
408
|
+
}
|
|
409
|
+
/** @deprecated Use FixtureResolutionAttempt. */
|
|
410
|
+
export type FixtureResolutionEvidence = FixtureResolutionAttempt;
|
|
411
|
+
/** Machine-readable record emitted exactly once for every fixture handle. */
|
|
412
|
+
export interface FixtureResolutionRecord {
|
|
413
|
+
fixture_type: 'product' | 'pricing_option';
|
|
414
|
+
handle: string;
|
|
415
|
+
product_handle?: string;
|
|
416
|
+
requirements: FixtureMatchClause[];
|
|
417
|
+
strategies_attempted: FixtureResolutionAttempt[];
|
|
418
|
+
status: FixtureResolutionStatus;
|
|
419
|
+
strategy?: FixtureResolutionStrategy;
|
|
420
|
+
seller_ids?: {
|
|
421
|
+
product_id: string;
|
|
422
|
+
pricing_option_id?: string;
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
/** One storyboard-scoped coverage gap produced by fixture resolution. */
|
|
426
|
+
export interface FixtureResolutionCoverageGap {
|
|
427
|
+
reason: 'fixture_unsatisfied';
|
|
428
|
+
detail: string;
|
|
429
|
+
fixtures: Array<{
|
|
430
|
+
fixture_type: FixtureResolutionRecord['fixture_type'];
|
|
431
|
+
handle: string;
|
|
432
|
+
product_handle?: string;
|
|
433
|
+
requirements: FixtureMatchClause[];
|
|
434
|
+
}>;
|
|
435
|
+
}
|
|
336
436
|
export interface StoryboardBuyerAgentFixture {
|
|
337
437
|
agent_url?: string;
|
|
338
438
|
display_name?: string;
|
|
@@ -1601,6 +1701,8 @@ export type RunnerDetailedSkipReason = 'probe_skipped' | 'rate_abuse_opt_out' |
|
|
|
1601
1701
|
* setup, so the storyboard is out of scope rather than failed.
|
|
1602
1702
|
*/
|
|
1603
1703
|
| 'fixture_seed_unsupported'
|
|
1704
|
+
/** A valid fixture strategy ladder exhausted without finding a binding. */
|
|
1705
|
+
| 'fixture_unsatisfied'
|
|
1604
1706
|
/**
|
|
1605
1707
|
* A `requires_capability` predicate on the storyboard evaluated to false —
|
|
1606
1708
|
* the agent explicitly declared it does not support the capability this
|
|
@@ -2409,6 +2511,10 @@ export interface StoryboardResult {
|
|
|
2409
2511
|
*/
|
|
2410
2512
|
agent_map?: Record<string, string>;
|
|
2411
2513
|
overall_passed: boolean;
|
|
2514
|
+
/** AdCP 3.2 fixture-handle setup/discovery evidence, one row per handle. */
|
|
2515
|
+
fixture_resolutions?: FixtureResolutionRecord[];
|
|
2516
|
+
/** Storyboard-level fixture coverage gaps, emitted once per cause. */
|
|
2517
|
+
coverage_gaps?: FixtureResolutionCoverageGap[];
|
|
2412
2518
|
/**
|
|
2413
2519
|
* Phases from the first pass. In `multi-pass` mode see `passes` for the full
|
|
2414
2520
|
* per-pass detail; `passed_count`/`failed_count`/`skipped_count` and
|