adcp 2.19.0__py3-none-any.whl → 3.0.0__py3-none-any.whl
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.
- adcp/ADCP_VERSION +1 -1
- adcp/__init__.py +6 -14
- adcp/__main__.py +94 -51
- adcp/adagents.py +91 -19
- adcp/client.py +865 -0
- adcp/protocols/a2a.py +84 -0
- adcp/protocols/base.py +101 -0
- adcp/protocols/mcp.py +84 -0
- adcp/server/__init__.py +49 -0
- adcp/server/base.py +368 -0
- adcp/server/content_standards.py +561 -0
- adcp/server/governance.py +491 -0
- adcp/server/mcp_tools.py +471 -0
- adcp/server/proposal.py +334 -0
- adcp/server/sponsored_intelligence.py +444 -0
- adcp/types/__init__.py +111 -23
- adcp/types/_ergonomic.py +35 -14
- adcp/types/_generated.py +346 -52
- adcp/types/aliases.py +13 -20
- adcp/types/base.py +1 -1
- adcp/types/generated_poc/adagents.py +196 -189
- adcp/types/generated_poc/content_standards/__init__.py +3 -0
- adcp/types/generated_poc/content_standards/artifact.py +208 -0
- adcp/types/generated_poc/content_standards/artifact_webhook_payload.py +64 -0
- adcp/types/generated_poc/content_standards/calibrate_content_request.py +17 -0
- adcp/types/generated_poc/content_standards/calibrate_content_response.py +74 -0
- adcp/types/generated_poc/content_standards/content_standards.py +66 -0
- adcp/types/generated_poc/content_standards/create_content_standards_request.py +97 -0
- adcp/types/generated_poc/content_standards/create_content_standards_response.py +52 -0
- adcp/types/generated_poc/content_standards/get_content_standards_request.py +21 -0
- adcp/types/generated_poc/content_standards/get_content_standards_response.py +43 -0
- adcp/types/generated_poc/content_standards/get_media_buy_artifacts_request.py +64 -0
- adcp/types/generated_poc/content_standards/get_media_buy_artifacts_response.py +117 -0
- adcp/types/generated_poc/content_standards/list_content_standards_request.py +31 -0
- adcp/types/generated_poc/content_standards/list_content_standards_response.py +48 -0
- adcp/types/generated_poc/content_standards/update_content_standards_request.py +101 -0
- adcp/types/generated_poc/content_standards/update_content_standards_response.py +34 -0
- adcp/types/generated_poc/content_standards/validate_content_delivery_request.py +59 -0
- adcp/types/generated_poc/content_standards/validate_content_delivery_response.py +85 -0
- adcp/types/generated_poc/core/activation_key.py +9 -9
- adcp/types/generated_poc/core/assets/audio_asset.py +6 -6
- adcp/types/generated_poc/core/assets/css_asset.py +3 -3
- adcp/types/generated_poc/core/assets/daast_asset.py +19 -19
- adcp/types/generated_poc/core/assets/html_asset.py +3 -3
- adcp/types/generated_poc/core/assets/image_asset.py +7 -7
- adcp/types/generated_poc/core/assets/javascript_asset.py +4 -4
- adcp/types/generated_poc/core/assets/text_asset.py +3 -3
- adcp/types/generated_poc/core/assets/url_asset.py +4 -4
- adcp/types/generated_poc/core/assets/vast_asset.py +19 -19
- adcp/types/generated_poc/core/assets/video_asset.py +8 -8
- adcp/types/generated_poc/core/assets/webhook_asset.py +10 -10
- adcp/types/generated_poc/core/async_response_data.py +3 -3
- adcp/types/generated_poc/core/brand_manifest.py +122 -59
- adcp/types/generated_poc/core/brand_manifest_ref.py +10 -10
- adcp/types/generated_poc/core/context.py +2 -2
- adcp/types/generated_poc/core/creative_asset.py +20 -19
- adcp/types/generated_poc/core/creative_assignment.py +4 -4
- adcp/types/generated_poc/core/creative_filters.py +18 -28
- adcp/types/generated_poc/core/creative_manifest.py +3 -3
- adcp/types/generated_poc/core/creative_policy.py +5 -5
- adcp/types/generated_poc/core/delivery_metrics.py +33 -33
- adcp/types/generated_poc/core/deployment.py +21 -21
- adcp/types/generated_poc/core/destination.py +12 -12
- adcp/types/generated_poc/core/error.py +7 -7
- adcp/types/generated_poc/core/ext.py +2 -2
- adcp/types/generated_poc/core/format.py +66 -66
- adcp/types/generated_poc/core/format_id.py +6 -6
- adcp/types/generated_poc/core/frequency_cap.py +3 -3
- adcp/types/generated_poc/core/identifier.py +3 -3
- adcp/types/generated_poc/core/mcp_webhook_payload.py +11 -11
- adcp/types/generated_poc/core/measurement.py +9 -9
- adcp/types/generated_poc/core/media_buy.py +8 -8
- adcp/types/generated_poc/core/media_buy_features.py +29 -0
- adcp/types/generated_poc/core/offering.py +80 -0
- adcp/types/generated_poc/core/package.py +9 -9
- adcp/types/generated_poc/core/performance_feedback.py +19 -19
- adcp/types/generated_poc/core/placement.py +5 -5
- adcp/types/generated_poc/core/pricing_option.py +9 -15
- adcp/types/generated_poc/core/product.py +21 -21
- adcp/types/generated_poc/core/product_allocation.py +48 -0
- adcp/types/generated_poc/core/product_filters.py +89 -24
- adcp/types/generated_poc/core/promoted_offerings.py +29 -38
- adcp/types/generated_poc/core/promoted_products.py +3 -3
- adcp/types/generated_poc/core/property.py +10 -10
- adcp/types/generated_poc/core/property_id.py +5 -5
- adcp/types/generated_poc/core/property_list_ref.py +5 -5
- adcp/types/generated_poc/core/property_tag.py +5 -5
- adcp/types/generated_poc/core/proposal.py +64 -0
- adcp/types/generated_poc/core/protocol_envelope.py +9 -9
- adcp/types/generated_poc/core/publisher_property_selector.py +14 -14
- adcp/types/generated_poc/core/push_notification_config.py +6 -6
- adcp/types/generated_poc/core/reporting_capabilities.py +9 -9
- adcp/types/generated_poc/core/reporting_webhook.py +70 -0
- adcp/types/generated_poc/core/response.py +5 -5
- adcp/types/generated_poc/core/signal_filters.py +6 -6
- adcp/types/generated_poc/core/start_timing.py +4 -4
- adcp/types/generated_poc/core/sub_asset.py +15 -15
- adcp/types/generated_poc/core/targeting.py +59 -18
- adcp/types/generated_poc/creative/list_creative_formats_request.py +21 -21
- adcp/types/generated_poc/creative/list_creative_formats_response.py +6 -6
- adcp/types/generated_poc/creative/preview_creative_request.py +25 -25
- adcp/types/generated_poc/creative/preview_creative_response.py +29 -29
- adcp/types/generated_poc/creative/preview_render.py +26 -26
- adcp/types/generated_poc/enums/adcp_domain.py +5 -5
- adcp/types/generated_poc/enums/asset_content_type.py +14 -14
- adcp/types/generated_poc/enums/auth_scheme.py +3 -3
- adcp/types/generated_poc/enums/available_metric.py +10 -10
- adcp/types/generated_poc/enums/channels.py +21 -11
- adcp/types/generated_poc/enums/co_branding_requirement.py +4 -4
- adcp/types/generated_poc/enums/creative_action.py +6 -6
- adcp/types/generated_poc/enums/creative_agent_capability.py +5 -5
- adcp/types/generated_poc/enums/creative_sort_field.py +7 -7
- adcp/types/generated_poc/enums/creative_status.py +6 -5
- adcp/types/generated_poc/enums/daast_tracking_event.py +12 -12
- adcp/types/generated_poc/enums/daast_version.py +3 -3
- adcp/types/generated_poc/enums/delivery_type.py +3 -3
- adcp/types/generated_poc/enums/dimension_unit.py +5 -5
- adcp/types/generated_poc/enums/feed_format.py +4 -4
- adcp/types/generated_poc/enums/feedback_source.py +5 -5
- adcp/types/generated_poc/enums/format_category.py +8 -8
- adcp/types/generated_poc/enums/format_id_parameter.py +3 -3
- adcp/types/generated_poc/enums/frequency_cap_scope.py +4 -4
- adcp/types/generated_poc/enums/geo_level.py +14 -0
- adcp/types/generated_poc/enums/history_entry_type.py +3 -3
- adcp/types/generated_poc/enums/http_method.py +3 -3
- adcp/types/generated_poc/enums/identifier_types.py +20 -20
- adcp/types/generated_poc/enums/javascript_module_type.py +4 -4
- adcp/types/generated_poc/enums/landing_page_requirement.py +4 -4
- adcp/types/generated_poc/enums/markdown_flavor.py +3 -3
- adcp/types/generated_poc/enums/media_buy_status.py +5 -5
- adcp/types/generated_poc/enums/metric_type.py +9 -9
- adcp/types/generated_poc/enums/metro_system.py +15 -0
- adcp/types/generated_poc/enums/notification_type.py +5 -5
- adcp/types/generated_poc/enums/pacing.py +4 -4
- adcp/types/generated_poc/enums/postal_system.py +19 -0
- adcp/types/generated_poc/enums/preview_output_format.py +3 -3
- adcp/types/generated_poc/enums/pricing_model.py +8 -8
- adcp/types/generated_poc/enums/property_type.py +9 -8
- adcp/types/generated_poc/enums/publisher_identifier_types.py +6 -6
- adcp/types/generated_poc/enums/reporting_frequency.py +4 -4
- adcp/types/generated_poc/enums/signal_catalog_type.py +4 -4
- adcp/types/generated_poc/enums/sort_direction.py +3 -3
- adcp/types/generated_poc/enums/task_status.py +10 -10
- adcp/types/generated_poc/enums/task_type.py +12 -12
- adcp/types/generated_poc/enums/update_frequency.py +5 -5
- adcp/types/generated_poc/enums/url_asset_type.py +4 -4
- adcp/types/generated_poc/enums/validation_mode.py +3 -3
- adcp/types/generated_poc/enums/vast_tracking_event.py +17 -17
- adcp/types/generated_poc/enums/vast_version.py +6 -6
- adcp/types/generated_poc/enums/webhook_response_type.py +5 -5
- adcp/types/generated_poc/enums/webhook_security_method.py +4 -4
- adcp/types/generated_poc/extensions/extension_meta.py +20 -12
- adcp/types/generated_poc/media_buy/build_creative_request.py +5 -5
- adcp/types/generated_poc/media_buy/build_creative_response.py +7 -7
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_input_required.py +6 -6
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_submitted.py +2 -2
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_working.py +6 -6
- adcp/types/generated_poc/media_buy/create_media_buy_request.py +65 -37
- adcp/types/generated_poc/media_buy/create_media_buy_response.py +8 -8
- adcp/types/generated_poc/media_buy/get_media_buy_delivery_request.py +9 -9
- adcp/types/generated_poc/media_buy/get_media_buy_delivery_response.py +52 -52
- adcp/types/generated_poc/media_buy/get_products_async_response_input_required.py +7 -7
- adcp/types/generated_poc/media_buy/get_products_async_response_submitted.py +3 -3
- adcp/types/generated_poc/media_buy/get_products_async_response_working.py +5 -5
- adcp/types/generated_poc/media_buy/get_products_request.py +14 -5
- adcp/types/generated_poc/media_buy/get_products_response.py +12 -6
- adcp/types/generated_poc/media_buy/list_authorized_properties_request.py +4 -4
- adcp/types/generated_poc/media_buy/list_authorized_properties_response.py +9 -9
- adcp/types/generated_poc/media_buy/list_creative_formats_request.py +10 -10
- adcp/types/generated_poc/media_buy/list_creative_formats_response.py +6 -6
- adcp/types/generated_poc/media_buy/list_creatives_request.py +24 -24
- adcp/types/generated_poc/media_buy/list_creatives_response.py +54 -57
- adcp/types/generated_poc/media_buy/package_request.py +12 -12
- adcp/types/generated_poc/media_buy/package_update.py +119 -0
- adcp/types/generated_poc/media_buy/provide_performance_feedback_request.py +20 -20
- adcp/types/generated_poc/media_buy/provide_performance_feedback_response.py +7 -7
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_input_required.py +6 -6
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_submitted.py +2 -2
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_working.py +8 -8
- adcp/types/generated_poc/media_buy/sync_creatives_request.py +8 -8
- adcp/types/generated_poc/media_buy/sync_creatives_response.py +16 -16
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_input_required.py +5 -5
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_submitted.py +2 -2
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_working.py +6 -6
- adcp/types/generated_poc/media_buy/update_media_buy_request.py +28 -124
- adcp/types/generated_poc/media_buy/update_media_buy_response.py +8 -8
- adcp/types/generated_poc/pricing_options/cpc_option.py +40 -15
- adcp/types/generated_poc/pricing_options/cpcv_option.py +41 -16
- adcp/types/generated_poc/pricing_options/cpm_option.py +62 -0
- adcp/types/generated_poc/pricing_options/cpp_option.py +46 -23
- adcp/types/generated_poc/pricing_options/cpv_option.py +45 -26
- adcp/types/generated_poc/pricing_options/flat_rate_option.py +53 -47
- adcp/types/generated_poc/pricing_options/vcpm_option.py +70 -0
- adcp/types/generated_poc/property/base_property_source.py +16 -16
- adcp/types/generated_poc/property/create_property_list_request.py +5 -5
- adcp/types/generated_poc/property/create_property_list_response.py +4 -4
- adcp/types/generated_poc/property/delete_property_list_request.py +3 -3
- adcp/types/generated_poc/property/delete_property_list_response.py +4 -4
- adcp/types/generated_poc/property/feature_requirement.py +8 -8
- adcp/types/generated_poc/property/get_property_list_request.py +6 -6
- adcp/types/generated_poc/property/get_property_list_response.py +12 -12
- adcp/types/generated_poc/property/list_property_lists_request.py +6 -6
- adcp/types/generated_poc/property/list_property_lists_response.py +9 -9
- adcp/types/generated_poc/property/property_error.py +11 -11
- adcp/types/generated_poc/property/property_feature.py +5 -5
- adcp/types/generated_poc/property/property_feature_definition.py +19 -19
- adcp/types/generated_poc/property/property_list.py +12 -12
- adcp/types/generated_poc/property/property_list_changed_webhook.py +12 -12
- adcp/types/generated_poc/property/property_list_filters.py +9 -9
- adcp/types/generated_poc/property/update_property_list_request.py +9 -9
- adcp/types/generated_poc/property/update_property_list_response.py +3 -3
- adcp/types/generated_poc/protocol/__init__.py +3 -0
- adcp/types/generated_poc/protocol/get_adcp_capabilities_request.py +34 -0
- adcp/types/generated_poc/protocol/get_adcp_capabilities_response.py +353 -0
- adcp/types/generated_poc/protocols/adcp_extension.py +14 -17
- adcp/types/generated_poc/signals/activate_signal_request.py +4 -4
- adcp/types/generated_poc/signals/activate_signal_response.py +7 -7
- adcp/types/generated_poc/signals/get_signals_request.py +9 -9
- adcp/types/generated_poc/signals/get_signals_response.py +16 -16
- adcp/types/generated_poc/sponsored_intelligence/__init__.py +3 -0
- adcp/types/generated_poc/sponsored_intelligence/si_capabilities.py +102 -0
- adcp/types/generated_poc/sponsored_intelligence/si_get_offering_request.py +34 -0
- adcp/types/generated_poc/sponsored_intelligence/si_get_offering_response.py +100 -0
- adcp/types/generated_poc/sponsored_intelligence/si_identity.py +78 -0
- adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_request.py +46 -0
- adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_response.py +44 -0
- adcp/types/generated_poc/sponsored_intelligence/si_send_message_request.py +58 -0
- adcp/types/generated_poc/sponsored_intelligence/si_send_message_response.py +101 -0
- adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_request.py +60 -0
- adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_response.py +54 -0
- adcp/types/generated_poc/sponsored_intelligence/si_ui_element.py +30 -0
- adcp/utils/format_assets.py +5 -5
- adcp/utils/preview_cache.py +2 -2
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/METADATA +1 -1
- adcp-3.0.0.dist-info/RECORD +264 -0
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/WHEEL +1 -1
- adcp/types/generated_poc/enums/standard_format_ids.py +0 -45
- adcp/types/generated_poc/pricing_options/cpm_auction_option.py +0 -58
- adcp/types/generated_poc/pricing_options/cpm_fixed_option.py +0 -43
- adcp/types/generated_poc/pricing_options/vcpm_auction_option.py +0 -61
- adcp/types/generated_poc/pricing_options/vcpm_fixed_option.py +0 -47
- adcp/types/generated_poc/property/list_property_features_request.py +0 -25
- adcp/types/generated_poc/property/list_property_features_response.py +0 -24
- adcp-2.19.0.dist-info/RECORD +0 -220
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/entry_points.txt +0 -0
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/licenses/LICENSE +0 -0
- {adcp-2.19.0.dist-info → adcp-3.0.0.dist-info}/top_level.txt +0 -0
adcp/protocols/a2a.py
CHANGED
|
@@ -593,3 +593,87 @@ class A2AAdapter(ProtocolAdapter):
|
|
|
593
593
|
agent_id=self.agent_config.id,
|
|
594
594
|
agent_uri=self.agent_config.agent_uri,
|
|
595
595
|
) from e
|
|
596
|
+
|
|
597
|
+
# ========================================================================
|
|
598
|
+
# V3 Protocol Methods - Protocol Discovery
|
|
599
|
+
# ========================================================================
|
|
600
|
+
|
|
601
|
+
async def get_adcp_capabilities(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
602
|
+
"""Get AdCP capabilities from the agent."""
|
|
603
|
+
return await self._call_a2a_tool("get_adcp_capabilities", params)
|
|
604
|
+
|
|
605
|
+
# ========================================================================
|
|
606
|
+
# V3 Protocol Methods - Content Standards
|
|
607
|
+
# ========================================================================
|
|
608
|
+
|
|
609
|
+
async def create_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
610
|
+
"""Create content standards configuration."""
|
|
611
|
+
return await self._call_a2a_tool("create_content_standards", params)
|
|
612
|
+
|
|
613
|
+
async def get_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
614
|
+
"""Get content standards configuration."""
|
|
615
|
+
return await self._call_a2a_tool("get_content_standards", params)
|
|
616
|
+
|
|
617
|
+
async def list_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
618
|
+
"""List content standards configurations."""
|
|
619
|
+
return await self._call_a2a_tool("list_content_standards", params)
|
|
620
|
+
|
|
621
|
+
async def update_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
622
|
+
"""Update content standards configuration."""
|
|
623
|
+
return await self._call_a2a_tool("update_content_standards", params)
|
|
624
|
+
|
|
625
|
+
async def calibrate_content(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
626
|
+
"""Calibrate content against standards."""
|
|
627
|
+
return await self._call_a2a_tool("calibrate_content", params)
|
|
628
|
+
|
|
629
|
+
async def validate_content_delivery(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
630
|
+
"""Validate content delivery against standards."""
|
|
631
|
+
return await self._call_a2a_tool("validate_content_delivery", params)
|
|
632
|
+
|
|
633
|
+
async def get_media_buy_artifacts(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
634
|
+
"""Get artifacts associated with a media buy."""
|
|
635
|
+
return await self._call_a2a_tool("get_media_buy_artifacts", params)
|
|
636
|
+
|
|
637
|
+
# ========================================================================
|
|
638
|
+
# V3 Protocol Methods - Sponsored Intelligence
|
|
639
|
+
# ========================================================================
|
|
640
|
+
|
|
641
|
+
async def si_get_offering(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
642
|
+
"""Get sponsored intelligence offering."""
|
|
643
|
+
return await self._call_a2a_tool("si_get_offering", params)
|
|
644
|
+
|
|
645
|
+
async def si_initiate_session(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
646
|
+
"""Initiate sponsored intelligence session."""
|
|
647
|
+
return await self._call_a2a_tool("si_initiate_session", params)
|
|
648
|
+
|
|
649
|
+
async def si_send_message(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
650
|
+
"""Send message in sponsored intelligence session."""
|
|
651
|
+
return await self._call_a2a_tool("si_send_message", params)
|
|
652
|
+
|
|
653
|
+
async def si_terminate_session(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
654
|
+
"""Terminate sponsored intelligence session."""
|
|
655
|
+
return await self._call_a2a_tool("si_terminate_session", params)
|
|
656
|
+
|
|
657
|
+
# ========================================================================
|
|
658
|
+
# V3 Protocol Methods - Governance (Property Lists)
|
|
659
|
+
# ========================================================================
|
|
660
|
+
|
|
661
|
+
async def create_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
662
|
+
"""Create a property list for governance."""
|
|
663
|
+
return await self._call_a2a_tool("create_property_list", params)
|
|
664
|
+
|
|
665
|
+
async def get_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
666
|
+
"""Get a property list with optional resolution."""
|
|
667
|
+
return await self._call_a2a_tool("get_property_list", params)
|
|
668
|
+
|
|
669
|
+
async def list_property_lists(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
670
|
+
"""List property lists."""
|
|
671
|
+
return await self._call_a2a_tool("list_property_lists", params)
|
|
672
|
+
|
|
673
|
+
async def update_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
674
|
+
"""Update a property list."""
|
|
675
|
+
return await self._call_a2a_tool("update_property_list", params)
|
|
676
|
+
|
|
677
|
+
async def delete_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
678
|
+
"""Delete a property list."""
|
|
679
|
+
return await self._call_a2a_tool("delete_property_list", params)
|
adcp/protocols/base.py
CHANGED
|
@@ -188,3 +188,104 @@ class ProtocolAdapter(ABC):
|
|
|
188
188
|
Implementations should close any open connections, clients, or other resources.
|
|
189
189
|
"""
|
|
190
190
|
pass
|
|
191
|
+
|
|
192
|
+
# ========================================================================
|
|
193
|
+
# V3 Protocol Methods - Protocol Discovery
|
|
194
|
+
# ========================================================================
|
|
195
|
+
|
|
196
|
+
@abstractmethod
|
|
197
|
+
async def get_adcp_capabilities(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
198
|
+
"""Get AdCP capabilities from the agent."""
|
|
199
|
+
pass
|
|
200
|
+
|
|
201
|
+
# ========================================================================
|
|
202
|
+
# V3 Protocol Methods - Content Standards
|
|
203
|
+
# ========================================================================
|
|
204
|
+
|
|
205
|
+
@abstractmethod
|
|
206
|
+
async def create_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
207
|
+
"""Create content standards configuration."""
|
|
208
|
+
pass
|
|
209
|
+
|
|
210
|
+
@abstractmethod
|
|
211
|
+
async def get_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
212
|
+
"""Get content standards configuration."""
|
|
213
|
+
pass
|
|
214
|
+
|
|
215
|
+
@abstractmethod
|
|
216
|
+
async def list_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
217
|
+
"""List content standards configurations."""
|
|
218
|
+
pass
|
|
219
|
+
|
|
220
|
+
@abstractmethod
|
|
221
|
+
async def update_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
222
|
+
"""Update content standards configuration."""
|
|
223
|
+
pass
|
|
224
|
+
|
|
225
|
+
@abstractmethod
|
|
226
|
+
async def calibrate_content(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
227
|
+
"""Calibrate content against standards."""
|
|
228
|
+
pass
|
|
229
|
+
|
|
230
|
+
@abstractmethod
|
|
231
|
+
async def validate_content_delivery(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
232
|
+
"""Validate content delivery against standards."""
|
|
233
|
+
pass
|
|
234
|
+
|
|
235
|
+
@abstractmethod
|
|
236
|
+
async def get_media_buy_artifacts(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
237
|
+
"""Get artifacts associated with a media buy."""
|
|
238
|
+
pass
|
|
239
|
+
|
|
240
|
+
# ========================================================================
|
|
241
|
+
# V3 Protocol Methods - Sponsored Intelligence
|
|
242
|
+
# ========================================================================
|
|
243
|
+
|
|
244
|
+
@abstractmethod
|
|
245
|
+
async def si_get_offering(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
246
|
+
"""Get sponsored intelligence offering."""
|
|
247
|
+
pass
|
|
248
|
+
|
|
249
|
+
@abstractmethod
|
|
250
|
+
async def si_initiate_session(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
251
|
+
"""Initiate sponsored intelligence session."""
|
|
252
|
+
pass
|
|
253
|
+
|
|
254
|
+
@abstractmethod
|
|
255
|
+
async def si_send_message(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
256
|
+
"""Send message in sponsored intelligence session."""
|
|
257
|
+
pass
|
|
258
|
+
|
|
259
|
+
@abstractmethod
|
|
260
|
+
async def si_terminate_session(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
261
|
+
"""Terminate sponsored intelligence session."""
|
|
262
|
+
pass
|
|
263
|
+
|
|
264
|
+
# ========================================================================
|
|
265
|
+
# V3 Protocol Methods - Governance (Property Lists)
|
|
266
|
+
# ========================================================================
|
|
267
|
+
|
|
268
|
+
@abstractmethod
|
|
269
|
+
async def create_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
270
|
+
"""Create a property list for governance."""
|
|
271
|
+
pass
|
|
272
|
+
|
|
273
|
+
@abstractmethod
|
|
274
|
+
async def get_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
275
|
+
"""Get a property list with optional resolution."""
|
|
276
|
+
pass
|
|
277
|
+
|
|
278
|
+
@abstractmethod
|
|
279
|
+
async def list_property_lists(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
280
|
+
"""List property lists."""
|
|
281
|
+
pass
|
|
282
|
+
|
|
283
|
+
@abstractmethod
|
|
284
|
+
async def update_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
285
|
+
"""Update a property list."""
|
|
286
|
+
pass
|
|
287
|
+
|
|
288
|
+
@abstractmethod
|
|
289
|
+
async def delete_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
290
|
+
"""Delete a property list."""
|
|
291
|
+
pass
|
adcp/protocols/mcp.py
CHANGED
|
@@ -517,3 +517,87 @@ class MCPAdapter(ProtocolAdapter):
|
|
|
517
517
|
async def close(self) -> None:
|
|
518
518
|
"""Close the MCP session and clean up resources."""
|
|
519
519
|
await self._cleanup_failed_connection("during close")
|
|
520
|
+
|
|
521
|
+
# ========================================================================
|
|
522
|
+
# V3 Protocol Methods - Protocol Discovery
|
|
523
|
+
# ========================================================================
|
|
524
|
+
|
|
525
|
+
async def get_adcp_capabilities(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
526
|
+
"""Get AdCP capabilities from the agent."""
|
|
527
|
+
return await self._call_mcp_tool("get_adcp_capabilities", params)
|
|
528
|
+
|
|
529
|
+
# ========================================================================
|
|
530
|
+
# V3 Protocol Methods - Content Standards
|
|
531
|
+
# ========================================================================
|
|
532
|
+
|
|
533
|
+
async def create_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
534
|
+
"""Create content standards configuration."""
|
|
535
|
+
return await self._call_mcp_tool("create_content_standards", params)
|
|
536
|
+
|
|
537
|
+
async def get_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
538
|
+
"""Get content standards configuration."""
|
|
539
|
+
return await self._call_mcp_tool("get_content_standards", params)
|
|
540
|
+
|
|
541
|
+
async def list_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
542
|
+
"""List content standards configurations."""
|
|
543
|
+
return await self._call_mcp_tool("list_content_standards", params)
|
|
544
|
+
|
|
545
|
+
async def update_content_standards(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
546
|
+
"""Update content standards configuration."""
|
|
547
|
+
return await self._call_mcp_tool("update_content_standards", params)
|
|
548
|
+
|
|
549
|
+
async def calibrate_content(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
550
|
+
"""Calibrate content against standards."""
|
|
551
|
+
return await self._call_mcp_tool("calibrate_content", params)
|
|
552
|
+
|
|
553
|
+
async def validate_content_delivery(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
554
|
+
"""Validate content delivery against standards."""
|
|
555
|
+
return await self._call_mcp_tool("validate_content_delivery", params)
|
|
556
|
+
|
|
557
|
+
async def get_media_buy_artifacts(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
558
|
+
"""Get artifacts associated with a media buy."""
|
|
559
|
+
return await self._call_mcp_tool("get_media_buy_artifacts", params)
|
|
560
|
+
|
|
561
|
+
# ========================================================================
|
|
562
|
+
# V3 Protocol Methods - Sponsored Intelligence
|
|
563
|
+
# ========================================================================
|
|
564
|
+
|
|
565
|
+
async def si_get_offering(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
566
|
+
"""Get sponsored intelligence offering."""
|
|
567
|
+
return await self._call_mcp_tool("si_get_offering", params)
|
|
568
|
+
|
|
569
|
+
async def si_initiate_session(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
570
|
+
"""Initiate sponsored intelligence session."""
|
|
571
|
+
return await self._call_mcp_tool("si_initiate_session", params)
|
|
572
|
+
|
|
573
|
+
async def si_send_message(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
574
|
+
"""Send message in sponsored intelligence session."""
|
|
575
|
+
return await self._call_mcp_tool("si_send_message", params)
|
|
576
|
+
|
|
577
|
+
async def si_terminate_session(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
578
|
+
"""Terminate sponsored intelligence session."""
|
|
579
|
+
return await self._call_mcp_tool("si_terminate_session", params)
|
|
580
|
+
|
|
581
|
+
# ========================================================================
|
|
582
|
+
# V3 Protocol Methods - Governance (Property Lists)
|
|
583
|
+
# ========================================================================
|
|
584
|
+
|
|
585
|
+
async def create_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
586
|
+
"""Create a property list for governance."""
|
|
587
|
+
return await self._call_mcp_tool("create_property_list", params)
|
|
588
|
+
|
|
589
|
+
async def get_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
590
|
+
"""Get a property list with optional resolution."""
|
|
591
|
+
return await self._call_mcp_tool("get_property_list", params)
|
|
592
|
+
|
|
593
|
+
async def list_property_lists(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
594
|
+
"""List property lists."""
|
|
595
|
+
return await self._call_mcp_tool("list_property_lists", params)
|
|
596
|
+
|
|
597
|
+
async def update_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
598
|
+
"""Update a property list."""
|
|
599
|
+
return await self._call_mcp_tool("update_property_list", params)
|
|
600
|
+
|
|
601
|
+
async def delete_property_list(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
602
|
+
"""Delete a property list."""
|
|
603
|
+
return await self._call_mcp_tool("delete_property_list", params)
|
adcp/server/__init__.py
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""ADCP Server Framework.
|
|
2
|
+
|
|
3
|
+
Provides base classes and adapters for building ADCP-compliant servers/agents.
|
|
4
|
+
Supports selective protocol implementation via protocol-specific adapters.
|
|
5
|
+
|
|
6
|
+
Examples:
|
|
7
|
+
# Content Standards agent (stubs media buy operations)
|
|
8
|
+
from adcp.server import ContentStandardsHandler, create_mcp_tools
|
|
9
|
+
|
|
10
|
+
class MyContentHandler(ContentStandardsHandler):
|
|
11
|
+
async def create_content_standards(self, request):
|
|
12
|
+
# Implement your logic
|
|
13
|
+
pass
|
|
14
|
+
|
|
15
|
+
# Register with MCP server
|
|
16
|
+
tools = create_mcp_tools(MyContentHandler())
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
from __future__ import annotations
|
|
20
|
+
|
|
21
|
+
from adcp.server.base import (
|
|
22
|
+
ADCPHandler,
|
|
23
|
+
NotImplementedResponse,
|
|
24
|
+
ToolContext,
|
|
25
|
+
not_supported,
|
|
26
|
+
)
|
|
27
|
+
from adcp.server.content_standards import ContentStandardsHandler
|
|
28
|
+
from adcp.server.governance import GovernanceHandler
|
|
29
|
+
from adcp.server.mcp_tools import MCPToolSet, create_mcp_tools
|
|
30
|
+
from adcp.server.proposal import ProposalBuilder, ProposalNotSupported
|
|
31
|
+
from adcp.server.sponsored_intelligence import SponsoredIntelligenceHandler
|
|
32
|
+
|
|
33
|
+
__all__ = [
|
|
34
|
+
# Base classes
|
|
35
|
+
"ADCPHandler",
|
|
36
|
+
"ToolContext",
|
|
37
|
+
"NotImplementedResponse",
|
|
38
|
+
"not_supported",
|
|
39
|
+
# Protocol handlers
|
|
40
|
+
"ContentStandardsHandler",
|
|
41
|
+
"GovernanceHandler",
|
|
42
|
+
"SponsoredIntelligenceHandler",
|
|
43
|
+
# Proposal helpers
|
|
44
|
+
"ProposalBuilder",
|
|
45
|
+
"ProposalNotSupported",
|
|
46
|
+
# MCP integration
|
|
47
|
+
"MCPToolSet",
|
|
48
|
+
"create_mcp_tools",
|
|
49
|
+
]
|