anchorbrowser 0.3.0__tar.gz → 0.3.2__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 (173) hide show
  1. anchorbrowser-0.3.2/.release-please-manifest.json +3 -0
  2. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/CHANGELOG.md +12 -0
  3. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/PKG-INFO +26 -22
  4. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/README.md +25 -21
  5. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/pyproject.toml +1 -1
  6. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_version.py +1 -1
  7. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/lib/agent.py +49 -9
  8. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/lib/browser.py +9 -0
  9. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/agent.py +132 -4
  10. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_client.py +20 -28
  11. anchorbrowser-0.3.0/.release-please-manifest.json +0 -3
  12. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/.gitignore +0 -0
  13. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/CONTRIBUTING.md +0 -0
  14. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/LICENSE +0 -0
  15. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/SECURITY.md +0 -0
  16. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/api.md +0 -0
  17. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/bin/check-release-environment +0 -0
  18. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/bin/publish-pypi +0 -0
  19. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/examples/.keep +0 -0
  20. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/noxfile.py +0 -0
  21. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/release-please-config.json +0 -0
  22. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/requirements-dev.lock +0 -0
  23. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/requirements.lock +0 -0
  24. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/__init__.py +0 -0
  25. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_base_client.py +0 -0
  26. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_client.py +0 -0
  27. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_compat.py +0 -0
  28. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_constants.py +0 -0
  29. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_exceptions.py +0 -0
  30. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_files.py +0 -0
  31. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_models.py +0 -0
  32. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_qs.py +0 -0
  33. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_resource.py +0 -0
  34. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_response.py +0 -0
  35. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_streaming.py +0 -0
  36. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_types.py +0 -0
  37. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/__init__.py +0 -0
  38. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_compat.py +0 -0
  39. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_datetime_parse.py +0 -0
  40. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_logs.py +0 -0
  41. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_proxy.py +0 -0
  42. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_reflection.py +0 -0
  43. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_resources_proxy.py +0 -0
  44. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_streams.py +0 -0
  45. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_sync.py +0 -0
  46. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_transform.py +0 -0
  47. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_typing.py +0 -0
  48. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/_utils/_utils.py +0 -0
  49. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/lib/.keep +0 -0
  50. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/py.typed +0 -0
  51. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/__init__.py +0 -0
  52. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/batch_sessions.py +0 -0
  53. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/browser.py +0 -0
  54. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/events.py +0 -0
  55. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/extensions.py +0 -0
  56. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/profiles.py +0 -0
  57. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/__init__.py +0 -0
  58. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/agent/__init__.py +0 -0
  59. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/agent/agent.py +0 -0
  60. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/agent/files.py +0 -0
  61. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/all.py +0 -0
  62. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/clipboard.py +0 -0
  63. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/keyboard.py +0 -0
  64. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/mouse.py +0 -0
  65. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/recordings/__init__.py +0 -0
  66. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/recordings/primary.py +0 -0
  67. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/recordings/recordings.py +0 -0
  68. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/sessions/sessions.py +0 -0
  69. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/task.py +0 -0
  70. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/resources/tools.py +0 -0
  71. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/__init__.py +0 -0
  72. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/batch_session_create_params.py +0 -0
  73. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/batch_session_create_response.py +0 -0
  74. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/batch_session_retrieve_response.py +0 -0
  75. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/event_signal_params.py +0 -0
  76. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/event_wait_for_params.py +0 -0
  77. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/event_wait_for_response.py +0 -0
  78. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/extension_delete_response.py +0 -0
  79. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/extension_list_response.py +0 -0
  80. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/extension_manifest.py +0 -0
  81. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/extension_retrieve_response.py +0 -0
  82. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/extension_upload_params.py +0 -0
  83. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/extension_upload_response.py +0 -0
  84. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/profile_create_params.py +0 -0
  85. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/profile_list_response.py +0 -0
  86. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/profile_retrieve_response.py +0 -0
  87. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_copy_response.py +0 -0
  88. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_create_params.py +0 -0
  89. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_create_response.py +0 -0
  90. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_drag_and_drop_params.py +0 -0
  91. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_drag_and_drop_response.py +0 -0
  92. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_goto_params.py +0 -0
  93. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_goto_response.py +0 -0
  94. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_list_pages_response.py +0 -0
  95. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_paste_params.py +0 -0
  96. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_paste_response.py +0 -0
  97. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_retrieve_downloads_response.py +0 -0
  98. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_retrieve_response.py +0 -0
  99. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_scroll_params.py +0 -0
  100. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_scroll_response.py +0 -0
  101. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_upload_file_params.py +0 -0
  102. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/session_upload_file_response.py +0 -0
  103. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/__init__.py +0 -0
  104. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/agent/__init__.py +0 -0
  105. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/agent/file_list_response.py +0 -0
  106. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/agent/file_upload_params.py +0 -0
  107. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/agent/file_upload_response.py +0 -0
  108. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/all_status_response.py +0 -0
  109. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/clipboard_get_response.py +0 -0
  110. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/clipboard_set_params.py +0 -0
  111. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/clipboard_set_response.py +0 -0
  112. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/keyboard_shortcut_params.py +0 -0
  113. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/keyboard_shortcut_response.py +0 -0
  114. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/keyboard_type_params.py +0 -0
  115. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/keyboard_type_response.py +0 -0
  116. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/mouse_click_params.py +0 -0
  117. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/mouse_click_response.py +0 -0
  118. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/mouse_double_click_params.py +0 -0
  119. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/mouse_double_click_response.py +0 -0
  120. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/mouse_move_params.py +0 -0
  121. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/mouse_move_response.py +0 -0
  122. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/recording_list_response.py +0 -0
  123. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/recording_pause_response.py +0 -0
  124. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/recording_resume_response.py +0 -0
  125. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/sessions/recordings/__init__.py +0 -0
  126. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/shared/__init__.py +0 -0
  127. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/shared/success_response.py +0 -0
  128. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/task/__init__.py +0 -0
  129. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/task/run_execute_params.py +0 -0
  130. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/task/run_execute_response.py +0 -0
  131. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/task_create_params.py +0 -0
  132. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/task_create_response.py +0 -0
  133. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/task_list_params.py +0 -0
  134. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/task_list_response.py +0 -0
  135. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/tool_fetch_webpage_params.py +0 -0
  136. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/tool_fetch_webpage_response.py +0 -0
  137. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/tool_perform_web_task_params.py +0 -0
  138. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/tool_perform_web_task_response.py +0 -0
  139. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/src/anchorbrowser/types/tool_screenshot_webpage_params.py +0 -0
  140. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/__init__.py +0 -0
  141. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/__init__.py +0 -0
  142. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/__init__.py +0 -0
  143. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/agent/test_files.py +0 -0
  144. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/recordings/__init__.py +0 -0
  145. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/recordings/test_primary.py +0 -0
  146. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/test_agent.py +0 -0
  147. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/test_all.py +0 -0
  148. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/test_clipboard.py +0 -0
  149. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/test_keyboard.py +0 -0
  150. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/test_mouse.py +0 -0
  151. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/sessions/test_recordings.py +0 -0
  152. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/test_batch_sessions.py +0 -0
  153. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/test_events.py +0 -0
  154. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/test_extensions.py +0 -0
  155. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/test_profiles.py +0 -0
  156. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/test_sessions.py +0 -0
  157. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/test_task.py +0 -0
  158. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/api_resources/test_tools.py +0 -0
  159. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/conftest.py +0 -0
  160. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/sample_file.txt +0 -0
  161. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_deepcopy.py +0 -0
  162. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_extract_files.py +0 -0
  163. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_files.py +0 -0
  164. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_models.py +0 -0
  165. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_qs.py +0 -0
  166. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_required_args.py +0 -0
  167. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_response.py +0 -0
  168. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_streaming.py +0 -0
  169. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_transform.py +0 -0
  170. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_utils/test_datetime_parse.py +0 -0
  171. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_utils/test_proxy.py +0 -0
  172. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/test_utils/test_typing.py +0 -0
  173. {anchorbrowser-0.3.0 → anchorbrowser-0.3.2}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.3.2"
