runloop-api-client 0.26.0__tar.gz → 0.28.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 (276) hide show
  1. runloop_api_client-0.28.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/CHANGELOG.md +34 -0
  3. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/PKG-INFO +30 -4
  4. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/README.md +27 -0
  5. runloop_api_client-0.28.0/bin/publish-pypi +6 -0
  6. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/pyproject.toml +2 -4
  7. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_models.py +5 -2
  8. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_version.py +1 -1
  9. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/scenarios/runs.py +8 -4
  10. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmark_list_view.py +2 -0
  11. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmark_run_list_view.py +2 -0
  12. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_list_view.py +2 -0
  13. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_list_view.py +2 -0
  14. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +2 -0
  15. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/repository_connection_list_view.py +2 -0
  16. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_list_view.py +2 -0
  17. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_run_list_view.py +2 -0
  18. runloop_api_client-0.28.0/src/runloop_api_client/types/scoring_function.py +125 -0
  19. runloop_api_client-0.28.0/src/runloop_api_client/types/scoring_function_param.py +121 -0
  20. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/shared/launch_parameters.py +6 -0
  21. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +6 -0
  22. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/scenarios/test_scorers.py +4 -0
  23. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/test_blueprints.py +8 -0
  24. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/test_devboxes.py +4 -0
  25. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/test_scenarios.py +102 -26
  26. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_models.py +32 -0
  27. runloop_api_client-0.26.0/.release-please-manifest.json +0 -3
  28. runloop_api_client-0.26.0/bin/publish-pypi +0 -9
  29. runloop_api_client-0.26.0/src/runloop_api_client/types/scoring_function.py +0 -39
  30. runloop_api_client-0.26.0/src/runloop_api_client/types/scoring_function_param.py +0 -40
  31. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/.gitignore +0 -0
  32. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/CONTRIBUTING.md +0 -0
  33. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/LICENSE +0 -0
  34. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/SECURITY.md +0 -0
  35. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/api.md +0 -0
  36. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/bin/check-release-environment +0 -0
  37. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/examples/.keep +0 -0
  38. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/mypy.ini +0 -0
  39. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/noxfile.py +0 -0
  40. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/release-please-config.json +0 -0
  41. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/requirements-dev.lock +0 -0
  42. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/requirements.lock +0 -0
  43. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop/lib/.keep +0 -0
  44. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/__init__.py +0 -0
  45. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_base_client.py +0 -0
  46. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_client.py +0 -0
  47. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_compat.py +0 -0
  48. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_constants.py +0 -0
  49. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_exceptions.py +0 -0
  50. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_files.py +0 -0
  51. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_qs.py +0 -0
  52. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_resource.py +0 -0
  53. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_response.py +0 -0
  54. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_streaming.py +0 -0
  55. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_types.py +0 -0
  56. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  57. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  58. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  59. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  60. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  61. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  62. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  63. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  64. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  65. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/lib/.keep +0 -0
  66. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/lib/polling.py +0 -0
  67. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  68. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/pagination.py +0 -0
  69. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/py.typed +0 -0
  70. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/__init__.py +0 -0
  71. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  72. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
  73. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  74. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  75. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  76. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  77. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  78. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
  79. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  80. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  81. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  82. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
  83. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/repositories.py +0 -0
  84. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  85. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  86. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  87. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/__init__.py +0 -0
  88. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  89. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  90. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  91. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  92. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  93. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  94. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  95. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  96. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  97. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  98. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  99. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  100. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  101. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  102. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  103. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  104. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  105. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  106. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  107. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  108. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  109. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  110. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  111. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  112. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  113. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  114. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  115. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  116. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  117. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  118. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  119. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  120. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  121. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  122. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  123. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  124. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  125. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  126. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  127. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  128. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  129. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  130. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  131. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  132. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  133. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  134. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  135. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  136. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  137. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  138. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  139. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  140. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  141. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  142. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  143. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  144. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
  145. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  146. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  147. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  148. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  149. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  150. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  151. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  152. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  153. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  154. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  155. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  156. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  157. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  158. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  159. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  160. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  161. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  162. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  163. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  164. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
  165. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  166. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  167. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  168. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  169. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  170. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
  171. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  172. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  173. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
  174. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  175. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  176. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  177. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  178. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  179. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  180. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  181. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  182. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  183. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  184. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  185. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  186. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  187. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  188. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  189. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  190. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  191. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  192. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  193. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  194. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  195. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  196. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  197. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  198. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  199. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  200. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
  201. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  202. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  203. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  204. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  205. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  206. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  207. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  208. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  209. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  210. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/input_context.py +0 -0
  211. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  212. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  213. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  214. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  215. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/repository_version_details.py +0 -0
  216. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/repository_version_list_view.py +0 -0
  217. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  218. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  219. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  220. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  221. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  222. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  223. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  224. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  225. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  226. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  227. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  228. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  229. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  230. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  231. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  232. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  233. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  234. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  235. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  236. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  237. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  238. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  239. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  240. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  241. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  242. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  243. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  244. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  245. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  246. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  247. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/__init__.py +0 -0
  248. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/__init__.py +0 -0
  249. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  250. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  251. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/devboxes/__init__.py +0 -0
  252. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  253. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  254. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  255. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  256. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  257. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  258. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/scenarios/__init__.py +0 -0
  259. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  260. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/test_benchmarks.py +0 -0
  261. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/api_resources/test_repositories.py +0 -0
  262. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/conftest.py +0 -0
  263. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/sample_file.txt +0 -0
  264. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_client.py +0 -0
  265. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_deepcopy.py +0 -0
  266. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_extract_files.py +0 -0
  267. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_files.py +0 -0
  268. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_qs.py +0 -0
  269. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_required_args.py +0 -0
  270. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_response.py +0 -0
  271. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_streaming.py +0 -0
  272. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_transform.py +0 -0
  273. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_utils/test_proxy.py +0 -0
  274. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/test_utils/test_typing.py +0 -0
  275. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/tests/utils.py +0 -0
  276. {runloop_api_client-0.26.0 → runloop_api_client-0.28.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.28.0"
3
+ }
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.28.0 (2025-03-21)
4
+
5
+ Full Changelog: [v0.27.0...v0.28.0](https://github.com/runloopai/api-client-python/compare/v0.27.0...v0.28.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([#575](https://github.com/runloopai/api-client-python/issues/575)) ([c6f1ca5](https://github.com/runloopai/api-client-python/commit/c6f1ca5d4101b6c1b62326a1bf4d7bd090461595))
10
+
11
+ ## 0.27.0 (2025-03-21)
12
+
13
+ Full Changelog: [v0.26.0...v0.27.0](https://github.com/runloopai/api-client-python/compare/v0.26.0...v0.27.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([#573](https://github.com/runloopai/api-client-python/issues/573)) ([091f833](https://github.com/runloopai/api-client-python/commit/091f833d80096bb0470d505c0a0145648e52819b))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **ci:** ensure pip is always available ([#571](https://github.com/runloopai/api-client-python/issues/571)) ([ddb9362](https://github.com/runloopai/api-client-python/commit/ddb93629704f116cafb2123dc8b302ddff883bb8))
23
+ * **ci:** remove publishing patch ([#572](https://github.com/runloopai/api-client-python/issues/572)) ([c71815a](https://github.com/runloopai/api-client-python/commit/c71815aaaf47e404e1bf3d44c6b26b5ed0b05054))
24
+ * **types:** handle more discriminated union shapes ([#570](https://github.com/runloopai/api-client-python/issues/570)) ([297cfbe](https://github.com/runloopai/api-client-python/commit/297cfbe93bfdcbbafd44a4501d5a81a7fb1651bd))
25
+
26
+
27
+ ### Chores
28
+
29
+ * **internal:** bump rye to 0.44.0 ([#569](https://github.com/runloopai/api-client-python/issues/569)) ([dd5b79a](https://github.com/runloopai/api-client-python/commit/dd5b79a221fff5b38fdbd655d78254fe7140fd73))
30
+ * **internal:** remove extra empty newlines ([#567](https://github.com/runloopai/api-client-python/issues/567)) ([49f34bd](https://github.com/runloopai/api-client-python/commit/49f34bd0b733f2a10592fff098d379501df3ac86))
31
+
32
+
33
+ ### Documentation
34
+
35
+ * revise readme docs about nested params ([#564](https://github.com/runloopai/api-client-python/issues/564)) ([a2df5d3](https://github.com/runloopai/api-client-python/commit/a2df5d3c9b32ab941ee83d3f5cac8b874b7bbe28))
36
+
3
37
  ## 0.26.0 (2025-03-04)
4
38
 
5
39
  Full Changelog: [v0.25.0...v0.26.0](https://github.com/runloopai/api-client-python/compare/v0.25.0...v0.26.0)
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.26.0
3
+ Version: 0.28.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
7
7
  Author-email: Runloop <support@runloop.ai>
8
- License-Expression: MIT
9
- License-File: LICENSE
8
+ License: MIT
10
9
  Classifier: Intended Audience :: Developers
11
10
  Classifier: License :: OSI Approved :: MIT License
12
11
  Classifier: Operating System :: MacOS
@@ -168,6 +167,33 @@ for devbox in first_page.devboxes:
168
167
  # Remove `await` for non-async usage.
169
168
  ```
170
169
 
170
+ ## Nested params
171
+
172
+ Nested parameters are dictionaries, typed using `TypedDict`, for example:
173
+
174
+ ```python
175
+ from runloop_api_client import Runloop
176
+
177
+ client = Runloop()
178
+
179
+ blueprint_view = client.blueprints.create(
180
+ name="name",
181
+ launch_parameters={
182
+ "after_idle": {
183
+ "idle_time_seconds": 0,
184
+ "on_idle": "shutdown",
185
+ },
186
+ "available_ports": [0],
187
+ "custom_cpu_cores": 0,
188
+ "custom_gb_memory": 0,
189
+ "keep_alive_time_seconds": 0,
190
+ "launch_commands": ["string"],
191
+ "resource_size_request": "SMALL",
192
+ },
193
+ )
194
+ print(blueprint_view.launch_parameters)
195
+ ```
196
+
171
197
  ## File uploads
172
198
 
173
199
  Request parameters that correspond to file uploads can be passed as `bytes`, a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance or a tuple of `(filename, contents, media type)`.
@@ -136,6 +136,33 @@ for devbox in first_page.devboxes:
136
136
  # Remove `await` for non-async usage.
137
137
  ```
138
138
 
139
+ ## Nested params
140
+
141
+ Nested parameters are dictionaries, typed using `TypedDict`, for example:
142
+
143
+ ```python
144
+ from runloop_api_client import Runloop
145
+
146
+ client = Runloop()
147
+
148
+ blueprint_view = client.blueprints.create(
149
+ name="name",
150
+ launch_parameters={
151
+ "after_idle": {
152
+ "idle_time_seconds": 0,
153
+ "on_idle": "shutdown",
154
+ },
155
+ "available_ports": [0],
156
+ "custom_cpu_cores": 0,
157
+ "custom_gb_memory": 0,
158
+ "keep_alive_time_seconds": 0,
159
+ "launch_commands": ["string"],
160
+ "resource_size_request": "SMALL",
161
+ },
162
+ )
163
+ print(blueprint_view.launch_parameters)
164
+ ```
165
+
139
166
  ## File uploads
140
167
 
141
168
  Request parameters that correspond to file uploads can be passed as `bytes`, a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance or a tuple of `(filename, contents, media type)`.
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -eux
4
+ mkdir -p dist
5
+ rye build --clean
6
+ rye publish --yes --token=$PYPI_TOKEN
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.26.0"
3
+ version = "0.28.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -38,7 +38,6 @@ Homepage = "https://github.com/runloopai/api-client-python"
38
38
  Repository = "https://github.com/runloopai/api-client-python"
39
39
 
40
40
 
41
-
42
41
  [tool.rye]
43
42
  managed = true
44
43
  # version pins are in requirements-dev.lock
@@ -87,7 +86,7 @@ typecheck = { chain = [
87
86
  "typecheck:mypy" = "mypy ."
88
87
 
89
88
  [build-system]
90
- requires = ["hatchling", "hatch-fancy-pypi-readme"]
89
+ requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]
91
90
  build-backend = "hatchling.build"
92
91
 
93
92
  [tool.hatch.build]
@@ -152,7 +151,6 @@ reportImplicitOverride = true
152
151
  reportImportCycles = false
153
152
  reportPrivateUsage = false
154
153
 
155
-
156
154
  [tool.ruff]
157
155
  line-length = 120
158
156
  output-format = "grouped"
@@ -65,7 +65,7 @@ from ._compat import (
65
65
  from ._constants import RAW_RESPONSE_HEADER
66
66
 
67
67
  if TYPE_CHECKING:
68
- from pydantic_core.core_schema import ModelField, LiteralSchema, ModelFieldsSchema
68
+ from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema
69
69
 
70
70
  __all__ = ["BaseModel", "GenericModel"]
71
71
 
@@ -646,15 +646,18 @@ def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any,
646
646
 
647
647
  def _extract_field_schema_pv2(model: type[BaseModel], field_name: str) -> ModelField | None:
648
648
  schema = model.__pydantic_core_schema__
649
+ if schema["type"] == "definitions":
650
+ schema = schema["schema"]
651
+
649
652
  if schema["type"] != "model":
650
653
  return None
651
654
 
655
+ schema = cast("ModelSchema", schema)
652
656
  fields_schema = schema["schema"]
653
657
  if fields_schema["type"] != "model-fields":
654
658
  return None
655
659
 
656
660
  fields_schema = cast("ModelFieldsSchema", fields_schema)
657
-
658
661
  field = fields_schema["fields"].get(field_name)
659
662
  if not field:
660
663
  return None
@@ -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.26.0" # x-release-please-version
4
+ __version__ = "0.28.0" # x-release-please-version
@@ -141,8 +141,10 @@ class RunsResource(SyncAPIResource):
141
141
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
142
142
  idempotency_key: str | None = None,
143
143
  ) -> ScenarioRunView:
144
- """
145
- Complete a currently running ScenarioRun.
144
+ """Complete a currently running ScenarioRun.
145
+
146
+ Calling complete will shutdown
147
+ underlying Devbox resource.
146
148
 
147
149
  Args:
148
150
  extra_headers: Send extra headers
@@ -467,8 +469,10 @@ class AsyncRunsResource(AsyncAPIResource):
467
469
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
468
470
  idempotency_key: str | None = None,
469
471
  ) -> ScenarioRunView:
470
- """
471
- Complete a currently running ScenarioRun.
472
+ """Complete a currently running ScenarioRun.
473
+
474
+ Calling complete will shutdown
475
+ underlying Devbox resource.
472
476
 
473
477
  Args:
474
478
  extra_headers: Send extra headers
@@ -14,4 +14,6 @@ class BenchmarkListView(BaseModel):
14
14
 
15
15
  has_more: bool
16
16
 
17
+ remaining_count: int
18
+
17
19
  total_count: int
@@ -11,6 +11,8 @@ __all__ = ["BenchmarkRunListView"]
11
11
  class BenchmarkRunListView(BaseModel):
12
12
  has_more: bool
13
13
 
14
+ remaining_count: int
15
+
14
16
  runs: List[BenchmarkRunView]
15
17
  """List of BenchmarkRuns matching filter."""
16
18
 
@@ -14,4 +14,6 @@ class BlueprintListView(BaseModel):
14
14
 
15
15
  has_more: bool
16
16
 
17
+ remaining_count: int
18
+
17
19
  total_count: int
@@ -14,4 +14,6 @@ class DevboxListView(BaseModel):
14
14
 
15
15
  has_more: bool
16
16
 
17
+ remaining_count: int
18
+
17
19
  total_count: int
@@ -11,6 +11,8 @@ __all__ = ["DevboxSnapshotListView"]
11
11
  class DevboxSnapshotListView(BaseModel):
12
12
  has_more: bool
13
13
 
14
+ remaining_count: int
15
+
14
16
  snapshots: List[DevboxSnapshotView]
15
17
  """List of snapshots matching filter."""
16
18
 
@@ -11,6 +11,8 @@ __all__ = ["RepositoryConnectionListView"]
11
11
  class RepositoryConnectionListView(BaseModel):
12
12
  has_more: bool
13
13
 
14
+ remaining_count: int
15
+
14
16
  repositories: List[RepositoryConnectionView]
15
17
  """List of repositories matching filter."""
16
18
 
@@ -11,6 +11,8 @@ __all__ = ["ScenarioListView"]
11
11
  class ScenarioListView(BaseModel):
12
12
  has_more: bool
13
13
 
14
+ remaining_count: int
15
+
14
16
  scenarios: List[ScenarioView]
15
17
  """List of Scenarios matching filter."""
16
18
 
@@ -11,6 +11,8 @@ __all__ = ["ScenarioRunListView"]
11
11
  class ScenarioRunListView(BaseModel):
12
12
  has_more: bool
13
13
 
14
+ remaining_count: int
15
+
14
16
  runs: List[ScenarioRunView]
15
17
  """List of ScenarioRuns matching filter."""
16
18
 
@@ -0,0 +1,125 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Union, Optional
4
+ from typing_extensions import Literal, Annotated, TypeAlias
5
+
6
+ from .._utils import PropertyInfo
7
+ from .._models import BaseModel
8
+
9
+ __all__ = [
10
+ "ScoringFunction",
11
+ "Scorer",
12
+ "ScorerAstGrepScoringFunction",
13
+ "ScorerBashScriptScoringFunction",
14
+ "ScorerCommandScoringFunction",
15
+ "ScorerCustomScoringFunction",
16
+ "ScorerPythonScriptScoringFunction",
17
+ "ScorerTestBasedScoringFunction",
18
+ "ScorerTestBasedScoringFunctionTestFile",
19
+ ]
20
+
21
+
22
+ class ScorerAstGrepScoringFunction(BaseModel):
23
+ pattern: str
24
+ """AST pattern to match."""
25
+
26
+ search_directory: str
27
+ """The path to search."""
28
+
29
+ type: Literal["ast_grep_scorer"]
30
+
31
+ lang: Optional[str] = None
32
+ """The language of the pattern."""
33
+
34
+
35
+ class ScorerBashScriptScoringFunction(BaseModel):
36
+ type: Literal["bash_script_scorer"]
37
+
38
+ bash_script: Optional[str] = None
39
+ """
40
+ A single bash script that sets up the environment, scores, and prints the final
41
+ score to standard out. Score should be a float between 0.0 and 1.0, and look
42
+ like "score=[0.0..1.0].
43
+ """
44
+
45
+
46
+ class ScorerCommandScoringFunction(BaseModel):
47
+ type: Literal["command_scorer"]
48
+
49
+ command: Optional[str] = None
50
+ """The command to execute."""
51
+
52
+
53
+ class ScorerCustomScoringFunction(BaseModel):
54
+ type: Literal["custom_scorer"]
55
+
56
+ scorer_params: Optional[object] = None
57
+ """Additional JSON structured context to pass to the scoring function."""
58
+
59
+
60
+ class ScorerPythonScriptScoringFunction(BaseModel):
61
+ python_script: str
62
+ """Python script to be run.
63
+
64
+ The script should output the score to standard out as a float between 0.0 and
65
+ 1.0.
66
+ """
67
+
68
+ type: Literal["python_script_scorer"]
69
+
70
+ requirements_contents: Optional[str] = None
71
+ """Package dependencies to be installed.
72
+
73
+ The requirements should be a valid requirements.txt file.
74
+ """
75
+
76
+
77
+ class ScorerTestBasedScoringFunctionTestFile(BaseModel):
78
+ file_contents: Optional[str] = None
79
+ """Content of the test file"""
80
+
81
+ file_path: Optional[str] = None
82
+ """
83
+ Path to write content of the test file, relative to your environment's working
84
+ directory
85
+ """
86
+
87
+
88
+ class ScorerTestBasedScoringFunction(BaseModel):
89
+ type: Literal["test_based_scorer"]
90
+
91
+ test_command: Optional[str] = None
92
+ """The command to execute for running the tests"""
93
+
94
+ test_files: Optional[List[ScorerTestBasedScoringFunctionTestFile]] = None
95
+ """List of test files to create"""
96
+
97
+
98
+ Scorer: TypeAlias = Annotated[
99
+ Union[
100
+ ScorerAstGrepScoringFunction,
101
+ ScorerBashScriptScoringFunction,
102
+ ScorerCommandScoringFunction,
103
+ ScorerCustomScoringFunction,
104
+ ScorerPythonScriptScoringFunction,
105
+ ScorerTestBasedScoringFunction,
106
+ ],
107
+ PropertyInfo(discriminator="type"),
108
+ ]
109
+
110
+
111
+ class ScoringFunction(BaseModel):
112
+ name: str
113
+ """Name of scoring function. Names must only contain [a-zA-Z0-9_-]."""
114
+
115
+ scorer: Scorer
116
+ """The scoring function to use for evaluating this scenario.
117
+
118
+ The type field determines which built-in function to use.
119
+ """
120
+
121
+ weight: float
122
+ """Weight to apply to scoring function score.
123
+
124
+ Weights of all scoring functions should sum to 1.0.
125
+ """
@@ -0,0 +1,121 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Iterable, Optional
6
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
+
8
+ __all__ = [
9
+ "ScoringFunctionParam",
10
+ "Scorer",
11
+ "ScorerAstGrepScoringFunction",
12
+ "ScorerBashScriptScoringFunction",
13
+ "ScorerCommandScoringFunction",
14
+ "ScorerCustomScoringFunction",
15
+ "ScorerPythonScriptScoringFunction",
16
+ "ScorerTestBasedScoringFunction",
17
+ "ScorerTestBasedScoringFunctionTestFile",
18
+ ]
19
+
20
+
21
+ class ScorerAstGrepScoringFunction(TypedDict, total=False):
22
+ pattern: Required[str]
23
+ """AST pattern to match."""
24
+
25
+ search_directory: Required[str]
26
+ """The path to search."""
27
+
28
+ type: Required[Literal["ast_grep_scorer"]]
29
+
30
+ lang: str
31
+ """The language of the pattern."""
32
+
33
+
34
+ class ScorerBashScriptScoringFunction(TypedDict, total=False):
35
+ type: Required[Literal["bash_script_scorer"]]
36
+
37
+ bash_script: str
38
+ """
39
+ A single bash script that sets up the environment, scores, and prints the final
40
+ score to standard out. Score should be a float between 0.0 and 1.0, and look
41
+ like "score=[0.0..1.0].
42
+ """
43
+
44
+
45
+ class ScorerCommandScoringFunction(TypedDict, total=False):
46
+ type: Required[Literal["command_scorer"]]
47
+
48
+ command: str
49
+ """The command to execute."""
50
+
51
+
52
+ class ScorerCustomScoringFunction(TypedDict, total=False):
53
+ type: Required[Literal["custom_scorer"]]
54
+
55
+ scorer_params: Optional[object]
56
+ """Additional JSON structured context to pass to the scoring function."""
57
+
58
+
59
+ class ScorerPythonScriptScoringFunction(TypedDict, total=False):
60
+ python_script: Required[str]
61
+ """Python script to be run.
62
+
63
+ The script should output the score to standard out as a float between 0.0 and
64
+ 1.0.
65
+ """
66
+
67
+ type: Required[Literal["python_script_scorer"]]
68
+
69
+ requirements_contents: str
70
+ """Package dependencies to be installed.
71
+
72
+ The requirements should be a valid requirements.txt file.
73
+ """
74
+
75
+
76
+ class ScorerTestBasedScoringFunctionTestFile(TypedDict, total=False):
77
+ file_contents: str
78
+ """Content of the test file"""
79
+
80
+ file_path: str
81
+ """
82
+ Path to write content of the test file, relative to your environment's working
83
+ directory
84
+ """
85
+
86
+
87
+ class ScorerTestBasedScoringFunction(TypedDict, total=False):
88
+ type: Required[Literal["test_based_scorer"]]
89
+
90
+ test_command: str
91
+ """The command to execute for running the tests"""
92
+
93
+ test_files: Iterable[ScorerTestBasedScoringFunctionTestFile]
94
+ """List of test files to create"""
95
+
96
+
97
+ Scorer: TypeAlias = Union[
98
+ ScorerAstGrepScoringFunction,
99
+ ScorerBashScriptScoringFunction,
100
+ ScorerCommandScoringFunction,
101
+ ScorerCustomScoringFunction,
102
+ ScorerPythonScriptScoringFunction,
103
+ ScorerTestBasedScoringFunction,
104
+ ]
105
+
106
+
107
+ class ScoringFunctionParam(TypedDict, total=False):
108
+ name: Required[str]
109
+ """Name of scoring function. Names must only contain [a-zA-Z0-9_-]."""
110
+
111
+ scorer: Required[Scorer]
112
+ """The scoring function to use for evaluating this scenario.
113
+
114
+ The type field determines which built-in function to use.
115
+ """
116
+
117
+ weight: Required[float]
118
+ """Weight to apply to scoring function score.
119
+
120
+ Weights of all scoring functions should sum to 1.0.
121
+ """
@@ -23,6 +23,12 @@ class LaunchParameters(BaseModel):
23
23
  'createTunnel' API.
24
24
  """
25
25
 
26
+ custom_cpu_cores: Optional[int] = None
27
+ """custom resource size, number of cpu cores, must be multiple of 2."""
28
+
29
+ custom_gb_memory: Optional[int] = None
30
+ """custom memory size, number in Gi, must be a multiple of 2."""
31
+
26
32
  keep_alive_time_seconds: Optional[int] = None
27
33
  """Time in seconds after which Devbox will automatically shutdown.
28
34
 
@@ -24,6 +24,12 @@ class LaunchParameters(TypedDict, total=False):
24
24
  'createTunnel' API.
25
25
  """
26
26
 
27
+ custom_cpu_cores: Optional[int]
28
+ """custom resource size, number of cpu cores, must be multiple of 2."""
29
+
30
+ custom_gb_memory: Optional[int]
31
+ """custom memory size, number in Gi, must be a multiple of 2."""
32
+
27
33
  keep_alive_time_seconds: Optional[int]
28
34
  """Time in seconds after which Devbox will automatically shutdown.
29
35
 
@@ -196,6 +196,8 @@ class TestScorers:
196
196
  "on_idle": "shutdown",
197
197
  },
198
198
  "available_ports": [0],
199
+ "custom_cpu_cores": 0,
200
+ "custom_gb_memory": 0,
199
201
  "keep_alive_time_seconds": 0,
200
202
  "launch_commands": ["string"],
201
203
  "resource_size_request": "SMALL",
@@ -417,6 +419,8 @@ class TestAsyncScorers:
417
419
  "on_idle": "shutdown",
418
420
  },
419
421
  "available_ports": [0],
422
+ "custom_cpu_cores": 0,
423
+ "custom_gb_memory": 0,
420
424
  "keep_alive_time_seconds": 0,
421
425
  "launch_commands": ["string"],
422
426
  "resource_size_request": "SMALL",
@@ -49,6 +49,8 @@ class TestBlueprints:
49
49
  "on_idle": "shutdown",
50
50
  },
51
51
  "available_ports": [0],
52
+ "custom_cpu_cores": 0,
53
+ "custom_gb_memory": 0,
52
54
  "keep_alive_time_seconds": 0,
53
55
  "launch_commands": ["string"],
54
56
  "resource_size_request": "SMALL",
@@ -218,6 +220,8 @@ class TestBlueprints:
218
220
  "on_idle": "shutdown",
219
221
  },
220
222
  "available_ports": [0],
223
+ "custom_cpu_cores": 0,
224
+ "custom_gb_memory": 0,
221
225
  "keep_alive_time_seconds": 0,
222
226
  "launch_commands": ["string"],
223
227
  "resource_size_request": "SMALL",
@@ -281,6 +285,8 @@ class TestAsyncBlueprints:
281
285
  "on_idle": "shutdown",
282
286
  },
283
287
  "available_ports": [0],
288
+ "custom_cpu_cores": 0,
289
+ "custom_gb_memory": 0,
284
290
  "keep_alive_time_seconds": 0,
285
291
  "launch_commands": ["string"],
286
292
  "resource_size_request": "SMALL",
@@ -450,6 +456,8 @@ class TestAsyncBlueprints:
450
456
  "on_idle": "shutdown",
451
457
  },
452
458
  "available_ports": [0],
459
+ "custom_cpu_cores": 0,
460
+ "custom_gb_memory": 0,
453
461
  "keep_alive_time_seconds": 0,
454
462
  "launch_commands": ["string"],
455
463
  "resource_size_request": "SMALL",
@@ -65,6 +65,8 @@ class TestDevboxes:
65
65
  "on_idle": "shutdown",
66
66
  },
67
67
  "available_ports": [0],
68
+ "custom_cpu_cores": 0,
69
+ "custom_gb_memory": 0,
68
70
  "keep_alive_time_seconds": 0,
69
71
  "launch_commands": ["string"],
70
72
  "resource_size_request": "SMALL",
@@ -938,6 +940,8 @@ class TestAsyncDevboxes:
938
940
  "on_idle": "shutdown",
939
941
  },
940
942
  "available_ports": [0],
943
+ "custom_cpu_cores": 0,
944
+ "custom_gb_memory": 0,
941
945
  "keep_alive_time_seconds": 0,
942
946
  "launch_commands": ["string"],
943
947
  "resource_size_request": "SMALL",