diff --git a/src/toad/acp/prompt.py b/src/toad/acp/prompt.py index e09ec16e9..ebffd8689 100644 --- a/src/toad/acp/prompt.py +++ b/src/toad/acp/prompt.py @@ -4,7 +4,8 @@ from acp import schema from acp.helpers import ContentBlock from agent_comms.field_codec import FieldCodec -from agent_comms.image_inputs import ImageInput, prompt_images +from agent_comms.image_input import ImageInput +from agent_comms.image_inputs import prompt_images from toad.clipboard_image import attachment_directory from toad.file_kind import FileKind diff --git a/src/toad/acp/status.py b/src/toad/acp/status.py index 425091c88..dbe40cf37 100644 --- a/src/toad/acp/status.py +++ b/src/toad/acp/status.py @@ -1,10 +1,25 @@ """Specification-spelled reasons and statuses own toolkit independent facts.""" -from agent_comms.declared_family import DeclaredFamily -from agent_comms.mro_dispatch import MroDispatch, handles -from agent_comms.transcript_events import ToolTranscript, ToolStartTranscript, ToolEndTranscript from dataclasses import dataclass + from acp.schema import ToolCall -from toad.line_blocks import FailureRole, Span, SuccessRole, Summary, ToolArgumentRole, ToolVerbRole, WorkingRole +from agent_comms.agent_event_updates import AcpToolAction +from agent_comms.declared_family import DeclaredFamily +from agent_comms.mro_dispatch import MroDispatch, handles +from agent_comms.transcript_events import ( + ToolEndTranscript, + ToolStartTranscript, + ToolTranscript, +) + +from toad.line_blocks import ( + FailureRole, + Span, + SuccessRole, + Summary, + ToolArgumentRole, + ToolVerbRole, + WorkingRole, +) class StopReason(DeclaredFamily, affix='StopReason'): @@ -50,7 +65,7 @@ def from_transcript(cls, events: tuple[ToolTranscript, ...]): """ first = events[0] call = ToolCall(tool_call_id=first.tool_call_id, title=first.title, - kind=first.kind, status='completed') + kind=AcpToolAction.kind(first.kind), status='completed') consumer = cls(call) for event in events: consumer.dispatch_sync(event) @@ -60,7 +75,7 @@ def from_transcript(cls, events: tuple[ToolTranscript, ...]): def recorded_start(self, event: ToolStartTranscript): self.call.status = 'in_progress' self.call.title = event.title - self.call.kind = event.kind + self.call.kind = AcpToolAction.kind(event.kind) self.call.raw_input = event.raw_input @handles(ToolEndTranscript) diff --git a/src/toad/clipboard_image.py b/src/toad/clipboard_image.py index c8047ec95..4f05723b1 100644 --- a/src/toad/clipboard_image.py +++ b/src/toad/clipboard_image.py @@ -3,10 +3,11 @@ import asyncio import hashlib import os -from pathlib import Path import shutil +from pathlib import Path + +from agent_comms.image_input import MAX_IMAGE_BYTES -from agent_comms.image_inputs import MAX_IMAGE_BYTES from toad import paths PNG_SIGNATURE = b"\x89PNG\r\n\x1a\n" diff --git a/src/toad/prompt/resource.py b/src/toad/prompt/resource.py index bdcb90d1c..0b8d0cb2e 100644 --- a/src/toad/prompt/resource.py +++ b/src/toad/prompt/resource.py @@ -1,8 +1,9 @@ -from dataclasses import dataclass import mimetypes +from dataclasses import dataclass from pathlib import Path -from agent_comms.image_inputs import MAX_IMAGE_BYTES +from agent_comms.image_input import MAX_IMAGE_BYTES + from toad.file_kind import FileKind