@adcp/sdk 16.0.0-beta.7 → 16.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +3 -3
- package/README.md +20 -0
- package/bin/adcp.js +10 -13
- package/dist/lib/conformance/index.d.mts +2 -0
- package/dist/lib/conformance/index.d.ts +2 -0
- package/dist/lib/conformance/index.js +3 -0
- package/dist/lib/conformance/index.mjs +2 -0
- package/dist/lib/conformance/property-lists.d.mts +14 -0
- package/dist/lib/conformance/property-lists.d.ts +14 -0
- package/dist/lib/conformance/property-lists.js +45 -0
- package/dist/lib/conformance/property-lists.mjs +21 -0
- package/dist/lib/conformance/runConformance.js +20 -1
- package/dist/lib/conformance/runConformance.mjs +20 -1
- package/dist/lib/conformance/types.d.mts +3 -0
- package/dist/lib/conformance/types.d.ts +3 -0
- package/dist/lib/core/AgentClient.d.mts +8 -5
- package/dist/lib/core/AgentClient.d.ts +8 -5
- package/dist/lib/core/AgentClient.js +9 -4
- package/dist/lib/core/AgentClient.mjs +9 -4
- package/dist/lib/core/SingleAgentClient.d.mts +32 -115
- package/dist/lib/core/SingleAgentClient.d.ts +32 -115
- package/dist/lib/core/SingleAgentClient.js +379 -273
- package/dist/lib/core/SingleAgentClient.mjs +387 -275
- package/dist/lib/core/TaskExecutor.d.mts +1 -16
- package/dist/lib/core/TaskExecutor.d.ts +1 -16
- package/dist/lib/core/TaskExecutor.js +34 -51
- package/dist/lib/core/TaskExecutor.mjs +12 -29
- package/dist/lib/core/product-cache.d.mts +3 -1
- package/dist/lib/core/product-cache.d.ts +3 -1
- package/dist/lib/core/product-cache.js +2 -1
- package/dist/lib/core/product-cache.mjs +2 -1
- package/dist/lib/errors/index.d.mts +2 -8
- package/dist/lib/errors/index.d.ts +2 -8
- package/dist/lib/errors/index.js +4 -4
- package/dist/lib/errors/index.mjs +4 -4
- package/dist/lib/identifiers.d.mts +53 -0
- package/dist/lib/identifiers.d.ts +53 -0
- package/dist/lib/identifiers.js +212 -0
- package/dist/lib/identifiers.mjs +163 -0
- package/dist/lib/index.d.mts +7 -5
- package/dist/lib/index.d.ts +7 -5
- package/dist/lib/index.js +2 -14
- package/dist/lib/index.mjs +1 -14
- package/dist/lib/media-buy/compatibility.d.mts +1 -1
- package/dist/lib/media-buy/compatibility.d.ts +1 -1
- package/dist/lib/media-buy/compatibility.js +26 -45
- package/dist/lib/media-buy/compatibility.mjs +26 -45
- package/dist/lib/media-buy/index.d.mts +1 -1
- package/dist/lib/media-buy/index.d.ts +1 -1
- package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
- package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
- package/dist/lib/media-buy/property-policy.d.mts +15 -1
- package/dist/lib/media-buy/property-policy.d.ts +15 -1
- package/dist/lib/media-buy/property-policy.js +135 -3
- package/dist/lib/media-buy/property-policy.mjs +134 -3
- package/dist/lib/protocols/index.js +14 -22
- package/dist/lib/protocols/index.mjs +5 -13
- package/dist/lib/registry/index.d.mts +12 -0
- package/dist/lib/registry/index.d.ts +12 -0
- package/dist/lib/registry/index.js +159 -5
- package/dist/lib/registry/index.mjs +156 -4
- package/dist/lib/registry/types.d.mts +26 -2
- package/dist/lib/registry/types.d.ts +26 -2
- package/dist/lib/registry/types.generated.d.mts +51 -11
- package/dist/lib/registry/types.generated.d.ts +51 -11
- package/dist/lib/reporting/source/conformance.d.mts +8 -8
- package/dist/lib/reporting/source/conformance.d.ts +8 -8
- package/dist/lib/reporting/source/manifest.d.mts +27 -27
- package/dist/lib/reporting/source/manifest.d.ts +27 -27
- package/dist/lib/server/create-adcp-server.js +6 -0
- package/dist/lib/server/create-adcp-server.mjs +6 -0
- package/dist/lib/server/decisioning/specialisms/lists.d.mts +4 -4
- package/dist/lib/server/decisioning/specialisms/lists.d.ts +4 -4
- package/dist/lib/server/index.d.mts +3 -0
- package/dist/lib/server/index.d.ts +3 -0
- package/dist/lib/server/index.js +8 -1
- package/dist/lib/server/index.mjs +4 -0
- package/dist/lib/server/property-lists.d.mts +36 -0
- package/dist/lib/server/property-lists.d.ts +36 -0
- package/dist/lib/server/property-lists.js +154 -0
- package/dist/lib/server/property-lists.mjs +129 -0
- package/dist/lib/server/targeting-helpers.d.mts +2 -0
- package/dist/lib/server/targeting-helpers.d.ts +2 -0
- package/dist/lib/server/targeting-helpers.js +28 -1
- package/dist/lib/server/targeting-helpers.mjs +18 -1
- package/dist/lib/signing/parser.js +2 -2
- package/dist/lib/signing/parser.mjs +2 -2
- package/dist/lib/signing/server.d.mts +1 -1
- package/dist/lib/signing/server.d.ts +1 -1
- package/dist/lib/signing/server.mjs +5 -1
- package/dist/lib/signing/webhook-verifier.d.mts +11 -0
- package/dist/lib/signing/webhook-verifier.d.ts +11 -0
- package/dist/lib/signing/webhook-verifier.js +11 -3
- package/dist/lib/signing/webhook-verifier.mjs +11 -3
- package/dist/lib/supply-path/verify.js +12 -2
- package/dist/lib/supply-path/verify.mjs +2 -2
- package/dist/lib/testing/compliance/comply.js +0 -8
- package/dist/lib/testing/compliance/comply.mjs +0 -8
- package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
- package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
- package/dist/lib/testing/index.d.mts +2 -0
- package/dist/lib/testing/index.d.ts +2 -0
- package/dist/lib/testing/index.js +5 -0
- package/dist/lib/testing/index.mjs +3 -0
- package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
- package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
- package/dist/lib/testing/scenarios/capabilities.js +8 -41
- package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
- package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
- package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
- package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
- package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
- package/dist/lib/testing/storyboard/index.d.mts +2 -0
- package/dist/lib/testing/storyboard/index.d.ts +2 -0
- package/dist/lib/testing/storyboard/index.js +5 -0
- package/dist/lib/testing/storyboard/index.mjs +3 -0
- package/dist/lib/testing/storyboard/loader.js +12 -0
- package/dist/lib/testing/storyboard/loader.mjs +12 -0
- package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
- package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
- package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
- package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
- package/dist/lib/testing/storyboard/runner.js +318 -58
- package/dist/lib/testing/storyboard/runner.mjs +322 -58
- package/dist/lib/testing/storyboard/types.d.mts +38 -16
- package/dist/lib/testing/storyboard/types.d.ts +38 -16
- package/dist/lib/testing/storyboard/types.js +1 -0
- package/dist/lib/testing/storyboard/types.mjs +1 -0
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/testing/storyboard/validations.js +64 -0
- package/dist/lib/testing/storyboard/validations.mjs +67 -1
- package/dist/lib/testing/types.d.mts +15 -1
- package/dist/lib/testing/types.d.ts +15 -1
- package/dist/lib/types/schemas.generated.d.ts +65 -65
- package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
- package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
- package/dist/lib/utils/adcp-version-config.js +6 -0
- package/dist/lib/utils/adcp-version-config.mjs +6 -0
- package/dist/lib/utils/capabilities.d.mts +7 -9
- package/dist/lib/utils/capabilities.d.ts +7 -9
- package/dist/lib/utils/capabilities.js +14 -28
- package/dist/lib/utils/capabilities.mjs +14 -27
- package/dist/lib/utils/creative-adapter.d.mts +15 -113
- package/dist/lib/utils/creative-adapter.d.ts +15 -113
- package/dist/lib/utils/creative-adapter.js +7 -106
- package/dist/lib/utils/creative-adapter.mjs +7 -102
- package/dist/lib/utils/format-renders.d.mts +20 -80
- package/dist/lib/utils/format-renders.d.ts +20 -80
- package/dist/lib/utils/format-renders.js +7 -67
- package/dist/lib/utils/format-renders.mjs +7 -66
- package/dist/lib/utils/index.d.mts +1 -2
- package/dist/lib/utils/index.d.ts +1 -2
- package/dist/lib/utils/index.js +0 -7
- package/dist/lib/utils/index.mjs +0 -6
- package/dist/lib/utils/preview-normalizer.d.mts +31 -80
- package/dist/lib/utils/preview-normalizer.d.ts +31 -80
- package/dist/lib/utils/preview-normalizer.js +5 -50
- package/dist/lib/utils/preview-normalizer.mjs +5 -49
- package/dist/lib/utils/pricing-adapter.d.mts +2 -36
- package/dist/lib/utils/pricing-adapter.d.ts +2 -36
- package/dist/lib/utils/pricing-adapter.js +0 -105
- package/dist/lib/utils/pricing-adapter.mjs +0 -100
- package/dist/lib/utils/request-normalizer.d.mts +1 -2
- package/dist/lib/utils/request-normalizer.d.ts +1 -2
- package/dist/lib/v2/projection/creative-delivery.d.mts +2 -0
- package/dist/lib/v2/projection/creative-delivery.d.ts +2 -0
- package/dist/lib/v2/projection/creative-delivery.js +7 -0
- package/dist/lib/v2/projection/creative-delivery.mjs +6 -0
- package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
- package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
- package/dist/lib/v2/projection/legacy-metadata.js +41 -1
- package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
- package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
- package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
- package/dist/lib/v2/projection/v1-to-v2.js +13 -0
- package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
- package/dist/lib/validation/client-hooks.d.mts +1 -4
- package/dist/lib/validation/client-hooks.d.ts +1 -4
- package/dist/lib/validation/get-products-request.d.mts +1 -1
- package/dist/lib/validation/get-products-request.d.ts +1 -1
- package/dist/lib/validation/schema-loader.js +6 -0
- package/dist/lib/validation/schema-loader.mjs +6 -0
- package/dist/lib/validation/schema-validator.js +1 -26
- package/dist/lib/validation/schema-validator.mjs +1 -26
- package/dist/lib/version.d.mts +5 -5
- package/dist/lib/version.d.ts +5 -5
- package/dist/lib/version.js +3 -5
- package/dist/lib/version.mjs +3 -5
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
- package/docs/guides/CONFORMANCE.md +25 -0
- package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
- package/docs/guides/CREATIVE-DELIVERY.md +45 -6
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
- package/docs/guides/PROPERTY-LISTS.md +264 -0
- package/docs/guides/SIGNING-GUIDE.md +25 -0
- package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
- package/docs/llms.txt +2 -2
- package/docs/migration-13-to-14.md +20 -16
- package/docs/migration-14.x-rc-worksheet.md +5 -5
- package/docs/migration-4.x-to-5.x.md +12 -7
- package/docs/migration-drop-adcp-2.md +25 -0
- package/package.json +3 -18
- package/skills/call-adcp-agent/SKILL.md +23 -25
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
- package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
- package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
- package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
- package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
- package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
- package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
- package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
- package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
- package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
- package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
- package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
- package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
- package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
- package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
- package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
- package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
- package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
- package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
- package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
- package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
- package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
- package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
- package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
- package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
- package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
- package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
- package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
- package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
- package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
- package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
- package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
- package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
- package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
- package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
- package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
- package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
- package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
- package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
- package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
- package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
- package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
- package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
- package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
- package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
- package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
- package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
- package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
- package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
- package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
- package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
- package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
- package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
- package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
- package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
- package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
- package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
- package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
- package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
- package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
- package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
- package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
- package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
- package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
- package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
- package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
- package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
- package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
- package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
- package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
- package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
- package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
- package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
- package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
- package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
- package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
- package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
- package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
- package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
- package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
- package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
- package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
- package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
- package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
- package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
- package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
- package/dist/lib/schemas-data/v2.5/index.json +0 -604
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
- package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
- package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
- package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
- package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
- package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
- package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
- package/dist/lib/types/v2-5/index.d.mts +0 -1
- package/dist/lib/types/v2-5/index.d.ts +0 -1
- package/dist/lib/types/v2-5/index.js +0 -22
- package/dist/lib/types/v2-5/index.mjs +0 -1
- package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
- package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
- package/dist/lib/types/v2-5/tools.generated.js +0 -16
- package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
- package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
- package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
- package/dist/lib/utils/sync-creatives-adapter.js +0 -83
- package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
|
@@ -86,10 +86,10 @@ function parseSignature(headerValue, expectedLabel, encoding = "legacy-base64url
|
|
|
86
86
|
if (!rawBytes) malformed(`Signature header does not contain a byte sequence for label "${expectedLabel}"`);
|
|
87
87
|
if (encoding === "rfc8941-base64") {
|
|
88
88
|
if (!(0, import_content_digest.isPaddedStandardBase64)(rawBytes)) {
|
|
89
|
-
malformed("Signature value must use padded standard Base64 for
|
|
89
|
+
malformed("Signature value must use padded standard Base64 for the selected signing profile");
|
|
90
90
|
}
|
|
91
91
|
} else if (!/^[A-Za-z0-9_-]+$/.test(rawBytes)) {
|
|
92
|
-
malformed("Signature value must use unpadded Base64URL for
|
|
92
|
+
malformed("Signature value must use unpadded Base64URL for the selected signing profile");
|
|
93
93
|
}
|
|
94
94
|
let dict;
|
|
95
95
|
try {
|
|
@@ -60,10 +60,10 @@ function parseSignature(headerValue, expectedLabel, encoding = "legacy-base64url
|
|
|
60
60
|
if (!rawBytes) malformed(`Signature header does not contain a byte sequence for label "${expectedLabel}"`);
|
|
61
61
|
if (encoding === "rfc8941-base64") {
|
|
62
62
|
if (!isPaddedStandardBase64(rawBytes)) {
|
|
63
|
-
malformed("Signature value must use padded standard Base64 for
|
|
63
|
+
malformed("Signature value must use padded standard Base64 for the selected signing profile");
|
|
64
64
|
}
|
|
65
65
|
} else if (!/^[A-Za-z0-9_-]+$/.test(rawBytes)) {
|
|
66
|
-
malformed("Signature value must use unpadded Base64URL for
|
|
66
|
+
malformed("Signature value must use unpadded Base64URL for the selected signing profile");
|
|
67
67
|
}
|
|
68
68
|
let dict;
|
|
69
69
|
try {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export type { SsrfDnsLookup } from '../net/index.mjs';
|
|
12
12
|
export { buildResponseSignatureBase, buildSignatureBase, canonicalAuthority, canonicalMethod, canonicalTargetUri, formatSignatureParams, getHeaderValue, type RequestLike, type RequestCanonicalizationProfile, type ResponseLike, type SignatureParams, } from './canonicalize.mjs';
|
|
13
|
-
export { computeContentDigest, contentDigestMatches, parseContentDigest } from './content-digest.mjs';
|
|
13
|
+
export { computeContentDigest, contentDigestMatches, parseContentDigest, type SfBinaryEncoding, } from './content-digest.mjs';
|
|
14
14
|
export { requestContextFromExpress, requestContextFromFetch, requestContextFromLambda, type ExpressRequestLike, type FetchRequestLike, type LambdaRequestEvent, type RequestContextFromExpressOptions, type RequestContextFromLambdaOptions, } from './request-context.mjs';
|
|
15
15
|
export { jwkToPublicKey, verifySignature, verifySignatureAsync } from './crypto.mjs';
|
|
16
16
|
export { RequestSignatureError, RequestSigningErrorCodeMetadata, type RequestSignatureErrorCode, ResponseSignatureError, type ResponseSignatureErrorCode, WebhookSignatureError, type WebhookSignatureErrorCode, } from './errors.mjs';
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export type { SsrfDnsLookup } from '../net';
|
|
12
12
|
export { buildResponseSignatureBase, buildSignatureBase, canonicalAuthority, canonicalMethod, canonicalTargetUri, formatSignatureParams, getHeaderValue, type RequestLike, type RequestCanonicalizationProfile, type ResponseLike, type SignatureParams, } from './canonicalize';
|
|
13
|
-
export { computeContentDigest, contentDigestMatches, parseContentDigest } from './content-digest';
|
|
13
|
+
export { computeContentDigest, contentDigestMatches, parseContentDigest, type SfBinaryEncoding, } from './content-digest';
|
|
14
14
|
export { requestContextFromExpress, requestContextFromFetch, requestContextFromLambda, type ExpressRequestLike, type FetchRequestLike, type LambdaRequestEvent, type RequestContextFromExpressOptions, type RequestContextFromLambdaOptions, } from './request-context';
|
|
15
15
|
export { jwkToPublicKey, verifySignature, verifySignatureAsync } from './crypto';
|
|
16
16
|
export { RequestSignatureError, RequestSigningErrorCodeMetadata, type RequestSignatureErrorCode, ResponseSignatureError, type ResponseSignatureErrorCode, WebhookSignatureError, type WebhookSignatureErrorCode, } from './errors';
|
|
@@ -7,7 +7,11 @@ import {
|
|
|
7
7
|
formatSignatureParams,
|
|
8
8
|
getHeaderValue
|
|
9
9
|
} from "./canonicalize.mjs";
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
computeContentDigest,
|
|
12
|
+
contentDigestMatches,
|
|
13
|
+
parseContentDigest
|
|
14
|
+
} from "./content-digest.mjs";
|
|
11
15
|
import {
|
|
12
16
|
requestContextFromExpress,
|
|
13
17
|
requestContextFromFetch,
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
* so failures can point at a specific spec clause. Numbers are 1-based to
|
|
23
23
|
* match the security doc.
|
|
24
24
|
*/
|
|
25
|
+
import { type SfBinaryEncoding } from './content-digest.mjs';
|
|
25
26
|
import type { JwksResolver } from './jwks.mjs';
|
|
26
27
|
import { type PublisherSigningKeyPin } from './publisher-pins.mjs';
|
|
27
28
|
import { type ReplayStore } from './replay.mjs';
|
|
@@ -43,6 +44,16 @@ export interface WebhookRequestLike {
|
|
|
43
44
|
export declare const WEBHOOK_MANDATORY_COMPONENTS: ReadonlyArray<string>;
|
|
44
45
|
export interface VerifyWebhookOptions {
|
|
45
46
|
jwks: JwksResolver;
|
|
47
|
+
/**
|
|
48
|
+
* Trusted receiver configuration for the Signature byte sequence.
|
|
49
|
+
* Defaults to `legacy-base64url`, as the AdCP webhook-v1 profile requires
|
|
50
|
+
* throughout 3.x. Set `rfc8941-base64` only for an explicitly configured
|
|
51
|
+
* peer emitting standard padded Base64 (for example, a generic RFC 9421
|
|
52
|
+
* request signer with the webhook tag). There is no encoding fallback.
|
|
53
|
+
* URL canonicalization remains AdCP 3.2 in either mode; Signature encoding
|
|
54
|
+
* does not identify a webhook's AdCP version.
|
|
55
|
+
*/
|
|
56
|
+
signatureEncoding?: SfBinaryEncoding;
|
|
46
57
|
/** Applicable publishers from the verifier's own media-buy record. */
|
|
47
58
|
publisherPins?: readonly PublisherSigningKeyPin[];
|
|
48
59
|
/** Log the underlying request_signature_* discovery cause locally. */
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
* so failures can point at a specific spec clause. Numbers are 1-based to
|
|
23
23
|
* match the security doc.
|
|
24
24
|
*/
|
|
25
|
+
import { type SfBinaryEncoding } from './content-digest';
|
|
25
26
|
import type { JwksResolver } from './jwks';
|
|
26
27
|
import { type PublisherSigningKeyPin } from './publisher-pins';
|
|
27
28
|
import { type ReplayStore } from './replay';
|
|
@@ -43,6 +44,16 @@ export interface WebhookRequestLike {
|
|
|
43
44
|
export declare const WEBHOOK_MANDATORY_COMPONENTS: ReadonlyArray<string>;
|
|
44
45
|
export interface VerifyWebhookOptions {
|
|
45
46
|
jwks: JwksResolver;
|
|
47
|
+
/**
|
|
48
|
+
* Trusted receiver configuration for the Signature byte sequence.
|
|
49
|
+
* Defaults to `legacy-base64url`, as the AdCP webhook-v1 profile requires
|
|
50
|
+
* throughout 3.x. Set `rfc8941-base64` only for an explicitly configured
|
|
51
|
+
* peer emitting standard padded Base64 (for example, a generic RFC 9421
|
|
52
|
+
* request signer with the webhook tag). There is no encoding fallback.
|
|
53
|
+
* URL canonicalization remains AdCP 3.2 in either mode; Signature encoding
|
|
54
|
+
* does not identify a webhook's AdCP version.
|
|
55
|
+
*/
|
|
56
|
+
signatureEncoding?: SfBinaryEncoding;
|
|
46
57
|
/** Applicable publishers from the verifier's own media-buy record. */
|
|
47
58
|
publisherPins?: readonly PublisherSigningKeyPin[];
|
|
48
59
|
/** Log the underlying request_signature_* discovery cause locally. */
|
|
@@ -50,6 +50,7 @@ const WEBHOOK_MANDATORY_COMPONENTS = [
|
|
|
50
50
|
"content-digest"
|
|
51
51
|
];
|
|
52
52
|
async function verifyWebhookSignature(request, options) {
|
|
53
|
+
const signatureEncoding = resolveSignatureEncoding(options.signatureEncoding);
|
|
53
54
|
const currentTime = options.now ?? (() => Date.now() / 1e3);
|
|
54
55
|
const now = currentTime();
|
|
55
56
|
const requiredTag = options.requiredTag ?? WEBHOOK_SIGNING_TAG;
|
|
@@ -66,12 +67,12 @@ async function verifyWebhookSignature(request, options) {
|
|
|
66
67
|
let parsedSig;
|
|
67
68
|
try {
|
|
68
69
|
parsedInput = (0, import_parser.parseSignatureInput)(sigInputHeader);
|
|
69
|
-
parsedSig = (0, import_parser.parseSignature)(sigHeader, parsedInput.label);
|
|
70
|
+
parsedSig = (0, import_parser.parseSignature)(sigHeader, parsedInput.label, signatureEncoding);
|
|
70
71
|
} catch (err) {
|
|
71
72
|
throw new import_errors.WebhookSignatureError(
|
|
72
73
|
"webhook_signature_header_malformed",
|
|
73
74
|
1,
|
|
74
|
-
err instanceof Error ? err.message : String(err)
|
|
75
|
+
`${err instanceof Error ? err.message : String(err)} (webhook signatureEncoding="${signatureEncoding}").`
|
|
75
76
|
);
|
|
76
77
|
}
|
|
77
78
|
requireParams(parsedInput);
|
|
@@ -239,6 +240,12 @@ async function verifyWebhookSignature(request, options) {
|
|
|
239
240
|
verified_at: Math.floor(now)
|
|
240
241
|
};
|
|
241
242
|
}
|
|
243
|
+
function resolveSignatureEncoding(encoding = "legacy-base64url") {
|
|
244
|
+
if (encoding !== "legacy-base64url" && encoding !== "rfc8941-base64") {
|
|
245
|
+
throw new TypeError('signatureEncoding must be "legacy-base64url" or "rfc8941-base64".');
|
|
246
|
+
}
|
|
247
|
+
return encoding;
|
|
248
|
+
}
|
|
242
249
|
function assertDelegatedOperatorAuthorizationActive(validUntil, now) {
|
|
243
250
|
if (validUntil !== void 0 && (!Number.isFinite(validUntil) || now >= validUntil)) {
|
|
244
251
|
throw new import_errors.WebhookSignatureError(
|
|
@@ -345,9 +352,10 @@ function isWebhookLoopbackHost(hostname) {
|
|
|
345
352
|
return LOOPBACK_IPV4.test(normalized);
|
|
346
353
|
}
|
|
347
354
|
function createWebhookVerifier(options) {
|
|
355
|
+
const signatureEncoding = resolveSignatureEncoding(options.signatureEncoding);
|
|
348
356
|
const replayStore = options.replayStore ?? new import_replay.InMemoryReplayStore();
|
|
349
357
|
const revocationStore = options.revocationStore ?? new import_revocation.InMemoryRevocationStore();
|
|
350
|
-
return (request) => verifyWebhookSignature(request, { ...options, replayStore, revocationStore });
|
|
358
|
+
return (request) => verifyWebhookSignature(request, { ...options, signatureEncoding, replayStore, revocationStore });
|
|
351
359
|
}
|
|
352
360
|
// Annotate the CommonJS export names for ESM import in node:
|
|
353
361
|
0 && (module.exports = {
|
|
@@ -23,6 +23,7 @@ const WEBHOOK_MANDATORY_COMPONENTS = [
|
|
|
23
23
|
"content-digest"
|
|
24
24
|
];
|
|
25
25
|
async function verifyWebhookSignature(request, options) {
|
|
26
|
+
const signatureEncoding = resolveSignatureEncoding(options.signatureEncoding);
|
|
26
27
|
const currentTime = options.now ?? (() => Date.now() / 1e3);
|
|
27
28
|
const now = currentTime();
|
|
28
29
|
const requiredTag = options.requiredTag ?? WEBHOOK_SIGNING_TAG;
|
|
@@ -39,12 +40,12 @@ async function verifyWebhookSignature(request, options) {
|
|
|
39
40
|
let parsedSig;
|
|
40
41
|
try {
|
|
41
42
|
parsedInput = parseSignatureInput(sigInputHeader);
|
|
42
|
-
parsedSig = parseSignature(sigHeader, parsedInput.label);
|
|
43
|
+
parsedSig = parseSignature(sigHeader, parsedInput.label, signatureEncoding);
|
|
43
44
|
} catch (err) {
|
|
44
45
|
throw new WebhookSignatureError(
|
|
45
46
|
"webhook_signature_header_malformed",
|
|
46
47
|
1,
|
|
47
|
-
err instanceof Error ? err.message : String(err)
|
|
48
|
+
`${err instanceof Error ? err.message : String(err)} (webhook signatureEncoding="${signatureEncoding}").`
|
|
48
49
|
);
|
|
49
50
|
}
|
|
50
51
|
requireParams(parsedInput);
|
|
@@ -212,6 +213,12 @@ async function verifyWebhookSignature(request, options) {
|
|
|
212
213
|
verified_at: Math.floor(now)
|
|
213
214
|
};
|
|
214
215
|
}
|
|
216
|
+
function resolveSignatureEncoding(encoding = "legacy-base64url") {
|
|
217
|
+
if (encoding !== "legacy-base64url" && encoding !== "rfc8941-base64") {
|
|
218
|
+
throw new TypeError('signatureEncoding must be "legacy-base64url" or "rfc8941-base64".');
|
|
219
|
+
}
|
|
220
|
+
return encoding;
|
|
221
|
+
}
|
|
215
222
|
function assertDelegatedOperatorAuthorizationActive(validUntil, now) {
|
|
216
223
|
if (validUntil !== void 0 && (!Number.isFinite(validUntil) || now >= validUntil)) {
|
|
217
224
|
throw new WebhookSignatureError(
|
|
@@ -318,9 +325,10 @@ function isWebhookLoopbackHost(hostname) {
|
|
|
318
325
|
return LOOPBACK_IPV4.test(normalized);
|
|
319
326
|
}
|
|
320
327
|
function createWebhookVerifier(options) {
|
|
328
|
+
const signatureEncoding = resolveSignatureEncoding(options.signatureEncoding);
|
|
321
329
|
const replayStore = options.replayStore ?? new InMemoryReplayStore();
|
|
322
330
|
const revocationStore = options.revocationStore ?? new InMemoryRevocationStore();
|
|
323
|
-
return (request) => verifyWebhookSignature(request, { ...options, replayStore, revocationStore });
|
|
331
|
+
return (request) => verifyWebhookSignature(request, { ...options, signatureEncoding, replayStore, revocationStore });
|
|
324
332
|
}
|
|
325
333
|
export {
|
|
326
334
|
WEBHOOK_MANDATORY_COMPONENTS,
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
var verify_exports = {};
|
|
20
30
|
__export(verify_exports, {
|
|
@@ -25,7 +35,6 @@ module.exports = __toCommonJS(verify_exports);
|
|
|
25
35
|
var import_abort = require('../protocols/abort.js');
|
|
26
36
|
var import_publisher_property_selector = require('../discovery/publisher-property-selector.js');
|
|
27
37
|
var import_validation = require('./validation.js');
|
|
28
|
-
var import_registry = require('../registry/index.js');
|
|
29
38
|
var import_fetch_evidence = require('./fetch-evidence.js');
|
|
30
39
|
var import_evaluate = require('./evaluate.js');
|
|
31
40
|
var import_validation2 = require('./validation.js');
|
|
@@ -34,7 +43,8 @@ const MAX_PROPERTY_SELECTOR_EXPANSIONS = 4096;
|
|
|
34
43
|
async function verifySupplyPath(request, options = { source: "authoritative" }) {
|
|
35
44
|
const normalized = (0, import_validation2.validateSupplyPathRequest)(request);
|
|
36
45
|
if (options.source === "registry") {
|
|
37
|
-
const
|
|
46
|
+
const registry = options.registry ?? new (await import("../registry/index.js")).RegistryClient();
|
|
47
|
+
const result = await registry.verifySupplyPath(normalized);
|
|
38
48
|
(0, import_validation2.assertRegistrySupplyPathResult)(result, normalized);
|
|
39
49
|
return result;
|
|
40
50
|
}
|
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
expandPublisherPropertySelector
|
|
5
5
|
} from "../discovery/publisher-property-selector.mjs";
|
|
6
6
|
import { domain, records, strings } from "./validation.mjs";
|
|
7
|
-
import { RegistryClient } from "../registry/index.mjs";
|
|
8
7
|
import { SupplyPathEvidenceSession } from "./fetch-evidence.mjs";
|
|
9
8
|
import {
|
|
10
9
|
isUnqualifiedPropertySelector,
|
|
@@ -20,7 +19,8 @@ const MAX_PROPERTY_SELECTOR_EXPANSIONS = 4096;
|
|
|
20
19
|
async function verifySupplyPath(request, options = { source: "authoritative" }) {
|
|
21
20
|
const normalized = validateSupplyPathRequest(request);
|
|
22
21
|
if (options.source === "registry") {
|
|
23
|
-
const
|
|
22
|
+
const registry = options.registry ?? new (await import("../registry/index.mjs")).RegistryClient();
|
|
23
|
+
const result = await registry.verifySupplyPath(normalized);
|
|
24
24
|
assertRegistrySupplyPathResult(result, normalized);
|
|
25
25
|
return result;
|
|
26
26
|
}
|
|
@@ -758,11 +758,9 @@ function inferDiscoveredServerAdcpVersion(profile, complianceVersion) {
|
|
|
758
758
|
}
|
|
759
759
|
if (profile.adcp_build_version) return profile.adcp_build_version;
|
|
760
760
|
if (isLegacyPre31TypescriptSdkProfile(profile)) return "3.0";
|
|
761
|
-
if (isLegacyV2Profile(profile)) return "v2.5";
|
|
762
761
|
return void 0;
|
|
763
762
|
}
|
|
764
763
|
function negotiateVersionEnvelope(profile, complianceVersion) {
|
|
765
|
-
if (isLegacyV2Profile(profile)) return "none";
|
|
766
764
|
const supported = profile.adcp_supported_versions;
|
|
767
765
|
if (supported?.length && supported.every(import_adcp_version_config.isPre31AdcpVersion)) return "major-only";
|
|
768
766
|
if (profile.adcp_build_version && (0, import_adcp_version_config.isPre31AdcpVersion)(profile.adcp_build_version)) return "major-only";
|
|
@@ -770,12 +768,6 @@ function negotiateVersionEnvelope(profile, complianceVersion) {
|
|
|
770
768
|
if ((0, import_adcp_version_config.isPre31AdcpVersion)(complianceVersion) && isLegacyV3Profile(profile)) return "major-only";
|
|
771
769
|
return void 0;
|
|
772
770
|
}
|
|
773
|
-
function isLegacyV2Profile(profile) {
|
|
774
|
-
if (profile.adcp_version === "v2") return true;
|
|
775
|
-
const majors = profile.adcp_major_versions ?? [];
|
|
776
|
-
if (majors.length > 0) return majors.includes(2) && !majors.includes(3);
|
|
777
|
-
return !profile.tools.includes("get_adcp_capabilities");
|
|
778
|
-
}
|
|
779
771
|
function isLegacyV3Profile(profile) {
|
|
780
772
|
if (profile.adcp_version === "v3") return true;
|
|
781
773
|
if (profile.adcp_major_versions?.includes(3)) return true;
|
|
@@ -748,11 +748,9 @@ function inferDiscoveredServerAdcpVersion(profile, complianceVersion) {
|
|
|
748
748
|
}
|
|
749
749
|
if (profile.adcp_build_version) return profile.adcp_build_version;
|
|
750
750
|
if (isLegacyPre31TypescriptSdkProfile(profile)) return "3.0";
|
|
751
|
-
if (isLegacyV2Profile(profile)) return "v2.5";
|
|
752
751
|
return void 0;
|
|
753
752
|
}
|
|
754
753
|
function negotiateVersionEnvelope(profile, complianceVersion) {
|
|
755
|
-
if (isLegacyV2Profile(profile)) return "none";
|
|
756
754
|
const supported = profile.adcp_supported_versions;
|
|
757
755
|
if (supported?.length && supported.every(isPre31AdcpVersion)) return "major-only";
|
|
758
756
|
if (profile.adcp_build_version && isPre31AdcpVersion(profile.adcp_build_version)) return "major-only";
|
|
@@ -760,12 +758,6 @@ function negotiateVersionEnvelope(profile, complianceVersion) {
|
|
|
760
758
|
if (isPre31AdcpVersion(complianceVersion) && isLegacyV3Profile(profile)) return "major-only";
|
|
761
759
|
return void 0;
|
|
762
760
|
}
|
|
763
|
-
function isLegacyV2Profile(profile) {
|
|
764
|
-
if (profile.adcp_version === "v2") return true;
|
|
765
|
-
const majors = profile.adcp_major_versions ?? [];
|
|
766
|
-
if (majors.length > 0) return majors.includes(2) && !majors.includes(3);
|
|
767
|
-
return !profile.tools.includes("get_adcp_capabilities");
|
|
768
|
-
}
|
|
769
761
|
function isLegacyV3Profile(profile) {
|
|
770
762
|
if (profile.adcp_version === "v3") return true;
|
|
771
763
|
if (profile.adcp_major_versions?.includes(3)) return true;
|
|
@@ -151,11 +151,22 @@ function mapStepToTestStep(stepResult) {
|
|
|
151
151
|
}).join("; ");
|
|
152
152
|
return {
|
|
153
153
|
step: stepResult.title,
|
|
154
|
+
step_id: stepResult.step_id,
|
|
154
155
|
task: stepResult.task,
|
|
155
156
|
passed: stepResult.passed,
|
|
156
157
|
duration_ms: stepResult.duration_ms,
|
|
157
158
|
error: stepResult.error,
|
|
158
159
|
details: validationDetails || void 0,
|
|
160
|
+
validations: stepResult.validations.map((v) => ({
|
|
161
|
+
...v.id !== void 0 && { id: v.id },
|
|
162
|
+
check: v.check,
|
|
163
|
+
passed: v.passed,
|
|
164
|
+
...v.severity !== void 0 && { severity: v.severity },
|
|
165
|
+
...v.not_applicable !== void 0 && { not_applicable: v.not_applicable },
|
|
166
|
+
...v.severity_promoted_from_advisory !== void 0 && {
|
|
167
|
+
severity_promoted_from_advisory: v.severity_promoted_from_advisory
|
|
168
|
+
}
|
|
169
|
+
})),
|
|
159
170
|
observation_data: stepResult.response,
|
|
160
171
|
warnings: stepResult.skipped ? [stepResult.skip?.detail ?? skipReasonLabel(stepResult.skip_reason) ?? "Step skipped"] : void 0,
|
|
161
172
|
...stepResult.skipped && { skipped: true },
|
|
@@ -126,11 +126,22 @@ function mapStepToTestStep(stepResult) {
|
|
|
126
126
|
}).join("; ");
|
|
127
127
|
return {
|
|
128
128
|
step: stepResult.title,
|
|
129
|
+
step_id: stepResult.step_id,
|
|
129
130
|
task: stepResult.task,
|
|
130
131
|
passed: stepResult.passed,
|
|
131
132
|
duration_ms: stepResult.duration_ms,
|
|
132
133
|
error: stepResult.error,
|
|
133
134
|
details: validationDetails || void 0,
|
|
135
|
+
validations: stepResult.validations.map((v) => ({
|
|
136
|
+
...v.id !== void 0 && { id: v.id },
|
|
137
|
+
check: v.check,
|
|
138
|
+
passed: v.passed,
|
|
139
|
+
...v.severity !== void 0 && { severity: v.severity },
|
|
140
|
+
...v.not_applicable !== void 0 && { not_applicable: v.not_applicable },
|
|
141
|
+
...v.severity_promoted_from_advisory !== void 0 && {
|
|
142
|
+
severity_promoted_from_advisory: v.severity_promoted_from_advisory
|
|
143
|
+
}
|
|
144
|
+
})),
|
|
134
145
|
observation_data: stepResult.response,
|
|
135
146
|
warnings: stepResult.skipped ? [stepResult.skip?.detail ?? skipReasonLabel(stepResult.skip_reason) ?? "Step skipped"] : void 0,
|
|
136
147
|
...stepResult.skipped && { skipped: true },
|
|
@@ -18,3 +18,5 @@ export { runAgainstLocalAgent } from './local-agent-runner.mjs';
|
|
|
18
18
|
export type { LocalAgentRunResult, PerStoryboardOverride, RunAgainstLocalAgentOptions } from './local-agent-runner.mjs';
|
|
19
19
|
export { registerExternalSchemaRoot, unregisterExternalSchemaRoot, withExternalSchemaRoot, withServedReleaseSchemaRoots, } from '../validation/index.mjs';
|
|
20
20
|
export { runStoryboard, runStoryboardStep, applyAdcpVersionRunOptions, applyStoryboardVersionOptions, getFirstStepPreview, parseStoryboard, loadStoryboardFile, normalizeValidationOnlyTasks, VALIDATION_ONLY_TASK, applyFixtureBindingsToRequest, buildFixtureResolutionSpecs, FixtureBindingRegistry, matchesFixtureRequirements, normalizeFixtureMatchExpression, validateFixtureResolutionDeclarations, getComplianceCacheDir, loadComplianceIndex, listBundles, loadBundleStoryboards, listAllComplianceStoryboards, getComplianceStoryboardById, findBundleById, resolveBundleOrStoryboard, resolveStoryboardsForCapabilities, isComplianceVersionSupported, CapabilityResolutionError, TASK_TO_METHOD, executeStoryboardTask, expandCreativeAssetDirectives, findUnresolvedCreativeAssetDirectives, extractContext, injectContext, runValidations, resolvePath, RateLimitTripObserver, RATE_LIMIT_TRIP_CONTRACT, RATE_LIMIT_TRIP_DEFAULT_REPLAY_MAX_WAIT_SECONDS, RATE_LIMIT_TRIP_MAX_ATTEMPTS_MAX, RATE_LIMIT_TRIP_MAX_ATTEMPTS_MIN, validateRateLimitTripSpec, getSandboxEntities, getSandboxBrands, getSandboxBrand, isSandboxDomain, clearSandboxCache, registerAssertion, getAssertion, listAssertions, listDefaultAssertions, clearAssertionRegistry, resolveAssertions, type AssertionSpec, type AssertionContext, type AssertionResult, type RegisterAssertionOptions, type Storyboard, type StoryboardFixtureResolution, type FixtureResolutionStrategy, type FixtureMatchOperator, type FixtureMatchClause, type FixtureResolutionDeclaration, type ProductFixtureResolutionDeclaration, type PricingOptionFixtureResolutionDeclaration, type FixtureResolutionStatus, type FixtureResolutionRecord, type FixtureResolutionAttempt, type FixtureResolutionEvidence, type FixtureResolutionCoverageGap, type StoryboardInvariants, type StoryboardInvariantsObject, type StepInvariantsObject, type StoryboardPhase, type StoryboardStep, type RateLimitTripSpec, type StoryboardValidation, type RateLimitTripClient, type RateLimitTripFailureCode, type RateLimitTripObservation, type RateLimitTripObserverOptions, type RateLimitTripResponseSnapshot, type RateLimitTripStructuredResult, type RateLimitTripTaskOptions, type StoryboardContext, type StoryboardRunOptions, type TrustedMatchContextProviderEndpoint, type TrustedMatchContextRegistrationContext, type TrustedMatchContextRouterRunnerOptions, type TrustedMatchPublisherAuthOperation, type TrustedMatchPublisherCredentialState, type TrustedMatchPublisherAuthTls, type TrustedMatchPublisherAuthProbeConfiguration, type TrustedMatchPublisherAuthRunner, type ValidationResult, type StoryboardStepPreview, type StoryboardStepResult, type StoryboardStepHint, type StoryboardStepHintBase, type ContextValueRejectedHint, type ShapeDriftHint, type MissingRequiredFieldHint, type FormatMismatchHint, type MonotonicViolationHint, type ContextProvenanceEntry, type StoryboardPhaseResult, type StoryboardResult, type RunnerNotice, type NoticeCode, type NoticeSeverity, type AgentCapabilities, type BundleKind, type BundleRef, type CapabilityResolutionCode, type ComplianceIndex, type ComplianceIndexProtocol, type ComplianceIndexSpecialism, type ResolveOptions, type ResolvedBundle, type ResolvedStoryboards, type SandboxBrand, type SandboxAgent, type SandboxEntities, type BrandJson, type AdagentsJson, gradeOAuthMetadataGraph, gradeOAuthMetadataGraphVector, loadOAuthMetadataGraphVectors, normalizeOAuthResourceForComparison, redactOAuthUrlForOutput, type GradeOAuthMetadataGraphOptions, type OAuthMetadataGraphErrorCode, type OAuthMetadataGraphFinding, type OAuthMetadataGraphGrade, type OAuthMetadataGraphObservation, type OAuthMetadataGraphVector, type OAuthMetadataGraphVectorCorpus, BrandJsonSchema, AdagentsJsonSchema, MCP_SESSION_PROBE_TASK, } from './storyboard/index.mjs';
|
|
21
|
+
export { resolveCreativeBuildProbe, validateCreativeBuildProbeSpec } from './storyboard/index.mjs';
|
|
22
|
+
export type { CreativeBuildProbeSpec, CreativeBuildProbeInputFixture, CreativeBuildProbeResolution, } from './storyboard/index.mjs';
|
|
@@ -18,3 +18,5 @@ export { runAgainstLocalAgent } from './local-agent-runner';
|
|
|
18
18
|
export type { LocalAgentRunResult, PerStoryboardOverride, RunAgainstLocalAgentOptions } from './local-agent-runner';
|
|
19
19
|
export { registerExternalSchemaRoot, unregisterExternalSchemaRoot, withExternalSchemaRoot, withServedReleaseSchemaRoots, } from '../validation';
|
|
20
20
|
export { runStoryboard, runStoryboardStep, applyAdcpVersionRunOptions, applyStoryboardVersionOptions, getFirstStepPreview, parseStoryboard, loadStoryboardFile, normalizeValidationOnlyTasks, VALIDATION_ONLY_TASK, applyFixtureBindingsToRequest, buildFixtureResolutionSpecs, FixtureBindingRegistry, matchesFixtureRequirements, normalizeFixtureMatchExpression, validateFixtureResolutionDeclarations, getComplianceCacheDir, loadComplianceIndex, listBundles, loadBundleStoryboards, listAllComplianceStoryboards, getComplianceStoryboardById, findBundleById, resolveBundleOrStoryboard, resolveStoryboardsForCapabilities, isComplianceVersionSupported, CapabilityResolutionError, TASK_TO_METHOD, executeStoryboardTask, expandCreativeAssetDirectives, findUnresolvedCreativeAssetDirectives, extractContext, injectContext, runValidations, resolvePath, RateLimitTripObserver, RATE_LIMIT_TRIP_CONTRACT, RATE_LIMIT_TRIP_DEFAULT_REPLAY_MAX_WAIT_SECONDS, RATE_LIMIT_TRIP_MAX_ATTEMPTS_MAX, RATE_LIMIT_TRIP_MAX_ATTEMPTS_MIN, validateRateLimitTripSpec, getSandboxEntities, getSandboxBrands, getSandboxBrand, isSandboxDomain, clearSandboxCache, registerAssertion, getAssertion, listAssertions, listDefaultAssertions, clearAssertionRegistry, resolveAssertions, type AssertionSpec, type AssertionContext, type AssertionResult, type RegisterAssertionOptions, type Storyboard, type StoryboardFixtureResolution, type FixtureResolutionStrategy, type FixtureMatchOperator, type FixtureMatchClause, type FixtureResolutionDeclaration, type ProductFixtureResolutionDeclaration, type PricingOptionFixtureResolutionDeclaration, type FixtureResolutionStatus, type FixtureResolutionRecord, type FixtureResolutionAttempt, type FixtureResolutionEvidence, type FixtureResolutionCoverageGap, type StoryboardInvariants, type StoryboardInvariantsObject, type StepInvariantsObject, type StoryboardPhase, type StoryboardStep, type RateLimitTripSpec, type StoryboardValidation, type RateLimitTripClient, type RateLimitTripFailureCode, type RateLimitTripObservation, type RateLimitTripObserverOptions, type RateLimitTripResponseSnapshot, type RateLimitTripStructuredResult, type RateLimitTripTaskOptions, type StoryboardContext, type StoryboardRunOptions, type TrustedMatchContextProviderEndpoint, type TrustedMatchContextRegistrationContext, type TrustedMatchContextRouterRunnerOptions, type TrustedMatchPublisherAuthOperation, type TrustedMatchPublisherCredentialState, type TrustedMatchPublisherAuthTls, type TrustedMatchPublisherAuthProbeConfiguration, type TrustedMatchPublisherAuthRunner, type ValidationResult, type StoryboardStepPreview, type StoryboardStepResult, type StoryboardStepHint, type StoryboardStepHintBase, type ContextValueRejectedHint, type ShapeDriftHint, type MissingRequiredFieldHint, type FormatMismatchHint, type MonotonicViolationHint, type ContextProvenanceEntry, type StoryboardPhaseResult, type StoryboardResult, type RunnerNotice, type NoticeCode, type NoticeSeverity, type AgentCapabilities, type BundleKind, type BundleRef, type CapabilityResolutionCode, type ComplianceIndex, type ComplianceIndexProtocol, type ComplianceIndexSpecialism, type ResolveOptions, type ResolvedBundle, type ResolvedStoryboards, type SandboxBrand, type SandboxAgent, type SandboxEntities, type BrandJson, type AdagentsJson, gradeOAuthMetadataGraph, gradeOAuthMetadataGraphVector, loadOAuthMetadataGraphVectors, normalizeOAuthResourceForComparison, redactOAuthUrlForOutput, type GradeOAuthMetadataGraphOptions, type OAuthMetadataGraphErrorCode, type OAuthMetadataGraphFinding, type OAuthMetadataGraphGrade, type OAuthMetadataGraphObservation, type OAuthMetadataGraphVector, type OAuthMetadataGraphVectorCorpus, BrandJsonSchema, AdagentsJsonSchema, MCP_SESSION_PROBE_TASK, } from './storyboard';
|
|
21
|
+
export { resolveCreativeBuildProbe, validateCreativeBuildProbeSpec } from './storyboard';
|
|
22
|
+
export type { CreativeBuildProbeSpec, CreativeBuildProbeInputFixture, CreativeBuildProbeResolution, } from './storyboard';
|
|
@@ -139,6 +139,7 @@ __export(testing_exports, {
|
|
|
139
139
|
resolveAccountForMediaBuy: () => import_agent_tester.resolveAccountForMediaBuy,
|
|
140
140
|
resolveAssertions: () => import_storyboard.resolveAssertions,
|
|
141
141
|
resolveBundleOrStoryboard: () => import_storyboard.resolveBundleOrStoryboard,
|
|
142
|
+
resolveCreativeBuildProbe: () => import_storyboard2.resolveCreativeBuildProbe,
|
|
142
143
|
resolvePath: () => import_storyboard.resolvePath,
|
|
143
144
|
resolveStoryboardsForCapabilities: () => import_storyboard.resolveStoryboardsForCapabilities,
|
|
144
145
|
runAgainstLocalAgent: () => import_local_agent_runner.runAgainstLocalAgent,
|
|
@@ -190,6 +191,7 @@ __export(testing_exports, {
|
|
|
190
191
|
testTerminalStateEnforcement: () => import_agent_tester.testTerminalStateEnforcement,
|
|
191
192
|
testValidation: () => import_agent_tester.testValidation,
|
|
192
193
|
unregisterExternalSchemaRoot: () => import_validation.unregisterExternalSchemaRoot,
|
|
194
|
+
validateCreativeBuildProbeSpec: () => import_storyboard2.validateCreativeBuildProbeSpec,
|
|
193
195
|
validateFixtureResolutionDeclarations: () => import_storyboard.validateFixtureResolutionDeclarations,
|
|
194
196
|
validateRateLimitTripSpec: () => import_storyboard.validateRateLimitTripSpec,
|
|
195
197
|
withExternalSchemaRoot: () => import_validation.withExternalSchemaRoot,
|
|
@@ -209,6 +211,7 @@ var import_test_controller_bridge = require('../server/test-controller-bridge.js
|
|
|
209
211
|
var import_local_agent_runner = require('./local-agent-runner.js');
|
|
210
212
|
var import_validation = require('../validation/index.js');
|
|
211
213
|
var import_storyboard = require('./storyboard/index.js');
|
|
214
|
+
var import_storyboard2 = require('./storyboard/index.js');
|
|
212
215
|
// Annotate the CommonJS export names for ESM import in node:
|
|
213
216
|
0 && (module.exports = {
|
|
214
217
|
AdagentsJsonSchema,
|
|
@@ -332,6 +335,7 @@ var import_storyboard = require('./storyboard/index.js');
|
|
|
332
335
|
resolveAccountForMediaBuy,
|
|
333
336
|
resolveAssertions,
|
|
334
337
|
resolveBundleOrStoryboard,
|
|
338
|
+
resolveCreativeBuildProbe,
|
|
335
339
|
resolvePath,
|
|
336
340
|
resolveStoryboardsForCapabilities,
|
|
337
341
|
runAgainstLocalAgent,
|
|
@@ -383,6 +387,7 @@ var import_storyboard = require('./storyboard/index.js');
|
|
|
383
387
|
testTerminalStateEnforcement,
|
|
384
388
|
testValidation,
|
|
385
389
|
unregisterExternalSchemaRoot,
|
|
390
|
+
validateCreativeBuildProbeSpec,
|
|
386
391
|
validateFixtureResolutionDeclarations,
|
|
387
392
|
validateRateLimitTripSpec,
|
|
388
393
|
withExternalSchemaRoot,
|
|
@@ -189,6 +189,7 @@ import {
|
|
|
189
189
|
AdagentsJsonSchema,
|
|
190
190
|
MCP_SESSION_PROBE_TASK
|
|
191
191
|
} from "./storyboard/index.mjs";
|
|
192
|
+
import { resolveCreativeBuildProbe, validateCreativeBuildProbeSpec } from "./storyboard/index.mjs";
|
|
192
193
|
export {
|
|
193
194
|
AdagentsJsonSchema,
|
|
194
195
|
BrandJsonSchema,
|
|
@@ -311,6 +312,7 @@ export {
|
|
|
311
312
|
resolveAccountForMediaBuy,
|
|
312
313
|
resolveAssertions,
|
|
313
314
|
resolveBundleOrStoryboard,
|
|
315
|
+
resolveCreativeBuildProbe,
|
|
314
316
|
resolvePath,
|
|
315
317
|
resolveStoryboardsForCapabilities,
|
|
316
318
|
runAgainstLocalAgent,
|
|
@@ -362,6 +364,7 @@ export {
|
|
|
362
364
|
testTerminalStateEnforcement,
|
|
363
365
|
testValidation,
|
|
364
366
|
unregisterExternalSchemaRoot,
|
|
367
|
+
validateCreativeBuildProbeSpec,
|
|
365
368
|
validateFixtureResolutionDeclarations,
|
|
366
369
|
validateRateLimitTripSpec,
|
|
367
370
|
withExternalSchemaRoot,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Tests agent capability discovery including:
|
|
5
5
|
* - get_adcp_capabilities (v3 agents)
|
|
6
|
-
* -
|
|
6
|
+
* - Rejection of agents missing AdCP 3 capability discovery
|
|
7
7
|
* - Protocol/tool cross-validation
|
|
8
8
|
*/
|
|
9
9
|
import type { TestOptions, TestStepResult, AgentProfile } from '../types.mjs';
|
|
@@ -14,7 +14,7 @@ import type { TestOptions, TestStepResult, AgentProfile } from '../types.mjs';
|
|
|
14
14
|
* 1. Discover agent profile (tools list)
|
|
15
15
|
* 2. If get_adcp_capabilities exists, call it and validate response
|
|
16
16
|
* 3. Cross-check reported protocols against available tools
|
|
17
|
-
* 4.
|
|
17
|
+
* 4. Reject agents without AdCP 3 discovery
|
|
18
18
|
*/
|
|
19
19
|
export declare function testCapabilityDiscovery(agentUrl: string, options: TestOptions): Promise<{
|
|
20
20
|
steps: TestStepResult[];
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Tests agent capability discovery including:
|
|
5
5
|
* - get_adcp_capabilities (v3 agents)
|
|
6
|
-
* -
|
|
6
|
+
* - Rejection of agents missing AdCP 3 capability discovery
|
|
7
7
|
* - Protocol/tool cross-validation
|
|
8
8
|
*/
|
|
9
9
|
import type { TestOptions, TestStepResult, AgentProfile } from '../types';
|
|
@@ -14,7 +14,7 @@ import type { TestOptions, TestStepResult, AgentProfile } from '../types';
|
|
|
14
14
|
* 1. Discover agent profile (tools list)
|
|
15
15
|
* 2. If get_adcp_capabilities exists, call it and validate response
|
|
16
16
|
* 3. Cross-check reported protocols against available tools
|
|
17
|
-
* 4.
|
|
17
|
+
* 4. Reject agents without AdCP 3 discovery
|
|
18
18
|
*/
|
|
19
19
|
export declare function testCapabilityDiscovery(agentUrl: string, options: TestOptions): Promise<{
|
|
20
20
|
steps: TestStepResult[];
|
|
@@ -72,8 +72,8 @@ async function testCapabilityDiscovery(agentUrl, options) {
|
|
|
72
72
|
step.error = result.error || "get_adcp_capabilities failed";
|
|
73
73
|
steps.push(step);
|
|
74
74
|
const toolInfos = profile.tools.map((name) => ({ name }));
|
|
75
|
-
capabilities = (0, import_capabilities.
|
|
76
|
-
profile.adcp_version = "
|
|
75
|
+
capabilities = (0, import_capabilities.buildSyntheticV3Capabilities)(toolInfos);
|
|
76
|
+
profile.adcp_version = "v3";
|
|
77
77
|
profile.supported_protocols = capabilities.protocols;
|
|
78
78
|
steps.push({
|
|
79
79
|
step: "Fallback to synthetic capabilities",
|
|
@@ -83,54 +83,21 @@ async function testCapabilityDiscovery(agentUrl, options) {
|
|
|
83
83
|
});
|
|
84
84
|
} else {
|
|
85
85
|
const toolInfos = profile.tools.map((name) => ({ name }));
|
|
86
|
-
capabilities = (0, import_capabilities.
|
|
87
|
-
profile.adcp_version = "
|
|
86
|
+
capabilities = (0, import_capabilities.buildSyntheticV3Capabilities)(toolInfos);
|
|
87
|
+
profile.adcp_version = "v3";
|
|
88
88
|
profile.supported_protocols = capabilities.protocols;
|
|
89
89
|
step.passed = false;
|
|
90
90
|
step.error = "get_adcp_capabilities returned no data";
|
|
91
91
|
steps.push(step);
|
|
92
92
|
}
|
|
93
93
|
} else {
|
|
94
|
-
const toolInfos = profile.tools.map((name) => ({ name }));
|
|
95
|
-
capabilities = (0, import_capabilities.buildSyntheticCapabilities)(toolInfos);
|
|
96
|
-
profile.adcp_version = "v2";
|
|
97
|
-
profile.supported_protocols = capabilities.protocols;
|
|
98
|
-
profile.supports_governance = capabilities.protocols.includes("governance");
|
|
99
|
-
profile.supports_si = capabilities.protocols.includes("sponsored_intelligence");
|
|
100
94
|
steps.push({
|
|
101
|
-
step: "
|
|
102
|
-
|
|
103
|
-
passed: true,
|
|
95
|
+
step: "Require AdCP 3 capability discovery",
|
|
96
|
+
passed: false,
|
|
104
97
|
duration_ms: 0,
|
|
105
|
-
|
|
106
|
-
response_preview: JSON.stringify(
|
|
107
|
-
{
|
|
108
|
-
version: capabilities.version,
|
|
109
|
-
protocols: capabilities.protocols,
|
|
110
|
-
features: capabilities.features,
|
|
111
|
-
_synthetic: true
|
|
112
|
-
},
|
|
113
|
-
null,
|
|
114
|
-
2
|
|
115
|
-
)
|
|
98
|
+
error: "Agent does not advertise get_adcp_capabilities. AdCP 2 reached end of life on 2026-08-01; upgrade the agent to AdCP 3."
|
|
116
99
|
});
|
|
117
|
-
|
|
118
|
-
...import_capabilities.GOVERNANCE_TOOLS,
|
|
119
|
-
...import_capabilities.SPONSORED_INTELLIGENCE_TOOLS,
|
|
120
|
-
...import_capabilities.TRUSTED_MATCH_TOOLS,
|
|
121
|
-
...import_capabilities.COMPLIANCE_TOOLS
|
|
122
|
-
].filter((t) => profile.tools.includes(t));
|
|
123
|
-
if (v3ToolsPresent.length > 0) {
|
|
124
|
-
steps.push({
|
|
125
|
-
step: "v3 upgrade potential detected",
|
|
126
|
-
passed: true,
|
|
127
|
-
duration_ms: 0,
|
|
128
|
-
details: `Agent has ${v3ToolsPresent.length} v3 tool(s) but missing get_adcp_capabilities`,
|
|
129
|
-
warnings: [
|
|
130
|
-
`Consider implementing get_adcp_capabilities for better protocol discovery. v3 tools detected: ${v3ToolsPresent.join(", ")}`
|
|
131
|
-
]
|
|
132
|
-
});
|
|
133
|
-
}
|
|
100
|
+
return { steps, profile };
|
|
134
101
|
}
|
|
135
102
|
const { steps: crossValidationSteps } = crossValidateProtocolsAndTools(capabilities, profile.tools);
|
|
136
103
|
steps.push(...crossValidationSteps);
|