runloop-api-client 1.31.0__tar.gz → 2.0.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 (490) hide show
  1. runloop_api_client-2.0.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/CHANGELOG.md +72 -0
  3. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/CONTRIBUTING.md +12 -0
  4. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/PKG-INFO +47 -25
  5. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/README-SDK.md +43 -3
  6. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/README.md +40 -21
  7. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/api.md +5 -125
  8. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/pyproject.toml +17 -4
  9. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/release-please-config.json +7 -2
  10. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_client.py +0 -152
  11. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_version.py +1 -1
  12. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/pagination.py +0 -375
  13. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/__init__.py +0 -56
  14. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/axons/axons.py +176 -16
  15. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/devboxes/devboxes.py +8 -4
  16. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/devboxes/executions.py +12 -4
  17. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/gateway_configs.py +6 -6
  18. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/mcp_configs.py +4 -4
  19. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/network_policies.py +4 -4
  20. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/secrets.py +315 -21
  21. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/__init__.py +4 -38
  22. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/_types.py +1 -89
  23. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_.py +9 -181
  24. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_execution.py +33 -0
  25. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_secret.py +13 -7
  26. runloop_api_client-2.0.0/src/runloop_api_client/sdk/async_secret_by_id.py +44 -0
  27. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_storage_object.py +30 -5
  28. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/execution.py +33 -0
  29. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/secret.py +14 -8
  30. runloop_api_client-2.0.0/src/runloop_api_client/sdk/secret_by_id.py +44 -0
  31. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/storage_object.py +30 -5
  32. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/sync.py +9 -181
  33. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/__init__.py +2 -40
  34. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axon_create_params.py +4 -1
  35. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axon_list_params.py +12 -1
  36. runloop_api_client-2.0.0/src/runloop_api_client/types/axon_update_params.py +16 -0
  37. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axon_view.py +7 -1
  38. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_create_params.py +15 -3
  39. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +5 -1
  40. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_view.py +1 -1
  41. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/gateway_config_create_params.py +1 -1
  42. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/gateway_config_update_params.py +1 -1
  43. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/gateway_config_view.py +1 -4
  44. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/mcp_config_create_params.py +1 -1
  45. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/mcp_config_update_params.py +1 -1
  46. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/mcp_config_view.py +1 -1
  47. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/network_policy_create_params.py +1 -1
  48. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/network_policy_view.py +1 -1
  49. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/object_view.py +7 -1
  50. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/scope_entry_view.py +0 -2
  51. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/scope_entry_view_param.py +0 -2
  52. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/secret_create_params.py +1 -1
  53. runloop_api_client-2.0.0/src/runloop_api_client/types/secret_update_by_id_params.py +16 -0
  54. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/secret_view.py +1 -4
  55. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/__init__.py +0 -1
  56. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/launch_parameters.py +1 -1
  57. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -1
  58. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +1 -1
  59. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_axons.py +98 -0
  60. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_secrets.py +236 -0
  61. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/conftest.py +2 -89
  62. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/devbox/test_edge_cases.py +2 -2
  63. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_ops.py +17 -264
  64. runloop_api_client-2.0.0/tests/sdk/test_async_secret.py +47 -0
  65. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_storage_object.py +0 -28
  66. runloop_api_client-2.0.0/tests/sdk/test_execution_stdin_transport.py +86 -0
  67. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_ops.py +17 -250
  68. runloop_api_client-2.0.0/tests/sdk/test_secret.py +47 -0
  69. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_storage_object.py +0 -69
  70. runloop_api_client-2.0.0/tests/sdk/test_storage_upload_transport.py +204 -0
  71. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/README.md +1 -1
  72. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_devbox.py +16 -0
  73. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_sdk.py +0 -2
  74. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_secret.py +42 -47
  75. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_devbox.py +16 -0
  76. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_sdk.py +0 -2
  77. runloop_api_client-2.0.0/tests/smoketests/sdk/test_secret.py +125 -0
  78. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/uv.lock +1 -1
  79. runloop_api_client-1.31.0/.release-please-manifest.json +0 -3
  80. runloop_api_client-1.31.0/src/runloop_api_client/resources/benchmark_jobs.py +0 -412
  81. runloop_api_client-1.31.0/src/runloop_api_client/resources/benchmark_runs.py +0 -645
  82. runloop_api_client-1.31.0/src/runloop_api_client/resources/benchmarks.py +0 -1129
  83. runloop_api_client-1.31.0/src/runloop_api_client/resources/scenarios/__init__.py +0 -47
  84. runloop_api_client-1.31.0/src/runloop_api_client/resources/scenarios/runs.py +0 -991
  85. runloop_api_client-1.31.0/src/runloop_api_client/resources/scenarios/scenarios.py +0 -1253
  86. runloop_api_client-1.31.0/src/runloop_api_client/resources/scenarios/scorers.py +0 -527
  87. runloop_api_client-1.31.0/src/runloop_api_client/sdk/async_benchmark.py +0 -169
  88. runloop_api_client-1.31.0/src/runloop_api_client/sdk/async_benchmark_run.py +0 -127
  89. runloop_api_client-1.31.0/src/runloop_api_client/sdk/async_scenario.py +0 -118
  90. runloop_api_client-1.31.0/src/runloop_api_client/sdk/async_scenario_builder.py +0 -480
  91. runloop_api_client-1.31.0/src/runloop_api_client/sdk/async_scenario_run.py +0 -242
  92. runloop_api_client-1.31.0/src/runloop_api_client/sdk/async_scorer.py +0 -66
  93. runloop_api_client-1.31.0/src/runloop_api_client/sdk/benchmark.py +0 -167
  94. runloop_api_client-1.31.0/src/runloop_api_client/sdk/benchmark_run.py +0 -127
  95. runloop_api_client-1.31.0/src/runloop_api_client/sdk/scenario.py +0 -118
  96. runloop_api_client-1.31.0/src/runloop_api_client/sdk/scenario_builder.py +0 -480
  97. runloop_api_client-1.31.0/src/runloop_api_client/sdk/scenario_run.py +0 -242
  98. runloop_api_client-1.31.0/src/runloop_api_client/sdk/scorer.py +0 -66
  99. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_create_params.py +0 -40
  100. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_definitions_params.py +0 -15
  101. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_job_create_params.py +0 -208
  102. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_job_list_params.py +0 -27
  103. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_job_list_view.py +0 -17
  104. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_job_view.py +0 -335
  105. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_list_params.py +0 -27
  106. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_list_public_params.py +0 -27
  107. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_run_list_params.py +0 -33
  108. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -27
  109. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_run_list_view.py +0 -17
  110. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_run_view.py +0 -58
  111. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_start_run_params.py +0 -29
  112. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_update_params.py +0 -42
  113. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -18
  114. runloop_api_client-1.31.0/src/runloop_api_client/types/benchmark_view.py +0 -56
  115. runloop_api_client-1.31.0/src/runloop_api_client/types/input_context.py +0 -19
  116. runloop_api_client-1.31.0/src/runloop_api_client/types/input_context_param.py +0 -20
  117. runloop_api_client-1.31.0/src/runloop_api_client/types/input_context_update_param.py +0 -16
  118. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_create_params.py +0 -59
  119. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_definition_list_view.py +0 -17
  120. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_environment.py +0 -33
  121. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_environment_param.py +0 -35
  122. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_list_params.py +0 -33
  123. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_list_public_params.py +0 -27
  124. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_run_list_view.py +0 -17
  125. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_run_view.py +0 -58
  126. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_start_run_params.py +0 -30
  127. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_update_params.py +0 -55
  128. runloop_api_client-1.31.0/src/runloop_api_client/types/scenario_view.py +0 -73
  129. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/__init__.py +0 -12
  130. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/run_list_params.py +0 -36
  131. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -18
  132. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -18
  133. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -24
  134. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -18
  135. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -18
  136. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -18
  137. runloop_api_client-1.31.0/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -18
  138. runloop_api_client-1.31.0/src/runloop_api_client/types/scoring_contract.py +0 -17
  139. runloop_api_client-1.31.0/src/runloop_api_client/types/scoring_contract_param.py +0 -19
  140. runloop_api_client-1.31.0/src/runloop_api_client/types/scoring_contract_result_view.py +0 -20
  141. runloop_api_client-1.31.0/src/runloop_api_client/types/scoring_contract_update_param.py +0 -15
  142. runloop_api_client-1.31.0/src/runloop_api_client/types/scoring_function.py +0 -157
  143. runloop_api_client-1.31.0/src/runloop_api_client/types/scoring_function_param.py +0 -153
  144. runloop_api_client-1.31.0/src/runloop_api_client/types/scoring_function_result_view.py +0 -25
  145. runloop_api_client-1.31.0/src/runloop_api_client/types/shared/run_profile.py +0 -41
  146. runloop_api_client-1.31.0/src/runloop_api_client/types/shared_params/run_profile.py +0 -42
  147. runloop_api_client-1.31.0/tests/api_resources/scenarios/__init__.py +0 -1
  148. runloop_api_client-1.31.0/tests/api_resources/scenarios/test_runs.py +0 -527
  149. runloop_api_client-1.31.0/tests/api_resources/scenarios/test_scorers.py +0 -336
  150. runloop_api_client-1.31.0/tests/api_resources/test_benchmark_jobs.py +0 -247
  151. runloop_api_client-1.31.0/tests/api_resources/test_benchmark_runs.py +0 -432
  152. runloop_api_client-1.31.0/tests/api_resources/test_benchmarks.py +0 -803
  153. runloop_api_client-1.31.0/tests/api_resources/test_scenarios.py +0 -1012
  154. runloop_api_client-1.31.0/tests/sdk/test_async_benchmark.py +0 -130
  155. runloop_api_client-1.31.0/tests/sdk/test_async_benchmark_run.py +0 -120
  156. runloop_api_client-1.31.0/tests/sdk/test_async_scenario.py +0 -121
  157. runloop_api_client-1.31.0/tests/sdk/test_async_scenario_builder.py +0 -292
  158. runloop_api_client-1.31.0/tests/sdk/test_async_scenario_run.py +0 -162
  159. runloop_api_client-1.31.0/tests/sdk/test_async_scorer.py +0 -51
  160. runloop_api_client-1.31.0/tests/sdk/test_benchmark.py +0 -122
  161. runloop_api_client-1.31.0/tests/sdk/test_benchmark_run.py +0 -114
  162. runloop_api_client-1.31.0/tests/sdk/test_scenario.py +0 -121
  163. runloop_api_client-1.31.0/tests/sdk/test_scenario_builder.py +0 -287
  164. runloop_api_client-1.31.0/tests/sdk/test_scenario_run.py +0 -157
  165. runloop_api_client-1.31.0/tests/sdk/test_scorer.py +0 -51
  166. runloop_api_client-1.31.0/tests/smoketests/sdk/test_async_benchmark.py +0 -192
  167. runloop_api_client-1.31.0/tests/smoketests/sdk/test_async_scenario.py +0 -260
  168. runloop_api_client-1.31.0/tests/smoketests/sdk/test_async_scorer.py +0 -103
  169. runloop_api_client-1.31.0/tests/smoketests/sdk/test_benchmark.py +0 -190
  170. runloop_api_client-1.31.0/tests/smoketests/sdk/test_scenario.py +0 -259
  171. runloop_api_client-1.31.0/tests/smoketests/sdk/test_scorer.py +0 -103
  172. runloop_api_client-1.31.0/tests/smoketests/sdk/test_secret.py +0 -145
  173. runloop_api_client-1.31.0/tests/smoketests/test_scenarios_benchmarks.py +0 -82
  174. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/.gitignore +0 -0
  175. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/AGENTS.md +0 -0
  176. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/CLAUDE.md +0 -0
  177. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/EXAMPLES.md +0 -0
  178. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/LICENSE +0 -0
  179. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/SECURITY.md +0 -0
  180. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/bin/check-release-environment +0 -0
  181. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/bin/publish-pypi +0 -0
  182. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/__init__.py +0 -0
  183. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/_harness.py +0 -0
  184. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/blueprint_with_build_context.py +0 -0
  185. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/devbox_from_blueprint_lifecycle.py +0 -0
  186. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/devbox_snapshot_resume.py +0 -0
  187. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/devbox_snapshots.py +0 -0
  188. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/devbox_tunnel.py +0 -0
  189. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/example_types.py +0 -0
  190. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/mcp_github_tools.py +0 -0
  191. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/registry.py +0 -0
  192. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/examples/secrets_with_devbox.py +0 -0
  193. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/requirements-dev.lock +0 -0
  194. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop/lib/.keep +0 -0
  195. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/__init__.py +0 -0
  196. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_base_client.py +0 -0
  197. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_compat.py +0 -0
  198. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_constants.py +0 -0
  199. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_exceptions.py +0 -0
  200. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_files.py +0 -0
  201. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_models.py +0 -0
  202. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_qs.py +0 -0
  203. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_resource.py +0 -0
  204. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_response.py +0 -0
  205. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_streaming.py +0 -0
  206. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_types.py +0 -0
  207. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  208. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  209. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  210. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_json.py +0 -0
  211. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  212. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_path.py +0 -0
  213. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  214. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  215. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  216. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  217. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  218. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  219. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  220. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  221. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  222. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/lib/.keep +0 -0
  223. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/lib/__init__.py +0 -0
  224. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/lib/_ignore.py +0 -0
  225. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/lib/context_loader.py +0 -0
  226. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/lib/polling.py +0 -0
  227. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  228. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/lib/wait_for_status.py +0 -0
  229. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/py.typed +0 -0
  230. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/accounts.py +0 -0
  231. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/agents.py +0 -0
  232. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/apikeys.py +0 -0
  233. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/axons/__init__.py +0 -0
  234. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/axons/events.py +0 -0
  235. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/axons/sql.py +0 -0
  236. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  237. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  238. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  239. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  240. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/objects.py +0 -0
  241. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/pty.py +0 -0
  242. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/resources/restricted_keys.py +0 -0
  243. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
  244. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/agent.py +0 -0
  245. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
  246. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_axon.py +0 -0
  247. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  248. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  249. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  250. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
  251. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
  252. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  253. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  254. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/axon.py +0 -0
  255. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
  256. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/devbox.py +0 -0
  257. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
  258. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/gateway_config.py +0 -0
  259. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/mcp_config.py +0 -0
  260. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/network_policy.py +0 -0
  261. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
  262. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/account_view.py +0 -0
  263. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
  264. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/agent_devbox_counts_view.py +0 -0
  265. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
  266. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/agent_list_public_params.py +0 -0
  267. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
  268. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/agent_view.py +0 -0
  269. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/allowed_cidr.py +0 -0
  270. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/allowed_cidr_param.py +0 -0
  271. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/api_key_created_view.py +0 -0
  272. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/apikey_create_params.py +0 -0
  273. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axon_event_view.py +0 -0
  274. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axon_list_view.py +0 -0
  275. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axon_publish_params.py +0 -0
  276. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axon_subscribe_sse_params.py +0 -0
  277. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/__init__.py +0 -0
  278. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/axon_event_list_view.py +0 -0
  279. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/event_list_params.py +0 -0
  280. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
  281. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_batch_result_view.py +0 -0
  282. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_column_meta_view.py +0 -0
  283. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
  284. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_query_result_view.py +0 -0
  285. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_result_meta_view.py +0 -0
  286. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
  287. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_step_error_view.py +0 -0
  288. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/axons/sql_step_result_view.py +0 -0
  289. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  290. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  291. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  292. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  293. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  294. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  295. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  296. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  297. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  298. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  299. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  300. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_create_gateway_token_params.py +0 -0
  301. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_create_mcp_token_params.py +0 -0
  302. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  303. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  304. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_eviction_event_view.py +0 -0
  305. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  306. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  307. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  308. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  309. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  310. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  311. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  312. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  313. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  314. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
  315. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  316. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
  317. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  318. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  319. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  320. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  321. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  322. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  323. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  324. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  325. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  326. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  327. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  328. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  329. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  330. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  331. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  332. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  333. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  334. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  335. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  336. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  337. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  338. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  339. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  340. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
  341. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/gateway_token_view.py +0 -0
  342. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
  343. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
  344. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/mcp_token_view.py +0 -0
  345. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  346. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
  347. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
  348. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  349. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  350. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  351. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  352. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  353. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/object_list_view.py +0 -0
  354. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/port_rule.py +0 -0
  355. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/port_rule_param.py +0 -0
  356. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/pty_connect_params.py +0 -0
  357. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/pty_connect_view.py +0 -0
  358. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/pty_control_params.py +0 -0
  359. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/pty_control_result_view.py +0 -0
  360. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/pty_tunnel_view.py +0 -0
  361. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/publish_result_view.py +0 -0
  362. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/restricted_key_create_params.py +0 -0
  363. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/restricted_key_created_view.py +0 -0
  364. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  365. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  366. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  367. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  368. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  369. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  370. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/auth_mechanism.py +0 -0
  371. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/broker_mount.py +0 -0
  372. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  373. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/custom_header.py +0 -0
  374. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/lifecycle_configuration.py +0 -0
  375. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/lifecycle_hooks.py +0 -0
  376. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/mount.py +0 -0
  377. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  378. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared/resume_triggers.py +0 -0
  379. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  380. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  381. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  382. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/auth_mechanism.py +0 -0
  383. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/broker_mount.py +0 -0
  384. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  385. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/custom_header.py +0 -0
  386. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/lifecycle_configuration.py +0 -0
  387. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/lifecycle_hooks.py +0 -0
  388. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  389. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  390. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/shared_params/resume_triggers.py +0 -0
  391. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/src/runloop_api_client/types/tunnel_view.py +0 -0
  392. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/__init__.py +0 -0
  393. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/__init__.py +0 -0
  394. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/axons/__init__.py +0 -0
  395. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/axons/test_events.py +0 -0
  396. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/axons/test_sql.py +0 -0
  397. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/devboxes/__init__.py +0 -0
  398. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  399. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  400. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  401. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_accounts.py +0 -0
  402. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_agents.py +0 -0
  403. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_apikeys.py +0 -0
  404. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_blueprints.py +0 -0
  405. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_devboxes.py +0 -0
  406. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_gateway_configs.py +0 -0
  407. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_mcp_configs.py +0 -0
  408. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_network_policies.py +0 -0
  409. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_objects.py +0 -0
  410. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_pty.py +0 -0
  411. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/api_resources/test_restricted_keys.py +0 -0
  412. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/conftest.py +0 -0
  413. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sample_file.txt +0 -0
  414. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/__init__.py +0 -0
  415. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/async_devbox/__init__.py +0 -0
  416. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/async_devbox/conftest.py +0 -0
  417. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/async_devbox/test_core.py +0 -0
  418. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  419. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  420. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
  421. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/devbox/__init__.py +0 -0
  422. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/devbox/conftest.py +0 -0
  423. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/devbox/test_core.py +0 -0
  424. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/devbox/test_interfaces.py +0 -0
  425. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/devbox/test_streaming.py +0 -0
  426. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_agent.py +0 -0
  427. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_agent.py +0 -0
  428. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_axon.py +0 -0
  429. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_blueprint.py +0 -0
  430. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_execution.py +0 -0
  431. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_execution_result.py +0 -0
  432. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_gateway_config.py +0 -0
  433. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_network_policy.py +0 -0
  434. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_async_snapshot.py +0 -0
  435. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_axon.py +0 -0
  436. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_blueprint.py +0 -0
  437. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_execution.py +0 -0
  438. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_execution_result.py +0 -0
  439. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_gateway_config.py +0 -0
  440. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_helpers.py +0 -0
  441. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_network_policy.py +0 -0
  442. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/sdk/test_snapshot.py +0 -0
  443. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/__init__.py +0 -0
  444. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/conftest.py +0 -0
  445. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/examples/__init__.py +0 -0
  446. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/examples/test_examples.py +0 -0
  447. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/README.md +0 -0
  448. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/__init__.py +0 -0
  449. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/conftest.py +0 -0
  450. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_agent.py +0 -0
  451. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
  452. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_axon.py +0 -0
  453. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  454. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
  455. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  456. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  457. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  458. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_axon.py +0 -0
  459. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
  460. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_gateway_config.py +0 -0
  461. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_mcp_config.py +0 -0
  462. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_network_policy.py +0 -0
  463. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
  464. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
  465. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/test_blueprints.py +0 -0
  466. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/test_devboxes.py +0 -0
  467. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/test_executions.py +0 -0
  468. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/test_snapshots.py +0 -0
  469. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/smoketests/utils.py +0 -0
  470. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_client.py +0 -0
  471. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_command_id.py +0 -0
  472. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_extract_files.py +0 -0
  473. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_files.py +0 -0
  474. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_h2_bulkhead_integration.py +0 -0
  475. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_models.py +0 -0
  476. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_polling.py +0 -0
  477. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_qs.py +0 -0
  478. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_required_args.py +0 -0
  479. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_response.py +0 -0
  480. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_shared_pool.py +0 -0
  481. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_streaming.py +0 -0
  482. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_transfer_client.py +0 -0
  483. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_transform.py +0 -0
  484. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_utils/test_context_loader.py +0 -0
  485. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_utils/test_datetime_parse.py +0 -0
  486. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_utils/test_json.py +0 -0
  487. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_utils/test_path.py +0 -0
  488. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_utils/test_proxy.py +0 -0
  489. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/test_utils/test_typing.py +0 -0
  490. {runloop_api_client-1.31.0 → runloop_api_client-2.0.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "2.0.0"
3
+ }
@@ -1,5 +1,77 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.0.0](https://github.com/runloopai/api-client-python/compare/v1.32.0...v2.0.0) (2026-10-08)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * remove benchmark identities and shared provisioning behavior
9
+ * **api:** remove the benchmark and scenario APIs
10
+ * **sdk:** drop InputContextPreview
11
+ * **sdk:** drop custom edits to generated benchmark and scenario files
12
+ * **sdk:** remove hosted benchmark and scenario wrappers
13
+
14
+ ### Features
15
+
16
+ * **api:** remove the benchmark and scenario APIs ([fe3aca1](https://github.com/runloopai/api-client-python/commit/fe3aca1d53f2f5ad3dc48da321bbb0d01c7a03f7))
17
+ * implement Azure storage, runtime secrets, and service lifecycle coverage ([6d46b7b](https://github.com/runloopai/api-client-python/commit/6d46b7b58c770af8fe548cb270530cd083d0f5b4))
18
+ * remove benchmark identities and shared provisioning behavior ([9922030](https://github.com/runloopai/api-client-python/commit/9922030a5057e3b01c656eb1ab708d1cff4d41e8))
19
+ * **sdk:** add sync and async execution stdin helpers ([#15](https://github.com/runloopai/api-client-python/issues/15)) ([3388fd6](https://github.com/runloopai/api-client-python/commit/3388fd659e62a4fa61ac9b120b4047555600175c))
20
+ * **sdk:** remove hosted benchmark and scenario wrappers ([f14c4c2](https://github.com/runloopai/api-client-python/commit/f14c4c2aad5ec0e76a21538fac5fab58d08f1964))
21
+ * **secrets:** add ID endpoints and latest-name updates ([9e3d9bd](https://github.com/runloopai/api-client-python/commit/9e3d9bd2fffb506151ddd4281a307037dd4525b8))
22
+ * **secrets:** add sync and async exact ID handles ([#11](https://github.com/runloopai/api-client-python/issues/11)) ([a930959](https://github.com/runloopai/api-client-python/commit/a9309592d5ede888cd8222c60bc10087d9ff41af))
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * **api:** allow CUSTOM_SIZE with 0.5 CPU cores ([4c0df1f](https://github.com/runloopai/api-client-python/commit/4c0df1f95fa7f4d1d10bb72b3ed274333139ef61))
28
+ * **api:** require a body when sending execution stdin ([0b5c51d](https://github.com/runloopai/api-client-python/commit/0b5c51d9037d51e31e8bacbd24943bee1ad69c72))
29
+ * **axon:** keep deleted axons readable and reject writes ([c95f902](https://github.com/runloopai/api-client-python/commit/c95f902f58844cc879c8e2a65d7aea7d6aa9ffdd))
30
+ * **mux:** return client errors for malformed entity ids ([aff1b73](https://github.com/runloopai/api-client-python/commit/aff1b7331d9acac55eab9bb304cb8fcee129d1a0))
31
+ * **mux:** validate scenario custom scorer references ([a3b50f5](https://github.com/runloopai/api-client-python/commit/a3b50f5b6e42753d497686818a72f484b0987811))
32
+ * **release:** keep the Python lockfile version consistent ([#12](https://github.com/runloopai/api-client-python/issues/12)) ([0369ef5](https://github.com/runloopai/api-client-python/commit/0369ef5d0cd1dceb619f1ad5fdf8b6fa460b76c9))
33
+ * require scoped handles in backend workflows ([e666db1](https://github.com/runloopai/api-client-python/commit/e666db1d07eaac7d39bc66368a4cdd9a16b74e19))
34
+ * **sdk:** drop custom edits to generated benchmark and scenario files ([a01ed98](https://github.com/runloopai/api-client-python/commit/a01ed98a7eedc32834528923a246450be3839745))
35
+ * **sdk:** drop InputContextPreview ([ed06423](https://github.com/runloopai/api-client-python/commit/ed064233c4b228b2a30b846414e22a9ca95ac91f))
36
+ * **storage:** preserve signed upload headers and isolate credentials ([#13](https://github.com/runloopai/api-client-python/issues/13)) ([386bd06](https://github.com/runloopai/api-client-python/commit/386bd06fc4dd5738f486a1fd808ef2fb6f3261eb))
37
+
38
+
39
+ ### Chores
40
+
41
+ * **security:** Improve security docs and tighten JWT audience ([53adee2](https://github.com/runloopai/api-client-python/commit/53adee2578b0040853a9d1a13e8c14b48b9738a8))
42
+
43
+
44
+ ### Documentation
45
+
46
+ * **sdk:** clarify that axon lists include deleted entries ([#14](https://github.com/runloopai/api-client-python/issues/14)) ([b9cdcc7](https://github.com/runloopai/api-client-python/commit/b9cdcc75fe73aa0543a31a0f9c5c1eafe923fdf5))
47
+
48
+ ## [1.32.0](https://github.com/runloopai/api-client-python/compare/v1.31.0...v1.32.0) (2026-09-08)
49
+
50
+
51
+ ### Features
52
+
53
+ * **axon:** accept user metadata at creation ([d2a4242](https://github.com/runloopai/api-client-python/commit/d2a42420be6a0b355a5511eefedc83044d7f11fe))
54
+ * **axon:** add axon metadata update endpoint ([f66ff15](https://github.com/runloopai/api-client-python/commit/f66ff15436bf522020ebc8dd5b891fd21f0081af))
55
+ * **axon:** filter axon lists by metadata and add metadata discovery endpoints ([a8dc212](https://github.com/runloopai/api-client-python/commit/a8dc212b840327a430d7f98f45172fd110f7a9f6))
56
+ * **stlc:** automate SDK generation ([a33c2a4](https://github.com/runloopai/api-client-python/commit/a33c2a470b6701da37a2c9869d9216d67daa0d2a))
57
+
58
+
59
+ ### Bug Fixes
60
+
61
+ * **ci:** authenticate SDK back-sync pushes ([#4](https://github.com/runloopai/api-client-python/issues/4)) ([04cae15](https://github.com/runloopai/api-client-python/commit/04cae15abe12cbf205b1d645592a89c9a530752f))
62
+ * **docs:** deploy documentation for releases ([#835](https://github.com/runloopai/api-client-python/issues/835)) ([68023fb](https://github.com/runloopai/api-client-python/commit/68023fb7c86dd5c9d23360fb8f4e680914d99e52))
63
+
64
+
65
+ ### Chores
66
+
67
+ * **stlc:** run Promote SDKs on a daily schedule ([582ab9d](https://github.com/runloopai/api-client-python/commit/582ab9d957684efadcf585f3632ec58084232bcc))
68
+ * **stlc:** run Promote SDKs on a daily schedule ([63c6ef1](https://github.com/runloopai/api-client-python/commit/63c6ef146a0ec0ea5cf5487f01e4ae51ca0e2b54))
69
+
70
+
71
+ ### Documentation
72
+
73
+ * **readme:** lead with the sandbox category and add package keywords ([#840](https://github.com/runloopai/api-client-python/issues/840)) ([8353d09](https://github.com/runloopai/api-client-python/commit/8353d097d2ae185cf9082f4c59db468a6fcd15c8))
74
+
3
75
  ## [1.31.0](https://github.com/runloopai/api-client-python/compare/v1.30.0...v1.31.0) (2026-08-25)
4
76
 
5
77
 
@@ -150,6 +150,18 @@ $ ./scripts/format
150
150
 
151
151
  ## Publishing and releases
152
152
 
153
+ The checked-in `uv.lock` must match `pyproject.toml` before dependency installation.
154
+ CI checks this with its pinned uv version (0.10.2). Refresh with that version of
155
+ `uv lock`, without upgrading dependencies, when changing package metadata.
156
+
157
+ Release Please updates the editable root package in `uv.lock` through its TOML
158
+ extra-file updater. The name filter uses `name.value` because the pinned
159
+ Release Please 17.3.0 parser represents TOML strings as tagged values. When upgrading
160
+ the release action, verify a simulated version bump changes only the root package's
161
+ version and that `uv lock --check` still succeeds; never target a positional package
162
+ index or apply a version replacement to all dependencies.
163
+
164
+
153
165
  Changes made to this repository via the automated release PR pipeline should publish to PyPI automatically. If
154
166
  the changes aren't made through the automated pipeline, you may want to make releases manually.
155
167
 
@@ -1,12 +1,14 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 1.31.0
4
- Summary: The official Python library for the runloop API
5
- Project-URL: Homepage, https://github.com/runloopai/api-client-python
3
+ Version: 2.0.0
4
+ Summary: Official Python SDK for Runloop — secure Linux sandboxes (Devboxes) where AI agents run code, edit files, and expose ports
5
+ Project-URL: Homepage, https://runloop.ai
6
6
  Project-URL: Repository, https://github.com/runloopai/api-client-python
7
- Project-URL: Documentation, https://runloopai.github.io/api-client-python/
7
+ Project-URL: Documentation, https://docs.runloop.ai
8
+ Project-URL: API Reference, https://runloopai.github.io/api-client-python/
8
9
  Author-email: Runloop <support@runloop.ai>
9
10
  License: MIT
11
+ Keywords: agent-runtime,ai-agents,code-execution,code-interpreter,devbox,llm,microvm,runloop,sandbox
10
12
  Classifier: Intended Audience :: Developers
11
13
  Classifier: License :: OSI Approved :: MIT License
12
14
  Classifier: Operating System :: MacOS
@@ -20,6 +22,7 @@ Classifier: Programming Language :: Python :: 3.11
20
22
  Classifier: Programming Language :: Python :: 3.12
21
23
  Classifier: Programming Language :: Python :: 3.13
22
24
  Classifier: Programming Language :: Python :: 3.14
25
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
27
  Classifier: Typing :: Typed
25
28
  Requires-Python: >=3.9
@@ -35,54 +38,73 @@ Requires-Dist: aiohttp; extra == 'aiohttp'
35
38
  Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
36
39
  Description-Content-Type: text/markdown
37
40
 
38
- # Runloop Python API library
41
+ # Runloop Python SDK — secure sandboxes for AI agents
39
42
 
40
43
  <!-- prettier-ignore -->
41
44
  [![PyPI version](https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable))](https://pypi.org/project/runloop_api_client/)
42
45
 
43
- The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.9+
44
- application. The library includes type definitions for all request params and response fields,
45
- and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
46
+ Run AI agents and AI-generated code in **Devboxes**: isolated Linux sandboxes with a shell, a
47
+ filesystem, networking, and optional GPUs. Use this library to create a sandbox, run commands in it,
48
+ read and write files, expose ports over HTTPS, and snapshot the whole machine so you can pause and
49
+ resume it later.
46
50
 
47
- It is generated with [Stainless](https://www.stainless.com/).
51
+ Why teams pick Runloop:
48
52
 
49
- ## Documentation
50
-
51
- The REST API documentation can be found on
52
- [runloop.ai](https://runloop.ai). The full API of this library can be found in
53
- [api.md](https://github.com/runloopai/api-client-python/blob/main/api.md).
53
+ - **Safe by default.** Every devbox is isolated at both the VM and container level, so untrusted
54
+ agent output never touches your infrastructure.
55
+ - **Built for long-running agents.** Devboxes persist for as long as you need, and snapshots let you
56
+ suspend, resume, and branch an agent's machine state.
57
+ - **Fast starts.** Blueprints bake your dependencies into a reusable image so agents boot in seconds
58
+ instead of installing tooling every run.
59
+ - **Ready for production.** Secrets injection, AI gateways, network policies, and VPC deployment are
60
+ part of the platform.
54
61
 
55
62
  ## Installation
56
63
 
57
64
  ```sh
58
- # install from PyPI
59
65
  pip install runloop_api_client
60
66
  ```
61
67
 
62
- ## Usage
63
-
64
- The full API of this library can be found in [api.md](api.md).
65
-
66
- ### Object-Oriented SDK
68
+ ## Quickstart
67
69
 
68
- For a higher-level, Pythonic interface, check out the new [`RunloopSDK`](README-SDK.md) which layers an object-oriented API on top of the generated client (including synchronous and asynchronous variants).
70
+ Set `RUNLOOP_API_KEY` in your environment ([get a free key](https://runloop.ai) — new accounts start
71
+ with $50 in credits), then:
69
72
 
70
73
  ```python
71
74
  from runloop_api_client import RunloopSDK
72
75
 
73
76
  runloop = RunloopSDK() # Uses RUNLOOP_API_KEY environment variable by default
74
77
 
75
- # Create a devbox and execute commands with a clean, object-oriented interface
78
+ # Create a sandbox, run a command in it, and clean it up on exit.
76
79
  with runloop.devbox.create(name="my-devbox") as devbox:
77
- result = devbox.cmd.exec("echo 'Hello from Runloop!'")
80
+ devbox.file.write(file_path="main.py", contents="print('hello from a sandbox')")
81
+ result = devbox.cmd.exec("python main.py")
78
82
  print(result.stdout())
79
83
  ```
80
84
 
81
- **See the [SDK documentation](README-SDK.md) for complete examples and API reference.**
85
+ **See the [SDK documentation](README-SDK.md) for complete examples and API reference**, and
86
+ [docs.runloop.ai](https://docs.runloop.ai) for platform guides. Agents and LLM tooling can read
87
+ [llms.txt](llms.txt) for a condensed overview of the whole platform.
88
+
89
+ ## Documentation
90
+
91
+ - [Platform documentation](https://docs.runloop.ai) — devboxes, blueprints, snapshots, tunnels, agents
92
+ - [`RunloopSDK` reference](README-SDK.md) — the high-level, object-oriented Python interface
93
+ - [api.md](https://github.com/runloopai/api-client-python/blob/main/api.md) — the full generated REST surface
94
+ - [examples/](examples) — runnable end-to-end scripts
95
+ - [llms.txt](llms.txt) — condensed platform summary for AI coding agents
96
+
97
+ ## Usage
98
+
99
+ This library ships two layers: the object-oriented `RunloopSDK` shown above, and the generated REST
100
+ client it is built on. Both have synchronous and asynchronous variants, include type definitions for
101
+ all request params and response fields, and are powered by
102
+ [httpx](https://github.com/encode/httpx). The generated client is produced with
103
+ [Stainless](https://www.stainless.com/).
82
104
 
83
105
  ### REST API Client
84
106
 
85
- Alternatively, you can use the generated REST API client directly:
107
+ To use the generated REST API client directly:
86
108
 
87
109
  ```python
88
110
  import os
@@ -10,6 +10,7 @@ The `RunloopSDK` builds on top of the underlying REST client and provides a Pyth
10
10
  - [Core Concepts](#core-concepts)
11
11
  - [RunloopSDK](#runloopsdk)
12
12
  - [Available Resources](#available-resources)
13
+ - [Secrets: names and exact IDs](#secrets-names-and-exact-ids)
13
14
  - [Devbox](#devbox)
14
15
  - [Command Execution](#command-execution)
15
16
  - [Execution Management](#execution-management)
@@ -122,15 +123,26 @@ The SDK provides object-oriented interfaces for all major Runloop resources:
122
123
  - **`runloop.storage_object`** - Storage object management (upload, download, list objects)
123
124
  - **`runloop.agent`** - Agent management (create, list agents from npm/pip/git)
124
125
  - **`runloop.axon`** - [Beta] Axon management (create, publish events, subscribe to SSE streams, SQL queries)
125
- - **`runloop.scenario`** - Scenario management (list scenarios, start runs)
126
- - **`runloop.scorer`** - Scorer management (create, list, update)
127
- - **`runloop.benchmark`** - Benchmark management (create, list, run benchmarks)
128
126
  - **`runloop.network_policy`** - Network policy management (create, list, update egress rules)
129
127
  - **`runloop.gateway_config`** - Gateway config management (create, list API proxy configurations)
130
128
  - **`runloop.mcp_config`** - MCP config management (create, list MCP server configurations)
131
129
  - **`runloop.secret`** - Secret management (create, update, list, delete encrypted key-value pairs)
132
130
  - **`runloop.api`** - Direct access to the underlying REST API client
133
131
 
132
+ ### Secrets: names and exact IDs
133
+
134
+ `Secret` / `AsyncSecret` objects from `create()`, `list()`, and `from_name()` always operate by name, even when they carry a captured `.id`. Use a separate `SecretById` / `AsyncSecretById` handle for one exact row:
135
+
136
+ ```python
137
+ created = runloop.secret.create(name="API_TOKEN", value="synthetic-example")
138
+ assert created.id is not None
139
+ exact = runloop.secret.from_id(created.id) # Lazy; never falls back to a name.
140
+ exact.update("synthetic-rotated") # Returns SecretView, as do get_info() and delete().
141
+ exact.delete() # Deletes only this row.
142
+ ```
143
+
144
+ For `AsyncRunloopSDK`, await the operations but not `from_id()`. The handle types are exported from `runloop_api_client.sdk`. ID handles have `.id`, not `.name`; use their instance methods rather than name-only manager helpers. Environment-secret maps still take names; pass `exact.id` explicitly for an ID-based gateway/MCP binding. Name reads/updates select the greatest ID; name deletion removes selected matches nonatomically. IDs identify mutable rows, not value versions, and existing retries can replay writes. Rotation does not rewrite running devbox environments or issued tokens. Avoid debug request logging with real credentials.
145
+
134
146
  ### Devbox
135
147
 
136
148
  Object-oriented interface for working with devboxes. Created via `runloop.devbox.create()`, `runloop.devbox.create_from_blueprint_id()`, `runloop.devbox.create_from_blueprint_name()`, `runloop.devbox.create_from_snapshot()`, or `runloop.devbox.from_id()`:
@@ -221,6 +233,23 @@ print("Errors:", result.stderr())
221
233
  execution.kill()
222
234
  ```
223
235
 
236
+ To send input, start the execution with stdin attached:
237
+
238
+ ```python
239
+ execution = devbox.cmd.exec_async("cat", attach_stdin=True)
240
+ execution.send_std_in("first\n")
241
+ execution.send_std_in("second\n")
242
+ execution.close_std_in()
243
+ result = execution.result()
244
+ assert result.stdout() == "first\nsecond\n"
245
+ ```
246
+
247
+ The async SDK exposes the same helpers with `await`. Send nonempty text, finish each
248
+ send before the next, and wait for pending sends before closing stdin. Concurrent
249
+ calls are not serialized. These helpers preserve the generated client's retry policy;
250
+ a retry after an ambiguous connection failure can replay input (not exactly-once
251
+ execution).
252
+
224
253
  **Key methods:**
225
254
 
226
255
  - `execution.get_state()` - Get current execution state (status, exit_code, etc.)
@@ -556,6 +585,17 @@ snapshot.delete()
556
585
 
557
586
  ### StorageObject
558
587
 
588
+ Uploads retain the create response's signed URL **and** required headers (including
589
+ Azure's `x-ms-blob-type`). All upload helpers use those instructions before marking
590
+ the object complete. Treat both as credentials; retrieval does not refresh them.
591
+
592
+ Signed uploads reuse the configured HTTP transport but exclude client-level default
593
+ headers, cookies, and authentication. Custom HTTP transports and event hooks must
594
+ not add API credentials to storage requests. Redirects and SDK-level upload retries
595
+ are disabled. Upload exception messages omit signed credentials and storage response
596
+ bodies; HTTPX request/response objects and third-party debug logging can still contain
597
+ sensitive data and must not be logged indiscriminately.
598
+
559
599
  Object-oriented interface for working with storage objects. Created via `runloop.storage_object.create()` or `runloop.storage_object.from_id()`:
560
600
 
561
601
  ```python
@@ -1,51 +1,70 @@
1
- # Runloop Python API library
1
+ # Runloop Python SDK — secure sandboxes for AI agents
2
2
 
3
3
  <!-- prettier-ignore -->
4
4
  [![PyPI version](https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable))](https://pypi.org/project/runloop_api_client/)
5
5
 
6
- The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.9+
7
- application. The library includes type definitions for all request params and response fields,
8
- and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
6
+ Run AI agents and AI-generated code in **Devboxes**: isolated Linux sandboxes with a shell, a
7
+ filesystem, networking, and optional GPUs. Use this library to create a sandbox, run commands in it,
8
+ read and write files, expose ports over HTTPS, and snapshot the whole machine so you can pause and
9
+ resume it later.
9
10
 
10
- It is generated with [Stainless](https://www.stainless.com/).
11
+ Why teams pick Runloop:
11
12
 
12
- ## Documentation
13
-
14
- The REST API documentation can be found on
15
- [runloop.ai](https://runloop.ai). The full API of this library can be found in
16
- [api.md](https://github.com/runloopai/api-client-python/blob/main/api.md).
13
+ - **Safe by default.** Every devbox is isolated at both the VM and container level, so untrusted
14
+ agent output never touches your infrastructure.
15
+ - **Built for long-running agents.** Devboxes persist for as long as you need, and snapshots let you
16
+ suspend, resume, and branch an agent's machine state.
17
+ - **Fast starts.** Blueprints bake your dependencies into a reusable image so agents boot in seconds
18
+ instead of installing tooling every run.
19
+ - **Ready for production.** Secrets injection, AI gateways, network policies, and VPC deployment are
20
+ part of the platform.
17
21
 
18
22
  ## Installation
19
23
 
20
24
  ```sh
21
- # install from PyPI
22
25
  pip install runloop_api_client
23
26
  ```
24
27
 
25
- ## Usage
26
-
27
- The full API of this library can be found in [api.md](api.md).
28
-
29
- ### Object-Oriented SDK
28
+ ## Quickstart
30
29
 
31
- For a higher-level, Pythonic interface, check out the new [`RunloopSDK`](README-SDK.md) which layers an object-oriented API on top of the generated client (including synchronous and asynchronous variants).
30
+ Set `RUNLOOP_API_KEY` in your environment ([get a free key](https://runloop.ai) — new accounts start
31
+ with $50 in credits), then:
32
32
 
33
33
  ```python
34
34
  from runloop_api_client import RunloopSDK
35
35
 
36
36
  runloop = RunloopSDK() # Uses RUNLOOP_API_KEY environment variable by default
37
37
 
38
- # Create a devbox and execute commands with a clean, object-oriented interface
38
+ # Create a sandbox, run a command in it, and clean it up on exit.
39
39
  with runloop.devbox.create(name="my-devbox") as devbox:
40
- result = devbox.cmd.exec("echo 'Hello from Runloop!'")
40
+ devbox.file.write(file_path="main.py", contents="print('hello from a sandbox')")
41
+ result = devbox.cmd.exec("python main.py")
41
42
  print(result.stdout())
42
43
  ```
43
44
 
44
- **See the [SDK documentation](README-SDK.md) for complete examples and API reference.**
45
+ **See the [SDK documentation](README-SDK.md) for complete examples and API reference**, and
46
+ [docs.runloop.ai](https://docs.runloop.ai) for platform guides. Agents and LLM tooling can read
47
+ [llms.txt](llms.txt) for a condensed overview of the whole platform.
48
+
49
+ ## Documentation
50
+
51
+ - [Platform documentation](https://docs.runloop.ai) — devboxes, blueprints, snapshots, tunnels, agents
52
+ - [`RunloopSDK` reference](README-SDK.md) — the high-level, object-oriented Python interface
53
+ - [api.md](https://github.com/runloopai/api-client-python/blob/main/api.md) — the full generated REST surface
54
+ - [examples/](examples) — runnable end-to-end scripts
55
+ - [llms.txt](llms.txt) — condensed platform summary for AI coding agents
56
+
57
+ ## Usage
58
+
59
+ This library ships two layers: the object-oriented `RunloopSDK` shown above, and the generated REST
60
+ client it is built on. Both have synchronous and asynchronous variants, include type definitions for
61
+ all request params and response fields, and are powered by
62
+ [httpx](https://github.com/encode/httpx). The generated client is produced with
63
+ [Stainless](https://www.stainless.com/).
45
64
 
46
65
  ### REST API Client
47
66
 
48
- Alternatively, you can use the generated REST API client directly:
67
+ To use the generated REST API client directly:
49
68
 
50
69
  ```python
51
70
  import os
@@ -15,7 +15,6 @@ from runloop_api_client.types import (
15
15
  Mount,
16
16
  ObjectMount,
17
17
  ResumeTriggers,
18
- RunProfile,
19
18
  )
20
19
  ```
21
20
 
@@ -31,66 +30,6 @@ Methods:
31
30
 
32
31
  - <code title="get /v1/accounts/me">client.accounts.<a href="./src/runloop_api_client/resources/accounts.py">me</a>() -> <a href="./src/runloop_api_client/types/account_view.py">AccountView</a></code>
33
32
 
34
- # Benchmarks
35
-
36
- Types:
37
-
38
- ```python
39
- from runloop_api_client.types import (
40
- BenchmarkCreateParameters,
41
- BenchmarkScenarioUpdateParameters,
42
- BenchmarkUpdateParameters,
43
- BenchmarkView,
44
- ScenarioDefinitionListView,
45
- StartBenchmarkRunParameters,
46
- )
47
- ```
48
-
49
- Methods:
50
-
51
- - <code title="post /v1/benchmarks">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks.py">create</a>(\*\*<a href="src/runloop_api_client/types/benchmark_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">BenchmarkView</a></code>
52
- - <code title="get /v1/benchmarks/{id}">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_view.py">BenchmarkView</a></code>
53
- - <code title="post /v1/benchmarks/{id}">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/benchmark_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">BenchmarkView</a></code>
54
- - <code title="get /v1/benchmarks">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks.py">list</a>(\*\*<a href="src/runloop_api_client/types/benchmark_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">SyncBenchmarksCursorIDPage[BenchmarkView]</a></code>
55
- - <code title="get /v1/benchmarks/{id}/definitions">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks.py">definitions</a>(id, \*\*<a href="src/runloop_api_client/types/benchmark_definitions_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_definition_list_view.py">ScenarioDefinitionListView</a></code>
56
- - <code title="get /v1/benchmarks/list_public">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/benchmark_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">SyncBenchmarksCursorIDPage[BenchmarkView]</a></code>
57
- - <code title="post /v1/benchmarks/start_run">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks.py">start_run</a>(\*\*<a href="src/runloop_api_client/types/benchmark_start_run_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">BenchmarkRunView</a></code>
58
- - <code title="post /v1/benchmarks/{id}/scenarios">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks.py">update_scenarios</a>(id, \*\*<a href="src/runloop_api_client/types/benchmark_update_scenarios_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">BenchmarkView</a></code>
59
-
60
- # BenchmarkRuns
61
-
62
- Types:
63
-
64
- ```python
65
- from runloop_api_client.types import BenchmarkRunListView, BenchmarkRunView
66
- ```
67
-
68
- Methods:
69
-
70
- - <code title="get /v1/benchmark_runs/{id}">client.benchmark_runs.<a href="./src/runloop_api_client/resources/benchmark_runs.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">BenchmarkRunView</a></code>
71
- - <code title="get /v1/benchmark_runs">client.benchmark_runs.<a href="./src/runloop_api_client/resources/benchmark_runs.py">list</a>(\*\*<a href="src/runloop_api_client/types/benchmark_run_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">SyncBenchmarkRunsCursorIDPage[BenchmarkRunView]</a></code>
72
- - <code title="post /v1/benchmark_runs/{id}/cancel">client.benchmark_runs.<a href="./src/runloop_api_client/resources/benchmark_runs.py">cancel</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">BenchmarkRunView</a></code>
73
- - <code title="post /v1/benchmark_runs/{id}/complete">client.benchmark_runs.<a href="./src/runloop_api_client/resources/benchmark_runs.py">complete</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">BenchmarkRunView</a></code>
74
- - <code title="get /v1/benchmark_runs/{id}/scenario_runs">client.benchmark_runs.<a href="./src/runloop_api_client/resources/benchmark_runs.py">list_scenario_runs</a>(id, \*\*<a href="src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">SyncBenchmarkRunsCursorIDPage[ScenarioRunView]</a></code>
75
-
76
- # BenchmarkJobs
77
-
78
- Types:
79
-
80
- ```python
81
- from runloop_api_client.types import (
82
- BenchmarkJobCreateParameters,
83
- BenchmarkJobListView,
84
- BenchmarkJobView,
85
- )
86
- ```
87
-
88
- Methods:
89
-
90
- - <code title="post /v1/benchmark_jobs">client.benchmark_jobs.<a href="./src/runloop_api_client/resources/benchmark_jobs.py">create</a>(\*\*<a href="src/runloop_api_client/types/benchmark_job_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_job_view.py">BenchmarkJobView</a></code>
91
- - <code title="get /v1/benchmark_jobs/{id}">client.benchmark_jobs.<a href="./src/runloop_api_client/resources/benchmark_jobs.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_job_view.py">BenchmarkJobView</a></code>
92
- - <code title="get /v1/benchmark_jobs">client.benchmark_jobs.<a href="./src/runloop_api_client/resources/benchmark_jobs.py">list</a>(\*\*<a href="src/runloop_api_client/types/benchmark_job_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_job_list_view.py">BenchmarkJobListView</a></code>
93
-
94
33
  # Agents
95
34
 
96
35
  Types:
@@ -122,6 +61,7 @@ from runloop_api_client.types import (
122
61
  AxonCreateParams,
123
62
  AxonEventView,
124
63
  AxonListView,
64
+ AxonUpdateParams,
125
65
  AxonView,
126
66
  PublishParams,
127
67
  PublishResultView,
@@ -132,6 +72,7 @@ Methods:
132
72
 
133
73
  - <code title="post /v1/axons">client.axons.<a href="./src/runloop_api_client/resources/axons/axons.py">create</a>(\*\*<a href="src/runloop_api_client/types/axon_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/axon_view.py">AxonView</a></code>
134
74
  - <code title="get /v1/axons/{id}">client.axons.<a href="./src/runloop_api_client/resources/axons/axons.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/axon_view.py">AxonView</a></code>
75
+ - <code title="post /v1/axons/{id}">client.axons.<a href="./src/runloop_api_client/resources/axons/axons.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/axon_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/axon_view.py">AxonView</a></code>
135
76
  - <code title="get /v1/axons">client.axons.<a href="./src/runloop_api_client/resources/axons/axons.py">list</a>(\*\*<a href="src/runloop_api_client/types/axon_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/axon_view.py">SyncAxonsCursorIDPage[AxonView]</a></code>
136
77
  - <code title="delete /v1/axons/{id}">client.axons.<a href="./src/runloop_api_client/resources/axons/axons.py">delete</a>(id) -> object</code>
137
78
  - <code title="post /v1/axons/{id}/publish">client.axons.<a href="./src/runloop_api_client/resources/axons/axons.py">publish</a>(id, \*\*<a href="src/runloop_api_client/types/axon_publish_params.py">params</a>) -> <a href="./src/runloop_api_client/types/publish_result_view.py">PublishResultView</a></code>
@@ -314,70 +255,6 @@ Methods:
314
255
  - <code title="get /pty/{session_name}">client.pty.<a href="./src/runloop_api_client/resources/pty.py">connect</a>(session_name, \*\*<a href="src/runloop_api_client/types/pty_connect_params.py">params</a>) -> <a href="./src/runloop_api_client/types/pty_connect_view.py">PtyConnectView</a></code>
315
256
  - <code title="post /pty/{session_name}/control">client.pty.<a href="./src/runloop_api_client/resources/pty.py">control</a>(session_name, \*\*<a href="src/runloop_api_client/types/pty_control_params.py">params</a>) -> <a href="./src/runloop_api_client/types/pty_control_result_view.py">PtyControlResultView</a></code>
316
257
 
317
- # Scenarios
318
-
319
- Types:
320
-
321
- ```python
322
- from runloop_api_client.types import (
323
- InputContext,
324
- InputContextUpdate,
325
- ScenarioCreateParameters,
326
- ScenarioEnvironment,
327
- ScenarioRunListView,
328
- ScenarioRunView,
329
- ScenarioUpdateParameters,
330
- ScenarioView,
331
- ScoringContract,
332
- ScoringContractResultView,
333
- ScoringContractUpdate,
334
- ScoringFunction,
335
- ScoringFunctionResultView,
336
- StartScenarioRunParameters,
337
- )
338
- ```
339
-
340
- Methods:
341
-
342
- - <code title="post /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">create</a>(\*\*<a href="src/runloop_api_client/types/scenario_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
343
- - <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>
344
- - <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>
345
- - <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>
346
- - <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>
347
- - <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>
348
- - <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>
349
-
350
- ## Runs
351
-
352
- Methods:
353
-
354
- - <code title="get /v1/scenarios/runs/{id}">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
355
- - <code title="get /v1/scenarios/runs">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenarios/run_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">SyncBenchmarkRunsCursorIDPage[ScenarioRunView]</a></code>
356
- - <code title="post /v1/scenarios/runs/{id}/cancel">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">cancel</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
357
- - <code title="post /v1/scenarios/runs/{id}/complete">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">complete</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
358
- - <code title="post /v1/scenarios/runs/{id}/download_logs">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">download_logs</a>(id) -> BinaryAPIResponse</code>
359
- - <code title="post /v1/scenarios/runs/{id}/score">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">score</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
360
-
361
- ## Scorers
362
-
363
- Types:
364
-
365
- ```python
366
- from runloop_api_client.types.scenarios import (
367
- ScorerCreateResponse,
368
- ScorerRetrieveResponse,
369
- ScorerUpdateResponse,
370
- ScorerListResponse,
371
- )
372
- ```
373
-
374
- Methods:
375
-
376
- - <code title="post /v1/scenarios/scorers">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">create</a>(\*\*<a href="src/runloop_api_client/types/scenarios/scorer_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_create_response.py">ScorerCreateResponse</a></code>
377
- - <code title="get /v1/scenarios/scorers/{id}">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenarios/scorer_retrieve_response.py">ScorerRetrieveResponse</a></code>
378
- - <code title="post /v1/scenarios/scorers/{id}">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/scenarios/scorer_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_update_response.py">ScorerUpdateResponse</a></code>
379
- - <code title="get /v1/scenarios/scorers">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenarios/scorer_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_list_response.py">SyncScenarioScorersCursorIDPage[ScorerListResponse]</a></code>
380
-
381
258
  # Objects
382
259
 
383
260
  Types:
@@ -421,6 +298,9 @@ Methods:
421
298
  - <code title="post /v1/secrets/{name}">client.secrets.<a href="./src/runloop_api_client/resources/secrets.py">update</a>(name, \*\*<a href="src/runloop_api_client/types/secret_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/secret_view.py">SecretView</a></code>
422
299
  - <code title="get /v1/secrets">client.secrets.<a href="./src/runloop_api_client/resources/secrets.py">list</a>(\*\*<a href="src/runloop_api_client/types/secret_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/secret_list_view.py">SecretListView</a></code>
423
300
  - <code title="post /v1/secrets/{name}/delete">client.secrets.<a href="./src/runloop_api_client/resources/secrets.py">delete</a>(name) -> <a href="./src/runloop_api_client/types/secret_view.py">SecretView</a></code>
301
+ - <code title="post /v1/secrets/id/{id}/delete">client.secrets.<a href="./src/runloop_api_client/resources/secrets.py">delete_by_id</a>(id) -> <a href="./src/runloop_api_client/types/secret_view.py">SecretView</a></code>
302
+ - <code title="get /v1/secrets/id/{id}">client.secrets.<a href="./src/runloop_api_client/resources/secrets.py">retrieve_by_id</a>(id) -> <a href="./src/runloop_api_client/types/secret_view.py">SecretView</a></code>
303
+ - <code title="post /v1/secrets/id/{id}/update">client.secrets.<a href="./src/runloop_api_client/resources/secrets.py">update_by_id</a>(id, \*\*<a href="src/runloop_api_client/types/secret_update_by_id_params.py">params</a>) -> <a href="./src/runloop_api_client/types/secret_view.py">SecretView</a></code>
424
304
 
425
305
  # NetworkPolicies
426
306
 
@@ -1,8 +1,19 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "1.31.0"
4
- description = "The official Python library for the runloop API"
3
+ version = "2.0.0"
4
+ description = "Official Python SDK for Runloop — secure Linux sandboxes (Devboxes) where AI agents run code, edit files, and expose ports"
5
5
  dynamic = ["readme"]
6
+ keywords = [
7
+ "runloop",
8
+ "sandbox",
9
+ "devbox",
10
+ "ai-agents",
11
+ "code-execution",
12
+ "code-interpreter",
13
+ "agent-runtime",
14
+ "microvm",
15
+ "llm",
16
+ ]
6
17
  license = "MIT"
7
18
  authors = [
8
19
  { name = "Runloop", email = "support@runloop.ai" },
@@ -34,13 +45,15 @@ classifiers = [
34
45
  "Operating System :: POSIX :: Linux",
35
46
  "Operating System :: Microsoft :: Windows",
36
47
  "Topic :: Software Development :: Libraries :: Python Modules",
48
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
37
49
  "License :: OSI Approved :: MIT License"
38
50
  ]
39
51
 
40
52
  [project.urls]
41
- Homepage = "https://github.com/runloopai/api-client-python"
53
+ Homepage = "https://runloop.ai"
42
54
  Repository = "https://github.com/runloopai/api-client-python"
43
- Documentation = "https://runloopai.github.io/api-client-python/"
55
+ Documentation = "https://docs.runloop.ai"
56
+ "API Reference" = "https://runloopai.github.io/api-client-python/"
44
57
 
45
58
  [project.optional-dependencies]
46
59
  aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]