diff --git a/lib/crewai/src/crewai/a2a/extensions/a2ui/client_extension.py b/lib/crewai/src/crewai/a2a/extensions/a2ui/client_extension.py index 26332db4f..885e696c6 100644 --- a/lib/crewai/src/crewai/a2a/extensions/a2ui/client_extension.py +++ b/lib/crewai/src/crewai/a2a/extensions/a2ui/client_extension.py @@ -4,10 +4,11 @@ from __future__ import annotations from collections.abc import Sequence import logging -from typing import TYPE_CHECKING, Any, TypedDict, cast +from typing import TYPE_CHECKING, Any, cast from pydantic import Field from pydantic.dataclasses import dataclass +from typing_extensions import TypedDict from crewai.a2a.extensions.a2ui.models import extract_a2ui_json_objects from crewai.a2a.extensions.a2ui.prompt import build_a2ui_system_prompt diff --git a/lib/crewai/src/crewai/a2a/task_helpers.py b/lib/crewai/src/crewai/a2a/task_helpers.py index b4a758656..979652e26 100644 --- a/lib/crewai/src/crewai/a2a/task_helpers.py +++ b/lib/crewai/src/crewai/a2a/task_helpers.py @@ -3,7 +3,7 @@ from __future__ import annotations from collections.abc import AsyncIterator -from typing import TYPE_CHECKING, Any, TypedDict +from typing import TYPE_CHECKING, Any import uuid from a2a.client.errors import A2AClientHTTPError @@ -18,7 +18,7 @@ from a2a.types import ( TaskStatusUpdateEvent, TextPart, ) -from typing_extensions import NotRequired +from typing_extensions import NotRequired, TypedDict from crewai.events.event_bus import crewai_event_bus from crewai.events.types.a2a_events import ( diff --git a/lib/crewai/src/crewai/a2a/types.py b/lib/crewai/src/crewai/a2a/types.py index 5a4a7672a..5b06f8b8b 100644 --- a/lib/crewai/src/crewai/a2a/types.py +++ b/lib/crewai/src/crewai/a2a/types.py @@ -7,12 +7,11 @@ from typing import ( Any, Literal, Protocol, - TypedDict, runtime_checkable, ) from pydantic import BeforeValidator, HttpUrl, TypeAdapter -from typing_extensions import NotRequired +from typing_extensions import NotRequired, TypedDict try: diff --git a/lib/crewai/src/crewai/a2a/updates/base.py b/lib/crewai/src/crewai/a2a/updates/base.py index 8a6a53aa3..bec2e2795 100644 --- a/lib/crewai/src/crewai/a2a/updates/base.py +++ b/lib/crewai/src/crewai/a2a/updates/base.py @@ -2,10 +2,11 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, NamedTuple, Protocol, TypedDict +from typing import TYPE_CHECKING, Any, NamedTuple, Protocol from pydantic import GetCoreSchemaHandler from pydantic_core import CoreSchema, core_schema +from typing_extensions import TypedDict class CommonParams(NamedTuple): diff --git a/lib/crewai/src/crewai/a2a/utils/task.py b/lib/crewai/src/crewai/a2a/utils/task.py index d73556875..6af935bb3 100644 --- a/lib/crewai/src/crewai/a2a/utils/task.py +++ b/lib/crewai/src/crewai/a2a/utils/task.py @@ -10,7 +10,7 @@ from functools import wraps import json import logging import os -from typing import TYPE_CHECKING, Any, ParamSpec, TypeVar, TypedDict, cast +from typing import TYPE_CHECKING, Any, ParamSpec, TypeVar, cast from urllib.parse import urlparse from a2a.server.agent_execution import RequestContext @@ -38,6 +38,7 @@ from a2a.utils import ( from a2a.utils.errors import ServerError from aiocache import SimpleMemoryCache, caches # type: ignore[import-untyped] from pydantic import BaseModel +from typing_extensions import TypedDict from crewai.a2a.utils.agent_card import _get_server_config from crewai.a2a.utils.content_type import validate_message_parts