@adcp/sdk 14.0.0-beta.12 → 14.0.0-beta.13
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/dist/lib/index.d.mts +3 -3
- package/dist/lib/index.d.ts +3 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +3 -1
- package/dist/lib/index.mjs.map +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +2 -2
- package/dist/lib/server/create-adcp-server.d.ts +2 -2
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +6 -1
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/create-adcp-server.mjs +6 -1
- package/dist/lib/server/create-adcp-server.mjs.map +1 -1
- package/dist/lib/server/decisioning/index.d.mts +3 -3
- package/dist/lib/server/decisioning/index.d.ts +3 -3
- package/dist/lib/server/decisioning/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.js.map +1 -1
- package/dist/lib/server/decisioning/index.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.mts +24 -17
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts +24 -17
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +71 -42
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +75 -43
- package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.mts +15 -21
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts +15 -21
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.js +100 -30
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.mjs +100 -30
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/task-registry.d.mts +30 -16
- package/dist/lib/server/decisioning/runtime/task-registry.d.ts +30 -16
- package/dist/lib/server/decisioning/runtime/task-registry.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/task-registry.js +40 -20
- package/dist/lib/server/decisioning/runtime/task-registry.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/task-registry.mjs +38 -19
- package/dist/lib/server/decisioning/runtime/task-registry.mjs.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.d.mts +2 -2
- package/dist/lib/server/decisioning/runtime/to-context.d.ts +2 -2
- package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.js +2 -2
- package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.mjs +2 -2
- package/dist/lib/server/decisioning/runtime/to-context.mjs.map +1 -1
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.mts +3 -2
- package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts +3 -2
- 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 +10 -10
- package/dist/lib/server/decisioning/specialisms/creative.d.ts +10 -10
- 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/index.d.mts +1 -1
- package/dist/lib/server/index.d.ts +1 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/index.mjs.map +1 -1
- package/dist/lib/testing/storyboard/default-invariants.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/default-invariants.js +11 -2
- package/dist/lib/testing/storyboard/default-invariants.js.map +1 -1
- package/dist/lib/testing/storyboard/default-invariants.mjs +11 -2
- package/dist/lib/testing/storyboard/default-invariants.mjs.map +1 -1
- package/dist/lib/testing/storyboard/index.d.mts +1 -1
- package/dist/lib/testing/storyboard/index.d.ts +1 -1
- package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/index.js.map +1 -1
- package/dist/lib/testing/storyboard/index.mjs.map +1 -1
- package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/loader.js +14 -0
- package/dist/lib/testing/storyboard/loader.js.map +1 -1
- package/dist/lib/testing/storyboard/loader.mjs +14 -0
- package/dist/lib/testing/storyboard/loader.mjs.map +1 -1
- package/dist/lib/testing/storyboard/phase-condition.d.mts +41 -0
- package/dist/lib/testing/storyboard/phase-condition.d.ts +42 -0
- package/dist/lib/testing/storyboard/phase-condition.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/phase-condition.js +215 -0
- package/dist/lib/testing/storyboard/phase-condition.js.map +1 -0
- package/dist/lib/testing/storyboard/phase-condition.mjs +189 -0
- package/dist/lib/testing/storyboard/phase-condition.mjs.map +1 -0
- package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/request-builder.js +15 -2
- package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
- package/dist/lib/testing/storyboard/request-builder.mjs +15 -2
- package/dist/lib/testing/storyboard/request-builder.mjs.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +57 -23
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.mjs +57 -23
- package/dist/lib/testing/storyboard/runner.mjs.map +1 -1
- package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/task-map.js +6 -2
- package/dist/lib/testing/storyboard/task-map.js.map +1 -1
- package/dist/lib/testing/storyboard/task-map.mjs +6 -2
- package/dist/lib/testing/storyboard/task-map.mjs.map +1 -1
- package/dist/lib/testing/storyboard/types.d.mts +5 -4
- package/dist/lib/testing/storyboard/types.d.ts +5 -4
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/types.js.map +1 -1
- package/dist/lib/testing/storyboard/types.mjs.map +1 -1
- 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/webhook-assertions.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/webhook-assertions.js +60 -4
- package/dist/lib/testing/storyboard/webhook-assertions.js.map +1 -1
- package/dist/lib/testing/storyboard/webhook-assertions.mjs +60 -4
- package/dist/lib/testing/storyboard/webhook-assertions.mjs.map +1 -1
- package/dist/lib/testing/storyboard/webhook-receiver.d.mts +15 -0
- package/dist/lib/testing/storyboard/webhook-receiver.d.ts +15 -0
- package/dist/lib/testing/storyboard/webhook-receiver.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/webhook-receiver.js +57 -6
- package/dist/lib/testing/storyboard/webhook-receiver.js.map +1 -1
- package/dist/lib/testing/storyboard/webhook-receiver.mjs +57 -6
- package/dist/lib/testing/storyboard/webhook-receiver.mjs.map +1 -1
- package/dist/lib/testing/types.d.mts +2 -0
- package/dist/lib/testing/types.d.ts +2 -0
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/testing/types.js.map +1 -1
- package/dist/lib/types/core.generated.d.mts +5 -2
- package/dist/lib/types/core.generated.d.ts +5 -2
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js.map +1 -1
- package/dist/lib/types/index.d.mts +1 -1
- package/dist/lib/types/index.d.ts +1 -1
- 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/types/list-transformers.d.ts +9 -5
- package/dist/lib/types/schemas.generated.d.ts +21 -298
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +5 -2
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/schemas.generated.mjs +4 -2
- package/dist/lib/types/schemas.generated.mjs.map +1 -1
- package/dist/lib/types/server-payload-aliases.d.mts +2 -1
- package/dist/lib/types/server-payload-aliases.d.ts +2 -1
- package/dist/lib/types/server-payload-aliases.d.ts.map +1 -1
- package/dist/lib/types/server-payload-aliases.js.map +1 -1
- package/dist/lib/types/tools.generated.d.mts +5 -2
- package/dist/lib/types/tools.generated.d.ts +5 -2
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/types/tools.generated.js.map +1 -1
- package/dist/lib/utils/build-creative-return-builders.d.mts +5 -1
- package/dist/lib/utils/build-creative-return-builders.d.ts +5 -1
- package/dist/lib/utils/build-creative-return-builders.d.ts.map +1 -1
- package/dist/lib/utils/build-creative-return-builders.js +9 -3
- package/dist/lib/utils/build-creative-return-builders.js.map +1 -1
- package/dist/lib/utils/build-creative-return-builders.mjs +7 -2
- package/dist/lib/utils/build-creative-return-builders.mjs.map +1 -1
- package/dist/lib/utils/response-unwrapper.js +1 -1
- package/dist/lib/utils/response-unwrapper.js.map +1 -1
- package/dist/lib/utils/response-unwrapper.mjs +1 -1
- package/dist/lib/utils/response-unwrapper.mjs.map +1 -1
- package/dist/lib/validation/schema-loader.d.ts.map +1 -1
- package/dist/lib/validation/schema-loader.js +16 -7
- package/dist/lib/validation/schema-loader.js.map +1 -1
- package/dist/lib/validation/schema-loader.mjs +16 -7
- package/dist/lib/validation/schema-loader.mjs.map +1 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- 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/llms.txt +2 -2
- package/docs/migration-5.x-to-6.x.md +3 -2
- package/docs/migration-task-registry-scoping.md +61 -0
- package/examples/hello_seller_adapter_guaranteed.ts +1 -1
- package/package.json +4 -4
- package/skills/build-decisioning-creative-template/SKILL.md +2 -2
- package/skills/build-decisioning-platform/SKILL.md +4 -2
- package/skills/build-decisioning-platform/advanced/REFERENCE.md +7 -6
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/index.ts"],"sourcesContent":["// AdCP Client Library - Main Exports\n// A comprehensive type-safe client library for the AdContext Protocol\n\n// ====== REGISTRY LOOKUPS ======\nexport {\n RegistryClient,\n RegistryRequestError,\n isRegistryRequestError,\n RegistrySync,\n PropertyRegistry,\n InMemoryCursorStore,\n FileCursorStore,\n buildCommunityMirrorAdagents,\n} from './registry';\nexport type {\n RegistrySyncConfig,\n RegistrySyncState,\n RegistrySyncTransport,\n RegistrySyncEvents,\n AgentFilter,\n RegistrySyncProperty,\n CursorStore,\n PropertyRegistryConfig,\n FeedStreamQuery,\n FeedStreamMessage,\n FeedHeartbeat,\n FeedStreamErrorData,\n OpenFeedStreamOptions,\n FeedFreshness,\n} from './registry';\nexport {\n openFeedStream,\n parseSseStream,\n sanitizeStreamText,\n DEFAULT_MAX_SSE_FRAME_BYTES,\n FeedStreamError,\n FeedStreamUnsupportedError,\n FeedStreamCursorExpiredError,\n FeedStreamHttpError,\n FeedStreamParseError,\n} from './registry';\nexport type {\n ResolvedBrand,\n LookupBrandOptions,\n ResolvedProperty as ResolvedRegistryProperty,\n PropertyInfo,\n RegistryClientConfig,\n SaveBrandRequest,\n SaveBrandResponse,\n BrandLogoReviewStatus,\n ApprovedBrandLogoAsset,\n PendingBrandLogoAsset,\n ReviewedBrandLogoAsset,\n BrandLogoAsset,\n ListBrandLogosOptions,\n ListBrandLogosResponse,\n SaveBrandLogoInput,\n SaveBrandLogoResponse,\n UploadBrandLogoInput,\n UploadBrandLogoResponse,\n SavePropertyIdentity,\n RegistryPropertyIdentity,\n SavePropertyRequest,\n SavePropertyResponse,\n ResolveIdentifiersRequest,\n ResolveIdentifiersResponse,\n FileCatalogDisputeRequest,\n FileCatalogDisputeResponse,\n GetCatalogDisputeResponse,\n BrandRegistryItem,\n PropertyRegistryItem,\n ValidationResult as RegistryValidationResult,\n FederatedAgentWithDetails,\n FederatedPublisher,\n DomainLookupResult,\n ListBrandsOptions,\n ListBrandsResponse,\n GetBrandJsonResponse,\n ListOptions,\n ListAgentsOptions,\n ListAgentsResponse,\n ListPublishersResponse,\n ValidateAdagentsRequest,\n ValidateAdagentsResponse,\n CreateAdagentsRequest,\n CreateAdagentsResponse,\n AdagentsAuthorizedAgent,\n AdagentsCatalogFormat,\n AdagentsPlacementDefinition,\n AdagentsPlacementFormatReference,\n AdagentsPlacementFormatOption,\n AdagentsPlacementTag,\n CreatedAdagentsJson,\n CommunityMirrorAdagentsConfig,\n CreateCommunityMirrorAdagentsConfig,\n CommunityMirrorAdagentsCatalog,\n PublishCommunityMirrorAdagentsResponse,\n CommunityMirrorAdagentsSummary,\n ListCommunityMirrorAdagentsResponse,\n GetCommunityMirrorAdagentsResponse,\n PublishCommunityMirrorAdagentsRequest,\n PublishCommunityMirrorAdagentsError,\n DeleteCommunityMirrorAdagentsResponse,\n PublisherPropertySelector,\n CompanySearchResult,\n FindCompanyResult,\n ManagerRevalidationRequest,\n ManagerRevalidationResponse,\n ListPoliciesQuery,\n ListPoliciesResponse,\n ResolvePolicyQuery,\n ResolvePolicyResponse,\n ResolvePoliciesBulkRequest,\n ResolvePoliciesBulkResponse,\n GetPolicyHistoryQuery,\n GetPolicyHistoryResponse,\n SavePolicyRequest,\n SavePolicyResponse,\n GetBrandHistoryQuery,\n GetBrandHistoryResponse,\n GetPropertyHistoryQuery,\n GetPropertyHistoryResponse,\n RegistryFeedEvent,\n AgentEventPayload,\n PropertyEventPayload,\n CollectionEventPayload,\n AuthorizationEventPayload,\n PublisherEventPayload,\n BrandEventPayload,\n CatalogBrowseResponse,\n CatalogBrowseEntry,\n CatalogSyncResponse,\n CatalogSyncEntry,\n AgentCompliance,\n AgentComplianceDetail,\n StoryboardStatus,\n OperatorLookupResult,\n PublisherLookupResult,\n ComplianceChangedPayload,\n GetAgentStoryboardStatusResponse,\n GetAgentStoryboardStatusBulkResponse,\n} from './registry';\n\n// ====== BRAND JSON HELPERS ======\nexport {\n COMMON_LOGO_SLOTS,\n applyBrandAssetMappings,\n checkLogoSlotCoverage,\n extractBrandWebsiteAliasDomains,\n extractBrandWebsiteAliases,\n selectLogoForSlot,\n updateBrandJsonFromMappings,\n validateBrandAssetMappings,\n} from './brand';\nexport type {\n AppliedBrandAssetMapping,\n ApplyBrandAssetMappingsOptions,\n ApplyBrandAssetMappingsResult,\n BrandAssetCandidate,\n BrandAssetCropBox,\n BrandAssetExtractionMethod,\n BrandAssetMapping,\n BrandAssetMappingIssue,\n BrandAssetMappingTarget,\n BrandAssetMappingValidationResult,\n BrandAssetReviewStatus,\n BrandWebsiteAlias,\n BrandWebsiteAliasRelationship,\n BrandWebsiteAliasSource,\n BrandJsonRecord,\n BrandLogoBackground,\n BrandLogoOrientation,\n BrandLogoProposal,\n BrandLogoVariant,\n ExtractBrandWebsiteAliasesOptions,\n LogoSelectionOptions,\n LogoSlotCoverage,\n LogoSlotCoverageOptions,\n ResolveBrandAssetUrl,\n SkippedBrandAssetMapping,\n UpdateBrandJsonFromMappingsOptions,\n UpdateBrandJsonFromMappingsResult,\n} from './brand';\n\n// ====== PROPERTY DISCOVERY (AdCP v2.2.0) ======\nexport {\n PropertyIndex,\n getPropertyIndex,\n resetPropertyIndex,\n type PropertyMatch,\n type AgentAuthorization,\n} from './discovery/property-index';\nexport {\n PropertyCrawler,\n type AgentInfo,\n type CrawlResult,\n type PropertyCrawlerConfig,\n} from './discovery/property-crawler';\nexport {\n NetworkConsistencyChecker,\n type NetworkConsistencyCheckerConfig,\n type NetworkCheckReport,\n type CheckSummary,\n type CheckProgress,\n type OrphanedPointer,\n type StalePointer,\n type MissingPointer,\n type SchemaError,\n type AgentHealthResult,\n type DomainDetail,\n type DomainStatus,\n} from './discovery/network-consistency-checker';\nexport type {\n Property,\n PropertyIdentifier,\n PropertyIdentifierType,\n PropertyType,\n AdAgentsJson,\n AuthorizedAgent,\n AuthorizationType,\n // Aliased: the registry types also export a `PublisherPropertySelector`\n // (registry-flat shape with no `selection_type` discriminator). The\n // adagents.json schema's variant is a discriminated union, so we\n // expose it under a distinct name to avoid clobbering the registry\n // type that's been part of the public API longer.\n PublisherPropertySelector as AdAgentsPublisherPropertySelector,\n SinglePublisherPropertySelector,\n CompactPublisherPropertySelector,\n} from './discovery/types';\nexport {\n parsePublisherPropertySelector,\n expandPublisherPropertySelector,\n expandPublisherPropertySelectors,\n isCompactPublisherPropertySelector,\n publisherDomainsCoveredBySelectors,\n PublisherPropertySelectorParseError,\n type PublisherPropertySelectorError,\n} from './discovery/publisher-property-selector';\nexport {\n resolveAgentProperties,\n listAgentPropertyMap,\n getAllProperties,\n canonicalizeAgentUrl,\n type ResolvedAgentScope,\n type ResolveUnresolvableReason,\n} from './discovery/resolve-agent-properties';\nexport {\n resolveInlinePublisherProperties,\n resolveSingularInline,\n detectInlineFederatedDivergence,\n type InlineResolutionResult,\n type InlineFederatedDivergence,\n} from './discovery/inline-publisher-properties';\nexport {\n fetchAgentAuthorizationsFromDirectory,\n type AgentAuthorizationsIterator,\n type FetchAgentAuthorizationsOptions,\n type DirectoryLookupPage,\n type DirectoryPublisherEntry,\n type DirectoryDiscoveryMethod,\n type DirectoryPublisherStatus,\n} from './discovery/agent-directory';\nexport {\n validateAdAgents,\n parseManagerDomain,\n type DiscoveryMethod,\n type AdAgentsValidationResult,\n type ValidateAdAgentsOptions,\n} from './discovery/validate-adagents';\n\n// ====== CORE CONVERSATION-AWARE CLIENTS ======\n// New conversation-aware clients with input handler pattern\nexport {\n SingleAgentClient,\n WebhookDispatchError,\n createSingleAgentClient,\n UnsupportedFeatureError,\n} from './core/SingleAgentClient';\nexport type {\n ClientProductPropertyPolicy,\n CreativeDeliveryTaskOptions,\n SingleAgentClientConfig,\n SyncCreativesTaskOptions,\n VerifyAndParseWebhookOptions,\n WebhookHandlerAdapter,\n WebhookHandlerRequest,\n WebhookParseErrorCode,\n WebhookParseFailure,\n WebhookParseResult,\n WebhookParseSuccess,\n WebhookVerificationConfig,\n} from './core/SingleAgentClient';\nexport {\n InMemoryWebhookRegistrationStore,\n type InMemoryWebhookRegistrationStoreOptions,\n type WebhookAuthenticationMode,\n type WebhookRegistration,\n type WebhookRegistrationStore,\n} from './core/webhook-registration';\nexport {\n AgentClient,\n type CanonicalGetProductsResponse,\n type CanonicalProjectionTaskOptions,\n type ProposalRefinementTaskOptions,\n type TaskResponseTypeMap,\n type TaskRequestTypeMap,\n type TaskRequestFor,\n type AdcpTaskName,\n type InProcessAgentClientConfig,\n} from './core/AgentClient';\nexport {\n MediaBuyLifecycleCoordinator,\n MediaBuyLifecycleCompatibilityError,\n LegacyPurchaseContinuationError,\n negotiateMediaBuyLifecycle,\n type CompatibleDeclineProposalsResponse,\n type CompatibleDeclineProposalsWireResponse,\n type CompatibleDeclineResult,\n type CompatibleProductsResponse,\n type CompatibleProductsWireResponse,\n type CompatibleProduct,\n type CompatibleProposal,\n type CompatibleProposalResponse,\n type CompatibleProjectedDeclineResult,\n type CompatibleRefinementResult,\n type CompatibleRefineProposalsResponse,\n type CompatibleRefineProposalsWireResponse,\n type CompatibleRequestProposalsResponse,\n type CompatibleRequestProposalsWireResponse,\n type CompatibleAcceptProposalRequest,\n type CompatibilityDeferredContinuation,\n type CompatibilitySubmittedContinuation,\n type CompatibilityTaskResult,\n type EstablishedProductsWireResponse,\n type EstablishedProposalAcceptanceFallback,\n type EstablishedProposalTaskReconciliationInput,\n type MediaBuyCompatibility,\n type MediaBuyCompatibilityLoss,\n type MediaBuyCompatibilityReport,\n type MediaBuyLifecycle,\n type MediaBuyLifecycleCoordinatorOptions,\n type LegacyPurchaseContinuationErrorCode,\n} from './media-buy/compatibility';\nexport {\n InMemoryLegacyPurchaseContinuationStore,\n createInMemoryLegacyPurchaseContinuationStore,\n LEGACY_PURCHASE_PUBLICATION_PROOF_RETENTION_MS,\n legacyPurchaseSettlementFingerprint,\n type InMemoryLegacyPurchaseContinuationStoreOptions,\n type LegacyPurchaseBinding,\n type LegacyPurchaseClaim,\n type LegacyPurchaseClaimRequest,\n type LegacyPurchaseClaimResult,\n type LegacyPurchaseCompleteResult,\n type LegacyPurchaseContinuationRecord,\n type LegacyPurchaseContinuationStore,\n type LegacyPurchaseCreateResult,\n type LegacyPurchaseLoss,\n type LegacyPurchaseOperation,\n type LegacyPurchasePendingSettlement,\n type LegacyPurchasePendingSettlementResult,\n type LegacyPurchasePublicationLease,\n type LegacyPurchaseReconciliationResult,\n type LegacyPurchaseSourceVersion,\n type LegacyPurchaseTerminalResult,\n type ReconcileLegacyPurchase,\n} from './media-buy/legacy-purchase-continuation';\nexport {\n InMemoryEstablishedProposalStore,\n createInMemoryEstablishedProposalStore,\n ESTABLISHED_PROPOSAL_COMPLETION_TOMBSTONE_RETENTION_MS,\n type EstablishedProposalBinding,\n type EstablishedProposalCompletionWindow,\n type EstablishedProposalMutationClaim,\n type EstablishedProposalMutationBinding,\n type EstablishedProposalMutationIntent,\n type EstablishedProposalMutationDisposition,\n type EstablishedProposalMutationKind,\n type EstablishedProposalOperation,\n type EstablishedProposalPutResult,\n type EstablishedProposalRecord,\n type EstablishedProposalReserveRequest,\n type EstablishedProposalReserveResult,\n type EstablishedProposalScope,\n type EstablishedProposalSourceVersion,\n type EstablishedProposalStore,\n type EstablishedProposalSubmittedOperation,\n type EstablishedProposalTaskScope,\n type EstablishedProposalTransitionResult,\n type InMemoryEstablishedProposalStoreOptions,\n type ProposalSnapshotEntry,\n} from './media-buy/established-proposal-store';\nexport {\n ADCPMultiAgentClient,\n createADCPMultiAgentClient,\n type MultiAgentWebhookHandlerAdapter,\n} from './core/ADCPMultiAgentClient';\nexport { ConfigurationManager } from './core/ConfigurationManager';\nexport {\n CreativeAgentClient,\n createCreativeAgentClient,\n STANDARD_CREATIVE_AGENTS,\n type CreativeAgentListTaskOptions,\n type CreativeAgentClientConfig,\n type LegacyCreativeFormat,\n} from './core/CreativeAgentClient';\nexport { TaskExecutor } from './core/TaskExecutor';\nexport { match, attachMatch } from './core/match';\nexport type { MatchHandlers, PartialMatchHandlers } from './core/match';\nexport { ProtocolResponseParser, responseParser, ADCP_STATUS, type ADCPStatus } from './core/ProtocolResponseParser';\nexport {\n ResponseValidator,\n responseValidator,\n type ValidationResult,\n type ValidationOptions,\n} from './core/ResponseValidator';\n// ====== CONVERSATION TYPES ======\nexport type {\n Message,\n InputRequest,\n InputHandler,\n InputHandlerResponse,\n ConversationContext,\n TaskOptions,\n WebhookToolPredicate,\n WebhookUrlTemplate,\n TaskResult,\n TaskResultCompleted,\n TaskResultIntermediate,\n TaskResultFailure,\n TaskResultMetadata,\n TaskState,\n TaskStatus,\n ConversationConfig,\n AdcpErrorInfo,\n AdcpValidationIssue,\n} from './core/ConversationTypes';\n\n// ====== GOVERNANCE ======\n// Buyer-side: GovernanceConfig + GovernanceMiddleware handle check → execute → report automatically.\n// Seller-side: GovernanceAdapter runs committed checks before executing media buys.\n// Types: GovernanceCheckResult, GovernanceOutcome are attached to TaskResult when governance is active.\n\n// Buyer-side middleware types\nexport type {\n GovernanceConfig,\n CampaignGovernanceConfig,\n GovernanceCheckResult,\n GovernanceOutcome,\n GovernanceFinding,\n GovernanceIntentDetails,\n GovernanceCondition,\n GovernanceEscalation,\n NormalizedGovernanceApproved,\n NormalizedGovernanceConditions,\n NormalizedGovernanceDenied,\n NormalizedGovernanceVerdict,\n} from './core/GovernanceTypes';\nexport { GovernanceMiddleware } from './core/GovernanceMiddleware';\nexport {\n isGovernanceApproved,\n isGovernanceConditions,\n isGovernanceDenied,\n normalizeGovernanceVerdict,\n} from './core/GovernanceTypes';\nexport type { GovernanceDebugEntry } from './core/GovernanceMiddleware';\n\n// ====== GOVERNANCE PLAN HELPERS ======\n// Invariants the schema encodes via if/then / oneOf that generated types\n// typically drop: budget reallocation autonomy and regulated-vertical\n// human review under GDPR Art 22 / EU AI Act Annex III.\nexport {\n GOVERNANCE_AUTHORIZATION_CRITICAL_CLAIMS,\n GovernanceAuthorizationError,\n GovernanceReplayStoreAdapter,\n InMemoryGovernanceReplayStore,\n buildGovernanceCommitment,\n buildGovernanceExecutionCommitment,\n buildGovernanceExecutionRequest,\n buildGovernanceIntentRequest,\n buildGovernanceProposedCommitment,\n buildHumanReviewPlan,\n buildHumanOverride,\n computeGovernedPayloadHash,\n createGovernanceEnforcementMiddleware,\n getGovernanceEnforcementTasks,\n governancePurchaseTypeForTask,\n governanceTaskRequiresProposedCommitment,\n targetDeclaresGovernanceEnforcement,\n targetDeclaresLegacyGovernanceAwareness,\n validateGovernancePlan,\n verifyGovernanceAuthorization,\n REGULATED_HUMAN_REVIEW_CATEGORIES,\n ANNEX_III_POLICY_IDS,\n} from './governance';\n\n// ====== NETWORKING / SSRF GUARDS ======\n// Public so adopters can converge on the SDK's DNS-pinning and address\n// classification behavior instead of copying partial guards. Use\n// `ssrfSafeFetch` as the security boundary; address classifiers are advisory\n// helpers and do not protect raw fetches from DNS rebinding.\nexport {\n ssrfSafeFetch,\n decodeBodyAsJsonOrText,\n SSRF_TRANSIENT_CODES,\n SsrfRefusedError,\n isPrivateIp,\n isAlwaysBlocked,\n isLikelyPrivateUrl,\n type SsrfRefusedCode,\n type SsrfFetchOptions,\n type SsrfFetchResult,\n} from './net';\n\n// ====== CANONICAL REFERENCE RESOLUTION ======\n// Safe, structured resolver for AdCP 3.1 `format_schema` and\n// `platform_extensions` URI+SHA-256 references.\nexport {\n createCanonicalReferenceCache,\n createCanonicalReferenceResolver,\n canonicalReferenceCacheKey,\n resolveCanonicalReference,\n resolveFormatSchemaReference,\n resolvePlatformExtensionsReference,\n type CanonicalReference,\n type CanonicalReferenceCache,\n type CanonicalReferenceCacheOptions,\n type CanonicalReferenceError,\n type CanonicalReferenceErrorCode,\n type CanonicalReferenceFailureResult,\n type CanonicalReferenceKind,\n type CanonicalReferenceResolveOptions,\n type CanonicalReferenceResolvedResult,\n type CanonicalReferenceResolver,\n type CanonicalReferenceResolverOptions,\n type CanonicalReferenceResult,\n type CanonicalReferenceStatus,\n type ExternalRefDigestMap,\n type FormatSchemaReferenceResolvedResult,\n type FormatSchemaReferenceResult,\n type PlatformExtensionsReferenceResult,\n} from './canonical-references';\nexport type {\n BuildGovernanceExecutionRequestInput,\n BuildGovernanceIntentRequestInput,\n BuildHumanReviewPlanInput,\n BuildHumanOverrideInput,\n DataSubjectContestation,\n GovernanceAuthorizationClaims,\n GovernanceAuthorizationCriticalClaim,\n GovernanceAuthorizationErrorCode,\n GovernanceAuthorizationFailure,\n GovernanceAuthorizationResult,\n GovernanceAuthorizationSuccess,\n GovernanceCommitment,\n GovernanceEnforcementMiddleware,\n GovernanceEnforcementMiddlewareConfig,\n GovernanceEnforcementMiddlewareInput,\n GovernanceEnforcementMode,\n GovernanceEnforcementTask,\n GovernancePlan,\n GovernanceReplayStore,\n GovernanceReplayBinding,\n GovernanceRevocationResolver,\n GovernanceRevocationStatus,\n GovernanceValidationIssue,\n HumanOverride,\n InMemoryGovernanceReplayStoreOptions,\n PlanBudget,\n ReallocationAutonomy,\n VerifyGovernanceAuthorizationOptions,\n} from './governance';\n\n// ====== TASK EVENT TYPES ======\nexport type {\n BaseTaskEvent,\n ProtocolRequestEvent,\n ProtocolResponseEvent,\n TaskStatusEvent,\n ObjectEvent,\n TaskEvent,\n TaskEventCallbacks,\n} from './core/TaskEventTypes';\nexport { createOperationId } from './core/TaskEventTypes';\n\n// ====== ASYNC HANDLER ======\nexport type {\n AsyncHandlerConfig,\n WebhookMetadata,\n Activity,\n NotificationMetadata,\n MediaBuyDeliveryNotification,\n CreateMediaBuyStatusChangeHandler,\n UpdateMediaBuyStatusChangeHandler,\n SyncCreativesStatusChangeHandler,\n GetProductsStatusChangeHandler,\n} from './core/AsyncHandler';\nexport {\n AsyncHandler,\n WebhookDedupConflictError,\n WebhookDedupInputError,\n createAsyncHandler,\n} from './core/AsyncHandler';\n\n// ====== WHOLESALE FEED WEBHOOKS ======\nexport {\n normalizeWholesaleFeedWebhookNotification,\n parseWholesaleFeedWebhookNotification,\n WholesaleFeedWebhookNotificationError,\n} from './wholesale-feed-sync/webhook-notification';\nexport type {\n NormalizedWholesaleFeedWebhookNotification,\n WholesaleFeedWebhookAffectedEntityType,\n WholesaleFeedWebhookCacheScope,\n WholesaleFeedWebhookNotificationErrorCode,\n WholesaleFeedWebhookNotificationErrorDetails,\n WholesaleFeedWebhookNotificationType,\n} from './wholesale-feed-sync/webhook-notification';\n\n// ====== INPUT HANDLERS ======\nexport * from './handlers/types';\n\n// ====== STORAGE INTERFACES ======\nexport type {\n Storage,\n AtomicTakeStorage,\n DeferredTaskStorage,\n BatchStorage,\n PatternStorage,\n AgentCapabilities,\n ConversationState,\n DeferredTaskState,\n StorageConfig,\n StorageFactory,\n StorageMiddleware,\n} from './storage/interfaces';\nexport { MemoryStorage, createMemoryStorage, createMemoryStorageConfig } from './storage/MemoryStorage';\n\n// ====== ERROR CLASSES ======\nexport {\n ADCPError,\n TaskTimeoutError,\n MaxClarificationError,\n DeferredTaskError,\n TaskAbortedError,\n AgentNotFoundError,\n UnsupportedTaskError,\n ProtocolError,\n ValidationError as ADCPValidationError, // Rename to avoid conflict\n MissingInputHandlerError,\n InvalidContextError,\n ConfigurationError,\n AuthenticationRequiredError,\n FeatureUnsupportedError,\n ProtocolFeatureUnsupportedError,\n SDK_ERROR_TO_PROTOCOL_ERROR_CODE,\n VersionUnsupportedError,\n IdempotencyConflictError,\n IdempotencyExpiredError,\n ResponseTooLargeError,\n ActionNotAllowedError,\n adcpErrorToTypedError,\n getClientPreflightAdcpError,\n isADCPError,\n isErrorOfType,\n extractErrorInfo,\n is401Error,\n mapSdkErrorCodeToProtocolErrorCode,\n} from './errors';\nexport type {\n OAuthMetadataInfo,\n ClientPreflightAdcpErrorInfo,\n ClientPreflightAdcpErrorRecovery,\n FeatureUnsupportedErrorOptions,\n ProtocolFeatureUnsupportedErrorOptions,\n ActionNotAllowedErrorDetails,\n ActionNotAllowedReasonValue,\n ActionNotAllowedAttemptedAction,\n ActionNotAllowedAvailableAction,\n ActionNotAllowedRecovery,\n} from './errors';\n\n// ====== MEDIA BUY ACTIONS (AdCP 3.1 / RFC #4480) ======\n// Wire-shape action types are generated; helper result/context types live in\n// the media-buy helper module.\nexport type {\n ActionNotAllowedDetails,\n ActionNotAllowedReason,\n AvailableActionsResult,\n AvailableActionsSource,\n DecomposedUpdateMediaBuy,\n DecomposedUpdateMediaBuyMutation,\n LegacyCoarseAction,\n MediaBuyActionContext,\n MediaBuyActionMode,\n MediaBuyAvailableAction,\n MediaBuyMutationDirection,\n MediaBuyMutationScope,\n MediaBuyValidAction,\n ModeMismatchRecovery,\n PreflightAllowed,\n PreflightDenial,\n PreflightDenied,\n BuyerPropertyPolicy,\n NormalizedPolicyDomain,\n ProductPolicyProductLike,\n ProductPropertyPolicyDiagnostic,\n ProductPropertyPolicyDiagnosticCode,\n ProductPropertyPolicyDiagnosticSeverity,\n ProductPropertyPolicyMode,\n ProductPropertyPolicySelectorBehavior,\n ProductPropertyPolicyValidationResult,\n PreflightResult,\n ResolvedAction,\n SLAWindow,\n SlaWindow,\n ValidateProductsAgainstPropertyPolicyOptions,\n UpdateFieldEntry,\n UpdateMediaBuyRequestLike,\n} from './media-buy';\nexport {\n ACTIONS_BY_FIELD,\n LEGACY_COARSE_ACTIONS,\n UPDATE_FIELDS_BY_ACTION,\n canAddPackages,\n canCancel,\n canDecreaseBudget,\n canExtendFlight,\n canIncreaseBudget,\n canPause,\n canReallocateBudget,\n canRemoveCreative,\n canRemovePackages,\n canReplaceCreative,\n canResume,\n canShortenFlight,\n canUpdateCreativeAssignments,\n canUpdateFlightDates,\n canUpdateFrequencyCaps,\n canUpdatePacing,\n canUpdateTargeting,\n decomposeUpdateMediaBuy,\n findAvailableAction,\n getActionForMutation,\n getAvailableActions,\n getRollupParent,\n ProductPropertyPolicyError,\n normalizeDomainForPropertyPolicy,\n preflightUpdateMediaBuy,\n recoveryForModeMismatch,\n validateProductsAgainstPropertyPolicy,\n} from './media-buy';\nexport { InputRequiredError } from './core/TaskExecutor';\n\n// ====== IDEMPOTENCY ======\nexport {\n generateIdempotencyKey,\n isMutatingTask,\n requestUsesIdempotency,\n isValidIdempotencyKey,\n useIdempotencyKey,\n redactIdempotencyKey,\n IDEMPOTENCY_KEY_PATTERN,\n MUTATING_TASKS,\n} from './utils/idempotency';\nexport type { IdempotencyCapabilities } from './utils/capabilities';\nexport type { MutatingRequestInput } from './utils/idempotency';\nexport { canonicalize, canonicalJsonSha256 } from './utils/jcs';\nexport { rollupOptimizationMetricsFromProducts } from './utils/capability-rollups';\n\n// ====== PROPOSAL NEGOTIATION (AdCP 3.2) ======\nexport * from './negotiation';\n\n// ====== CORE TYPES ======\nexport * from './types';\n\n// ====== TOOL TYPES ======\n// Request and response types for each AdCP tool.\n//\n// Naming convention:\n// {ToolName}Request -- parameters for a tool call (e.g., CreateMediaBuyRequest)\n// {ToolName}Response -- return value; often a union of {ToolName}Success | {ToolName}Error\n//\n// Nested domain types within requests use a Request suffix when the shape\n// differs from the response version:\n// PackageRequest -- creation-shaped (required: buyer_ref, product_id, budget, pricing_option_id)\n// Package -- response-shaped from core.generated (has package_id, most fields optional)\n//\n// Platform implementors: use Request types to type incoming tool calls,\n// Response types to shape your return values.\n// Runtime Zod schemas live at `@adcp/sdk/schemas` to keep ordinary root\n// imports from loading the generated schema declaration bundle.\nexport type {\n // Media Buy Domain\n GetProductsRequest as LegacyGetProductsRequest,\n GetProductsResponse as LegacyGetProductsResponse,\n ListCreativeFormatsRequest as LegacyListCreativeFormatsRequest,\n ListCreativeFormatsResponse as LegacyListCreativeFormatsResponse,\n CreateMediaBuyRequest as LegacyCreateMediaBuyRequest,\n CreateMediaBuyResponse as LegacyCreateMediaBuyResponse,\n CreateMediaBuySuccess as LegacyCreateMediaBuySuccess,\n CreateMediaBuyError as LegacyCreateMediaBuyError,\n CreateMediaBuySubmitted as LegacyCreateMediaBuySubmitted,\n UpdateMediaBuyRequest as LegacyUpdateMediaBuyRequest,\n UpdateMediaBuyResponse as LegacyUpdateMediaBuyResponse,\n UpdateMediaBuySuccess as LegacyUpdateMediaBuySuccess,\n UpdateMediaBuyError as LegacyUpdateMediaBuyError,\n SyncCreativesRequest as LegacySyncCreativesRequest,\n SyncCreativesResponse as LegacySyncCreativesResponse,\n SyncCreativesSuccess as LegacySyncCreativesSuccess,\n SyncCreativesError as LegacySyncCreativesError,\n SyncCreativesSubmitted as LegacySyncCreativesSubmitted,\n SyncAudiencesRequest,\n SyncAudiencesResponse,\n SyncAudiencesSuccess,\n SyncAudiencesError,\n ListCreativesRequest as LegacyListCreativesRequest,\n ListCreativesResponse as LegacyListCreativesResponse,\n CreativeFilters as LegacyCreativeFilters,\n GetMediaBuyDeliveryRequest,\n GetMediaBuyDeliveryResponse as LegacyGetMediaBuyDeliveryResponse,\n ProvidePerformanceFeedbackRequest,\n ProvidePerformanceFeedbackResponse,\n ProvidePerformanceFeedbackSuccess,\n ProvidePerformanceFeedbackError,\n // Signals Domain\n GetSignalsRequest,\n GetSignalsResponse,\n ActivateSignalRequest,\n ActivateSignalResponse,\n ActivateSignalSuccess,\n ActivateSignalError,\n CpmPricing,\n PercentOfMediaPricing,\n FlatFeePricing,\n PerUnitPricing,\n CustomPricing,\n VendorPricing,\n VendorPricingOption,\n // Pricing variants for products (publisher rate cards in get_products etc.)\n // PricingOption + CPAPricingOption are exported below near the other tool types.\n CPMPricingOption,\n VCPMPricingOption,\n CPCPricingOption,\n CPCVPricingOption,\n CPVPricingOption,\n CPPPricingOption,\n FlatRatePricingOption,\n TimeBasedPricingOption,\n // Governance Domain - Property Lists\n CreatePropertyListRequest,\n CreatePropertyListResponse,\n UpdatePropertyListRequest,\n UpdatePropertyListResponse,\n GetPropertyListRequest,\n GetPropertyListResponse,\n ListPropertyListsRequest,\n ListPropertyListsResponse,\n DeletePropertyListRequest,\n DeletePropertyListResponse,\n PropertyList,\n PropertyListFilters,\n // Governance Domain - Content Standards\n ListContentStandardsRequest as LegacyListContentStandardsRequest,\n ListContentStandardsResponse as LegacyListContentStandardsResponse,\n GetContentStandardsRequest as LegacyGetContentStandardsRequest,\n GetContentStandardsResponse as LegacyGetContentStandardsResponse,\n CreateContentStandardsRequest as LegacyCreateContentStandardsRequest,\n CreateContentStandardsResponse as LegacyCreateContentStandardsResponse,\n UpdateContentStandardsRequest as LegacyUpdateContentStandardsRequest,\n UpdateContentStandardsResponse as LegacyUpdateContentStandardsResponse,\n UpdateContentStandardsSuccess as LegacyUpdateContentStandardsSuccess,\n UpdateContentStandardsError as LegacyUpdateContentStandardsError,\n CalibrateContentRequest as LegacyCalibrateContentRequest,\n CalibrateContentResponse as LegacyCalibrateContentResponse,\n ValidateContentDeliveryRequest as LegacyValidateContentDeliveryRequest,\n ValidateContentDeliveryResponse as LegacyValidateContentDeliveryResponse,\n ContentStandards as LegacyContentStandards,\n Artifact as LegacyArtifact,\n // Governance Domain - Campaign Governance\n SyncPlansRequest,\n SyncPlansResponse,\n SyncGovernanceRequest,\n SyncGovernanceResponse,\n SyncGovernanceSuccess,\n SyncGovernanceError,\n CheckGovernanceRequest,\n CheckGovernanceResponse,\n ReportPlanOutcomeRequest,\n ReportPlanOutcomeResponse,\n GetPlanAuditLogsRequest,\n GetPlanAuditLogsResponse,\n // Governance Domain - Types & Enums\n PlannedDelivery,\n GovernancePhase,\n EscalationSeverity,\n PolicyEnforcementLevel,\n OutcomeType,\n // Governance Domain - Creative Features\n GetCreativeFeaturesRequest as LegacyGetCreativeFeaturesRequest,\n GetCreativeFeaturesResponse as LegacyGetCreativeFeaturesResponse,\n // Sponsored Intelligence Domain\n SIGetOfferingRequest,\n SIGetOfferingResponse,\n SIInitiateSessionRequest,\n SIInitiateSessionResponse,\n SISendMessageRequest,\n SISendMessageResponse,\n SITerminateSessionRequest,\n SITerminateSessionResponse,\n SICapabilities,\n SIIdentity,\n // Protocol Domain\n GetAdCPCapabilitiesRequest,\n GetAdCPCapabilitiesResponse,\n // Event Tracking Domain\n SyncEventSourcesRequest,\n SyncEventSourcesResponse,\n SyncEventSourcesSuccess,\n SyncEventSourcesError,\n LogEventRequest,\n LogEventResponse,\n LogEventSuccess,\n LogEventError,\n // Enums\n CanceledBy,\n // Core data structures used within requests and responses\n Format as LegacyFormat,\n Product as LegacyProduct,\n Proposal,\n ProductAllocation,\n PackageRequest as LegacyPackageRequest, // Raw wire shape for migration/server tooling\n CreativeAsset as LegacyCompatibleCreativeAsset,\n CreativePolicy,\n BrandReference,\n BrandID,\n AccountReference,\n CPAPricingOption,\n EventType,\n ActionSource,\n OptimizationGoal,\n ReachUnit,\n TargetingOverlay,\n // 3.1.0-beta.2 renamed `OutcomeMeasurement` → `OutcomeMeasurementDeprecated`\n // to signal the surface is on the 4.0 removal track. Re-export under both\n // names so adopters' existing `import { OutcomeMeasurement }` keeps working.\n OutcomeMeasurementDeprecated,\n OutcomeMeasurementDeprecated as OutcomeMeasurement,\n Duration,\n DeviceType,\n DigitalSourceType,\n FrequencyCap,\n GeographicBreakdownSupport,\n // Catalog Domain\n Catalog,\n CatalogType,\n FeedFormat,\n UpdateFrequency,\n ContentIDType,\n CatalogFieldMapping,\n SyncCatalogsRequest,\n SyncCatalogsResponse,\n SyncCatalogsSuccess,\n SyncCatalogsError,\n // Format Assets\n Overlay,\n Placement as LegacyPlacement,\n // Creative Agent Domain\n CreativeManifest as LegacyCreativeManifest,\n CreativeVariable,\n BuildCreativeRequest as LegacyBuildCreativeRequest,\n BuildCreativeResponse as LegacyBuildCreativeResponse,\n BuildCreativeSuccess as LegacyBuildCreativeSuccess,\n BuildCreativeMultiSuccess as LegacyBuildCreativeMultiSuccess,\n BuildCreativeError as LegacyBuildCreativeError,\n PreviewCreativeRequest as LegacyPreviewCreativeRequest,\n PreviewCreativeResponse as LegacyPreviewCreativeResponse,\n GetMediaBuysRequest,\n GetMediaBuysResponse as LegacyGetMediaBuysResponse,\n ImageAsset,\n VideoAsset,\n AudioAsset,\n TextAsset,\n URLAsset,\n HTMLAsset,\n VASTAsset,\n DAASTAsset,\n JavaScriptAsset,\n WebhookAsset,\n CSSAsset,\n MarkdownAsset,\n CatalogAsset,\n BriefAsset,\n ReferenceAsset,\n Provenance,\n PreviewOutputFormat,\n DisclosurePosition,\n // Event Tracking\n EventCustomData,\n // Creative Delivery Domain\n GetCreativeDeliveryRequest,\n GetCreativeDeliveryResponse as LegacyGetCreativeDeliveryResponse,\n // Account Domain\n Account,\n ListAccountsRequest,\n ListAccountsResponse,\n SyncAccountsRequest,\n SyncAccountsResponse,\n SyncAccountsSuccess,\n SyncAccountsError,\n GetAccountFinancialsRequest,\n GetAccountFinancialsResponse,\n GetAccountFinancialsSuccess,\n GetAccountFinancialsError,\n // Pagination\n PaginationRequest,\n PaginationResponse,\n // Nested domain types used as fields within request/response objects\n PackageUpdate as LegacyPackageUpdate,\n Package as LegacyPackage,\n Destination,\n SignalFilters,\n PricingOption,\n PriceGuidance,\n} from './types/tools.generated';\n\n// Legacy creative identity also appears indirectly in content-standard\n// artifacts, creative-feature manifests, media-buy artifacts, and rights\n// constraints. Keep those raw protocol shapes behind explicit migration\n// names; the primary clients intentionally do not expose these tasks until a\n// lossless canonical projection is defined.\nexport type {\n GetMediaBuyArtifactsRequest as LegacyGetMediaBuyArtifactsRequest,\n GetMediaBuyArtifactsResponse as LegacyGetMediaBuyArtifactsResponse,\n} from './types/tools.generated';\nexport type {\n GetRightsRequest as LegacyGetRightsRequest,\n GetRightsResponse as LegacyGetRightsResponse,\n AcquireRightsRequest as LegacyAcquireRightsRequest,\n AcquireRightsResponse as LegacyAcquireRightsResponse,\n UpdateRightsRequest as LegacyUpdateRightsRequest,\n UpdateRightsResponse as LegacyUpdateRightsResponse,\n} from './types/core.generated';\n\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetMediaBuyArtifactsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetMediaBuyArtifactsResponse = never;\nexport type {\n FormatReferenceStructuredObject as LegacyFormatReferenceStructuredObject,\n FormatReferenceStructuredObject as LegacyFormatID,\n} from './types/core.generated';\n/** @deprecated Legacy creative routing identity is available as `LegacyFormatReferenceStructuredObject`. */\nexport type FormatReferenceStructuredObject = never;\n/** @deprecated Legacy creative routing identity is available as `LegacyFormatID`. */\nexport type FormatID = never;\n/** @deprecated Use `LegacyBuildCreativeRequest`; canonical build support awaits a canonical protocol request. */\nexport type BuildCreativeRequest = never;\n/** @deprecated Use `LegacyBuildCreativeResponse`. */\nexport type BuildCreativeResponse = never;\n/** @deprecated Use `LegacyBuildCreativePayload`. */\nexport type BuildCreativePayload = never;\n/** @deprecated Use `LegacyBuildCreativeMultiPayload`. */\nexport type BuildCreativeMultiPayload = never;\n/** @deprecated Use `LegacyListCreativeFormatsRequest`. */\nexport type ListCreativeFormatsRequest = never;\n/** @deprecated Use `LegacyListCreativeFormatsResponse`. */\nexport type ListCreativeFormatsResponse = never;\n/** @deprecated Use `LegacyListCreativeFormatsPayload`. */\nexport type ListCreativeFormatsPayload = never;\n/** @deprecated Use `LegacyListCreativeFormatsResponsePayload`. */\nexport type ListCreativeFormatsResponsePayload = never;\n/** @deprecated Use `LegacyListCreativeFormatsServerPayload`. */\nexport type ListCreativeFormatsServerPayload = never;\n/** @deprecated Use the explicit legacy creative-agent migration types. */\nexport type CreativeManifest = never;\nexport type {\n ManageCreativeAssetsRequest as LegacyManageCreativeAssetsRequest,\n ManageCreativeAssetsResponse as LegacyManageCreativeAssetsResponse,\n CreateMediaBuyAsyncResponseData as LegacyCreateMediaBuyAsyncResponseData,\n GetProductsAsyncResponseData as LegacyGetProductsAsyncResponseData,\n UpdateMediaBuyAsyncResponseData as LegacyUpdateMediaBuyAsyncResponseData,\n SyncCreativesAsyncResponseData as LegacySyncCreativesAsyncResponseData,\n} from './types/adcp';\n/** @deprecated Use `LegacyManageCreativeAssetsRequest`. */\nexport type ManageCreativeAssetsRequest = never;\n/** @deprecated Use `LegacyManageCreativeAssetsResponse`. */\nexport type ManageCreativeAssetsResponse = never;\n/** @deprecated Use `LegacyCreateMediaBuyAsyncResponseData`. */\nexport type CreateMediaBuyAsyncResponseData = never;\n/** @deprecated Use `LegacyGetProductsAsyncResponseData`. */\nexport type GetProductsAsyncResponseData = never;\n/** @deprecated Use `LegacyUpdateMediaBuyAsyncResponseData`. */\nexport type UpdateMediaBuyAsyncResponseData = never;\n/** @deprecated Use `LegacySyncCreativesAsyncResponseData`. */\nexport type SyncCreativesAsyncResponseData = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ListContentStandardsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ListContentStandardsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetContentStandardsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetContentStandardsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type CreateContentStandardsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type CreateContentStandardsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type UpdateContentStandardsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type UpdateContentStandardsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type CalibrateContentRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type CalibrateContentResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ValidateContentDeliveryRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ValidateContentDeliveryResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetCreativeFeaturesRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetCreativeFeaturesResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ContentStandards = never;\n/** @deprecated Use `LegacyArtifact` from the migration surface. */\nexport type Artifact = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetRightsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetRightsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type AcquireRightsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type AcquireRightsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type UpdateRightsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type UpdateRightsResponse = never;\nexport type {\n AccountStatus,\n CreativeStatus,\n DelegationAuthority,\n CatalogAction,\n CatalogItemStatus,\n MediaBuyStatus,\n // CreativeBrief is its own top-level schema (creative-brief.json) — emitted\n // in core.generated, no longer transitively pulled into tools.generated now\n // that BriefAsset merges its allOf[$ref] base inline.\n CreativeBrief,\n CompatibilityPurchaseCoordinatorInput,\n} from './types/core.generated';\n\n// ====== WELL-KNOWN FILE TYPES ======\n// brand.json / adagents.json shapes inferred from the canonical Zod schemas.\n// Re-exported explicitly here (in addition to the transitive `export * from\n// './types'` above) so the top-level public API contract is visible at the\n// main barrel and not dependent on the sub-barrel's wildcard re-export.\n// Source of truth: schemas/cache/{version}/{brand,adagents}.json — regenerate\n// with `npm run generate-wellknown-schemas` when the spec bumps.\nexport type { BrandJson, AdagentsJson } from './types/wellknown-schemas.generated';\nexport { BrandJsonSchema, AdagentsJsonSchema } from './types/wellknown-schemas.generated';\n\n// ====== ERROR CODES ======\n// Standard error code vocabulary for programmatic error handling\nexport type { Error as TaskErrorDetail } from './types/core.generated';\nexport { STANDARD_ERROR_CODES, isStandardErrorCode, getErrorRecovery } from './types/error-codes';\nexport type { StandardErrorCode, ErrorRecovery } from './types/error-codes';\n\n// ====== SERVER-SIDE HELPERS ======\n// Low-level raw response builders are explicit `legacy*` migration APIs.\n// Modern DecisioningPlatform handlers return canonical payloads directly.\nexport {\n adcpError,\n legacyCapabilitiesResponse,\n legacyProductsResponse,\n legacyMediaBuyResponse,\n legacyDeliveryResponse,\n legacyListAccountsResponse,\n legacyListCreativeFormatsResponse,\n legacyUpdateMediaBuyResponse,\n legacyGetMediaBuysResponse,\n legacyPerformanceFeedbackResponse,\n legacyBuildCreativeResponse,\n legacyBuildCreativeMultiResponse,\n legacyPreviewCreativeResponse,\n legacyCreativeDeliveryResponse,\n legacyListCreativesResponse,\n legacyListPropertyListsResponse,\n legacyListCollectionListsResponse,\n legacyListContentStandardsResponse,\n legacyGetPlanAuditLogsResponse,\n legacySyncCreativesResponse,\n legacyGetSignalsResponse,\n legacyActivateSignalResponse,\n legacyCancelMediaBuyResponse,\n legacyAcquireRightsResponse,\n legacyAcquireRightsAcquired,\n legacyAcquireRightsPendingApproval,\n legacyAcquireRightsRejected,\n legacySyncAccountsResponse,\n legacySyncGovernanceResponse,\n legacyReportUsageResponse,\n validActionsForStatus,\n MEDIA_BUY_TRANSITIONS,\n CREATIVE_ASSET_TRANSITIONS,\n isLegalMediaBuyTransition,\n isLegalCreativeTransition,\n assertMediaBuyTransition,\n assertCreativeTransition,\n getAccountMode,\n isSandboxOrMockAccount,\n assertSandboxAccount,\n taskToolResponse,\n registerAdcpTaskTool,\n createTaskCapableServer,\n InMemoryTaskStore,\n isTerminal,\n serve,\n taskScopeFromPrincipal,\n UnknownHostError,\n hostname,\n resolveHost,\n verifyIntrospection,\n registerTestController,\n handleTestControllerRequest,\n TestControllerError,\n toMcpResponse,\n TOOL_INPUT_SHAPE,\n CONTROLLER_SCENARIOS,\n DISCOVERY_ARM_SCENARIOS,\n SEED_SCENARIOS,\n SESSION_ENTRY_CAP,\n enforceMapCap,\n createSeedFixtureCache,\n PostgresTaskStore,\n cleanupExpiredTasks,\n getMcpTasksMigration,\n MCP_TASKS_MIGRATION,\n ADCP_PRE_TRANSPORT,\n checkGovernance,\n governanceDeniedError,\n DEFAULT_REPORTING_CAPABILITIES,\n InMemoryStateStore,\n PostgresStateStore,\n getAdcpStateMigration,\n ADCP_STATE_MIGRATION,\n StateError,\n PatchConflictError,\n SESSION_KEY_FIELD,\n createSessionedStore,\n scopedStore,\n patchWithRetry,\n isPutIfMatchConflict,\n requireSessionKey,\n structuredSerialize,\n structuredDeserialize,\n createIdempotencyStore,\n memoryBackend,\n pgBackend,\n getIdempotencyMigration,\n IDEMPOTENCY_MIGRATION,\n cleanupExpiredIdempotency,\n redisBackend,\n createLazyBackend,\n hashPayload,\n IdempotencyClaimOwnershipError,\n getServeRequestContext,\n ADCP_SERVE_REQUEST_CONTEXT,\n createA2AAdapter,\n A2AInvocationError,\n MCP_APP_RESOURCE_MIME_TYPE,\n} from './server';\nexport type {\n AdcpErrorOptions,\n AdcpErrorResponse,\n McpToolResponse,\n ValidAction,\n CancelMediaBuyInput,\n AdcpTaskToolConfig,\n TaskStore,\n TaskMessageQueue,\n CreateTaskOptions,\n ToolTaskHandler,\n CreateTaskRequestHandlerExtra,\n TaskRequestHandlerExtra,\n CreateTaskResult,\n GetTaskResult,\n Task,\n ServeContext,\n ServeOptions,\n PgQueryable,\n PostgresTaskStoreOptions,\n TestControllerStore,\n TestControllerStoreFactory,\n TestControllerStoreOrFactory,\n ControllerScenario,\n SeedScenario,\n SeedFixtureCache,\n SessionContext,\n OnInstructionsError,\n MaybePromise,\n LegacyAdcpServerConfig,\n LegacyAdcpToolMap,\n AdcpServerToolName,\n AdcpCapabilitiesConfig,\n LegacyAdcpCustomToolConfig,\n McpAppUiMeta,\n McpAppMeta,\n AdcpMcpResourceDefinition,\n McpAppResourceCsp,\n McpAppResourcePermissions,\n McpAppResourceUiMeta,\n McpAppResourceMeta,\n McpAppResourceReadContext,\n AdcpLogger,\n LegacyHandlerContext,\n LegacyMediaBuyHandlers,\n LegacySignalsHandlers,\n LegacyCreativeHandlers,\n LegacyGovernanceHandlers,\n LegacyAccountHandlers,\n LegacyEventTrackingHandlers,\n LegacySponsoredIntelligenceHandlers,\n SignedRequestsConfig,\n AdcpPreTransport,\n AdcpServer,\n AdcpServerTransport,\n AdcpTestRequest,\n AdcpTestToolsCallRequest,\n AdcpTestResponse,\n CheckGovernanceOptions,\n GovernanceCallResult,\n GovernanceApproved,\n GovernanceDenied,\n GovernanceConditions,\n AdcpStateStore,\n ListOptions as StateListOptions,\n ListResult as StateListResult,\n PostgresStateStoreOptions,\n InMemoryStateStoreOptions,\n VersionedDocument,\n PutIfMatchResult,\n PatchWithRetryOptions,\n StateErrorCode,\n SessionKeyContext,\n IdempotencyStore,\n IdempotencyStoreConfig,\n IdempotencyBackend,\n IdempotencyCacheEntry,\n IdempotencyCheckResult,\n MemoryBackendOptions,\n PgBackendOptions,\n RedisBackendOptions,\n RedisBackendClient,\n RedisLikeClient,\n LazyBackendFactory,\n LazyBackendOptions,\n A2AAdapter,\n A2AAdapterOptions,\n A2AAgentCardOverrides,\n A2AAgentCapabilitiesOverride,\n A2AAgentSkillOverride,\n A2AMountOptions,\n ExpressAppLike,\n LegacyHttpSecurityScheme,\n LegacySecurityScheme,\n AccountMode,\n RequireCacheScopeWhenProducts,\n ServerPayload,\n GetProductsPayload,\n CreateMediaBuyPayload,\n UpdateMediaBuyPayload,\n GetMediaBuysPayload,\n GetMediaBuyDeliveryPayload,\n ListCreativesPayload,\n GetCreativeDeliveryPayload,\n CanonicalPreviewCreativePayload,\n PreviewCreativePayload,\n LegacyGetProductsPayload,\n LegacyCreateMediaBuyPayload,\n LegacyUpdateMediaBuyPayload,\n LegacyGetMediaBuysPayload,\n LegacyGetMediaBuyDeliveryPayload,\n LegacyListCreativesPayload,\n LegacyGetCreativeDeliveryPayload,\n LegacyListCreativeFormatsPayload,\n LegacyListCreativeFormatsResponsePayload,\n LegacyListCreativeFormatsServerPayload,\n LegacyBuildCreativePayload,\n LegacyBuildCreativeMultiPayload,\n LegacyPreviewCreativePayload,\n SyncCreativesPayload,\n SyncCreativesSuccessPayload,\n SyncCreativesErrorPayload,\n} from './server';\n\n// ====== ERROR HANDLING & RETRY ======\nexport { isRetryable, getRetryDelay } from './utils/retry';\nexport { decideRetry, BuyerRetryPolicy } from './utils/buyer-retry-policy';\nexport type { RetryDecision, RetryContext, RetryDecisionOverride } from './utils/buyer-retry-policy';\n\n// Public API: use these for programmatic error handling\nexport {\n extractAdcpErrorInfo,\n extractCorrelationId,\n resolveRecovery,\n getExpectedAction,\n} from './utils/error-extraction';\n\n// Internal: transport-level extraction (used by SDK internals; prefer result.adcpError instead)\nexport { extractAdcpErrorFromMcp, extractAdcpErrorFromTransport } from './utils/error-extraction';\nexport type { ExtractedAdcpError } from './utils/error-extraction';\nexport { extractVersionUnsupportedDetails } from './utils/error-extraction';\nexport type { VersionUnsupportedDetails } from './utils/error-extraction';\n\n// ====== BACKWARDS COMPATIBILITY ======\n// Deprecated types from past protocol migrations\nexport type {\n BrandManifest,\n BrandManifestReference,\n AssetContentType,\n PromotedProducts,\n PromotedOfferings,\n Measurement,\n} from './types/compat';\nexport { brandManifestToBrandReference, promotedProductsToCatalog, promotedOfferingsToCatalog } from './types/compat';\n\n// Request parameter normalization (deprecated field auto-conversion)\nexport { normalizeRequestParams, normalizePackageParams } from './utils/request-normalizer';\n\n// get_products response cache-scope helpers\nexport {\n ensureGetProductsCacheScope,\n validateGetProductsCacheScope,\n type EnsureGetProductsCacheScopeOptions,\n type GetProductsCacheScope,\n type GetProductsResponseWithCacheScope,\n type GetProductsCacheScopeValidation,\n} from './utils/get-products-cache-scope';\n\n// ====== ENUM VALUE ARRAYS ======\n// `${TypeName}Values` const arrays for every named string-literal union in\n// the spec. Consumers can enumerate or validate against these without\n// duplicating literal lists from the Zod unions.\nexport * from './types/enums.generated';\n\n// `${ParentSchema}_${PropertyName}Values` const arrays for inline\n// anonymous unions inside named schemas — e.g.\n// `ImageAssetRequirements_FormatsValues`,\n// `VideoAssetRequirements_ContainersValues`. Companion to enums.generated;\n// see scripts/generate-inline-enum-arrays.ts for naming + scoping rules.\nexport * from './types/inline-enums.generated';\nexport * from './types/enum-compat';\n\n// PreviewCreativeRequestSchema is now a flat z.object() with request_type discriminant.\n// The old variant exports (PreviewCreativeSingleRequestSchema, etc.) are no longer needed —\n// use PreviewCreativeRequestSchema.shape directly with server.registerTool().\n\n// ====== AUTHENTICATION ======\n// Auth utilities for custom integrations\nexport { getAuthToken, createAdCPHeaders, createMCPAuthHeaders, createAuthenticatedFetch } from './auth';\n\n// OAuth diagnostics utilities (see src/lib/auth/oauth/diagnostics.ts)\nexport {\n parseWWWAuthenticate,\n decodeAccessTokenClaims,\n validateTokenAudience,\n type WWWAuthenticateChallenge,\n type DecodedJWTHeader,\n type DecodedJWTClaims,\n type DecodedAccessToken,\n type TokenAudienceResult,\n InvalidTokenError,\n InsufficientScopeError,\n} from './auth/oauth';\n\n// End-to-end OAuth handshake diagnosis — powers `adcp diagnose-auth`\nexport {\n runAuthDiagnosis,\n AUTH_DIAGNOSIS_SCHEMA_VERSION,\n type DiagnoseOptions,\n type HttpCapture as DiagnosisHttpCapture,\n type DiagnosisStep,\n type Hypothesis as DiagnosisHypothesis,\n type HypothesisVerdict as DiagnosisHypothesisVerdict,\n type AuthDiagnosisReport,\n} from './auth/oauth';\n\n// Zero-config OAuth: actionable error + discovery + file storage + per-agent binding\nexport {\n NeedsAuthorizationError,\n discoverAuthorizationRequirements,\n createFileOAuthStorage,\n bindAgentStorage,\n getAgentStorage,\n unbindAgentStorage,\n type AuthorizationRequirements,\n type DiscoverAuthorizationOptions,\n type FileOAuthStorageOptions,\n} from './auth/oauth';\n\n// OAuth 2.0 client credentials (RFC 6749 §4.4) — machine-to-machine token\n// exchange used by programmatic CC consumers and by the CLI's `--save-auth\n// --oauth-token-url ...` flow. The library call path pre-refreshes before\n// every request automatically when `AgentConfig.oauth_client_credentials`\n// is set; these symbols are exposed for consumers that need explicit\n// control (building custom AgentConfigs, testing, or implementing\n// server-side `save_agent` endpoints like Addie's).\nexport {\n exchangeClientCredentials,\n ensureClientCredentialsTokens,\n ClientCredentialsExchangeError,\n MissingEnvSecretError,\n resolveSecret,\n isEnvSecretReference,\n toEnvSecretReference,\n extractEnvSecretName,\n type ExchangeClientCredentialsOptions,\n type EnsureClientCredentialsOptions,\n type AgentOAuthClientCredentials,\n} from './auth/oauth';\n\n// ====== VALIDATION ======\n// Schema validation for requests/responses\nexport { validateAgentUrl, validateAdCPResponse, getExpectedSchema, handleAdCPResponse } from './validation';\n\n// ====== PROTOCOL CLIENTS ======\n// Low-level protocol clients for MCP and A2A (primarily for testing)\nexport {\n ProtocolClient,\n callMCPTool,\n callA2ATool,\n createMCPClient,\n createA2AClient,\n closeMCPConnections,\n closeOAuthConnections,\n bundleSupportsAdcpVersionField,\n sanitizeTransportHeaders,\n sanitizeTransportUrl,\n} from './protocols';\nexport { toReleasePrecisionWire, validateAdcpVersionWire } from './validation/schema-loader';\nexport type {\n CallToolOptions,\n TransportActivity,\n TransportActivityContext,\n TransportActivityHandler,\n TransportOptions,\n} from './protocols';\n\n// ====== WIRE VERSION HELPERS (NAMESPACE) ======\n// Grouped re-exports of the three AdCP `adcp_version` envelope helpers\n// (spec PR adcontextprotocol/adcp#3493). Prefer this surface over the\n// individual top-level exports — the namespace stays stable as helpers\n// are added (a fourth helper drops in here without churning the barrel).\n// The top-level exports are kept for back-compat and aren't deprecated.\nimport { bundleSupportsAdcpVersionField as _isSupported } from './protocols';\nimport { toReleasePrecisionWire as _normalize, validateAdcpVersionWire as _validate } from './validation/schema-loader';\nexport const wireVersion = {\n isSupported: _isSupported,\n normalize: _normalize,\n validate: _validate,\n} as const;\n\n// ====== RESPONSE UTILITIES ======\n// Public utilities for working with AdCP responses\nexport {\n getStandardFormatsLegacy,\n unwrapProtocolResponse,\n isAdcpError,\n isAdcpSuccess,\n isTerminalAdcpError,\n hasAdvisorySuccessPayload,\n getAuthoritativeMediaBuyStatus,\n isMediaBuyStatus,\n resolveTaskState,\n} from './utils';\nexport type { EffectiveTaskState, ResolvedTaskState, ResolveTaskStateOptions } from './utils';\nexport { injectLegacyEnvelopeStatus } from './utils/envelope-status-compat';\nexport { extractResult, type ToolCallResultLike } from './utils';\nexport { REQUEST_TIMEOUT, MAX_CONCURRENT, LEGACY_STANDARD_FORMATS } from './utils';\nexport {\n batchPreviewProducts,\n batchPreviewFormatsLegacy,\n clearPreviewCache,\n type PreviewResult,\n type LegacyPreviewResult,\n type BatchPreviewOptions,\n type PreviewCacheBackend,\n type PreviewCacheEntry,\n} from './utils';\nexport { detectProtocol, detectProtocolWithTimeout } from './utils';\nexport { A2A_CARD_PATHS, isAgentCardPath, isWellKnownAgentCardUrl, buildCardUrls, stripAgentCardPath } from './utils';\n\n// ====== PRICING UTILITIES ======\n// Pricing adapter for v2/v3 compatibility and CPA detection\nexport { isCPAPricing } from './utils';\n\n// ====== PAGINATION UTILITIES ======\n// Auto-pagination helpers for cursor-based AdCP endpoints\nexport { paginate, paginatePages, type PaginateOptions } from './utils';\n\n// ====== FORMAT ASSET UTILITIES ======\n// Structural access to canonical asset-slot arrays. These helpers deliberately\n// do not require or expose a legacy named-format `Format` / `format_id`.\nexport {\n getFormatAssets,\n getRequiredAssets,\n getOptionalAssets,\n getIndividualAssets,\n getRepeatableGroups,\n usesDeprecatedAssetsField,\n getAssetCount,\n hasAssets,\n type CanonicalFormatAssetSlot,\n type FormatAssetsInput,\n type IndividualFormatAssetSlot,\n type RepeatableFormatAssetGroup,\n} from './utils/format-assets';\n\n// ====== CREATIVE ASSET BUILDERS ======\n// Typed factories that inject the `asset_type` discriminator.\n// `imageAsset({ url, width, height })` returns a valid `ImageAsset`\n// without repeating `asset_type: 'image'` at every call site.\n// Prefer the named exports; use `Asset.image({...})` when constructing\n// several asset types together (assets-by-role manifests).\nexport {\n Asset,\n imageAsset,\n videoAsset,\n audioAsset,\n textAsset,\n urlAsset,\n htmlAsset,\n javascriptAsset,\n cssAsset,\n markdownAsset,\n webhookAsset,\n} from './utils/asset-builders';\n\n// ====== FORMAT ASSET SLOT BUILDERS ======\n// Typed factories for the slot definitions inside `Format.assets[]` — what a\n// seller/publisher declares it accepts. Each builder injects the `item_type`\n// and `asset_type` discriminators, and the `requirements` object is strictly\n// typed per asset_type: misnamed fields (`file_types` vs `formats`) and wrong\n// units (`min_duration_seconds` vs `min_duration_ms`) fail type-check.\n// Use `repeatableGroup({...})` (or `FormatAsset.group(...)`) to wrap assets\n// that repeat — that's the correct home for `min_count` / `max_count`.\nexport {\n FormatAsset,\n imageAssetSlot,\n videoAssetSlot,\n audioAssetSlot,\n textAssetSlot,\n markdownAssetSlot,\n htmlAssetSlot,\n cssAssetSlot,\n javascriptAssetSlot,\n vastAssetSlot,\n daastAssetSlot,\n urlAssetSlot,\n webhookAssetSlot,\n briefAssetSlot,\n catalogAssetSlot,\n repeatableGroup,\n imageGroupAsset,\n videoGroupAsset,\n audioGroupAsset,\n textGroupAsset,\n markdownGroupAsset,\n htmlGroupAsset,\n cssGroupAsset,\n javascriptGroupAsset,\n vastGroupAsset,\n daastGroupAsset,\n urlGroupAsset,\n webhookGroupAsset,\n} from './utils/format-asset-slot-builders';\n\n// ====== PREVIEW RENDER BUILDERS ======\n// Typed factories that inject the `output_format` discriminator on\n// `PreviewRender` objects. `urlRender({ render_id, preview_url, role })`\n// returns a valid url-variant render without repeating\n// `output_format: 'url'` at every call site. Matrix runs consistently\n// saw this drift: Claude emitted renders that omitted the discriminator\n// or its required sibling field.\nexport { Render, urlRender, htmlRender, bothRender } from './utils/render-builders';\n\n// ====== FORMAT RENDER BUILDERS ======\n// Typed factories for `Format.renders[]` entries on format declarations.\n// The item schema's `oneOf` forces a render to satisfy exactly one branch —\n// either `dimensions` (display/video) OR `parameters_from_format_id: true`\n// (audio, template formats). A render with only `{ role }` fails validation.\n// Audio specifically cannot use `{ role, duration_seconds }` — duration is\n// not a recognized `renders[]` field and wouldn't satisfy the oneOf anyway.\n// Use `parameterizedRender({ role })` (or the alias `templateRender`) so\n// format_id parameters carry duration.\n//\n// `FormatRender` below is the grouped namespace (value export). The v3\n// structural interface by the same name is re-exported from\n// `utils/format-renders` further down — TypeScript keeps type and value\n// namespaces separate, so both are available under the single import.\nexport {\n FormatRender,\n displayRender,\n parameterizedRender,\n templateRender,\n type DimensionsRender,\n type ParameterizedRender,\n type RenderItem,\n} from './utils/format-render-builders';\n\n// ====== CANONICAL CREATIVE FORMAT HELPERS ======\n// Primary application surfaces author canonical `Product.format_options[]`,\n// `format_option_refs[]`, and creative `format_kind`. Raw projection helpers\n// live only under the explicit `@adcp/sdk/v2/projection` migration subpath.\nexport {\n CanonicalFormat,\n canonicalFormatDeclaration,\n type CanonicalFormatDeclaration,\n type CanonicalFormatDeclaration as Format,\n type CanonicalFormatDeclarationFields,\n type CanonicalFormatKind,\n type CanonicalFormatParams,\n type ProductCardDetailedFields,\n type ProductCardFields,\n} from './v2/projection';\n\nexport {\n toCanonicalFormatOptionsWithRoutes,\n toAdditiveCanonicalProduct,\n withAdditiveCanonicalFormatOptions,\n toCanonicalOnlyProduct,\n toCanonicalOnlyResponse,\n packageRefsForFormatOptions,\n FormatOptionRefsLookupError,\n CreativeFormatCapabilityError,\n CreativeFormatProjectionError,\n type LegacyFormatConversionContext,\n type LegacyFormatConverter,\n type LegacyFormatResolutionContext,\n type LegacyFormatResolver,\n legacyFormatConverterFromCatalogSnapshots,\n canonicalFormatLegacyResolverFromCatalogSnapshots,\n canonicalFormatLegacyResolverFromRoutes,\n legacyRoutesForProduct,\n projectionAdaptersFromCatalogSnapshots,\n type ProjectionCatalogAdapters,\n type ProjectionCatalogSnapshot,\n type ProjectionCatalogSource,\n type CanonicalFormatLegacyResolver,\n type CanonicalFormatLegacyResolutionContext,\n type CanonicalFormatLegacyRoute,\n type AdditiveCanonicalProduct,\n type CanonicalOnlyProduct,\n type CanonicalCreativeAsset,\n type CanonicalCreativeAsset as CreativeAsset,\n type CanonicalSyncCreativeAsset,\n type CanonicalCreateMediaBuyRequest,\n type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest,\n type CanonicalCreateMediaBuyResponse,\n type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse,\n type CanonicalCreativeResponse,\n type CanonicalCreativeFilters,\n type CanonicalCreativeFilters as CreativeFilters,\n type CanonicalGetCreativeDeliveryResponse,\n type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse,\n type CanonicalGetMediaBuyDeliveryResponse,\n type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse,\n type CanonicalGetMediaBuysResponse,\n type CanonicalGetMediaBuysResponse as GetMediaBuysResponse,\n type CanonicalGetProductsResponse as GetProductsResponse,\n type CanonicalGetProductsRequest,\n type CanonicalGetProductsRequest as GetProductsRequest,\n type CanonicalListCreativesRequest,\n type CanonicalListCreativesRequest as ListCreativesRequest,\n type CanonicalListCreativesResponse,\n type CanonicalListCreativesResponse as ListCreativesResponse,\n type CanonicalListedCreative,\n type CanonicalPackageRequest,\n type CanonicalPackageRequest as PackageRequest,\n type CanonicalPackageUpdate,\n type CanonicalPackageUpdate as PackageUpdate,\n type CanonicalPackage,\n type CanonicalPackage as Package,\n type CanonicalPlacement,\n type CanonicalPlacement as Placement,\n type CanonicalPreviewCreativeRequest,\n type CanonicalPreviewCreativeRequest as PreviewCreativeRequest,\n type CanonicalPreviewCreativeResponse,\n type CanonicalPreviewCreativeResponse as PreviewCreativeResponse,\n type CanonicalProduct,\n type CanonicalProduct as Product,\n type CanonicalProjectedCreative,\n type CanonicalSyncCreativesRequest,\n type CanonicalSyncCreativesRequest as SyncCreativesRequest,\n type CanonicalSyncCreativesResponse,\n type CanonicalSyncCreativesResponse as SyncCreativesResponse,\n type CanonicalUpdateMediaBuyRequest,\n type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest,\n type CanonicalUpdateMediaBuyResponse,\n type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse,\n type LegacyCreativeAsset,\n type CanonicalCreativeFormatSelectorContainer,\n type PackageFormatRefs,\n type ProjectionDiagnostic,\n type SyncCreativeFormatProjection,\n} from './v2/projection';\n\n// ====== ACTIVATION KEY BUILDERS ======\n// Typed factories that inject the `type` discriminator on `ActivationKey`.\n// SHAPE-GOTCHAS §1 — `key`/`value` flatten on the activation key itself.\nexport { activationKey, segmentIdActivationKey, keyValueActivationKey } from './utils/activation-key-builders';\n\n// ====== SIGNAL ID BUILDERS AND ACCESSORS ======\n// Typed factories that inject the `source` discriminator on `SignalID`.\n// Used in `signal_ids` filter arrays and as the `signal_id` provenance\n// field on every `Signal` returned by `get_signals`. SHAPE-GOTCHAS §2.\n// To read fields from a received `SignalID`, use `getSignalId` (segment id)\n// and `getSignalIssuer` (data_provider_domain or agent_url).\nexport { signalId, catalogSignalId, agentSignalId, getSignalId, getSignalIssuer } from './utils/signal-id-builders';\nexport {\n buildActivateSignalRequest,\n getSignalActivationId,\n getSignalPricingOptionIds,\n normalizeDiscoveredSignal,\n} from './utils/signal-discovery-helpers';\nexport type {\n BuildActivateSignalRequestOptions,\n DiscoveredSignal,\n NormalizedDiscoveredSignal,\n} from './utils/signal-discovery-helpers';\n\n// ====== BUILD CREATIVE RETURN BUILDERS ======\n// Typed factories for the four return shapes accepted by the framework\n// from `build_creative` handlers. `.single` / `.multi` emit bare manifests\n// the framework auto-wraps; `.singleEnveloped` / `.multiEnveloped` emit\n// the shaped envelope when the handler needs to attach `sandbox` /\n// `expires_at` / `preview`. SHAPE-GOTCHAS §5.\nexport {\n buildCreativeReturn,\n singleBuildCreativeReturn,\n multiBuildCreativeReturn,\n singleEnvelopedBuildCreativeReturn,\n multiEnvelopedBuildCreativeReturn,\n} from './utils/build-creative-return-builders';\n\n// ====== PREVIEW CREATIVE BUILDERS ======\n// Typed factories that inject the `response_type` discriminator on\n// `PreviewCreativeResponse`. Three-way oneOf — `single | batch | variant`.\n// Pair with `urlRender` / `htmlRender` / `bothRender` for the per-render\n// `output_format`. SHAPE-GOTCHAS §4.\nexport {\n previewCreative,\n singlePreviewCreativeResponse,\n batchPreviewCreativeResponse,\n variantPreviewCreativeResponse,\n} from './utils/preview-creative-builders';\n\n// ====== MEDIA BUY DELIVERY NOTIFICATION BUILDERS ======\n// Typed factories that inject the `notification_type` discriminator on\n// `GetMediaBuyDeliveryResponse` for webhook deliveries. Five variants:\n// `scheduled` / `final` / `delayed` / `adjusted` / `window_update`.\nexport {\n mediaBuyDeliveryNotification,\n scheduledMediaBuyDeliveryNotification,\n finalMediaBuyDeliveryNotification,\n delayedMediaBuyDeliveryNotification,\n adjustedMediaBuyDeliveryNotification,\n windowUpdateMediaBuyDeliveryNotification,\n} from './utils/media-buy-delivery-notification-builders';\n\n// ====== V3.0 COMPATIBILITY UTILITIES ======\n// Capabilities detection, version negotiation, and v3 enforcement.\n// See also:\n// - `VersionUnsupportedError` in errors — thrown by requireV3()/requireV3ForMutations\n// - `SyncCreativesItemSchema` in validation — per-item sync_creatives validator\n// - `ADCP_MAJOR_VERSION` / `COMPATIBLE_ADCP_VERSIONS` in version information\n// - `SingleAgentClient#requireV3()` / `AgentClient#requireV3()` — runtime gate\nexport {\n buildSyntheticCapabilities,\n buildSyntheticV3Capabilities,\n parseCapabilitiesResponse,\n supportsV3,\n supportsProtocol,\n supportsPropertyListFiltering,\n supportsContentStandards,\n supportsSyncCreatives,\n requiresOperatorAuth,\n requiresAccountForProducts,\n supportsSandbox,\n supportsExperimentalFeature,\n resolveFeature,\n listDeclaredFeatures,\n MEDIA_BUY_TOOLS,\n SIGNALS_TOOLS,\n GOVERNANCE_TOOLS,\n CREATIVE_TOOLS,\n EVENT_TRACKING_TOOLS,\n ACCOUNT_TOOLS,\n PROTOCOL_TOOLS,\n BRAND_RIGHTS_TOOLS,\n TASK_FEATURE_MAP,\n} from './utils/capabilities';\nexport type {\n AdcpCapabilities,\n AdcpMajorVersion,\n AdcpProtocol,\n AccountCapabilities,\n MediaBuyFeatures,\n ToolInfo,\n FeatureName,\n} from './utils/capabilities';\n\n// Buyer-side creative delivery helpers\nexport { inlineCreativesForPackages, inlineCreativesForPackagesLegacy } from './utils/creative-delivery';\nexport type {\n InlineCreativeAssignment,\n InlineCreativePackage,\n InlineCreativePackagePatch,\n InlineCreativesForPackagesOptions,\n InlineCreativesForPackagesLegacyOptions,\n LegacyInlineCreativePackage,\n} from './utils/creative-delivery';\n\n// Creative assignment adapter (v2 creative_ids ↔ v3 creative_assignments)\nexport {\n adaptPackageRequestForV2,\n adaptCreateMediaBuyRequestForV2,\n adaptUpdateMediaBuyRequestForV2,\n normalizePackageResponse,\n normalizeMediaBuyResponse,\n usesV2CreativeIds,\n usesV3CreativeAssignments,\n getCreativeIds,\n getCreativeAssignments,\n} from './utils/creative-adapter';\nexport type { CreativeAssignment } from './utils/creative-adapter';\n\n// Format renders normalizer (v2 dimensions ↔ v3 renders)\nexport {\n normalizeFormatRenders,\n normalizeFormatsResponse,\n getFormatRenders,\n getPrimaryRender,\n getCompanionRenders,\n isMultiRenderFormat,\n usesV2Dimensions,\n usesV3Renders,\n getFormatDimensions,\n} from './utils/format-renders';\n// FormatRender (the v3 structural interface) was renamed to FormatRenderEntry\n// so the `FormatRender` name at the barrel becomes the factory namespace\n// exported from `./utils/format-render-builders` above. The deprecated type\n// alias `FormatRender = FormatRenderEntry` still lives in `utils/format-renders`\n// for callers importing the sub-module directly; it's not re-exported here.\nexport type { FormatRenderEntry, RenderDimensions } from './utils/format-renders';\n\n// Preview response normalizer (v2 output_id ↔ v3 render_id)\nexport {\n normalizePreviewRender,\n normalizePreview,\n normalizePreviewCreativeResponse,\n usesV2RenderFields,\n usesV3RenderFields,\n getRenderId,\n getRenderRole,\n getPrimaryPreviewRender,\n getPreviewUrl,\n getPreviewHtml,\n} from './utils/preview-normalizer';\nexport type { PreviewRendererMetadata, PreviewRenderV3 } from './utils/preview-normalizer';\nexport {\n resolvePreviewAuthority,\n type PlacementPreviewCandidate,\n type PreviewAuthorityInput,\n type PreviewAuthorityResolution,\n type PreviewFidelity,\n type SelectedPreviewAuthority,\n type SellerPreviewCandidate,\n} from './utils/preview-authority';\n\n// ====== TYPE GUARD UTILITIES ======\n// Type guards for automatic TypeScript type narrowing in webhook handlers\nexport {\n // Generic status checks\n isStatusCompleted,\n isStatusWorking,\n isStatusInputRequired,\n isStatusSubmitted,\n isStatusFailed,\n isStatusRejected,\n // GetProducts type guards\n isGetProductsCompleted,\n isGetProductsWorking,\n isGetProductsInputRequired,\n isGetProductsSubmitted,\n isGetProductsFailed,\n // CreateMediaBuy type guards\n isCreateMediaBuyCompleted,\n isCreateMediaBuyWorking,\n isCreateMediaBuyInputRequired,\n isCreateMediaBuySubmitted,\n isCreateMediaBuyFailed,\n // UpdateMediaBuy type guards\n isUpdateMediaBuyCompleted,\n isUpdateMediaBuyWorking,\n isUpdateMediaBuyInputRequired,\n isUpdateMediaBuySubmitted,\n isUpdateMediaBuyFailed,\n // SyncCreatives type guards\n isSyncCreativesCompleted,\n isSyncCreativesWorking,\n isSyncCreativesInputRequired,\n isSyncCreativesSubmitted,\n isSyncCreativesFailed,\n} from './utils/typeGuards';\n\n// ====== VERSION INFORMATION ======\nexport {\n getAdcpVersion,\n getLibraryVersion,\n isCompatibleWith,\n getCompatibleVersions,\n parseAdcpMajorVersion,\n ADCP_VERSION,\n ADCP_MAJOR_VERSION,\n LIBRARY_VERSION,\n COMPATIBLE_ADCP_VERSIONS,\n VERSION_INFO,\n} from './version';\nexport type { AdcpVersion } from './version';\nexport { listBundledAdcpVersions, resolveAdcpVersion } from './utils/adcp-version-config';\n\n// ====== OBSERVABILITY ======\n// OpenTelemetry tracing utilities (no-op if @opentelemetry/api not installed)\nexport {\n getTracer,\n isTracingEnabled,\n injectTraceHeaders,\n withSpan,\n addSpanAttributes,\n recordSpanException,\n} from './observability';\n\n// ====== AGENT CLASSES ======\n// Primary agent interface - returns raw AdCP responses\n// Generated all-tool facades mirror raw protocol schemas, including legacy\n// format_id-bearing tools. Keep them explicit so the primary root surface\n// cannot bypass AgentClient's canonical boundary.\nexport { Agent as LegacyAgent, AgentCollection as LegacyAgentCollection } from './agents/index.generated';\n\n// ====== SERVER-SIDE ADAPTERS ======\n// Adapters for building AdCP servers with customizable business logic\nexport {\n // Content Standards\n LegacyContentStandardsAdapter,\n type LegacyIContentStandardsAdapter,\n type LegacyContentEvaluationResult,\n LegacyContentStandardsErrorCodes,\n isLegacyContentStandardsError,\n legacyDefaultContentStandardsAdapter,\n // Property Lists\n PropertyListAdapter,\n type IPropertyListAdapter,\n type ResolvedProperty,\n PropertyListErrorCodes,\n isPropertyListError,\n defaultPropertyListAdapter,\n // Sponsored Intelligence Sessions\n SISessionManager,\n AISISessionManager,\n type ISISessionManager,\n type SISession,\n SIErrorCodes,\n defaultSISessionManager,\n // Governance (seller-side committed checks)\n GovernanceAdapter,\n defaultGovernanceAdapter,\n type IGovernanceAdapter,\n type GovernanceAdapterConfig,\n type GovernanceAdapterErrorCode,\n type CommittedCheckRequest,\n type LegacyCommittedCheckRequest,\n type ModernCommittedCheckRequest,\n GovernanceAdapterError,\n GovernanceAdapterErrorCodes,\n isGovernanceAdapterError,\n // Implicit Account Store (resolution: 'implicit') — Shape A reference adapter\n InMemoryImplicitAccountStore,\n defaultImplicitKeyFn,\n type ImplicitAccountStoreOptions,\n // OAuth pass-through resolver — Shape B accounts.resolve factory\n createOAuthPassthroughResolver,\n type OAuthPassthroughResolverOptions,\n // Roster-backed AccountStore — Shape C factory for publisher-curated explicit platforms\n createRosterAccountStore,\n type RosterAccountStoreOptions,\n // Derived AccountStore — Shape D factory for single-tenant `resolution: 'derived'` agents\n createDerivedAccountStore,\n type DerivedAccountStoreOptions,\n} from './adapters';\n\n// ====== BACKWARD COMPATIBILITY & ENVIRONMENT LOADING ======\n\nimport type { AgentConfig } from './types';\nimport { ADCPMultiAgentClient } from './core/ADCPMultiAgentClient';\n\n/**\n * Legacy AdCPClient alias for backward compatibility\n * @deprecated Use ADCPMultiAgentClient instead for new code\n */\nexport const AdCPClient = ADCPMultiAgentClient;\n\n// Legacy configuration manager maintained for backward compatibility\n// The enhanced ConfigurationManager is exported above\n\n/**\n * Legacy createAdCPClient function for backward compatibility\n * @deprecated Use new ADCPMultiAgentClient constructor instead\n */\nexport function createAdCPClient(agents?: AgentConfig[]): ADCPMultiAgentClient {\n return new AdCPClient(agents);\n}\n\n/**\n * Load agents from environment and create multi-agent client\n * @deprecated Use ADCPMultiAgentClient.fromEnv() instead\n */\nexport function createAdCPClientFromEnv(): ADCPMultiAgentClient {\n return ADCPMultiAgentClient.fromEnv();\n}\n\n// ====== SUBSTITUTION OBSERVER / ENCODER ======\n// Primitives backing the `substitution-observer-runner` test-kit contract.\n// Runners (conformance graders) import the observer side; sales/retail-\n// media agents implementing the #2620 catalog-item macro encoding rule\n// import `SubstitutionEncoder`. Re-exported here for discoverability;\n// the full surface is also available via `@adcp/sdk/substitution`.\nexport {\n SubstitutionObserver,\n SubstitutionEncoder,\n PreviewFetchError,\n MacroInRawValueError,\n CATALOG_MACRO_VECTORS,\n getCatalogMacroVector,\n extractTrackerUrls,\n matchBindings,\n assertRfc3986Safe,\n assertUnreservedOnly,\n assertNoNestedExpansion,\n assertSchemePreserved,\n DEFAULT_MACRO_PROHIBITED_PATTERN,\n enforceSsrfPolicy,\n enforceSsrfPolicyResolved,\n DEFAULT_SSRF_POLICY,\n encodeUnreserved,\n equalUnderHexCasePolicy,\n isUnreservedOnly,\n divergenceOffset,\n translateUniversalMacros,\n UnsafeNativeMappingError,\n compileUniversalMacroTemplate,\n} from './substitution';\nexport type {\n ObserverFetchOptions,\n ObserverDispatcher,\n CatalogMacroVectorName,\n AssertionOptions as SubstitutionAssertionOptions,\n AssertionResult as SubstitutionAssertionResult,\n BindingMatch,\n CatalogBinding,\n CatalogMacroVector,\n PolicyResult as SubstitutionPolicyResult,\n SsrfPolicy,\n TrackerUrlRecord,\n MacroMapping,\n TranslateResult,\n BuiltInSourceMacroSyntax,\n CompileUniversalMacroTemplateInput,\n CompileUniversalMacroTemplateResult,\n CustomSourceMacroSyntax,\n MacroDocumentationReference,\n SourceMacroMapping,\n SourceMacroRequirement,\n SourceMacroRequirementSatisfaction,\n SourceMacroSyntax,\n SourceMacroSyntaxDeclaration,\n UniversalMacroCompileDiagnostic,\n UniversalMacroOccurrence,\n} from './substitution';\n\n// ====== TEST HELPERS ======\n// Re-export test helpers for convenience (also available via @adcp/sdk/testing)\nexport {\n testAgent,\n testAgentA2A,\n testAgentClient,\n createTestAgent,\n TEST_AGENT_TOKEN,\n TEST_AGENT_MCP_CONFIG,\n TEST_AGENT_A2A_CONFIG,\n testAgentNoAuth,\n testAgentNoAuthA2A,\n TEST_AGENT_NO_AUTH_MCP_CONFIG,\n TEST_AGENT_NO_AUTH_A2A_CONFIG,\n creativeAgent,\n testBrandRightsFlow,\n hasBrandRightsTools,\n expectControllerError,\n expectControllerSuccess,\n RateLimitTripObserver,\n RATE_LIMIT_TRIP_CONTRACT,\n RATE_LIMIT_TRIP_DEFAULT_REPLAY_MAX_WAIT_SECONDS,\n RATE_LIMIT_TRIP_MAX_ATTEMPTS_MAX,\n RATE_LIMIT_TRIP_MAX_ATTEMPTS_MIN,\n validateRateLimitTripSpec,\n} from './testing/index';\nexport type {\n ControllerErrorWithDetail,\n TestClient,\n RateLimitTripSpec,\n RateLimitTripClient,\n RateLimitTripFailureCode,\n RateLimitTripObservation,\n RateLimitTripObserverOptions,\n RateLimitTripResponseSnapshot,\n RateLimitTripStructuredResult,\n RateLimitTripTaskOptions,\n} from './testing/index';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,sBASO;AAiBP,IAAAA,mBAUO;AAwGP,mBASO;AAgCP,4BAMO;AACP,8BAKO;AACP,yCAaO;AAkBP,yCAQO;AACP,sCAOO;AACP,yCAMO;AACP,6BAQO;AACP,+BAMO;AAIP,+BAKO;AAeP,kCAMO;AACP,yBAUO;AACP,2BAgCO;AACP,0CAuBO;AACP,wCAwBO;AACP,kCAIO;AACP,kCAAqC;AACrC,iCAOO;AACP,0BAA6B;AAC7B,mBAAmC;AAEnC,oCAAqF;AACrF,+BAKO;AA2CP,kCAAqC;AACrC,6BAKO;AAOP,wBAuBO;AAOP,iBAWO;AAKP,kCAwBO;AA0CP,4BAAkC;AAclC,0BAKO;AAGP,kCAIO;AAWP,0BAAc,6BA5mBd;AA4nBA,2BAA8E;AAG9E,oBA6BO;AAoDP,uBA+BO;AACP,IAAAC,uBAAmC;AAGnC,yBASO;AAGP,iBAAkD;AAClD,gCAAsD;AAGtD,0BAAc,0BAnwBd;AAswBA,0BAAc,oBAtwBd;AA0oCA,+BAAoD;AAKpD,yBAA4E;AAM5E,oBAoGO;AA8HP,mBAA2C;AAC3C,gCAA8C;AAI9C,8BAKO;AAGP,IAAAC,2BAAuE;AAEvE,IAAAA,2BAAiD;AAajD,oBAAqG;AAGrG,gCAA+D;AAG/D,sCAOO;AAMP,0BAAc,oCAt6Cd;AA66CA,0BAAc,2CA76Cd;AA86CA,0BAAc,gCA96Cd;AAs7CA,kBAAgG;AAGhG,mBAWO;AAGP,IAAAC,gBASO;AAGP,IAAAA,gBAUO;AASP,IAAAA,gBAYO;AAIP,wBAA8F;AAI9F,uBAWO;AACP,2BAAgE;AAehE,IAAAC,oBAA+D;AAC/D,IAAAC,wBAA2F;AAS3F,mBAUO;AAEP,oCAA2C;AAC3C,IAAAC,gBAAuD;AACvD,IAAAA,gBAAyE;AACzE,IAAAA,gBASO;AACP,IAAAA,gBAA0D;AAC1D,IAAAA,gBAA4G;AAI5G,IAAAA,gBAA6B;AAI7B,IAAAA,gBAA8D;AAK9D,2BAaO;AAQP,4BAYO;AAUP,wCA6BO;AASP,6BAA0D;AAgB1D,oCAQO;AAMP,wBAUO;AAEP,IAAAC,qBA+EO;AAKP,qCAA6E;AAQ7E,gCAAuF;AACvF,sCAKO;AAaP,4CAMO;AAOP,uCAKO;AAMP,sDAOO;AASP,0BAwBO;AAYP,+BAA6E;AAW7E,8BAUO;AAIP,4BAUO;AASP,gCAWO;AAEP,+BAQO;AAIP,wBAgCO;AAGP,qBAWO;AAEP,iCAA4D;AAI5D,2BAOO;AAOP,oBAA+E;AAI/E,sBA+CO;AAKP,IAAAC,+BAAqC;AAiCrC,0BAwBO;AA+BP,qBAuBO;AAnpBA,MAAM,cAAc;AAAA,EACzB,aAAa,kBAAAC;AAAA,EACb,WAAW,sBAAAC;AAAA,EACX,UAAU,sBAAAC;AACZ;AAsiBO,MAAM,aAAa;AASnB,SAAS,iBAAiB,QAA8C;AAC7E,SAAO,IAAI,WAAW,MAAM;AAC9B;AAMO,SAAS,0BAAgD;AAC9D,SAAO,kDAAqB,QAAQ;AACtC;","names":["import_registry","import_TaskExecutor","import_error_extraction","import_oauth","import_protocols","import_schema_loader","import_utils","import_projection","import_ADCPMultiAgentClient","_isSupported","_normalize","_validate"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/index.ts"],"sourcesContent":["// AdCP Client Library - Main Exports\n// A comprehensive type-safe client library for the AdContext Protocol\n\n// ====== REGISTRY LOOKUPS ======\nexport {\n RegistryClient,\n RegistryRequestError,\n isRegistryRequestError,\n RegistrySync,\n PropertyRegistry,\n InMemoryCursorStore,\n FileCursorStore,\n buildCommunityMirrorAdagents,\n} from './registry';\nexport type {\n RegistrySyncConfig,\n RegistrySyncState,\n RegistrySyncTransport,\n RegistrySyncEvents,\n AgentFilter,\n RegistrySyncProperty,\n CursorStore,\n PropertyRegistryConfig,\n FeedStreamQuery,\n FeedStreamMessage,\n FeedHeartbeat,\n FeedStreamErrorData,\n OpenFeedStreamOptions,\n FeedFreshness,\n} from './registry';\nexport {\n openFeedStream,\n parseSseStream,\n sanitizeStreamText,\n DEFAULT_MAX_SSE_FRAME_BYTES,\n FeedStreamError,\n FeedStreamUnsupportedError,\n FeedStreamCursorExpiredError,\n FeedStreamHttpError,\n FeedStreamParseError,\n} from './registry';\nexport type {\n ResolvedBrand,\n LookupBrandOptions,\n ResolvedProperty as ResolvedRegistryProperty,\n PropertyInfo,\n RegistryClientConfig,\n SaveBrandRequest,\n SaveBrandResponse,\n BrandLogoReviewStatus,\n ApprovedBrandLogoAsset,\n PendingBrandLogoAsset,\n ReviewedBrandLogoAsset,\n BrandLogoAsset,\n ListBrandLogosOptions,\n ListBrandLogosResponse,\n SaveBrandLogoInput,\n SaveBrandLogoResponse,\n UploadBrandLogoInput,\n UploadBrandLogoResponse,\n SavePropertyIdentity,\n RegistryPropertyIdentity,\n SavePropertyRequest,\n SavePropertyResponse,\n ResolveIdentifiersRequest,\n ResolveIdentifiersResponse,\n FileCatalogDisputeRequest,\n FileCatalogDisputeResponse,\n GetCatalogDisputeResponse,\n BrandRegistryItem,\n PropertyRegistryItem,\n ValidationResult as RegistryValidationResult,\n FederatedAgentWithDetails,\n FederatedPublisher,\n DomainLookupResult,\n ListBrandsOptions,\n ListBrandsResponse,\n GetBrandJsonResponse,\n ListOptions,\n ListAgentsOptions,\n ListAgentsResponse,\n ListPublishersResponse,\n ValidateAdagentsRequest,\n ValidateAdagentsResponse,\n CreateAdagentsRequest,\n CreateAdagentsResponse,\n AdagentsAuthorizedAgent,\n AdagentsCatalogFormat,\n AdagentsPlacementDefinition,\n AdagentsPlacementFormatReference,\n AdagentsPlacementFormatOption,\n AdagentsPlacementTag,\n CreatedAdagentsJson,\n CommunityMirrorAdagentsConfig,\n CreateCommunityMirrorAdagentsConfig,\n CommunityMirrorAdagentsCatalog,\n PublishCommunityMirrorAdagentsResponse,\n CommunityMirrorAdagentsSummary,\n ListCommunityMirrorAdagentsResponse,\n GetCommunityMirrorAdagentsResponse,\n PublishCommunityMirrorAdagentsRequest,\n PublishCommunityMirrorAdagentsError,\n DeleteCommunityMirrorAdagentsResponse,\n PublisherPropertySelector,\n CompanySearchResult,\n FindCompanyResult,\n ManagerRevalidationRequest,\n ManagerRevalidationResponse,\n ListPoliciesQuery,\n ListPoliciesResponse,\n ResolvePolicyQuery,\n ResolvePolicyResponse,\n ResolvePoliciesBulkRequest,\n ResolvePoliciesBulkResponse,\n GetPolicyHistoryQuery,\n GetPolicyHistoryResponse,\n SavePolicyRequest,\n SavePolicyResponse,\n GetBrandHistoryQuery,\n GetBrandHistoryResponse,\n GetPropertyHistoryQuery,\n GetPropertyHistoryResponse,\n RegistryFeedEvent,\n AgentEventPayload,\n PropertyEventPayload,\n CollectionEventPayload,\n AuthorizationEventPayload,\n PublisherEventPayload,\n BrandEventPayload,\n CatalogBrowseResponse,\n CatalogBrowseEntry,\n CatalogSyncResponse,\n CatalogSyncEntry,\n AgentCompliance,\n AgentComplianceDetail,\n StoryboardStatus,\n OperatorLookupResult,\n PublisherLookupResult,\n ComplianceChangedPayload,\n GetAgentStoryboardStatusResponse,\n GetAgentStoryboardStatusBulkResponse,\n} from './registry';\n\n// ====== BRAND JSON HELPERS ======\nexport {\n COMMON_LOGO_SLOTS,\n applyBrandAssetMappings,\n checkLogoSlotCoverage,\n extractBrandWebsiteAliasDomains,\n extractBrandWebsiteAliases,\n selectLogoForSlot,\n updateBrandJsonFromMappings,\n validateBrandAssetMappings,\n} from './brand';\nexport type {\n AppliedBrandAssetMapping,\n ApplyBrandAssetMappingsOptions,\n ApplyBrandAssetMappingsResult,\n BrandAssetCandidate,\n BrandAssetCropBox,\n BrandAssetExtractionMethod,\n BrandAssetMapping,\n BrandAssetMappingIssue,\n BrandAssetMappingTarget,\n BrandAssetMappingValidationResult,\n BrandAssetReviewStatus,\n BrandWebsiteAlias,\n BrandWebsiteAliasRelationship,\n BrandWebsiteAliasSource,\n BrandJsonRecord,\n BrandLogoBackground,\n BrandLogoOrientation,\n BrandLogoProposal,\n BrandLogoVariant,\n ExtractBrandWebsiteAliasesOptions,\n LogoSelectionOptions,\n LogoSlotCoverage,\n LogoSlotCoverageOptions,\n ResolveBrandAssetUrl,\n SkippedBrandAssetMapping,\n UpdateBrandJsonFromMappingsOptions,\n UpdateBrandJsonFromMappingsResult,\n} from './brand';\n\n// ====== PROPERTY DISCOVERY (AdCP v2.2.0) ======\nexport {\n PropertyIndex,\n getPropertyIndex,\n resetPropertyIndex,\n type PropertyMatch,\n type AgentAuthorization,\n} from './discovery/property-index';\nexport {\n PropertyCrawler,\n type AgentInfo,\n type CrawlResult,\n type PropertyCrawlerConfig,\n} from './discovery/property-crawler';\nexport {\n NetworkConsistencyChecker,\n type NetworkConsistencyCheckerConfig,\n type NetworkCheckReport,\n type CheckSummary,\n type CheckProgress,\n type OrphanedPointer,\n type StalePointer,\n type MissingPointer,\n type SchemaError,\n type AgentHealthResult,\n type DomainDetail,\n type DomainStatus,\n} from './discovery/network-consistency-checker';\nexport type {\n Property,\n PropertyIdentifier,\n PropertyIdentifierType,\n PropertyType,\n AdAgentsJson,\n AuthorizedAgent,\n AuthorizationType,\n // Aliased: the registry types also export a `PublisherPropertySelector`\n // (registry-flat shape with no `selection_type` discriminator). The\n // adagents.json schema's variant is a discriminated union, so we\n // expose it under a distinct name to avoid clobbering the registry\n // type that's been part of the public API longer.\n PublisherPropertySelector as AdAgentsPublisherPropertySelector,\n SinglePublisherPropertySelector,\n CompactPublisherPropertySelector,\n} from './discovery/types';\nexport {\n parsePublisherPropertySelector,\n expandPublisherPropertySelector,\n expandPublisherPropertySelectors,\n isCompactPublisherPropertySelector,\n publisherDomainsCoveredBySelectors,\n PublisherPropertySelectorParseError,\n type PublisherPropertySelectorError,\n} from './discovery/publisher-property-selector';\nexport {\n resolveAgentProperties,\n listAgentPropertyMap,\n getAllProperties,\n canonicalizeAgentUrl,\n type ResolvedAgentScope,\n type ResolveUnresolvableReason,\n} from './discovery/resolve-agent-properties';\nexport {\n resolveInlinePublisherProperties,\n resolveSingularInline,\n detectInlineFederatedDivergence,\n type InlineResolutionResult,\n type InlineFederatedDivergence,\n} from './discovery/inline-publisher-properties';\nexport {\n fetchAgentAuthorizationsFromDirectory,\n type AgentAuthorizationsIterator,\n type FetchAgentAuthorizationsOptions,\n type DirectoryLookupPage,\n type DirectoryPublisherEntry,\n type DirectoryDiscoveryMethod,\n type DirectoryPublisherStatus,\n} from './discovery/agent-directory';\nexport {\n validateAdAgents,\n parseManagerDomain,\n type DiscoveryMethod,\n type AdAgentsValidationResult,\n type ValidateAdAgentsOptions,\n} from './discovery/validate-adagents';\n\n// ====== CORE CONVERSATION-AWARE CLIENTS ======\n// New conversation-aware clients with input handler pattern\nexport {\n SingleAgentClient,\n WebhookDispatchError,\n createSingleAgentClient,\n UnsupportedFeatureError,\n} from './core/SingleAgentClient';\nexport type {\n ClientProductPropertyPolicy,\n CreativeDeliveryTaskOptions,\n SingleAgentClientConfig,\n SyncCreativesTaskOptions,\n VerifyAndParseWebhookOptions,\n WebhookHandlerAdapter,\n WebhookHandlerRequest,\n WebhookParseErrorCode,\n WebhookParseFailure,\n WebhookParseResult,\n WebhookParseSuccess,\n WebhookVerificationConfig,\n} from './core/SingleAgentClient';\nexport {\n InMemoryWebhookRegistrationStore,\n type InMemoryWebhookRegistrationStoreOptions,\n type WebhookAuthenticationMode,\n type WebhookRegistration,\n type WebhookRegistrationStore,\n} from './core/webhook-registration';\nexport {\n AgentClient,\n type CanonicalGetProductsResponse,\n type CanonicalProjectionTaskOptions,\n type ProposalRefinementTaskOptions,\n type TaskResponseTypeMap,\n type TaskRequestTypeMap,\n type TaskRequestFor,\n type AdcpTaskName,\n type InProcessAgentClientConfig,\n} from './core/AgentClient';\nexport {\n MediaBuyLifecycleCoordinator,\n MediaBuyLifecycleCompatibilityError,\n LegacyPurchaseContinuationError,\n negotiateMediaBuyLifecycle,\n type CompatibleDeclineProposalsResponse,\n type CompatibleDeclineProposalsWireResponse,\n type CompatibleDeclineResult,\n type CompatibleProductsResponse,\n type CompatibleProductsWireResponse,\n type CompatibleProduct,\n type CompatibleProposal,\n type CompatibleProposalResponse,\n type CompatibleProjectedDeclineResult,\n type CompatibleRefinementResult,\n type CompatibleRefineProposalsResponse,\n type CompatibleRefineProposalsWireResponse,\n type CompatibleRequestProposalsResponse,\n type CompatibleRequestProposalsWireResponse,\n type CompatibleAcceptProposalRequest,\n type CompatibilityDeferredContinuation,\n type CompatibilitySubmittedContinuation,\n type CompatibilityTaskResult,\n type EstablishedProductsWireResponse,\n type EstablishedProposalAcceptanceFallback,\n type EstablishedProposalTaskReconciliationInput,\n type MediaBuyCompatibility,\n type MediaBuyCompatibilityLoss,\n type MediaBuyCompatibilityReport,\n type MediaBuyLifecycle,\n type MediaBuyLifecycleCoordinatorOptions,\n type LegacyPurchaseContinuationErrorCode,\n} from './media-buy/compatibility';\nexport {\n InMemoryLegacyPurchaseContinuationStore,\n createInMemoryLegacyPurchaseContinuationStore,\n LEGACY_PURCHASE_PUBLICATION_PROOF_RETENTION_MS,\n legacyPurchaseSettlementFingerprint,\n type InMemoryLegacyPurchaseContinuationStoreOptions,\n type LegacyPurchaseBinding,\n type LegacyPurchaseClaim,\n type LegacyPurchaseClaimRequest,\n type LegacyPurchaseClaimResult,\n type LegacyPurchaseCompleteResult,\n type LegacyPurchaseContinuationRecord,\n type LegacyPurchaseContinuationStore,\n type LegacyPurchaseCreateResult,\n type LegacyPurchaseLoss,\n type LegacyPurchaseOperation,\n type LegacyPurchasePendingSettlement,\n type LegacyPurchasePendingSettlementResult,\n type LegacyPurchasePublicationLease,\n type LegacyPurchaseReconciliationResult,\n type LegacyPurchaseSourceVersion,\n type LegacyPurchaseTerminalResult,\n type ReconcileLegacyPurchase,\n} from './media-buy/legacy-purchase-continuation';\nexport {\n InMemoryEstablishedProposalStore,\n createInMemoryEstablishedProposalStore,\n ESTABLISHED_PROPOSAL_COMPLETION_TOMBSTONE_RETENTION_MS,\n type EstablishedProposalBinding,\n type EstablishedProposalCompletionWindow,\n type EstablishedProposalMutationClaim,\n type EstablishedProposalMutationBinding,\n type EstablishedProposalMutationIntent,\n type EstablishedProposalMutationDisposition,\n type EstablishedProposalMutationKind,\n type EstablishedProposalOperation,\n type EstablishedProposalPutResult,\n type EstablishedProposalRecord,\n type EstablishedProposalReserveRequest,\n type EstablishedProposalReserveResult,\n type EstablishedProposalScope,\n type EstablishedProposalSourceVersion,\n type EstablishedProposalStore,\n type EstablishedProposalSubmittedOperation,\n type EstablishedProposalTaskScope,\n type EstablishedProposalTransitionResult,\n type InMemoryEstablishedProposalStoreOptions,\n type ProposalSnapshotEntry,\n} from './media-buy/established-proposal-store';\nexport {\n ADCPMultiAgentClient,\n createADCPMultiAgentClient,\n type MultiAgentWebhookHandlerAdapter,\n} from './core/ADCPMultiAgentClient';\nexport { ConfigurationManager } from './core/ConfigurationManager';\nexport {\n CreativeAgentClient,\n createCreativeAgentClient,\n STANDARD_CREATIVE_AGENTS,\n type CreativeAgentListTaskOptions,\n type CreativeAgentClientConfig,\n type LegacyCreativeFormat,\n} from './core/CreativeAgentClient';\nexport { TaskExecutor } from './core/TaskExecutor';\nexport { match, attachMatch } from './core/match';\nexport type { MatchHandlers, PartialMatchHandlers } from './core/match';\nexport { ProtocolResponseParser, responseParser, ADCP_STATUS, type ADCPStatus } from './core/ProtocolResponseParser';\nexport {\n ResponseValidator,\n responseValidator,\n type ValidationResult,\n type ValidationOptions,\n} from './core/ResponseValidator';\n// ====== CONVERSATION TYPES ======\nexport type {\n Message,\n InputRequest,\n InputHandler,\n InputHandlerResponse,\n ConversationContext,\n TaskOptions,\n WebhookToolPredicate,\n WebhookUrlTemplate,\n TaskResult,\n TaskResultCompleted,\n TaskResultIntermediate,\n TaskResultFailure,\n TaskResultMetadata,\n TaskState,\n TaskStatus,\n ConversationConfig,\n AdcpErrorInfo,\n AdcpValidationIssue,\n} from './core/ConversationTypes';\n\n// ====== GOVERNANCE ======\n// Buyer-side: GovernanceConfig + GovernanceMiddleware handle check → execute → report automatically.\n// Seller-side: GovernanceAdapter runs committed checks before executing media buys.\n// Types: GovernanceCheckResult, GovernanceOutcome are attached to TaskResult when governance is active.\n\n// Buyer-side middleware types\nexport type {\n GovernanceConfig,\n CampaignGovernanceConfig,\n GovernanceCheckResult,\n GovernanceOutcome,\n GovernanceFinding,\n GovernanceIntentDetails,\n GovernanceCondition,\n GovernanceEscalation,\n NormalizedGovernanceApproved,\n NormalizedGovernanceConditions,\n NormalizedGovernanceDenied,\n NormalizedGovernanceVerdict,\n} from './core/GovernanceTypes';\nexport { GovernanceMiddleware } from './core/GovernanceMiddleware';\nexport {\n isGovernanceApproved,\n isGovernanceConditions,\n isGovernanceDenied,\n normalizeGovernanceVerdict,\n} from './core/GovernanceTypes';\nexport type { GovernanceDebugEntry } from './core/GovernanceMiddleware';\n\n// ====== GOVERNANCE PLAN HELPERS ======\n// Invariants the schema encodes via if/then / oneOf that generated types\n// typically drop: budget reallocation autonomy and regulated-vertical\n// human review under GDPR Art 22 / EU AI Act Annex III.\nexport {\n GOVERNANCE_AUTHORIZATION_CRITICAL_CLAIMS,\n GovernanceAuthorizationError,\n GovernanceReplayStoreAdapter,\n InMemoryGovernanceReplayStore,\n buildGovernanceCommitment,\n buildGovernanceExecutionCommitment,\n buildGovernanceExecutionRequest,\n buildGovernanceIntentRequest,\n buildGovernanceProposedCommitment,\n buildHumanReviewPlan,\n buildHumanOverride,\n computeGovernedPayloadHash,\n createGovernanceEnforcementMiddleware,\n getGovernanceEnforcementTasks,\n governancePurchaseTypeForTask,\n governanceTaskRequiresProposedCommitment,\n targetDeclaresGovernanceEnforcement,\n targetDeclaresLegacyGovernanceAwareness,\n validateGovernancePlan,\n verifyGovernanceAuthorization,\n REGULATED_HUMAN_REVIEW_CATEGORIES,\n ANNEX_III_POLICY_IDS,\n} from './governance';\n\n// ====== NETWORKING / SSRF GUARDS ======\n// Public so adopters can converge on the SDK's DNS-pinning and address\n// classification behavior instead of copying partial guards. Use\n// `ssrfSafeFetch` as the security boundary; address classifiers are advisory\n// helpers and do not protect raw fetches from DNS rebinding.\nexport {\n ssrfSafeFetch,\n decodeBodyAsJsonOrText,\n SSRF_TRANSIENT_CODES,\n SsrfRefusedError,\n isPrivateIp,\n isAlwaysBlocked,\n isLikelyPrivateUrl,\n type SsrfRefusedCode,\n type SsrfFetchOptions,\n type SsrfFetchResult,\n} from './net';\n\n// ====== CANONICAL REFERENCE RESOLUTION ======\n// Safe, structured resolver for AdCP 3.1 `format_schema` and\n// `platform_extensions` URI+SHA-256 references.\nexport {\n createCanonicalReferenceCache,\n createCanonicalReferenceResolver,\n canonicalReferenceCacheKey,\n resolveCanonicalReference,\n resolveFormatSchemaReference,\n resolvePlatformExtensionsReference,\n type CanonicalReference,\n type CanonicalReferenceCache,\n type CanonicalReferenceCacheOptions,\n type CanonicalReferenceError,\n type CanonicalReferenceErrorCode,\n type CanonicalReferenceFailureResult,\n type CanonicalReferenceKind,\n type CanonicalReferenceResolveOptions,\n type CanonicalReferenceResolvedResult,\n type CanonicalReferenceResolver,\n type CanonicalReferenceResolverOptions,\n type CanonicalReferenceResult,\n type CanonicalReferenceStatus,\n type ExternalRefDigestMap,\n type FormatSchemaReferenceResolvedResult,\n type FormatSchemaReferenceResult,\n type PlatformExtensionsReferenceResult,\n} from './canonical-references';\nexport type {\n BuildGovernanceExecutionRequestInput,\n BuildGovernanceIntentRequestInput,\n BuildHumanReviewPlanInput,\n BuildHumanOverrideInput,\n DataSubjectContestation,\n GovernanceAuthorizationClaims,\n GovernanceAuthorizationCriticalClaim,\n GovernanceAuthorizationErrorCode,\n GovernanceAuthorizationFailure,\n GovernanceAuthorizationResult,\n GovernanceAuthorizationSuccess,\n GovernanceCommitment,\n GovernanceEnforcementMiddleware,\n GovernanceEnforcementMiddlewareConfig,\n GovernanceEnforcementMiddlewareInput,\n GovernanceEnforcementMode,\n GovernanceEnforcementTask,\n GovernancePlan,\n GovernanceReplayStore,\n GovernanceReplayBinding,\n GovernanceRevocationResolver,\n GovernanceRevocationStatus,\n GovernanceValidationIssue,\n HumanOverride,\n InMemoryGovernanceReplayStoreOptions,\n PlanBudget,\n ReallocationAutonomy,\n VerifyGovernanceAuthorizationOptions,\n} from './governance';\n\n// ====== TASK EVENT TYPES ======\nexport type {\n BaseTaskEvent,\n ProtocolRequestEvent,\n ProtocolResponseEvent,\n TaskStatusEvent,\n ObjectEvent,\n TaskEvent,\n TaskEventCallbacks,\n} from './core/TaskEventTypes';\nexport { createOperationId } from './core/TaskEventTypes';\n\n// ====== ASYNC HANDLER ======\nexport type {\n AsyncHandlerConfig,\n WebhookMetadata,\n Activity,\n NotificationMetadata,\n MediaBuyDeliveryNotification,\n CreateMediaBuyStatusChangeHandler,\n UpdateMediaBuyStatusChangeHandler,\n SyncCreativesStatusChangeHandler,\n GetProductsStatusChangeHandler,\n} from './core/AsyncHandler';\nexport {\n AsyncHandler,\n WebhookDedupConflictError,\n WebhookDedupInputError,\n createAsyncHandler,\n} from './core/AsyncHandler';\n\n// ====== WHOLESALE FEED WEBHOOKS ======\nexport {\n normalizeWholesaleFeedWebhookNotification,\n parseWholesaleFeedWebhookNotification,\n WholesaleFeedWebhookNotificationError,\n} from './wholesale-feed-sync/webhook-notification';\nexport type {\n NormalizedWholesaleFeedWebhookNotification,\n WholesaleFeedWebhookAffectedEntityType,\n WholesaleFeedWebhookCacheScope,\n WholesaleFeedWebhookNotificationErrorCode,\n WholesaleFeedWebhookNotificationErrorDetails,\n WholesaleFeedWebhookNotificationType,\n} from './wholesale-feed-sync/webhook-notification';\n\n// ====== INPUT HANDLERS ======\nexport * from './handlers/types';\n\n// ====== STORAGE INTERFACES ======\nexport type {\n Storage,\n AtomicTakeStorage,\n DeferredTaskStorage,\n BatchStorage,\n PatternStorage,\n AgentCapabilities,\n ConversationState,\n DeferredTaskState,\n StorageConfig,\n StorageFactory,\n StorageMiddleware,\n} from './storage/interfaces';\nexport { MemoryStorage, createMemoryStorage, createMemoryStorageConfig } from './storage/MemoryStorage';\n\n// ====== ERROR CLASSES ======\nexport {\n ADCPError,\n TaskTimeoutError,\n MaxClarificationError,\n DeferredTaskError,\n TaskAbortedError,\n AgentNotFoundError,\n UnsupportedTaskError,\n ProtocolError,\n ValidationError as ADCPValidationError, // Rename to avoid conflict\n MissingInputHandlerError,\n InvalidContextError,\n ConfigurationError,\n AuthenticationRequiredError,\n FeatureUnsupportedError,\n ProtocolFeatureUnsupportedError,\n SDK_ERROR_TO_PROTOCOL_ERROR_CODE,\n VersionUnsupportedError,\n IdempotencyConflictError,\n IdempotencyExpiredError,\n ResponseTooLargeError,\n ActionNotAllowedError,\n adcpErrorToTypedError,\n getClientPreflightAdcpError,\n isADCPError,\n isErrorOfType,\n extractErrorInfo,\n is401Error,\n mapSdkErrorCodeToProtocolErrorCode,\n} from './errors';\nexport type {\n OAuthMetadataInfo,\n ClientPreflightAdcpErrorInfo,\n ClientPreflightAdcpErrorRecovery,\n FeatureUnsupportedErrorOptions,\n ProtocolFeatureUnsupportedErrorOptions,\n ActionNotAllowedErrorDetails,\n ActionNotAllowedReasonValue,\n ActionNotAllowedAttemptedAction,\n ActionNotAllowedAvailableAction,\n ActionNotAllowedRecovery,\n} from './errors';\n\n// ====== MEDIA BUY ACTIONS (AdCP 3.1 / RFC #4480) ======\n// Wire-shape action types are generated; helper result/context types live in\n// the media-buy helper module.\nexport type {\n ActionNotAllowedDetails,\n ActionNotAllowedReason,\n AvailableActionsResult,\n AvailableActionsSource,\n DecomposedUpdateMediaBuy,\n DecomposedUpdateMediaBuyMutation,\n LegacyCoarseAction,\n MediaBuyActionContext,\n MediaBuyActionMode,\n MediaBuyAvailableAction,\n MediaBuyMutationDirection,\n MediaBuyMutationScope,\n MediaBuyValidAction,\n ModeMismatchRecovery,\n PreflightAllowed,\n PreflightDenial,\n PreflightDenied,\n BuyerPropertyPolicy,\n NormalizedPolicyDomain,\n ProductPolicyProductLike,\n ProductPropertyPolicyDiagnostic,\n ProductPropertyPolicyDiagnosticCode,\n ProductPropertyPolicyDiagnosticSeverity,\n ProductPropertyPolicyMode,\n ProductPropertyPolicySelectorBehavior,\n ProductPropertyPolicyValidationResult,\n PreflightResult,\n ResolvedAction,\n SLAWindow,\n SlaWindow,\n ValidateProductsAgainstPropertyPolicyOptions,\n UpdateFieldEntry,\n UpdateMediaBuyRequestLike,\n} from './media-buy';\nexport {\n ACTIONS_BY_FIELD,\n LEGACY_COARSE_ACTIONS,\n UPDATE_FIELDS_BY_ACTION,\n canAddPackages,\n canCancel,\n canDecreaseBudget,\n canExtendFlight,\n canIncreaseBudget,\n canPause,\n canReallocateBudget,\n canRemoveCreative,\n canRemovePackages,\n canReplaceCreative,\n canResume,\n canShortenFlight,\n canUpdateCreativeAssignments,\n canUpdateFlightDates,\n canUpdateFrequencyCaps,\n canUpdatePacing,\n canUpdateTargeting,\n decomposeUpdateMediaBuy,\n findAvailableAction,\n getActionForMutation,\n getAvailableActions,\n getRollupParent,\n ProductPropertyPolicyError,\n normalizeDomainForPropertyPolicy,\n preflightUpdateMediaBuy,\n recoveryForModeMismatch,\n validateProductsAgainstPropertyPolicy,\n} from './media-buy';\nexport { InputRequiredError } from './core/TaskExecutor';\n\n// ====== IDEMPOTENCY ======\nexport {\n generateIdempotencyKey,\n isMutatingTask,\n requestUsesIdempotency,\n isValidIdempotencyKey,\n useIdempotencyKey,\n redactIdempotencyKey,\n IDEMPOTENCY_KEY_PATTERN,\n MUTATING_TASKS,\n} from './utils/idempotency';\nexport type { IdempotencyCapabilities } from './utils/capabilities';\nexport type { MutatingRequestInput } from './utils/idempotency';\nexport { canonicalize, canonicalJsonSha256 } from './utils/jcs';\nexport { rollupOptimizationMetricsFromProducts } from './utils/capability-rollups';\n\n// ====== PROPOSAL NEGOTIATION (AdCP 3.2) ======\nexport * from './negotiation';\n\n// ====== CORE TYPES ======\nexport * from './types';\n\n// ====== TOOL TYPES ======\n// Request and response types for each AdCP tool.\n//\n// Naming convention:\n// {ToolName}Request -- parameters for a tool call (e.g., CreateMediaBuyRequest)\n// {ToolName}Response -- return value; often a union of {ToolName}Success | {ToolName}Error\n//\n// Nested domain types within requests use a Request suffix when the shape\n// differs from the response version:\n// PackageRequest -- creation-shaped (required: buyer_ref, product_id, budget, pricing_option_id)\n// Package -- response-shaped from core.generated (has package_id, most fields optional)\n//\n// Platform implementors: use Request types to type incoming tool calls,\n// Response types to shape your return values.\n// Runtime Zod schemas live at `@adcp/sdk/schemas` to keep ordinary root\n// imports from loading the generated schema declaration bundle.\nexport type {\n // Media Buy Domain\n GetProductsRequest as LegacyGetProductsRequest,\n GetProductsResponse as LegacyGetProductsResponse,\n ListCreativeFormatsRequest as LegacyListCreativeFormatsRequest,\n ListCreativeFormatsResponse as LegacyListCreativeFormatsResponse,\n CreateMediaBuyRequest as LegacyCreateMediaBuyRequest,\n CreateMediaBuyResponse as LegacyCreateMediaBuyResponse,\n CreateMediaBuySuccess as LegacyCreateMediaBuySuccess,\n CreateMediaBuyError as LegacyCreateMediaBuyError,\n CreateMediaBuySubmitted as LegacyCreateMediaBuySubmitted,\n UpdateMediaBuyRequest as LegacyUpdateMediaBuyRequest,\n UpdateMediaBuyResponse as LegacyUpdateMediaBuyResponse,\n UpdateMediaBuySuccess as LegacyUpdateMediaBuySuccess,\n UpdateMediaBuyError as LegacyUpdateMediaBuyError,\n SyncCreativesRequest as LegacySyncCreativesRequest,\n SyncCreativesResponse as LegacySyncCreativesResponse,\n SyncCreativesSuccess as LegacySyncCreativesSuccess,\n SyncCreativesError as LegacySyncCreativesError,\n SyncCreativesSubmitted as LegacySyncCreativesSubmitted,\n SyncAudiencesRequest,\n SyncAudiencesResponse,\n SyncAudiencesSuccess,\n SyncAudiencesError,\n ListCreativesRequest as LegacyListCreativesRequest,\n ListCreativesResponse as LegacyListCreativesResponse,\n CreativeFilters as LegacyCreativeFilters,\n GetMediaBuyDeliveryRequest,\n GetMediaBuyDeliveryResponse as LegacyGetMediaBuyDeliveryResponse,\n ProvidePerformanceFeedbackRequest,\n ProvidePerformanceFeedbackResponse,\n ProvidePerformanceFeedbackSuccess,\n ProvidePerformanceFeedbackError,\n // Signals Domain\n GetSignalsRequest,\n GetSignalsResponse,\n ActivateSignalRequest,\n ActivateSignalResponse,\n ActivateSignalSuccess,\n ActivateSignalError,\n CpmPricing,\n PercentOfMediaPricing,\n FlatFeePricing,\n PerUnitPricing,\n CustomPricing,\n VendorPricing,\n VendorPricingOption,\n // Pricing variants for products (publisher rate cards in get_products etc.)\n // PricingOption + CPAPricingOption are exported below near the other tool types.\n CPMPricingOption,\n VCPMPricingOption,\n CPCPricingOption,\n CPCVPricingOption,\n CPVPricingOption,\n CPPPricingOption,\n FlatRatePricingOption,\n TimeBasedPricingOption,\n // Governance Domain - Property Lists\n CreatePropertyListRequest,\n CreatePropertyListResponse,\n UpdatePropertyListRequest,\n UpdatePropertyListResponse,\n GetPropertyListRequest,\n GetPropertyListResponse,\n ListPropertyListsRequest,\n ListPropertyListsResponse,\n DeletePropertyListRequest,\n DeletePropertyListResponse,\n PropertyList,\n PropertyListFilters,\n // Governance Domain - Content Standards\n ListContentStandardsRequest as LegacyListContentStandardsRequest,\n ListContentStandardsResponse as LegacyListContentStandardsResponse,\n GetContentStandardsRequest as LegacyGetContentStandardsRequest,\n GetContentStandardsResponse as LegacyGetContentStandardsResponse,\n CreateContentStandardsRequest as LegacyCreateContentStandardsRequest,\n CreateContentStandardsResponse as LegacyCreateContentStandardsResponse,\n UpdateContentStandardsRequest as LegacyUpdateContentStandardsRequest,\n UpdateContentStandardsResponse as LegacyUpdateContentStandardsResponse,\n UpdateContentStandardsSuccess as LegacyUpdateContentStandardsSuccess,\n UpdateContentStandardsError as LegacyUpdateContentStandardsError,\n CalibrateContentRequest as LegacyCalibrateContentRequest,\n CalibrateContentResponse as LegacyCalibrateContentResponse,\n ValidateContentDeliveryRequest as LegacyValidateContentDeliveryRequest,\n ValidateContentDeliveryResponse as LegacyValidateContentDeliveryResponse,\n ContentStandards as LegacyContentStandards,\n Artifact as LegacyArtifact,\n // Governance Domain - Campaign Governance\n SyncPlansRequest,\n SyncPlansResponse,\n SyncGovernanceRequest,\n SyncGovernanceResponse,\n SyncGovernanceSuccess,\n SyncGovernanceError,\n CheckGovernanceRequest,\n CheckGovernanceResponse,\n ReportPlanOutcomeRequest,\n ReportPlanOutcomeResponse,\n GetPlanAuditLogsRequest,\n GetPlanAuditLogsResponse,\n // Governance Domain - Types & Enums\n PlannedDelivery,\n GovernancePhase,\n EscalationSeverity,\n PolicyEnforcementLevel,\n OutcomeType,\n // Governance Domain - Creative Features\n GetCreativeFeaturesRequest as LegacyGetCreativeFeaturesRequest,\n GetCreativeFeaturesResponse as LegacyGetCreativeFeaturesResponse,\n // Sponsored Intelligence Domain\n SIGetOfferingRequest,\n SIGetOfferingResponse,\n SIInitiateSessionRequest,\n SIInitiateSessionResponse,\n SISendMessageRequest,\n SISendMessageResponse,\n SITerminateSessionRequest,\n SITerminateSessionResponse,\n SICapabilities,\n SIIdentity,\n // Protocol Domain\n GetAdCPCapabilitiesRequest,\n GetAdCPCapabilitiesResponse,\n // Event Tracking Domain\n SyncEventSourcesRequest,\n SyncEventSourcesResponse,\n SyncEventSourcesSuccess,\n SyncEventSourcesError,\n LogEventRequest,\n LogEventResponse,\n LogEventSuccess,\n LogEventError,\n // Enums\n CanceledBy,\n // Core data structures used within requests and responses\n Format as LegacyFormat,\n Product as LegacyProduct,\n Proposal,\n ProductAllocation,\n PackageRequest as LegacyPackageRequest, // Raw wire shape for migration/server tooling\n CreativeAsset as LegacyCompatibleCreativeAsset,\n CreativePolicy,\n BrandReference,\n BrandID,\n AccountReference,\n CPAPricingOption,\n EventType,\n ActionSource,\n OptimizationGoal,\n ReachUnit,\n TargetingOverlay,\n // 3.1.0-beta.2 renamed `OutcomeMeasurement` → `OutcomeMeasurementDeprecated`\n // to signal the surface is on the 4.0 removal track. Re-export under both\n // names so adopters' existing `import { OutcomeMeasurement }` keeps working.\n OutcomeMeasurementDeprecated,\n OutcomeMeasurementDeprecated as OutcomeMeasurement,\n Duration,\n DeviceType,\n DigitalSourceType,\n FrequencyCap,\n GeographicBreakdownSupport,\n // Catalog Domain\n Catalog,\n CatalogType,\n FeedFormat,\n UpdateFrequency,\n ContentIDType,\n CatalogFieldMapping,\n SyncCatalogsRequest,\n SyncCatalogsResponse,\n SyncCatalogsSuccess,\n SyncCatalogsError,\n // Format Assets\n Overlay,\n Placement as LegacyPlacement,\n // Creative Agent Domain\n CreativeManifest as LegacyCreativeManifest,\n CreativeVariable,\n BuildCreativeRequest as LegacyBuildCreativeRequest,\n BuildCreativeResponse as LegacyBuildCreativeResponse,\n BuildCreativeSuccess as LegacyBuildCreativeSuccess,\n BuildCreativeMultiSuccess as LegacyBuildCreativeMultiSuccess,\n BuildCreativeVariantSuccess as LegacyBuildCreativeVariantSuccess,\n BuildCreativeError as LegacyBuildCreativeError,\n PreviewCreativeRequest as LegacyPreviewCreativeRequest,\n PreviewCreativeResponse as LegacyPreviewCreativeResponse,\n GetMediaBuysRequest,\n GetMediaBuysResponse as LegacyGetMediaBuysResponse,\n ImageAsset,\n VideoAsset,\n AudioAsset,\n TextAsset,\n URLAsset,\n HTMLAsset,\n VASTAsset,\n DAASTAsset,\n JavaScriptAsset,\n WebhookAsset,\n CSSAsset,\n MarkdownAsset,\n CatalogAsset,\n BriefAsset,\n ReferenceAsset,\n Provenance,\n PreviewOutputFormat,\n DisclosurePosition,\n // Event Tracking\n EventCustomData,\n // Creative Delivery Domain\n GetCreativeDeliveryRequest,\n GetCreativeDeliveryResponse as LegacyGetCreativeDeliveryResponse,\n // Account Domain\n Account,\n ListAccountsRequest,\n ListAccountsResponse,\n SyncAccountsRequest,\n SyncAccountsResponse,\n SyncAccountsSuccess,\n SyncAccountsError,\n GetAccountFinancialsRequest,\n GetAccountFinancialsResponse,\n GetAccountFinancialsSuccess,\n GetAccountFinancialsError,\n // Pagination\n PaginationRequest,\n PaginationResponse,\n // Nested domain types used as fields within request/response objects\n PackageUpdate as LegacyPackageUpdate,\n Package as LegacyPackage,\n Destination,\n SignalFilters,\n PricingOption,\n PriceGuidance,\n} from './types/tools.generated';\n\n// Legacy creative identity also appears indirectly in content-standard\n// artifacts, creative-feature manifests, media-buy artifacts, and rights\n// constraints. Keep those raw protocol shapes behind explicit migration\n// names; the primary clients intentionally do not expose these tasks until a\n// lossless canonical projection is defined.\nexport type {\n GetMediaBuyArtifactsRequest as LegacyGetMediaBuyArtifactsRequest,\n GetMediaBuyArtifactsResponse as LegacyGetMediaBuyArtifactsResponse,\n} from './types/tools.generated';\nexport type {\n GetRightsRequest as LegacyGetRightsRequest,\n GetRightsResponse as LegacyGetRightsResponse,\n AcquireRightsRequest as LegacyAcquireRightsRequest,\n AcquireRightsResponse as LegacyAcquireRightsResponse,\n UpdateRightsRequest as LegacyUpdateRightsRequest,\n UpdateRightsResponse as LegacyUpdateRightsResponse,\n} from './types/core.generated';\n\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetMediaBuyArtifactsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetMediaBuyArtifactsResponse = never;\nexport type {\n FormatReferenceStructuredObject as LegacyFormatReferenceStructuredObject,\n FormatReferenceStructuredObject as LegacyFormatID,\n} from './types/core.generated';\n/** @deprecated Legacy creative routing identity is available as `LegacyFormatReferenceStructuredObject`. */\nexport type FormatReferenceStructuredObject = never;\n/** @deprecated Legacy creative routing identity is available as `LegacyFormatID`. */\nexport type FormatID = never;\n/** @deprecated Use `LegacyBuildCreativeRequest`; canonical build support awaits a canonical protocol request. */\nexport type BuildCreativeRequest = never;\n/** @deprecated Use `LegacyBuildCreativeResponse`. */\nexport type BuildCreativeResponse = never;\n/** @deprecated Use `LegacyBuildCreativePayload`. */\nexport type BuildCreativePayload = never;\n/** @deprecated Use `LegacyBuildCreativeMultiPayload`. */\nexport type BuildCreativeMultiPayload = never;\n/** @deprecated Use `LegacyListCreativeFormatsRequest`. */\nexport type ListCreativeFormatsRequest = never;\n/** @deprecated Use `LegacyListCreativeFormatsResponse`. */\nexport type ListCreativeFormatsResponse = never;\n/** @deprecated Use `LegacyListCreativeFormatsPayload`. */\nexport type ListCreativeFormatsPayload = never;\n/** @deprecated Use `LegacyListCreativeFormatsResponsePayload`. */\nexport type ListCreativeFormatsResponsePayload = never;\n/** @deprecated Use `LegacyListCreativeFormatsServerPayload`. */\nexport type ListCreativeFormatsServerPayload = never;\n/** @deprecated Use the explicit legacy creative-agent migration types. */\nexport type CreativeManifest = never;\nexport type {\n ManageCreativeAssetsRequest as LegacyManageCreativeAssetsRequest,\n ManageCreativeAssetsResponse as LegacyManageCreativeAssetsResponse,\n CreateMediaBuyAsyncResponseData as LegacyCreateMediaBuyAsyncResponseData,\n GetProductsAsyncResponseData as LegacyGetProductsAsyncResponseData,\n UpdateMediaBuyAsyncResponseData as LegacyUpdateMediaBuyAsyncResponseData,\n SyncCreativesAsyncResponseData as LegacySyncCreativesAsyncResponseData,\n} from './types/adcp';\n/** @deprecated Use `LegacyManageCreativeAssetsRequest`. */\nexport type ManageCreativeAssetsRequest = never;\n/** @deprecated Use `LegacyManageCreativeAssetsResponse`. */\nexport type ManageCreativeAssetsResponse = never;\n/** @deprecated Use `LegacyCreateMediaBuyAsyncResponseData`. */\nexport type CreateMediaBuyAsyncResponseData = never;\n/** @deprecated Use `LegacyGetProductsAsyncResponseData`. */\nexport type GetProductsAsyncResponseData = never;\n/** @deprecated Use `LegacyUpdateMediaBuyAsyncResponseData`. */\nexport type UpdateMediaBuyAsyncResponseData = never;\n/** @deprecated Use `LegacySyncCreativesAsyncResponseData`. */\nexport type SyncCreativesAsyncResponseData = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ListContentStandardsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ListContentStandardsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetContentStandardsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetContentStandardsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type CreateContentStandardsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type CreateContentStandardsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type UpdateContentStandardsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type UpdateContentStandardsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type CalibrateContentRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type CalibrateContentResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ValidateContentDeliveryRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ValidateContentDeliveryResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetCreativeFeaturesRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetCreativeFeaturesResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type ContentStandards = never;\n/** @deprecated Use `LegacyArtifact` from the migration surface. */\nexport type Artifact = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetRightsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type GetRightsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type AcquireRightsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type AcquireRightsResponse = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type UpdateRightsRequest = never;\n/** @deprecated Use the corresponding explicit `Legacy*` migration type. */\nexport type UpdateRightsResponse = never;\nexport type {\n AccountStatus,\n CreativeStatus,\n DelegationAuthority,\n CatalogAction,\n CatalogItemStatus,\n MediaBuyStatus,\n // CreativeBrief is its own top-level schema (creative-brief.json) — emitted\n // in core.generated, no longer transitively pulled into tools.generated now\n // that BriefAsset merges its allOf[$ref] base inline.\n CreativeBrief,\n CompatibilityPurchaseCoordinatorInput,\n} from './types/core.generated';\n\n// ====== WELL-KNOWN FILE TYPES ======\n// brand.json / adagents.json shapes inferred from the canonical Zod schemas.\n// Re-exported explicitly here (in addition to the transitive `export * from\n// './types'` above) so the top-level public API contract is visible at the\n// main barrel and not dependent on the sub-barrel's wildcard re-export.\n// Source of truth: schemas/cache/{version}/{brand,adagents}.json — regenerate\n// with `npm run generate-wellknown-schemas` when the spec bumps.\nexport type { BrandJson, AdagentsJson } from './types/wellknown-schemas.generated';\nexport { BrandJsonSchema, AdagentsJsonSchema } from './types/wellknown-schemas.generated';\n\n// ====== ERROR CODES ======\n// Standard error code vocabulary for programmatic error handling\nexport type { Error as TaskErrorDetail } from './types/core.generated';\nexport { STANDARD_ERROR_CODES, isStandardErrorCode, getErrorRecovery } from './types/error-codes';\nexport type { StandardErrorCode, ErrorRecovery } from './types/error-codes';\n\n// ====== SERVER-SIDE HELPERS ======\n// Low-level raw response builders are explicit `legacy*` migration APIs.\n// Modern DecisioningPlatform handlers return canonical payloads directly.\nexport {\n adcpError,\n legacyCapabilitiesResponse,\n legacyProductsResponse,\n legacyMediaBuyResponse,\n legacyDeliveryResponse,\n legacyListAccountsResponse,\n legacyListCreativeFormatsResponse,\n legacyUpdateMediaBuyResponse,\n legacyGetMediaBuysResponse,\n legacyPerformanceFeedbackResponse,\n legacyBuildCreativeResponse,\n legacyBuildCreativeMultiResponse,\n legacyPreviewCreativeResponse,\n legacyCreativeDeliveryResponse,\n legacyListCreativesResponse,\n legacyListPropertyListsResponse,\n legacyListCollectionListsResponse,\n legacyListContentStandardsResponse,\n legacyGetPlanAuditLogsResponse,\n legacySyncCreativesResponse,\n legacyGetSignalsResponse,\n legacyActivateSignalResponse,\n legacyCancelMediaBuyResponse,\n legacyAcquireRightsResponse,\n legacyAcquireRightsAcquired,\n legacyAcquireRightsPendingApproval,\n legacyAcquireRightsRejected,\n legacySyncAccountsResponse,\n legacySyncGovernanceResponse,\n legacyReportUsageResponse,\n validActionsForStatus,\n MEDIA_BUY_TRANSITIONS,\n CREATIVE_ASSET_TRANSITIONS,\n isLegalMediaBuyTransition,\n isLegalCreativeTransition,\n assertMediaBuyTransition,\n assertCreativeTransition,\n getAccountMode,\n isSandboxOrMockAccount,\n assertSandboxAccount,\n taskToolResponse,\n registerAdcpTaskTool,\n createTaskCapableServer,\n InMemoryTaskStore,\n isTerminal,\n serve,\n taskScopeFromPrincipal,\n UnknownHostError,\n hostname,\n resolveHost,\n verifyIntrospection,\n registerTestController,\n handleTestControllerRequest,\n TestControllerError,\n toMcpResponse,\n TOOL_INPUT_SHAPE,\n CONTROLLER_SCENARIOS,\n DISCOVERY_ARM_SCENARIOS,\n SEED_SCENARIOS,\n SESSION_ENTRY_CAP,\n enforceMapCap,\n createSeedFixtureCache,\n PostgresTaskStore,\n cleanupExpiredTasks,\n getMcpTasksMigration,\n MCP_TASKS_MIGRATION,\n ADCP_PRE_TRANSPORT,\n checkGovernance,\n governanceDeniedError,\n DEFAULT_REPORTING_CAPABILITIES,\n InMemoryStateStore,\n PostgresStateStore,\n getAdcpStateMigration,\n ADCP_STATE_MIGRATION,\n StateError,\n PatchConflictError,\n SESSION_KEY_FIELD,\n createSessionedStore,\n scopedStore,\n patchWithRetry,\n isPutIfMatchConflict,\n requireSessionKey,\n structuredSerialize,\n structuredDeserialize,\n createIdempotencyStore,\n memoryBackend,\n pgBackend,\n getIdempotencyMigration,\n IDEMPOTENCY_MIGRATION,\n cleanupExpiredIdempotency,\n redisBackend,\n createLazyBackend,\n hashPayload,\n IdempotencyClaimOwnershipError,\n getServeRequestContext,\n ADCP_SERVE_REQUEST_CONTEXT,\n createA2AAdapter,\n A2AInvocationError,\n MCP_APP_RESOURCE_MIME_TYPE,\n} from './server';\nexport type {\n AdcpErrorOptions,\n AdcpErrorResponse,\n McpToolResponse,\n ValidAction,\n CancelMediaBuyInput,\n AdcpTaskToolConfig,\n TaskStore,\n TaskMessageQueue,\n CreateTaskOptions,\n ToolTaskHandler,\n CreateTaskRequestHandlerExtra,\n TaskRequestHandlerExtra,\n CreateTaskResult,\n GetTaskResult,\n Task,\n ServeContext,\n ServeOptions,\n PgQueryable,\n PostgresTaskStoreOptions,\n TestControllerStore,\n TestControllerStoreFactory,\n TestControllerStoreOrFactory,\n ControllerScenario,\n SeedScenario,\n SeedFixtureCache,\n SessionContext,\n OnInstructionsError,\n MaybePromise,\n LegacyAdcpServerConfig,\n LegacyAdcpToolMap,\n AdcpServerToolName,\n AdcpCapabilitiesConfig,\n LegacyAdcpCustomToolConfig,\n McpAppUiMeta,\n McpAppMeta,\n AdcpMcpResourceDefinition,\n McpAppResourceCsp,\n McpAppResourcePermissions,\n McpAppResourceUiMeta,\n McpAppResourceMeta,\n McpAppResourceReadContext,\n AdcpLogger,\n LegacyHandlerContext,\n LegacyMediaBuyHandlers,\n LegacySignalsHandlers,\n LegacyCreativeHandlers,\n LegacyGovernanceHandlers,\n LegacyAccountHandlers,\n LegacyEventTrackingHandlers,\n LegacySponsoredIntelligenceHandlers,\n SignedRequestsConfig,\n AdcpPreTransport,\n AdcpServer,\n AdcpServerTransport,\n AdcpTestRequest,\n AdcpTestToolsCallRequest,\n AdcpTestResponse,\n CheckGovernanceOptions,\n GovernanceCallResult,\n GovernanceApproved,\n GovernanceDenied,\n GovernanceConditions,\n AdcpStateStore,\n ListOptions as StateListOptions,\n ListResult as StateListResult,\n PostgresStateStoreOptions,\n InMemoryStateStoreOptions,\n VersionedDocument,\n PutIfMatchResult,\n PatchWithRetryOptions,\n StateErrorCode,\n SessionKeyContext,\n IdempotencyStore,\n IdempotencyStoreConfig,\n IdempotencyBackend,\n IdempotencyCacheEntry,\n IdempotencyCheckResult,\n MemoryBackendOptions,\n PgBackendOptions,\n RedisBackendOptions,\n RedisBackendClient,\n RedisLikeClient,\n LazyBackendFactory,\n LazyBackendOptions,\n A2AAdapter,\n A2AAdapterOptions,\n A2AAgentCardOverrides,\n A2AAgentCapabilitiesOverride,\n A2AAgentSkillOverride,\n A2AMountOptions,\n ExpressAppLike,\n LegacyHttpSecurityScheme,\n LegacySecurityScheme,\n AccountMode,\n RequireCacheScopeWhenProducts,\n ServerPayload,\n GetProductsPayload,\n CreateMediaBuyPayload,\n UpdateMediaBuyPayload,\n GetMediaBuysPayload,\n GetMediaBuyDeliveryPayload,\n ListCreativesPayload,\n GetCreativeDeliveryPayload,\n CanonicalPreviewCreativePayload,\n PreviewCreativePayload,\n LegacyGetProductsPayload,\n LegacyCreateMediaBuyPayload,\n LegacyUpdateMediaBuyPayload,\n LegacyGetMediaBuysPayload,\n LegacyGetMediaBuyDeliveryPayload,\n LegacyListCreativesPayload,\n LegacyGetCreativeDeliveryPayload,\n LegacyListCreativeFormatsPayload,\n LegacyListCreativeFormatsResponsePayload,\n LegacyListCreativeFormatsServerPayload,\n LegacyBuildCreativePayload,\n LegacyBuildCreativeMultiPayload,\n LegacyBuildCreativeVariantPayload,\n LegacyPreviewCreativePayload,\n SyncCreativesPayload,\n SyncCreativesSuccessPayload,\n SyncCreativesErrorPayload,\n} from './server';\n\n// ====== ERROR HANDLING & RETRY ======\nexport { isRetryable, getRetryDelay } from './utils/retry';\nexport { decideRetry, BuyerRetryPolicy } from './utils/buyer-retry-policy';\nexport type { RetryDecision, RetryContext, RetryDecisionOverride } from './utils/buyer-retry-policy';\n\n// Public API: use these for programmatic error handling\nexport {\n extractAdcpErrorInfo,\n extractCorrelationId,\n resolveRecovery,\n getExpectedAction,\n} from './utils/error-extraction';\n\n// Internal: transport-level extraction (used by SDK internals; prefer result.adcpError instead)\nexport { extractAdcpErrorFromMcp, extractAdcpErrorFromTransport } from './utils/error-extraction';\nexport type { ExtractedAdcpError } from './utils/error-extraction';\nexport { extractVersionUnsupportedDetails } from './utils/error-extraction';\nexport type { VersionUnsupportedDetails } from './utils/error-extraction';\n\n// ====== BACKWARDS COMPATIBILITY ======\n// Deprecated types from past protocol migrations\nexport type {\n BrandManifest,\n BrandManifestReference,\n AssetContentType,\n PromotedProducts,\n PromotedOfferings,\n Measurement,\n} from './types/compat';\nexport { brandManifestToBrandReference, promotedProductsToCatalog, promotedOfferingsToCatalog } from './types/compat';\n\n// Request parameter normalization (deprecated field auto-conversion)\nexport { normalizeRequestParams, normalizePackageParams } from './utils/request-normalizer';\n\n// get_products response cache-scope helpers\nexport {\n ensureGetProductsCacheScope,\n validateGetProductsCacheScope,\n type EnsureGetProductsCacheScopeOptions,\n type GetProductsCacheScope,\n type GetProductsResponseWithCacheScope,\n type GetProductsCacheScopeValidation,\n} from './utils/get-products-cache-scope';\n\n// ====== ENUM VALUE ARRAYS ======\n// `${TypeName}Values` const arrays for every named string-literal union in\n// the spec. Consumers can enumerate or validate against these without\n// duplicating literal lists from the Zod unions.\nexport * from './types/enums.generated';\n\n// `${ParentSchema}_${PropertyName}Values` const arrays for inline\n// anonymous unions inside named schemas — e.g.\n// `ImageAssetRequirements_FormatsValues`,\n// `VideoAssetRequirements_ContainersValues`. Companion to enums.generated;\n// see scripts/generate-inline-enum-arrays.ts for naming + scoping rules.\nexport * from './types/inline-enums.generated';\nexport * from './types/enum-compat';\n\n// PreviewCreativeRequestSchema is now a flat z.object() with request_type discriminant.\n// The old variant exports (PreviewCreativeSingleRequestSchema, etc.) are no longer needed —\n// use PreviewCreativeRequestSchema.shape directly with server.registerTool().\n\n// ====== AUTHENTICATION ======\n// Auth utilities for custom integrations\nexport { getAuthToken, createAdCPHeaders, createMCPAuthHeaders, createAuthenticatedFetch } from './auth';\n\n// OAuth diagnostics utilities (see src/lib/auth/oauth/diagnostics.ts)\nexport {\n parseWWWAuthenticate,\n decodeAccessTokenClaims,\n validateTokenAudience,\n type WWWAuthenticateChallenge,\n type DecodedJWTHeader,\n type DecodedJWTClaims,\n type DecodedAccessToken,\n type TokenAudienceResult,\n InvalidTokenError,\n InsufficientScopeError,\n} from './auth/oauth';\n\n// End-to-end OAuth handshake diagnosis — powers `adcp diagnose-auth`\nexport {\n runAuthDiagnosis,\n AUTH_DIAGNOSIS_SCHEMA_VERSION,\n type DiagnoseOptions,\n type HttpCapture as DiagnosisHttpCapture,\n type DiagnosisStep,\n type Hypothesis as DiagnosisHypothesis,\n type HypothesisVerdict as DiagnosisHypothesisVerdict,\n type AuthDiagnosisReport,\n} from './auth/oauth';\n\n// Zero-config OAuth: actionable error + discovery + file storage + per-agent binding\nexport {\n NeedsAuthorizationError,\n discoverAuthorizationRequirements,\n createFileOAuthStorage,\n bindAgentStorage,\n getAgentStorage,\n unbindAgentStorage,\n type AuthorizationRequirements,\n type DiscoverAuthorizationOptions,\n type FileOAuthStorageOptions,\n} from './auth/oauth';\n\n// OAuth 2.0 client credentials (RFC 6749 §4.4) — machine-to-machine token\n// exchange used by programmatic CC consumers and by the CLI's `--save-auth\n// --oauth-token-url ...` flow. The library call path pre-refreshes before\n// every request automatically when `AgentConfig.oauth_client_credentials`\n// is set; these symbols are exposed for consumers that need explicit\n// control (building custom AgentConfigs, testing, or implementing\n// server-side `save_agent` endpoints like Addie's).\nexport {\n exchangeClientCredentials,\n ensureClientCredentialsTokens,\n ClientCredentialsExchangeError,\n MissingEnvSecretError,\n resolveSecret,\n isEnvSecretReference,\n toEnvSecretReference,\n extractEnvSecretName,\n type ExchangeClientCredentialsOptions,\n type EnsureClientCredentialsOptions,\n type AgentOAuthClientCredentials,\n} from './auth/oauth';\n\n// ====== VALIDATION ======\n// Schema validation for requests/responses\nexport { validateAgentUrl, validateAdCPResponse, getExpectedSchema, handleAdCPResponse } from './validation';\n\n// ====== PROTOCOL CLIENTS ======\n// Low-level protocol clients for MCP and A2A (primarily for testing)\nexport {\n ProtocolClient,\n callMCPTool,\n callA2ATool,\n createMCPClient,\n createA2AClient,\n closeMCPConnections,\n closeOAuthConnections,\n bundleSupportsAdcpVersionField,\n sanitizeTransportHeaders,\n sanitizeTransportUrl,\n} from './protocols';\nexport { toReleasePrecisionWire, validateAdcpVersionWire } from './validation/schema-loader';\nexport type {\n CallToolOptions,\n TransportActivity,\n TransportActivityContext,\n TransportActivityHandler,\n TransportOptions,\n} from './protocols';\n\n// ====== WIRE VERSION HELPERS (NAMESPACE) ======\n// Grouped re-exports of the three AdCP `adcp_version` envelope helpers\n// (spec PR adcontextprotocol/adcp#3493). Prefer this surface over the\n// individual top-level exports — the namespace stays stable as helpers\n// are added (a fourth helper drops in here without churning the barrel).\n// The top-level exports are kept for back-compat and aren't deprecated.\nimport { bundleSupportsAdcpVersionField as _isSupported } from './protocols';\nimport { toReleasePrecisionWire as _normalize, validateAdcpVersionWire as _validate } from './validation/schema-loader';\nexport const wireVersion = {\n isSupported: _isSupported,\n normalize: _normalize,\n validate: _validate,\n} as const;\n\n// ====== RESPONSE UTILITIES ======\n// Public utilities for working with AdCP responses\nexport {\n getStandardFormatsLegacy,\n unwrapProtocolResponse,\n isAdcpError,\n isAdcpSuccess,\n isTerminalAdcpError,\n hasAdvisorySuccessPayload,\n getAuthoritativeMediaBuyStatus,\n isMediaBuyStatus,\n resolveTaskState,\n} from './utils';\nexport type { EffectiveTaskState, ResolvedTaskState, ResolveTaskStateOptions } from './utils';\nexport { injectLegacyEnvelopeStatus } from './utils/envelope-status-compat';\nexport { extractResult, type ToolCallResultLike } from './utils';\nexport { REQUEST_TIMEOUT, MAX_CONCURRENT, LEGACY_STANDARD_FORMATS } from './utils';\nexport {\n batchPreviewProducts,\n batchPreviewFormatsLegacy,\n clearPreviewCache,\n type PreviewResult,\n type LegacyPreviewResult,\n type BatchPreviewOptions,\n type PreviewCacheBackend,\n type PreviewCacheEntry,\n} from './utils';\nexport { detectProtocol, detectProtocolWithTimeout } from './utils';\nexport { A2A_CARD_PATHS, isAgentCardPath, isWellKnownAgentCardUrl, buildCardUrls, stripAgentCardPath } from './utils';\n\n// ====== PRICING UTILITIES ======\n// Pricing adapter for v2/v3 compatibility and CPA detection\nexport { isCPAPricing } from './utils';\n\n// ====== PAGINATION UTILITIES ======\n// Auto-pagination helpers for cursor-based AdCP endpoints\nexport { paginate, paginatePages, type PaginateOptions } from './utils';\n\n// ====== FORMAT ASSET UTILITIES ======\n// Structural access to canonical asset-slot arrays. These helpers deliberately\n// do not require or expose a legacy named-format `Format` / `format_id`.\nexport {\n getFormatAssets,\n getRequiredAssets,\n getOptionalAssets,\n getIndividualAssets,\n getRepeatableGroups,\n usesDeprecatedAssetsField,\n getAssetCount,\n hasAssets,\n type CanonicalFormatAssetSlot,\n type FormatAssetsInput,\n type IndividualFormatAssetSlot,\n type RepeatableFormatAssetGroup,\n} from './utils/format-assets';\n\n// ====== CREATIVE ASSET BUILDERS ======\n// Typed factories that inject the `asset_type` discriminator.\n// `imageAsset({ url, width, height })` returns a valid `ImageAsset`\n// without repeating `asset_type: 'image'` at every call site.\n// Prefer the named exports; use `Asset.image({...})` when constructing\n// several asset types together (assets-by-role manifests).\nexport {\n Asset,\n imageAsset,\n videoAsset,\n audioAsset,\n textAsset,\n urlAsset,\n htmlAsset,\n javascriptAsset,\n cssAsset,\n markdownAsset,\n webhookAsset,\n} from './utils/asset-builders';\n\n// ====== FORMAT ASSET SLOT BUILDERS ======\n// Typed factories for the slot definitions inside `Format.assets[]` — what a\n// seller/publisher declares it accepts. Each builder injects the `item_type`\n// and `asset_type` discriminators, and the `requirements` object is strictly\n// typed per asset_type: misnamed fields (`file_types` vs `formats`) and wrong\n// units (`min_duration_seconds` vs `min_duration_ms`) fail type-check.\n// Use `repeatableGroup({...})` (or `FormatAsset.group(...)`) to wrap assets\n// that repeat — that's the correct home for `min_count` / `max_count`.\nexport {\n FormatAsset,\n imageAssetSlot,\n videoAssetSlot,\n audioAssetSlot,\n textAssetSlot,\n markdownAssetSlot,\n htmlAssetSlot,\n cssAssetSlot,\n javascriptAssetSlot,\n vastAssetSlot,\n daastAssetSlot,\n urlAssetSlot,\n webhookAssetSlot,\n briefAssetSlot,\n catalogAssetSlot,\n repeatableGroup,\n imageGroupAsset,\n videoGroupAsset,\n audioGroupAsset,\n textGroupAsset,\n markdownGroupAsset,\n htmlGroupAsset,\n cssGroupAsset,\n javascriptGroupAsset,\n vastGroupAsset,\n daastGroupAsset,\n urlGroupAsset,\n webhookGroupAsset,\n} from './utils/format-asset-slot-builders';\n\n// ====== PREVIEW RENDER BUILDERS ======\n// Typed factories that inject the `output_format` discriminator on\n// `PreviewRender` objects. `urlRender({ render_id, preview_url, role })`\n// returns a valid url-variant render without repeating\n// `output_format: 'url'` at every call site. Matrix runs consistently\n// saw this drift: Claude emitted renders that omitted the discriminator\n// or its required sibling field.\nexport { Render, urlRender, htmlRender, bothRender } from './utils/render-builders';\n\n// ====== FORMAT RENDER BUILDERS ======\n// Typed factories for `Format.renders[]` entries on format declarations.\n// The item schema's `oneOf` forces a render to satisfy exactly one branch —\n// either `dimensions` (display/video) OR `parameters_from_format_id: true`\n// (audio, template formats). A render with only `{ role }` fails validation.\n// Audio specifically cannot use `{ role, duration_seconds }` — duration is\n// not a recognized `renders[]` field and wouldn't satisfy the oneOf anyway.\n// Use `parameterizedRender({ role })` (or the alias `templateRender`) so\n// format_id parameters carry duration.\n//\n// `FormatRender` below is the grouped namespace (value export). The v3\n// structural interface by the same name is re-exported from\n// `utils/format-renders` further down — TypeScript keeps type and value\n// namespaces separate, so both are available under the single import.\nexport {\n FormatRender,\n displayRender,\n parameterizedRender,\n templateRender,\n type DimensionsRender,\n type ParameterizedRender,\n type RenderItem,\n} from './utils/format-render-builders';\n\n// ====== CANONICAL CREATIVE FORMAT HELPERS ======\n// Primary application surfaces author canonical `Product.format_options[]`,\n// `format_option_refs[]`, and creative `format_kind`. Raw projection helpers\n// live only under the explicit `@adcp/sdk/v2/projection` migration subpath.\nexport {\n CanonicalFormat,\n canonicalFormatDeclaration,\n type CanonicalFormatDeclaration,\n type CanonicalFormatDeclaration as Format,\n type CanonicalFormatDeclarationFields,\n type CanonicalFormatKind,\n type CanonicalFormatParams,\n type ProductCardDetailedFields,\n type ProductCardFields,\n} from './v2/projection';\n\nexport {\n toCanonicalFormatOptionsWithRoutes,\n toAdditiveCanonicalProduct,\n withAdditiveCanonicalFormatOptions,\n toCanonicalOnlyProduct,\n toCanonicalOnlyResponse,\n packageRefsForFormatOptions,\n FormatOptionRefsLookupError,\n CreativeFormatCapabilityError,\n CreativeFormatProjectionError,\n type LegacyFormatConversionContext,\n type LegacyFormatConverter,\n type LegacyFormatResolutionContext,\n type LegacyFormatResolver,\n legacyFormatConverterFromCatalogSnapshots,\n canonicalFormatLegacyResolverFromCatalogSnapshots,\n canonicalFormatLegacyResolverFromRoutes,\n legacyRoutesForProduct,\n projectionAdaptersFromCatalogSnapshots,\n type ProjectionCatalogAdapters,\n type ProjectionCatalogSnapshot,\n type ProjectionCatalogSource,\n type CanonicalFormatLegacyResolver,\n type CanonicalFormatLegacyResolutionContext,\n type CanonicalFormatLegacyRoute,\n type AdditiveCanonicalProduct,\n type CanonicalOnlyProduct,\n type CanonicalCreativeAsset,\n type CanonicalCreativeAsset as CreativeAsset,\n type CanonicalSyncCreativeAsset,\n type CanonicalCreateMediaBuyRequest,\n type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest,\n type CanonicalCreateMediaBuyResponse,\n type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse,\n type CanonicalCreativeResponse,\n type CanonicalCreativeFilters,\n type CanonicalCreativeFilters as CreativeFilters,\n type CanonicalGetCreativeDeliveryResponse,\n type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse,\n type CanonicalGetMediaBuyDeliveryResponse,\n type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse,\n type CanonicalGetMediaBuysResponse,\n type CanonicalGetMediaBuysResponse as GetMediaBuysResponse,\n type CanonicalGetProductsResponse as GetProductsResponse,\n type CanonicalGetProductsRequest,\n type CanonicalGetProductsRequest as GetProductsRequest,\n type CanonicalListCreativesRequest,\n type CanonicalListCreativesRequest as ListCreativesRequest,\n type CanonicalListCreativesResponse,\n type CanonicalListCreativesResponse as ListCreativesResponse,\n type CanonicalListedCreative,\n type CanonicalPackageRequest,\n type CanonicalPackageRequest as PackageRequest,\n type CanonicalPackageUpdate,\n type CanonicalPackageUpdate as PackageUpdate,\n type CanonicalPackage,\n type CanonicalPackage as Package,\n type CanonicalPlacement,\n type CanonicalPlacement as Placement,\n type CanonicalPreviewCreativeRequest,\n type CanonicalPreviewCreativeRequest as PreviewCreativeRequest,\n type CanonicalPreviewCreativeResponse,\n type CanonicalPreviewCreativeResponse as PreviewCreativeResponse,\n type CanonicalProduct,\n type CanonicalProduct as Product,\n type CanonicalProjectedCreative,\n type CanonicalSyncCreativesRequest,\n type CanonicalSyncCreativesRequest as SyncCreativesRequest,\n type CanonicalSyncCreativesResponse,\n type CanonicalSyncCreativesResponse as SyncCreativesResponse,\n type CanonicalUpdateMediaBuyRequest,\n type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest,\n type CanonicalUpdateMediaBuyResponse,\n type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse,\n type LegacyCreativeAsset,\n type CanonicalCreativeFormatSelectorContainer,\n type PackageFormatRefs,\n type ProjectionDiagnostic,\n type SyncCreativeFormatProjection,\n} from './v2/projection';\n\n// ====== ACTIVATION KEY BUILDERS ======\n// Typed factories that inject the `type` discriminator on `ActivationKey`.\n// SHAPE-GOTCHAS §1 — `key`/`value` flatten on the activation key itself.\nexport { activationKey, segmentIdActivationKey, keyValueActivationKey } from './utils/activation-key-builders';\n\n// ====== SIGNAL ID BUILDERS AND ACCESSORS ======\n// Typed factories that inject the `source` discriminator on `SignalID`.\n// Used in `signal_ids` filter arrays and as the `signal_id` provenance\n// field on every `Signal` returned by `get_signals`. SHAPE-GOTCHAS §2.\n// To read fields from a received `SignalID`, use `getSignalId` (segment id)\n// and `getSignalIssuer` (data_provider_domain or agent_url).\nexport { signalId, catalogSignalId, agentSignalId, getSignalId, getSignalIssuer } from './utils/signal-id-builders';\nexport {\n buildActivateSignalRequest,\n getSignalActivationId,\n getSignalPricingOptionIds,\n normalizeDiscoveredSignal,\n} from './utils/signal-discovery-helpers';\nexport type {\n BuildActivateSignalRequestOptions,\n DiscoveredSignal,\n NormalizedDiscoveredSignal,\n} from './utils/signal-discovery-helpers';\n\n// ====== BUILD CREATIVE RETURN BUILDERS ======\n// Typed factories for the five return shapes accepted by the framework\n// from `build_creative` handlers. `.single` / `.multi` emit bare manifests\n// the framework auto-wraps; `.singleEnveloped` / `.multiEnveloped` emit\n// the shaped envelope when the handler needs to attach `sandbox` /\n// `expires_at` / `preview`; `.variantEnveloped` preserves multiplicity.\n// SHAPE-GOTCHAS §5.\nexport {\n buildCreativeReturn,\n singleBuildCreativeReturn,\n multiBuildCreativeReturn,\n singleEnvelopedBuildCreativeReturn,\n multiEnvelopedBuildCreativeReturn,\n variantEnvelopedBuildCreativeReturn,\n} from './utils/build-creative-return-builders';\n\n// ====== PREVIEW CREATIVE BUILDERS ======\n// Typed factories that inject the `response_type` discriminator on\n// `PreviewCreativeResponse`. Three-way oneOf — `single | batch | variant`.\n// Pair with `urlRender` / `htmlRender` / `bothRender` for the per-render\n// `output_format`. SHAPE-GOTCHAS §4.\nexport {\n previewCreative,\n singlePreviewCreativeResponse,\n batchPreviewCreativeResponse,\n variantPreviewCreativeResponse,\n} from './utils/preview-creative-builders';\n\n// ====== MEDIA BUY DELIVERY NOTIFICATION BUILDERS ======\n// Typed factories that inject the `notification_type` discriminator on\n// `GetMediaBuyDeliveryResponse` for webhook deliveries. Five variants:\n// `scheduled` / `final` / `delayed` / `adjusted` / `window_update`.\nexport {\n mediaBuyDeliveryNotification,\n scheduledMediaBuyDeliveryNotification,\n finalMediaBuyDeliveryNotification,\n delayedMediaBuyDeliveryNotification,\n adjustedMediaBuyDeliveryNotification,\n windowUpdateMediaBuyDeliveryNotification,\n} from './utils/media-buy-delivery-notification-builders';\n\n// ====== V3.0 COMPATIBILITY UTILITIES ======\n// Capabilities detection, version negotiation, and v3 enforcement.\n// See also:\n// - `VersionUnsupportedError` in errors — thrown by requireV3()/requireV3ForMutations\n// - `SyncCreativesItemSchema` in validation — per-item sync_creatives validator\n// - `ADCP_MAJOR_VERSION` / `COMPATIBLE_ADCP_VERSIONS` in version information\n// - `SingleAgentClient#requireV3()` / `AgentClient#requireV3()` — runtime gate\nexport {\n buildSyntheticCapabilities,\n buildSyntheticV3Capabilities,\n parseCapabilitiesResponse,\n supportsV3,\n supportsProtocol,\n supportsPropertyListFiltering,\n supportsContentStandards,\n supportsSyncCreatives,\n requiresOperatorAuth,\n requiresAccountForProducts,\n supportsSandbox,\n supportsExperimentalFeature,\n resolveFeature,\n listDeclaredFeatures,\n MEDIA_BUY_TOOLS,\n SIGNALS_TOOLS,\n GOVERNANCE_TOOLS,\n CREATIVE_TOOLS,\n EVENT_TRACKING_TOOLS,\n ACCOUNT_TOOLS,\n PROTOCOL_TOOLS,\n BRAND_RIGHTS_TOOLS,\n TASK_FEATURE_MAP,\n} from './utils/capabilities';\nexport type {\n AdcpCapabilities,\n AdcpMajorVersion,\n AdcpProtocol,\n AccountCapabilities,\n MediaBuyFeatures,\n ToolInfo,\n FeatureName,\n} from './utils/capabilities';\n\n// Buyer-side creative delivery helpers\nexport { inlineCreativesForPackages, inlineCreativesForPackagesLegacy } from './utils/creative-delivery';\nexport type {\n InlineCreativeAssignment,\n InlineCreativePackage,\n InlineCreativePackagePatch,\n InlineCreativesForPackagesOptions,\n InlineCreativesForPackagesLegacyOptions,\n LegacyInlineCreativePackage,\n} from './utils/creative-delivery';\n\n// Creative assignment adapter (v2 creative_ids ↔ v3 creative_assignments)\nexport {\n adaptPackageRequestForV2,\n adaptCreateMediaBuyRequestForV2,\n adaptUpdateMediaBuyRequestForV2,\n normalizePackageResponse,\n normalizeMediaBuyResponse,\n usesV2CreativeIds,\n usesV3CreativeAssignments,\n getCreativeIds,\n getCreativeAssignments,\n} from './utils/creative-adapter';\nexport type { CreativeAssignment } from './utils/creative-adapter';\n\n// Format renders normalizer (v2 dimensions ↔ v3 renders)\nexport {\n normalizeFormatRenders,\n normalizeFormatsResponse,\n getFormatRenders,\n getPrimaryRender,\n getCompanionRenders,\n isMultiRenderFormat,\n usesV2Dimensions,\n usesV3Renders,\n getFormatDimensions,\n} from './utils/format-renders';\n// FormatRender (the v3 structural interface) was renamed to FormatRenderEntry\n// so the `FormatRender` name at the barrel becomes the factory namespace\n// exported from `./utils/format-render-builders` above. The deprecated type\n// alias `FormatRender = FormatRenderEntry` still lives in `utils/format-renders`\n// for callers importing the sub-module directly; it's not re-exported here.\nexport type { FormatRenderEntry, RenderDimensions } from './utils/format-renders';\n\n// Preview response normalizer (v2 output_id ↔ v3 render_id)\nexport {\n normalizePreviewRender,\n normalizePreview,\n normalizePreviewCreativeResponse,\n usesV2RenderFields,\n usesV3RenderFields,\n getRenderId,\n getRenderRole,\n getPrimaryPreviewRender,\n getPreviewUrl,\n getPreviewHtml,\n} from './utils/preview-normalizer';\nexport type { PreviewRendererMetadata, PreviewRenderV3 } from './utils/preview-normalizer';\nexport {\n resolvePreviewAuthority,\n type PlacementPreviewCandidate,\n type PreviewAuthorityInput,\n type PreviewAuthorityResolution,\n type PreviewFidelity,\n type SelectedPreviewAuthority,\n type SellerPreviewCandidate,\n} from './utils/preview-authority';\n\n// ====== TYPE GUARD UTILITIES ======\n// Type guards for automatic TypeScript type narrowing in webhook handlers\nexport {\n // Generic status checks\n isStatusCompleted,\n isStatusWorking,\n isStatusInputRequired,\n isStatusSubmitted,\n isStatusFailed,\n isStatusRejected,\n // GetProducts type guards\n isGetProductsCompleted,\n isGetProductsWorking,\n isGetProductsInputRequired,\n isGetProductsSubmitted,\n isGetProductsFailed,\n // CreateMediaBuy type guards\n isCreateMediaBuyCompleted,\n isCreateMediaBuyWorking,\n isCreateMediaBuyInputRequired,\n isCreateMediaBuySubmitted,\n isCreateMediaBuyFailed,\n // UpdateMediaBuy type guards\n isUpdateMediaBuyCompleted,\n isUpdateMediaBuyWorking,\n isUpdateMediaBuyInputRequired,\n isUpdateMediaBuySubmitted,\n isUpdateMediaBuyFailed,\n // SyncCreatives type guards\n isSyncCreativesCompleted,\n isSyncCreativesWorking,\n isSyncCreativesInputRequired,\n isSyncCreativesSubmitted,\n isSyncCreativesFailed,\n} from './utils/typeGuards';\n\n// ====== VERSION INFORMATION ======\nexport {\n getAdcpVersion,\n getLibraryVersion,\n isCompatibleWith,\n getCompatibleVersions,\n parseAdcpMajorVersion,\n ADCP_VERSION,\n ADCP_MAJOR_VERSION,\n LIBRARY_VERSION,\n COMPATIBLE_ADCP_VERSIONS,\n VERSION_INFO,\n} from './version';\nexport type { AdcpVersion } from './version';\nexport { listBundledAdcpVersions, resolveAdcpVersion } from './utils/adcp-version-config';\n\n// ====== OBSERVABILITY ======\n// OpenTelemetry tracing utilities (no-op if @opentelemetry/api not installed)\nexport {\n getTracer,\n isTracingEnabled,\n injectTraceHeaders,\n withSpan,\n addSpanAttributes,\n recordSpanException,\n} from './observability';\n\n// ====== AGENT CLASSES ======\n// Primary agent interface - returns raw AdCP responses\n// Generated all-tool facades mirror raw protocol schemas, including legacy\n// format_id-bearing tools. Keep them explicit so the primary root surface\n// cannot bypass AgentClient's canonical boundary.\nexport { Agent as LegacyAgent, AgentCollection as LegacyAgentCollection } from './agents/index.generated';\n\n// ====== SERVER-SIDE ADAPTERS ======\n// Adapters for building AdCP servers with customizable business logic\nexport {\n // Content Standards\n LegacyContentStandardsAdapter,\n type LegacyIContentStandardsAdapter,\n type LegacyContentEvaluationResult,\n LegacyContentStandardsErrorCodes,\n isLegacyContentStandardsError,\n legacyDefaultContentStandardsAdapter,\n // Property Lists\n PropertyListAdapter,\n type IPropertyListAdapter,\n type ResolvedProperty,\n PropertyListErrorCodes,\n isPropertyListError,\n defaultPropertyListAdapter,\n // Sponsored Intelligence Sessions\n SISessionManager,\n AISISessionManager,\n type ISISessionManager,\n type SISession,\n SIErrorCodes,\n defaultSISessionManager,\n // Governance (seller-side committed checks)\n GovernanceAdapter,\n defaultGovernanceAdapter,\n type IGovernanceAdapter,\n type GovernanceAdapterConfig,\n type GovernanceAdapterErrorCode,\n type CommittedCheckRequest,\n type LegacyCommittedCheckRequest,\n type ModernCommittedCheckRequest,\n GovernanceAdapterError,\n GovernanceAdapterErrorCodes,\n isGovernanceAdapterError,\n // Implicit Account Store (resolution: 'implicit') — Shape A reference adapter\n InMemoryImplicitAccountStore,\n defaultImplicitKeyFn,\n type ImplicitAccountStoreOptions,\n // OAuth pass-through resolver — Shape B accounts.resolve factory\n createOAuthPassthroughResolver,\n type OAuthPassthroughResolverOptions,\n // Roster-backed AccountStore — Shape C factory for publisher-curated explicit platforms\n createRosterAccountStore,\n type RosterAccountStoreOptions,\n // Derived AccountStore — Shape D factory for single-tenant `resolution: 'derived'` agents\n createDerivedAccountStore,\n type DerivedAccountStoreOptions,\n} from './adapters';\n\n// ====== BACKWARD COMPATIBILITY & ENVIRONMENT LOADING ======\n\nimport type { AgentConfig } from './types';\nimport { ADCPMultiAgentClient } from './core/ADCPMultiAgentClient';\n\n/**\n * Legacy AdCPClient alias for backward compatibility\n * @deprecated Use ADCPMultiAgentClient instead for new code\n */\nexport const AdCPClient = ADCPMultiAgentClient;\n\n// Legacy configuration manager maintained for backward compatibility\n// The enhanced ConfigurationManager is exported above\n\n/**\n * Legacy createAdCPClient function for backward compatibility\n * @deprecated Use new ADCPMultiAgentClient constructor instead\n */\nexport function createAdCPClient(agents?: AgentConfig[]): ADCPMultiAgentClient {\n return new AdCPClient(agents);\n}\n\n/**\n * Load agents from environment and create multi-agent client\n * @deprecated Use ADCPMultiAgentClient.fromEnv() instead\n */\nexport function createAdCPClientFromEnv(): ADCPMultiAgentClient {\n return ADCPMultiAgentClient.fromEnv();\n}\n\n// ====== SUBSTITUTION OBSERVER / ENCODER ======\n// Primitives backing the `substitution-observer-runner` test-kit contract.\n// Runners (conformance graders) import the observer side; sales/retail-\n// media agents implementing the #2620 catalog-item macro encoding rule\n// import `SubstitutionEncoder`. Re-exported here for discoverability;\n// the full surface is also available via `@adcp/sdk/substitution`.\nexport {\n SubstitutionObserver,\n SubstitutionEncoder,\n PreviewFetchError,\n MacroInRawValueError,\n CATALOG_MACRO_VECTORS,\n getCatalogMacroVector,\n extractTrackerUrls,\n matchBindings,\n assertRfc3986Safe,\n assertUnreservedOnly,\n assertNoNestedExpansion,\n assertSchemePreserved,\n DEFAULT_MACRO_PROHIBITED_PATTERN,\n enforceSsrfPolicy,\n enforceSsrfPolicyResolved,\n DEFAULT_SSRF_POLICY,\n encodeUnreserved,\n equalUnderHexCasePolicy,\n isUnreservedOnly,\n divergenceOffset,\n translateUniversalMacros,\n UnsafeNativeMappingError,\n compileUniversalMacroTemplate,\n} from './substitution';\nexport type {\n ObserverFetchOptions,\n ObserverDispatcher,\n CatalogMacroVectorName,\n AssertionOptions as SubstitutionAssertionOptions,\n AssertionResult as SubstitutionAssertionResult,\n BindingMatch,\n CatalogBinding,\n CatalogMacroVector,\n PolicyResult as SubstitutionPolicyResult,\n SsrfPolicy,\n TrackerUrlRecord,\n MacroMapping,\n TranslateResult,\n BuiltInSourceMacroSyntax,\n CompileUniversalMacroTemplateInput,\n CompileUniversalMacroTemplateResult,\n CustomSourceMacroSyntax,\n MacroDocumentationReference,\n SourceMacroMapping,\n SourceMacroRequirement,\n SourceMacroRequirementSatisfaction,\n SourceMacroSyntax,\n SourceMacroSyntaxDeclaration,\n UniversalMacroCompileDiagnostic,\n UniversalMacroOccurrence,\n} from './substitution';\n\n// ====== TEST HELPERS ======\n// Re-export test helpers for convenience (also available via @adcp/sdk/testing)\nexport {\n testAgent,\n testAgentA2A,\n testAgentClient,\n createTestAgent,\n TEST_AGENT_TOKEN,\n TEST_AGENT_MCP_CONFIG,\n TEST_AGENT_A2A_CONFIG,\n testAgentNoAuth,\n testAgentNoAuthA2A,\n TEST_AGENT_NO_AUTH_MCP_CONFIG,\n TEST_AGENT_NO_AUTH_A2A_CONFIG,\n creativeAgent,\n testBrandRightsFlow,\n hasBrandRightsTools,\n expectControllerError,\n expectControllerSuccess,\n RateLimitTripObserver,\n RATE_LIMIT_TRIP_CONTRACT,\n RATE_LIMIT_TRIP_DEFAULT_REPLAY_MAX_WAIT_SECONDS,\n RATE_LIMIT_TRIP_MAX_ATTEMPTS_MAX,\n RATE_LIMIT_TRIP_MAX_ATTEMPTS_MIN,\n validateRateLimitTripSpec,\n} from './testing/index';\nexport type {\n ControllerErrorWithDetail,\n TestClient,\n RateLimitTripSpec,\n RateLimitTripClient,\n RateLimitTripFailureCode,\n RateLimitTripObservation,\n RateLimitTripObserverOptions,\n RateLimitTripResponseSnapshot,\n RateLimitTripStructuredResult,\n RateLimitTripTaskOptions,\n} from './testing/index';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,sBASO;AAiBP,IAAAA,mBAUO;AAwGP,mBASO;AAgCP,4BAMO;AACP,8BAKO;AACP,yCAaO;AAkBP,yCAQO;AACP,sCAOO;AACP,yCAMO;AACP,6BAQO;AACP,+BAMO;AAIP,+BAKO;AAeP,kCAMO;AACP,yBAUO;AACP,2BAgCO;AACP,0CAuBO;AACP,wCAwBO;AACP,kCAIO;AACP,kCAAqC;AACrC,iCAOO;AACP,0BAA6B;AAC7B,mBAAmC;AAEnC,oCAAqF;AACrF,+BAKO;AA2CP,kCAAqC;AACrC,6BAKO;AAOP,wBAuBO;AAOP,iBAWO;AAKP,kCAwBO;AA0CP,4BAAkC;AAclC,0BAKO;AAGP,kCAIO;AAWP,0BAAc,6BA5mBd;AA4nBA,2BAA8E;AAG9E,oBA6BO;AAoDP,uBA+BO;AACP,IAAAC,uBAAmC;AAGnC,yBASO;AAGP,iBAAkD;AAClD,gCAAsD;AAGtD,0BAAc,0BAnwBd;AAswBA,0BAAc,oBAtwBd;AA2oCA,+BAAoD;AAKpD,yBAA4E;AAM5E,oBAoGO;AA+HP,mBAA2C;AAC3C,gCAA8C;AAI9C,8BAKO;AAGP,IAAAC,2BAAuE;AAEvE,IAAAA,2BAAiD;AAajD,oBAAqG;AAGrG,gCAA+D;AAG/D,sCAOO;AAMP,0BAAc,oCAx6Cd;AA+6CA,0BAAc,2CA/6Cd;AAg7CA,0BAAc,gCAh7Cd;AAw7CA,kBAAgG;AAGhG,mBAWO;AAGP,IAAAC,gBASO;AAGP,IAAAA,gBAUO;AASP,IAAAA,gBAYO;AAIP,wBAA8F;AAI9F,uBAWO;AACP,2BAAgE;AAehE,IAAAC,oBAA+D;AAC/D,IAAAC,wBAA2F;AAS3F,mBAUO;AAEP,oCAA2C;AAC3C,IAAAC,gBAAuD;AACvD,IAAAA,gBAAyE;AACzE,IAAAA,gBASO;AACP,IAAAA,gBAA0D;AAC1D,IAAAA,gBAA4G;AAI5G,IAAAA,gBAA6B;AAI7B,IAAAA,gBAA8D;AAK9D,2BAaO;AAQP,4BAYO;AAUP,wCA6BO;AASP,6BAA0D;AAgB1D,oCAQO;AAMP,wBAUO;AAEP,IAAAC,qBA+EO;AAKP,qCAA6E;AAQ7E,gCAAuF;AACvF,sCAKO;AAcP,4CAOO;AAOP,uCAKO;AAMP,sDAOO;AASP,0BAwBO;AAYP,+BAA6E;AAW7E,8BAUO;AAIP,4BAUO;AASP,gCAWO;AAEP,+BAQO;AAIP,wBAgCO;AAGP,qBAWO;AAEP,iCAA4D;AAI5D,2BAOO;AAOP,oBAA+E;AAI/E,sBA+CO;AAKP,IAAAC,+BAAqC;AAiCrC,0BAwBO;AA+BP,qBAuBO;AArpBA,MAAM,cAAc;AAAA,EACzB,aAAa,kBAAAC;AAAA,EACb,WAAW,sBAAAC;AAAA,EACX,UAAU,sBAAAC;AACZ;AAwiBO,MAAM,aAAa;AASnB,SAAS,iBAAiB,QAA8C;AAC7E,SAAO,IAAI,WAAW,MAAM;AAC9B;AAMO,SAAS,0BAAgD;AAC9D,SAAO,kDAAqB,QAAQ;AACtC;","names":["import_registry","import_TaskExecutor","import_error_extraction","import_oauth","import_protocols","import_schema_loader","import_utils","import_projection","import_ADCPMultiAgentClient","_isSupported","_normalize","_validate"]}
|
package/dist/lib/index.mjs
CHANGED
|
@@ -540,7 +540,8 @@ import {
|
|
|
540
540
|
singleBuildCreativeReturn,
|
|
541
541
|
multiBuildCreativeReturn,
|
|
542
542
|
singleEnvelopedBuildCreativeReturn,
|
|
543
|
-
multiEnvelopedBuildCreativeReturn
|
|
543
|
+
multiEnvelopedBuildCreativeReturn,
|
|
544
|
+
variantEnvelopedBuildCreativeReturn
|
|
544
545
|
} from "./utils/build-creative-return-builders.mjs";
|
|
545
546
|
import {
|
|
546
547
|
previewCreative,
|
|
@@ -1393,6 +1394,7 @@ export {
|
|
|
1393
1394
|
validateProductsAgainstPropertyPolicy,
|
|
1394
1395
|
validateRateLimitTripSpec,
|
|
1395
1396
|
validateTokenAudience,
|
|
1397
|
+
variantEnvelopedBuildCreativeReturn,
|
|
1396
1398
|
variantPreviewCreativeResponse,
|
|
1397
1399
|
vastAssetSlot,
|
|
1398
1400
|
vastGroupAsset,
|