|
4 | 4 | import ssl |
5 | 5 | from collections.abc import Callable, Mapping, Sequence |
6 | 6 | from typing import Any, Literal, Unpack |
7 | | -from uuid import uuid4 |
8 | 7 |
|
9 | 8 | import httpx |
10 | 9 | import httpx._types as httpx_types |
|
15 | 14 | from httpx._urls import URL, QueryParams # noqa: F401 |
16 | 15 | from pydantic import BaseModel, ConfigDict |
17 | 16 |
|
18 | | -from beeai_framework.adapters.a2a.agents._utils import convert_a2a_to_framework_message |
| 17 | +from beeai_framework.adapters.a2a.agents._utils import convert_a2a_to_framework_message, convert_to_a2a_message |
19 | 18 | from beeai_framework.adapters.a2a.agents.events import ( |
20 | 19 | A2AAgentErrorEvent, |
21 | 20 | A2AAgentUpdateEvent, |
|
42 | 41 | AnyMessage, |
43 | 42 | AssistantMessage, |
44 | 43 | Message, |
45 | | - Role, |
46 | 44 | ) |
47 | 45 | from beeai_framework.context import RunContext |
48 | 46 | from beeai_framework.emitter import Emitter |
@@ -353,34 +351,15 @@ def convert_to_a2a_message( |
353 | 351 | context_id: str | None = None, |
354 | 352 | metadata: dict[str, Any] | None = None, |
355 | 353 | ) -> a2a_types.Message: |
356 | | - if isinstance(input, str): |
357 | | - return a2a_types.Message( |
358 | | - role=a2a_types.Role.user, |
359 | | - parts=[a2a_types.Part(root=a2a_types.TextPart(text=input))], |
360 | | - message_id=uuid4().hex, |
361 | | - context_id=context_id or self._context_id, |
362 | | - task_id=self._task_id if not context_id else None, |
363 | | - reference_task_ids=self._reference_task_ids if not context_id else None, |
364 | | - metadata=metadata, |
365 | | - ) |
366 | | - elif isinstance(input, Message): |
367 | | - return a2a_types.Message( |
368 | | - role=a2a_types.Role.agent if input.role == Role.ASSISTANT else a2a_types.Role.user, |
369 | | - parts=[a2a_types.Part(root=a2a_types.TextPart(text=input.text))], |
370 | | - message_id=uuid4().hex, |
371 | | - context_id=context_id or self._context_id, |
372 | | - task_id=self._task_id if not context_id else None, |
373 | | - reference_task_ids=self._reference_task_ids if not context_id else None, |
374 | | - metadata=(metadata or {}) | input.meta or None, |
375 | | - ) |
376 | | - elif isinstance(input, list) and input and isinstance(input[-1], Message): |
377 | | - return self.convert_to_a2a_message(input[-1], context_id=context_id, metadata=metadata) |
378 | | - elif isinstance(input, a2a_types.Message): |
379 | | - input.metadata = (input.metadata or {}) | (metadata or {}) |
380 | | - input.context_id = context_id or input.context_id or self._context_id |
381 | | - return input |
382 | | - else: |
383 | | - raise ValueError("Unsupported input type") |
| 354 | + return convert_to_a2a_message( |
| 355 | + input, |
| 356 | + metadata=metadata, |
| 357 | + context_id=context_id |
| 358 | + or (input.context_id if isinstance(input, a2a_types.Message) else None) |
| 359 | + or self._context_id, |
| 360 | + task_id=self._task_id if not context_id else None, |
| 361 | + reference_task_ids=self._reference_task_ids if not context_id else None, |
| 362 | + ) |
384 | 363 |
|
385 | 364 |
|
386 | 365 | def _convert_to_framework_message( |
|
0 commit comments