@adcp/sdk 16.0.0-beta.7 → 16.0.0-beta.9
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/AGENTS.md +3 -3
- package/README.md +20 -0
- package/bin/adcp.js +10 -13
- package/dist/lib/conformance/index.d.mts +2 -0
- package/dist/lib/conformance/index.d.ts +2 -0
- package/dist/lib/conformance/index.js +3 -0
- package/dist/lib/conformance/index.mjs +2 -0
- package/dist/lib/conformance/property-lists.d.mts +14 -0
- package/dist/lib/conformance/property-lists.d.ts +14 -0
- package/dist/lib/conformance/property-lists.js +45 -0
- package/dist/lib/conformance/property-lists.mjs +21 -0
- package/dist/lib/conformance/runConformance.js +20 -1
- package/dist/lib/conformance/runConformance.mjs +20 -1
- package/dist/lib/conformance/types.d.mts +3 -0
- package/dist/lib/conformance/types.d.ts +3 -0
- package/dist/lib/core/AgentClient.d.mts +8 -5
- package/dist/lib/core/AgentClient.d.ts +8 -5
- package/dist/lib/core/AgentClient.js +9 -4
- package/dist/lib/core/AgentClient.mjs +9 -4
- package/dist/lib/core/SingleAgentClient.d.mts +32 -115
- package/dist/lib/core/SingleAgentClient.d.ts +32 -115
- package/dist/lib/core/SingleAgentClient.js +379 -273
- package/dist/lib/core/SingleAgentClient.mjs +387 -275
- package/dist/lib/core/TaskExecutor.d.mts +1 -16
- package/dist/lib/core/TaskExecutor.d.ts +1 -16
- package/dist/lib/core/TaskExecutor.js +34 -51
- package/dist/lib/core/TaskExecutor.mjs +12 -29
- package/dist/lib/core/product-cache.d.mts +3 -1
- package/dist/lib/core/product-cache.d.ts +3 -1
- package/dist/lib/core/product-cache.js +2 -1
- package/dist/lib/core/product-cache.mjs +2 -1
- package/dist/lib/errors/index.d.mts +2 -8
- package/dist/lib/errors/index.d.ts +2 -8
- package/dist/lib/errors/index.js +4 -4
- package/dist/lib/errors/index.mjs +4 -4
- package/dist/lib/identifiers.d.mts +53 -0
- package/dist/lib/identifiers.d.ts +53 -0
- package/dist/lib/identifiers.js +212 -0
- package/dist/lib/identifiers.mjs +163 -0
- package/dist/lib/index.d.mts +7 -5
- package/dist/lib/index.d.ts +7 -5
- package/dist/lib/index.js +2 -14
- package/dist/lib/index.mjs +1 -14
- package/dist/lib/media-buy/compatibility.d.mts +1 -1
- package/dist/lib/media-buy/compatibility.d.ts +1 -1
- package/dist/lib/media-buy/compatibility.js +26 -45
- package/dist/lib/media-buy/compatibility.mjs +26 -45
- package/dist/lib/media-buy/index.d.mts +1 -1
- package/dist/lib/media-buy/index.d.ts +1 -1
- package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
- package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
- package/dist/lib/media-buy/property-policy.d.mts +15 -1
- package/dist/lib/media-buy/property-policy.d.ts +15 -1
- package/dist/lib/media-buy/property-policy.js +135 -3
- package/dist/lib/media-buy/property-policy.mjs +134 -3
- package/dist/lib/protocols/index.js +14 -22
- package/dist/lib/protocols/index.mjs +5 -13
- package/dist/lib/registry/index.d.mts +12 -0
- package/dist/lib/registry/index.d.ts +12 -0
- package/dist/lib/registry/index.js +159 -5
- package/dist/lib/registry/index.mjs +156 -4
- package/dist/lib/registry/types.d.mts +26 -2
- package/dist/lib/registry/types.d.ts +26 -2
- package/dist/lib/registry/types.generated.d.mts +51 -11
- package/dist/lib/registry/types.generated.d.ts +51 -11
- package/dist/lib/reporting/source/conformance.d.mts +8 -8
- package/dist/lib/reporting/source/conformance.d.ts +8 -8
- package/dist/lib/reporting/source/manifest.d.mts +27 -27
- package/dist/lib/reporting/source/manifest.d.ts +27 -27
- package/dist/lib/server/create-adcp-server.js +6 -0
- package/dist/lib/server/create-adcp-server.mjs +6 -0
- package/dist/lib/server/decisioning/specialisms/lists.d.mts +4 -4
- package/dist/lib/server/decisioning/specialisms/lists.d.ts +4 -4
- package/dist/lib/server/index.d.mts +3 -0
- package/dist/lib/server/index.d.ts +3 -0
- package/dist/lib/server/index.js +8 -1
- package/dist/lib/server/index.mjs +4 -0
- package/dist/lib/server/property-lists.d.mts +36 -0
- package/dist/lib/server/property-lists.d.ts +36 -0
- package/dist/lib/server/property-lists.js +154 -0
- package/dist/lib/server/property-lists.mjs +129 -0
- package/dist/lib/server/targeting-helpers.d.mts +2 -0
- package/dist/lib/server/targeting-helpers.d.ts +2 -0
- package/dist/lib/server/targeting-helpers.js +28 -1
- package/dist/lib/server/targeting-helpers.mjs +18 -1
- package/dist/lib/signing/parser.js +2 -2
- package/dist/lib/signing/parser.mjs +2 -2
- package/dist/lib/signing/server.d.mts +1 -1
- package/dist/lib/signing/server.d.ts +1 -1
- package/dist/lib/signing/server.mjs +5 -1
- package/dist/lib/signing/webhook-verifier.d.mts +11 -0
- package/dist/lib/signing/webhook-verifier.d.ts +11 -0
- package/dist/lib/signing/webhook-verifier.js +11 -3
- package/dist/lib/signing/webhook-verifier.mjs +11 -3
- package/dist/lib/supply-path/verify.js +12 -2
- package/dist/lib/supply-path/verify.mjs +2 -2
- package/dist/lib/testing/compliance/comply.js +0 -8
- package/dist/lib/testing/compliance/comply.mjs +0 -8
- package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
- package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
- package/dist/lib/testing/index.d.mts +2 -0
- package/dist/lib/testing/index.d.ts +2 -0
- package/dist/lib/testing/index.js +5 -0
- package/dist/lib/testing/index.mjs +3 -0
- package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
- package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
- package/dist/lib/testing/scenarios/capabilities.js +8 -41
- package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
- package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
- package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
- package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
- package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
- package/dist/lib/testing/storyboard/index.d.mts +2 -0
- package/dist/lib/testing/storyboard/index.d.ts +2 -0
- package/dist/lib/testing/storyboard/index.js +5 -0
- package/dist/lib/testing/storyboard/index.mjs +3 -0
- package/dist/lib/testing/storyboard/loader.js +12 -0
- package/dist/lib/testing/storyboard/loader.mjs +12 -0
- package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
- package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
- package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
- package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
- package/dist/lib/testing/storyboard/runner.js +318 -58
- package/dist/lib/testing/storyboard/runner.mjs +322 -58
- package/dist/lib/testing/storyboard/types.d.mts +38 -16
- package/dist/lib/testing/storyboard/types.d.ts +38 -16
- package/dist/lib/testing/storyboard/types.js +1 -0
- package/dist/lib/testing/storyboard/types.mjs +1 -0
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/testing/storyboard/validations.js +64 -0
- package/dist/lib/testing/storyboard/validations.mjs +67 -1
- package/dist/lib/testing/types.d.mts +15 -1
- package/dist/lib/testing/types.d.ts +15 -1
- package/dist/lib/types/schemas.generated.d.ts +65 -65
- package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
- package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
- package/dist/lib/utils/adcp-version-config.js +6 -0
- package/dist/lib/utils/adcp-version-config.mjs +6 -0
- package/dist/lib/utils/capabilities.d.mts +7 -9
- package/dist/lib/utils/capabilities.d.ts +7 -9
- package/dist/lib/utils/capabilities.js +14 -28
- package/dist/lib/utils/capabilities.mjs +14 -27
- package/dist/lib/utils/creative-adapter.d.mts +15 -113
- package/dist/lib/utils/creative-adapter.d.ts +15 -113
- package/dist/lib/utils/creative-adapter.js +7 -106
- package/dist/lib/utils/creative-adapter.mjs +7 -102
- package/dist/lib/utils/format-renders.d.mts +20 -80
- package/dist/lib/utils/format-renders.d.ts +20 -80
- package/dist/lib/utils/format-renders.js +7 -67
- package/dist/lib/utils/format-renders.mjs +7 -66
- package/dist/lib/utils/index.d.mts +1 -2
- package/dist/lib/utils/index.d.ts +1 -2
- package/dist/lib/utils/index.js +0 -7
- package/dist/lib/utils/index.mjs +0 -6
- package/dist/lib/utils/preview-normalizer.d.mts +31 -80
- package/dist/lib/utils/preview-normalizer.d.ts +31 -80
- package/dist/lib/utils/preview-normalizer.js +5 -50
- package/dist/lib/utils/preview-normalizer.mjs +5 -49
- package/dist/lib/utils/pricing-adapter.d.mts +2 -36
- package/dist/lib/utils/pricing-adapter.d.ts +2 -36
- package/dist/lib/utils/pricing-adapter.js +0 -105
- package/dist/lib/utils/pricing-adapter.mjs +0 -100
- package/dist/lib/utils/request-normalizer.d.mts +1 -2
- package/dist/lib/utils/request-normalizer.d.ts +1 -2
- package/dist/lib/v2/projection/creative-delivery.d.mts +2 -0
- package/dist/lib/v2/projection/creative-delivery.d.ts +2 -0
- package/dist/lib/v2/projection/creative-delivery.js +7 -0
- package/dist/lib/v2/projection/creative-delivery.mjs +6 -0
- package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
- package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
- package/dist/lib/v2/projection/legacy-metadata.js +41 -1
- package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
- package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
- package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
- package/dist/lib/v2/projection/v1-to-v2.js +13 -0
- package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
- package/dist/lib/validation/client-hooks.d.mts +1 -4
- package/dist/lib/validation/client-hooks.d.ts +1 -4
- package/dist/lib/validation/get-products-request.d.mts +1 -1
- package/dist/lib/validation/get-products-request.d.ts +1 -1
- package/dist/lib/validation/schema-loader.js +6 -0
- package/dist/lib/validation/schema-loader.mjs +6 -0
- package/dist/lib/validation/schema-validator.js +1 -26
- package/dist/lib/validation/schema-validator.mjs +1 -26
- package/dist/lib/version.d.mts +5 -5
- package/dist/lib/version.d.ts +5 -5
- package/dist/lib/version.js +3 -5
- package/dist/lib/version.mjs +3 -5
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
- package/docs/guides/CONFORMANCE.md +25 -0
- package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
- package/docs/guides/CREATIVE-DELIVERY.md +45 -6
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
- package/docs/guides/PROPERTY-LISTS.md +264 -0
- package/docs/guides/SIGNING-GUIDE.md +25 -0
- package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
- package/docs/llms.txt +2 -2
- package/docs/migration-13-to-14.md +20 -16
- package/docs/migration-14.x-rc-worksheet.md +5 -5
- package/docs/migration-4.x-to-5.x.md +12 -7
- package/docs/migration-drop-adcp-2.md +25 -0
- package/package.json +3 -18
- package/skills/call-adcp-agent/SKILL.md +23 -25
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
- package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
- package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
- package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
- package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
- package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
- package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
- package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
- package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
- package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
- package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
- package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
- package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
- package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
- package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
- package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
- package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
- package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
- package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
- package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
- package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
- package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
- package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
- package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
- package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
- package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
- package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
- package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
- package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
- package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
- package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
- package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
- package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
- package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
- package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
- package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
- package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
- package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
- package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
- package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
- package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
- package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
- package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
- package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
- package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
- package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
- package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
- package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
- package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
- package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
- package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
- package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
- package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
- package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
- package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
- package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
- package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
- package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
- package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
- package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
- package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
- package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
- package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
- package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
- package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
- package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
- package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
- package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
- package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
- package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
- package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
- package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
- package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
- package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
- package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
- package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
- package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
- package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
- package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
- package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
- package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
- package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
- package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
- package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
- package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
- package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
- package/dist/lib/schemas-data/v2.5/index.json +0 -604
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
- package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
- package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
- package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
- package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
- package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
- package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
- package/dist/lib/types/v2-5/index.d.mts +0 -1
- package/dist/lib/types/v2-5/index.d.ts +0 -1
- package/dist/lib/types/v2-5/index.js +0 -22
- package/dist/lib/types/v2-5/index.mjs +0 -1
- package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
- package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
- package/dist/lib/types/v2-5/tools.generated.js +0 -16
- package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
- package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
- package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
- package/dist/lib/utils/sync-creatives-adapter.js +0 -83
- package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
|
@@ -62,6 +62,7 @@ var import_node_crypto = require("node:crypto");
|
|
|
62
62
|
var import_node_fs = require("node:fs");
|
|
63
63
|
var import_node_path = require("node:path");
|
|
64
64
|
var import_account_policy = require('./account-policy.js');
|
|
65
|
+
var import_creative_build_probe = require('./creative-build-probe.js');
|
|
65
66
|
var import_client = require('../client.js');
|
|
66
67
|
var import_protocols = require('../../protocols/index.js');
|
|
67
68
|
var import_rawResponseCapture = require('../../protocols/rawResponseCapture.js');
|
|
@@ -76,6 +77,7 @@ var import_parallel_dispatch = require('./parallel-dispatch.js');
|
|
|
76
77
|
var import_path = require('./path.js');
|
|
77
78
|
var import_rate_limit_trip = require('./rate-limit-trip.js');
|
|
78
79
|
var import_redact_secrets = require('../../utils/redact-secrets.js');
|
|
80
|
+
var import_property_list_reference = require('./property-list-reference.js');
|
|
79
81
|
var import_response_unwrapper = require('../../utils/response-unwrapper.js');
|
|
80
82
|
var import_envelope_status_compat = require('../../utils/envelope-status-compat.js');
|
|
81
83
|
var import_test_controller = require('../test-controller.js');
|
|
@@ -761,38 +763,48 @@ function filterResponseHeaders(headers) {
|
|
|
761
763
|
async function runStoryboard(agentUrlOrUrls, storyboard, options = {}) {
|
|
762
764
|
options = applyReusableProfileOptions(options);
|
|
763
765
|
if ((0, import_client.hasTestClientScope)() && !options._discoveryPass) options = { ...options, _discoveryPass: {} };
|
|
764
|
-
return (0,
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
766
|
+
return (0, import_property_list_reference.withPropertyListCredentialRedaction)(
|
|
767
|
+
() => (0, import_protocols.withMCPConnectionScope)(
|
|
768
|
+
async () => {
|
|
769
|
+
options = applyStoryboardVersionOptions(storyboard, options);
|
|
770
|
+
options = (0, import_functional_dispatch.applyFunctionalRequestSigning)(options, {
|
|
771
|
+
...options.complianceDir && { complianceDir: options.complianceDir },
|
|
772
|
+
...options.adcpVersion && { version: options.adcpVersion }
|
|
773
|
+
});
|
|
774
|
+
options = (0, import_test_kit.resolveDeclaredTestKit)(storyboard, options);
|
|
775
|
+
options = (0, import_native_a2a_compliance.applyNativeA2AComplianceTransportOptions)(options);
|
|
776
|
+
if (storyboard.requires?.[0] === "property_list_reference_runner" && storyboardCapabilityPredicates(storyboard).length === 0 && propertyListReferenceNeedsMcp(options)) {
|
|
777
|
+
return buildRequirementUnmetResult(
|
|
778
|
+
Array.isArray(agentUrlOrUrls) ? agentUrlOrUrls : [agentUrlOrUrls],
|
|
779
|
+
storyboard,
|
|
780
|
+
"property_list_reference_runner",
|
|
781
|
+
"Credential-isolated property-list references currently require MCP; A2A probe coverage is unavailable."
|
|
782
|
+
);
|
|
783
|
+
}
|
|
784
|
+
if ((0, import_client.hasTestClientScope)() && options._client && !options.agents) {
|
|
785
|
+
const resolution = (0, import_client.getOrCreateClientResolution)(
|
|
786
|
+
typeof agentUrlOrUrls === "string" ? agentUrlOrUrls : agentUrlOrUrls[0],
|
|
787
|
+
options
|
|
788
|
+
);
|
|
789
|
+
const discovered = await (0, import_client.getOrDiscoverProfile)(resolution.client, options);
|
|
790
|
+
options = {
|
|
791
|
+
...options,
|
|
792
|
+
_profile: discovered.step.passed ? discovered.profile : void 0,
|
|
793
|
+
agentTools: discovered.step.passed ? discovered.profile.tools : void 0
|
|
794
|
+
};
|
|
795
|
+
}
|
|
796
|
+
const schemaRoot = getRunSchemaRoot(options);
|
|
797
|
+
const runBody = () => (0, import_schema_loader.withServedReleaseSchemaRoots)(
|
|
798
|
+
options.servedReleaseSchemaRoots,
|
|
799
|
+
() => runStoryboardBody(agentUrlOrUrls, storyboard, options)
|
|
777
800
|
);
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
const schemaRoot = getRunSchemaRoot(options);
|
|
786
|
-
const runBody = () => (0, import_schema_loader.withServedReleaseSchemaRoots)(
|
|
787
|
-
options.servedReleaseSchemaRoots,
|
|
788
|
-
() => runStoryboardBody(agentUrlOrUrls, storyboard, options)
|
|
789
|
-
);
|
|
790
|
-
if (schemaRoot) {
|
|
791
|
-
return await (0, import_schema_loader.withExternalSchemaRoot)(schemaRoot.adcpVersion, schemaRoot.schemaRoot, runBody);
|
|
792
|
-
}
|
|
793
|
-
return await runBody();
|
|
794
|
-
},
|
|
795
|
-
{ isolate: !(0, import_client.hasTestClientScope)() }
|
|
801
|
+
if (schemaRoot) {
|
|
802
|
+
return await (0, import_schema_loader.withExternalSchemaRoot)(schemaRoot.adcpVersion, schemaRoot.schemaRoot, runBody);
|
|
803
|
+
}
|
|
804
|
+
return await runBody();
|
|
805
|
+
},
|
|
806
|
+
{ isolate: !(0, import_client.hasTestClientScope)() }
|
|
807
|
+
)
|
|
796
808
|
);
|
|
797
809
|
}
|
|
798
810
|
async function runStoryboardBody(agentUrlOrUrls, storyboard, options) {
|
|
@@ -872,6 +884,7 @@ async function runStoryboardBody(agentUrlOrUrls, storyboard, options) {
|
|
|
872
884
|
'runStoryboard: webhook_receiver is incompatible with multi_instance_strategy: "multi-pass". Each pass would bind a fresh receiver URL, so agents caching the pass-1 URL would deliver to a dead port in pass 2. Use round-robin when the storyboard needs a webhook receiver, or run multi-pass on a storyboard without webhook observation.'
|
|
873
885
|
);
|
|
874
886
|
}
|
|
887
|
+
if (storyboard.creative_build_probe) return executeStoryboardPass(agentUrls, storyboard, options, 0);
|
|
875
888
|
return runMultiPass(agentUrls, storyboard, options);
|
|
876
889
|
}
|
|
877
890
|
if (options.agents) {
|
|
@@ -1024,6 +1037,7 @@ const REQUIREMENT_TO_SKIP_REASON = {
|
|
|
1024
1037
|
webhook_replay_receiver: "not_applicable",
|
|
1025
1038
|
trusted_match_context_router_runner: "not_applicable",
|
|
1026
1039
|
trusted_match_publisher_auth_runner: "requirement_unmet",
|
|
1040
|
+
property_list_reference_runner: "requirement_unmet",
|
|
1027
1041
|
request_signer: "not_applicable",
|
|
1028
1042
|
multi_agent: "requirement_unmet"
|
|
1029
1043
|
};
|
|
@@ -1130,6 +1144,9 @@ function buildRequiredAnyOfToolsMissingResult(agentUrls, storyboard, detail) {
|
|
|
1130
1144
|
notices: []
|
|
1131
1145
|
};
|
|
1132
1146
|
}
|
|
1147
|
+
function propertyListReferenceNeedsMcp(options) {
|
|
1148
|
+
return options.agents ? Object.values(options.agents).some((agent) => (agent.transport ?? options.protocol) === "a2a") : options.protocol === "a2a";
|
|
1149
|
+
}
|
|
1133
1150
|
async function checkRequires(requires, storyboard, options, profile, precomputed) {
|
|
1134
1151
|
let preparedPublisherAuthProbes = getPreparedTrustedMatchPublisherAuth(options);
|
|
1135
1152
|
for (const requirement of requires) {
|
|
@@ -1168,6 +1185,15 @@ async function checkRequires(requires, storyboard, options, profile, precomputed
|
|
|
1168
1185
|
}
|
|
1169
1186
|
case "real_wire":
|
|
1170
1187
|
break;
|
|
1188
|
+
case "property_list_reference_runner": {
|
|
1189
|
+
if (propertyListReferenceNeedsMcp(options)) {
|
|
1190
|
+
return {
|
|
1191
|
+
requirement,
|
|
1192
|
+
detail: "Credential-isolated property-list references currently require MCP; A2A probe coverage is unavailable."
|
|
1193
|
+
};
|
|
1194
|
+
}
|
|
1195
|
+
break;
|
|
1196
|
+
}
|
|
1171
1197
|
case "webhook_receiver": {
|
|
1172
1198
|
if (options.webhook_receiver === void 0) {
|
|
1173
1199
|
return {
|
|
@@ -1457,7 +1483,7 @@ function collectCapabilityNotices(storyboard, profile) {
|
|
|
1457
1483
|
if (requestSigning?.["supported"] !== true) {
|
|
1458
1484
|
notices.push({
|
|
1459
1485
|
severity: "future_required",
|
|
1460
|
-
code: "
|
|
1486
|
+
code: "request_signing_required_in_4_0",
|
|
1461
1487
|
message: "RFC 9421 request signing (`request_signing.supported: true`) is not advertised. Required for spend-committing operations in AdCP 4.0 \u2014 declare the capability and pre-register the runner compliance test keypair before the 4.0 cut.",
|
|
1462
1488
|
effective_version: "4.0",
|
|
1463
1489
|
capability_path: "request_signing.supported",
|
|
@@ -1478,7 +1504,7 @@ function collectCapabilityNotices(storyboard, profile) {
|
|
|
1478
1504
|
if (webhookSigning?.["legacy_hmac_fallback"] === true) {
|
|
1479
1505
|
notices.push({
|
|
1480
1506
|
severity: "deprecation",
|
|
1481
|
-
code: "
|
|
1507
|
+
code: "legacy_hmac_fallback_removed_in_4_0",
|
|
1482
1508
|
message: "`webhook_signing.legacy_hmac_fallback: true` is deprecated and removed in AdCP 4.0. Migrate webhook signature verification to RFC 9421 before the 4.0 cut.",
|
|
1483
1509
|
effective_version: "4.0",
|
|
1484
1510
|
capability_path: "webhook_signing.legacy_hmac_fallback",
|
|
@@ -1998,16 +2024,118 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
1998
2024
|
}
|
|
1999
2025
|
let seedingPhaseResult = null;
|
|
2000
2026
|
let seedingFailed = false;
|
|
2027
|
+
let creativeBuildCatalogFailed = false;
|
|
2001
2028
|
let seedingMissingController = false;
|
|
2002
2029
|
let seedingUnsupported = false;
|
|
2003
2030
|
let fixtureUnsatisfied = false;
|
|
2004
2031
|
let fixtureBindings;
|
|
2005
2032
|
let fixtureResolutionRecords;
|
|
2006
2033
|
let fixtureCoverageGap;
|
|
2034
|
+
if (storyboard.creative_build_probe && !skipControllerSeedingForPhaseGates) {
|
|
2035
|
+
let resolution;
|
|
2036
|
+
try {
|
|
2037
|
+
resolution = routingContext || isMultiInstance ? {
|
|
2038
|
+
status: "unsatisfied",
|
|
2039
|
+
detail: `fixture_unsatisfied: creative_format:${storyboard.creative_build_probe.context_prefix}: resolve an independent fixture for each routed or replicated agent in a single-agent run`
|
|
2040
|
+
} : (0, import_creative_build_probe.prepareCreativeBuildProbe)(
|
|
2041
|
+
profile?.raw_capabilities,
|
|
2042
|
+
storyboard.creative_build_probe,
|
|
2043
|
+
options.test_kit,
|
|
2044
|
+
options.adcpVersion
|
|
2045
|
+
);
|
|
2046
|
+
} catch (error) {
|
|
2047
|
+
await Promise.allSettled([
|
|
2048
|
+
...webhookReceiver ? [webhookReceiver.close()] : [],
|
|
2049
|
+
...!callerOwnsClients ? [(0, import_protocols.closeScopedConnections)(options.protocol)] : []
|
|
2050
|
+
]);
|
|
2051
|
+
throw error;
|
|
2052
|
+
}
|
|
2053
|
+
const handle = storyboard.creative_build_probe.context_prefix;
|
|
2054
|
+
fixtureResolutionRecords = [
|
|
2055
|
+
{
|
|
2056
|
+
fixture_type: "creative_format",
|
|
2057
|
+
handle,
|
|
2058
|
+
requirements: resolution.status === "resolved" ? resolution.requirements : [],
|
|
2059
|
+
status: resolution.status,
|
|
2060
|
+
...resolution.status === "resolved" ? {
|
|
2061
|
+
seller_ids: resolution.capabilityId !== void 0 ? { capability_id: resolution.capabilityId } : { format_id: resolution.formatId }
|
|
2062
|
+
} : {},
|
|
2063
|
+
strategy: "discover",
|
|
2064
|
+
strategies_attempted: [
|
|
2065
|
+
{
|
|
2066
|
+
strategy: "discover",
|
|
2067
|
+
disposition: resolution.status === "unsatisfied" ? "unavailable" : resolution.status,
|
|
2068
|
+
detail: resolution.status === "resolved" ? `Bound build route using ${resolution.source} input` : resolution.detail
|
|
2069
|
+
}
|
|
2070
|
+
]
|
|
2071
|
+
}
|
|
2072
|
+
];
|
|
2073
|
+
if (resolution.status !== "resolved") {
|
|
2074
|
+
const noPhasesIndex = phaseResults.findIndex((phase) => phase.phase_id === "no_phases");
|
|
2075
|
+
if (noPhasesIndex >= 0) {
|
|
2076
|
+
skippedCount -= phaseResults[noPhasesIndex].steps.filter((step) => step.skipped).length;
|
|
2077
|
+
phaseResults.splice(noPhasesIndex, 1);
|
|
2078
|
+
}
|
|
2079
|
+
}
|
|
2080
|
+
if (resolution.status === "failed") {
|
|
2081
|
+
seedingFailed = true;
|
|
2082
|
+
creativeBuildCatalogFailed = true;
|
|
2083
|
+
failedCount += 1;
|
|
2084
|
+
seedingPhaseResult = {
|
|
2085
|
+
phase_id: "fixture_resolution",
|
|
2086
|
+
phase_title: "Creative build fixture resolution",
|
|
2087
|
+
passed: false,
|
|
2088
|
+
duration_ms: 0,
|
|
2089
|
+
steps: [
|
|
2090
|
+
{
|
|
2091
|
+
storyboard_id: storyboard.id,
|
|
2092
|
+
phase_id: "fixture_resolution",
|
|
2093
|
+
step_id: "creative_build_catalog",
|
|
2094
|
+
title: "Validate advertised creative build catalog",
|
|
2095
|
+
task: "get_adcp_capabilities",
|
|
2096
|
+
passed: false,
|
|
2097
|
+
duration_ms: 0,
|
|
2098
|
+
context: {},
|
|
2099
|
+
extraction: { path: "none" },
|
|
2100
|
+
validations: [
|
|
2101
|
+
{
|
|
2102
|
+
check: "creative_build_probe_catalog",
|
|
2103
|
+
passed: false,
|
|
2104
|
+
description: "Advertised creative catalog satisfies its format and routing contract",
|
|
2105
|
+
error: resolution.detail
|
|
2106
|
+
}
|
|
2107
|
+
]
|
|
2108
|
+
}
|
|
2109
|
+
]
|
|
2110
|
+
};
|
|
2111
|
+
} else if (resolution.status === "resolved") {
|
|
2112
|
+
for (const key of [
|
|
2113
|
+
"capability_id",
|
|
2114
|
+
"target_format_id",
|
|
2115
|
+
"message",
|
|
2116
|
+
"creative_manifest",
|
|
2117
|
+
"creative_id",
|
|
2118
|
+
"transformer_id",
|
|
2119
|
+
"config"
|
|
2120
|
+
]) {
|
|
2121
|
+
delete context[`${handle}_${key}`];
|
|
2122
|
+
}
|
|
2123
|
+
Object.assign(context, resolution.context);
|
|
2124
|
+
options = { ...options, contracts: [.../* @__PURE__ */ new Set([...options.contracts ?? [], "creative_build_probe_runner"])] };
|
|
2125
|
+
} else {
|
|
2126
|
+
fixtureUnsatisfied = true;
|
|
2127
|
+
if (preSeeded === void 0 || preSeeded.attach) skippedCount += 1;
|
|
2128
|
+
fixtureCoverageGap = {
|
|
2129
|
+
reason: "fixture_unsatisfied",
|
|
2130
|
+
detail: resolution.detail,
|
|
2131
|
+
fixtures: [{ fixture_type: "creative_format", handle, requirements: [] }]
|
|
2132
|
+
};
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2007
2135
|
{
|
|
2008
2136
|
let seeding;
|
|
2009
2137
|
try {
|
|
2010
|
-
seeding = creativeAssetFixtureGap || skipControllerSeedingForPhaseGates ? null : preSeeded !== void 0 ? preSeeded.result : await (0, import_seeding.runControllerSeeding)(
|
|
2138
|
+
seeding = creativeAssetFixtureGap || fixtureUnsatisfied || seedingFailed || skipControllerSeedingForPhaseGates ? null : preSeeded !== void 0 ? preSeeded.result : await (0, import_seeding.runControllerSeeding)(
|
|
2011
2139
|
clients[0],
|
|
2012
2140
|
storyboard,
|
|
2013
2141
|
options,
|
|
@@ -2068,7 +2196,7 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
2068
2196
|
}
|
|
2069
2197
|
}
|
|
2070
2198
|
fixtureBindings = seeding.bindings;
|
|
2071
|
-
fixtureResolutionRecords = seeding.resolutionRecords;
|
|
2199
|
+
fixtureResolutionRecords = fixtureResolutionRecords ? [...fixtureResolutionRecords, ...seeding.resolutionRecords ?? []] : seeding.resolutionRecords;
|
|
2072
2200
|
fixtureUnsatisfied = seeding.fixtureUnsatisfied === true && seeding.failedCount === 0;
|
|
2073
2201
|
if (fixtureUnsatisfied) {
|
|
2074
2202
|
const noPhasesIndex = phaseResults.findIndex((phase) => phase.phase_id === "no_phases");
|
|
@@ -2310,6 +2438,12 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
|
|
|
2310
2438
|
} : seedingUnsupported ? {
|
|
2311
2439
|
skip_reason: "fixture_seed_unsupported",
|
|
2312
2440
|
skip: { reason: "not_applicable", detail: FIXTURE_SEED_UNSUPPORTED_DETAIL }
|
|
2441
|
+
} : creativeBuildCatalogFailed ? {
|
|
2442
|
+
skip_reason: "prerequisite_failed",
|
|
2443
|
+
skip: {
|
|
2444
|
+
reason: "prerequisite_failed",
|
|
2445
|
+
detail: "Creative build catalog validation failed in fixture_resolution.creative_build_catalog."
|
|
2446
|
+
}
|
|
2313
2447
|
} : seedingFailed ? {
|
|
2314
2448
|
skip_reason: "controller_seeding_failed",
|
|
2315
2449
|
skip: { reason: "prerequisite_failed", detail: CONTROLLER_SEEDING_FAILED_DETAIL }
|
|
@@ -3105,32 +3239,57 @@ function summarizeStrictValidation(phases) {
|
|
|
3105
3239
|
}
|
|
3106
3240
|
async function runStoryboardStep(agentUrl, storyboard, stepId, options = {}) {
|
|
3107
3241
|
options = applyReusableProfileOptions(options);
|
|
3108
|
-
return (0,
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3242
|
+
return (0, import_property_list_reference.withPropertyListCredentialRedaction)(
|
|
3243
|
+
() => (0, import_protocols.withMCPConnectionScope)(
|
|
3244
|
+
async () => {
|
|
3245
|
+
storyboard = (0, import_loader.normalizeValidationOnlyTasks)(storyboard);
|
|
3246
|
+
(0, import_loader.validateStoryboardShape)(storyboard);
|
|
3247
|
+
options = applyStoryboardVersionOptions(storyboard, options);
|
|
3248
|
+
options = (0, import_functional_dispatch.applyFunctionalRequestSigning)(options, {
|
|
3249
|
+
...options.complianceDir && { complianceDir: options.complianceDir },
|
|
3250
|
+
...options.adcpVersion && { version: options.adcpVersion }
|
|
3251
|
+
});
|
|
3252
|
+
options = (0, import_test_kit.resolveDeclaredTestKit)(storyboard, options);
|
|
3253
|
+
options = (0, import_native_a2a_compliance.applyNativeA2AComplianceTransportOptions)(options);
|
|
3254
|
+
const schemaRoot = getRunSchemaRoot(options);
|
|
3255
|
+
const runBody = () => (0, import_schema_loader.withServedReleaseSchemaRoots)(
|
|
3256
|
+
options.servedReleaseSchemaRoots,
|
|
3257
|
+
() => runStoryboardStepBody(agentUrl, storyboard, stepId, options)
|
|
3258
|
+
);
|
|
3259
|
+
if (schemaRoot) {
|
|
3260
|
+
return await (0, import_schema_loader.withExternalSchemaRoot)(schemaRoot.adcpVersion, schemaRoot.schemaRoot, runBody);
|
|
3261
|
+
}
|
|
3262
|
+
return await runBody();
|
|
3263
|
+
},
|
|
3264
|
+
{ isolate: !(0, import_client.hasTestClientScope)() }
|
|
3265
|
+
)
|
|
3130
3266
|
);
|
|
3131
3267
|
}
|
|
3132
3268
|
async function runStoryboardStepBody(agentUrl, storyboard, stepId, options) {
|
|
3133
3269
|
(0, import_test_kit.validateTestKit)(options.test_kit);
|
|
3270
|
+
if (storyboard.requires?.[0] === "property_list_reference_runner" && storyboardCapabilityPredicates(storyboard).length === 0 && propertyListReferenceNeedsMcp(options)) {
|
|
3271
|
+
const found2 = flattenSteps(storyboard).find((entry) => entry.step.id === stepId);
|
|
3272
|
+
if (!found2) throw new Error(`Step "${stepId}" not found in storyboard "${storyboard.id}".`);
|
|
3273
|
+
return {
|
|
3274
|
+
storyboard_id: storyboard.id,
|
|
3275
|
+
step_id: stepId,
|
|
3276
|
+
phase_id: found2.phaseId,
|
|
3277
|
+
title: found2.step.title,
|
|
3278
|
+
task: found2.step.task,
|
|
3279
|
+
passed: true,
|
|
3280
|
+
skipped: true,
|
|
3281
|
+
skip_reason: "requirement_unmet",
|
|
3282
|
+
skip: {
|
|
3283
|
+
reason: "requirement_unmet",
|
|
3284
|
+
requirement: "property_list_reference_runner",
|
|
3285
|
+
detail: "Credential-isolated property-list references currently require MCP; A2A probe coverage is unavailable."
|
|
3286
|
+
},
|
|
3287
|
+
duration_ms: 0,
|
|
3288
|
+
validations: [],
|
|
3289
|
+
context: { ...storyboard.context, ...options.context },
|
|
3290
|
+
extraction: { path: "none" }
|
|
3291
|
+
};
|
|
3292
|
+
}
|
|
3134
3293
|
const clientResolution = (0, import_client.getOrCreateClientResolution)(agentUrl, options);
|
|
3135
3294
|
const client = clientResolution.client;
|
|
3136
3295
|
let profile;
|
|
@@ -3181,6 +3340,77 @@ async function runStoryboardStepBody(agentUrl, storyboard, stepId, options) {
|
|
|
3181
3340
|
return result;
|
|
3182
3341
|
}
|
|
3183
3342
|
}
|
|
3343
|
+
if (storyboard.creative_build_probe) {
|
|
3344
|
+
let resolution;
|
|
3345
|
+
try {
|
|
3346
|
+
resolution = (0, import_creative_build_probe.prepareCreativeBuildProbe)(
|
|
3347
|
+
profile?.raw_capabilities,
|
|
3348
|
+
storyboard.creative_build_probe,
|
|
3349
|
+
options.test_kit,
|
|
3350
|
+
options.adcpVersion
|
|
3351
|
+
);
|
|
3352
|
+
} catch (error) {
|
|
3353
|
+
if (!clientResolution.reusedShared) {
|
|
3354
|
+
await Promise.allSettled([(0, import_protocols.closeScopedConnections)(options.protocol)]);
|
|
3355
|
+
}
|
|
3356
|
+
throw error;
|
|
3357
|
+
}
|
|
3358
|
+
if (resolution.status === "failed") {
|
|
3359
|
+
if (!clientResolution.reusedShared) await (0, import_protocols.closeScopedConnections)(options.protocol);
|
|
3360
|
+
return {
|
|
3361
|
+
storyboard_id: storyboard.id,
|
|
3362
|
+
step_id: found.step.id,
|
|
3363
|
+
phase_id: found.phaseId,
|
|
3364
|
+
title: found.step.title,
|
|
3365
|
+
task: found.step.task,
|
|
3366
|
+
passed: false,
|
|
3367
|
+
duration_ms: 0,
|
|
3368
|
+
validations: [
|
|
3369
|
+
{
|
|
3370
|
+
check: "creative_build_probe_catalog",
|
|
3371
|
+
passed: false,
|
|
3372
|
+
description: "Advertised creative catalog satisfies its format and routing contract",
|
|
3373
|
+
error: resolution.detail
|
|
3374
|
+
}
|
|
3375
|
+
],
|
|
3376
|
+
context,
|
|
3377
|
+
extraction: { path: "none" },
|
|
3378
|
+
contributions: Array.from(options.contributions ?? [])
|
|
3379
|
+
};
|
|
3380
|
+
}
|
|
3381
|
+
if (resolution.status === "unsatisfied") {
|
|
3382
|
+
if (!clientResolution.reusedShared) await (0, import_protocols.closeScopedConnections)(options.protocol);
|
|
3383
|
+
return {
|
|
3384
|
+
storyboard_id: storyboard.id,
|
|
3385
|
+
step_id: found.step.id,
|
|
3386
|
+
phase_id: found.phaseId,
|
|
3387
|
+
title: found.step.title,
|
|
3388
|
+
task: found.step.task,
|
|
3389
|
+
passed: true,
|
|
3390
|
+
skipped: true,
|
|
3391
|
+
skip_reason: "fixture_unsatisfied",
|
|
3392
|
+
skip: { reason: "not_applicable", detail: resolution.detail },
|
|
3393
|
+
duration_ms: 0,
|
|
3394
|
+
validations: [],
|
|
3395
|
+
context,
|
|
3396
|
+
extraction: { path: "none" },
|
|
3397
|
+
contributions: Array.from(options.contributions ?? [])
|
|
3398
|
+
};
|
|
3399
|
+
}
|
|
3400
|
+
for (const key of [
|
|
3401
|
+
"capability_id",
|
|
3402
|
+
"target_format_id",
|
|
3403
|
+
"message",
|
|
3404
|
+
"creative_manifest",
|
|
3405
|
+
"creative_id",
|
|
3406
|
+
"transformer_id",
|
|
3407
|
+
"config"
|
|
3408
|
+
]) {
|
|
3409
|
+
delete context[`${storyboard.creative_build_probe.context_prefix}_${key}`];
|
|
3410
|
+
}
|
|
3411
|
+
Object.assign(context, resolution.context);
|
|
3412
|
+
options = { ...options, contracts: [.../* @__PURE__ */ new Set([...options.contracts ?? [], "creative_build_probe_runner"])] };
|
|
3413
|
+
}
|
|
3184
3414
|
const injectedReceiver = options._webhookReceiver;
|
|
3185
3415
|
const webhookReceiver = injectedReceiver ?? (options.webhook_receiver ? await (0, import_webhook_receiver.createWebhookReceiver)({
|
|
3186
3416
|
...options.webhook_receiver.mode && { mode: options.webhook_receiver.mode },
|
|
@@ -3962,6 +4192,10 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
3962
4192
|
}
|
|
3963
4193
|
}
|
|
3964
4194
|
const effectiveRequestUrl = requestUrl ?? runState.agentUrl;
|
|
4195
|
+
(0, import_property_list_reference.rememberPropertyListCredentials)(
|
|
4196
|
+
taskResult?.data ?? (caughtError instanceof import_response_unwrapper.ResponseSchemaValidationError ? caughtError.data : void 0),
|
|
4197
|
+
(step.validations ?? []).flatMap((validation) => validation.auth_token_path ? [validation.auth_token_path] : [])
|
|
4198
|
+
);
|
|
3965
4199
|
const requestRecord = {
|
|
3966
4200
|
transport: options.protocol === "a2a" ? "a2a" : "mcp",
|
|
3967
4201
|
operation: effectiveStep.task,
|
|
@@ -4148,6 +4382,9 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
4148
4382
|
(av) => (0, import_context.injectContext)({ __v: av }, context, runState.runnerVars).__v
|
|
4149
4383
|
);
|
|
4150
4384
|
}
|
|
4385
|
+
if (resolved.denied_list_id !== void 0) {
|
|
4386
|
+
resolved.denied_list_id = (0, import_context.injectContext)({ value: resolved.denied_list_id }, context, runState.runnerVars).value;
|
|
4387
|
+
}
|
|
4151
4388
|
return resolved;
|
|
4152
4389
|
});
|
|
4153
4390
|
const upstreamTraffic = await prefetchUpstreamTraffic(
|
|
@@ -4192,7 +4429,30 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
|
|
|
4192
4429
|
};
|
|
4193
4430
|
})()
|
|
4194
4431
|
};
|
|
4195
|
-
validations = (0, import_validations.runValidations)(
|
|
4432
|
+
validations = (0, import_validations.runValidations)(
|
|
4433
|
+
resolvedValidations.filter((validation) => validation.check !== "property_list_reference"),
|
|
4434
|
+
vctx
|
|
4435
|
+
);
|
|
4436
|
+
for (const validation of resolvedValidations.filter((validation2) => validation2.check === "property_list_reference")) {
|
|
4437
|
+
const result = effectiveStep.task !== "create_property_list" || !validationTaskResult?.success ? {
|
|
4438
|
+
check: validation.check,
|
|
4439
|
+
passed: false,
|
|
4440
|
+
description: validation.description,
|
|
4441
|
+
error: "property_list_reference requires a successful create_property_list response."
|
|
4442
|
+
} : options.protocol === "a2a" ? {
|
|
4443
|
+
check: validation.check,
|
|
4444
|
+
passed: false,
|
|
4445
|
+
description: validation.description,
|
|
4446
|
+
error: "Credential-isolated reference resolution requires MCP."
|
|
4447
|
+
} : await (0, import_property_list_reference.verifyPropertyListReference)(validation, validationTaskResult.data, {
|
|
4448
|
+
agentUrl: client.getDiscoveredMcpEndpoint?.() ?? runState.agentUrl,
|
|
4449
|
+
version: options.adcpVersion ?? options._serverAdcpVersion,
|
|
4450
|
+
signal: options.signal,
|
|
4451
|
+
allowHttp: options.allow_http,
|
|
4452
|
+
redactValues: runCredentialValues(options)
|
|
4453
|
+
});
|
|
4454
|
+
validations.push((0, import_validations.decorateValidationResult)(result, vctx, validation));
|
|
4455
|
+
}
|
|
4196
4456
|
if (crossResponses && crossResponses.dispatches.length > 1) {
|
|
4197
4457
|
const perResponseValidations = resolvedValidations.filter(
|
|
4198
4458
|
(v) => v.check !== "cross_response_field_equal" && v.check !== "cross_response_count_distinct"
|