kernel 0.52.0__tar.gz → 0.53.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.
Files changed (277) hide show
  1. kernel-0.53.0/.release-please-manifest.json +3 -0
  2. {kernel-0.52.0 → kernel-0.53.0}/CHANGELOG.md +29 -0
  3. {kernel-0.52.0 → kernel-0.53.0}/PKG-INFO +1 -1
  4. {kernel-0.52.0 → kernel-0.53.0}/pyproject.toml +2 -2
  5. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_files.py +1 -1
  6. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_models.py +80 -0
  7. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_version.py +1 -1
  8. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/auth/connections.py +40 -2
  9. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browser_pools.py +36 -4
  10. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/browsers.py +16 -0
  11. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/credentials.py +2 -2
  12. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/extensions.py +2 -2
  13. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/profiles.py +2 -2
  14. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/projects/projects.py +8 -0
  15. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/connection_create_params.py +6 -0
  16. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/connection_follow_response.py +19 -9
  17. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/connection_login_params.py +6 -0
  18. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/connection_update_params.py +3 -0
  19. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/managed_auth.py +25 -9
  20. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_create_params.py +9 -0
  21. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_create_response.py +6 -0
  22. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_list_response.py +6 -0
  23. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool.py +10 -1
  24. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool_acquire_response.py +6 -0
  25. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool_create_params.py +10 -1
  26. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool_update_params.py +10 -1
  27. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_retrieve_response.py +6 -0
  28. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_update_response.py +6 -0
  29. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential.py +1 -1
  30. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_create_params.py +1 -1
  31. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/extension_list_response.py +1 -1
  32. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/extension_upload_params.py +1 -1
  33. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/extension_upload_response.py +1 -1
  34. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_list_browsers_response.py +6 -0
  35. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/profile_create_params.py +1 -1
  36. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/project_list_params.py +3 -0
  37. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/auth/test_connections.py +6 -0
  38. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_browser_pools.py +4 -0
  39. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_browsers.py +2 -0
  40. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_projects.py +2 -0
  41. {kernel-0.52.0 → kernel-0.53.0}/tests/test_models.py +57 -3
  42. kernel-0.52.0/.release-please-manifest.json +0 -3
  43. {kernel-0.52.0 → kernel-0.53.0}/.gitignore +0 -0
  44. {kernel-0.52.0 → kernel-0.53.0}/CONTRIBUTING.md +0 -0
  45. {kernel-0.52.0 → kernel-0.53.0}/LICENSE +0 -0
  46. {kernel-0.52.0 → kernel-0.53.0}/README.md +0 -0
  47. {kernel-0.52.0 → kernel-0.53.0}/SECURITY.md +0 -0
  48. {kernel-0.52.0 → kernel-0.53.0}/api.md +0 -0
  49. {kernel-0.52.0 → kernel-0.53.0}/bin/check-release-environment +0 -0
  50. {kernel-0.52.0 → kernel-0.53.0}/bin/publish-pypi +0 -0
  51. {kernel-0.52.0 → kernel-0.53.0}/examples/.keep +0 -0
  52. {kernel-0.52.0 → kernel-0.53.0}/examples/browser_routing.py +0 -0
  53. {kernel-0.52.0 → kernel-0.53.0}/noxfile.py +0 -0
  54. {kernel-0.52.0 → kernel-0.53.0}/release-please-config.json +0 -0
  55. {kernel-0.52.0 → kernel-0.53.0}/requirements-dev.lock +0 -0
  56. {kernel-0.52.0 → kernel-0.53.0}/requirements.lock +0 -0
  57. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/__init__.py +0 -0
  58. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_base_client.py +0 -0
  59. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_client.py +0 -0
  60. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_compat.py +0 -0
  61. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_constants.py +0 -0
  62. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_exceptions.py +0 -0
  63. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_qs.py +0 -0
  64. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_resource.py +0 -0
  65. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_response.py +0 -0
  66. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_streaming.py +0 -0
  67. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_types.py +0 -0
  68. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/__init__.py +0 -0
  69. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_compat.py +0 -0
  70. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_datetime_parse.py +0 -0
  71. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_json.py +0 -0
  72. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_logs.py +0 -0
  73. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_path.py +0 -0
  74. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_proxy.py +0 -0
  75. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_reflection.py +0 -0
  76. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_resources_proxy.py +0 -0
  77. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_streams.py +0 -0
  78. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_sync.py +0 -0
  79. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_transform.py +0 -0
  80. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_typing.py +0 -0
  81. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/_utils/_utils.py +0 -0
  82. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/app_framework.py +0 -0
  83. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/lib/.keep +0 -0
  84. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/lib/browser_routing/__init__.py +0 -0
  85. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/lib/browser_routing/raw_http.py +0 -0
  86. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/lib/browser_routing/routing.py +0 -0
  87. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/lib/browser_routing/util.py +0 -0
  88. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/pagination.py +0 -0
  89. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/py.typed +0 -0
  90. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/__init__.py +0 -0
  91. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/apps.py +0 -0
  92. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/auth/__init__.py +0 -0
  93. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/auth/auth.py +0 -0
  94. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/__init__.py +0 -0
  95. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/computer.py +0 -0
  96. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
  97. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
  98. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
  99. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/logs.py +0 -0
  100. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/playwright.py +0 -0
  101. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/process.py +0 -0
  102. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/browsers/replays.py +0 -0
  103. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/credential_providers.py +0 -0
  104. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/deployments.py +0 -0
  105. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/invocations.py +0 -0
  106. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/projects/__init__.py +0 -0
  107. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/projects/limits.py +0 -0
  108. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/resources/proxies.py +0 -0
  109. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/__init__.py +0 -0
  110. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/app_list_params.py +0 -0
  111. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/app_list_response.py +0 -0
  112. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/__init__.py +0 -0
  113. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/connection_list_params.py +0 -0
  114. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
  115. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/login_response.py +0 -0
  116. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
  117. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_curl_params.py +0 -0
  118. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_curl_response.py +0 -0
  119. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_delete_params.py +0 -0
  120. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_list_params.py +0 -0
  121. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
  122. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_persistence.py +0 -0
  123. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_persistence_param.py +0 -0
  124. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
  125. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
  126. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool_list_response.py +0 -0
  127. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool_ref.py +0 -0
  128. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_pool_release_params.py +0 -0
  129. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_retrieve_params.py +0 -0
  130. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_update_params.py +0 -0
  131. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browser_usage.py +0 -0
  132. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/__init__.py +0 -0
  133. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
  134. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
  135. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
  136. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
  137. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
  138. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
  139. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
  140. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
  141. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
  142. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
  143. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
  144. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
  145. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
  146. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
  147. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
  148. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
  149. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
  150. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
  151. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
  152. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
  153. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
  154. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_move_params.py +0 -0
  155. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
  156. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
  157. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
  158. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
  159. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
  160. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
  161. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
  162. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
  163. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
  164. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
  165. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
  166. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
  167. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
  168. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
  169. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
  170. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
  171. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
  172. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
  173. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
  174. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
  175. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_status_response.py +0 -0
  176. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
  177. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
  178. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
  179. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
  180. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
  181. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
  182. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_list_params.py +0 -0
  183. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_provider.py +0 -0
  184. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_provider_create_params.py +0 -0
  185. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_provider_item.py +0 -0
  186. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
  187. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_provider_list_response.py +0 -0
  188. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_provider_test_result.py +0 -0
  189. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_provider_update_params.py +0 -0
  190. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_totp_code_response.py +0 -0
  191. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/credential_update_params.py +0 -0
  192. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/deployment_create_params.py +0 -0
  193. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/deployment_create_response.py +0 -0
  194. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/deployment_follow_params.py +0 -0
  195. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/deployment_follow_response.py +0 -0
  196. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/deployment_list_params.py +0 -0
  197. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/deployment_list_response.py +0 -0
  198. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
  199. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/deployment_state_event.py +0 -0
  200. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
  201. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_create_params.py +0 -0
  202. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_create_response.py +0 -0
  203. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_follow_params.py +0 -0
  204. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_follow_response.py +0 -0
  205. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_list_params.py +0 -0
  206. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_list_response.py +0 -0
  207. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
  208. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_state_event.py +0 -0
  209. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_update_params.py +0 -0
  210. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/invocation_update_response.py +0 -0
  211. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/profile.py +0 -0
  212. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/profile_list_params.py +0 -0
  213. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/project.py +0 -0
  214. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/project_create_params.py +0 -0
  215. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/project_update_params.py +0 -0
  216. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/projects/__init__.py +0 -0
  217. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/projects/limit_update_params.py +0 -0
  218. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/projects/project_limits.py +0 -0
  219. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/proxy_check_params.py +0 -0
  220. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/proxy_check_response.py +0 -0
  221. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/proxy_create_params.py +0 -0
  222. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/proxy_create_response.py +0 -0
  223. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/proxy_list_response.py +0 -0
  224. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
  225. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/__init__.py +0 -0
  226. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/app_action.py +0 -0
  227. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/browser_extension.py +0 -0
  228. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/browser_profile.py +0 -0
  229. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/browser_viewport.py +0 -0
  230. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/error_detail.py +0 -0
  231. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/error_event.py +0 -0
  232. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/error_model.py +0 -0
  233. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
  234. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared/log_event.py +0 -0
  235. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared_params/__init__.py +0 -0
  236. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
  237. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
  238. {kernel-0.52.0 → kernel-0.53.0}/src/kernel/types/shared_params/browser_viewport.py +0 -0
  239. {kernel-0.52.0 → kernel-0.53.0}/tests/__init__.py +0 -0
  240. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/__init__.py +0 -0
  241. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/auth/__init__.py +0 -0
  242. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/__init__.py +0 -0
  243. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
  244. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
  245. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/test_computer.py +0 -0
  246. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/test_fs.py +0 -0
  247. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/test_logs.py +0 -0
  248. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/test_playwright.py +0 -0
  249. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/test_process.py +0 -0
  250. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/browsers/test_replays.py +0 -0
  251. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/projects/__init__.py +0 -0
  252. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/projects/test_limits.py +0 -0
  253. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_apps.py +0 -0
  254. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_credential_providers.py +0 -0
  255. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_credentials.py +0 -0
  256. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_deployments.py +0 -0
  257. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_extensions.py +0 -0
  258. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_invocations.py +0 -0
  259. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_profiles.py +0 -0
  260. {kernel-0.52.0 → kernel-0.53.0}/tests/api_resources/test_proxies.py +0 -0
  261. {kernel-0.52.0 → kernel-0.53.0}/tests/conftest.py +0 -0
  262. {kernel-0.52.0 → kernel-0.53.0}/tests/sample_file.txt +0 -0
  263. {kernel-0.52.0 → kernel-0.53.0}/tests/test_browser_routing.py +0 -0
  264. {kernel-0.52.0 → kernel-0.53.0}/tests/test_client.py +0 -0
  265. {kernel-0.52.0 → kernel-0.53.0}/tests/test_extract_files.py +0 -0
  266. {kernel-0.52.0 → kernel-0.53.0}/tests/test_files.py +0 -0
  267. {kernel-0.52.0 → kernel-0.53.0}/tests/test_qs.py +0 -0
  268. {kernel-0.52.0 → kernel-0.53.0}/tests/test_required_args.py +0 -0
  269. {kernel-0.52.0 → kernel-0.53.0}/tests/test_response.py +0 -0
  270. {kernel-0.52.0 → kernel-0.53.0}/tests/test_streaming.py +0 -0
  271. {kernel-0.52.0 → kernel-0.53.0}/tests/test_transform.py +0 -0
  272. {kernel-0.52.0 → kernel-0.53.0}/tests/test_utils/test_datetime_parse.py +0 -0
  273. {kernel-0.52.0 → kernel-0.53.0}/tests/test_utils/test_json.py +0 -0
  274. {kernel-0.52.0 → kernel-0.53.0}/tests/test_utils/test_path.py +0 -0
  275. {kernel-0.52.0 → kernel-0.53.0}/tests/test_utils/test_proxy.py +0 -0
  276. {kernel-0.52.0 → kernel-0.53.0}/tests/test_utils/test_typing.py +0 -0
  277. {kernel-0.52.0 → kernel-0.53.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.53.0"
3
+ }
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.53.0 (2026-05-12)
4
+
5
+ Full Changelog: [v0.52.0...v0.53.0](https://github.com/kernel/kernel-python-sdk/compare/v0.52.0...v0.53.0)
6
+
7
+ ### Features
8
+
9
+ * Add 'switch' MFA option type for generic method-switcher links ([82ae224](https://github.com/kernel/kernel-python-sdk/commit/82ae224a85a22b16e48a26a8058cc992ef772cf2))
10
+ * Add opt-in record_session flag to managed auth ([53fea1c](https://github.com/kernel/kernel-python-sdk/commit/53fea1c26cd8de2b93944bb7625c401d05362b1c))
11
+ * **api:** server-side search on GET /projects ([cacb057](https://github.com/kernel/kernel-python-sdk/commit/cacb057a5d1d3bcb26b6df1f6fe83067f936d642))
12
+ * browser_pools: add start_url config (KERNEL-1217 PR 2) ([e3f0b8d](https://github.com/kernel/kernel-python-sdk/commit/e3f0b8db4b2d05140d112317315ba1e393f385cf))
13
+ * **internal/types:** support eagerly validating pydantic iterators ([b30bc1e](https://github.com/kernel/kernel-python-sdk/commit/b30bc1e0c3493f12a3499eb037f13561dfdcaedf))
14
+ * managed-auth: surface awaiting_external_action even when fallback actions exist ([fd4ffe4](https://github.com/kernel/kernel-python-sdk/commit/fd4ffe40e037e95e93f46b7773d6a5e468c7b8fd))
15
+ * Scope name uniqueness to project for profiles, session_pools, extensions, credentials ([c510a51](https://github.com/kernel/kernel-python-sdk/commit/c510a515b3c57846f0e681638167ba87b8ee15c3))
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * **client:** add missing f-string prefix in file type error message ([fb5340d](https://github.com/kernel/kernel-python-sdk/commit/fb5340dbf9ea49393d87b5760a2efaaf932c9442))
21
+
22
+
23
+ ### Chores
24
+
25
+ * **internal:** reformat pyproject.toml ([27c799b](https://github.com/kernel/kernel-python-sdk/commit/27c799be452cb66af59b79d24b3d5147a85b70f7))
26
+
27
+
28
+ ### Documentation
29
+
30
+ * clarify record_session description in OpenAPI spec ([3ac3fb8](https://github.com/kernel/kernel-python-sdk/commit/3ac3fb8e4e643c40addd3e85f8480d5821cecca7))
31
+
3
32
  ## 0.52.0 (2026-04-29)
4
33
 
5
34
  Full Changelog: [v0.51.0...v0.52.0](https://github.com/kernel/kernel-python-sdk/compare/v0.51.0...v0.52.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kernel
3
- Version: 0.52.0
3
+ Version: 0.53.0
4
4
  Summary: The official Python library for the kernel API
5
5
  Project-URL: Homepage, https://github.com/kernel/kernel-python-sdk
6
6
  Project-URL: Repository, https://github.com/kernel/kernel-python-sdk
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kernel"
3
- version = "0.52.0"
3
+ version = "0.53.0"
4
4
  description = "The official Python library for the kernel API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -168,7 +168,7 @@ show_error_codes = true
168
168
  #
169
169
  # We also exclude our `tests` as mypy doesn't always infer
170
170
  # types correctly and Pyright will still catch any type errors.
171
- exclude = ['src/kernel/_files.py', '_dev/.*.py', 'tests/.*']
171
+ exclude = ["src/kernel/_files.py", "_dev/.*.py", "tests/.*"]
172
172
 
173
173
  strict_equality = true
174
174
  implicit_reexport = true
@@ -99,7 +99,7 @@ async def async_to_httpx_files(files: RequestFiles | None) -> HttpxRequestFiles
99
99
  elif is_sequence_t(files):
100
100
  files = [(key, await _async_transform_file(file)) for key, file in files]
101
101
  else:
102
- raise TypeError("Unexpected file type input {type(files)}, expected mapping or sequence")
102
+ raise TypeError(f"Unexpected file type input {type(files)}, expected mapping or sequence")
103
103
 
104
104
  return files
105
105
 
@@ -25,7 +25,9 @@ from typing_extensions import (
25
25
  ClassVar,
26
26
  Protocol,
27
27
  Required,
28
+ Annotated,
28
29
  ParamSpec,
30
+ TypeAlias,
29
31
  TypedDict,
30
32
  TypeGuard,
31
33
  final,
@@ -79,7 +81,15 @@ from ._compat import (
79
81
  from ._constants import RAW_RESPONSE_HEADER
80
82
 
81
83
  if TYPE_CHECKING:
84
+ from pydantic import GetCoreSchemaHandler, ValidatorFunctionWrapHandler
85
+ from pydantic_core import CoreSchema, core_schema
82
86
  from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema
87
+ else:
88
+ try:
89
+ from pydantic_core import CoreSchema, core_schema
90
+ except ImportError:
91
+ CoreSchema = None
92
+ core_schema = None
83
93
 
84
94
  __all__ = ["BaseModel", "GenericModel"]
85
95
 
@@ -396,6 +406,76 @@ class BaseModel(pydantic.BaseModel):
396
406
  )
397
407
 
398
408
 
409
+ class _EagerIterable(list[_T], Generic[_T]):
410
+ """
411
+ Accepts any Iterable[T] input (including generators), consumes it
412
+ eagerly, and validates all items upfront.
413
+
414
+ Validation preserves the original container type where possible
415
+ (e.g. a set[T] stays a set[T]). Serialization (model_dump / JSON)
416
+ always emits a list — round-tripping through model_dump() will not
417
+ restore the original container type.
418
+ """
419
+
420
+ @classmethod
421
+ def __get_pydantic_core_schema__(
422
+ cls,
423
+ source_type: Any,
424
+ handler: GetCoreSchemaHandler,
425
+ ) -> CoreSchema:
426
+ (item_type,) = get_args(source_type) or (Any,)
427
+ item_schema: CoreSchema = handler.generate_schema(item_type)
428
+ list_of_items_schema: CoreSchema = core_schema.list_schema(item_schema)
429
+
430
+ return core_schema.no_info_wrap_validator_function(
431
+ cls._validate,
432
+ list_of_items_schema,
433
+ serialization=core_schema.plain_serializer_function_ser_schema(
434
+ cls._serialize,
435
+ info_arg=False,
436
+ ),
437
+ )
438
+
439
+ @staticmethod
440
+ def _validate(v: Iterable[_T], handler: "ValidatorFunctionWrapHandler") -> Any:
441
+ original_type: type[Any] = type(v)
442
+
443
+ # Normalize to list so list_schema can validate each item
444
+ if isinstance(v, list):
445
+ items: list[_T] = v
446
+ else:
447
+ try:
448
+ items = list(v)
449
+ except TypeError as e:
450
+ raise TypeError("Value is not iterable") from e
451
+
452
+ # Validate items against the inner schema
453
+ validated: list[_T] = handler(items)
454
+
455
+ # Reconstruct original container type
456
+ if original_type is list:
457
+ return validated
458
+ # str(list) produces the list's repr, not a string built from items,
459
+ # so skip reconstruction for str and its subclasses.
460
+ if issubclass(original_type, str):
461
+ return validated
462
+ try:
463
+ return original_type(validated)
464
+ except (TypeError, ValueError):
465
+ # If the type cannot be reconstructed, just return the validated list
466
+ return validated
467
+
468
+ @staticmethod
469
+ def _serialize(v: Iterable[_T]) -> list[_T]:
470
+ """Always serialize as a list so Pydantic's JSON encoder is happy."""
471
+ if isinstance(v, list):
472
+ return v
473
+ return list(v)
474
+
475
+
476
+ EagerIterable: TypeAlias = Annotated[Iterable[_T], _EagerIterable]
477
+
478
+
399
479
  def _construct_field(value: object, field: FieldInfo, key: str) -> object:
400
480
  if value is None:
401
481
  return field_get_default(field)
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "kernel"
4
- __version__ = "0.52.0" # x-release-please-version
4
+ __version__ = "0.53.0" # x-release-please-version
@@ -66,6 +66,7 @@ class ConnectionsResource(SyncAPIResource):
66
66
  health_check_interval: int | Omit = omit,
67
67
  login_url: str | Omit = omit,
68
68
  proxy: connection_create_params.Proxy | Omit = omit,
69
+ record_session: bool | Omit = omit,
69
70
  save_credentials: bool | Omit = omit,
70
71
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
71
72
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -122,6 +123,9 @@ class ConnectionsResource(SyncAPIResource):
122
123
  proxy: Proxy selection. Provide either id or name. The proxy must belong to the
123
124
  caller's org.
124
125
 
126
+ record_session: Whether to record browser sessions for this connection by default. Useful for
127
+ debugging. Can be overridden per-login. Defaults to false.
128
+
125
129
  save_credentials: Whether to save credentials after every successful login. Defaults to true.
126
130
  One-time codes (TOTP, SMS, etc.) are not saved.
127
131
 
@@ -144,6 +148,7 @@ class ConnectionsResource(SyncAPIResource):
144
148
  "health_check_interval": health_check_interval,
145
149
  "login_url": login_url,
146
150
  "proxy": proxy,
151
+ "record_session": record_session,
147
152
  "save_credentials": save_credentials,
148
153
  },
149
154
  connection_create_params.ConnectionCreateParams,
@@ -198,6 +203,7 @@ class ConnectionsResource(SyncAPIResource):
198
203
  health_check_interval: int | Omit = omit,
199
204
  login_url: str | Omit = omit,
200
205
  proxy: connection_update_params.Proxy | Omit = omit,
206
+ record_session: bool | Omit = omit,
201
207
  save_credentials: bool | Omit = omit,
202
208
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
203
209
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -228,6 +234,8 @@ class ConnectionsResource(SyncAPIResource):
228
234
  proxy: Proxy selection. Provide either id or name. The proxy must belong to the
229
235
  caller's org.
230
236
 
237
+ record_session: Whether to record browser sessions for this connection by default
238
+
231
239
  save_credentials: Whether to save credentials after every successful login
232
240
 
233
241
  extra_headers: Send extra headers
@@ -249,6 +257,7 @@ class ConnectionsResource(SyncAPIResource):
249
257
  "health_check_interval": health_check_interval,
250
258
  "login_url": login_url,
251
259
  "proxy": proxy,
260
+ "record_session": record_session,
252
261
  "save_credentials": save_credentials,
253
262
  },
254
263
  connection_update_params.ConnectionUpdateParams,
@@ -398,6 +407,7 @@ class ConnectionsResource(SyncAPIResource):
398
407
  id: str,
399
408
  *,
400
409
  proxy: connection_login_params.Proxy | Omit = omit,
410
+ record_session: bool | Omit = omit,
401
411
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
402
412
  # The extra values given here take precedence over values defined on the client or passed to this method.
403
413
  extra_headers: Headers | None = None,
@@ -415,6 +425,9 @@ class ConnectionsResource(SyncAPIResource):
415
425
  proxy: Proxy selection. Provide either id or name. The proxy must belong to the
416
426
  caller's org.
417
427
 
428
+ record_session: Override the connection's default for recording this login's browser session.
429
+ When omitted, the connection's record_session default is used.
430
+
418
431
  extra_headers: Send extra headers
419
432
 
420
433
  extra_query: Add additional query parameters to the request
@@ -427,7 +440,13 @@ class ConnectionsResource(SyncAPIResource):
427
440
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
428
441
  return self._post(
429
442
  path_template("/auth/connections/{id}/login", id=id),
430
- body=maybe_transform({"proxy": proxy}, connection_login_params.ConnectionLoginParams),
443
+ body=maybe_transform(
444
+ {
445
+ "proxy": proxy,
446
+ "record_session": record_session,
447
+ },
448
+ connection_login_params.ConnectionLoginParams,
449
+ ),
431
450
  options=make_request_options(
432
451
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
433
452
  ),
@@ -529,6 +548,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
529
548
  health_check_interval: int | Omit = omit,
530
549
  login_url: str | Omit = omit,
531
550
  proxy: connection_create_params.Proxy | Omit = omit,
551
+ record_session: bool | Omit = omit,
532
552
  save_credentials: bool | Omit = omit,
533
553
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
534
554
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -585,6 +605,9 @@ class AsyncConnectionsResource(AsyncAPIResource):
585
605
  proxy: Proxy selection. Provide either id or name. The proxy must belong to the
586
606
  caller's org.
587
607
 
608
+ record_session: Whether to record browser sessions for this connection by default. Useful for
609
+ debugging. Can be overridden per-login. Defaults to false.
610
+
588
611
  save_credentials: Whether to save credentials after every successful login. Defaults to true.
589
612
  One-time codes (TOTP, SMS, etc.) are not saved.
590
613
 
@@ -607,6 +630,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
607
630
  "health_check_interval": health_check_interval,
608
631
  "login_url": login_url,
609
632
  "proxy": proxy,
633
+ "record_session": record_session,
610
634
  "save_credentials": save_credentials,
611
635
  },
612
636
  connection_create_params.ConnectionCreateParams,
@@ -661,6 +685,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
661
685
  health_check_interval: int | Omit = omit,
662
686
  login_url: str | Omit = omit,
663
687
  proxy: connection_update_params.Proxy | Omit = omit,
688
+ record_session: bool | Omit = omit,
664
689
  save_credentials: bool | Omit = omit,
665
690
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
666
691
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -691,6 +716,8 @@ class AsyncConnectionsResource(AsyncAPIResource):
691
716
  proxy: Proxy selection. Provide either id or name. The proxy must belong to the
692
717
  caller's org.
693
718
 
719
+ record_session: Whether to record browser sessions for this connection by default
720
+
694
721
  save_credentials: Whether to save credentials after every successful login
695
722
 
696
723
  extra_headers: Send extra headers
@@ -712,6 +739,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
712
739
  "health_check_interval": health_check_interval,
713
740
  "login_url": login_url,
714
741
  "proxy": proxy,
742
+ "record_session": record_session,
715
743
  "save_credentials": save_credentials,
716
744
  },
717
745
  connection_update_params.ConnectionUpdateParams,
@@ -861,6 +889,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
861
889
  id: str,
862
890
  *,
863
891
  proxy: connection_login_params.Proxy | Omit = omit,
892
+ record_session: bool | Omit = omit,
864
893
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
865
894
  # The extra values given here take precedence over values defined on the client or passed to this method.
866
895
  extra_headers: Headers | None = None,
@@ -878,6 +907,9 @@ class AsyncConnectionsResource(AsyncAPIResource):
878
907
  proxy: Proxy selection. Provide either id or name. The proxy must belong to the
879
908
  caller's org.
880
909
 
910
+ record_session: Override the connection's default for recording this login's browser session.
911
+ When omitted, the connection's record_session default is used.
912
+
881
913
  extra_headers: Send extra headers
882
914
 
883
915
  extra_query: Add additional query parameters to the request
@@ -890,7 +922,13 @@ class AsyncConnectionsResource(AsyncAPIResource):
890
922
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
891
923
  return await self._post(
892
924
  path_template("/auth/connections/{id}/login", id=id),
893
- body=await async_maybe_transform({"proxy": proxy}, connection_login_params.ConnectionLoginParams),
925
+ body=await async_maybe_transform(
926
+ {
927
+ "proxy": proxy,
928
+ "record_session": record_session,
929
+ },
930
+ connection_login_params.ConnectionLoginParams,
931
+ ),
894
932
  options=make_request_options(
895
933
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
896
934
  ),
@@ -68,6 +68,7 @@ class BrowserPoolsResource(SyncAPIResource):
68
68
  name: str | Omit = omit,
69
69
  profile: BrowserProfile | Omit = omit,
70
70
  proxy_id: str | Omit = omit,
71
+ start_url: str | Omit = omit,
71
72
  stealth: bool | Omit = omit,
72
73
  timeout_seconds: int | Omit = omit,
73
74
  viewport: BrowserViewport | Omit = omit,
@@ -100,7 +101,7 @@ class BrowserPoolsResource(SyncAPIResource):
100
101
  kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
101
102
  view.
102
103
 
103
- name: Optional name for the browser pool. Must be unique within the organization.
104
+ name: Optional name for the browser pool. Must be unique within the project.
104
105
 
105
106
  profile: Profile selection for the browser session. Provide either id or name. If
106
107
  specified, the matching profile will be loaded into the browser session.
@@ -109,6 +110,12 @@ class BrowserPoolsResource(SyncAPIResource):
109
110
  proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
110
111
  belonging to the caller's org.
111
112
 
113
+ start_url: Optional URL to navigate to when a new browser is warmed into the pool.
114
+ Best-effort: failures to navigate do not fail pool fill. Only applied to
115
+ newly-warmed browsers — browsers reused via release/acquire keep whatever URL
116
+ the previous lease left them on. Accepts any URL Chromium can resolve, including
117
+ chrome:// pages.
118
+
112
119
  stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
113
120
  mechanisms.
114
121
 
@@ -149,6 +156,7 @@ class BrowserPoolsResource(SyncAPIResource):
149
156
  "name": name,
150
157
  "profile": profile,
151
158
  "proxy_id": proxy_id,
159
+ "start_url": start_url,
152
160
  "stealth": stealth,
153
161
  "timeout_seconds": timeout_seconds,
154
162
  "viewport": viewport,
@@ -208,6 +216,7 @@ class BrowserPoolsResource(SyncAPIResource):
208
216
  name: str | Omit = omit,
209
217
  profile: BrowserProfile | Omit = omit,
210
218
  proxy_id: str | Omit = omit,
219
+ start_url: str | Omit = omit,
211
220
  stealth: bool | Omit = omit,
212
221
  timeout_seconds: int | Omit = omit,
213
222
  viewport: BrowserViewport | Omit = omit,
@@ -243,7 +252,7 @@ class BrowserPoolsResource(SyncAPIResource):
243
252
  kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
244
253
  view.
245
254
 
246
- name: Optional name for the browser pool. Must be unique within the organization.
255
+ name: Optional name for the browser pool. Must be unique within the project.
247
256
 
248
257
  profile: Profile selection for the browser session. Provide either id or name. If
249
258
  specified, the matching profile will be loaded into the browser session.
@@ -252,6 +261,12 @@ class BrowserPoolsResource(SyncAPIResource):
252
261
  proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
253
262
  belonging to the caller's org.
254
263
 
264
+ start_url: Optional URL to navigate to when a new browser is warmed into the pool.
265
+ Best-effort: failures to navigate do not fail pool fill. Only applied to
266
+ newly-warmed browsers — browsers reused via release/acquire keep whatever URL
267
+ the previous lease left them on. Accepts any URL Chromium can resolve, including
268
+ chrome:// pages.
269
+
255
270
  stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
256
271
  mechanisms.
257
272
 
@@ -295,6 +310,7 @@ class BrowserPoolsResource(SyncAPIResource):
295
310
  "name": name,
296
311
  "profile": profile,
297
312
  "proxy_id": proxy_id,
313
+ "start_url": start_url,
298
314
  "stealth": stealth,
299
315
  "timeout_seconds": timeout_seconds,
300
316
  "viewport": viewport,
@@ -530,6 +546,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
530
546
  name: str | Omit = omit,
531
547
  profile: BrowserProfile | Omit = omit,
532
548
  proxy_id: str | Omit = omit,
549
+ start_url: str | Omit = omit,
533
550
  stealth: bool | Omit = omit,
534
551
  timeout_seconds: int | Omit = omit,
535
552
  viewport: BrowserViewport | Omit = omit,
@@ -562,7 +579,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
562
579
  kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
563
580
  view.
564
581
 
565
- name: Optional name for the browser pool. Must be unique within the organization.
582
+ name: Optional name for the browser pool. Must be unique within the project.
566
583
 
567
584
  profile: Profile selection for the browser session. Provide either id or name. If
568
585
  specified, the matching profile will be loaded into the browser session.
@@ -571,6 +588,12 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
571
588
  proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
572
589
  belonging to the caller's org.
573
590
 
591
+ start_url: Optional URL to navigate to when a new browser is warmed into the pool.
592
+ Best-effort: failures to navigate do not fail pool fill. Only applied to
593
+ newly-warmed browsers — browsers reused via release/acquire keep whatever URL
594
+ the previous lease left them on. Accepts any URL Chromium can resolve, including
595
+ chrome:// pages.
596
+
574
597
  stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
575
598
  mechanisms.
576
599
 
@@ -611,6 +634,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
611
634
  "name": name,
612
635
  "profile": profile,
613
636
  "proxy_id": proxy_id,
637
+ "start_url": start_url,
614
638
  "stealth": stealth,
615
639
  "timeout_seconds": timeout_seconds,
616
640
  "viewport": viewport,
@@ -670,6 +694,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
670
694
  name: str | Omit = omit,
671
695
  profile: BrowserProfile | Omit = omit,
672
696
  proxy_id: str | Omit = omit,
697
+ start_url: str | Omit = omit,
673
698
  stealth: bool | Omit = omit,
674
699
  timeout_seconds: int | Omit = omit,
675
700
  viewport: BrowserViewport | Omit = omit,
@@ -705,7 +730,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
705
730
  kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
706
731
  view.
707
732
 
708
- name: Optional name for the browser pool. Must be unique within the organization.
733
+ name: Optional name for the browser pool. Must be unique within the project.
709
734
 
710
735
  profile: Profile selection for the browser session. Provide either id or name. If
711
736
  specified, the matching profile will be loaded into the browser session.
@@ -714,6 +739,12 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
714
739
  proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
715
740
  belonging to the caller's org.
716
741
 
742
+ start_url: Optional URL to navigate to when a new browser is warmed into the pool.
743
+ Best-effort: failures to navigate do not fail pool fill. Only applied to
744
+ newly-warmed browsers — browsers reused via release/acquire keep whatever URL
745
+ the previous lease left them on. Accepts any URL Chromium can resolve, including
746
+ chrome:// pages.
747
+
717
748
  stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
718
749
  mechanisms.
719
750
 
@@ -757,6 +788,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
757
788
  "name": name,
758
789
  "profile": profile,
759
790
  "proxy_id": proxy_id,
791
+ "start_url": start_url,
760
792
  "stealth": stealth,
761
793
  "timeout_seconds": timeout_seconds,
762
794
  "viewport": viewport,
@@ -160,6 +160,7 @@ class BrowsersResource(SyncAPIResource):
160
160
  persistence: BrowserPersistenceParam | Omit = omit,
161
161
  profile: BrowserProfile | Omit = omit,
162
162
  proxy_id: str | Omit = omit,
163
+ start_url: str | Omit = omit,
163
164
  stealth: bool | Omit = omit,
164
165
  timeout_seconds: int | Omit = omit,
165
166
  viewport: BrowserViewport | Omit = omit,
@@ -196,6 +197,12 @@ class BrowsersResource(SyncAPIResource):
196
197
  proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
197
198
  belonging to the caller's org.
198
199
 
200
+ start_url: Optional URL to navigate to immediately after the browser is created.
201
+ Best-effort: failures to navigate do not fail browser creation. Any pre-existing
202
+ tabs are reduced to a single tab which is then navigated. Accepts any URL
203
+ Chromium can resolve, including chrome:// pages. Ignored when reusing an
204
+ existing persistent session.
205
+
199
206
  stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
200
207
  mechanisms.
201
208
 
@@ -238,6 +245,7 @@ class BrowsersResource(SyncAPIResource):
238
245
  "persistence": persistence,
239
246
  "profile": profile,
240
247
  "proxy_id": proxy_id,
248
+ "start_url": start_url,
241
249
  "stealth": stealth,
242
250
  "timeout_seconds": timeout_seconds,
243
251
  "viewport": viewport,
@@ -718,6 +726,7 @@ class AsyncBrowsersResource(AsyncAPIResource):
718
726
  persistence: BrowserPersistenceParam | Omit = omit,
719
727
  profile: BrowserProfile | Omit = omit,
720
728
  proxy_id: str | Omit = omit,
729
+ start_url: str | Omit = omit,
721
730
  stealth: bool | Omit = omit,
722
731
  timeout_seconds: int | Omit = omit,
723
732
  viewport: BrowserViewport | Omit = omit,
@@ -754,6 +763,12 @@ class AsyncBrowsersResource(AsyncAPIResource):
754
763
  proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
755
764
  belonging to the caller's org.
756
765
 
766
+ start_url: Optional URL to navigate to immediately after the browser is created.
767
+ Best-effort: failures to navigate do not fail browser creation. Any pre-existing
768
+ tabs are reduced to a single tab which is then navigated. Accepts any URL
769
+ Chromium can resolve, including chrome:// pages. Ignored when reusing an
770
+ existing persistent session.
771
+
757
772
  stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
758
773
  mechanisms.
759
774
 
@@ -796,6 +811,7 @@ class AsyncBrowsersResource(AsyncAPIResource):
796
811
  "persistence": persistence,
797
812
  "profile": profile,
798
813
  "proxy_id": proxy_id,
814
+ "start_url": start_url,
799
815
  "stealth": stealth,
800
816
  "timeout_seconds": timeout_seconds,
801
817
  "viewport": viewport,
@@ -68,7 +68,7 @@ class CredentialsResource(SyncAPIResource):
68
68
  Args:
69
69
  domain: Target domain this credential is for
70
70
 
71
- name: Unique name for the credential within the organization
71
+ name: Unique name for the credential within the project
72
72
 
73
73
  values: Field name to value mapping (e.g., username, password)
74
74
 
@@ -365,7 +365,7 @@ class AsyncCredentialsResource(AsyncAPIResource):
365
365
  Args:
366
366
  domain: Target domain this credential is for
367
367
 
368
- name: Unique name for the credential within the organization
368
+ name: Unique name for the credential within the project
369
369
 
370
370
  values: Field name to value mapping (e.g., username, password)
371
371
 
@@ -211,7 +211,7 @@ class ExtensionsResource(SyncAPIResource):
211
211
  Args:
212
212
  file: ZIP file containing the browser extension.
213
213
 
214
- name: Optional unique name within the organization to reference this extension.
214
+ name: Optional unique name within the project to reference this extension.
215
215
 
216
216
  extra_headers: Send extra headers
217
217
 
@@ -421,7 +421,7 @@ class AsyncExtensionsResource(AsyncAPIResource):
421
421
  Args:
422
422
  file: ZIP file containing the browser extension.
423
423
 
424
- name: Optional unique name within the organization to reference this extension.
424
+ name: Optional unique name within the project to reference this extension.
425
425
 
426
426
  extra_headers: Send extra headers
427
427
 
@@ -68,7 +68,7 @@ class ProfilesResource(SyncAPIResource):
68
68
  sessions.
69
69
 
70
70
  Args:
71
- name: Optional name of the profile. Must be unique within the organization.
71
+ name: Optional name of the profile. Must be unique within the project.
72
72
 
73
73
  extra_headers: Send extra headers
74
74
 
@@ -278,7 +278,7 @@ class AsyncProfilesResource(AsyncAPIResource):
278
278
  sessions.
279
279
 
280
280
  Args:
281
- name: Optional name of the profile. Must be unique within the organization.
281
+ name: Optional name of the profile. Must be unique within the project.
282
282
 
283
283
  extra_headers: Send extra headers
284
284
 
@@ -179,6 +179,7 @@ class ProjectsResource(SyncAPIResource):
179
179
  *,
180
180
  limit: int | Omit = omit,
181
181
  offset: int | Omit = omit,
182
+ query: str | Omit = omit,
182
183
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
183
184
  # The extra values given here take precedence over values defined on the client or passed to this method.
184
185
  extra_headers: Headers | None = None,
@@ -194,6 +195,8 @@ class ProjectsResource(SyncAPIResource):
194
195
 
195
196
  offset: Number of results to skip
196
197
 
198
+ query: Case-insensitive substring match against project name
199
+
197
200
  extra_headers: Send extra headers
198
201
 
199
202
  extra_query: Add additional query parameters to the request
@@ -214,6 +217,7 @@ class ProjectsResource(SyncAPIResource):
214
217
  {
215
218
  "limit": limit,
216
219
  "offset": offset,
220
+ "query": query,
217
221
  },
218
222
  project_list_params.ProjectListParams,
219
223
  ),
@@ -404,6 +408,7 @@ class AsyncProjectsResource(AsyncAPIResource):
404
408
  *,
405
409
  limit: int | Omit = omit,
406
410
  offset: int | Omit = omit,
411
+ query: str | Omit = omit,
407
412
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
408
413
  # The extra values given here take precedence over values defined on the client or passed to this method.
409
414
  extra_headers: Headers | None = None,
@@ -419,6 +424,8 @@ class AsyncProjectsResource(AsyncAPIResource):
419
424
 
420
425
  offset: Number of results to skip
421
426
 
427
+ query: Case-insensitive substring match against project name
428
+
422
429
  extra_headers: Send extra headers
423
430
 
424
431
  extra_query: Add additional query parameters to the request
@@ -439,6 +446,7 @@ class AsyncProjectsResource(AsyncAPIResource):
439
446
  {
440
447
  "limit": limit,
441
448
  "offset": offset,
449
+ "query": query,
442
450
  },
443
451
  project_list_params.ProjectListParams,
444
452
  ),