runloop_api_client 0.67.0__tar.gz → 0.69.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 (333) hide show
  1. runloop_api_client-0.69.0/.gitignore +29 -0
  2. runloop_api_client-0.69.0/.release-please-manifest.json +3 -0
  3. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/CHANGELOG.md +39 -0
  4. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/PKG-INFO +22 -1
  5. runloop_api_client-0.69.0/README-SDK.md +751 -0
  6. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/README.md +21 -0
  7. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/api.md +15 -0
  8. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/pyproject.toml +12 -2
  9. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/__init__.py +3 -0
  10. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_client.py +38 -1
  11. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_models.py +37 -15
  12. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_version.py +1 -1
  13. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/pagination.py +75 -0
  14. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/__init__.py +14 -0
  15. runloop_api_client-0.69.0/src/runloop_api_client/resources/agents.py +415 -0
  16. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/blueprints.py +65 -8
  17. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/devboxes/devboxes.py +101 -6
  18. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +79 -4
  19. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/objects.py +30 -20
  20. runloop_api_client-0.69.0/src/runloop_api_client/sdk/__init__.py +55 -0
  21. runloop_api_client-0.69.0/src/runloop_api_client/sdk/_helpers.py +49 -0
  22. runloop_api_client-0.69.0/src/runloop_api_client/sdk/_types.py +144 -0
  23. runloop_api_client-0.69.0/src/runloop_api_client/sdk/async_.py +555 -0
  24. runloop_api_client-0.69.0/src/runloop_api_client/sdk/async_blueprint.py +104 -0
  25. runloop_api_client-0.69.0/src/runloop_api_client/sdk/async_devbox.py +613 -0
  26. runloop_api_client-0.69.0/src/runloop_api_client/sdk/async_execution.py +144 -0
  27. runloop_api_client-0.69.0/src/runloop_api_client/sdk/async_execution_result.py +175 -0
  28. runloop_api_client-0.69.0/src/runloop_api_client/sdk/async_snapshot.py +125 -0
  29. runloop_api_client-0.69.0/src/runloop_api_client/sdk/async_storage_object.py +171 -0
  30. runloop_api_client-0.69.0/src/runloop_api_client/sdk/blueprint.py +104 -0
  31. runloop_api_client-0.69.0/src/runloop_api_client/sdk/devbox.py +621 -0
  32. runloop_api_client-0.69.0/src/runloop_api_client/sdk/execution.py +132 -0
  33. runloop_api_client-0.69.0/src/runloop_api_client/sdk/execution_result.py +173 -0
  34. runloop_api_client-0.69.0/src/runloop_api_client/sdk/protocols.py +201 -0
  35. runloop_api_client-0.69.0/src/runloop_api_client/sdk/snapshot.py +125 -0
  36. runloop_api_client-0.69.0/src/runloop_api_client/sdk/storage_object.py +171 -0
  37. runloop_api_client-0.69.0/src/runloop_api_client/sdk/sync.py +550 -0
  38. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/__init__.py +5 -0
  39. runloop_api_client-0.69.0/src/runloop_api_client/types/agent_create_params.py +18 -0
  40. runloop_api_client-0.69.0/src/runloop_api_client/types/agent_list_params.py +24 -0
  41. runloop_api_client-0.69.0/src/runloop_api_client/types/agent_list_view.py +22 -0
  42. runloop_api_client-0.69.0/src/runloop_api_client/types/agent_view.py +25 -0
  43. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_build_parameters.py +27 -1
  44. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_create_params.py +27 -2
  45. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_preview_params.py +27 -2
  46. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_create_params.py +28 -16
  47. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +3 -0
  48. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_snapshot_view.py +3 -0
  49. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_view.py +2 -1
  50. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +1 -1
  51. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +3 -0
  52. runloop_api_client-0.69.0/src/runloop_api_client/types/object_create_params.py +30 -0
  53. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/object_list_params.py +6 -6
  54. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/object_list_public_params.py +6 -6
  55. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/object_view.py +4 -1
  56. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared/__init__.py +1 -0
  57. runloop_api_client-0.69.0/src/runloop_api_client/types/shared/agent_mount_parameters.py +31 -0
  58. runloop_api_client-0.69.0/src/runloop_api_client/types/shared/agent_source.py +71 -0
  59. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +3 -0
  60. runloop_api_client-0.69.0/src/runloop_api_client/types/shared/mount.py +29 -0
  61. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared_params/__init__.py +1 -0
  62. runloop_api_client-0.69.0/src/runloop_api_client/types/shared_params/agent_mount_parameters.py +31 -0
  63. runloop_api_client-0.69.0/src/runloop_api_client/types/shared_params/agent_source.py +74 -0
  64. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +3 -1
  65. runloop_api_client-0.69.0/src/runloop_api_client/types/shared_params/mount.py +26 -0
  66. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/devboxes/test_disk_snapshots.py +217 -0
  67. runloop_api_client-0.69.0/tests/api_resources/test_agents.py +297 -0
  68. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/test_blueprints.py +44 -0
  69. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/test_devboxes.py +379 -0
  70. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/test_objects.py +10 -8
  71. runloop_api_client-0.69.0/tests/sdk/__init__.py +2 -0
  72. runloop_api_client-0.69.0/tests/sdk/async_devbox/__init__.py +1 -0
  73. runloop_api_client-0.69.0/tests/sdk/async_devbox/conftest.py +6 -0
  74. runloop_api_client-0.69.0/tests/sdk/async_devbox/test_core.py +294 -0
  75. runloop_api_client-0.69.0/tests/sdk/async_devbox/test_edge_cases.py +26 -0
  76. runloop_api_client-0.69.0/tests/sdk/async_devbox/test_interfaces.py +216 -0
  77. runloop_api_client-0.69.0/tests/sdk/async_devbox/test_streaming.py +189 -0
  78. runloop_api_client-0.69.0/tests/sdk/conftest.py +272 -0
  79. runloop_api_client-0.69.0/tests/sdk/devbox/__init__.py +1 -0
  80. runloop_api_client-0.69.0/tests/sdk/devbox/conftest.py +6 -0
  81. runloop_api_client-0.69.0/tests/sdk/devbox/test_core.py +298 -0
  82. runloop_api_client-0.69.0/tests/sdk/devbox/test_edge_cases.py +148 -0
  83. runloop_api_client-0.69.0/tests/sdk/devbox/test_interfaces.py +331 -0
  84. runloop_api_client-0.69.0/tests/sdk/devbox/test_streaming.py +171 -0
  85. runloop_api_client-0.69.0/tests/sdk/test_async_blueprint.py +90 -0
  86. runloop_api_client-0.69.0/tests/sdk/test_async_clients.py +520 -0
  87. runloop_api_client-0.69.0/tests/sdk/test_async_execution.py +267 -0
  88. runloop_api_client-0.69.0/tests/sdk/test_async_execution_result.py +326 -0
  89. runloop_api_client-0.69.0/tests/sdk/test_async_snapshot.py +114 -0
  90. runloop_api_client-0.69.0/tests/sdk/test_async_storage_object.py +212 -0
  91. runloop_api_client-0.69.0/tests/sdk/test_blueprint.py +106 -0
  92. runloop_api_client-0.69.0/tests/sdk/test_clients.py +476 -0
  93. runloop_api_client-0.69.0/tests/sdk/test_execution.py +244 -0
  94. runloop_api_client-0.69.0/tests/sdk/test_execution_result.py +299 -0
  95. runloop_api_client-0.69.0/tests/sdk/test_helpers.py +30 -0
  96. runloop_api_client-0.69.0/tests/sdk/test_snapshot.py +141 -0
  97. runloop_api_client-0.69.0/tests/sdk/test_storage_object.py +278 -0
  98. runloop_api_client-0.69.0/tests/smoketests/sdk/README.md +138 -0
  99. runloop_api_client-0.69.0/tests/smoketests/sdk/__init__.py +2 -0
  100. runloop_api_client-0.69.0/tests/smoketests/sdk/conftest.py +68 -0
  101. runloop_api_client-0.69.0/tests/smoketests/sdk/test_async_blueprint.py +266 -0
  102. runloop_api_client-0.69.0/tests/smoketests/sdk/test_async_devbox.py +684 -0
  103. runloop_api_client-0.69.0/tests/smoketests/sdk/test_async_sdk.py +32 -0
  104. runloop_api_client-0.69.0/tests/smoketests/sdk/test_async_snapshot.py +312 -0
  105. runloop_api_client-0.69.0/tests/smoketests/sdk/test_async_storage_object.py +506 -0
  106. runloop_api_client-0.69.0/tests/smoketests/sdk/test_blueprint.py +266 -0
  107. runloop_api_client-0.69.0/tests/smoketests/sdk/test_devbox.py +679 -0
  108. runloop_api_client-0.69.0/tests/smoketests/sdk/test_sdk.py +32 -0
  109. runloop_api_client-0.69.0/tests/smoketests/sdk/test_snapshot.py +311 -0
  110. runloop_api_client-0.69.0/tests/smoketests/sdk/test_storage_object.py +504 -0
  111. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/test_devboxes.py +25 -0
  112. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_models.py +4 -4
  113. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_streaming.py +2 -0
  114. runloop_api_client-0.69.0/uv.lock +3011 -0
  115. runloop_api_client-0.67.0/.gitignore +0 -17
  116. runloop_api_client-0.67.0/.release-please-manifest.json +0 -3
  117. runloop_api_client-0.67.0/src/runloop_api_client/types/object_create_params.py +0 -19
  118. runloop_api_client-0.67.0/src/runloop_api_client/types/shared/agent_mount_parameters.py +0 -21
  119. runloop_api_client-0.67.0/src/runloop_api_client/types/shared/mount.py +0 -12
  120. runloop_api_client-0.67.0/src/runloop_api_client/types/shared_params/agent_mount_parameters.py +0 -21
  121. runloop_api_client-0.67.0/src/runloop_api_client/types/shared_params/mount.py +0 -13
  122. runloop_api_client-0.67.0/uv.lock +0 -1351
  123. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/CONTRIBUTING.md +0 -0
  124. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/LICENSE +0 -0
  125. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/SECURITY.md +0 -0
  126. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/bin/check-release-environment +0 -0
  127. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/bin/publish-pypi +0 -0
  128. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/examples/.keep +0 -0
  129. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/release-please-config.json +0 -0
  130. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/requirements-dev.lock +0 -0
  131. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop/lib/.keep +0 -0
  132. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_base_client.py +0 -0
  133. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_compat.py +0 -0
  134. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_constants.py +0 -0
  135. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_exceptions.py +0 -0
  136. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_files.py +0 -0
  137. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_qs.py +0 -0
  138. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_resource.py +0 -0
  139. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_response.py +0 -0
  140. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_streaming.py +0 -0
  141. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_types.py +0 -0
  142. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  143. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  144. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  145. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  146. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  147. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  148. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  149. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  150. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  151. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  152. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  153. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  154. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  155. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/lib/.keep +0 -0
  156. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/lib/polling.py +0 -0
  157. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  158. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/py.typed +0 -0
  159. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  160. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
  161. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  162. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  163. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  164. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  165. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  166. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  167. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/repositories.py +0 -0
  168. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  169. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  170. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  171. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  172. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/resources/secrets.py +0 -0
  173. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  174. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  175. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  176. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  177. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  178. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  179. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  180. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  181. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  182. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  183. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  184. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
  185. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  186. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  187. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  188. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  189. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  190. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  191. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  192. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  193. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  194. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  195. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  196. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  197. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  198. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  199. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  200. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  201. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  202. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  203. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  204. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  205. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  206. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  207. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  208. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  209. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  210. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  211. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  212. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  213. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  214. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  215. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  216. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  217. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  218. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  219. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  220. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  221. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  222. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  223. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  224. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  225. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  226. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  227. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  228. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  229. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  230. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  231. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  232. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  233. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  234. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  235. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  236. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  237. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/input_context.py +0 -0
  238. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  239. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  240. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  241. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  242. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  243. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/object_list_view.py +0 -0
  244. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  245. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  246. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  247. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  248. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  249. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  250. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  251. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  252. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  253. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  254. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  255. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  256. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  257. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  258. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  259. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  260. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  261. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  262. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  263. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  264. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  265. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  266. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  267. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  268. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  269. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  270. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  271. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  272. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  273. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  274. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  275. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  276. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  277. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  278. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  279. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  280. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  281. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  282. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  283. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  284. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  285. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  286. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/secret_view.py +0 -0
  287. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  288. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  289. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared/object_mount_parameters.py +0 -0
  290. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  291. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  292. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  293. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared_params/object_mount_parameters.py +0 -0
  294. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  295. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/__init__.py +0 -0
  296. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/__init__.py +0 -0
  297. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  298. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  299. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/devboxes/__init__.py +0 -0
  300. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  301. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  302. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  303. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  304. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/scenarios/__init__.py +0 -0
  305. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  306. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  307. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/test_benchmarks.py +0 -0
  308. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/test_repositories.py +0 -0
  309. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/test_scenarios.py +0 -0
  310. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/api_resources/test_secrets.py +0 -0
  311. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/conftest.py +0 -0
  312. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/sample_file.txt +0 -0
  313. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/README.md +0 -0
  314. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/__init__.py +0 -0
  315. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/conftest.py +0 -0
  316. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/test_blueprints.py +0 -0
  317. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/test_executions.py +0 -0
  318. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  319. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/test_snapshots.py +0 -0
  320. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/smoketests/utils.py +0 -0
  321. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_client.py +0 -0
  322. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_deepcopy.py +0 -0
  323. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_extract_files.py +0 -0
  324. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_files.py +0 -0
  325. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_polling.py +0 -0
  326. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_qs.py +0 -0
  327. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_required_args.py +0 -0
  328. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_response.py +0 -0
  329. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_transform.py +0 -0
  330. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_utils/test_datetime_parse.py +0 -0
  331. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_utils/test_proxy.py +0 -0
  332. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/test_utils/test_typing.py +0 -0
  333. {runloop_api_client-0.67.0 → runloop_api_client-0.69.0}/tests/utils.py +0 -0
