runloop_api_client 1.13.2__tar.gz → 1.13.3__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 (455) hide show
  1. runloop_api_client-1.13.3/.release-please-manifest.json +3 -0
  2. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/CHANGELOG.md +14 -0
  3. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/PKG-INFO +1 -1
  4. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/README-SDK.md +111 -0
  5. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/pyproject.toml +1 -1
  6. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_devbox.py +3 -1
  8. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/devbox.py +3 -1
  9. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_job_view.py +6 -3
  10. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/test_core.py +24 -0
  11. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/test_core.py +23 -0
  12. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/uv.lock +1 -1
  13. runloop_api_client-1.13.2/.release-please-manifest.json +0 -3
  14. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/.gitignore +0 -0
  15. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/CONTRIBUTING.md +0 -0
  16. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/EXAMPLES.md +0 -0
  17. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/LICENSE +0 -0
  18. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/README.md +0 -0
  19. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/SECURITY.md +0 -0
  20. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/api.md +0 -0
  21. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/bin/check-release-environment +0 -0
  22. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/bin/publish-pypi +0 -0
  23. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/__init__.py +0 -0
  24. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/_harness.py +0 -0
  25. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/blueprint_with_build_context.py +0 -0
  26. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/devbox_from_blueprint_lifecycle.py +0 -0
  27. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/devbox_snapshot_resume.py +0 -0
  28. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/devbox_tunnel.py +0 -0
  29. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/example_types.py +0 -0
  30. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/mcp_github_tools.py +0 -0
  31. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/registry.py +0 -0
  32. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/secrets_with_devbox.py +0 -0
  33. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/release-please-config.json +0 -0
  34. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/requirements-dev.lock +0 -0
  35. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop/lib/.keep +0 -0
  36. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/__init__.py +0 -0
  37. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_base_client.py +0 -0
  38. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_client.py +0 -0
  39. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_compat.py +0 -0
  40. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_constants.py +0 -0
  41. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_exceptions.py +0 -0
  42. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_files.py +0 -0
  43. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_models.py +0 -0
  44. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_qs.py +0 -0
  45. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_resource.py +0 -0
  46. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_response.py +0 -0
  47. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_streaming.py +0 -0
  48. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_types.py +0 -0
  49. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/__init__.py +0 -0
  50. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_compat.py +0 -0
  51. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  52. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_json.py +0 -0
  53. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_logs.py +0 -0
  54. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_path.py +0 -0
  55. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_proxy.py +0 -0
  56. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_reflection.py +0 -0
  57. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  58. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_streams.py +0 -0
  59. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_sync.py +0 -0
  60. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_transform.py +0 -0
  61. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_typing.py +0 -0
  62. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_utils.py +0 -0
  63. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_validation.py +0 -0
  64. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/.keep +0 -0
  65. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/__init__.py +0 -0
  66. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/_ignore.py +0 -0
  67. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/context_loader.py +0 -0
  68. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/polling.py +0 -0
  69. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/polling_async.py +0 -0
  70. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/pagination.py +0 -0
  71. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/py.typed +0 -0
  72. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/__init__.py +0 -0
  73. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/agents.py +0 -0
  74. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/axons/__init__.py +0 -0
  75. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/axons/axons.py +0 -0
  76. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/axons/sql.py +0 -0
  77. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
  78. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
  79. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/benchmarks.py +0 -0
  80. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/blueprints.py +0 -0
  81. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  82. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  83. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  84. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
  85. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  86. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  87. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  88. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/gateway_configs.py +0 -0
  89. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/mcp_configs.py +0 -0
  90. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/network_policies.py +0 -0
  91. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/objects.py +0 -0
  92. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/repositories.py +0 -0
  93. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  94. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  95. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  96. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  97. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/secrets.py +0 -0
  98. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/__init__.py +0 -0
  99. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/_helpers.py +0 -0
  100. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/_types.py +0 -0
  101. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/agent.py +0 -0
  102. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_.py +0 -0
  103. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_agent.py +0 -0
  104. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_axon.py +0 -0
  105. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
  106. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
  107. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  108. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_execution.py +0 -0
  109. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  110. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
  111. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
  112. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  113. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  114. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
  115. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  116. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scorer.py +0 -0
  117. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_secret.py +0 -0
  118. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  119. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
  120. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/axon.py +0 -0
  121. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/benchmark.py +0 -0
  122. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
  123. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/blueprint.py +0 -0
  124. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/execution.py +0 -0
  125. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/execution_result.py +0 -0
  126. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/gateway_config.py +0 -0
  127. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/mcp_config.py +0 -0
  128. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/network_policy.py +0 -0
  129. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/scenario.py +0 -0
  130. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
  131. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  132. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/scorer.py +0 -0
  133. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/secret.py +0 -0
  134. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/snapshot.py +0 -0
  135. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/storage_object.py +0 -0
  136. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/sync.py +0 -0
  137. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/__init__.py +0 -0
  138. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/agent_create_params.py +0 -0
  139. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/agent_list_params.py +0 -0
  140. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/agent_list_view.py +0 -0
  141. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/agent_view.py +0 -0
  142. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_create_params.py +0 -0
  143. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_event_view.py +0 -0
  144. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_list_view.py +0 -0
  145. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_publish_params.py +0 -0
  146. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_view.py +0 -0
  147. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/__init__.py +0 -0
  148. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
  149. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_batch_result_view.py +0 -0
  150. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_column_meta_view.py +0 -0
  151. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
  152. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_query_result_view.py +0 -0
  153. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_result_meta_view.py +0 -0
  154. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
  155. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_step_error_view.py +0 -0
  156. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_step_result_view.py +0 -0
  157. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  158. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  159. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
  160. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
  161. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
  162. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  163. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  164. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
  165. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
  166. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  167. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  168. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  169. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  170. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
  171. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_view.py +0 -0
  172. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  173. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  174. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  175. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  176. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  177. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  178. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  179. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  180. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  181. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  182. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_view.py +0 -0
  183. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  184. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  185. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  186. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  187. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +0 -0
  188. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  189. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  190. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  191. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  192. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  193. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  194. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  195. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  196. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  197. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
  198. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  199. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
  200. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  201. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  202. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  203. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  204. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  205. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  206. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_view.py +0 -0
  207. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  208. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  209. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  210. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  211. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  212. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  213. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  214. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  215. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  216. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  217. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  218. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  219. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  220. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  221. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  222. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  223. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  224. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  225. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  226. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  227. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  228. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  229. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  230. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  231. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  232. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  233. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
  234. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  235. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
  236. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
  237. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_view.py +0 -0
  238. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/input_context.py +0 -0
  239. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/input_context_param.py +0 -0
  240. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  241. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  242. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
  243. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
  244. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
  245. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
  246. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_view.py +0 -0
  247. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
  248. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  249. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
  250. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
  251. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_view.py +0 -0
  252. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_create_params.py +0 -0
  253. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_download_params.py +0 -0
  254. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  255. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_list_params.py +0 -0
  256. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  257. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_list_view.py +0 -0
  258. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_view.py +0 -0
  259. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/publish_result_view.py +0 -0
  260. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  261. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  262. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_create_params.py +0 -0
  263. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  264. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  265. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  266. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_list_params.py +0 -0
  267. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  268. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  269. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  270. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  271. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_environment.py +0 -0
  272. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  273. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  274. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  275. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  276. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  277. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  278. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  279. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_view.py +0 -0
  280. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  281. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  282. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  283. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  284. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  285. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  286. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  287. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  288. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  289. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_contract.py +0 -0
  290. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  291. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  292. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  293. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_function.py +0 -0
  294. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  295. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  296. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_create_params.py +0 -0
  297. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_list_params.py +0 -0
  298. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_list_view.py +0 -0
  299. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_update_params.py +0 -0
  300. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_view.py +0 -0
  301. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/__init__.py +0 -0
  302. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  303. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  304. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  305. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/broker_mount.py +0 -0
  306. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  307. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  308. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/mount.py +0 -0
  309. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  310. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  311. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  312. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  313. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  314. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  315. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/broker_mount.py +0 -0
  316. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  317. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  318. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  319. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  320. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  321. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/tunnel_view.py +0 -0
  322. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/__init__.py +0 -0
  323. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/__init__.py +0 -0
  324. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/axons/__init__.py +0 -0
  325. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/axons/test_sql.py +0 -0
  326. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/__init__.py +0 -0
  327. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_browsers.py +0 -0
  328. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_computers.py +0 -0
  329. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  330. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_executions.py +0 -0
  331. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_logs.py +0 -0
  332. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/scenarios/__init__.py +0 -0
  333. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/scenarios/test_runs.py +0 -0
  334. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/scenarios/test_scorers.py +0 -0
  335. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_agents.py +0 -0
  336. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_axons.py +0 -0
  337. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_benchmark_jobs.py +0 -0
  338. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_benchmark_runs.py +0 -0
  339. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_benchmarks.py +0 -0
  340. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_blueprints.py +0 -0
  341. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_devboxes.py +0 -0
  342. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_gateway_configs.py +0 -0
  343. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_mcp_configs.py +0 -0
  344. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_network_policies.py +0 -0
  345. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_objects.py +0 -0
  346. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_repositories.py +0 -0
  347. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_scenarios.py +0 -0
  348. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_secrets.py +0 -0
  349. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/conftest.py +0 -0
  350. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sample_file.txt +0 -0
  351. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/__init__.py +0 -0
  352. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/__init__.py +0 -0
  353. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/conftest.py +0 -0
  354. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  355. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  356. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/test_streaming.py +0 -0
  357. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/conftest.py +0 -0
  358. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/__init__.py +0 -0
  359. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/conftest.py +0 -0
  360. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/test_edge_cases.py +0 -0
  361. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/test_interfaces.py +0 -0
  362. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/test_streaming.py +0 -0
  363. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_agent.py +0 -0
  364. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_agent.py +0 -0
  365. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_axon.py +0 -0
  366. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_benchmark.py +0 -0
  367. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_benchmark_run.py +0 -0
  368. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_blueprint.py +0 -0
  369. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_execution.py +0 -0
  370. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_execution_result.py +0 -0
  371. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_gateway_config.py +0 -0
  372. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_network_policy.py +0 -0
  373. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_ops.py +0 -0
  374. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_scenario.py +0 -0
  375. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_scenario_builder.py +0 -0
  376. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_scenario_run.py +0 -0
  377. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_scorer.py +0 -0
  378. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_snapshot.py +0 -0
  379. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_storage_object.py +0 -0
  380. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_axon.py +0 -0
  381. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_benchmark.py +0 -0
  382. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_benchmark_run.py +0 -0
  383. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_blueprint.py +0 -0
  384. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_execution.py +0 -0
  385. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_execution_result.py +0 -0
  386. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_gateway_config.py +0 -0
  387. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_helpers.py +0 -0
  388. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_network_policy.py +0 -0
  389. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_ops.py +0 -0
  390. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_scenario.py +0 -0
  391. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_scenario_builder.py +0 -0
  392. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_scenario_run.py +0 -0
  393. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_scorer.py +0 -0
  394. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_snapshot.py +0 -0
  395. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_storage_object.py +0 -0
  396. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/README.md +0 -0
  397. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/__init__.py +0 -0
  398. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/conftest.py +0 -0
  399. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/examples/__init__.py +0 -0
  400. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/examples/test_examples.py +0 -0
  401. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/README.md +0 -0
  402. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/__init__.py +0 -0
  403. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/conftest.py +0 -0
  404. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_agent.py +0 -0
  405. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_agent.py +0 -0
  406. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_axon.py +0 -0
  407. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
  408. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  409. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  410. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
  411. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  412. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  413. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  414. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  415. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_secret.py +0 -0
  416. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  417. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  418. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_axon.py +0 -0
  419. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_benchmark.py +0 -0
  420. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_blueprint.py +0 -0
  421. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_devbox.py +0 -0
  422. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_gateway_config.py +0 -0
  423. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_mcp_config.py +0 -0
  424. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_network_policy.py +0 -0
  425. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_scenario.py +0 -0
  426. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_scorer.py +0 -0
  427. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_sdk.py +0 -0
  428. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_secret.py +0 -0
  429. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_snapshot.py +0 -0
  430. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_storage_object.py +0 -0
  431. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_blueprints.py +0 -0
  432. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_devboxes.py +0 -0
  433. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_executions.py +0 -0
  434. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  435. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_snapshots.py +0 -0
  436. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/utils.py +0 -0
  437. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_client.py +0 -0
  438. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_command_id.py +0 -0
  439. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_deepcopy.py +0 -0
  440. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_extract_files.py +0 -0
  441. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_files.py +0 -0
  442. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_models.py +0 -0
  443. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_polling.py +0 -0
  444. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_qs.py +0 -0
  445. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_required_args.py +0 -0
  446. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_response.py +0 -0
  447. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_streaming.py +0 -0
  448. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_transform.py +0 -0
  449. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_context_loader.py +0 -0
  450. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_datetime_parse.py +0 -0
  451. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_json.py +0 -0
  452. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_path.py +0 -0
  453. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_proxy.py +0 -0
  454. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_typing.py +0 -0
  455. {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.13.3"
3
+ }
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.13.3 (2026-03-26)
4
+
5
+ Full Changelog: [v1.13.2...v1.13.3](https://github.com/runloopai/api-client-python/compare/v1.13.2...v1.13.3)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **api:** surface scenario setup failures instead of silently dropping them ([#8300](https://github.com/runloopai/api-client-python/issues/8300)) ([dd910d0](https://github.com/runloopai/api-client-python/commit/dd910d0e867e9964d24cb792b27dd9b56d670a98))
10
+ * **devbox:** `get_tunnel_url` now derives tunnel domain from base url ([#771](https://github.com/runloopai/api-client-python/issues/771)) ([2634c64](https://github.com/runloopai/api-client-python/commit/2634c64f91e187633d0252dcda6449d72631bc09))
11
+
12
+
13
+ ### Chores
14
+
15
+ * **axon:** add axon to sdk readme ([#769](https://github.com/runloopai/api-client-python/issues/769)) ([68afe5a](https://github.com/runloopai/api-client-python/commit/68afe5aa20120ed5c0aed061d540e287df945f6c))
16
+
3
17
  ## 1.13.2 (2026-03-25)
4
18
 
5
19
  Full Changelog: [v1.13.1...v1.13.2](https://github.com/runloopai/api-client-python/compare/v1.13.1...v1.13.2)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 1.13.2
3
+ Version: 1.13.3
4
4
  Summary: The official Python library for the runloop API
5
5
  Project-URL: Homepage, https://github.com/runloopai/api-client-python
6
6
  Project-URL: Repository, https://github.com/runloopai/api-client-python
@@ -25,6 +25,10 @@ The `RunloopSDK` builds on top of the underlying REST client and provides a Pyth
25
25
  - [StorageObject](#storageobject)
26
26
  - [Storage Object Upload Helpers](#storage-object-upload-helpers)
27
27
  - [Mounting Storage Objects to Devboxes](#mounting-storage-objects-to-devboxes)
28
+ - [Axon](#axon)
29
+ - [Publishing Events](#publishing-events)
30
+ - [Subscribing to Events (SSE)](#subscribing-to-events-sse)
31
+ - [SQL Operations](#sql-operations)
28
32
  - [Accessing the Underlying REST Client](#accessing-the-underlying-rest-client)
29
33
  - [Error Handling](#error-handling)
30
34
  - [Advanced Configuration](#advanced-configuration)
@@ -116,6 +120,7 @@ The SDK provides object-oriented interfaces for all major Runloop resources:
116
120
  - **`runloop.blueprint`** - Blueprint management (create, list, build blueprints)
117
121
  - **`runloop.snapshot`** - Snapshot management (list disk snapshots)
118
122
  - **`runloop.storage_object`** - Storage object management (upload, download, list objects)
123
+ - **`runloop.axon`** - [Beta] Axon management (create, publish events, subscribe to SSE streams, SQL queries)
119
124
  - **`runloop.secret`** - Secret management (create, update, list, delete encrypted key-value pairs)
120
125
  - **`runloop.api`** - Direct access to the underlying REST API client
121
126
 
@@ -679,6 +684,112 @@ result = devbox_with_archive.cmd.exec("ls -la /home/user/project/")
679
684
  print(result.stdout())
680
685
  ```
681
686
 
687
+ ### Axon
688
+
689
+ > **Beta:** Axon APIs are in beta and may change.
690
+
691
+ Object-oriented interface for working with axons — event communication channels that support
692
+ publishing events, subscribing to event streams via SSE, and executing SQL queries against an
693
+ embedded SQLite database. Created via `runloop.axon.create()` or `runloop.axon.from_id()`:
694
+
695
+ ```python
696
+ # Create a new axon
697
+ axon = runloop.axon.create(name="my-axon")
698
+
699
+ # Or get an existing one
700
+ axon = runloop.axon.from_id(axon_id="axn_123")
701
+
702
+ # List all axons
703
+ axons = runloop.axon.list()
704
+
705
+ # Get axon details
706
+ info = axon.get_info()
707
+ print(f"Axon {info.name} created at {info.created_at_ms}")
708
+ ```
709
+
710
+ #### Publishing Events
711
+
712
+ Publish structured events to an axon:
713
+
714
+ ```python
715
+ result = axon.publish(
716
+ event_type="task_completed",
717
+ origin="AGENT_EVENT", # EXTERNAL_EVENT | AGENT_EVENT | USER_EVENT
718
+ payload='{"task_id": 42, "status": "done"}',
719
+ source="my-agent",
720
+ )
721
+ print(f"Sequence: {result.sequence}, Timestamp: {result.timestamp_ms}")
722
+ ```
723
+
724
+ #### Subscribing to Events (SSE)
725
+
726
+ Subscribe to real-time events via server-sent events:
727
+
728
+ ```python
729
+ with axon.subscribe_sse() as stream:
730
+ for event in stream:
731
+ print(f"[{event.source}] {event.event_type}: {event.payload}")
732
+ # event.axon_id, event.origin, event.sequence, event.timestamp_ms also available
733
+ ```
734
+
735
+ Async:
736
+
737
+ ```python
738
+ async with await axon.subscribe_sse() as stream:
739
+ async for event in stream:
740
+ print(f"[{event.source}] {event.event_type}: {event.payload}")
741
+ ```
742
+
743
+ #### SQL Operations
744
+
745
+ Each axon has an embedded SQLite database accessible via `axon.sql`:
746
+
747
+ ```python
748
+ # Create a table
749
+ axon.sql.query(sql="CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT, done INTEGER)")
750
+
751
+ # Insert with parameterized queries (? placeholders)
752
+ axon.sql.query(
753
+ sql="INSERT INTO tasks (id, name, done) VALUES (?, ?, ?)",
754
+ params=[1, "Write docs", 0],
755
+ )
756
+
757
+ # Query
758
+ result = axon.sql.query(sql="SELECT * FROM tasks WHERE done = ?", params=[0])
759
+ for row in result.rows:
760
+ print(row) # e.g. [1, "Write docs", 0]
761
+ print(result.columns) # [SqlColumnMetaView(name="id", type="INTEGER"), ...]
762
+ print(result.meta) # SqlResultMetaView(changes=0, duration_ms=0.5, rows_read_limit_reached=False)
763
+ ```
764
+
765
+ Execute multiple statements atomically with `batch`:
766
+
767
+ ```python
768
+ result = axon.sql.batch(
769
+ statements=[
770
+ {"sql": "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)"},
771
+ {"sql": "INSERT INTO users (id, name) VALUES (?, ?)", "params": [1, "Alice"]},
772
+ {"sql": "INSERT INTO users (id, name) VALUES (?, ?)", "params": [2, "Bob"]},
773
+ {"sql": "SELECT * FROM users ORDER BY id"},
774
+ ],
775
+ )
776
+
777
+ # Each statement gets a result
778
+ for step in result.results:
779
+ if step.success:
780
+ print(f"Rows: {step.success.rows}, Changes: {step.success.meta.changes}")
781
+ elif step.error:
782
+ print(f"Error: {step.error}")
783
+ ```
784
+
785
+ **Key methods:**
786
+
787
+ - `axon.get_info()` – Get axon details (name, created_at_ms)
788
+ - `axon.publish()` – Publish an event (event_type, origin, payload, source)
789
+ - `axon.subscribe_sse()` – Subscribe to event stream (returns `Stream[AxonEventView]`)
790
+ - `axon.sql.query()` – Execute a single SQL statement with optional params
791
+ - `axon.sql.batch()` – Execute multiple SQL statements atomically
792
+
682
793
  ## Accessing the Underlying REST Client
683
794
 
684
795
  The SDK always exposes the underlying client through the `.api` attribute:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "1.13.2"
3
+ version = "1.13.3"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "1.13.2" # x-release-please-version
4
+ __version__ = "1.13.3" # x-release-please-version
@@ -161,7 +161,9 @@ class AsyncDevbox:
161
161
  tunnel_view = await self.get_tunnel(**options)
162
162
  if tunnel_view is None:
163
163
  return None
164
- return f"https://{port}-{tunnel_view.tunnel_key}.tunnel.runloop.ai"
164
+ api_host = self._client.base_url.host
165
+ base_domain = api_host[4:] if api_host.startswith("api.") else api_host
166
+ return f"https://{port}-{tunnel_view.tunnel_key}.tunnel.{base_domain}"
165
167
 
166
168
  async def logs(
167
169
  self,
@@ -160,7 +160,9 @@ class Devbox:
160
160
  tunnel_view = self.get_tunnel(**options)
161
161
  if tunnel_view is None:
162
162
  return None
163
- return f"https://{port}-{tunnel_view.tunnel_key}.tunnel.runloop.ai"
163
+ api_host = self._client.base_url.host
164
+ base_domain = api_host[4:] if api_host.startswith("api.") else api_host
165
+ return f"https://{port}-{tunnel_view.tunnel_key}.tunnel.{base_domain}"
164
166
 
165
167
  def logs(
166
168
  self,
@@ -53,9 +53,6 @@ class BenchmarkOutcomeScenarioOutcome(BaseModel):
53
53
  scenario_name: str
54
54
  """The name of the scenario."""
55
55
 
56
- scenario_run_id: str
57
- """The ID of the scenario run."""
58
-
59
56
  state: Literal["COMPLETED", "FAILED", "TIMEOUT", "CANCELED"]
60
57
  """The final state of the scenario execution."""
61
58
 
@@ -68,6 +65,12 @@ class BenchmarkOutcomeScenarioOutcome(BaseModel):
68
65
  Contains exception type and message.
69
66
  """
70
67
 
68
+ scenario_run_id: Optional[str] = None
69
+ """The ID of the scenario run.
70
+
71
+ May be absent if the scenario failed during setup before a run was created.
72
+ """
73
+
71
74
  score: Optional[float] = None
72
75
  """The score achieved for this scenario (0.0 to 1.0).
73
76
 
@@ -9,6 +9,7 @@ from __future__ import annotations
9
9
  from types import SimpleNamespace
10
10
  from unittest.mock import AsyncMock
11
11
 
12
+ import httpx
12
13
  import pytest
13
14
 
14
15
  from tests.sdk.conftest import MockDevboxView
@@ -377,6 +378,7 @@ class TestAsyncDevbox:
377
378
  tunnel=tunnel_view,
378
379
  )
379
380
  mock_async_client.devboxes.retrieve = AsyncMock(return_value=devbox_view_with_tunnel)
381
+ mock_async_client.base_url = httpx.URL("https://api.runloop.ai")
380
382
 
381
383
  devbox = AsyncDevbox(mock_async_client, "dbx_123")
382
384
  result = await devbox.get_tunnel_url(8080)
@@ -384,6 +386,28 @@ class TestAsyncDevbox:
384
386
  assert result == "https://8080-abc123xyz.tunnel.runloop.ai"
385
387
  mock_async_client.devboxes.retrieve.assert_called_once_with("dbx_123")
386
388
 
389
+ @pytest.mark.asyncio
390
+ async def test_get_tunnel_url_derives_domain_from_base_url(self, mock_async_client: AsyncMock) -> None:
391
+ """Test get_tunnel_url derives tunnel domain from client base_url."""
392
+ tunnel_view = SimpleNamespace(
393
+ tunnel_key="abc123xyz",
394
+ auth_mode="open",
395
+ create_time_ms=1234567890000,
396
+ )
397
+ devbox_view_with_tunnel = SimpleNamespace(
398
+ id="dbx_123",
399
+ status="running",
400
+ tunnel=tunnel_view,
401
+ )
402
+ mock_async_client.devboxes.retrieve = AsyncMock(return_value=devbox_view_with_tunnel)
403
+ devbox = AsyncDevbox(mock_async_client, "dbx_123")
404
+
405
+ mock_async_client.base_url = httpx.URL("https://api.runloop.pro")
406
+ assert await devbox.get_tunnel_url(8080) == "https://8080-abc123xyz.tunnel.runloop.pro"
407
+
408
+ mock_async_client.base_url = httpx.URL("http://127.0.0.1:8080")
409
+ assert await devbox.get_tunnel_url(8080) == "https://8080-abc123xyz.tunnel.127.0.0.1"
410
+
387
411
  @pytest.mark.asyncio
388
412
  async def test_get_tunnel_url_returns_none_when_no_tunnel(self, mock_async_client: AsyncMock) -> None:
389
413
  """Test get_tunnel_url returns None when no tunnel is enabled."""
@@ -9,6 +9,7 @@ from __future__ import annotations
9
9
  from types import SimpleNamespace
10
10
  from unittest.mock import Mock
11
11
 
12
+ import httpx
12
13
  import pytest
13
14
 
14
15
  from tests.sdk.conftest import (
@@ -373,6 +374,7 @@ class TestDevbox:
373
374
  tunnel=tunnel_view,
374
375
  )
375
376
  mock_client.devboxes.retrieve.return_value = devbox_view_with_tunnel
377
+ mock_client.base_url = httpx.URL("https://api.runloop.ai")
376
378
 
377
379
  devbox = Devbox(mock_client, "dbx_123")
378
380
  result = devbox.get_tunnel_url(8080)
@@ -380,6 +382,27 @@ class TestDevbox:
380
382
  assert result == "https://8080-abc123xyz.tunnel.runloop.ai"
381
383
  mock_client.devboxes.retrieve.assert_called_once_with("dbx_123")
382
384
 
385
+ def test_get_tunnel_url_derives_domain_from_base_url(self, mock_client: Mock) -> None:
386
+ """Test get_tunnel_url derives tunnel domain from client base_url."""
387
+ tunnel_view = SimpleNamespace(
388
+ tunnel_key="abc123xyz",
389
+ auth_mode="open",
390
+ create_time_ms=1234567890000,
391
+ )
392
+ devbox_view_with_tunnel = SimpleNamespace(
393
+ id="dbx_123",
394
+ status="running",
395
+ tunnel=tunnel_view,
396
+ )
397
+ mock_client.devboxes.retrieve.return_value = devbox_view_with_tunnel
398
+ devbox = Devbox(mock_client, "dbx_123")
399
+
400
+ mock_client.base_url = httpx.URL("https://api.runloop.pro")
401
+ assert devbox.get_tunnel_url(8080) == "https://8080-abc123xyz.tunnel.runloop.pro"
402
+
403
+ mock_client.base_url = httpx.URL("http://127.0.0.1:8080")
404
+ assert devbox.get_tunnel_url(8080) == "https://8080-abc123xyz.tunnel.127.0.0.1"
405
+
383
406
  def test_get_tunnel_url_returns_none_when_no_tunnel(self, mock_client: Mock) -> None:
384
407
  """Test get_tunnel_url returns None when no tunnel is enabled."""
385
408
  devbox_view_no_tunnel = SimpleNamespace(
@@ -2386,7 +2386,7 @@ wheels = [
2386
2386
 
2387
2387
  [[package]]
2388
2388
  name = "runloop-api-client"
2389
- version = "1.13.1"
2389
+ version = "1.13.2"
2390
2390
  source = { editable = "." }
2391
2391
  dependencies = [
2392
2392
  { name = "anyio" },
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.13.2"
3
- }