diff --git a/lib/crewai/src/crewai/a2a/__init__.py b/lib/crewai/src/crewai/a2a/__init__.py index e5065ddd9..288e805f6 100644 --- a/lib/crewai/src/crewai/a2a/__init__.py +++ b/lib/crewai/src/crewai/a2a/__init__.py @@ -1,18 +1,8 @@ """Agent-to-Agent (A2A) protocol communication module for CrewAI.""" from crewai.a2a.config import A2AConfig -from crewai.a2a.errors import A2APollingTimeoutError -from crewai.a2a.updates import ( - PollingConfig, - PushNotificationConfig, - StreamingConfig, -) __all__ = [ "A2AConfig", - "A2APollingTimeoutError", - "PollingConfig", - "PushNotificationConfig", - "StreamingConfig", ] diff --git a/lib/crewai/src/crewai/a2a/config.py b/lib/crewai/src/crewai/a2a/config.py index d7ac85bae..26d3ce121 100644 --- a/lib/crewai/src/crewai/a2a/config.py +++ b/lib/crewai/src/crewai/a2a/config.py @@ -5,7 +5,7 @@ This module is separate from experimental.a2a to avoid circular imports. from __future__ import annotations -from typing import Annotated, ClassVar +from typing import Annotated, Any, ClassVar from pydantic import ( BaseModel, @@ -17,7 +17,12 @@ from pydantic import ( ) from crewai.a2a.auth.schemas import AuthScheme -from crewai.a2a.updates import StreamingConfig, UpdateConfig + + +try: + from crewai.a2a.updates import UpdateConfig +except ImportError: + UpdateConfig = Any # type: ignore[misc,assignment] http_url_adapter = TypeAdapter(HttpUrl) @@ -30,6 +35,12 @@ Url = Annotated[ ] +def _get_default_update_config() -> UpdateConfig: + from crewai.a2a.updates import StreamingConfig + + return StreamingConfig() + + class A2AConfig(BaseModel): """Configuration for A2A protocol integration. @@ -68,6 +79,6 @@ class A2AConfig(BaseModel): description="If True, return A2A result directly when completed", ) updates: UpdateConfig = Field( - default_factory=StreamingConfig, + default_factory=_get_default_update_config, description="Update mechanism config", )