3
+ }
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.2 (2025-10-27)
4
+
5
+ Full Changelog: [v0.3.1...v0.3.2](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/compare/v0.3.1...v0.3.2)
6
+
7
+ ## 0.3.1 (2025-10-26)
8
+
9
+ Full Changelog: [v0.3.0...v0.3.1](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/compare/v0.3.0...v0.3.1)
10
+
11
+ ### Features
12
+
13
+ * **api:** manual updates ([ab2e49e](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/ab2e49eeb383bef056d6255e30503363fa87869e))
14
+
3
15
  ## 0.3.0 (2025-10-21)
4
16
 
5
17
  Full Changelog: [v0.2.0...v0.3.0](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/compare/v0.2.0...v0.3.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: anchorbrowser
3
- Version: 0.3.0
3
+ Version: 0.3.2
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.3.0"
3
+ version = "0.3.2"
4
4
  description = "The official Python library for the anchorbrowser API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -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.3.0" # x-release-please-version
4
+ __version__ = "0.3.2" # x-release-please-version
@@ -11,18 +11,58 @@ class AgentTaskParams(TypedDict, total=False):
11
11
  url: Optional[str]
12
12
  output_schema: Optional[Dict[str, Any]]
13
13
  on_agent_step: Optional[Callable[[str], None]]
14
-
15
-
16
- def create_task_payload(prompt: str, output_schema: Optional[Dict[str, Any]] = None) -> str:
14
+ agent: Optional[str]
15
+ highlight_elements: Optional[bool]
16
+ model: Optional[str]
17
+ provider: Optional[str]
18
+ detect_elements: Optional[bool]
19
+ extended_system_message: Optional[str]
20
+ human_intervention: Optional[bool]
21
+ max_steps: Optional[int]
22
+ secret_values: Optional[Dict[str, Any]]
23
+
24
+
25
+ def create_task_payload(
26
+ prompt: str,
27
+ output_schema: Optional[Dict[str, Any]] = None,
28
+ agent: Optional[str] = None,
29
+ highlight_elements: Optional[bool] = None,
30
+ model: Optional[str] = None,
31
+ provider: Optional[str] = None,
32
+ detect_elements: Optional[bool] = None,
33
+ extended_system_message: Optional[str] = None,
34
+ human_intervention: Optional[bool] = None,
35
+ max_steps: Optional[int] = None,
36
+ secret_values: Optional[Dict[str, Any]] = None,
37
+ ) -> str:
17
38
  if not prompt or prompt.strip() == "":
18
39
  raise ValueError("Prompt cannot be empty")
19
40
 
20
- return json.dumps(
21
- {
22
- "prompt": prompt,
23
- "output_schema": output_schema,
24
- }
25
- )
41
+ payload: Dict[str, Any] = {
42
+ "prompt": prompt,
43
+ "output_schema": output_schema,
44
+ }
45
+
46
+ if agent is not None:
47
+ payload["agent"] = agent
48
+ if highlight_elements is not None:
49
+ payload["highlight_elements"] = highlight_elements
50
+ if model is not None:
51
+ payload["model"] = model
52
+ if provider is not None:
53
+ payload["provider"] = provider
54
+ if detect_elements is not None:
55
+ payload["detect_elements"] = detect_elements
56
+ if extended_system_message is not None:
57
+ payload["extended_system_message"] = extended_system_message
58
+ if human_intervention is not None:
59
+ payload["human_intervention"] = human_intervention
60
+ if max_steps is not None:
61
+ payload["max_steps"] = max_steps
62
+ if secret_values is not None:
63
+ payload["secret_values"] = secret_values
64
+
65
+ return json.dumps(payload)
26
66
 
27
67
 
28
68
  def on_agent_step_sync(on_agent_step: Callable[[str], None], browser_setup: BrowserSetup) -> Future[None]:
@@ -178,6 +178,15 @@ class AgentTaskParams(TypedDict, total=False):
178
178
  url: Optional[str]
179
179
  output_schema: Optional[Dict[str, Any]]
180
180
  on_agent_step: Optional[Callable[[str], None]]
181
+ agent: Optional[str]
182
+ highlight_elements: Optional[bool]
183
+ model: Optional[str]
184
+ provider: Optional[str]
185
+ detect_elements: Optional[bool]
186
+ extended_system_message: Optional[str]
187
+ human_intervention: Optional[bool]
188
+ max_steps: Optional[int]
189
+ secret_values: Optional[Dict[str, Any]]
181
190
 
182
191
 
183
192
  class BrowserTaskResponse(TypedDict):
@@ -72,15 +72,47 @@ class AgentResource(SyncAPIResource):
72
72
  api_key=self._client.api_key,
73
73
  ) as browser_setup:
