runloop_api_client 1.29.0__tar.gz → 1.30.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 (477) hide show
  1. runloop_api_client-1.30.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/CHANGELOG.md +13 -0
  3. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/PKG-INFO +1 -1
  4. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/pyproject.toml +1 -1
  5. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_version.py +1 -1
  6. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/devboxes/devboxes.py +66 -44
  7. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_devboxes.py +80 -10
  8. runloop_api_client-1.29.0/.release-please-manifest.json +0 -3
  9. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/.gitignore +0 -0
  10. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/AGENTS.md +0 -0
  11. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/CLAUDE.md +0 -0
  12. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/CONTRIBUTING.md +0 -0
  13. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/EXAMPLES.md +0 -0
  14. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/LICENSE +0 -0
  15. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/README-SDK.md +0 -0
  16. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/README.md +0 -0
  17. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/SECURITY.md +0 -0
  18. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/api.md +0 -0
  19. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/bin/check-release-environment +0 -0
  20. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/bin/publish-pypi +0 -0
  21. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/__init__.py +0 -0
  22. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/_harness.py +0 -0
  23. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/blueprint_with_build_context.py +0 -0
  24. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/devbox_from_blueprint_lifecycle.py +0 -0
  25. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/devbox_snapshot_resume.py +0 -0
  26. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/devbox_snapshots.py +0 -0
  27. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/devbox_tunnel.py +0 -0
  28. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/example_types.py +0 -0
  29. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/mcp_github_tools.py +0 -0
  30. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/registry.py +0 -0
  31. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/examples/secrets_with_devbox.py +0 -0
  32. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/release-please-config.json +0 -0
  33. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/requirements-dev.lock +0 -0
  34. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop/lib/.keep +0 -0
  35. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/__init__.py +0 -0
  36. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_base_client.py +0 -0
  37. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_client.py +0 -0
  38. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_compat.py +0 -0
  39. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_constants.py +0 -0
  40. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_exceptions.py +0 -0
  41. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_files.py +0 -0
  42. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_models.py +0 -0
  43. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_qs.py +0 -0
  44. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_resource.py +0 -0
  45. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_response.py +0 -0
  46. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_streaming.py +0 -0
  47. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_types.py +0 -0
  48. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  49. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  50. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  51. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_json.py +0 -0
  52. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  53. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_path.py +0 -0
  54. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  55. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  56. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  57. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  58. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  59. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  60. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  61. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  62. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  63. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/lib/.keep +0 -0
  64. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/lib/__init__.py +0 -0
  65. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/lib/_ignore.py +0 -0
  66. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/lib/context_loader.py +0 -0
  67. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/lib/polling.py +0 -0
  68. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  69. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/lib/wait_for_status.py +0 -0
  70. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/pagination.py +0 -0
  71. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/py.typed +0 -0
  72. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/__init__.py +0 -0
  73. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/accounts.py +0 -0
  74. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/agents.py +0 -0
  75. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/apikeys.py +0 -0
  76. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/axons/__init__.py +0 -0
  77. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/axons/axons.py +0 -0
  78. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/axons/events.py +0 -0
  79. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/axons/sql.py +0 -0
  80. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
  81. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
  82. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/benchmarks.py +0 -0
  83. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  84. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  85. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  86. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  87. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  88. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/gateway_configs.py +0 -0
  89. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/mcp_configs.py +0 -0
  90. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/network_policies.py +0 -0
  91. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/objects.py +0 -0
  92. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/pty.py +0 -0
  93. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/restricted_keys.py +0 -0
  94. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  95. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  96. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  97. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  98. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/resources/secrets.py +0 -0
  99. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/__init__.py +0 -0
  100. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
  101. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/_types.py +0 -0
  102. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/agent.py +0 -0
  103. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_.py +0 -0
  104. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
  105. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_axon.py +0 -0
  106. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
  107. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
  108. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  109. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  110. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_execution.py +0 -0
  111. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  112. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
  113. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
  114. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  115. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  116. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
  117. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  118. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_scorer.py +0 -0
  119. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_secret.py +0 -0
  120. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  121. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
  122. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/axon.py +0 -0
  123. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/benchmark.py +0 -0
  124. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
  125. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
  126. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/devbox.py +0 -0
  127. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/execution.py +0 -0
  128. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
  129. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/gateway_config.py +0 -0
  130. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/mcp_config.py +0 -0
  131. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/network_policy.py +0 -0
  132. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/scenario.py +0 -0
  133. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
  134. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  135. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/scorer.py +0 -0
  136. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/secret.py +0 -0
  137. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
  138. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/storage_object.py +0 -0
  139. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/sdk/sync.py +0 -0
  140. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/__init__.py +0 -0
  141. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/account_view.py +0 -0
  142. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
  143. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/agent_devbox_counts_view.py +0 -0
  144. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
  145. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/agent_list_public_params.py +0 -0
  146. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
  147. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/agent_view.py +0 -0
  148. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/allowed_cidr.py +0 -0
  149. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/allowed_cidr_param.py +0 -0
  150. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/api_key_created_view.py +0 -0
  151. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/apikey_create_params.py +0 -0
  152. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axon_create_params.py +0 -0
  153. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axon_event_view.py +0 -0
  154. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axon_list_params.py +0 -0
  155. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axon_list_view.py +0 -0
  156. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axon_publish_params.py +0 -0
  157. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axon_subscribe_sse_params.py +0 -0
  158. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axon_view.py +0 -0
  159. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/__init__.py +0 -0
  160. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/axon_event_list_view.py +0 -0
  161. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/event_list_params.py +0 -0
  162. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
  163. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_batch_result_view.py +0 -0
  164. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_column_meta_view.py +0 -0
  165. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
  166. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_query_result_view.py +0 -0
  167. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_result_meta_view.py +0 -0
  168. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
  169. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_step_error_view.py +0 -0
  170. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/axons/sql_step_result_view.py +0 -0
  171. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  172. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  173. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
  174. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
  175. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
  176. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
  177. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  178. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  179. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
  180. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
  181. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  182. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  183. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  184. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  185. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
  186. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  187. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  188. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  189. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  190. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  191. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  192. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  193. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  194. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  195. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  196. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  197. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  198. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  199. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  200. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  201. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +0 -0
  202. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_eviction_event_view.py +0 -0
  203. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  204. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  205. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  206. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  207. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  208. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  209. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  210. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  211. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  212. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
  213. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  214. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
  215. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  216. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  217. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  218. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  219. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  220. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  221. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  222. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  223. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  224. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  225. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  226. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  227. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  228. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  229. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  230. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  231. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  232. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  233. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  234. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  235. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  236. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  237. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  238. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
  239. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  240. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
  241. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
  242. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/gateway_config_view.py +0 -0
  243. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/input_context.py +0 -0
  244. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  245. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  246. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
  247. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
  248. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
  249. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
  250. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/mcp_config_view.py +0 -0
  251. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
  252. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  253. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
  254. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
  255. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/network_policy_view.py +0 -0
  256. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  257. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  258. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  259. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  260. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  261. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/object_list_view.py +0 -0
  262. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/object_view.py +0 -0
  263. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/port_rule.py +0 -0
  264. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/port_rule_param.py +0 -0
  265. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/pty_connect_params.py +0 -0
  266. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/pty_connect_view.py +0 -0
  267. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/pty_control_params.py +0 -0
  268. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/pty_control_result_view.py +0 -0
  269. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/pty_tunnel_view.py +0 -0
  270. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/publish_result_view.py +0 -0
  271. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/restricted_key_create_params.py +0 -0
  272. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/restricted_key_created_view.py +0 -0
  273. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  274. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  275. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  276. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  277. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  278. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  279. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  280. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  281. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  282. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  283. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  284. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  285. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  286. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  287. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  288. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  289. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  290. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  291. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  292. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  293. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scope_entry_view.py +0 -0
  294. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scope_entry_view_param.py +0 -0
  295. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  296. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  297. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  298. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  299. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  300. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  301. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  302. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  303. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  304. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  305. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  306. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/secret_view.py +0 -0
  307. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  308. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  309. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  310. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  311. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/auth_mechanism.py +0 -0
  312. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/broker_mount.py +0 -0
  313. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  314. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/custom_header.py +0 -0
  315. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  316. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/lifecycle_configuration.py +0 -0
  317. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/lifecycle_hooks.py +0 -0
  318. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/mount.py +0 -0
  319. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  320. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/resume_triggers.py +0 -0
  321. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  322. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  323. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  324. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  325. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  326. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/auth_mechanism.py +0 -0
  327. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/broker_mount.py +0 -0
  328. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  329. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/custom_header.py +0 -0
  330. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  331. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/lifecycle_configuration.py +0 -0
  332. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/lifecycle_hooks.py +0 -0
  333. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  334. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  335. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/resume_triggers.py +0 -0
  336. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  337. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/src/runloop_api_client/types/tunnel_view.py +0 -0
  338. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/__init__.py +0 -0
  339. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/__init__.py +0 -0
  340. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/axons/__init__.py +0 -0
  341. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/axons/test_events.py +0 -0
  342. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/axons/test_sql.py +0 -0
  343. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/devboxes/__init__.py +0 -0
  344. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  345. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  346. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  347. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/scenarios/__init__.py +0 -0
  348. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  349. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  350. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_accounts.py +0 -0
  351. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_agents.py +0 -0
  352. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_apikeys.py +0 -0
  353. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_axons.py +0 -0
  354. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_benchmark_jobs.py +0 -0
  355. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_benchmark_runs.py +0 -0
  356. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_benchmarks.py +0 -0
  357. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_blueprints.py +0 -0
  358. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_gateway_configs.py +0 -0
  359. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_mcp_configs.py +0 -0
  360. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_network_policies.py +0 -0
  361. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_objects.py +0 -0
  362. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_pty.py +0 -0
  363. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_restricted_keys.py +0 -0
  364. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_scenarios.py +0 -0
  365. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/api_resources/test_secrets.py +0 -0
  366. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/conftest.py +0 -0
  367. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sample_file.txt +0 -0
  368. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/__init__.py +0 -0
  369. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/async_devbox/__init__.py +0 -0
  370. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/async_devbox/conftest.py +0 -0
  371. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/async_devbox/test_core.py +0 -0
  372. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  373. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  374. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
  375. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/conftest.py +0 -0
  376. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/devbox/__init__.py +0 -0
  377. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/devbox/conftest.py +0 -0
  378. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/devbox/test_core.py +0 -0
  379. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
  380. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/devbox/test_interfaces.py +0 -0
  381. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/devbox/test_streaming.py +0 -0
  382. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_agent.py +0 -0
  383. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_agent.py +0 -0
  384. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_axon.py +0 -0
  385. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_benchmark.py +0 -0
  386. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_benchmark_run.py +0 -0
  387. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_blueprint.py +0 -0
  388. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_execution.py +0 -0
  389. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_execution_result.py +0 -0
  390. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_gateway_config.py +0 -0
  391. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_network_policy.py +0 -0
  392. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_ops.py +0 -0
  393. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_scenario.py +0 -0
  394. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_scenario_builder.py +0 -0
  395. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_scenario_run.py +0 -0
  396. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_scorer.py +0 -0
  397. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_snapshot.py +0 -0
  398. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_async_storage_object.py +0 -0
  399. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_axon.py +0 -0
  400. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_benchmark.py +0 -0
  401. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_benchmark_run.py +0 -0
  402. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_blueprint.py +0 -0
  403. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_execution.py +0 -0
  404. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_execution_result.py +0 -0
  405. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_gateway_config.py +0 -0
  406. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_helpers.py +0 -0
  407. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_network_policy.py +0 -0
  408. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_ops.py +0 -0
  409. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_scenario.py +0 -0
  410. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_scenario_builder.py +0 -0
  411. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_scenario_run.py +0 -0
  412. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_scorer.py +0 -0
  413. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_snapshot.py +0 -0
  414. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/sdk/test_storage_object.py +0 -0
  415. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/README.md +0 -0
  416. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/__init__.py +0 -0
  417. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/conftest.py +0 -0
  418. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/examples/__init__.py +0 -0
  419. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/examples/test_examples.py +0 -0
  420. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/README.md +0 -0
  421. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/__init__.py +0 -0
  422. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/conftest.py +0 -0
  423. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_agent.py +0 -0
  424. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
  425. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_axon.py +0 -0
  426. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
  427. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  428. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  429. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
  430. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  431. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  432. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  433. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  434. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_secret.py +0 -0
  435. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  436. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  437. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_axon.py +0 -0
  438. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_benchmark.py +0 -0
  439. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
  440. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_devbox.py +0 -0
  441. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_gateway_config.py +0 -0
  442. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_mcp_config.py +0 -0
  443. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_network_policy.py +0 -0
  444. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_scenario.py +0 -0
  445. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_scorer.py +0 -0
  446. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_sdk.py +0 -0
  447. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_secret.py +0 -0
  448. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
  449. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
  450. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/test_blueprints.py +0 -0
  451. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/test_devboxes.py +0 -0
  452. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/test_executions.py +0 -0
  453. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  454. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/test_snapshots.py +0 -0
  455. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/smoketests/utils.py +0 -0
  456. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_client.py +0 -0
  457. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_command_id.py +0 -0
  458. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_extract_files.py +0 -0
  459. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_files.py +0 -0
  460. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_h2_bulkhead_integration.py +0 -0
  461. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_models.py +0 -0
  462. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_polling.py +0 -0
  463. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_qs.py +0 -0
  464. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_required_args.py +0 -0
  465. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_response.py +0 -0
  466. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_shared_pool.py +0 -0
  467. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_streaming.py +0 -0
  468. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_transfer_client.py +0 -0
  469. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_transform.py +0 -0
  470. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_utils/test_context_loader.py +0 -0
  471. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_utils/test_datetime_parse.py +0 -0
  472. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_utils/test_json.py +0 -0
  473. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_utils/test_path.py +0 -0
  474. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_utils/test_proxy.py +0 -0
  475. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/test_utils/test_typing.py +0 -0
  476. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/tests/utils.py +0 -0
  477. {runloop_api_client-1.29.0 → runloop_api_client-1.30.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.30.0"
3
+ }
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.30.0 (2026-08-20)
4
+
5
+ Full Changelog: [v1.29.0...v1.30.0](https://github.com/runloopai/api-client-python/compare/v1.29.0...v1.30.0)
6
+
7
+ ### Features
8
+
9
+ * **devboxes:** use optimistic create endpoint ([#829](https://github.com/runloopai/api-client-python/issues/829)) ([3f47b22](https://github.com/runloopai/api-client-python/commit/3f47b2256189b1aca4c4137134df2643dd3d7ca5))
10
+
11
+
12
+ ### Chores
13
+
14
+ * **internal:** allow the mock server port to be set with STAINLESS_MOCK_PORT ([b7a3d87](https://github.com/runloopai/api-client-python/commit/b7a3d87997538ff6d4658df77d68177f83811eb3))
15
+
3
16
  ## 1.29.0 (2026-08-20)
4
17
 
5
18
  Full Changelog: [v1.28.0...v1.29.0](https://github.com/runloopai/api-client-python/compare/v1.28.0...v1.29.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 1.29.0
3
+ Version: 1.30.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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "1.29.0"
3
+ version = "1.30.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "1.29.0" # x-release-please-version
4
+ __version__ = "1.30.0" # x-release-please-version
@@ -500,30 +500,41 @@ class DevboxesResource(SyncAPIResource):
500
500
  PollingTimeout: If polling times out before devbox is running
501
501
  RunloopError: If devbox enters a non-running terminal state
502
502
  """
503
- # Pass all create_args to the underlying create method
504
- devbox = self.create(
505
- blueprint_id=blueprint_id,
506
- blueprint_name=blueprint_name,
507
- code_mounts=code_mounts,
508
- entrypoint=entrypoint,
509
- environment_variables=environment_variables,
510
- file_mounts=file_mounts,
511
- gateways=gateways,
512
- launch_parameters=launch_parameters,
513
- mcp=mcp,
514
- metadata=metadata,
515
- mounts=mounts,
516
- name=name,
517
- secrets=secrets,
518
- snapshot_id=snapshot_id,
519
- tunnel=tunnel,
520
- extra_headers=extra_headers,
521
- extra_query=extra_query,
522
- extra_body=extra_body,
523
- timeout=timeout,
524
- idempotency_key=idempotency_key,
503
+ devbox = self._post(
504
+ "/v1/devboxes/create_and_await_running",
505
+ body=maybe_transform(
506
+ {
507
+ "blueprint_id": blueprint_id,
508
+ "blueprint_name": blueprint_name,
509
+ "code_mounts": code_mounts,
510
+ "entrypoint": entrypoint,
511
+ "environment_variables": environment_variables,
512
+ "file_mounts": file_mounts,
513
+ "gateways": gateways,
514
+ "launch_parameters": launch_parameters,
515
+ "mcp": mcp,
516
+ "metadata": metadata,
517
+ "mounts": mounts,
518
+ "name": name,
519
+ "secrets": secrets,
520
+ "snapshot_id": snapshot_id,
521
+ "tunnel": tunnel,
522
+ },
523
+ devbox_create_params.DevboxCreateParams,
524
+ ),
525
+ options=make_request_options(
526
+ extra_headers=extra_headers,
527
+ extra_query=extra_query,
528
+ extra_body=extra_body,
529
+ timeout=timeout,
530
+ idempotency_key=idempotency_key,
531
+ ),
532
+ cast_to=DevboxView,
525
533
  )
526
534
 
535
+ if devbox.status == "running":
536
+ return devbox
537
+
527
538
  return self.await_running(
528
539
  devbox.id,
529
540
  polling_config=polling_config,
@@ -2071,30 +2082,41 @@ class AsyncDevboxesResource(AsyncAPIResource):
2071
2082
  RunloopError: If devbox enters a non-running terminal state
2072
2083
  """
2073
2084
 
2074
- # Pass all create_args, relevant request args to the underlying create method
2075
- devbox = await self.create(
2076
- blueprint_id=blueprint_id,
2077
- blueprint_name=blueprint_name,
2078
- code_mounts=code_mounts,
2079
- entrypoint=entrypoint,
2080
- environment_variables=environment_variables,
2081
- file_mounts=file_mounts,
2082
- gateways=gateways,
2083
- launch_parameters=launch_parameters,
2084
- mcp=mcp,
2085
- metadata=metadata,
2086
- mounts=mounts,
2087
- name=name,
2088
- secrets=secrets,
2089
- snapshot_id=snapshot_id,
2090
- tunnel=tunnel,
2091
- extra_headers=extra_headers,
2092
- extra_query=extra_query,
2093
- extra_body=extra_body,
2094
- timeout=timeout,
2095
- idempotency_key=idempotency_key,
2085
+ devbox = await self._post(
2086
+ "/v1/devboxes/create_and_await_running",
2087
+ body=await async_maybe_transform(
2088
+ {
2089
+ "blueprint_id": blueprint_id,
2090
+ "blueprint_name": blueprint_name,
2091
+ "code_mounts": code_mounts,
2092
+ "entrypoint": entrypoint,
2093
+ "environment_variables": environment_variables,
2094
+ "file_mounts": file_mounts,
2095
+ "gateways": gateways,
2096
+ "launch_parameters": launch_parameters,
2097
+ "mcp": mcp,
2098
+ "metadata": metadata,
2099
+ "mounts": mounts,
2100
+ "name": name,
2101
+ "secrets": secrets,
2102
+ "snapshot_id": snapshot_id,
2103
+ "tunnel": tunnel,
2104
+ },
2105
+ devbox_create_params.DevboxCreateParams,
2106
+ ),
2107
+ options=make_request_options(
2108
+ extra_headers=extra_headers,
2109
+ extra_query=extra_query,
2110
+ extra_body=extra_body,
2111
+ timeout=timeout,
2112
+ idempotency_key=idempotency_key,
2113
+ ),
2114
+ cast_to=DevboxView,
2096
2115
  )
2097
2116
 
2117
+ if devbox.status == "running":
2118
+ return devbox
2119
+
2098
2120
  return await self.await_running(
2099
2121
  devbox.id,
2100
2122
  polling_config=polling_config,
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import os
6
6
  from typing import Any, cast
7
- from unittest.mock import Mock, patch
7
+ from unittest.mock import Mock, AsyncMock, patch
8
8
 
9
9
  import httpx
10
10
  import pytest
@@ -1452,9 +1452,9 @@ class TestDevboxes:
1452
1452
  state_transitions=[],
1453
1453
  )
1454
1454
 
1455
- with patch.object(client.devboxes, "create") as mock_create:
1455
+ with patch.object(client.devboxes, "_post") as mock_post:
1456
1456
  with patch.object(client.devboxes, "await_running") as mock_await:
1457
- mock_create.return_value = mock_devbox_creating
1457
+ mock_post.return_value = mock_devbox_creating
1458
1458
  mock_await.return_value = mock_devbox_running
1459
1459
 
1460
1460
  result = client.devboxes.create_and_await_running(
@@ -1463,9 +1463,34 @@ class TestDevboxes:
1463
1463
 
1464
1464
  assert result.id == "test_id"
1465
1465
  assert result.status == "running"
1466
- mock_create.assert_called_once()
1466
+ assert mock_post.call_args.args[0] == "/v1/devboxes/create_and_await_running"
1467
+ assert mock_post.call_args.kwargs["body"]["name"] == "test"
1467
1468
  mock_await.assert_called_once_with("test_id", polling_config=None)
1468
1469
 
1470
+ @parametrize
1471
+ def test_method_create_and_await_running_optimistic_success(self, client: Runloop) -> None:
1472
+ """Test create_and_await_running returns a running response without polling."""
1473
+
1474
+ mock_devbox_running = DevboxView(
1475
+ id="test_id",
1476
+ status="running",
1477
+ capabilities=[],
1478
+ create_time_ms=1234567890,
1479
+ launch_parameters=LaunchParameters(resource_size_request="X_SMALL"),
1480
+ metadata={},
1481
+ state_transitions=[],
1482
+ )
1483
+
1484
+ with patch.object(client.devboxes, "_post") as mock_post:
1485
+ with patch.object(client.devboxes, "await_running") as mock_await:
1486
+ mock_post.return_value = mock_devbox_running
1487
+
1488
+ result = client.devboxes.create_and_await_running(name="test")
1489
+
1490
+ assert result.status == "running"
1491
+ assert mock_post.call_args.args[0] == "/v1/devboxes/create_and_await_running"
1492
+ mock_await.assert_not_called()
1493
+
1469
1494
  @parametrize
1470
1495
  def test_method_create_and_await_running_with_config(self, client: Runloop) -> None:
1471
1496
  """Test create_and_await_running with custom polling configuration"""
@@ -1492,9 +1517,9 @@ class TestDevboxes:
1492
1517
 
1493
1518
  config = PollingConfig(interval_seconds=0.1, max_attempts=10)
1494
1519
 
1495
- with patch.object(client.devboxes, "create") as mock_create:
1520
+ with patch.object(client.devboxes, "_post") as mock_post:
1496
1521
  with patch.object(client.devboxes, "await_running") as mock_await:
1497
- mock_create.return_value = mock_devbox_creating
1522
+ mock_post.return_value = mock_devbox_creating
1498
1523
  mock_await.return_value = mock_devbox_running
1499
1524
 
1500
1525
  result = client.devboxes.create_and_await_running(
@@ -1514,8 +1539,8 @@ class TestDevboxes:
1514
1539
  mock_response.status_code = 400
1515
1540
  mock_error = APIStatusError("Bad request", response=mock_response, body=None)
1516
1541
 
1517
- with patch.object(client.devboxes, "create") as mock_create:
1518
- mock_create.side_effect = mock_error
1542
+ with patch.object(client.devboxes, "_post") as mock_post:
1543
+ mock_post.side_effect = mock_error
1519
1544
 
1520
1545
  with pytest.raises(APIStatusError, match="Bad request"):
1521
1546
  client.devboxes.create_and_await_running(
@@ -1536,9 +1561,9 @@ class TestDevboxes:
1536
1561
  state_transitions=[],
1537
1562
  )
1538
1563
 
1539
- with patch.object(client.devboxes, "create") as mock_create:
1564
+ with patch.object(client.devboxes, "_post") as mock_post:
1540
1565
  with patch.object(client.devboxes, "await_running") as mock_await:
1541
- mock_create.return_value = mock_devbox_creating
1566
+ mock_post.return_value = mock_devbox_creating
1542
1567
  mock_await.side_effect = RunloopError("Devbox entered non-running terminal state: failed")
1543
1568
 
1544
1569
  with pytest.raises(RunloopError, match="Devbox entered non-running terminal state: failed"):
@@ -1739,6 +1764,51 @@ class TestAsyncDevboxes:
1739
1764
  "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
1740
1765
  )
1741
1766
 
1767
+ @parametrize
1768
+ async def test_method_create_and_await_running_success(self, async_client: AsyncRunloop) -> None:
1769
+ mock_devbox_creating = DevboxView(
1770
+ id="test_id",
1771
+ status="provisioning",
1772
+ capabilities=[],
1773
+ create_time_ms=1234567890,
1774
+ launch_parameters=LaunchParameters(resource_size_request="X_SMALL"),
1775
+ metadata={},
1776
+ state_transitions=[],
1777
+ )
1778
+ mock_devbox_running = mock_devbox_creating.model_copy(update={"status": "running"})
1779
+
1780
+ with patch.object(async_client.devboxes, "_post", new_callable=AsyncMock) as mock_post:
1781
+ with patch.object(async_client.devboxes, "await_running", new_callable=AsyncMock) as mock_await:
1782
+ mock_post.return_value = mock_devbox_creating
1783
+ mock_await.return_value = mock_devbox_running
1784
+
1785
+ result = await async_client.devboxes.create_and_await_running(name="test")
1786
+
1787
+ assert result.status == "running"
1788
+ assert mock_post.call_args.args[0] == "/v1/devboxes/create_and_await_running"
1789
+ mock_await.assert_awaited_once_with("test_id", polling_config=None)
1790
+
1791
+ @parametrize
1792
+ async def test_method_create_and_await_running_optimistic_success(self, async_client: AsyncRunloop) -> None:
1793
+ mock_devbox_running = DevboxView(
1794
+ id="test_id",
1795
+ status="running",
1796
+ capabilities=[],
1797
+ create_time_ms=1234567890,
1798
+ launch_parameters=LaunchParameters(resource_size_request="X_SMALL"),
1799
+ metadata={},
1800
+ state_transitions=[],
1801
+ )
1802
+
1803
+ with patch.object(async_client.devboxes, "_post", new_callable=AsyncMock) as mock_post:
1804
+ with patch.object(async_client.devboxes, "await_running", new_callable=AsyncMock) as mock_await:
1805
+ mock_post.return_value = mock_devbox_running
1806
+
1807
+ result = await async_client.devboxes.create_and_await_running(name="test")
1808
+
1809
+ assert result.status == "running"
1810
+ mock_await.assert_not_awaited()
1811
+
1742
1812
  @parametrize
1743
1813
  async def test_method_create(self, async_client: AsyncRunloop) -> None:
1744
1814
  devbox = await async_client.devboxes.create()
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.29.0"
3
- }