@adcp/sdk 16.0.0-beta.8 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +3 -3
- package/README.md +5 -2
- package/bin/adcp.js +10 -13
- package/dist/lib/core/AgentClient.d.mts +8 -5
- package/dist/lib/core/AgentClient.d.ts +8 -5
- package/dist/lib/core/AgentClient.js +9 -4
- package/dist/lib/core/AgentClient.mjs +9 -4
- package/dist/lib/core/SingleAgentClient.d.mts +19 -112
- package/dist/lib/core/SingleAgentClient.d.ts +19 -112
- package/dist/lib/core/SingleAgentClient.js +270 -252
- package/dist/lib/core/SingleAgentClient.mjs +275 -253
- package/dist/lib/core/TaskExecutor.d.mts +1 -16
- package/dist/lib/core/TaskExecutor.d.ts +1 -16
- package/dist/lib/core/TaskExecutor.js +34 -51
- package/dist/lib/core/TaskExecutor.mjs +12 -29
- package/dist/lib/core/product-cache.d.mts +3 -1
- package/dist/lib/core/product-cache.d.ts +3 -1
- package/dist/lib/core/product-cache.js +2 -1
- package/dist/lib/core/product-cache.mjs +2 -1
- package/dist/lib/errors/index.d.mts +2 -8
- package/dist/lib/errors/index.d.ts +2 -8
- package/dist/lib/errors/index.js +4 -4
- package/dist/lib/errors/index.mjs +4 -4
- package/dist/lib/identity-3.3/revocation.js +6 -7
- package/dist/lib/identity-3.3/revocation.mjs +6 -7
- package/dist/lib/index.d.mts +4 -4
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.js +0 -14
- package/dist/lib/index.mjs +0 -14
- package/dist/lib/media-buy/compatibility.d.mts +1 -1
- package/dist/lib/media-buy/compatibility.d.ts +1 -1
- package/dist/lib/media-buy/compatibility.js +26 -45
- package/dist/lib/media-buy/compatibility.mjs +26 -45
- package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
- package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
- package/dist/lib/protocols/index.js +14 -22
- package/dist/lib/protocols/index.mjs +5 -13
- package/dist/lib/registry/types.d.mts +3 -2
- package/dist/lib/registry/types.d.ts +3 -2
- package/dist/lib/registry/types.generated.d.mts +51 -11
- package/dist/lib/registry/types.generated.d.ts +51 -11
- package/dist/lib/reporting/source/conformance.d.mts +8 -8
- package/dist/lib/reporting/source/conformance.d.ts +8 -8
- package/dist/lib/reporting/source/manifest.d.mts +27 -27
- package/dist/lib/reporting/source/manifest.d.ts +27 -27
- package/dist/lib/server/create-adcp-server.js +7 -1
- package/dist/lib/server/create-adcp-server.mjs +7 -1
- package/dist/lib/signing/crypto.d.mts +1 -1
- package/dist/lib/signing/crypto.d.ts +1 -1
- package/dist/lib/signing/crypto.js +2 -45
- package/dist/lib/signing/crypto.mjs +2 -46
- package/dist/lib/signing/web-bot-auth.d.mts +18 -10
- package/dist/lib/signing/web-bot-auth.d.ts +18 -10
- package/dist/lib/signing/web-bot-auth.js +29 -24
- package/dist/lib/signing/web-bot-auth.mjs +29 -24
- package/dist/lib/testing/compliance/comply.js +0 -8
- package/dist/lib/testing/compliance/comply.mjs +0 -8
- package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
- package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
- package/dist/lib/testing/index.d.mts +2 -0
- package/dist/lib/testing/index.d.ts +2 -0
- package/dist/lib/testing/index.js +5 -0
- package/dist/lib/testing/index.mjs +3 -0
- package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
- package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
- package/dist/lib/testing/scenarios/capabilities.js +8 -41
- package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
- package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
- package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
- package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
- package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
- package/dist/lib/testing/storyboard/index.d.mts +2 -0
- package/dist/lib/testing/storyboard/index.d.ts +2 -0
- package/dist/lib/testing/storyboard/index.js +5 -0
- package/dist/lib/testing/storyboard/index.mjs +3 -0
- package/dist/lib/testing/storyboard/loader.js +12 -0
- package/dist/lib/testing/storyboard/loader.mjs +12 -0
- package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
- package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
- package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
- package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
- package/dist/lib/testing/storyboard/runner.js +318 -58
- package/dist/lib/testing/storyboard/runner.mjs +322 -58
- package/dist/lib/testing/storyboard/types.d.mts +38 -16
- package/dist/lib/testing/storyboard/types.d.ts +38 -16
- package/dist/lib/testing/storyboard/types.js +1 -0
- package/dist/lib/testing/storyboard/types.mjs +1 -0
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/testing/storyboard/validations.js +64 -0
- package/dist/lib/testing/storyboard/validations.mjs +67 -1
- package/dist/lib/testing/types.d.mts +15 -1
- package/dist/lib/testing/types.d.ts +15 -1
- package/dist/lib/types/schemas.generated.d.ts +65 -65
- package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
- package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
- package/dist/lib/utils/adcp-version-config.js +6 -0
- package/dist/lib/utils/adcp-version-config.mjs +6 -0
- package/dist/lib/utils/capabilities.d.mts +7 -9
- package/dist/lib/utils/capabilities.d.ts +7 -9
- package/dist/lib/utils/capabilities.js +14 -28
- package/dist/lib/utils/capabilities.mjs +14 -27
- package/dist/lib/utils/creative-adapter.d.mts +15 -113
- package/dist/lib/utils/creative-adapter.d.ts +15 -113
- package/dist/lib/utils/creative-adapter.js +7 -106
- package/dist/lib/utils/creative-adapter.mjs +7 -102
- package/dist/lib/utils/format-renders.d.mts +20 -80
- package/dist/lib/utils/format-renders.d.ts +20 -80
- package/dist/lib/utils/format-renders.js +7 -67
- package/dist/lib/utils/format-renders.mjs +7 -66
- package/dist/lib/utils/index.d.mts +1 -2
- package/dist/lib/utils/index.d.ts +1 -2
- package/dist/lib/utils/index.js +0 -7
- package/dist/lib/utils/index.mjs +0 -6
- package/dist/lib/utils/preview-normalizer.d.mts +31 -80
- package/dist/lib/utils/preview-normalizer.d.ts +31 -80
- package/dist/lib/utils/preview-normalizer.js +5 -50
- package/dist/lib/utils/preview-normalizer.mjs +5 -49
- package/dist/lib/utils/pricing-adapter.d.mts +2 -36
- package/dist/lib/utils/pricing-adapter.d.ts +2 -36
- package/dist/lib/utils/pricing-adapter.js +0 -105
- package/dist/lib/utils/pricing-adapter.mjs +0 -100
- package/dist/lib/utils/request-normalizer.d.mts +1 -2
- package/dist/lib/utils/request-normalizer.d.ts +1 -2
- package/dist/lib/v2/projection/catalog.d.mts +4 -0
- package/dist/lib/v2/projection/catalog.d.ts +4 -0
- package/dist/lib/v2/projection/creative-delivery.d.mts +17 -9
- package/dist/lib/v2/projection/creative-delivery.d.ts +17 -9
- package/dist/lib/v2/projection/creative-delivery.js +78 -10
- package/dist/lib/v2/projection/creative-delivery.mjs +77 -10
- package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
- package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
- package/dist/lib/v2/projection/legacy-metadata.js +41 -1
- package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
- package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
- package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
- package/dist/lib/v2/projection/v1-to-v2.js +13 -0
- package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
- package/dist/lib/validation/client-hooks.d.mts +1 -4
- package/dist/lib/validation/client-hooks.d.ts +1 -4
- package/dist/lib/validation/get-products-request.d.mts +1 -1
- package/dist/lib/validation/get-products-request.d.ts +1 -1
- package/dist/lib/validation/schema-loader.js +6 -0
- package/dist/lib/validation/schema-loader.mjs +6 -0
- package/dist/lib/validation/schema-validator.js +1 -26
- package/dist/lib/validation/schema-validator.mjs +1 -26
- package/dist/lib/version.d.mts +5 -5
- package/dist/lib/version.d.ts +5 -5
- package/dist/lib/version.js +3 -5
- package/dist/lib/version.mjs +3 -5
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
- package/docs/guides/CONFORMANCE.md +25 -0
- package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
- package/docs/guides/CREATIVE-DELIVERY.md +63 -7
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
- package/docs/guides/REPORTING-STABILITY.md +7 -7
- package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
- package/docs/llms.txt +3 -3
- package/docs/migration-13-to-14.md +20 -16
- package/docs/migration-14.x-rc-worksheet.md +5 -5
- package/docs/migration-4.x-to-5.x.md +12 -7
- package/docs/migration-agent-identity-3.3.md +44 -19
- package/docs/migration-drop-adcp-2.md +25 -0
- package/docs/migration-reporting-storage-package.md +3 -3
- package/docs/releases/16.0.0.md +20 -0
- package/package.json +3 -18
- package/skills/call-adcp-agent/SKILL.md +23 -25
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
- package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
- package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
- package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
- package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
- package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
- package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
- package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
- package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
- package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
- package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
- package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
- package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
- package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
- package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
- package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
- package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
- package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
- package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
- package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
- package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
- package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
- package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
- package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
- package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
- package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
- package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
- package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
- package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
- package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
- package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
- package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
- package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
- package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
- package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
- package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
- package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
- package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
- package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
- package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
- package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
- package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
- package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
- package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
- package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
- package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
- package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
- package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
- package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
- package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
- package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
- package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
- package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
- package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
- package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
- package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
- package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
- package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
- package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
- package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
- package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
- package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
- package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
- package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
- package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
- package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
- package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
- package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
- package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
- package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
- package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
- package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
- package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
- package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
- package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
- package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
- package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
- package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
- package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
- package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
- package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
- package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
- package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
- package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
- package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
- package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
- package/dist/lib/schemas-data/v2.5/index.json +0 -604
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
- package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
- package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
- package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
- package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
- package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
- package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
- package/dist/lib/types/v2-5/index.d.mts +0 -1
- package/dist/lib/types/v2-5/index.d.ts +0 -1
- package/dist/lib/types/v2-5/index.js +0 -22
- package/dist/lib/types/v2-5/index.mjs +0 -1
- package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
- package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
- package/dist/lib/types/v2-5/tools.generated.js +0 -16
- package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
- package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
- package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
- package/dist/lib/utils/sync-creatives-adapter.js +0 -83
- package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
|
@@ -882,13 +882,18 @@ steps for a 4.x upgrader and are omitted here:
|
|
|
882
882
|
|
|
883
883
|
## v2 sunset
|
|
884
884
|
|
|
885
|
-
AdCP v2
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
885
|
+
AdCP v2 became unsupported at the April 2026 3.0 GA cutover and reached
|
|
886
|
+
full end of life on August 1, 2026; see the protocol's
|
|
887
|
+
[v2 sunset policy](https://github.com/adcontextprotocol/adcp/blob/main/docs/reference/v2-sunset.mdx).
|
|
888
|
+
In SDK 5.x, the client still executed v2 code paths and emitted a one-time
|
|
889
|
+
`console.warn` when a client instance saw explicit v2 capabilities. That
|
|
890
|
+
historical warning could be suppressed with `ADCP_ALLOW_V2=1` or
|
|
891
|
+
`adcp --allow-v2`; synthetic capabilities did not fire it.
|
|
892
|
+
|
|
893
|
+
**SDK 16 update:** AdCP 2 compatibility, `ADCP_ALLOW_V2`, and `--allow-v2`
|
|
894
|
+
have been removed. Agents must support AdCP 3 discovery before business-tool
|
|
895
|
+
dispatch. Follow the [AdCP 2 retirement guide](./migration-drop-adcp-2.md)
|
|
896
|
+
for current behavior and the last supporting SDK pins.
|
|
892
897
|
|
|
893
898
|
## Webhook HMAC legacy deprecation
|
|
894
899
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
The experimental identity rollout is tracked in
|
|
4
4
|
[adcp-client#3233](https://github.com/adcontextprotocol/adcp-client/issues/3233).
|
|
5
5
|
This release implements the rollout behind explicit experimental configuration.
|
|
6
|
-
The SDK's default `ADCP_VERSION` remains **3.2.
|
|
6
|
+
The SDK's default `ADCP_VERSION` remains **3.2.5**. Experimental client/server
|
|
7
7
|
instances select the 3.3 carrier and apply the pinned draft overlays to the
|
|
8
8
|
released bundle; they do not regenerate or replace the public 3.2 types.
|
|
9
9
|
Upstream PRs remain open, so the experiment can change before graduation.
|
|
@@ -126,18 +126,42 @@ final UTF-8 body, covers the selected `Signature-Agent` member and digest,
|
|
|
126
126
|
uses a fresh 64-byte nonce, and refuses automatic HTTP redirects. A request
|
|
127
127
|
carries exactly one `web-bot-auth` signature and one `Signature-Agent` member:
|
|
128
128
|
relays were removed from the profile, `signWebBotAuth` throws on `relay: true`
|
|
129
|
-
and on a request that already carries signature fields
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
and on a request that already carries signature fields. The verifier reads
|
|
130
|
+
only the `Signature-Input` member tagged `web-bot-auth` and ignores members
|
|
131
|
+
with other tags, such as a CDN's own signature. It answers a second
|
|
132
|
+
`web-bot-auth` signature or a second `Signature-Agent` member with 403.
|
|
133
|
+
Signing keys are Ed25519 only; ES256 stays on the AdCP RFC 9421 profile, and
|
|
133
134
|
`createWebBotAuthFetch`, `createWebhookEmitter` and `createAdcpServer` refuse
|
|
134
|
-
a P-256 Web Bot Auth key at wire-up.
|
|
135
|
+
a P-256 or RSA Web Bot Auth key at wire-up.
|
|
136
|
+
|
|
137
|
+
This also changes two helpers outside the experiment. `verifySignature` and
|
|
138
|
+
`verifySignatureAsync`, which `@adcp/sdk/signing/server` exports, no longer
|
|
139
|
+
verify `rsa-pss-sha512`: they return `false` for it, as for any algorithm they
|
|
140
|
+
don't support. Only Web Bot Auth used it, and the AdCP RFC 9421 profile allows
|
|
141
|
+
only `ed25519` and `ecdsa-p256-sha256`. A caller that verifies RSA-PSS
|
|
142
|
+
signatures with these helpers needs to verify them with `node:crypto` or
|
|
143
|
+
WebCrypto instead.
|
|
144
|
+
|
|
145
|
+
The covered `Signature-Agent` member must be exactly the canonical https origin
|
|
146
|
+
string, compared as received: a lowercase host, no default port, and no path
|
|
147
|
+
(not even `/`), query, fragment, or userinfo. Any other value, including an
|
|
148
|
+
`http://` origin, is a 403 before any directory fetch. The signers apply the
|
|
149
|
+
same rule: `signWebBotAuth`, `createSignedSignatureDirectory` and
|
|
150
|
+
`createWebBotAuthFetch` canonicalize the agent origin they are given and throw a
|
|
151
|
+
`TypeError` when it is not https, such as `http://localhost:3000`. There is no
|
|
152
|
+
http opt-in. The member's `type`
|
|
153
|
+
parameter is a Token (WBA section 5.2.1), and the verifier accepts
|
|
154
|
+
`type=directory` as a Token or as a String. It ignores a member of any other
|
|
155
|
+
type, which leaves no member to resolve (403).
|
|
135
156
|
|
|
136
157
|
`SignatureDirectoryResolver` derives the directory from the covered canonical
|
|
137
158
|
origin. Directories must be signed (WBA Appendix B.1): it validates a
|
|
138
|
-
possession signature for every key, covering
|
|
139
|
-
`content-digest`, and the exact body digest before
|
|
140
|
-
|
|
159
|
+
possession signature for every key the profile can use, covering
|
|
160
|
+
`"@authority";req` and `content-digest`, and the exact body digest before
|
|
161
|
+
caching keys. It ignores keys the profile cannot use, such as a P-256 key, and
|
|
162
|
+
any signature they made (RFC 7517 section 5). An unsigned directory, one
|
|
163
|
+
with no usable key, or one that publishes private key material for any key,
|
|
164
|
+
usable or not, is a discovery failure. Its audit proof retains the signed body and
|
|
141
165
|
headers. Verification requires this resolver so context-free JWKS adapters cannot
|
|
142
166
|
attribute a key to an arbitrary origin. Discovery uses HTTPS, DNS pinning, no redirects, a 256 KiB cap, a
|
|
143
167
|
5-second connect bound and 10-second total bound, at most 64 keys, and bounded
|
|
@@ -155,8 +179,7 @@ Serve the exact JWS at `/.well-known/governance-revocations.json` and refresh it
|
|
|
155
179
|
before `next_update` (the command defaults to five minutes). Pass `--snapshot`
|
|
156
180
|
to sign a list of revoked key thumbprints and optional reasons/dates.
|
|
157
181
|
`createSignedOriginRevocationList` provides the same authoring API. The SDK
|
|
158
|
-
signs and verifies revocation lists with directory keys
|
|
159
|
-
and PS512 for RSA keys (a P-256 key cannot be published in a key directory). Observed key revocations are permanent;
|
|
182
|
+
signs and verifies revocation lists with Ed25519 directory keys, as EdDSA. Observed key revocations are permanent;
|
|
160
183
|
refresh failures use the last verified list only within the published grace
|
|
161
184
|
window. Staleness follows the list's signed `next_update`, never the polling
|
|
162
185
|
interval: the verifier re-polls at least every polling interval (at most 30
|
|
@@ -379,7 +402,7 @@ released schemas:
|
|
|
379
402
|
|
|
380
403
|
| PR | Pinned head | Surface |
|
|
381
404
|
| --- | --- | --- |
|
|
382
|
-
| [7894](https://github.com/adcontextprotocol/adcp/pull/7894) | `
|
|
405
|
+
| [7894](https://github.com/adcontextprotocol/adcp/pull/7894) | `e59294701d733b0ea2a004a2f0c091c8eccdcaae` | WBA wire profile (`wba-profile.mdx`), profile selectors, directory and request vectors |
|
|
383
406
|
| [8121](https://github.com/adcontextprotocol/adcp/pull/8121) | `f5973ac0267b1b94d714c55fc4e3ad8fc2511350` | Origin identity and key-free trust v1 |
|
|
384
407
|
| [8162](https://github.com/adcontextprotocol/adcp/pull/8162) | `5c9914c5c382cc32f3d2ad7842942e548c414705` | Ratified identity, coexistence, revocation |
|
|
385
408
|
| [8168](https://github.com/adcontextprotocol/adcp/pull/8168) | `45540941dfd61e80ab8a463f780cb147c82a32f0` | Relationship and principal response arms |
|
|
@@ -388,7 +411,9 @@ released schemas:
|
|
|
388
411
|
| [8177](https://github.com/adcontextprotocol/adcp/pull/8177) | `b663f8e4235fe4276c73fb9bac6db491b2252bbf` | Reporting authentication omission |
|
|
389
412
|
|
|
390
413
|
The vectors in `test/fixtures/wba-profile/` are byte-identical to #7894 at that
|
|
391
|
-
head
|
|
414
|
+
head (see `PINNED.json`). Every vendored request and directory vector is
|
|
415
|
+
graded, and the interop harness (adcontextprotocol/adcp#8298) grades
|
|
416
|
+
`scenarios.json`.
|
|
392
417
|
|
|
393
418
|
Verification runs in Cloudflare's `http-message-sig` (signature base, coverage,
|
|
394
419
|
window, algorithm and cryptographic checks); the SDK adds the profile rules in
|
|
@@ -413,7 +438,7 @@ so verification can run in a CDN or middleware in front of the AdCP server.
|
|
|
413
438
|
reason is logged, never sent. A 429 for local load shedding (directory fetch
|
|
414
439
|
limiter, replay-store `rate_abuse`) carries `Retry-After` instead.
|
|
415
440
|
- Every signed request carries `created`, `expires` (at most 300 seconds
|
|
416
|
-
later), `keyid`, `alg` (`ed25519`
|
|
441
|
+
later), `keyid`, `alg` (`ed25519`) and a `nonce` of 64
|
|
417
442
|
bytes, unpadded Base64URL or canonical padded Base64 (Cloudflare's default).
|
|
418
443
|
The former 16-byte floor is gone: a shorter nonce is a 403. Replay state is
|
|
419
444
|
keyed on the nonce bytes, so the two encodings of one nonce collide.
|
|
@@ -454,14 +479,14 @@ so verification can run in a CDN or middleware in front of the AdCP server.
|
|
|
454
479
|
back off on 429 or 503.
|
|
455
480
|
- `@target-uri` and `@authority` are taken from the target URI as received
|
|
456
481
|
(RFC 9421 §2.2.2), never canonicalized; canonical origins identify the signer
|
|
457
|
-
only. Ed25519 and
|
|
458
|
-
where the runtime has it, so it also works on Cloudflare workerd.
|
|
482
|
+
only. Web Bot Auth is Ed25519 only, and it also works on Cloudflare workerd.
|
|
459
483
|
`test/fixtures/wba-interop/` holds fixtures verified in both directions against
|
|
460
484
|
Cloudflare's `web-bot-auth`; they already used signed directories and are
|
|
461
485
|
unchanged.
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
486
|
+
#7894 drops the governance-token checks and the `governance/` vectors from the
|
|
487
|
+
WBA profile. Governance moves to the AdCP layer under a separate R4 erratum,
|
|
488
|
+
which moves JWS artifacts, governance included, to the identity's WBA key
|
|
489
|
+
directory in 3.3. This change leaves the SDK's governance code as it is.
|
|
465
490
|
The buyer default onboarding field is `profiles.adcp.onboarding`, matching the
|
|
466
491
|
schema; the design's `record_profiles` wording names the schema definition.
|
|
467
492
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Removing AdCP 2 compatibility
|
|
2
|
+
|
|
3
|
+
AdCP 2.5 reached end of life on August 1, 2026. The SDK now supports AdCP 3 agents only. This is an SDK major release change. Integrations that still require AdCP 2 can pin the last supporting beta, `npm install @adcp/sdk@16.0.0-beta.8`, or stay on the stable SDK 15 line (`npm install @adcp/sdk@15.9.6`) while upgrading their agents.
|
|
4
|
+
|
|
5
|
+
Upgrade agents to AdCP 3 before upgrading the SDK. An agent must expose `get_adcp_capabilities`. Its `adcp.supported_versions` determines its supported majors; `adcp.major_versions` is the legacy fallback. Omitting both fields no longer selects AdCP 2.
|
|
6
|
+
|
|
7
|
+
Agents that declare only AdCP 2 and agents missing capability discovery fail with `VersionUnsupportedError` (`code: 'VERSION_UNSUPPORTED'`) before a business tool is dispatched. AdCP 2 constructor pins fail with `ConfigurationError`, even if an old schema cache remains on disk.
|
|
8
|
+
|
|
9
|
+
The release removes:
|
|
10
|
+
|
|
11
|
+
- `allowV2`, `ADCP_ALLOW_V2`, and the CLI `--allow-v2` flag.
|
|
12
|
+
- `SingleAgentClient.isSyntheticV2()` and the v2 `buildSyntheticCapabilities()` helper.
|
|
13
|
+
- The `2` argument to `SingleAgentClient.supportsVersion()` and `AgentClient.supportsVersion()`; the maintained query is `supportsVersion(3)`.
|
|
14
|
+
- The `@adcp/sdk/types/v2-5` export and AdCP 2 schema bundles.
|
|
15
|
+
- Outbound AdCP 2 adapters: `adaptGetProductsRequestForV2`, `adaptPricingOptionForV2`, `adaptProductPricingForV2`, `adaptSyncCreativesRequestForV2`, `adaptPackageRequestForV2`, `adaptCreateMediaBuyRequestForV2`, and `adaptUpdateMediaBuyRequestForV2`.
|
|
16
|
+
- AdCP 2 creative/format/preview detectors: `usesV2CreativeIds`, `usesV2Dimensions`, and `usesV2RenderFields`, plus their v2-only structural types (`PackageRequestV2`, `PackageResponseV2`, `PackageAdapterContext`, `FormatV2`, and `PreviewRenderV2`).
|
|
17
|
+
- The `sync-schemas:v2.5` and `generate-types:v2.5` scripts.
|
|
18
|
+
|
|
19
|
+
Submit canonical AdCP 3 `creative_assignments`, format `renders`, and preview `render_id` / `role` fields. The maintained read helpers (`getCreativeIds`, `getCreativeAssignments`, `getFormatRenders`, `getPrimaryRender`, `getFormatDimensions`, `getRenderId`, `getRenderRole`, and preview URL/HTML accessors) still inspect valid AdCP 3 data. Their normalizers preserve that data; they no longer promote `creative_ids`, top-level format dimensions, or `output_id` into AdCP 3 fields.
|
|
20
|
+
|
|
21
|
+
Seller applications using `createAdcpServer` or `createAdcpServerFromPlatform` must remove AdCP 2 from `capabilities.major_versions` and `capabilities.supported_versions`. Startup rejects a declaration such as `[2, 3]` because this SDK no longer implements the advertised AdCP 2 surface. A buyer can still call an external agent that genuinely implements both majors: when its discovery includes AdCP 3, the SDK negotiates AdCP 3.
|
|
22
|
+
|
|
23
|
+
AdCP 3.0 and 3.1 compatibility remains available. Creative-model v2 projections and MCP v2 transport names refer to separate version schemes and remain supported.
|
|
24
|
+
|
|
25
|
+
See the protocol's [v2 sunset policy](https://github.com/adcontextprotocol/adcp/blob/main/docs/reference/v2-sunset.mdx) and [FAQ](https://github.com/adcontextprotocol/adcp/blob/main/docs/faq.mdx).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Reliable Reporting storage moved to `@adcp/reporting-storage`
|
|
2
2
|
|
|
3
|
-
**Applies to:** SDK 16
|
|
3
|
+
**Applies to:** SDK 16. **Kind:** breaking, by design. There are no re-export shims: the moved subpaths are gone from `@adcp/sdk`.
|
|
4
4
|
|
|
5
5
|
The Reliable Reporting storage implementations now ship as their own package, `@adcp/reporting-storage`, on its own version line. `@adcp/sdk` keeps the protocol layer. If you import anything from `@adcp/sdk/reporting/gcs`, `/s3`, `/azure` or `/bigquery`, or the PostgreSQL store, row storage, managed delivery or notification activity from `@adcp/sdk/reporting/ledger`, or `createPostgresReliableReportingProductionService` from `@adcp/sdk/reporting/service`, change those imports. Nothing else changes on the wire, in the database schema, or in the ledger's behavior.
|
|
6
6
|
|
|
@@ -11,10 +11,10 @@ Why: storage keeps its own release cadence, as Auth.js, LangGraph and OpenTeleme
|
|
|
11
11
|
1. Install the package next to the SDK. `@adcp/sdk` is a peer dependency of it, so the host keeps exactly one copy:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
npm install @adcp/sdk
|
|
14
|
+
npm install @adcp/sdk@^16.0.0 @adcp/reporting-storage@~0.1.0
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
Pin the storage package with `~` (`"@adcp/reporting-storage": "~0.1.0
|
|
17
|
+
Pin the storage package with `~` (`"@adcp/reporting-storage": "~0.1.0"`; this stable range does not match the earlier `0.1.0-beta.0` prerelease): it is pre-1.0 and every export is experimental. The cloud SDKs are optional peers of the new package, not of `@adcp/sdk` any more, so keep `@aws-sdk/client-s3`, `@azure/storage-blob` and `@google-cloud/storage` in your own dependencies for the providers you use.
|
|
18
18
|
|
|
19
19
|
2. Change the imports using the table below, then run `tsc --noEmit`. A moved name on `@adcp/sdk/reporting/ledger` or `/service` is `TS2305: Module '"@adcp/sdk/reporting/ledger"' has no exported member 'PostgresReportingLedgerStore'`; a deleted subpath is `TS2307: Cannot find module '@adcp/sdk/reporting/gcs'`. At runtime the deleted subpaths fail with `ERR_PACKAGE_PATH_NOT_EXPORTED`, and a stale CommonJS `require` of a moved name on a kept subpath destructures to `undefined` and fails later as `X is not a constructor`, so grep JavaScript too (see [Self-grade](#self-grade)).
|
|
20
20
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# SDK 16.0.0
|
|
2
|
+
|
|
3
|
+
SDK 16 is the stable AdCP 3.2 release line. Its default protocol pin is **3.2.5**, with maintained AdCP 3.0 and 3.1 compatibility. Install it with `npm install @adcp/sdk@^16.0.0`.
|
|
4
|
+
|
|
5
|
+
## Upgrade from SDK 15
|
|
6
|
+
|
|
7
|
+
- **AdCP 2 support is removed.** Sellers must support AdCP 3 capability discovery. Retired adapters, types, schema bundles and `allowV2` configuration are removed. See the [AdCP 2 retirement guide](../migration-drop-adcp-2.md).
|
|
8
|
+
- **Reliable Reporting storage has its own package.** Install `@adcp/reporting-storage@~0.1.0` alongside the SDK and update the moved imports. The storage package remains experimental and pre-1.0 even though SDK 16 is stable. See the [package migration](../migration-reporting-storage-package.md) and [stability policy](../guides/REPORTING-STABILITY.md).
|
|
9
|
+
- **Reporting row storage uses the protocol field names and source-timezone period dates.** Apply the migration and update custom object providers as described in the [row storage alignment guide](../migration-reporting-row-storage-alignment.md). Re-apply the warehouse sink migration when upgrading existing BigQuery sinks; see the [SDK changelog](https://github.com/adcontextprotocol/adcp-client/blob/main/CHANGELOG.md#1600).
|
|
10
|
+
- **Compliance notice codes use the canonical names.** Replace `request_signing.required` with `request_signing_required_in_4_0` and `webhook_signing.legacy_hmac_fallback.removed` with `legacy_hmac_fallback_removed_in_4_0` in comparisons and dashboard keys.
|
|
11
|
+
|
|
12
|
+
The [changelog](https://github.com/adcontextprotocol/adcp-client/blob/main/CHANGELOG.md#1600) includes the complete SDK 16 changes, including creative wire selection, account sync, property-list workflows and reporting fixes. Use the [release-bound upgrade worksheet](../migration-14.x-rc-worksheet.md) to check the exact package, runtime, peers and protocol bundle.
|
|
13
|
+
|
|
14
|
+
SDK 16.0.0 also includes [#3350](https://github.com/adcontextprotocol/adcp-client/pull/3350): legacy creative delivery maps asset keys to the selected format's declared asset IDs, including image, click URL and tracker slots, while preserving occupied or ambiguous keys. See [creative delivery](../guides/CREATIVE-DELIVERY.md).
|
|
15
|
+
|
|
16
|
+
## AdCP 3.3 preview
|
|
17
|
+
|
|
18
|
+
The explicit `@adcp/sdk/identity-3.3` opt-in remains experimental. Promoting SDK 16 does not graduate that API or change the default wire pin to AdCP 3.3. See the [experimental identity guide](../migration-agent-identity-3.3.md).
|
|
19
|
+
|
|
20
|
+
SDK 17 beta is the next release line for adopting the published AdCP 3.3 beta bundle. SDK 16 stays on AdCP 3.2 while that work proceeds. The `latest` channel stays on stable releases and `beta` carries the SDK 17 previews; a preview is published only once its protocol bundle is available and its integration passes validation.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adcp/sdk",
|
|
3
|
-
"version": "16.0.0
|
|
3
|
+
"version": "16.0.0",
|
|
4
4
|
"description": "AdCP SDK — client, server, and compliance harnesses for the AdContext Protocol (MCP + A2A)",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
".",
|
|
@@ -81,16 +81,6 @@
|
|
|
81
81
|
"default": "./dist/lib/enums.js"
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
|
-
"./types/v2-5": {
|
|
85
|
-
"import": {
|
|
86
|
-
"types": "./dist/lib/types/v2-5/index.d.mts",
|
|
87
|
-
"default": "./dist/lib/types/v2-5/index.mjs"
|
|
88
|
-
},
|
|
89
|
-
"require": {
|
|
90
|
-
"types": "./dist/lib/types/v2-5/index.d.ts",
|
|
91
|
-
"default": "./dist/lib/types/v2-5/index.js"
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
84
|
"./types/*": {
|
|
95
85
|
"types": "./dist/lib/types/*.d.ts"
|
|
96
86
|
},
|
|
@@ -448,9 +438,6 @@
|
|
|
448
438
|
"types": [
|
|
449
439
|
"dist/lib/types/index.d.ts"
|
|
450
440
|
],
|
|
451
|
-
"types/v2-5": [
|
|
452
|
-
"dist/lib/types/v2-5/index.d.ts"
|
|
453
|
-
],
|
|
454
441
|
"wholesale-feed-sync": [
|
|
455
442
|
"dist/lib/wholesale-feed-sync/index.d.ts"
|
|
456
443
|
],
|
|
@@ -652,8 +639,7 @@
|
|
|
652
639
|
"test:protocol-comparison": "node test/utils/comprehensive-protocol-comparison.js",
|
|
653
640
|
"test:status-report": "node test/utils/final-status-report.js",
|
|
654
641
|
"sync-schemas": "tsx scripts/sync-schemas.ts",
|
|
655
|
-
"sync-schemas:
|
|
656
|
-
"sync-schemas:all": "npm run sync-schemas && npm run sync-schemas -- 3.1.29 && npm run sync-schemas -- 3.0.25 && npm run sync-schemas:v2.5",
|
|
642
|
+
"sync-schemas:all": "npm run sync-schemas && npm run sync-schemas -- 3.1.29 && npm run sync-schemas -- 3.0.25",
|
|
657
643
|
"sync:canonical-storyboard-fixtures": "tsx scripts/sync-canonical-storyboard-fixtures.ts --update",
|
|
658
644
|
"check:canonical-storyboard-fixtures": "tsx scripts/sync-canonical-storyboard-fixtures.ts --check",
|
|
659
645
|
"sync-registry-schemas": "tsx scripts/generate-registry-types.ts --sync",
|
|
@@ -662,8 +648,7 @@
|
|
|
662
648
|
"generate-types": "tsx scripts/generate-types.ts && tsx scripts/generate-enum-arrays.ts && tsx scripts/generate-inline-enum-arrays.ts && tsx scripts/generate-manifest-derived.ts && tsx scripts/generate-entity-hydration.ts && tsx scripts/generate-media-buy-update-fields.ts && tsx scripts/generate-media-buy-action-metadata.ts",
|
|
663
649
|
"generate-manifest-derived": "tsx scripts/generate-manifest-derived.ts",
|
|
664
650
|
"generate-entity-hydration": "tsx scripts/generate-entity-hydration.ts",
|
|
665
|
-
"generate-types:
|
|
666
|
-
"generate-types:all": "npm run generate-types && npm run generate-types:v2.5",
|
|
651
|
+
"generate-types:all": "npm run generate-types",
|
|
667
652
|
"generate-registry-types": "tsx scripts/generate-registry-types.ts",
|
|
668
653
|
"generate-enum-arrays": "tsx scripts/generate-enum-arrays.ts",
|
|
669
654
|
"generate-inline-enum-arrays": "tsx scripts/generate-inline-enum-arrays.ts",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: call-adcp-agent
|
|
3
3
|
description: Wire-level invariants for any AdCP buyer call — idempotency_key replay semantics, account `oneOf` variants, async `status:'submitted'`+`task_id` polling, error recovery from `adcp_error.issues[]`. Load before any per-protocol task skill (adcp-media-buy, adcp-creative, adcp-signals, adcp-governance, adcp-si, adcp-brand) when calling an AdCP agent as a buyer.
|
|
4
|
-
adcp_version:
|
|
4
|
+
adcp_version: '3.x'
|
|
5
5
|
type: cross-cutting
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -32,7 +32,7 @@ Walk these in order on first contact:
|
|
|
32
32
|
|
|
33
33
|
1. **Agent card** (A2A) or **`tools/list`** (MCP): returns tool NAMES. Most AdCP MCP servers publish passthrough schemas in `tools/list` by default — everything shows `{type: 'object', properties: {}}`. Some servers opt into `exposeToolSchemas: true` and publish shallow top-level key hints there; treat those as call hints, not as the canonical schema.
|
|
34
34
|
2. **`get_adcp_capabilities`**: returns supported protocols (`media_buy`, `signals`, `creative`, …), AdCP major versions, feature flags. Tells you WHICH tools this agent supports, not how to call them.
|
|
35
|
-
3. **`get_schema(tool_name)`**
|
|
35
|
+
3. **`get_schema(tool_name)`** _(when the agent exposes it — pending standardization in [#3057](https://github.com/adcontextprotocol/adcp/issues/3057), not yet universal)_: returns the JSON Schema for a tool's request/response. Preferred over reading bundled schemas when available.
|
|
36
36
|
4. **Bundled schemas** (offline, authoritative): every SDK ships the AdCP JSON Schemas locally. Path differs by SDK — spec repo source uses `dist/schemas/<version>/bundled/`, `@adcp/client` puts them at `schemas/cache/<version>/bundled/` after `npm run sync-schemas`, Python and Go SDKs use their own conventions. **Don't hardcode a path** — let the SDK's loader find them, or ask the developer. Each schema is `<protocol>/<tool>-{request,response}.json` once you locate the bundle. The canonical source for every SDK is `https://adcontextprotocol.org/protocol/<version>.tgz`.
|
|
37
37
|
|
|
38
38
|
## Non-obvious rules every buyer must follow
|
|
@@ -119,7 +119,7 @@ Every validation failure produces:
|
|
|
119
119
|
"keyword": "oneOf",
|
|
120
120
|
"message": "must match exactly one schema in oneOf",
|
|
121
121
|
"variants": [
|
|
122
|
-
{ "index": 0, "required": ["account_id"],
|
|
122
|
+
{ "index": 0, "required": ["account_id"], "properties": ["account_id"] },
|
|
123
123
|
{ "index": 1, "required": ["brand", "operator"], "properties": ["brand", "operator", "sandbox"] }
|
|
124
124
|
]
|
|
125
125
|
},
|
|
@@ -226,9 +226,7 @@ Returns `{ signals: [{ signal_agent_segment_id, match_rate, pricing, ... }] }`.
|
|
|
226
226
|
{
|
|
227
227
|
"idempotency_key": "<uuid>",
|
|
228
228
|
"signal_agent_segment_id": "sig_premium_ctv_sports",
|
|
229
|
-
"destinations": [
|
|
230
|
-
{ "type": "platform", "platform": "the-trade-desk" }
|
|
231
|
-
]
|
|
229
|
+
"destinations": [{ "type": "platform", "platform": "the-trade-desk" }]
|
|
232
230
|
}
|
|
233
231
|
```
|
|
234
232
|
|
|
@@ -254,25 +252,25 @@ Both transports share: idempotency, error shape, schema enforcement, and handler
|
|
|
254
252
|
|
|
255
253
|
Quick lookup before reading the full envelope. Match what you see in `adcp_error.issues[*]`, apply the fix:
|
|
256
254
|
|
|
257
|
-
| Symptom
|
|
258
|
-
|
|
259
|
-
| `keyword: 'oneOf'` with `variants[]`
|
|
260
|
-
| `discriminator: [{field, value}]` on a `required` issue
|
|
261
|
-
| `hint:` field present on the issue
|
|
262
|
-
| 2-3 `additionalProperties` errors at the same pointer
|
|
263
|
-
| `keyword: 'required'`, `pointer: '/idempotency_key'`
|
|
264
|
-
| `keyword: 'type'` or `additionalProperties` at `/budget`
|
|
265
|
-
| `additionalProperties` at `/format_id` (string passed)
|
|
266
|
-
| `keyword: 'enum'` at `/destinations/*/type`
|
|
267
|
-
| Response carries `status: 'submitted'` and `task_id`
|
|
268
|
-
| `recovery: 'transient'` (rate limit, 5xx, timeout)
|
|
269
|
-
| `recovery: 'correctable'`
|
|
270
|
-
| `recovery: 'terminal'` (account suspended, payment required, …)
|
|
271
|
-
| `
|
|
272
|
-
| `adcp_error.code: 'AUTH_MISSING'`
|
|
273
|
-
| `adcp_error.code: 'AUTH_INVALID'`
|
|
274
|
-
| `adcp_error.code: 'AUTH_REQUIRED'`
|
|
275
|
-
| HTTP 401 with `WWW-Authenticate` header
|
|
255
|
+
| Symptom | What it means | Fix |
|
|
256
|
+
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
257
|
+
| `keyword: 'oneOf'` with `variants[]` | Discriminated union — you sent fields from multiple variants, or none | Pick ONE variant from `variants[]`. Send only its `required` fields. |
|
|
258
|
+
| `discriminator: [{field, value}]` on a `required` issue | Validator inferred which branch you targeted; you missed required fields IN that branch | Read the `discriminator` pair, fill the missing required fields at the same level (don't nest under the discriminator field name). |
|
|
259
|
+
| `hint:` field present on the issue | SDK matched a curated shape-gotcha rule | Apply the hint directly — it's the validated fix path. |
|
|
260
|
+
| 2-3 `additionalProperties` errors at the same pointer | You merged `oneOf` variants ({account_id, brand, operator, …}) | Drop to one variant. Don't keep "extra" fields "for completeness". |
|
|
261
|
+
| `keyword: 'required'`, `pointer: '/idempotency_key'` | Mutating tool, no UUID | Generate fresh UUID per logical operation. Reuse it on retries. |
|
|
262
|
+
| `keyword: 'type'` or `additionalProperties` at `/budget` | Sent `{amount, currency}` | `budget` is a number. Currency is implied by `pricing_option_id`. |
|
|
263
|
+
| `additionalProperties` at `/format_id` (string passed) | Sent `"format_id": "video_..."` | `format_id` is `{agent_url, id}` — always an object. |
|
|
264
|
+
| `keyword: 'enum'` at `/destinations/*/type` | Made-up destination type | Use `'platform'` (with `platform`) or `'agent'` (with `agent_url`). |
|
|
265
|
+
| Response carries `status: 'submitted'` and `task_id` | Async — work is queued, NOT done | Poll via `tasks/get` (A2A) or the MCP async task extension using `task_id`. |
|
|
266
|
+
| `recovery: 'transient'` (rate limit, 5xx, timeout) | Server-side, retry-safe | Retry with the **same** `idempotency_key`. |
|
|
267
|
+
| `recovery: 'correctable'` | Buyer-side fix | Read `issues[]`, patch the pointers, resend. Most cases close in one attempt. |
|
|
268
|
+
| `recovery: 'terminal'` (account suspended, payment required, …) | Requires human action | Don't retry. Surface to the user. |
|
|
269
|
+
| `VersionUnsupportedError` / `code: 'VERSION_UNSUPPORTED'` from `@adcp/sdk` | Seller cannot meet the configured AdCP 3 version or required capability guarantees; read the error's `reason` and message | Stop and report the incompatibility before business-tool dispatch. For end-of-life AdCP 2 or missing discovery, upgrade the seller to AdCP 3 with `get_adcp_capabilities`; if the application must retain AdCP 2 temporarily, use the exact older SDK pins in the [AdCP 2 migration guide](https://github.com/adcontextprotocol/adcp-client/blob/main/docs/migration-drop-adcp-2.md). Retrying or changing idempotency keys cannot fix protocol incompatibility. |
|
|
270
|
+
| `adcp_error.code: 'AUTH_MISSING'` | No credential was presented | Escalate by default. Retry only if you own a credential supply or refresh path; otherwise surface re-auth to a human. |
|
|
271
|
+
| `adcp_error.code: 'AUTH_INVALID'` | Credential was presented but rejected or revoked | Do not retry blindly. Refresh once only if you own a valid refresh grant and the rejection is token-expiry-shaped; otherwise surface to a human to rotate credentials. |
|
|
272
|
+
| `adcp_error.code: 'AUTH_REQUIRED'` | Legacy compatibility code; older sellers and some SDK helper paths still use it for missing or rejected credentials | Treat as auth escalation by default. Retry only if your agent owns a credential-refresh path; otherwise surface to a human. |
|
|
273
|
+
| HTTP 401 with `WWW-Authenticate` header | Transport auth challenge; may be missing credentials, wrong scheme, rejected credentials, or required request signing | Follow the challenge scheme. `Bearer` means send/refresh an OAuth-style `Authorization: Bearer ...` token. `Basic` means configure basic auth (`auth: { type: 'basic', username, password }` or `--auth user:pass --auth-scheme basic`) — `Bearer` will never succeed against that gateway. `Signature` means enable RFC 9421 request signing with an AdCP signing key, not an `Authorization` retry. **Saved aliases**: if registered with `--auth-scheme basic`, the scheme persists in `~/.adcp/config.json` and auto-applies on every later invocation — don't redundantly repeat the flag on each call. |
|
|
276
274
|
|
|
277
275
|
If your symptom isn't here, fall through to the next section.
|
|
278
276
|
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var create_media_buy_exports = {};
|
|
20
|
-
__export(create_media_buy_exports, {
|
|
21
|
-
createMediaBuyAdapter: () => createMediaBuyAdapter
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(create_media_buy_exports);
|
|
24
|
-
var import_creative_adapter = require('../../../utils/creative-adapter.js');
|
|
25
|
-
const createMediaBuyAdapter = {
|
|
26
|
-
toolName: "create_media_buy",
|
|
27
|
-
adaptRequest: import_creative_adapter.adaptCreateMediaBuyRequestForV2,
|
|
28
|
-
normalizeResponse: import_creative_adapter.normalizeMediaBuyResponse
|
|
29
|
-
};
|
|
30
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
-
0 && (module.exports = {
|
|
32
|
-
createMediaBuyAdapter
|
|
33
|
-
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { adaptCreateMediaBuyRequestForV2, normalizeMediaBuyResponse } from "../../../utils/creative-adapter.mjs";
|
|
2
|
-
const createMediaBuyAdapter = {
|
|
3
|
-
toolName: "create_media_buy",
|
|
4
|
-
adaptRequest: adaptCreateMediaBuyRequestForV2,
|
|
5
|
-
normalizeResponse: normalizeMediaBuyResponse
|
|
6
|
-
};
|
|
7
|
-
export {
|
|
8
|
-
createMediaBuyAdapter
|
|
9
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { GetProductsRequest, GetProductsResponse } from '../../../types/v2-5/index.mjs';
|
|
2
|
-
import type { AdapterPair } from './types.mjs';
|
|
3
|
-
/**
|
|
4
|
-
* v3 ↔ v2.5 adapter pair for `get_products`. Wraps the existing scattered
|
|
5
|
-
* adapter helpers so the registry pattern lands without behavior change;
|
|
6
|
-
* a focused refactor of the underlying implementation can follow.
|
|
7
|
-
*/
|
|
8
|
-
export declare const getProductsAdapter: AdapterPair<unknown, GetProductsRequest, GetProductsResponse, unknown>;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { GetProductsRequest, GetProductsResponse } from '../../../types/v2-5';
|
|
2
|
-
import type { AdapterPair } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* v3 ↔ v2.5 adapter pair for `get_products`. Wraps the existing scattered
|
|
5
|
-
* adapter helpers so the registry pattern lands without behavior change;
|
|
6
|
-
* a focused refactor of the underlying implementation can follow.
|
|
7
|
-
*/
|
|
8
|
-
export declare const getProductsAdapter: AdapterPair<unknown, GetProductsRequest, GetProductsResponse, unknown>;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var get_products_exports = {};
|
|
20
|
-
__export(get_products_exports, {
|
|
21
|
-
getProductsAdapter: () => getProductsAdapter
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(get_products_exports);
|
|
24
|
-
var import_pricing_adapter = require('../../../utils/pricing-adapter.js');
|
|
25
|
-
const getProductsAdapter = {
|
|
26
|
-
toolName: "get_products",
|
|
27
|
-
adaptRequest: import_pricing_adapter.adaptGetProductsRequestForV2,
|
|
28
|
-
normalizeResponse: import_pricing_adapter.normalizeGetProductsResponse
|
|
29
|
-
};
|
|
30
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
-
0 && (module.exports = {
|
|
32
|
-
getProductsAdapter
|
|
33
|
-
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { adaptGetProductsRequestForV2, normalizeGetProductsResponse } from "../../../utils/pricing-adapter.mjs";
|
|
2
|
-
const getProductsAdapter = {
|
|
3
|
-
toolName: "get_products",
|
|
4
|
-
adaptRequest: adaptGetProductsRequestForV2,
|
|
5
|
-
normalizeResponse: normalizeGetProductsResponse
|
|
6
|
-
};
|
|
7
|
-
export {
|
|
8
|
-
getProductsAdapter
|
|
9
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Registry of legacy v2.5 adapter pairs, one per AdCP tool.
|
|
3
|
-
*
|
|
4
|
-
* The SDK's current pin (v3 today) is implicit — this module describes
|
|
5
|
-
* what the buyer sends to and receives from a v2.5 seller, regardless of
|
|
6
|
-
* which v3.x patch the SDK itself speaks. When the SDK pin moves to v4,
|
|
7
|
-
* this directory continues to hold the v2.5 compat shim and a sibling
|
|
8
|
-
* `legacy/v3/` would join for v3 sellers.
|
|
9
|
-
*
|
|
10
|
-
* Add a new tool by:
|
|
11
|
-
* 1. Drop a per-tool module in this directory exporting an
|
|
12
|
-
* `AdapterPair<V3Req, V25Req, V25Res, V3Res>`.
|
|
13
|
-
* 2. Register it below.
|
|
14
|
-
* 3. Add a fixture to `test/lib/adapter-v2-5-conformance.test.js`.
|
|
15
|
-
*
|
|
16
|
-
* Naming intentionally matches `legacy/<seller-version>/`, NOT
|
|
17
|
-
* `<sdk-version>-to-<seller-version>/`. Real ad-tech compat layers carry
|
|
18
|
-
* N=1 active legacy shim with a deprecation runway (OpenRTB, Prebid, GAM
|
|
19
|
-
* all behave this way) — the directory tree should reflect "exceptional,
|
|
20
|
-
* time-boxed" rather than encoding a matrix nobody will staff.
|
|
21
|
-
*/
|
|
22
|
-
import type { AdapterPair } from './types.mjs';
|
|
23
|
-
export type { AdapterPair } from './types.mjs';
|
|
24
|
-
/**
|
|
25
|
-
* Look up the legacy adapter pair for a given AdCP tool when targeting
|
|
26
|
-
* a v2.5 seller. Returns `undefined` for tools without a registered pair
|
|
27
|
-
* — caller should pass the request through unchanged.
|
|
28
|
-
*/
|
|
29
|
-
export declare function getV25Adapter(toolName: string): AdapterPair | undefined;
|
|
30
|
-
/**
|
|
31
|
-
* Names of tools registered for v2.5 adaptation. Used by the conformance
|
|
32
|
-
* test suite as the authoritative list.
|
|
33
|
-
*/
|
|
34
|
-
export declare function listV25AdapterTools(): string[];
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Registry of legacy v2.5 adapter pairs, one per AdCP tool.
|
|
3
|
-
*
|
|
4
|
-
* The SDK's current pin (v3 today) is implicit — this module describes
|
|
5
|
-
* what the buyer sends to and receives from a v2.5 seller, regardless of
|
|
6
|
-
* which v3.x patch the SDK itself speaks. When the SDK pin moves to v4,
|
|
7
|
-
* this directory continues to hold the v2.5 compat shim and a sibling
|
|
8
|
-
* `legacy/v3/` would join for v3 sellers.
|
|
9
|
-
*
|
|
10
|
-
* Add a new tool by:
|
|
11
|
-
* 1. Drop a per-tool module in this directory exporting an
|
|
12
|
-
* `AdapterPair<V3Req, V25Req, V25Res, V3Res>`.
|
|
13
|
-
* 2. Register it below.
|
|
14
|
-
* 3. Add a fixture to `test/lib/adapter-v2-5-conformance.test.js`.
|
|
15
|
-
*
|
|
16
|
-
* Naming intentionally matches `legacy/<seller-version>/`, NOT
|
|
17
|
-
* `<sdk-version>-to-<seller-version>/`. Real ad-tech compat layers carry
|
|
18
|
-
* N=1 active legacy shim with a deprecation runway (OpenRTB, Prebid, GAM
|
|
19
|
-
* all behave this way) — the directory tree should reflect "exceptional,
|
|
20
|
-
* time-boxed" rather than encoding a matrix nobody will staff.
|
|
21
|
-
*/
|
|
22
|
-
import type { AdapterPair } from './types';
|
|
23
|
-
export type { AdapterPair } from './types';
|
|
24
|
-
/**
|
|
25
|
-
* Look up the legacy adapter pair for a given AdCP tool when targeting
|
|
26
|
-
* a v2.5 seller. Returns `undefined` for tools without a registered pair
|
|
27
|
-
* — caller should pass the request through unchanged.
|
|
28
|
-
*/
|
|
29
|
-
export declare function getV25Adapter(toolName: string): AdapterPair | undefined;
|
|
30
|
-
/**
|
|
31
|
-
* Names of tools registered for v2.5 adaptation. Used by the conformance
|
|
32
|
-
* test suite as the authoritative list.
|
|
33
|
-
*/
|
|
34
|
-
export declare function listV25AdapterTools(): string[];
|