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/server/base.py
ADDED
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
"""Base classes for ADCP server implementations.
|
|
2
|
+
|
|
3
|
+
Defines the ADCPHandler base class and utilities for building ADCP-compliant agents.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from abc import ABC
|
|
9
|
+
from dataclasses import dataclass, field
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
from pydantic import BaseModel
|
|
13
|
+
|
|
14
|
+
from adcp.types import Error
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dataclass
|
|
18
|
+
class ToolContext:
|
|
19
|
+
"""Context passed to tool handlers.
|
|
20
|
+
|
|
21
|
+
Contains metadata about the current request that may be useful
|
|
22
|
+
for logging, authorization, or other cross-cutting concerns.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
request_id: str | None = None
|
|
26
|
+
caller_identity: str | None = None
|
|
27
|
+
metadata: dict[str, Any] = field(default_factory=dict)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class NotImplementedResponse(BaseModel):
|
|
31
|
+
"""Standard response for operations not supported by this handler."""
|
|
32
|
+
|
|
33
|
+
supported: bool = False
|
|
34
|
+
reason: str = "This operation is not supported by this agent"
|
|
35
|
+
error: Error | None = None
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def not_supported(
|
|
39
|
+
reason: str = "This operation is not supported by this agent",
|
|
40
|
+
) -> NotImplementedResponse:
|
|
41
|
+
"""Create a standard 'not supported' response.
|
|
42
|
+
|
|
43
|
+
Use this to return from operations that your agent does not implement.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
reason: Human-readable explanation of why the operation is not supported
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
NotImplementedResponse with supported=False
|
|
50
|
+
"""
|
|
51
|
+
return NotImplementedResponse(
|
|
52
|
+
supported=False,
|
|
53
|
+
reason=reason,
|
|
54
|
+
error=Error(
|
|
55
|
+
code="NOT_SUPPORTED",
|
|
56
|
+
message=reason,
|
|
57
|
+
),
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class ADCPHandler(ABC):
|
|
62
|
+
"""Base class for ADCP operation handlers.
|
|
63
|
+
|
|
64
|
+
Subclass this to implement ADCP operations. All operations have default
|
|
65
|
+
implementations that return 'not supported', allowing you to implement
|
|
66
|
+
only the operations your agent supports.
|
|
67
|
+
|
|
68
|
+
For protocol-specific handlers, use:
|
|
69
|
+
- ContentStandardsHandler: For content standards agents
|
|
70
|
+
- SponsoredIntelligenceHandler: For sponsored intelligence agents
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
# ========================================================================
|
|
74
|
+
# Core Catalog Operations
|
|
75
|
+
# ========================================================================
|
|
76
|
+
|
|
77
|
+
async def get_products(
|
|
78
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
79
|
+
) -> Any:
|
|
80
|
+
"""Get advertising products.
|
|
81
|
+
|
|
82
|
+
Override this to provide product catalog functionality.
|
|
83
|
+
"""
|
|
84
|
+
return not_supported("get_products is not implemented by this agent")
|
|
85
|
+
|
|
86
|
+
async def list_creative_formats(
|
|
87
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
88
|
+
) -> Any:
|
|
89
|
+
"""List supported creative formats.
|
|
90
|
+
|
|
91
|
+
Override this to provide creative format information.
|
|
92
|
+
"""
|
|
93
|
+
return not_supported("list_creative_formats is not implemented by this agent")
|
|
94
|
+
|
|
95
|
+
async def list_authorized_properties(
|
|
96
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
97
|
+
) -> Any:
|
|
98
|
+
"""List authorized properties.
|
|
99
|
+
|
|
100
|
+
Override this to provide property authorization information.
|
|
101
|
+
"""
|
|
102
|
+
return not_supported("list_authorized_properties is not implemented by this agent")
|
|
103
|
+
|
|
104
|
+
# ========================================================================
|
|
105
|
+
# Creative Operations
|
|
106
|
+
# ========================================================================
|
|
107
|
+
|
|
108
|
+
async def sync_creatives(
|
|
109
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
110
|
+
) -> Any:
|
|
111
|
+
"""Sync creatives.
|
|
112
|
+
|
|
113
|
+
Override this to handle creative synchronization.
|
|
114
|
+
"""
|
|
115
|
+
return not_supported("sync_creatives is not implemented by this agent")
|
|
116
|
+
|
|
117
|
+
async def list_creatives(
|
|
118
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
119
|
+
) -> Any:
|
|
120
|
+
"""List creatives.
|
|
121
|
+
|
|
122
|
+
Override this to list synced creatives.
|
|
123
|
+
"""
|
|
124
|
+
return not_supported("list_creatives is not implemented by this agent")
|
|
125
|
+
|
|
126
|
+
async def build_creative(
|
|
127
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
128
|
+
) -> Any:
|
|
129
|
+
"""Build a creative.
|
|
130
|
+
|
|
131
|
+
Override this to build creatives from assets.
|
|
132
|
+
"""
|
|
133
|
+
return not_supported("build_creative is not implemented by this agent")
|
|
134
|
+
|
|
135
|
+
# ========================================================================
|
|
136
|
+
# Media Buy Operations
|
|
137
|
+
# ========================================================================
|
|
138
|
+
|
|
139
|
+
async def create_media_buy(
|
|
140
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
141
|
+
) -> Any:
|
|
142
|
+
"""Create a media buy.
|
|
143
|
+
|
|
144
|
+
Override this to handle media buy creation.
|
|
145
|
+
"""
|
|
146
|
+
return not_supported("create_media_buy is not implemented by this agent")
|
|
147
|
+
|
|
148
|
+
async def update_media_buy(
|
|
149
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
150
|
+
) -> Any:
|
|
151
|
+
"""Update a media buy.
|
|
152
|
+
|
|
153
|
+
Override this to handle media buy updates.
|
|
154
|
+
"""
|
|
155
|
+
return not_supported("update_media_buy is not implemented by this agent")
|
|
156
|
+
|
|
157
|
+
async def get_media_buy_delivery(
|
|
158
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
159
|
+
) -> Any:
|
|
160
|
+
"""Get media buy delivery metrics.
|
|
161
|
+
|
|
162
|
+
Override this to provide delivery reporting.
|
|
163
|
+
"""
|
|
164
|
+
return not_supported("get_media_buy_delivery is not implemented by this agent")
|
|
165
|
+
|
|
166
|
+
# ========================================================================
|
|
167
|
+
# Signal Operations
|
|
168
|
+
# ========================================================================
|
|
169
|
+
|
|
170
|
+
async def get_signals(
|
|
171
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
172
|
+
) -> Any:
|
|
173
|
+
"""Get available signals.
|
|
174
|
+
|
|
175
|
+
Override this to provide signal catalog.
|
|
176
|
+
"""
|
|
177
|
+
return not_supported("get_signals is not implemented by this agent")
|
|
178
|
+
|
|
179
|
+
async def activate_signal(
|
|
180
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
181
|
+
) -> Any:
|
|
182
|
+
"""Activate a signal.
|
|
183
|
+
|
|
184
|
+
Override this to handle signal activation.
|
|
185
|
+
"""
|
|
186
|
+
return not_supported("activate_signal is not implemented by this agent")
|
|
187
|
+
|
|
188
|
+
# ========================================================================
|
|
189
|
+
# Feedback Operations
|
|
190
|
+
# ========================================================================
|
|
191
|
+
|
|
192
|
+
async def provide_performance_feedback(
|
|
193
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
194
|
+
) -> Any:
|
|
195
|
+
"""Provide performance feedback.
|
|
196
|
+
|
|
197
|
+
Override this to handle performance feedback ingestion.
|
|
198
|
+
"""
|
|
199
|
+
return not_supported("provide_performance_feedback is not implemented by this agent")
|
|
200
|
+
|
|
201
|
+
# ========================================================================
|
|
202
|
+
# V3 Protocol Discovery
|
|
203
|
+
# ========================================================================
|
|
204
|
+
|
|
205
|
+
async def get_adcp_capabilities(
|
|
206
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
207
|
+
) -> Any:
|
|
208
|
+
"""Get ADCP capabilities.
|
|
209
|
+
|
|
210
|
+
Override this to advertise your agent's capabilities.
|
|
211
|
+
"""
|
|
212
|
+
return not_supported("get_adcp_capabilities is not implemented by this agent")
|
|
213
|
+
|
|
214
|
+
# ========================================================================
|
|
215
|
+
# V3 Content Standards Operations
|
|
216
|
+
# ========================================================================
|
|
217
|
+
|
|
218
|
+
async def create_content_standards(
|
|
219
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
220
|
+
) -> Any:
|
|
221
|
+
"""Create content standards configuration.
|
|
222
|
+
|
|
223
|
+
Override this in ContentStandardsHandler subclasses.
|
|
224
|
+
"""
|
|
225
|
+
return not_supported("create_content_standards is not implemented by this agent")
|
|
226
|
+
|
|
227
|
+
async def get_content_standards(
|
|
228
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
229
|
+
) -> Any:
|
|
230
|
+
"""Get content standards configuration.
|
|
231
|
+
|
|
232
|
+
Override this in ContentStandardsHandler subclasses.
|
|
233
|
+
"""
|
|
234
|
+
return not_supported("get_content_standards is not implemented by this agent")
|
|
235
|
+
|
|
236
|
+
async def list_content_standards(
|
|
237
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
238
|
+
) -> Any:
|
|
239
|
+
"""List content standards configurations.
|
|
240
|
+
|
|
241
|
+
Override this in ContentStandardsHandler subclasses.
|
|
242
|
+
"""
|
|
243
|
+
return not_supported("list_content_standards is not implemented by this agent")
|
|
244
|
+
|
|
245
|
+
async def update_content_standards(
|
|
246
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
247
|
+
) -> Any:
|
|
248
|
+
"""Update content standards configuration.
|
|
249
|
+
|
|
250
|
+
Override this in ContentStandardsHandler subclasses.
|
|
251
|
+
"""
|
|
252
|
+
return not_supported("update_content_standards is not implemented by this agent")
|
|
253
|
+
|
|
254
|
+
async def calibrate_content(
|
|
255
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
256
|
+
) -> Any:
|
|
257
|
+
"""Calibrate content against standards.
|
|
258
|
+
|
|
259
|
+
Override this in ContentStandardsHandler subclasses.
|
|
260
|
+
"""
|
|
261
|
+
return not_supported("calibrate_content is not implemented by this agent")
|
|
262
|
+
|
|
263
|
+
async def validate_content_delivery(
|
|
264
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
265
|
+
) -> Any:
|
|
266
|
+
"""Validate content delivery against standards.
|
|
267
|
+
|
|
268
|
+
Override this in ContentStandardsHandler subclasses.
|
|
269
|
+
"""
|
|
270
|
+
return not_supported("validate_content_delivery is not implemented by this agent")
|
|
271
|
+
|
|
272
|
+
async def get_media_buy_artifacts(
|
|
273
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
274
|
+
) -> Any:
|
|
275
|
+
"""Get artifacts associated with a media buy.
|
|
276
|
+
|
|
277
|
+
Override this in ContentStandardsHandler subclasses.
|
|
278
|
+
"""
|
|
279
|
+
return not_supported("get_media_buy_artifacts is not implemented by this agent")
|
|
280
|
+
|
|
281
|
+
# ========================================================================
|
|
282
|
+
# V3 Sponsored Intelligence Operations
|
|
283
|
+
# ========================================================================
|
|
284
|
+
|
|
285
|
+
async def si_get_offering(
|
|
286
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
287
|
+
) -> Any:
|
|
288
|
+
"""Get sponsored intelligence offering.
|
|
289
|
+
|
|
290
|
+
Override this in SponsoredIntelligenceHandler subclasses.
|
|
291
|
+
"""
|
|
292
|
+
return not_supported("si_get_offering is not implemented by this agent")
|
|
293
|
+
|
|
294
|
+
async def si_initiate_session(
|
|
295
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
296
|
+
) -> Any:
|
|
297
|
+
"""Initiate sponsored intelligence session.
|
|
298
|
+
|
|
299
|
+
Override this in SponsoredIntelligenceHandler subclasses.
|
|
300
|
+
"""
|
|
301
|
+
return not_supported("si_initiate_session is not implemented by this agent")
|
|
302
|
+
|
|
303
|
+
async def si_send_message(
|
|
304
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
305
|
+
) -> Any:
|
|
306
|
+
"""Send message in sponsored intelligence session.
|
|
307
|
+
|
|
308
|
+
Override this in SponsoredIntelligenceHandler subclasses.
|
|
309
|
+
"""
|
|
310
|
+
return not_supported("si_send_message is not implemented by this agent")
|
|
311
|
+
|
|
312
|
+
async def si_terminate_session(
|
|
313
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
314
|
+
) -> Any:
|
|
315
|
+
"""Terminate sponsored intelligence session.
|
|
316
|
+
|
|
317
|
+
Override this in SponsoredIntelligenceHandler subclasses.
|
|
318
|
+
"""
|
|
319
|
+
return not_supported("si_terminate_session is not implemented by this agent")
|
|
320
|
+
|
|
321
|
+
# ========================================================================
|
|
322
|
+
# V3 Governance (Property Lists) Operations
|
|
323
|
+
# ========================================================================
|
|
324
|
+
|
|
325
|
+
async def create_property_list(
|
|
326
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
327
|
+
) -> Any:
|
|
328
|
+
"""Create a property list for governance filtering.
|
|
329
|
+
|
|
330
|
+
Override this in GovernanceHandler subclasses.
|
|
331
|
+
"""
|
|
332
|
+
return not_supported("create_property_list is not implemented by this agent")
|
|
333
|
+
|
|
334
|
+
async def get_property_list(
|
|
335
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
336
|
+
) -> Any:
|
|
337
|
+
"""Get a property list with optional resolution.
|
|
338
|
+
|
|
339
|
+
Override this in GovernanceHandler subclasses.
|
|
340
|
+
"""
|
|
341
|
+
return not_supported("get_property_list is not implemented by this agent")
|
|
342
|
+
|
|
343
|
+
async def list_property_lists(
|
|
344
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
345
|
+
) -> Any:
|
|
346
|
+
"""List property lists.
|
|
347
|
+
|
|
348
|
+
Override this in GovernanceHandler subclasses.
|
|
349
|
+
"""
|
|
350
|
+
return not_supported("list_property_lists is not implemented by this agent")
|
|
351
|
+
|
|
352
|
+
async def update_property_list(
|
|
353
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
354
|
+
) -> Any:
|
|
355
|
+
"""Update a property list.
|
|
356
|
+
|
|
357
|
+
Override this in GovernanceHandler subclasses.
|
|
358
|
+
"""
|
|
359
|
+
return not_supported("update_property_list is not implemented by this agent")
|
|
360
|
+
|
|
361
|
+
async def delete_property_list(
|
|
362
|
+
self, params: dict[str, Any], context: ToolContext | None = None
|
|
363
|
+
) -> Any:
|
|
364
|
+
"""Delete a property list.
|
|
365
|
+
|
|
366
|
+
Override this in GovernanceHandler subclasses.
|
|
367
|
+
"""
|
|
368
|
+
return not_supported("delete_property_list is not implemented by this agent")
|