kernel 0.44.0__tar.gz → 0.46.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 (257) hide show
  1. {kernel-0.44.0 → kernel-0.46.0}/.gitignore +1 -0
  2. kernel-0.46.0/.release-please-manifest.json +3 -0
  3. {kernel-0.44.0 → kernel-0.46.0}/CHANGELOG.md +24 -0
  4. {kernel-0.44.0 → kernel-0.46.0}/PKG-INFO +1 -1
  5. {kernel-0.44.0 → kernel-0.46.0}/api.md +1 -1
  6. {kernel-0.44.0 → kernel-0.46.0}/pyproject.toml +1 -1
  7. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_qs.py +4 -1
  8. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_version.py +1 -1
  9. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browser_pools.py +29 -1
  10. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/browsers.py +10 -0
  11. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/proxies.py +43 -5
  12. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/__init__.py +1 -0
  13. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool.py +9 -1
  14. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool_create_params.py +9 -1
  15. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool_update_params.py +9 -1
  16. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_update_params.py +6 -0
  17. kernel-0.46.0/src/kernel/types/proxy_check_params.py +23 -0
  18. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_browser_pools.py +4 -0
  19. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_browsers.py +2 -0
  20. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_proxies.py +26 -8
  21. kernel-0.44.0/.release-please-manifest.json +0 -3
  22. {kernel-0.44.0 → kernel-0.46.0}/CONTRIBUTING.md +0 -0
  23. {kernel-0.44.0 → kernel-0.46.0}/LICENSE +0 -0
  24. {kernel-0.44.0 → kernel-0.46.0}/README.md +0 -0
  25. {kernel-0.44.0 → kernel-0.46.0}/SECURITY.md +0 -0
  26. {kernel-0.44.0 → kernel-0.46.0}/bin/check-release-environment +0 -0
  27. {kernel-0.44.0 → kernel-0.46.0}/bin/publish-pypi +0 -0
  28. {kernel-0.44.0 → kernel-0.46.0}/examples/.keep +0 -0
  29. {kernel-0.44.0 → kernel-0.46.0}/noxfile.py +0 -0
  30. {kernel-0.44.0 → kernel-0.46.0}/release-please-config.json +0 -0
  31. {kernel-0.44.0 → kernel-0.46.0}/requirements-dev.lock +0 -0
  32. {kernel-0.44.0 → kernel-0.46.0}/requirements.lock +0 -0
  33. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/__init__.py +0 -0
  34. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_base_client.py +0 -0
  35. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_client.py +0 -0
  36. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_compat.py +0 -0
  37. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_constants.py +0 -0
  38. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_exceptions.py +0 -0
  39. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_files.py +0 -0
  40. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_models.py +0 -0
  41. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_resource.py +0 -0
  42. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_response.py +0 -0
  43. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_streaming.py +0 -0
  44. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_types.py +0 -0
  45. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/__init__.py +0 -0
  46. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_compat.py +0 -0
  47. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_datetime_parse.py +0 -0
  48. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_json.py +0 -0
  49. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_logs.py +0 -0
  50. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_path.py +0 -0
  51. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_proxy.py +0 -0
  52. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_reflection.py +0 -0
  53. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_resources_proxy.py +0 -0
  54. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_streams.py +0 -0
  55. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_sync.py +0 -0
  56. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_transform.py +0 -0
  57. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_typing.py +0 -0
  58. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/_utils/_utils.py +0 -0
  59. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/app_framework.py +0 -0
  60. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/lib/.keep +0 -0
  61. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/pagination.py +0 -0
  62. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/py.typed +0 -0
  63. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/__init__.py +0 -0
  64. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/apps.py +0 -0
  65. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/auth/__init__.py +0 -0
  66. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/auth/auth.py +0 -0
  67. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/auth/connections.py +0 -0
  68. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/__init__.py +0 -0
  69. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/computer.py +0 -0
  70. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
  71. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
  72. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
  73. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/logs.py +0 -0
  74. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/playwright.py +0 -0
  75. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/process.py +0 -0
  76. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/browsers/replays.py +0 -0
  77. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/credential_providers.py +0 -0
  78. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/credentials.py +0 -0
  79. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/deployments.py +0 -0
  80. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/extensions.py +0 -0
  81. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/invocations.py +0 -0
  82. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/resources/profiles.py +0 -0
  83. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/app_list_params.py +0 -0
  84. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/app_list_response.py +0 -0
  85. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/__init__.py +0 -0
  86. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/connection_create_params.py +0 -0
  87. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/connection_follow_response.py +0 -0
  88. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/connection_list_params.py +0 -0
  89. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/connection_login_params.py +0 -0
  90. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
  91. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/connection_update_params.py +0 -0
  92. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/login_response.py +0 -0
  93. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/managed_auth.py +0 -0
  94. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
  95. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_create_params.py +0 -0
  96. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_create_response.py +0 -0
  97. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_delete_params.py +0 -0
  98. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_list_params.py +0 -0
  99. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_list_response.py +0 -0
  100. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
  101. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_persistence.py +0 -0
  102. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_persistence_param.py +0 -0
  103. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
  104. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool_acquire_response.py +0 -0
  105. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
  106. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool_list_response.py +0 -0
  107. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool_ref.py +0 -0
  108. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_pool_release_params.py +0 -0
  109. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_retrieve_params.py +0 -0
  110. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_retrieve_response.py +0 -0
  111. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_update_response.py +0 -0
  112. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browser_usage.py +0 -0
  113. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/__init__.py +0 -0
  114. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
  115. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
  116. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
  117. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
  118. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
  119. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
  120. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
  121. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
  122. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
  123. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
  124. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
  125. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
  126. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
  127. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
  128. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
  129. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
  130. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
  131. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
  132. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
  133. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
  134. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
  135. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_move_params.py +0 -0
  136. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
  137. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
  138. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
  139. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
  140. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
  141. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
  142. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
  143. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
  144. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
  145. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
  146. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
  147. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
  148. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
  149. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
  150. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
  151. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
  152. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
  153. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
  154. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
  155. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
  156. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_status_response.py +0 -0
  157. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
  158. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
  159. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
  160. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
  161. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
  162. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
  163. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential.py +0 -0
  164. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_create_params.py +0 -0
  165. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_list_params.py +0 -0
  166. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_provider.py +0 -0
  167. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_provider_create_params.py +0 -0
  168. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_provider_item.py +0 -0
  169. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
  170. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_provider_list_response.py +0 -0
  171. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_provider_test_result.py +0 -0
  172. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_provider_update_params.py +0 -0
  173. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_totp_code_response.py +0 -0
  174. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/credential_update_params.py +0 -0
  175. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/deployment_create_params.py +0 -0
  176. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/deployment_create_response.py +0 -0
  177. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/deployment_follow_params.py +0 -0
  178. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/deployment_follow_response.py +0 -0
  179. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/deployment_list_params.py +0 -0
  180. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/deployment_list_response.py +0 -0
  181. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
  182. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/deployment_state_event.py +0 -0
  183. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
  184. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/extension_list_response.py +0 -0
  185. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/extension_upload_params.py +0 -0
  186. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/extension_upload_response.py +0 -0
  187. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_create_params.py +0 -0
  188. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_create_response.py +0 -0
  189. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_follow_params.py +0 -0
  190. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_follow_response.py +0 -0
  191. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_list_browsers_response.py +0 -0
  192. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_list_params.py +0 -0
  193. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_list_response.py +0 -0
  194. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
  195. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_state_event.py +0 -0
  196. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_update_params.py +0 -0
  197. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/invocation_update_response.py +0 -0
  198. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/profile.py +0 -0
  199. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/profile_create_params.py +0 -0
  200. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/profile_list_params.py +0 -0
  201. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/proxy_check_response.py +0 -0
  202. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/proxy_create_params.py +0 -0
  203. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/proxy_create_response.py +0 -0
  204. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/proxy_list_response.py +0 -0
  205. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
  206. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/__init__.py +0 -0
  207. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/app_action.py +0 -0
  208. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/browser_extension.py +0 -0
  209. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/browser_profile.py +0 -0
  210. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/browser_viewport.py +0 -0
  211. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/error_detail.py +0 -0
  212. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/error_event.py +0 -0
  213. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/error_model.py +0 -0
  214. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
  215. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared/log_event.py +0 -0
  216. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared_params/__init__.py +0 -0
  217. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
  218. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
  219. {kernel-0.44.0 → kernel-0.46.0}/src/kernel/types/shared_params/browser_viewport.py +0 -0
  220. {kernel-0.44.0 → kernel-0.46.0}/tests/__init__.py +0 -0
  221. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/__init__.py +0 -0
  222. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/auth/__init__.py +0 -0
  223. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/auth/test_connections.py +0 -0
  224. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/__init__.py +0 -0
  225. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
  226. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
  227. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/test_computer.py +0 -0
  228. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/test_fs.py +0 -0
  229. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/test_logs.py +0 -0
  230. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/test_playwright.py +0 -0
  231. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/test_process.py +0 -0
  232. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/browsers/test_replays.py +0 -0
  233. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_apps.py +0 -0
  234. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_credential_providers.py +0 -0
  235. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_credentials.py +0 -0
  236. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_deployments.py +0 -0
  237. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_extensions.py +0 -0
  238. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_invocations.py +0 -0
  239. {kernel-0.44.0 → kernel-0.46.0}/tests/api_resources/test_profiles.py +0 -0
  240. {kernel-0.44.0 → kernel-0.46.0}/tests/conftest.py +0 -0
  241. {kernel-0.44.0 → kernel-0.46.0}/tests/sample_file.txt +0 -0
  242. {kernel-0.44.0 → kernel-0.46.0}/tests/test_client.py +0 -0
  243. {kernel-0.44.0 → kernel-0.46.0}/tests/test_deepcopy.py +0 -0
  244. {kernel-0.44.0 → kernel-0.46.0}/tests/test_extract_files.py +0 -0
  245. {kernel-0.44.0 → kernel-0.46.0}/tests/test_files.py +0 -0
  246. {kernel-0.44.0 → kernel-0.46.0}/tests/test_models.py +0 -0
  247. {kernel-0.44.0 → kernel-0.46.0}/tests/test_qs.py +0 -0
  248. {kernel-0.44.0 → kernel-0.46.0}/tests/test_required_args.py +0 -0
  249. {kernel-0.44.0 → kernel-0.46.0}/tests/test_response.py +0 -0
  250. {kernel-0.44.0 → kernel-0.46.0}/tests/test_streaming.py +0 -0
  251. {kernel-0.44.0 → kernel-0.46.0}/tests/test_transform.py +0 -0
  252. {kernel-0.44.0 → kernel-0.46.0}/tests/test_utils/test_datetime_parse.py +0 -0
  253. {kernel-0.44.0 → kernel-0.46.0}/tests/test_utils/test_json.py +0 -0
  254. {kernel-0.44.0 → kernel-0.46.0}/tests/test_utils/test_path.py +0 -0
  255. {kernel-0.44.0 → kernel-0.46.0}/tests/test_utils/test_proxy.py +0 -0
  256. {kernel-0.44.0 → kernel-0.46.0}/tests/test_utils/test_typing.py +0 -0
  257. {kernel-0.44.0 → kernel-0.46.0}/tests/utils.py +0 -0
