adcp 3.1.0__py3-none-any.whl → 3.2.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 +5 -5
- adcp/__main__.py +4 -4
- adcp/adagents.py +5 -9
- adcp/client.py +14 -12
- adcp/protocols/a2a.py +3 -3
- adcp/protocols/base.py +2 -2
- adcp/protocols/mcp.py +3 -3
- adcp/server/base.py +6 -10
- adcp/server/content_standards.py +17 -49
- adcp/server/governance.py +20 -59
- adcp/server/mcp_tools.py +8 -4
- adcp/server/proposal.py +1 -3
- adcp/server/sponsored_intelligence.py +10 -28
- adcp/simple.py +10 -10
- adcp/types/__init__.py +10 -6
- adcp/types/_generated.py +44 -27
- adcp/types/base.py +7 -7
- adcp/types/generated_poc/{protocols → a2ui}/__init__.py +1 -1
- adcp/types/generated_poc/a2ui/component.py +24 -0
- adcp/types/generated_poc/a2ui/surface.py +33 -0
- adcp/types/generated_poc/account/__init__.py +3 -0
- adcp/types/generated_poc/account/list_accounts_request.py +30 -0
- adcp/types/generated_poc/account/list_accounts_response.py +30 -0
- adcp/types/generated_poc/adagents.py +192 -195
- adcp/types/generated_poc/content_standards/artifact.py +69 -69
- adcp/types/generated_poc/content_standards/artifact_webhook_payload.py +13 -13
- adcp/types/generated_poc/content_standards/calibrate_content_request.py +2 -2
- adcp/types/generated_poc/content_standards/calibrate_content_response.py +17 -17
- adcp/types/generated_poc/content_standards/content_standards.py +8 -8
- adcp/types/generated_poc/content_standards/create_content_standards_request.py +13 -13
- adcp/types/generated_poc/content_standards/create_content_standards_response.py +6 -6
- adcp/types/generated_poc/content_standards/get_content_standards_request.py +1 -1
- adcp/types/generated_poc/content_standards/get_content_standards_response.py +4 -4
- adcp/types/generated_poc/content_standards/get_media_buy_artifacts_request.py +14 -14
- adcp/types/generated_poc/content_standards/get_media_buy_artifacts_response.py +30 -30
- adcp/types/generated_poc/content_standards/list_content_standards_request.py +4 -4
- adcp/types/generated_poc/content_standards/list_content_standards_response.py +5 -5
- adcp/types/generated_poc/content_standards/update_content_standards_request.py +14 -14
- adcp/types/generated_poc/content_standards/update_content_standards_response.py +4 -4
- adcp/types/generated_poc/content_standards/validate_content_delivery_request.py +13 -13
- adcp/types/generated_poc/content_standards/validate_content_delivery_response.py +16 -16
- adcp/types/generated_poc/core/account.py +54 -0
- adcp/types/generated_poc/core/activation_key.py +8 -8
- adcp/types/generated_poc/core/assets/audio_asset.py +37 -8
- adcp/types/generated_poc/core/assets/css_asset.py +2 -2
- adcp/types/generated_poc/core/assets/daast_asset.py +18 -18
- adcp/types/generated_poc/core/assets/html_asset.py +2 -2
- adcp/types/generated_poc/core/assets/image_asset.py +6 -6
- adcp/types/generated_poc/core/assets/javascript_asset.py +3 -3
- adcp/types/generated_poc/core/assets/text_asset.py +2 -2
- adcp/types/generated_poc/core/assets/url_asset.py +3 -3
- adcp/types/generated_poc/core/assets/vast_asset.py +18 -18
- adcp/types/generated_poc/core/assets/video_asset.py +126 -10
- adcp/types/generated_poc/core/assets/webhook_asset.py +9 -9
- adcp/types/generated_poc/core/async_response_data.py +2 -2
- adcp/types/generated_poc/core/brand_manifest.py +66 -66
- adcp/types/generated_poc/core/brand_manifest_ref.py +9 -9
- adcp/types/generated_poc/core/context.py +1 -1
- adcp/types/generated_poc/core/creative_asset.py +12 -12
- adcp/types/generated_poc/core/creative_assignment.py +3 -3
- adcp/types/generated_poc/core/creative_filters.py +23 -17
- adcp/types/generated_poc/core/creative_manifest.py +4 -4
- adcp/types/generated_poc/core/creative_policy.py +4 -4
- adcp/types/generated_poc/core/delivery_metrics.py +32 -32
- adcp/types/generated_poc/core/deployment.py +20 -20
- adcp/types/generated_poc/core/destination.py +11 -11
- adcp/types/generated_poc/core/error.py +6 -6
- adcp/types/generated_poc/core/ext.py +1 -1
- adcp/types/generated_poc/core/format.py +49 -124
- adcp/types/generated_poc/core/format_id.py +5 -5
- adcp/types/generated_poc/core/frequency_cap.py +2 -2
- adcp/types/generated_poc/core/identifier.py +2 -2
- adcp/types/generated_poc/core/mcp_webhook_payload.py +10 -10
- adcp/types/generated_poc/core/measurement.py +8 -8
- adcp/types/generated_poc/core/media_buy.py +12 -8
- adcp/types/generated_poc/core/media_buy_features.py +3 -3
- adcp/types/generated_poc/core/offering.py +9 -9
- adcp/types/generated_poc/core/package.py +8 -8
- adcp/types/generated_poc/core/performance_feedback.py +18 -18
- adcp/types/generated_poc/core/placement.py +4 -4
- adcp/types/generated_poc/core/pricing_option.py +1 -1
- adcp/types/generated_poc/core/product.py +27 -21
- adcp/types/generated_poc/core/product_allocation.py +5 -5
- adcp/types/generated_poc/core/product_filters.py +27 -27
- adcp/types/generated_poc/core/promoted_offerings.py +18 -18
- adcp/types/generated_poc/core/promoted_products.py +2 -2
- adcp/types/generated_poc/core/property.py +10 -10
- adcp/types/generated_poc/core/property_id.py +4 -4
- adcp/types/generated_poc/core/property_list_ref.py +4 -4
- adcp/types/generated_poc/core/property_tag.py +4 -4
- adcp/types/generated_poc/core/proposal.py +13 -13
- adcp/types/generated_poc/core/protocol_envelope.py +8 -8
- adcp/types/generated_poc/core/publisher_property_selector.py +13 -13
- adcp/types/generated_poc/core/push_notification_config.py +5 -5
- adcp/types/generated_poc/core/reporting_capabilities.py +8 -8
- adcp/types/generated_poc/core/reporting_webhook.py +10 -10
- adcp/types/generated_poc/core/response.py +4 -4
- adcp/types/generated_poc/core/signal_filters.py +5 -5
- adcp/types/generated_poc/core/start_timing.py +3 -3
- adcp/types/generated_poc/core/sub_asset.py +14 -14
- adcp/types/generated_poc/core/targeting.py +17 -10
- adcp/types/generated_poc/creative/list_creative_formats_request.py +20 -20
- adcp/types/generated_poc/creative/list_creative_formats_response.py +5 -5
- adcp/types/generated_poc/creative/preview_creative_request.py +24 -24
- adcp/types/generated_poc/creative/preview_creative_response.py +28 -28
- adcp/types/generated_poc/creative/preview_render.py +25 -25
- adcp/types/generated_poc/enums/adcp_domain.py +4 -4
- adcp/types/generated_poc/enums/asset_content_type.py +13 -13
- adcp/types/generated_poc/enums/auth_scheme.py +2 -2
- adcp/types/generated_poc/enums/available_metric.py +9 -9
- adcp/types/generated_poc/enums/channels.py +19 -19
- adcp/types/generated_poc/enums/co_branding_requirement.py +3 -3
- adcp/types/generated_poc/enums/creative_action.py +5 -5
- adcp/types/generated_poc/enums/creative_agent_capability.py +4 -4
- adcp/types/generated_poc/enums/creative_sort_field.py +6 -6
- adcp/types/generated_poc/enums/creative_status.py +5 -5
- adcp/types/generated_poc/enums/daast_tracking_event.py +11 -11
- adcp/types/generated_poc/enums/daast_version.py +2 -2
- adcp/types/generated_poc/enums/delivery_type.py +2 -2
- adcp/types/generated_poc/enums/dimension_unit.py +4 -4
- adcp/types/generated_poc/enums/feed_format.py +3 -3
- adcp/types/generated_poc/enums/feedback_source.py +4 -4
- adcp/types/generated_poc/enums/format_category.py +7 -7
- adcp/types/generated_poc/enums/format_id_parameter.py +2 -2
- adcp/types/generated_poc/enums/frequency_cap_scope.py +3 -3
- adcp/types/generated_poc/enums/geo_level.py +4 -4
- adcp/types/generated_poc/enums/history_entry_type.py +2 -2
- adcp/types/generated_poc/enums/http_method.py +2 -2
- adcp/types/generated_poc/enums/identifier_types.py +19 -19
- adcp/types/generated_poc/enums/javascript_module_type.py +3 -3
- adcp/types/generated_poc/enums/landing_page_requirement.py +3 -3
- adcp/types/generated_poc/enums/markdown_flavor.py +2 -2
- adcp/types/generated_poc/enums/media_buy_status.py +4 -4
- adcp/types/generated_poc/enums/metric_type.py +8 -8
- adcp/types/generated_poc/enums/metro_system.py +5 -5
- adcp/types/generated_poc/enums/notification_type.py +4 -4
- adcp/types/generated_poc/enums/pacing.py +3 -3
- adcp/types/generated_poc/enums/postal_system.py +9 -9
- adcp/types/generated_poc/enums/preview_output_format.py +2 -2
- adcp/types/generated_poc/enums/pricing_model.py +7 -7
- adcp/types/generated_poc/enums/property_type.py +8 -8
- adcp/types/generated_poc/enums/publisher_identifier_types.py +5 -5
- adcp/types/generated_poc/enums/reporting_frequency.py +3 -3
- adcp/types/generated_poc/enums/signal_catalog_type.py +3 -3
- adcp/types/generated_poc/enums/sort_direction.py +2 -2
- adcp/types/generated_poc/enums/task_status.py +9 -9
- adcp/types/generated_poc/enums/task_type.py +11 -12
- adcp/types/generated_poc/enums/update_frequency.py +4 -4
- adcp/types/generated_poc/enums/url_asset_type.py +3 -3
- adcp/types/generated_poc/enums/validation_mode.py +2 -2
- adcp/types/generated_poc/enums/vast_tracking_event.py +16 -16
- adcp/types/generated_poc/enums/vast_version.py +5 -5
- adcp/types/generated_poc/enums/webhook_response_type.py +4 -4
- adcp/types/generated_poc/enums/webhook_security_method.py +3 -3
- adcp/types/generated_poc/extensions/extension_meta.py +14 -14
- adcp/types/generated_poc/media_buy/build_creative_request.py +4 -4
- adcp/types/generated_poc/media_buy/build_creative_response.py +6 -6
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_input_required.py +5 -5
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_submitted.py +1 -1
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_working.py +5 -5
- adcp/types/generated_poc/media_buy/create_media_buy_request.py +27 -21
- adcp/types/generated_poc/media_buy/create_media_buy_response.py +15 -8
- adcp/types/generated_poc/media_buy/get_media_buy_delivery_request.py +8 -8
- adcp/types/generated_poc/media_buy/get_media_buy_delivery_response.py +51 -51
- adcp/types/generated_poc/media_buy/get_products_async_response_input_required.py +6 -6
- adcp/types/generated_poc/media_buy/get_products_async_response_submitted.py +2 -2
- adcp/types/generated_poc/media_buy/get_products_async_response_working.py +4 -4
- adcp/types/generated_poc/media_buy/get_products_request.py +11 -5
- adcp/types/generated_poc/media_buy/get_products_response.py +5 -5
- adcp/types/generated_poc/media_buy/list_creative_formats_request.py +9 -9
- adcp/types/generated_poc/media_buy/list_creative_formats_response.py +5 -5
- adcp/types/generated_poc/media_buy/list_creatives_request.py +23 -23
- adcp/types/generated_poc/media_buy/list_creatives_response.py +53 -49
- adcp/types/generated_poc/media_buy/package_request.py +8 -8
- adcp/types/generated_poc/media_buy/package_update.py +16 -16
- adcp/types/generated_poc/media_buy/provide_performance_feedback_request.py +19 -19
- adcp/types/generated_poc/media_buy/provide_performance_feedback_response.py +6 -6
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_input_required.py +5 -5
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_submitted.py +1 -1
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_working.py +7 -7
- adcp/types/generated_poc/media_buy/sync_creatives_request.py +14 -8
- adcp/types/generated_poc/media_buy/sync_creatives_response.py +33 -29
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_input_required.py +4 -4
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_submitted.py +1 -1
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_working.py +5 -5
- adcp/types/generated_poc/media_buy/update_media_buy_request.py +14 -14
- adcp/types/generated_poc/media_buy/update_media_buy_response.py +7 -7
- adcp/types/generated_poc/pricing_options/cpc_option.py +13 -26
- adcp/types/generated_poc/pricing_options/cpcv_option.py +13 -26
- adcp/types/generated_poc/pricing_options/cpm_option.py +13 -20
- adcp/types/generated_poc/pricing_options/cpp_option.py +19 -32
- adcp/types/generated_poc/pricing_options/cpv_option.py +19 -32
- adcp/types/generated_poc/pricing_options/flat_rate_option.py +23 -36
- adcp/types/generated_poc/pricing_options/price_guidance.py +26 -0
- adcp/types/generated_poc/pricing_options/vcpm_option.py +13 -26
- adcp/types/generated_poc/property/base_property_source.py +15 -15
- adcp/types/generated_poc/property/create_property_list_request.py +4 -4
- adcp/types/generated_poc/property/create_property_list_response.py +3 -3
- adcp/types/generated_poc/property/delete_property_list_request.py +2 -2
- adcp/types/generated_poc/property/delete_property_list_response.py +3 -3
- adcp/types/generated_poc/property/feature_requirement.py +8 -8
- adcp/types/generated_poc/property/get_property_list_request.py +5 -5
- adcp/types/generated_poc/property/get_property_list_response.py +11 -11
- adcp/types/generated_poc/property/list_property_lists_request.py +5 -5
- adcp/types/generated_poc/property/list_property_lists_response.py +8 -8
- adcp/types/generated_poc/property/property_error.py +10 -10
- adcp/types/generated_poc/property/property_feature.py +4 -4
- adcp/types/generated_poc/property/property_feature_definition.py +18 -18
- adcp/types/generated_poc/property/property_list.py +11 -11
- adcp/types/generated_poc/property/property_list_changed_webhook.py +11 -11
- adcp/types/generated_poc/property/property_list_filters.py +7 -7
- adcp/types/generated_poc/property/update_property_list_request.py +8 -8
- adcp/types/generated_poc/property/update_property_list_response.py +2 -2
- adcp/types/generated_poc/protocol/get_adcp_capabilities_request.py +8 -6
- adcp/types/generated_poc/protocol/get_adcp_capabilities_response.py +59 -58
- adcp/types/generated_poc/signals/activate_signal_request.py +3 -3
- adcp/types/generated_poc/signals/activate_signal_response.py +6 -6
- adcp/types/generated_poc/signals/get_signals_request.py +8 -8
- adcp/types/generated_poc/signals/get_signals_response.py +15 -15
- adcp/types/generated_poc/sponsored_intelligence/si_capabilities.py +45 -30
- adcp/types/generated_poc/sponsored_intelligence/si_get_offering_request.py +4 -4
- adcp/types/generated_poc/sponsored_intelligence/si_get_offering_response.py +23 -23
- adcp/types/generated_poc/sponsored_intelligence/si_identity.py +16 -16
- adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_request.py +5 -5
- adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_response.py +7 -7
- adcp/types/generated_poc/sponsored_intelligence/si_send_message_request.py +11 -11
- adcp/types/generated_poc/sponsored_intelligence/si_send_message_response.py +37 -23
- adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_request.py +17 -17
- adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_response.py +15 -15
- adcp/types/generated_poc/sponsored_intelligence/si_ui_element.py +11 -11
- adcp/utils/format_assets.py +32 -32
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/METADATA +10 -5
- adcp-3.2.0.dist-info/RECORD +268 -0
- adcp/types/generated_poc/media_buy/list_authorized_properties_request.py +0 -38
- adcp/types/generated_poc/media_buy/list_authorized_properties_response.py +0 -84
- adcp/types/generated_poc/protocols/adcp_extension.py +0 -50
- adcp-3.1.0.dist-info/RECORD +0 -264
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/WHEEL +0 -0
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/entry_points.txt +0 -0
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/licenses/LICENSE +0 -0
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/top_level.txt +0 -0
adcp/ADCP_VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.0.0-beta.
|
|
1
|
+
3.0.0-beta.2
|
adcp/__init__.py
CHANGED
|
@@ -94,8 +94,8 @@ from adcp.types import (
|
|
|
94
94
|
GetProductsResponse,
|
|
95
95
|
GetSignalsRequest,
|
|
96
96
|
GetSignalsResponse,
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
ListAccountsRequest,
|
|
98
|
+
ListAccountsResponse,
|
|
99
99
|
ListCreativeFormatsRequest,
|
|
100
100
|
ListCreativeFormatsResponse,
|
|
101
101
|
ListCreativesRequest,
|
|
@@ -197,7 +197,7 @@ from adcp.webhooks import (
|
|
|
197
197
|
get_adcp_signed_headers_for_webhook,
|
|
198
198
|
)
|
|
199
199
|
|
|
200
|
-
__version__ = "3.
|
|
200
|
+
__version__ = "3.2.0"
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
def get_adcp_version() -> str:
|
|
@@ -263,8 +263,8 @@ __all__ = [
|
|
|
263
263
|
"GetSignalsRequest",
|
|
264
264
|
"GetSignalsResponse",
|
|
265
265
|
"SignalFilters",
|
|
266
|
-
"
|
|
267
|
-
"
|
|
266
|
+
"ListAccountsRequest",
|
|
267
|
+
"ListAccountsResponse",
|
|
268
268
|
"ProvidePerformanceFeedbackRequest",
|
|
269
269
|
"ProvidePerformanceFeedbackResponse",
|
|
270
270
|
"Error",
|
adcp/__main__.py
CHANGED
|
@@ -193,9 +193,9 @@ def _get_dispatch_table() -> dict[str, tuple[str, type | None]]:
|
|
|
193
193
|
"create_media_buy": ("create_media_buy", gen.CreateMediaBuyRequest),
|
|
194
194
|
"update_media_buy": ("update_media_buy", gen.UpdateMediaBuyRequest),
|
|
195
195
|
"get_media_buy_delivery": ("get_media_buy_delivery", gen.GetMediaBuyDeliveryRequest),
|
|
196
|
-
"
|
|
197
|
-
"
|
|
198
|
-
gen.
|
|
196
|
+
"list_accounts": (
|
|
197
|
+
"list_accounts",
|
|
198
|
+
gen.ListAccountsRequest,
|
|
199
199
|
),
|
|
200
200
|
# Signals
|
|
201
201
|
"get_signals": ("get_signals", gen.GetSignalsRequest),
|
|
@@ -491,7 +491,7 @@ def main() -> None:
|
|
|
491
491
|
print(" adcp https://agent.example.com list_tools")
|
|
492
492
|
print("\nV3 Protocol Examples:")
|
|
493
493
|
print(" adcp myagent get_adcp_capabilities")
|
|
494
|
-
print(
|
|
494
|
+
print(' adcp cs-agent calibrate_content \'{"content_standards_id":"cs-123"}\'')
|
|
495
495
|
print(" adcp si-agent si_get_offering")
|
|
496
496
|
print(" adcp gov-agent list_property_lists")
|
|
497
497
|
sys.exit(0)
|
adcp/adagents.py
CHANGED
|
@@ -330,9 +330,7 @@ async def fetch_adagents(
|
|
|
330
330
|
for depth in range(MAX_REDIRECT_DEPTH + 1):
|
|
331
331
|
# Check for redirect loop
|
|
332
332
|
if url in visited_urls:
|
|
333
|
-
raise AdagentsValidationError(
|
|
334
|
-
f"Circular redirect detected: {url} already visited"
|
|
335
|
-
)
|
|
333
|
+
raise AdagentsValidationError(f"Circular redirect detected: {url} already visited")
|
|
336
334
|
visited_urls.add(url)
|
|
337
335
|
|
|
338
336
|
data = await _fetch_adagents_url(url, timeout, user_agent, client)
|
|
@@ -427,9 +425,7 @@ async def _fetch_adagents_url(
|
|
|
427
425
|
try:
|
|
428
426
|
validate_adagents(data)
|
|
429
427
|
except ValidationError as e:
|
|
430
|
-
raise AdagentsValidationError(
|
|
431
|
-
f"Invalid adagents.json structure: {e}"
|
|
432
|
-
) from e
|
|
428
|
+
raise AdagentsValidationError(f"Invalid adagents.json structure: {e}") from e
|
|
433
429
|
elif "authoritative_location" not in data:
|
|
434
430
|
# Neither authorized_agents nor authoritative_location
|
|
435
431
|
raise AdagentsValidationError(
|
|
@@ -693,8 +689,8 @@ async def fetch_agent_authorizations(
|
|
|
693
689
|
properties your agent can access.
|
|
694
690
|
|
|
695
691
|
This is the "pull" approach - you query publishers to see if they've authorized you.
|
|
696
|
-
For the "push" approach where the agent tells you what
|
|
697
|
-
use the agent's
|
|
692
|
+
For the "push" approach where the agent tells you what billing accounts you can use,
|
|
693
|
+
use the agent's list_accounts endpoint via ADCPClient.
|
|
698
694
|
|
|
699
695
|
Args:
|
|
700
696
|
agent_url: URL of your sales agent
|
|
@@ -718,7 +714,7 @@ async def fetch_agent_authorizations(
|
|
|
718
714
|
... print(f" Tags: {ctx.property_tags}")
|
|
719
715
|
|
|
720
716
|
See Also:
|
|
721
|
-
ADCPClient.
|
|
717
|
+
ADCPClient.list_accounts: "Push" approach using the agent's API to list billing accounts
|
|
722
718
|
|
|
723
719
|
Notes:
|
|
724
720
|
- Silently skips domains where adagents.json is not found or invalid
|
adcp/client.py
CHANGED
|
@@ -32,8 +32,8 @@ from adcp.types import (
|
|
|
32
32
|
GetProductsResponse,
|
|
33
33
|
GetSignalsRequest,
|
|
34
34
|
GetSignalsResponse,
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
ListAccountsRequest,
|
|
36
|
+
ListAccountsResponse,
|
|
37
37
|
ListCreativeFormatsRequest,
|
|
38
38
|
ListCreativeFormatsResponse,
|
|
39
39
|
ListCreativesRequest,
|
|
@@ -525,18 +525,20 @@ class ADCPClient:
|
|
|
525
525
|
|
|
526
526
|
return self.adapter._parse_response(raw_result, GetMediaBuyDeliveryResponse)
|
|
527
527
|
|
|
528
|
-
async def
|
|
528
|
+
async def list_accounts(
|
|
529
529
|
self,
|
|
530
|
-
request:
|
|
531
|
-
) -> TaskResult[
|
|
530
|
+
request: ListAccountsRequest,
|
|
531
|
+
) -> TaskResult[ListAccountsResponse]:
|
|
532
532
|
"""
|
|
533
|
-
List
|
|
533
|
+
List Accounts.
|
|
534
|
+
|
|
535
|
+
Lists billing accounts accessible to the authenticated agent.
|
|
534
536
|
|
|
535
537
|
Args:
|
|
536
538
|
request: Request parameters
|
|
537
539
|
|
|
538
540
|
Returns:
|
|
539
|
-
TaskResult containing
|
|
541
|
+
TaskResult containing ListAccountsResponse
|
|
540
542
|
"""
|
|
541
543
|
operation_id = create_operation_id()
|
|
542
544
|
params = request.model_dump(exclude_none=True)
|
|
@@ -546,25 +548,25 @@ class ADCPClient:
|
|
|
546
548
|
type=ActivityType.PROTOCOL_REQUEST,
|
|
547
549
|
operation_id=operation_id,
|
|
548
550
|
agent_id=self.agent_config.id,
|
|
549
|
-
task_type="
|
|
551
|
+
task_type="list_accounts",
|
|
550
552
|
timestamp=datetime.now(timezone.utc).isoformat(),
|
|
551
553
|
)
|
|
552
554
|
)
|
|
553
555
|
|
|
554
|
-
raw_result = await self.adapter.
|
|
556
|
+
raw_result = await self.adapter.list_accounts(params)
|
|
555
557
|
|
|
556
558
|
self._emit_activity(
|
|
557
559
|
Activity(
|
|
558
560
|
type=ActivityType.PROTOCOL_RESPONSE,
|
|
559
561
|
operation_id=operation_id,
|
|
560
562
|
agent_id=self.agent_config.id,
|
|
561
|
-
task_type="
|
|
563
|
+
task_type="list_accounts",
|
|
562
564
|
status=raw_result.status,
|
|
563
565
|
timestamp=datetime.now(timezone.utc).isoformat(),
|
|
564
566
|
)
|
|
565
567
|
)
|
|
566
568
|
|
|
567
|
-
return self.adapter._parse_response(raw_result,
|
|
569
|
+
return self.adapter._parse_response(raw_result, ListAccountsResponse)
|
|
568
570
|
|
|
569
571
|
async def get_signals(
|
|
570
572
|
self,
|
|
@@ -1759,7 +1761,7 @@ class ADCPClient:
|
|
|
1759
1761
|
"sync_creatives": SyncCreativesResponse, # Union type
|
|
1760
1762
|
"list_creatives": ListCreativesResponse,
|
|
1761
1763
|
"get_media_buy_delivery": GetMediaBuyDeliveryResponse,
|
|
1762
|
-
"
|
|
1764
|
+
"list_accounts": ListAccountsResponse,
|
|
1763
1765
|
"get_signals": GetSignalsResponse,
|
|
1764
1766
|
"activate_signal": ActivateSignalResponse, # Union type
|
|
1765
1767
|
"provide_performance_feedback": ProvidePerformanceFeedbackResponse,
|
adcp/protocols/a2a.py
CHANGED
|
@@ -437,9 +437,9 @@ class A2AAdapter(ProtocolAdapter):
|
|
|
437
437
|
"""Get media buy delivery."""
|
|
438
438
|
return await self._call_a2a_tool("get_media_buy_delivery", params)
|
|
439
439
|
|
|
440
|
-
async def
|
|
441
|
-
"""List
|
|
442
|
-
return await self._call_a2a_tool("
|
|
440
|
+
async def list_accounts(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
441
|
+
"""List billing accounts accessible to the authenticated agent."""
|
|
442
|
+
return await self._call_a2a_tool("list_accounts", params)
|
|
443
443
|
|
|
444
444
|
async def get_signals(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
445
445
|
"""Get signals."""
|
adcp/protocols/base.py
CHANGED
|
@@ -120,8 +120,8 @@ class ProtocolAdapter(ABC):
|
|
|
120
120
|
pass
|
|
121
121
|
|
|
122
122
|
@abstractmethod
|
|
123
|
-
async def
|
|
124
|
-
"""List
|
|
123
|
+
async def list_accounts(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
124
|
+
"""List billing accounts accessible to the authenticated agent."""
|
|
125
125
|
pass
|
|
126
126
|
|
|
127
127
|
@abstractmethod
|
adcp/protocols/mcp.py
CHANGED
|
@@ -432,9 +432,9 @@ class MCPAdapter(ProtocolAdapter):
|
|
|
432
432
|
"""Get media buy delivery."""
|
|
433
433
|
return await self._call_mcp_tool("get_media_buy_delivery", params)
|
|
434
434
|
|
|
435
|
-
async def
|
|
436
|
-
"""List
|
|
437
|
-
return await self._call_mcp_tool("
|
|
435
|
+
async def list_accounts(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
436
|
+
"""List billing accounts accessible to the authenticated agent."""
|
|
437
|
+
return await self._call_mcp_tool("list_accounts", params)
|
|
438
438
|
|
|
439
439
|
async def get_signals(self, params: dict[str, Any]) -> TaskResult[Any]:
|
|
440
440
|
"""Get signals."""
|
adcp/server/base.py
CHANGED
|
@@ -74,9 +74,7 @@ class ADCPHandler(ABC):
|
|
|
74
74
|
# Core Catalog Operations
|
|
75
75
|
# ========================================================================
|
|
76
76
|
|
|
77
|
-
async def get_products(
|
|
78
|
-
self, params: dict[str, Any], context: ToolContext | None = None
|
|
79
|
-
) -> Any:
|
|
77
|
+
async def get_products(self, params: dict[str, Any], context: ToolContext | None = None) -> Any:
|
|
80
78
|
"""Get advertising products.
|
|
81
79
|
|
|
82
80
|
Override this to provide product catalog functionality.
|
|
@@ -92,14 +90,14 @@ class ADCPHandler(ABC):
|
|
|
92
90
|
"""
|
|
93
91
|
return not_supported("list_creative_formats is not implemented by this agent")
|
|
94
92
|
|
|
95
|
-
async def
|
|
93
|
+
async def list_accounts(
|
|
96
94
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
97
95
|
) -> Any:
|
|
98
|
-
"""List
|
|
96
|
+
"""List billing accounts accessible to the authenticated agent.
|
|
99
97
|
|
|
100
|
-
Override this to provide
|
|
98
|
+
Override this to provide account information.
|
|
101
99
|
"""
|
|
102
|
-
return not_supported("
|
|
100
|
+
return not_supported("list_accounts is not implemented by this agent")
|
|
103
101
|
|
|
104
102
|
# ========================================================================
|
|
105
103
|
# Creative Operations
|
|
@@ -167,9 +165,7 @@ class ADCPHandler(ABC):
|
|
|
167
165
|
# Signal Operations
|
|
168
166
|
# ========================================================================
|
|
169
167
|
|
|
170
|
-
async def get_signals(
|
|
171
|
-
self, params: dict[str, Any], context: ToolContext | None = None
|
|
172
|
-
) -> Any:
|
|
168
|
+
async def get_signals(self, params: dict[str, Any], context: ToolContext | None = None) -> Any:
|
|
173
169
|
"""Get available signals.
|
|
174
170
|
|
|
175
171
|
Override this to provide signal catalog.
|
adcp/server/content_standards.py
CHANGED
|
@@ -393,41 +393,31 @@ class ContentStandardsHandler(ADCPHandler):
|
|
|
393
393
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
394
394
|
) -> NotImplementedResponse:
|
|
395
395
|
"""Not supported by Content Standards agents."""
|
|
396
|
-
return not_supported(
|
|
397
|
-
"list_creative_formats is not supported by Content Standards agents."
|
|
398
|
-
)
|
|
396
|
+
return not_supported("list_creative_formats is not supported by Content Standards agents.")
|
|
399
397
|
|
|
400
|
-
async def
|
|
398
|
+
async def list_accounts(
|
|
401
399
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
402
400
|
) -> NotImplementedResponse:
|
|
403
401
|
"""Not supported by Content Standards agents."""
|
|
404
|
-
return not_supported(
|
|
405
|
-
"list_authorized_properties is not supported by Content Standards agents."
|
|
406
|
-
)
|
|
402
|
+
return not_supported("list_accounts is not supported by Content Standards agents.")
|
|
407
403
|
|
|
408
404
|
async def sync_creatives(
|
|
409
405
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
410
406
|
) -> NotImplementedResponse:
|
|
411
407
|
"""Not supported by Content Standards agents."""
|
|
412
|
-
return not_supported(
|
|
413
|
-
"sync_creatives is not supported by Content Standards agents."
|
|
414
|
-
)
|
|
408
|
+
return not_supported("sync_creatives is not supported by Content Standards agents.")
|
|
415
409
|
|
|
416
410
|
async def list_creatives(
|
|
417
411
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
418
412
|
) -> NotImplementedResponse:
|
|
419
413
|
"""Not supported by Content Standards agents."""
|
|
420
|
-
return not_supported(
|
|
421
|
-
"list_creatives is not supported by Content Standards agents."
|
|
422
|
-
)
|
|
414
|
+
return not_supported("list_creatives is not supported by Content Standards agents.")
|
|
423
415
|
|
|
424
416
|
async def build_creative(
|
|
425
417
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
426
418
|
) -> NotImplementedResponse:
|
|
427
419
|
"""Not supported by Content Standards agents."""
|
|
428
|
-
return not_supported(
|
|
429
|
-
"build_creative is not supported by Content Standards agents."
|
|
430
|
-
)
|
|
420
|
+
return not_supported("build_creative is not supported by Content Standards agents.")
|
|
431
421
|
|
|
432
422
|
async def create_media_buy(
|
|
433
423
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
@@ -442,33 +432,25 @@ class ContentStandardsHandler(ADCPHandler):
|
|
|
442
432
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
443
433
|
) -> NotImplementedResponse:
|
|
444
434
|
"""Not supported by Content Standards agents."""
|
|
445
|
-
return not_supported(
|
|
446
|
-
"update_media_buy is not supported by Content Standards agents."
|
|
447
|
-
)
|
|
435
|
+
return not_supported("update_media_buy is not supported by Content Standards agents.")
|
|
448
436
|
|
|
449
437
|
async def get_media_buy_delivery(
|
|
450
438
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
451
439
|
) -> NotImplementedResponse:
|
|
452
440
|
"""Not supported by Content Standards agents."""
|
|
453
|
-
return not_supported(
|
|
454
|
-
"get_media_buy_delivery is not supported by Content Standards agents."
|
|
455
|
-
)
|
|
441
|
+
return not_supported("get_media_buy_delivery is not supported by Content Standards agents.")
|
|
456
442
|
|
|
457
443
|
async def get_signals(
|
|
458
444
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
459
445
|
) -> NotImplementedResponse:
|
|
460
446
|
"""Not supported by Content Standards agents."""
|
|
461
|
-
return not_supported(
|
|
462
|
-
"get_signals is not supported by Content Standards agents."
|
|
463
|
-
)
|
|
447
|
+
return not_supported("get_signals is not supported by Content Standards agents.")
|
|
464
448
|
|
|
465
449
|
async def activate_signal(
|
|
466
450
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
467
451
|
) -> NotImplementedResponse:
|
|
468
452
|
"""Not supported by Content Standards agents."""
|
|
469
|
-
return not_supported(
|
|
470
|
-
"activate_signal is not supported by Content Standards agents."
|
|
471
|
-
)
|
|
453
|
+
return not_supported("activate_signal is not supported by Content Standards agents.")
|
|
472
454
|
|
|
473
455
|
async def provide_performance_feedback(
|
|
474
456
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
@@ -495,25 +477,19 @@ class ContentStandardsHandler(ADCPHandler):
|
|
|
495
477
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
496
478
|
) -> NotImplementedResponse:
|
|
497
479
|
"""Not supported by Content Standards agents."""
|
|
498
|
-
return not_supported(
|
|
499
|
-
"si_initiate_session is not supported by Content Standards agents."
|
|
500
|
-
)
|
|
480
|
+
return not_supported("si_initiate_session is not supported by Content Standards agents.")
|
|
501
481
|
|
|
502
482
|
async def si_send_message(
|
|
503
483
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
504
484
|
) -> NotImplementedResponse:
|
|
505
485
|
"""Not supported by Content Standards agents."""
|
|
506
|
-
return not_supported(
|
|
507
|
-
"si_send_message is not supported by Content Standards agents."
|
|
508
|
-
)
|
|
486
|
+
return not_supported("si_send_message is not supported by Content Standards agents.")
|
|
509
487
|
|
|
510
488
|
async def si_terminate_session(
|
|
511
489
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
512
490
|
) -> NotImplementedResponse:
|
|
513
491
|
"""Not supported by Content Standards agents."""
|
|
514
|
-
return not_supported(
|
|
515
|
-
"si_terminate_session is not supported by Content Standards agents."
|
|
516
|
-
)
|
|
492
|
+
return not_supported("si_terminate_session is not supported by Content Standards agents.")
|
|
517
493
|
|
|
518
494
|
# ========================================================================
|
|
519
495
|
# V3 Governance (Property Lists) - Not supported
|
|
@@ -532,30 +508,22 @@ class ContentStandardsHandler(ADCPHandler):
|
|
|
532
508
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
533
509
|
) -> NotImplementedResponse:
|
|
534
510
|
"""Not supported by Content Standards agents."""
|
|
535
|
-
return not_supported(
|
|
536
|
-
"get_property_list is not supported by Content Standards agents."
|
|
537
|
-
)
|
|
511
|
+
return not_supported("get_property_list is not supported by Content Standards agents.")
|
|
538
512
|
|
|
539
513
|
async def list_property_lists(
|
|
540
514
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
541
515
|
) -> NotImplementedResponse:
|
|
542
516
|
"""Not supported by Content Standards agents."""
|
|
543
|
-
return not_supported(
|
|
544
|
-
"list_property_lists is not supported by Content Standards agents."
|
|
545
|
-
)
|
|
517
|
+
return not_supported("list_property_lists is not supported by Content Standards agents.")
|
|
546
518
|
|
|
547
519
|
async def update_property_list(
|
|
548
520
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
549
521
|
) -> NotImplementedResponse:
|
|
550
522
|
"""Not supported by Content Standards agents."""
|
|
551
|
-
return not_supported(
|
|
552
|
-
"update_property_list is not supported by Content Standards agents."
|
|
553
|
-
)
|
|
523
|
+
return not_supported("update_property_list is not supported by Content Standards agents.")
|
|
554
524
|
|
|
555
525
|
async def delete_property_list(
|
|
556
526
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
557
527
|
) -> NotImplementedResponse:
|
|
558
528
|
"""Not supported by Content Standards agents."""
|
|
559
|
-
return not_supported(
|
|
560
|
-
"delete_property_list is not supported by Content Standards agents."
|
|
561
|
-
)
|
|
529
|
+
return not_supported("delete_property_list is not supported by Content Standards agents.")
|
adcp/server/governance.py
CHANGED
|
@@ -306,42 +306,31 @@ class GovernanceHandler(ADCPHandler):
|
|
|
306
306
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
307
307
|
) -> NotImplementedResponse:
|
|
308
308
|
"""Not supported by Governance agents."""
|
|
309
|
-
return not_supported(
|
|
310
|
-
"list_creative_formats is not supported by Governance agents."
|
|
311
|
-
)
|
|
309
|
+
return not_supported("list_creative_formats is not supported by Governance agents.")
|
|
312
310
|
|
|
313
|
-
async def
|
|
311
|
+
async def list_accounts(
|
|
314
312
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
315
313
|
) -> NotImplementedResponse:
|
|
316
314
|
"""Not supported by Governance agents."""
|
|
317
|
-
return not_supported(
|
|
318
|
-
"list_authorized_properties is not supported by Governance agents. "
|
|
319
|
-
"Use get_property_list with resolve=true instead."
|
|
320
|
-
)
|
|
315
|
+
return not_supported("list_accounts is not supported by Governance agents.")
|
|
321
316
|
|
|
322
317
|
async def sync_creatives(
|
|
323
318
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
324
319
|
) -> NotImplementedResponse:
|
|
325
320
|
"""Not supported by Governance agents."""
|
|
326
|
-
return not_supported(
|
|
327
|
-
"sync_creatives is not supported by Governance agents."
|
|
328
|
-
)
|
|
321
|
+
return not_supported("sync_creatives is not supported by Governance agents.")
|
|
329
322
|
|
|
330
323
|
async def list_creatives(
|
|
331
324
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
332
325
|
) -> NotImplementedResponse:
|
|
333
326
|
"""Not supported by Governance agents."""
|
|
334
|
-
return not_supported(
|
|
335
|
-
"list_creatives is not supported by Governance agents."
|
|
336
|
-
)
|
|
327
|
+
return not_supported("list_creatives is not supported by Governance agents.")
|
|
337
328
|
|
|
338
329
|
async def build_creative(
|
|
339
330
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
340
331
|
) -> NotImplementedResponse:
|
|
341
332
|
"""Not supported by Governance agents."""
|
|
342
|
-
return not_supported(
|
|
343
|
-
"build_creative is not supported by Governance agents."
|
|
344
|
-
)
|
|
333
|
+
return not_supported("build_creative is not supported by Governance agents.")
|
|
345
334
|
|
|
346
335
|
async def create_media_buy(
|
|
347
336
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
@@ -356,41 +345,31 @@ class GovernanceHandler(ADCPHandler):
|
|
|
356
345
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
357
346
|
) -> NotImplementedResponse:
|
|
358
347
|
"""Not supported by Governance agents."""
|
|
359
|
-
return not_supported(
|
|
360
|
-
"update_media_buy is not supported by Governance agents."
|
|
361
|
-
)
|
|
348
|
+
return not_supported("update_media_buy is not supported by Governance agents.")
|
|
362
349
|
|
|
363
350
|
async def get_media_buy_delivery(
|
|
364
351
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
365
352
|
) -> NotImplementedResponse:
|
|
366
353
|
"""Not supported by Governance agents."""
|
|
367
|
-
return not_supported(
|
|
368
|
-
"get_media_buy_delivery is not supported by Governance agents."
|
|
369
|
-
)
|
|
354
|
+
return not_supported("get_media_buy_delivery is not supported by Governance agents.")
|
|
370
355
|
|
|
371
356
|
async def get_signals(
|
|
372
357
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
373
358
|
) -> NotImplementedResponse:
|
|
374
359
|
"""Not supported by Governance agents."""
|
|
375
|
-
return not_supported(
|
|
376
|
-
"get_signals is not supported by Governance agents."
|
|
377
|
-
)
|
|
360
|
+
return not_supported("get_signals is not supported by Governance agents.")
|
|
378
361
|
|
|
379
362
|
async def activate_signal(
|
|
380
363
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
381
364
|
) -> NotImplementedResponse:
|
|
382
365
|
"""Not supported by Governance agents."""
|
|
383
|
-
return not_supported(
|
|
384
|
-
"activate_signal is not supported by Governance agents."
|
|
385
|
-
)
|
|
366
|
+
return not_supported("activate_signal is not supported by Governance agents.")
|
|
386
367
|
|
|
387
368
|
async def provide_performance_feedback(
|
|
388
369
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
389
370
|
) -> NotImplementedResponse:
|
|
390
371
|
"""Not supported by Governance agents."""
|
|
391
|
-
return not_supported(
|
|
392
|
-
"provide_performance_feedback is not supported by Governance agents."
|
|
393
|
-
)
|
|
372
|
+
return not_supported("provide_performance_feedback is not supported by Governance agents.")
|
|
394
373
|
|
|
395
374
|
# ========================================================================
|
|
396
375
|
# V3 Content Standards - Not supported
|
|
@@ -409,49 +388,37 @@ class GovernanceHandler(ADCPHandler):
|
|
|
409
388
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
410
389
|
) -> NotImplementedResponse:
|
|
411
390
|
"""Not supported by Governance agents."""
|
|
412
|
-
return not_supported(
|
|
413
|
-
"get_content_standards is not supported by Governance agents."
|
|
414
|
-
)
|
|
391
|
+
return not_supported("get_content_standards is not supported by Governance agents.")
|
|
415
392
|
|
|
416
393
|
async def list_content_standards(
|
|
417
394
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
418
395
|
) -> NotImplementedResponse:
|
|
419
396
|
"""Not supported by Governance agents."""
|
|
420
|
-
return not_supported(
|
|
421
|
-
"list_content_standards is not supported by Governance agents."
|
|
422
|
-
)
|
|
397
|
+
return not_supported("list_content_standards is not supported by Governance agents.")
|
|
423
398
|
|
|
424
399
|
async def update_content_standards(
|
|
425
400
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
426
401
|
) -> NotImplementedResponse:
|
|
427
402
|
"""Not supported by Governance agents."""
|
|
428
|
-
return not_supported(
|
|
429
|
-
"update_content_standards is not supported by Governance agents."
|
|
430
|
-
)
|
|
403
|
+
return not_supported("update_content_standards is not supported by Governance agents.")
|
|
431
404
|
|
|
432
405
|
async def calibrate_content(
|
|
433
406
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
434
407
|
) -> NotImplementedResponse:
|
|
435
408
|
"""Not supported by Governance agents."""
|
|
436
|
-
return not_supported(
|
|
437
|
-
"calibrate_content is not supported by Governance agents."
|
|
438
|
-
)
|
|
409
|
+
return not_supported("calibrate_content is not supported by Governance agents.")
|
|
439
410
|
|
|
440
411
|
async def validate_content_delivery(
|
|
441
412
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
442
413
|
) -> NotImplementedResponse:
|
|
443
414
|
"""Not supported by Governance agents."""
|
|
444
|
-
return not_supported(
|
|
445
|
-
"validate_content_delivery is not supported by Governance agents."
|
|
446
|
-
)
|
|
415
|
+
return not_supported("validate_content_delivery is not supported by Governance agents.")
|
|
447
416
|
|
|
448
417
|
async def get_media_buy_artifacts(
|
|
449
418
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
450
419
|
) -> NotImplementedResponse:
|
|
451
420
|
"""Not supported by Governance agents."""
|
|
452
|
-
return not_supported(
|
|
453
|
-
"get_media_buy_artifacts is not supported by Governance agents."
|
|
454
|
-
)
|
|
421
|
+
return not_supported("get_media_buy_artifacts is not supported by Governance agents.")
|
|
455
422
|
|
|
456
423
|
# ========================================================================
|
|
457
424
|
# V3 Sponsored Intelligence - Not supported
|
|
@@ -470,22 +437,16 @@ class GovernanceHandler(ADCPHandler):
|
|
|
470
437
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
471
438
|
) -> NotImplementedResponse:
|
|
472
439
|
"""Not supported by Governance agents."""
|
|
473
|
-
return not_supported(
|
|
474
|
-
"si_initiate_session is not supported by Governance agents."
|
|
475
|
-
)
|
|
440
|
+
return not_supported("si_initiate_session is not supported by Governance agents.")
|
|
476
441
|
|
|
477
442
|
async def si_send_message(
|
|
478
443
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
479
444
|
) -> NotImplementedResponse:
|
|
480
445
|
"""Not supported by Governance agents."""
|
|
481
|
-
return not_supported(
|
|
482
|
-
"si_send_message is not supported by Governance agents."
|
|
483
|
-
)
|
|
446
|
+
return not_supported("si_send_message is not supported by Governance agents.")
|
|
484
447
|
|
|
485
448
|
async def si_terminate_session(
|
|
486
449
|
self, params: dict[str, Any], context: ToolContext | None = None
|
|
487
450
|
) -> NotImplementedResponse:
|
|
488
451
|
"""Not supported by Governance agents."""
|
|
489
|
-
return not_supported(
|
|
490
|
-
"si_terminate_session is not supported by Governance agents."
|
|
491
|
-
)
|
|
452
|
+
return not_supported("si_terminate_session is not supported by Governance agents.")
|
adcp/server/mcp_tools.py
CHANGED
|
@@ -43,13 +43,17 @@ ADCP_TOOL_DEFINITIONS: list[dict[str, Any]] = [
|
|
|
43
43
|
},
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
"name": "
|
|
47
|
-
"description": "List
|
|
46
|
+
"name": "list_accounts",
|
|
47
|
+
"description": "List billing accounts accessible to the authenticated agent",
|
|
48
48
|
"inputSchema": {
|
|
49
49
|
"type": "object",
|
|
50
50
|
"properties": {
|
|
51
|
-
"
|
|
52
|
-
|
|
51
|
+
"status": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"enum": ["active", "suspended", "closed", "all"],
|
|
54
|
+
"default": "active",
|
|
55
|
+
"description": "Filter accounts by status",
|
|
56
|
+
},
|
|
53
57
|
},
|
|
54
58
|
},
|
|
55
59
|
},
|
adcp/server/proposal.py
CHANGED
|
@@ -288,9 +288,7 @@ class ProposalBuilder:
|
|
|
288
288
|
|
|
289
289
|
total = sum(a["allocation_percentage"] for a in self._allocations)
|
|
290
290
|
if abs(total - 100.0) > 0.01:
|
|
291
|
-
raise ValueError(
|
|
292
|
-
f"Allocation percentages must sum to 100, got {total}"
|
|
293
|
-
)
|
|
291
|
+
raise ValueError(f"Allocation percentages must sum to 100, got {total}")
|
|
294
292
|
|
|
295
293
|
proposal: dict[str, Any] = {
|
|
296
294
|
"proposal_id": self._proposal_id,
|