runloop-api-client 1.16.0__tar.gz → 1.17.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 (432) hide show
  1. runloop_api_client-1.17.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/CHANGELOG.md +27 -0
  3. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/PKG-INFO +1 -1
  4. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/pyproject.toml +1 -1
  5. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_base_client.py +4 -0
  6. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/devboxes/devboxes.py +6 -2
  8. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_view.py +1 -3
  9. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_create_params.py +3 -1
  10. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +3 -1
  11. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_view.py +2 -6
  12. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +1 -1
  13. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/broker_mount.py +9 -3
  14. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +7 -1
  15. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/launch_parameters.py +36 -2
  16. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/mount.py +7 -1
  17. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/broker_mount.py +9 -3
  18. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +7 -1
  19. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +36 -2
  20. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/mount.py +7 -1
  21. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_benchmarks.py +14 -0
  22. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_blueprints.py +46 -0
  23. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_devboxes.py +16 -0
  24. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_scenarios.py +42 -0
  25. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_client.py +48 -0
  26. runloop_api_client-1.16.0/.release-please-manifest.json +0 -3
  27. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/.gitignore +0 -0
  28. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/CONTRIBUTING.md +0 -0
  29. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/EXAMPLES.md +0 -0
  30. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/LICENSE +0 -0
  31. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/README-SDK.md +0 -0
  32. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/README.md +0 -0
  33. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/SECURITY.md +0 -0
  34. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/api.md +0 -0
  35. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/bin/check-release-environment +0 -0
  36. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/bin/publish-pypi +0 -0
  37. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/__init__.py +0 -0
  38. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/_harness.py +0 -0
  39. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/blueprint_with_build_context.py +0 -0
  40. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/devbox_from_blueprint_lifecycle.py +0 -0
  41. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/devbox_snapshot_resume.py +0 -0
  42. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/devbox_tunnel.py +0 -0
  43. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/example_types.py +0 -0
  44. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/mcp_github_tools.py +0 -0
  45. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/registry.py +0 -0
  46. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/examples/secrets_with_devbox.py +0 -0
  47. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/release-please-config.json +0 -0
  48. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/requirements-dev.lock +0 -0
  49. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop/lib/.keep +0 -0
  50. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/__init__.py +0 -0
  51. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_client.py +0 -0
  52. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_compat.py +0 -0
  53. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_constants.py +0 -0
  54. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_exceptions.py +0 -0
  55. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_files.py +0 -0
  56. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_models.py +0 -0
  57. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_qs.py +0 -0
  58. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_resource.py +0 -0
  59. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_response.py +0 -0
  60. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_streaming.py +0 -0
  61. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_types.py +0 -0
  62. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  63. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  64. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  65. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_json.py +0 -0
  66. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  67. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_path.py +0 -0
  68. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  69. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  70. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  71. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  72. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  73. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  74. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  75. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  76. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  77. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/lib/.keep +0 -0
  78. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/lib/__init__.py +0 -0
  79. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/lib/_ignore.py +0 -0
  80. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/lib/context_loader.py +0 -0
  81. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/lib/polling.py +0 -0
  82. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  83. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/pagination.py +0 -0
  84. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/py.typed +0 -0
  85. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/__init__.py +0 -0
  86. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/agents.py +0 -0
  87. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/axons/__init__.py +0 -0
  88. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/axons/axons.py +0 -0
  89. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/axons/sql.py +0 -0
  90. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
  91. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
  92. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/benchmarks.py +0 -0
  93. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  94. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  95. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  96. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  97. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  98. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/gateway_configs.py +0 -0
  99. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/mcp_configs.py +0 -0
  100. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/network_policies.py +0 -0
  101. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/objects.py +0 -0
  102. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  103. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  104. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  105. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  106. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/resources/secrets.py +0 -0
  107. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/__init__.py +0 -0
  108. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
  109. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/_types.py +0 -0
  110. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/agent.py +0 -0
  111. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_.py +0 -0
  112. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
  113. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_axon.py +0 -0
  114. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
  115. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
  116. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  117. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  118. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_execution.py +0 -0
  119. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  120. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
  121. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
  122. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  123. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  124. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
  125. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  126. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_scorer.py +0 -0
  127. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_secret.py +0 -0
  128. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  129. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
  130. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/axon.py +0 -0
  131. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/benchmark.py +0 -0
  132. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
  133. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
  134. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/devbox.py +0 -0
  135. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/execution.py +0 -0
  136. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
  137. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/gateway_config.py +0 -0
  138. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/mcp_config.py +0 -0
  139. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/network_policy.py +0 -0
  140. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/scenario.py +0 -0
  141. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
  142. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  143. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/scorer.py +0 -0
  144. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/secret.py +0 -0
  145. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
  146. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/storage_object.py +0 -0
  147. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/sdk/sync.py +0 -0
  148. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/__init__.py +0 -0
  149. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
  150. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
  151. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
  152. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/agent_view.py +0 -0
  153. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axon_create_params.py +0 -0
  154. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axon_event_view.py +0 -0
  155. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axon_list_params.py +0 -0
  156. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axon_list_view.py +0 -0
  157. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axon_publish_params.py +0 -0
  158. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axon_subscribe_sse_params.py +0 -0
  159. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axon_view.py +0 -0
  160. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/__init__.py +0 -0
  161. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
  162. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_batch_result_view.py +0 -0
  163. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_column_meta_view.py +0 -0
  164. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
  165. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_query_result_view.py +0 -0
  166. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_result_meta_view.py +0 -0
  167. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
  168. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_step_error_view.py +0 -0
  169. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/axons/sql_step_result_view.py +0 -0
  170. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  171. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  172. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
  173. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
  174. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
  175. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
  176. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  177. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  178. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
  179. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
  180. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  181. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  182. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  183. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  184. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
  185. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  186. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  187. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  188. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  189. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  190. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  191. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  192. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  193. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  194. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  195. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  196. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  197. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  198. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  199. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  200. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  201. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  202. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  203. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  204. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  205. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  206. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  207. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  208. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
  209. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  210. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
  211. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  212. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  213. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  214. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  215. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  216. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  217. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  218. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  219. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  220. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  221. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  222. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  223. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  224. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  225. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  226. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  227. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  228. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  229. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  230. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  231. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  232. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
  233. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  234. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
  235. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
  236. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/gateway_config_view.py +0 -0
  237. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/input_context.py +0 -0
  238. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  239. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  240. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  241. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
  242. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
  243. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
  244. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
  245. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/mcp_config_view.py +0 -0
  246. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
  247. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  248. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
  249. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
  250. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/network_policy_view.py +0 -0
  251. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  252. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  253. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  254. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  255. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  256. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/object_list_view.py +0 -0
  257. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/object_view.py +0 -0
  258. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/publish_result_view.py +0 -0
  259. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  260. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  261. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  262. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  263. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  264. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  265. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  266. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  267. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  268. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  269. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  270. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  271. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  272. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  273. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  274. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  275. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  276. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  277. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  278. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  279. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  280. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  281. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  282. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  283. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  284. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  285. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  286. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  287. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  288. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  289. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  290. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/secret_view.py +0 -0
  291. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  292. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  293. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  294. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  295. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  296. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  297. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  298. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  299. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  300. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  301. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  302. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  303. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/src/runloop_api_client/types/tunnel_view.py +0 -0
  304. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/__init__.py +0 -0
  305. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/__init__.py +0 -0
  306. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/axons/__init__.py +0 -0
  307. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/axons/test_sql.py +0 -0
  308. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/devboxes/__init__.py +0 -0
  309. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  310. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  311. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  312. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/scenarios/__init__.py +0 -0
  313. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  314. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  315. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_agents.py +0 -0
  316. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_axons.py +0 -0
  317. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_benchmark_jobs.py +0 -0
  318. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_benchmark_runs.py +0 -0
  319. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_gateway_configs.py +0 -0
  320. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_mcp_configs.py +0 -0
  321. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_network_policies.py +0 -0
  322. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_objects.py +0 -0
  323. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/api_resources/test_secrets.py +0 -0
  324. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/conftest.py +0 -0
  325. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sample_file.txt +0 -0
  326. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/__init__.py +0 -0
  327. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/async_devbox/__init__.py +0 -0
  328. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/async_devbox/conftest.py +0 -0
  329. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/async_devbox/test_core.py +0 -0
  330. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  331. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  332. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
  333. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/conftest.py +0 -0
  334. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/devbox/__init__.py +0 -0
  335. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/devbox/conftest.py +0 -0
  336. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/devbox/test_core.py +0 -0
  337. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
  338. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/devbox/test_interfaces.py +0 -0
  339. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/devbox/test_streaming.py +0 -0
  340. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_agent.py +0 -0
  341. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_agent.py +0 -0
  342. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_axon.py +0 -0
  343. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_benchmark.py +0 -0
  344. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_benchmark_run.py +0 -0
  345. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_blueprint.py +0 -0
  346. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_execution.py +0 -0
  347. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_execution_result.py +0 -0
  348. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_gateway_config.py +0 -0
  349. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_network_policy.py +0 -0
  350. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_ops.py +0 -0
  351. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_scenario.py +0 -0
  352. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_scenario_builder.py +0 -0
  353. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_scenario_run.py +0 -0
  354. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_scorer.py +0 -0
  355. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_snapshot.py +0 -0
  356. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_async_storage_object.py +0 -0
  357. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_axon.py +0 -0
  358. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_benchmark.py +0 -0
  359. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_benchmark_run.py +0 -0
  360. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_blueprint.py +0 -0
  361. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_execution.py +0 -0
  362. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_execution_result.py +0 -0
  363. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_gateway_config.py +0 -0
  364. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_helpers.py +0 -0
  365. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_network_policy.py +0 -0
  366. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_ops.py +0 -0
  367. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_scenario.py +0 -0
  368. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_scenario_builder.py +0 -0
  369. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_scenario_run.py +0 -0
  370. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_scorer.py +0 -0
  371. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_snapshot.py +0 -0
  372. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/sdk/test_storage_object.py +0 -0
  373. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/README.md +0 -0
  374. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/__init__.py +0 -0
  375. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/conftest.py +0 -0
  376. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/examples/__init__.py +0 -0
  377. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/examples/test_examples.py +0 -0
  378. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/README.md +0 -0
  379. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/__init__.py +0 -0
  380. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/conftest.py +0 -0
  381. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_agent.py +0 -0
  382. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
  383. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_axon.py +0 -0
  384. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
  385. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  386. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  387. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
  388. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  389. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  390. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  391. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  392. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_secret.py +0 -0
  393. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  394. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  395. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_axon.py +0 -0
  396. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_benchmark.py +0 -0
  397. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
  398. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_devbox.py +0 -0
  399. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_gateway_config.py +0 -0
  400. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_mcp_config.py +0 -0
  401. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_network_policy.py +0 -0
  402. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_scenario.py +0 -0
  403. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_scorer.py +0 -0
  404. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_sdk.py +0 -0
  405. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_secret.py +0 -0
  406. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
  407. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
  408. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/test_blueprints.py +0 -0
  409. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/test_devboxes.py +0 -0
  410. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/test_executions.py +0 -0
  411. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  412. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/test_snapshots.py +0 -0
  413. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/smoketests/utils.py +0 -0
  414. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_command_id.py +0 -0
  415. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_deepcopy.py +0 -0
  416. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_extract_files.py +0 -0
  417. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_files.py +0 -0
  418. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_models.py +0 -0
  419. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_polling.py +0 -0
  420. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_qs.py +0 -0
  421. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_required_args.py +0 -0
  422. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_response.py +0 -0
  423. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_streaming.py +0 -0
  424. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_transform.py +0 -0
  425. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_utils/test_context_loader.py +0 -0
  426. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_utils/test_datetime_parse.py +0 -0
  427. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_utils/test_json.py +0 -0
  428. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_utils/test_path.py +0 -0
  429. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_utils/test_proxy.py +0 -0
  430. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/test_utils/test_typing.py +0 -0
  431. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/tests/utils.py +0 -0
  432. {runloop_api_client-1.16.0 → runloop_api_client-1.17.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.17.0"
3
+ }
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.17.0 (2026-04-09)
4
+
5
+ Full Changelog: [v1.16.0...v1.17.0](https://github.com/runloopai/api-client-python/compare/v1.16.0...v1.17.0)
6
+
7
+ ### Features
8
+
9
+ * Add protocol, launch etc arguments to attach axon grpc, persist them in the db ([#8564](https://github.com/runloopai/api-client-python/issues/8564)) ([76ad33d](https://github.com/runloopai/api-client-python/commit/76ad33d7da11f4324b576f4b03a5eab437eecd2f))
10
+ * **api:** add lifecycle configuration to launch parameters ([#8606](https://github.com/runloopai/api-client-python/issues/8606)) ([1dd716d](https://github.com/runloopai/api-client-python/commit/1dd716d820546f3d088ad61a714a0d5c219124f4))
11
+ * stream kernel messages (kmsg) to devbox logs ([#8588](https://github.com/runloopai/api-client-python/issues/8588)) ([8f0ad67](https://github.com/runloopai/api-client-python/commit/8f0ad674d85e44b02aa0d708fe2037dbce6d5fca))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **broker:** remove codex in favor of codex via acp ([#8602](https://github.com/runloopai/api-client-python/issues/8602)) ([118162e](https://github.com/runloopai/api-client-python/commit/118162e3b64d531c5e2b66f66d47724b01fefb1c))
17
+ * **client:** preserve hardcoded query params when merging with user params ([5ce9b5d](https://github.com/runloopai/api-client-python/commit/5ce9b5d4cb882a93b802275622471086530146f0))
18
+ * propagate git ref to maverick for git-based agents ([#8608](https://github.com/runloopai/api-client-python/issues/8608)) ([fc633d6](https://github.com/runloopai/api-client-python/commit/fc633d64b89ac81aa00cdf5f3528b7b9a2e61627))
19
+
20
+
21
+ ### Chores
22
+
23
+ * Cleanup remaining junk left over from browser and computer use ([#8553](https://github.com/runloopai/api-client-python/issues/8553)) ([ddccee2](https://github.com/runloopai/api-client-python/commit/ddccee245aaea07df9d7b6a9b307cb9cd77878cb))
24
+
25
+
26
+ ### Documentation
27
+
28
+ * fix typo, fix repoc/git-based agent mounts ignoring custom mount paths ([#8537](https://github.com/runloopai/api-client-python/issues/8537)) ([638bc7a](https://github.com/runloopai/api-client-python/commit/638bc7ac64b07b686d5ddbb6756ac9fabd42dc32))
29
+
3
30
  ## 1.16.0 (2026-04-03)
4
31
 
5
32
  Full Changelog: [v1.15.0...v1.16.0](https://github.com/runloopai/api-client-python/compare/v1.15.0...v1.16.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 1.16.0
3
+ Version: 1.17.0
4
4
  Summary: The official Python library for the runloop API
5
5
  Project-URL: Homepage, https://github.com/runloopai/api-client-python
6
6
  Project-URL: Repository, https://github.com/runloopai/api-client-python
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "1.16.0"
3
+ version = "1.17.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -540,6 +540,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
540
540
  files = cast(HttpxRequestFiles, ForceMultipartDict())
541
541
 
542
542
  prepared_url = self._prepare_url(options.url)
543
+ # preserve hard-coded query params from the url
544
+ if params and prepared_url.query:
545
+ params = {**dict(prepared_url.params.items()), **params}
546
+ prepared_url = prepared_url.copy_with(raw_path=prepared_url.raw_path.split(b"?", 1)[0])
543
547
  if "_" in prepared_url.host:
544
548
  # work around https://github.com/encode/httpx/discussions/2880
545
549
  kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
@@ -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.16.0" # x-release-please-version
4
+ __version__ = "1.17.0" # x-release-please-version
@@ -761,7 +761,9 @@ class DevboxesResource(SyncAPIResource):
761
761
  policies, resetting the idle timer. Defaults to true if not specified.
762
762
 
763
763
  wake_on_http: When true, HTTP traffic to a suspended devbox will automatically trigger a
764
- resume. Defaults to false if not specified.
764
+ resume. Defaults to false if not specified. Prefer
765
+ lifecycle.resume_triggers.http on launch_parameters for new integrations. If
766
+ both are set, lifecycle.resume_triggers.http takes precedence.
765
767
 
766
768
  extra_headers: Send extra headers
767
769
 
@@ -2394,7 +2396,9 @@ class AsyncDevboxesResource(AsyncAPIResource):
2394
2396
  policies, resetting the idle timer. Defaults to true if not specified.
2395
2397
 
2396
2398
  wake_on_http: When true, HTTP traffic to a suspended devbox will automatically trigger a
2397
- resume. Defaults to false if not specified.
2399
+ resume. Defaults to false if not specified. Prefer
2400
+ lifecycle.resume_triggers.http on launch_parameters for new integrations. If
2401
+ both are set, lifecycle.resume_triggers.http takes precedence.
2398
2402
 
2399
2403
  extra_headers: Send extra headers
2400
2404
 
@@ -78,9 +78,7 @@ class BlueprintView(BaseModel):
78
78
  Services can be explicitly started when creating a Devbox.
79
79
  """
80
80
 
81
- devbox_capabilities: Optional[List[Literal["unknown", "computer_usage", "browser_usage", "docker_in_docker"]]] = (
82
- None
83
- )
81
+ devbox_capabilities: Optional[List[Literal["unknown", "docker_in_docker"]]] = None
84
82
  """Capabilities that will be available on Devbox."""
85
83
 
86
84
  failure_reason: Optional[Literal["out_of_memory", "out_of_disk", "build_failed"]] = None
@@ -153,5 +153,7 @@ class Tunnel(TypedDict, total=False):
153
153
  wake_on_http: Optional[bool]
154
154
  """
155
155
  When true, HTTP traffic to a suspended devbox will automatically trigger a
156
- resume. Defaults to false if not specified.
156
+ resume. Defaults to false if not specified. Prefer
157
+ lifecycle.resume_triggers.http on launch_parameters for new integrations. If
158
+ both are set, lifecycle.resume_triggers.http takes precedence.
157
159
  """
@@ -21,5 +21,7 @@ class DevboxEnableTunnelParams(TypedDict, total=False):
21
21
  wake_on_http: Optional[bool]
22
22
  """
23
23
  When true, HTTP traffic to a suspended devbox will automatically trigger a
24
- resume. Defaults to false if not specified.
24
+ resume. Defaults to false if not specified. Prefer
25
+ lifecycle.resume_triggers.http on launch_parameters for new integrations. If
26
+ both are set, lifecycle.resume_triggers.http takes precedence.
25
27
  """
@@ -56,12 +56,8 @@ class DevboxView(BaseModel):
56
56
  id: str
57
57
  """The ID of the Devbox."""
58
58
 
59
- capabilities: List[Literal["unknown", "computer_usage", "browser_usage", "docker_in_docker"]]
60
- """A list of capability groups this devbox has access to.
61
-
62
- This allows devboxes to be compatible with certain tools sets like computer
63
- usage APIs.
64
- """
59
+ capabilities: List[Literal["unknown", "docker_in_docker"]]
60
+ """A list of capability groups this devbox has access to."""
65
61
 
66
62
  create_time_ms: int
67
63
  """Creation time of the Devbox (Unix timestamp milliseconds)."""
@@ -12,7 +12,7 @@ class Log(BaseModel):
12
12
  level: str
13
13
  """Log line severity level."""
14
14
 
15
- source: Literal["setup_commands", "entrypoint", "exec", "files", "stats"]
15
+ source: Literal["setup_commands", "entrypoint", "exec", "files", "stats", "kmsg"]
16
16
  """The source of the log."""
17
17
 
18
18
  timestamp_ms: int
@@ -15,10 +15,16 @@ class BrokerMount(BaseModel):
15
15
  type: Literal["broker_mount"]
16
16
 
17
17
  agent_binary: Optional[str] = None
18
- """Binary to launch the agent (e.g., 'opencode'). Used by ACP broker."""
18
+ """Binary to launch the agent (e.g., 'opencode').
19
+
20
+ Used by protocols that launch a subprocess (acp, claude_json).
21
+ """
19
22
 
20
23
  launch_args: Optional[List[str]] = None
21
- """Arguments to pass to the agent command (e.g., ['acp']). Used by ACP broker."""
24
+ """Arguments to pass to the agent command (e.g., ['acp']).
25
+
26
+ Used by protocols that launch a subprocess (acp, claude_json).
27
+ """
22
28
 
23
- protocol: Optional[Literal["acp", "claude_json", "codex_app_server"]] = None
29
+ protocol: Optional[Literal["acp", "claude_json"]] = None
24
30
  """The protocol used by the broker to deliver events to the agent."""
@@ -11,7 +11,7 @@ class CodeMountParameters(BaseModel):
11
11
  repo_name: str
12
12
  """The name of the repo to mount.
13
13
 
14
- By default, code will be mounted at /home/user/{repo_name}s.
14
+ By default, code will be mounted at /home/user/{repo_name}.
15
15
  """
16
16
 
17
17
  repo_owner: str
@@ -20,5 +20,11 @@ class CodeMountParameters(BaseModel):
20
20
  token: Optional[str] = None
21
21
  """The authentication token necessary to pull repo."""
22
22
 
23
+ git_ref: Optional[str] = None
24
+ """Optional git ref (branch, tag, or commit SHA) to checkout.
25
+
26
+ Defaults to the repository default branch.
27
+ """
28
+
23
29
  install_command: Optional[str] = None
24
30
  """Installation command to install and setup repository."""
@@ -6,7 +6,31 @@ from typing_extensions import Literal
6
6
  from ..._models import BaseModel
7
7
  from .after_idle import AfterIdle
8
8
 
9
- __all__ = ["LaunchParameters", "UserParameters"]
9
+ __all__ = ["LaunchParameters", "Lifecycle", "LifecycleResumeTriggers", "UserParameters"]
10
+
11
+
12
+ class LifecycleResumeTriggers(BaseModel):
13
+ """Triggers that can resume a suspended Devbox."""
14
+
15
+ http: Optional[bool] = None
16
+ """When true, HTTP traffic to a suspended Devbox via tunnel will trigger a resume."""
17
+
18
+
19
+ class Lifecycle(BaseModel):
20
+ """Lifecycle configuration for idle and resume behavior.
21
+
22
+ Configure idle policy via lifecycle.after_idle (if both this and the top-level after_idle are set, they must match) and resume triggers via lifecycle.resume_triggers.
23
+ """
24
+
25
+ after_idle: Optional[AfterIdle] = None
26
+ """Configure Devbox lifecycle based on idle activity.
27
+
28
+ If both this and the top-level after_idle are set, they must have the same
29
+ value. Prefer this field for new integrations.
30
+ """
31
+
32
+ resume_triggers: Optional[LifecycleResumeTriggers] = None
33
+ """Triggers that can resume a suspended Devbox."""
10
34
 
11
35
 
12
36
  class UserParameters(BaseModel):
@@ -30,7 +54,9 @@ class LaunchParameters(BaseModel):
30
54
  after_idle: Optional[AfterIdle] = None
31
55
  """Configure Devbox lifecycle based on idle activity.
32
56
 
33
- If after_idle is set, Devbox will ignore keep_alive_time_seconds.
57
+ If after_idle is set, Devbox will ignore keep_alive_time_seconds. If both
58
+ after_idle and lifecycle.after_idle are set, they must have the same value. Use
59
+ lifecycle.after_idle instead.
34
60
  """
35
61
 
36
62
  architecture: Optional[Literal["x86_64", "arm64"]] = None
@@ -60,6 +86,14 @@ class LaunchParameters(BaseModel):
60
86
  launch_commands: Optional[List[str]] = None
61
87
  """Set of commands to be run at launch time, before the entrypoint process is run."""
62
88
 
89
+ lifecycle: Optional[Lifecycle] = None
90
+ """Lifecycle configuration for idle and resume behavior.
91
+
92
+ Configure idle policy via lifecycle.after_idle (if both this and the top-level
93
+ after_idle are set, they must match) and resume triggers via
94
+ lifecycle.resume_triggers.
95
+ """
96
+
63
97
  network_policy_id: Optional[str] = None
64
98
  """
65
99
  (Optional) ID of the network policy to apply to Devboxes launched with these
@@ -16,7 +16,7 @@ class CodeMount(BaseModel):
16
16
  repo_name: str
17
17
  """The name of the repo to mount.
18
18
 
19
- By default, code will be mounted at /home/user/{repo_name}s.
19
+ By default, code will be mounted at /home/user/{repo_name}.
20
20
  """
21
21
 
22
22
  repo_owner: str
@@ -27,6 +27,12 @@ class CodeMount(BaseModel):
27
27
  token: Optional[str] = None
28
28
  """The authentication token necessary to pull repo."""
29
29
 
30
+ git_ref: Optional[str] = None
31
+ """Optional git ref (branch, tag, or commit SHA) to checkout.
32
+
33
+ Defaults to the repository default branch.
34
+ """
35
+
30
36
  install_command: Optional[str] = None
31
37
  """Installation command to install and setup repository."""
32
38
 
@@ -17,10 +17,16 @@ class BrokerMount(TypedDict, total=False):
17
17
  type: Required[Literal["broker_mount"]]
18
18
 
19
19
  agent_binary: Optional[str]
20
- """Binary to launch the agent (e.g., 'opencode'). Used by ACP broker."""
20
+ """Binary to launch the agent (e.g., 'opencode').
21
+
22
+ Used by protocols that launch a subprocess (acp, claude_json).
23
+ """
21
24
 
22
25
  launch_args: Optional[SequenceNotStr[str]]
23
- """Arguments to pass to the agent command (e.g., ['acp']). Used by ACP broker."""
26
+ """Arguments to pass to the agent command (e.g., ['acp']).
27
+
28
+ Used by protocols that launch a subprocess (acp, claude_json).
29
+ """
24
30
 
25
- protocol: Optional[Literal["acp", "claude_json", "codex_app_server"]]
31
+ protocol: Optional[Literal["acp", "claude_json"]]
26
32
  """The protocol used by the broker to deliver events to the agent."""
@@ -12,7 +12,7 @@ class CodeMountParameters(TypedDict, total=False):
12
12
  repo_name: Required[str]
13
13
  """The name of the repo to mount.
14
14
 
15
- By default, code will be mounted at /home/user/{repo_name}s.
15
+ By default, code will be mounted at /home/user/{repo_name}.
16
16
  """
17
17
 
18
18
  repo_owner: Required[str]
@@ -21,5 +21,11 @@ class CodeMountParameters(TypedDict, total=False):
21
21
  token: Optional[str]
22
22
  """The authentication token necessary to pull repo."""
23
23
 
24
+ git_ref: Optional[str]
25
+ """Optional git ref (branch, tag, or commit SHA) to checkout.
26
+
27
+ Defaults to the repository default branch.
28
+ """
29
+
24
30
  install_command: Optional[str]
25
31
  """Installation command to install and setup repository."""
@@ -8,7 +8,31 @@ from typing_extensions import Literal, Required, TypedDict
8
8
  from ..._types import SequenceNotStr
9
9
  from .after_idle import AfterIdle
10
10
 
11
- __all__ = ["LaunchParameters", "UserParameters"]
11
+ __all__ = ["LaunchParameters", "Lifecycle", "LifecycleResumeTriggers", "UserParameters"]
12
+
13
+
14
+ class LifecycleResumeTriggers(TypedDict, total=False):
15
+ """Triggers that can resume a suspended Devbox."""
16
+
17
+ http: Optional[bool]
18
+ """When true, HTTP traffic to a suspended Devbox via tunnel will trigger a resume."""
19
+
20
+
21
+ class Lifecycle(TypedDict, total=False):
22
+ """Lifecycle configuration for idle and resume behavior.
23
+
24
+ Configure idle policy via lifecycle.after_idle (if both this and the top-level after_idle are set, they must match) and resume triggers via lifecycle.resume_triggers.
25
+ """
26
+
27
+ after_idle: Optional[AfterIdle]
28
+ """Configure Devbox lifecycle based on idle activity.
29
+
30
+ If both this and the top-level after_idle are set, they must have the same
31
+ value. Prefer this field for new integrations.
32
+ """
33
+
34
+ resume_triggers: Optional[LifecycleResumeTriggers]
35
+ """Triggers that can resume a suspended Devbox."""
12
36
 
13
37
 
14
38
  class UserParameters(TypedDict, total=False):
@@ -32,7 +56,9 @@ class LaunchParameters(TypedDict, total=False):
32
56
  after_idle: Optional[AfterIdle]
33
57
  """Configure Devbox lifecycle based on idle activity.
34
58
 
35
- If after_idle is set, Devbox will ignore keep_alive_time_seconds.
59
+ If after_idle is set, Devbox will ignore keep_alive_time_seconds. If both
60
+ after_idle and lifecycle.after_idle are set, they must have the same value. Use
61
+ lifecycle.after_idle instead.
36
62
  """
37
63
 
38
64
  architecture: Optional[Literal["x86_64", "arm64"]]
@@ -62,6 +88,14 @@ class LaunchParameters(TypedDict, total=False):
62
88
  launch_commands: Optional[SequenceNotStr[str]]
63
89
  """Set of commands to be run at launch time, before the entrypoint process is run."""
64
90
 
91
+ lifecycle: Optional[Lifecycle]
92
+ """Lifecycle configuration for idle and resume behavior.
93
+
94
+ Configure idle policy via lifecycle.after_idle (if both this and the top-level
95
+ after_idle are set, they must match) and resume triggers via
96
+ lifecycle.resume_triggers.
97
+ """
98
+
65
99
  network_policy_id: Optional[str]
66
100
  """
67
101
  (Optional) ID of the network policy to apply to Devboxes launched with these
@@ -16,7 +16,7 @@ class CodeMount(TypedDict, total=False):
16
16
  repo_name: Required[str]
17
17
  """The name of the repo to mount.
18
18
 
19
- By default, code will be mounted at /home/user/{repo_name}s.
19
+ By default, code will be mounted at /home/user/{repo_name}.
20
20
  """
21
21
 
22
22
  repo_owner: Required[str]
@@ -27,6 +27,12 @@ class CodeMount(TypedDict, total=False):
27
27
  token: Optional[str]
28
28
  """The authentication token necessary to pull repo."""
29
29
 
30
+ git_ref: Optional[str]
31
+ """Optional git ref (branch, tag, or commit SHA) to checkout.
32
+
33
+ Defaults to the repository default branch.
34
+ """
35
+
30
36
  install_command: Optional[str]
31
37
  """Installation command to install and setup repository."""
32
38
 
@@ -299,6 +299,13 @@ class TestBenchmarks:
299
299
  "custom_gb_memory": 0,
300
300
  "keep_alive_time_seconds": 0,
301
301
  "launch_commands": ["string"],
302
+ "lifecycle": {
303
+ "after_idle": {
304
+ "idle_time_seconds": 0,
305
+ "on_idle": "shutdown",
306
+ },
307
+ "resume_triggers": {"http": True},
308
+ },
302
309
  "network_policy_id": "network_policy_id",
303
310
  "required_services": ["string"],
304
311
  "resource_size_request": "X_SMALL",
@@ -674,6 +681,13 @@ class TestAsyncBenchmarks:
674
681
  "custom_gb_memory": 0,
675
682
  "keep_alive_time_seconds": 0,
676
683
  "launch_commands": ["string"],
684
+ "lifecycle": {
685
+ "after_idle": {
686
+ "idle_time_seconds": 0,
687
+ "on_idle": "shutdown",
688
+ },
689
+ "resume_triggers": {"http": True},
690
+ },
677
691
  "network_policy_id": "network_policy_id",
678
692
  "required_services": ["string"],
679
693
  "resource_size_request": "X_SMALL",
@@ -47,6 +47,7 @@ class TestBlueprints:
47
47
  "repo_name": "repo_name",
48
48
  "repo_owner": "repo_owner",
49
49
  "token": "token",
50
+ "git_ref": "git_ref",
50
51
  "install_command": "install_command",
51
52
  }
52
53
  ],
@@ -64,6 +65,13 @@ class TestBlueprints:
64
65
  "custom_gb_memory": 0,
65
66
  "keep_alive_time_seconds": 0,
66
67
  "launch_commands": ["string"],
68
+ "lifecycle": {
69
+ "after_idle": {
70
+ "idle_time_seconds": 0,
71
+ "on_idle": "shutdown",
72
+ },
73
+ "resume_triggers": {"http": True},
74
+ },
67
75
  "network_policy_id": "network_policy_id",
68
76
  "required_services": ["string"],
69
77
  "resource_size_request": "X_SMALL",
@@ -279,6 +287,13 @@ class TestBlueprints:
279
287
  "custom_gb_memory": 0,
280
288
  "keep_alive_time_seconds": 0,
281
289
  "launch_commands": ["string"],
290
+ "lifecycle": {
291
+ "after_idle": {
292
+ "idle_time_seconds": 0,
293
+ "on_idle": "shutdown",
294
+ },
295
+ "resume_triggers": {"http": True},
296
+ },
282
297
  "network_policy_id": "network_policy_id",
283
298
  "required_services": ["string"],
284
299
  "resource_size_request": "X_SMALL",
@@ -420,6 +435,7 @@ class TestBlueprints:
420
435
  "repo_name": "repo_name",
421
436
  "repo_owner": "repo_owner",
422
437
  "token": "token",
438
+ "git_ref": "git_ref",
423
439
  "install_command": "install_command",
424
440
  }
425
441
  ],
@@ -437,6 +453,13 @@ class TestBlueprints:
437
453
  "custom_gb_memory": 0,
438
454
  "keep_alive_time_seconds": 0,
439
455
  "launch_commands": ["string"],
456
+ "lifecycle": {
457
+ "after_idle": {
458
+ "idle_time_seconds": 0,
459
+ "on_idle": "shutdown",
460
+ },
461
+ "resume_triggers": {"http": True},
462
+ },
440
463
  "network_policy_id": "network_policy_id",
441
464
  "required_services": ["string"],
442
465
  "resource_size_request": "X_SMALL",
@@ -521,6 +544,7 @@ class TestAsyncBlueprints:
521
544
  "repo_name": "repo_name",
522
545
  "repo_owner": "repo_owner",
523
546
  "token": "token",
547
+ "git_ref": "git_ref",
524
548
  "install_command": "install_command",
525
549
  }
526
550
  ],
@@ -538,6 +562,13 @@ class TestAsyncBlueprints:
538
562
  "custom_gb_memory": 0,
539
563
  "keep_alive_time_seconds": 0,
540
564
  "launch_commands": ["string"],
565
+ "lifecycle": {
566
+ "after_idle": {
567
+ "idle_time_seconds": 0,
568
+ "on_idle": "shutdown",
569
+ },
570
+ "resume_triggers": {"http": True},
571
+ },
541
572
  "network_policy_id": "network_policy_id",
542
573
  "required_services": ["string"],
543
574
  "resource_size_request": "X_SMALL",
@@ -753,6 +784,13 @@ class TestAsyncBlueprints:
753
784
  "custom_gb_memory": 0,
754
785
  "keep_alive_time_seconds": 0,
755
786
  "launch_commands": ["string"],
787
+ "lifecycle": {
788
+ "after_idle": {
789
+ "idle_time_seconds": 0,
790
+ "on_idle": "shutdown",
791
+ },
792
+ "resume_triggers": {"http": True},
793
+ },
756
794
  "network_policy_id": "network_policy_id",
757
795
  "required_services": ["string"],
758
796
  "resource_size_request": "X_SMALL",
@@ -894,6 +932,7 @@ class TestAsyncBlueprints:
894
932
  "repo_name": "repo_name",
895
933
  "repo_owner": "repo_owner",
896
934
  "token": "token",
935
+ "git_ref": "git_ref",
897
936
  "install_command": "install_command",
898
937
  }
899
938
  ],
@@ -911,6 +950,13 @@ class TestAsyncBlueprints:
911
950
  "custom_gb_memory": 0,
912
951
  "keep_alive_time_seconds": 0,
913
952
  "launch_commands": ["string"],
953
+ "lifecycle": {
954
+ "after_idle": {
955
+ "idle_time_seconds": 0,
956
+ "on_idle": "shutdown",
957
+ },
958
+ "resume_triggers": {"http": True},
959
+ },
914
960
  "network_policy_id": "network_policy_id",
915
961
  "required_services": ["string"],
916
962
  "resource_size_request": "X_SMALL",
@@ -60,6 +60,7 @@ class TestDevboxes:
60
60
  "repo_name": "repo_name",
61
61
  "repo_owner": "repo_owner",
62
62
  "token": "token",
63
+ "git_ref": "git_ref",
63
64
  "install_command": "install_command",
64
65
  }
65
66
  ],
@@ -84,6 +85,13 @@ class TestDevboxes:
84
85
  "custom_gb_memory": 0,
85
86
  "keep_alive_time_seconds": 0,
86
87
  "launch_commands": ["string"],
88
+ "lifecycle": {
89
+ "after_idle": {
90
+ "idle_time_seconds": 0,
91
+ "on_idle": "shutdown",
92
+ },
93
+ "resume_triggers": {"http": True},
94
+ },
87
95
  "network_policy_id": "network_policy_id",
88
96
  "required_services": ["string"],
89
97
  "resource_size_request": "X_SMALL",
@@ -1676,6 +1684,7 @@ class TestAsyncDevboxes:
1676
1684
  "repo_name": "repo_name",
1677
1685
  "repo_owner": "repo_owner",
1678
1686
  "token": "token",
1687
+ "git_ref": "git_ref",
1679
1688
  "install_command": "install_command",
1680
1689
  }
1681
1690
  ],
@@ -1700,6 +1709,13 @@ class TestAsyncDevboxes:
1700
1709
  "custom_gb_memory": 0,
1701
1710
  "keep_alive_time_seconds": 0,
1702
1711
  "launch_commands": ["string"],
1712
+ "lifecycle": {
1713
+ "after_idle": {
1714
+ "idle_time_seconds": 0,
1715
+ "on_idle": "shutdown",
1716
+ },
1717
+ "resume_triggers": {"http": True},
1718
+ },
1703
1719
  "network_policy_id": "network_policy_id",
1704
1720
  "required_services": ["string"],
1705
1721
  "resource_size_request": "X_SMALL",