74
74
  output_schema = None
75
+ url = None
76
+ agent = None
77
+ highlight_elements = None
78
+ model = None
79
+ provider = None
80
+ detect_elements = None
81
+ extended_system_message = None
82
+ human_intervention = None
83
+ max_steps = None
84
+ secret_values = None
75
85
  if task_options:
76
86
  output_schema = task_options.get("output_schema")
77
87
  url = task_options.get("url")
88
+ agent = task_options.get("agent")
89
+ highlight_elements = task_options.get("highlight_elements")
90
+ model = task_options.get("model")
91
+ provider = task_options.get("provider")
92
+ detect_elements = task_options.get("detect_elements")
93
+ extended_system_message = task_options.get("extended_system_message")
94
+ human_intervention = task_options.get("human_intervention")
95
+ max_steps = task_options.get("max_steps")
96
+ secret_values = task_options.get("secret_values")
97
+
78
98
  if url:
79
99
  browser_setup.page.goto(url)
80
100
  on_agent_step = task_options.get("on_agent_step")
81
101
  if on_agent_step:
82
102
  on_agent_step_sync(on_agent_step, browser_setup)
83
- task_payload = create_task_payload(prompt, output_schema)
103
+ task_payload = create_task_payload(
104
+ prompt,
105
+ output_schema=output_schema,
106
+ agent=agent,
107
+ highlight_elements=highlight_elements,
108
+ model=model,
109
+ provider=provider,
110
+ detect_elements=detect_elements,
111
+ extended_system_message=extended_system_message,
112
+ human_intervention=human_intervention,
113
+ max_steps=max_steps,
114
+ secret_values=secret_values,
115
+ )
84
116
  task_result = str(browser_setup.ai.evaluate(task_payload))
