runloop_api_client 1.7.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.7.0 → runloop_api_client-1.9.0}/CHANGELOG.md +45 -0
  3. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/CONTRIBUTING.md +1 -2
  4. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/PKG-INFO +1 -1
  5. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/api.md +2 -1
  6. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/pyproject.toml +1 -1
  7. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/requirements-dev.lock +9 -24
  8. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_response.py +3 -0
  9. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_streaming.py +7 -2
  10. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_compat.py +1 -1
  11. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_version.py +1 -1
  12. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/devboxes.py +39 -8
  13. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/network_policies.py +36 -0
  14. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/scenarios/scenarios.py +112 -0
  15. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/_types.py +4 -1
  16. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_scorer.py +0 -1
  17. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/scorer.py +0 -1
  18. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/__init__.py +1 -0
  19. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/agent_list_view.py +11 -5
  20. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_job_list_view.py +3 -3
  21. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_run_list_view.py +4 -4
  22. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_list_view.py +3 -3
  23. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_create_params.py +6 -0
  24. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +6 -0
  25. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_list_view.py +3 -3
  26. runloop_api_client-1.9.0/src/runloop_api_client/types/devbox_shutdown_params.py +12 -0
  27. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +4 -4
  28. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_snapshot_view.py +3 -0
  29. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_list_view.py +6 -3
  30. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_list_view.py +6 -3
  31. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_create_params.py +12 -0
  32. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_list_view.py +6 -3
  33. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_update_params.py +6 -0
  34. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_view.py +9 -0
  35. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_list_view.py +11 -5
  36. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_connection_list_view.py +4 -4
  37. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_create_params.py +3 -0
  38. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_definition_list_view.py +4 -4
  39. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_run_list_view.py +4 -4
  40. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_update_params.py +3 -0
  41. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_view.py +9 -0
  42. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_list_view.py +12 -6
  43. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/tunnel_view.py +6 -0
  44. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_devboxes.py +34 -10
  45. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_network_policies.py +8 -0
  46. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_scenarios.py +80 -0
  47. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_client.py +16 -0
  48. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/uv.lock +514 -422
  49. runloop_api_client-1.7.0/.release-please-manifest.json +0 -3
  50. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/.gitignore +0 -0
  51. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/LICENSE +0 -0
  52. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/README-SDK.md +0 -0
  53. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/README.md +0 -0
  54. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/SECURITY.md +0 -0
  55. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/bin/check-release-environment +0 -0
  56. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/bin/publish-pypi +0 -0
  57. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/examples/.keep +0 -0
  58. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/release-please-config.json +0 -0
  59. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop/lib/.keep +0 -0
  60. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/__init__.py +0 -0
  61. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_base_client.py +0 -0
  62. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_client.py +0 -0
  63. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_compat.py +0 -0
  64. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_constants.py +0 -0
  65. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_exceptions.py +0 -0
  66. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_files.py +0 -0
  67. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_models.py +0 -0
  68. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_qs.py +0 -0
  69. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_resource.py +0 -0
  70. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_types.py +0 -0
  71. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  72. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  73. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_json.py +0 -0
  74. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  75. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  76. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  77. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  78. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  79. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  80. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  81. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  82. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  83. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  84. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/.keep +0 -0
  85. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/__init__.py +0 -0
  86. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/_ignore.py +0 -0
  87. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/context_loader.py +0 -0
  88. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/polling.py +0 -0
  89. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  90. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/pagination.py +0 -0
  91. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/py.typed +0 -0
  92. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/__init__.py +0 -0
  93. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/agents.py +0 -0
  94. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
  95. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
  96. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/benchmarks.py +0 -0
  97. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  98. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  99. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  100. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  101. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  102. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  103. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  104. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/gateway_configs.py +0 -0
  105. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/mcp_configs.py +0 -0
  106. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/objects.py +0 -0
  107. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/repositories.py +0 -0
  108. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  109. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  110. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  111. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/resources/secrets.py +0 -0
  112. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/__init__.py +0 -0
  113. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
  114. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/agent.py +0 -0
  115. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_.py +0 -0
  116. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
  117. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
  118. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
  119. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  120. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  121. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_execution.py +0 -0
  122. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  123. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
  124. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  125. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  126. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
  127. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  128. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  129. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
  130. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/benchmark.py +0 -0
  131. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
  132. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
  133. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/devbox.py +0 -0
  134. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/execution.py +0 -0
  135. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
  136. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/gateway_config.py +0 -0
  137. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/network_policy.py +0 -0
  138. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/scenario.py +0 -0
  139. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
  140. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  141. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
  142. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/storage_object.py +0 -0
  143. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/sdk/sync.py +0 -0
  144. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
  145. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
  146. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/agent_view.py +0 -0
  147. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  148. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  149. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
  150. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
  151. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
  152. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  153. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  154. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
  155. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
  156. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  157. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  158. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  159. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
  160. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  161. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  162. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  163. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  164. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  165. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  166. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  167. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  168. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  169. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  170. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  171. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  172. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  173. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  174. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  175. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  176. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  177. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  178. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  179. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  180. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  181. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  182. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  183. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  184. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
  185. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  186. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  187. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  188. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  189. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  190. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  191. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  192. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  193. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  194. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  195. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  196. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  197. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  198. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  199. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  200. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  201. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  202. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  203. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  204. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  205. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  206. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  207. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  208. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  209. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  210. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  211. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  212. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  213. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  214. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  215. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  216. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  217. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  218. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
  219. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  220. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
  221. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/gateway_config_view.py +0 -0
  222. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/input_context.py +0 -0
  223. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  224. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  225. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  226. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
  227. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
  228. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
  229. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/mcp_config_view.py +0 -0
  230. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  231. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  232. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  233. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  234. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  235. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  236. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/object_view.py +0 -0
  237. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  238. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  239. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  240. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  241. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  242. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  243. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  244. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  245. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  246. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  247. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  248. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  249. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  250. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  251. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  252. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  253. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  254. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  255. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  256. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  257. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  258. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  259. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  260. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  261. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  262. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  263. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  264. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  265. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  266. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  267. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  268. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  269. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  270. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/secret_view.py +0 -0
  271. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  272. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  273. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  274. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  275. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  276. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  277. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/mount.py +0 -0
  278. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  279. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  280. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  281. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  282. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  283. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  284. {runloop_api_client-1.7.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.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  286. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  287. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  288. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  289. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/__init__.py +0 -0
  290. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/__init__.py +0 -0
  291. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/__init__.py +0 -0
  292. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  293. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  294. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  295. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  296. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  297. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/scenarios/__init__.py +0 -0
  298. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  299. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  300. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_agents.py +0 -0
  301. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_benchmark_jobs.py +0 -0
  302. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_benchmark_runs.py +0 -0
  303. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_benchmarks.py +0 -0
  304. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_blueprints.py +0 -0
  305. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_gateway_configs.py +0 -0
  306. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_mcp_configs.py +0 -0
  307. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_objects.py +0 -0
  308. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_repositories.py +0 -0
  309. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/api_resources/test_secrets.py +0 -0
  310. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/conftest.py +0 -0
  311. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sample_file.txt +0 -0
  312. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/__init__.py +0 -0
  313. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/__init__.py +0 -0
  314. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/conftest.py +0 -0
  315. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/test_core.py +0 -0
  316. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  317. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  318. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
  319. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/conftest.py +0 -0
  320. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/__init__.py +0 -0
  321. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/conftest.py +0 -0
  322. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/test_core.py +0 -0
  323. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
  324. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/test_interfaces.py +0 -0
  325. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/devbox/test_streaming.py +0 -0
  326. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_agent.py +0 -0
  327. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_agent.py +0 -0
  328. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_benchmark.py +0 -0
  329. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_benchmark_run.py +0 -0
  330. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_blueprint.py +0 -0
  331. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_execution.py +0 -0
  332. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_execution_result.py +0 -0
  333. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_gateway_config.py +0 -0
  334. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_network_policy.py +0 -0
  335. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_ops.py +0 -0
  336. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_scenario.py +0 -0
  337. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_scenario_builder.py +0 -0
  338. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_scenario_run.py +0 -0
  339. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_scorer.py +0 -0
  340. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_snapshot.py +0 -0
  341. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_async_storage_object.py +0 -0
  342. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_benchmark.py +0 -0
  343. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_benchmark_run.py +0 -0
  344. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_blueprint.py +0 -0
  345. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_execution.py +0 -0
  346. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_execution_result.py +0 -0
  347. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_gateway_config.py +0 -0
  348. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_helpers.py +0 -0
  349. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_network_policy.py +0 -0
  350. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_ops.py +0 -0
  351. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_scenario.py +0 -0
  352. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_scenario_builder.py +0 -0
  353. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_scenario_run.py +0 -0
  354. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_scorer.py +0 -0
  355. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_snapshot.py +0 -0
  356. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/sdk/test_storage_object.py +0 -0
  357. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/README.md +0 -0
  358. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/__init__.py +0 -0
  359. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/conftest.py +0 -0
  360. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/README.md +0 -0
  361. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/__init__.py +0 -0
  362. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/conftest.py +0 -0
  363. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_agent.py +0 -0
  364. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
  365. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
  366. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  367. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  368. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
  369. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  370. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  371. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  372. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  373. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  374. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  375. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_benchmark.py +0 -0
  376. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
  377. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_devbox.py +0 -0
  378. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_gateway_config.py +0 -0
  379. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_network_policy.py +0 -0
  380. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_scenario.py +0 -0
  381. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_scorer.py +0 -0
  382. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_sdk.py +0 -0
  383. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
  384. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
  385. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/test_blueprints.py +0 -0
  386. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/test_devboxes.py +0 -0
  387. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/test_executions.py +0 -0
  388. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  389. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/test_snapshots.py +0 -0
  390. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/smoketests/utils.py +0 -0
  391. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_deepcopy.py +0 -0
  392. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_extract_files.py +0 -0
  393. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_files.py +0 -0
  394. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_models.py +0 -0
  395. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_polling.py +0 -0
  396. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_qs.py +0 -0
  397. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_required_args.py +0 -0
  398. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_response.py +0 -0
  399. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_streaming.py +0 -0
  400. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_transform.py +0 -0
  401. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_utils/test_context_loader.py +0 -0
  402. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_utils/test_datetime_parse.py +0 -0
  403. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_utils/test_json.py +0 -0
  404. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_utils/test_proxy.py +0 -0
  405. {runloop_api_client-1.7.0 → runloop_api_client-1.9.0}/tests/test_utils/test_typing.py +0 -0
  406. {runloop_api_client-1.7.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,50 @@
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
+
28
+ ## 1.8.0 (2026-02-12)
29
+
30
+ Full Changelog: [v1.7.0...v1.8.0](https://github.com/runloopai/api-client-python/compare/v1.7.0...v1.8.0)
31
+
32
+ ### Features
33
+
34
+ * **benchmarks:** scenario scoring timeout ([#7300](https://github.com/runloopai/api-client-python/issues/7300)) ([6615183](https://github.com/runloopai/api-client-python/commit/661518379a6d197127014932c0a015757e77aa0d))
35
+ * **devbox:** expose snapshot size (in bytes) ([#7444](https://github.com/runloopai/api-client-python/issues/7444)) ([b25c3f7](https://github.com/runloopai/api-client-python/commit/b25c3f772c62465cf6bb7fa34e7bc57c601eeb28))
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * remove duplicate operationId createDevboxTunnel in openapi ([#7397](https://github.com/runloopai/api-client-python/issues/7397)) ([bb2cd8f](https://github.com/runloopai/api-client-python/commit/bb2cd8f4248cc763966a66372e62c1d90e2aa626))
41
+
42
+
43
+ ### Chores
44
+
45
+ * **internal:** bump dependencies ([94e6c44](https://github.com/runloopai/api-client-python/commit/94e6c44f2b398fc498ae96c5b3e8e62da2b8bdf9))
46
+ * **internal:** fix lint error on Python 3.14 ([37ab1b7](https://github.com/runloopai/api-client-python/commit/37ab1b7dbe3b852e9062d6a547510c8d38ee2c35))
47
+
3
48
  ## 1.7.0 (2026-02-05)
4
49
 
5
50
  Full Changelog: [v1.5.1...v1.7.0](https://github.com/runloopai/api-client-python/compare/v1.5.1...v1.7.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.7.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.7.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"
@@ -3,22 +3,18 @@
3
3
  -e .
4
4
  annotated-types==0.7.0
5
5
  # via pydantic
6
- anyio==4.12.0
6
+ anyio==4.12.1
7
7
  # via
8
8
  # httpx
9
9
  # runloop-api-client
10
10
  backports-asyncio-runner==1.2.0 ; python_full_version < '3.11'
11
11
  # via pytest-asyncio
12
- certifi==2025.11.12
12
+ certifi==2026.1.4
13
13
  # via
14
14
  # httpcore
15
15
  # httpx
16
16
  colorama==0.4.6 ; sys_platform == 'win32'
17
17
  # via pytest
18
- coverage==7.10.7 ; python_full_version < '3.10'
19
- # via pytest-cov
20
- coverage==7.13.0 ; python_full_version >= '3.10'
21
- # via pytest-cov
22
18
  dirty-equals==0.11
23
19
  distro==1.9.0
24
20
  # via runloop-api-client
@@ -40,7 +36,7 @@ idna==3.11
40
36
  # via
41
37
  # anyio
42
38
  # httpx
43
- importlib-metadata==8.7.0
39
+ importlib-metadata==8.7.1
44
40
  iniconfig==2.1.0 ; python_full_version < '3.10'
45
41
  # via pytest
46
42
  iniconfig==2.3.0 ; python_full_version >= '3.10'
@@ -54,16 +50,14 @@ mdurl==0.1.2
54
50
  mypy==1.17.0
55
51
  mypy-extensions==1.1.0
56
52
  # via mypy
57
- nodeenv==1.9.1
53
+ nodeenv==1.10.0
58
54
  # via pyright
59
55
  packaging==25.0
60
56
  # via pytest
61
- pathspec==0.12.1
57
+ pathspec==1.0.3
62
58
  # via mypy
63
59
  pluggy==1.6.0
64
- # via
65
- # pytest
66
- # pytest-cov
60
+ # via pytest
67
61
  pydantic==2.12.5
68
62
  # via runloop-api-client
69
63
  pydantic-core==2.41.5
@@ -76,34 +70,27 @@ pyright==1.1.399
76
70
  pytest==8.4.2 ; python_full_version < '3.10'
77
71
  # via
78
72
  # pytest-asyncio
79
- # pytest-cov
80
- # pytest-timeout
81
73
  # pytest-xdist
82
74
  pytest==9.0.2 ; python_full_version >= '3.10'
83
75
  # via
84
76
  # pytest-asyncio
85
- # pytest-cov
86
- # pytest-timeout
87
77
  # pytest-xdist
88
78
  pytest-asyncio==1.2.0 ; python_full_version < '3.10'
89
79
  pytest-asyncio==1.3.0 ; python_full_version >= '3.10'
90
- pytest-cov==7.0.0
91
- pytest-timeout==2.4.0
92
80
  pytest-xdist==3.8.0
93
81
  python-dateutil==2.9.0.post0 ; python_full_version < '3.10'
94
82
  # via time-machine
95
83
  respx==0.22.0
96
84
  rich==14.2.0
97
- ruff==0.14.9
85
+ ruff==0.14.13
98
86
  six==1.17.0 ; python_full_version < '3.10'
99
87
  # via python-dateutil
100
88
  sniffio==1.3.1
101
89
  # via runloop-api-client
102
90
  time-machine==2.19.0 ; python_full_version < '3.10'
103
- time-machine==3.1.0 ; python_full_version >= '3.10'
104
- tomli==2.3.0 ; python_full_version <= '3.11'
91
+ time-machine==3.2.0 ; python_full_version >= '3.10'
92
+ tomli==2.4.0 ; python_full_version < '3.11'
105
93
  # via
106
- # coverage
107
94
  # mypy
108
95
  # pytest
109
96
  typing-extensions==4.15.0
@@ -119,7 +106,5 @@ typing-extensions==4.15.0
119
106
  # typing-inspection
120
107
  typing-inspection==0.4.2
121
108
  # via pydantic
122
- uuid-utils==0.12.0
123
- # via runloop-api-client
124
109
  zipp==3.23.0
125
110
  # via importlib-metadata
@@ -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
 
@@ -26,7 +26,7 @@ def is_union(tp: Optional[Type[Any]]) -> bool:
26
26
  else:
27
27
  import types
28
28
 
29
- return tp is Union or tp is types.UnionType
29
+ return tp is Union or tp is types.UnionType # type: ignore[comparison-overlap]
30
30
 
31
31
 
32
32
  def is_typeddict(tp: Type[Any]) -> bool:
@@ -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.7.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,
@@ -814,17 +816,20 @@ class DevboxesResource(SyncAPIResource):
814
816
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
815
817
  idempotency_key: str | None = None,
816
818
  ) -> TunnelView:
817
- """Create a V2 tunnel for an existing running Devbox.
819
+ """Enable a V2 tunnel for an existing running Devbox.
818
820
 
819
821
  Tunnels provide encrypted
820
822
  URL-based access to the Devbox without exposing internal IDs. The tunnel URL
821
- format is: https://{port}-{tunnel_key}.tunnel.runloop.ai
823
+ format is: https://&#123;port&#125;-&#123;tunnel_key&#125;.tunnel.runloop.ai
822
824
 
823
825
  Each Devbox can have one tunnel.
824
826
 
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,
@@ -2473,17 +2491,20 @@ class AsyncDevboxesResource(AsyncAPIResource):
2473
2491
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
2474
2492
  idempotency_key: str | None = None,
2475
2493
  ) -> TunnelView:
2476
- """Create a V2 tunnel for an existing running Devbox.
2494
+ """Enable a V2 tunnel for an existing running Devbox.
2477
2495
 
2478
2496
  Tunnels provide encrypted
2479
2497
  URL-based access to the Devbox without exposing internal IDs. The tunnel URL
2480
- format is: https://{port}-{tunnel_key}.tunnel.runloop.ai
2498
+ format is: https://&#123;port&#125;-&#123;tunnel_key&#125;.tunnel.runloop.ai
2481
2499
 
2482
2500
  Each Devbox can have one tunnel.
2483
2501
 
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,