runloop-api-client 0.18.0__tar.gz → 0.19.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 (249) hide show
  1. runloop_api_client-0.19.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/CHANGELOG.md +9 -0
  3. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/PKG-INFO +1 -1
  4. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/api.md +2 -0
  5. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/pyproject.toml +1 -1
  6. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +112 -11
  8. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/scenarios/runs.py +286 -0
  9. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/scenarios/scenarios.py +117 -2
  10. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/__init__.py +2 -0
  11. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -6
  12. runloop_api_client-0.19.0/src/runloop_api_client/types/benchmark_list_public_params.py +15 -0
  13. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_run_view.py +4 -1
  14. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_list_params.py +1 -1
  15. runloop_api_client-0.19.0/src/runloop_api_client/types/scenario_list_public_params.py +18 -0
  16. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/test_benchmarks.py +66 -2
  17. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/test_scenarios.py +70 -2
  18. runloop_api_client-0.18.0/.release-please-manifest.json +0 -3
  19. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/.gitignore +0 -0
  20. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/CONTRIBUTING.md +0 -0
  21. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/LICENSE +0 -0
  22. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/README.md +0 -0
  23. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/SECURITY.md +0 -0
  24. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/bin/check-release-environment +0 -0
  25. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/bin/publish-pypi +0 -0
  26. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/examples/.keep +0 -0
  27. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/mypy.ini +0 -0
  28. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/noxfile.py +0 -0
  29. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/release-please-config.json +0 -0
  30. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/requirements-dev.lock +0 -0
  31. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/requirements.lock +0 -0
  32. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop/lib/.keep +0 -0
  33. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/__init__.py +0 -0
  34. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_base_client.py +0 -0
  35. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_client.py +0 -0
  36. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_compat.py +0 -0
  37. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_constants.py +0 -0
  38. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_exceptions.py +0 -0
  39. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_files.py +0 -0
  40. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_models.py +0 -0
  41. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_qs.py +0 -0
  42. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_resource.py +0 -0
  43. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_response.py +0 -0
  44. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_streaming.py +0 -0
  45. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_types.py +0 -0
  46. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  47. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  48. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  49. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  50. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  51. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  52. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  53. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  54. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  55. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/lib/.keep +0 -0
  56. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/lib/polling.py +0 -0
  57. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  58. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/pagination.py +0 -0
  59. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/py.typed +0 -0
  60. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/__init__.py +0 -0
  61. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  62. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  63. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  64. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  65. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  66. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  67. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/devboxes.py +3 -3
  68. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  69. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  70. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
  71. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/repositories.py +0 -0
  72. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  73. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  74. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_list_view.py +0 -0
  75. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  76. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  77. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  78. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  79. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  80. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  81. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  82. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  83. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  84. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  85. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  86. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  87. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  88. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  89. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  90. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  91. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  92. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  93. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  94. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  95. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  96. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  97. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  98. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  99. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  100. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  101. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  102. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  103. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  104. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  105. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  106. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  107. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  108. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  109. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  110. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  111. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  112. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  113. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  114. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  115. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  116. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  117. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  118. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  119. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  120. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  121. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  122. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  123. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  124. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  125. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  126. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  127. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  128. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  129. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  130. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  131. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  132. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  133. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  134. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  135. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  136. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  137. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  138. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  139. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  140. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  141. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  142. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  143. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  144. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  145. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  146. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  147. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  148. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  149. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  150. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  151. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  152. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  153. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  154. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  155. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  156. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  157. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  158. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  159. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  160. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  161. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  162. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  163. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  164. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  165. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  166. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  167. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  168. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  169. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  170. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  171. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  172. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  173. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  174. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  175. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  176. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  177. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  178. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  179. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  180. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  181. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  182. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  183. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  184. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  185. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  186. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  187. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  188. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/input_context.py +0 -0
  189. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  190. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  191. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  192. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  193. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  194. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_version_details.py +0 -0
  195. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_version_list_view.py +0 -0
  196. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  197. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  198. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  199. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_list_view.py +0 -0
  200. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  201. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  202. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  203. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  204. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  205. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  206. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  207. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  208. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  209. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  210. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  211. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  212. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  213. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  214. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  215. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  216. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  217. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  218. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  219. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  220. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/__init__.py +0 -0
  221. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/__init__.py +0 -0
  222. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  223. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  224. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/__init__.py +0 -0
  225. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  226. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  227. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  228. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  229. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  230. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/scenarios/__init__.py +0 -0
  231. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  232. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/test_blueprints.py +0 -0
  233. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/test_devboxes.py +0 -0
  234. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/api_resources/test_repositories.py +0 -0
  235. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/conftest.py +0 -0
  236. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/sample_file.txt +0 -0
  237. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_client.py +0 -0
  238. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_deepcopy.py +0 -0
  239. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_extract_files.py +0 -0
  240. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_files.py +0 -0
  241. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_models.py +0 -0
  242. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_qs.py +0 -0
  243. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_required_args.py +0 -0
  244. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_response.py +0 -0
  245. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_streaming.py +0 -0
  246. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_transform.py +0 -0
  247. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_utils/test_proxy.py +0 -0
  248. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/test_utils/test_typing.py +0 -0
  249. {runloop_api_client-0.18.0 → runloop_api_client-0.19.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.19.0"
3
+ }
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.19.0 (2025-02-03)
4
+
5
+ Full Changelog: [v0.18.0...v0.19.0](https://github.com/runloopai/api-client-python/compare/v0.18.0...v0.19.0)
6
+
7
+ ### Features
8
+
9
+ * add helper methods for scenarios ([551fcfc](https://github.com/runloopai/api-client-python/commit/551fcfc1dc5b8b67c0c6179d49c3eef2c0a38676))
10
+ * **api:** api update ([#520](https://github.com/runloopai/api-client-python/issues/520)) ([750b4ba](https://github.com/runloopai/api-client-python/commit/750b4ba51cc0c848258113af8bf882ceb679bf9e))
11
+
3
12
  ## 0.18.0 (2025-02-01)
4
13
 
5
14
  Full Changelog: [v0.17.0...v0.18.0](https://github.com/runloopai/api-client-python/compare/v0.17.0...v0.18.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runloop_api_client
3
- Version: 0.18.0
3
+ Version: 0.19.0
4
4
  Summary: The official Python library for the runloop API
5
5
  Project-URL: Homepage, https://github.com/runloopai/api-client-python
6
6
  Project-URL: Repository, https://github.com/runloopai/api-client-python
@@ -24,6 +24,7 @@ Methods:
24
24
  - <code title="post /v1/benchmarks">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">create</a>(\*\*<a href="src/runloop_api_client/types/benchmark_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">BenchmarkView</a></code>
25
25
  - <code title="get /v1/benchmarks/{id}">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_view.py">BenchmarkView</a></code>
26
26
  - <code title="get /v1/benchmarks">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">list</a>(\*\*<a href="src/runloop_api_client/types/benchmark_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">SyncBenchmarksCursorIDPage[BenchmarkView]</a></code>
27
+ - <code title="get /v1/benchmarks/list_public">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/benchmark_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">SyncBenchmarksCursorIDPage[BenchmarkView]</a></code>
27
28
  - <code title="post /v1/benchmarks/start_run">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">start_run</a>(\*\*<a href="src/runloop_api_client/types/benchmark_start_run_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">BenchmarkRunView</a></code>
28
29
 
29
30
  ## Runs
@@ -261,6 +262,7 @@ Methods:
261
262
  - <code title="post /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">create</a>(\*\*<a href="src/runloop_api_client/types/scenario_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
262
263
  - <code title="get /v1/scenarios/{id}">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
263
264
  - <code title="get /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">SyncScenariosCursorIDPage[ScenarioView]</a></code>
265
+ - <code title="get /v1/scenarios/list_public">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">SyncScenariosCursorIDPage[ScenarioView]</a></code>
264
266
  - <code title="post /v1/scenarios/start_run">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">start_run</a>(\*\*<a href="src/runloop_api_client/types/scenario_start_run_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
265
267
 
266
268
  ## Runs
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.18.0"
3
+ version = "0.19.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "0.18.0" # x-release-please-version
4
+ __version__ = "0.19.0" # x-release-please-version
@@ -14,7 +14,12 @@ from .runs import (
14
14
  RunsResourceWithStreamingResponse,
15
15
  AsyncRunsResourceWithStreamingResponse,
16
16
  )
17
- from ...types import benchmark_list_params, benchmark_create_params, benchmark_start_run_params
17
+ from ...types import (
18
+ benchmark_list_params,
19
+ benchmark_create_params,
20
+ benchmark_start_run_params,
21
+ benchmark_list_public_params,
22
+ )
18
23
  from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
19
24
  from ..._utils import (
20
25
  maybe_transform,
@@ -147,7 +152,6 @@ class BenchmarksResource(SyncAPIResource):
147
152
  self,
148
153
  *,
149
154
  limit: int | NotGiven = NOT_GIVEN,
150
- public: bool | NotGiven = NOT_GIVEN,
151
155
  starting_after: str | NotGiven = NOT_GIVEN,
152
156
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
153
157
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -162,9 +166,6 @@ class BenchmarksResource(SyncAPIResource):
162
166
  Args:
163
167
  limit: The limit of items to return. Default is 20.
164
168
 
165
- public: List public benchmarks, e.g. SWE-bench. Defaults to false, i.e. only
166
- user-defined benchmarks are listed.
167
-
168
169
  starting_after: Load the next page of data starting after the item with the given ID.
169
170
 
170
171
  extra_headers: Send extra headers
@@ -186,7 +187,6 @@ class BenchmarksResource(SyncAPIResource):
186
187
  query=maybe_transform(
187
188
  {
188
189
  "limit": limit,
189
- "public": public,
190
190
  "starting_after": starting_after,
191
191
  },
192
192
  benchmark_list_params.BenchmarkListParams,
@@ -195,6 +195,53 @@ class BenchmarksResource(SyncAPIResource):
195
195
  model=BenchmarkView,
196
196
  )
197
197
 
198
+ def list_public(
199
+ self,
200
+ *,
201
+ limit: int | NotGiven = NOT_GIVEN,
202
+ starting_after: str | NotGiven = NOT_GIVEN,
203
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
204
+ # The extra values given here take precedence over values defined on the client or passed to this method.
205
+ extra_headers: Headers | None = None,
206
+ extra_query: Query | None = None,
207
+ extra_body: Body | None = None,
208
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
209
+ ) -> SyncBenchmarksCursorIDPage[BenchmarkView]:
210
+ """
211
+ List all public benchmarks matching filter.
212
+
213
+ Args:
214
+ limit: The limit of items to return. Default is 20.
215
+
216
+ starting_after: Load the next page of data starting after the item with the given ID.
217
+
218
+ extra_headers: Send extra headers
219
+
220
+ extra_query: Add additional query parameters to the request
221
+
222
+ extra_body: Add additional JSON properties to the request
223
+
224
+ timeout: Override the client-level default timeout for this request, in seconds
225
+ """
226
+ return self._get_api_list(
227
+ "/v1/benchmarks/list_public",
228
+ page=SyncBenchmarksCursorIDPage[BenchmarkView],
229
+ options=make_request_options(
230
+ extra_headers=extra_headers,
231
+ extra_query=extra_query,
232
+ extra_body=extra_body,
233
+ timeout=timeout,
234
+ query=maybe_transform(
235
+ {
236
+ "limit": limit,
237
+ "starting_after": starting_after,
238
+ },
239
+ benchmark_list_public_params.BenchmarkListPublicParams,
240
+ ),
241
+ ),
242
+ model=BenchmarkView,
243
+ )
244
+
198
245
  def start_run(
199
246
  self,
200
247
  *,
@@ -357,7 +404,6 @@ class AsyncBenchmarksResource(AsyncAPIResource):
357
404
  self,
358
405
  *,
359
406
  limit: int | NotGiven = NOT_GIVEN,
360
- public: bool | NotGiven = NOT_GIVEN,
361
407
  starting_after: str | NotGiven = NOT_GIVEN,
362
408
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
363
409
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -372,9 +418,6 @@ class AsyncBenchmarksResource(AsyncAPIResource):
372
418
  Args:
373
419
  limit: The limit of items to return. Default is 20.
374
420
 
375
- public: List public benchmarks, e.g. SWE-bench. Defaults to false, i.e. only
376
- user-defined benchmarks are listed.
377
-
378
421
  starting_after: Load the next page of data starting after the item with the given ID.
379
422
 
380
423
  extra_headers: Send extra headers
@@ -396,7 +439,6 @@ class AsyncBenchmarksResource(AsyncAPIResource):
396
439
  query=maybe_transform(
397
440
  {
398
441
  "limit": limit,
399
- "public": public,
400
442
  "starting_after": starting_after,
401
443
  },
402
444
  benchmark_list_params.BenchmarkListParams,
@@ -405,6 +447,53 @@ class AsyncBenchmarksResource(AsyncAPIResource):
405
447
  model=BenchmarkView,
406
448
  )
407
449
 
450
+ def list_public(
451
+ self,
452
+ *,
453
+ limit: int | NotGiven = NOT_GIVEN,
454
+ starting_after: str | NotGiven = NOT_GIVEN,
455
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
456
+ # The extra values given here take precedence over values defined on the client or passed to this method.
457
+ extra_headers: Headers | None = None,
458
+ extra_query: Query | None = None,
459
+ extra_body: Body | None = None,
460
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
461
+ ) -> AsyncPaginator[BenchmarkView, AsyncBenchmarksCursorIDPage[BenchmarkView]]:
462
+ """
463
+ List all public benchmarks matching filter.
464
+
465
+ Args:
466
+ limit: The limit of items to return. Default is 20.
467
+
468
+ starting_after: Load the next page of data starting after the item with the given ID.
469
+
470
+ extra_headers: Send extra headers
471
+
472
+ extra_query: Add additional query parameters to the request
473
+
474
+ extra_body: Add additional JSON properties to the request
475
+
476
+ timeout: Override the client-level default timeout for this request, in seconds
477
+ """
478
+ return self._get_api_list(
479
+ "/v1/benchmarks/list_public",
480
+ page=AsyncBenchmarksCursorIDPage[BenchmarkView],
481
+ options=make_request_options(
482
+ extra_headers=extra_headers,
483
+ extra_query=extra_query,
484
+ extra_body=extra_body,
485
+ timeout=timeout,
486
+ query=maybe_transform(
487
+ {
488
+ "limit": limit,
489
+ "starting_after": starting_after,
490
+ },
491
+ benchmark_list_public_params.BenchmarkListPublicParams,
492
+ ),
493
+ ),
494
+ model=BenchmarkView,
495
+ )
496
+
408
497
  async def start_run(
409
498
  self,
410
499
  *,
@@ -469,6 +558,9 @@ class BenchmarksResourceWithRawResponse:
469
558
  self.list = to_raw_response_wrapper(
470
559
  benchmarks.list,
471
560
  )
561
+ self.list_public = to_raw_response_wrapper(
562
+ benchmarks.list_public,
563
+ )
472
564
  self.start_run = to_raw_response_wrapper(
473
565
  benchmarks.start_run,
474
566
  )
@@ -491,6 +583,9 @@ class AsyncBenchmarksResourceWithRawResponse:
491
583
  self.list = async_to_raw_response_wrapper(
492
584
  benchmarks.list,
493
585
  )
586
+ self.list_public = async_to_raw_response_wrapper(
587
+ benchmarks.list_public,
588
+ )
494
589
  self.start_run = async_to_raw_response_wrapper(
495
590
  benchmarks.start_run,
496
591
  )
@@ -513,6 +608,9 @@ class BenchmarksResourceWithStreamingResponse:
513
608
  self.list = to_streamed_response_wrapper(
514
609
  benchmarks.list,
515
610
  )
611
+ self.list_public = to_streamed_response_wrapper(
612
+ benchmarks.list_public,
613
+ )
516
614
  self.start_run = to_streamed_response_wrapper(
517
615
  benchmarks.start_run,
518
616
  )
@@ -535,6 +633,9 @@ class AsyncBenchmarksResourceWithStreamingResponse:
535
633
  self.list = async_to_streamed_response_wrapper(
536
634
  benchmarks.list,
537
635
  )
636
+ self.list_public = async_to_streamed_response_wrapper(
637
+ benchmarks.list_public,
638
+ )
538
639
  self.start_run = async_to_streamed_response_wrapper(
539
640
  benchmarks.start_run,
540
641
  )
@@ -15,8 +15,11 @@ from ..._response import (
15
15
  async_to_streamed_response_wrapper,
16
16
  )
17
17
  from ...pagination import SyncBenchmarkRunsCursorIDPage, AsyncBenchmarkRunsCursorIDPage
18
+ from ..._exceptions import RunloopError
19
+ from ...lib.polling import PollingConfig, poll_until
18
20
  from ..._base_client import AsyncPaginator, make_request_options
19
21
  from ...types.scenarios import run_list_params
22
+ from ...lib.polling_async import async_poll_until
20
23
  from ...types.scenario_run_view import ScenarioRunView
21
24
 
22
25
  __all__ = ["RunsResource", "AsyncRunsResource"]
@@ -206,6 +209,147 @@ class RunsResource(SyncAPIResource):
206
209
  cast_to=ScenarioRunView,
207
210
  )
208
211
 
212
+ def await_scored(
213
+ self,
214
+ id: str,
215
+ *,
216
+ polling_config: PollingConfig | None = None,
217
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
218
+ # The extra values given here take precedence over values defined on the client or passed to this method.
219
+ extra_headers: Headers | None = None,
220
+ extra_query: Query | None = None,
221
+ extra_body: Body | None = None,
222
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
223
+ ) -> ScenarioRunView:
224
+ """Wait for a scenario run to be scored.
225
+
226
+ Args:
227
+ id: The ID of the scenario run to wait for
228
+ polling_config: Optional polling configuration
229
+ extra_headers: Send extra headers
230
+ extra_query: Add additional query parameters to the request
231
+ extra_body: Add additional JSON properties to the request
232
+ timeout: Override the client-level default timeout for this request, in seconds
233
+
234
+ Returns:
235
+ The scored scenario run
236
+
237
+ Raises:
238
+ PollingTimeout: If polling times out before scenario run is scored
239
+ RunloopError: If scenario run enters a non-scored terminal state
240
+ """
241
+ def retrieve_run() -> ScenarioRunView:
242
+ return self.retrieve(
243
+ id,
244
+ extra_headers=extra_headers,
245
+ extra_query=extra_query,
246
+ extra_body=extra_body,
247
+ timeout=timeout
248
+ )
249
+
250
+ def is_done_scoring(run: ScenarioRunView) -> bool:
251
+ return run.state not in ["scoring"]
252
+
253
+ run = poll_until(retrieve_run, is_done_scoring, polling_config)
254
+
255
+ if run.state != "scored":
256
+ raise RunloopError(
257
+ f"Scenario run entered non-scored state unexpectedly: {run.state}"
258
+ )
259
+
260
+ return run
261
+
262
+ def score_and_await(
263
+ self,
264
+ id: str,
265
+ *,
266
+ polling_config: PollingConfig | None = None,
267
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
268
+ # The extra values given here take precedence over values defined on the client or passed to this method.
269
+ extra_headers: Headers | None = None,
270
+ extra_query: Query | None = None,
271
+ extra_body: Body | None = None,
272
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
273
+ ) -> ScenarioRunView:
274
+ """Score a scenario run and wait for it to be scored.
275
+
276
+ Args:
277
+ id: The ID of the scenario run to score and wait for
278
+ polling_config: Optional polling configuration
279
+ extra_headers: Send extra headers
280
+ extra_query: Add additional query parameters to the request
281
+ extra_body: Add additional JSON properties to the request
282
+ timeout: Override the client-level default timeout for this request, in seconds
283
+
284
+ Returns:
285
+ The scored scenario run
286
+
287
+ Raises:
288
+ PollingTimeout: If polling times out before scenario run is scored
289
+ RunloopError: If scenario run enters a non-scored terminal state
290
+ """
291
+ self.score(
292
+ id,
293
+ extra_headers=extra_headers,
294
+ extra_query=extra_query,
295
+ extra_body=extra_body,
296
+ timeout=timeout,
297
+ )
298
+
299
+ return self.await_scored(
300
+ id,
301
+ polling_config=polling_config,
302
+ extra_headers=extra_headers,
303
+ extra_query=extra_query,
304
+ extra_body=extra_body,
305
+ timeout=timeout,
306
+ )
307
+
308
+ def score_and_complete(
309
+ self,
310
+ id: str,
311
+ *,
312
+ polling_config: PollingConfig | None = None,
313
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
314
+ # The extra values given here take precedence over values defined on the client or passed to this method.
315
+ extra_headers: Headers | None = None,
316
+ extra_query: Query | None = None,
317
+ extra_body: Body | None = None,
318
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
319
+ ) -> ScenarioRunView:
320
+ """Score a scenario run, wait for it to be scored, then complete it.
321
+
322
+ Args:
323
+ id: The ID of the scenario run to score, wait for, and complete
324
+ polling_config: Optional polling configuration
325
+ extra_headers: Send extra headers
326
+ extra_query: Add additional query parameters to the request
327
+ extra_body: Add additional JSON properties to the request
328
+ timeout: Override the client-level default timeout for this request, in seconds
329
+
330
+ Returns:
331
+ The completed scenario run
332
+
333
+ Raises:
334
+ PollingTimeout: If polling times out before scenario run is scored
335
+ RunloopError: If scenario run enters a non-scored terminal state
336
+ """
337
+ self.score_and_await(
338
+ id,
339
+ polling_config=polling_config,
340
+ extra_headers=extra_headers,
341
+ extra_query=extra_query,
342
+ extra_body=extra_body,
343
+ timeout=timeout,
344
+ )
345
+
346
+ return self.complete(
347
+ id,
348
+ extra_headers=extra_headers,
349
+ extra_query=extra_query,
350
+ extra_body=extra_body,
351
+ timeout=timeout,
352
+ )
209
353
 
210
354
  class AsyncRunsResource(AsyncAPIResource):
211
355
  @cached_property
@@ -391,6 +535,148 @@ class AsyncRunsResource(AsyncAPIResource):
391
535
  cast_to=ScenarioRunView,
392
536
  )
393
537
 
538
+ async def await_scored(
539
+ self,
540
+ id: str,
541
+ *,
542
+ polling_config: PollingConfig | None = None,
543
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
544
+ # The extra values given here take precedence over values defined on the client or passed to this method.
545
+ extra_headers: Headers | None = None,
546
+ extra_query: Query | None = None,
547
+ extra_body: Body | None = None,
548
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
549
+ ) -> ScenarioRunView:
550
+ """Wait for a scenario run to be scored.
551
+
552
+ Args:
553
+ id: The ID of the scenario run to wait for
554
+ polling_config: Optional polling configuration
555
+ extra_headers: Send extra headers
556
+ extra_query: Add additional query parameters to the request
557
+ extra_body: Add additional JSON properties to the request
558
+ timeout: Override the client-level default timeout for this request, in seconds
559
+
560
+ Returns:
561
+ The scored scenario run
562
+
563
+ Raises:
564
+ PollingTimeout: If polling times out before scenario run is scored
565
+ RunloopError: If scenario run enters a non-scored terminal state
566
+ """
567
+ async def retrieve_run() -> ScenarioRunView:
568
+ return await self.retrieve(
569
+ id,
570
+ extra_headers=extra_headers,
571
+ extra_query=extra_query,
572
+ extra_body=extra_body,
573
+ timeout=timeout
574
+ )
575
+
576
+ def is_done_scoring(run: ScenarioRunView) -> bool:
577
+ return run.state not in ["scoring"]
578
+
579
+ run = await async_poll_until(retrieve_run, is_done_scoring, polling_config)
580
+
581
+ if run.state != "scored":
582
+ raise RunloopError(
583
+ f"Scenario run entered non-scored state unexpectedly: {run.state}"
584
+ )
585
+
586
+ return run
587
+
588
+ async def score_and_await(
589
+ self,
590
+ id: str,
591
+ *,
592
+ polling_config: PollingConfig | None = None,
593
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
594
+ # The extra values given here take precedence over values defined on the client or passed to this method.
595
+ extra_headers: Headers | None = None,
596
+ extra_query: Query | None = None,
597
+ extra_body: Body | None = None,
598
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
599
+ ) -> ScenarioRunView:
600
+ """Score a scenario run and wait for it to be scored.
601
+
602
+ Args:
603
+ id: The ID of the scenario run to score and wait for
604
+ polling_config: Optional polling configuration
605
+ extra_headers: Send extra headers
606
+ extra_query: Add additional query parameters to the request
607
+ extra_body: Add additional JSON properties to the request
608
+ timeout: Override the client-level default timeout for this request, in seconds
609
+
610
+ Returns:
611
+ The scored scenario run
612
+
613
+ Raises:
614
+ PollingTimeout: If polling times out before scenario run is scored
615
+ RunloopError: If scenario run enters a non-scored terminal state
616
+ """
617
+ await self.score(
618
+ id,
619
+ extra_headers=extra_headers,
620
+ extra_query=extra_query,
621
+ extra_body=extra_body,
622
+ timeout=timeout,
623
+ )
624
+
625
+ return await self.await_scored(
626
+ id,
627
+ polling_config=polling_config,
628
+ extra_headers=extra_headers,
629
+ extra_query=extra_query,
630
+ extra_body=extra_body,
631
+ timeout=timeout,
632
+ )
633
+
634
+ async def score_and_complete(
635
+ self,
636
+ id: str,
637
+ *,
638
+ polling_config: PollingConfig | None = None,
639
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
640
+ # The extra values given here take precedence over values defined on the client or passed to this method.
641
+ extra_headers: Headers | None = None,
642
+ extra_query: Query | None = None,
643
+ extra_body: Body | None = None,
644
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
645
+ ) -> ScenarioRunView:
646
+ """Score a scenario run, wait for it to be scored, then complete it.
647
+
648
+ Args:
649
+ id: The ID of the scenario run to score, wait for, and complete
650
+ polling_config: Optional polling configuration
651
+ extra_headers: Send extra headers
652
+ extra_query: Add additional query parameters to the request
653
+ extra_body: Add additional JSON properties to the request
654
+ timeout: Override the client-level default timeout for this request, in seconds
655
+
656
+ Returns:
657
+ The completed scenario run
658
+
659
+ Raises:
660
+ PollingTimeout: If polling times out before scenario run is scored
661
+ RunloopError: If scenario run enters a non-scored terminal state
662
+ """
663
+ await self.score_and_await(
664
+ id,
665
+ polling_config=polling_config,
666
+ extra_headers=extra_headers,
667
+ extra_query=extra_query,
668
+ extra_body=extra_body,
669
+ timeout=timeout,
670
+ )
671
+
672
+ return await self.complete(
673
+ id,
674
+ extra_headers=extra_headers,
675
+ extra_query=extra_query,
676
+ extra_body=extra_body,
677
+ timeout=timeout,
678
+ )
679
+
394
680
 
395
681
  class RunsResourceWithRawResponse:
396
682
  def __init__(self, runs: RunsResource) -> None: