runloop-api-client 0.23.0__tar.gz → 0.24.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 (271) hide show
  1. runloop_api_client-0.24.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/CHANGELOG.md +21 -0
  3. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/PKG-INFO +1 -1
  4. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/pyproject.toml +1 -1
  5. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/_sync.py +17 -2
  6. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +17 -1
  8. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/scenarios/scenarios.py +29 -1
  9. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmark_create_params.py +4 -1
  10. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmark_run_view.py +7 -4
  11. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmark_start_run_params.py +4 -1
  12. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmark_view.py +4 -1
  13. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_create_params.py +11 -1
  14. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_environment.py +10 -0
  15. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_environment_param.py +11 -0
  16. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_run_view.py +4 -1
  17. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_start_run_params.py +4 -1
  18. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_view.py +11 -1
  19. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scoring_function.py +9 -4
  20. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scoring_function_param.py +9 -4
  21. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scoring_function_result_view.py +4 -0
  22. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/scenarios/test_scorers.py +22 -0
  23. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/test_benchmarks.py +4 -0
  24. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/test_scenarios.py +28 -0
  25. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_client.py +6 -4
  26. runloop_api_client-0.23.0/.release-please-manifest.json +0 -3
  27. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/.gitignore +0 -0
  28. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/CONTRIBUTING.md +0 -0
  29. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/LICENSE +0 -0
  30. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/README.md +0 -0
  31. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/SECURITY.md +0 -0
  32. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/api.md +0 -0
  33. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/bin/check-release-environment +0 -0
  34. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/bin/publish-pypi +0 -0
  35. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/examples/.keep +0 -0
  36. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/mypy.ini +0 -0
  37. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/noxfile.py +0 -0
  38. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/release-please-config.json +0 -0
  39. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/requirements-dev.lock +0 -0
  40. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/requirements.lock +0 -0
  41. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop/lib/.keep +0 -0
  42. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/__init__.py +0 -0
  43. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_base_client.py +0 -0
  44. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_client.py +0 -0
  45. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_compat.py +0 -0
  46. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_constants.py +0 -0
  47. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_exceptions.py +0 -0
  48. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_files.py +0 -0
  49. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_models.py +0 -0
  50. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_qs.py +0 -0
  51. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_resource.py +0 -0
  52. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_response.py +0 -0
  53. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_streaming.py +0 -0
  54. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_types.py +0 -0
  55. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  56. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  57. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  58. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  59. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  60. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  61. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  62. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  63. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/lib/.keep +0 -0
  64. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/lib/polling.py +0 -0
  65. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  66. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/pagination.py +0 -0
  67. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/py.typed +0 -0
  68. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/__init__.py +0 -0
  69. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  70. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  71. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  72. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  73. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  74. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  75. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
  76. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  77. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  78. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  79. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
  80. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/repositories.py +0 -0
  81. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  82. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  83. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  84. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/__init__.py +0 -0
  85. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  86. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  87. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmark_list_view.py +0 -0
  88. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  89. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  90. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  91. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  92. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  93. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  94. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  95. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  96. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  97. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  98. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  99. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  100. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  101. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  102. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  103. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  104. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  105. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  106. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  107. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  108. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  109. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  110. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  111. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  112. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  113. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  114. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  115. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  116. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  117. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  118. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  119. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  120. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  121. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  122. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  123. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  124. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  125. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  126. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  127. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  128. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  129. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  130. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  131. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  132. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  133. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  134. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  135. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  136. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  137. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  138. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  139. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  140. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  141. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  142. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
  143. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  144. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  145. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  146. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  147. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  148. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  149. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  150. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  151. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  152. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  153. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  154. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  155. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  156. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  157. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  158. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  159. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  160. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  161. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  162. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
  163. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  164. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  165. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  166. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  167. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  168. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
  169. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  170. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  171. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
  172. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  173. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  174. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  175. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  176. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  177. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  178. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  179. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  180. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  181. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  182. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  183. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  184. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  185. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  186. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  187. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  188. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  189. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  190. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  191. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  192. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  193. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  194. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  195. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  196. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  197. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  198. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
  199. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  200. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  201. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  202. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  203. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  204. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  205. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  206. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  207. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  208. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/input_context.py +0 -0
  209. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  210. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  211. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  212. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  213. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  214. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/repository_version_details.py +0 -0
  215. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/repository_version_list_view.py +0 -0
  216. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  217. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  218. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_list_view.py +0 -0
  219. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  220. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  221. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  222. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  223. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  224. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  225. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  226. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  227. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  228. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  229. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  230. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  231. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  232. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  233. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  234. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  235. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  236. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  237. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  238. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  239. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  240. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  241. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  242. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/__init__.py +0 -0
  243. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/__init__.py +0 -0
  244. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  245. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  246. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/devboxes/__init__.py +0 -0
  247. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  248. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  249. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  250. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  251. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  252. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  253. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/scenarios/__init__.py +0 -0
  254. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  255. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/test_blueprints.py +0 -0
  256. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/test_devboxes.py +0 -0
  257. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/api_resources/test_repositories.py +0 -0
  258. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/conftest.py +0 -0
  259. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/sample_file.txt +0 -0
  260. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_deepcopy.py +0 -0
  261. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_extract_files.py +0 -0
  262. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_files.py +0 -0
  263. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_models.py +0 -0
  264. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_qs.py +0 -0
  265. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_required_args.py +0 -0
  266. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_response.py +0 -0
  267. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_streaming.py +0 -0
  268. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_transform.py +0 -0
  269. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_utils/test_proxy.py +0 -0
  270. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/test_utils/test_typing.py +0 -0
  271. {runloop_api_client-0.23.0 → runloop_api_client-0.24.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.24.0"
3
+ }
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.24.0 (2025-02-19)
4
+
5
+ Full Changelog: [v0.23.0...v0.24.0](https://github.com/runloopai/api-client-python/compare/v0.23.0...v0.24.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([#549](https://github.com/runloopai/api-client-python/issues/549)) ([3e19f41](https://github.com/runloopai/api-client-python/commit/3e19f41cf8e2b9cd225439d9df90f80b34d89660))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * asyncify on non-asyncio runtimes ([#547](https://github.com/runloopai/api-client-python/issues/547)) ([8ce7003](https://github.com/runloopai/api-client-python/commit/8ce700397fc5d6755f0a95b637efad74d6dc3fe4))
15
+
16
+
17
+ ### Chores
18
+
19
+ * **internal:** codegen related update ([#543](https://github.com/runloopai/api-client-python/issues/543)) ([5c44e84](https://github.com/runloopai/api-client-python/commit/5c44e84a8a029b22461df339c280885dc972fa96))
20
+ * **internal:** codegen related update ([#546](https://github.com/runloopai/api-client-python/issues/546)) ([d8b620d](https://github.com/runloopai/api-client-python/commit/d8b620d93c687d37a843262d5ac60fd4a9b815e8))
21
+ * **internal:** update client tests ([#545](https://github.com/runloopai/api-client-python/issues/545)) ([30307f4](https://github.com/runloopai/api-client-python/commit/30307f4b78ba76240793b851dd735a0beb835b75))
22
+ * **internal:** update client tests ([#548](https://github.com/runloopai/api-client-python/issues/548)) ([4e782f1](https://github.com/runloopai/api-client-python/commit/4e782f19bfa7e08ae318eca6f00fb4d5ffe5c9af))
23
+
3
24
  ## 0.23.0 (2025-02-11)
4
25
 
5
26
  Full Changelog: [v0.22.0...v0.23.0](https://github.com/runloopai/api-client-python/compare/v0.22.0...v0.23.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runloop_api_client
3
- Version: 0.23.0
3
+ Version: 0.24.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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.23.0"
3
+ version = "0.24.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -7,16 +7,20 @@ import contextvars
7
7
  from typing import Any, TypeVar, Callable, Awaitable
8
8
  from typing_extensions import ParamSpec
9
9
 
10
+ import anyio
11
+ import sniffio
12
+ import anyio.to_thread
13
+
10
14
  T_Retval = TypeVar("T_Retval")
11
15
  T_ParamSpec = ParamSpec("T_ParamSpec")
12
16
 
13
17
 
14
18
  if sys.version_info >= (3, 9):
15
- to_thread = asyncio.to_thread
19
+ _asyncio_to_thread = asyncio.to_thread
16
20
  else:
17
21
  # backport of https://docs.python.org/3/library/asyncio-task.html#asyncio.to_thread
18
22
  # for Python 3.8 support
19
- async def to_thread(
23
+ async def _asyncio_to_thread(
20
24
  func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
21
25
  ) -> Any:
22
26
  """Asynchronously run function *func* in a separate thread.
@@ -34,6 +38,17 @@ else:
34
38
  return await loop.run_in_executor(None, func_call)
35
39
 
36
40
 
41
+ async def to_thread(
42
+ func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
43
+ ) -> T_Retval:
44
+ if sniffio.current_async_library() == "asyncio":
45
+ return await _asyncio_to_thread(func, *args, **kwargs)
46
+
47
+ return await anyio.to_thread.run_sync(
48
+ functools.partial(func, *args, **kwargs),
49
+ )
50
+
51
+
37
52
  # inspired by `asyncer`, https://github.com/tiangolo/asyncer
38
53
  def asyncify(function: Callable[T_ParamSpec, T_Retval]) -> Callable[T_ParamSpec, Awaitable[T_Retval]]:
39
54
  """
@@ -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.23.0" # x-release-please-version
4
+ __version__ = "0.24.0" # x-release-please-version
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Dict, List, Optional
6
6
 
7
7
  import httpx
8
8
 
@@ -69,6 +69,7 @@ class BenchmarksResource(SyncAPIResource):
69
69
  self,
70
70
  *,
71
71
  name: str,
72
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
72
73
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
73
74
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
74
75
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -84,6 +85,8 @@ class BenchmarksResource(SyncAPIResource):
84
85
  Args:
85
86
  name: The name of the Benchmark.
86
87
 
88
+ metadata: User defined metadata to attach to the benchmark for organization.
89
+
87
90
  scenario_ids: The Scenario IDs that make up the Benchmark.
88
91
 
89
92
  extra_headers: Send extra headers
@@ -101,6 +104,7 @@ class BenchmarksResource(SyncAPIResource):
101
104
  body=maybe_transform(
102
105
  {
103
106
  "name": name,
107
+ "metadata": metadata,
104
108
  "scenario_ids": scenario_ids,
105
109
  },
106
110
  benchmark_create_params.BenchmarkCreateParams,
@@ -246,6 +250,7 @@ class BenchmarksResource(SyncAPIResource):
246
250
  self,
247
251
  *,
248
252
  benchmark_id: str,
253
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
249
254
  run_name: Optional[str] | NotGiven = NOT_GIVEN,
250
255
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
251
256
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -261,6 +266,8 @@ class BenchmarksResource(SyncAPIResource):
261
266
  Args:
262
267
  benchmark_id: ID of the Benchmark to run.
263
268
 
269
+ metadata: User defined metadata to attach to the benchmark run for organization.
270
+
264
271
  run_name: Display name of the run.
265
272
 
266
273
  extra_headers: Send extra headers
@@ -278,6 +285,7 @@ class BenchmarksResource(SyncAPIResource):
278
285
  body=maybe_transform(
279
286
  {
280
287
  "benchmark_id": benchmark_id,
288
+ "metadata": metadata,
281
289
  "run_name": run_name,
282
290
  },
283
291
  benchmark_start_run_params.BenchmarkStartRunParams,
@@ -321,6 +329,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
321
329
  self,
322
330
  *,
323
331
  name: str,
332
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
324
333
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
325
334
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
326
335
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -336,6 +345,8 @@ class AsyncBenchmarksResource(AsyncAPIResource):
336
345
  Args:
337
346
  name: The name of the Benchmark.
338
347
 
348
+ metadata: User defined metadata to attach to the benchmark for organization.
349
+
339
350
  scenario_ids: The Scenario IDs that make up the Benchmark.
340
351
 
341
352
  extra_headers: Send extra headers
@@ -353,6 +364,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
353
364
  body=await async_maybe_transform(
354
365
  {
355
366
  "name": name,
367
+ "metadata": metadata,
356
368
  "scenario_ids": scenario_ids,
357
369
  },
358
370
  benchmark_create_params.BenchmarkCreateParams,
@@ -498,6 +510,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
498
510
  self,
499
511
  *,
500
512
  benchmark_id: str,
513
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
501
514
  run_name: Optional[str] | NotGiven = NOT_GIVEN,
502
515
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
503
516
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -513,6 +526,8 @@ class AsyncBenchmarksResource(AsyncAPIResource):
513
526
  Args:
514
527
  benchmark_id: ID of the Benchmark to run.
515
528
 
529
+ metadata: User defined metadata to attach to the benchmark run for organization.
530
+
516
531
  run_name: Display name of the run.
517
532
 
518
533
  extra_headers: Send extra headers
@@ -530,6 +545,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
530
545
  body=await async_maybe_transform(
531
546
  {
532
547
  "benchmark_id": benchmark_id,
548
+ "metadata": metadata,
533
549
  "run_name": run_name,
534
550
  },
535
551
  benchmark_start_run_params.BenchmarkStartRunParams,
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Dict, Optional
6
6
 
7
7
  import httpx
8
8
 
@@ -88,6 +88,8 @@ class ScenariosResource(SyncAPIResource):
88
88
  name: str,
89
89
  scoring_contract: ScoringContractParam,
90
90
  environment_parameters: Optional[ScenarioEnvironmentParam] | NotGiven = NOT_GIVEN,
91
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
92
+ reference_output: Optional[str] | NotGiven = NOT_GIVEN,
91
93
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
92
94
  # The extra values given here take precedence over values defined on the client or passed to this method.
93
95
  extra_headers: Headers | None = None,
@@ -109,6 +111,12 @@ class ScenariosResource(SyncAPIResource):
109
111
 
110
112
  environment_parameters: The Environment in which the Scenario will run.
111
113
 
114
+ metadata: User defined metadata to attach to the scenario for organization.
115
+
116
+ reference_output: A string representation of the reference output to solve the scenario. Commonly
117
+ can be the result of a git diff or a sequence of command actions to apply to the
118
+ environment.
119
+
112
120
  extra_headers: Send extra headers
113
121
 
114
122
  extra_query: Add additional query parameters to the request
@@ -127,6 +135,8 @@ class ScenariosResource(SyncAPIResource):
127
135
  "name": name,
128
136
  "scoring_contract": scoring_contract,
129
137
  "environment_parameters": environment_parameters,
138
+ "metadata": metadata,
139
+ "reference_output": reference_output,
130
140
  },
131
141
  scenario_create_params.ScenarioCreateParams,
132
142
  ),
@@ -281,6 +291,7 @@ class ScenariosResource(SyncAPIResource):
281
291
  *,
282
292
  scenario_id: str,
283
293
  benchmark_run_id: Optional[str] | NotGiven = NOT_GIVEN,
294
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
284
295
  run_name: Optional[str] | NotGiven = NOT_GIVEN,
285
296
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
286
297
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -298,6 +309,8 @@ class ScenariosResource(SyncAPIResource):
298
309
 
299
310
  benchmark_run_id: Benchmark to associate the run.
300
311
 
312
+ metadata: User defined metadata to attach to the run for organization.
313
+
301
314
  run_name: Display name of the run.
302
315
 
303
316
  extra_headers: Send extra headers
@@ -316,6 +329,7 @@ class ScenariosResource(SyncAPIResource):
316
329
  {
317
330
  "scenario_id": scenario_id,
318
331
  "benchmark_run_id": benchmark_run_id,
332
+ "metadata": metadata,
319
333
  "run_name": run_name,
320
334
  },
321
335
  scenario_start_run_params.ScenarioStartRunParams,
@@ -423,6 +437,8 @@ class AsyncScenariosResource(AsyncAPIResource):
423
437
  name: str,
424
438
  scoring_contract: ScoringContractParam,
425
439
  environment_parameters: Optional[ScenarioEnvironmentParam] | NotGiven = NOT_GIVEN,
440
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
441
+ reference_output: Optional[str] | NotGiven = NOT_GIVEN,
426
442
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
427
443
  # The extra values given here take precedence over values defined on the client or passed to this method.
428
444
  extra_headers: Headers | None = None,
@@ -444,6 +460,12 @@ class AsyncScenariosResource(AsyncAPIResource):
444
460
 
445
461
  environment_parameters: The Environment in which the Scenario will run.
446
462
 
463
+ metadata: User defined metadata to attach to the scenario for organization.
464
+
465
+ reference_output: A string representation of the reference output to solve the scenario. Commonly
466
+ can be the result of a git diff or a sequence of command actions to apply to the
467
+ environment.
468
+
447
469
  extra_headers: Send extra headers
448
470
 
449
471
  extra_query: Add additional query parameters to the request
@@ -462,6 +484,8 @@ class AsyncScenariosResource(AsyncAPIResource):
462
484
  "name": name,
463
485
  "scoring_contract": scoring_contract,
464
486
  "environment_parameters": environment_parameters,
487
+ "metadata": metadata,
488
+ "reference_output": reference_output,
465
489
  },
466
490
  scenario_create_params.ScenarioCreateParams,
467
491
  ),
@@ -616,6 +640,7 @@ class AsyncScenariosResource(AsyncAPIResource):
616
640
  *,
617
641
  scenario_id: str,
618
642
  benchmark_run_id: Optional[str] | NotGiven = NOT_GIVEN,
643
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
619
644
  run_name: Optional[str] | NotGiven = NOT_GIVEN,
620
645
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
621
646
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -633,6 +658,8 @@ class AsyncScenariosResource(AsyncAPIResource):
633
658
 
634
659
  benchmark_run_id: Benchmark to associate the run.
635
660
 
661
+ metadata: User defined metadata to attach to the run for organization.
662
+
636
663
  run_name: Display name of the run.
637
664
 
638
665
  extra_headers: Send extra headers
@@ -651,6 +678,7 @@ class AsyncScenariosResource(AsyncAPIResource):
651
678
  {
652
679
  "scenario_id": scenario_id,
653
680
  "benchmark_run_id": benchmark_run_id,
681
+ "metadata": metadata,
654
682
  "run_name": run_name,
655
683
  },
656
684
  scenario_start_run_params.ScenarioStartRunParams,
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List, Optional
5
+ from typing import Dict, List, Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  __all__ = ["BenchmarkCreateParams"]
@@ -12,5 +12,8 @@ class BenchmarkCreateParams(TypedDict, total=False):
12
12
  name: Required[str]
13
13
  """The name of the Benchmark."""
14
14
 
15
+ metadata: Optional[Dict[str, str]]
16
+ """User defined metadata to attach to the benchmark for organization."""
17
+
15
18
  scenario_ids: Optional[List[str]]
16
19
  """The Scenario IDs that make up the Benchmark."""
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List, Optional
3
+ from typing import Dict, List, Optional
4
4
  from typing_extensions import Literal
5
5
 
6
6
  from .._models import BaseModel
@@ -15,6 +15,12 @@ class BenchmarkRunView(BaseModel):
15
15
  benchmark_id: str
16
16
  """The ID of the Benchmark."""
17
17
 
18
+ metadata: Dict[str, str]
19
+ """User defined metadata to attach to the benchmark run for organization."""
20
+
21
+ pending_scenarios: List[str]
22
+ """List of Scenarios that need to be completed before benchmark can be completed."""
23
+
18
24
  start_time_ms: int
19
25
  """The time the benchmark run execution started (Unix timestamp milliseconds)."""
20
26
 
@@ -27,9 +33,6 @@ class BenchmarkRunView(BaseModel):
27
33
  name: Optional[str] = None
28
34
  """The name of the BenchmarkRun."""
29
35
 
30
- pending_scenarios: Optional[List[str]] = None
31
- """List of Scenarios that need to be completed before benchmark can be completed."""
32
-
33
36
  score: Optional[float] = None
34
37
  """The final score across the BenchmarkRun, present once completed.
35
38
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Dict, Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  __all__ = ["BenchmarkStartRunParams"]
@@ -12,5 +12,8 @@ class BenchmarkStartRunParams(TypedDict, total=False):
12
12
  benchmark_id: Required[str]
13
13
  """ID of the Benchmark to run."""
14
14
 
15
+ metadata: Optional[Dict[str, str]]
16
+ """User defined metadata to attach to the benchmark run for organization."""
17
+
15
18
  run_name: Optional[str]
16
19
  """Display name of the run."""
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import List
3
+ from typing import Dict, List
4
4
 
5
5
  from pydantic import Field as FieldInfo
6
6
 
@@ -13,6 +13,9 @@ class BenchmarkView(BaseModel):
13
13
  id: str
14
14
  """The ID of the Benchmark."""
15
15
 
16
+ metadata: Dict[str, str]
17
+ """User defined metadata to attach to the benchmark for organization."""
18
+
16
19
  name: str
17
20
  """The name of the Benchmark."""
18
21
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Dict, Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  from .input_context_param import InputContextParam
@@ -24,3 +24,13 @@ class ScenarioCreateParams(TypedDict, total=False):
24
24
 
25
25
  environment_parameters: Optional[ScenarioEnvironmentParam]
26
26
  """The Environment in which the Scenario will run."""
27
+
28
+ metadata: Optional[Dict[str, str]]
29
+ """User defined metadata to attach to the scenario for organization."""
30
+
31
+ reference_output: Optional[str]
32
+ """A string representation of the reference output to solve the scenario.
33
+
34
+ Commonly can be the result of a git diff or a sequence of command actions to
35
+ apply to the environment.
36
+ """
@@ -3,6 +3,7 @@
3
3
  from typing import Optional
4
4
 
5
5
  from .._models import BaseModel
6
+ from .shared.launch_parameters import LaunchParameters
6
7
 
7
8
  __all__ = ["ScenarioEnvironment"]
8
9
 
@@ -11,8 +12,17 @@ class ScenarioEnvironment(BaseModel):
11
12
  blueprint_id: Optional[str] = None
12
13
  """Use the blueprint with matching ID."""
13
14
 
15
+ launch_parameters: Optional[LaunchParameters] = None
16
+ """Optional launch parameters to apply to the devbox environment at launch."""
17
+
14
18
  prebuilt_id: Optional[str] = None
15
19
  """Use the prebuilt with matching ID."""
16
20
 
17
21
  snapshot_id: Optional[str] = None
18
22
  """Use the snapshot with matching ID."""
23
+
24
+ working_directory: Optional[str] = None
25
+ """The working directory where the agent is expected to fulfill the scenario.
26
+
27
+ Scoring functions also run from the working directory.
28
+ """
@@ -5,6 +5,8 @@ from __future__ import annotations
5
5
  from typing import Optional
6
6
  from typing_extensions import TypedDict
7
7
 
8
+ from .shared_params.launch_parameters import LaunchParameters
9
+
8
10
  __all__ = ["ScenarioEnvironmentParam"]
9
11
 
10
12
 
@@ -12,8 +14,17 @@ class ScenarioEnvironmentParam(TypedDict, total=False):
12
14
  blueprint_id: Optional[str]
13
15
  """Use the blueprint with matching ID."""
14
16
 
17
+ launch_parameters: Optional[LaunchParameters]
18
+ """Optional launch parameters to apply to the devbox environment at launch."""
19
+
15
20
  prebuilt_id: Optional[str]
16
21
  """Use the prebuilt with matching ID."""
17
22
 
18
23
  snapshot_id: Optional[str]
19
24
  """Use the snapshot with matching ID."""
25
+
26
+ working_directory: Optional[str]
27
+ """The working directory where the agent is expected to fulfill the scenario.
28
+
29
+ Scoring functions also run from the working directory.
30
+ """
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Optional
3
+ from typing import Dict, Optional
4
4
  from typing_extensions import Literal
5
5
 
6
6
  from .._models import BaseModel
@@ -16,6 +16,9 @@ class ScenarioRunView(BaseModel):
16
16
  devbox_id: str
17
17
  """ID of the Devbox on which the Scenario is running."""
18
18
 
19
+ metadata: Dict[str, str]
20
+ """User defined metadata to attach to the scenario run for organization."""
21
+
19
22
  scenario_id: str
20
23
  """ID of the Scenario that has been run."""
21
24
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Dict, Optional
6
6
  from typing_extensions import Required, TypedDict
7
7
 
8
8
  __all__ = ["ScenarioStartRunParams"]
@@ -15,5 +15,8 @@ class ScenarioStartRunParams(TypedDict, total=False):
15
15
  benchmark_run_id: Optional[str]
16
16
  """Benchmark to associate the run."""
17
17
 
18
+ metadata: Optional[Dict[str, str]]
19
+ """User defined metadata to attach to the run for organization."""
20
+
18
21
  run_name: Optional[str]
19
22
  """Display name of the run."""
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Optional
3
+ from typing import Dict, Optional
4
4
 
5
5
  from .._models import BaseModel
6
6
  from .input_context import InputContext
@@ -17,6 +17,9 @@ class ScenarioView(BaseModel):
17
17
  input_context: InputContext
18
18
  """The input context for the Scenario."""
19
19
 
20
+ metadata: Dict[str, str]
21
+ """User defined metadata to attach to the scenario for organization."""
22
+
20
23
  name: str
21
24
  """The name of the Scenario."""
22
25
 
@@ -25,3 +28,10 @@ class ScenarioView(BaseModel):
25
28
 
26
29
  environment: Optional[ScenarioEnvironment] = None
27
30
  """The Environment in which the Scenario is run."""
31
+
32
+ reference_output: Optional[str] = None
33
+ """A string representation of the reference output to solve the scenario.
34
+
35
+ Commonly can be the result of a git diff or a sequence of command actions to
36
+ apply to the environment.
37
+ """
@@ -9,10 +9,15 @@ __all__ = ["ScoringFunction"]
9
9
 
10
10
  class ScoringFunction(BaseModel):
11
11
  name: str
12
- """Name of scoring function."""
12
+ """Name of scoring function. Names must only contain [a-zA-Z0-9_-]."""
13
13
 
14
14
  type: str
15
- """Type of the scoring function. Defaults to bash script."""
15
+ """Type of the scoring function.
16
+
17
+ Use 'bash' as type and fill out 'bash_script' field for scoring via custom bash
18
+ scripts. Otherwise use a type corresponding to a custom scorer function or a
19
+ public Runloop scorer type.
20
+ """
16
21
 
17
22
  weight: float
18
23
  """Wight to apply to scoring function score.
@@ -23,8 +28,8 @@ class ScoringFunction(BaseModel):
23
28
  bash_script: Optional[str] = None
24
29
  """
25
30
  A single bash script that sets up the environment, scores, and prints the final
26
- score to standard out. Score should be an integer between 0 and 100, and look
27
- like "score=[0..100].
31
+ score to standard out. Score should be a float between 0.0 and 1.0, and look
32
+ like "score=[0.0..1.0].
28
33
  """
29
34
 
30
35
  scorer_params: Optional[object] = None
@@ -10,10 +10,15 @@ __all__ = ["ScoringFunctionParam"]
10
10
 
11
11
  class ScoringFunctionParam(TypedDict, total=False):
12
12
  name: Required[str]
13
- """Name of scoring function."""
13
+ """Name of scoring function. Names must only contain [a-zA-Z0-9_-]."""
14
14
 
15
15
  type: Required[str]
16
- """Type of the scoring function. Defaults to bash script."""
16
+ """Type of the scoring function.
17
+
18
+ Use 'bash' as type and fill out 'bash_script' field for scoring via custom bash
19
+ scripts. Otherwise use a type corresponding to a custom scorer function or a
20
+ public Runloop scorer type.
21
+ """
17
22
 
18
23
  weight: Required[float]
19
24
  """Wight to apply to scoring function score.
@@ -24,8 +29,8 @@ class ScoringFunctionParam(TypedDict, total=False):
24
29
  bash_script: Optional[str]
25
30
  """
26
31
  A single bash script that sets up the environment, scores, and prints the final
27
- score to standard out. Score should be an integer between 0 and 100, and look
28
- like "score=[0..100].
32
+ score to standard out. Score should be a float between 0.0 and 1.0, and look
33
+ like "score=[0.0..1.0].
29
34
  """
30
35
 
31
36
  scorer_params: Optional[object]
@@ -1,5 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ from typing_extensions import Literal
3
4
 
4
5
  from .._models import BaseModel
5
6
 
@@ -15,3 +16,6 @@ class ScoringFunctionResultView(BaseModel):
15
16
 
16
17
  scoring_function_name: str
17
18
  """Scoring function name that ran."""
19
+
20
+ state: Literal["unknown", "complete", "error"]
21
+ """The state of the scoring function application."""
@@ -190,8 +190,19 @@ class TestScorers:
190
190
  scoring_context={},
191
191
  environment_parameters={
192
192
  "blueprint_id": "blueprint_id",
193
+ "launch_parameters": {
194
+ "after_idle": {
195
+ "idle_time_seconds": 0,
196
+ "on_idle": "shutdown",
197
+ },
198
+ "available_ports": [0],
199
+ "keep_alive_time_seconds": 0,
200
+ "launch_commands": ["string"],
201
+ "resource_size_request": "SMALL",
202
+ },
193
203
  "prebuilt_id": "prebuilt_id",
194
204
  "snapshot_id": "snapshot_id",
205
+ "working_directory": "working_directory",
195
206
  },
196
207
  )
197
208
  assert_matches_type(ScorerValidateResponse, scorer, path=["response"])
@@ -400,8 +411,19 @@ class TestAsyncScorers:
400
411
  scoring_context={},
401
412
  environment_parameters={
402
413
  "blueprint_id": "blueprint_id",
414
+ "launch_parameters": {
415
+ "after_idle": {
416
+ "idle_time_seconds": 0,
417
+ "on_idle": "shutdown",
418
+ },
419
+ "available_ports": [0],
420
+ "keep_alive_time_seconds": 0,
421
+ "launch_commands": ["string"],
422
+ "resource_size_request": "SMALL",
423
+ },
403
424
  "prebuilt_id": "prebuilt_id",
404
425
  "snapshot_id": "snapshot_id",
426
+ "working_directory": "working_directory",
405
427
  },
406
428
  )
407
429
  assert_matches_type(ScorerValidateResponse, scorer, path=["response"])