@adcp/sdk 16.0.0-beta.8 → 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 +3 -0
- 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/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 +6 -0
- package/dist/lib/server/create-adcp-server.mjs +6 -0
- 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/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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CreativeBuildProbeSpec } from './creative-build-probe';
|
|
1
2
|
/**
|
|
2
3
|
* Types for storyboard-driven testing.
|
|
3
4
|
*
|
|
@@ -269,6 +270,8 @@ export interface Storyboard {
|
|
|
269
270
|
* Omitted handles retain the compatibility strategy `["seed"]`.
|
|
270
271
|
*/
|
|
271
272
|
fixture_resolution?: StoryboardFixtureResolution;
|
|
273
|
+
/** Opt-in runner preparation; does not add an agent protocol capability. */
|
|
274
|
+
creative_build_probe?: CreativeBuildProbeSpec;
|
|
272
275
|
/**
|
|
273
276
|
* Initial context values declared by the storyboard YAML. Runner callers may
|
|
274
277
|
* override these defaults with `StoryboardRunOptions.context`.
|
|
@@ -475,7 +478,7 @@ export interface FixtureResolutionAttempt {
|
|
|
475
478
|
export type FixtureResolutionEvidence = FixtureResolutionAttempt;
|
|
476
479
|
/** Machine-readable record emitted exactly once for every fixture handle. */
|
|
477
480
|
export interface FixtureResolutionRecord {
|
|
478
|
-
fixture_type: 'product' | 'pricing_option';
|
|
481
|
+
fixture_type: 'product' | 'pricing_option' | 'creative_format';
|
|
479
482
|
handle: string;
|
|
480
483
|
product_handle?: string;
|
|
481
484
|
requirements: FixtureMatchClause[];
|
|
@@ -483,8 +486,10 @@ export interface FixtureResolutionRecord {
|
|
|
483
486
|
status: FixtureResolutionStatus;
|
|
484
487
|
strategy?: FixtureResolutionStrategy;
|
|
485
488
|
seller_ids?: {
|
|
486
|
-
product_id
|
|
489
|
+
product_id?: string;
|
|
487
490
|
pricing_option_id?: string;
|
|
491
|
+
capability_id?: string;
|
|
492
|
+
format_id?: Record<string, unknown>;
|
|
488
493
|
};
|
|
489
494
|
}
|
|
490
495
|
/** One storyboard-scoped coverage gap produced by fixture resolution. */
|
|
@@ -890,7 +895,10 @@ export interface RateLimitTripSpec {
|
|
|
890
895
|
/** Maximum retry_after wait the runner will honor. Defaults to 30 seconds. */
|
|
891
896
|
replay_max_wait_seconds?: number;
|
|
892
897
|
}
|
|
893
|
-
export type StoryboardValidationCheck = 'response_schema' | 'field_present'
|
|
898
|
+
export type StoryboardValidationCheck = 'response_schema' | 'field_present'
|
|
899
|
+
/** Every item carries a non-null field at `array[*].field`; absent, null,
|
|
900
|
+
* or empty arrays grade not_applicable rather than passing vacuously. */
|
|
901
|
+
| 'all_fields_present' | 'field_absent' | 'envelope_field_present' | 'envelope_field_absent' | 'envelope_field_value' | 'envelope_field_value_or_absent' | 'field_value' | 'field_value_or_absent'
|
|
894
902
|
/**
|
|
895
903
|
* Assert that a string field in the task payload matches a JavaScript
|
|
896
904
|
* regular expression source declared in `pattern`. Fails when the path is
|
|
@@ -1042,7 +1050,7 @@ export type StoryboardValidationCheck = 'response_schema' | 'field_present' | 'f
|
|
|
1042
1050
|
* class: normalization, directionality, or range containment. Added for
|
|
1043
1051
|
* adcp-client#2060.
|
|
1044
1052
|
*/
|
|
1045
|
-
| 'canonical_format_satisfaction'
|
|
1053
|
+
| 'canonical_format_satisfaction' | 'property_list_reference'
|
|
1046
1054
|
/**
|
|
1047
1055
|
* Assert the cardinality of the array at `path`. Two configurations are
|
|
1048
1056
|
* supported: exact-count via `value: N` (passes only when the resolved
|
|
@@ -1230,6 +1238,23 @@ export interface RefsResolveScope {
|
|
|
1230
1238
|
equals: string;
|
|
1231
1239
|
}
|
|
1232
1240
|
export interface StoryboardValidation {
|
|
1241
|
+
/** Managing endpoint; $agent_url uses the issuer's discovered MCP endpoint (adcp#8289). */
|
|
1242
|
+
agent_url?: string;
|
|
1243
|
+
/** Creation-response path to the issued list ID. Defaults to list.list_id. */
|
|
1244
|
+
list_id_path?: string;
|
|
1245
|
+
/** Creation-response path to the read-only credential. Defaults to auth_token. */
|
|
1246
|
+
auth_token_path?: string;
|
|
1247
|
+
/** Existing owner-created control list; accepts a resolved $context.<key>. */
|
|
1248
|
+
denied_list_id?: string;
|
|
1249
|
+
/** Maximum identifiers requested per page, 1 through 10000. Required by the probe. */
|
|
1250
|
+
page_size?: number;
|
|
1251
|
+
/** Maximum pages to traverse, 1 through 100. Required by the probe. */
|
|
1252
|
+
max_pages?: number;
|
|
1253
|
+
/** Exact unordered snapshot, compared by (type, value). Required by the probe. */
|
|
1254
|
+
expected_identifiers?: Array<{
|
|
1255
|
+
type: string;
|
|
1256
|
+
value: string;
|
|
1257
|
+
}>;
|
|
1233
1258
|
/** Stable authored validation identifier echoed into runner results when present. */
|
|
1234
1259
|
id?: string;
|
|
1235
1260
|
/** Known validation kind, or a future string graded not_applicable by older runners. */
|
|
@@ -2152,7 +2177,7 @@ export interface RunnerSelectionResult {
|
|
|
2152
2177
|
*
|
|
2153
2178
|
* Spec: adcp-client#1626, adcp-client#2281, adcp-client#2356.
|
|
2154
2179
|
*/
|
|
2155
|
-
export type RequirementName = 'controller' | 'seeded_state' | 'real_wire' | 'webhook_receiver' | 'webhook_replay_receiver' | 'trusted_match_context_router_runner' | 'trusted_match_publisher_auth_runner' | 'request_signer' | 'multi_agent';
|
|
2180
|
+
export type RequirementName = 'controller' | 'seeded_state' | 'real_wire' | 'webhook_receiver' | 'webhook_replay_receiver' | 'trusted_match_context_router_runner' | 'trusted_match_publisher_auth_runner' | 'property_list_reference_runner' | 'request_signer' | 'multi_agent';
|
|
2156
2181
|
/**
|
|
2157
2182
|
* Enumeration of every requirement this SDK knows how to satisfy. The loader
|
|
2158
2183
|
* accepts other non-empty strings for forward compatibility; the runner treats
|
|
@@ -2180,12 +2205,9 @@ export interface SchemaValidationError {
|
|
|
2180
2205
|
* a deprecation or future-required advisory is the kind of thing a CI
|
|
2181
2206
|
* gate or dashboard SHOULD have explicit handling for.
|
|
2182
2207
|
*
|
|
2183
|
-
*
|
|
2184
|
-
*
|
|
2185
|
-
*
|
|
2186
|
-
* registers a different spelling. The *when* lives in the `effective_version`
|
|
2187
|
-
* field, never in the code. This keeps the surface stable across spec versions
|
|
2188
|
-
* — codes don't proliferate `_in_4_0` / `_in_5_0` siblings as the spec evolves.
|
|
2208
|
+
* Use the upstream runner-output contract's canonical codes so consumers can
|
|
2209
|
+
* aggregate the same advisory across runners. Keep each code stable for the
|
|
2210
|
+
* same advisory, including its version suffix where the contract defines one.
|
|
2189
2211
|
*
|
|
2190
2212
|
* Adding a new code is a wire-surface change AND a TypeScript breaking
|
|
2191
2213
|
* change for adopters who narrowed on `code`. Coordinate with the upstream
|
|
@@ -2199,10 +2221,10 @@ export type NoticeCode =
|
|
|
2199
2221
|
'signed_requests_specialism_deprecated'
|
|
2200
2222
|
/** Agent lacks `request_signing.supported: true`. Required for spend-committing
|
|
2201
2223
|
* operations in AdCP 4.0 per `effective_version`. */
|
|
2202
|
-
| '
|
|
2224
|
+
| 'request_signing_required_in_4_0'
|
|
2203
2225
|
/** Agent advertises `webhook_signing.legacy_hmac_fallback: true`. Removed in
|
|
2204
2226
|
* AdCP 4.0 per `effective_version`. */
|
|
2205
|
-
| '
|
|
2227
|
+
| 'legacy_hmac_fallback_removed_in_4_0'
|
|
2206
2228
|
/** Runner stripped request fields missing from the agent's advertised tool input schema. */
|
|
2207
2229
|
| 'input_schema_field_stripped'
|
|
2208
2230
|
/** The preflight get_adcp_capabilities response failed schema validation. */
|
|
@@ -2310,9 +2332,9 @@ export interface ValidationResult {
|
|
|
2310
2332
|
/** Optional remediation hint. */
|
|
2311
2333
|
remediation?: string;
|
|
2312
2334
|
/**
|
|
2313
|
-
* Marker for
|
|
2314
|
-
* were not met
|
|
2315
|
-
*
|
|
2335
|
+
* Marker for a check that could not be graded because its applicability
|
|
2336
|
+
* conditions were not met or the runner does not recognize its authored kind.
|
|
2337
|
+
* Entries carrying this flag
|
|
2316
2338
|
* contribute to `validations_not_applicable` so consumers can distinguish
|
|
2317
2339
|
* inapplicable coverage from clean passes.
|
|
2318
2340
|
*/
|
|
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
|
|
|
197
197
|
*/
|
|
198
198
|
export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
|
|
199
199
|
/** Capability semver emitted in run summaries and used for advisory expiry. */
|
|
200
|
-
export declare const RUNNER_CAPABILITY_VERSION = "16.0.0-beta.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "16.0.0-beta.9";
|
|
201
201
|
/** True when a failed validation contributes to the owning step's grade. */
|
|
202
202
|
export declare function validationFailsStep(result: ValidationResult): boolean;
|
|
203
203
|
/**
|
|
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
|
|
|
197
197
|
*/
|
|
198
198
|
export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
|
|
199
199
|
/** Capability semver emitted in run summaries and used for advisory expiry. */
|
|
200
|
-
export declare const RUNNER_CAPABILITY_VERSION = "16.0.0-beta.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "16.0.0-beta.9";
|
|
201
201
|
/** True when a failed validation contributes to the owning step's grade. */
|
|
202
202
|
export declare function validationFailsStep(result: ValidationResult): boolean;
|
|
203
203
|
/**
|
|
@@ -75,10 +75,19 @@ function decorateValidationResult(result, context, validation) {
|
|
|
75
75
|
}
|
|
76
76
|
function runValidation(validation, ctx) {
|
|
77
77
|
switch (validation.check) {
|
|
78
|
+
case "property_list_reference":
|
|
79
|
+
return {
|
|
80
|
+
check: validation.check,
|
|
81
|
+
passed: false,
|
|
82
|
+
description: validation.description,
|
|
83
|
+
error: "property_list_reference requires the asynchronous, credential-isolated storyboard runner."
|
|
84
|
+
};
|
|
78
85
|
case "response_schema":
|
|
79
86
|
return requireTaskResult(ctx, validation, (tr) => validateResponseSchema(validation, ctx, tr));
|
|
80
87
|
case "field_present":
|
|
81
88
|
return validateFieldPresent(validation, resolveTarget(ctx));
|
|
89
|
+
case "all_fields_present":
|
|
90
|
+
return validateAllFieldsPresent(validation, resolveTarget(ctx));
|
|
82
91
|
case "field_absent":
|
|
83
92
|
return validateFieldAbsent(validation, resolveTarget(ctx));
|
|
84
93
|
case "envelope_field_present":
|
|
@@ -507,6 +516,61 @@ function validateFieldPresent(validation, taskResult) {
|
|
|
507
516
|
actual: value ?? null
|
|
508
517
|
};
|
|
509
518
|
}
|
|
519
|
+
function validateAllFieldsPresent(validation, taskResult) {
|
|
520
|
+
const base = { check: validation.check, description: validation.description, path: validation.path };
|
|
521
|
+
const path = validation.path ?? "";
|
|
522
|
+
const segments = (0, import_path.parsePathWithWildcards)(path);
|
|
523
|
+
const wildcardIndex = segments.indexOf(import_path.WILDCARD);
|
|
524
|
+
const wildcardOffset = path.indexOf("[*].");
|
|
525
|
+
if (wildcardOffset <= 0 || wildcardIndex <= 0 || typeof segments[wildcardIndex + 1] !== "string" || segments.lastIndexOf(import_path.WILDCARD) !== wildcardIndex) {
|
|
526
|
+
return {
|
|
527
|
+
...base,
|
|
528
|
+
passed: false,
|
|
529
|
+
error: "all_fields_present requires an array path followed by exactly one [*] and a non-empty field path",
|
|
530
|
+
json_pointer: null,
|
|
531
|
+
expected: "array[*].field",
|
|
532
|
+
actual: validation.path ?? null
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
const arrayPath = path.slice(0, wildcardOffset);
|
|
536
|
+
const fieldPath = path.slice(wildcardOffset + "[*].".length);
|
|
537
|
+
const arrayPointer = (0, import_path.toJsonPointer)(arrayPath);
|
|
538
|
+
const items = (0, import_path.resolvePath)(taskResult.data, arrayPath);
|
|
539
|
+
if (items == null || Array.isArray(items) && items.length === 0) {
|
|
540
|
+
return {
|
|
541
|
+
...base,
|
|
542
|
+
passed: true,
|
|
543
|
+
not_applicable: true,
|
|
544
|
+
note: `Array '${arrayPath}' is absent, null, or empty; all_fields_present has no items to inspect`
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
if (!Array.isArray(items)) {
|
|
548
|
+
return {
|
|
549
|
+
...base,
|
|
550
|
+
passed: false,
|
|
551
|
+
error: `Expected an array at path: ${arrayPath}`,
|
|
552
|
+
json_pointer: arrayPointer,
|
|
553
|
+
expected: "array",
|
|
554
|
+
actual: items
|
|
555
|
+
};
|
|
556
|
+
}
|
|
557
|
+
const missing = [];
|
|
558
|
+
const fieldPointer = (0, import_path.toJsonPointer)(fieldPath);
|
|
559
|
+
for (let index = 0; index < items.length; index++) {
|
|
560
|
+
if ((0, import_path.resolvePath)(items[index], fieldPath) == null) {
|
|
561
|
+
missing.push(`${arrayPointer}/${index}${fieldPointer}`);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
if (missing.length === 0) return { ...base, passed: true };
|
|
565
|
+
return {
|
|
566
|
+
...base,
|
|
567
|
+
passed: false,
|
|
568
|
+
error: `${missing.length} of ${items.length} items lack a non-null '${fieldPath}' (first: ${missing[0]})`,
|
|
569
|
+
json_pointer: missing[0],
|
|
570
|
+
expected: validation.path,
|
|
571
|
+
actual: missing
|
|
572
|
+
};
|
|
573
|
+
}
|
|
510
574
|
function validateFieldAbsent(validation, taskResult) {
|
|
511
575
|
const checkName = validation.check;
|
|
512
576
|
if (!validation.path) {
|
|
@@ -14,11 +14,13 @@ import { isJsonContentType } from "../test-controller.mjs";
|
|
|
14
14
|
import { globToRegExp } from "../../utils/glob.mjs";
|
|
15
15
|
import {
|
|
16
16
|
parsePath,
|
|
17
|
+
parsePathWithWildcards,
|
|
17
18
|
resolvePath,
|
|
18
19
|
resolvePathAll,
|
|
19
20
|
resolvePortableIdentifierPathAll,
|
|
20
21
|
toJsonPointer,
|
|
21
|
-
validatePortableIdentifierPath
|
|
22
|
+
validatePortableIdentifierPath,
|
|
23
|
+
WILDCARD
|
|
22
24
|
} from "./path.mjs";
|
|
23
25
|
import { canonicalTargetUri } from "../../signing/canonicalize.mjs";
|
|
24
26
|
import { detectShapeDriftHints } from "./shape-drift-hints.mjs";
|
|
@@ -54,10 +56,19 @@ function decorateValidationResult(result, context, validation) {
|
|
|
54
56
|
}
|
|
55
57
|
function runValidation(validation, ctx) {
|
|
56
58
|
switch (validation.check) {
|
|
59
|
+
case "property_list_reference":
|
|
60
|
+
return {
|
|
61
|
+
check: validation.check,
|
|
62
|
+
passed: false,
|
|
63
|
+
description: validation.description,
|
|
64
|
+
error: "property_list_reference requires the asynchronous, credential-isolated storyboard runner."
|
|
65
|
+
};
|
|
57
66
|
case "response_schema":
|
|
58
67
|
return requireTaskResult(ctx, validation, (tr) => validateResponseSchema(validation, ctx, tr));
|
|
59
68
|
case "field_present":
|
|
60
69
|
return validateFieldPresent(validation, resolveTarget(ctx));
|
|
70
|
+
case "all_fields_present":
|
|
71
|
+
return validateAllFieldsPresent(validation, resolveTarget(ctx));
|
|
61
72
|
case "field_absent":
|
|
62
73
|
return validateFieldAbsent(validation, resolveTarget(ctx));
|
|
63
74
|
case "envelope_field_present":
|
|
@@ -487,6 +498,61 @@ function validateFieldPresent(validation, taskResult) {
|
|
|
487
498
|
actual: value ?? null
|
|
488
499
|
};
|
|
489
500
|
}
|
|
501
|
+
function validateAllFieldsPresent(validation, taskResult) {
|
|
502
|
+
const base = { check: validation.check, description: validation.description, path: validation.path };
|
|
503
|
+
const path = validation.path ?? "";
|
|
504
|
+
const segments = parsePathWithWildcards(path);
|
|
505
|
+
const wildcardIndex = segments.indexOf(WILDCARD);
|
|
506
|
+
const wildcardOffset = path.indexOf("[*].");
|
|
507
|
+
if (wildcardOffset <= 0 || wildcardIndex <= 0 || typeof segments[wildcardIndex + 1] !== "string" || segments.lastIndexOf(WILDCARD) !== wildcardIndex) {
|
|
508
|
+
return {
|
|
509
|
+
...base,
|
|
510
|
+
passed: false,
|
|
511
|
+
error: "all_fields_present requires an array path followed by exactly one [*] and a non-empty field path",
|
|
512
|
+
json_pointer: null,
|
|
513
|
+
expected: "array[*].field",
|
|
514
|
+
actual: validation.path ?? null
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
const arrayPath = path.slice(0, wildcardOffset);
|
|
518
|
+
const fieldPath = path.slice(wildcardOffset + "[*].".length);
|
|
519
|
+
const arrayPointer = toJsonPointer(arrayPath);
|
|
520
|
+
const items = resolvePath(taskResult.data, arrayPath);
|
|
521
|
+
if (items == null || Array.isArray(items) && items.length === 0) {
|
|
522
|
+
return {
|
|
523
|
+
...base,
|
|
524
|
+
passed: true,
|
|
525
|
+
not_applicable: true,
|
|
526
|
+
note: `Array '${arrayPath}' is absent, null, or empty; all_fields_present has no items to inspect`
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
if (!Array.isArray(items)) {
|
|
530
|
+
return {
|
|
531
|
+
...base,
|
|
532
|
+
passed: false,
|
|
533
|
+
error: `Expected an array at path: ${arrayPath}`,
|
|
534
|
+
json_pointer: arrayPointer,
|
|
535
|
+
expected: "array",
|
|
536
|
+
actual: items
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
const missing = [];
|
|
540
|
+
const fieldPointer = toJsonPointer(fieldPath);
|
|
541
|
+
for (let index = 0; index < items.length; index++) {
|
|
542
|
+
if (resolvePath(items[index], fieldPath) == null) {
|
|
543
|
+
missing.push(`${arrayPointer}/${index}${fieldPointer}`);
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
if (missing.length === 0) return { ...base, passed: true };
|
|
547
|
+
return {
|
|
548
|
+
...base,
|
|
549
|
+
passed: false,
|
|
550
|
+
error: `${missing.length} of ${items.length} items lack a non-null '${fieldPath}' (first: ${missing[0]})`,
|
|
551
|
+
json_pointer: missing[0],
|
|
552
|
+
expected: validation.path,
|
|
553
|
+
actual: missing
|
|
554
|
+
};
|
|
555
|
+
}
|
|
490
556
|
function validateFieldAbsent(validation, taskResult) {
|
|
491
557
|
const checkName = validation.check;
|
|
492
558
|
if (!validation.path) {
|
|
@@ -34,7 +34,7 @@ export interface TestOptions {
|
|
|
34
34
|
/**
|
|
35
35
|
* Route compact media-buy storyboard steps through the SDK compatibility
|
|
36
36
|
* coordinator. This lets the same compact-first storyboard exercise native
|
|
37
|
-
* 3.2 sellers and established
|
|
37
|
+
* 3.2 sellers and established AdCP 3.0–3.2 sellers without task-name branching.
|
|
38
38
|
* Mutating guarantee losses remain fail-closed unless named here.
|
|
39
39
|
*/
|
|
40
40
|
mediaBuyLifecycleCompatibility?: import('../media-buy/compatibility.mjs').MediaBuyLifecycleCoordinatorOptions;
|
|
@@ -265,10 +265,24 @@ export interface TestOptions {
|
|
|
265
265
|
}
|
|
266
266
|
export interface TestStepResult {
|
|
267
267
|
step: string;
|
|
268
|
+
/** Authored storyboard step identifier, independent of the display title. */
|
|
269
|
+
step_id?: string;
|
|
268
270
|
task?: string;
|
|
269
271
|
passed: boolean;
|
|
270
272
|
duration_ms: number;
|
|
271
273
|
details?: string;
|
|
274
|
+
/**
|
|
275
|
+
* Compact runner verdicts; excludes request/response payloads and diagnostic values.
|
|
276
|
+
* Skipped steps are not observable even when their retained validations have verdicts.
|
|
277
|
+
*/
|
|
278
|
+
validations?: Array<{
|
|
279
|
+
id?: string;
|
|
280
|
+
check: string;
|
|
281
|
+
passed: boolean;
|
|
282
|
+
severity?: 'required' | 'advisory';
|
|
283
|
+
not_applicable?: boolean;
|
|
284
|
+
severity_promoted_from_advisory?: boolean;
|
|
285
|
+
}>;
|
|
272
286
|
error?: string;
|
|
273
287
|
response_preview?: string;
|
|
274
288
|
observation_data?: Record<string, unknown>;
|
|
@@ -34,7 +34,7 @@ export interface TestOptions {
|
|
|
34
34
|
/**
|
|
35
35
|
* Route compact media-buy storyboard steps through the SDK compatibility
|
|
36
36
|
* coordinator. This lets the same compact-first storyboard exercise native
|
|
37
|
-
* 3.2 sellers and established
|
|
37
|
+
* 3.2 sellers and established AdCP 3.0–3.2 sellers without task-name branching.
|
|
38
38
|
* Mutating guarantee losses remain fail-closed unless named here.
|
|
39
39
|
*/
|
|
40
40
|
mediaBuyLifecycleCompatibility?: import('../media-buy/compatibility').MediaBuyLifecycleCoordinatorOptions;
|
|
@@ -265,10 +265,24 @@ export interface TestOptions {
|
|
|
265
265
|
}
|
|
266
266
|
export interface TestStepResult {
|
|
267
267
|
step: string;
|
|
268
|
+
/** Authored storyboard step identifier, independent of the display title. */
|
|
269
|
+
step_id?: string;
|
|
268
270
|
task?: string;
|
|
269
271
|
passed: boolean;
|
|
270
272
|
duration_ms: number;
|
|
271
273
|
details?: string;
|
|
274
|
+
/**
|
|
275
|
+
* Compact runner verdicts; excludes request/response payloads and diagnostic values.
|
|
276
|
+
* Skipped steps are not observable even when their retained validations have verdicts.
|
|
277
|
+
*/
|
|
278
|
+
validations?: Array<{
|
|
279
|
+
id?: string;
|
|
280
|
+
check: string;
|
|
281
|
+
passed: boolean;
|
|
282
|
+
severity?: 'required' | 'advisory';
|
|
283
|
+
not_applicable?: boolean;
|
|
284
|
+
severity_promoted_from_advisory?: boolean;
|
|
285
|
+
}>;
|
|
272
286
|
error?: string;
|
|
273
287
|
response_preview?: string;
|
|
274
288
|
observation_data?: Record<string, unknown>;
|