runloop_api_client 0.69.0__tar.gz → 1.1.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 (354) hide show
  1. runloop_api_client-1.1.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/CHANGELOG.md +44 -0
  3. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/CONTRIBUTING.md +38 -2
  4. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/PKG-INFO +1 -1
  5. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/README-SDK.md +81 -23
  6. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/pyproject.toml +1 -1
  7. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_version.py +1 -1
  8. runloop_api_client-1.1.0/src/runloop_api_client/lib/__init__.py +3 -0
  9. runloop_api_client-1.1.0/src/runloop_api_client/lib/_ignore.py +496 -0
  10. runloop_api_client-1.1.0/src/runloop_api_client/lib/context_loader.py +78 -0
  11. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/blueprints.py +0 -28
  12. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/devboxes/devboxes.py +4 -4
  13. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/scenarios/scenarios.py +22 -10
  14. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/__init__.py +30 -3
  15. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/_types.py +58 -14
  16. runloop_api_client-1.1.0/src/runloop_api_client/sdk/agent.py +72 -0
  17. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/async_.py +387 -27
  18. runloop_api_client-1.1.0/src/runloop_api_client/sdk/async_agent.py +76 -0
  19. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/async_blueprint.py +3 -3
  20. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/async_devbox.py +150 -17
  21. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/async_execution.py +3 -3
  22. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/async_execution_result.py +1 -1
  23. runloop_api_client-1.1.0/src/runloop_api_client/sdk/async_scenario.py +118 -0
  24. runloop_api_client-1.1.0/src/runloop_api_client/sdk/async_scenario_run.py +242 -0
  25. runloop_api_client-1.1.0/src/runloop_api_client/sdk/async_scorer.py +77 -0
  26. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/async_snapshot.py +3 -3
  27. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/async_storage_object.py +21 -4
  28. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/blueprint.py +3 -3
  29. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/devbox.py +158 -25
  30. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/execution.py +3 -3
  31. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/execution_result.py +1 -1
  32. runloop_api_client-1.1.0/src/runloop_api_client/sdk/scenario.py +118 -0
  33. runloop_api_client-1.1.0/src/runloop_api_client/sdk/scenario_run.py +242 -0
  34. runloop_api_client-1.1.0/src/runloop_api_client/sdk/scorer.py +77 -0
  35. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/snapshot.py +3 -3
  36. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/storage_object.py +21 -4
  37. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/sync.py +413 -27
  38. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_build_parameters.py +1 -16
  39. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_create_params.py +1 -16
  40. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_preview_params.py +1 -16
  41. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_create_params.py +2 -2
  42. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_execute_async_params.py +11 -9
  43. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_start_run_params.py +6 -4
  44. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +1 -1
  45. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +1 -1
  46. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +1 -1
  47. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +1 -1
  48. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scoring_function.py +1 -1
  49. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scoring_function_param.py +1 -1
  50. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/launch_parameters.py +1 -1
  51. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/mount.py +5 -6
  52. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/run_profile.py +5 -1
  53. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +1 -1
  54. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/mount.py +5 -6
  55. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/run_profile.py +5 -1
  56. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/test_benchmarks.py +14 -0
  57. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/test_blueprints.py +0 -24
  58. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/test_scenarios.py +14 -0
  59. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/async_devbox/test_core.py +6 -6
  60. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/async_devbox/test_interfaces.py +3 -3
  61. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/async_devbox/test_streaming.py +1 -1
  62. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/conftest.py +71 -5
  63. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/devbox/test_core.py +6 -6
  64. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/devbox/test_interfaces.py +6 -6
  65. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/devbox/test_streaming.py +1 -1
  66. runloop_api_client-1.1.0/tests/sdk/test_agent.py +43 -0
  67. runloop_api_client-1.1.0/tests/sdk/test_async_agent.py +46 -0
  68. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_async_blueprint.py +4 -4
  69. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_async_execution_result.py +2 -2
  70. runloop_api_client-1.1.0/tests/sdk/test_async_ops.py +1231 -0
  71. runloop_api_client-1.1.0/tests/sdk/test_async_scenario.py +121 -0
  72. runloop_api_client-1.1.0/tests/sdk/test_async_scenario_run.py +162 -0
  73. runloop_api_client-1.1.0/tests/sdk/test_async_scorer.py +69 -0
  74. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_async_snapshot.py +5 -5
  75. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_async_storage_object.py +5 -5
  76. runloop_api_client-1.1.0/tests/sdk/test_ops.py +1112 -0
  77. runloop_api_client-1.1.0/tests/sdk/test_scenario.py +121 -0
  78. runloop_api_client-1.1.0/tests/sdk/test_scenario_run.py +157 -0
  79. runloop_api_client-1.1.0/tests/sdk/test_scorer.py +71 -0
  80. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/README.md +25 -7
  81. runloop_api_client-1.1.0/tests/smoketests/sdk/test_agent.py +197 -0
  82. runloop_api_client-1.1.0/tests/smoketests/sdk/test_async_agent.py +203 -0
  83. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_async_blueprint.py +1 -1
  84. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_async_devbox.py +301 -11
  85. runloop_api_client-1.1.0/tests/smoketests/sdk/test_async_scenario.py +126 -0
  86. runloop_api_client-1.1.0/tests/smoketests/sdk/test_async_scorer.py +122 -0
  87. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_async_storage_object.py +17 -16
  88. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_blueprint.py +1 -1
  89. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_devbox.py +294 -11
  90. runloop_api_client-1.1.0/tests/smoketests/sdk/test_scenario.py +126 -0
  91. runloop_api_client-1.1.0/tests/smoketests/sdk/test_scorer.py +122 -0
  92. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_storage_object.py +15 -15
  93. runloop_api_client-1.1.0/tests/test_utils/test_context_loader.py +207 -0
  94. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/uv.lock +212 -113
  95. runloop_api_client-0.69.0/.release-please-manifest.json +0 -3
  96. runloop_api_client-0.69.0/src/runloop_api_client/sdk/protocols.py +0 -201
  97. runloop_api_client-0.69.0/tests/sdk/test_async_clients.py +0 -520
  98. runloop_api_client-0.69.0/tests/sdk/test_clients.py +0 -476
  99. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/.gitignore +0 -0
  100. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/LICENSE +0 -0
  101. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/README.md +0 -0
  102. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/SECURITY.md +0 -0
  103. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/api.md +0 -0
  104. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/bin/check-release-environment +0 -0
  105. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/bin/publish-pypi +0 -0
  106. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/examples/.keep +0 -0
  107. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/release-please-config.json +0 -0
  108. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/requirements-dev.lock +0 -0
  109. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop/lib/.keep +0 -0
  110. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/__init__.py +0 -0
  111. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_base_client.py +0 -0
  112. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_client.py +0 -0
  113. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_compat.py +0 -0
  114. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_constants.py +0 -0
  115. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_exceptions.py +0 -0
  116. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_files.py +0 -0
  117. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_models.py +0 -0
  118. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_qs.py +0 -0
  119. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_resource.py +0 -0
  120. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_response.py +0 -0
  121. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_streaming.py +0 -0
  122. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_types.py +0 -0
  123. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  124. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  125. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  126. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  127. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  128. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  129. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  130. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  131. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  132. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  133. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  134. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  135. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  136. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/lib/.keep +0 -0
  137. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/lib/polling.py +0 -0
  138. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  139. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/pagination.py +0 -0
  140. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/py.typed +0 -0
  141. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/__init__.py +0 -0
  142. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/agents.py +0 -0
  143. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  144. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
  145. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  146. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  147. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  148. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  149. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  150. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  151. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  152. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/objects.py +0 -0
  153. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/repositories.py +0 -0
  154. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  155. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  156. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  157. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/resources/secrets.py +0 -0
  158. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
  159. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/__init__.py +0 -0
  160. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
  161. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
  162. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
  163. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/agent_view.py +0 -0
  164. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  165. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  166. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  167. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  168. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  169. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  170. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  171. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  172. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  173. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  174. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  175. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
  176. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  177. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  178. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  179. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  180. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  181. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  182. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  183. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  184. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  185. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  186. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  187. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  188. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  189. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  190. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  191. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  192. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  193. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  194. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  195. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  196. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  197. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  198. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  199. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  200. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  201. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  202. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  203. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  204. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  205. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  206. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  207. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  208. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  209. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  210. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  211. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  212. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  213. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  214. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  215. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  216. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  217. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  218. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  219. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  220. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  221. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  222. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  223. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  224. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  225. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  226. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  227. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  228. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  229. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  230. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  231. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  232. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/input_context.py +0 -0
  233. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  234. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  235. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  236. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  237. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  238. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  239. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  240. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  241. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/object_list_view.py +0 -0
  242. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/object_view.py +0 -0
  243. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  244. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  245. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  246. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  247. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  248. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  249. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  250. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  251. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  252. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  253. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  254. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  255. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  256. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  257. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  258. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  259. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  260. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  261. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  262. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  263. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  264. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  265. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  266. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  267. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  268. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  269. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  270. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  271. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  272. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  273. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  274. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  275. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  276. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  277. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  278. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/secret_view.py +0 -0
  279. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  280. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  281. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/agent_mount_parameters.py +0 -0
  282. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  283. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  284. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared/object_mount_parameters.py +0 -0
  285. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  286. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  287. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/agent_mount_parameters.py +0 -0
  288. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  289. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  290. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/src/runloop_api_client/types/shared_params/object_mount_parameters.py +0 -0
  291. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/__init__.py +0 -0
  292. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/__init__.py +0 -0
  293. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  294. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  295. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/devboxes/__init__.py +0 -0
  296. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  297. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  298. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  299. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  300. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  301. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/scenarios/__init__.py +0 -0
  302. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  303. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  304. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/test_agents.py +0 -0
  305. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/test_devboxes.py +0 -0
  306. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/test_objects.py +0 -0
  307. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/test_repositories.py +0 -0
  308. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/api_resources/test_secrets.py +0 -0
  309. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/conftest.py +0 -0
  310. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sample_file.txt +0 -0
  311. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/__init__.py +0 -0
  312. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/async_devbox/__init__.py +0 -0
  313. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/async_devbox/conftest.py +0 -0
  314. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  315. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/devbox/__init__.py +0 -0
  316. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/devbox/conftest.py +0 -0
  317. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
  318. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_async_execution.py +0 -0
  319. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_blueprint.py +0 -0
  320. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_execution.py +0 -0
  321. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_execution_result.py +0 -0
  322. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_helpers.py +0 -0
  323. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_snapshot.py +0 -0
  324. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/sdk/test_storage_object.py +0 -0
  325. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/README.md +0 -0
  326. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/__init__.py +0 -0
  327. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/conftest.py +0 -0
  328. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/__init__.py +0 -0
  329. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/conftest.py +0 -0
  330. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  331. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  332. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_sdk.py +0 -0
  333. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
  334. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/test_blueprints.py +0 -0
  335. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/test_devboxes.py +0 -0
  336. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/test_executions.py +0 -0
  337. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  338. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/test_snapshots.py +0 -0
  339. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/smoketests/utils.py +0 -0
  340. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_client.py +0 -0
  341. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_deepcopy.py +0 -0
  342. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_extract_files.py +0 -0
  343. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_files.py +0 -0
  344. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_models.py +0 -0
  345. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_polling.py +0 -0
  346. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_qs.py +0 -0
  347. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_required_args.py +0 -0
  348. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_response.py +0 -0
  349. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_streaming.py +0 -0
  350. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_transform.py +0 -0
  351. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_utils/test_datetime_parse.py +0 -0
  352. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_utils/test_proxy.py +0 -0
  353. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/test_utils/test_typing.py +0 -0
  354. {runloop_api_client-0.69.0 → runloop_api_client-1.1.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.1.0"
3
+ }
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.1.0 (2025-12-06)
4
+
5
+ Full Changelog: [v1.0.0...v1.1.0](https://github.com/runloopai/api-client-python/compare/v1.0.0...v1.1.0)
6
+
7
+ ### Features
8
+
9
+ * **scenarios:** added scenario class to sdk ([#701](https://github.com/runloopai/api-client-python/issues/701)) ([121f0fc](https://github.com/runloopai/api-client-python/commit/121f0fc6efa779979f664a75e91d60c068358e21))
10
+ * **SDK:** Build context helpers for the python clients and SDKs ([#684](https://github.com/runloopai/api-client-python/issues/684)) ([42849d6](https://github.com/runloopai/api-client-python/commit/42849d6834098d00234e5ab345ed0d91bac00435))
11
+
12
+
13
+ ### Chores
14
+
15
+ * **smoketests:** fixed smoketests and cleaned up typing/formatting ([#699](https://github.com/runloopai/api-client-python/issues/699)) ([f57aae7](https://github.com/runloopai/api-client-python/commit/f57aae71be8eb801214c012b2ec66b9414f0365e))
16
+
17
+ ## 1.0.0 (2025-12-02)
18
+
19
+ Full Changelog: [v0.69.0...v1.0.0](https://github.com/runloopai/api-client-python/compare/v0.69.0...v1.0.0)
20
+
21
+ ### ⚠ BREAKING CHANGES
22
+
23
+ * **devbox:** made command positional arg in exec and exec_async ([#695](https://github.com/runloopai/api-client-python/issues/695))
24
+
25
+ ### Features
26
+
27
+ * **blueprints:** Add build context to the OpenAPI spec ([#6494](https://github.com/runloopai/api-client-python/issues/6494)) ([d202b94](https://github.com/runloopai/api-client-python/commit/d202b942c07614ca954a8bbe3a9a6302e9a04216))
28
+ * **devbox:** added devbox.shell(shellName) command and stateful shell class to SDK ([#696](https://github.com/runloopai/api-client-python/issues/696)) ([c1e8f09](https://github.com/runloopai/api-client-python/commit/c1e8f0965a419ff53d830ba3c43a1c9a29dae5c7))
29
+ * **devbox:** made command positional arg in exec and exec_async ([#695](https://github.com/runloopai/api-client-python/issues/695)) ([6cc8c2f](https://github.com/runloopai/api-client-python/commit/6cc8c2fd4f904e8cc4386d81558157ca6fb69bfa))
30
+ * **sdk:** added scorer classes to sdk ([#698](https://github.com/runloopai/api-client-python/issues/698)) ([85f798f](https://github.com/runloopai/api-client-python/commit/85f798f2d8a7727b783e01a260ff0a52bdf01d78))
31
+
32
+
33
+ ### Bug Fixes
34
+
35
+ * **api:** don't ignore devbox keep_alive, suspend and resume in api ([fe3589f](https://github.com/runloopai/api-client-python/commit/fe3589f5fbb36a5b79f1d4a25e86f88676556fdb))
36
+ * **devbox:** launch parameter typo ([1c9c346](https://github.com/runloopai/api-client-python/commit/1c9c346e475b64fc389928fee0f7140e532c4f9c))
37
+ * **scenarios:** update parameters for manually maintained start_run_and_await_env_ready methods ([#692](https://github.com/runloopai/api-client-python/issues/692)) ([8000495](https://github.com/runloopai/api-client-python/commit/8000495f70b2e6f4f12742fb8a6d641dbbc088ca))
38
+ * **scorer:** fixed RL_TEST_CONTEXT to RL_SCORER_CONTEXT ([df43a42](https://github.com/runloopai/api-client-python/commit/df43a42a45b9ce67aba27835a41c9a0ebfc6a407))
39
+
40
+
41
+ ### Chores
42
+
43
+ * **blueprints:** Add build context examples ([#694](https://github.com/runloopai/api-client-python/issues/694)) ([6e63928](https://github.com/runloopai/api-client-python/commit/6e6392864b3cde20dfea5d173fed9a156b960ccd))
44
+ * hide build context APIs ([159a38f](https://github.com/runloopai/api-client-python/commit/159a38f0980c00430a1b949541076b0d63df2df2))
45
+ * **mounts:** Update documentation for deprecated fields to direct the user to the replacement API ([4936844](https://github.com/runloopai/api-client-python/commit/4936844989ec7a0d37c835dd37b8007e8caba944))
46
+
3
47
  ## 0.69.0 (2025-11-21)
4
48
 
5
49
  Full Changelog: [v0.68.0...v0.69.0](https://github.com/runloopai/api-client-python/compare/v0.68.0...v0.69.0)
@@ -89,13 +89,49 @@ Most tests require you to [set up a mock server](https://github.com/stoplightio/
89
89
 
90
90
  ```sh
91
91
  # you will need npm installed
92
- $ npx prism mock path/to/your/openapi.yml
92
+ npx prism mock path/to/your/openapi.yml
93
93
  ```
94
94
 
95
95
  ```sh
96
- $ ./scripts/test
96
+ # run all tests
97
+ ./scripts/test
98
+
99
+ # pass in pytest args, eg to show info on skipped tests:
100
+ ./scripts/test -rs
101
+
102
+ # Run tests for only one python version
103
+ UV_PYTHON=3.13 ./scripts/test
104
+ ```
105
+
106
+ ### Running pytets
107
+
108
+ Assuming you have a uv virtual env set up in .venv, the following are helpful for more granular test running:
109
+
110
+ ```sh
111
+ # Run all tests pytests
112
+ .venv/bin/pytest tests/
113
+
114
+ # Run all SDK tests with verbose info
115
+ .venv/bin/pytest tests/sdk/ -v
116
+
117
+ # Run specific test class
118
+ .venv/bin/pytest tests/sdk/test_clients.py::TestAgentClient -v
119
+
120
+ # Run specific test method
121
+ .venv/bin/pytest tests/sdk/test_clients.py::TestAgentClient::test_create_from_npm -v
122
+
123
+ # Run agent smoketests (requires RUNLOOP_API_KEY)
124
+ export RUNLOOP_API_KEY=your_key_here
125
+ .venv/bin/pytest tests/smoketests/sdk/test_agent.py -v
126
+
127
+ # Run tests matching a pattern
128
+ .venv/bin/pytest tests/sdk/ -k "agent" -v
129
+
130
+ # Run with coverage
131
+ .venv/bin/pytest tests/sdk/ --cov=src/runloop_api_client/sdk --cov-report=html
97
132
  ```
98
133
 
134
+
99
135
  ## Linting and formatting
100
136
 
101
137
  This repository uses [ruff](https://github.com/astral-sh/ruff) and
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.69.0
3
+ Version: 1.1.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
@@ -8,11 +8,23 @@ The `RunloopSDK` builds on top of the underlying REST client and provides a Pyth
8
8
  - [Quickstart (synchronous)](#quickstart-synchronous)
9
9
  - [Quickstart (asynchronous)](#quickstart-asynchronous)
10
10
  - [Core Concepts](#core-concepts)
11
- - [Devbox](#devbox)
12
- - [Blueprint](#blueprint)
13
- - [Snapshot](#snapshot)
14
- - [StorageObject](#storageobject)
15
- - [Mounting Storage Objects to Devboxes](#mounting-storage-objects-to-devboxes)
11
+ - [RunloopSDK](#runloopsdk)
12
+ - [Available Resources](#available-resources)
13
+ - [Devbox](#devbox)
14
+ - [Command Execution](#command-execution)
15
+ - [Execution Management](#execution-management)
16
+ - [Execution Results](#execution-results)
17
+ - [Streaming Command Output](#streaming-command-output)
18
+ - [File Operations](#file-operations)
19
+ - [Network Operations](#network-operations)
20
+ - [Snapshot Operations](#snapshot-operations)
21
+ - [Devbox Lifecycle Management](#devbox-lifecycle-management)
22
+ - [Context Manager Support](#context-manager-support)
23
+ - [Blueprint](#blueprint)
24
+ - [Snapshot](#snapshot)
25
+ - [StorageObject](#storageobject)
26
+ - [Storage Object Upload Helpers](#storage-object-upload-helpers)
27
+ - [Mounting Storage Objects to Devboxes](#mounting-storage-objects-to-devboxes)
16
28
  - [Accessing the Underlying REST Client](#accessing-the-underlying-rest-client)
17
29
  - [Error Handling](#error-handling)
18
30
  - [Advanced Configuration](#advanced-configuration)
@@ -38,12 +50,12 @@ runloop = RunloopSDK()
38
50
 
39
51
  # Create a ready-to-use devbox
40
52
  with runloop.devbox.create(name="my-devbox") as devbox:
41
- result = devbox.cmd.exec(command="echo 'Hello from Runloop!'")
53
+ result = devbox.cmd.exec("echo 'Hello from Runloop!'")
42
54
  print(result.stdout())
43
55
 
44
56
  # Stream stdout in real time
45
57
  devbox.cmd.exec(
46
- command="ls -la",
58
+ "ls -la",
47
59
  stdout=lambda line: print("stdout:", line),
48
60
  )
49
61
 
@@ -68,13 +80,13 @@ from runloop_api_client import AsyncRunloopSDK
68
80
  async def main():
69
81
  runloop = AsyncRunloopSDK()
70
82
  async with await runloop.devbox.create(name="async-devbox") as devbox:
71
- result = await devbox.cmd.exec(command="pwd")
83
+ result = await devbox.cmd.exec("pwd")
72
84
  print(await result.stdout())
73
85
 
74
86
  def capture(line: str) -> None:
75
87
  print(">>", line)
76
88
 
77
- await devbox.cmd.exec(command="ls", stdout=capture)
89
+ await devbox.cmd.exec("ls", stdout=capture)
78
90
 
79
91
  asyncio.run(main())
80
92
  ```
@@ -147,13 +159,13 @@ Execute commands synchronously or asynchronously:
147
159
 
148
160
  ```python
149
161
  # Synchronous command execution (waits for completion)
150
- result = devbox.cmd.exec(command="ls -la")
162
+ result = devbox.cmd.exec("ls -la")
151
163
  print("Output:", result.stdout())
152
164
  print("Exit code:", result.exit_code)
153
165
  print("Success:", result.success)
154
166
 
155
167
  # Asynchronous command execution (returns immediately)
156
- execution = devbox.cmd.exec_async(command="npm run dev")
168
+ execution = devbox.cmd.exec_async("npm run dev")
157
169
 
158
170
  # Check execution status
159
171
  state = execution.get_state()
@@ -173,7 +185,7 @@ The `Execution` object provides fine-grained control over asynchronous command e
173
185
 
174
186
  ```python
175
187
  # Start a long-running process
176
- execution = devbox.cmd.exec_async(command="python train_model.py")
188
+ execution = devbox.cmd.exec_async("python train_model.py")
177
189
 
178
190
  # Get the execution ID
179
191
  print("Execution ID:", execution.execution_id)
@@ -208,10 +220,10 @@ The `ExecutionResult` object contains the output and exit status of a completed
208
220
 
209
221
  ```python
210
222
  # From synchronous execution
211
- result = devbox.cmd.exec(command="ls -la /tmp")
223
+ result = devbox.cmd.exec("ls -la /tmp")
212
224
 
213
225
  # Or from asynchronous execution
214
- execution = devbox.cmd.exec_async(command="echo 'test'")
226
+ execution = devbox.cmd.exec_async("echo 'test'")
215
227
  result = execution.result()
216
228
 
217
229
  # Access execution results
@@ -250,7 +262,7 @@ def handle_output(line: str) -> None:
250
262
  print("LOG:", line)
251
263
 
252
264
  result = devbox.cmd.exec(
253
- command="python train.py",
265
+ "python train.py",
254
266
  stdout=handle_output,
255
267
  stderr=lambda line: print("ERR:", line),
256
268
  output=lambda line: print("ANY:", line),
@@ -267,7 +279,7 @@ def capture(line: str) -> None:
267
279
  log_queue.put_nowait(line)
268
280
 
269
281
  await devbox.cmd.exec(
270
- command="tail -f /var/log/app.log",
282
+ "tail -f /var/log/app.log",
271
283
  stdout=capture,
272
284
  )
273
285
  ```
@@ -365,13 +377,13 @@ Devboxes support context managers for automatic cleanup:
365
377
  ```python
366
378
  # Synchronous
367
379
  with runloop.devbox.create(name="temp-devbox") as devbox:
368
- result = devbox.cmd.exec(command="echo 'Hello'")
380
+ result = devbox.cmd.exec("echo 'Hello'")
369
381
  print(result.stdout())
370
382
  # devbox is automatically shutdown when exiting the context
371
383
 
372
384
  # Asynchronous
373
385
  async with await runloop.devbox.create(name="temp-devbox") as devbox:
374
- result = await devbox.cmd.exec(command="echo 'Hello'")
386
+ result = await devbox.cmd.exec("echo 'Hello'")
375
387
  print(await result.stdout())
376
388
  # devbox is automatically shutdown when exiting the context
377
389
  ```
@@ -409,6 +421,52 @@ blueprint = runloop.blueprint.create(
409
421
  system_setup_commands=["pip install numpy pandas"],
410
422
  )
411
423
 
424
+ # Or create a blueprint with a Docker build context from a local directory
425
+ from pathlib import Path
426
+ from runloop_api_client.lib.context_loader import build_docker_context_tar
427
+
428
+ context_root = Path("./my-app")
429
+ tar_bytes = build_docker_context_tar(context_root)
430
+
431
+ build_ctx_obj = runloop.storage_object.upload_from_bytes(
432
+ data=tar_bytes,
433
+ name="my-app-context.tar.gz",
434
+ content_type="tgz",
435
+ )
436
+
437
+ shared_root = Path("./shared-lib")
438
+ shared_tar = build_docker_context_tar(shared_root)
439
+
440
+ shared_ctx_obj = runloop.storage_object.upload_from_bytes(
441
+ data=shared_tar,
442
+ name="shared-lib-context.tar.gz",
443
+ content_type="tgz",
444
+ )
445
+
446
+ blueprint_with_context = runloop.blueprint.create(
447
+ name="my-blueprint-with-context",
448
+ dockerfile="""\
449
+ FROM node:22
450
+ WORKDIR /usr/src/app
451
+
452
+ # copy using the build context from the object
453
+ COPY package.json package.json
454
+ COPY src src
455
+
456
+ # copy from named context
457
+ COPY --from=shared / ./libs
458
+
459
+ RUN npm install --only=production
460
+ CMD ["node", "src/app.js"]
461
+ """,
462
+ # Primary build context
463
+ build_context=build_ctx_obj.as_build_context(),
464
+ # Additional named build contexts (for Docker buildx-style usage)
465
+ named_build_contexts={
466
+ "shared": shared_ctx_obj.as_build_context(),
467
+ },
468
+ )
469
+
412
470
  # Or get an existing one
413
471
  blueprint = runloop.blueprint.from_id(blueprint_id="bpt_123")
414
472
 
@@ -586,7 +644,7 @@ devbox = runloop.devbox.create(
586
644
  )
587
645
 
588
646
  # The storage object is now accessible at /home/user/data.txt in the devbox
589
- result = devbox.cmd.exec(command="cat /home/user/data.txt")
647
+ result = devbox.cmd.exec("cat /home/user/data.txt")
590
648
  print(result.stdout()) # "Hello, World!"
591
649
 
592
650
  # Mount archived objects (tar, tgz, gzip) - they get extracted to a directory
@@ -607,7 +665,7 @@ devbox_with_archive = runloop.devbox.create(
607
665
  )
608
666
 
609
667
  # Access extracted archive contents
610
- result = devbox_with_archive.cmd.exec(command="ls -la /home/user/project/")
668
+ result = devbox_with_archive.cmd.exec("ls -la /home/user/project/")
611
669
  print(result.stdout())
612
670
  ```
613
671
 
@@ -634,7 +692,7 @@ runloop = RunloopSDK()
634
692
 
635
693
  try:
636
694
  devbox = runloop.devbox.create(name="example-devbox")
637
- result = devbox.cmd.exec(command="invalid-command")
695
+ result = devbox.cmd.exec("invalid-command")
638
696
  except runloop_api_client.APIConnectionError as e:
639
697
  print("The server could not be reached")
640
698
  print(e.__cause__) # an underlying Exception, likely raised within httpx.
@@ -694,14 +752,14 @@ async def main():
694
752
 
695
753
  # All the same operations, but with await
696
754
  async with await runloop.devbox.create(name="async-devbox") as devbox:
697
- result = await devbox.cmd.exec(command="pwd")
755
+ result = await devbox.cmd.exec("pwd")
698
756
  print(await result.stdout())
699
757
 
700
758
  # Streaming (note: callbacks must be synchronous)
701
759
  def capture(line: str) -> None:
702
760
  print(">>", line)
703
761
 
704
- await devbox.cmd.exec(command="ls", stdout=capture)
762
+ await devbox.cmd.exec("ls", stdout=capture)
705
763
 
706
764
  # Async file operations
707
765
  await devbox.file.write(path="/tmp/test.txt", contents="Hello")
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.69.0"
3
+ version = "1.1.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "0.69.0" # x-release-please-version
4
+ __version__ = "1.1.0" # x-release-please-version
@@ -0,0 +1,3 @@
1
+ """
2
+ Helpers for `runloop_api_client`.
3
+ """