From f5795833fff29d98bee2955a7de8c48ef82b2446 Mon Sep 17 00:00:00 2001
From: fern-api <115122769+fern-api[bot]@users.noreply.github.com>
Date: Wed, 26 Mar 2025 23:33:31 +0000
Subject: [PATCH] SDK regeneration
---
pyproject.toml | 2 +-
reference.md | 16 ++
src/scrapybara/__init__.py | 26 +++
src/scrapybara/core/client_wrapper.py | 2 +-
src/scrapybara/instance/client.py | 16 ++
src/scrapybara/types/action.py | 157 ++++++++++++++++++
src/scrapybara/types/computer_request.py | 21 +++
src/scrapybara/types/filesystem_request.py | 36 ++++
src/scrapybara/types/filesystem_response.py | 28 ++++
src/scrapybara/types/get_instance_response.py | 3 +-
10 files changed, 304 insertions(+), 3 deletions(-)
create mode 100644 src/scrapybara/types/action.py
create mode 100644 src/scrapybara/types/computer_request.py
create mode 100644 src/scrapybara/types/filesystem_request.py
create mode 100644 src/scrapybara/types/filesystem_response.py
diff --git a/pyproject.toml b/pyproject.toml
index 84eda73..a8f3cce 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -3,7 +3,7 @@ name = "scrapybara"
[tool.poetry]
name = "scrapybara"
-version = "2.4.3"
+version = "2.4.4"
description = ""
readme = "README.md"
authors = []
diff --git a/reference.md b/reference.md
index 5cf384f..65bcb0a 100644
--- a/reference.md
+++ b/reference.md
@@ -466,6 +466,22 @@ client.instance.bash(
-
+**get_background_processes:** `typing.Optional[bool]`
+
+
+
+
+
+-
+
+**kill_pid:** `typing.Optional[int]`
+
+
+
+
+
+-
+
**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
diff --git a/src/scrapybara/__init__.py b/src/scrapybara/__init__.py
index 3787602..a31d4ea 100644
--- a/src/scrapybara/__init__.py
+++ b/src/scrapybara/__init__.py
@@ -1,6 +1,16 @@
# This file was auto-generated by Fern from our API Definition.
from .types import (
+ Action,
+ Action_ClickMouse,
+ Action_DragMouse,
+ Action_GetCursorPosition,
+ Action_MoveMouse,
+ Action_PressKey,
+ Action_Scroll,
+ Action_TakeScreenshot,
+ Action_TypeText,
+ Action_Wait,
AuthStateResponse,
BashResponse,
BrowserAuthenticateResponse,
@@ -10,6 +20,7 @@
CellType,
ClickMouseAction,
ClickMouseActionClickType,
+ ComputerRequest,
ComputerResponse,
DeploymentConfigInstanceType,
DragMouseAction,
@@ -19,6 +30,8 @@
ExecuteCellRequest,
FileDownloadResponse,
FileReadResponse,
+ FilesystemRequest,
+ FilesystemResponse,
GetCursorPositionAction,
GetInstanceResponse,
GetInstanceResponseInstanceType,
@@ -63,6 +76,16 @@
from .version import __version__
__all__ = [
+ "Action",
+ "Action_ClickMouse",
+ "Action_DragMouse",
+ "Action_GetCursorPosition",
+ "Action_MoveMouse",
+ "Action_PressKey",
+ "Action_Scroll",
+ "Action_TakeScreenshot",
+ "Action_TypeText",
+ "Action_Wait",
"AsyncScrapybara",
"AuthStateResponse",
"BashResponse",
@@ -74,6 +97,7 @@
"ClickMouseAction",
"ClickMouseActionClickType",
"Command",
+ "ComputerRequest",
"ComputerResponse",
"DeploymentConfigInstanceType",
"DragMouseAction",
@@ -83,6 +107,8 @@
"ExecuteCellRequest",
"FileDownloadResponse",
"FileReadResponse",
+ "FilesystemRequest",
+ "FilesystemResponse",
"GetCursorPositionAction",
"GetInstanceResponse",
"GetInstanceResponseInstanceType",
diff --git a/src/scrapybara/core/client_wrapper.py b/src/scrapybara/core/client_wrapper.py
index f03289d..0ead1a3 100644
--- a/src/scrapybara/core/client_wrapper.py
+++ b/src/scrapybara/core/client_wrapper.py
@@ -16,7 +16,7 @@ def get_headers(self) -> typing.Dict[str, str]:
headers: typing.Dict[str, str] = {
"X-Fern-Language": "Python",
"X-Fern-SDK-Name": "scrapybara",
- "X-Fern-SDK-Version": "2.4.3",
+ "X-Fern-SDK-Version": "2.4.4",
}
headers["x-api-key"] = self.api_key
return headers
diff --git a/src/scrapybara/instance/client.py b/src/scrapybara/instance/client.py
index 78e8799..4c54193 100644
--- a/src/scrapybara/instance/client.py
+++ b/src/scrapybara/instance/client.py
@@ -211,6 +211,8 @@ def bash(
*,
command: typing.Optional[str] = OMIT,
restart: typing.Optional[bool] = OMIT,
+ get_background_processes: typing.Optional[bool] = OMIT,
+ kill_pid: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> BashResponse:
"""
@@ -222,6 +224,10 @@ def bash(
restart : typing.Optional[bool]
+ get_background_processes : typing.Optional[bool]
+
+ kill_pid : typing.Optional[int]
+
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -247,6 +253,8 @@ def bash(
json={
"command": command,
"restart": restart,
+ "get_background_processes": get_background_processes,
+ "kill_pid": kill_pid,
},
headers={
"content-type": "application/json",
@@ -761,6 +769,8 @@ async def bash(
*,
command: typing.Optional[str] = OMIT,
restart: typing.Optional[bool] = OMIT,
+ get_background_processes: typing.Optional[bool] = OMIT,
+ kill_pid: typing.Optional[int] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> BashResponse:
"""
@@ -772,6 +782,10 @@ async def bash(
restart : typing.Optional[bool]
+ get_background_processes : typing.Optional[bool]
+
+ kill_pid : typing.Optional[int]
+
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -805,6 +819,8 @@ async def main() -> None:
json={
"command": command,
"restart": restart,
+ "get_background_processes": get_background_processes,
+ "kill_pid": kill_pid,
},
headers={
"content-type": "application/json",
diff --git a/src/scrapybara/types/action.py b/src/scrapybara/types/action.py
new file mode 100644
index 0000000..5627fc5
--- /dev/null
+++ b/src/scrapybara/types/action.py
@@ -0,0 +1,157 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from __future__ import annotations
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing
+from .button import Button
+from .click_mouse_action_click_type import ClickMouseActionClickType
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+
+
+class Action_ClickMouse(UniversalBaseModel):
+ action: typing.Literal["click_mouse"] = "click_mouse"
+ button: Button
+ click_type: typing.Optional[ClickMouseActionClickType] = None
+ coordinates: typing.Optional[typing.List[int]] = None
+ num_clicks: typing.Optional[int] = None
+ hold_keys: typing.Optional[typing.List[str]] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+class Action_DragMouse(UniversalBaseModel):
+ action: typing.Literal["drag_mouse"] = "drag_mouse"
+ path: typing.List[typing.List[int]]
+ hold_keys: typing.Optional[typing.List[str]] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+class Action_GetCursorPosition(UniversalBaseModel):
+ action: typing.Literal["get_cursor_position"] = "get_cursor_position"
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+class Action_MoveMouse(UniversalBaseModel):
+ action: typing.Literal["move_mouse"] = "move_mouse"
+ coordinates: typing.List[int]
+ hold_keys: typing.Optional[typing.List[str]] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+class Action_PressKey(UniversalBaseModel):
+ action: typing.Literal["press_key"] = "press_key"
+ keys: typing.List[str]
+ duration: typing.Optional[float] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+class Action_Scroll(UniversalBaseModel):
+ action: typing.Literal["scroll"] = "scroll"
+ coordinates: typing.Optional[typing.List[int]] = None
+ delta_x: typing.Optional[float] = None
+ delta_y: typing.Optional[float] = None
+ hold_keys: typing.Optional[typing.List[str]] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+class Action_TakeScreenshot(UniversalBaseModel):
+ action: typing.Literal["take_screenshot"] = "take_screenshot"
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+class Action_TypeText(UniversalBaseModel):
+ action: typing.Literal["type_text"] = "type_text"
+ text: str
+ hold_keys: typing.Optional[typing.List[str]] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+class Action_Wait(UniversalBaseModel):
+ action: typing.Literal["wait"] = "wait"
+ duration: float
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
+
+
+Action = typing.Union[
+ Action_ClickMouse,
+ Action_DragMouse,
+ Action_GetCursorPosition,
+ Action_MoveMouse,
+ Action_PressKey,
+ Action_Scroll,
+ Action_TakeScreenshot,
+ Action_TypeText,
+ Action_Wait,
+]
diff --git a/src/scrapybara/types/computer_request.py b/src/scrapybara/types/computer_request.py
new file mode 100644
index 0000000..471a91b
--- /dev/null
+++ b/src/scrapybara/types/computer_request.py
@@ -0,0 +1,21 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from ..core.pydantic_utilities import UniversalBaseModel
+from .action import Action
+import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+
+
+class ComputerRequest(UniversalBaseModel):
+ action: Action
+ screenshot: typing.Optional[bool] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/scrapybara/types/filesystem_request.py b/src/scrapybara/types/filesystem_request.py
new file mode 100644
index 0000000..f22520a
--- /dev/null
+++ b/src/scrapybara/types/filesystem_request.py
@@ -0,0 +1,36 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+
+
+class FilesystemRequest(UniversalBaseModel):
+ command: str
+ path: typing.Optional[str] = None
+ content: typing.Optional[str] = None
+ mode: typing.Optional[str] = None
+ encoding: typing.Optional[str] = None
+ view_range: typing.Optional[typing.List[int]] = None
+ recursive: typing.Optional[bool] = None
+ src: typing.Optional[str] = None
+ dst: typing.Optional[str] = None
+ old_str: typing.Optional[str] = None
+ new_str: typing.Optional[str] = None
+ line: typing.Optional[int] = None
+ text: typing.Optional[str] = None
+ lines: typing.Optional[typing.List[int]] = None
+ all_occurrences: typing.Optional[bool] = None
+ pattern: typing.Optional[str] = None
+ case_sensitive: typing.Optional[bool] = None
+ line_numbers: typing.Optional[bool] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/scrapybara/types/filesystem_response.py b/src/scrapybara/types/filesystem_response.py
new file mode 100644
index 0000000..a9d9f8b
--- /dev/null
+++ b/src/scrapybara/types/filesystem_response.py
@@ -0,0 +1,28 @@
+# This file was auto-generated by Fern from our API Definition.
+
+from ..core.pydantic_utilities import UniversalBaseModel
+import typing
+import typing_extensions
+from ..core.serialization import FieldMetadata
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
+import pydantic
+
+
+class FilesystemResponse(UniversalBaseModel):
+ """
+ Response model for filesystem actions.
+ """
+
+ output: typing.Optional[str] = None
+ error: typing.Optional[str] = None
+ base_64_image: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="base64_image")] = None
+ system: typing.Optional[str] = None
+
+ if IS_PYDANTIC_V2:
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
+ else:
+
+ class Config:
+ frozen = True
+ smart_union = True
+ extra = pydantic.Extra.allow
diff --git a/src/scrapybara/types/get_instance_response.py b/src/scrapybara/types/get_instance_response.py
index a0b60c4..d7850c4 100644
--- a/src/scrapybara/types/get_instance_response.py
+++ b/src/scrapybara/types/get_instance_response.py
@@ -4,8 +4,8 @@
import datetime as dt
from .get_instance_response_instance_type import GetInstanceResponseInstanceType
from .status import Status
-from ..core.pydantic_utilities import IS_PYDANTIC_V2
import typing
+from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic
@@ -14,6 +14,7 @@ class GetInstanceResponse(UniversalBaseModel):
launch_time: dt.datetime
instance_type: GetInstanceResponseInstanceType
status: Status
+ resolution: typing.Optional[typing.List[int]] = None
if IS_PYDANTIC_V2:
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2