85
117
  return task_result
86
118
 
@@ -121,15 +153,47 @@ class AgentResource(SyncAPIResource):
121
153
  api_key=self._client.api_key,
122
154
  ) as browser_setup:
123
155
  output_schema = None
156
+ url = None
157
+ agent = None
158
+ highlight_elements = None
159
+ model = None
160
+ provider = None
161
+ detect_elements = None
162
+ extended_system_message = None
163
+ human_intervention = None
164
+ max_steps = None
165
+ secret_values = None
124
166
  if task_options:
125
167
  output_schema = task_options.get("output_schema")
126
168
  url = task_options.get("url")
169
+ agent = task_options.get("agent")
170
+ highlight_elements = task_options.get("highlight_elements")
171
+ model = task_options.get("model")
172
+ provider = task_options.get("provider")
173
+ detect_elements = task_options.get("detect_elements")
174
+ extended_system_message = task_options.get("extended_system_message")
175
+ human_intervention = task_options.get("human_intervention")
176
+ max_steps = task_options.get("max_steps")
177
+ secret_values = task_options.get("secret_values")
178
+
127
179
  if url:
128
180
  browser_setup.page.goto(url)
129
181
  on_agent_step = task_options.get("on_agent_step")
130
182
  if on_agent_step:
131
183
  on_agent_step_sync(on_agent_step, browser_setup)
