runloop_api_client 1.23.1__tar.gz → 1.23.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 (468) hide show
  1. runloop_api_client-1.23.3/.release-please-manifest.json +3 -0
  2. runloop_api_client-1.23.3/AGENTS.md +13 -0
  3. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/CHANGELOG.md +24 -3
  4. runloop_api_client-1.23.3/CLAUDE.md +1 -0
  5. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/PKG-INFO +1 -1
  6. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/api.md +0 -3
  7. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/pyproject.toml +1 -1
  8. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_constants.py +10 -0
  9. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_version.py +1 -1
  10. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/lib/wait_for_status.py +26 -9
  11. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/blueprints.py +0 -178
  12. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/devboxes/devboxes.py +26 -18
  13. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/devboxes/executions.py +3 -1
  14. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/__init__.py +0 -4
  15. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_create_params.py +0 -3
  16. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scope_entry_view.py +0 -1
  17. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scope_entry_view_param.py +0 -1
  18. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/launch_parameters.py +3 -4
  19. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/launch_parameters.py +3 -4
  20. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_benchmarks.py +2 -0
  21. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_blueprints.py +4 -168
  22. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_devboxes.py +2 -2
  23. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_scenarios.py +6 -0
  24. runloop_api_client-1.23.1/.release-please-manifest.json +0 -3
  25. runloop_api_client-1.23.1/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -53
  26. runloop_api_client-1.23.1/src/runloop_api_client/types/inspection_source_param.py +0 -18
  27. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/.gitignore +0 -0
  28. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/CONTRIBUTING.md +0 -0
  29. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/EXAMPLES.md +0 -0
  30. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/LICENSE +0 -0
  31. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/README-SDK.md +0 -0
  32. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/README.md +0 -0
  33. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/SECURITY.md +0 -0
  34. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/bin/check-release-environment +0 -0
  35. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/bin/publish-pypi +0 -0
  36. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/__init__.py +0 -0
  37. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/_harness.py +0 -0
  38. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/blueprint_with_build_context.py +0 -0
  39. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/devbox_from_blueprint_lifecycle.py +0 -0
  40. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/devbox_snapshot_resume.py +0 -0
  41. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/devbox_snapshots.py +0 -0
  42. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/devbox_tunnel.py +0 -0
  43. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/example_types.py +0 -0
  44. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/mcp_github_tools.py +0 -0
  45. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/registry.py +0 -0
  46. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/examples/secrets_with_devbox.py +0 -0
  47. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/release-please-config.json +0 -0
  48. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/requirements-dev.lock +0 -0
  49. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop/lib/.keep +0 -0
  50. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/__init__.py +0 -0
  51. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_base_client.py +0 -0
  52. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_client.py +0 -0
  53. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_compat.py +0 -0
  54. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_exceptions.py +0 -0
  55. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_files.py +0 -0
  56. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_models.py +0 -0
  57. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_qs.py +0 -0
  58. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_resource.py +0 -0
  59. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_response.py +0 -0
  60. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_streaming.py +0 -0
  61. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_types.py +0 -0
  62. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/__init__.py +0 -0
  63. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_compat.py +0 -0
  64. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  65. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_json.py +0 -0
  66. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_logs.py +0 -0
  67. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_path.py +0 -0
  68. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_proxy.py +0 -0
  69. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_reflection.py +0 -0
  70. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  71. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_streams.py +0 -0
  72. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_sync.py +0 -0
  73. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_transform.py +0 -0
  74. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_typing.py +0 -0
  75. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_utils.py +0 -0
  76. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/_utils/_validation.py +0 -0
  77. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/lib/.keep +0 -0
  78. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/lib/__init__.py +0 -0
  79. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/lib/_ignore.py +0 -0
  80. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/lib/context_loader.py +0 -0
  81. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/lib/polling.py +0 -0
  82. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/lib/polling_async.py +0 -0
  83. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/pagination.py +0 -0
  84. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/py.typed +0 -0
  85. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/__init__.py +0 -0
  86. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/accounts.py +0 -0
  87. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/agents.py +0 -0
  88. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/apikeys.py +0 -0
  89. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/axons/__init__.py +0 -0
  90. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/axons/axons.py +0 -0
  91. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/axons/events.py +0 -0
  92. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/axons/sql.py +0 -0
  93. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
  94. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
  95. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/benchmarks.py +0 -0
  96. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  97. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  98. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  99. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/gateway_configs.py +0 -0
  100. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/mcp_configs.py +0 -0
  101. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/network_policies.py +0 -0
  102. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/objects.py +0 -0
  103. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/pty.py +0 -0
  104. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/restricted_keys.py +0 -0
  105. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  106. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  107. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  108. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  109. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/resources/secrets.py +0 -0
  110. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/__init__.py +0 -0
  111. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/_helpers.py +0 -0
  112. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/_types.py +0 -0
  113. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/agent.py +0 -0
  114. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_.py +0 -0
  115. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_agent.py +0 -0
  116. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_axon.py +0 -0
  117. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
  118. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
  119. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  120. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  121. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_execution.py +0 -0
  122. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  123. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
  124. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
  125. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  126. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  127. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
  128. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  129. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_scorer.py +0 -0
  130. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_secret.py +0 -0
  131. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  132. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
  133. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/axon.py +0 -0
  134. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/benchmark.py +0 -0
  135. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
  136. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/blueprint.py +0 -0
  137. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/devbox.py +0 -0
  138. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/execution.py +0 -0
  139. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/execution_result.py +0 -0
  140. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/gateway_config.py +0 -0
  141. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/mcp_config.py +0 -0
  142. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/network_policy.py +0 -0
  143. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/scenario.py +0 -0
  144. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
  145. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  146. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/scorer.py +0 -0
  147. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/secret.py +0 -0
  148. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/snapshot.py +0 -0
  149. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/storage_object.py +0 -0
  150. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/sdk/sync.py +0 -0
  151. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/account_view.py +0 -0
  152. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/agent_create_params.py +0 -0
  153. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/agent_devbox_counts_view.py +0 -0
  154. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/agent_list_params.py +0 -0
  155. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/agent_list_public_params.py +0 -0
  156. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/agent_list_view.py +0 -0
  157. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/agent_view.py +0 -0
  158. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/api_key_created_view.py +0 -0
  159. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/apikey_create_params.py +0 -0
  160. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axon_create_params.py +0 -0
  161. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axon_event_view.py +0 -0
  162. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axon_list_params.py +0 -0
  163. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axon_list_view.py +0 -0
  164. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axon_publish_params.py +0 -0
  165. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axon_subscribe_sse_params.py +0 -0
  166. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axon_view.py +0 -0
  167. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/__init__.py +0 -0
  168. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/axon_event_list_view.py +0 -0
  169. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/event_list_params.py +0 -0
  170. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
  171. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_batch_result_view.py +0 -0
  172. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_column_meta_view.py +0 -0
  173. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
  174. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_query_result_view.py +0 -0
  175. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_result_meta_view.py +0 -0
  176. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
  177. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_step_error_view.py +0 -0
  178. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/axons/sql_step_result_view.py +0 -0
  179. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  180. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  181. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
  182. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
  183. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
  184. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
  185. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  186. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  187. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
  188. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
  189. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  190. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  191. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  192. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  193. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
  194. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/benchmark_view.py +0 -0
  195. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  196. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  197. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  198. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  199. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  200. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  201. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  202. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  203. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  204. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/blueprint_view.py +0 -0
  205. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  206. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  207. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  208. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +0 -0
  209. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  210. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  211. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  212. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  213. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  214. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  215. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  216. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  217. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  218. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
  219. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  220. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
  221. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  222. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  223. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  224. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  225. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  226. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  227. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_view.py +0 -0
  228. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  229. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  230. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  231. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  232. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  233. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  234. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  235. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  236. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  237. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  238. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  239. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  240. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  241. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  242. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  243. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  244. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
  245. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  246. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
  247. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
  248. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/gateway_config_view.py +0 -0
  249. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/input_context.py +0 -0
  250. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/input_context_param.py +0 -0
  251. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  252. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
  253. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
  254. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
  255. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
  256. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/mcp_config_view.py +0 -0
  257. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
  258. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  259. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
  260. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
  261. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/network_policy_view.py +0 -0
  262. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/object_create_params.py +0 -0
  263. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/object_download_params.py +0 -0
  264. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  265. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/object_list_params.py +0 -0
  266. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  267. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/object_list_view.py +0 -0
  268. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/object_view.py +0 -0
  269. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/pty_connect_params.py +0 -0
  270. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/pty_connect_view.py +0 -0
  271. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/pty_control_params.py +0 -0
  272. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/pty_control_result_view.py +0 -0
  273. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/pty_tunnel_view.py +0 -0
  274. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/publish_result_view.py +0 -0
  275. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/restricted_key_create_params.py +0 -0
  276. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/restricted_key_created_view.py +0 -0
  277. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  278. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  279. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_environment.py +0 -0
  280. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  281. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  282. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  283. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  284. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  285. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  286. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  287. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenario_view.py +0 -0
  288. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  289. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  290. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  291. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  292. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  293. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  294. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  295. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  296. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  297. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scoring_contract.py +0 -0
  298. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  299. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  300. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  301. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scoring_function.py +0 -0
  302. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  303. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  304. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/secret_create_params.py +0 -0
  305. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/secret_list_params.py +0 -0
  306. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/secret_list_view.py +0 -0
  307. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/secret_update_params.py +0 -0
  308. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/secret_view.py +0 -0
  309. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/__init__.py +0 -0
  310. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  311. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  312. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  313. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/broker_mount.py +0 -0
  314. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  315. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/lifecycle_configuration.py +0 -0
  316. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/lifecycle_hooks.py +0 -0
  317. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/mount.py +0 -0
  318. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  319. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/resume_triggers.py +0 -0
  320. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  321. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  322. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  323. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  324. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  325. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/broker_mount.py +0 -0
  326. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  327. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/lifecycle_configuration.py +0 -0
  328. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/lifecycle_hooks.py +0 -0
  329. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  330. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  331. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/resume_triggers.py +0 -0
  332. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  333. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/src/runloop_api_client/types/tunnel_view.py +0 -0
  334. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/__init__.py +0 -0
  335. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/__init__.py +0 -0
  336. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/axons/__init__.py +0 -0
  337. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/axons/test_events.py +0 -0
  338. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/axons/test_sql.py +0 -0
  339. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/devboxes/__init__.py +0 -0
  340. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  341. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/devboxes/test_executions.py +0 -0
  342. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/devboxes/test_logs.py +0 -0
  343. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/scenarios/__init__.py +0 -0
  344. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/scenarios/test_runs.py +0 -0
  345. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/scenarios/test_scorers.py +0 -0
  346. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_accounts.py +0 -0
  347. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_agents.py +0 -0
  348. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_apikeys.py +0 -0
  349. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_axons.py +0 -0
  350. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_benchmark_jobs.py +0 -0
  351. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_benchmark_runs.py +0 -0
  352. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_gateway_configs.py +0 -0
  353. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_mcp_configs.py +0 -0
  354. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_network_policies.py +0 -0
  355. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_objects.py +0 -0
  356. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_pty.py +0 -0
  357. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_restricted_keys.py +0 -0
  358. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/api_resources/test_secrets.py +0 -0
  359. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/conftest.py +0 -0
  360. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sample_file.txt +0 -0
  361. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/__init__.py +0 -0
  362. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/async_devbox/__init__.py +0 -0
  363. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/async_devbox/conftest.py +0 -0
  364. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/async_devbox/test_core.py +0 -0
  365. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  366. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  367. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/async_devbox/test_streaming.py +0 -0
  368. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/conftest.py +0 -0
  369. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/devbox/__init__.py +0 -0
  370. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/devbox/conftest.py +0 -0
  371. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/devbox/test_core.py +0 -0
  372. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/devbox/test_edge_cases.py +0 -0
  373. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/devbox/test_interfaces.py +0 -0
  374. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/devbox/test_streaming.py +0 -0
  375. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_agent.py +0 -0
  376. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_agent.py +0 -0
  377. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_axon.py +0 -0
  378. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_benchmark.py +0 -0
  379. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_benchmark_run.py +0 -0
  380. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_blueprint.py +0 -0
  381. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_execution.py +0 -0
  382. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_execution_result.py +0 -0
  383. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_gateway_config.py +0 -0
  384. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_network_policy.py +0 -0
  385. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_ops.py +0 -0
  386. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_scenario.py +0 -0
  387. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_scenario_builder.py +0 -0
  388. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_scenario_run.py +0 -0
  389. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_scorer.py +0 -0
  390. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_snapshot.py +0 -0
  391. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_async_storage_object.py +0 -0
  392. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_axon.py +0 -0
  393. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_benchmark.py +0 -0
  394. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_benchmark_run.py +0 -0
  395. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_blueprint.py +0 -0
  396. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_execution.py +0 -0
  397. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_execution_result.py +0 -0
  398. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_gateway_config.py +0 -0
  399. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_helpers.py +0 -0
  400. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_network_policy.py +0 -0
  401. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_ops.py +0 -0
  402. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_scenario.py +0 -0
  403. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_scenario_builder.py +0 -0
  404. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_scenario_run.py +0 -0
  405. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_scorer.py +0 -0
  406. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_snapshot.py +0 -0
  407. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/sdk/test_storage_object.py +0 -0
  408. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/README.md +0 -0
  409. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/__init__.py +0 -0
  410. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/conftest.py +0 -0
  411. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/examples/__init__.py +0 -0
  412. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/examples/test_examples.py +0 -0
  413. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/README.md +0 -0
  414. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/__init__.py +0 -0
  415. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/conftest.py +0 -0
  416. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_agent.py +0 -0
  417. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_agent.py +0 -0
  418. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_axon.py +0 -0
  419. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
  420. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  421. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  422. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
  423. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  424. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  425. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  426. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  427. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_secret.py +0 -0
  428. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  429. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  430. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_axon.py +0 -0
  431. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_benchmark.py +0 -0
  432. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_blueprint.py +0 -0
  433. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_devbox.py +0 -0
  434. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_gateway_config.py +0 -0
  435. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_mcp_config.py +0 -0
  436. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_network_policy.py +0 -0
  437. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_scenario.py +0 -0
  438. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_scorer.py +0 -0
  439. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_sdk.py +0 -0
  440. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_secret.py +0 -0
  441. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_snapshot.py +0 -0
  442. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/sdk/test_storage_object.py +0 -0
  443. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/test_blueprints.py +0 -0
  444. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/test_devboxes.py +0 -0
  445. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/test_executions.py +0 -0
  446. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  447. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/test_snapshots.py +0 -0
  448. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/smoketests/utils.py +0 -0
  449. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_client.py +0 -0
  450. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_command_id.py +0 -0
  451. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_extract_files.py +0 -0
  452. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_files.py +0 -0
  453. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_models.py +0 -0
  454. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_polling.py +0 -0
  455. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_qs.py +0 -0
  456. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_required_args.py +0 -0
  457. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_response.py +0 -0
  458. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_shared_pool.py +0 -0
  459. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_streaming.py +0 -0
  460. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_transform.py +0 -0
  461. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_utils/test_context_loader.py +0 -0
  462. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_utils/test_datetime_parse.py +0 -0
  463. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_utils/test_json.py +0 -0
  464. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_utils/test_path.py +0 -0
  465. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_utils/test_proxy.py +0 -0
  466. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/test_utils/test_typing.py +0 -0
  467. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/tests/utils.py +0 -0
  468. {runloop_api_client-1.23.1 → runloop_api_client-1.23.3}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.23.3"
