runloop_api_client 1.8.0__tar.gz → 1.9.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 (406) hide show
  1. runloop_api_client-1.9.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/CHANGELOG.md +25 -0
  3. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/CONTRIBUTING.md +1 -2
  4. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/PKG-INFO +1 -1
  5. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/api.md +2 -1
  6. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/pyproject.toml +1 -1
  7. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_response.py +3 -0
  8. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_streaming.py +7 -2
  9. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_version.py +1 -1
  10. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/devboxes.py +35 -4
  11. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/network_policies.py +36 -0
  12. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/scenarios/scenarios.py +96 -0
  13. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/_types.py +4 -1
  14. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_scorer.py +0 -1
  15. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/scorer.py +0 -1
  16. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/__init__.py +1 -0
  17. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/agent_list_view.py +11 -5
  18. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_job_list_view.py +3 -3
  19. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_run_list_view.py +4 -4
  20. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_list_view.py +3 -3
  21. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_create_params.py +6 -0
  22. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +6 -0
  23. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_list_view.py +3 -3
  24. runloop_api_client-1.9.0/src/runloop_api_client/types/devbox_shutdown_params.py +12 -0
  25. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +4 -4
  26. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_list_view.py +6 -3
  27. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_list_view.py +6 -3
  28. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_create_params.py +12 -0
  29. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_list_view.py +6 -3
  30. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_update_params.py +6 -0
  31. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_view.py +9 -0
  32. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_list_view.py +11 -5
  33. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_connection_list_view.py +4 -4
  34. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_definition_list_view.py +4 -4
  35. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_run_list_view.py +4 -4
  36. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_view.py +6 -0
  37. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_list_view.py +12 -6
  38. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/tunnel_view.py +6 -0
  39. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_devboxes.py +34 -10
  40. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_network_policies.py +8 -0
  41. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_scenarios.py +76 -0
  42. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_client.py +16 -0
  43. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/uv.lock +2 -2
  44. runloop_api_client-1.8.0/.release-please-manifest.json +0 -3
  45. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/.gitignore +0 -0
  46. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/LICENSE +0 -0
  47. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/README-SDK.md +0 -0
  48. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/README.md +0 -0
  49. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/SECURITY.md +0 -0
  50. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/bin/check-release-environment +0 -0
  51. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/bin/publish-pypi +0 -0
  52. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/examples/.keep +0 -0
  53. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/release-please-config.json +0 -0
  54. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/requirements-dev.lock +0 -0
  55. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop/lib/.keep +0 -0
  56. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/__init__.py +0 -0
  57. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_base_client.py +0 -0
  58. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_client.py +0 -0
  59. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_compat.py +0 -0
  60. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_constants.py +0 -0
  61. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_exceptions.py +0 -0
  62. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_files.py +0 -0
  63. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_models.py +0 -0
  64. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_qs.py +0 -0
  65. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_resource.py +0 -0
  66. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_types.py +0 -0
  67. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  68. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  69. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  70. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_json.py +0 -0
  71. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  72. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  73. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  74. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  75. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  76. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  77. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  78. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  79. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  80. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  81. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/.keep +0 -0
  82. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/__init__.py +0 -0
  83. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/_ignore.py +0 -0
  84. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/context_loader.py +0 -0
  85. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/polling.py +0 -0
  86. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  87. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/pagination.py +0 -0
  88. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/py.typed +0 -0
  89. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/__init__.py +0 -0
  90. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/agents.py +0 -0
  91. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
  92. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
  93. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/benchmarks.py +0 -0
  94. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  95. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  96. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  97. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  98. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  99. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  100. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  101. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/gateway_configs.py +0 -0
  102. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/mcp_configs.py +0 -0
  103. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/objects.py +0 -0
  104. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/repositories.py +0 -0
  105. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  106. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  107. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  108. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/secrets.py +0 -0
  109. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/__init__.py +0 -0
  110. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
  111. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/agent.py +0 -0
  112. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_.py +0 -0
  113. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
  114. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
  115. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
  116. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  117. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  118. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_execution.py +0 -0
  119. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  120. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
  121. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  122. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  123. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
  124. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  125. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  126. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
  127. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/benchmark.py +0 -0
  128. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
  129. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
  130. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/devbox.py +0 -0
  131. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/execution.py +0 -0
  132. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
  133. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/gateway_config.py +0 -0
  134. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/network_policy.py +0 -0
  135. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/scenario.py +0 -0
  136. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
  137. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  138. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
  139. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/storage_object.py +0 -0
  140. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/sync.py +0 -0
  141. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
  142. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
  143. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/agent_view.py +0 -0
  144. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  145. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  146. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
  147. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
  148. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
  149. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  150. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  151. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
  152. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
  153. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  154. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  155. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  156. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
  157. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  158. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  159. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  160. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  161. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  162. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  163. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  164. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  165. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  166. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  167. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  168. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  169. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  170. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  171. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  172. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  173. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  174. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  175. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  176. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  177. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  178. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  179. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  180. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  181. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
  182. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  183. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  184. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  185. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  186. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  187. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  188. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  189. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  190. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  191. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  192. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  193. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  194. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  195. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  196. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  197. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  198. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  199. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  200. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  201. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  202. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  203. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  204. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  205. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  206. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  207. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  208. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  209. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  210. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  211. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  212. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  213. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  214. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  215. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  216. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
  217. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  218. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
  219. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_view.py +0 -0
  220. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/input_context.py +0 -0
  221. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  222. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  223. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  224. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
  225. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
  226. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
  227. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_view.py +0 -0
  228. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  229. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  230. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  231. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  232. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  233. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  234. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_view.py +0 -0
  235. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  236. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  237. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  238. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  239. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  240. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  241. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  242. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  243. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  244. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  245. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  246. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  247. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  248. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  249. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  250. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  251. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  252. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  253. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  254. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  255. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  256. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  257. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  258. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  259. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  260. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  261. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  262. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  263. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  264. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  265. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  266. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  267. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  268. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  269. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  270. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_view.py +0 -0
  271. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  272. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  273. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  274. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  275. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  276. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  277. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/mount.py +0 -0
  278. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  279. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  280. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  281. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  282. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  283. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  284. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  285. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  286. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  287. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  288. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  289. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/__init__.py +0 -0
  290. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/__init__.py +0 -0
  291. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/__init__.py +0 -0
  292. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  293. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  294. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  295. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  296. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  297. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/scenarios/__init__.py +0 -0
  298. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  299. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  300. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_agents.py +0 -0
  301. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_benchmark_jobs.py +0 -0
  302. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_benchmark_runs.py +0 -0
  303. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_benchmarks.py +0 -0
  304. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_blueprints.py +0 -0
  305. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_gateway_configs.py +0 -0
  306. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_mcp_configs.py +0 -0
  307. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_objects.py +0 -0
  308. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_repositories.py +0 -0
  309. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/api_resources/test_secrets.py +0 -0
  310. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/conftest.py +0 -0
  311. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sample_file.txt +0 -0
  312. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/__init__.py +0 -0
  313. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/__init__.py +0 -0
  314. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/conftest.py +0 -0
  315. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/test_core.py +0 -0
  316. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  317. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  318. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
  319. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/conftest.py +0 -0
  320. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/__init__.py +0 -0
  321. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/conftest.py +0 -0
  322. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/test_core.py +0 -0
  323. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
  324. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/test_interfaces.py +0 -0
  325. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/test_streaming.py +0 -0
  326. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_agent.py +0 -0
  327. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_agent.py +0 -0
  328. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_benchmark.py +0 -0
  329. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_benchmark_run.py +0 -0
  330. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_blueprint.py +0 -0
  331. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_execution.py +0 -0
  332. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_execution_result.py +0 -0
  333. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_gateway_config.py +0 -0
  334. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_network_policy.py +0 -0
  335. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_ops.py +0 -0
  336. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_scenario.py +0 -0
  337. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_scenario_builder.py +0 -0
  338. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_scenario_run.py +0 -0
  339. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_scorer.py +0 -0
  340. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_snapshot.py +0 -0
  341. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_storage_object.py +0 -0
  342. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_benchmark.py +0 -0
  343. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_benchmark_run.py +0 -0
  344. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_blueprint.py +0 -0
  345. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_execution.py +0 -0
  346. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_execution_result.py +0 -0
  347. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_gateway_config.py +0 -0
  348. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_helpers.py +0 -0
  349. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_network_policy.py +0 -0
  350. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_ops.py +0 -0
  351. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_scenario.py +0 -0
  352. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_scenario_builder.py +0 -0
  353. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_scenario_run.py +0 -0
  354. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_scorer.py +0 -0
  355. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_snapshot.py +0 -0
  356. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/sdk/test_storage_object.py +0 -0
  357. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/README.md +0 -0
  358. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/__init__.py +0 -0
  359. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/conftest.py +0 -0
  360. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/README.md +0 -0
  361. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/__init__.py +0 -0
  362. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/conftest.py +0 -0
  363. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_agent.py +0 -0
  364. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
  365. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
  366. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  367. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  368. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
  369. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  370. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  371. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  372. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  373. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  374. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  375. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_benchmark.py +0 -0
  376. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
  377. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_devbox.py +0 -0
  378. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_gateway_config.py +0 -0
  379. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_network_policy.py +0 -0
  380. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_scenario.py +0 -0
  381. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_scorer.py +0 -0
  382. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_sdk.py +0 -0
  383. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
  384. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
  385. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/test_blueprints.py +0 -0
  386. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/test_devboxes.py +0 -0
  387. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/test_executions.py +0 -0
  388. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  389. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/test_snapshots.py +0 -0
  390. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/smoketests/utils.py +0 -0
  391. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_deepcopy.py +0 -0
  392. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_extract_files.py +0 -0
  393. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_files.py +0 -0
  394. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_models.py +0 -0
  395. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_polling.py +0 -0
  396. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_qs.py +0 -0
  397. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_required_args.py +0 -0
  398. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_response.py +0 -0
  399. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_streaming.py +0 -0
  400. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_transform.py +0 -0
  401. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_utils/test_context_loader.py +0 -0
  402. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_utils/test_datetime_parse.py +0 -0
  403. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_utils/test_json.py +0 -0
  404. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_utils/test_proxy.py +0 -0
  405. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/test_utils/test_typing.py +0 -0
  406. {runloop_api_client-1.8.0 → runloop_api_client-1.9.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.9.0"
3
+ }
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.0 (2026-02-25)
4
+
5
+ Full Changelog: [v1.8.0...v1.9.0](https://github.com/runloopai/api-client-python/compare/v1.8.0...v1.9.0)
6
+
7
+ ### Features
8
+
9
+ * Add AI gateway and MCP gateway flags to network policy create ([#7638](https://github.com/runloopai/api-client-python/issues/7638)) ([85f2146](https://github.com/runloopai/api-client-python/commit/85f2146d2f25085d19d5bf34096066b0ba18cb5d))
10
+
11
+
12
+ ### Chores
13
+
14
+ * Add archive method to stainless ([#7537](https://github.com/runloopai/api-client-python/issues/7537)) ([836f18d](https://github.com/runloopai/api-client-python/commit/836f18d52c20b4b43f9135a52571f8c7e87a0477))
15
+ * **benchmarks:** removed scorer ([#740](https://github.com/runloopai/api-client-python/issues/740)) ([1033264](https://github.com/runloopai/api-client-python/commit/1033264b0ed34cc47e2e16cac3ae5986f2a4e381))
16
+ * format all `api.md` files ([ee5d577](https://github.com/runloopai/api-client-python/commit/ee5d5773d408ac8e61101fd0187ec071709bebab))
17
+ * **internal:** add request options to SSE classes ([e636aca](https://github.com/runloopai/api-client-python/commit/e636aca4eedb81b35d80bd6f5229cc71153ec545))
18
+ * **internal:** make `test_proxy_environment_variables` more resilient ([564cd57](https://github.com/runloopai/api-client-python/commit/564cd5730fbf94b7014390ee71d7595cb7d6e71a))
19
+ * **internal:** make `test_proxy_environment_variables` more resilient to env ([21d4ce8](https://github.com/runloopai/api-client-python/commit/21d4ce865094d9272841871eefde3cf15c183d19))
20
+ * **scenarios:** make scenario status enum instead of string ([#7552](https://github.com/runloopai/api-client-python/issues/7552)) ([e6e5208](https://github.com/runloopai/api-client-python/commit/e6e5208c19360f24f10b3c0da84119f7eb356bb1))
21
+ * update mock server docs ([273fb5e](https://github.com/runloopai/api-client-python/commit/273fb5ec761bcc5948571d9757780d86b6f0f50d))
22
+
23
+
24
+ ### Refactors
25
+
26
+ * deprecate and make Nullable total_count and remaining_count of ListViews ([#7533](https://github.com/runloopai/api-client-python/issues/7533)) ([8b16ebe](https://github.com/runloopai/api-client-python/commit/8b16ebe7aba9f96592f03ed2844211209b35d9e6))
27
+
3
28
  ## 1.8.0 (2026-02-12)
4
29
 
5
30
  Full Changelog: [v1.7.0...v1.8.0](https://github.com/runloopai/api-client-python/compare/v1.7.0...v1.8.0)
@@ -88,8 +88,7 @@ $ pip install ./path-to-wheel-file.whl
88
88
  Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
89
89
 
90
90
  ```sh
91
- # you will need npm installed
92
- npx prism mock path/to/your/openapi.yml
91
+ $ ./scripts/mock
93
92
  ```
94
93
 
95
94
  ```sh
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 1.8.0
3
+ Version: 1.9.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
@@ -160,7 +160,7 @@ Methods:
160
160
  - <code title="post /v1/devboxes/{id}/remove_tunnel">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">remove_tunnel</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_remove_tunnel_params.py">params</a>) -> object</code>
161
161
  - <code title="post /v1/devboxes/{id}/resume">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">resume</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
162
162
  - <code title="get /v1/devboxes/{id}/usage">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">retrieve_resource_usage</a>(id) -> <a href="./src/runloop_api_client/types/devbox_resource_usage_view.py">DevboxResourceUsageView</a></code>
163
- - <code title="post /v1/devboxes/{id}/shutdown">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">shutdown</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
163
+ - <code title="post /v1/devboxes/{id}/shutdown">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">shutdown</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_shutdown_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
164
164
  - <code title="post /v1/devboxes/{id}/snapshot_disk">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">snapshot_disk</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_snapshot_disk_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_view.py">DevboxSnapshotView</a></code>
165
165
  - <code title="post /v1/devboxes/{id}/snapshot_disk_async">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">snapshot_disk_async</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_snapshot_disk_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_view.py">DevboxSnapshotView</a></code>
166
166
  - <code title="post /v1/devboxes/{id}/suspend">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">suspend</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
@@ -277,6 +277,7 @@ Methods:
277
277
  - <code title="get /v1/scenarios/{id}">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
278
278
  - <code title="post /v1/scenarios/{id}">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/scenario_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
279
279
  - <code title="get /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">SyncScenariosCursorIDPage[ScenarioView]</a></code>
280
+ - <code title="post /v1/scenarios/{id}/archive">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">archive</a>(id) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
280
281
  - <code title="get /v1/scenarios/list_public">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">SyncScenariosCursorIDPage[ScenarioView]</a></code>
281
282
  - <code title="post /v1/scenarios/start_run">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">start_run</a>(\*\*<a href="src/runloop_api_client/types/scenario_start_run_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
282
283
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "1.8.0"
3
+ version = "1.9.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -152,6 +152,7 @@ class BaseAPIResponse(Generic[R]):
152
152
  ),
153
153
  response=self.http_response,
154
154
  client=cast(Any, self._client),
155
+ options=self._options,
155
156
  ),
156
157
  )
157
158
 
@@ -162,6 +163,7 @@ class BaseAPIResponse(Generic[R]):
162
163
  cast_to=extract_stream_chunk_type(self._stream_cls),
163
164
  response=self.http_response,
164
165
  client=cast(Any, self._client),
166
+ options=self._options,
165
167
  ),
166
168
  )
167
169
 
@@ -175,6 +177,7 @@ class BaseAPIResponse(Generic[R]):
175
177
  cast_to=cast_to,
176
178
  response=self.http_response,
177
179
  client=cast(Any, self._client),
180
+ options=self._options,
178
181
  ),
179
182
  )
180
183
 
@@ -32,6 +32,7 @@ from ._exceptions import APIStatusError, APITimeoutError
32
32
 
33
33
  if TYPE_CHECKING:
34
34
  from ._client import Runloop, AsyncRunloop
35
+ from ._models import FinalRequestOptions
35
36
 
36
37
 
37
38
  _T = TypeVar("_T")
@@ -41,7 +42,7 @@ class Stream(Generic[_T]):
41
42
  """Provides the core interface to iterate over a synchronous stream response."""
42
43
 
43
44
  response: httpx.Response
44
-
45
+ _options: Optional[FinalRequestOptions] = None
45
46
  _decoder: SSEBytesDecoder
46
47
 
47
48
  def __init__(
@@ -50,10 +51,12 @@ class Stream(Generic[_T]):
50
51
  cast_to: type[_T],
51
52
  response: httpx.Response,
52
53
  client: Runloop,
54
+ options: Optional[FinalRequestOptions] = None,
53
55
  ) -> None:
54
56
  self.response = response
55
57
  self._cast_to = cast_to
56
58
  self._client = client
59
+ self._options = options
57
60
  self._decoder = client._make_sse_decoder()
58
61
  self._iterator = self.__stream__()
59
62
 
@@ -114,7 +117,7 @@ class AsyncStream(Generic[_T]):
114
117
  """Provides the core interface to iterate over an asynchronous stream response."""
115
118
 
116
119
  response: httpx.Response
117
-
120
+ _options: Optional[FinalRequestOptions] = None
118
121
  _decoder: SSEDecoder | SSEBytesDecoder
119
122
 
120
123
  def __init__(
@@ -123,10 +126,12 @@ class AsyncStream(Generic[_T]):
123
126
  cast_to: type[_T],
124
127
  response: httpx.Response,
125
128
  client: AsyncRunloop,
129
+ options: Optional[FinalRequestOptions] = None,
126
130
  ) -> None:
127
131
  self.response = response
128
132
  self._cast_to = cast_to
129
133
  self._client = client
134
+ self._options = options
130
135
  self._decoder = client._make_sse_decoder()
131
136
  self._iterator = self.__stream__()
132
137
 
@@ -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.8.0" # x-release-please-version
4
+ __version__ = "1.9.0" # x-release-please-version
@@ -24,6 +24,7 @@ from ...types import (
24
24
  devbox_create_params,
25
25
  devbox_update_params,
26
26
  devbox_execute_params,
27
+ devbox_shutdown_params,
27
28
  devbox_upload_file_params,
28
29
  devbox_execute_sync_params,
29
30
  devbox_create_tunnel_params,
@@ -806,6 +807,7 @@ class DevboxesResource(SyncAPIResource):
806
807
  id: str,
807
808
  *,
808
809
  auth_mode: Optional[Literal["open", "authenticated"]] | Omit = omit,
810
+ http_keep_alive: Optional[bool] | Omit = omit,
809
811
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
810
812
  # The extra values given here take precedence over values defined on the client or passed to this method.
811
813
  extra_headers: Headers | None = None,
@@ -825,6 +827,9 @@ class DevboxesResource(SyncAPIResource):
825
827
  Args:
826
828
  auth_mode: Authentication mode for the tunnel. Defaults to 'public' if not specified.
827
829
 
830
+ http_keep_alive: When true, HTTP traffic through the tunnel counts as activity for idle lifecycle
831
+ policies, resetting the idle timer. Defaults to true if not specified.
832
+
828
833
  extra_headers: Send extra headers
829
834
 
830
835
  extra_query: Add additional query parameters to the request
@@ -839,7 +844,13 @@ class DevboxesResource(SyncAPIResource):
839
844
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
840
845
  return self._post(
841
846
  f"/v1/devboxes/{id}/enable_tunnel",
842
- body=maybe_transform({"auth_mode": auth_mode}, devbox_enable_tunnel_params.DevboxEnableTunnelParams),
847
+ body=maybe_transform(
848
+ {
849
+ "auth_mode": auth_mode,
850
+ "http_keep_alive": http_keep_alive,
851
+ },
852
+ devbox_enable_tunnel_params.DevboxEnableTunnelParams,
853
+ ),
843
854
  options=make_request_options(
844
855
  extra_headers=extra_headers,
845
856
  extra_query=extra_query,
@@ -1415,6 +1426,7 @@ class DevboxesResource(SyncAPIResource):
1415
1426
  self,
1416
1427
  id: str,
1417
1428
  *,
1429
+ force: str | Omit = omit,
1418
1430
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1419
1431
  # The extra values given here take precedence over values defined on the client or passed to this method.
1420
1432
  extra_headers: Headers | None = None,
@@ -1427,9 +1439,13 @@ class DevboxesResource(SyncAPIResource):
1427
1439
 
1428
1440
  This will permanently stop the Devbox. If you want to
1429
1441
  save the state of the Devbox, you should take a snapshot before shutting down or
1430
- should suspend the Devbox instead of shutting down.
1442
+ should suspend the Devbox instead of shutting down. If the Devbox has any
1443
+ in-progress snapshots, the shutdown will be rejected with a 409 Conflict unless
1444
+ force=true is specified.
1431
1445
 
1432
1446
  Args:
1447
+ force: If true, force shutdown even if snapshots are in progress. Defaults to false.
1448
+
1433
1449
  extra_headers: Send extra headers
1434
1450
 
1435
1451
  extra_query: Add additional query parameters to the request
@@ -1450,6 +1466,7 @@ class DevboxesResource(SyncAPIResource):
1450
1466
  extra_body=extra_body,
1451
1467
  timeout=timeout,
1452
1468
  idempotency_key=idempotency_key,
1469
+ query=maybe_transform({"force": force}, devbox_shutdown_params.DevboxShutdownParams),
1453
1470
  ),
1454
1471
  cast_to=DevboxView,
1455
1472
  )
@@ -2465,6 +2482,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
2465
2482
  id: str,
2466
2483
  *,
2467
2484
  auth_mode: Optional[Literal["open", "authenticated"]] | Omit = omit,
2485
+ http_keep_alive: Optional[bool] | Omit = omit,
2468
2486
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
2469
2487
  # The extra values given here take precedence over values defined on the client or passed to this method.
2470
2488
  extra_headers: Headers | None = None,
@@ -2484,6 +2502,9 @@ class AsyncDevboxesResource(AsyncAPIResource):
2484
2502
  Args:
2485
2503
  auth_mode: Authentication mode for the tunnel. Defaults to 'public' if not specified.
2486
2504
 
2505
+ http_keep_alive: When true, HTTP traffic through the tunnel counts as activity for idle lifecycle
2506
+ policies, resetting the idle timer. Defaults to true if not specified.
2507
+
2487
2508
  extra_headers: Send extra headers
2488
2509
 
2489
2510
  extra_query: Add additional query parameters to the request
@@ -2499,7 +2520,11 @@ class AsyncDevboxesResource(AsyncAPIResource):
2499
2520
  return await self._post(
2500
2521
  f"/v1/devboxes/{id}/enable_tunnel",
2501
2522
  body=await async_maybe_transform(
2502
- {"auth_mode": auth_mode}, devbox_enable_tunnel_params.DevboxEnableTunnelParams
2523
+ {
2524
+ "auth_mode": auth_mode,
2525
+ "http_keep_alive": http_keep_alive,
2526
+ },
2527
+ devbox_enable_tunnel_params.DevboxEnableTunnelParams,
2503
2528
  ),
2504
2529
  options=make_request_options(
2505
2530
  extra_headers=extra_headers,
@@ -3077,6 +3102,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
3077
3102
  self,
3078
3103
  id: str,
3079
3104
  *,
3105
+ force: str | Omit = omit,
3080
3106
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
3081
3107
  # The extra values given here take precedence over values defined on the client or passed to this method.
3082
3108
  extra_headers: Headers | None = None,
@@ -3089,9 +3115,13 @@ class AsyncDevboxesResource(AsyncAPIResource):
3089
3115
 
3090
3116
  This will permanently stop the Devbox. If you want to
3091
3117
  save the state of the Devbox, you should take a snapshot before shutting down or
3092
- should suspend the Devbox instead of shutting down.
3118
+ should suspend the Devbox instead of shutting down. If the Devbox has any
3119
+ in-progress snapshots, the shutdown will be rejected with a 409 Conflict unless
3120
+ force=true is specified.
3093
3121
 
3094
3122
  Args:
3123
+ force: If true, force shutdown even if snapshots are in progress. Defaults to false.
3124
+
3095
3125
  extra_headers: Send extra headers
3096
3126
 
3097
3127
  extra_query: Add additional query parameters to the request
@@ -3112,6 +3142,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
3112
3142
  extra_body=extra_body,
3113
3143
  timeout=timeout,
3114
3144
  idempotency_key=idempotency_key,
3145
+ query=await async_maybe_transform({"force": force}, devbox_shutdown_params.DevboxShutdownParams),
3115
3146
  ),
3116
3147
  cast_to=DevboxView,
3117
3148
  )
@@ -48,8 +48,10 @@ class NetworkPoliciesResource(SyncAPIResource):
48
48
  self,
49
49
  *,
50
50
  name: str,
51
+ allow_ai_gateway: Optional[bool] | Omit = omit,
51
52
  allow_all: Optional[bool] | Omit = omit,
52
53
  allow_devbox_to_devbox: Optional[bool] | Omit = omit,
54
+ allow_mcp_gateway: Optional[bool] | Omit = omit,
53
55
  allowed_hostnames: Optional[SequenceNotStr[str]] | Omit = omit,
54
56
  description: Optional[str] | Omit = omit,
55
57
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -69,6 +71,9 @@ class NetworkPoliciesResource(SyncAPIResource):
69
71
  name: The human-readable name for the NetworkPolicy. Must be unique within the
70
72
  account.
71
73
 
74
+ allow_ai_gateway: (Optional) If true, allows devbox egress to the AI credential gateway for
75
+ credential proxying. Defaults to false.
76
+
72
77
  allow_all: (Optional) If true, all egress traffic is allowed (ALLOW_ALL policy). Defaults
73
78
  to false.
74
79
 
@@ -76,6 +81,9 @@ class NetworkPoliciesResource(SyncAPIResource):
76
81
  tunnels. Defaults to false. If allow_all is true, this is automatically set to
77
82
  true.
78
83
 
84
+ allow_mcp_gateway: (Optional) If true, allows devbox egress to the MCP hub for MCP server access.
85
+ Defaults to false.
86
+
79
87
  allowed_hostnames: (Optional) DNS-based allow list with wildcard support. Examples: ['github.com',
80
88
  '*.npmjs.org'].
81
89
 
@@ -96,8 +104,10 @@ class NetworkPoliciesResource(SyncAPIResource):
96
104
  body=maybe_transform(
97
105
  {
98
106
  "name": name,
107
+ "allow_ai_gateway": allow_ai_gateway,
99
108
  "allow_all": allow_all,
100
109
  "allow_devbox_to_devbox": allow_devbox_to_devbox,
110
+ "allow_mcp_gateway": allow_mcp_gateway,
101
111
  "allowed_hostnames": allowed_hostnames,
102
112
  "description": description,
103
113
  },
@@ -150,8 +160,10 @@ class NetworkPoliciesResource(SyncAPIResource):
150
160
  self,
151
161
  id: str,
152
162
  *,
163
+ allow_ai_gateway: Optional[bool] | Omit = omit,
153
164
  allow_all: Optional[bool] | Omit = omit,
154
165
  allow_devbox_to_devbox: Optional[bool] | Omit = omit,
166
+ allow_mcp_gateway: Optional[bool] | Omit = omit,
155
167
  allowed_hostnames: Optional[SequenceNotStr[str]] | Omit = omit,
156
168
  description: Optional[str] | Omit = omit,
157
169
  name: Optional[str] | Omit = omit,
@@ -168,10 +180,14 @@ class NetworkPoliciesResource(SyncAPIResource):
168
180
  All fields are optional.
169
181
 
170
182
  Args:
183
+ allow_ai_gateway: If true, allows devbox egress to the AI credential gateway.
184
+
171
185
  allow_all: If true, all egress traffic is allowed (ALLOW_ALL policy).
172
186
 
173
187
  allow_devbox_to_devbox: If true, allows traffic between the account's own devboxes via tunnels.
174
188
 
189
+ allow_mcp_gateway: If true, allows devbox egress to the MCP hub.
190
+
175
191
  allowed_hostnames: Updated DNS-based allow list with wildcard support. Examples: ['github.com',
176
192
  '*.npmjs.org'].
177
193
 
@@ -195,8 +211,10 @@ class NetworkPoliciesResource(SyncAPIResource):
195
211
  f"/v1/network-policies/{id}",
196
212
  body=maybe_transform(
197
213
  {
214
+ "allow_ai_gateway": allow_ai_gateway,
198
215
  "allow_all": allow_all,
199
216
  "allow_devbox_to_devbox": allow_devbox_to_devbox,
217
+ "allow_mcp_gateway": allow_mcp_gateway,
200
218
  "allowed_hostnames": allowed_hostnames,
201
219
  "description": description,
202
220
  "name": name,
@@ -334,8 +352,10 @@ class AsyncNetworkPoliciesResource(AsyncAPIResource):
334
352
  self,
335
353
  *,
336
354
  name: str,
355
+ allow_ai_gateway: Optional[bool] | Omit = omit,
337
356
  allow_all: Optional[bool] | Omit = omit,
338
357
  allow_devbox_to_devbox: Optional[bool] | Omit = omit,
358
+ allow_mcp_gateway: Optional[bool] | Omit = omit,
339
359
  allowed_hostnames: Optional[SequenceNotStr[str]] | Omit = omit,
340
360
  description: Optional[str] | Omit = omit,
341
361
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -355,6 +375,9 @@ class AsyncNetworkPoliciesResource(AsyncAPIResource):
355
375
  name: The human-readable name for the NetworkPolicy. Must be unique within the
356
376
  account.
357
377
 
378
+ allow_ai_gateway: (Optional) If true, allows devbox egress to the AI credential gateway for
379
+ credential proxying. Defaults to false.
380
+
358
381
  allow_all: (Optional) If true, all egress traffic is allowed (ALLOW_ALL policy). Defaults
359
382
  to false.
360
383
 
@@ -362,6 +385,9 @@ class AsyncNetworkPoliciesResource(AsyncAPIResource):
362
385
  tunnels. Defaults to false. If allow_all is true, this is automatically set to
363
386
  true.
364
387
 
388
+ allow_mcp_gateway: (Optional) If true, allows devbox egress to the MCP hub for MCP server access.
389
+ Defaults to false.
390
+
365
391
  allowed_hostnames: (Optional) DNS-based allow list with wildcard support. Examples: ['github.com',
366
392
  '*.npmjs.org'].
367
393
 
@@ -382,8 +408,10 @@ class AsyncNetworkPoliciesResource(AsyncAPIResource):
382
408
  body=await async_maybe_transform(
383
409
  {
384
410
  "name": name,
411
+ "allow_ai_gateway": allow_ai_gateway,
385
412
  "allow_all": allow_all,
386
413
  "allow_devbox_to_devbox": allow_devbox_to_devbox,
414
+ "allow_mcp_gateway": allow_mcp_gateway,
387
415
  "allowed_hostnames": allowed_hostnames,
388
416
  "description": description,
389
417
  },
@@ -436,8 +464,10 @@ class AsyncNetworkPoliciesResource(AsyncAPIResource):
436
464
  self,
437
465
  id: str,
438
466
  *,
467
+ allow_ai_gateway: Optional[bool] | Omit = omit,
439
468
  allow_all: Optional[bool] | Omit = omit,
440
469
  allow_devbox_to_devbox: Optional[bool] | Omit = omit,
470
+ allow_mcp_gateway: Optional[bool] | Omit = omit,
441
471
  allowed_hostnames: Optional[SequenceNotStr[str]] | Omit = omit,
442
472
  description: Optional[str] | Omit = omit,
443
473
  name: Optional[str] | Omit = omit,
@@ -454,10 +484,14 @@ class AsyncNetworkPoliciesResource(AsyncAPIResource):
454
484
  All fields are optional.
455
485
 
456
486
  Args:
487
+ allow_ai_gateway: If true, allows devbox egress to the AI credential gateway.
488
+
457
489
  allow_all: If true, all egress traffic is allowed (ALLOW_ALL policy).
458
490
 
459
491
  allow_devbox_to_devbox: If true, allows traffic between the account's own devboxes via tunnels.
460
492
 
493
+ allow_mcp_gateway: If true, allows devbox egress to the MCP hub.
494
+
461
495
  allowed_hostnames: Updated DNS-based allow list with wildcard support. Examples: ['github.com',
462
496
  '*.npmjs.org'].
463
497
 
@@ -481,8 +515,10 @@ class AsyncNetworkPoliciesResource(AsyncAPIResource):
481
515
  f"/v1/network-policies/{id}",
482
516
  body=await async_maybe_transform(
483
517
  {
518
+ "allow_ai_gateway": allow_ai_gateway,
484
519
  "allow_all": allow_all,
485
520
  "allow_devbox_to_devbox": allow_devbox_to_devbox,
521
+ "allow_mcp_gateway": allow_mcp_gateway,
486
522
  "allowed_hostnames": allowed_hostnames,
487
523
  "description": description,
488
524
  "name": name,
@@ -353,6 +353,48 @@ class ScenariosResource(SyncAPIResource):
353
353
  model=ScenarioView,
354
354
  )
355
355
 
356
+ def archive(
357
+ self,
358
+ id: str,
359
+ *,
360
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
361
+ # The extra values given here take precedence over values defined on the client or passed to this method.
362
+ extra_headers: Headers | None = None,
363
+ extra_query: Query | None = None,
364
+ extra_body: Body | None = None,
365
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
366
+ idempotency_key: str | None = None,
367
+ ) -> ScenarioView:
368
+ """Archive a previously created Scenario.
369
+
370
+ The scenario will no longer appear in
371
+ list endpoints but can still be retrieved by ID.
372
+
373
+ Args:
374
+ extra_headers: Send extra headers
375
+
376
+ extra_query: Add additional query parameters to the request
377
+
378
+ extra_body: Add additional JSON properties to the request
379
+
380
+ timeout: Override the client-level default timeout for this request, in seconds
381
+
382
+ idempotency_key: Specify a custom idempotency key for this request
383
+ """
384
+ if not id:
385
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
386
+ return self._post(
387
+ f"/v1/scenarios/{id}/archive",
388
+ options=make_request_options(
389
+ extra_headers=extra_headers,
390
+ extra_query=extra_query,
391
+ extra_body=extra_body,
392
+ timeout=timeout,
393
+ idempotency_key=idempotency_key,
394
+ ),
395
+ cast_to=ScenarioView,
396
+ )
397
+
356
398
  def list_public(
357
399
  self,
358
400
  *,
@@ -823,6 +865,48 @@ class AsyncScenariosResource(AsyncAPIResource):
823
865
  model=ScenarioView,
824
866
  )
825
867
 
868
+ async def archive(
869
+ self,
870
+ id: str,
871
+ *,
872
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
873
+ # The extra values given here take precedence over values defined on the client or passed to this method.
874
+ extra_headers: Headers | None = None,
875
+ extra_query: Query | None = None,
876
+ extra_body: Body | None = None,
877
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
878
+ idempotency_key: str | None = None,
879
+ ) -> ScenarioView:
880
+ """Archive a previously created Scenario.
881
+
882
+ The scenario will no longer appear in
883
+ list endpoints but can still be retrieved by ID.
884
+
885
+ Args:
886
+ extra_headers: Send extra headers
887
+
888
+ extra_query: Add additional query parameters to the request
889
+
890
+ extra_body: Add additional JSON properties to the request
891
+
892
+ timeout: Override the client-level default timeout for this request, in seconds
893
+
894
+ idempotency_key: Specify a custom idempotency key for this request
895
+ """
896
+ if not id:
897
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
898
+ return await self._post(
899
+ f"/v1/scenarios/{id}/archive",
900
+ options=make_request_options(
901
+ extra_headers=extra_headers,
902
+ extra_query=extra_query,
903
+ extra_body=extra_body,
904
+ timeout=timeout,
905
+ idempotency_key=idempotency_key,
906
+ ),
907
+ cast_to=ScenarioView,
908
+ )
909
+
826
910
  def list_public(
827
911
  self,
828
912
  *,
@@ -1005,6 +1089,9 @@ class ScenariosResourceWithRawResponse:
1005
1089
  self.list = to_raw_response_wrapper(
1006
1090
  scenarios.list,
1007
1091
  )
1092
+ self.archive = to_raw_response_wrapper(
1093
+ scenarios.archive,
1094
+ )
1008
1095
  self.list_public = to_raw_response_wrapper(
1009
1096
  scenarios.list_public,
1010
1097
  )
@@ -1037,6 +1124,9 @@ class AsyncScenariosResourceWithRawResponse:
1037
1124
  self.list = async_to_raw_response_wrapper(
1038
1125
  scenarios.list,
1039
1126
  )
1127
+ self.archive = async_to_raw_response_wrapper(
1128
+ scenarios.archive,
1129
+ )
1040
1130
  self.list_public = async_to_raw_response_wrapper(
1041
1131
  scenarios.list_public,
1042
1132
  )
@@ -1069,6 +1159,9 @@ class ScenariosResourceWithStreamingResponse:
1069
1159
  self.list = to_streamed_response_wrapper(
1070
1160
  scenarios.list,
1071
1161
  )
1162
+ self.archive = to_streamed_response_wrapper(
1163
+ scenarios.archive,
1164
+ )
1072
1165
  self.list_public = to_streamed_response_wrapper(
1073
1166
  scenarios.list_public,
1074
1167
  )
@@ -1101,6 +1194,9 @@ class AsyncScenariosResourceWithStreamingResponse:
1101
1194
  self.list = async_to_streamed_response_wrapper(
1102
1195
  scenarios.list,
1103
1196
  )
1197
+ self.archive = async_to_streamed_response_wrapper(
1198
+ scenarios.archive,
1199
+ )
1104
1200
  self.list_public = async_to_streamed_response_wrapper(
1105
1201
  scenarios.list_public,
1106
1202
  )
@@ -1,4 +1,4 @@
1
- from typing import Union, Callable, Optional
1
+ from typing import Union, Literal, Callable, Optional
2
2
  from typing_extensions import TypedDict
3
3
 
4
4
  from ..types import (
@@ -219,6 +219,9 @@ class ScenarioPreview(ScenarioView):
219
219
  input_context: InputContextPreview # type: ignore[assignment]
220
220
  """The input context for the Scenario."""
221
221
 
222
+ status: Optional[Literal["active", "archived"]] = None # type: ignore[assignment]
223
+ """Status is not set for previews."""
224
+
222
225
 
223
226
  class SDKBenchmarkCreateParams(BenchmarkCreateParams, LongRequestOptions):
224
227
  pass
@@ -21,7 +21,6 @@ class AsyncScorer:
21
21
  Example:
22
22
  >>> runloop = AsyncRunloopSDK()
23
23
  >>> scorer = await runloop.scorer.create(type="my_scorer", bash_script="echo 'score=1.0'")
24
- >>> await scorer.validate(scoring_context={"output": "test"})
25
24
  """
26
25
 
27
26
  def __init__(self, client: AsyncRunloop, scorer_id: str) -> None:
@@ -21,7 +21,6 @@ class Scorer:
21
21
  Example:
22
22
  >>> runloop = RunloopSDK()
23
23
  >>> scorer = runloop.scorer.create(type="my_scorer", bash_script="echo 'score=1.0'")
24
- >>> scorer.validate(scoring_context={"output": "test"})
25
24
  """
26
25
 
27
26
  def __init__(self, client: Runloop, scorer_id: str) -> None:
@@ -55,6 +55,7 @@ from .benchmark_list_params import BenchmarkListParams as BenchmarkListParams
55
55
  from .blueprint_list_params import BlueprintListParams as BlueprintListParams
56
56
  from .devbox_execute_params import DevboxExecuteParams as DevboxExecuteParams
57
57
  from .blueprint_preview_view import BlueprintPreviewView as BlueprintPreviewView
58
+ from .devbox_shutdown_params import DevboxShutdownParams as DevboxShutdownParams
58
59
  from .mcp_config_list_params import McpConfigListParams as McpConfigListParams
59
60
  from .object_download_params import ObjectDownloadParams as ObjectDownloadParams
60
61
  from .repository_list_params import RepositoryListParams as RepositoryListParams