@adcp/sdk 12.1.1 → 13.0.0-rc.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/README.md +19 -3
- package/bin/adcp-fuzz.js +3 -1
- package/dist/lib/adapters/content-standards-adapter.d.mts +9 -9
- package/dist/lib/adapters/content-standards-adapter.d.ts +9 -9
- package/dist/lib/adapters/content-standards-adapter.d.ts.map +1 -1
- package/dist/lib/adapters/content-standards-adapter.js +22 -22
- package/dist/lib/adapters/content-standards-adapter.js.map +1 -1
- package/dist/lib/adapters/content-standards-adapter.mjs +18 -18
- package/dist/lib/adapters/content-standards-adapter.mjs.map +1 -1
- package/dist/lib/adapters/index.d.mts +2 -2
- package/dist/lib/adapters/index.d.ts +2 -2
- package/dist/lib/adapters/index.d.ts.map +1 -1
- package/dist/lib/adapters/index.js +10 -10
- package/dist/lib/adapters/index.js.map +1 -1
- package/dist/lib/adapters/index.mjs +9 -9
- package/dist/lib/adapters/index.mjs.map +1 -1
- package/dist/lib/auth/oauth/provider-cache.d.mts +7 -0
- package/dist/lib/auth/oauth/provider-cache.d.ts +8 -0
- package/dist/lib/auth/oauth/provider-cache.d.ts.map +1 -0
- package/dist/lib/auth/oauth/provider-cache.js +44 -0
- package/dist/lib/auth/oauth/provider-cache.js.map +1 -0
- package/dist/lib/auth/oauth/provider-cache.mjs +19 -0
- package/dist/lib/auth/oauth/provider-cache.mjs.map +1 -0
- package/dist/lib/conformance/invariants/uniformError.js +1 -1
- package/dist/lib/conformance/invariants/uniformError.js.map +1 -1
- package/dist/lib/conformance/invariants/uniformError.mjs +1 -1
- package/dist/lib/conformance/invariants/uniformError.mjs.map +1 -1
- package/dist/lib/conformance/runners.js +1 -1
- package/dist/lib/conformance/runners.js.map +1 -1
- package/dist/lib/conformance/runners.mjs +1 -1
- package/dist/lib/conformance/runners.mjs.map +1 -1
- package/dist/lib/conformance/seeder.js +5 -5
- package/dist/lib/conformance/seeder.js.map +1 -1
- package/dist/lib/conformance/seeder.mjs +5 -5
- package/dist/lib/conformance/seeder.mjs.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.d.mts +26 -29
- package/dist/lib/core/ADCPMultiAgentClient.d.ts +26 -29
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.js +27 -19
- package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.mjs +27 -19
- package/dist/lib/core/ADCPMultiAgentClient.mjs.map +1 -1
- package/dist/lib/core/AgentClient.d.mts +148 -138
- package/dist/lib/core/AgentClient.d.ts +148 -138
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/AgentClient.js +174 -85
- package/dist/lib/core/AgentClient.js.map +1 -1
- package/dist/lib/core/AgentClient.mjs +174 -85
- package/dist/lib/core/AgentClient.mjs.map +1 -1
- package/dist/lib/core/AsyncHandler.d.mts +18 -16
- package/dist/lib/core/AsyncHandler.d.ts +18 -16
- package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
- package/dist/lib/core/AsyncHandler.js +22 -1
- package/dist/lib/core/AsyncHandler.js.map +1 -1
- package/dist/lib/core/AsyncHandler.mjs +22 -1
- package/dist/lib/core/AsyncHandler.mjs.map +1 -1
- package/dist/lib/core/ConversationTypes.d.mts +6 -2
- package/dist/lib/core/ConversationTypes.d.ts +6 -2
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
- package/dist/lib/core/ConversationTypes.js.map +1 -1
- package/dist/lib/core/CreativeAgentClient.d.mts +41 -17
- package/dist/lib/core/CreativeAgentClient.d.ts +41 -17
- package/dist/lib/core/CreativeAgentClient.d.ts.map +1 -1
- package/dist/lib/core/CreativeAgentClient.js +39 -12
- package/dist/lib/core/CreativeAgentClient.js.map +1 -1
- package/dist/lib/core/CreativeAgentClient.mjs +39 -12
- package/dist/lib/core/CreativeAgentClient.mjs.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.mts +127 -50
- package/dist/lib/core/SingleAgentClient.d.ts +127 -50
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +1617 -177
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.mjs +1627 -177
- package/dist/lib/core/SingleAgentClient.mjs.map +1 -1
- package/dist/lib/core/TaskExecutor.d.mts +9 -0
- package/dist/lib/core/TaskExecutor.d.ts +9 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +136 -43
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/core/TaskExecutor.mjs +136 -43
- package/dist/lib/core/TaskExecutor.mjs.map +1 -1
- package/dist/lib/index.d.mts +111 -17
- package/dist/lib/index.d.ts +111 -17
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +94 -94
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +93 -94
- package/dist/lib/index.mjs.map +1 -1
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +6 -15
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/protocols/index.mjs +6 -16
- package/dist/lib/protocols/index.mjs.map +1 -1
- package/dist/lib/protocols/mcp-modern.d.ts.map +1 -1
- package/dist/lib/protocols/mcp-modern.js +87 -12
- package/dist/lib/protocols/mcp-modern.js.map +1 -1
- package/dist/lib/protocols/mcp-modern.mjs +89 -12
- package/dist/lib/protocols/mcp-modern.mjs.map +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +6 -0
- package/dist/lib/server/create-adcp-server.d.ts +6 -0
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +295 -48
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/create-adcp-server.mjs +301 -50
- package/dist/lib/server/create-adcp-server.mjs.map +1 -1
- package/dist/lib/server/decisioning/assembly-helpers.d.mts +27 -13
- package/dist/lib/server/decisioning/assembly-helpers.d.ts +27 -13
- package/dist/lib/server/decisioning/assembly-helpers.d.ts.map +1 -1
- package/dist/lib/server/decisioning/assembly-helpers.js +136 -14
- package/dist/lib/server/decisioning/assembly-helpers.js.map +1 -1
- package/dist/lib/server/decisioning/assembly-helpers.mjs +134 -13
- package/dist/lib/server/decisioning/assembly-helpers.mjs.map +1 -1
- package/dist/lib/server/decisioning/index.d.mts +13 -12
- package/dist/lib/server/decisioning/index.d.ts +13 -12
- package/dist/lib/server/decisioning/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.js +6 -0
- package/dist/lib/server/decisioning/index.js.map +1 -1
- package/dist/lib/server/decisioning/index.mjs +9 -3
- package/dist/lib/server/decisioning/index.mjs.map +1 -1
- package/dist/lib/server/decisioning/list-helpers.d.mts +13 -3
- package/dist/lib/server/decisioning/list-helpers.d.ts +13 -3
- package/dist/lib/server/decisioning/list-helpers.d.ts.map +1 -1
- package/dist/lib/server/decisioning/list-helpers.js +13 -3
- package/dist/lib/server/decisioning/list-helpers.js.map +1 -1
- package/dist/lib/server/decisioning/list-helpers.mjs +11 -2
- package/dist/lib/server/decisioning/list-helpers.mjs.map +1 -1
- package/dist/lib/server/decisioning/manifest-helpers.d.mts +5 -3
- package/dist/lib/server/decisioning/manifest-helpers.d.ts +5 -3
- package/dist/lib/server/decisioning/manifest-helpers.d.ts.map +1 -1
- package/dist/lib/server/decisioning/manifest-helpers.js.map +1 -1
- package/dist/lib/server/decisioning/manifest-helpers.mjs.map +1 -1
- package/dist/lib/server/decisioning/proposal/dispatch.d.mts +2 -2
- package/dist/lib/server/decisioning/proposal/dispatch.d.ts +2 -2
- package/dist/lib/server/decisioning/proposal/dispatch.d.ts.map +1 -1
- package/dist/lib/server/decisioning/proposal/dispatch.js.map +1 -1
- package/dist/lib/server/decisioning/proposal/dispatch.mjs.map +1 -1
- package/dist/lib/server/decisioning/proposal/index.d.mts +1 -1
- package/dist/lib/server/decisioning/proposal/index.d.ts +1 -1
- package/dist/lib/server/decisioning/proposal/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/proposal/index.js.map +1 -1
- package/dist/lib/server/decisioning/proposal/index.mjs.map +1 -1
- package/dist/lib/server/decisioning/proposal/lifecycle.d.mts +3 -2
- package/dist/lib/server/decisioning/proposal/lifecycle.d.ts +3 -2
- package/dist/lib/server/decisioning/proposal/lifecycle.d.ts.map +1 -1
- package/dist/lib/server/decisioning/proposal/lifecycle.js.map +1 -1
- package/dist/lib/server/decisioning/proposal/lifecycle.mjs.map +1 -1
- package/dist/lib/server/decisioning/proposal/mock-manager.d.mts +3 -3
- package/dist/lib/server/decisioning/proposal/mock-manager.d.ts +3 -3
- package/dist/lib/server/decisioning/proposal/mock-manager.d.ts.map +1 -1
- package/dist/lib/server/decisioning/proposal/mock-manager.js.map +1 -1
- package/dist/lib/server/decisioning/proposal/mock-manager.mjs.map +1 -1
- package/dist/lib/server/decisioning/proposal/types.d.mts +10 -6
- package/dist/lib/server/decisioning/proposal/types.d.ts +10 -6
- package/dist/lib/server/decisioning/proposal/types.d.ts.map +1 -1
- package/dist/lib/server/decisioning/proposal/types.js.map +1 -1
- package/dist/lib/server/decisioning/proposal/types.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.mts +21 -2
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts +21 -2
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +754 -81
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +763 -81
- package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
- package/dist/lib/server/decisioning/specialisms/brand-rights.d.mts +9 -9
- package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts +9 -9
- package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts.map +1 -1
- package/dist/lib/server/decisioning/specialisms/brand-rights.js.map +1 -1
- package/dist/lib/server/decisioning/specialisms/content-standards.d.mts +16 -16
- package/dist/lib/server/decisioning/specialisms/content-standards.d.ts +16 -16
- package/dist/lib/server/decisioning/specialisms/content-standards.d.ts.map +1 -1
- package/dist/lib/server/decisioning/specialisms/content-standards.js.map +1 -1
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.mts +15 -13
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts +15 -13
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts.map +1 -1
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.js.map +1 -1
- package/dist/lib/server/decisioning/specialisms/creative.d.mts +12 -11
- package/dist/lib/server/decisioning/specialisms/creative.d.ts +12 -11
- package/dist/lib/server/decisioning/specialisms/creative.d.ts.map +1 -1
- package/dist/lib/server/decisioning/specialisms/creative.js.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sales.d.mts +25 -15
- package/dist/lib/server/decisioning/specialisms/sales.d.ts +25 -15
- package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
- package/dist/lib/server/index.d.mts +3 -3
- package/dist/lib/server/index.d.ts +3 -3
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +72 -72
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/index.mjs +36 -36
- package/dist/lib/server/index.mjs.map +1 -1
- package/dist/lib/server/legacy/v5/index.d.mts +1 -0
- package/dist/lib/server/legacy/v5/index.d.ts +1 -0
- package/dist/lib/server/legacy/v5/index.d.ts.map +1 -1
- package/dist/lib/server/legacy/v5/index.js +74 -1
- package/dist/lib/server/legacy/v5/index.js.map +1 -1
- package/dist/lib/server/legacy/v5/index.mjs +75 -1
- package/dist/lib/server/legacy/v5/index.mjs.map +1 -1
- package/dist/lib/server/responses.d.mts +2 -2
- package/dist/lib/server/responses.d.ts +2 -2
- package/dist/lib/server/responses.js.map +1 -1
- package/dist/lib/server/responses.mjs.map +1 -1
- package/dist/lib/testing/client.js +1 -1
- package/dist/lib/testing/client.js.map +1 -1
- package/dist/lib/testing/client.mjs +1 -1
- package/dist/lib/testing/client.mjs.map +1 -1
- package/dist/lib/testing/scenarios/brand-rights.js +6 -6
- package/dist/lib/testing/scenarios/brand-rights.js.map +1 -1
- package/dist/lib/testing/scenarios/brand-rights.mjs +6 -6
- package/dist/lib/testing/scenarios/brand-rights.mjs.map +1 -1
- package/dist/lib/testing/scenarios/creative.js +7 -7
- package/dist/lib/testing/scenarios/creative.js.map +1 -1
- package/dist/lib/testing/scenarios/creative.mjs +7 -7
- package/dist/lib/testing/scenarios/creative.mjs.map +1 -1
- package/dist/lib/testing/scenarios/discovery.js +2 -2
- package/dist/lib/testing/scenarios/discovery.js.map +1 -1
- package/dist/lib/testing/scenarios/discovery.mjs +2 -2
- package/dist/lib/testing/scenarios/discovery.mjs.map +1 -1
- package/dist/lib/testing/scenarios/edge-cases.js +11 -11
- package/dist/lib/testing/scenarios/edge-cases.js.map +1 -1
- package/dist/lib/testing/scenarios/edge-cases.mjs +11 -11
- package/dist/lib/testing/scenarios/edge-cases.mjs.map +1 -1
- package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/governance.js +16 -22
- package/dist/lib/testing/scenarios/governance.js.map +1 -1
- package/dist/lib/testing/scenarios/governance.mjs +16 -22
- package/dist/lib/testing/scenarios/governance.mjs.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.js +5 -5
- package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.mjs +5 -5
- package/dist/lib/testing/scenarios/media-buy.mjs.map +1 -1
- package/dist/lib/testing/scenarios/schema-compliance.js +1 -1
- package/dist/lib/testing/scenarios/schema-compliance.js.map +1 -1
- package/dist/lib/testing/scenarios/schema-compliance.mjs +1 -1
- package/dist/lib/testing/scenarios/schema-compliance.mjs.map +1 -1
- package/dist/lib/testing/scenarios/trusted-match.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/trusted-match.js +4 -3
- package/dist/lib/testing/scenarios/trusted-match.js.map +1 -1
- package/dist/lib/testing/scenarios/trusted-match.mjs +4 -3
- package/dist/lib/testing/scenarios/trusted-match.mjs.map +1 -1
- package/dist/lib/testing/storyboard/shape-drift-hints.d.mts +3 -4
- package/dist/lib/testing/storyboard/shape-drift-hints.d.ts +3 -4
- package/dist/lib/testing/storyboard/shape-drift-hints.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/shape-drift-hints.js +27 -27
- package/dist/lib/testing/storyboard/shape-drift-hints.js.map +1 -1
- package/dist/lib/testing/storyboard/shape-drift-hints.mjs +27 -27
- package/dist/lib/testing/storyboard/shape-drift-hints.mjs.map +1 -1
- package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/task-map.js +43 -5
- package/dist/lib/testing/storyboard/task-map.js.map +1 -1
- package/dist/lib/testing/storyboard/task-map.mjs +43 -5
- package/dist/lib/testing/storyboard/task-map.mjs.map +1 -1
- package/dist/lib/testing/test-helpers.d.mts +2 -2
- package/dist/lib/testing/test-helpers.d.ts +2 -2
- package/dist/lib/testing/test-helpers.js.map +1 -1
- package/dist/lib/testing/test-helpers.mjs.map +1 -1
- package/dist/lib/types/adcp.d.mts +14 -14
- package/dist/lib/types/adcp.d.ts +14 -14
- package/dist/lib/types/adcp.d.ts.map +1 -1
- package/dist/lib/types/adcp.js.map +1 -1
- package/dist/lib/types/adcp.mjs.map +1 -1
- package/dist/lib/types/index.d.mts +2 -2
- package/dist/lib/types/index.d.ts +2 -2
- package/dist/lib/types/index.d.ts.map +1 -1
- package/dist/lib/types/index.js.map +1 -1
- package/dist/lib/types/index.mjs.map +1 -1
- package/dist/lib/utils/capabilities.d.mts +6 -0
- package/dist/lib/utils/capabilities.d.ts +6 -0
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +4 -0
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/dist/lib/utils/capabilities.mjs +4 -0
- package/dist/lib/utils/capabilities.mjs.map +1 -1
- package/dist/lib/utils/creative-delivery.d.mts +52 -10
- package/dist/lib/utils/creative-delivery.d.ts +52 -10
- package/dist/lib/utils/creative-delivery.d.ts.map +1 -1
- package/dist/lib/utils/creative-delivery.js +104 -9
- package/dist/lib/utils/creative-delivery.js.map +1 -1
- package/dist/lib/utils/creative-delivery.mjs +104 -8
- package/dist/lib/utils/creative-delivery.mjs.map +1 -1
- package/dist/lib/utils/format-assets.d.mts +41 -38
- package/dist/lib/utils/format-assets.d.ts +41 -38
- package/dist/lib/utils/format-assets.d.ts.map +1 -1
- package/dist/lib/utils/format-assets.js +3 -1
- package/dist/lib/utils/format-assets.js.map +1 -1
- package/dist/lib/utils/format-assets.mjs +3 -1
- package/dist/lib/utils/format-assets.mjs.map +1 -1
- package/dist/lib/utils/index.d.mts +8 -8
- package/dist/lib/utils/index.d.ts +8 -8
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +11 -9
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/index.mjs +9 -8
- package/dist/lib/utils/index.mjs.map +1 -1
- package/dist/lib/utils/preview-utils.d.mts +11 -8
- package/dist/lib/utils/preview-utils.d.ts +11 -8
- package/dist/lib/utils/preview-utils.d.ts.map +1 -1
- package/dist/lib/utils/preview-utils.js +4 -4
- package/dist/lib/utils/preview-utils.js.map +1 -1
- package/dist/lib/utils/preview-utils.mjs +3 -3
- package/dist/lib/utils/preview-utils.mjs.map +1 -1
- package/dist/lib/utils/tool-request-schemas.d.mts +2 -2
- package/dist/lib/utils/tool-request-schemas.d.ts +2 -2
- package/dist/lib/v2/projection/aao-reference-formats.json +492 -0
- package/dist/lib/v2/projection/augment-response.d.mts +31 -11
- package/dist/lib/v2/projection/augment-response.d.ts +31 -11
- package/dist/lib/v2/projection/augment-response.d.ts.map +1 -1
- package/dist/lib/v2/projection/augment-response.js +233 -27
- package/dist/lib/v2/projection/augment-response.js.map +1 -1
- package/dist/lib/v2/projection/augment-response.mjs +232 -27
- package/dist/lib/v2/projection/augment-response.mjs.map +1 -1
- package/dist/lib/v2/projection/builders.d.mts +7 -6
- package/dist/lib/v2/projection/builders.d.ts +7 -6
- package/dist/lib/v2/projection/builders.d.ts.map +1 -1
- package/dist/lib/v2/projection/builders.js +11 -8
- package/dist/lib/v2/projection/builders.js.map +1 -1
- package/dist/lib/v2/projection/builders.mjs +9 -6
- package/dist/lib/v2/projection/builders.mjs.map +1 -1
- package/dist/lib/v2/projection/catalog-snapshot.d.mts +47 -0
- package/dist/lib/v2/projection/catalog-snapshot.d.ts +48 -0
- package/dist/lib/v2/projection/catalog-snapshot.d.ts.map +1 -0
- package/dist/lib/v2/projection/catalog-snapshot.js +291 -0
- package/dist/lib/v2/projection/catalog-snapshot.js.map +1 -0
- package/dist/lib/v2/projection/catalog-snapshot.mjs +265 -0
- package/dist/lib/v2/projection/catalog-snapshot.mjs.map +1 -0
- package/dist/lib/v2/projection/catalog.d.mts +23 -2
- package/dist/lib/v2/projection/catalog.d.ts +23 -2
- package/dist/lib/v2/projection/catalog.d.ts.map +1 -1
- package/dist/lib/v2/projection/catalog.js +34 -10
- package/dist/lib/v2/projection/catalog.js.map +1 -1
- package/dist/lib/v2/projection/catalog.mjs +33 -10
- package/dist/lib/v2/projection/catalog.mjs.map +1 -1
- package/dist/lib/v2/projection/creative-delivery.d.mts +157 -0
- package/dist/lib/v2/projection/creative-delivery.d.ts +158 -0
- package/dist/lib/v2/projection/creative-delivery.d.ts.map +1 -0
- package/dist/lib/v2/projection/creative-delivery.js +967 -0
- package/dist/lib/v2/projection/creative-delivery.js.map +1 -0
- package/dist/lib/v2/projection/creative-delivery.mjs +941 -0
- package/dist/lib/v2/projection/creative-delivery.mjs.map +1 -0
- package/dist/lib/v2/projection/index.d.mts +8 -6
- package/dist/lib/v2/projection/index.d.ts +8 -6
- package/dist/lib/v2/projection/index.d.ts.map +1 -1
- package/dist/lib/v2/projection/index.js +26 -4
- package/dist/lib/v2/projection/index.js.map +1 -1
- package/dist/lib/v2/projection/index.mjs +28 -4
- package/dist/lib/v2/projection/index.mjs.map +1 -1
- package/dist/lib/v2/projection/legacy-metadata.d.mts +21 -0
- package/dist/lib/v2/projection/legacy-metadata.d.ts +22 -0
- package/dist/lib/v2/projection/legacy-metadata.d.ts.map +1 -0
- package/dist/lib/v2/projection/legacy-metadata.js +73 -0
- package/dist/lib/v2/projection/legacy-metadata.js.map +1 -0
- package/dist/lib/v2/projection/legacy-metadata.mjs +45 -0
- package/dist/lib/v2/projection/legacy-metadata.mjs.map +1 -0
- package/dist/lib/v2/projection/types.d.mts +29 -23
- package/dist/lib/v2/projection/types.d.ts +29 -23
- package/dist/lib/v2/projection/types.d.ts.map +1 -1
- package/dist/lib/v2/projection/types.js.map +1 -1
- package/dist/lib/v2/projection/v1-to-v2.d.mts +29 -6
- package/dist/lib/v2/projection/v1-to-v2.d.ts +29 -6
- package/dist/lib/v2/projection/v1-to-v2.d.ts.map +1 -1
- package/dist/lib/v2/projection/v1-to-v2.js +218 -9
- package/dist/lib/v2/projection/v1-to-v2.js.map +1 -1
- package/dist/lib/v2/projection/v1-to-v2.mjs +219 -10
- package/dist/lib/v2/projection/v1-to-v2.mjs.map +1 -1
- package/dist/lib/v2/projection/v2-to-v1.d.mts +31 -2
- package/dist/lib/v2/projection/v2-to-v1.d.ts +31 -2
- package/dist/lib/v2/projection/v2-to-v1.d.ts.map +1 -1
- package/dist/lib/v2/projection/v2-to-v1.js +138 -7
- package/dist/lib/v2/projection/v2-to-v1.js.map +1 -1
- package/dist/lib/v2/projection/v2-to-v1.mjs +135 -6
- package/dist/lib/v2/projection/v2-to-v1.mjs.map +1 -1
- package/dist/lib/v2/projection/write-side.d.mts +12 -13
- package/dist/lib/v2/projection/write-side.d.ts +12 -13
- package/dist/lib/v2/projection/write-side.d.ts.map +1 -1
- package/dist/lib/v2/projection/write-side.js +16 -12
- package/dist/lib/v2/projection/write-side.js.map +1 -1
- package/dist/lib/v2/projection/write-side.mjs +16 -12
- package/dist/lib/v2/projection/write-side.mjs.map +1 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.js.map +1 -1
- package/dist/lib/version.mjs +3 -3
- package/dist/lib/version.mjs.map +1 -1
- package/docs/guides/BUILD-AN-AGENT.md +7 -2
- package/docs/guides/PREVIEW-ASSET-DURABILITY.md +6 -2
- package/docs/llms.txt +1 -0
- package/examples/README.md +1 -1
- package/examples/batch-preview-test.ts +3 -3
- package/examples/conversation-client.ts +2 -2
- package/examples/debug-preview-response.ts +1 -1
- package/examples/decisioning-platform-broadcast-tv.ts +10 -4
- package/examples/decisioning-platform-mock-seller.ts +16 -9
- package/examples/decisioning-platform-programmatic.ts +18 -7
- package/examples/error-compliant-server.ts +26 -16
- package/examples/generative-creative-demo.ts +7 -19
- package/examples/hello_creative_adapter_ad_server.ts +37 -16
- package/examples/hello_creative_adapter_template.ts +12 -10
- package/examples/hello_seller_adapter_guaranteed.ts +52 -23
- package/examples/hello_seller_adapter_multi_tenant.ts +6 -3
- package/examples/hello_seller_adapter_non_guaranteed.ts +54 -26
- package/examples/hello_seller_adapter_proposal_mode.ts +40 -14
- package/examples/hello_seller_adapter_social.ts +2 -7
- package/examples/inspect-card-formats.ts +1 -1
- package/examples/simple-getting-started.ts +1 -1
- package/examples/test-helpers-demo.ts +1 -1
- package/package.json +2 -2
- package/skills/build-decisioning-creative-template/SKILL.md +11 -11
- package/skills/build-decisioning-platform/advanced/REFERENCE.md +8 -2
|
@@ -1078,6 +1078,127 @@ function buildSupportedVersionsList(capConfig, serverPin) {
|
|
|
1078
1078
|
const pinMajor = (0, import_version.parseAdcpMajorVersion)(serverPin);
|
|
1079
1079
|
return Number.isFinite(pinMajor) ? [String(pinMajor)] : [];
|
|
1080
1080
|
}
|
|
1081
|
+
function isMcpToolResponse(value) {
|
|
1082
|
+
return Array.isArray(value.content);
|
|
1083
|
+
}
|
|
1084
|
+
function parseAdcpRelease(value) {
|
|
1085
|
+
if (typeof value !== "string") return void 0;
|
|
1086
|
+
let wire;
|
|
1087
|
+
try {
|
|
1088
|
+
wire = (0, import_version.toReleasePrecisionVersion)(value);
|
|
1089
|
+
} catch {
|
|
1090
|
+
return void 0;
|
|
1091
|
+
}
|
|
1092
|
+
const match = /^v?(\d+)\.(\d+)(?:-([a-zA-Z0-9.-]+))?$/.exec(wire);
|
|
1093
|
+
if (!match) return void 0;
|
|
1094
|
+
return {
|
|
1095
|
+
major: Number(match[1]),
|
|
1096
|
+
minor: Number(match[2]),
|
|
1097
|
+
...match[3] !== void 0 && { prerelease: match[3] },
|
|
1098
|
+
value: wire
|
|
1099
|
+
};
|
|
1100
|
+
}
|
|
1101
|
+
function compareAdcpRelease(left, right) {
|
|
1102
|
+
if (left.major !== right.major) return left.major - right.major;
|
|
1103
|
+
if (left.minor !== right.minor) return left.minor - right.minor;
|
|
1104
|
+
if (left.prerelease === right.prerelease) return 0;
|
|
1105
|
+
if (left.prerelease === void 0) return 1;
|
|
1106
|
+
if (right.prerelease === void 0) return -1;
|
|
1107
|
+
const leftParts = left.prerelease.split(".");
|
|
1108
|
+
const rightParts = right.prerelease.split(".");
|
|
1109
|
+
for (let index = 0; index < Math.max(leftParts.length, rightParts.length); index += 1) {
|
|
1110
|
+
const leftPart = leftParts[index];
|
|
1111
|
+
const rightPart = rightParts[index];
|
|
1112
|
+
if (leftPart === void 0) return -1;
|
|
1113
|
+
if (rightPart === void 0) return 1;
|
|
1114
|
+
if (leftPart === rightPart) continue;
|
|
1115
|
+
const leftNumeric = /^\d+$/.test(leftPart);
|
|
1116
|
+
const rightNumeric = /^\d+$/.test(rightPart);
|
|
1117
|
+
if (leftNumeric && rightNumeric) return Number(leftPart) - Number(rightPart);
|
|
1118
|
+
if (leftNumeric !== rightNumeric) return leftNumeric ? -1 : 1;
|
|
1119
|
+
return leftPart.localeCompare(rightPart);
|
|
1120
|
+
}
|
|
1121
|
+
return 0;
|
|
1122
|
+
}
|
|
1123
|
+
let bundledCompatibleReleases;
|
|
1124
|
+
function bundledReleasesForMajors(majors, configured) {
|
|
1125
|
+
const acceptedMajors = new Set(majors);
|
|
1126
|
+
const releases = /* @__PURE__ */ new Map();
|
|
1127
|
+
bundledCompatibleReleases ??= import_version.COMPATIBLE_ADCP_VERSIONS.flatMap((version) => {
|
|
1128
|
+
if (!(0, import_schema_loader.hasSchemaBundle)(version)) return [];
|
|
1129
|
+
const parsed = parseAdcpRelease(version);
|
|
1130
|
+
return parsed ? [parsed] : [];
|
|
1131
|
+
});
|
|
1132
|
+
for (const parsed of bundledCompatibleReleases) {
|
|
1133
|
+
if (!acceptedMajors.has(parsed.major) || compareAdcpRelease(parsed, configured) > 0) continue;
|
|
1134
|
+
const key = `${parsed.major}.${parsed.minor}${parsed.prerelease ? `-${parsed.prerelease}` : ""}`;
|
|
1135
|
+
const existing = releases.get(key);
|
|
1136
|
+
if (!existing || parsed.value.startsWith("v")) releases.set(key, parsed);
|
|
1137
|
+
}
|
|
1138
|
+
return [...releases.values()];
|
|
1139
|
+
}
|
|
1140
|
+
function selectServedAdcpRelease(params, capConfig, serverPin) {
|
|
1141
|
+
const configured = parseAdcpRelease(serverPin);
|
|
1142
|
+
if (!configured) {
|
|
1143
|
+
return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1144
|
+
message: `Configured AdCP release ${JSON.stringify(serverPin)} is invalid.`,
|
|
1145
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
|
|
1146
|
+
});
|
|
1147
|
+
}
|
|
1148
|
+
const advertisedValues = capConfig?.supported_versions?.length ? capConfig.supported_versions : void 0;
|
|
1149
|
+
const advertised = advertisedValues ? advertisedValues.map(parseAdcpRelease) : capConfig?.major_versions?.length ? bundledReleasesForMajors(capConfig.major_versions, configured) : [configured];
|
|
1150
|
+
if (advertised.some((value) => value === void 0)) {
|
|
1151
|
+
return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1152
|
+
message: "Seller capabilities contain an invalid supported_versions release.",
|
|
1153
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
|
|
1154
|
+
});
|
|
1155
|
+
}
|
|
1156
|
+
const supported = advertised.filter(
|
|
1157
|
+
(candidate) => compareAdcpRelease(candidate, configured) <= 0
|
|
1158
|
+
);
|
|
1159
|
+
if (supported.length === 0) {
|
|
1160
|
+
return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1161
|
+
message: "Seller capabilities do not include a release this server can serve.",
|
|
1162
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
|
|
1163
|
+
});
|
|
1164
|
+
}
|
|
1165
|
+
const requestedVersion = params.adcp_version;
|
|
1166
|
+
const requestedMajorRaw = params.adcp_major_version;
|
|
1167
|
+
const requestedMajor = typeof requestedMajorRaw === "number" ? requestedMajorRaw : typeof requestedMajorRaw === "string" ? Number.parseInt(requestedMajorRaw, 10) : void 0;
|
|
1168
|
+
let selected;
|
|
1169
|
+
if (requestedVersion !== void 0) {
|
|
1170
|
+
const requested = parseAdcpRelease(requestedVersion);
|
|
1171
|
+
if (!requested) {
|
|
1172
|
+
return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1173
|
+
message: `Request carries invalid adcp_version=${JSON.stringify(requestedVersion)}.`,
|
|
1174
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
|
|
1175
|
+
});
|
|
1176
|
+
}
|
|
1177
|
+
if (requestedMajor !== void 0 && Number.isFinite(requestedMajor) && requestedMajor !== requested.major) {
|
|
1178
|
+
return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1179
|
+
message: `Request carries adcp_version=${JSON.stringify(requestedVersion)} (major ${requested.major}) and adcp_major_version=${JSON.stringify(requestedMajorRaw)}; majors must agree.`,
|
|
1180
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
|
|
1181
|
+
});
|
|
1182
|
+
}
|
|
1183
|
+
selected = supported.filter((candidate) => candidate.major === requested.major && compareAdcpRelease(candidate, requested) <= 0).sort((left, right) => compareAdcpRelease(right, left))[0];
|
|
1184
|
+
} else if (requestedMajor !== void 0 && Number.isFinite(requestedMajor)) {
|
|
1185
|
+
selected = supported.filter((candidate) => candidate.major === requestedMajor).sort(compareAdcpRelease)[0];
|
|
1186
|
+
} else {
|
|
1187
|
+
selected = [...supported].sort((left, right) => compareAdcpRelease(right, left))[0];
|
|
1188
|
+
}
|
|
1189
|
+
if (!selected) {
|
|
1190
|
+
const claim = requestedVersion !== void 0 ? `adcp_version=${JSON.stringify(requestedVersion)}` : requestedMajorRaw !== void 0 ? `adcp_major_version=${JSON.stringify(requestedMajorRaw)} (major ${String(requestedMajor)})` : "no AdCP version";
|
|
1191
|
+
return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1192
|
+
message: `Request claims ${claim}; no mutually supported AdCP release is available.`,
|
|
1193
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
|
|
1194
|
+
});
|
|
1195
|
+
}
|
|
1196
|
+
const validationVersion = selected.value;
|
|
1197
|
+
return {
|
|
1198
|
+
validationVersion,
|
|
1199
|
+
...(0, import_protocols.bundleSupportsAdcpVersionField)((0, import_schema_loader.resolveBundleKey)(validationVersion)) && { wireVersion: validationVersion }
|
|
1200
|
+
};
|
|
1201
|
+
}
|
|
1081
1202
|
function createAdcpServer(config) {
|
|
1082
1203
|
const {
|
|
1083
1204
|
name,
|
|
@@ -1303,43 +1424,42 @@ function createAdcpServer(config) {
|
|
|
1303
1424
|
responseEnhancer?.(response);
|
|
1304
1425
|
return response;
|
|
1305
1426
|
};
|
|
1427
|
+
const requestServedRelease = (params) => {
|
|
1428
|
+
const selected = selectServedAdcpRelease(params, capConfig, adcpVersion);
|
|
1429
|
+
return isMcpToolResponse(selected) ? void 0 : selected;
|
|
1430
|
+
};
|
|
1431
|
+
const releaseDefinesTool = (toolName, release) => {
|
|
1432
|
+
try {
|
|
1433
|
+
return (0, import_schema_loader.getValidator)(toolName, "request", release.validationVersion) !== void 0;
|
|
1434
|
+
} catch {
|
|
1435
|
+
return false;
|
|
1436
|
+
}
|
|
1437
|
+
};
|
|
1306
1438
|
const finalizeProtocolTaskToolResponse = (toolName, params, response, opts = {}) => {
|
|
1439
|
+
const release = requestServedRelease(params) ?? {
|
|
1440
|
+
validationVersion: adcpVersion,
|
|
1441
|
+
...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
|
|
1442
|
+
};
|
|
1307
1443
|
sanitizeAdcpErrorEnvelope(response);
|
|
1308
|
-
enrichErrorTwoLayer(response, toolName,
|
|
1444
|
+
enrichErrorTwoLayer(response, toolName, (0, import_error_arm_tools.getToolsWithErrorArm)(release.validationVersion));
|
|
1309
1445
|
if (!isErrorResponse(response)) {
|
|
1310
1446
|
normalizeMediaBuyStatusCollision(response, toolName);
|
|
1311
1447
|
injectEnvelopeStatusIntoResponse(response);
|
|
1312
|
-
const validationError = protocolTaskResponseValidationError(toolName, response);
|
|
1448
|
+
const validationError = protocolTaskResponseValidationError(toolName, response, params);
|
|
1313
1449
|
if (validationError) return finalizeProtocolTaskToolResponse(toolName, params, validationError, opts);
|
|
1314
1450
|
}
|
|
1315
1451
|
if (opts.echoContext !== false) injectContextIntoResponse(response, params.context);
|
|
1316
|
-
injectVersionIntoResponse(response,
|
|
1452
|
+
injectVersionIntoResponse(response, release.wireVersion);
|
|
1317
1453
|
return applyResponseEnhancer(response);
|
|
1318
1454
|
};
|
|
1319
|
-
const unsupportedVersionResponse = (params) => {
|
|
1320
|
-
const
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
message: `Request carries adcp_version="${reqAdcpVersion}" (major ${stringMajor}) and adcp_major_version=${JSON.stringify(reqAdcpMajorRaw)}; majors must agree.`,
|
|
1328
|
-
details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
|
|
1329
|
-
});
|
|
1330
|
-
}
|
|
1331
|
-
}
|
|
1332
|
-
const effectiveReqMajor = reqAdcpMajor !== void 0 && Number.isFinite(reqAdcpMajor) ? reqAdcpMajor : typeof reqAdcpVersion === "string" ? (0, import_version.parseAdcpMajorVersion)(reqAdcpVersion) : void 0;
|
|
1333
|
-
if (effectiveReqMajor !== void 0 && Number.isFinite(effectiveReqMajor)) {
|
|
1334
|
-
const supportedMajors = getAdvertisedSupportedMajors(capConfig, adcpVersion);
|
|
1335
|
-
if (!supportedMajors.has(effectiveReqMajor)) {
|
|
1336
|
-
const claimed = typeof reqAdcpVersion === "string" ? `adcp_version="${reqAdcpVersion}"` : `adcp_major_version=${JSON.stringify(reqAdcpMajorRaw)}`;
|
|
1337
|
-
const supportedList = [...supportedMajors].sort((a, b) => a - b).join(", ");
|
|
1338
|
-
return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1339
|
-
message: `Request claims ${claimed} (major ${effectiveReqMajor}); this seller supports major ${supportedList}.`,
|
|
1340
|
-
details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
|
|
1341
|
-
});
|
|
1342
|
-
}
|
|
1455
|
+
const unsupportedVersionResponse = (toolName, params) => {
|
|
1456
|
+
const selected = selectServedAdcpRelease(params, capConfig, adcpVersion);
|
|
1457
|
+
if (isMcpToolResponse(selected)) return selected;
|
|
1458
|
+
if (!releaseDefinesTool(toolName, selected)) {
|
|
1459
|
+
return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1460
|
+
message: `${toolName} is not defined in the selected AdCP release ${selected.validationVersion}.`,
|
|
1461
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
|
|
1462
|
+
});
|
|
1343
1463
|
}
|
|
1344
1464
|
return void 0;
|
|
1345
1465
|
};
|
|
@@ -1358,7 +1478,7 @@ function createAdcpServer(config) {
|
|
|
1358
1478
|
};
|
|
1359
1479
|
const protocolTaskRequestValidationError = (toolName, params) => {
|
|
1360
1480
|
const accountIssues = protocolTaskAccountExtensionIssues(params);
|
|
1361
|
-
const outcome = requestValidationMode === "off" ? { valid: true, issues: [], schemaId: void 0 } : (0, import_schema_validator.validateRequest)(toolName, params, adcpVersion);
|
|
1481
|
+
const outcome = requestValidationMode === "off" ? { valid: true, issues: [], schemaId: void 0 } : (0, import_schema_validator.validateRequest)(toolName, params, requestServedRelease(params)?.validationVersion ?? adcpVersion);
|
|
1362
1482
|
const issues = [...outcome.valid ? [] : outcome.issues, ...accountIssues];
|
|
1363
1483
|
if (issues.length === 0) return void 0;
|
|
1364
1484
|
if (requestValidationMode === "strict" || accountIssues.length > 0) {
|
|
@@ -1379,9 +1499,13 @@ function createAdcpServer(config) {
|
|
|
1379
1499
|
);
|
|
1380
1500
|
return void 0;
|
|
1381
1501
|
};
|
|
1382
|
-
const protocolTaskResponseValidationError = (toolName, response) => {
|
|
1502
|
+
const protocolTaskResponseValidationError = (toolName, response, params = {}) => {
|
|
1383
1503
|
if (responseValidationMode === "off") return void 0;
|
|
1384
|
-
const outcome = (0, import_schema_validator.validateResponse)(
|
|
1504
|
+
const outcome = (0, import_schema_validator.validateResponse)(
|
|
1505
|
+
toolName,
|
|
1506
|
+
response.structuredContent,
|
|
1507
|
+
requestServedRelease(params)?.validationVersion ?? adcpVersion
|
|
1508
|
+
);
|
|
1385
1509
|
if (outcome.valid) return void 0;
|
|
1386
1510
|
logger.warn(
|
|
1387
1511
|
`Schema validation warning (response) for ${toolName}: ${(0, import_schema_validator.formatIssues)(outcome.issues, 3, { rootSchemaId: outcome.schemaId })}`,
|
|
@@ -1631,7 +1755,23 @@ function createAdcpServer(config) {
|
|
|
1631
1755
|
const hasAccount = "account" in schema.shape;
|
|
1632
1756
|
const wrap = meta?.wrap ?? ((data, summary) => genericResponse(toolName, data, summary));
|
|
1633
1757
|
const toolHandler = async (params, extra) => {
|
|
1634
|
-
const
|
|
1758
|
+
const releaseSelection = selectServedAdcpRelease(params, capConfig, adcpVersion);
|
|
1759
|
+
let releaseError;
|
|
1760
|
+
let requestRelease;
|
|
1761
|
+
if (isMcpToolResponse(releaseSelection)) {
|
|
1762
|
+
releaseError = releaseSelection;
|
|
1763
|
+
requestRelease = {
|
|
1764
|
+
validationVersion: adcpVersion,
|
|
1765
|
+
...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
|
|
1766
|
+
};
|
|
1767
|
+
} else {
|
|
1768
|
+
requestRelease = releaseSelection;
|
|
1769
|
+
}
|
|
1770
|
+
const requestErrorArms = (0, import_error_arm_tools.getToolsWithErrorArm)(requestRelease.validationVersion);
|
|
1771
|
+
const ctx = {
|
|
1772
|
+
store: stateStore,
|
|
1773
|
+
servedAdcpVersion: requestRelease.validationVersion
|
|
1774
|
+
};
|
|
1635
1775
|
if (extra?.authInfo) {
|
|
1636
1776
|
ctx.authInfo = extra.authInfo;
|
|
1637
1777
|
const authInfo = ctx.authInfo;
|
|
@@ -1645,13 +1785,22 @@ function createAdcpServer(config) {
|
|
|
1645
1785
|
if (webhookEmitter) ctx.emitWebhook = webhookEmitter.emit.bind(webhookEmitter);
|
|
1646
1786
|
const finalize = (response) => {
|
|
1647
1787
|
sanitizeAdcpErrorEnvelope(response);
|
|
1648
|
-
enrichErrorTwoLayer(response, toolName,
|
|
1788
|
+
enrichErrorTwoLayer(response, toolName, requestErrorArms);
|
|
1649
1789
|
normalizeMediaBuyStatusCollision(response, toolName);
|
|
1650
1790
|
injectEnvelopeStatusIntoResponse(response);
|
|
1651
1791
|
injectContextIntoResponse(response, params.context);
|
|
1652
|
-
injectVersionIntoResponse(response,
|
|
1792
|
+
injectVersionIntoResponse(response, requestRelease.wireVersion);
|
|
1653
1793
|
return applyResponseEnhancer(response);
|
|
1654
1794
|
};
|
|
1795
|
+
if (releaseError) return finalize(releaseError);
|
|
1796
|
+
if (!releaseDefinesTool(toolName, requestRelease)) {
|
|
1797
|
+
return finalize(
|
|
1798
|
+
(0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
1799
|
+
message: `${toolName} is not defined in the selected AdCP release ${requestRelease.validationVersion}.`,
|
|
1800
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
|
|
1801
|
+
})
|
|
1802
|
+
);
|
|
1803
|
+
}
|
|
1655
1804
|
if (agentRegistry !== void 0) {
|
|
1656
1805
|
try {
|
|
1657
1806
|
const resolved = await agentRegistry.resolve({
|
|
@@ -1755,7 +1904,7 @@ function createAdcpServer(config) {
|
|
|
1755
1904
|
}
|
|
1756
1905
|
}
|
|
1757
1906
|
if (requestValidationMode !== "off") {
|
|
1758
|
-
const outcome = (0, import_schema_validator.validateRequest)(toolName, params,
|
|
1907
|
+
const outcome = (0, import_schema_validator.validateRequest)(toolName, params, requestRelease.validationVersion);
|
|
1759
1908
|
if (!outcome.valid) {
|
|
1760
1909
|
const issues = idempotencyDisabled && toolIsMutating ? outcome.issues.filter((i) => !(i.keyword === "required" && i.pointer === "/idempotency_key")) : outcome.issues;
|
|
1761
1910
|
if (issues.length > 0) {
|
|
@@ -2370,7 +2519,7 @@ function createAdcpServer(config) {
|
|
|
2370
2519
|
}
|
|
2371
2520
|
if (responseValidationMode !== "off" && !isErrorResponse(formatted)) {
|
|
2372
2521
|
const payload = formatted.structuredContent;
|
|
2373
|
-
const outcome = (0, import_schema_validator.validateResponse)(toolName, payload,
|
|
2522
|
+
const outcome = (0, import_schema_validator.validateResponse)(toolName, payload, requestRelease.validationVersion);
|
|
2374
2523
|
if (!outcome.valid) {
|
|
2375
2524
|
logger.warn(
|
|
2376
2525
|
`Schema validation warning (response) for ${toolName}: ${(0, import_schema_validator.formatIssues)(outcome.issues, 3, { rootSchemaId: outcome.schemaId })}`,
|
|
@@ -2538,7 +2687,7 @@ function createAdcpServer(config) {
|
|
|
2538
2687
|
if (validationError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, validationError);
|
|
2539
2688
|
const boundsError = protocolTaskBoundsError("get_task_status", params ?? {});
|
|
2540
2689
|
if (boundsError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, boundsError);
|
|
2541
|
-
const versionError = unsupportedVersionResponse(params ?? {});
|
|
2690
|
+
const versionError = unsupportedVersionResponse("get_task_status", params ?? {});
|
|
2542
2691
|
if (versionError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, versionError);
|
|
2543
2692
|
const taskId = typeof params?.task_id === "string" ? params.task_id : "";
|
|
2544
2693
|
const { accountId, ownerScope, error } = await resolveTaskQueryAccountId(
|
|
@@ -2612,7 +2761,7 @@ function createAdcpServer(config) {
|
|
|
2612
2761
|
if (validationError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, validationError);
|
|
2613
2762
|
const boundsError = protocolTaskBoundsError("list_tasks", params ?? {});
|
|
2614
2763
|
if (boundsError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, boundsError);
|
|
2615
|
-
const versionError = unsupportedVersionResponse(params ?? {});
|
|
2764
|
+
const versionError = unsupportedVersionResponse("list_tasks", params ?? {});
|
|
2616
2765
|
if (versionError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, versionError);
|
|
2617
2766
|
const { accountId, ownerScope, error } = await resolveTaskQueryAccountId(params ?? {}, extra, "list_tasks");
|
|
2618
2767
|
if (error) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, error);
|
|
@@ -2758,6 +2907,9 @@ function createAdcpServer(config) {
|
|
|
2758
2907
|
if (protocols.includes("media_buy") || capConfig?.features) {
|
|
2759
2908
|
capabilitiesData.media_buy = {
|
|
2760
2909
|
features: {
|
|
2910
|
+
...capConfig?.features?.canonicalCreatives !== void 0 && {
|
|
2911
|
+
canonical_creatives: capConfig.features.canonicalCreatives
|
|
2912
|
+
},
|
|
2761
2913
|
inline_creative_management: capConfig?.features?.inlineCreativeManagement ?? false,
|
|
2762
2914
|
property_list_filtering: capConfig?.features?.propertyListFiltering ?? false,
|
|
2763
2915
|
content_standards: capConfig?.features?.contentStandards ?? false,
|
|
@@ -2813,6 +2965,52 @@ function createAdcpServer(config) {
|
|
|
2813
2965
|
annotations: { readOnlyHint: true }
|
|
2814
2966
|
},
|
|
2815
2967
|
(async (params, extra = {}) => {
|
|
2968
|
+
const requestParams = isPlainObject(params) ? params : {};
|
|
2969
|
+
const releaseSelection = selectServedAdcpRelease(requestParams, capConfig, adcpVersion);
|
|
2970
|
+
const release = isMcpToolResponse(releaseSelection) ? {
|
|
2971
|
+
validationVersion: adcpVersion,
|
|
2972
|
+
...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
|
|
2973
|
+
} : releaseSelection;
|
|
2974
|
+
const finalizeCapabilityResponse = (response2) => {
|
|
2975
|
+
sanitizeAdcpErrorEnvelope(response2);
|
|
2976
|
+
injectContextIntoResponse(response2, requestParams.context);
|
|
2977
|
+
injectVersionIntoResponse(response2, release.wireVersion);
|
|
2978
|
+
return applyResponseEnhancer(response2);
|
|
2979
|
+
};
|
|
2980
|
+
if (isMcpToolResponse(releaseSelection)) {
|
|
2981
|
+
return finalizeCapabilityResponse(releaseSelection);
|
|
2982
|
+
}
|
|
2983
|
+
if (!releaseDefinesTool("get_adcp_capabilities", release)) {
|
|
2984
|
+
return finalizeCapabilityResponse(
|
|
2985
|
+
(0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
|
|
2986
|
+
message: `get_adcp_capabilities is not defined in the selected AdCP release ${release.validationVersion}.`,
|
|
2987
|
+
details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
|
|
2988
|
+
})
|
|
2989
|
+
);
|
|
2990
|
+
}
|
|
2991
|
+
if (requestValidationMode !== "off") {
|
|
2992
|
+
const requestOutcome = (0, import_schema_validator.validateRequest)("get_adcp_capabilities", requestParams, release.validationVersion);
|
|
2993
|
+
if (!requestOutcome.valid) {
|
|
2994
|
+
logger.warn(
|
|
2995
|
+
`Schema validation warning (request) for get_adcp_capabilities: ${(0, import_schema_validator.formatIssues)(requestOutcome.issues, 3, { rootSchemaId: requestOutcome.schemaId })}`,
|
|
2996
|
+
{
|
|
2997
|
+
tool: "get_adcp_capabilities",
|
|
2998
|
+
issues: requestOutcome.issues
|
|
2999
|
+
}
|
|
3000
|
+
);
|
|
3001
|
+
if (requestValidationMode === "strict") {
|
|
3002
|
+
return finalizeCapabilityResponse(
|
|
3003
|
+
(0, import_errors.adcpError)(
|
|
3004
|
+
"VALIDATION_ERROR",
|
|
3005
|
+
(0, import_schema_errors.buildAdcpValidationErrorPayload)("get_adcp_capabilities", "request", requestOutcome.issues, {
|
|
3006
|
+
exposeSchemaPath: exposeErrorDetails,
|
|
3007
|
+
rootSchemaId: requestOutcome.schemaId
|
|
3008
|
+
})
|
|
3009
|
+
)
|
|
3010
|
+
);
|
|
3011
|
+
}
|
|
3012
|
+
}
|
|
3013
|
+
}
|
|
2816
3014
|
if (agentRegistry !== void 0 && extra.authInfo !== void 0) {
|
|
2817
3015
|
const authInfo = extra.authInfo;
|
|
2818
3016
|
const inboundCredential = authInfo.extra?.credential;
|
|
@@ -2824,28 +3022,77 @@ function createAdcpServer(config) {
|
|
|
2824
3022
|
input: params
|
|
2825
3023
|
});
|
|
2826
3024
|
if (resolved?.status === "suspended" || resolved?.status === "blocked") {
|
|
2827
|
-
return (
|
|
2828
|
-
|
|
2829
|
-
|
|
2830
|
-
|
|
3025
|
+
return finalizeCapabilityResponse(
|
|
3026
|
+
(0, import_errors.adcpError)(resolved.status === "suspended" ? "AGENT_SUSPENDED" : "AGENT_BLOCKED", {
|
|
3027
|
+
message: resolved.status === "suspended" ? "Buyer agent is suspended. Contact the seller to restore access." : "Buyer agent is blocked.",
|
|
3028
|
+
recovery: "terminal"
|
|
3029
|
+
})
|
|
3030
|
+
);
|
|
2831
3031
|
}
|
|
2832
3032
|
} catch (err) {
|
|
2833
3033
|
logger.warn("Buyer-agent registry resolution failed for get_adcp_capabilities", {
|
|
2834
3034
|
error: err instanceof Error ? (0, import_redact.redactCredentialPatterns)(err.message) : (0, import_redact.redactCredentialPatterns)(String(err))
|
|
2835
3035
|
});
|
|
2836
|
-
return (
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
3036
|
+
return finalizeCapabilityResponse(
|
|
3037
|
+
(0, import_errors.adcpError)("SERVICE_UNAVAILABLE", {
|
|
3038
|
+
message: "Buyer-agent registry is unavailable",
|
|
3039
|
+
recovery: "transient"
|
|
3040
|
+
})
|
|
3041
|
+
);
|
|
2840
3042
|
}
|
|
2841
3043
|
}
|
|
2842
|
-
const data = {
|
|
2843
|
-
|
|
3044
|
+
const data = {
|
|
3045
|
+
...capabilitiesData,
|
|
3046
|
+
adcp: { ...capabilitiesData.adcp },
|
|
3047
|
+
...capabilitiesData.media_buy !== void 0 && {
|
|
3048
|
+
media_buy: {
|
|
3049
|
+
...capabilitiesData.media_buy,
|
|
3050
|
+
features: { ...capabilitiesData.media_buy.features }
|
|
3051
|
+
}
|
|
3052
|
+
}
|
|
3053
|
+
};
|
|
3054
|
+
const selected = parseAdcpRelease(release.validationVersion);
|
|
3055
|
+
if (selected !== void 0 && (selected.major < 3 || selected.major === 3 && selected.minor < 1)) {
|
|
3056
|
+
delete data.adcp.supported_versions;
|
|
3057
|
+
if (data.media_buy?.features !== void 0) {
|
|
3058
|
+
delete data.media_buy.features.canonical_creatives;
|
|
3059
|
+
}
|
|
3060
|
+
delete data.library_version;
|
|
3061
|
+
}
|
|
3062
|
+
const ctx = requestParams.context;
|
|
2844
3063
|
if (ctx !== null && typeof ctx === "object" && !Array.isArray(ctx)) {
|
|
2845
3064
|
data.context = ctx;
|
|
2846
3065
|
}
|
|
2847
3066
|
const response = (0, import_responses.capabilitiesResponse)(data);
|
|
2848
|
-
injectVersionIntoResponse(response,
|
|
3067
|
+
injectVersionIntoResponse(response, release.wireVersion);
|
|
3068
|
+
if (responseValidationMode !== "off" && data.supported_protocols.length > 0) {
|
|
3069
|
+
const responseOutcome = (0, import_schema_validator.validateResponse)(
|
|
3070
|
+
"get_adcp_capabilities",
|
|
3071
|
+
response.structuredContent,
|
|
3072
|
+
release.validationVersion
|
|
3073
|
+
);
|
|
3074
|
+
if (!responseOutcome.valid) {
|
|
3075
|
+
logger.warn(
|
|
3076
|
+
`Schema validation warning (response) for get_adcp_capabilities: ${(0, import_schema_validator.formatIssues)(responseOutcome.issues, 3, { rootSchemaId: responseOutcome.schemaId })}`,
|
|
3077
|
+
{
|
|
3078
|
+
tool: "get_adcp_capabilities",
|
|
3079
|
+
issues: responseOutcome.issues,
|
|
3080
|
+
variant: responseOutcome.variant
|
|
3081
|
+
}
|
|
3082
|
+
);
|
|
3083
|
+
if (responseValidationMode === "strict") {
|
|
3084
|
+
return finalizeCapabilityResponse(
|
|
3085
|
+
(0, import_errors.adcpError)(
|
|
3086
|
+
"VALIDATION_ERROR",
|
|
3087
|
+
(0, import_schema_errors.buildAdcpValidationErrorPayload)("get_adcp_capabilities", "response", responseOutcome.issues, {
|
|
3088
|
+
exposeSchemaPath: exposeErrorDetails,
|
|
3089
|
+
rootSchemaId: responseOutcome.schemaId
|
|
3090
|
+
})
|
|
3091
|
+
)
|
|
3092
|
+
);
|
|
3093
|
+
}
|
|
3094
|
+
}
|
|
3095
|
+
}
|
|
2849
3096
|
return applyResponseEnhancer(response);
|
|
2850
3097
|
})
|
|
2851
3098
|
);
|