@adcp/sdk 16.0.0-beta.8 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +3 -3
- package/README.md +5 -2
- package/bin/adcp.js +10 -13
- 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 +19 -112
- package/dist/lib/core/SingleAgentClient.d.ts +19 -112
- package/dist/lib/core/SingleAgentClient.js +270 -252
- package/dist/lib/core/SingleAgentClient.mjs +275 -253
- 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/identity-3.3/revocation.js +6 -7
- package/dist/lib/identity-3.3/revocation.mjs +6 -7
- package/dist/lib/index.d.mts +4 -4
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.js +0 -14
- package/dist/lib/index.mjs +0 -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/legacy-purchase-continuation.d.mts +2 -2
- package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
- package/dist/lib/protocols/index.js +14 -22
- package/dist/lib/protocols/index.mjs +5 -13
- package/dist/lib/registry/types.d.mts +3 -2
- package/dist/lib/registry/types.d.ts +3 -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 +7 -1
- package/dist/lib/server/create-adcp-server.mjs +7 -1
- package/dist/lib/signing/crypto.d.mts +1 -1
- package/dist/lib/signing/crypto.d.ts +1 -1
- package/dist/lib/signing/crypto.js +2 -45
- package/dist/lib/signing/crypto.mjs +2 -46
- package/dist/lib/signing/web-bot-auth.d.mts +18 -10
- package/dist/lib/signing/web-bot-auth.d.ts +18 -10
- package/dist/lib/signing/web-bot-auth.js +29 -24
- package/dist/lib/signing/web-bot-auth.mjs +29 -24
- 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/catalog.d.mts +4 -0
- package/dist/lib/v2/projection/catalog.d.ts +4 -0
- package/dist/lib/v2/projection/creative-delivery.d.mts +17 -9
- package/dist/lib/v2/projection/creative-delivery.d.ts +17 -9
- package/dist/lib/v2/projection/creative-delivery.js +78 -10
- package/dist/lib/v2/projection/creative-delivery.mjs +77 -10
- 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 +63 -7
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
- package/docs/guides/REPORTING-STABILITY.md +7 -7
- package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
- package/docs/llms.txt +3 -3
- 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-agent-identity-3.3.md +44 -19
- package/docs/migration-drop-adcp-2.md +25 -0
- package/docs/migration-reporting-storage-package.md +3 -3
- package/docs/releases/16.0.0.md +20 -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"
|