mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-15 17:30:13 +08:00
* feat: add CUA computer-use sandbox support * fix: add CUA config metadata translations * fix: address CUA sandbox review feedback * fix: default CUA sandbox to local mode * fix: harden CUA SDK method compatibility * fix: harden CUA GUI and permission handling * fix: refine CUA capability and shell handling * fix: avoid inline CUA screenshot image results by default * fix: guide CUA browser startup workflow * feat: add CUA browser and key press tools * fix: launch CUA browser as sandbox user * fix: stabilize CUA browser screenshots * fix: simplify CUA browser launch command * fix: remove CUA open browser tool * fix: align CUA desktop control guidance * fix: harden CUA shell background handling * fix: harden CUA runtime adapters * fix: surface CUA filesystem failures * fix: clarify CUA shell fallback support * fix: harden CUA shell helpers * fix: guard CUA file fallbacks * fix: redact sensitive config log paths * fix: guard CUA download fallback * test: cover CUA GUI and shell env wiring * fix: preserve CUA command result output * fix: normalize CUA return codes * fix: preserve foreground shell behavior * fix: clean up failed CUA boots * docs: add CUA sandbox runtime guide * test: cover CUA GUI tool registration * refactor: simplify CUA fallback handling * refactor: simplify CUA shell helpers * test: cover CUA screenshot result shapes
55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
from ..olayer import (
|
|
BrowserComponent,
|
|
FileSystemComponent,
|
|
GUIComponent,
|
|
PythonComponent,
|
|
ShellComponent,
|
|
)
|
|
|
|
|
|
class ComputerBooter:
|
|
@property
|
|
def fs(self) -> FileSystemComponent: ...
|
|
|
|
@property
|
|
def python(self) -> PythonComponent: ...
|
|
|
|
@property
|
|
def shell(self) -> ShellComponent: ...
|
|
|
|
@property
|
|
def capabilities(self) -> tuple[str, ...] | None:
|
|
"""Sandbox capabilities (e.g. ('python', 'shell', 'filesystem', 'browser')).
|
|
|
|
Returns None if the booter doesn't support capability introspection
|
|
(backward-compatible default). Subclasses override after boot.
|
|
"""
|
|
return None
|
|
|
|
@property
|
|
def browser(self) -> BrowserComponent | None:
|
|
return None
|
|
|
|
@property
|
|
def gui(self) -> GUIComponent | None:
|
|
return None
|
|
|
|
async def boot(self, session_id: str) -> None: ...
|
|
|
|
async def shutdown(self) -> None: ...
|
|
|
|
async def upload_file(self, path: str, file_name: str) -> dict:
|
|
"""Upload file to the computer.
|
|
|
|
Should return a dict with `success` (bool) and `file_path` (str) keys.
|
|
"""
|
|
...
|
|
|
|
async def download_file(self, remote_path: str, local_path: str) -> None:
|
|
"""Download file from the computer."""
|
|
...
|
|
|
|
async def available(self) -> bool:
|
|
"""Check if the computer is available."""
|
|
...
|