Skip to content

Commit c20d744

Browse files
implement review remarks
1 parent 24de514 commit c20d744

27 files changed

Lines changed: 982 additions & 868 deletions

src/askui/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
from .models.types.response_schemas import ResponseSchema, ResponseSchemaBase
4646
from .retry import ConfigurableRetry, Retry
4747
from .tools import ModifierKey, PcKey
48-
from .tools.askui import LocalAgentOsServer, RemoteAgentOsServer
48+
from .tools.askui import LocalAgentOsTargetComputer, RemoteAgentOsTargetComputer
4949
from .utils.image_utils import ImageSource
5050
from .utils.source_utils import InputSource
5151

@@ -70,8 +70,8 @@
7070
logging.getLogger(__name__).addHandler(logging.NullHandler())
7171

7272
__all__ = [
73-
"RemoteAgentOsServer",
74-
"LocalAgentOsServer",
73+
"RemoteAgentOsTargetComputer",
74+
"LocalAgentOsTargetComputer",
7575
"Agent",
7676
"AutomationError",
7777
"ComputerAgent",

src/askui/computer_agent.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
create_computer_agent_prompt,
1818
)
1919
from askui.tools.computer import (
20-
ComputerGetActiveAgentOsServerTool,
20+
ComputerGetCurrentComputerTargetIdTool,
2121
ComputerGetMousePositionTool,
2222
ComputerGetSystemInfoTool,
2323
ComputerKeyboardPressedTool,
2424
ComputerKeyboardReleaseTool,
2525
ComputerKeyboardTapTool,
26-
ComputerListAgentOsServersTool,
26+
ComputerListAgentOsTargetComputersTool,
2727
ComputerListDisplaysTool,
2828
ComputerMouseClickTool,
2929
ComputerMouseHoldDownTool,
@@ -33,15 +33,15 @@
3333
ComputerRetrieveActiveDisplayTool,
3434
ComputerScreenshotTool,
3535
ComputerSetActiveDisplayTool,
36-
ComputerSwitchAgentOsServerTool,
36+
ComputerSwitchAgentOsTargetComputerTool,
3737
ComputerTypeTool,
3838
)
3939
from askui.tools.exception_tool import ExceptionTool
4040

4141
from .reporting import CompositeReporter, Reporter
4242
from .retry import Retry
4343
from .tools import AgentToolbox, ComputerAgentOsFacade, ModifierKey, PcKey
44-
from .tools.askui import AgentOsServer, AskUiControllerClient
44+
from .tools.askui import AgentOsTargetComputer, AskUiControllerClient
4545

4646
logger = logging.getLogger(__name__)
4747