132
- task_payload = create_task_payload(prompt, output_schema)
184
+ task_payload = create_task_payload(
185
+ prompt,
186
+ output_schema=output_schema,
187
+ agent=agent,
188
+ highlight_elements=highlight_elements,
189
+ model=model,
190
+ provider=provider,
191
+ detect_elements=detect_elements,
192
+ extended_system_message=extended_system_message,
193
+ human_intervention=human_intervention,
194
+ max_steps=max_steps,
195
+ secret_values=secret_values,
196
+ )
133
197
  task_result = str(browser_setup.ai.evaluate(task_payload))
134
198
  return BrowserTaskResponse(
135
199
  session_id=session.data.id,
@@ -191,15 +255,47 @@ class AsyncAgentResource(AsyncAPIResource):
191
255
 
192
256
  async with browser_setup:
193
257
  output_schema = None
258
+ url = None
259
+ agent = None
260
+ highlight_elements = None
261
+ model = None
262
+ provider = None
263
+ detect_elements = None
264
+ extended_system_message = None
265
+ human_intervention = None
266
+ max_steps = None
267
+ secret_values = None
194
268
  if task_options:
195
269
  output_schema = task_options.get("output_schema")
196
270
  url = task_options.get("url")
271
+ agent = task_options.get("agent")
272
+ highlight_elements = task_options.get("highlight_elements")
273
+ model = task_options.get("model")
274
+ provider = task_options.get("provider")
275
+ detect_elements = task_options.get("detect_elements")
276
+ extended_system_message = task_options.get("extended_system_message")
277
+ human_intervention = task_options.get("human_intervention")
278
+ max_steps = task_options.get("max_steps")
279
+ secret_values = task_options.get("secret_values")
280
+
197
281
  if url:
198
282
  await (await browser_setup.async_page).goto(url)
199
283
  on_agent_step = task_options.get("on_agent_step")
200
284
  if on_agent_step:
201
285
  on_agent_step_async(on_agent_step, browser_setup)
202
- task_payload = create_task_payload(prompt, output_schema)
286
+ task_payload = create_task_payload(
287
+ prompt,
288
+ output_schema=output_schema,
289
+ agent=agent,
290
+ highlight_elements=highlight_elements,
291
+ model=model,
292
+ provider=provider,
293
+ detect_elements=detect_elements,
294
+ extended_system_message=extended_system_message,
295
+ human_intervention=human_intervention,
296
+ max_steps=max_steps,
297
+ secret_values=secret_values,
298
+ )
203
299
  task_result = await (await browser_setup.async_ai).evaluate(task_payload)
204
300
  return str(task_result)
205
301
 
@@ -240,15 +336,47 @@ class AsyncAgentResource(AsyncAPIResource):
240
336
  api_key=self._client.api_key,
241
337
  ) as browser_setup:
242
338
  output_schema = None
339
+ url = None
340
+ agent = None
341
+ highlight_elements = None
342
+ model = None
343
+ provider = None
344
+ detect_elements = None
345
+ extended_system_message = None
346
+ human_intervention = None
347
+ max_steps = None
348
+ secret_values = None
243
349
  if task_options:
244
350
  output_schema = task_options.get("output_schema")
245
351
  url = task_options.get("url")
352
+ agent = task_options.get("agent")
353
+ highlight_elements = task_options.get("highlight_elements")
354
+ model = task_options.get("model")
355
+ provider = task_options.get("provider")
356
+ detect_elements = task_options.get("detect_elements")
357
+ extended_system_message = task_options.get("extended_system_message")
358
+ human_intervention = task_options.get("human_intervention")
359
+ max_steps = task_options.get("max_steps")
360
+ secret_values = task_options.get("secret_values")
361
+
246
362
  if url:
247
363
  await (await browser_setup.async_page).goto(url)
248
364
  on_agent_step = task_options.get("on_agent_step")
249
365
  if on_agent_step:
250
366
  on_agent_step_async(on_agent_step, browser_setup)
