kernel 0.81.0__tar.gz → 0.82.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 (357) hide show
  1. kernel-0.82.0/.release-please-manifest.json +3 -0
  2. {kernel-0.81.0 → kernel-0.82.0}/CHANGELOG.md +10 -0
  3. {kernel-0.81.0 → kernel-0.82.0}/PKG-INFO +1 -1
  4. {kernel-0.81.0 → kernel-0.82.0}/api.md +1 -1
  5. {kernel-0.81.0 → kernel-0.82.0}/pyproject.toml +1 -1
  6. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_version.py +1 -1
  7. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/profiles.py +33 -7
  8. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/projects/projects.py +4 -4
  9. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/__init__.py +1 -0
  10. kernel-0.82.0/src/kernel/types/profile_download_params.py +15 -0
  11. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/project_create_params.py +1 -1
  12. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/project_update_params.py +1 -1
  13. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_profiles.py +37 -9
  14. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_projects.py +2 -2
  15. kernel-0.81.0/.release-please-manifest.json +0 -3
  16. {kernel-0.81.0 → kernel-0.82.0}/.gitignore +0 -0
  17. {kernel-0.81.0 → kernel-0.82.0}/CONTRIBUTING.md +0 -0
  18. {kernel-0.81.0 → kernel-0.82.0}/LICENSE +0 -0
  19. {kernel-0.81.0 → kernel-0.82.0}/README.md +0 -0
  20. {kernel-0.81.0 → kernel-0.82.0}/SECURITY.md +0 -0
  21. {kernel-0.81.0 → kernel-0.82.0}/bin/check-release-environment +0 -0
  22. {kernel-0.81.0 → kernel-0.82.0}/bin/publish-pypi +0 -0
  23. {kernel-0.81.0 → kernel-0.82.0}/examples/.keep +0 -0
  24. {kernel-0.81.0 → kernel-0.82.0}/examples/browser_routing.py +0 -0
  25. {kernel-0.81.0 → kernel-0.82.0}/examples/browser_telemetry.py +0 -0
  26. {kernel-0.81.0 → kernel-0.82.0}/noxfile.py +0 -0
  27. {kernel-0.81.0 → kernel-0.82.0}/release-please-config.json +0 -0
  28. {kernel-0.81.0 → kernel-0.82.0}/requirements-dev.lock +0 -0
  29. {kernel-0.81.0 → kernel-0.82.0}/requirements.lock +0 -0
  30. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/__init__.py +0 -0
  31. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_base_client.py +0 -0
  32. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_client.py +0 -0
  33. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_compat.py +0 -0
  34. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_constants.py +0 -0
  35. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_exceptions.py +0 -0
  36. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_files.py +0 -0
  37. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_models.py +0 -0
  38. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_qs.py +0 -0
  39. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_resource.py +0 -0
  40. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_response.py +0 -0
  41. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_streaming.py +0 -0
  42. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_types.py +0 -0
  43. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/__init__.py +0 -0
  44. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_compat.py +0 -0
  45. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_datetime_parse.py +0 -0
  46. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_json.py +0 -0
  47. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_logs.py +0 -0
  48. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_path.py +0 -0
  49. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_proxy.py +0 -0
  50. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_reflection.py +0 -0
  51. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_resources_proxy.py +0 -0
  52. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_streams.py +0 -0
  53. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_sync.py +0 -0
  54. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_transform.py +0 -0
  55. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_typing.py +0 -0
  56. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/_utils/_utils.py +0 -0
  57. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/app_framework.py +0 -0
  58. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/lib/.keep +0 -0
  59. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/lib/audit_log_download.py +0 -0
  60. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/lib/browser_routing/__init__.py +0 -0
  61. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/lib/browser_routing/raw_http.py +0 -0
  62. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/lib/browser_routing/routing.py +0 -0
  63. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/lib/browser_routing/util.py +0 -0
  64. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/pagination.py +0 -0
  65. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/py.typed +0 -0
  66. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/__init__.py +0 -0
  67. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/api_keys.py +0 -0
  68. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/apps.py +0 -0
  69. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/audit_logs.py +0 -0
  70. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/auth/__init__.py +0 -0
  71. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/auth/auth.py +0 -0
  72. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/auth/connections.py +0 -0
  73. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browser_pools.py +0 -0
  74. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/__init__.py +0 -0
  75. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/browsers.py +0 -0
  76. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/computer.py +0 -0
  77. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
  78. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
  79. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
  80. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/logs.py +0 -0
  81. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/playwright.py +0 -0
  82. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/process.py +0 -0
  83. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/replays.py +0 -0
  84. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/browsers/telemetry.py +0 -0
  85. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/credential_providers.py +0 -0
  86. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/credentials.py +0 -0
  87. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/deployments.py +0 -0
  88. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/extensions.py +0 -0
  89. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/invocations.py +0 -0
  90. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/organization/__init__.py +0 -0
  91. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/organization/limits.py +0 -0
  92. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/organization/organization.py +0 -0
  93. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/projects/__init__.py +0 -0
  94. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/projects/limits.py +0 -0
  95. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/resources/proxies.py +0 -0
  96. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/api_key.py +0 -0
  97. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/api_key_create_params.py +0 -0
  98. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/api_key_list_params.py +0 -0
  99. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/api_key_retrieve_params.py +0 -0
  100. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/api_key_rotate_params.py +0 -0
  101. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/api_key_update_params.py +0 -0
  102. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/app_list_params.py +0 -0
  103. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/app_list_response.py +0 -0
  104. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/audit_log_entry.py +0 -0
  105. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/audit_log_export_chunk_params.py +0 -0
  106. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/audit_log_list_params.py +0 -0
  107. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/__init__.py +0 -0
  108. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/connection_create_params.py +0 -0
  109. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/connection_follow_response.py +0 -0
  110. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/connection_list_params.py +0 -0
  111. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/connection_login_params.py +0 -0
  112. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
  113. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/connection_timeline_params.py +0 -0
  114. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/connection_update_params.py +0 -0
  115. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/login_response.py +0 -0
  116. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/managed_auth.py +0 -0
  117. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/managed_auth_timeline_event.py +0 -0
  118. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
  119. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_create_params.py +0 -0
  120. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_create_response.py +0 -0
  121. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_curl_params.py +0 -0
  122. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_curl_response.py +0 -0
  123. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_list_params.py +0 -0
  124. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_list_response.py +0 -0
  125. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
  126. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool.py +0 -0
  127. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
  128. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool_acquire_response.py +0 -0
  129. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool_create_params.py +0 -0
  130. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
  131. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool_list_params.py +0 -0
  132. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool_ref.py +0 -0
  133. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool_release_params.py +0 -0
  134. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_pool_update_params.py +0 -0
  135. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_retrieve_params.py +0 -0
  136. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_retrieve_response.py +0 -0
  137. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_update_params.py +0 -0
  138. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_update_response.py +0 -0
  139. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browser_usage.py +0 -0
  140. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/__init__.py +0 -0
  141. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_api_call_event.py +0 -0
  142. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_call_stack.py +0 -0
  143. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_captcha_solve_result_event.py +0 -0
  144. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_cdp_connect_event.py +0 -0
  145. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_cdp_disconnect_event.py +0 -0
  146. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_console_error_event.py +0 -0
  147. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_console_log_event.py +0 -0
  148. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_event_context.py +0 -0
  149. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_event_source.py +0 -0
  150. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_http_headers.py +0 -0
  151. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_interaction_click_event.py +0 -0
  152. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_interaction_key_event.py +0 -0
  153. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_interaction_scroll_settled_event.py +0 -0
  154. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_live_view_connect_event.py +0 -0
  155. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_live_view_disconnect_event.py +0 -0
  156. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_monitor_disconnected_event.py +0 -0
  157. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_monitor_init_failed_event.py +0 -0
  158. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_monitor_reconnect_failed_event.py +0 -0
  159. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_monitor_reconnected_event.py +0 -0
  160. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_monitor_screenshot_event.py +0 -0
  161. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_network_idle_event.py +0 -0
  162. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_network_loading_failed_event.py +0 -0
  163. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_network_request_event.py +0 -0
  164. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_network_response_event.py +0 -0
  165. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_page_dom_content_loaded_event.py +0 -0
  166. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_page_layout_settled_event.py +0 -0
  167. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_page_layout_shift_event.py +0 -0
  168. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_page_lcp_event.py +0 -0
  169. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_page_load_event.py +0 -0
  170. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_page_navigation_event.py +0 -0
  171. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_page_navigation_settled_event.py +0 -0
  172. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_page_tab_opened_event.py +0 -0
  173. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_service_crashed_event.py +0 -0
  174. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_system_oom_kill_event.py +0 -0
  175. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_telemetry_categories_config.py +0 -0
  176. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_telemetry_categories_config_param.py +0 -0
  177. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_telemetry_category_config.py +0 -0
  178. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_telemetry_category_config_param.py +0 -0
  179. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_telemetry_config.py +0 -0
  180. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/browser_telemetry_event.py +0 -0
  181. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
  182. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
  183. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
  184. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
  185. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
  186. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
  187. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
  188. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
  189. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
  190. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
  191. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
  192. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
  193. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
  194. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
  195. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
  196. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
  197. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
  198. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
  199. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
  200. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
  201. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
  202. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_move_params.py +0 -0
  203. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
  204. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
  205. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
  206. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
  207. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
  208. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
  209. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
  210. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
  211. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
  212. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
  213. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
  214. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
  215. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
  216. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
  217. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
  218. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
  219. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
  220. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
  221. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
  222. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
  223. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_status_response.py +0 -0
  224. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
  225. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
  226. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
  227. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
  228. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
  229. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
  230. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/telemetry_events_params.py +0 -0
  231. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/telemetry_events_response.py +0 -0
  232. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/telemetry_stream_params.py +0 -0
  233. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/browsers/telemetry_stream_response.py +0 -0
  234. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/created_api_key.py +0 -0
  235. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential.py +0 -0
  236. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_create_params.py +0 -0
  237. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_list_params.py +0 -0
  238. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_provider.py +0 -0
  239. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_provider_create_params.py +0 -0
  240. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_provider_item.py +0 -0
  241. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
  242. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_provider_list_params.py +0 -0
  243. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_provider_test_result.py +0 -0
  244. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_provider_update_params.py +0 -0
  245. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_totp_code_response.py +0 -0
  246. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/credential_update_params.py +0 -0
  247. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/deployment_create_params.py +0 -0
  248. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/deployment_create_response.py +0 -0
  249. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/deployment_follow_params.py +0 -0
  250. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/deployment_follow_response.py +0 -0
  251. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/deployment_list_params.py +0 -0
  252. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/deployment_list_response.py +0 -0
  253. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
  254. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/deployment_state_event.py +0 -0
  255. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
  256. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/extension_get_response.py +0 -0
  257. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/extension_list_params.py +0 -0
  258. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/extension_list_response.py +0 -0
  259. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/extension_upload_params.py +0 -0
  260. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/extension_upload_response.py +0 -0
  261. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_create_params.py +0 -0
  262. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_create_response.py +0 -0
  263. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_follow_params.py +0 -0
  264. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_follow_response.py +0 -0
  265. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_list_browsers_response.py +0 -0
  266. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_list_params.py +0 -0
  267. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_list_response.py +0 -0
  268. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
  269. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_state_event.py +0 -0
  270. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_update_params.py +0 -0
  271. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/invocation_update_response.py +0 -0
  272. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/organization/__init__.py +0 -0
  273. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/organization/limit_update_params.py +0 -0
  274. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/organization/org_limits.py +0 -0
  275. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/profile.py +0 -0
  276. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/profile_create_params.py +0 -0
  277. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/profile_list_params.py +0 -0
  278. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/profile_update_params.py +0 -0
  279. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/project.py +0 -0
  280. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/project_list_params.py +0 -0
  281. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/projects/__init__.py +0 -0
  282. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/projects/limit_update_params.py +0 -0
  283. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/projects/project_limits.py +0 -0
  284. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_check_params.py +0 -0
  285. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_check_response.py +0 -0
  286. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_create_params.py +0 -0
  287. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_create_response.py +0 -0
  288. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_list_params.py +0 -0
  289. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_list_response.py +0 -0
  290. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
  291. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_update_params.py +0 -0
  292. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/proxy_update_response.py +0 -0
  293. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/__init__.py +0 -0
  294. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/app_action.py +0 -0
  295. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/browser_extension.py +0 -0
  296. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/browser_profile.py +0 -0
  297. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/browser_viewport.py +0 -0
  298. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/error_detail.py +0 -0
  299. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/error_event.py +0 -0
  300. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/error_model.py +0 -0
  301. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
  302. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared/log_event.py +0 -0
  303. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared_params/__init__.py +0 -0
  304. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
  305. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
  306. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/shared_params/browser_viewport.py +0 -0
  307. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/tags.py +0 -0
  308. {kernel-0.81.0 → kernel-0.82.0}/src/kernel/types/tags_param.py +0 -0
  309. {kernel-0.81.0 → kernel-0.82.0}/tests/__init__.py +0 -0
  310. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/__init__.py +0 -0
  311. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/auth/__init__.py +0 -0
  312. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/auth/test_connections.py +0 -0
  313. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/__init__.py +0 -0
  314. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
  315. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
  316. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/test_computer.py +0 -0
  317. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/test_fs.py +0 -0
  318. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/test_logs.py +0 -0
  319. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/test_playwright.py +0 -0
  320. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/test_process.py +0 -0
  321. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/test_replays.py +0 -0
  322. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/browsers/test_telemetry.py +0 -0
  323. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/organization/__init__.py +0 -0
  324. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/organization/test_limits.py +0 -0
  325. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/projects/__init__.py +0 -0
  326. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/projects/test_limits.py +0 -0
  327. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_api_keys.py +0 -0
  328. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_apps.py +0 -0
  329. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_audit_logs.py +0 -0
  330. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_browser_pools.py +0 -0
  331. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_browsers.py +0 -0
  332. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_credential_providers.py +0 -0
  333. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_credentials.py +0 -0
  334. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_deployments.py +0 -0
  335. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_extensions.py +0 -0
  336. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_invocations.py +0 -0
  337. {kernel-0.81.0 → kernel-0.82.0}/tests/api_resources/test_proxies.py +0 -0
  338. {kernel-0.81.0 → kernel-0.82.0}/tests/conftest.py +0 -0
  339. {kernel-0.81.0 → kernel-0.82.0}/tests/sample_file.txt +0 -0
  340. {kernel-0.81.0 → kernel-0.82.0}/tests/test_audit_log_download.py +0 -0
  341. {kernel-0.81.0 → kernel-0.82.0}/tests/test_browser_routing.py +0 -0
  342. {kernel-0.81.0 → kernel-0.82.0}/tests/test_client.py +0 -0
  343. {kernel-0.81.0 → kernel-0.82.0}/tests/test_extract_files.py +0 -0
  344. {kernel-0.81.0 → kernel-0.82.0}/tests/test_files.py +0 -0
  345. {kernel-0.81.0 → kernel-0.82.0}/tests/test_models.py +0 -0
  346. {kernel-0.81.0 → kernel-0.82.0}/tests/test_pagination.py +0 -0
  347. {kernel-0.81.0 → kernel-0.82.0}/tests/test_qs.py +0 -0
  348. {kernel-0.81.0 → kernel-0.82.0}/tests/test_required_args.py +0 -0
  349. {kernel-0.81.0 → kernel-0.82.0}/tests/test_response.py +0 -0
  350. {kernel-0.81.0 → kernel-0.82.0}/tests/test_streaming.py +0 -0
  351. {kernel-0.81.0 → kernel-0.82.0}/tests/test_transform.py +0 -0
  352. {kernel-0.81.0 → kernel-0.82.0}/tests/test_utils/test_datetime_parse.py +0 -0
  353. {kernel-0.81.0 → kernel-0.82.0}/tests/test_utils/test_json.py +0 -0
  354. {kernel-0.81.0 → kernel-0.82.0}/tests/test_utils/test_path.py +0 -0
  355. {kernel-0.81.0 → kernel-0.82.0}/tests/test_utils/test_proxy.py +0 -0
  356. {kernel-0.81.0 → kernel-0.82.0}/tests/test_utils/test_typing.py +0 -0
  357. {kernel-0.81.0 → kernel-0.82.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.82.0"
3
+ }
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.82.0 (2026-07-23)
4
+
5
+ Full Changelog: [v0.81.0...v0.82.0](https://github.com/kernel/kernel-python-sdk/compare/v0.81.0...v0.82.0)
6
+
7
+ ### Features
8
+
9
+ * Count project names by Unicode code point ([cecdf6d](https://github.com/kernel/kernel-python-sdk/commit/cecdf6d4a4ef7919b6eef5d03f76542b6ade0906))
10
+ * Stream profile downloads as tar archives ([3a2eb97](https://github.com/kernel/kernel-python-sdk/commit/3a2eb97686f3ecf02db16d7bccea803476cb730f))
11
+ * Use format-neutral profile download Accept header ([95d1334](https://github.com/kernel/kernel-python-sdk/commit/95d1334660d2ebaed70d2170233e4bdf3b074958))
12
+
3
13
  ## 0.81.0 (2026-07-21)
4
14
 
5
15
  Full Changelog: [v0.80.0...v0.81.0](https://github.com/kernel/kernel-python-sdk/compare/v0.80.0...v0.81.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kernel
3
- Version: 0.81.0
3
+ Version: 0.82.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
@@ -288,7 +288,7 @@ Methods:
288
288
  - <code title="patch /profiles/{id_or_name}">client.profiles.<a href="./src/kernel/resources/profiles.py">update</a>(id_or_name, \*\*<a href="src/kernel/types/profile_update_params.py">params</a>) -> <a href="./src/kernel/types/profile.py">Profile</a></code>
289
289
  - <code title="get /profiles">client.profiles.<a href="./src/kernel/resources/profiles.py">list</a>(\*\*<a href="src/kernel/types/profile_list_params.py">params</a>) -> <a href="./src/kernel/types/profile.py">SyncOffsetPagination[Profile]</a></code>
290
290
  - <code title="delete /profiles/{id_or_name}">client.profiles.<a href="./src/kernel/resources/profiles.py">delete</a>(id_or_name) -> None</code>
291
- - <code title="get /profiles/{id_or_name}/download">client.profiles.<a href="./src/kernel/resources/profiles.py">download</a>(id_or_name) -> BinaryAPIResponse</code>
291
+ - <code title="get /profiles/{id_or_name}/download">client.profiles.<a href="./src/kernel/resources/profiles.py">download</a>(id_or_name, \*\*<a href="src/kernel/types/profile_download_params.py">params</a>) -> BinaryAPIResponse</code>
292
292
 
293
293
  # Auth
294
294
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kernel"
3
- version = "0.81.0"
3
+ version = "0.82.0"
4
4
  description = "The official Python library for the kernel API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "kernel"
4
- __version__ = "0.81.0" # x-release-please-version
4
+ __version__ = "0.82.0" # x-release-please-version
@@ -2,9 +2,11 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing_extensions import Literal
6
+
5
7
  import httpx
6
8
 
7
- from ..types import profile_list_params, profile_create_params, profile_update_params
9
+ from ..types import profile_list_params, profile_create_params, profile_update_params, profile_download_params
8
10
  from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
9
11
  from .._utils import path_template, maybe_transform, async_maybe_transform
10
12
  from .._compat import cached_property
@@ -264,6 +266,7 @@ class ProfilesResource(SyncAPIResource):
264
266
  self,
265
267
  id_or_name: str,
266
268
  *,
269
+ format: Literal["tar.zst", "tar"] | Omit = omit,
267
270
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
268
271
  # The extra values given here take precedence over values defined on the client or passed to this method.
269
272
  extra_headers: Headers | None = None,
@@ -271,10 +274,17 @@ class ProfilesResource(SyncAPIResource):
271
274
  extra_body: Body | None = None,
272
275
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
273
276
  ) -> BinaryAPIResponse:
274
- """
275
- Returns a zstd-compressed tar file of the full user-data directory.
277
+ """Downloads the profile in its stored format by default.
278
+
279
+ Current profiles are
280
+ returned as zstd-compressed tar archives, while legacy profiles remain JSON. Set
281
+ `format=tar` to decompress current profiles during download; legacy profiles
282
+ remain JSON.
276
283
 
277
284
  Args:
285
+ format: Response format for current profile archives. Legacy profiles are always
286
+ returned as JSON.
287
+
278
288
  extra_headers: Send extra headers
279
289
 
280
290
  extra_query: Add additional query parameters to the request
@@ -289,7 +299,11 @@ class ProfilesResource(SyncAPIResource):
289
299
  return self._get(
290
300
  path_template("/profiles/{id_or_name}/download", id_or_name=id_or_name),
291
301
  options=make_request_options(
292
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
302
+ extra_headers=extra_headers,
303
+ extra_query=extra_query,
304
+ extra_body=extra_body,
305
+ timeout=timeout,
306
+ query=maybe_transform({"format": format}, profile_download_params.ProfileDownloadParams),
293
307
  ),
294
308
  cast_to=BinaryAPIResponse,
295
309
  )
@@ -529,6 +543,7 @@ class AsyncProfilesResource(AsyncAPIResource):
529
543
  self,
530
544
  id_or_name: str,
531
545
  *,
546
+ format: Literal["tar.zst", "tar"] | Omit = omit,
532
547
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
533
548
  # The extra values given here take precedence over values defined on the client or passed to this method.
534
549
  extra_headers: Headers | None = None,
@@ -536,10 +551,17 @@ class AsyncProfilesResource(AsyncAPIResource):
536
551
  extra_body: Body | None = None,
537
552
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
538
553
  ) -> AsyncBinaryAPIResponse:
539
- """
540
- Returns a zstd-compressed tar file of the full user-data directory.
554
+ """Downloads the profile in its stored format by default.
555
+
556
+ Current profiles are
557
+ returned as zstd-compressed tar archives, while legacy profiles remain JSON. Set
558
+ `format=tar` to decompress current profiles during download; legacy profiles
559
+ remain JSON.
541
560
 
542
561
  Args:
562
+ format: Response format for current profile archives. Legacy profiles are always
563
+ returned as JSON.
564
+
543
565
  extra_headers: Send extra headers
544
566
 
545
567
  extra_query: Add additional query parameters to the request
@@ -554,7 +576,11 @@ class AsyncProfilesResource(AsyncAPIResource):
554
576
  return await self._get(
555
577
  path_template("/profiles/{id_or_name}/download", id_or_name=id_or_name),
556
578
  options=make_request_options(
557
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
579
+ extra_headers=extra_headers,
580
+ extra_query=extra_query,
581
+ extra_body=extra_body,
582
+ timeout=timeout,
583
+ query=await async_maybe_transform({"format": format}, profile_download_params.ProfileDownloadParams),
558
584
  ),
559
585
  cast_to=AsyncBinaryAPIResponse,
560
586
  )
@@ -74,7 +74,7 @@ class ProjectsResource(SyncAPIResource):
74
74
  Create a new project within the authenticated organization.
75
75
 
76
76
  Args:
77
- name: Project name (1-255 characters)
77
+ name: Project name (1-255 Unicode code points)
78
78
 
79
79
  extra_headers: Send extra headers
80
80
 
@@ -144,7 +144,7 @@ class ProjectsResource(SyncAPIResource):
144
144
  Update a project's name or status.
145
145
 
146
146
  Args:
147
- name: New project name
147
+ name: New project name (1-255 Unicode code points)
148
148
 
149
149
  status: New project status
150
150
 
@@ -307,7 +307,7 @@ class AsyncProjectsResource(AsyncAPIResource):
307
307
  Create a new project within the authenticated organization.
308
308
 
309
309
  Args:
310
- name: Project name (1-255 characters)
310
+ name: Project name (1-255 Unicode code points)
311
311
 
312
312
  extra_headers: Send extra headers
313
313
 
@@ -377,7 +377,7 @@ class AsyncProjectsResource(AsyncAPIResource):
377
377
  Update a project's name or status.
378
378
 
379
379
  Args:
380
- name: New project name
380
+ name: New project name (1-255 Unicode code points)
381
381
 
382
382
  status: New project status
383
383
 
@@ -67,6 +67,7 @@ from .browser_retrieve_params import BrowserRetrieveParams as BrowserRetrievePar
67
67
  from .browser_update_response import BrowserUpdateResponse as BrowserUpdateResponse
68
68
  from .extension_list_response import ExtensionListResponse as ExtensionListResponse
69
69
  from .extension_upload_params import ExtensionUploadParams as ExtensionUploadParams
70
+ from .profile_download_params import ProfileDownloadParams as ProfileDownloadParams
70
71
  from .proxy_retrieve_response import ProxyRetrieveResponse as ProxyRetrieveResponse
71
72
  from .browser_pool_list_params import BrowserPoolListParams as BrowserPoolListParams
72
73
  from .credential_create_params import CredentialCreateParams as CredentialCreateParams
@@ -0,0 +1,15 @@
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 Literal, TypedDict
6
+
7
+ __all__ = ["ProfileDownloadParams"]
8
+
9
+
10
+ class ProfileDownloadParams(TypedDict, total=False):
11
+ format: Literal["tar.zst", "tar"]
12
+ """Response format for current profile archives.
13
+
14
+ Legacy profiles are always returned as JSON.
15
+ """
@@ -9,4 +9,4 @@ __all__ = ["ProjectCreateParams"]
9
9
 
10
10
  class ProjectCreateParams(TypedDict, total=False):
11
11
  name: Required[str]
12
- """Project name (1-255 characters)"""
12
+ """Project name (1-255 Unicode code points)"""
@@ -9,7 +9,7 @@ __all__ = ["ProjectUpdateParams"]
9
9
 
10
10
  class ProjectUpdateParams(TypedDict, total=False):
11
11
  name: str
12
- """New project name"""
12
+ """New project name (1-255 Unicode code points)"""
13
13
 
14
14
  status: Literal["active", "archived"]
15
15
  """New project status"""
@@ -11,7 +11,9 @@ from respx import MockRouter
11
11
 
12
12
  from kernel import Kernel, AsyncKernel
13
13
  from tests.utils import assert_matches_type
14
- from kernel.types import Profile
14
+ from kernel.types import (
15
+ Profile,
16
+ )
15
17
  from kernel._response import (
16
18
  BinaryAPIResponse,
17
19
  AsyncBinaryAPIResponse,
@@ -236,7 +238,20 @@ class TestProfiles:
236
238
  def test_method_download(self, client: Kernel, respx_mock: MockRouter) -> None:
237
239
  respx_mock.get("/profiles/id_or_name/download").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
238
240
  profile = client.profiles.download(
239
- "id_or_name",
241
+ id_or_name="id_or_name",
242
+ )
243
+ assert profile.is_closed
244
+ assert profile.json() == {"foo": "bar"}
245
+ assert cast(Any, profile.is_closed) is True
246
+ assert isinstance(profile, BinaryAPIResponse)
247
+
248
+ @parametrize
249
+ @pytest.mark.respx(base_url=base_url)
250
+ def test_method_download_with_all_params(self, client: Kernel, respx_mock: MockRouter) -> None:
251
+ respx_mock.get("/profiles/id_or_name/download").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
252
+ profile = client.profiles.download(
253
+ id_or_name="id_or_name",
254
+ format="tar.zst",
240
255
  )
241
256
  assert profile.is_closed
242
257
  assert profile.json() == {"foo": "bar"}
@@ -249,7 +264,7 @@ class TestProfiles:
249
264
  respx_mock.get("/profiles/id_or_name/download").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
250
265
 
251
266
  profile = client.profiles.with_raw_response.download(
252
- "id_or_name",
267
+ id_or_name="id_or_name",
253
268
  )
254
269
 
255
270
  assert profile.is_closed is True
@@ -262,7 +277,7 @@ class TestProfiles:
262
277
  def test_streaming_response_download(self, client: Kernel, respx_mock: MockRouter) -> None:
263
278
  respx_mock.get("/profiles/id_or_name/download").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
264
279
  with client.profiles.with_streaming_response.download(
265
- "id_or_name",
280
+ id_or_name="id_or_name",
266
281
  ) as profile:
267
282
  assert not profile.is_closed
268
283
  assert profile.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -278,7 +293,7 @@ class TestProfiles:
278
293
  def test_path_params_download(self, client: Kernel) -> None:
279
294
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id_or_name` but received ''"):
280
295
  client.profiles.with_raw_response.download(
281
- "",
296
+ id_or_name="",
282
297
  )
283
298
 
284
299
 
@@ -497,7 +512,20 @@ class TestAsyncProfiles:
497
512
  async def test_method_download(self, async_client: AsyncKernel, respx_mock: MockRouter) -> None:
498
513
  respx_mock.get("/profiles/id_or_name/download").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
499
514
  profile = await async_client.profiles.download(
500
- "id_or_name",
515
+ id_or_name="id_or_name",
516
+ )
517
+ assert profile.is_closed
518
+ assert await profile.json() == {"foo": "bar"}
519
+ assert cast(Any, profile.is_closed) is True
520
+ assert isinstance(profile, AsyncBinaryAPIResponse)
521
+
522
+ @parametrize
523
+ @pytest.mark.respx(base_url=base_url)
524
+ async def test_method_download_with_all_params(self, async_client: AsyncKernel, respx_mock: MockRouter) -> None:
525
+ respx_mock.get("/profiles/id_or_name/download").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
526
+ profile = await async_client.profiles.download(
527
+ id_or_name="id_or_name",
528
+ format="tar.zst",
501
529
  )
502
530
  assert profile.is_closed
503
531
  assert await profile.json() == {"foo": "bar"}
@@ -510,7 +538,7 @@ class TestAsyncProfiles:
510
538
  respx_mock.get("/profiles/id_or_name/download").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
511
539
 
512
540
  profile = await async_client.profiles.with_raw_response.download(
513
- "id_or_name",
541
+ id_or_name="id_or_name",
514
542
  )
515
543
 
516
544
  assert profile.is_closed is True
@@ -523,7 +551,7 @@ class TestAsyncProfiles:
523
551
  async def test_streaming_response_download(self, async_client: AsyncKernel, respx_mock: MockRouter) -> None:
524
552
  respx_mock.get("/profiles/id_or_name/download").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
525
553
  async with async_client.profiles.with_streaming_response.download(
526
- "id_or_name",
554
+ id_or_name="id_or_name",
527
555
  ) as profile:
528
556
  assert not profile.is_closed
529
557
  assert profile.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -539,5 +567,5 @@ class TestAsyncProfiles:
539
567
  async def test_path_params_download(self, async_client: AsyncKernel) -> None:
540
568
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id_or_name` but received ''"):
541
569
  await async_client.profiles.with_raw_response.download(
542
- "",
570
+ id_or_name="",
543
571
  )
@@ -107,7 +107,7 @@ class TestProjects:
107
107
  def test_method_update_with_all_params(self, client: Kernel) -> None:
108
108
  project = client.projects.update(
109
109
  id="id",
110
- name="name",
110
+ name="x",
111
111
  status="active",
112
112
  )
113
113
  assert_matches_type(Project, project, path=["response"])
@@ -322,7 +322,7 @@ class TestAsyncProjects:
322
322
  async def test_method_update_with_all_params(self, async_client: AsyncKernel) -> None:
323
323
  project = await async_client.projects.update(
324
324
  id="id",
325
- name="name",
325
+ name="x",
326
326
  status="active",
327
327
  )
328
328
  assert_matches_type(Project, project, path=["response"])
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.81.0"
3
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes