mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-17 17:51:20 +08:00
* test(skills): align sandbox cache tests with readonly behavior * ci(release): enforce core quality gate before publish * ci: enforce locked dependency installs in workflows * security: remove curl-pipe-shell installs * chore: align project python baseline to 3.12 * ci(dashboard): add explicit typecheck gate * chore(pre-commit): align ruff hook version with project * ci(codeql): add javascript-typescript analysis * chore(ruff): defer py312 migration lint rules * fix: resolve ruff violations without new ignores * fix: resolve ASYNC230 and ASYNC240 without ignores * fix(auth): replace utcnow with timezone-aware UTC now * fix: avoid blocking file read in file_to_base64
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
"""
|
|
Browser automation component
|
|
"""
|
|
|
|
from typing import Any, Protocol
|
|
|
|
|
|
class BrowserComponent(Protocol):
|
|
"""Browser operations component"""
|
|
|
|
async def exec(
|
|
self,
|
|
cmd: str,
|
|
timeout_seconds: int = 30,
|
|
description: str | None = None,
|
|
tags: str | None = None,
|
|
learn: bool = False,
|
|
include_trace: bool = False,
|
|
) -> dict[str, Any]:
|
|
"""Execute a browser automation command"""
|
|
...
|
|
|
|
async def exec_batch(
|
|
self,
|
|
commands: list[str],
|
|
timeout_seconds: int = 60,
|
|
stop_on_error: bool = True,
|
|
description: str | None = None,
|
|
tags: str | None = None,
|
|
learn: bool = False,
|
|
include_trace: bool = False,
|
|
) -> dict[str, Any]:
|
|
"""Execute a browser automation command batch"""
|
|
...
|
|
|
|
async def run_skill(
|
|
self,
|
|
skill_key: str,
|
|
timeout_seconds: int = 60,
|
|
stop_on_error: bool = True,
|
|
include_trace: bool = False,
|
|
description: str | None = None,
|
|
tags: str | None = None,
|
|
) -> dict[str, Any]:
|
|
"""Run a browser skill by skill key"""
|
|
...
|