@@ -54,23 +54,23 @@ class ComputerAgent(Agent):
5454
It uses computer vision models to locate UI elements and execute actions on them.
5555
5656
A single `ComputerAgent` can drive **one or more machines** through the
57-
`agent_os_servers` argument. Each entry is an Agent OS server (local
57+
`agent_os_target_computers` argument. Each entry is an Agent OS server (local
5858
subprocess or remote gRPC endpoint) identified by a stable `computer_id`.
5959
At any moment one server is *active* and receives all explicit calls
6060
(`click`, `type`, `keyboard`, ...). The active server can be changed at
61-
runtime via `agent.tools.os.switch_agent_os_server(computer_id)` or
61+
runtime via `agent.tools.os.switch_agent_os_target_computer(computer_id)` or
6262
scoped to a block using `agent.tools.os.temporary_select(computer_id)`.
6363
The `act()` model is also given list/switch/get-active tools so it can
6464
orchestrate work across machines on its own (e.g. read something on one
6565
computer and re-enter it on another).
6666
6767
Args:
68-
display (int, optional): The display number to use for screen interactions on the default local server. Ignored when `agent_os_servers` is provided. Defaults to `1`.
68+
display (int, optional): The display number to use for screen interactions on the default local server. Ignored when `agent_os_target_computers` is provided. Defaults to `1`.
6969
reporters (list[Reporter] | None, optional): List of reporter instances for logging and reporting. If `None`, an empty list is used.
70-
agent_os_servers (list[AgentOsServer] | None, optional):
70+
agent_os_target_computers (list[AgentOsTargetComputer] | None, optional):
7171
Agent OS servers the agent can route actions to. May mix one
72-
`LocalAgentOsServer` (managing a controller subprocess on this
73-
machine) with any number of `RemoteAgentOsServer`s pointing at
72+
`LocalAgentOsTargetComputer` (managing a controller subprocess on this
73+
machine) with any number of `RemoteAgentOsTargetComputer`s pointing at
7474
controllers already running on other machines. Constraints: at
7575
least one server, at most one local, and remote `address`es plus
7676
all `computer_id`s must be unique. The first entry becomes the
@@ -100,12 +100,12 @@ class ComputerAgent(Agent):
100100
101101
```python
102102
from askui import ComputerAgent
103-
from askui.tools.askui import LocalAgentOsServer, RemoteAgentOsServer
103+
from askui.tools.askui import LocalAgentOsTargetComputer, RemoteAgentOsTargetComputer
104104
105105
with ComputerAgent(
106-
agent_os_servers=[
107-
LocalAgentOsServer(computer_id="research-box"),
108-
RemoteAgentOsServer(
106+
agent_os_target_computers=[
107+
LocalAgentOsTargetComputer(computer_id="research-box"),
108+
RemoteAgentOsTargetComputer(
109109
address="192.168.1.42:26000",
110110
description="Writer box with a text editor open",
111111
computer_id="writer-box",
@@ -129,7 +129,7 @@ class ComputerAgent(Agent):
129129
from askui import ComputerAgent
130130
131131
with ComputerAgent() as agent:
132-
agent.tools.os.add_remote_agent_os_server(
132+
agent.tools.os.add_remote_agent_os_target_computer(
133133
address="10.0.0.5:26000",
134134
description="Build server",
135135
)
@@ -144,15 +144,15 @@ class ComputerAgent(Agent):
144144
"act_tools",
145145
"callbacks",
146146
"truncation_strategy",
147-
"agent_os_servers",
147+
"agent_os_target_computers",
148148
}
149149
)
150150
@validate_call(config=ConfigDict(arbitrary_types_allowed=True))
151151
def __init__(
152152
self,
153153
display: Annotated[int, Field(ge=1)] = 1,
154154
reporters: list[Reporter] | None = None,
155-
agent_os_servers: list[AgentOsServer] | None = None,
155+
agent_os_target_computers: list[AgentOsTargetComputer] | None = None,
156156
settings: AgentSettings | None = None,
157157
retry: Retry | None = None,
158158
act_tools: list[Tool] | None = None,
@@ -164,7 +164,7 @@ def __init__(
164164
agent_os=AskUiControllerClient(
165165
display=display,
166166
reporter=reporter,
167-
agent_os_servers=agent_os_servers,
167+
agent_os_target_computers=agent_os_target_computers,
168168
)
169169
)
170170
super().__init__(
@@ -588,9 +588,9 @@ def get_default_tools() -> list[Tool]:
588588
ComputerListDisplaysTool(),
589589
ComputerRetrieveActiveDisplayTool(),
590590
ComputerSetActiveDisplayTool(),
591-
ComputerListAgentOsServersTool(),
592-
ComputerSwitchAgentOsServerTool(),
593-
ComputerGetActiveAgentOsServerTool(),
591+
ComputerListAgentOsTargetComputersTool(),
592+
ComputerSwitchAgentOsTargetComputerTool(),
593+
ComputerGetCurrentComputerTargetIdTool(),
594594
]
595595

596596

src/askui/models/shared/tools.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -362,10 +362,10 @@ def __init__(
362362

363363
@property
364364
def agent_os(self) -> AgentOs | AndroidAgentOs:
365-
"""Get the agent OS.
365+
"""Get the AgentOS.
366366
367367
Returns:
368-
AgentOs | AndroidAgentOs: The agent OS instance.
368+
AgentOs | AndroidAgentOs: The AgentOS instance.
369369
"""
370370
if self._agent_os is None:
371371
msg = (
@@ -381,7 +381,7 @@ def agent_os(self, agent_os: AgentOs | AndroidAgentOs) -> None:
381381
self._agent_os = agent_os
382382

383383
def is_agent_os_initialized(self) -> bool:
384-
"""Check if the agent OS is initialized."""
384+
"""Check if the AgentOS is initialized."""
385385
return self._agent_os is not None
386386

387387

@@ -471,10 +471,10 @@ def __init__(
471471
self.add_agent_os(agent_os)
472472

473473
def add_agent_os(self, agent_os: AgentOs | AndroidAgentOs) -> None:
474-
"""Add an agent OS to the collection.
474+
"""Add an AgentOS to the collection.
475475
476476
Args:
477-
agent_os (AgentOs | AndroidAgentOs): The agent OS instance to add.
477+
agent_os (AgentOs | AndroidAgentOs): The AgentOS instance to add.
478478
"""
479479
self._agent_os_list.append(agent_os)
480480

@@ -538,19 +538,19 @@ def get_agent_os_by_tags(
538538
self, required_tags: list[str]
539539
) -> AgentOs | AndroidAgentOs:
540540
"""
541-
Find the first registered agent OS whose tags are a superset of
541+
Find the first registered AgentOS whose tags are a superset of
542542
`required_tags`.
543543
544-
Every tag in `required_tags` must appear in the agent OS's tags; the
545-
agent OS may declare additional tags beyond those.
544+
Every tag in `required_tags` must appear in the AgentOS's tags; the
545+
AgentOS may declare additional tags beyond those.
546546
547547
Raises:
548-
ValueError: when no registered agent OS satisfies the required tags.
548+
ValueError: when no registered AgentOS satisfies the required tags.
549549
"""
550550
for agent_os in self._agent_os_list:
551551
if all(required in agent_os.tags for required in required_tags):
552552
return agent_os
553-
msg = f"No agent OS satisfies required tags [{', '.join(required_tags)}]"
553+
msg = f"No AgentOS satisfies required tags [{', '.join(required_tags)}]"
554554
raise ValueError(msg)
555555

556556
def _initialize_tools(self) -> None:

src/askui/tools/agent_os.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
from askui.models.shared.tool_tags import ToolTags
1010

1111
if TYPE_CHECKING:
12-
from askui.tools.askui.agent_os_server import (
13-
AgentOsServer,
14-
RemoteAgentOsServer,
12+
from askui.tools.askui.agent_os_target_computer import (
13+
AgentOsTargetComputer,
14+
RemoteAgentOsTargetComputer,
1515
)
1616
from askui.tools.askui.askui_ui_controller_grpc.generated import (
1717
Controller_V1_pb2 as controller_v1_pbs,
@@ -689,34 +689,38 @@ def set_window_in_focus(self, process_id: int, window_id: int) -> None:
689689
# (Playwright, Android, ...) inherit the default implementations, which raise
690690
# `NotImplementedError`.
691691

692-
def add_agent_os_server(self, server: "AgentOsServer") -> "AgentOsServer":
692+
def add_agent_os_target_computer(
693+
self, agent_os_target_computer: "AgentOsTargetComputer"
694+
) -> "AgentOsTargetComputer":
693695
"""Register an additional Agent OS server. Auto-connects if connected."""
694696
raise NotImplementedError
695697

696-
def add_remote_agent_os_server(
698+
def add_remote_agent_os_target_computer(
697699
self,
698700
address: str,
699701
description: str,
700-
) -> "RemoteAgentOsServer":
702+
) -> "RemoteAgentOsTargetComputer":
701703
"""Register an additional remote Agent OS server."""
702704
raise NotImplementedError
703705

704-
def reset_agent_os_servers(
706+
def reset_agent_os_target_computers(
705707
self,
706-
agent_os_servers: "list[AgentOsServer] | None" = None,
708+
agent_os_target_computers: "list[AgentOsTargetComputer] | None" = None,
707709
) -> None:
708710
"""Disconnect (if connected) and replace the Agent-OS-server list."""
709711
raise NotImplementedError
710712

711-
def list_agent_os_servers(self) -> "list[AgentOsServer]":
713+
def list_agent_os_target_computers(self) -> "list[AgentOsTargetComputer]":
712714
"""Return all registered Agent OS servers."""
713715
raise NotImplementedError
714716

715-
def get_active_agent_os_server(self, report: bool = True) -> "AgentOsServer":
716-
"""Return the currently active Agent OS server."""
717+
def get_current_computer_target_id(self, report: bool = True) -> str:
718+
"""Return the `computer_id` of the currently active Agent OS target computer."""
717719
raise NotImplementedError
718720

719-
def switch_agent_os_server(self, computer_id: str) -> "AgentOsServer":
721+
def switch_agent_os_target_computer(
722+
self, computer_id: str
723+
) -> "AgentOsTargetComputer":
720724
"""Switch the active Agent OS server by its `computer_id`."""
721725
raise NotImplementedError
722726

src/askui/tools/askui/__init__.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
from .agent_os_server import (
2-
AgentOsServer,
3-
LocalAgentOsServer,
4-
RemoteAgentOsServer,
1+
from .agent_os_target_computer import (
2+
AgentOsTargetComputer,
3+
LocalAgentOsTargetComputer,
4+
RemoteAgentOsTargetComputer,
55
)
6-
from .agent_os_server_manager import (
7-
AgentOsServerManager,
6+
from .agent_os_target_computer_manager import (
7+
AgentOsTargetComputerManager,
88
)
99
from .askui_controller import AskUiControllerClient
1010

1111
__all__ = [
12-
"AgentOsServer",
13-
"AgentOsServerManager",
12+
"AgentOsTargetComputer",
13+
"AgentOsTargetComputerManager",
1414
"AskUiControllerClient",
15-
"LocalAgentOsServer",
16-
"RemoteAgentOsServer",
15+
"LocalAgentOsTargetComputer",
16+
"RemoteAgentOsTargetComputer",
1717
]

0 commit comments

Comments
 (0)