@@ -1,4 +1,5 @@
1
1
  .prism.log
2
+ .stdy.log
2
3
  _dev
3
4
 
4
5
  __pycache__
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.46.0"
3
+ }
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.46.0 (2026-04-06)
4
+
5
+ Full Changelog: [v0.45.0...v0.46.0](https://github.com/kernel/kernel-python-sdk/compare/v0.45.0...v0.46.0)
6
+
7
+ ### Features
8
+
9
+ * Add optional url parameter to proxy check endpoint ([cdd4b02](https://github.com/kernel/kernel-python-sdk/commit/cdd4b026fc01b1118cbc35cbc61890d15af3e021))
10
+
11
+ ## 0.45.0 (2026-03-30)
12
+
13
+ Full Changelog: [v0.44.0...v0.45.0](https://github.com/kernel/kernel-python-sdk/compare/v0.44.0...v0.45.0)
14
+
15
+ ### Features
16
+
17
+ * [kernel-1008] browser pools add custom policy ([09f8520](https://github.com/kernel/kernel-python-sdk/commit/09f85209bc3c646d8a2a1231ed3925cad830f3dc))
18
+ * Add disable_default_proxy for stealth browsers ([3a75e81](https://github.com/kernel/kernel-python-sdk/commit/3a75e819e6e7caffdfba74a9627ed418de247de7))
19
+ * **internal:** implement indices array format for query and form serialization ([c798c39](https://github.com/kernel/kernel-python-sdk/commit/c798c39251def1447d61215c187f0e285f225f3d))
20
+
21
+
22
+ ### Chores
23
+
24
+ * **ci:** skip lint on metadata-only changes ([f0815a8](https://github.com/kernel/kernel-python-sdk/commit/f0815a8d36799444220552cb599a19b79c9b5e12))
25
+ * **internal:** update gitignore ([34b47ab](https://github.com/kernel/kernel-python-sdk/commit/34b47ab40aeb12ad9f78e923493caaca88a554b4))
26
+
3
27
  ## 0.44.0 (2026-03-20)
4
28
 
5
29
  Full Changelog: [v0.43.0...v0.44.0](https://github.com/kernel/kernel-python-sdk/compare/v0.43.0...v0.44.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kernel
3
- Version: 0.44.0
3
+ Version: 0.46.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
@@ -282,7 +282,7 @@ Methods:
282
282
  - <code title="get /proxies/{id}">client.proxies.<a href="./src/kernel/resources/proxies.py">retrieve</a>(id) -> <a href="./src/kernel/types/proxy_retrieve_response.py">ProxyRetrieveResponse</a></code>
283
283
  - <code title="get /proxies">client.proxies.<a href="./src/kernel/resources/proxies.py">list</a>() -> <a href="./src/kernel/types/proxy_list_response.py">ProxyListResponse</a></code>
284
284
  - <code title="delete /proxies/{id}">client.proxies.<a href="./src/kernel/resources/proxies.py">delete</a>(id) -> None</code>
285
- - <code title="post /proxies/{id}/check">client.proxies.<a href="./src/kernel/resources/proxies.py">check</a>(id) -> <a href="./src/kernel/types/proxy_check_response.py">ProxyCheckResponse</a></code>
285
+ - <code title="post /proxies/{id}/check">client.proxies.<a href="./src/kernel/resources/proxies.py">check</a>(id, \*\*<a href="src/kernel/types/proxy_check_params.py">params</a>) -> <a href="./src/kernel/types/proxy_check_response.py">ProxyCheckResponse</a></code>
286
286
 
287
287
  # Extensions
288
288
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kernel"
3
- version = "0.44.0"
3
+ version = "0.46.0"
4
4
  description = "The official Python library for the kernel API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -101,7 +101,10 @@ class Querystring:
101
101
  items.extend(self._stringify_item(key, item, opts))
102
102
  return items
103
103
  elif array_format == "indices":
104
- raise NotImplementedError("The array indices format is not supported yet")
104
+ items = []
105
+ for i, item in enumerate(value):
106
+ items.extend(self._stringify_item(f"{key}[{i}]", item, opts))
107
+ return items
105
108
  elif array_format == "brackets":
106
109
  items = []
107
110
  key = key + "[]"
@@ -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.44.0" # x-release-please-version
4
+ __version__ = "0.46.0" # x-release-please-version
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable
5
+ from typing import Dict, Iterable
6
6
 
7
7
  import httpx
8
8
 
@@ -60,6 +60,7 @@ class BrowserPoolsResource(SyncAPIResource):
60
60
  self,
61
61
  *,
62
62
  size: int,
63
+ chrome_policy: Dict[str, object] | Omit = omit,
63
64
  extensions: Iterable[BrowserExtension] | Omit = omit,
64
65
  fill_rate_per_minute: int | Omit = omit,
65
66
  headless: bool | Omit = omit,
@@ -85,6 +86,11 @@ class BrowserPoolsResource(SyncAPIResource):
85
86
  your organization's pooled sessions limit (the sum of all pool sizes cannot
86
87
  exceed your limit).
87
88
 
89
+ chrome_policy: Custom Chrome enterprise policy overrides applied to all browsers in this pool.
90
+ Keys are Chrome enterprise policy names; values must match their expected types.
91
+ Blocked: kernel-managed policies (extensions, proxy, CDP/automation). See
92
+ https://chromeenterprise.google/policies/
93
+
88
94
  extensions: List of browser extensions to load into the session. Provide each by id or name.
89
95
 
90
96
  fill_rate_per_minute: Percentage of the pool to fill per minute. Defaults to 10%.
@@ -135,6 +141,7 @@ class BrowserPoolsResource(SyncAPIResource):
135
141
  body=maybe_transform(
136
142
  {
137
143
  "size": size,
144
+ "chrome_policy": chrome_policy,
138
145
  "extensions": extensions,
139
146
  "fill_rate_per_minute": fill_rate_per_minute,
140
147
  "headless": headless,
@@ -192,6 +199,7 @@ class BrowserPoolsResource(SyncAPIResource):
192
199
  id_or_name: str,
193
200
  *,
194
201
  size: int,
202
+ chrome_policy: Dict[str, object] | Omit = omit,
195
203
  discard_all_idle: bool | Omit = omit,
196
204
  extensions: Iterable[BrowserExtension] | Omit = omit,
197
205
  fill_rate_per_minute: int | Omit = omit,
@@ -218,6 +226,11 @@ class BrowserPoolsResource(SyncAPIResource):
218
226
  your organization's pooled sessions limit (the sum of all pool sizes cannot
219
227
  exceed your limit).
220
228
 
229
+ chrome_policy: Custom Chrome enterprise policy overrides applied to all browsers in this pool.
230
+ Keys are Chrome enterprise policy names; values must match their expected types.
231
+ Blocked: kernel-managed policies (extensions, proxy, CDP/automation). See
232
+ https://chromeenterprise.google/policies/
233
+
221
234
  discard_all_idle: Whether to discard all idle browsers and rebuild the pool immediately. Defaults
222
235
  to false.
223
236
 
@@ -273,6 +286,7 @@ class BrowserPoolsResource(SyncAPIResource):
273
286
  body=maybe_transform(
274
287
  {
275
288
  "size": size,
289
+ "chrome_policy": chrome_policy,
276
290
  "discard_all_idle": discard_all_idle,
277
291
  "extensions": extensions,
278
292
  "fill_rate_per_minute": fill_rate_per_minute,
@@ -508,6 +522,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
508
522
  self,
509
523
  *,
510
524
  size: int,
525
+ chrome_policy: Dict[str, object] | Omit = omit,
511
526
  extensions: Iterable[BrowserExtension] | Omit = omit,
512
527
  fill_rate_per_minute: int | Omit = omit,
513
528
  headless: bool | Omit = omit,
@@ -533,6 +548,11 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
533
548
  your organization's pooled sessions limit (the sum of all pool sizes cannot
534
549
  exceed your limit).
535
550
 
551
+ chrome_policy: Custom Chrome enterprise policy overrides applied to all browsers in this pool.
552
+ Keys are Chrome enterprise policy names; values must match their expected types.
553
+ Blocked: kernel-managed policies (extensions, proxy, CDP/automation). See
554
+ https://chromeenterprise.google/policies/
555
+
536
556
  extensions: List of browser extensions to load into the session. Provide each by id or name.
537
557
 
538
558
  fill_rate_per_minute: Percentage of the pool to fill per minute. Defaults to 10%.
@@ -583,6 +603,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
583
603
  body=await async_maybe_transform(
584
604
  {
585
605
  "size": size,
606
+ "chrome_policy": chrome_policy,
586
607
  "extensions": extensions,
587
608
  "fill_rate_per_minute": fill_rate_per_minute,
588
609
  "headless": headless,
@@ -640,6 +661,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
640
661
  id_or_name: str,
641
662
  *,
642
663
  size: int,
664
+ chrome_policy: Dict[str, object] | Omit = omit,
643
665
  discard_all_idle: bool | Omit = omit,
644
666
  extensions: Iterable[BrowserExtension] | Omit = omit,
645
667
  fill_rate_per_minute: int | Omit = omit,
@@ -666,6 +688,11 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
666
688
  your organization's pooled sessions limit (the sum of all pool sizes cannot
667
689
  exceed your limit).
668
690
 
691
+ chrome_policy: Custom Chrome enterprise policy overrides applied to all browsers in this pool.
692
+ Keys are Chrome enterprise policy names; values must match their expected types.
693
+ Blocked: kernel-managed policies (extensions, proxy, CDP/automation). See
694
+ https://chromeenterprise.google/policies/
695
+
669
696
  discard_all_idle: Whether to discard all idle browsers and rebuild the pool immediately. Defaults
670
697
  to false.
671
698
 
@@ -721,6 +748,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
721
748
  body=await async_maybe_transform(
722
749
  {
723
750
  "size": size,
751
+ "chrome_policy": chrome_policy,
724
752
  "discard_all_idle": discard_all_idle,
725
753
  "extensions": extensions,
726
754
  "fill_rate_per_minute": fill_rate_per_minute,
@@ -286,6 +286,7 @@ class BrowsersResource(SyncAPIResource):
286
286
  self,
287
287
  id: str,
288
288
  *,
289
+ disable_default_proxy: bool | Omit = omit,
289
290
  profile: BrowserProfile | Omit = omit,
290
291
  proxy_id: Optional[str] | Omit = omit,
291
292
  viewport: browser_update_params.Viewport | Omit = omit,
@@ -300,6 +301,9 @@ class BrowsersResource(SyncAPIResource):
300
301
  Update a browser session.
301
302
 
302
303
  Args:
304
+ disable_default_proxy: If true, stealth browsers connect directly instead of using the default stealth
305
+ proxy.
306
+
303
307
  profile: Profile to load into the browser session. Only allowed if the session does not
304
308
  already have a profile loaded.
305
309
 
@@ -322,6 +326,7 @@ class BrowsersResource(SyncAPIResource):
322
326
  path_template("/browsers/{id}", id=id),
323
327
  body=maybe_transform(
324
328
  {
329
+ "disable_default_proxy": disable_default_proxy,
325
330
  "profile": profile,
326
331
  "proxy_id": proxy_id,
327
332
  "viewport": viewport,
@@ -717,6 +722,7 @@ class AsyncBrowsersResource(AsyncAPIResource):
717
722
  self,
718
723
  id: str,
719
724
  *,
725
+ disable_default_proxy: bool | Omit = omit,
720
726
  profile: BrowserProfile | Omit = omit,
721
727
  proxy_id: Optional[str] | Omit = omit,
722
728
  viewport: browser_update_params.Viewport | Omit = omit,
@@ -731,6 +737,9 @@ class AsyncBrowsersResource(AsyncAPIResource):
731
737
  Update a browser session.
732
738
 
733
739
  Args:
740
+ disable_default_proxy: If true, stealth browsers connect directly instead of using the default stealth
741
+ proxy.
742
+
734
743
  profile: Profile to load into the browser session. Only allowed if the session does not
735
744
  already have a profile loaded.
736
745
 
@@ -753,6 +762,7 @@ class AsyncBrowsersResource(AsyncAPIResource):
753
762
  path_template("/browsers/{id}", id=id),
754
763
  body=await async_maybe_transform(
755
764
  {
765
+ "disable_default_proxy": disable_default_proxy,
756
766
  "profile": profile,
757
767
  "proxy_id": proxy_id,
758
768
  "viewport": viewport,
@@ -6,7 +6,7 @@ from typing_extensions import Literal
6
6
 
7
7
  import httpx
8
8
 
9
- from ..types import proxy_create_params
9
+ from ..types import proxy_check_params, proxy_create_params
10
10
  from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, SequenceNotStr, omit, not_given
11
11
  from .._utils import path_template, maybe_transform, async_maybe_transform
12
12
  from .._compat import cached_property
@@ -195,6 +195,7 @@ class ProxiesResource(SyncAPIResource):
195
195
  self,
196
196
  id: str,
197
197
  *,
198
+ url: str | Omit = omit,
198
199
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
199
200
  # The extra values given here take precedence over values defined on the client or passed to this method.
200
201
  extra_headers: Headers | None = None,
@@ -202,10 +203,27 @@ class ProxiesResource(SyncAPIResource):
202
203
  extra_body: Body | None = None,
203
204
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
204
205
  ) -> ProxyCheckResponse:
205
- """
206
- Run a health check on the proxy to verify it's working.
206
+ """Run a health check on the proxy to verify it's working.
207
+
208
+ Optionally specify a URL
209
+ to test reachability against a specific target. For ISP and datacenter proxies,
210
+ this reliably tests whether the target site is reachable from the proxy's stable
211
+ exit IP. For residential and mobile proxies, the exit node varies between
212
+ requests, so this validates proxy configuration and connectivity rather than
213
+ guaranteeing site-specific reachability.
207
214
 
208
215
  Args:
216
+ url: An optional URL to test reachability against. If provided, the proxy check will
217
+ test connectivity to this URL instead of the default test URLs. Only HTTP and
218
+ HTTPS schemes are allowed, and the URL must resolve to a public IP address. For
219
+ ISP and datacenter proxies, the exit IP is stable, so a successful check
220
+ reliably indicates that subsequent browser sessions will reach the target site
221
+ with the same IP. For residential and mobile proxies, the exit node changes
222
+ between requests, so a successful check validates proxy configuration but does
223
+ not guarantee that a subsequent browser session will use the same exit IP or
224
+ reach the same site — it is useful for verifying credentials and connectivity,
225
+ not for predicting site-specific behavior.
226
+
209
227
  extra_headers: Send extra headers
210
228
 
211
229
  extra_query: Add additional query parameters to the request
@@ -218,6 +236,7 @@ class ProxiesResource(SyncAPIResource):
218
236
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
219
237
  return self._post(
220
238
  path_template("/proxies/{id}/check", id=id),
239
+ body=maybe_transform({"url": url}, proxy_check_params.ProxyCheckParams),
221
240
  options=make_request_options(
222
241
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
223
242
  ),
@@ -394,6 +413,7 @@ class AsyncProxiesResource(AsyncAPIResource):
394
413
  self,
395
414
  id: str,
396
415
  *,
416
+ url: str | Omit = omit,
397
417
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
398
418
  # The extra values given here take precedence over values defined on the client or passed to this method.
399
419
  extra_headers: Headers | None = None,
@@ -401,10 +421,27 @@ class AsyncProxiesResource(AsyncAPIResource):
401
421
  extra_body: Body | None = None,
402
422
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
403
423
  ) -> ProxyCheckResponse:
404
- """
405
- Run a health check on the proxy to verify it's working.
424
+ """Run a health check on the proxy to verify it's working.
425
+
426
+ Optionally specify a URL
427
+ to test reachability against a specific target. For ISP and datacenter proxies,
428
+ this reliably tests whether the target site is reachable from the proxy's stable
429
+ exit IP. For residential and mobile proxies, the exit node varies between
430
+ requests, so this validates proxy configuration and connectivity rather than
431
+ guaranteeing site-specific reachability.
406
432
 
407
433
  Args:
434
+ url: An optional URL to test reachability against. If provided, the proxy check will
435
+ test connectivity to this URL instead of the default test URLs. Only HTTP and
436
+ HTTPS schemes are allowed, and the URL must resolve to a public IP address. For
437
+ ISP and datacenter proxies, the exit IP is stable, so a successful check
438
+ reliably indicates that subsequent browser sessions will reach the target site
439
+ with the same IP. For residential and mobile proxies, the exit node changes
440
+ between requests, so a successful check validates proxy configuration but does
441
+ not guarantee that a subsequent browser session will use the same exit IP or
442
+ reach the same site — it is useful for verifying credentials and connectivity,
443
+ not for predicting site-specific behavior.
444
+
408
445
  extra_headers: Send extra headers
409
446
 
410
447
  extra_query: Add additional query parameters to the request
@@ -417,6 +454,7 @@ class AsyncProxiesResource(AsyncAPIResource):
417
454
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
418
455
  return await self._post(
419
456
  path_template("/proxies/{id}/check", id=id),
457
+ body=await async_maybe_transform({"url": url}, proxy_check_params.ProxyCheckParams),
420
458
  options=make_request_options(
421
459
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
422
460
  ),
@@ -20,6 +20,7 @@ from .browser_usage import BrowserUsage as BrowserUsage
20
20
  from .app_list_params import AppListParams as AppListParams
21
21
  from .browser_pool_ref import BrowserPoolRef as BrowserPoolRef
22
22
  from .app_list_response import AppListResponse as AppListResponse
23
+ from .proxy_check_params import ProxyCheckParams as ProxyCheckParams
23
24
  from .browser_list_params import BrowserListParams as BrowserListParams
24
25
  from .browser_persistence import BrowserPersistence as BrowserPersistence
25
26
  from .credential_provider import CredentialProvider as CredentialProvider
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List, Optional
3
+ from typing import Dict, List, Optional
4
4
  from datetime import datetime
5
5
 
6
6
  from .._models import BaseModel
@@ -21,6 +21,14 @@ class BrowserPoolConfig(BaseModel):
21
21
  sum of all pool sizes cannot exceed your limit).
22
22
  """
23
23
 
24
+ chrome_policy: Optional[Dict[str, object]] = None
25
+ """Custom Chrome enterprise policy overrides applied to all browsers in this pool.
26
+
27
+ Keys are Chrome enterprise policy names; values must match their expected types.
28
+ Blocked: kernel-managed policies (extensions, proxy, CDP/automation). See
29
+ https://chromeenterprise.google/policies/
30
+ """
31
+
24
32
  extensions: Optional[List[BrowserExtension]] = None
25
33
  """List of browser extensions to load into the session.
26
34
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable
5
+ from typing import Dict, Iterable
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  from .shared_params.browser_profile import BrowserProfile
@@ -20,6 +20,14 @@ class BrowserPoolCreateParams(TypedDict, total=False):
20
20
  sum of all pool sizes cannot exceed your limit).
21
21
  """
22
22
 
23
+ chrome_policy: Dict[str, object]
24
+ """Custom Chrome enterprise policy overrides applied to all browsers in this pool.
25
+
26
+ Keys are Chrome enterprise policy names; values must match their expected types.
27
+ Blocked: kernel-managed policies (extensions, proxy, CDP/automation). See
28
+ https://chromeenterprise.google/policies/
29
+ """
30
+
23
31
  extensions: Iterable[BrowserExtension]
24
32
  """List of browser extensions to load into the session.
25
33
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Iterable
5
+ from typing import Dict, Iterable
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  from .shared_params.browser_profile import BrowserProfile
@@ -20,6 +20,14 @@ class BrowserPoolUpdateParams(TypedDict, total=False):
20
20
  sum of all pool sizes cannot exceed your limit).
21
21
  """
22
22
 
23
+ chrome_policy: Dict[str, object]
24
+ """Custom Chrome enterprise policy overrides applied to all browsers in this pool.
25
+
26
+ Keys are Chrome enterprise policy names; values must match their expected types.
27
+ Blocked: kernel-managed policies (extensions, proxy, CDP/automation). See
28
+ https://chromeenterprise.google/policies/
29
+ """
30
+
23
31
  discard_all_idle: bool
24
32
  """Whether to discard all idle browsers and rebuild the pool immediately.
25
33
 
@@ -12,6 +12,12 @@ __all__ = ["BrowserUpdateParams", "Viewport"]
12
12
 
13
13
 
14
14
  class BrowserUpdateParams(TypedDict, total=False):
15
+ disable_default_proxy: bool
16
+ """
17
+ If true, stealth browsers connect directly instead of using the default stealth
18
+ proxy.
19
+ """
20
+
15
21
  profile: BrowserProfile
16
22
  """Profile to load into the browser session.
17
23
 
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["ProxyCheckParams"]
8
+
9
+
10
+ class ProxyCheckParams(TypedDict, total=False):
11
+ url: str
12
+ """An optional URL to test reachability against.
13
+
14
+ If provided, the proxy check will test connectivity to this URL instead of the
15
+ default test URLs. Only HTTP and HTTPS schemes are allowed, and the URL must
16
+ resolve to a public IP address. For ISP and datacenter proxies, the exit IP is
17
+ stable, so a successful check reliably indicates that subsequent browser
18
+ sessions will reach the target site with the same IP. For residential and mobile
19
+ proxies, the exit node changes between requests, so a successful check validates
20
+ proxy configuration but does not guarantee that a subsequent browser session
21
+ will use the same exit IP or reach the same site — it is useful for verifying
22
+ credentials and connectivity, not for predicting site-specific behavior.
23
+ """
@@ -34,6 +34,7 @@ class TestBrowserPools:
34
34
  def test_method_create_with_all_params(self, client: Kernel) -> None:
35
35
  browser_pool = client.browser_pools.create(
36
36
  size=10,
37
+ chrome_policy={"foo": "bar"},
37
38
  extensions=[
38
39
  {
39
40
  "id": "id",
@@ -143,6 +144,7 @@ class TestBrowserPools:
143
144
  browser_pool = client.browser_pools.update(
144
145
  id_or_name="id_or_name",
145
146
  size=10,
147
+ chrome_policy={"foo": "bar"},
146
148
  discard_all_idle=False,
147
149
  extensions=[
148
150
  {
@@ -454,6 +456,7 @@ class TestAsyncBrowserPools:
454
456
  async def test_method_create_with_all_params(self, async_client: AsyncKernel) -> None:
455
457
  browser_pool = await async_client.browser_pools.create(
456
458
  size=10,
459
+ chrome_policy={"foo": "bar"},
457
460
  extensions=[
458
461
  {
459
462
  "id": "id",
@@ -563,6 +566,7 @@ class TestAsyncBrowserPools:
563
566
  browser_pool = await async_client.browser_pools.update(
564
567
  id_or_name="id_or_name",
565
568
  size=10,
569
+ chrome_policy={"foo": "bar"},
566
570
  discard_all_idle=False,
567
571
  extensions=[
568
572
  {
@@ -148,6 +148,7 @@ class TestBrowsers:
148
148
  def test_method_update_with_all_params(self, client: Kernel) -> None:
149
149
  browser = client.browsers.update(
150
150
  id="htzv5orfit78e1m2biiifpbv",
151
+ disable_default_proxy=True,
151
152
  profile={
152
153
  "id": "id",
153
154
  "name": "name",
@@ -512,6 +513,7 @@ class TestAsyncBrowsers:
512
513
  async def test_method_update_with_all_params(self, async_client: AsyncKernel) -> None:
513
514
  browser = await async_client.browsers.update(
514
515
  id="htzv5orfit78e1m2biiifpbv",
516
+ disable_default_proxy=True,
515
517
  profile={
516
518
  "id": "id",
517
519
  "name": "name",
@@ -184,7 +184,16 @@ class TestProxies:
184
184
  @parametrize
185
185
  def test_method_check(self, client: Kernel) -> None:
186
186
  proxy = client.proxies.check(
187
- "id",
187
+ id="id",
188
+ )
189
+ assert_matches_type(ProxyCheckResponse, proxy, path=["response"])
190
+
191
+ @pytest.mark.skip(reason="Mock server tests are disabled")
192
+ @parametrize
193
+ def test_method_check_with_all_params(self, client: Kernel) -> None:
194
+ proxy = client.proxies.check(
195
+ id="id",
196
+ url="url",
188
197
  )
189
198
  assert_matches_type(ProxyCheckResponse, proxy, path=["response"])
190
199
 
@@ -192,7 +201,7 @@ class TestProxies:
192
201
  @parametrize
193
202
  def test_raw_response_check(self, client: Kernel) -> None:
194
203
  response = client.proxies.with_raw_response.check(
195
- "id",
204
+ id="id",
196
205
  )
197
206
 
198
207
  assert response.is_closed is True
@@ -204,7 +213,7 @@ class TestProxies:
204
213
  @parametrize
205
214
  def test_streaming_response_check(self, client: Kernel) -> None:
206
215
  with client.proxies.with_streaming_response.check(
207
- "id",
216
+ id="id",
208
217
  ) as response:
209
218
  assert not response.is_closed
210
219
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -219,7 +228,7 @@ class TestProxies:
219
228
  def test_path_params_check(self, client: Kernel) -> None:
220
229
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
221
230
  client.proxies.with_raw_response.check(
222
- "",
231
+ id="",
223
232
  )
224
233
 
225
234
 
@@ -390,7 +399,16 @@ class TestAsyncProxies:
390
399
  @parametrize
391
400
  async def test_method_check(self, async_client: AsyncKernel) -> None:
392
401
  proxy = await async_client.proxies.check(
393
- "id",
402
+ id="id",
403
+ )
404
+ assert_matches_type(ProxyCheckResponse, proxy, path=["response"])
405
+
406
+ @pytest.mark.skip(reason="Mock server tests are disabled")
407
+ @parametrize
408
+ async def test_method_check_with_all_params(self, async_client: AsyncKernel) -> None:
409
+ proxy = await async_client.proxies.check(
410
+ id="id",
411
+ url="url",
394
412
  )
395
413
  assert_matches_type(ProxyCheckResponse, proxy, path=["response"])
396
414
 
@@ -398,7 +416,7 @@ class TestAsyncProxies:
398
416
  @parametrize
399
417
  async def test_raw_response_check(self, async_client: AsyncKernel) -> None:
400
418
  response = await async_client.proxies.with_raw_response.check(
401
- "id",
419
+ id="id",
402
420
  )
403
421
 
404
422
  assert response.is_closed is True
@@ -410,7 +428,7 @@ class TestAsyncProxies:
410
428
  @parametrize
411
429
  async def test_streaming_response_check(self, async_client: AsyncKernel) -> None:
412
430
  async with async_client.proxies.with_streaming_response.check(
413
- "id",
431
+ id="id",
414
432
  ) as response:
415
433
  assert not response.is_closed
416
434
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -425,5 +443,5 @@ class TestAsyncProxies:
425
443
  async def test_path_params_check(self, async_client: AsyncKernel) -> None:
426
444
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
427
445
  await async_client.proxies.with_raw_response.check(
428
- "",
446
+ id="",
429
447
  )
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.44.0"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes