Module adcp.reporting.ledger.status_server
A real optional reporting status task for the SDK MCP/A2A handler surface.
Classes
class ReportingStatusNotificationHandler (status: ReportingStatusHandler,
*,
resolve_caller: ReportingStatusCallerResolver,
adcp_version: str | None = None)-
Expand source code
class ReportingStatusNotificationHandler(ADCPHandler[ToolContext]): """Compose with adopter task overrides; mounts only the authoritative read. ``resolve_caller`` resolves the requested account using trusted transport authentication and account authorization. Request consumer/principal fields are never identity. Registration and other reporting tasks remain explicit adopter overrides, and do not appear merely because this handler exists. """ def __init__( self, status: ReportingStatusHandler, *, resolve_caller: ReportingStatusCallerResolver, adcp_version: str | None = None, ) -> None: super().__init__() self.reporting_status_handler = status self._resolve_status_caller = resolve_caller self._adcp_version = resolve_adcp_version(adcp_version) if not is_adcp_version_at_least(self._adcp_version, "3.2-rc.6"): raise ConfigurationError( "reporting mounts require a supported AdCP 3.2 reporting contract; " "use 3.2 or omit the pin for the packaged default" ) def get_adcp_version(self) -> str: """Public per-mount protocol pin, shared by schema and rendering.""" return self._adcp_version async def get_reporting_status( self, params: GetReportingStatusRequest | dict[str, Any], context: ToolContext | None = None ) -> dict[str, Any]: request = ( dict(params) if isinstance(params, dict) else params.model_dump(mode="json", exclude_unset=True) ) request["adcp_version"] = ( context.resolved_adcp_version if context is not None and context.resolved_adcp_version is not None else request.get("adcp_version") or self.get_adcp_version() ) caller = await self._resolve_status_caller(request, context) return await self.reporting_status_handler.handle(request, caller=caller)Compose with adopter task overrides; mounts only the authoritative read.
resolve_callerresolves the requested account using trusted transport authentication and account authorization. Request consumer/principal fields are never identity. Registration and other reporting tasks remain explicit adopter overrides, and do not appear merely because this handler exists.Ancestors
- ADCPHandler
- abc.ABC
- typing.Generic
Methods
def get_adcp_version(self) ‑> str-
Expand source code
def get_adcp_version(self) -> str: """Public per-mount protocol pin, shared by schema and rendering.""" return self._adcp_versionPublic per-mount protocol pin, shared by schema and rendering.
Inherited members
ADCPHandler:accept_proposalacquire_rightsactivate_signalbuild_creative_legacybuy_productscalibrate_contentcheck_governancecomply_test_controllercontext_matchcontrol_media_buycreate_collection_listcreate_content_standardscreate_media_buycreate_property_listdecline_proposalsdelete_collection_listdelete_property_listget_account_financialsget_adcp_capabilitiesget_brand_identityget_collection_listget_content_standardsget_creative_deliveryget_creative_featuresget_media_buy_artifactsget_media_buy_deliveryget_media_buysget_plan_audit_logsget_principalget_productsget_property_listget_reporting_statusget_rightsget_signalsget_task_statusidentity_matchlist_account_changeslist_accountslist_collection_listslist_content_standardslist_creative_formats_legacylist_creativeslist_productslist_property_listslist_taskslist_transformerslog_eventpreview_creative_legacyprovide_performance_feedbackrefine_proposalsreport_plan_adjustmentreport_plan_outcomereport_usagerequest_proposalssi_get_offeringsi_initiate_sessionsi_send_messagesi_terminate_sessionsync_accountssync_agent_notification_configssync_audiencessync_catalogssync_creativessync_event_sourcessync_governancesync_planssync_principalsync_reporting_receiptssync_reporting_statusupdate_collection_listupdate_content_standardsupdate_media_buyupdate_property_listupdate_rightsvalidate_content_deliveryvalidate_inputverify_brand_claimverify_brand_claims