runloop-api-client 1.1.0__tar.gz → 1.2.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.2.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/CHANGELOG.md +26 -0
  3. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/PKG-INFO +4 -2
  4. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/README-SDK.md +19 -27
  5. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/README.md +2 -1
  6. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/api.md +0 -2
  7. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/pyproject.toml +24 -43
  8. runloop_api_client-1.2.0/requirements-dev.lock +110 -0
  9. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_streaming.py +32 -32
  10. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_version.py +1 -1
  11. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/blueprints.py +0 -4
  12. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_.py +13 -20
  13. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_storage_object.py +2 -2
  14. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/storage_object.py +2 -2
  15. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/sync.py +13 -20
  16. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/__init__.py +0 -2
  17. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +3 -0
  18. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared/__init__.py +0 -2
  19. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -3
  20. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared/launch_parameters.py +1 -1
  21. runloop_api_client-1.2.0/src/runloop_api_client/types/shared/mount.py +78 -0
  22. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -2
  23. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +1 -3
  24. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +1 -1
  25. runloop_api_client-1.2.0/src/runloop_api_client/types/shared_params/mount.py +77 -0
  26. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/test_blueprints.py +0 -4
  27. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/test_devboxes.py +0 -2
  28. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_ops.py +1 -2
  29. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_ops.py +0 -1
  30. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/uv.lock +671 -436
  31. runloop_api_client-1.1.0/.release-please-manifest.json +0 -3
  32. runloop_api_client-1.1.0/requirements-dev.lock +0 -94
  33. runloop_api_client-1.1.0/src/runloop_api_client/types/shared/agent_mount_parameters.py +0 -31
  34. runloop_api_client-1.1.0/src/runloop_api_client/types/shared/mount.py +0 -28
  35. runloop_api_client-1.1.0/src/runloop_api_client/types/shared/object_mount_parameters.py +0 -21
  36. runloop_api_client-1.1.0/src/runloop_api_client/types/shared_params/agent_mount_parameters.py +0 -31
  37. runloop_api_client-1.1.0/src/runloop_api_client/types/shared_params/mount.py +0 -25
  38. runloop_api_client-1.1.0/src/runloop_api_client/types/shared_params/object_mount_parameters.py +0 -21
  39. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/.gitignore +0 -0
  40. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/CONTRIBUTING.md +0 -0
  41. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/LICENSE +0 -0
  42. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/SECURITY.md +0 -0
  43. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/bin/check-release-environment +0 -0
  44. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/bin/publish-pypi +0 -0
  45. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/examples/.keep +0 -0
  46. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/release-please-config.json +0 -0
  47. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop/lib/.keep +0 -0
  48. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/__init__.py +0 -0
  49. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_base_client.py +0 -0
  50. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_client.py +0 -0
  51. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_compat.py +0 -0
  52. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_constants.py +0 -0
  53. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_exceptions.py +0 -0
  54. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_files.py +0 -0
  55. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_models.py +0 -0
  56. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_qs.py +0 -0
  57. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_resource.py +0 -0
  58. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_response.py +0 -0
  59. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_types.py +0 -0
  60. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  61. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  62. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  63. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  64. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  65. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  66. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  67. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  68. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  69. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  70. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  71. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  72. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  73. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/lib/.keep +0 -0
  74. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/lib/__init__.py +0 -0
  75. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/lib/_ignore.py +0 -0
  76. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/lib/context_loader.py +0 -0
  77. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/lib/polling.py +0 -0
  78. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  79. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/pagination.py +0 -0
  80. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/py.typed +0 -0
  81. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/__init__.py +0 -0
  82. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/agents.py +0 -0
  83. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  84. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
  85. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  86. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  87. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  88. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  89. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
  90. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  91. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  92. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  93. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/objects.py +0 -0
  94. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/repositories.py +0 -0
  95. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  96. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  97. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  98. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  99. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/resources/secrets.py +0 -0
  100. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/__init__.py +0 -0
  101. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
  102. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/_types.py +0 -0
  103. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/agent.py +0 -0
  104. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
  105. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  106. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  107. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_execution.py +0 -0
  108. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  109. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  110. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  111. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_scorer.py +0 -0
  112. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  113. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
  114. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/devbox.py +0 -0
  115. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/execution.py +0 -0
  116. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
  117. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/scenario.py +0 -0
  118. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  119. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/scorer.py +0 -0
  120. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
  121. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
  122. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
  123. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
  124. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/agent_view.py +0 -0
  125. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  126. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  127. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  128. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  129. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  130. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  131. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  132. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  133. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  134. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  135. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  136. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
  137. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  138. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  139. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  140. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  141. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  142. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  143. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  144. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  145. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  146. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  147. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  148. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  149. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  150. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  151. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  152. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  153. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  154. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  155. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  156. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  157. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  158. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  159. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  160. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  161. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  162. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  163. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  164. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  165. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  166. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  167. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  168. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  169. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  170. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  171. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  172. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  173. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  174. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  175. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  176. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  177. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  178. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  179. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  180. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  181. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  182. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  183. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  184. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  185. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  186. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  187. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  188. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  189. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  190. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  191. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  192. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  193. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  194. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  195. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  196. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  197. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/input_context.py +0 -0
  198. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  199. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  200. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  201. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  202. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  203. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  204. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  205. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  206. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/object_list_view.py +0 -0
  207. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/object_view.py +0 -0
  208. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  209. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  210. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  211. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  212. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  213. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  214. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  215. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  216. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  217. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  218. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  219. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  220. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  221. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  222. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  223. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  224. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  225. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  226. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  227. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  228. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  229. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  230. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  231. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  232. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  233. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  234. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  235. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  236. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  237. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  238. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  239. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  240. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  241. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  242. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  243. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  244. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  245. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  246. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  247. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  248. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  249. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  250. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/secret_view.py +0 -0
  251. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  252. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  253. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  254. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  255. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  256. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  257. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/__init__.py +0 -0
  258. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/__init__.py +0 -0
  259. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  260. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  261. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/devboxes/__init__.py +0 -0
  262. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  263. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  264. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  265. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  266. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  267. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/scenarios/__init__.py +0 -0
  268. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  269. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  270. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/test_agents.py +0 -0
  271. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/test_benchmarks.py +0 -0
  272. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/test_objects.py +0 -0
  273. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/test_repositories.py +0 -0
  274. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/test_scenarios.py +0 -0
  275. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/api_resources/test_secrets.py +0 -0
  276. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/conftest.py +0 -0
  277. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sample_file.txt +0 -0
  278. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/__init__.py +0 -0
  279. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/async_devbox/__init__.py +0 -0
  280. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/async_devbox/conftest.py +0 -0
  281. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/async_devbox/test_core.py +0 -0
  282. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  283. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  284. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
  285. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/conftest.py +0 -0
  286. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/devbox/__init__.py +0 -0
  287. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/devbox/conftest.py +0 -0
  288. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/devbox/test_core.py +0 -0
  289. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
  290. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/devbox/test_interfaces.py +0 -0
  291. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/devbox/test_streaming.py +0 -0
  292. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_agent.py +0 -0
  293. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_agent.py +0 -0
  294. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_blueprint.py +0 -0
  295. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_execution.py +0 -0
  296. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_execution_result.py +0 -0
  297. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_scenario.py +0 -0
  298. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_scenario_run.py +0 -0
  299. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_scorer.py +0 -0
  300. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_snapshot.py +0 -0
  301. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_async_storage_object.py +0 -0
  302. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_blueprint.py +0 -0
  303. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_execution.py +0 -0
  304. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_execution_result.py +0 -0
  305. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_helpers.py +0 -0
  306. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_scenario.py +0 -0
  307. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_scenario_run.py +0 -0
  308. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_scorer.py +0 -0
  309. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_snapshot.py +0 -0
  310. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/sdk/test_storage_object.py +0 -0
  311. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/README.md +0 -0
  312. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/__init__.py +0 -0
  313. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/conftest.py +0 -0
  314. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/README.md +0 -0
  315. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/__init__.py +0 -0
  316. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/conftest.py +0 -0
  317. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_agent.py +0 -0
  318. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
  319. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  320. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  321. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  322. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  323. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  324. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  325. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  326. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
  327. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_devbox.py +0 -0
  328. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_scenario.py +0 -0
  329. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_scorer.py +0 -0
  330. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_sdk.py +0 -0
  331. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
  332. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
  333. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/test_blueprints.py +0 -0
  334. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/test_devboxes.py +0 -0
  335. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/test_executions.py +0 -0
  336. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  337. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/test_snapshots.py +0 -0
  338. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/smoketests/utils.py +0 -0
  339. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_client.py +0 -0
  340. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_deepcopy.py +0 -0
  341. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_extract_files.py +0 -0
  342. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_files.py +0 -0
  343. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_models.py +0 -0
  344. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_polling.py +0 -0
  345. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_qs.py +0 -0
  346. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_required_args.py +0 -0
  347. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_response.py +0 -0
  348. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_streaming.py +0 -0
  349. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_transform.py +0 -0
  350. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_utils/test_context_loader.py +0 -0
  351. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_utils/test_datetime_parse.py +0 -0
  352. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_utils/test_proxy.py +0 -0
  353. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/test_utils/test_typing.py +0 -0
  354. {runloop_api_client-1.1.0 → runloop_api_client-1.2.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.2.0"
3
+ }
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.0 (2025-12-09)
4
+
5
+ Full Changelog: [v1.1.0...v1.2.0](https://github.com/runloopai/api-client-python/compare/v1.1.0...v1.2.0)
6
+
7
+ ### Features
8
+
9
+ * **devbox:** default to x86 arch ([501de0b](https://github.com/runloopai/api-client-python/commit/501de0bb1d76c836ff9f448513a16155641345ae))
10
+ * **devbox:** return user for createSshKey ([f094bf7](https://github.com/runloopai/api-client-python/commit/f094bf7443a0ca5bab6d47a53b7b14bade3cecd0))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * ensure streams are always closed ([d01aae2](https://github.com/runloopai/api-client-python/commit/d01aae204d8c57ac76646df0e0e1078e64ad9891))
16
+
17
+
18
+ ### Chores
19
+
20
+ * bump required `uv` version ([8ad519f](https://github.com/runloopai/api-client-python/commit/8ad519fd26d389628d157a413a0b0f1f5d435e9e))
21
+ * **deps:** mypy 1.18.1 has a regression, pin to 1.17 ([e56582a](https://github.com/runloopai/api-client-python/commit/e56582a93590445d8e545b6123be0f14db39a8f5))
22
+ * **docs:** use environment variables for authentication in code snippets ([55cf613](https://github.com/runloopai/api-client-python/commit/55cf6131edb8d38144761c5dbbbcf9389093ed7b))
23
+ * **internal:** version bump ([2fa85c6](https://github.com/runloopai/api-client-python/commit/2fa85c6694dc468280eedb28136aadcda4f11801))
24
+ * remove some unnecessary changes to reduce diff from Stainless ([#705](https://github.com/runloopai/api-client-python/issues/705)) ([715c9d0](https://github.com/runloopai/api-client-python/commit/715c9d09f4e874032ee1d4d6c81d80ab6a72ec45))
25
+ * update lockfile ([7e0136d](https://github.com/runloopai/api-client-python/commit/7e0136dfcd62a2843138ae382bd6fedfd881e1b3))
26
+ * update requirements-dev.lock ([#707](https://github.com/runloopai/api-client-python/issues/707)) ([a2d5326](https://github.com/runloopai/api-client-python/commit/a2d5326634cad5afe6c74252d26b01916ed41bcb))
27
+ * update uv.lock ([b9e0729](https://github.com/runloopai/api-client-python/commit/b9e07291745291d16f122dbca5ef513ed134c5dd))
28
+
3
29
  ## 1.1.0 (2025-12-06)
4
30
 
5
31
  Full Changelog: [v1.0.0...v1.1.0](https://github.com/runloopai/api-client-python/compare/v1.0.0...v1.1.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 1.1.0
3
+ Version: 1.2.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
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
21
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
23
  Classifier: Typing :: Typed
23
24
  Requires-Python: >=3.9
@@ -137,6 +138,7 @@ pip install runloop_api_client[aiohttp]
137
138
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
138
139
 
139
140
  ```python
141
+ import os
140
142
  import asyncio
141
143
  from runloop_api_client import DefaultAioHttpClient
142
144
  from runloop_api_client import AsyncRunloop
@@ -144,7 +146,7 @@ from runloop_api_client import AsyncRunloop
144
146
 
145
147
  async def main() -> None:
146
148
  async with AsyncRunloop(
147
- bearer_token="My Bearer Token",
149
+ bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
148
150
  http_client=DefaultAioHttpClient(),
149
151
  ) as client:
150
152
  devbox_view = await client.devboxes.create()
@@ -77,6 +77,7 @@ print(obj.download_as_text())
77
77
  import asyncio
78
78
  from runloop_api_client import AsyncRunloopSDK
79
79
 
80
+
80
81
  async def main():
81
82
  runloop = AsyncRunloopSDK()
82
83
  async with await runloop.devbox.create(name="async-devbox") as devbox:
@@ -88,6 +89,7 @@ async def main():
88
89
 
89
90
  await devbox.cmd.exec("ls", stdout=capture)
90
91
 
92
+
91
93
  asyncio.run(main())
92
94
  ```
93
95
 
@@ -194,7 +196,7 @@ print("Devbox ID:", execution.devbox_id)
194
196
  # Poll for current state
195
197
  state = execution.get_state()
196
198
  print("Status:", state.status) # "running", "completed", etc.
197
- print("Exit code:", state.exit_status) # only set when execution has completed
199
+ print("Exit code:", state.exit_status) # only set when execution has completed
198
200
 
199
201
  # Wait for completion and get results
200
202
  result = execution.result()
@@ -229,7 +231,7 @@ result = execution.result()
229
231
  # Access execution results
230
232
  print("Exit code:", result.exit_code)
231
233
  print("Success:", result.success) # True if exit code is 0
232
- print("Failed:", result.failed) # True if exit code is non-zero
234
+ print("Failed:", result.failed) # True if exit code is non-zero
233
235
 
234
236
  # Get output streams
235
237
  stdout = result.stdout()
@@ -261,6 +263,7 @@ Pass callbacks into `cmd.exec` / `cmd.exec_async` to process logs in real time:
261
263
  def handle_output(line: str) -> None:
262
264
  print("LOG:", line)
263
265
 
266
+
264
267
  result = devbox.cmd.exec(
265
268
  "python train.py",
266
269
  stdout=handle_output,
@@ -278,6 +281,7 @@ def capture(line: str) -> None:
278
281
  # Use thread-safe data structures if needed
279
282
  log_queue.put_nowait(line)
280
283
 
284
+
281
285
  await devbox.cmd.exec(
282
286
  "tail -f /var/log/app.log",
283
287
  stdout=capture,
@@ -299,6 +303,7 @@ print(content)
299
303
 
300
304
  # Upload files
301
305
  from pathlib import Path
306
+
302
307
  devbox.file.upload(
303
308
  path="/home/user/upload.txt",
304
309
  file=Path("local_file.txt"),
@@ -434,15 +439,6 @@ build_ctx_obj = runloop.storage_object.upload_from_bytes(
434
439
  content_type="tgz",
435
440
  )
436
441
 
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
442
  blueprint_with_context = runloop.blueprint.create(
447
443
  name="my-blueprint-with-context",
448
444
  dockerfile="""\
@@ -453,18 +449,11 @@ WORKDIR /usr/src/app
453
449
  COPY package.json package.json
454
450
  COPY src src
455
451
 
456
- # copy from named context
457
- COPY --from=shared / ./libs
458
-
459
452
  RUN npm install --only=production
460
453
  CMD ["node", "src/app.js"]
461
454
  """,
462
- # Primary build context
455
+ # Build context
463
456
  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
457
  )
469
458
 
470
459
  # Or get an existing one
@@ -551,6 +540,7 @@ storage_object.complete()
551
540
 
552
541
  # Upload from file
553
542
  from pathlib import Path
543
+
554
544
  uploaded = runloop.storage_object.upload_from_file(
555
545
  Path("/path/to/file.txt"),
556
546
  name="my-file.txt",
@@ -600,7 +590,7 @@ obj = runloop.storage_object.create(
600
590
  name="data.bin",
601
591
  content_type="binary",
602
592
  )
603
- obj.upload_content(b"\xDE\xAD\xBE\xEF")
593
+ obj.upload_content(b"\xde\xad\xbe\xef")
604
594
  obj.complete()
605
595
  ```
606
596
 
@@ -747,28 +737,30 @@ The async SDK has the same interface as the synchronous version, but all I/O ope
747
737
  import asyncio
748
738
  from runloop_api_client import AsyncRunloopSDK
749
739
 
740
+
750
741
  async def main():
751
742
  runloop = AsyncRunloopSDK()
752
-
743
+
753
744
  # All the same operations, but with await
754
745
  async with await runloop.devbox.create(name="async-devbox") as devbox:
755
746
  result = await devbox.cmd.exec("pwd")
756
747
  print(await result.stdout())
757
-
748
+
758
749
  # Streaming (note: callbacks must be synchronous)
759
750
  def capture(line: str) -> None:
760
751
  print(">>", line)
761
-
752
+
762
753
  await devbox.cmd.exec("ls", stdout=capture)
763
-
754
+
764
755
  # Async file operations
765
756
  await devbox.file.write(path="/tmp/test.txt", contents="Hello")
766
757
  content = await devbox.file.read(path="/tmp/test.txt")
767
-
758
+
768
759
  # Async network operations
769
760
  tunnel = await devbox.net.create_tunnel(port=8080)
770
761
  print("Tunnel URL:", tunnel.url)
771
762
 
763
+
772
764
  asyncio.run(main())
773
765
  ```
774
766
 
@@ -784,7 +776,7 @@ devbox = runloop.devbox.create(
784
776
  name="my-devbox",
785
777
  polling_config=PollingConfig(
786
778
  timeout_seconds=300.0, # Wait up to 5 minutes
787
- interval_seconds=2.0, # Poll every 2 seconds
779
+ interval_seconds=2.0, # Poll every 2 seconds
788
780
  ),
789
781
  )
790
782
 
@@ -792,7 +784,7 @@ devbox = runloop.devbox.create(
792
784
  snapshot.await_completed(
793
785
  polling_config=PollingConfig(
794
786
  timeout_seconds=600.0, # Wait up to 10 minutes
795
- interval_seconds=5.0, # Poll every 5 seconds
787
+ interval_seconds=5.0, # Poll every 5 seconds
796
788
  ),
797
789
  )
798
790
  ```
@@ -102,6 +102,7 @@ pip install runloop_api_client[aiohttp]
102
102
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
103
103
 
104
104
  ```python
105
+ import os
105
106
  import asyncio
106
107
  from runloop_api_client import DefaultAioHttpClient
107
108
  from runloop_api_client import AsyncRunloop
@@ -109,7 +110,7 @@ from runloop_api_client import AsyncRunloop
109
110
 
110
111
  async def main() -> None:
111
112
  async with AsyncRunloop(
112
- bearer_token="My Bearer Token",
113
+ bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
113
114
  http_client=DefaultAioHttpClient(),
114
115
  ) as client:
115
116
  devbox_view = await client.devboxes.create()
@@ -3,12 +3,10 @@
3
3
  ```python
4
4
  from runloop_api_client.types import (
5
5
  AfterIdle,
6
- AgentMountParameters,
7
6
  AgentSource,
8
7
  CodeMountParameters,
9
8
  LaunchParameters,
10
9
  Mount,
11
- ObjectMountParameters,
12
10
  RunProfile,
13
11
  )
14
12
  ```
@@ -1,19 +1,20 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "1.1.0"
3
+ version = "1.2.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
7
7
  authors = [
8
8
  { name = "Runloop", email = "support@runloop.ai" },
9
9
  ]
10
+
10
11
  dependencies = [
11
- "httpx>=0.23.0, <1",
12
- "pydantic>=1.9.0, <3",
13
- "typing-extensions>=4.10, <5",
14
- "anyio>=3.5.0, <5",
15
- "distro>=1.7.0, <2",
16
- "sniffio",
12
+ "httpx>=0.23.0, <1",
13
+ "pydantic>=1.9.0, <3",
14
+ "typing-extensions>=4.10, <5",
15
+ "anyio>=3.5.0, <5",
16
+ "distro>=1.7.0, <2",
17
+ "sniffio",
17
18
  "uuid-utils>=0.11.0",
18
19
  ]
19
20
 
@@ -26,6 +27,7 @@ classifiers = [
26
27
  "Programming Language :: Python :: 3.11",
27
28
  "Programming Language :: Python :: 3.12",
28
29
  "Programming Language :: Python :: 3.13",
30
+ "Programming Language :: Python :: 3.14",
29
31
  "Operating System :: OS Independent",
30
32
  "Operating System :: POSIX",
31
33
  "Operating System :: MacOS",
@@ -44,13 +46,19 @@ aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
44
46
 
45
47
  [tool.uv]
46
48
  managed = true
47
- required-version = ">=0.5.0"
49
+ required-version = ">=0.9"
50
+ conflicts = [
51
+ [
52
+ { group = "pydantic-v1" },
53
+ { group = "pydantic-v2" },
54
+ ],
55
+ ]
48
56
 
49
57
  [dependency-groups]
50
58
  # version pins are in uv.lock
51
59
  dev = [
52
60
  "pyright==1.1.399",
53
- "mypy",
61
+ "mypy==1.17",
54
62
  "respx",
55
63
  "pytest",
56
64
  "pytest-asyncio",
@@ -64,51 +72,24 @@ dev = [
64
72
  "uuid-utils>=0.11.0",
65
73
  "pytest-cov>=7.0.0",
66
74
  ]
75
+ pydantic-v1 = [
76
+ "pydantic>=1.9.0,<2",
77
+ ]
78
+ pydantic-v2 = [
79
+ "pydantic~=2.0 ; python_full_version < '3.14'",
80
+ "pydantic~=2.12 ; python_full_version >= '3.14'",
81
+ ]
67
82
  docs = [
68
83
  "furo>=2025.9.25",
69
84
  "sphinx>=7.4.7",
70
85
  "sphinx-autodoc-typehints>=2.3.0",
71
86
  "sphinx-toolbox>=4.0.0",
72
87
  ]
73
- pydantic-v1 = [
74
- "pydantic>=1.9.0, <2",
75
- ]
76
-
77
- [tool.rye.scripts]
78
- format = { chain = [
79
- "format:ruff",
80
- "format:docs",
81
- "fix:ruff",
82
- # run formatting again to fix any inconsistencies when imports are stripped
83
- "format:ruff",
84
- ]}
85
- "format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md"
86
- "format:ruff" = "ruff format"
87
-
88
- "lint" = { chain = [
89
- "check:ruff",
90
- "typecheck",
91
- "check:importable",
92
- ]}
93
- "check:ruff" = "ruff check ."
94
- "fix:ruff" = "ruff check --fix ."
95
-
96
- "check:importable" = "python -c 'import runloop_api_client'"
97
-
98
- typecheck = { chain = [
99
- "typecheck:pyright",
100
- "typecheck:mypy"
101
- ]}
102
-
103
- "typecheck:pyright" = "pyright"
104
- "typecheck:verify-types" = "pyright --verifytypes runloop_api_client --ignoreexternal"
105
- "typecheck:mypy" = "mypy ."
106
88
 
107
89
  [build-system]
108
90
  requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]
109
91
  build-backend = "hatchling.build"
110
92
 
111
-
112
93
  [tool.hatch.build]
113
94
  include = [
114
95
  "src/*"
@@ -0,0 +1,110 @@
1
+ # This file was autogenerated by uv via the following command:
2
+ # uv export -o requirements-dev.lock --no-hashes
3
+ -e .
4
+ annotated-types==0.7.0
5
+ # via pydantic
6
+ anyio==4.12.0
7
+ # via
8
+ # httpx
9
+ # runloop-api-client
10
+ backports-asyncio-runner==1.2.0 ; python_full_version < '3.11'
11
+ # via pytest-asyncio
12
+ certifi==2025.11.12
13
+ # via
14
+ # httpcore
15
+ # httpx
16
+ colorama==0.4.6 ; sys_platform == 'win32'
17
+ # via pytest
18
+ dirty-equals==0.11
19
+ distro==1.9.0
20
+ # via runloop-api-client
21
+ exceptiongroup==1.3.1 ; python_full_version < '3.11'
22
+ # via
23
+ # anyio
24
+ # pytest
25
+ execnet==2.1.2
26
+ # via pytest-xdist
27
+ h11==0.16.0
28
+ # via httpcore
29
+ httpcore==1.0.9
30
+ # via httpx
31
+ httpx==0.28.1
32
+ # via
33
+ # respx
34
+ # runloop-api-client
35
+ idna==3.11
36
+ # via
37
+ # anyio
38
+ # httpx
39
+ importlib-metadata==8.7.0
40
+ iniconfig==2.1.0 ; python_full_version < '3.10'
41
+ # via pytest
42
+ iniconfig==2.3.0 ; python_full_version >= '3.10'
43
+ # via pytest
44
+ markdown-it-py==3.0.0 ; python_full_version < '3.10'
45
+ # via rich
46
+ markdown-it-py==4.0.0 ; python_full_version >= '3.10'
47
+ # via rich
48
+ mdurl==0.1.2
49
+ # via markdown-it-py
50
+ mypy==1.17.0
51
+ mypy-extensions==1.1.0
52
+ # via mypy
53
+ nodeenv==1.9.1
54
+ # via pyright
55
+ packaging==25.0
56
+ # via pytest
57
+ pathspec==0.12.1
58
+ # via mypy
59
+ pluggy==1.6.0
60
+ # via pytest
61
+ pydantic==2.12.5
62
+ # via runloop-api-client
63
+ pydantic-core==2.41.5
64
+ # via pydantic
65
+ pygments==2.19.2
66
+ # via
67
+ # pytest
68
+ # rich
69
+ pyright==1.1.399
70
+ pytest==8.4.2 ; python_full_version < '3.10'
71
+ # via
72
+ # pytest-asyncio
73
+ # pytest-xdist
74
+ pytest==9.0.1 ; python_full_version >= '3.10'
75
+ # via
76
+ # pytest-asyncio
77
+ # pytest-xdist
78
+ pytest-asyncio==1.2.0 ; python_full_version < '3.10'
79
+ pytest-asyncio==1.3.0 ; python_full_version >= '3.10'
80
+ pytest-xdist==3.8.0
81
+ python-dateutil==2.9.0.post0 ; python_full_version < '3.10'
82
+ # via time-machine
83
+ respx==0.22.0
84
+ rich==14.2.0
85
+ ruff==0.14.7
86
+ six==1.17.0 ; python_full_version < '3.10'
87
+ # via python-dateutil
88
+ sniffio==1.3.1
89
+ # via runloop-api-client
90
+ time-machine==2.19.0 ; python_full_version < '3.10'
91
+ time-machine==3.1.0 ; python_full_version >= '3.10'
92
+ tomli==2.3.0 ; python_full_version < '3.11'
93
+ # via
94
+ # mypy
95
+ # pytest
96
+ typing-extensions==4.15.0
97
+ # via
98
+ # anyio
99
+ # exceptiongroup
100
+ # mypy
101
+ # pydantic
102
+ # pydantic-core
103
+ # pyright
104
+ # pytest-asyncio
105
+ # runloop-api-client
106
+ # typing-inspection
107
+ typing-inspection==0.4.2
108
+ # via pydantic
109
+ zipp==3.23.0
110
+ # via importlib-metadata
@@ -73,22 +73,22 @@ class Stream(Generic[_T]):
73
73
  process_data = self._client._process_response_data
74
74
  iterator = self._iter_events()
75
75
 
76
- for sse in iterator:
77
- # Surface server-sent error events as API errors to allow callers to handle/retry
78
- if sse.event == "error":
79
- try:
80
- error_obj = json.loads(sse.data)
81
- status_code = int(error_obj.get("code", 500))
82
- # Build a synthetic response to mirror normal error handling
83
- fake_resp = httpx.Response(status_code, request=response.request, content=sse.data)
84
- except Exception:
85
- fake_resp = httpx.Response(500, request=response.request, content=sse.data)
86
- raise self._client._make_status_error_from_response(fake_resp)
87
-
88
- yield process_data(data=sse.json(), cast_to=cast_to, response=response)
89
-
90
- # As we might not fully consume the response stream, we need to close it explicitly
91
- response.close()
76
+ try:
77
+ for sse in iterator:
78
+ # Surface server-sent error events as API errors to allow callers to handle/retry
79
+ if sse.event == "error":
80
+ try:
81
+ error_obj = json.loads(sse.data)
82
+ status_code = int(error_obj.get("code", 500))
83
+ fake_resp = httpx.Response(status_code, request=response.request, content=sse.data)
84
+ except Exception:
85
+ fake_resp = httpx.Response(500, request=response.request, content=sse.data)
86
+ raise self._client._make_status_error_from_response(fake_resp)
87
+
88
+ yield process_data(data=sse.json(), cast_to=cast_to, response=response)
89
+ finally:
90
+ # Ensure the response is closed even if the consumer doesn't read all data
91
+ response.close()
92
92
 
93
93
  def __enter__(self) -> Self:
94
94
  return self
@@ -147,22 +147,22 @@ class AsyncStream(Generic[_T]):
147
147
  process_data = self._client._process_response_data
148
148
  iterator = self._iter_events()
149
149
 
150
- async for sse in iterator:
151
- # Surface server-sent error events as API errors to allow callers to handle/retry
152
- if sse.event == "error":
153
- try:
154
- error_obj = json.loads(sse.data)
155
- status_code = int(error_obj.get("code", 500))
156
- # Build a synthetic response to mirror normal error handling
157
- fake_resp = httpx.Response(status_code, request=response.request, content=sse.data)
158
- except Exception:
159
- fake_resp = httpx.Response(500, request=response.request, content=sse.data)
160
- raise self._client._make_status_error_from_response(fake_resp)
161
-
162
- yield process_data(data=sse.json(), cast_to=cast_to, response=response)
163
-
164
- # As we might not fully consume the response stream, we need to close it explicitly
165
- await response.aclose()
150
+ try:
151
+ async for sse in iterator:
152
+ # Surface server-sent error events as API errors to allow callers to handle/retry
153
+ if sse.event == "error":
154
+ try:
155
+ error_obj = json.loads(sse.data)
156
+ status_code = int(error_obj.get("code", 500))
157
+ fake_resp = httpx.Response(status_code, request=response.request, content=sse.data)
158
+ except Exception:
159
+ fake_resp = httpx.Response(500, request=response.request, content=sse.data)
160
+ raise self._client._make_status_error_from_response(fake_resp)
161
+
162
+ yield process_data(data=sse.json(), cast_to=cast_to, response=response)
163
+ finally:
164
+ # Ensure the response is closed even if the consumer doesn't read all data
165
+ await response.aclose()
166
166
 
167
167
  async def __aenter__(self) -> Self:
168
168
  return self
@@ -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__ = "1.1.0" # x-release-please-version
4
+ __version__ = "1.2.0" # x-release-please-version
@@ -325,7 +325,6 @@ class BlueprintsResource(SyncAPIResource):
325
325
  file_mounts: Optional[Dict[str, str]] | Omit = omit,
326
326
  launch_parameters: Optional[LaunchParameters] | Omit = omit,
327
327
  metadata: Optional[Dict[str, str]] | Omit = omit,
328
- named_build_contexts: Optional[Dict[str, blueprint_create_params.NamedBuildContexts]] | Omit = omit,
329
328
  secrets: Optional[Dict[str, str]] | Omit = omit,
330
329
  services: Optional[Iterable[blueprint_create_params.Service]] | Omit = omit,
331
330
  system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
@@ -365,7 +364,6 @@ class BlueprintsResource(SyncAPIResource):
365
364
  file_mounts=file_mounts,
366
365
  launch_parameters=launch_parameters,
367
366
  metadata=metadata,
368
- named_build_contexts=named_build_contexts,
369
367
  secrets=secrets,
370
368
  services=services,
371
369
  system_setup_commands=system_setup_commands,
@@ -966,7 +964,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
966
964
  file_mounts: Optional[Dict[str, str]] | Omit = omit,
967
965
  launch_parameters: Optional[LaunchParameters] | Omit = omit,
968
966
  metadata: Optional[Dict[str, str]] | Omit = omit,
969
- named_build_contexts: Optional[Dict[str, blueprint_create_params.NamedBuildContexts]] | Omit = omit,
970
967
  secrets: Optional[Dict[str, str]] | Omit = omit,
971
968
  services: Optional[Iterable[blueprint_create_params.Service]] | Omit = omit,
972
969
  system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
@@ -1006,7 +1003,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
1006
1003
  file_mounts=file_mounts,
1007
1004
  launch_parameters=launch_parameters,
1008
1005
  metadata=metadata,
1009
- named_build_contexts=named_build_contexts,
1010
1006
  secrets=secrets,
1011
1007
  services=services,
1012
1008
  system_setup_commands=system_setup_commands,