runloop-api-client 0.19.0__tar.gz → 0.21.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 (266) hide show
  1. runloop_api_client-0.21.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/CHANGELOG.md +23 -0
  3. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/PKG-INFO +1 -1
  4. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/api.md +27 -5
  5. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/pyproject.toml +2 -2
  6. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/requirements-dev.lock +1 -1
  7. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_constants.py +1 -1
  8. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_models.py +1 -1
  9. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_version.py +1 -1
  10. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/pagination.py +59 -0
  11. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/blueprints.py +229 -0
  12. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/devboxes/lsp.py +29 -20
  13. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/scenarios/__init__.py +14 -0
  14. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/scenarios/scenarios.py +124 -0
  15. runloop_api_client-0.21.0/src/runloop_api_client/resources/scenarios/scorers.py +632 -0
  16. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/__init__.py +5 -0
  17. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_code_action.py +2 -0
  18. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +6 -3
  19. runloop_api_client-0.21.0/src/runloop_api_client/types/devboxes/code_actions_response.py +13 -0
  20. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/code_description_param.py +6 -2
  21. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +6 -3
  22. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +6 -2
  23. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/document_symbol.py +7 -1
  24. runloop_api_client-0.21.0/src/runloop_api_client/types/devboxes/document_symbol_response.py +26 -0
  25. runloop_api_client-0.21.0/src/runloop_api_client/types/devboxes/file_definition_response.py +10 -0
  26. runloop_api_client-0.21.0/src/runloop_api_client/types/devboxes/formatting_response.py +10 -0
  27. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/location_param.py +6 -2
  28. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +2 -0
  29. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/position.py +7 -0
  30. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/position_param.py +6 -2
  31. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/range.py +7 -0
  32. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/range_param.py +6 -2
  33. runloop_api_client-0.21.0/src/runloop_api_client/types/devboxes/references_response.py +10 -0
  34. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/text_edit.py +7 -0
  35. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +6 -2
  36. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/input_context.py +4 -0
  37. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/input_context_param.py +4 -0
  38. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/__init__.py +14 -0
  39. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_create_params.py +18 -0
  40. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_create_response.py +17 -0
  41. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_list_params.py +15 -0
  42. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_list_response.py +17 -0
  43. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +17 -0
  44. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_update_params.py +18 -0
  45. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_update_response.py +17 -0
  46. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_validate_params.py +17 -0
  47. runloop_api_client-0.21.0/src/runloop_api_client/types/scenarios/scorer_validate_response.py +23 -0
  48. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/devboxes/test_lsp.py +39 -32
  49. runloop_api_client-0.21.0/tests/api_resources/scenarios/test_scorers.py +441 -0
  50. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/test_scenarios.py +8 -2
  51. runloop_api_client-0.19.0/.release-please-manifest.json +0 -3
  52. runloop_api_client-0.19.0/src/runloop_api_client/types/scenarios/__init__.py +0 -5
  53. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/.gitignore +0 -0
  54. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/CONTRIBUTING.md +0 -0
  55. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/LICENSE +0 -0
  56. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/README.md +0 -0
  57. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/SECURITY.md +0 -0
  58. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/bin/check-release-environment +0 -0
  59. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/bin/publish-pypi +0 -0
  60. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/examples/.keep +0 -0
  61. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/mypy.ini +0 -0
  62. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/noxfile.py +0 -0
  63. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/release-please-config.json +0 -0
  64. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/requirements.lock +0 -0
  65. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop/lib/.keep +0 -0
  66. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/__init__.py +0 -0
  67. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_base_client.py +0 -0
  68. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_client.py +0 -0
  69. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_compat.py +0 -0
  70. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_exceptions.py +0 -0
  71. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_files.py +0 -0
  72. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_qs.py +0 -0
  73. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_resource.py +0 -0
  74. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_response.py +0 -0
  75. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_streaming.py +0 -0
  76. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_types.py +0 -0
  77. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  78. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  79. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  80. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  81. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  82. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  83. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  84. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  85. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  86. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/lib/.keep +0 -0
  87. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/lib/polling.py +0 -0
  88. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  89. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/py.typed +0 -0
  90. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/__init__.py +0 -0
  91. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  92. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
  93. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  94. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  95. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  96. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  97. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
  98. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  99. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  100. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/repositories.py +0 -0
  101. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  102. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/__init__.py +0 -0
  103. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  104. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  105. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  106. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmark_list_view.py +0 -0
  107. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  108. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  109. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  110. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  111. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  112. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  113. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  114. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  115. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  116. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  117. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  118. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  119. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  120. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  121. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  122. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  123. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  124. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  125. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  126. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  127. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  128. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  129. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  130. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  131. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  132. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  133. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  134. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  135. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  136. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  137. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  138. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  139. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  140. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  141. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  142. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  143. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  144. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  145. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  146. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  147. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  148. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  149. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  150. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  151. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  152. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  153. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  154. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  155. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  156. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  157. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  158. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  159. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  160. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  161. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  162. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  163. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  164. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  165. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  166. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  167. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  168. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  169. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  170. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  171. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  172. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  173. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  174. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  175. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  176. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  177. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  178. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  179. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  180. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  181. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  182. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  183. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  184. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  185. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  186. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  187. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  188. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  189. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  190. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  191. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  192. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  193. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  194. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  195. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  196. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  197. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  198. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  199. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  200. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  201. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  202. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  203. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  204. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  205. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  206. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  207. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  208. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  209. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  210. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/repository_version_details.py +0 -0
  211. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/repository_version_list_view.py +0 -0
  212. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  213. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  214. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  215. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  216. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  217. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_list_view.py +0 -0
  218. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  219. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  220. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  221. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  222. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  223. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  224. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  225. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  226. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  227. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  228. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  229. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  230. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  231. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  232. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  233. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  234. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  235. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  236. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  237. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/__init__.py +0 -0
  238. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/__init__.py +0 -0
  239. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  240. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  241. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/devboxes/__init__.py +0 -0
  242. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  243. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  244. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  245. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  246. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/scenarios/__init__.py +0 -0
  247. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  248. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/test_benchmarks.py +0 -0
  249. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/test_blueprints.py +0 -0
  250. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/test_devboxes.py +0 -0
  251. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/api_resources/test_repositories.py +0 -0
  252. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/conftest.py +0 -0
  253. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/sample_file.txt +0 -0
  254. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_client.py +0 -0
  255. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_deepcopy.py +0 -0
  256. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_extract_files.py +0 -0
  257. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_files.py +0 -0
  258. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_models.py +0 -0
  259. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_qs.py +0 -0
  260. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_required_args.py +0 -0
  261. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_response.py +0 -0
  262. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_streaming.py +0 -0
  263. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_transform.py +0 -0
  264. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_utils/test_proxy.py +0 -0
  265. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/test_utils/test_typing.py +0 -0
  266. {runloop_api_client-0.19.0 → runloop_api_client-0.21.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.21.0"
3
+ }
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.21.0 (2025-02-04)
4
+
5
+ Full Changelog: [v0.20.0...v0.21.0](https://github.com/runloopai/api-client-python/compare/v0.20.0...v0.21.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([#528](https://github.com/runloopai/api-client-python/issues/528)) ([d731dad](https://github.com/runloopai/api-client-python/commit/d731dadc4b7095967be1184bf2f490f4405e8237))
10
+
11
+ ## 0.20.0 (2025-02-04)
12
+
13
+ Full Changelog: [v0.19.0...v0.20.0](https://github.com/runloopai/api-client-python/compare/v0.19.0...v0.20.0)
14
+
15
+ ### Features
16
+
17
+ * add helpers for blueprint and scenario run creation ([b00a7c1](https://github.com/runloopai/api-client-python/commit/b00a7c1b935db7c919d79ed10c135bf5ed2a9b4f))
18
+ * **api:** api update ([#526](https://github.com/runloopai/api-client-python/issues/526)) ([be26ed7](https://github.com/runloopai/api-client-python/commit/be26ed7c82017d9bff67c9920c078808f8a675e3))
19
+
20
+
21
+ ### Chores
22
+
23
+ * **internal:** bummp ruff dependency ([#525](https://github.com/runloopai/api-client-python/issues/525)) ([84051db](https://github.com/runloopai/api-client-python/commit/84051db83a6347f28ee4891be52f5eee7fa9d02a))
24
+ * **internal:** change default timeout to an int ([#524](https://github.com/runloopai/api-client-python/issues/524)) ([a15ccaa](https://github.com/runloopai/api-client-python/commit/a15ccaa45f69331d57be0144a16ba3b1df387245))
25
+
3
26
  ## 0.19.0 (2025-02-03)
4
27
 
5
28
  Full Changelog: [v0.18.0...v0.19.0](https://github.com/runloopai/api-client-python/compare/v0.18.0...v0.19.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runloop_api_client
3
- Version: 0.19.0
3
+ Version: 0.21.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
@@ -201,18 +201,18 @@ from runloop_api_client.types.devboxes import (
201
201
  Methods:
202
202
 
203
203
  - <code title="post /v1/devboxes/{id}/lsp/apply-code-action">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">apply_code_action</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/code_action_application_result.py">CodeActionApplicationResult</a></code>
204
- - <code title="post /v1/devboxes/{id}/lsp/code-actions">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">code_actions</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_code_actions_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/code_actions_response.py">object</a></code>
204
+ - <code title="post /v1/devboxes/{id}/lsp/code-actions">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">code_actions</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_code_actions_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/code_actions_response.py">CodeActionsResponse</a></code>
205
205
  - <code title="post /v1/devboxes/{id}/lsp/diagnostics">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">diagnostics</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/diagnostics_response.py">DiagnosticsResponse</a></code>
206
- - <code title="post /v1/devboxes/{id}/lsp/document-symbols">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">document_symbols</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/document_symbol_response.py">object</a></code>
206
+ - <code title="post /v1/devboxes/{id}/lsp/document-symbols">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">document_symbols</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/document_symbol_response.py">DocumentSymbolResponse</a></code>
207
207
  - <code title="post /v1/devboxes/{id}/lsp/file">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">file</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/file_contents_response.py">FileContentsResponse</a></code>
208
- - <code title="post /v1/devboxes/{id}/lsp/file-definition">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">file_definition</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_file_definition_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/file_definition_response.py">object</a></code>
208
+ - <code title="post /v1/devboxes/{id}/lsp/file-definition">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">file_definition</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_file_definition_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/file_definition_response.py">FileDefinitionResponse</a></code>
209
209
  - <code title="get /v1/devboxes/{id}/lsp/files">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">files</a>(id) -> <a href="./src/runloop_api_client/types/devboxes/lsp_files_response.py">LspFilesResponse</a></code>
210
- - <code title="post /v1/devboxes/{id}/lsp/formatting">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">formatting</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_formatting_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/formatting_response.py">object</a></code>
210
+ - <code title="post /v1/devboxes/{id}/lsp/formatting">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">formatting</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_formatting_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/formatting_response.py">FormattingResponse</a></code>
211
211
  - <code title="post /v1/devboxes/{id}/lsp/get-code-actions-for-diagnostic">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">get_code_actions_for_diagnostic</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py">LspGetCodeActionsForDiagnosticResponse</a></code>
212
212
  - <code title="post /v1/devboxes/{id}/lsp/get-code-segment-info">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">get_code_segment_info</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/code_segment_info_response.py">CodeSegmentInfoResponse</a></code>
213
213
  - <code title="post /v1/devboxes/{id}/lsp/get-signature-help">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">get_signature_help</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/signature_help_response.py">SignatureHelpResponse</a></code>
214
214
  - <code title="get /v1/devboxes/{id}/lsp/health">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">health</a>(id) -> <a href="./src/runloop_api_client/types/devboxes/health_status_response.py">HealthStatusResponse</a></code>
215
- - <code title="post /v1/devboxes/{id}/lsp/references">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">references</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_references_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/references_response.py">object</a></code>
215
+ - <code title="post /v1/devboxes/{id}/lsp/references">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">references</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_references_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/references_response.py">ReferencesResponse</a></code>
216
216
  - <code title="post /v1/devboxes/{id}/lsp/set-watch-directory">client.devboxes.lsp.<a href="./src/runloop_api_client/resources/devboxes/lsp.py">set_watch_directory</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py">params</a>) -> str</code>
217
217
 
218
218
  ## Logs
@@ -274,6 +274,28 @@ Methods:
274
274
  - <code title="post /v1/scenarios/runs/{id}/complete">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">complete</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
275
275
  - <code title="post /v1/scenarios/runs/{id}/score">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">score</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
276
276
 
277
+ ## Scorers
278
+
279
+ Types:
280
+
281
+ ```python
282
+ from runloop_api_client.types.scenarios import (
283
+ ScorerCreateResponse,
284
+ ScorerRetrieveResponse,
285
+ ScorerUpdateResponse,
286
+ ScorerListResponse,
287
+ ScorerValidateResponse,
288
+ )
289
+ ```
290
+
291
+ Methods:
292
+
293
+ - <code title="post /v1/scenarios/scorers">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">create</a>(\*\*<a href="src/runloop_api_client/types/scenarios/scorer_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_create_response.py">ScorerCreateResponse</a></code>
294
+ - <code title="get /v1/scenarios/scorers/{id}">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenarios/scorer_retrieve_response.py">ScorerRetrieveResponse</a></code>
295
+ - <code title="post /v1/scenarios/scorers/{id}">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/scenarios/scorer_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_update_response.py">ScorerUpdateResponse</a></code>
296
+ - <code title="get /v1/scenarios/scorers">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenarios/scorer_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_list_response.py">SyncScenarioScorersCursorIDPage[ScorerListResponse]</a></code>
297
+ - <code title="post /v1/scenarios/scorers/{id}/validate">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">validate</a>(id, \*\*<a href="src/runloop_api_client/types/scenarios/scorer_validate_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_validate_response.py">ScorerValidateResponse</a></code>
298
+
277
299
  # Repositories
278
300
 
279
301
  Types:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.19.0"
3
+ version = "0.21.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -177,7 +177,7 @@ select = [
177
177
  "T201",
178
178
  "T203",
179
179
  # misuse of typing.TYPE_CHECKING
180
- "TCH004",
180
+ "TC004",
181
181
  # import rules
182
182
  "TID251",
183
183
  ]
@@ -79,7 +79,7 @@ pytz==2023.3.post1
79
79
  # via dirty-equals
80
80
  respx==0.22.0
81
81
  rich==13.7.1
82
- ruff==0.6.9
82
+ ruff==0.9.4
83
83
  setuptools==68.2.2
84
84
  # via nodeenv
85
85
  six==1.16.0
@@ -6,7 +6,7 @@ RAW_RESPONSE_HEADER = "X-Stainless-Raw-Response"
6
6
  OVERRIDE_CAST_TO_HEADER = "____stainless_override_cast_to"
7
7
 
8
8
  # default timeout is 1 minute
9
- DEFAULT_TIMEOUT = httpx.Timeout(timeout=60.0, connect=5.0)
9
+ DEFAULT_TIMEOUT = httpx.Timeout(timeout=60, connect=5.0)
10
10
  DEFAULT_MAX_RETRIES = 2
11
11
  DEFAULT_CONNECTION_LIMITS = httpx.Limits(max_connections=100, max_keepalive_connections=20)
12
12
 
@@ -172,7 +172,7 @@ class BaseModel(pydantic.BaseModel):
172
172
  @override
173
173
  def __str__(self) -> str:
174
174
  # mypy complains about an invalid self arg
175
- return f'{self.__repr_name__()}({self.__repr_str__(", ")})' # type: ignore[misc]
175
+ return f"{self.__repr_name__()}({self.__repr_str__(', ')})" # type: ignore[misc]
176
176
 
177
177
  # Override the 'construct' method in a way that supports recursive parsing without validation.
178
178
  # Based on https://github.com/samuelcolvin/pydantic/issues/1168#issuecomment-817742836.
@@ -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.19.0" # x-release-please-version
4
+ __version__ = "0.21.0" # x-release-please-version
@@ -22,6 +22,8 @@ __all__ = [
22
22
  "AsyncScenariosCursorIDPage",
23
23
  "SyncScenarioRunsCursorIDPage",
24
24
  "AsyncScenarioRunsCursorIDPage",
25
+ "SyncScenarioScorersCursorIDPage",
26
+ "AsyncScenarioScorersCursorIDPage",
25
27
  ]
26
28
 
27
29
  _T = TypeVar("_T")
@@ -67,6 +69,11 @@ class ScenarioRunsCursorIDPageItem(Protocol):
67
69
  id: str
68
70
 
69
71
 
72
+ @runtime_checkable
73
+ class ScenarioScorersCursorIDPageItem(Protocol):
74
+ id: str
75
+
76
+
70
77
  class SyncBlueprintsCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
71
78
  blueprints: List[_T]
72
79
  has_more: Optional[bool] = None
@@ -481,3 +488,55 @@ class AsyncScenarioRunsCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]
481
488
  return None
482
489
 
483
490
  return PageInfo(params={"starting_after": item.id})
491
+
492
+
493
+ class SyncScenarioScorersCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
494
+ scorers: List[_T]
495
+ has_more: Optional[bool] = None
496
+ total_count: Optional[int] = None
497
+
498
+ @override
499
+ def _get_page_items(self) -> List[_T]:
500
+ scorers = self.scorers
501
+ if not scorers:
502
+ return []
503
+ return scorers
504
+
505
+ @override
506
+ def next_page_info(self) -> Optional[PageInfo]:
507
+ scorers = self.scorers
508
+ if not scorers:
509
+ return None
510
+
511
+ item = cast(Any, scorers[-1])
512
+ if not isinstance(item, ScenarioScorersCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
513
+ # TODO emit warning log
514
+ return None
515
+
516
+ return PageInfo(params={"starting_after": item.id})
517
+
518
+
519
+ class AsyncScenarioScorersCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
520
+ scorers: List[_T]
521
+ has_more: Optional[bool] = None
522
+ total_count: Optional[int] = None
523
+
524
+ @override
525
+ def _get_page_items(self) -> List[_T]:
526
+ scorers = self.scorers
527
+ if not scorers:
528
+ return []
529
+ return scorers
530
+
531
+ @override
532
+ def next_page_info(self) -> Optional[PageInfo]:
533
+ scorers = self.scorers
534
+ if not scorers:
535
+ return None
536
+
537
+ item = cast(Any, scorers[-1])
538
+ if not isinstance(item, ScenarioScorersCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
539
+ # TODO emit warning log
540
+ return None
541
+
542
+ return PageInfo(params={"starting_after": item.id})
@@ -20,6 +20,9 @@ from .._response import (
20
20
  async_to_raw_response_wrapper,
21
21
  async_to_streamed_response_wrapper,
22
22
  )
23
+ from .._exceptions import RunloopError
24
+ from ..lib.polling import PollingConfig, poll_until
25
+ from ..lib.polling_async import async_poll_until
23
26
  from ..pagination import SyncBlueprintsCursorIDPage, AsyncBlueprintsCursorIDPage
24
27
  from .._base_client import AsyncPaginator, make_request_options
25
28
  from ..types.blueprint_view import BlueprintView
@@ -154,6 +157,119 @@ class BlueprintsResource(SyncAPIResource):
154
157
  cast_to=BlueprintView,
155
158
  )
156
159
 
160
+ def await_build_complete(
161
+ self,
162
+ id: str,
163
+ *,
164
+ polling_config: PollingConfig | None = None,
165
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
166
+ # The extra values given here take precedence over values defined on the client or passed to this method.
167
+ extra_headers: Headers | None = None,
168
+ extra_query: Query | None = None,
169
+ extra_body: Body | None = None,
170
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
171
+ ) -> BlueprintView:
172
+ """Wait for a blueprint to finish building.
173
+
174
+ Args:
175
+ id: The ID of the blueprint to wait for
176
+ polling_config: Optional polling configuration
177
+ extra_headers: Send extra headers
178
+ extra_query: Add additional query parameters to the request
179
+ extra_body: Add additional JSON properties to the request
180
+ timeout: Override the client-level default timeout for this request, in seconds
181
+
182
+ Returns:
183
+ The blueprint in built state
184
+
185
+ Raises:
186
+ PollingTimeout: If polling times out before blueprint is built
187
+ RunloopError: If blueprint enters a non-built terminal state
188
+ """
189
+ def retrieve_blueprint() -> BlueprintView:
190
+ return self.retrieve(
191
+ id,
192
+ extra_headers=extra_headers,
193
+ extra_query=extra_query,
194
+ extra_body=extra_body,
195
+ timeout=timeout
196
+ )
197
+
198
+ def is_done_building(blueprint: BlueprintView) -> bool:
199
+ return blueprint.status not in ["building", "provisioning"]
200
+
201
+ blueprint = poll_until(retrieve_blueprint, is_done_building, polling_config)
202
+
203
+ if blueprint.status != "build_complete":
204
+ raise RunloopError(
205
+ f"Blueprint entered non-built terminal state: {blueprint.status}"
206
+ )
207
+
208
+ return blueprint
209
+
210
+ def create_and_await_build_complete(
211
+ self,
212
+ *,
213
+ name: str,
214
+ code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
215
+ dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
216
+ file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
217
+ launch_parameters: Optional[LaunchParameters] | NotGiven = NOT_GIVEN,
218
+ system_setup_commands: Optional[List[str]] | NotGiven = NOT_GIVEN,
219
+ polling_config: PollingConfig | None = None,
220
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
221
+ # The extra values given here take precedence over values defined on the client or passed to this method.
222
+ extra_headers: Headers | None = None,
223
+ extra_query: Query | None = None,
224
+ extra_body: Body | None = None,
225
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
226
+ idempotency_key: str | None = None,
227
+ ) -> BlueprintView:
228
+ """Create a new Blueprint and wait for it to finish building.
229
+
230
+ Args:
231
+ dockerfile: The Dockerfile contents to use for building the Blueprint
232
+ file_mounts: Files to mount into the Blueprint
233
+ launch_parameters: Launch parameters for Devboxes created from this Blueprint
234
+ name: Name for the Blueprint
235
+ system_setup_commands: Commands to run during Blueprint build
236
+ polling_config: Optional polling configuration
237
+ extra_headers: Send extra headers
238
+ extra_query: Add additional query parameters to the request
239
+ extra_body: Add additional JSON properties to the request
240
+ timeout: Override the client-level default timeout for this request, in seconds
241
+ idempotency_key: Specify a custom idempotency key for this request
242
+
243
+ Returns:
244
+ The built blueprint
245
+
246
+ Raises:
247
+ PollingTimeout: If polling times out before blueprint is built
248
+ RunloopError: If blueprint enters a non-built terminal state
249
+ """
250
+ blueprint = self.create(
251
+ name=name,
252
+ dockerfile=dockerfile,
253
+ code_mounts=code_mounts,
254
+ file_mounts=file_mounts,
255
+ launch_parameters=launch_parameters,
256
+ system_setup_commands=system_setup_commands,
257
+ extra_headers=extra_headers,
258
+ extra_query=extra_query,
259
+ extra_body=extra_body,
260
+ timeout=timeout,
261
+ idempotency_key=idempotency_key,
262
+ )
263
+
264
+ return self.await_build_complete(
265
+ blueprint.id,
266
+ polling_config=polling_config,
267
+ extra_headers=extra_headers,
268
+ extra_query=extra_query,
269
+ extra_body=extra_body,
270
+ timeout=timeout,
271
+ )
272
+
157
273
  def list(
158
274
  self,
159
275
  *,
@@ -429,6 +545,119 @@ class AsyncBlueprintsResource(AsyncAPIResource):
429
545
  ),
430
546
  cast_to=BlueprintView,
431
547
  )
548
+
549
+ async def await_build_complete(
550
+ self,
551
+ id: str,
552
+ *,
553
+ polling_config: PollingConfig | None = None,
554
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
555
+ # The extra values given here take precedence over values defined on the client or passed to this method.
556
+ extra_headers: Headers | None = None,
557
+ extra_query: Query | None = None,
558
+ extra_body: Body | None = None,
559
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
560
+ ) -> BlueprintView:
561
+ """Wait for a blueprint to finish building.
562
+
563
+ Args:
564
+ id: The ID of the blueprint to wait for
565
+ polling_config: Optional polling configuration
566
+ extra_headers: Send extra headers
567
+ extra_query: Add additional query parameters to the request
568
+ extra_body: Add additional JSON properties to the request
569
+ timeout: Override the client-level default timeout for this request, in seconds
570
+
571
+ Returns:
572
+ The blueprint in built state
573
+
574
+ Raises:
575
+ PollingTimeout: If polling times out before blueprint is built
576
+ RunloopError: If blueprint enters a non-built terminal state
577
+ """
578
+ async def retrieve_blueprint() -> BlueprintView:
579
+ return await self.retrieve(
580
+ id,
581
+ extra_headers=extra_headers,
582
+ extra_query=extra_query,
583
+ extra_body=extra_body,
584
+ timeout=timeout
585
+ )
586
+
587
+ def is_done_building(blueprint: BlueprintView) -> bool:
588
+ return blueprint.status not in ["building", "provisioning"]
589
+
590
+ blueprint = await async_poll_until(retrieve_blueprint, is_done_building, polling_config)
591
+
592
+ if blueprint.status != "build_complete":
593
+ raise RunloopError(
594
+ f"Blueprint entered non-built terminal state: {blueprint.status}"
595
+ )
596
+
597
+ return blueprint
598
+
599
+ async def create_and_await_build_complete(
600
+ self,
601
+ *,
602
+ name: str,
603
+ code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
604
+ dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
605
+ file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
606
+ launch_parameters: Optional[LaunchParameters] | NotGiven = NOT_GIVEN,
607
+ system_setup_commands: Optional[List[str]] | NotGiven = NOT_GIVEN,
608
+ polling_config: PollingConfig | None = None,
609
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
610
+ # The extra values given here take precedence over values defined on the client or passed to this method.
611
+ extra_headers: Headers | None = None,
612
+ extra_query: Query | None = None,
613
+ extra_body: Body | None = None,
614
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
615
+ idempotency_key: str | None = None,
616
+ ) -> BlueprintView:
617
+ """Create a new Blueprint and wait for it to finish building.
618
+
619
+ Args:
620
+ dockerfile: The Dockerfile contents to use for building the Blueprint
621
+ file_mounts: Files to mount into the Blueprint
622
+ launch_parameters: Launch parameters for Devboxes created from this Blueprint
623
+ name: Name for the Blueprint
624
+ system_setup_commands: Commands to run during Blueprint build
625
+ polling_config: Optional polling configuration
626
+ extra_headers: Send extra headers
627
+ extra_query: Add additional query parameters to the request
628
+ extra_body: Add additional JSON properties to the request
629
+ timeout: Override the client-level default timeout for this request, in seconds
630
+ idempotency_key: Specify a custom idempotency key for this request
631
+
632
+ Returns:
633
+ The built blueprint
634
+
635
+ Raises:
636
+ PollingTimeout: If polling times out before blueprint is built
637
+ RunloopError: If blueprint enters a non-built terminal state
638
+ """
639
+ blueprint = await self.create(
640
+ name=name,
641
+ dockerfile=dockerfile,
642
+ code_mounts=code_mounts,
643
+ file_mounts=file_mounts,
644
+ launch_parameters=launch_parameters,
645
+ system_setup_commands=system_setup_commands,
646
+ extra_headers=extra_headers,
647
+ extra_query=extra_query,
648
+ extra_body=extra_body,
649
+ timeout=timeout,
650
+ idempotency_key=idempotency_key,
651
+ )
652
+
653
+ return await self.await_build_complete(
654
+ blueprint.id,
655
+ polling_config=polling_config,
656
+ extra_headers=extra_headers,
657
+ extra_query=extra_query,
658
+ extra_body=extra_body,
659
+ timeout=timeout,
660
+ )
432
661
 
433
662
  def list(
434
663
  self,