3
+ }
@@ -0,0 +1,13 @@
1
+ # Agent Guidance
2
+
3
+ ## Pull Request Hygiene
4
+
5
+ - Use Conventional Commits format for PR titles and commit subjects. Follow https://www.conventionalcommits.org/en/v1.0.0/#summary with a lowercase type, optional scope, colon, and short imperative summary, for example `fix(devbox): remove stale helper argument`.
6
+ - Match the repository's existing release style when choosing a type and scope. Prefer `fix(scope): ...`, `feat(scope): ...`, `docs(scope): ...`, or `chore(scope): ...` as appropriate.
7
+ - When asked to create, open, or update a PR, do not hand the turn back to the user until the branch is pushed, the PR is open or updated, relevant local validation has run where practical, and GitHub CI is passing.
8
+ - If CI cannot pass because of an external service, permissions, unavailable secrets, or another blocker outside the branch changes, report the blocking check with a link and a concise explanation.
9
+
10
+ ## Generated Code
11
+
12
+ - Most SDK code is generated. Prefer fixing generated API surfaces at the OpenAPI/Stainless source when possible.
13
+ - Keep handwritten changes small and clearly separated from generated updates so future generations can be reviewed safely.
@@ -1,12 +1,33 @@
1
1
  # Changelog
2
2
 
3
- ## 1.23.1 (2026-06-09)
3
+ ## 1.23.3 (2026-07-10)
4
4
 
5
- Full Changelog: [v1.23.0...v1.23.1](https://github.com/runloopai/api-client-python/compare/v1.23.0...v1.23.1)
5
+ Full Changelog: [v1.23.2...v1.23.3](https://github.com/runloopai/api-client-python/compare/v1.23.2...v1.23.3)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **blueprints:** remove create_from_inspection endpoint ([fa8a630](https://github.com/runloopai/api-client-python/commit/fa8a630e348147eb6c3c0a0b2f8c7fc325ad6d1f))
10
+ * **devbox:** remove stale repo_connection_id helper arg ([#813](https://github.com/runloopai/api-client-python/issues/813)) ([4b5a933](https://github.com/runloopai/api-client-python/commit/4b5a933b2ebefcf160015ee64ab8ec9d7fd9c5e5))
11
+ * retry polling on HTTP/2 GOAWAY connection errors ([#817](https://github.com/runloopai/api-client-python/issues/817)) ([b0cc07c](https://github.com/runloopai/api-client-python/commit/b0cc07c35a3bd5796e9fe26df50d90981d54fec9))
12
+ * update test script to work without lsof on CI ([#798](https://github.com/runloopai/api-client-python/issues/798)) ([50507eb](https://github.com/runloopai/api-client-python/commit/50507eba5537386e9af72ba3e2629cfac89c2391))
13
+
14
+
15
+ ### Chores
16
+
17
+ * **devbox:** cap forwarded long-poll timeout and add client read margin ([#818](https://github.com/runloopai/api-client-python/issues/818)) ([c04f867](https://github.com/runloopai/api-client-python/commit/c04f867543c8ef0f2328c3235f9a26965dda2432))
18
+
19
+
20
+ ### Documentation
21
+
22
+ * add agent PR guidance ([#814](https://github.com/runloopai/api-client-python/issues/814)) ([3c483bd](https://github.com/runloopai/api-client-python/commit/3c483bdfd46b48afe2b0f2e68d9f4326f980414a))
23
+
24
+ ## 1.23.2 (2026-06-09)
25
+
26
+ Full Changelog: [v1.23.1...v1.23.2](https://github.com/runloopai/api-client-python/compare/v1.23.1...v1.23.2)
6
27
 
7
28
  ### Features
8
29
 
9
- * **devbox:** add provisioning_tier (flex) to LaunchParameters (alpha) ([#808](https://github.com/runloopai/api-client-python/issues/808)) ([cb59e8b](https://github.com/runloopai/api-client-python/commit/cb59e8bcb4578a8abc8c31902a80ec491949310b))
30
+ * **devbox:** expose provisioning_tier=flex in API + SDKs (alpha) ([#9700](https://github.com/runloopai/api-client-python/issues/9700)) ([139bef6](https://github.com/runloopai/api-client-python/commit/139bef6738aef78b80c6eae23ae40774a8356edd))
10
31
 
11
32
  ## 1.23.0 (2026-06-05)
12
33
 
@@ -0,0 +1 @@
1
+ AGENTS.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 1.23.1
3
+ Version: 1.23.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
@@ -174,14 +174,12 @@ Types:
174
174
 
175
175
  ```python
176
176
  from runloop_api_client.types import (
177
- BlueprintBuildFromInspectionParameters,
178
177
  BlueprintBuildLog,
179
178
  BlueprintBuildLogsListView,
180
179
  BlueprintBuildParameters,
181
180
  BlueprintListView,
182
181
  BlueprintPreviewView,
183
182
  BlueprintView,
184
- InspectionSource,
185
183
  )
186
184
  ```
187
185
 
@@ -192,7 +190,6 @@ Methods:
192
190
  - <code title="get /v1/blueprints/{id}">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/blueprint_view.py">BlueprintView</a></code>
193
191
  - <code title="get /v1/blueprints">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">list</a>(\*\*<a href="src/runloop_api_client/types/blueprint_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_view.py">SyncBlueprintsCursorIDPage[BlueprintView]</a></code>
194
192
  - <code title="post /v1/blueprints/{id}/delete">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">delete</a>(id) -> object</code>
195
- - <code title="post /v1/blueprints/create_from_inspection">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">create_from_inspection</a>(\*\*<a href="src/runloop_api_client/types/blueprint_create_from_inspection_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_view.py">BlueprintView</a></code>
196
193
  - <code title="get /v1/blueprints/list_public">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/blueprint_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_view.py">SyncBlueprintsCursorIDPage[BlueprintView]</a></code>
197
194
  - <code title="get /v1/blueprints/{id}/logs">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">logs</a>(id) -> <a href="./src/runloop_api_client/types/blueprint_build_logs_list_view.py">BlueprintBuildLogsListView</a></code>
198
195
  - <code title="post /v1/blueprints/preview">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">preview</a>(\*\*<a href="src/runloop_api_client/types/blueprint_preview_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_preview_view.py">BlueprintPreviewView</a></code>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "1.23.1"
3
+ version = "1.23.3"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -13,6 +13,16 @@ DEFAULT_CONNECTION_LIMITS = httpx.Limits(max_connections=20, max_keepalive_conne
13
13
  INITIAL_RETRY_DELAY = 1.0
14
14
  MAX_RETRY_DELAY = 60.0
15
15
 
16
+ # Long-poll endpoints tell the server how long to hold the connection and expect a
17
+ # graceful 408 when that hold elapses. The per-request client read timeout must
18
+ # exceed the server hold so the server returns 408 first instead of the client
19
+ # aborting the stream (RST_STREAM) and surfacing a connection error.
20
+ LONG_POLL_CLIENT_BUFFER_SECONDS = 5.0
21
+
22
+ # Authoritative server-side long-poll hold clamps, mirrored from the mux controllers.
23
+ STATUS_LONG_POLL_SERVER_MAX_SECONDS = 30.0
24
+ EXEC_LONG_POLL_SERVER_MAX_SECONDS = 25.0
25
+
16
26
  # Maximum allowed size (in bytes) for individual entries in `file_mounts` when creating Blueprints
17
27
  # NOTE: Empirically, ~131,000 is the maximum command length after
18
28
  # base64 encoding; 98,250 is the pre-encoded limit that stays within that bound.
@@ -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.23.1" # x-release-please-version
4
+ __version__ = "1.23.3" # x-release-please-version
@@ -13,8 +13,11 @@ from __future__ import annotations
13
13
  import time
14
14
  from typing import List, Type, TypeVar, Callable, Optional, Awaitable
15
15
 
16
+ import httpx
17
+
16
18
  from .polling import PollingConfig, PollingTimeout
17
- from .._exceptions import APIStatusError, APITimeoutError
19
+ from .._constants import LONG_POLL_CLIENT_BUFFER_SECONDS, STATUS_LONG_POLL_SERVER_MAX_SECONDS
20
+ from .._exceptions import APIStatusError, APIConnectionError
18
21
 
19
22
  T = TypeVar("T")
20
23
 
@@ -27,6 +30,7 @@ def wait_for_status(
27
30
  placeholder: Callable[[], T],
28
31
  is_terminal: Callable[[T], bool],
29
32
  polling_config: Optional[PollingConfig] = None,
33
+ server_max_timeout_seconds: float = STATUS_LONG_POLL_SERVER_MAX_SECONDS,
30
34
  ) -> T:
31
35
  """Sync long-poll for a status change, retrying until *is_terminal* or timeout."""
32
36
  config = polling_config or PollingConfig()
@@ -42,15 +46,21 @@ def wait_for_status(
42
46
  if remaining <= 0:
43
47
  raise PollingTimeout(f"Exceeded timeout of {timeout} seconds", last_result)
44
48
 
49
+ # Cap the server hold at what the server honors, and give the client read
50
+ # timeout a buffer beyond it so the server returns 408 first.
51
+ server_timeout = min(remaining, server_max_timeout_seconds)
45
52
  try:
46
53
  last_result = post_fn(
47
54
  path,
48
- body={"statuses": statuses, "timeout_seconds": remaining},
55
+ body={"statuses": statuses, "timeout_seconds": server_timeout},
49
56
  cast_to=cast_to,
50
- options={"max_retries": 0},
57
+ options={
58
+ "max_retries": 0,
59
+ "timeout": httpx.Timeout(server_timeout + LONG_POLL_CLIENT_BUFFER_SECONDS, connect=5.0),
60
+ },
51
61
  )
52
- except (APITimeoutError, APIStatusError) as error:
53
- if isinstance(error, APITimeoutError) or error.response.status_code == 408:
62
+ except (APIConnectionError, APIStatusError) as error:
63
+ if isinstance(error, APIConnectionError) or error.response.status_code == 408:
54
64
  last_result = placeholder()
55
65
  else:
56
66
  raise
@@ -67,6 +77,7 @@ async def async_wait_for_status(
67
77
  placeholder: Callable[[], T],
68
78
  is_terminal: Callable[[T], bool],
69
79
  polling_config: Optional[PollingConfig] = None,
80
+ server_max_timeout_seconds: float = STATUS_LONG_POLL_SERVER_MAX_SECONDS,
70
81
  ) -> T:
71
82
  """Async long-poll for a status change, retrying until *is_terminal* or timeout."""
72
83
  config = polling_config or PollingConfig()
@@ -82,15 +93,21 @@ async def async_wait_for_status(
82
93
  if remaining <= 0:
83
94
  raise PollingTimeout(f"Exceeded timeout of {timeout} seconds", last_result)
84
95
 
96
+ # Cap the server hold at what the server honors, and give the client read
97
+ # timeout a buffer beyond it so the server returns 408 first.
98
+ server_timeout = min(remaining, server_max_timeout_seconds)
85
99
  try:
86
100
  last_result = await post_fn(
87
101
  path,
88
- body={"statuses": statuses, "timeout_seconds": remaining},
102
+ body={"statuses": statuses, "timeout_seconds": server_timeout},
89
103
  cast_to=cast_to,
90
- options={"max_retries": 0},
104
+ options={
105
+ "max_retries": 0,
106
+ "timeout": httpx.Timeout(server_timeout + LONG_POLL_CLIENT_BUFFER_SECONDS, connect=5.0),
107
+ },
91
108
  )
92
- except (APITimeoutError, APIStatusError) as error:
93
- if isinstance(error, APITimeoutError) or error.response.status_code == 408:
109
+ except (APIConnectionError, APIStatusError) as error:
110
+ if isinstance(error, APIConnectionError) or error.response.status_code == 408:
94
111
  last_result = placeholder()
95
112
  else:
96
113
  raise
@@ -12,7 +12,6 @@ from ..types import (
12
12
  blueprint_create_params,
13
13
  blueprint_preview_params,
14
14
  blueprint_list_public_params,
15
- blueprint_create_from_inspection_params,
16
15
  )
17
16
  from .._types import NOT_GIVEN, Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
18
17
  from .._utils import is_given, path_template, maybe_transform, async_maybe_transform
@@ -33,7 +32,6 @@ from ..lib.polling_async import async_poll_until
33
32
  from .._utils._validation import ValidationNotification
34
33
  from ..types.blueprint_view import BlueprintView
35
34
  from ..types.blueprint_preview_view import BlueprintPreviewView
36
- from ..types.inspection_source_param import InspectionSourceParam
37
35
  from ..types.blueprint_build_logs_list_view import BlueprintBuildLogsListView
38
36
  from ..types.shared_params.launch_parameters import LaunchParameters
39
37
  from ..types.shared_params.code_mount_parameters import CodeMountParameters
@@ -499,88 +497,6 @@ class BlueprintsResource(SyncAPIResource):
499
497
  cast_to=object,
500
498
  )
501
499
 
502
- def create_from_inspection(
503
- self,
504
- *,
505
- inspection_source: InspectionSourceParam,
506
- name: str,
507
- file_mounts: Optional[Dict[str, str]] | Omit = omit,
508
- launch_parameters: Optional[LaunchParameters] | Omit = omit,
509
- metadata: Optional[Dict[str, str]] | Omit = omit,
510
- network_policy_id: Optional[str] | Omit = omit,
511
- secrets: Optional[Dict[str, str]] | Omit = omit,
512
- system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
513
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
514
- # The extra values given here take precedence over values defined on the client or passed to this method.
515
- extra_headers: Headers | None = None,
516
- extra_query: Query | None = None,
517
- extra_body: Body | None = None,
518
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
519
- idempotency_key: str | None = None,
520
- ) -> BlueprintView:
521
- """
522
- Starts build of custom defined container Blueprint using a RepositoryConnection
523
- Inspection as a source container specification.
524
-
525
- Args:
526
- inspection_source: (Optional) Use a RepositoryInspection a source of a Blueprint build. The
527
- Dockerfile will be automatically created based on the RepositoryInspection
528
- contents.
529
-
530
- name: Name of the Blueprint.
531
-
532
- file_mounts: (Optional) Map of paths and file contents to write before setup.
533
-
534
- launch_parameters: LaunchParameters enable you to customize the resources available to your Devbox
535
- as well as the environment set up that should be completed before the Devbox is
536
- marked as 'running'.
537
-
538
- metadata: (Optional) User defined metadata for the Blueprint.
539
-
540
- network_policy_id: (Optional) ID of the network policy to apply during blueprint build. This
541
- restricts network access during the build process.
542
-
543
- secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
544
- can be used as environment variables in system_setup_commands. Example:
545
- {"GITHUB_TOKEN": "gh_secret"} makes 'gh_secret' available as GITHUB_TOKEN.
546
-
547
- system_setup_commands: A list of commands to run to set up your system.
548
-
549
- extra_headers: Send extra headers
550
-
551
- extra_query: Add additional query parameters to the request
552
-
553
- extra_body: Add additional JSON properties to the request
554
-
555
- timeout: Override the client-level default timeout for this request, in seconds
556
-
557
- idempotency_key: Specify a custom idempotency key for this request
558
- """
559
- return self._post(
560
- "/v1/blueprints/create_from_inspection",
561
- body=maybe_transform(
562
- {
563
- "inspection_source": inspection_source,
564
- "name": name,
565
- "file_mounts": file_mounts,
566
- "launch_parameters": launch_parameters,
567
- "metadata": metadata,
568
- "network_policy_id": network_policy_id,
569
- "secrets": secrets,
570
- "system_setup_commands": system_setup_commands,
571
- },
572
- blueprint_create_from_inspection_params.BlueprintCreateFromInspectionParams,
573
- ),
574
- options=make_request_options(
575
- extra_headers=extra_headers,
576
- extra_query=extra_query,
577
- extra_body=extra_body,
578
- timeout=timeout,
579
- idempotency_key=idempotency_key,
580
- ),
581
- cast_to=BlueprintView,
582
- )
583
-
584
500
  def list_public(
585
501
  self,
586
502
  *,
@@ -1186,88 +1102,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
1186
1102
  cast_to=object,
1187
1103
  )
1188
1104
 
1189
- async def create_from_inspection(
1190
- self,
1191
- *,
1192
- inspection_source: InspectionSourceParam,
1193
- name: str,
1194
- file_mounts: Optional[Dict[str, str]] | Omit = omit,
1195
- launch_parameters: Optional[LaunchParameters] | Omit = omit,
1196
- metadata: Optional[Dict[str, str]] | Omit = omit,
1197
- network_policy_id: Optional[str] | Omit = omit,
1198
- secrets: Optional[Dict[str, str]] | Omit = omit,
1199
- system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
1200
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1201
- # The extra values given here take precedence over values defined on the client or passed to this method.
1202
- extra_headers: Headers | None = None,
1203
- extra_query: Query | None = None,
1204
- extra_body: Body | None = None,
1205
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
1206
- idempotency_key: str | None = None,
1207
- ) -> BlueprintView:
1208
- """
1209
- Starts build of custom defined container Blueprint using a RepositoryConnection
1210
- Inspection as a source container specification.
1211
-
1212
- Args:
1213
- inspection_source: (Optional) Use a RepositoryInspection a source of a Blueprint build. The
1214
- Dockerfile will be automatically created based on the RepositoryInspection
1215
- contents.
1216
-
1217
- name: Name of the Blueprint.
1218
-
1219
- file_mounts: (Optional) Map of paths and file contents to write before setup.
1220
-
1221
- launch_parameters: LaunchParameters enable you to customize the resources available to your Devbox
1222
- as well as the environment set up that should be completed before the Devbox is
1223
- marked as 'running'.
1224
-
1225
- metadata: (Optional) User defined metadata for the Blueprint.
1226
-
1227
- network_policy_id: (Optional) ID of the network policy to apply during blueprint build. This
1228
- restricts network access during the build process.
1229
-
1230
- secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
1231
- can be used as environment variables in system_setup_commands. Example:
1232
- {"GITHUB_TOKEN": "gh_secret"} makes 'gh_secret' available as GITHUB_TOKEN.
1233
-
1234
- system_setup_commands: A list of commands to run to set up your system.
1235
-
1236
- extra_headers: Send extra headers
1237
-
1238
- extra_query: Add additional query parameters to the request
1239
-
1240
- extra_body: Add additional JSON properties to the request
1241
-
1242
- timeout: Override the client-level default timeout for this request, in seconds
1243
-
1244
- idempotency_key: Specify a custom idempotency key for this request
1245
- """
1246
- return await self._post(
1247
- "/v1/blueprints/create_from_inspection",
1248
- body=await async_maybe_transform(
1249
- {
1250
- "inspection_source": inspection_source,
1251
- "name": name,
1252
- "file_mounts": file_mounts,
1253
- "launch_parameters": launch_parameters,
1254
- "metadata": metadata,
1255
- "network_policy_id": network_policy_id,
1256
- "secrets": secrets,
1257
- "system_setup_commands": system_setup_commands,
1258
- },
1259
- blueprint_create_from_inspection_params.BlueprintCreateFromInspectionParams,
1260
- ),
1261
- options=make_request_options(
1262
- extra_headers=extra_headers,
1263
- extra_query=extra_query,
1264
- extra_body=extra_body,
1265
- timeout=timeout,
1266
- idempotency_key=idempotency_key,
1267
- ),
1268
- cast_to=BlueprintView,
1269
- )
1270
-
1271
1105
  def list_public(
1272
1106
  self,
1273
1107
  *,
@@ -1494,9 +1328,6 @@ class BlueprintsResourceWithRawResponse:
1494
1328
  self.delete = to_raw_response_wrapper(
1495
1329
  blueprints.delete,
1496
1330
  )
1497
- self.create_from_inspection = to_raw_response_wrapper(
1498
- blueprints.create_from_inspection,
1499
- )
1500
1331
  self.list_public = to_raw_response_wrapper(
1501
1332
  blueprints.list_public,
1502
1333
  )
@@ -1526,9 +1357,6 @@ class AsyncBlueprintsResourceWithRawResponse:
1526
1357
  self.delete = async_to_raw_response_wrapper(
1527
1358
  blueprints.delete,
1528
1359
  )
1529
- self.create_from_inspection = async_to_raw_response_wrapper(
1530
- blueprints.create_from_inspection,
1531
- )
1532
1360
  self.list_public = async_to_raw_response_wrapper(
1533
1361
  blueprints.list_public,
1534
1362
  )
@@ -1558,9 +1386,6 @@ class BlueprintsResourceWithStreamingResponse:
1558
1386
  self.delete = to_streamed_response_wrapper(
1559
1387
  blueprints.delete,
1560
1388
  )
1561
- self.create_from_inspection = to_streamed_response_wrapper(
1562
- blueprints.create_from_inspection,
1563
- )
1564
1389
  self.list_public = to_streamed_response_wrapper(
1565
1390
  blueprints.list_public,
1566
1391
  )
@@ -1590,9 +1415,6 @@ class AsyncBlueprintsResourceWithStreamingResponse:
1590
1415
  self.delete = async_to_streamed_response_wrapper(
1591
1416
  blueprints.delete,
1592
1417
  )
1593
- self.create_from_inspection = async_to_streamed_response_wrapper(
1594
- blueprints.create_from_inspection,
1595
- )
1596
1418
  self.list_public = async_to_streamed_response_wrapper(
1597
1419
  blueprints.list_public,
1598
1420
  )
@@ -64,14 +64,18 @@ from ..._response import (
64
64
  async_to_custom_raw_response_wrapper,
65
65
  async_to_custom_streamed_response_wrapper,
66
66
  )
67
- from ..._constants import DEFAULT_TIMEOUT
67
+ from ..._constants import (
68
+ DEFAULT_TIMEOUT,
69
+ LONG_POLL_CLIENT_BUFFER_SECONDS,
70
+ EXEC_LONG_POLL_SERVER_MAX_SECONDS,
71
+ )
68
72
  from ...pagination import (
69
73
  SyncDevboxesCursorIDPage,
70
74
  AsyncDevboxesCursorIDPage,
71
75
  SyncDiskSnapshotsCursorIDPage,
72
76
  AsyncDiskSnapshotsCursorIDPage,
73
77
  )
74
- from ..._exceptions import RunloopError, APIStatusError, APITimeoutError
78
+ from ..._exceptions import RunloopError, APIStatusError, APIConnectionError
75
79
  from ...lib.polling import PollingConfig, poll_until
76
80
  from ..._base_client import AsyncPaginator, make_request_options
77
81
  from .disk_snapshots import (
@@ -171,7 +175,6 @@ class DevboxesResource(SyncAPIResource):
171
175
  metadata: Optional[Dict[str, str]] | Omit = omit,
172
176
  mounts: Optional[Iterable[Mount]] | Omit = omit,
173
177
  name: Optional[str] | Omit = omit,
174
- repo_connection_id: Optional[str] | Omit = omit,
175
178
  secrets: Optional[Dict[str, str]] | Omit = omit,
176
179
  snapshot_id: Optional[str] | Omit = omit,
177
180
  tunnel: Optional[devbox_create_params.Tunnel] | Omit = omit,
@@ -232,8 +235,6 @@ class DevboxesResource(SyncAPIResource):
232
235
 
233
236
  name: (Optional) A user specified name to give the Devbox.
234
237
 
235
- repo_connection_id: Repository connection id the devbox should source its base image from.
236
-
237
238
  secrets: (Optional) Map of environment variable names to secret names. The secret values
238
239
  will be securely injected as environment variables in the Devbox. Example:
239
240
  {"DB_PASS": "DATABASE_PASSWORD"} sets environment variable 'DB_PASS' to the
@@ -271,7 +272,6 @@ class DevboxesResource(SyncAPIResource):
271
272
  "metadata": metadata,
272
273
  "mounts": mounts,
273
274
  "name": name,
274
- "repo_connection_id": repo_connection_id,
275
275
  "secrets": secrets,
276
276
  "snapshot_id": snapshot_id,
277
277
  "tunnel": tunnel,
@@ -468,7 +468,6 @@ class DevboxesResource(SyncAPIResource):
468
468
  mounts: Optional[Iterable[Mount]] | Omit = omit,
469
469
  name: Optional[str] | Omit = omit,
470
470
  polling_config: PollingConfig | None = None,
471
- repo_connection_id: Optional[str] | Omit = omit,
472
471
  secrets: Optional[Dict[str, str]] | Omit = omit,
473
472
  snapshot_id: Optional[str] | Omit = omit,
474
473
  tunnel: Optional[devbox_create_params.Tunnel] | Omit = omit,
@@ -509,7 +508,6 @@ class DevboxesResource(SyncAPIResource):
509
508
  metadata=metadata,
510
509
  mounts=mounts,
511
510
  name=name,
512
- repo_connection_id=repo_connection_id,
513
511
  secrets=secrets,
514
512
  snapshot_id=snapshot_id,
515
513
  tunnel=tunnel,
@@ -957,7 +955,7 @@ class DevboxesResource(SyncAPIResource):
957
955
  return execution
958
956
 
959
957
  def handle_timeout_error(error: Exception) -> DevboxAsyncExecutionDetailView:
960
- if isinstance(error, APITimeoutError) or (
958
+ if isinstance(error, APIConnectionError) or (
961
959
  isinstance(error, APIStatusError) and error.response.status_code == 408
962
960
  ):
963
961
  return execution
@@ -967,7 +965,15 @@ class DevboxesResource(SyncAPIResource):
967
965
  return result.status == "completed"
968
966
 
969
967
  return poll_until(
970
- lambda: self.wait_for_command(execution.execution_id, devbox_id=devbox_id, statuses=["completed"]),
968
+ # Client read timeout must exceed the server long-poll hold so the server
969
+ # returns 408 first instead of the client aborting the stream.
970
+ lambda: self.wait_for_command(
971
+ execution.execution_id,
972
+ devbox_id=devbox_id,
973
+ statuses=["completed"],
974
+ timeout_seconds=int(EXEC_LONG_POLL_SERVER_MAX_SECONDS),
975
+ timeout=httpx.Timeout(EXEC_LONG_POLL_SERVER_MAX_SECONDS + LONG_POLL_CLIENT_BUFFER_SECONDS, connect=5.0),
976
+ ),
971
977
  is_done,
972
978
  polling_config,
973
979
  handle_timeout_error,
@@ -1841,7 +1847,6 @@ class AsyncDevboxesResource(AsyncAPIResource):
1841
1847
  metadata: Optional[Dict[str, str]] | Omit = omit,
1842
1848
  mounts: Optional[Iterable[Mount]] | Omit = omit,
1843
1849
  name: Optional[str] | Omit = omit,
1844
- repo_connection_id: Optional[str] | Omit = omit,
1845
1850
  secrets: Optional[Dict[str, str]] | Omit = omit,
1846
1851
  snapshot_id: Optional[str] | Omit = omit,
1847
1852
  tunnel: Optional[devbox_create_params.Tunnel] | Omit = omit,
@@ -1902,8 +1907,6 @@ class AsyncDevboxesResource(AsyncAPIResource):
1902
1907
 
1903
1908
  name: (Optional) A user specified name to give the Devbox.
1904
1909
 
1905
- repo_connection_id: Repository connection id the devbox should source its base image from.
1906
-
1907
1910
  secrets: (Optional) Map of environment variable names to secret names. The secret values
1908
1911
  will be securely injected as environment variables in the Devbox. Example:
1909
1912
  {"DB_PASS": "DATABASE_PASSWORD"} sets environment variable 'DB_PASS' to the
@@ -1941,7 +1944,6 @@ class AsyncDevboxesResource(AsyncAPIResource):
1941
1944
  "metadata": metadata,
1942
1945
  "mounts": mounts,
1943
1946
  "name": name,
1944
- "repo_connection_id": repo_connection_id,
1945
1947
  "secrets": secrets,
1946
1948
  "snapshot_id": snapshot_id,
1947
1949
  "tunnel": tunnel,
@@ -2007,7 +2009,6 @@ class AsyncDevboxesResource(AsyncAPIResource):
2007
2009
  mounts: Optional[Iterable[Mount]] | Omit = omit,
2008
2010
  name: Optional[str] | Omit = omit,
2009
2011
  polling_config: PollingConfig | None = None,
2010
- repo_connection_id: Optional[str] | Omit = omit,
2011
2012
  secrets: Optional[Dict[str, str]] | Omit = omit,
2012
2013
  snapshot_id: Optional[str] | Omit = omit,
2013
2014
  tunnel: Optional[devbox_create_params.Tunnel] | Omit = omit,
@@ -2049,7 +2050,6 @@ class AsyncDevboxesResource(AsyncAPIResource):
2049
2050
  metadata=metadata,
2050
2051
  mounts=mounts,
2051
2052
  name=name,
2052
- repo_connection_id=repo_connection_id,
2053
2053
  secrets=secrets,
2054
2054
  snapshot_id=snapshot_id,
2055
2055
  tunnel=tunnel,
@@ -2627,7 +2627,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
2627
2627
  return execution
2628
2628
 
2629
2629
  def handle_timeout_error(error: Exception) -> DevboxAsyncExecutionDetailView:
2630
- if isinstance(error, APITimeoutError) or (
2630
+ if isinstance(error, APIConnectionError) or (
2631
2631
  isinstance(error, APIStatusError) and error.response.status_code == 408
2632
2632
  ):
2633
2633
  return execution
@@ -2637,7 +2637,15 @@ class AsyncDevboxesResource(AsyncAPIResource):
2637
2637
  return result.status == "completed"
2638
2638
 
2639
2639
  return await async_poll_until(
2640
- lambda: self.wait_for_command(execution.execution_id, devbox_id=devbox_id, statuses=["completed"]),
2640
+ # Client read timeout must exceed the server long-poll hold so the server
2641
+ # returns 408 first instead of the client aborting the stream.
2642
+ lambda: self.wait_for_command(
2643
+ execution.execution_id,
2644
+ devbox_id=devbox_id,
2645
+ statuses=["completed"],
2646
+ timeout_seconds=int(EXEC_LONG_POLL_SERVER_MAX_SECONDS),
2647
+ timeout=httpx.Timeout(EXEC_LONG_POLL_SERVER_MAX_SECONDS + LONG_POLL_CLIENT_BUFFER_SECONDS, connect=5.0),
2648
+ ),
2641
2649
  is_done,
2642
2650
  polling_config,
2643
2651
  handle_timeout_error,
@@ -18,7 +18,7 @@ from ..._response import (
18
18
  async_to_raw_response_wrapper,
19
19
  async_to_streamed_response_wrapper,
20
20
  )
21
- from ..._constants import DEFAULT_TIMEOUT, RAW_RESPONSE_HEADER
21
+ from ..._constants import DEFAULT_TIMEOUT, RAW_RESPONSE_HEADER, EXEC_LONG_POLL_SERVER_MAX_SECONDS
22
22
  from ..._streaming import Stream, AsyncStream, ReconnectingStream, AsyncReconnectingStream
23
23
  from ...lib.polling import PollingConfig
24
24
  from ..._base_client import make_request_options
@@ -149,6 +149,7 @@ class ExecutionsResource(SyncAPIResource):
149
149
  lambda: placeholder_execution_detail_view(devbox_id, execution_id),
150
150
  is_done,
151
151
  polling_config,
152
+ EXEC_LONG_POLL_SERVER_MAX_SECONDS,
152
153
  )
153
154
 
154
155
  def execute_async(
@@ -680,6 +681,7 @@ class AsyncExecutionsResource(AsyncAPIResource):
680
681
  lambda: placeholder_execution_detail_view(devbox_id, execution_id),
681
682
  is_done,
682
683
  polling_config,
684
+ EXEC_LONG_POLL_SERVER_MAX_SECONDS,
683
685
  )
684
686
 
685
687
  async def execute_async(
@@ -87,7 +87,6 @@ from .benchmark_job_list_view import BenchmarkJobListView as BenchmarkJobListVie
87
87
  from .benchmark_run_list_view import BenchmarkRunListView as BenchmarkRunListView
88
88
  from .benchmark_update_params import BenchmarkUpdateParams as BenchmarkUpdateParams
89
89
  from .blueprint_create_params import BlueprintCreateParams as BlueprintCreateParams
90
- from .inspection_source_param import InspectionSourceParam as InspectionSourceParam
91
90
  from .pty_control_result_view import PtyControlResultView as PtyControlResultView
92
91
  from .agent_devbox_counts_view import AgentDevboxCountsView as AgentDevboxCountsView
93
92
  from .agent_list_public_params import AgentListPublicParams as AgentListPublicParams
@@ -146,6 +145,3 @@ from .devbox_read_file_contents_response import DevboxReadFileContentsResponse a
146
145
  from .benchmark_run_list_scenario_runs_params import (
147
146
  BenchmarkRunListScenarioRunsParams as BenchmarkRunListScenarioRunsParams,
148
147
  )
149
- from .blueprint_create_from_inspection_params import (
150
- BlueprintCreateFromInspectionParams as BlueprintCreateFromInspectionParams,
151
- )
@@ -71,9 +71,6 @@ class DevboxBaseCreateParams(TypedDict, total=False):
71
71
  name: Optional[str]
72
72
  """(Optional) A user specified name to give the Devbox."""
73
73
 
74
- repo_connection_id: Optional[str]
75
- """Repository connection id the devbox should source its base image from."""
76
-
77
74
  secrets: Optional[Dict[str, str]]
78
75
  """(Optional) Map of environment variable names to secret names.
79
76
 
@@ -18,7 +18,6 @@ class ScopeEntryView(BaseModel):
18
18
  "RESOURCE_TYPE_SNAPSHOTS",
19
19
  "RESOURCE_TYPE_BENCHMARKS",
20
20
  "RESOURCE_TYPE_SCENARIOS",
21
- "RESOURCE_TYPE_REPO_CONNECTIONS",
22
21
  "RESOURCE_TYPE_AGENTS",
23
22
  "RESOURCE_TYPE_OBJECTS",
24
23
  "RESOURCE_TYPE_ACCOUNT",