tzafon 2.0.0__tar.gz → 2.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of tzafon might be problematic. Click here for more details.

Files changed (86) hide show
  1. tzafon-2.1.0/.release-please-manifest.json +3 -0
  2. {tzafon-2.0.0 → tzafon-2.1.0}/CHANGELOG.md +17 -0
  3. {tzafon-2.0.0 → tzafon-2.1.0}/PKG-INFO +33 -37
  4. {tzafon-2.0.0 → tzafon-2.1.0}/README.md +32 -36
  5. {tzafon-2.0.0 → tzafon-2.1.0}/pyproject.toml +1 -1
  6. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_streaming.py +4 -6
  7. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_version.py +1 -1
  8. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/resources/computers.py +18 -10
  9. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/action_result.py +2 -0
  10. tzafon-2.0.0/.release-please-manifest.json +0 -3
  11. {tzafon-2.0.0 → tzafon-2.1.0}/.gitignore +0 -0
  12. {tzafon-2.0.0 → tzafon-2.1.0}/BATCH_API.md +0 -0
  13. {tzafon-2.0.0 → tzafon-2.1.0}/CONTRIBUTING.md +0 -0
  14. {tzafon-2.0.0 → tzafon-2.1.0}/LICENSE +0 -0
  15. {tzafon-2.0.0 → tzafon-2.1.0}/SECURITY.md +0 -0
  16. {tzafon-2.0.0 → tzafon-2.1.0}/WRAPPER.md +0 -0
  17. {tzafon-2.0.0 → tzafon-2.1.0}/WRAPPER_FUNCTIONALITY.md +0 -0
  18. {tzafon-2.0.0 → tzafon-2.1.0}/api.md +0 -0
  19. {tzafon-2.0.0 → tzafon-2.1.0}/bin/check-release-environment +0 -0
  20. {tzafon-2.0.0 → tzafon-2.1.0}/bin/publish-pypi +0 -0
  21. {tzafon-2.0.0 → tzafon-2.1.0}/examples/.keep +0 -0
  22. {tzafon-2.0.0 → tzafon-2.1.0}/examples/batch_example.py +0 -0
  23. {tzafon-2.0.0 → tzafon-2.1.0}/examples/batch_example_simple.py +0 -0
  24. {tzafon-2.0.0 → tzafon-2.1.0}/examples/clean_api_example.py +0 -0
  25. {tzafon-2.0.0 → tzafon-2.1.0}/noxfile.py +0 -0
  26. {tzafon-2.0.0 → tzafon-2.1.0}/release-please-config.json +0 -0
  27. {tzafon-2.0.0 → tzafon-2.1.0}/requirements-dev.lock +0 -0
  28. {tzafon-2.0.0 → tzafon-2.1.0}/requirements.lock +0 -0
  29. {tzafon-2.0.0 → tzafon-2.1.0}/src/computer/lib/.keep +0 -0
  30. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/__init__.py +0 -0
  31. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_base_client.py +0 -0
  32. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_client.py +0 -0
  33. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_compat.py +0 -0
  34. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_constants.py +0 -0
  35. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_exceptions.py +0 -0
  36. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_files.py +0 -0
  37. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_models.py +0 -0
  38. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_qs.py +0 -0
  39. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_resource.py +0 -0
  40. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_response.py +0 -0
  41. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_types.py +0 -0
  42. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/__init__.py +0 -0
  43. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_compat.py +0 -0
  44. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_datetime_parse.py +0 -0
  45. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_logs.py +0 -0
  46. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_proxy.py +0 -0
  47. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_reflection.py +0 -0
  48. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_resources_proxy.py +0 -0
  49. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_streams.py +0 -0
  50. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_sync.py +0 -0
  51. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_transform.py +0 -0
  52. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_typing.py +0 -0
  53. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/_utils/_utils.py +0 -0
  54. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/batch_wrapper.py +0 -0
  55. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/client_extensions.py +0 -0
  56. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/py.typed +0 -0
  57. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/resources/__init__.py +0 -0
  58. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/__init__.py +0 -0
  59. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/computer_create_params.py +0 -0
  60. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/computer_execute_action_params.py +0 -0
  61. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/computer_execute_batch_params.py +0 -0
  62. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/computer_execute_batch_response.py +0 -0
  63. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/computer_keep_alive_response.py +0 -0
  64. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/computer_list_response.py +0 -0
  65. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/computer_navigate_params.py +0 -0
  66. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/types/computer_response.py +0 -0
  67. {tzafon-2.0.0 → tzafon-2.1.0}/src/tzafon/wrapper.py +0 -0
  68. {tzafon-2.0.0 → tzafon-2.1.0}/tests/__init__.py +0 -0
  69. {tzafon-2.0.0 → tzafon-2.1.0}/tests/api_resources/__init__.py +0 -0
  70. {tzafon-2.0.0 → tzafon-2.1.0}/tests/api_resources/test_computers.py +0 -0
  71. {tzafon-2.0.0 → tzafon-2.1.0}/tests/conftest.py +0 -0
  72. {tzafon-2.0.0 → tzafon-2.1.0}/tests/sample_file.txt +0 -0
  73. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_client.py +0 -0
  74. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_deepcopy.py +0 -0
  75. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_extract_files.py +0 -0
  76. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_files.py +0 -0
  77. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_models.py +0 -0
  78. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_qs.py +0 -0
  79. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_required_args.py +0 -0
  80. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_response.py +0 -0
  81. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_streaming.py +0 -0
  82. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_transform.py +0 -0
  83. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_utils/test_datetime_parse.py +0 -0
  84. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_utils/test_proxy.py +0 -0
  85. {tzafon-2.0.0 → tzafon-2.1.0}/tests/test_utils/test_typing.py +0 -0
  86. {tzafon-2.0.0 → tzafon-2.1.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "2.1.0"
3
+ }
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.1.0 (2025-10-30)
4
+
5
+ Full Changelog: [v2.0.1...v2.1.0](https://github.com/tzafon/computer-python/compare/v2.0.1...v2.1.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([2a38a7f](https://github.com/tzafon/computer-python/commit/2a38a7f2bb027dd6cd627df075d0c8c4399e615d))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **client:** close streams without requiring full consumption ([24a5a11](https://github.com/tzafon/computer-python/commit/24a5a114bcb3d3d4ed0c0b5df158e09c99d78a79))
15
+
16
+ ## 2.0.1 (2025-10-21)
17
+
18
+ Full Changelog: [v2.0.0...v2.0.1](https://github.com/tzafon/computer-python/compare/v2.0.0...v2.0.1)
19
+
3
20
  ## 2.0.0 (2025-10-20)
4
21
 
5
22
  Full Changelog: [v1.4.0...v2.0.0](https://github.com/tzafon/computer-python/compare/v1.4.0...v2.0.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: tzafon
3
- Version: 2.0.0
3
+ Version: 2.1.0
4
4
  Summary: The official Python library for the computer API
5
5
  Project-URL: Homepage, https://github.com/tzafon/computer-python
6
6
  Project-URL: Repository, https://github.com/tzafon/computer-python
@@ -33,20 +33,22 @@ Requires-Dist: aiohttp; extra == 'aiohttp'
33
33
  Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
34
34
  Description-Content-Type: text/markdown
35
35
 
36
- # Computer Python API library
36
+ # Tzafon Python SDK
37
37
 
38
38
  <!-- prettier-ignore -->
39
39
  [![PyPI version](https://img.shields.io/pypi/v/tzafon.svg?label=pypi%20(stable))](https://pypi.org/project/tzafon/)
40
40
 
41
- The Computer Python library provides convenient access to the Computer REST API from any Python 3.8+
42
- application. The library includes type definitions for all request params and response fields,
43
- and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
41
+ The Tzafon Python SDK provides programmatic control of Chromium browsers and Linux desktop environments. Automate web interactions with simple method calls - navigate, click, type, and capture screenshots.
44
42
 
45
- It is generated with [Stainless](https://www.stainless.com/).
43
+ **Key Features:**
44
+ - Browser and desktop automation
45
+ - Synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx)
46
+ - Type-safe API with full type definitions
47
+ - Context manager support for automatic cleanup
46
48
 
47
49
  ## Documentation
48
50
 
49
- The REST API documentation can be found on [docs.tzafon.ai](http://docs.tzafon.ai). The full API of this library can be found in [api.md](https://github.com/tzafon/computer-python/tree/main/api.md).
51
+ The REST API documentation can be found at [docs.tzafon.ai](https://docs.tzafon.ai). The full API of this library can be found in [api.md](https://github.com/tzafon/computer-python/tree/main/api.md).
50
52
 
51
53
  ## Installation
52
54
 
@@ -57,53 +59,47 @@ pip install tzafon
57
59
 
58
60
  ## Usage
59
61
 
60
- The full API of this library can be found in [api.md](https://github.com/tzafon/computer-python/tree/main/api.md).
61
-
62
62
  ```python
63
- import os
64
63
  from tzafon import Computer
65
64
 
66
- client = Computer(
67
- api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted
68
- )
65
+ client = Computer() # Reads TZAFON_API_KEY from environment
69
66
 
70
- computer_response = client.computers.create(
71
- kind="browser",
72
- )
73
- print(computer_response.id)
67
+ # Create and control a browser instance
68
+ with client.create(kind="browser") as computer:
69
+ computer.navigate("https://google.com")
70
+ computer.type("Tzafon AI")
71
+ computer.click(100, 200)
72
+ screenshot = computer.screenshot()
73
+ ```
74
+
75
+ The client automatically reads `TZAFON_API_KEY` from your environment. You can also pass it explicitly:
76
+
77
+ ```python
78
+ client = Computer(api_key="your-api-key")
74
79
  ```
75
80
 
76
- While you can provide an `api_key` keyword argument,
77
- we recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)
78
- to add `TZAFON_API_KEY="My API Key"` to your `.env` file
79
- so that your API Key is not stored in source control.
81
+ We recommend using [python-dotenv](https://pypi.org/project/python-dotenv/) to manage your API key in a `.env` file.
80
82
 
81
- ## Async usage
83
+ ## Async Usage
82
84
 
83
- Simply import `AsyncComputer` instead of `Computer` and use `await` with each API call:
85
+ Import `AsyncComputer` and use `await` with each action:
84
86
 
85
87
  ```python
86
- import os
87
88
  import asyncio
88
89
  from tzafon import AsyncComputer
89
90
 
90
- client = AsyncComputer(
91
- api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted
92
- )
93
-
94
-
95
- async def main() -> None:
96
- computer_response = await client.computers.create(
97
- kind="browser",
98
- )
99
- print(computer_response.id)
100
-
91
+ async def main():
92
+ client = AsyncComputer()
93
+
94
+ async with client.create(kind="browser") as computer:
95
+ await computer.navigate("https://google.com")
96
+ await computer.type("Tzafon AI")
97
+ await computer.click(100, 200)
98
+ screenshot = await computer.screenshot()
101
99
 
102
100
  asyncio.run(main())
103
101
  ```
104
102
 
105
- Functionality between the synchronous and asynchronous clients is otherwise identical.
106
-
107
103
  ### With aiohttp
108
104
 
109
105
  By default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.
@@ -1,17 +1,19 @@
1
- # Computer Python API library
1
+ # Tzafon Python SDK
2
2
 
3
3
  <!-- prettier-ignore -->
4
4
  [![PyPI version](https://img.shields.io/pypi/v/tzafon.svg?label=pypi%20(stable))](https://pypi.org/project/tzafon/)
5
5
 
6
- The Computer Python library provides convenient access to the Computer REST API from any Python 3.8+
7
- application. The library includes type definitions for all request params and response fields,
8
- and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
6
+ The Tzafon Python SDK provides programmatic control of Chromium browsers and Linux desktop environments. Automate web interactions with simple method calls - navigate, click, type, and capture screenshots.
9
7
 
10
- It is generated with [Stainless](https://www.stainless.com/).
8
+ **Key Features:**
9
+ - Browser and desktop automation
10
+ - Synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx)
11
+ - Type-safe API with full type definitions
12
+ - Context manager support for automatic cleanup
11
13
 
12
14
  ## Documentation
13
15
 
14
- The REST API documentation can be found on [docs.tzafon.ai](http://docs.tzafon.ai). The full API of this library can be found in [api.md](api.md).
16
+ The REST API documentation can be found at [docs.tzafon.ai](https://docs.tzafon.ai). The full API of this library can be found in [api.md](api.md).
15
17
 
16
18
  ## Installation
17
19
 
@@ -22,53 +24,47 @@ pip install tzafon
22
24
 
23
25
  ## Usage
24
26
 
25
- The full API of this library can be found in [api.md](api.md).
26
-
27
27
  ```python
28
- import os
29
28
  from tzafon import Computer
30
29
 
31
- client = Computer(
32
- api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted
33
- )
30
+ client = Computer() # Reads TZAFON_API_KEY from environment
34
31
 
35
- computer_response = client.computers.create(
36
- kind="browser",
37
- )
38
- print(computer_response.id)
32
+ # Create and control a browser instance
33
+ with client.create(kind="browser") as computer:
34
+ computer.navigate("https://google.com")
35
+ computer.type("Tzafon AI")
36
+ computer.click(100, 200)
37
+ screenshot = computer.screenshot()
38
+ ```
39
+
40
+ The client automatically reads `TZAFON_API_KEY` from your environment. You can also pass it explicitly:
41
+
42
+ ```python
43
+ client = Computer(api_key="your-api-key")
39
44
  ```
40
45
 
41
- While you can provide an `api_key` keyword argument,
42
- we recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)
43
- to add `TZAFON_API_KEY="My API Key"` to your `.env` file
44
- so that your API Key is not stored in source control.
46
+ We recommend using [python-dotenv](https://pypi.org/project/python-dotenv/) to manage your API key in a `.env` file.
45
47
 
46
- ## Async usage
48
+ ## Async Usage
47
49
 
48
- Simply import `AsyncComputer` instead of `Computer` and use `await` with each API call:
50
+ Import `AsyncComputer` and use `await` with each action:
49
51
 
50
52
  ```python
51
- import os
52
53
  import asyncio
53
54
  from tzafon import AsyncComputer
54
55
 
55
- client = AsyncComputer(
56
- api_key=os.environ.get("TZAFON_API_KEY"), # This is the default and can be omitted
57
- )
58
-
59
-
60
- async def main() -> None:
61
- computer_response = await client.computers.create(
62
- kind="browser",
63
- )
64
- print(computer_response.id)
65
-
56
+ async def main():
57
+ client = AsyncComputer()
58
+
59
+ async with client.create(kind="browser") as computer:
60
+ await computer.navigate("https://google.com")
61
+ await computer.type("Tzafon AI")
62
+ await computer.click(100, 200)
63
+ screenshot = await computer.screenshot()
66
64
 
67
65
  asyncio.run(main())
68
66
  ```
69
67
 
70
- Functionality between the synchronous and asynchronous clients is otherwise identical.
71
-
72
68
  ### With aiohttp
73
69
 
74
70
  By default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tzafon"
3
- version = "2.0.0"
3
+ version = "2.1.0"
4
4
  description = "The official Python library for the computer API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -57,9 +57,8 @@ class Stream(Generic[_T]):
57
57
  for sse in iterator:
58
58
  yield process_data(data=sse.json(), cast_to=cast_to, response=response)
59
59
 
60
- # Ensure the entire stream is consumed
61
- for _sse in iterator:
62
- ...
60
+ # As we might not fully consume the response stream, we need to close it explicitly
61
+ response.close()
63
62
 
64
63
  def __enter__(self) -> Self:
65
64
  return self
@@ -121,9 +120,8 @@ class AsyncStream(Generic[_T]):
121
120
  async for sse in iterator:
122
121
  yield process_data(data=sse.json(), cast_to=cast_to, response=response)
123
122
 
124
- # Ensure the entire stream is consumed
125
- async for _sse in iterator:
126
- ...
123
+ # As we might not fully consume the response stream, we need to close it explicitly
124
+ await response.aclose()
127
125
 
128
126
  async def __aenter__(self) -> Self:
129
127
  return self
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "tzafon"
4
- __version__ = "2.0.0" # x-release-please-version
4
+ __version__ = "2.1.0" # x-release-please-version
@@ -66,7 +66,9 @@ class ComputersResource(SyncAPIResource):
66
66
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
67
67
  ) -> ComputerResponse:
68
68
  """
69
- Create a new browser or desktop automation session
69
+ Create a new browser or desktop automation session with configurable timeout.
70
+ Returns endpoints for executing actions, streaming events, and viewing
71
+ screencast.
70
72
 
71
73
  Args:
72
74
  display: TODO: implement
@@ -113,7 +115,7 @@ class ComputersResource(SyncAPIResource):
113
115
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
114
116
  ) -> ComputerResponse:
115
117
  """
116
- Get the current status of a computer instance
118
+ Get the current status and metadata of a computer instance
117
119
 
118
120
  Args:
119
121
  extra_headers: Send extra headers
@@ -166,7 +168,8 @@ class ComputersResource(SyncAPIResource):
166
168
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
167
169
  ) -> ActionResult:
168
170
  """
169
- Execute a single action (screenshot, click, type, navigate, )
171
+ Execute a single action such as screenshot, click, type, navigate, scroll, debug
172
+ or other computer use actions
170
173
 
171
174
  Args:
172
175
  extra_headers: Send extra headers
@@ -235,7 +238,7 @@ class ComputersResource(SyncAPIResource):
235
238
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
236
239
  ) -> ComputerKeepAliveResponse:
237
240
  """
238
- Extend the timeout for a computer session
241
+ Extend the timeout for a computer session and verify it is still running
239
242
 
240
243
  Args:
241
244
  extra_headers: Send extra headers
@@ -337,7 +340,8 @@ class ComputersResource(SyncAPIResource):
337
340
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
338
341
  ) -> None:
339
342
  """
340
- Terminate and clean up a computer instance
343
+ Terminate and clean up a computer instance, stopping the session and recording
344
+ metrics
341
345
 
342
346
  Args:
343
347
  extra_headers: Send extra headers
@@ -396,7 +400,9 @@ class AsyncComputersResource(AsyncAPIResource):
396
400
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
397
401
  ) -> ComputerResponse:
398
402
  """
399
- Create a new browser or desktop automation session
403
+ Create a new browser or desktop automation session with configurable timeout.
404
+ Returns endpoints for executing actions, streaming events, and viewing
405
+ screencast.
400
406
 
401
407
  Args:
402
408
  display: TODO: implement
@@ -443,7 +449,7 @@ class AsyncComputersResource(AsyncAPIResource):
443
449
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
444
450
  ) -> ComputerResponse:
445
451
  """
446
- Get the current status of a computer instance
452
+ Get the current status and metadata of a computer instance
447
453
 
448
454
  Args:
449
455
  extra_headers: Send extra headers
@@ -496,7 +502,8 @@ class AsyncComputersResource(AsyncAPIResource):
496
502
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
497
503
  ) -> ActionResult:
498
504
  """
499
- Execute a single action (screenshot, click, type, navigate, )
505
+ Execute a single action such as screenshot, click, type, navigate, scroll, debug
506
+ or other computer use actions
500
507
 
501
508
  Args:
502
509
  extra_headers: Send extra headers
@@ -565,7 +572,7 @@ class AsyncComputersResource(AsyncAPIResource):
565
572
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
566
573
  ) -> ComputerKeepAliveResponse:
567
574
  """
568
- Extend the timeout for a computer session
575
+ Extend the timeout for a computer session and verify it is still running
569
576
 
570
577
  Args:
571
578
  extra_headers: Send extra headers
@@ -667,7 +674,8 @@ class AsyncComputersResource(AsyncAPIResource):
667
674
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
668
675
  ) -> None:
669
676
  """
670
- Terminate and clean up a computer instance
677
+ Terminate and clean up a computer instance, stopping the session and recording
678
+ metrics
671
679
 
672
680
  Args:
673
681
  extra_headers: Send extra headers
@@ -10,6 +10,8 @@ __all__ = ["ActionResult"]
10
10
  class ActionResult(BaseModel):
11
11
  error_message: Optional[str] = None
12
12
 
13
+ request_id: Optional[str] = None
14
+
13
15
  result: Optional[Dict[str, object]] = None
14
16
 
15
17
  status: Optional[str] = None
@@ -1,3 +0,0 @@
1
- {
2
- ".": "2.0.0"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes