anchorbrowser 0.2.0__tar.gz → 0.3.1__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.
Files changed (177) hide show
  1. anchorbrowser-0.3.1/.release-please-manifest.json +3 -0
  2. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/CHANGELOG.md +28 -0
  3. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/PKG-INFO +26 -22
  4. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/README.md +25 -21
  5. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/pyproject.toml +1 -1
  6. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_client.py +1 -2
  7. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_version.py +1 -1
  8. {anchorbrowser-0.2.0/src/anchorbrowser/resources/task → anchorbrowser-0.3.1/src/anchorbrowser/resources}/task.py +148 -41
  9. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/test_task.py +131 -0
  10. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_client.py +20 -28
  11. anchorbrowser-0.2.0/.release-please-manifest.json +0 -3
  12. anchorbrowser-0.2.0/src/anchorbrowser/resources/task/__init__.py +0 -33
  13. anchorbrowser-0.2.0/src/anchorbrowser/resources/task/run.py +0 -225
  14. anchorbrowser-0.2.0/tests/api_resources/task/__init__.py +0 -1
  15. anchorbrowser-0.2.0/tests/api_resources/task/test_run.py +0 -154
  16. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/.gitignore +0 -0
  17. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/CONTRIBUTING.md +0 -0
  18. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/LICENSE +0 -0
  19. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/SECURITY.md +0 -0
  20. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/api.md +0 -0
  21. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/bin/check-release-environment +0 -0
  22. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/bin/publish-pypi +0 -0
  23. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/examples/.keep +0 -0
  24. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/noxfile.py +0 -0
  25. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/release-please-config.json +0 -0
  26. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/requirements-dev.lock +0 -0
  27. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/requirements.lock +0 -0
  28. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/__init__.py +0 -0
  29. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_base_client.py +0 -0
  30. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_compat.py +0 -0
  31. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_constants.py +0 -0
  32. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_exceptions.py +0 -0
  33. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_files.py +0 -0
  34. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_models.py +0 -0
  35. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_qs.py +0 -0
  36. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_resource.py +0 -0
  37. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_response.py +0 -0
  38. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_streaming.py +0 -0
  39. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_types.py +0 -0
  40. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/__init__.py +0 -0
  41. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_compat.py +0 -0
  42. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_datetime_parse.py +0 -0
  43. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_logs.py +0 -0
  44. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_proxy.py +0 -0
  45. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_reflection.py +0 -0
  46. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_resources_proxy.py +0 -0
  47. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_streams.py +0 -0
  48. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_sync.py +0 -0
  49. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_transform.py +0 -0
  50. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_typing.py +0 -0
  51. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/_utils/_utils.py +0 -0
  52. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/lib/.keep +0 -0
  53. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/lib/agent.py +0 -0
  54. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/lib/browser.py +0 -0
  55. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/py.typed +0 -0
  56. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/__init__.py +0 -0
  57. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/agent.py +0 -0
  58. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/batch_sessions.py +0 -0
  59. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/browser.py +0 -0
  60. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/events.py +0 -0
  61. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/extensions.py +0 -0
  62. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/profiles.py +0 -0
  63. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/__init__.py +0 -0
  64. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/agent/__init__.py +0 -0
  65. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/agent/agent.py +0 -0
  66. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/agent/files.py +0 -0
  67. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/all.py +0 -0
  68. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/clipboard.py +0 -0
  69. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/keyboard.py +0 -0
  70. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/mouse.py +0 -0
  71. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/recordings/__init__.py +0 -0
  72. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/recordings/primary.py +0 -0
  73. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/recordings/recordings.py +0 -0
  74. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/sessions/sessions.py +0 -0
  75. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/resources/tools.py +0 -0
  76. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/__init__.py +0 -0
  77. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/batch_session_create_params.py +0 -0
  78. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/batch_session_create_response.py +0 -0
  79. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/batch_session_retrieve_response.py +0 -0
  80. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/event_signal_params.py +0 -0
  81. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/event_wait_for_params.py +0 -0
  82. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/event_wait_for_response.py +0 -0
  83. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/extension_delete_response.py +0 -0
  84. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/extension_list_response.py +0 -0
  85. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/extension_manifest.py +0 -0
  86. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/extension_retrieve_response.py +0 -0
  87. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/extension_upload_params.py +0 -0
  88. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/extension_upload_response.py +0 -0
  89. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/profile_create_params.py +0 -0
  90. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/profile_list_response.py +0 -0
  91. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/profile_retrieve_response.py +0 -0
  92. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_copy_response.py +0 -0
  93. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_create_params.py +0 -0
  94. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_create_response.py +0 -0
  95. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_drag_and_drop_params.py +0 -0
  96. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_drag_and_drop_response.py +0 -0
  97. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_goto_params.py +0 -0
  98. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_goto_response.py +0 -0
  99. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_list_pages_response.py +0 -0
  100. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_paste_params.py +0 -0
  101. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_paste_response.py +0 -0
  102. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_retrieve_downloads_response.py +0 -0
  103. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_retrieve_response.py +0 -0
  104. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_scroll_params.py +0 -0
  105. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_scroll_response.py +0 -0
  106. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_upload_file_params.py +0 -0
  107. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/session_upload_file_response.py +0 -0
  108. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/__init__.py +0 -0
  109. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/agent/__init__.py +0 -0
  110. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/agent/file_list_response.py +0 -0
  111. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/agent/file_upload_params.py +0 -0
  112. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/agent/file_upload_response.py +0 -0
  113. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/all_status_response.py +0 -0
  114. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/clipboard_get_response.py +0 -0
  115. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/clipboard_set_params.py +0 -0
  116. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/clipboard_set_response.py +0 -0
  117. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/keyboard_shortcut_params.py +0 -0
  118. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/keyboard_shortcut_response.py +0 -0
  119. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/keyboard_type_params.py +0 -0
  120. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/keyboard_type_response.py +0 -0
  121. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/mouse_click_params.py +0 -0
  122. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/mouse_click_response.py +0 -0
  123. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/mouse_double_click_params.py +0 -0
  124. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/mouse_double_click_response.py +0 -0
  125. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/mouse_move_params.py +0 -0
  126. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/mouse_move_response.py +0 -0
  127. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/recording_list_response.py +0 -0
  128. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/recording_pause_response.py +0 -0
  129. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/recording_resume_response.py +0 -0
  130. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/sessions/recordings/__init__.py +0 -0
  131. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/shared/__init__.py +0 -0
  132. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/shared/success_response.py +0 -0
  133. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/task/__init__.py +0 -0
  134. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/task/run_execute_params.py +0 -0
  135. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/task/run_execute_response.py +0 -0
  136. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/task_create_params.py +0 -0
  137. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/task_create_response.py +0 -0
  138. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/task_list_params.py +0 -0
  139. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/task_list_response.py +0 -0
  140. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/tool_fetch_webpage_params.py +0 -0
  141. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/tool_fetch_webpage_response.py +0 -0
  142. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/tool_perform_web_task_params.py +0 -0
  143. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/tool_perform_web_task_response.py +0 -0
  144. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/src/anchorbrowser/types/tool_screenshot_webpage_params.py +0 -0
  145. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/__init__.py +0 -0
  146. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/__init__.py +0 -0
  147. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/__init__.py +0 -0
  148. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/agent/test_files.py +0 -0
  149. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/recordings/__init__.py +0 -0
  150. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/recordings/test_primary.py +0 -0
  151. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/test_agent.py +0 -0
  152. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/test_all.py +0 -0
  153. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/test_clipboard.py +0 -0
  154. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/test_keyboard.py +0 -0
  155. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/test_mouse.py +0 -0
  156. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/sessions/test_recordings.py +0 -0
  157. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/test_batch_sessions.py +0 -0
  158. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/test_events.py +0 -0
  159. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/test_extensions.py +0 -0
  160. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/test_profiles.py +0 -0
  161. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/test_sessions.py +0 -0
  162. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/api_resources/test_tools.py +0 -0
  163. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/conftest.py +0 -0
  164. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/sample_file.txt +0 -0
  165. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_deepcopy.py +0 -0
  166. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_extract_files.py +0 -0
  167. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_files.py +0 -0
  168. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_models.py +0 -0
  169. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_qs.py +0 -0
  170. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_required_args.py +0 -0
  171. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_response.py +0 -0
  172. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_streaming.py +0 -0
  173. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_transform.py +0 -0
  174. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_utils/test_datetime_parse.py +0 -0
  175. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_utils/test_proxy.py +0 -0
  176. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/test_utils/test_typing.py +0 -0
  177. {anchorbrowser-0.2.0 → anchorbrowser-0.3.1}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.3.1"
3
+ }
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.1 (2025-10-26)
4
+
5
+ Full Changelog: [v0.3.0...v0.3.1](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/compare/v0.3.0...v0.3.1)
6
+
7
+ ### Features
8
+
9
+ * **api:** manual updates ([ab2e49e](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/ab2e49eeb383bef056d6255e30503363fa87869e))
10
+
11
+ ## 0.3.0 (2025-10-21)
12
+
13
+ Full Changelog: [v0.2.0...v0.3.0](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/compare/v0.2.0...v0.3.0)
14
+
15
+ ### ⚠ BREAKING CHANGES
16
+
17
+ * **python:** Use `client.task.run()` instead of `client.task.run.execute()`
18
+
19
+ ### Features
20
+
21
+ * **python:** move task.run.execute() to task.run() ([7d19ce5](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/7d19ce588df9a75d38fc0e53472b126c1b71112c))
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * reorganize task tests ([c9621f8](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/c9621f84d08522a8aa04bafda00893a026355979))
27
+ * resolve linting errors ([b2e73c8](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/b2e73c8a22b11cb5f4624b6ed3a6687cd9265bc7))
28
+ * resolve linting errors1 ([4544a64](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/4544a6435773a443fdb360e2647762224ac3c50b))
29
+ * resolve linting errors2 ([0405baa](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/0405baa1fb7fb666fe5144e7a5762224cdea6cff))
30
+
3
31
  ## 0.2.0 (2025-10-20)
4
32
 
5
33
  Full Changelog: [v0.1.1...v0.2.0](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/compare/v0.1.1...v0.2.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: anchorbrowser
3
- Version: 0.2.0
3
+ Version: 0.3.1
4
4
  Summary: The official Python library for the anchorbrowser API
5
5
  Project-URL: Homepage, https://github.com/anchorbrowser/AnchorBrowser-SDK-Python
6
6
  Project-URL: Repository, https://github.com/anchorbrowser/AnchorBrowser-SDK-Python
@@ -68,10 +68,10 @@ client = Anchorbrowser(
68
68
  api_key=os.environ.get("ANCHORBROWSER_API_KEY"), # This is the default and can be omitted
69
69
  )
70
70
 
71
- success_response = client.profiles.create(
72
- name="REPLACE_ME",
71
+ session = client.sessions.create(
72
+ session={"recording": {"active": False}},
73
73
  )
74
- print(success_response.data)
74
+ print(session.data)
75
75
  ```
76
76
 
77
77
  While you can provide an `api_key` keyword argument,
@@ -94,10 +94,10 @@ client = AsyncAnchorbrowser(
94
94
 
95
95
 
96
96
  async def main() -> None:
97
- success_response = await client.profiles.create(
98
- name="REPLACE_ME",
97
+ session = await client.sessions.create(
98
+ session={"recording": {"active": False}},
99
99
  )
100
- print(success_response.data)
100
+ print(session.data)
101
101
 
102
102
 
103
103
  asyncio.run(main())
@@ -129,10 +129,10 @@ async def main() -> None:
129
129
  api_key="Your API Key",
130
130
  http_client=DefaultAioHttpClient(),
131
131
  ) as client:
132
- success_response = await client.profiles.create(
133
- name="REPLACE_ME",
132
+ session = await client.sessions.create(
133
+ session={"recording": {"active": False}},
134
134
  )
135
- print(success_response.data)
135
+ print(session.data)
136
136
 
137
137
 
138
138
  asyncio.run(main())
@@ -196,8 +196,8 @@ from anchorbrowser import Anchorbrowser
196
196
  client = Anchorbrowser()
197
197
 
198
198
  try:
199
- client.profiles.create(
200
- name="REPLACE_ME",
199
+ client.sessions.create(
200
+ session={"recording": {"active": False}},
201
201
  )
202
202
  except anchorbrowser.APIConnectionError as e:
203
203
  print("The server could not be reached")
@@ -241,8 +241,8 @@ client = Anchorbrowser(
241
241
  )
242
242
 
243
243
  # Or, configure per-request:
244
- client.with_options(max_retries=5).profiles.create(
245
- name="REPLACE_ME",
244
+ client.with_options(max_retries=5).sessions.create(
245
+ session={"recording": {"active": False}},
246
246
  )
247
247
  ```
248
248
 
@@ -266,8 +266,8 @@ client = Anchorbrowser(
266
266
  )
267
267
 
268
268
  # Override per-request:
269
- client.with_options(timeout=5.0).profiles.create(
270
- name="REPLACE_ME",
269
+ client.with_options(timeout=5.0).sessions.create(
270
+ session={"recording": {"active": False}},
271
271
  )
272
272
  ```
273
273
 
@@ -309,13 +309,17 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
309
309
  from anchorbrowser import Anchorbrowser
310
310
 
311
311
  client = Anchorbrowser()
312
- response = client.profiles.with_raw_response.create(
313
- name="REPLACE_ME",
312
+ response = client.sessions.with_raw_response.create(
313
+ session={
314
+ "recording": {
315
+ "active": False
316
+ }
317
+ },
314
318
  )
315
319
  print(response.headers.get('X-My-Header'))
316
320
 
317
- profile = response.parse() # get the object that `profiles.create()` would have returned
318
- print(profile.data)
321
+ session = response.parse() # get the object that `sessions.create()` would have returned
322
+ print(session.data)
319
323
  ```
320
324
 
321
325
  These methods return an [`APIResponse`](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/tree/main/src/anchorbrowser/_response.py) object.
@@ -329,8 +333,8 @@ The above interface eagerly reads the full response body when you make the reque
329
333
  To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
330
334
 
331
335
  ```python
332
- with client.profiles.with_streaming_response.create(
333
- name="REPLACE_ME",
336
+ with client.sessions.with_streaming_response.create(
337
+ session={"recording": {"active": False}},
334
338
  ) as response:
335
339
  print(response.headers.get("X-My-Header"))
336
340
 
@@ -32,10 +32,10 @@ client = Anchorbrowser(
32
32
  api_key=os.environ.get("ANCHORBROWSER_API_KEY"), # This is the default and can be omitted
33
33
  )
34
34
 
35
- success_response = client.profiles.create(
36
- name="REPLACE_ME",
35
+ session = client.sessions.create(
36
+ session={"recording": {"active": False}},
37
37
  )
38
- print(success_response.data)
38
+ print(session.data)
39
39
  ```
40
40
 
41
41
  While you can provide an `api_key` keyword argument,
@@ -58,10 +58,10 @@ client = AsyncAnchorbrowser(
58
58
 
59
59
 
60
60
  async def main() -> None:
61
- success_response = await client.profiles.create(
62
- name="REPLACE_ME",
61
+ session = await client.sessions.create(
62
+ session={"recording": {"active": False}},
63
63
  )
64
- print(success_response.data)
64
+ print(session.data)
65
65
 
66
66
 
67
67
  asyncio.run(main())
@@ -93,10 +93,10 @@ async def main() -> None:
93
93
  api_key="Your API Key",
94
94
  http_client=DefaultAioHttpClient(),
95
95
  ) as client:
96
- success_response = await client.profiles.create(
97
- name="REPLACE_ME",
96
+ session = await client.sessions.create(
97
+ session={"recording": {"active": False}},
98
98
  )
99
- print(success_response.data)
99
+ print(session.data)
100
100
 
101
101
 
102
102
  asyncio.run(main())
@@ -160,8 +160,8 @@ from anchorbrowser import Anchorbrowser
160
160
  client = Anchorbrowser()
161
161
 
162
162
  try:
163
- client.profiles.create(
164
- name="REPLACE_ME",
163
+ client.sessions.create(
164
+ session={"recording": {"active": False}},
165
165
  )
166
166
  except anchorbrowser.APIConnectionError as e:
167
167
  print("The server could not be reached")
@@ -205,8 +205,8 @@ client = Anchorbrowser(
205
205
  )
206
206
 
207
207
  # Or, configure per-request:
208
- client.with_options(max_retries=5).profiles.create(
209
- name="REPLACE_ME",
208
+ client.with_options(max_retries=5).sessions.create(
209
+ session={"recording": {"active": False}},
210
210
  )
211
211
  ```
212
212
 
@@ -230,8 +230,8 @@ client = Anchorbrowser(
230
230
  )
231
231
 
232
232
  # Override per-request:
233
- client.with_options(timeout=5.0).profiles.create(
234
- name="REPLACE_ME",
233
+ client.with_options(timeout=5.0).sessions.create(
234
+ session={"recording": {"active": False}},
235
235
  )
236
236
  ```
237
237
 
@@ -273,13 +273,17 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
273
273
  from anchorbrowser import Anchorbrowser
274
274
 
275
275
  client = Anchorbrowser()
276
- response = client.profiles.with_raw_response.create(
277
- name="REPLACE_ME",
276
+ response = client.sessions.with_raw_response.create(
277
+ session={
278
+ "recording": {
279
+ "active": False
280
+ }
281
+ },
278
282
  )
279
283
  print(response.headers.get('X-My-Header'))
280
284
 
281
- profile = response.parse() # get the object that `profiles.create()` would have returned
282
- print(profile.data)
285
+ session = response.parse() # get the object that `sessions.create()` would have returned
286
+ print(session.data)
283
287
  ```
284
288
 
285
289
  These methods return an [`APIResponse`](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/tree/main/src/anchorbrowser/_response.py) object.
@@ -293,8 +297,8 @@ The above interface eagerly reads the full response body when you make the reque
293
297
  To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
294
298
 
295
299
  ```python
296
- with client.profiles.with_streaming_response.create(
297
- name="REPLACE_ME",
300
+ with client.sessions.with_streaming_response.create(
301
+ session={"recording": {"active": False}},
298
302
  ) as response:
299
303
  print(response.headers.get("X-My-Header"))
300
304
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "anchorbrowser"
3
- version = "0.2.0"
3
+ version = "0.3.1"
4
4
  description = "The official Python library for the anchorbrowser API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -21,7 +21,7 @@ from ._types import (
21
21
  )
22
22
  from ._utils import is_given, get_async_library
23
23
  from ._version import __version__
24
- from .resources import agent, tools, events, browser, profiles, extensions, batch_sessions
24
+ from .resources import task, agent, tools, events, browser, profiles, extensions, batch_sessions
25
25
  from ._streaming import Stream as Stream, AsyncStream as AsyncStream
26
26
  from ._exceptions import APIStatusError, AnchorbrowserError
27
27
  from ._base_client import (
@@ -29,7 +29,6 @@ from ._base_client import (
29
29
  SyncAPIClient,
30
30
  AsyncAPIClient,
31
31
  )
32
- from .resources.task import task
33
32
  from .resources.sessions import sessions
34
33
 
35
34
  __all__ = [
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "anchorbrowser"
4
- __version__ = "0.2.0" # x-release-please-version
4
+ __version__ = "0.3.1" # x-release-please-version
@@ -2,41 +2,32 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import Dict
5
6
  from typing_extensions import Literal
6
7
 
7
8
  import httpx
8
9
 
9
- from .run import (
10
- RunResource,
11
- AsyncRunResource,
12
- RunResourceWithRawResponse,
13
- AsyncRunResourceWithRawResponse,
14
- RunResourceWithStreamingResponse,
15
- AsyncRunResourceWithStreamingResponse,
16
- )
17
- from ...types import task_list_params, task_create_params
18
- from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
19
- from ..._utils import maybe_transform, async_maybe_transform
20
- from ..._compat import cached_property
21
- from ..._resource import SyncAPIResource, AsyncAPIResource
22
- from ..._response import (
10
+ from ..types import task_list_params, task_create_params
11
+ from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
12
+ from .._utils import maybe_transform, async_maybe_transform
13
+ from .._compat import cached_property
14
+ from .._resource import SyncAPIResource, AsyncAPIResource
15
+ from .._response import (
23
16
  to_raw_response_wrapper,
24
17
  to_streamed_response_wrapper,
25
18
  async_to_raw_response_wrapper,
26
19
  async_to_streamed_response_wrapper,
27
20
  )
28
- from ..._base_client import make_request_options
29
- from ...types.task_list_response import TaskListResponse
30
- from ...types.task_create_response import TaskCreateResponse
21
+ from ..types.task import run_execute_params
22
+ from .._base_client import make_request_options
23
+ from ..types.task_list_response import TaskListResponse
24
+ from ..types.task_create_response import TaskCreateResponse
25
+ from ..types.task.run_execute_response import RunExecuteResponse
31
26
 
32
27
  __all__ = ["TaskResource", "AsyncTaskResource"]
33
28
 
34
29
 
35
30
  class TaskResource(SyncAPIResource):
36
- @cached_property
37
- def run(self) -> RunResource:
38
- return RunResource(self._client)
39
-
40
31
  @cached_property
41
32
  def with_raw_response(self) -> TaskResourceWithRawResponse:
42
33
  """
@@ -162,12 +153,70 @@ class TaskResource(SyncAPIResource):
162
153
  cast_to=TaskListResponse,
163
154
  )
164
155
 
156
+ def run(
157
+ self,
158
+ *,
159
+ task_id: str,
160
+ inputs: Dict[str, str] | Omit = omit,
161
+ override_browser_configuration: run_execute_params.OverrideBrowserConfiguration | Omit = omit,
162
+ session_id: str | Omit = omit,
163
+ task_session_id: str | Omit = omit,
164
+ version: str | Omit = omit,
165
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
166
+ # The extra values given here take precedence over values defined on the client or passed to this method.
167
+ extra_headers: Headers | None = None,
168
+ extra_query: Query | None = None,
169
+ extra_body: Body | None = None,
170
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
171
+ ) -> RunExecuteResponse:
172
+ """Executes a task in a browser session.
173
+
174
+ The task can be run with a specific
175
+ version or the latest version. Optionally, you can provide an existing session
176
+ ID or let the system create a new one.
165
177
 
166
- class AsyncTaskResource(AsyncAPIResource):
167
- @cached_property
168
- def run(self) -> AsyncRunResource:
169
- return AsyncRunResource(self._client)
178
+ Args:
179
+ task_id: Task identifier
180
+
181
+ inputs: Environment variables for task execution (keys must start with ANCHOR\\__)
182
+
183
+ override_browser_configuration: Override browser configuration for this execution
184
+
185
+ session_id: Optional existing session ID to use
186
+
187
+ task_session_id: Optional task-specific session ID
188
+
189
+ version: Version to run (draft, latest, or version number)
190
+
191
+ extra_headers: Send extra headers
170
192
 
193
+ extra_query: Add additional query parameters to the request
194
+
195
+ extra_body: Add additional JSON properties to the request
196
+
197
+ timeout: Override the client-level default timeout for this request, in seconds
198
+ """
199
+ return self._post(
200
+ "/v1/task/run",
201
+ body=maybe_transform(
202
+ {
203
+ "task_id": task_id,
204
+ "inputs": inputs,
205
+ "override_browser_configuration": override_browser_configuration,
206
+ "session_id": session_id,
207
+ "task_session_id": task_session_id,
208
+ "version": version,
209
+ },
210
+ run_execute_params.RunExecuteParams,
211
+ ),
212
+ options=make_request_options(
213
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
214
+ ),
215
+ cast_to=RunExecuteResponse,
216
+ )
217
+
218
+
219
+ class AsyncTaskResource(AsyncAPIResource):
171
220
  @cached_property
172
221
  def with_raw_response(self) -> AsyncTaskResourceWithRawResponse:
173
222
  """
@@ -293,6 +342,68 @@ class AsyncTaskResource(AsyncAPIResource):
293
342
  cast_to=TaskListResponse,
294
343
  )
295
344
 
345
+ async def run(
346
+ self,
347
+ *,
348
+ task_id: str,
349
+ inputs: Dict[str, str] | Omit = omit,
350
+ override_browser_configuration: run_execute_params.OverrideBrowserConfiguration | Omit = omit,
351
+ session_id: str | Omit = omit,
352
+ task_session_id: str | Omit = omit,
353
+ version: str | Omit = omit,
354
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
355
+ # The extra values given here take precedence over values defined on the client or passed to this method.
356
+ extra_headers: Headers | None = None,
357
+ extra_query: Query | None = None,
358
+ extra_body: Body | None = None,
359
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
360
+ ) -> RunExecuteResponse:
361
+ """Executes a task in a browser session.
362
+
363
+ The task can be run with a specific
364
+ version or the latest version. Optionally, you can provide an existing session
365
+ ID or let the system create a new one.
366
+
367
+ Args:
368
+ task_id: Task identifier
369
+
370
+ inputs: Environment variables for task execution (keys must start with ANCHOR\\__)
371
+
372
+ override_browser_configuration: Override browser configuration for this execution
373
+
374
+ session_id: Optional existing session ID to use
375
+
376
+ task_session_id: Optional task-specific session ID
377
+
378
+ version: Version to run (draft, latest, or version number)
379
+
380
+ extra_headers: Send extra headers
381
+
382
+ extra_query: Add additional query parameters to the request
383
+
384
+ extra_body: Add additional JSON properties to the request
385
+
386
+ timeout: Override the client-level default timeout for this request, in seconds
387
+ """
388
+ return await self._post(
389
+ "/v1/task/run",
390
+ body=await async_maybe_transform(
391
+ {
392
+ "task_id": task_id,
393
+ "inputs": inputs,
394
+ "override_browser_configuration": override_browser_configuration,
395
+ "session_id": session_id,
396
+ "task_session_id": task_session_id,
397
+ "version": version,
398
+ },
399
+ run_execute_params.RunExecuteParams,
400
+ ),
401
+ options=make_request_options(
402
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
403
+ ),
404
+ cast_to=RunExecuteResponse,
405
+ )
406
+
296
407
 
297
408
  class TaskResourceWithRawResponse:
298
409
  def __init__(self, task: TaskResource) -> None:
@@ -304,10 +415,9 @@ class TaskResourceWithRawResponse:
304
415
  self.list = to_raw_response_wrapper(
305
416
  task.list,
306
417
  )
307
-
308
- @cached_property
309
- def run(self) -> RunResourceWithRawResponse:
310
- return RunResourceWithRawResponse(self._task.run)
418
+ self.run = to_raw_response_wrapper(
419
+ task.run,
420
+ )
311
421
 
312
422
 
313
423
  class AsyncTaskResourceWithRawResponse:
@@ -320,10 +430,9 @@ class AsyncTaskResourceWithRawResponse:
320
430
  self.list = async_to_raw_response_wrapper(
321
431
  task.list,
322
432
  )
323
-
324
- @cached_property
325
- def run(self) -> AsyncRunResourceWithRawResponse:
326
- return AsyncRunResourceWithRawResponse(self._task.run)
433
+ self.run = async_to_raw_response_wrapper(
434
+ task.run,
435
+ )
327
436
 
328
437
 
329
438
  class TaskResourceWithStreamingResponse:
@@ -336,10 +445,9 @@ class TaskResourceWithStreamingResponse:
336
445
  self.list = to_streamed_response_wrapper(
337
446
  task.list,
338
447
  )
339
-
340
- @cached_property
341
- def run(self) -> RunResourceWithStreamingResponse:
342
- return RunResourceWithStreamingResponse(self._task.run)
448
+ self.run = to_streamed_response_wrapper(
449
+ task.run,
450
+ )
343
451
 
344
452
 
345
453
  class AsyncTaskResourceWithStreamingResponse:
@@ -352,7 +460,6 @@ class AsyncTaskResourceWithStreamingResponse:
352
460
  self.list = async_to_streamed_response_wrapper(
353
461
  task.list,
354
462
  )
355
-
356
- @cached_property
357
- def run(self) -> AsyncRunResourceWithStreamingResponse:
358
- return AsyncRunResourceWithStreamingResponse(self._task.run)
463
+ self.run = async_to_streamed_response_wrapper(
464
+ task.run,
465
+ )