|
1 | | -""" |
2 | | -Task management for A2A protocol implementation. |
3 | | -""" |
| 1 | +from __future__ import annotations |
4 | 2 |
|
5 | 3 | import asyncio |
6 | 4 | from datetime import datetime |
7 | | -from typing import Dict, AsyncIterable, Optional, Any, Union |
8 | | -from AgentCrew.modules.agents import AgentManager, LocalAgent |
| 5 | +from typing import TYPE_CHECKING |
9 | 6 | from AgentCrew.modules.agents.base import MessageType |
10 | 7 | from loguru import logger |
11 | 8 | import tempfile |
12 | 9 | import os |
13 | 10 |
|
14 | 11 | from a2a.types import ( |
15 | 12 | CancelTaskResponse, |
| 13 | + JSONRPCError, |
16 | 14 | GetTaskResponse, |
17 | 15 | GetTaskSuccessResponse, |
18 | | - JSONRPCError, |
19 | 16 | JSONRPCErrorResponse, |
20 | 17 | SendMessageResponse, |
21 | | - SendStreamingMessageRequest, |
22 | 18 | SendStreamingMessageResponse, |
23 | 19 | SendStreamingMessageSuccessResponse, |
24 | 20 | CancelTaskSuccessResponse, |
25 | | - SetTaskPushNotificationConfigRequest, |
26 | 21 | SetTaskPushNotificationConfigResponse, |
27 | | - GetTaskPushNotificationConfigRequest, |
28 | 22 | GetTaskPushNotificationConfigResponse, |
29 | 23 | SendMessageSuccessResponse, |
30 | | - TaskResubscriptionRequest, |
31 | 24 | Task, |
32 | 25 | TaskStatus, |
33 | 26 | TaskState, |
34 | | - SendMessageRequest, |
35 | | - GetTaskRequest, |
36 | | - CancelTaskRequest, |
37 | | - JSONRPCResponse, |
38 | 27 | TaskStatusUpdateEvent, |
39 | 28 | TaskArtifactUpdateEvent, |
40 | 29 | TaskNotFoundError, |
41 | 30 | TaskNotCancelableError, |
42 | 31 | ) |
| 32 | + |
| 33 | +from AgentCrew.modules.agents import LocalAgent |
43 | 34 | from .adapters import ( |
44 | 35 | convert_a2a_message_to_agent, |
45 | 36 | convert_agent_response_to_a2a_artifact, |
46 | 37 | convert_agent_message_to_a2a, |
47 | 38 | ) |
48 | 39 | from .common.server.task_manager import TaskManager |
49 | 40 |
|
| 41 | +if TYPE_CHECKING: |
| 42 | + from typing import Any, AsyncIterable, Dict, Optional, Union |
| 43 | + from AgentCrew.modules.agents import AgentManager |
| 44 | + from a2a.types import ( |
| 45 | + CancelTaskRequest, |
| 46 | + GetTaskPushNotificationConfigRequest, |
| 47 | + GetTaskRequest, |
| 48 | + SendMessageRequest, |
| 49 | + SendStreamingMessageRequest, |
| 50 | + SetTaskPushNotificationConfigRequest, |
| 51 | + TaskResubscriptionRequest, |
| 52 | + JSONRPCResponse, |
| 53 | + ) |
| 54 | + |
50 | 55 |
|
51 | 56 | class AgentTaskManager(TaskManager): |
52 | 57 | """Manages tasks for a specific agent""" |
@@ -126,8 +131,6 @@ async def on_send_message( |
126 | 131 | f.write(part["file_data"]) |
127 | 132 | file_part = self.file_handler.process_file(temp_file) |
128 | 133 | if not file_part: |
129 | | - from AgentCrew.modules.agents.base import MessageType |
130 | | - |
131 | 134 | file_part = self.agent.format_message( |
132 | 135 | MessageType.FileContent, {"file_uri": temp_file} |
133 | 136 | ) |
|
0 commit comments