@@ -0,0 +1,29 @@
1
+ .prism.log
2
+ _dev
3
+
4
+ __pycache__
5
+ .mypy_cache
6
+
7
+ dist
8
+
9
+ .venv
10
+ .idea
11
+
12
+ .env
13
+ .envrc
14
+ codegen.log
15
+ Brewfile.lock.json
16
+
17
+ .DS_Store
18
+
19
+ # Coverage files
20
+ .coverage
21
+ .coverage.*
22
+ htmlcov/
23
+ coverage.json
24
+ coverage-summary.json
25
+ *.cover
26
+ .pytest_cache/
27
+
28
+ # Docs
29
+ site/
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.69.0"
3
+ }
@@ -1,5 +1,44 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.69.0 (2025-11-21)
4
+
5
+ Full Changelog: [v0.68.0...v0.69.0](https://github.com/runloopai/api-client-python/compare/v0.68.0...v0.69.0)
6
+
7
+ ### Features
8
+
9
+ * **blueprints:** blueprints create_and_await_build_complete now take in build_context and named_build_context arguments ([#681](https://github.com/runloopai/api-client-python/issues/681)) ([1febe28](https://github.com/runloopai/api-client-python/commit/1febe28e2cadb23eae0cc411922646ce7b8875d3))
10
+ * **devbox:** unify api for devbox mounts ([01c7d14](https://github.com/runloopai/api-client-python/commit/01c7d14091961822d7fe706d6fa7528b6607f87a))
11
+ * **docs:** add documentation for the object oriented sdk, rendered with sphinx ([#677](https://github.com/runloopai/api-client-python/issues/677)) ([e8d1053](https://github.com/runloopai/api-client-python/commit/e8d1053edd15c07f8e8099e9736f97e5fd72fcfb))
12
+ * **storage-objects:** Add upload_from_dir helper method ([#680](https://github.com/runloopai/api-client-python/issues/680)) ([be5d99e](https://github.com/runloopai/api-client-python/commit/be5d99ef9983a64658c38ae5e0364122d11b86c4))
13
+
14
+
15
+ ### Documentation
16
+
17
+ * restructured sync vs async sdk and resources, added support for more type references ([#679](https://github.com/runloopai/api-client-python/issues/679)) ([6af891e](https://github.com/runloopai/api-client-python/commit/6af891e0b87d038b5b61a683fdf410df94f495b6))
18
+
19
+ ## 0.68.0 (2025-11-19)
20
+
21
+ Full Changelog: [v0.67.0...v0.68.0](https://github.com/runloopai/api-client-python/compare/v0.67.0...v0.68.0)
22
+
23
+ ### Features
24
+
25
+ * **blueprints:** Cleanup the BuildContext API ([#6407](https://github.com/runloopai/api-client-python/issues/6407))\n\nTest ([c87b986](https://github.com/runloopai/api-client-python/commit/c87b986e558ad3a0cca2ad1609b9833baf86fef8))
26
+ * **blueprints:** prevent deletion of blueprints with dependent snapshots ([ce55350](https://github.com/runloopai/api-client-python/commit/ce55350d81f7f5ba3a3aff8faea88c0e1366cea9))
27
+ * **object:** Added ability to give objects a Time To Live, after which they are automatically deleted.\nfeat(blueprints): Added the ability to attach objects as build contexts that can be referenced in your Dockerfile. ([f2bc83c](https://github.com/runloopai/api-client-python/commit/f2bc83c126696aea224bb5978294fc3362a94eeb))
28
+
29
+
30
+ ### Bug Fixes
31
+
32
+ * compat with Python 3.14 ([a52802a](https://github.com/runloopai/api-client-python/commit/a52802a6d12d96c3bf4bd670e77c9ec50d08b459))
33
+ * **compat:** update signatures of `model_dump` and `model_dump_json` for Pydantic v1 ([50340b2](https://github.com/runloopai/api-client-python/commit/50340b20148f72cb645bba0bafde6f902e063425))
34
+ * **snapshot:** added "deleted" status to DevboxSnapshotStatus enum \n fix(storage-object): added ObjectState enum, fixed createObject() to appropriately type content_type and state as the respective enums ([7c26593](https://github.com/runloopai/api-client-python/commit/7c265936088c074d00bd3c65b52dde5dcde3ccfb))
35
+
36
+
37
+ ### Chores
38
+
39
+ * **package:** drop Python 3.8 support ([07a0b8c](https://github.com/runloopai/api-client-python/commit/07a0b8c1825c78b0a6c30c2d374b82aced2f97d5))
40
+ * **package:** drop Python 3.8 support ([d67abf1](https://github.com/runloopai/api-client-python/commit/d67abf1c52a089e192987a261e69219d60514bc3))
41
+
3
42
  ## 0.67.0 (2025-11-14)
4
43
 
5
44
  Full Changelog: [v0.66.1...v0.67.0](https://github.com/runloopai/api-client-python/compare/v0.66.1...v0.67.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.67.0
3
+ Version: 0.69.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
@@ -61,6 +61,27 @@ pip install runloop_api_client
61
61
 
62
62
  The full API of this library can be found in [api.md](api.md).
63
63
 
64
+ ### Object-Oriented SDK
65
+
66
+ For a higher-level, Pythonic interface, check out the new [`RunloopSDK`](README-SDK.md) which layers an object-oriented API on top of the generated client (including synchronous and asynchronous variants).
67
+
68
+ ```python
69
+ from runloop_api_client import RunloopSDK
70
+
71
+ sdk = RunloopSDK() # Uses RUNLOOP_API_KEY environment variable by default
72
+
73
+ # Create a devbox and execute commands with a clean, object-oriented interface
74
+ with sdk.devbox.create(name="my-devbox") as devbox:
75
+ result = devbox.cmd.exec("echo 'Hello from Runloop!'")
76
+ print(result.stdout())
77
+ ```
78
+
79
+ **See the [SDK documentation](README-SDK.md) for complete examples and API reference.**
80
+
81
+ ### REST API Client
82
+
83
+ Alternatively, you can use the generated REST API client directly:
84
+
64
85
  ```python
65
86
  import os
66
87
  from runloop_api_client import Runloop