251
- task_payload = create_task_payload(prompt, output_schema)
367
+ task_payload = create_task_payload(
368
+ prompt,
369
+ output_schema=output_schema,
370
+ agent=agent,
371
+ highlight_elements=highlight_elements,
372
+ model=model,
373
+ provider=provider,
374
+ detect_elements=detect_elements,
375
+ extended_system_message=extended_system_message,
376
+ human_intervention=human_intervention,
377
+ max_steps=max_steps,
378
+ secret_values=secret_values,
379
+ )
252
380
  task_result = await (await browser_setup.async_ai).evaluate(task_payload)
253
381
  return BrowserTaskResponse(
254
382
  session_id=session.data.id,
@@ -724,20 +724,20 @@ class TestAnchorbrowser:
724
724
  @mock.patch("anchorbrowser._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
725
725
  @pytest.mark.respx(base_url=base_url)
726
726
  def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: Anchorbrowser) -> None:
727
- respx_mock.post("/v1/profiles").mock(side_effect=httpx.TimeoutException("Test timeout error"))
727
+ respx_mock.post("/v1/sessions").mock(side_effect=httpx.TimeoutException("Test timeout error"))
728
728
 
729
729
  with pytest.raises(APITimeoutError):
730
- client.profiles.with_streaming_response.create(name="name").__enter__()
730
+ client.sessions.with_streaming_response.create().__enter__()
731
731
 
732
732
  assert _get_open_connections(self.client) == 0
733
733
 
734
734
  @mock.patch("anchorbrowser._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
735
735
  @pytest.mark.respx(base_url=base_url)
736
736
  def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: Anchorbrowser) -> None:
737
- respx_mock.post("/v1/profiles").mock(return_value=httpx.Response(500))
737
+ respx_mock.post("/v1/sessions").mock(return_value=httpx.Response(500))
738
738
 
739
739
  with pytest.raises(APIStatusError):
740
- client.profiles.with_streaming_response.create(name="name").__enter__()
740
+ client.sessions.with_streaming_response.create().__enter__()
741
741
  assert _get_open_connections(self.client) == 0
742
742
 
743
743
  @pytest.mark.parametrize("failures_before_success", [0, 2, 4])
@@ -764,9 +764,9 @@ class TestAnchorbrowser:
764
764
  return httpx.Response(500)
765
765
  return httpx.Response(200)
766
766
 
767
- respx_mock.post("/v1/profiles").mock(side_effect=retry_handler)
767
+ respx_mock.post("/v1/sessions").mock(side_effect=retry_handler)
768
768
 
769
- response = client.profiles.with_raw_response.create(name="name")
769
+ response = client.sessions.with_raw_response.create()
770
770
 
771
771
  assert response.retries_taken == failures_before_success
772
772
  assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
@@ -788,11 +788,9 @@ class TestAnchorbrowser:
788
788
  return httpx.Response(500)
789
789
  return httpx.Response(200)
790
790
 
791
- respx_mock.post("/v1/profiles").mock(side_effect=retry_handler)
791
+ respx_mock.post("/v1/sessions").mock(side_effect=retry_handler)
792
792
 
793
- response = client.profiles.with_raw_response.create(
794
- name="name", extra_headers={"x-stainless-retry-count": Omit()}
795
- )
793
+ response = client.sessions.with_raw_response.create(extra_headers={"x-stainless-retry-count": Omit()})
796
794
 
797
795
  assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
798
796
 
@@ -813,11 +811,9 @@ class TestAnchorbrowser:
813
811
  return httpx.Response(500)
814
812
  return httpx.Response(200)
815
813
 
816
- respx_mock.post("/v1/profiles").mock(side_effect=retry_handler)
814
+ respx_mock.post("/v1/sessions").mock(side_effect=retry_handler)
817
815
 
818
- response = client.profiles.with_raw_response.create(
819
- name="name", extra_headers={"x-stainless-retry-count": "42"}
820
- )
816
+ response = client.sessions.with_raw_response.create(extra_headers={"x-stainless-retry-count": "42"})
821
817
 
822
818
  assert response.http_request.headers.get("x-stainless-retry-count") == "42"
823
819
 
@@ -1545,10 +1541,10 @@ class TestAsyncAnchorbrowser:
1545
1541
  async def test_retrying_timeout_errors_doesnt_leak(
1546
1542
  self, respx_mock: MockRouter, async_client: AsyncAnchorbrowser
1547
1543
  ) -> None:
1548
- respx_mock.post("/v1/profiles").mock(side_effect=httpx.TimeoutException("Test timeout error"))
1544
+ respx_mock.post("/v1/sessions").mock(side_effect=httpx.TimeoutException("Test timeout error"))
1549
1545
 
1550
1546
  with pytest.raises(APITimeoutError):
1551
- await async_client.profiles.with_streaming_response.create(name="name").__aenter__()
1547
+ await async_client.sessions.with_streaming_response.create().__aenter__()
1552
1548
 
1553
1549
  assert _get_open_connections(self.client) == 0
1554
1550
 
@@ -1557,10 +1553,10 @@ class TestAsyncAnchorbrowser:
1557
1553
  async def test_retrying_status_errors_doesnt_leak(
1558
1554
  self, respx_mock: MockRouter, async_client: AsyncAnchorbrowser
1559
1555
  ) -> None:
1560
- respx_mock.post("/v1/profiles").mock(return_value=httpx.Response(500))
1556
+ respx_mock.post("/v1/sessions").mock(return_value=httpx.Response(500))
1561
1557
 
1562
1558
  with pytest.raises(APIStatusError):
1563
- await async_client.profiles.with_streaming_response.create(name="name").__aenter__()
1559
+ await async_client.sessions.with_streaming_response.create().__aenter__()
1564
1560
  assert _get_open_connections(self.client) == 0
1565
1561
 
1566
1562
  @pytest.mark.parametrize("failures_before_success", [0, 2, 4])
@@ -1588,9 +1584,9 @@ class TestAsyncAnchorbrowser:
1588
1584
  return httpx.Response(500)
1589
1585
  return httpx.Response(200)
1590
1586
 
1591
- respx_mock.post("/v1/profiles").mock(side_effect=retry_handler)
1587
+ respx_mock.post("/v1/sessions").mock(side_effect=retry_handler)
1592
1588
 
1593
- response = await client.profiles.with_raw_response.create(name="name")
1589
+ response = await client.sessions.with_raw_response.create()
1594
1590
 
1595
1591
  assert response.retries_taken == failures_before_success
1596
1592
  assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
@@ -1613,11 +1609,9 @@ class TestAsyncAnchorbrowser:
1613
1609
  return httpx.Response(500)
1614
1610
  return httpx.Response(200)
1615
1611
 
1616
- respx_mock.post("/v1/profiles").mock(side_effect=retry_handler)
1612
+ respx_mock.post("/v1/sessions").mock(side_effect=retry_handler)
1617
1613
 
1618
- response = await client.profiles.with_raw_response.create(
1619
- name="name", extra_headers={"x-stainless-retry-count": Omit()}
1620
- )
1614
+ response = await client.sessions.with_raw_response.create(extra_headers={"x-stainless-retry-count": Omit()})
1621
1615
 
1622
1616
  assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
1623
1617
 
@@ -1639,11 +1633,9 @@ class TestAsyncAnchorbrowser:
1639
1633
  return httpx.Response(500)
1640
1634
  return httpx.Response(200)
1641
1635
 
1642
- respx_mock.post("/v1/profiles").mock(side_effect=retry_handler)
1636
+ respx_mock.post("/v1/sessions").mock(side_effect=retry_handler)
1643
1637
 
1644
- response = await client.profiles.with_raw_response.create(
1645
- name="name", extra_headers={"x-stainless-retry-count": "42"}
1646
- )
1638
+ response = await client.sessions.with_raw_response.create(extra_headers={"x-stainless-retry-count": "42"})
1647
1639
 
1648
1640
  assert response.http_request.headers.get("x-stainless-retry-count") == "42"
1649
1641