@adcp/sdk 16.0.0-beta.8 → 16.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +3 -3
- package/README.md +3 -0
- package/bin/adcp.js +10 -13
- package/dist/lib/core/AgentClient.d.mts +8 -5
- package/dist/lib/core/AgentClient.d.ts +8 -5
- package/dist/lib/core/AgentClient.js +9 -4
- package/dist/lib/core/AgentClient.mjs +9 -4
- package/dist/lib/core/SingleAgentClient.d.mts +19 -112
- package/dist/lib/core/SingleAgentClient.d.ts +19 -112
- package/dist/lib/core/SingleAgentClient.js +270 -252
- package/dist/lib/core/SingleAgentClient.mjs +275 -253
- package/dist/lib/core/TaskExecutor.d.mts +1 -16
- package/dist/lib/core/TaskExecutor.d.ts +1 -16
- package/dist/lib/core/TaskExecutor.js +34 -51
- package/dist/lib/core/TaskExecutor.mjs +12 -29
- package/dist/lib/core/product-cache.d.mts +3 -1
- package/dist/lib/core/product-cache.d.ts +3 -1
- package/dist/lib/core/product-cache.js +2 -1
- package/dist/lib/core/product-cache.mjs +2 -1
- package/dist/lib/errors/index.d.mts +2 -8
- package/dist/lib/errors/index.d.ts +2 -8
- package/dist/lib/errors/index.js +4 -4
- package/dist/lib/errors/index.mjs +4 -4
- package/dist/lib/index.d.mts +4 -4
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.js +0 -14
- package/dist/lib/index.mjs +0 -14
- package/dist/lib/media-buy/compatibility.d.mts +1 -1
- package/dist/lib/media-buy/compatibility.d.ts +1 -1
- package/dist/lib/media-buy/compatibility.js +26 -45
- package/dist/lib/media-buy/compatibility.mjs +26 -45
- package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
- package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
- package/dist/lib/protocols/index.js +14 -22
- package/dist/lib/protocols/index.mjs +5 -13
- package/dist/lib/registry/types.d.mts +3 -2
- package/dist/lib/registry/types.d.ts +3 -2
- package/dist/lib/registry/types.generated.d.mts +51 -11
- package/dist/lib/registry/types.generated.d.ts +51 -11
- package/dist/lib/reporting/source/conformance.d.mts +8 -8
- package/dist/lib/reporting/source/conformance.d.ts +8 -8
- package/dist/lib/reporting/source/manifest.d.mts +27 -27
- package/dist/lib/reporting/source/manifest.d.ts +27 -27
- package/dist/lib/server/create-adcp-server.js +6 -0
- package/dist/lib/server/create-adcp-server.mjs +6 -0
- package/dist/lib/testing/compliance/comply.js +0 -8
- package/dist/lib/testing/compliance/comply.mjs +0 -8
- package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
- package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
- package/dist/lib/testing/index.d.mts +2 -0
- package/dist/lib/testing/index.d.ts +2 -0
- package/dist/lib/testing/index.js +5 -0
- package/dist/lib/testing/index.mjs +3 -0
- package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
- package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
- package/dist/lib/testing/scenarios/capabilities.js +8 -41
- package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
- package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
- package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
- package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
- package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
- package/dist/lib/testing/storyboard/index.d.mts +2 -0
- package/dist/lib/testing/storyboard/index.d.ts +2 -0
- package/dist/lib/testing/storyboard/index.js +5 -0
- package/dist/lib/testing/storyboard/index.mjs +3 -0
- package/dist/lib/testing/storyboard/loader.js +12 -0
- package/dist/lib/testing/storyboard/loader.mjs +12 -0
- package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
- package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
- package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
- package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
- package/dist/lib/testing/storyboard/runner.js +318 -58
- package/dist/lib/testing/storyboard/runner.mjs +322 -58
- package/dist/lib/testing/storyboard/types.d.mts +38 -16
- package/dist/lib/testing/storyboard/types.d.ts +38 -16
- package/dist/lib/testing/storyboard/types.js +1 -0
- package/dist/lib/testing/storyboard/types.mjs +1 -0
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/testing/storyboard/validations.js +64 -0
- package/dist/lib/testing/storyboard/validations.mjs +67 -1
- package/dist/lib/testing/types.d.mts +15 -1
- package/dist/lib/testing/types.d.ts +15 -1
- package/dist/lib/types/schemas.generated.d.ts +65 -65
- package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
- package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
- package/dist/lib/utils/adcp-version-config.js +6 -0
- package/dist/lib/utils/adcp-version-config.mjs +6 -0
- package/dist/lib/utils/capabilities.d.mts +7 -9
- package/dist/lib/utils/capabilities.d.ts +7 -9
- package/dist/lib/utils/capabilities.js +14 -28
- package/dist/lib/utils/capabilities.mjs +14 -27
- package/dist/lib/utils/creative-adapter.d.mts +15 -113
- package/dist/lib/utils/creative-adapter.d.ts +15 -113
- package/dist/lib/utils/creative-adapter.js +7 -106
- package/dist/lib/utils/creative-adapter.mjs +7 -102
- package/dist/lib/utils/format-renders.d.mts +20 -80
- package/dist/lib/utils/format-renders.d.ts +20 -80
- package/dist/lib/utils/format-renders.js +7 -67
- package/dist/lib/utils/format-renders.mjs +7 -66
- package/dist/lib/utils/index.d.mts +1 -2
- package/dist/lib/utils/index.d.ts +1 -2
- package/dist/lib/utils/index.js +0 -7
- package/dist/lib/utils/index.mjs +0 -6
- package/dist/lib/utils/preview-normalizer.d.mts +31 -80
- package/dist/lib/utils/preview-normalizer.d.ts +31 -80
- package/dist/lib/utils/preview-normalizer.js +5 -50
- package/dist/lib/utils/preview-normalizer.mjs +5 -49
- package/dist/lib/utils/pricing-adapter.d.mts +2 -36
- package/dist/lib/utils/pricing-adapter.d.ts +2 -36
- package/dist/lib/utils/pricing-adapter.js +0 -105
- package/dist/lib/utils/pricing-adapter.mjs +0 -100
- package/dist/lib/utils/request-normalizer.d.mts +1 -2
- package/dist/lib/utils/request-normalizer.d.ts +1 -2
- package/dist/lib/v2/projection/creative-delivery.d.mts +2 -0
- package/dist/lib/v2/projection/creative-delivery.d.ts +2 -0
- package/dist/lib/v2/projection/creative-delivery.js +7 -0
- package/dist/lib/v2/projection/creative-delivery.mjs +6 -0
- package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
- package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
- package/dist/lib/v2/projection/legacy-metadata.js +41 -1
- package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
- package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
- package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
- package/dist/lib/v2/projection/v1-to-v2.js +13 -0
- package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
- package/dist/lib/validation/client-hooks.d.mts +1 -4
- package/dist/lib/validation/client-hooks.d.ts +1 -4
- package/dist/lib/validation/get-products-request.d.mts +1 -1
- package/dist/lib/validation/get-products-request.d.ts +1 -1
- package/dist/lib/validation/schema-loader.js +6 -0
- package/dist/lib/validation/schema-loader.mjs +6 -0
- package/dist/lib/validation/schema-validator.js +1 -26
- package/dist/lib/validation/schema-validator.mjs +1 -26
- package/dist/lib/version.d.mts +5 -5
- package/dist/lib/version.d.ts +5 -5
- package/dist/lib/version.js +3 -5
- package/dist/lib/version.mjs +3 -5
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
- package/docs/guides/CONFORMANCE.md +25 -0
- package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
- package/docs/guides/CREATIVE-DELIVERY.md +45 -6
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
- package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
- package/docs/llms.txt +2 -2
- package/docs/migration-13-to-14.md +20 -16
- package/docs/migration-14.x-rc-worksheet.md +5 -5
- package/docs/migration-4.x-to-5.x.md +12 -7
- package/docs/migration-drop-adcp-2.md +25 -0
- package/package.json +3 -18
- package/skills/call-adcp-agent/SKILL.md +23 -25
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
- package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
- package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
- package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
- package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
- package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
- package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
- package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
- package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
- package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
- package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
- package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
- package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
- package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
- package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
- package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
- package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
- package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
- package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
- package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
- package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
- package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
- package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
- package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
- package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
- package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
- package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
- package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
- package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
- package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
- package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
- package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
- package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
- package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
- package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
- package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
- package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
- package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
- package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
- package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
- package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
- package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
- package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
- package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
- package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
- package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
- package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
- package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
- package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
- package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
- package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
- package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
- package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
- package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
- package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
- package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
- package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
- package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
- package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
- package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
- package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
- package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
- package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
- package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
- package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
- package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
- package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
- package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
- package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
- package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
- package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
- package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
- package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
- package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
- package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
- package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
- package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
- package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
- package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
- package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
- package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
- package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
- package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
- package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
- package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
- package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
- package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
- package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
- package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
- package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
- package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
- package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
- package/dist/lib/schemas-data/v2.5/index.json +0 -604
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
- package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
- package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
- package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
- package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
- package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
- package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
- package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
- package/dist/lib/types/v2-5/index.d.mts +0 -1
- package/dist/lib/types/v2-5/index.d.ts +0 -1
- package/dist/lib/types/v2-5/index.js +0 -22
- package/dist/lib/types/v2-5/index.mjs +0 -1
- package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
- package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
- package/dist/lib/types/v2-5/tools.generated.js +0 -16
- package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
- package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
- package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
- package/dist/lib/utils/sync-creatives-adapter.js +0 -83
- package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
|
@@ -54,6 +54,7 @@ __export(protocols_exports, {
|
|
|
54
54
|
wrapFetchWithTransportDiagnostics: () => import_transportDiagnostics2.wrapFetchWithTransportDiagnostics
|
|
55
55
|
});
|
|
56
56
|
module.exports = __toCommonJS(protocols_exports);
|
|
57
|
+
var import_errors = require('../errors/index.js');
|
|
57
58
|
var import_mcp = require('./mcp.js');
|
|
58
59
|
var import_mcp2 = require('./mcp.js');
|
|
59
60
|
var import_mcp_scope = require('./mcp-scope.js');
|
|
@@ -70,13 +71,13 @@ var import_auth = require('../auth/index.js');
|
|
|
70
71
|
var import_oauth = require('../auth/oauth/index.js');
|
|
71
72
|
var import_authorization_required = require('../auth/oauth/authorization-required.js');
|
|
72
73
|
var import_provider_cache = require('../auth/oauth/provider-cache.js');
|
|
73
|
-
var
|
|
74
|
+
var import_errors2 = require('../errors/index.js');
|
|
74
75
|
var import_signedRequestRejection = require('./signedRequestRejection.js');
|
|
75
76
|
var import_net = require('../net/index.js');
|
|
76
77
|
var import_validation = require('../validation/index.js');
|
|
77
78
|
var import_tracing = require('../observability/tracing.js');
|
|
78
79
|
var import_version = require('../version.js');
|
|
79
|
-
var
|
|
80
|
+
var import_errors3 = require('../errors/index.js');
|
|
80
81
|
var import_schema_loader = require('../validation/schema-loader.js');
|
|
81
82
|
var import_client = require('../signing/client.js');
|
|
82
83
|
var import_responseSizeLimit2 = require('./responseSizeLimit.js');
|
|
@@ -109,7 +110,7 @@ function resolveWireMajor(adcpVersion) {
|
|
|
109
110
|
if (adcpVersion === void 0) return import_version.ADCP_MAJOR_VERSION;
|
|
110
111
|
const parsed = (0, import_version.parseAdcpMajorVersion)(adcpVersion);
|
|
111
112
|
if (!Number.isFinite(parsed)) {
|
|
112
|
-
throw new
|
|
113
|
+
throw new import_errors3.ConfigurationError(
|
|
113
114
|
`adcpVersion ${JSON.stringify(adcpVersion)} is not a valid AdCP version. Expected a semver string (e.g. '3.0.1', '3.1.0-beta.1') or a legacy alias (e.g. 'v3').`,
|
|
114
115
|
"adcpVersion"
|
|
115
116
|
);
|
|
@@ -126,7 +127,7 @@ function bundleSupportsAdcpVersionField(bundleKey) {
|
|
|
126
127
|
return parseInt(minorMatch[1], 10) >= 1;
|
|
127
128
|
}
|
|
128
129
|
function buildVersionEnvelope(adcpVersion, serverVersion) {
|
|
129
|
-
if (serverVersion === "v2")
|
|
130
|
+
if (serverVersion === "v2") throw new import_errors.VersionUnsupportedError("request", "version", "v2");
|
|
130
131
|
const wireMajor = resolveWireMajor(adcpVersion);
|
|
131
132
|
const bundleKey = (0, import_schema_loader.resolveBundleKey)(adcpVersion ?? import_version.ADCP_VERSION);
|
|
132
133
|
if (!bundleSupportsAdcpVersionField(bundleKey)) {
|
|
@@ -136,16 +137,9 @@ function buildVersionEnvelope(adcpVersion, serverVersion) {
|
|
|
136
137
|
(0, import_schema_loader.validateAdcpVersionWire)(wireValue);
|
|
137
138
|
return { adcp_major_version: wireMajor, adcp_version: wireValue };
|
|
138
139
|
}
|
|
139
|
-
let hasWarnedAboutV2PushNotificationSecret = false;
|
|
140
|
-
function warnV2PushNotificationNeedsSecret() {
|
|
141
|
-
if (hasWarnedAboutV2PushNotificationSecret) return;
|
|
142
|
-
hasWarnedAboutV2PushNotificationSecret = true;
|
|
143
|
-
console.warn(
|
|
144
|
-
"[adcp] Suppressing push_notification_config for a v2 seller: AdCP 2.5 requires an `authentication` block and no `webhookSecret` is configured. Set `webhookSecret` to register async task-status webhooks with this agent, or move the agent to an AdCP 3.x pin, where the RFC 9421 webhook profile needs no shared secret."
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
140
|
function buildVersionEnvelopeForMode(mode, adcpVersion, serverVersion) {
|
|
148
|
-
if (
|
|
141
|
+
if (serverVersion === "v2") throw new import_errors.VersionUnsupportedError("request", "version", "v2");
|
|
142
|
+
if (mode === "none") return {};
|
|
149
143
|
if (mode === "major-only") return { adcp_major_version: resolveWireMajor(adcpVersion) };
|
|
150
144
|
return buildVersionEnvelope(adcpVersion, serverVersion);
|
|
151
145
|
}
|
|
@@ -182,7 +176,7 @@ function prepareProtocolToolCall(agent, args, options = {}) {
|
|
|
182
176
|
const argsWithVersion = applyVersionEnvelope(args, envelope);
|
|
183
177
|
applyPublishedSchemaCompatibility(options.toolName, argsWithVersion, args);
|
|
184
178
|
const effectiveBundle = typeof argsWithVersion.adcp_version === "string" ? (0, import_schema_loader.resolveBundleKey)(argsWithVersion.adcp_version) : void 0;
|
|
185
|
-
const usesApplicationRegistration =
|
|
179
|
+
const usesApplicationRegistration = (0, import_adcp_version_config.isAdcpVersionAtLeast)(effectiveBundle, "3.1.0");
|
|
186
180
|
let pushNotificationConfig;
|
|
187
181
|
let applicationPushNotificationConfig;
|
|
188
182
|
let operationId;
|
|
@@ -196,8 +190,6 @@ function prepareProtocolToolCall(agent, args, options = {}) {
|
|
|
196
190
|
credentials: options.webhookSecret
|
|
197
191
|
}
|
|
198
192
|
};
|
|
199
|
-
} else if (options.serverVersion === "v2") {
|
|
200
|
-
warnV2PushNotificationNeedsSecret();
|
|
201
193
|
} else {
|
|
202
194
|
pushNotificationConfig = {
|
|
203
195
|
url: options.webhookUrl,
|
|
@@ -373,7 +365,7 @@ class ProtocolClient {
|
|
|
373
365
|
}
|
|
374
366
|
);
|
|
375
367
|
} catch (err) {
|
|
376
|
-
if (agent.oauth_client_credentials && (0,
|
|
368
|
+
if (agent.oauth_client_credentials && (0, import_errors2.is401Error)(err) && (0, import_signedRequestRejection.getSignedRequestRejection)(err)?.challenge?.scheme !== "signature") {
|
|
377
369
|
const ccStorage = (0, import_oauth.getAgentStorage)(agent);
|
|
378
370
|
const allowPrivateIp = transport?.allowPrivateIp ?? (0, import_net.isLikelyPrivateUrl)(agent.agent_uri);
|
|
379
371
|
await (0, import_oauth.ensureClientCredentialsTokens)(agent, {
|
|
@@ -405,7 +397,7 @@ class ProtocolClient {
|
|
|
405
397
|
}
|
|
406
398
|
);
|
|
407
399
|
} catch (retryErr) {
|
|
408
|
-
const rejection = (0, import_signedRequestRejection.getSignedRequestRejection)(retryErr) ?? ((0,
|
|
400
|
+
const rejection = (0, import_signedRequestRejection.getSignedRequestRejection)(retryErr) ?? ((0, import_errors2.is401Error)(retryErr) ? (0, import_signedRequestRejection.getSignedRequestRejection)(err) : void 0);
|
|
409
401
|
if (rejection) throw rejection;
|
|
410
402
|
await rethrowAsNeedsAuthorization(
|
|
411
403
|
retryErr,
|
|
@@ -447,7 +439,7 @@ class ProtocolClient {
|
|
|
447
439
|
transport?.legacyCompat
|
|
448
440
|
);
|
|
449
441
|
} catch (err) {
|
|
450
|
-
if (agent.oauth_client_credentials && (0,
|
|
442
|
+
if (agent.oauth_client_credentials && (0, import_errors2.is401Error)(err) && (0, import_signedRequestRejection.getSignedRequestRejection)(err)?.challenge?.scheme !== "signature") {
|
|
451
443
|
const ccStorage = (0, import_oauth.getAgentStorage)(agent);
|
|
452
444
|
const allowPrivateIp = transport?.allowPrivateIp ?? (0, import_net.isLikelyPrivateUrl)(agent.agent_uri);
|
|
453
445
|
await (0, import_oauth.ensureClientCredentialsTokens)(agent, {
|
|
@@ -476,7 +468,7 @@ class ProtocolClient {
|
|
|
476
468
|
transport?.legacyCompat
|
|
477
469
|
);
|
|
478
470
|
} catch (retryErr) {
|
|
479
|
-
const rejection = (0, import_signedRequestRejection.getSignedRequestRejection)(retryErr) ?? ((0,
|
|
471
|
+
const rejection = (0, import_signedRequestRejection.getSignedRequestRejection)(retryErr) ?? ((0, import_errors2.is401Error)(retryErr) ? (0, import_signedRequestRejection.getSignedRequestRejection)(err) : void 0);
|
|
480
472
|
if (rejection) throw rejection;
|
|
481
473
|
await rethrowAsNeedsAuthorization(
|
|
482
474
|
retryErr,
|
|
@@ -512,9 +504,9 @@ async function rethrowAsNeedsAuthorization(err, agentUrl, fetchFn, signal, confi
|
|
|
512
504
|
const signedRejection = (0, import_signedRequestRejection.getSignedRequestRejection)(err);
|
|
513
505
|
if (signedRejection) throw signedRejection;
|
|
514
506
|
if (err instanceof import_oauth.NeedsAuthorizationError) throw err;
|
|
515
|
-
if (!(0,
|
|
507
|
+
if (!(0, import_errors2.is401Error)(err)) return;
|
|
516
508
|
if (recoveryMode === "static") {
|
|
517
|
-
throw new
|
|
509
|
+
throw new import_errors2.AuthenticationCredentialsRejectedError(agentUrl, err);
|
|
518
510
|
}
|
|
519
511
|
const allowPrivateIp = configuredAllowPrivateIp ?? (0, import_net.isLikelyPrivateUrl)(agentUrl);
|
|
520
512
|
const requirements = await (0, import_oauth.discoverAuthorizationRequirements)(agentUrl, { allowPrivateIp, fetchFn, signal });
|
|
@@ -3,6 +3,7 @@ import { dirname as __adcpDirname } from "node:path";
|
|
|
3
3
|
import { createRequire as __adcpCreateRequire } from "node:module";
|
|
4
4
|
const __dirname = __adcpDirname(__adcpFileURLToPath(import.meta.url));
|
|
5
5
|
const require2 = __adcpCreateRequire(import.meta.url);
|
|
6
|
+
import { VersionUnsupportedError } from "../errors/index.mjs";
|
|
6
7
|
import {
|
|
7
8
|
callMCPTool,
|
|
8
9
|
callMCPToolWithOAuth,
|
|
@@ -104,7 +105,7 @@ function bundleSupportsAdcpVersionField(bundleKey) {
|
|
|
104
105
|
return parseInt(minorMatch[1], 10) >= 1;
|
|
105
106
|
}
|
|
106
107
|
function buildVersionEnvelope(adcpVersion, serverVersion) {
|
|
107
|
-
if (serverVersion === "v2")
|
|
108
|
+
if (serverVersion === "v2") throw new VersionUnsupportedError("request", "version", "v2");
|
|
108
109
|
const wireMajor = resolveWireMajor(adcpVersion);
|
|
109
110
|
const bundleKey = resolveBundleKey(adcpVersion ?? ADCP_VERSION);
|
|
110
111
|
if (!bundleSupportsAdcpVersionField(bundleKey)) {
|
|
@@ -114,16 +115,9 @@ function buildVersionEnvelope(adcpVersion, serverVersion) {
|
|
|
114
115
|
validateAdcpVersionWire(wireValue);
|
|
115
116
|
return { adcp_major_version: wireMajor, adcp_version: wireValue };
|
|
116
117
|
}
|
|
117
|
-
let hasWarnedAboutV2PushNotificationSecret = false;
|
|
118
|
-
function warnV2PushNotificationNeedsSecret() {
|
|
119
|
-
if (hasWarnedAboutV2PushNotificationSecret) return;
|
|
120
|
-
hasWarnedAboutV2PushNotificationSecret = true;
|
|
121
|
-
console.warn(
|
|
122
|
-
"[adcp] Suppressing push_notification_config for a v2 seller: AdCP 2.5 requires an `authentication` block and no `webhookSecret` is configured. Set `webhookSecret` to register async task-status webhooks with this agent, or move the agent to an AdCP 3.x pin, where the RFC 9421 webhook profile needs no shared secret."
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
118
|
function buildVersionEnvelopeForMode(mode, adcpVersion, serverVersion) {
|
|
126
|
-
if (
|
|
119
|
+
if (serverVersion === "v2") throw new VersionUnsupportedError("request", "version", "v2");
|
|
120
|
+
if (mode === "none") return {};
|
|
127
121
|
if (mode === "major-only") return { adcp_major_version: resolveWireMajor(adcpVersion) };
|
|
128
122
|
return buildVersionEnvelope(adcpVersion, serverVersion);
|
|
129
123
|
}
|
|
@@ -160,7 +154,7 @@ function prepareProtocolToolCall(agent, args, options = {}) {
|
|
|
160
154
|
const argsWithVersion = applyVersionEnvelope(args, envelope);
|
|
161
155
|
applyPublishedSchemaCompatibility(options.toolName, argsWithVersion, args);
|
|
162
156
|
const effectiveBundle = typeof argsWithVersion.adcp_version === "string" ? resolveBundleKey(argsWithVersion.adcp_version) : void 0;
|
|
163
|
-
const usesApplicationRegistration =
|
|
157
|
+
const usesApplicationRegistration = isAdcpVersionAtLeast(effectiveBundle, "3.1.0");
|
|
164
158
|
let pushNotificationConfig;
|
|
165
159
|
let applicationPushNotificationConfig;
|
|
166
160
|
let operationId;
|
|
@@ -174,8 +168,6 @@ function prepareProtocolToolCall(agent, args, options = {}) {
|
|
|
174
168
|
credentials: options.webhookSecret
|
|
175
169
|
}
|
|
176
170
|
};
|
|
177
|
-
} else if (options.serverVersion === "v2") {
|
|
178
|
-
warnV2PushNotificationNeedsSecret();
|
|
179
171
|
} else {
|
|
180
172
|
pushNotificationConfig = {
|
|
181
173
|
url: options.webhookUrl,
|
|
@@ -144,9 +144,10 @@ export type SavePropertyRequest = Omit<RegistrySavePropertyRequest, 'authorized_
|
|
|
144
144
|
/** Response from POST /api/properties/save (200) */
|
|
145
145
|
export type SavePropertyResponse = operations['saveProperty']['responses']['200']['content']['application/json'];
|
|
146
146
|
type RegistryResolveIdentifiersRequest = NonNullable<operations['resolveIdentifiers']['requestBody']>['content']['application/json'];
|
|
147
|
-
/** Request body for POST /api/registry/resolve.
|
|
148
|
-
export type ResolveIdentifiersRequest = Omit<RegistryResolveIdentifiersRequest, 'mode'> & {
|
|
147
|
+
/** Request body for POST /api/registry/resolve. Mode and sandbox use the registry's defaults when omitted. */
|
|
148
|
+
export type ResolveIdentifiersRequest = Omit<RegistryResolveIdentifiersRequest, 'mode' | 'sandbox'> & {
|
|
149
149
|
mode?: RegistryResolveIdentifiersRequest['mode'];
|
|
150
|
+
sandbox?: RegistryResolveIdentifiersRequest['sandbox'];
|
|
150
151
|
};
|
|
151
152
|
/** Response from POST /api/registry/resolve (200) */
|
|
152
153
|
export type ResolveIdentifiersResponse = operations['resolveIdentifiers']['responses']['200']['content']['application/json'];
|
|
@@ -144,9 +144,10 @@ export type SavePropertyRequest = Omit<RegistrySavePropertyRequest, 'authorized_
|
|
|
144
144
|
/** Response from POST /api/properties/save (200) */
|
|
145
145
|
export type SavePropertyResponse = operations['saveProperty']['responses']['200']['content']['application/json'];
|
|
146
146
|
type RegistryResolveIdentifiersRequest = NonNullable<operations['resolveIdentifiers']['requestBody']>['content']['application/json'];
|
|
147
|
-
/** Request body for POST /api/registry/resolve.
|
|
148
|
-
export type ResolveIdentifiersRequest = Omit<RegistryResolveIdentifiersRequest, 'mode'> & {
|
|
147
|
+
/** Request body for POST /api/registry/resolve. Mode and sandbox use the registry's defaults when omitted. */
|
|
148
|
+
export type ResolveIdentifiersRequest = Omit<RegistryResolveIdentifiersRequest, 'mode' | 'sandbox'> & {
|
|
149
149
|
mode?: RegistryResolveIdentifiersRequest['mode'];
|
|
150
|
+
sandbox?: RegistryResolveIdentifiersRequest['sandbox'];
|
|
150
151
|
};
|
|
151
152
|
/** Response from POST /api/registry/resolve (200) */
|
|
152
153
|
export type ResolveIdentifiersResponse = operations['resolveIdentifiers']['responses']['200']['content']['application/json'];
|
|
@@ -283,7 +283,7 @@ export interface paths {
|
|
|
283
283
|
put?: never;
|
|
284
284
|
/**
|
|
285
285
|
* Save property
|
|
286
|
-
* @description Save or update a hosted property in the registry. Requires authentication. For existing properties, creates a revision-tracked edit. For new properties, creates the property directly. Cannot edit authoritative properties managed via adagents.json.
|
|
286
|
+
* @description Save or update a hosted property in the registry. Requires authentication. For bulk identifier contributions use resolveIdentifiers instead (up to 10,000 identifiers per request). This endpoint is limited to 60 requests/hour per user/IP. publisher_domain must be a lowercase hostname without a URL, port, whitespace, wildcard, or trailing dot. Reserved test domains are rejected unless sandbox is true. With sandbox: true the request is validated and a simulated result is returned without reading or writing a hosted property; the ID is ephemeral. For existing properties, creates a revision-tracked edit. For new properties, creates the property directly. Cannot edit authoritative properties managed via adagents.json.
|
|
287
287
|
*
|
|
288
288
|
* This is an identity-only write surface: the stored document always carries `authorized_agents: []`. Sales authorization lives solely in the publisher's own origin `adagents.json`; the community registry cannot mint or carry it. Any `authorized_agents` sent in the request body is ignored.
|
|
289
289
|
*/
|
|
@@ -525,6 +525,8 @@ export interface paths {
|
|
|
525
525
|
* @description Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).
|
|
526
526
|
*
|
|
527
527
|
* Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.
|
|
528
|
+
*
|
|
529
|
+
* `agent_url` is matched with [AdCP URL canonicalization](/docs/reference/url-canonicalization) and a **non-root trailing slash is significant**: `https://a.example/mcp` and `https://a.example/mcp/` are different agents and can return different publisher sets, the same rule the SDK applies in `verify_agent_authorization`. Ask for the spelling the publisher's adagents.json lists. (Through 2026-10-18 this endpoint folded the two spellings together and answered both with the slashless agent's publishers; that disagreed with the spec and with the validator.) The `agent_url` in the response echoes the canonicalized lookup key, slash included.
|
|
528
530
|
*/
|
|
529
531
|
get: operations["getPublishersForAgentLegacyApiPrefix"];
|
|
530
532
|
put?: never;
|
|
@@ -547,6 +549,8 @@ export interface paths {
|
|
|
547
549
|
* @description Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).
|
|
548
550
|
*
|
|
549
551
|
* Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.
|
|
552
|
+
*
|
|
553
|
+
* `agent_url` is matched with [AdCP URL canonicalization](/docs/reference/url-canonicalization) and a **non-root trailing slash is significant**: `https://a.example/mcp` and `https://a.example/mcp/` are different agents and can return different publisher sets, the same rule the SDK applies in `verify_agent_authorization`. Ask for the spelling the publisher's adagents.json lists. (Through 2026-10-18 this endpoint folded the two spellings together and answered both with the slashless agent's publishers; that disagreed with the spec and with the validator.) The `agent_url` in the response echoes the canonicalized lookup key, slash included.
|
|
550
554
|
*/
|
|
551
555
|
get: operations["getPublishersForAgent"];
|
|
552
556
|
put?: never;
|
|
@@ -2526,6 +2530,8 @@ export interface components {
|
|
|
2526
2530
|
stats?: components["schemas"]["AgentStats"];
|
|
2527
2531
|
capabilities?: components["schemas"]["AgentCapabilities"];
|
|
2528
2532
|
compliance?: components["schemas"]["AgentCompliance"];
|
|
2533
|
+
/** @description Every raw agent_url spelling the directory has indexed under this agent's identity, with the listed (canonical) url first. The registry keys an agent by identity, folding a non-root trailing slash, but GET /v1/agents/{agent_url}/publishers matches spec-exactly with the slash significant — so a client answering "which publishers authorize this agent" must query once per spelling here and merge the results. */
|
|
2534
|
+
declared_urls?: string[];
|
|
2529
2535
|
publisher_domains?: string[];
|
|
2530
2536
|
property_summary?: components["schemas"]["PropertySummary"];
|
|
2531
2537
|
};
|
|
@@ -2661,6 +2667,8 @@ export interface components {
|
|
|
2661
2667
|
timeout_ms: number | null;
|
|
2662
2668
|
storyboard_start_offset: number | null;
|
|
2663
2669
|
auth_type: string | null;
|
|
2670
|
+
/** @description Declared specialisms the graded compliance release does not define. Capability resolution skipped them instead of voiding the run; they were not graded. Absent on ordinary runs. */
|
|
2671
|
+
tolerated_undefined_specialisms?: string[];
|
|
2664
2672
|
} | null;
|
|
2665
2673
|
/** @enum {string} */
|
|
2666
2674
|
BadgeRole: "media-buy" | "creative" | "signals" | "governance" | "brand" | "sponsored-intelligence";
|
|
@@ -4246,13 +4254,31 @@ export interface components {
|
|
|
4246
4254
|
storyboards_total: number | null;
|
|
4247
4255
|
first_blocker: string | null;
|
|
4248
4256
|
} | null;
|
|
4257
|
+
/** @description Owner/operator-only. Present while the newest scheduled heartbeat ran out of time, so the owner can see that the published result is not being refreshed. Null for other viewers and once a later heartbeat completes. This does not change the public verdict. */
|
|
4258
|
+
heartbeat_timeout?: {
|
|
4259
|
+
/** Format: uuid */
|
|
4260
|
+
run_id: string;
|
|
4261
|
+
/** Format: date-time */
|
|
4262
|
+
timed_out_at: string;
|
|
4263
|
+
duration_ms: number | null;
|
|
4264
|
+
timeout_ms: number | null;
|
|
4265
|
+
storyboards_completed: number | null;
|
|
4266
|
+
storyboards_total: number | null;
|
|
4267
|
+
consecutive: number;
|
|
4268
|
+
/** @description True when the streak filled the lookback window, so the real run of timeouts may be longer than `consecutive`. */
|
|
4269
|
+
consecutive_capped: boolean;
|
|
4270
|
+
/** Format: date-time */
|
|
4271
|
+
published_at: string | null;
|
|
4272
|
+
/** @description Ready-to-render owner-facing sentence. Built only from platform- and runner-generated values; no agent response text. */
|
|
4273
|
+
summary: string;
|
|
4274
|
+
} | null;
|
|
4249
4275
|
/** @description How often the heartbeat re-tests this agent, in hours */
|
|
4250
4276
|
check_interval_hours?: number;
|
|
4251
4277
|
/** @description Specialisms the agent declared in get_adcp_capabilities, from the latest run */
|
|
4252
4278
|
declared_specialisms?: string[];
|
|
4253
|
-
/** @description Per-specialism pass/fail/untested status — keyed on declared specialism, derived from the matching storyboard's status */
|
|
4279
|
+
/** @description Per-specialism pass/fail/untested status — keyed on declared specialism, derived from the matching storyboard's status. `not_applicable` means AdCP introduced the specialism after the compliance release this run graded, so it could not be tested. */
|
|
4254
4280
|
specialism_status?: {
|
|
4255
|
-
[key: string]: "passing" | "failing" | "untested" | "unknown";
|
|
4281
|
+
[key: string]: "passing" | "failing" | "untested" | "unknown" | "not_applicable";
|
|
4256
4282
|
};
|
|
4257
4283
|
eligibility?: components["schemas"]["ComplianceEligibility"];
|
|
4258
4284
|
/** @description Public per-storyboard verdicts and aggregate step counts. First-failure diagnostic fields are populated only for owners; scalar diagnostics are null and validation evidence is empty for other callers. */
|
|
@@ -4892,6 +4918,11 @@ export interface components {
|
|
|
4892
4918
|
*/
|
|
4893
4919
|
OrganizationRevenueTier: "under_1m" | "1m_5m" | "5m_50m" | "50m_250m" | "250m_1b" | "1b_plus";
|
|
4894
4920
|
ResolveResponse: {
|
|
4921
|
+
/**
|
|
4922
|
+
* @description Present for a non-persistent sandbox simulation. New property handles are ephemeral.
|
|
4923
|
+
* @enum {boolean}
|
|
4924
|
+
*/
|
|
4925
|
+
sandbox?: true;
|
|
4895
4926
|
resolved: components["schemas"]["ResolvedEntry"][];
|
|
4896
4927
|
summary: {
|
|
4897
4928
|
total: number;
|
|
@@ -4915,30 +4946,30 @@ export interface components {
|
|
|
4915
4946
|
CatalogIdentifier: {
|
|
4916
4947
|
/** @example domain */
|
|
4917
4948
|
type: string;
|
|
4918
|
-
/** @example
|
|
4949
|
+
/** @example streamhaus.com */
|
|
4919
4950
|
value: string;
|
|
4920
4951
|
};
|
|
4952
|
+
/** @description Up to 10,000 identifiers plus provenance. resolve requires authentication and contributes unknown identifiers; lookup is read-only. Domain/subdomain values must follow core/identifier.json; production rejects reserved test domains. sandbox: true simulates contributions without writes. */
|
|
4921
4953
|
ResolveRequest: {
|
|
4922
4954
|
/** @description Identifiers to resolve (and, in resolve mode, contribute). Max 10,000 per call for all callers. */
|
|
4923
4955
|
identifiers: components["schemas"]["CatalogIdentifier"][];
|
|
4924
4956
|
provenance: components["schemas"]["FactProvenance"];
|
|
4925
4957
|
/**
|
|
4926
|
-
* @description
|
|
4958
|
+
* @description resolve (default) contributes identifiers, creates missing catalog entries, and logs activity; authentication is required. lookup is a public read with no writes or activity logging.
|
|
4927
4959
|
* @default resolve
|
|
4928
4960
|
* @enum {string}
|
|
4929
4961
|
*/
|
|
4930
4962
|
mode: "resolve" | "lookup";
|
|
4963
|
+
/** @description Simulate contributions without storing properties, identifiers, facts, or activity. Reads existing catalog data; new handles are ephemeral. Reserved test domains are allowed only in sandbox mode. Defaults to false when omitted. */
|
|
4964
|
+
sandbox?: boolean;
|
|
4931
4965
|
};
|
|
4932
4966
|
FactProvenance: {
|
|
4933
4967
|
/**
|
|
4934
|
-
* @description How the caller knows these identifiers — the trust/audit envelope on the fact. Determines the confidence the catalog assigns.
|
|
4968
|
+
* @description How the caller knows these identifiers — the trust/audit envelope on the fact. Determines the confidence the catalog assigns. crawl is reserved for server-side pipelines; callers use the others.
|
|
4935
4969
|
* @enum {string}
|
|
4936
4970
|
*/
|
|
4937
4971
|
type: "agency_allowlist" | "publisher_declaration" | "impression_log" | "ssp_inventory" | "deal_history" | "crawl" | "data_partner" | "member_assertion";
|
|
4938
|
-
/**
|
|
4939
|
-
* @description Optional free-text annotation (campaign, dataset).
|
|
4940
|
-
* @example unilever_q3
|
|
4941
|
-
*/
|
|
4972
|
+
/** @description Optional free-text annotation (campaign, dataset). */
|
|
4942
4973
|
context?: string;
|
|
4943
4974
|
};
|
|
4944
4975
|
CatalogDisputeTriageResult: {
|
|
@@ -5731,6 +5762,11 @@ export interface operations {
|
|
|
5731
5762
|
"application/json": {
|
|
5732
5763
|
/** @example examplepub.com */
|
|
5733
5764
|
publisher_domain: string;
|
|
5765
|
+
/**
|
|
5766
|
+
* @description Validate and simulate a save without persisting it. Allows reserved test hostnames.
|
|
5767
|
+
* @default false
|
|
5768
|
+
*/
|
|
5769
|
+
sandbox?: boolean;
|
|
5734
5770
|
/**
|
|
5735
5771
|
* @description Ignored. Community-registry rows never assert sales authorization — the owner's origin adagents.json is the sole authorization source — so any value here is dropped and the stored document carries authorized_agents:[].
|
|
5736
5772
|
* @example []
|
|
@@ -5770,6 +5806,8 @@ export interface operations {
|
|
|
5770
5806
|
success: true;
|
|
5771
5807
|
message: string;
|
|
5772
5808
|
id: string;
|
|
5809
|
+
/** @enum {boolean} */
|
|
5810
|
+
sandbox?: true;
|
|
5773
5811
|
revision_number?: number;
|
|
5774
5812
|
};
|
|
5775
5813
|
};
|
|
@@ -8475,7 +8513,7 @@ export interface operations {
|
|
|
8475
8513
|
getAgentAuthorizations: {
|
|
8476
8514
|
parameters: {
|
|
8477
8515
|
query: {
|
|
8478
|
-
/** @description Agent URL to look up. Canonicalized server-side
|
|
8516
|
+
/** @description Agent URL to look up. Canonicalized server-side per AdCP URL canonicalization: the scheme and host fold, the path does not. */
|
|
8479
8517
|
agent_url: string;
|
|
8480
8518
|
/** @description `effective` (default) applies override layer; `raw` reads base table. */
|
|
8481
8519
|
include?: "raw" | "effective";
|
|
@@ -10954,6 +10992,8 @@ export interface operations {
|
|
|
10954
10992
|
}[];
|
|
10955
10993
|
}[];
|
|
10956
10994
|
total_storyboards: number;
|
|
10995
|
+
/** @description Declared specialisms AdCP introduced after this compliance release. They have no bundle to run here, so they are listed separately instead of failing resolution. */
|
|
10996
|
+
specialisms_not_applicable?: string[];
|
|
10957
10997
|
};
|
|
10958
10998
|
};
|
|
10959
10999
|
};
|
|
@@ -283,7 +283,7 @@ export interface paths {
|
|
|
283
283
|
put?: never;
|
|
284
284
|
/**
|
|
285
285
|
* Save property
|
|
286
|
-
* @description Save or update a hosted property in the registry. Requires authentication. For existing properties, creates a revision-tracked edit. For new properties, creates the property directly. Cannot edit authoritative properties managed via adagents.json.
|
|
286
|
+
* @description Save or update a hosted property in the registry. Requires authentication. For bulk identifier contributions use resolveIdentifiers instead (up to 10,000 identifiers per request). This endpoint is limited to 60 requests/hour per user/IP. publisher_domain must be a lowercase hostname without a URL, port, whitespace, wildcard, or trailing dot. Reserved test domains are rejected unless sandbox is true. With sandbox: true the request is validated and a simulated result is returned without reading or writing a hosted property; the ID is ephemeral. For existing properties, creates a revision-tracked edit. For new properties, creates the property directly. Cannot edit authoritative properties managed via adagents.json.
|
|
287
287
|
*
|
|
288
288
|
* This is an identity-only write surface: the stored document always carries `authorized_agents: []`. Sales authorization lives solely in the publisher's own origin `adagents.json`; the community registry cannot mint or carry it. Any `authorized_agents` sent in the request body is ignored.
|
|
289
289
|
*/
|
|
@@ -525,6 +525,8 @@ export interface paths {
|
|
|
525
525
|
* @description Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).
|
|
526
526
|
*
|
|
527
527
|
* Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.
|
|
528
|
+
*
|
|
529
|
+
* `agent_url` is matched with [AdCP URL canonicalization](/docs/reference/url-canonicalization) and a **non-root trailing slash is significant**: `https://a.example/mcp` and `https://a.example/mcp/` are different agents and can return different publisher sets, the same rule the SDK applies in `verify_agent_authorization`. Ask for the spelling the publisher's adagents.json lists. (Through 2026-10-18 this endpoint folded the two spellings together and answered both with the slashless agent's publishers; that disagreed with the spec and with the validator.) The `agent_url` in the response echoes the canonicalized lookup key, slash included.
|
|
528
530
|
*/
|
|
529
531
|
get: operations["getPublishersForAgentLegacyApiPrefix"];
|
|
530
532
|
put?: never;
|
|
@@ -547,6 +549,8 @@ export interface paths {
|
|
|
547
549
|
* @description Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).
|
|
548
550
|
*
|
|
549
551
|
* Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.
|
|
552
|
+
*
|
|
553
|
+
* `agent_url` is matched with [AdCP URL canonicalization](/docs/reference/url-canonicalization) and a **non-root trailing slash is significant**: `https://a.example/mcp` and `https://a.example/mcp/` are different agents and can return different publisher sets, the same rule the SDK applies in `verify_agent_authorization`. Ask for the spelling the publisher's adagents.json lists. (Through 2026-10-18 this endpoint folded the two spellings together and answered both with the slashless agent's publishers; that disagreed with the spec and with the validator.) The `agent_url` in the response echoes the canonicalized lookup key, slash included.
|
|
550
554
|
*/
|
|
551
555
|
get: operations["getPublishersForAgent"];
|
|
552
556
|
put?: never;
|
|
@@ -2526,6 +2530,8 @@ export interface components {
|
|
|
2526
2530
|
stats?: components["schemas"]["AgentStats"];
|
|
2527
2531
|
capabilities?: components["schemas"]["AgentCapabilities"];
|
|
2528
2532
|
compliance?: components["schemas"]["AgentCompliance"];
|
|
2533
|
+
/** @description Every raw agent_url spelling the directory has indexed under this agent's identity, with the listed (canonical) url first. The registry keys an agent by identity, folding a non-root trailing slash, but GET /v1/agents/{agent_url}/publishers matches spec-exactly with the slash significant — so a client answering "which publishers authorize this agent" must query once per spelling here and merge the results. */
|
|
2534
|
+
declared_urls?: string[];
|
|
2529
2535
|
publisher_domains?: string[];
|
|
2530
2536
|
property_summary?: components["schemas"]["PropertySummary"];
|
|
2531
2537
|
};
|
|
@@ -2661,6 +2667,8 @@ export interface components {
|
|
|
2661
2667
|
timeout_ms: number | null;
|
|
2662
2668
|
storyboard_start_offset: number | null;
|
|
2663
2669
|
auth_type: string | null;
|
|
2670
|
+
/** @description Declared specialisms the graded compliance release does not define. Capability resolution skipped them instead of voiding the run; they were not graded. Absent on ordinary runs. */
|
|
2671
|
+
tolerated_undefined_specialisms?: string[];
|
|
2664
2672
|
} | null;
|
|
2665
2673
|
/** @enum {string} */
|
|
2666
2674
|
BadgeRole: "media-buy" | "creative" | "signals" | "governance" | "brand" | "sponsored-intelligence";
|
|
@@ -4246,13 +4254,31 @@ export interface components {
|
|
|
4246
4254
|
storyboards_total: number | null;
|
|
4247
4255
|
first_blocker: string | null;
|
|
4248
4256
|
} | null;
|
|
4257
|
+
/** @description Owner/operator-only. Present while the newest scheduled heartbeat ran out of time, so the owner can see that the published result is not being refreshed. Null for other viewers and once a later heartbeat completes. This does not change the public verdict. */
|
|
4258
|
+
heartbeat_timeout?: {
|
|
4259
|
+
/** Format: uuid */
|
|
4260
|
+
run_id: string;
|
|
4261
|
+
/** Format: date-time */
|
|
4262
|
+
timed_out_at: string;
|
|
4263
|
+
duration_ms: number | null;
|
|
4264
|
+
timeout_ms: number | null;
|
|
4265
|
+
storyboards_completed: number | null;
|
|
4266
|
+
storyboards_total: number | null;
|
|
4267
|
+
consecutive: number;
|
|
4268
|
+
/** @description True when the streak filled the lookback window, so the real run of timeouts may be longer than `consecutive`. */
|
|
4269
|
+
consecutive_capped: boolean;
|
|
4270
|
+
/** Format: date-time */
|
|
4271
|
+
published_at: string | null;
|
|
4272
|
+
/** @description Ready-to-render owner-facing sentence. Built only from platform- and runner-generated values; no agent response text. */
|
|
4273
|
+
summary: string;
|
|
4274
|
+
} | null;
|
|
4249
4275
|
/** @description How often the heartbeat re-tests this agent, in hours */
|
|
4250
4276
|
check_interval_hours?: number;
|
|
4251
4277
|
/** @description Specialisms the agent declared in get_adcp_capabilities, from the latest run */
|
|
4252
4278
|
declared_specialisms?: string[];
|
|
4253
|
-
/** @description Per-specialism pass/fail/untested status — keyed on declared specialism, derived from the matching storyboard's status */
|
|
4279
|
+
/** @description Per-specialism pass/fail/untested status — keyed on declared specialism, derived from the matching storyboard's status. `not_applicable` means AdCP introduced the specialism after the compliance release this run graded, so it could not be tested. */
|
|
4254
4280
|
specialism_status?: {
|
|
4255
|
-
[key: string]: "passing" | "failing" | "untested" | "unknown";
|
|
4281
|
+
[key: string]: "passing" | "failing" | "untested" | "unknown" | "not_applicable";
|
|
4256
4282
|
};
|
|
4257
4283
|
eligibility?: components["schemas"]["ComplianceEligibility"];
|
|
4258
4284
|
/** @description Public per-storyboard verdicts and aggregate step counts. First-failure diagnostic fields are populated only for owners; scalar diagnostics are null and validation evidence is empty for other callers. */
|
|
@@ -4892,6 +4918,11 @@ export interface components {
|
|
|
4892
4918
|
*/
|
|
4893
4919
|
OrganizationRevenueTier: "under_1m" | "1m_5m" | "5m_50m" | "50m_250m" | "250m_1b" | "1b_plus";
|
|
4894
4920
|
ResolveResponse: {
|
|
4921
|
+
/**
|
|
4922
|
+
* @description Present for a non-persistent sandbox simulation. New property handles are ephemeral.
|
|
4923
|
+
* @enum {boolean}
|
|
4924
|
+
*/
|
|
4925
|
+
sandbox?: true;
|
|
4895
4926
|
resolved: components["schemas"]["ResolvedEntry"][];
|
|
4896
4927
|
summary: {
|
|
4897
4928
|
total: number;
|
|
@@ -4915,30 +4946,30 @@ export interface components {
|
|
|
4915
4946
|
CatalogIdentifier: {
|
|
4916
4947
|
/** @example domain */
|
|
4917
4948
|
type: string;
|
|
4918
|
-
/** @example
|
|
4949
|
+
/** @example streamhaus.com */
|
|
4919
4950
|
value: string;
|
|
4920
4951
|
};
|
|
4952
|
+
/** @description Up to 10,000 identifiers plus provenance. resolve requires authentication and contributes unknown identifiers; lookup is read-only. Domain/subdomain values must follow core/identifier.json; production rejects reserved test domains. sandbox: true simulates contributions without writes. */
|
|
4921
4953
|
ResolveRequest: {
|
|
4922
4954
|
/** @description Identifiers to resolve (and, in resolve mode, contribute). Max 10,000 per call for all callers. */
|
|
4923
4955
|
identifiers: components["schemas"]["CatalogIdentifier"][];
|
|
4924
4956
|
provenance: components["schemas"]["FactProvenance"];
|
|
4925
4957
|
/**
|
|
4926
|
-
* @description
|
|
4958
|
+
* @description resolve (default) contributes identifiers, creates missing catalog entries, and logs activity; authentication is required. lookup is a public read with no writes or activity logging.
|
|
4927
4959
|
* @default resolve
|
|
4928
4960
|
* @enum {string}
|
|
4929
4961
|
*/
|
|
4930
4962
|
mode: "resolve" | "lookup";
|
|
4963
|
+
/** @description Simulate contributions without storing properties, identifiers, facts, or activity. Reads existing catalog data; new handles are ephemeral. Reserved test domains are allowed only in sandbox mode. Defaults to false when omitted. */
|
|
4964
|
+
sandbox?: boolean;
|
|
4931
4965
|
};
|
|
4932
4966
|
FactProvenance: {
|
|
4933
4967
|
/**
|
|
4934
|
-
* @description How the caller knows these identifiers — the trust/audit envelope on the fact. Determines the confidence the catalog assigns.
|
|
4968
|
+
* @description How the caller knows these identifiers — the trust/audit envelope on the fact. Determines the confidence the catalog assigns. crawl is reserved for server-side pipelines; callers use the others.
|
|
4935
4969
|
* @enum {string}
|
|
4936
4970
|
*/
|
|
4937
4971
|
type: "agency_allowlist" | "publisher_declaration" | "impression_log" | "ssp_inventory" | "deal_history" | "crawl" | "data_partner" | "member_assertion";
|
|
4938
|
-
/**
|
|
4939
|
-
* @description Optional free-text annotation (campaign, dataset).
|
|
4940
|
-
* @example unilever_q3
|
|
4941
|
-
*/
|
|
4972
|
+
/** @description Optional free-text annotation (campaign, dataset). */
|
|
4942
4973
|
context?: string;
|
|
4943
4974
|
};
|
|
4944
4975
|
CatalogDisputeTriageResult: {
|
|
@@ -5731,6 +5762,11 @@ export interface operations {
|
|
|
5731
5762
|
"application/json": {
|
|
5732
5763
|
/** @example examplepub.com */
|
|
5733
5764
|
publisher_domain: string;
|
|
5765
|
+
/**
|
|
5766
|
+
* @description Validate and simulate a save without persisting it. Allows reserved test hostnames.
|
|
5767
|
+
* @default false
|
|
5768
|
+
*/
|
|
5769
|
+
sandbox?: boolean;
|
|
5734
5770
|
/**
|
|
5735
5771
|
* @description Ignored. Community-registry rows never assert sales authorization — the owner's origin adagents.json is the sole authorization source — so any value here is dropped and the stored document carries authorized_agents:[].
|
|
5736
5772
|
* @example []
|
|
@@ -5770,6 +5806,8 @@ export interface operations {
|
|
|
5770
5806
|
success: true;
|
|
5771
5807
|
message: string;
|
|
5772
5808
|
id: string;
|
|
5809
|
+
/** @enum {boolean} */
|
|
5810
|
+
sandbox?: true;
|
|
5773
5811
|
revision_number?: number;
|
|
5774
5812
|
};
|
|
5775
5813
|
};
|
|
@@ -8475,7 +8513,7 @@ export interface operations {
|
|
|
8475
8513
|
getAgentAuthorizations: {
|
|
8476
8514
|
parameters: {
|
|
8477
8515
|
query: {
|
|
8478
|
-
/** @description Agent URL to look up. Canonicalized server-side
|
|
8516
|
+
/** @description Agent URL to look up. Canonicalized server-side per AdCP URL canonicalization: the scheme and host fold, the path does not. */
|
|
8479
8517
|
agent_url: string;
|
|
8480
8518
|
/** @description `effective` (default) applies override layer; `raw` reads base table. */
|
|
8481
8519
|
include?: "raw" | "effective";
|
|
@@ -10954,6 +10992,8 @@ export interface operations {
|
|
|
10954
10992
|
}[];
|
|
10955
10993
|
}[];
|
|
10956
10994
|
total_storyboards: number;
|
|
10995
|
+
/** @description Declared specialisms AdCP introduced after this compliance release. They have no bundle to run here, so they are listed separately instead of failing resolution. */
|
|
10996
|
+
specialisms_not_applicable?: string[];
|
|
10957
10997
|
};
|
|
10958
10998
|
};
|
|
10959
10999
|
};
|
|
@@ -197,7 +197,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
|
|
|
197
197
|
semanticContractId: string;
|
|
198
198
|
semanticContractVersion: string;
|
|
199
199
|
semanticContractSha256: string;
|
|
200
|
-
status: "delayed" | "
|
|
200
|
+
status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
|
|
201
201
|
dataThrough?: string | undefined;
|
|
202
202
|
reason?: string | undefined;
|
|
203
203
|
}[];
|
|
@@ -209,7 +209,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
|
|
|
209
209
|
constituentId: string;
|
|
210
210
|
constituentKind: "product";
|
|
211
211
|
productId: string;
|
|
212
|
-
status: "delayed" | "
|
|
212
|
+
status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
|
|
213
213
|
packageId?: undefined;
|
|
214
214
|
mediaBuyId?: undefined;
|
|
215
215
|
productBinding?: undefined;
|
|
@@ -229,7 +229,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
|
|
|
229
229
|
bindingSha256: string;
|
|
230
230
|
productId: string;
|
|
231
231
|
};
|
|
232
|
-
status: "delayed" | "
|
|
232
|
+
status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
|
|
233
233
|
mediaBuyId?: undefined;
|
|
234
234
|
dataThrough?: string | undefined;
|
|
235
235
|
reason?: string | undefined;
|
|
@@ -247,7 +247,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
|
|
|
247
247
|
bindingSha256: string;
|
|
248
248
|
productId: string;
|
|
249
249
|
};
|
|
250
|
-
status: "delayed" | "
|
|
250
|
+
status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
|
|
251
251
|
packageId?: undefined;
|
|
252
252
|
dataThrough?: string | undefined;
|
|
253
253
|
reason?: string | undefined;
|
|
@@ -449,7 +449,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
|
|
|
449
449
|
semanticContractId: string;
|
|
450
450
|
semanticContractVersion: string;
|
|
451
451
|
semanticContractSha256: string;
|
|
452
|
-
status: "delayed" | "
|
|
452
|
+
status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
|
|
453
453
|
dataThrough?: string | undefined;
|
|
454
454
|
reason?: string | undefined;
|
|
455
455
|
}[];
|
|
@@ -461,7 +461,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
|
|
|
461
461
|
constituentId: string;
|
|
462
462
|
constituentKind: "product";
|
|
463
463
|
productId: string;
|
|
464
|
-
status: "delayed" | "
|
|
464
|
+
status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
|
|
465
465
|
packageId?: undefined;
|
|
466
466
|
mediaBuyId?: undefined;
|
|
467
467
|
productBinding?: undefined;
|
|
@@ -481,7 +481,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
|
|
|
481
481
|
bindingSha256: string;
|
|
482
482
|
productId: string;
|
|
483
483
|
};
|
|
484
|
-
status: "delayed" | "
|
|
484
|
+
status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
|
|
485
485
|
mediaBuyId?: undefined;
|
|
486
486
|
dataThrough?: string | undefined;
|
|
487
487
|
reason?: string | undefined;
|
|
@@ -499,7 +499,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
|
|
|
499
499
|
bindingSha256: string;
|
|
500
500
|
productId: string;
|
|
501
501
|
};
|
|
502
|
-
status: "delayed" | "
|
|
502
|
+
status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
|
|
503
503
|
packageId?: undefined;
|
|
504
504
|
dataThrough?: string | undefined;
|
|
505
505
|
reason?: string | undefined;
|