fix: handle missing a2a dep as optional

This commit is contained in:
Greyson LaLonde
2026-01-07 14:01:36 -05:00
committed by GitHub
parent 1c4f44af80
commit a760923c50
2 changed files with 14 additions and 13 deletions

View File

@@ -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",
]

View File

@@ -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",
)